diff --git a/.floo b/.floo deleted file mode 100644 index d98f0ddc..00000000 --- a/.floo +++ /dev/null @@ -1,3 +0,0 @@ -{ - "url": "https://floobits.com/srcn/Fuse2" -} \ No newline at end of file diff --git a/.flooignore b/.flooignore deleted file mode 100644 index 6d79ebd9..00000000 --- a/.flooignore +++ /dev/null @@ -1,7 +0,0 @@ -extern -node_modules -tmp -vendor -.idea/workspace.xml -.idea/misc.xml -assets/.gitkeep diff --git a/package-lock.json b/package-lock.json index 48a9116e..03e33e58 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,14 +32,14 @@ } }, "@angular/cli": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-1.3.1.tgz", - "integrity": "sha512-khmFQjuuqUxulvPnYTaThSf7Dw5B5blMuVsU8MkSe3mfdyc/x/DaKjfPXDfFNGoDiiSJfMwob2CT3OYQOPI2MQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-1.3.2.tgz", + "integrity": "sha512-VAZXI19PbhhUE/dJH5r6HT7502y0OXYzxhbGIagh/e7SNKnVV8KglVL4zfTfnsI8kmLrFFbAmPy7xomKO8Btkg==", "dev": true, "requires": { "@angular-devkit/build-optimizer": "0.0.13", "@ngtools/json-schema": "1.1.0", - "@ngtools/webpack": "1.6.1", + "@ngtools/webpack": "1.6.2", "autoprefixer": "6.7.7", "chalk": "2.1.0", "circular-dependency-plugin": "3.0.0", @@ -99,7 +99,7 @@ "webpack-dev-middleware": "1.12.0", "webpack-dev-server": "2.5.1", "webpack-merge": "4.1.0", - "zone.js": "0.8.16" + "zone.js": "0.8.17" } }, "@angular/common": { @@ -129,6 +129,15 @@ "reflect-metadata": "0.1.10" }, "dependencies": { + "@angular/tsc-wrapped": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@angular/tsc-wrapped/-/tsc-wrapped-4.3.5.tgz", + "integrity": "sha1-lf2qgTz8VyYvx+9f6nJtYorvq6w=", + "dev": true, + "requires": { + "tsickle": "0.21.6" + } + }, "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", @@ -204,15 +213,6 @@ "tslib": "1.7.1" } }, - "@angular/tsc-wrapped": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@angular/tsc-wrapped/-/tsc-wrapped-4.3.5.tgz", - "integrity": "sha1-lf2qgTz8VyYvx+9f6nJtYorvq6w=", - "dev": true, - "requires": { - "tsickle": "0.21.6" - } - }, "@ngtools/json-schema": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@ngtools/json-schema/-/json-schema-1.1.0.tgz", @@ -220,9 +220,9 @@ "dev": true }, "@ngtools/webpack": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-1.6.1.tgz", - "integrity": "sha512-a+nmdxKadC7Fz6NkolsAUzutjdajL3tupEfvJccwaBtmok/JJOps8a4lZnWKMTb/3+zsg8xZIGlSEXrTwPLNmA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-1.6.2.tgz", + "integrity": "sha512-2s2kCCV3FQUC+MG69e+H5k7zELuVcQ0Gkl1ioqR25HOclxv0UGVY7jsmz9LRm/DanS5ORXQt4S82EFV1dY4w+A==", "dev": true, "requires": { "loader-utils": "1.1.0", @@ -231,9 +231,9 @@ } }, "@swimlane/ngx-charts": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@swimlane/ngx-charts/-/ngx-charts-6.0.1.tgz", - "integrity": "sha1-sn99Q3vtCXbUTZL7rDUHQZH1sqA=" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@swimlane/ngx-charts/-/ngx-charts-6.0.2.tgz", + "integrity": "sha512-f9js4MptTBgYxUo53nK7fLVxgjWjLiudh0fVVvh4fCEQBG/UOsK9KGpFt5dSJJNNGQRdTiDVUzLzVnl8w+JwFg==" }, "@swimlane/ngx-datatable": { "version": "9.3.1", @@ -241,17 +241,17 @@ "integrity": "sha1-qbEwcycSHd+HTnW6a9amxpySZaE=" }, "@swimlane/ngx-dnd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@swimlane/ngx-dnd/-/ngx-dnd-2.2.0.tgz", - "integrity": "sha512-ndkJZlNx68MtQ9kY4mKnwwGrlepaj0Wd/QsDn2cXUBjsOJPaX1f8EUZ98OXdg6cc1yQP8JxTkgmgRPDsiV6CSw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@swimlane/ngx-dnd/-/ngx-dnd-3.0.0.tgz", + "integrity": "sha512-LH/Nc6/2tyX7U9SHa5hNvC2Sk/svj/PMrJu34V/BF/H811fik5AGzTjORdGQo7cl2m951MEkl9yijMKywRw37w==", "requires": { "dragula": "3.7.2" } }, "@types/jasmine": { - "version": "2.5.53", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.5.53.tgz", - "integrity": "sha512-2YNL0jXYuN7w07mb1sMZQ6T6zOvGi83v8UbjhBZ8mhvI1VkQ2STU9XOrTFyvWswMyh5rW1evS+e7qltYJvTqPA==", + "version": "2.5.54", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.5.54.tgz", + "integrity": "sha512-B9YofFbUljs19g5gBKUYeLIulsh31U5AK70F41BImQRHEZQGm4GcN922UvnYwkduMqbC/NH+9fruWa/zrqvHIg==", "dev": true }, "@types/jasminewd2": { @@ -260,7 +260,7 @@ "integrity": "sha1-X2jh5pe/ELxv2Mvy4Aaj1nEsW2Q=", "dev": true, "requires": { - "@types/jasmine": "2.5.53" + "@types/jasmine": "2.5.54" } }, "@types/node": { @@ -636,7 +636,7 @@ "dev": true, "requires": { "browserslist": "1.7.7", - "caniuse-db": "1.0.30000716", + "caniuse-db": "1.0.30000717", "normalize-range": "0.1.2", "num2fraction": "1.2.2", "postcss": "5.2.17", @@ -1003,7 +1003,7 @@ "buffer-xor": "1.0.3", "cipher-base": "1.0.4", "create-hash": "1.1.3", - "evp_bytestokey": "1.0.0", + "evp_bytestokey": "1.0.2", "inherits": "2.0.3" } }, @@ -1015,7 +1015,7 @@ "requires": { "browserify-aes": "1.0.6", "browserify-des": "1.0.0", - "evp_bytestokey": "1.0.0" + "evp_bytestokey": "1.0.2" } }, "browserify-des": { @@ -1069,7 +1069,7 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000716", + "caniuse-db": "1.0.30000717", "electron-to-chromium": "1.3.18" } }, @@ -1085,9 +1085,9 @@ } }, "buffer-indexof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.0.tgz", - "integrity": "sha1-9U9kfE9OJSKLqmVqLlfkPV8nCYI=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", "dev": true }, "buffer-xor": { @@ -1158,15 +1158,15 @@ "dev": true, "requires": { "browserslist": "1.7.7", - "caniuse-db": "1.0.30000716", + "caniuse-db": "1.0.30000717", "lodash.memoize": "4.1.2", "lodash.uniq": "4.5.0" } }, "caniuse-db": { - "version": "1.0.30000716", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000716.tgz", - "integrity": "sha1-sHF3ZdFXZi6MdKYVYshMn8NgSkk=", + "version": "1.0.30000717", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000717.tgz", + "integrity": "sha1-J931/szdM4yZpiyXiMJpT5n2ftc=", "dev": true }, "caseless": { @@ -1317,9 +1317,9 @@ } }, "cli-width": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", - "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", "dev": true }, "cliui": { @@ -2380,7 +2380,7 @@ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "dev": true, "requires": { - "buffer-indexof": "1.1.0" + "buffer-indexof": "1.1.1" } }, "dom-converter": { @@ -2830,12 +2830,13 @@ } }, "evp_bytestokey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", - "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.2.tgz", + "integrity": "sha512-ni0r0lrm7AOzsh2qC5mi9sj8S0gmj5fLNjfFpxN05FB4tAVZEKotbkjOtLPqTCX/CXT7NsUr6juZb4IFJeNNdA==", "dev": true, "requires": { - "create-hash": "1.1.3" + "md5.js": "1.3.4", + "safe-buffer": "5.1.1" } }, "execa": { @@ -3174,162 +3175,6 @@ "pinkie-promise": "2.0.1" } }, - "firebase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-4.3.0.tgz", - "integrity": "sha1-Idlakvhix+QG3fhxwXO1DxU/jUY=", - "requires": { - "dom-storage": "2.0.2", - "faye-websocket": "0.9.3", - "jsonwebtoken": "7.4.2", - "promise-polyfill": "6.0.2", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "base64url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64url/-/base64url-2.0.0.tgz", - "integrity": "sha1-6sFuA+oUOO/5Qj1puqNiYu0fcLs=" - }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "dom-storage": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.0.2.tgz", - "integrity": "sha1-7RfL9oq9EOCu+BgnE+KXxeS1ALA=" - }, - "ecdsa-sig-formatter": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz", - "integrity": "sha1-S8kmJ07Dtau1AW5+HWCSGsJisqE=", - "requires": { - "base64url": "2.0.0", - "safe-buffer": "5.1.1" - } - }, - "faye-websocket": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.9.3.tgz", - "integrity": "sha1-SCpQWw3wrmJrlphm0710DNuWLoM=", - "requires": { - "websocket-driver": "0.6.5" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" - }, - "isemail": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz", - "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo=" - }, - "joi": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", - "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", - "requires": { - "hoek": "2.16.3", - "isemail": "1.2.0", - "moment": "2.18.1", - "topo": "1.1.0" - } - }, - "jsonwebtoken": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-7.4.2.tgz", - "integrity": "sha1-VxuQPAfodcD8WSA9GseGZ9gOCc0=", - "requires": { - "joi": "6.10.1", - "jws": "3.1.4", - "lodash.once": "4.1.1", - "ms": "2.0.0", - "xtend": "4.0.1" - } - }, - "jwa": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.5.tgz", - "integrity": "sha1-oFUs4CIHQs1S4VN3SjKQXDDnVuU=", - "requires": { - "base64url": "2.0.0", - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.9", - "safe-buffer": "5.1.1" - } - }, - "jws": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz", - "integrity": "sha1-+ei5M46KhHJ31kRLFGT2GIDgUKI=", - "requires": { - "base64url": "2.0.0", - "jwa": "1.1.5", - "safe-buffer": "5.1.1" - } - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "moment": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", - "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "promise-polyfill": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.0.2.tgz", - "integrity": "sha1-2chtPcTcLfkBboiUbe/Wm0m0EWI=" - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" - }, - "topo": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", - "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", - "requires": { - "hoek": "2.16.3" - } - }, - "websocket-driver": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", - "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "requires": { - "websocket-extensions": "0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz", - "integrity": "sha1-domUmcGEtu91Q3fC27DNbLVdKec=" - }, - "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - } - } - }, "flatten": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", @@ -5034,7 +4879,7 @@ "ansi-escapes": "2.0.0", "chalk": "2.1.0", "cli-cursor": "2.1.0", - "cli-width": "2.1.0", + "cli-width": "2.2.0", "external-editor": "2.0.4", "figures": "2.0.0", "lodash": "4.17.4", @@ -6091,6 +5936,28 @@ "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", "dev": true }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "dev": true, + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + }, + "dependencies": { + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + } + } + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -6326,9 +6193,9 @@ "integrity": "sha512-/Gn3XvOgaAK/ZnXA0ej9ivYm6uIvHwvZaSzx04ZUtG1Vw5RCKzw84dK0Ru9Ylnnq1xJU4WmdA63REkJb8cvYXg==" }, "ngx-perfect-scrollbar": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/ngx-perfect-scrollbar/-/ngx-perfect-scrollbar-4.5.5.tgz", - "integrity": "sha512-tC5unIM2JC6ciWHHOq1yjPe1cBvhLZzJa83GFFxqSBRgje6yU8LU2O+FkeZinAsB4F61bwfDg0tTVbK71I2oYg==", + "version": "4.5.6", + "resolved": "https://registry.npmjs.org/ngx-perfect-scrollbar/-/ngx-perfect-scrollbar-4.5.6.tgz", + "integrity": "sha512-vpFA6AzYhcjCKFLwXGg58OmLCjhHwi+YrozPK2NYllWNXz2dVhhnWuAubtChAVkb5d3brz2joVu8Di8vLuU6vw==", "requires": { "perfect-scrollbar": "0.7.1" } @@ -6786,7 +6653,7 @@ "asn1.js": "4.9.1", "browserify-aes": "1.0.6", "create-hash": "1.1.3", - "evp_bytestokey": "1.0.0", + "evp_bytestokey": "1.0.2", "pbkdf2": "3.0.13" } }, @@ -10273,9 +10140,9 @@ "dev": true }, "zone.js": { - "version": "0.8.16", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.16.tgz", - "integrity": "sha1-rDG2xBj4jA+Ritas2KQCrKkxOrs=" + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.17.tgz", + "integrity": "sha1-TF5RhahX2o2nk9rzkZNxxaNrKgs=" } } } diff --git a/package.json b/package.json index d261b7c1..6b204900 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fuse2", - "version": "1.0.0", + "version": "1.0.1", "license": "MIT", "scripts": { "ng": "ng", @@ -12,43 +12,42 @@ }, "private": true, "dependencies": { - "@angular/animations": "^4.3.5", + "@angular/animations": "4.3.5", "@angular/cdk": "^2.0.0-beta.8", - "@angular/common": "^4.3.5", - "@angular/compiler": "^4.3.5", - "@angular/core": "^4.3.5", + "@angular/common": "4.3.5", + "@angular/compiler": "4.3.5", + "@angular/core": "4.3.5", "@angular/flex-layout": "2.0.0-beta.8", - "@angular/forms": "^4.3.5", - "@angular/http": "^4.3.5", + "@angular/forms": "4.3.5", + "@angular/http": "4.3.5", "@angular/material": "^2.0.0-beta.8", - "@angular/platform-browser": "^4.3.5", - "@angular/platform-browser-dynamic": "^4.3.5", - "@angular/router": "^4.3.5", - "@swimlane/ngx-charts": "^6.0.1", + "@angular/platform-browser": "4.3.5", + "@angular/platform-browser-dynamic": "4.3.5", + "@angular/router": "4.3.5", + "@swimlane/ngx-charts": "^6.0.2", "@swimlane/ngx-datatable": "^9.3.1", - "@swimlane/ngx-dnd": "^2.2.0", + "@swimlane/ngx-dnd": "^3.0.0", "angular-calendar": "^0.19.0", "angular-in-memory-web-api": "^0.3.2", "classlist.js": "^1.1.20150312", "core-js": "^2.5.0", "d3": "^4.10.0", - "firebase": "^4.3.0", "hammerjs": "^2.0.8", "highlight.js": "^9.12.0", "intl": "^1.2.5", "moment": "^2.18.1", "ngx-color-picker": "^4.3.1", - "ngx-perfect-scrollbar": "^4.5.5", + "ngx-perfect-scrollbar": "^4.5.6", "rxjs": "^5.4.3", "web-animations-js": "^2.3.1", - "zone.js": "^0.8.16" + "zone.js": "^0.8.17" }, "devDependencies": { - "@angular/cli": "^1.3.1", - "@angular/compiler-cli": "^4.3.5", - "@angular/language-service": "^4.3.5", - "@ngtools/webpack": "^1.6.1", - "@types/jasmine": "^2.5.53", + "@angular/cli": "^1.3.2", + "@angular/compiler-cli": "4.3.5", + "@angular/language-service": "4.3.5", + "@ngtools/webpack": "^1.6.2", + "@types/jasmine": "^2.5.54", "@types/jasminewd2": "^2.0.2", "@types/node": "^6.0.87", "codelyzer": "~3.0.1", diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 59f46286..8f6271ea 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -4,9 +4,7 @@ import { HttpModule } from '@angular/http'; import { HttpClientModule } from '@angular/common/http'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { RouterModule, Routes } from '@angular/router'; - import 'hammerjs'; - import { SharedModule } from './core/modules/shared.module'; import { AppComponent } from './app.component'; import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; diff --git a/src/app/core/animations.ts b/src/app/core/animations.ts index bcad7c27..614d7774 100644 --- a/src/app/core/animations.ts +++ b/src/app/core/animations.ts @@ -1,6 +1,6 @@ -import { sequence, trigger, stagger, animate, style, group, query as q, transition, keyframes, animateChild, state } from '@angular/animations'; +import { sequence, trigger, stagger, animate, style, group, query, transition, keyframes, animateChild, state } from '@angular/animations'; -const query = (s, a, o = {optional: true}) => q(s, a, o); +// const query = (s, a, o = {optional: true}) => q(s, a, o); export class Animations { @@ -70,23 +70,119 @@ export class Animations transition('* => void', animate('300ms')) ]); - public static routerTransition = trigger('routerTransition', [ + public static routerTransitionLeft = trigger('routerTransitionLeft', [ transition('* => *', [ - query(':enter, :leave', style({ - position: 'absolute', - top : 0, - bottom : 0, - left : 0, - right : 0 - })), - query(':enter', style({ - transform: 'translateY(100%)', - opacity : 0 - })), + query('fuse-content > :enter, fuse-content > :leave', [ + style({ + position: 'absolute', + top : 0, + bottom : 0, + left : 0, + right : 0 + }) + ], {optional: true}), + query('fuse-content > :enter', [ + style({ + transform: 'translateX(100%)', + opacity : 0 + }) + ], {optional: true}), sequence([ group([ - query(':leave', [ + query('fuse-content > :leave', [ + style({ + transform: 'translateX(0)', + opacity : 1 + }), + animate('400ms cubic-bezier(0.250, 0.460, 0.450, 0.940)', + style({ + transform: 'translateX(-100%)', + opacity : 0 + })) + ], {optional: true}), + query('fuse-content > :enter', [ + style({transform: 'translateX(100%)'}), + animate('400ms cubic-bezier(0.250, 0.460, 0.450, 0.940)', + style({ + transform: 'translateX(0%)', + opacity : 1 + })) + ], {optional: true}) + ]), + query('fuse-content > :leave', animateChild(), {optional: true}), + query('fuse-content > :enter', animateChild(), {optional: true}) + ]) + ]) + ]); + + public static routerTransitionRight = trigger('routerTransitionRight', [ + + transition('* => *', [ + query('fuse-content > :enter, fuse-content > :leave', [ + style({ + position: 'absolute', + top : 0, + bottom : 0, + left : 0, + right : 0 + }) + ], {optional: true}), + query('fuse-content > :enter', [ + style({ + transform: 'translateX(-100%)', + opacity : 0 + }) + ], {optional: true}), + sequence([ + group([ + query('fuse-content > :leave', [ + style({ + transform: 'translateX(0)', + opacity : 1 + }), + animate('400ms cubic-bezier(0.250, 0.460, 0.450, 0.940)', + style({ + transform: 'translateX(100%)', + opacity : 0 + })) + ], {optional: true}), + query('fuse-content > :enter', [ + style({transform: 'translateX(-100%)'}), + animate('400ms cubic-bezier(0.250, 0.460, 0.450, 0.940)', + style({ + transform: 'translateX(0%)', + opacity : 1 + })) + ], {optional: true}) + ]), + query('fuse-content > :leave', animateChild(), {optional: true}), + query('fuse-content > :enter', animateChild(), {optional: true}) + ]) + ]) + ]); + + public static routerTransitionUp = trigger('routerTransitionUp', [ + + transition('* => *', [ + query('fuse-content > :enter, fuse-content > :leave', [ + style({ + position: 'absolute', + top : 0, + bottom : 0, + left : 0, + right : 0 + }) + ], {optional: true}), + query('fuse-content > :enter', [ + style({ + transform: 'translateY(100%)', + opacity : 0 + }) + ], {optional: true}), + sequence([ + group([ + query('fuse-content > :leave', [ style({ transform: 'translateY(0)', opacity : 1 @@ -96,19 +192,108 @@ export class Animations transform: 'translateY(-100%)', opacity : 0 })) - ]), - query(':enter', [ + ], {optional: true}), + query('fuse-content > :enter', [ style({transform: 'translateY(100%)'}), animate('400ms cubic-bezier(0.250, 0.460, 0.450, 0.940)', style({ transform: 'translateY(0%)', opacity : 1 })) - ]) + ], {optional: true}) ]), - query(':leave', animateChild()), - query(':enter', animateChild()) + query('fuse-content > :leave', animateChild(), {optional: true}), + query('fuse-content > :enter', animateChild(), {optional: true}) ]) ]) ]); + + public static routerTransitionDown = trigger('routerTransitionDown', [ + + transition('* => *', [ + query('fuse-content > :enter, fuse-content > :leave', [ + style({ + position: 'absolute', + top : 0, + bottom : 0, + left : 0, + right : 0 + }) + ], {optional: true}), + query('fuse-content > :enter', [ + style({ + transform: 'translateY(-100%)', + opacity : 0 + }) + ], {optional: true}), + sequence([ + group([ + query('fuse-content > :leave', [ + style({ + transform: 'translateY(0)', + opacity : 1 + }), + animate('400ms cubic-bezier(0.250, 0.460, 0.450, 0.940)', + style({ + transform: 'translateY(100%)', + opacity : 0 + })) + ], {optional: true}), + query('fuse-content > :enter', [ + style({transform: 'translateY(-100%)'}), + animate('400ms cubic-bezier(0.250, 0.460, 0.450, 0.940)', + style({ + transform: 'translateY(0%)', + opacity : 1 + })) + ], {optional: true}) + ]), + query('fuse-content > :leave', animateChild(), {optional: true}), + query('fuse-content > :enter', animateChild(), {optional: true}) + ]) + ]) + ]); + + public static routerTransitionFade = trigger('routerTransitionFade', [ + + transition('* => *', [ + + query('fuse-content > :enter, fuse-content > :leave ', [ + style({ + position: 'absolute', + top : 0, + bottom : 0, + left : 0, + right : 0 + }) + ], {optional: true}), + query('fuse-content > :enter', [ + style({ + opacity: 0 + }) + ], {optional: true}), + // sequence([ + query('fuse-content > :leave', [ + style({ + opacity: 1 + }), + animate('300ms cubic-bezier(0.250, 0.460, 0.450, 0.940)', + style({ + opacity: 0 + })) + ], {optional: true}), + query('fuse-content > :enter', [ + style({ + opacity: 0 + }), + animate('300ms cubic-bezier(0.250, 0.460, 0.450, 0.940)', + style({ + opacity: 1 + })) + ], {optional: true}), + // ]), + query('fuse-content > :enter', animateChild(), {optional: true}), + query('fuse-content > :leave', animateChild(), {optional: true}) + ]) + ]); } diff --git a/src/app/core/components/theme-options/theme-options.component.html b/src/app/core/components/theme-options/theme-options.component.html index 091188bd..6291aba0 100644 --- a/src/app/core/components/theme-options/theme-options.component.html +++ b/src/app/core/components/theme-options/theme-options.component.html @@ -61,5 +61,35 @@ + + +

Animation:

+ + +
+

Router Animation

+ + + None + + + Slide up + + + Slide down + + + Slide right + + + Slide left + + + Fade in + + +
+
+ diff --git a/src/app/core/services/config.service.ts b/src/app/core/services/config.service.ts index 56efc302..795b31dd 100644 --- a/src/app/core/services/config.service.ts +++ b/src/app/core/services/config.service.ts @@ -30,7 +30,8 @@ export class FuseConfigService navbar : 'md-fuse-dark-500-bg', footer : 'md-fuse-dark-800-bg' }, - customScrollbars: true + customScrollbars: true, + routerAnimation : 'fadeIn' }; /** diff --git a/src/app/main/content/content.component.ts b/src/app/main/content/content.component.ts index fce6e17b..3f70d99c 100644 --- a/src/app/main/content/content.component.ts +++ b/src/app/main/content/content.component.ts @@ -1,32 +1,78 @@ -import { Component, HostBinding, OnInit } from '@angular/core'; +import { Component, HostBinding, OnInit, OnDestroy } from '@angular/core'; import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; import { Animations } from '../../core/animations'; +import { FuseConfigService } from '../../core/services/config.service'; +import { Subscription } from 'rxjs/Subscription'; @Component({ selector : 'fuse-content', templateUrl: './content.component.html', styleUrls : ['./content.component.scss'], - animations : [Animations.routerTransition] + animations : [ + Animations.routerTransitionUp, + Animations.routerTransitionDown, + Animations.routerTransitionRight, + Animations.routerTransitionLeft, + Animations.routerTransitionFade + ] }) -export class FuseContentComponent implements OnInit +export class FuseContentComponent implements OnInit, OnDestroy { - @HostBinding('@routerTransition') routeAnimationState = false; + onSettingsChanged: Subscription; + fuseSettings: any; + + @HostBinding('@routerTransitionUp') routeAnimationUp = false; + @HostBinding('@routerTransitionDown') routeAnimationDown = false; + @HostBinding('@routerTransitionRight') routeAnimationRight = false; + @HostBinding('@routerTransitionLeft') routeAnimationLeft = false; + @HostBinding('@routerTransitionFade') routeAnimationFade = false; constructor( private router: Router, - private activatedRoute: ActivatedRoute + private activatedRoute: ActivatedRoute, + private fuseConfig: FuseConfigService ) { this.router.events .filter((event) => event instanceof NavigationEnd) .map(() => this.activatedRoute) .subscribe((event) => { - this.routeAnimationState = !this.routeAnimationState; + switch ( this.fuseSettings.routerAnimation ) + { + case 'fadeIn': + this.routeAnimationFade = !this.routeAnimationFade; + break; + case 'slideUp': + this.routeAnimationUp = !this.routeAnimationUp; + break; + case 'slideDown': + this.routeAnimationDown = !this.routeAnimationDown; + break; + case 'slideRight': + this.routeAnimationRight = !this.routeAnimationRight; + break; + case 'slideLeft': + this.routeAnimationLeft = !this.routeAnimationLeft; + break; + } }); + + this.onSettingsChanged = + this.fuseConfig.onSettingsChanged + .subscribe( + (newSettings) => { + this.fuseSettings = newSettings; + } + ); } ngOnInit() { } + + ngOnDestroy() + { + this.onSettingsChanged.unsubscribe(); + } } diff --git a/src/app/main/toolbar/toolbar.component.html b/src/app/main/toolbar/toolbar.component.html index f6e4ab6b..50e07fea 100644 --- a/src/app/main/toolbar/toolbar.component.html +++ b/src/app/main/toolbar/toolbar.component.html @@ -15,6 +15,13 @@
+ + + shopping_cart + Purchase Fuse template (Angular4+) +