diff --git a/README.md b/README.md index 07d2e78f..9f460002 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Material Design Admin Template with Angular 5+ and Angular Material 2 Share your ideas, discuss Fuse and help each other. -[Click here](https://join.slack.com/t/fuse-theme/shared_invite/enQtMzA1NDE4NzYwMjcyLWQxODE4ODM1MWU4MWJjMDhlMGEwYzM4Mzg3N2E4YzVlZThhZjNlOTQ1Y2Q5OTBlNDNkMzJhZDIwMjgxOWQ3YWU) to join our Slack workspace. +[Click here](http://fusetheme.com/community) to see our Community page. ## Development server diff --git a/package-lock.json b/package-lock.json index 46a200d5..9f9ca2d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { - "name": "fuse2", - "version": "1.3.6", + "name": "fuse", + "version": "5.2.8", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -9,55 +9,104 @@ "resolved": "https://registry.npmjs.org/@agm/core/-/core-1.0.0-beta.2.tgz", "integrity": "sha512-3bdfvkWDmJszpj/F6Fzgv7sks0cs/cUEQPfs37tcJFz3jc62SsXy4TGb/WJT8FpH2nSGE6DonP8lXuFxB0lblQ==" }, + "@angular-devkit/build-optimizer": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.3.2.tgz", + "integrity": "sha512-U0BCZtThq5rUfY08shHXpxe8ZhSsiYB/cJjUvAWRTs/ORrs8pbngS6xwseQws8d/vHoVrtqGD9GU9h8AmFRERQ==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "source-map": "0.5.7", + "typescript": "2.6.2", + "webpack-sources": "1.1.0" + } + }, + "@angular-devkit/core": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.3.2.tgz", + "integrity": "sha512-zABk/iP7YX5SVbmK4e+IX7j2d0D37MQJQiKgWdV3JzfvVJhNJzddiirtT980pIafoq+KyvTgVwXtc+vnux0oeQ==", + "dev": true, + "requires": { + "ajv": "5.5.2", + "chokidar": "1.7.0", + "rxjs": "5.5.6", + "source-map": "0.5.7" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + } + } + }, + "@angular-devkit/schematics": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-0.3.2.tgz", + "integrity": "sha512-B6zZoqvHaTJy+vVdA6EtlxnCdGMa5elCa4j9lQLC3JI8DLvMXUWkCIPVbPzJ/GSRR9nsKWpvYMYaJyfBDUqfhw==", + "dev": true, + "requires": { + "@ngtools/json-schema": "1.2.0", + "rxjs": "5.5.6" + } + }, "@angular/animations": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-5.2.3.tgz", - "integrity": "sha512-K9rOsRGwt7Zmp/rNdvBmgBKqvEdgCyZF0kvwxrmZfq1Zj0GAkfTAKPL007493O6XFd+icfu/+kmYeqXBGB4gKA==", + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-5.2.8.tgz", + "integrity": "sha512-VfHN7ICR9QBaEbA02ip7ipNjD6m9ayfsliIE/ACkTVevObEdL90T3Q/NxiX+JRZSDL09M9XopIi1/WOeOn6Evw==", "requires": { "tslib": "1.9.0" } }, "@angular/cdk": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-5.1.1.tgz", - "integrity": "sha512-V8kQmwf1PhtxiiE0cS1x9SW7/VFrJ7LcL9RqxUOMmJMl8kVR43dQBEeuVOOYJlGo9LAR5ctfemlJHwd9+PoHew==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-5.2.4.tgz", + "integrity": "sha1-wKQpqHENj+2xV/VG4hy0nUM19/c=", "requires": { "tslib": "1.9.0" } }, "@angular/cli": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-1.6.7.tgz", - "integrity": "sha512-TprSjnQrEdrTsCAB5K/lCLuXZUH/y+l/BAR0aZLpubpZP8Ldgmq7q56trxL5wNSs3o6A8Vh43ZKNYOuKtnzlXQ==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-1.7.3.tgz", + "integrity": "sha512-19sh0SbjneG7/R/FvZBfHsHqfIqyj4LQuXdddJKMCDM97UoHQTjfgrpRvBf3a3lR79wdLXchWJBD9Yc6ifosEA==", "dev": true, "requires": { - "@angular-devkit/build-optimizer": "0.0.42", - "@angular-devkit/core": "0.0.29", - "@angular-devkit/schematics": "0.0.52", - "@ngtools/json-schema": "1.1.0", - "@ngtools/webpack": "1.9.7", - "@schematics/angular": "0.1.17", - "autoprefixer": "7.2.5", + "@angular-devkit/build-optimizer": "0.3.2", + "@angular-devkit/core": "0.3.2", + "@angular-devkit/schematics": "0.3.2", + "@ngtools/json-schema": "1.2.0", + "@ngtools/webpack": "1.10.2", + "@schematics/angular": "0.3.2", + "@schematics/package-update": "0.3.2", + "ajv": "6.2.1", + "autoprefixer": "7.2.6", + "cache-loader": "1.2.2", "chalk": "2.2.2", "circular-dependency-plugin": "4.4.0", + "clean-css": "4.1.11", "common-tags": "1.7.2", - "copy-webpack-plugin": "4.3.1", + "copy-webpack-plugin": "4.4.3", "core-object": "3.1.5", - "css-loader": "0.28.9", - "cssnano": "3.10.0", "denodeify": "1.2.1", "ember-cli-string-utils": "1.1.0", - "exports-loader": "0.6.4", "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.6", + "file-loader": "1.1.11", "fs-extra": "4.0.3", "glob": "7.1.2", "html-webpack-plugin": "2.30.1", "istanbul-instrumenter-loader": "3.0.0", "karma-source-map-support": "1.2.0", "less": "2.7.3", - "less-loader": "4.0.5", - "license-webpack-plugin": "1.1.1", + "less-loader": "4.0.6", + "license-webpack-plugin": "1.2.3", "loader-utils": "1.1.0", "lodash": "4.17.4", "memory-fs": "0.4.1", @@ -67,122 +116,56 @@ "nopt": "4.0.1", "opn": "5.1.0", "portfinder": "1.0.13", - "postcss-import": "11.0.0", - "postcss-loader": "2.0.10", - "postcss-url": "7.3.0", + "postcss": "6.0.19", + "postcss-import": "11.1.0", + "postcss-loader": "2.1.1", + "postcss-url": "7.3.1", "raw-loader": "0.5.1", "resolve": "1.5.0", "rxjs": "5.5.6", - "sass-loader": "6.0.6", + "sass-loader": "6.0.7", "semver": "5.5.0", "silent-error": "1.1.0", "source-map-support": "0.4.18", - "style-loader": "0.13.2", + "style-loader": "0.19.1", "stylus": "0.54.5", - "stylus-loader": "3.0.1", - "uglifyjs-webpack-plugin": "1.1.6", + "stylus-loader": "3.0.2", + "uglifyjs-webpack-plugin": "1.2.2", "url-loader": "0.6.2", - "webpack": "3.10.0", + "webpack": "3.11.0", "webpack-dev-middleware": "1.12.2", - "webpack-dev-server": "2.11.1", - "webpack-merge": "4.1.1", + "webpack-dev-server": "2.11.2", + "webpack-merge": "4.1.2", "webpack-sources": "1.1.0", - "webpack-subresource-integrity": "1.0.3" - }, - "dependencies": { - "@angular-devkit/build-optimizer": { - "version": "0.0.42", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.0.42.tgz", - "integrity": "sha512-BAYCVZ10ro6mgZQDZiNiVbX8ppygw4q7z/stpwG8WjMswgMRIcxsxYoC1VFuWcUPAf4UyfTIav6e8UZWA5+xnQ==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "source-map": "0.5.7", - "typescript": "2.6.2", - "webpack-sources": "1.1.0" - } - }, - "@angular-devkit/core": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.0.29.tgz", - "integrity": "sha512-jtUBA0pIrkdXcVqDmDrGlniqwM7NFOKdo7vWFDmCVLBbC9rZHeYW5Xv/+4HyBhGLJ4wxsAkUjsHKWGJINPPpiw==", - "dev": true, - "requires": { - "ajv": "5.5.2", - "chokidar": "1.7.0", - "rxjs": "5.5.6", - "source-map": "0.5.7" - } - }, - "@angular-devkit/schematics": { - "version": "0.0.52", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-0.0.52.tgz", - "integrity": "sha512-NtG8VB5aWtg0cw1Y7EJinJMuAnXsNdkQkkVe/i7CO6TPLyFQSFQCN1YojCr43l8jTWTRebRslrBawPCMOxsOgw==", - "dev": true, - "requires": { - "@ngtools/json-schema": "1.1.0", - "rxjs": "5.5.6" - } - }, - "@ngtools/webpack": { - "version": "1.9.7", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-1.9.7.tgz", - "integrity": "sha512-D5QuaT9wENeM2j9g2qvW9Ls1tGqRz26Lp+jxwb2ZGFep7Ik1fFOX3ROLfgkxNlxZGVmbxJjsfrYUCyGlzj8gWg==", - "dev": true, - "requires": { - "chalk": "2.2.2", - "enhanced-resolve": "3.4.1", - "loader-utils": "1.1.0", - "magic-string": "0.22.4", - "semver": "5.5.0", - "source-map": "0.5.7", - "tree-kill": "1.2.0", - "webpack-sources": "1.1.0" - } - }, - "@schematics/angular": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-0.1.17.tgz", - "integrity": "sha512-PHE5gk/ogPY/aN94dbbtauHMCq+/7w4Kdcl7tGmSS8mPKEI0wa6XJi//Wq/tHi55lb2fP58oEZU6n6w/wQascw==", - "dev": true, - "requires": { - "typescript": "2.6.2" - } - }, - "typescript": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.2.tgz", - "integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=", - "dev": true - } + "webpack-subresource-integrity": "1.0.4" } }, "@angular/common": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.2.3.tgz", - "integrity": "sha512-RwQ/IjmpDdMecTz/wwQlKpHgF4Crr8kyqV9FJ+c+cHR8Riqlu2DOXSU7LIfDdGoo6Mpixdxd1rtHYfs7l9YBSA==", + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.2.8.tgz", + "integrity": "sha512-vHODEZPDtBU5b7a2GjtQYPYmCPRq5FQsJp696pebGMJEZdvN/Du43z8V7lWEdBBLGD+oNXX6rXGD9Pr4P/Bg9w==", "requires": { "tslib": "1.9.0" } }, "@angular/compiler": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-5.2.3.tgz", - "integrity": "sha512-OynSzUdEHwajQMoV2JuYq5IdiR2dlTCTAHhTLzrym85wOihvTvovEQwVhYYHyKERu85JIoaF1sXA42KIjMGfkw==", + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-5.2.8.tgz", + "integrity": "sha512-xFqY7LDt/LGo6zaYzUwDRGq6Dm2Q9Z2R86ZNdy5wYRzMP+qLnwwENbU74YailKlt02WNtp83R1fdRDDlKI8N+Q==", "requires": { "tslib": "1.9.0" } }, "@angular/compiler-cli": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-5.2.3.tgz", - "integrity": "sha512-uoCxeyQSd8R/cwEbd0FIUXjnbPq0HXEsyu3WSu9Ek2jt52HL+x/gZQdFCRtjW/mvQNOqxrgrTtEkhJ398+VkXg==", + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-5.2.8.tgz", + "integrity": "sha512-u0cUfpbU2VNmRfkSS/tlsAzF24/LdlXqv8RFFLReJhwZTv4mKl1DzSjvOf6kfALGHDqCdHsVWcx2YJ8f6CeCMg==", "dev": true, "requires": { "chokidar": "1.7.0", "minimist": "1.2.0", "reflect-metadata": "0.1.12", - "tsickle": "0.26.0" + "tsickle": "0.27.2" }, "dependencies": { "minimist": { @@ -194,79 +177,79 @@ } }, "@angular/core": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-5.2.3.tgz", - "integrity": "sha512-tL9O8KA6KGjnlxqjuTytpC2OeKbxe/yHev0kmwo5CK0lDZU4UFetcItAzUXU1dyRuILTcBkbnFt9+nr1SZs/cQ==", + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-5.2.8.tgz", + "integrity": "sha512-exvh2OY+WDm90bgzZ89Asi2nZc2zrg/OWJuKMbxNfA6nxnyjCQ7uGRjTGr+MOynG+vd54J2Evtg2eDPdbcNg5A==", "requires": { "tslib": "1.9.0" } }, "@angular/flex-layout": { - "version": "2.0.0-beta.12", - "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-2.0.0-beta.12.tgz", - "integrity": "sha512-QTOKZxehYTh8fj64V/pNVWNbfNtebSbssyMIXiGJuHTzfyF7GYdRmtjoR2pNpllycz3rE5NYX77EB140Y6BCnw==", + "version": "5.0.0-beta.13", + "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-5.0.0-beta.13.tgz", + "integrity": "sha1-ga1q1GEAOUbnxSKSCCGla6cpKoU=", "requires": { "tslib": "1.9.0" } }, "@angular/forms": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-5.2.3.tgz", - "integrity": "sha512-PsMGbj/Slvsxxyl61QSSSFDCGHN1XK6kNxVQTVmAlVhP1LlaYqBOIgQy4K9CYWUeHqU/YCdhVaFb5quzZLtPYA==", + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-5.2.8.tgz", + "integrity": "sha512-yxpFwZcek7259O1+4p1Zfd8FOEJs8lh6T8n2W7IBT8Q1pcAMBCYfMi/Xga69AbypFIy3P+V6DaJoq8ZZgpwefg==", "requires": { "tslib": "1.9.0" } }, "@angular/http": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@angular/http/-/http-5.2.3.tgz", - "integrity": "sha512-3kAj7YYws8J2zRu46fEXk6lYrgSK9s5YA6O4REZkLox/suK0wb6TsDIIhoMzScGctSzZESVyuWsvYMrDYCflPA==", + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-5.2.8.tgz", + "integrity": "sha512-vtrO7RLN9v7adVrs/neWStmrCH6+4gm1gYqUYfl6BIYnazACMleqIeAagTbTD08oMblx2dU17NRNbD+2qL8q5A==", "requires": { "tslib": "1.9.0" } }, "@angular/language-service": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-5.2.3.tgz", - "integrity": "sha512-yBi8i2rUdq6WgYn2J+82QxqhKsl2ldH7/8Lk4ZQDbKgTBx5LmYLpNGg3TJGnZEUGtKhu8Rd1E3SBmc4qqrGXsQ==", + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-5.2.8.tgz", + "integrity": "sha512-MEEi1jB7oJgJxHmSDkwlu4Fm1bSU5TpkE3ideqO8ollxPbMgNOYNwH/9Gm634qPD+rvQaeXywKLQ0i+LQQlYiA==", "dev": true }, "@angular/material": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-5.1.1.tgz", - "integrity": "sha512-RC3xkbX35daNq4w+XBmm+Vgi16TJvLbSkw5xkdxCqLSysFx9ymwDOjUbLeHt2nJtvYWvnSjuVukdSAeaBknTFg==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-5.2.4.tgz", + "integrity": "sha1-noI3mDJCg9I+qDkVb6xby3NEPVU=", "requires": { "tslib": "1.9.0" } }, "@angular/material-moment-adapter": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-5.1.1.tgz", - "integrity": "sha512-1wpISrZOHmcC2o0tmOHX2Lt726WFUZxQs0iYe3x2yHVuxoV2W8gy0unfPkSyaZQ9v68o9xQ3DQEhSByPhr0tZg==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-5.2.4.tgz", + "integrity": "sha1-tuR4mYbLQhSJZyd3+nrwEo53Q28=", "requires": { "tslib": "1.9.0" } }, "@angular/platform-browser": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-5.2.3.tgz", - "integrity": "sha512-60LgA4KK3BufBR7vwwcn3zTYuLlfDG3jFip7bvdgsDpURrUB0j6/pL5cbGElww4jnnxZ72uJzJRzSiGEofjc3g==", + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-5.2.8.tgz", + "integrity": "sha512-f0tONG8+ZQOiv5/hLY76Sl1/BY6AR8Zt4buf2klz7zba5SxKLZwcsk6OfJC2PA0WtlJGiz7cSjbPr0B5sZKv8w==", "requires": { "tslib": "1.9.0" } }, "@angular/platform-browser-dynamic": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.3.tgz", - "integrity": "sha512-PheS+KJQJiyvQg1lr+eX0/1b/rjLnDjgI1qvzwikrvGYymb2JdZ+rjllHBs1iotzQ+tG+hRnlktvgdFN134x/g==", + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.8.tgz", + "integrity": "sha512-FzHVZf5XMty0v+hnWOU5PsXexlebvW4+EhfGG85vWCM/M9y0bF3ZSmdqZoXfGO8/Px2JbcBx0r3+GKUgsCieMA==", "requires": { "tslib": "1.9.0" } }, "@angular/router": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-5.2.3.tgz", - "integrity": "sha512-XVEpwNZta76FYas1gZSSGvkQoiGgQjvXfab6CwOh958d4c0C+9pJsykqsv6X/n8TSTShQt7wjs/vp/copXeuoA==", + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-5.2.8.tgz", + "integrity": "sha512-v4k1eUpauO8z/q9kcjr+vDhLvvGw5MzctJJQRoObqLhckFGBmAoITfEFsbF1ejsd/nqa9i+ivxe+LB00evbFXw==", "requires": { "tslib": "1.9.0" } @@ -278,40 +261,76 @@ "dev": true }, "@ngrx/effects": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@ngrx/effects/-/effects-5.0.0.tgz", - "integrity": "sha1-jIFeJtz92H49oDrZDxO5f134i3M=" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@ngrx/effects/-/effects-5.2.0.tgz", + "integrity": "sha1-qnYractv1GRNckoc7NJlyqQrrwk=" }, "@ngrx/router-store": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@ngrx/router-store/-/router-store-5.0.0.tgz", - "integrity": "sha1-A10oo4wOWKDzTDtLf2uKOqtNrLA=" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@ngrx/router-store/-/router-store-5.2.0.tgz", + "integrity": "sha1-v0sXTOGaNuuoIR/B3erx41rnQ2g=" }, "@ngrx/store": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@ngrx/store/-/store-5.0.0.tgz", - "integrity": "sha1-SDqVXqmaY+4INnXOBZbVBeVQF0c=" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@ngrx/store/-/store-5.2.0.tgz", + "integrity": "sha1-Yn7XTJzZVGKTBIXZEqVXEXsjkD4=" }, "@ngrx/store-devtools": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@ngrx/store-devtools/-/store-devtools-5.0.0.tgz", - "integrity": "sha1-3zDXn1JMK3xzB3wIRzLRt+vvq5U=" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@ngrx/store-devtools/-/store-devtools-5.2.0.tgz", + "integrity": "sha1-L/+RapqjSTdYJncrNZ27ZLnl1iI=" }, "@ngtools/json-schema": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@ngtools/json-schema/-/json-schema-1.1.0.tgz", - "integrity": "sha1-w6DFRNYjkqzCgTpCyKDcb1j4aSI=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ngtools/json-schema/-/json-schema-1.2.0.tgz", + "integrity": "sha512-pMh+HDc6mOjUO3agRfB1tInimo7hf67u+0Cska2bfXFe6oU7rSMnr5PLVtiZVgwMoBHpx/6XjBymvcnWPo2Uzg==", "dev": true }, + "@ngtools/webpack": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-1.10.2.tgz", + "integrity": "sha512-3u2zg2rarG3qNLSukBClGADWuq/iNn5SQtlSeAbfKzwBeyLGbF0gN1z1tVx1Bcr8YwFzR6NdRePQmJGcoqq1fg==", + "dev": true, + "requires": { + "chalk": "2.2.2", + "enhanced-resolve": "3.4.1", + "loader-utils": "1.1.0", + "magic-string": "0.22.4", + "semver": "5.5.0", + "source-map": "0.5.7", + "tree-kill": "1.2.0", + "webpack-sources": "1.1.0" + } + }, "@ngx-translate/core": { "version": "9.1.1", "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-9.1.1.tgz", "integrity": "sha1-rhA5KINrip4Gn9Li52+iGYzH5ig=" }, + "@schematics/angular": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-0.3.2.tgz", + "integrity": "sha512-Elrk0BA951s0ScFZU0AWrpUeJBYVR52DZ1QTIO5R0AhwEd1PW4olI8szPLGQlVW5Sd6H0FA/fyFLIvn2r9v6Rw==", + "dev": true, + "requires": { + "typescript": "2.6.2" + } + }, + "@schematics/package-update": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@schematics/package-update/-/package-update-0.3.2.tgz", + "integrity": "sha512-7aVP4994Hu8vRdTTohXkfGWEwLhrdNP3EZnWyBootm5zshWqlQojUGweZe5zwewsKcixeVOiy2YtW+aI4aGSLA==", + "dev": true, + "requires": { + "rxjs": "5.5.6", + "semver": "5.5.0", + "semver-intersect": "1.3.1" + } + }, "@swimlane/ngx-charts": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@swimlane/ngx-charts/-/ngx-charts-7.0.1.tgz", - "integrity": "sha512-YZNhRpMjhLpbaJK8iwPDj79Czusw12YNGGnrlbn3iwMhH8e3xkZVfzWhRA9RpfbVKo+S7qMhFTSlOhePQ61Zbg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@swimlane/ngx-charts/-/ngx-charts-7.1.1.tgz", + "integrity": "sha512-oxJmgxAN61RfbxgDYMVmccb3LITU6WyLYnkH4AWWQIu8z1UARcwS+2MLljQhY+gJhEQUGDwDVLhQ1OL3bkNfBA==", "requires": { "d3-array": "1.2.1", "d3-brush": "1.0.4", @@ -327,9 +346,9 @@ } }, "@swimlane/ngx-datatable": { - "version": "11.1.7", - "resolved": "https://registry.npmjs.org/@swimlane/ngx-datatable/-/ngx-datatable-11.1.7.tgz", - "integrity": "sha512-TMDN26Q4J+Sh+OPqAx8BK5Q/3hAAmcTAUQ9wvC9nboSOAmYUaHGz8t21yGdeUtRtunIfMpjTnwLa+X2Pfoq42w==" + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@swimlane/ngx-datatable/-/ngx-datatable-11.2.0.tgz", + "integrity": "sha512-QlD45YEUwOz6fu7neTtIGBAoV0owY0J9Jkpc2xViXHThWJeW7+mRhg4XRyKm8nvVDuUJZH+7huzAW1lQKN+iYg==" }, "@swimlane/ngx-dnd": { "version": "3.1.0", @@ -355,9 +374,9 @@ } }, "@types/node": { - "version": "6.0.96", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.96.tgz", - "integrity": "sha512-fsOOY6tMQ3jCB2wD51XFDmmpgm4wVKkJECdcVRqapbJEa7awJDcr+SaH8toz+4r4KW8YQ3M7ybXMoSDo1QGewA==", + "version": "6.0.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.101.tgz", + "integrity": "sha512-IQ7V3D6+kK1DArTqTBrnl3M+YgJZLw8ta8w3Q9xjR79HaJzMAoTbZ8TNzUTztrkCKPTqIstE2exdbs1FzsYLUw==", "dev": true }, "@types/prismjs": { @@ -476,21 +495,20 @@ } }, "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.1.tgz", + "integrity": "sha1-KKarxJOiq+D7TIUHrK7bQ/pVBnE=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", + "fast-deep-equal": "1.1.0", "fast-json-stable-stringify": "2.0.0", "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.1.0.tgz", + "integrity": "sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74=", "dev": true }, "align-text": { @@ -504,12 +522,6 @@ "repeat-string": "1.6.1" } }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, "amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", @@ -560,22 +572,16 @@ } }, "angular-calendar": { - "version": "0.23.3", - "resolved": "https://registry.npmjs.org/angular-calendar/-/angular-calendar-0.23.3.tgz", - "integrity": "sha512-MMUb4e6XmFJVv2FPqAdLlQWDtoklVxQ0wxeaZstwaUXXpzQ3sHFMMBhHADZcYcRkGDQsgoK39+sONeJB7RPvvg==", + "version": "0.23.6", + "resolved": "https://registry.npmjs.org/angular-calendar/-/angular-calendar-0.23.6.tgz", + "integrity": "sha512-4zC4KU7M0NF3fmKxSyW2R2B9IAQlU+3ApwAlfOltIjSUKVqD0K3UHaxrptoTXRDsak0t3JhCQBNdfqZf8W5/oQ==", "requires": { "angular-draggable-droppable": "2.0.0", "angular-resizable-element": "2.0.0", "calendar-utils": "0.1.1", "date-fns": "1.29.0", - "positioning": "1.3.1" - }, - "dependencies": { - "calendar-utils": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/calendar-utils/-/calendar-utils-0.1.1.tgz", - "integrity": "sha512-75JPgUK7l7OTg4ZptJMuuIoQzLndc4tcGhBCFtEONr0AMlD7zFVZthOC6Sf29K8r81A1+BJ/tDIFlElgY4XFFw==" - } + "positioning": "1.3.1", + "tslib": "1.9.0" } }, "angular-draggable-droppable": { @@ -879,16 +885,16 @@ "dev": true }, "autoprefixer": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.5.tgz", - "integrity": "sha512-XqHfo8Ht0VU+T5P+eWEVoXza456KJ4l62BPewu3vpNf3LP9s2+zYXkXBznzYby4XeECXgG3N4i+hGvOhXErZmA==", + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz", + "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==", "dev": true, "requires": { "browserslist": "2.11.3", - "caniuse-lite": "1.0.30000792", + "caniuse-lite": "1.0.30000813", "normalize-range": "0.1.2", "num2fraction": "1.2.2", - "postcss": "6.0.16", + "postcss": "6.0.19", "postcss-value-parser": "3.3.0" } }, @@ -953,9 +959,9 @@ } }, "babel-generator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", - "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { "babel-messages": "6.23.0", @@ -1021,7 +1027,7 @@ "babylon": "6.18.0", "debug": "2.6.9", "globals": "9.18.0", - "invariant": "2.2.2", + "invariant": "2.2.3", "lodash": "4.17.4" } }, @@ -1066,10 +1072,19 @@ "component-emitter": "1.2.1", "define-property": "1.0.0", "isobject": "3.0.1", - "mixin-deep": "1.3.0", + "mixin-deep": "1.3.1", "pascalcase": "0.1.1" }, "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", @@ -1122,9 +1137,9 @@ } }, "bfj-node4": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bfj-node4/-/bfj-node4-5.2.0.tgz", - "integrity": "sha512-shYA6rXr1mlAzJT8R96TscvicMyV9GJTMDFRii9HlgxLXT7HD3aDfsEHkQzIHYghh4jLI3+oouXDHqI+pnR3zA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bfj-node4/-/bfj-node4-5.2.1.tgz", + "integrity": "sha512-w+OTPD/R0AvDVR/sy/uVUVeoCpEgUoYj9/1P2zB6mR1yx7F/ADzLX4nlvZ/91WWzGgdZnuLxWP/J89D7ZDt0DA==", "dev": true, "requires": { "bluebird": "3.5.1", @@ -1269,7 +1284,7 @@ "deep-equal": "1.0.1", "dns-equal": "1.0.0", "dns-txt": "2.0.2", - "multicast-dns": "6.2.2", + "multicast-dns": "6.2.3", "multicast-dns-service-types": "1.1.0" } }, @@ -1531,8 +1546,8 @@ "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000792", - "electron-to-chromium": "1.3.31" + "caniuse-lite": "1.0.30000813", + "electron-to-chromium": "1.3.36" } }, "buffer": { @@ -1599,9 +1614,9 @@ "dev": true }, "cacache": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.2.tgz", - "integrity": "sha512-dljb7dk1jqO5ogE+dRpoR9tpHYv5xz9vPSNunh1+0wRuNdYxmzp9WmsyokgW/DUF1FDRVA/TMsmxt027R8djbQ==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", "dev": true, "requires": { "bluebird": "3.5.1", @@ -1609,14 +1624,14 @@ "glob": "7.1.2", "graceful-fs": "4.1.11", "lru-cache": "4.1.1", - "mississippi": "1.3.0", + "mississippi": "2.0.0", "mkdirp": "0.5.1", "move-concurrently": "1.0.1", "promise-inflight": "1.0.1", "rimraf": "2.6.2", - "ssri": "5.1.0", + "ssri": "5.2.4", "unique-filename": "1.1.0", - "y18n": "3.2.1" + "y18n": "4.0.0" } }, "cache-base": { @@ -1644,12 +1659,29 @@ } } }, + "cache-loader": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-1.2.2.tgz", + "integrity": "sha512-rsGh4SIYyB9glU+d0OcHwiXHXBoUgDhHZaQ1KAbiXqfz1CDPxtTboh1gPbJ0q2qdO8a9lfcjgC5CJ2Ms32y5bw==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "mkdirp": "0.5.1", + "neo-async": "2.5.0", + "schema-utils": "0.4.5" + } + }, "cached-path-relative": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=", "dev": true }, + "calendar-utils": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/calendar-utils/-/calendar-utils-0.1.1.tgz", + "integrity": "sha512-75JPgUK7l7OTg4ZptJMuuIoQzLndc4tcGhBCFtEONr0AMlD7zFVZthOC6Sf29K8r81A1+BJ/tDIFlElgY4XFFw==" + }, "callsite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", @@ -1682,40 +1714,10 @@ "map-obj": "1.0.1" } }, - "caniuse-api": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000794", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000794", - "electron-to-chromium": "1.3.31" - } - } - } - }, - "caniuse-db": { - "version": "1.0.30000794", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000794.tgz", - "integrity": "sha1-u+cRBPonfOSzYjh9VJBei4jlLzU=", - "dev": true - }, "caniuse-lite": { - "version": "1.0.30000792", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000792.tgz", - "integrity": "sha1-0M6pgfgRjzlhRxr7tDyaHlu/AzI=", + "version": "1.0.30000813", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000813.tgz", + "integrity": "sha512-A8ITSmH5SFdMFdC704ggjg+x2z5PzQmVlG8tavwnfvbC33Q1UYrj0+G+Xm0SNAnd4He36fwUE/KEWytOEchw+A==", "dev": true }, "caseless": { @@ -1732,14 +1734,6 @@ "requires": { "align-text": "0.1.4", "lazy-cache": "1.0.4" - }, - "dependencies": { - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - } } }, "chalk": { @@ -1754,19 +1748,12 @@ } }, "chart.js": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.7.1.tgz", - "integrity": "sha512-pX1oQAY86MiuyZ2hY593Acbl4MLHKrBBhhmZ1YqSadzQbbsBE2rnd6WISoHjIsdf0WDeC0hbePYCz2ZxkV8L+g==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.7.2.tgz", + "integrity": "sha512-90wl3V9xRZ8tnMvMlpcW+0Yg13BelsGS9P9t0ClaDxv/hdypHDr/YAGf+728m11P5ljwyB0ZHfPKCapZFqSqYA==", "requires": { "chartjs-color": "2.2.0", - "moment": "2.18.1" - }, - "dependencies": { - "moment": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", - "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=" - } + "moment": "2.21.0" } }, "chartjs-color": { @@ -1844,42 +1831,6 @@ "integrity": "sha512-UjgcRlTAhAkLeXmDe2wK7ktwy/tgAqxiSndTIPiFZuIPLZmzHzWMwUIe9h9m/OokypG7snxCDEuwJshGBdPvaw==", "dev": true }, - "clap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", - "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", - "dev": true, - "requires": { - "chalk": "1.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -1972,9 +1923,9 @@ "integrity": "sha1-HXCEL3Ai8I2awIbOaeWyUPLFd4k=" }, "clean-css": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.9.tgz", - "integrity": "sha1-Nc7ornaHpJuYA09w3gDE7dOCYwE=", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz", + "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=", "dev": true, "requires": { "source-map": "0.5.7" @@ -2003,21 +1954,21 @@ } }, "clone": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", - "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", "dev": true }, "clone-deep": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.3.0.tgz", - "integrity": "sha1-NIxhrpzb4O3+BT2R/0zFIdeQ7eg=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", "dev": true, "requires": { "for-own": "1.0.0", "is-plain-object": "2.0.4", - "kind-of": "3.2.2", - "shallow-clone": "0.1.2" + "kind-of": "6.0.2", + "shallow-clone": "1.0.0" }, "dependencies": { "for-own": { @@ -2028,6 +1979,12 @@ "requires": { "for-in": "1.0.2" } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true } } }, @@ -2037,15 +1994,6 @@ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true }, - "coa": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", - "dev": true, - "requires": { - "q": "1.5.1" - } - }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -2053,9 +2001,9 @@ "dev": true }, "codelyzer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.1.0.tgz", - "integrity": "sha512-a3FCIAS3FNQIACvj7KA4iKvH3c6r7X6t6zXsrtV797QGYPQyCwD1fIEd9yV+ZDamijF3YaZ5fbB7QbUMOJGC/g==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.2.1.tgz", + "integrity": "sha512-CKwfgpfkqi9dyzy4s6ELaxJ54QgJ6A8iTSsM4bzHbLuTpbKncvNc3DUlCvpnkHBhK47gEf4qFsWoYqLrJPhy6g==", "dev": true, "requires": { "app-root-path": "2.0.1", @@ -2076,17 +2024,6 @@ "object-visit": "1.0.1" } }, - "color": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", - "dev": true, - "requires": { - "clone": "1.0.3", - "color-convert": "1.9.1", - "color-string": "0.3.0" - } - }, "color-convert": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", @@ -2101,26 +2038,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, - "color-string": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "colormin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", - "dev": true, - "requires": { - "color": "0.11.4", - "css-color-names": "0.0.4", - "has": "1.0.1" - } - }, "colors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", @@ -2210,23 +2127,31 @@ "dev": true }, "compressible": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz", - "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.13.tgz", + "integrity": "sha1-DRAgq5JLL9tNYnmHXH1tq6a6p6k=", "dev": true, "requires": { - "mime-db": "1.30.0" + "mime-db": "1.33.0" + }, + "dependencies": { + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "dev": true + } } }, "compression": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz", - "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.2.tgz", + "integrity": "sha1-qv+81qr4VLROuygDU9WtFlH1mmk=", "dev": true, "requires": { "accepts": "1.3.4", "bytes": "3.0.0", - "compressible": "2.0.12", + "compressible": "2.0.13", "debug": "2.6.9", "on-headers": "1.0.1", "safe-buffer": "5.1.1", @@ -2240,9 +2165,9 @@ "dev": true }, "concat-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-gslSSJx03QKa59cIKqeJO9HQ/WZMotvYJCuaUULrLpjj8oG40kV2Z+gz82pVxlTkOADi4PJxQPPfhl1ELYrrXw==", "dev": true, "requires": { "inherits": "2.0.3", @@ -2366,20 +2291,18 @@ "dev": true }, "copy-webpack-plugin": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.3.1.tgz", - "integrity": "sha512-xlcFiW/U7KrpS6dFuWq3r8Wb7koJx7QVc7LDFCosqkikaVSxkaYOnwDLwilbjrszZ0LYZXThDAJKcQCSrvdShQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.4.3.tgz", + "integrity": "sha512-v4THQ24Tks2NkyOvZuFDgZVfDD9YaA9rwYLZTrWg2GHIA8lrH5DboEyeoorh5Skki+PUbgSmnsCwhMWqYrQZrA==", "dev": true, "requires": { - "cacache": "10.0.2", + "cacache": "10.0.4", "find-cache-dir": "1.0.0", "globby": "7.1.1", "is-glob": "4.0.0", - "loader-utils": "0.2.17", - "lodash": "4.17.4", + "loader-utils": "1.1.0", "minimatch": "3.0.4", "p-limit": "1.2.0", - "pify": "3.0.0", "serialize-javascript": "1.4.0" }, "dependencies": { @@ -2397,18 +2320,6 @@ "requires": { "is-extglob": "2.1.1" } - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.1" - } } } }, @@ -2538,90 +2449,6 @@ "randomfill": "1.0.3" } }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-loader": { - "version": "0.28.9", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.9.tgz", - "integrity": "sha512-r3dgelMm/mkPz5Y7m9SeiGE46i2VsEU/OYbez+1llfxtv8b2y5/b5StaeEvPK3S5tlNQI+tDW/xDIhKJoZgDtw==", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "css-selector-tokenizer": "0.7.0", - "cssnano": "3.10.0", - "icss-utils": "2.1.0", - "loader-utils": "1.1.0", - "lodash.camelcase": "4.3.0", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-modules-extract-imports": "1.2.0", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0", - "postcss-value-parser": "3.3.0", - "source-list-map": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, "css-parse": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", @@ -2672,136 +2499,6 @@ "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", "dev": true }, - "cssnano": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", - "dev": true, - "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.1", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.2", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.0", - "postcss-zindex": "2.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000794", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000794", - "electron-to-chromium": "1.3.31" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "csso": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", - "dev": true, - "requires": { - "clap": "1.2.3", - "source-map": "0.5.7" - } - }, "cuint": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", @@ -2834,7 +2531,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.38" + "es5-ext": "0.10.39" } }, "d3": { @@ -3199,12 +2896,21 @@ } }, "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } } }, "defined": { @@ -3522,9 +3228,9 @@ } }, "duplexify": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz", - "integrity": "sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", + "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", "dev": true, "requires": { "end-of-stream": "1.4.1", @@ -3556,9 +3262,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.31", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.31.tgz", - "integrity": "sha512-XE4CLbswkZgZFn34cKFy1xaX+F5LHxeDLjY1+rsK9asDzknhbrd9g/n/01/acbU25KTsUSiLKwvlLyA+6XLUOA==", + "version": "1.3.36", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.36.tgz", + "integrity": "sha1-Dqv3Gp6+qQE/scw1o5DgaGJPJ+g=", "dev": true }, "elliptic": { @@ -3687,9 +3393,9 @@ "dev": true }, "errno": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", - "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { "prr": "1.0.1" @@ -3729,9 +3435,9 @@ } }, "es5-ext": { - "version": "0.10.38", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.38.tgz", - "integrity": "sha512-jCMyePo7AXbUESwbl8Qi01VSH2piY9s/a3rSU/5w/MlTIx8HPL1xn2InGN8ejt/xulcJgnTO7vqNtOAxzYd2Kg==", + "version": "0.10.39", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.39.tgz", + "integrity": "sha512-AlaXZhPHl0po/uxMx1tyrlt1O86M6D5iVaDH8UgLfgek4kXTX6vzsRfJQWC2Ku+aG8pkw1XWzh9eTkwfVrsD5g==", "dev": true, "requires": { "es6-iterator": "2.0.3", @@ -3745,7 +3451,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38", + "es5-ext": "0.10.39", "es6-symbol": "3.1.1" } }, @@ -3756,7 +3462,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38", + "es5-ext": "0.10.39", "es6-iterator": "2.0.3", "es6-set": "0.1.5", "es6-symbol": "3.1.1", @@ -3770,7 +3476,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38", + "es5-ext": "0.10.39", "es6-iterator": "2.0.3", "es6-symbol": "3.1.1", "event-emitter": "0.3.5" @@ -3783,7 +3489,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38" + "es5-ext": "0.10.39" } }, "es6-weak-map": { @@ -3793,7 +3499,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38", + "es5-ext": "0.10.39", "es6-iterator": "2.0.3", "es6-symbol": "3.1.1" } @@ -3841,7 +3547,7 @@ "requires": { "es6-map": "0.1.5", "es6-weak-map": "2.0.2", - "esrecurse": "4.2.0", + "esrecurse": "4.2.1", "estraverse": "4.2.0" } }, @@ -3852,13 +3558,12 @@ "dev": true }, "esrecurse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", - "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0", - "object-assign": "4.1.1" + "estraverse": "4.2.0" } }, "estraverse": { @@ -3886,7 +3591,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38" + "es5-ext": "0.10.39" } }, "eventemitter3": { @@ -4016,16 +3721,6 @@ "fill-range": "2.2.3" } }, - "exports-loader": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.6.4.tgz", - "integrity": "sha1-1w/GEhl1s1/BKDDPUnVL4nQPyIY=", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "source-map": "0.5.7" - } - }, "express": { "version": "4.16.2", "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", @@ -4085,12 +3780,24 @@ "dev": true }, "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } } }, "extglob": { @@ -4112,6 +3819,29 @@ "loader-utils": "1.1.0", "schema-utils": "0.3.0", "webpack-sources": "1.1.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "5.5.2" + } + } } }, "extsprintf": { @@ -4121,9 +3851,9 @@ "dev": true }, "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", "dev": true }, "fast-json-stable-stringify": { @@ -4155,13 +3885,13 @@ } }, "file-loader": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.6.tgz", - "integrity": "sha512-873ztuL+/hfvXbLDJ262PGO6XjERnybJu2gW1/5j8HUfxSiFJI9Hj/DhZ50ZGRUxBvuNiazb/cM2rh9pqrxP6Q==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", + "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", "dev": true, "requires": { "loader-utils": "1.1.0", - "schema-utils": "0.3.0" + "schema-utils": "0.4.5" } }, "file-uri-to-path": { @@ -4188,9 +3918,9 @@ } }, "filesize": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.5.11.tgz", - "integrity": "sha512-ZH7loueKBoDb7yG9esn1U+fgq7BzlzW6NRi5/rMdxIZ05dj7GFD/Xc5rq2CDt5Yq86CyfSYVyx4242QQNZbx1g==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.0.tgz", + "integrity": "sha512-g5OWtoZWcPI56js1DFhIEqyG9tnu/7sG3foHwgS9KGYFMfsYguI3E+PRVCmtmE96VajQIEMRU2OhN+ME589Gdw==", "dev": true }, "fill-range": { @@ -4228,7 +3958,7 @@ "dev": true, "requires": { "commondir": "1.0.1", - "make-dir": "1.1.0", + "make-dir": "1.2.0", "pkg-dir": "2.0.0" } }, @@ -4241,12 +3971,6 @@ "locate-path": "2.0.0" } }, - "flatten": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", - "dev": true - }, "flush-write-stream": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", @@ -5629,6 +5353,16 @@ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, + "gzip-size": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-4.1.0.tgz", + "integrity": "sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw=", + "dev": true, + "requires": { + "duplexer": "0.1.1", + "pify": "3.0.0" + } + }, "hammerjs": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", @@ -5938,9 +5672,9 @@ } }, "hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", "dev": true }, "hpack.js": { @@ -5955,12 +5689,6 @@ "wbuf": "1.7.2" } }, - "html-comment-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", - "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", - "dev": true - }, "html-entities": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", @@ -5968,25 +5696,25 @@ "dev": true }, "html-minifier": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.8.tgz", - "integrity": "sha512-WX7D6PB9PFq05fZ1/CyxPUuyqXed6vh2fGOM80+zJT5wAO93D/cUjLs0CcbBFjQmlwmCgRvl97RurtArIpOnkw==", + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.10.tgz", + "integrity": "sha512-5c8iAyeIGAiuFhVjJ0qy1lgvyQxxuZgjeOuMnoK/wjEyy8DF3xKUnE9pO+6H7VMir976K6SGlZV8ZEmIOea/Zg==", "dev": true, "requires": { "camel-case": "3.0.0", - "clean-css": "4.1.9", - "commander": "2.12.2", + "clean-css": "4.1.11", + "commander": "2.14.1", "he": "1.1.1", "ncname": "1.0.0", "param-case": "2.1.1", "relateurl": "0.2.7", - "uglify-js": "3.3.8" + "uglify-js": "3.3.13" }, "dependencies": { "commander": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz", - "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==", + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", "dev": true } } @@ -5998,7 +5726,7 @@ "dev": true, "requires": { "bluebird": "3.5.1", - "html-minifier": "3.5.8", + "html-minifier": "3.5.10", "loader-utils": "0.2.17", "lodash": "4.17.4", "pretty-error": "2.1.1", @@ -6105,9 +5833,9 @@ } }, "http-parser-js": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz", - "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.11.tgz", + "integrity": "sha512-QCR5O2AjjMW8Mo4HyI1ctFcv+O99j/0g367V3YoVnrNw5hkDvAWZD0lWGcc+F4yN3V55USPCVix4efb75HxFfA==", "dev": true }, "http-proxy": { @@ -6209,21 +5937,6 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "dev": true, - "requires": { - "postcss": "6.0.16" - } - }, "ieee754": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", @@ -6281,12 +5994,6 @@ "repeating": "2.0.1" } }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", @@ -6425,9 +6132,9 @@ "integrity": "sha1-giRKIZDE5Bn4Nx9ao02qNCDiq94=" }, "invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", + "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", "dev": true, "requires": { "loose-envify": "1.3.1" @@ -6451,12 +6158,6 @@ "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=", "dev": true }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", @@ -6635,22 +6336,19 @@ } }, "is-odd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz", - "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "dev": true, "requires": { - "is-number": "3.0.0" + "is-number": "4.0.0" }, "dependencies": { "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true } } }, @@ -6678,12 +6376,6 @@ "path-is-inside": "1.0.2" } }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -6735,15 +6427,6 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, - "is-svg": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", - "dev": true, - "requires": { - "html-comment-regex": "1.1.1" - } - }, "is-symbol": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", @@ -6762,6 +6445,12 @@ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, "is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", @@ -6802,19 +6491,19 @@ "dev": true }, "istanbul-api": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.2.1.tgz", - "integrity": "sha512-oFCwXvd65amgaPCzqrR+a2XjanS1MvpXN6l/MlMUTv6uiA1NOgGX+I0uyq8Lg3GDxsxPsaP1049krz3hIJ5+KA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.2.2.tgz", + "integrity": "sha512-kH5YRdqdbs5hiH4/Rr1Q0cSAGgjh3jTtg8vu9NLebBAoK3adVO4jk81J+TYOkTr2+Q4NLeb1ACvmEt65iG/Vbw==", "dev": true, "requires": { "async": "2.6.0", "fileset": "2.0.3", - "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-coverage": "1.1.2", "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.9.1", - "istanbul-lib-report": "1.1.2", - "istanbul-lib-source-maps": "1.2.2", - "istanbul-reports": "1.1.3", + "istanbul-lib-instrument": "1.9.2", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.3", + "istanbul-reports": "1.1.4", "js-yaml": "3.7.0", "mkdirp": "0.5.1", "once": "1.4.0" @@ -6827,15 +6516,38 @@ "dev": true, "requires": { "convert-source-map": "1.5.1", - "istanbul-lib-instrument": "1.9.1", + "istanbul-lib-instrument": "1.9.2", "loader-utils": "1.1.0", "schema-utils": "0.3.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "5.5.2" + } + } } }, "istanbul-lib-coverage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", - "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.2.tgz", + "integrity": "sha512-tZYA0v5A7qBSsOzcebJJ/z3lk3oSzH62puG78DbBA1+zupipX2CakDyiPV3pOb8He+jBwVimuwB0dTnh38hX0w==", "dev": true }, "istanbul-lib-hook": { @@ -6848,27 +6560,27 @@ } }, "istanbul-lib-instrument": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", - "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.2.tgz", + "integrity": "sha512-nz8t4HQ2206a/3AXi+NHFWEa844DMpPsgbcUteJbt1j8LX1xg56H9rOMnhvcvVvPbW60qAIyrSk44H8ZDqaSSA==", "dev": true, "requires": { - "babel-generator": "6.26.0", + "babel-generator": "6.26.1", "babel-template": "6.26.0", "babel-traverse": "6.26.0", "babel-types": "6.26.0", "babylon": "6.18.0", - "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-coverage": "1.1.2", "semver": "5.5.0" } }, "istanbul-lib-report": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", - "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", + "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", "dev": true, "requires": { - "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-coverage": "1.1.2", "mkdirp": "0.5.1", "path-parse": "1.0.5", "supports-color": "3.2.3" @@ -6892,13 +6604,13 @@ } }, "istanbul-lib-source-maps": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", - "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", + "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", "dev": true, "requires": { "debug": "3.1.0", - "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-coverage": "1.1.2", "mkdirp": "0.5.1", "rimraf": "2.6.2", "source-map": "0.5.7" @@ -6916,9 +6628,9 @@ } }, "istanbul-reports": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", - "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.4.tgz", + "integrity": "sha512-DfSTVOTkuO+kRmbO8Gk650Wqm1WRGr6lrdi2EwDK1vxpS71vdlLd613EpzOKdIFioB5f/scJTjeWBnvd1FWejg==", "dev": true, "requires": { "handlebars": "4.0.11" @@ -6965,10 +6677,11 @@ "dev": true }, "js-base64": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.2.tgz", - "integrity": "sha512-lLkz3IRPTNeATsKQGeltbzRK/5+bWsXBHfpZrxJAi4N30RtCtNA+rJznp4uR2+4OgkBsoeeFwONVLr4gzIVErQ==", - "dev": true + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz", + "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==", + "dev": true, + "optional": true }, "js-tokens": { "version": "3.0.2", @@ -7147,12 +6860,12 @@ } }, "karma-coverage-istanbul-reporter": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.4.1.tgz", - "integrity": "sha512-5og0toMjgLvsL9+TzGH4Rk1D0nr7pMIRJBg29xP4mHMKy/1KUJ12UzoqI6mBNCRFa4nDvZS2MRrN7p+RkZNWxQ==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.4.2.tgz", + "integrity": "sha512-sQHexslLF+QHzaKfK8+onTYMyvSwv+p5cDayVxhpEELGa3z0QuB+l0IMsicIkkBNMOJKQaqueiRoW7iuo7lsog==", "dev": true, "requires": { - "istanbul-api": "1.2.1", + "istanbul-api": "1.2.2", "minimatch": "3.0.4" } }, @@ -7215,9 +6928,9 @@ } }, "lazy-cache": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", - "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true }, "lcid": { @@ -7235,7 +6948,7 @@ "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==", "dev": true, "requires": { - "errno": "0.1.6", + "errno": "0.1.7", "graceful-fs": "4.1.11", "image-size": "0.5.5", "mime": "1.6.0", @@ -7246,28 +6959,14 @@ } }, "less-loader": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.0.5.tgz", - "integrity": "sha1-rhVadAbKxqzSk9eFWH/P8PR4xN0=", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.0.6.tgz", + "integrity": "sha512-WPFY3NMJGJna8kIxtgSu6AVG7K6uRPdfE2J7vpQqFWMN/RkOosV09rOVUt3wghNClWH2Pg7YumD1dHiv1Thfug==", "dev": true, "requires": { "clone": "2.1.1", "loader-utils": "1.1.0", - "pify": "2.3.0" - }, - "dependencies": { - "clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "pify": "3.0.0" } }, "levn": { @@ -7322,9 +7021,9 @@ "dev": true }, "license-webpack-plugin": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-1.1.1.tgz", - "integrity": "sha512-TjKOyiC0exqd4Idy/4M8/DETR22dXBZks387DuS5LbslxHiMRXGx/Q2F/j9IUtvEoH5uFvt72vRgk/G6f8j3Dg==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-1.2.3.tgz", + "integrity": "sha512-+sie46vNe5L48N94LEzEvreJqAdi+N3x3mXUx+iujuAmftWdJUh68RSDPgWK3DRJuu50dwiyH7MdVAx95zfKQA==", "dev": true, "requires": { "ejs": "2.5.7" @@ -7391,28 +7090,16 @@ "dev": true, "optional": true }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, "lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, "lodash.mergewith": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz", - "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", "dev": true, "optional": true }, @@ -7422,12 +7109,6 @@ "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", "dev": true }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, "log4js": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/log4js/-/log4js-2.5.2.tgz", @@ -7632,12 +7313,6 @@ "yallist": "2.1.2" } }, - "macaddress": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", - "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=", - "dev": true - }, "magic-string": { "version": "0.22.4", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.4.tgz", @@ -7713,9 +7388,9 @@ } }, "make-dir": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", - "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", + "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", "dev": true, "requires": { "pify": "3.0.0" @@ -7748,12 +7423,6 @@ "object-visit": "1.0.1" } }, - "math-expression-evaluator": { - "version": "1.2.17", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", - "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", - "dev": true - }, "md5.js": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", @@ -7788,7 +7457,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "1.2.0" } }, "memory-fs": { @@ -7797,7 +7466,7 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { - "errno": "0.1.6", + "errno": "0.1.7", "readable-stream": "2.3.3" } }, @@ -7892,9 +7561,9 @@ } }, "mimic-fn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", - "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, "minimalistic-assert": { @@ -7925,27 +7594,27 @@ "dev": true }, "mississippi": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-1.3.0.tgz", - "integrity": "sha1-0gFYPrEjJ+PFwWQqQEqcrPlONPU=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "dev": true, "requires": { - "concat-stream": "1.6.0", - "duplexify": "3.5.3", + "concat-stream": "1.6.1", + "duplexify": "3.5.4", "end-of-stream": "1.4.1", "flush-write-stream": "1.0.2", "from2": "2.3.0", "parallel-transform": "1.1.0", - "pump": "1.0.3", + "pump": "2.0.1", "pumpify": "1.4.0", "stream-each": "1.2.2", "through2": "2.0.3" } }, "mixin-deep": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.0.tgz", - "integrity": "sha512-dgaCvoh6i1nosAUBKb0l0pfJ78K8+S9fluyIR2YvAeUD/QuMahnFnF3xYty5eYXMjhGSsB0DsW6A0uAZyetoAg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { "for-in": "1.0.2", @@ -8049,9 +7718,9 @@ } }, "moment": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz", - "integrity": "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==" + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.21.0.tgz", + "integrity": "sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ==" }, "move-concurrently": { "version": "1.0.1", @@ -8074,13 +7743,13 @@ "dev": true }, "multicast-dns": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.2.tgz", - "integrity": "sha512-xTO41ApiRHMVDBYhNL9bEhx7kRf1hq3OqPOnOy8bpTi0JZSxVPDre7ZRpTHLDlxmhf6d/FL+10E8VX1QRd+0DA==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "dev": true, "requires": { "dns-packet": "1.3.1", - "thunky": "0.1.0" + "thunky": "1.0.2" } }, "multicast-dns-service-types": { @@ -8097,22 +7766,23 @@ "optional": true }, "nanomatch": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.7.tgz", - "integrity": "sha512-/5ldsnyurvEw7wNpxLFgjVvBLMta43niEYOy0CJ4ntcYSbx6bugRUTQeFb4BR/WanEL1o3aQgHuVLHQaB6tOqg==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", "fragment-cache": "0.2.1", - "is-odd": "1.0.0", - "kind-of": "5.1.0", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", "object.pick": "1.3.0", - "regex-not": "1.0.0", + "regex-not": "1.0.2", "snapdragon": "0.8.1", - "to-regex": "3.0.1" + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -8128,9 +7798,9 @@ "dev": true }, "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } @@ -8150,6 +7820,12 @@ "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", "dev": true }, + "neo-async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.0.tgz", + "integrity": "sha512-nJmSswG4As/MkRq7QZFuH/sf/yuv8ODdMZrY4Bedjp77a5MK4A6s7YbBB64c9u79EBUOfXUXBvArmvzTD0X+6g==", + "dev": true + }, "netmask": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", @@ -8162,7 +7838,7 @@ "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-1.6.0.tgz", "integrity": "sha512-9w0WH69x5/nuqC1og2WaY39NbaBqTGIP1+5gZaH7/KPN6UEPonNg/pYnsIVklLj1DWPWXKa8+XXIJZ1jy5nLxg==", "requires": { - "chart.js": "2.7.1" + "chart.js": "2.7.2" } }, "ngrx-store-freeze": { @@ -8174,9 +7850,9 @@ } }, "ngx-color-picker": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ngx-color-picker/-/ngx-color-picker-5.3.1.tgz", - "integrity": "sha512-03rrkv718RbeuHfEpr6PHnRy8xI2ncg0i3fW6jBPfNoHZQLDXh+7bY7xcdDKc9m52OtsPkvhriEwXbuY4EeckQ==" + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/ngx-color-picker/-/ngx-color-picker-5.3.4.tgz", + "integrity": "sha512-FtbmsShr0gqijZbnP6SZQ3K4KnBP6hVXa0ncN1tguiWV9BBtYcJ4DIWazzfTZXdzTCMF+RvzDolnGYOIhGP4IQ==" }, "ngx-cookie-service": { "version": "1.0.10", @@ -8193,9 +7869,9 @@ } }, "node-forge": { - "version": "0.6.33", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.33.tgz", - "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw=", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", + "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=", "dev": true }, "node-gyp": { @@ -8212,7 +7888,7 @@ "mkdirp": "0.5.1", "nopt": "3.0.6", "npmlog": "4.1.2", - "osenv": "0.1.4", + "osenv": "0.1.5", "request": "2.81.0", "rimraf": "2.6.2", "semver": "5.3.0", @@ -8263,7 +7939,7 @@ "stream-browserify": "2.0.1", "stream-http": "2.8.0", "string_decoder": "1.0.3", - "timers-browserify": "2.0.4", + "timers-browserify": "2.0.6", "tty-browserify": "0.0.0", "url": "0.11.0", "util": "0.10.3", @@ -8292,7 +7968,7 @@ "in-publish": "2.0.0", "lodash.assign": "4.2.0", "lodash.clonedeep": "4.5.0", - "lodash.mergewith": "4.6.0", + "lodash.mergewith": "4.6.1", "meow": "3.7.0", "mkdirp": "0.5.1", "nan": "2.8.0", @@ -8486,7 +8162,7 @@ "dev": true, "requires": { "abbrev": "1.1.1", - "osenv": "0.1.4" + "osenv": "0.1.5" } }, "normalize-package-data": { @@ -8495,10 +8171,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.5.0", + "hosted-git-info": "2.6.0", "is-builtin-module": "1.0.0", "semver": "5.5.0", - "validate-npm-package-license": "3.0.1" + "validate-npm-package-license": "3.0.3" } }, "normalize-path": { @@ -8516,18 +8192,6 @@ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" - } - }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -8837,9 +8501,9 @@ "dev": true }, "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { "os-homedir": "1.0.2", @@ -9202,38 +8866,42 @@ "dev": true }, "postcss": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", + "version": "6.0.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", + "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", "dev": true, "requires": { - "chalk": "2.3.0", + "chalk": "2.3.2", "source-map": "0.6.1", - "supports-color": "5.1.0" + "supports-color": "5.3.0" }, "dependencies": { - "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - }, - "dependencies": { - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - } + "color-convert": "1.9.1" } }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -9241,615 +8909,23 @@ "dev": true }, "supports-color": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "dev": true, "requires": { - "has-flag": "2.0.0" - } - } - } - }, - "postcss-calc": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-colormin": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "dev": true, - "requires": { - "colormin": "1.1.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-convert-values": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-discard-comments": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-discard-duplicates": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-discard-empty": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-discard-overridden": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-discard-unused": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "uniqs": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-filter-plugins": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", - "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "uniqid": "4.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" + "has-flag": "3.0.0" } } } }, "postcss-import": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-11.0.0.tgz", - "integrity": "sha1-qWLi34LTvFptpqOGhBdHIE9B71s=", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-11.1.0.tgz", + "integrity": "sha512-5l327iI75POonjxkXgdRCUS+AlzAdBx4pOvMEhTKTCjb1p8IEeVR9yx3cPbmN7LIWJLbfnIXxAhoB4jpD0c/Cw==", "dev": true, "requires": { - "postcss": "6.0.16", + "postcss": "6.0.19", "postcss-value-parser": "3.3.0", "read-cache": "1.0.0", "resolve": "1.5.0" @@ -9888,1095 +8964,27 @@ } }, "postcss-loader": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.0.10.tgz", - "integrity": "sha512-xQaDcEgJ/2JqFY18zpFkik8vyYs7oS5ZRbrjvDqkP97k2wYWfPT4+qA0m4o3pTSCsz0u26PNqs8ZO9FRUWAqrA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.1.tgz", + "integrity": "sha512-f0J/DWE/hyO9/LH0WHpXkny/ZZ238sSaG3p1SRBtVZnFWUtD7GXIEgHoBg8cnAeRbmEvUxHQptY46zWfwNYj/w==", "dev": true, "requires": { "loader-utils": "1.1.0", - "postcss": "6.0.16", + "postcss": "6.0.19", "postcss-load-config": "1.2.0", - "schema-utils": "0.3.0" - } - }, - "postcss-merge-idents": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", - "dev": true, - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-merge-longhand": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-merge-rules": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000794", - "electron-to-chromium": "1.3.31" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-message-helpers": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", - "dev": true - }, - "postcss-minify-font-values": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-minify-gradients": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-minify-params": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-minify-selectors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz", - "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", - "dev": true, - "requires": { - "postcss": "6.0.16" - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "dev": true, - "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.16" - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "dev": true, - "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.16" - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "dev": true, - "requires": { - "icss-replace-symbols": "1.1.0", - "postcss": "6.0.16" - } - }, - "postcss-normalize-charset": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-normalize-url": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", - "dev": true, - "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-ordered-values": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-reduce-idents": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-reduce-initial": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", - "dev": true, - "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-reduce-transforms": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", - "dev": true, - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "dev": true, - "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "postcss-svgo": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", - "dev": true, - "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "svgo": "0.7.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-unique-selectors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "uniqs": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } + "schema-utils": "0.4.5" } }, "postcss-url": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-7.3.0.tgz", - "integrity": "sha512-VBP6uf6iL3AZra23nkPkOEkS/5azj1xf/toRrjfkolfFEgg9Gyzg9UhJZeIsz12EGKZTNVeGbPa2XtaZm/iZvg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-7.3.1.tgz", + "integrity": "sha512-Ya5KIjGptgz0OtrVYfi2UbLxVAZ6Emc4Of+Grx4Sf1deWlRpFwLr8FrtkUxfqh+XiZIVkXbjQrddE10ESpNmdA==", "dev": true, "requires": { "mime": "1.6.0", "minimatch": "3.0.4", "mkdirp": "0.5.1", - "postcss": "6.0.16", + "postcss": "6.0.19", "xxhashjs": "0.2.2" } }, @@ -10986,85 +8994,12 @@ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", "dev": true }, - "postcss-zindex": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", - "dev": true, - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "uniqs": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", @@ -11123,7 +9058,7 @@ "integrity": "sha1-myIXQXCaTGLVzVPGqt1UpxE36V8=", "dev": true, "requires": { - "@types/node": "6.0.96", + "@types/node": "6.0.101", "@types/q": "0.0.32", "@types/selenium-webdriver": "2.53.43", "blocking-proxy": "0.0.5", @@ -11295,9 +9230,9 @@ } }, "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { "end-of-stream": "1.4.1", @@ -11310,21 +9245,9 @@ "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", "dev": true, "requires": { - "duplexify": "3.5.3", + "duplexify": "3.5.4", "inherits": "2.0.3", "pump": "2.0.1" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - } } }, "punycode": { @@ -11333,12 +9256,6 @@ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, "qjobs": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz", @@ -11351,16 +9268,6 @@ "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", "dev": true }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" - } - }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -11613,42 +9520,6 @@ "dev": true, "optional": true }, - "reduce-css-calc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - } - } - }, - "reduce-function-call": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", - "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", - "dev": true, - "requires": { - "balanced-match": "0.4.2" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - } - } - }, "reflect-metadata": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz", @@ -11677,12 +9548,13 @@ } }, "regex-not": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz", - "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "2.0.1" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "regexpu-core": { @@ -11871,6 +9743,12 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", @@ -11927,6 +9805,15 @@ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, "sass-graph": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", @@ -11941,15 +9828,15 @@ } }, "sass-loader": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.6.tgz", - "integrity": "sha512-c3/Zc+iW+qqDip6kXPYLEgsAu2lf4xz0EZDplB7EmSUMda12U1sGJPetH55B/j9eu0bTtKzKlNPWWyYC7wFNyQ==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.7.tgz", + "integrity": "sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA==", "dev": true, "requires": { - "async": "2.6.0", - "clone-deep": "0.3.0", + "clone-deep": "2.0.2", "loader-utils": "1.1.0", "lodash.tail": "4.1.1", + "neo-async": "2.5.0", "pify": "3.0.0" } }, @@ -11969,12 +9856,13 @@ "dev": true }, "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", + "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", "dev": true, "requires": { - "ajv": "5.5.2" + "ajv": "6.2.1", + "ajv-keywords": "3.1.0" } }, "scss-tokenizer": { @@ -11984,7 +9872,7 @@ "dev": true, "optional": true, "requires": { - "js-base64": "2.4.2", + "js-base64": "2.4.3", "source-map": "0.4.4" }, "dependencies": { @@ -12036,12 +9924,12 @@ } }, "selfsigned": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.1.tgz", - "integrity": "sha1-v4y3uDJWxFUeMTR8YxF3jbme7FI=", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.2.tgz", + "integrity": "sha1-tESVgNmZKbZbEKSDiTAaZZIIh1g=", "dev": true, "requires": { - "node-forge": "0.6.33" + "node-forge": "0.7.1" } }, "semver": { @@ -12059,6 +9947,15 @@ "semver": "5.5.0" } }, + "semver-intersect": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.3.1.tgz", + "integrity": "sha1-j6hKnhAovSOeRTDRo+GB5pjYhLo=", + "dev": true, + "requires": { + "semver": "5.5.0" + } + }, "send": { "version": "0.16.1", "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", @@ -12152,6 +10049,17 @@ "is-extendable": "0.1.1", "is-plain-object": "2.0.4", "split-string": "3.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } }, "setimmediate": { @@ -12177,25 +10085,21 @@ } }, "shallow-clone": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", - "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", "dev": true, "requires": { "is-extendable": "0.1.1", - "kind-of": "2.0.1", - "lazy-cache": "0.2.7", + "kind-of": "5.1.0", "mixin-object": "2.0.1" }, "dependencies": { "kind-of": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", - "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true } } }, @@ -12319,6 +10223,15 @@ "is-descriptor": "0.1.6" } }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -12389,6 +10302,15 @@ "snapdragon-util": "3.0.1" }, "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", @@ -12531,15 +10453,6 @@ "socks": "1.1.10" } }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "requires": { - "is-plain-obj": "1.1.0" - } - }, "source-list-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", @@ -12581,24 +10494,35 @@ "dev": true }, "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", "dev": true }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } + }, "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", "dev": true }, "spdy": { @@ -12637,27 +10561,6 @@ "dev": true, "requires": { "extend-shallow": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } } }, "sprintf-js": { @@ -12691,9 +10594,9 @@ } }, "ssri": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.1.0.tgz", - "integrity": "sha512-TevC8fgxQKTfQ1nWtM9GNzr3q5rrHNntG9CDMH1k3QhSZI6Kb+NbjLRs8oPFZa2Hgo7zoekL+UTvoEk7tsbjQg==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.2.4.tgz", + "integrity": "sha512-UnEAgMZa15973iH7cUi0AHjJn1ACDIkaMyZILoqwN6yzt+4P81I8tBc5Hl+qwi5auMplZtPQsHrPBR5vJLcQtQ==", "dev": true, "requires": { "safe-buffer": "5.1.1" @@ -12875,12 +10778,6 @@ } } }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -12947,12 +10844,36 @@ "dev": true }, "style-loader": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.2.tgz", - "integrity": "sha1-dFMzhM9pjHEEx5URULSXF63C87s=", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz", + "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==", "dev": true, "requires": { - "loader-utils": "1.1.0" + "loader-utils": "1.1.0", + "schema-utils": "0.3.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "5.5.2" + } + } } }, "stylus": { @@ -13001,9 +10922,9 @@ } }, "stylus-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.1.tgz", - "integrity": "sha1-d/SzT9Aw0lsmF7z1UT21sHMMQIk=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", + "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", "dev": true, "requires": { "loader-utils": "1.1.0", @@ -13037,21 +10958,6 @@ "has-flag": "2.0.0" } }, - "svgo": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", - "dev": true, - "requires": { - "coa": "1.0.4", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.4", - "whet.extend": "0.9.9" - } - }, "symbol-observable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", @@ -13116,9 +11022,9 @@ "optional": true }, "thunky": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz", - "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz", + "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=", "dev": true }, "ticky": { @@ -13133,9 +11039,9 @@ "dev": true }, "timers-browserify": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", - "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.6.tgz", + "integrity": "sha512-HQ3nbYRAowdVd0ckGFvmJPPCOH/CHleFN/Y0YQCX1DVaB7t+KFvisuyN09fuP8Jtp1CpfSh8O8bMkHbdbPe6Pw==", "dev": true, "requires": { "setimmediate": "1.0.5" @@ -13191,82 +11097,15 @@ } }, "to-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz", - "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "regex-not": "1.0.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -13428,15 +11267,15 @@ } }, "tsickle": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.26.0.tgz", - "integrity": "sha512-eWJ2CUfttGK0LqF9iJ/Avnxbj4M+fCyJ50Zag3wm73Fut1hsasPRHKxKdrMWVj4BMHnQNx7TO+DdNmLmJTSuNw==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.27.2.tgz", + "integrity": "sha512-KW+ZgY0t2cq2Qib1sfdgMiRnk+cr3brUtzZoVWjv+Ot3jNxVorFBUH+6In6hl8Dg7BI2AAFf69NHkwvZNMSFwA==", "dev": true, "requires": { "minimist": "1.2.0", "mkdirp": "0.5.1", - "source-map": "0.5.7", - "source-map-support": "0.4.18" + "source-map": "0.6.1", + "source-map-support": "0.5.3" }, "dependencies": { "minimist": { @@ -13444,6 +11283,21 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", + "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", + "dev": true, + "requires": { + "source-map": "0.6.1" + } } } }, @@ -13555,15 +11409,21 @@ "dev": true }, "uglify-js": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.8.tgz", - "integrity": "sha512-X0jAGtpSZRtd4RhbVNuGHyjZNa/h2MrVkKrR3Ew5iL2MJw6d7FmBke+fhVCALWySv1ygHnjjROG1KI1FAPvddw==", + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.13.tgz", + "integrity": "sha512-7rdn/bDOG1ElSTPdh7AI5TCjLv63ZD4k8BBadN3ssIkhlaQL2c0yRxmXCyOYhZK0wZTgGgUSnYQ4CGu+Jos5cA==", "dev": true, "requires": { - "commander": "2.13.0", + "commander": "2.14.1", "source-map": "0.6.1" }, "dependencies": { + "commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -13580,31 +11440,21 @@ "optional": true }, "uglifyjs-webpack-plugin": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.1.6.tgz", - "integrity": "sha512-VUja+7rYbznEvUaeb8IxOCTUrq4BCb1ml0vffa+mfwKtrAwlqnU0ENF14DtYltV1cxd/HSuK51CCA/D/8kMQVw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.2.tgz", + "integrity": "sha512-CG/NvzXfemUAm5Y4Guh5eEaJYHtkG7kKNpXEJHp9QpxsFVB5/qKvYWoMaq4sa99ccZ0hM3MK8vQV9XPZB4357A==", "dev": true, "requires": { - "cacache": "10.0.2", + "cacache": "10.0.4", "find-cache-dir": "1.0.0", - "schema-utils": "0.4.3", + "schema-utils": "0.4.5", "serialize-javascript": "1.4.0", "source-map": "0.6.1", - "uglify-es": "3.3.8", + "uglify-es": "3.3.9", "webpack-sources": "1.1.0", - "worker-farm": "1.5.2" + "worker-farm": "1.5.4" }, "dependencies": { - "schema-utils": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.3.tgz", - "integrity": "sha512-sgv/iF/T4/SewJkaVpldKC4WjSkz0JsOh2eKtxCPpCO1oR05+7MOF+H476HVRbLArkgA7j5TRJJ4p2jdFkUGQQ==", - "dev": true, - "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -13612,9 +11462,9 @@ "dev": true }, "uglify-es": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.8.tgz", - "integrity": "sha512-j8li0jWcAN6yBuAVYFZEFyYINZAm4WEdMwkA6qXFi4TLrze3Mp0Le7QjW6LR9HQjQJ2zRa9VgnFLs3PatijWOw==", + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", "dev": true, "requires": { "commander": "2.13.0", @@ -13653,6 +11503,15 @@ "set-value": "0.4.3" }, "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, "set-value": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", @@ -13667,27 +11526,6 @@ } } }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "uniqid": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", - "dev": true, - "requires": { - "macaddress": "0.2.8" - } - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, "unique-filename": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", @@ -13764,6 +11602,12 @@ } } }, + "upath": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.0.4.tgz", + "integrity": "sha512-d4SJySNBXDaQp+DPrziv3xGS6w3d2Xt69FijJr86zMPBy23JEloMCEOUBBzuN7xCtjLCnmB9tI/z7SBCahHBOw==", + "dev": true + }, "upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", @@ -13803,6 +11647,29 @@ "loader-utils": "1.1.0", "mime": "1.6.0", "schema-utils": "0.3.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "5.5.2" + } + } } }, "url-parse": { @@ -13993,13 +11860,13 @@ } }, "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "vary": { @@ -14008,12 +11875,6 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, - "vendors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", - "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=", - "dev": true - }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -14055,14 +11916,338 @@ "dev": true }, "watchpack": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", - "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.5.0.tgz", + "integrity": "sha512-RSlipNQB1u48cq0wH/BNfCu1tD/cJ8ydFIkNYhp9o+3d+8unClkIovpW5qpFPgmL9OE48wfAnlZydXByWP82AA==", "dev": true, "requires": { - "async": "2.6.0", - "chokidar": "1.7.0", - "graceful-fs": "4.1.11" + "chokidar": "2.0.2", + "graceful-fs": "4.1.11", + "neo-async": "2.5.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "3.1.9", + "normalize-path": "2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", + "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "kind-of": "6.0.2", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "chokidar": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.2.tgz", + "integrity": "sha512-l32Hw3wqB0L2kGVmSbK/a+xXLDrUEsc84pSgMkmwygHvD7ubRsP/vxxHa5BtB6oix1XLLVCHyYMsckRXxThmZw==", + "dev": true, + "requires": { + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.1", + "fsevents": "1.1.3", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0", + "upath": "1.0.4" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz", + "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.1", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + } + } } }, "wbuf": { @@ -14149,15 +12334,15 @@ } }, "webpack": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.10.0.tgz", - "integrity": "sha512-fxxKXoicjdXNUMY7LIdY89tkJJJ0m1Oo8PQutZ5rLgWbV5QVKI15Cn7+/IHnRTd3vfKfiwBx6SBqlorAuNA8LA==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.11.0.tgz", + "integrity": "sha512-3kOFejWqj5ISpJk4Qj/V7w98h9Vl52wak3CLiw/cDOfbVTq7FeoZ0SdoHHY9PYlHr50ZS42OfvzE2vB4nncKQg==", "dev": true, "requires": { "acorn": "5.3.0", "acorn-dynamic-import": "2.0.2", - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", + "ajv": "6.2.1", + "ajv-keywords": "3.1.0", "async": "2.6.0", "enhanced-resolve": "3.4.1", "escope": "3.6.0", @@ -14173,7 +12358,7 @@ "supports-color": "4.5.0", "tapable": "0.2.8", "uglifyjs-webpack-plugin": "0.4.6", - "watchpack": "1.4.0", + "watchpack": "1.5.0", "webpack-sources": "1.1.0", "yargs": "8.0.2" }, @@ -14335,6 +12520,12 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, "yargs": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", @@ -14408,55 +12599,68 @@ } }, "webpack-bundle-analyzer": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.10.0.tgz", - "integrity": "sha512-eA/9F/ZLFlVXfCLYqefHFbelJ3JcvyeFdmpAG6Vu3iJNcisj3KWNPqu00lCqK9caeaesipVrGb9alUSi2lEvAg==", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.11.1.tgz", + "integrity": "sha512-VKUVkVMc6TWVXmF1OxsBXoiRjYiDRA4XT0KqtbLMDK+891VX7FCuklYwzldND8J2upUcHHnuXYNTP+4mSFi4Kg==", "dev": true, "requires": { "acorn": "5.3.0", - "bfj-node4": "5.2.0", - "chalk": "2.3.0", + "bfj-node4": "5.2.1", + "chalk": "2.3.2", "commander": "2.13.0", "ejs": "2.5.7", "express": "4.16.2", - "filesize": "3.5.11", + "filesize": "3.6.0", "gzip-size": "4.1.0", "lodash": "4.17.4", "mkdirp": "0.5.1", "opener": "1.4.3", - "ws": "4.0.0" + "ws": "4.1.0" }, "dependencies": { - "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "color-convert": "1.9.1" } }, - "gzip-size": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-4.1.0.tgz", - "integrity": "sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw=", + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "dev": true, "requires": { - "duplexer": "0.1.1", - "pify": "3.0.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" } }, "ws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-4.0.0.tgz", - "integrity": "sha512-QYslsH44bH8O7/W2815u5DpnCpXWpEK44FmaHffNwgJI4JMaSZONgPBTOfrxJ29mXKbXak+LsJ2uAkDTYq2ptQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", + "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", "dev": true, "requires": { "async-limiter": "1.0.0", - "safe-buffer": "5.1.1", - "ultron": "1.1.1" + "safe-buffer": "5.1.1" } } } @@ -14502,16 +12706,16 @@ } }, "webpack-dev-server": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.1.tgz", - "integrity": "sha512-ombhu5KsO/85sVshIDTyQ5HF3xjZR3N0sf5Ao6h3vFwpNyzInEzA1GV3QPVjTMLTNckp8PjfG1PFGznzBwS5lg==", + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.2.tgz", + "integrity": "sha512-zrPoX97bx47vZiAXfDrkw8pe9QjJ+lunQl3dypojyWwWr1M5I2h0VSrMPfTjopHQPRNn+NqfjcMmhoLcUJe2gA==", "dev": true, "requires": { "ansi-html": "0.0.7", "array-includes": "3.0.3", "bonjour": "3.5.0", - "chokidar": "2.0.0", - "compression": "1.7.1", + "chokidar": "2.0.2", + "compression": "1.7.2", "connect-history-api-fallback": "1.5.0", "debug": "3.1.0", "del": "3.0.0", @@ -14525,13 +12729,13 @@ "loglevel": "1.6.1", "opn": "5.1.0", "portfinder": "1.0.13", - "selfsigned": "1.10.1", + "selfsigned": "1.10.2", "serve-index": "1.9.1", "sockjs": "0.3.19", "sockjs-client": "1.1.4", "spdy": "3.4.7", "strip-ansi": "3.0.1", - "supports-color": "5.1.0", + "supports-color": "5.3.0", "webpack-dev-middleware": "1.12.2", "yargs": "6.6.0" }, @@ -14542,7 +12746,7 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "3.1.5", + "micromatch": "3.1.9", "normalize-path": "2.1.1" } }, @@ -14559,9 +12763,9 @@ "dev": true }, "braces": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.0.tgz", - "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", + "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", "dev": true, "requires": { "arr-flatten": "1.1.0", @@ -14570,11 +12774,32 @@ "extend-shallow": "2.0.1", "fill-range": "4.0.0", "isobject": "3.0.1", + "kind-of": "6.0.2", "repeat-element": "1.1.2", "snapdragon": "0.8.1", "snapdragon-node": "2.1.1", "split-string": "3.1.0", - "to-regex": "3.0.1" + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } }, "camelcase": { @@ -14584,14 +12809,14 @@ "dev": true }, "chokidar": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.0.tgz", - "integrity": "sha512-OgXCNv2U6TnG04D3tth0gsvdbV4zdbxFG3sYUqcoQMoEFVd1j1pZR6TZ8iknC45o9IJ6PeQI/J6wT/+cHcniAw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.2.tgz", + "integrity": "sha512-l32Hw3wqB0L2kGVmSbK/a+xXLDrUEsc84pSgMkmwygHvD7ubRsP/vxxHa5BtB6oix1XLLVCHyYMsckRXxThmZw==", "dev": true, "requires": { "anymatch": "2.0.0", "async-each": "1.0.1", - "braces": "2.3.0", + "braces": "2.3.1", "fsevents": "1.1.3", "glob-parent": "3.1.0", "inherits": "2.0.3", @@ -14599,7 +12824,8 @@ "is-glob": "4.0.0", "normalize-path": "2.1.1", "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "readdirp": "2.1.0", + "upath": "1.0.4" } }, "debug": { @@ -14621,9 +12847,9 @@ "define-property": "0.2.5", "extend-shallow": "2.0.1", "posix-character-classes": "0.1.1", - "regex-not": "1.0.0", + "regex-not": "1.0.2", "snapdragon": "0.8.1", - "to-regex": "3.0.1" + "to-regex": "3.0.2" }, "dependencies": { "debug": { @@ -14643,6 +12869,32 @@ "requires": { "is-descriptor": "0.1.6" } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true } } }, @@ -14657,9 +12909,29 @@ "expand-brackets": "2.1.4", "extend-shallow": "2.0.1", "fragment-cache": "0.2.1", - "regex-not": "1.0.0", + "regex-not": "1.0.2", "snapdragon": "0.8.1", - "to-regex": "3.0.1" + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } }, "fill-range": { @@ -14672,6 +12944,17 @@ "is-number": "3.0.0", "repeat-string": "1.6.1", "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } }, "glob-parent": { @@ -14695,6 +12978,12 @@ } } }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -14735,25 +13024,6 @@ } } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -14802,35 +13072,41 @@ "dev": true }, "micromatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.5.tgz", - "integrity": "sha512-ykttrLPQrz1PUJcXjwsTUjGoPJ64StIGNE2lGVD1c9CuguJ+L7/navsE8IcDNndOoCMvYV0qc/exfVbMHkUhvA==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz", + "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==", "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", - "braces": "2.3.0", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", + "braces": "2.3.1", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", "extglob": "2.0.4", "fragment-cache": "0.2.1", "kind-of": "6.0.2", - "nanomatch": "1.2.7", + "nanomatch": "1.2.9", "object.pick": "1.3.0", - "regex-not": "1.0.0", + "regex-not": "1.0.2", "snapdragon": "0.8.1", - "to-regex": "3.0.1" + "to-regex": "3.0.2" } }, "supports-color": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "3.0.0" } }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, "yargs": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", @@ -14864,12 +13140,20 @@ } }, "webpack-merge": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.1.tgz", - "integrity": "sha512-geQsZ86YkXOVOjvPC5yv3JSNnL6/X3Kzh935AQ/gJNEYXEfJDQFu/sdFuktS9OW2JcH/SJec8TGfRdrpHshH7A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.2.tgz", + "integrity": "sha512-/0QYwW/H1N/CdXYA2PNPVbsxO3u2Fpz34vs72xm03SRfg6bMNGfMJIQEpQjKRvkG2JvT6oRJFpDtSrwbX8Jzvw==", "dev": true, "requires": { - "lodash": "4.17.4" + "lodash": "4.17.5" + }, + "dependencies": { + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + } } }, "webpack-sources": { @@ -14891,9 +13175,9 @@ } }, "webpack-subresource-integrity": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.0.3.tgz", - "integrity": "sha1-wGBtQAkLBwzeQovsjfNgMhbkcus=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.0.4.tgz", + "integrity": "sha1-j6yKfo61n8ahZ2ioXJ2U7n+dDts=", "dev": true, "requires": { "webpack-core": "0.6.9" @@ -14905,7 +13189,7 @@ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "dev": true, "requires": { - "http-parser-js": "0.4.9", + "http-parser-js": "0.4.11", "websocket-extensions": "0.1.3" } }, @@ -14921,12 +13205,6 @@ "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", "dev": true }, - "whet.extend": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", - "dev": true - }, "which": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", @@ -14964,12 +13242,12 @@ "dev": true }, "worker-farm": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.2.tgz", - "integrity": "sha512-XxiQ9kZN5n6mmnW+mFJ+wXjNNI/Nx4DIdaAKLX1Bn6LYBWlN/zaBhu34DQYPZ1AJobQuu67S2OfDdNSVULvXkQ==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.4.tgz", + "integrity": "sha512-ITyClEvcfv0ozqJl1vmWFWhvI+OIrkbInYqkEPE50wFPXj8J9Gd3FYf8+CkZJXJJsQBYe+2DvmoK9Zhx5w8W+w==", "dev": true, "requires": { - "errno": "0.1.6", + "errno": "0.1.7", "xtend": "4.0.1" } }, @@ -15056,9 +13334,9 @@ } }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yallist": { @@ -15095,6 +13373,13 @@ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", "dev": true, "optional": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true, + "optional": true } } }, diff --git a/package.json b/package.json index 28fc82ee..e4581dc3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "fuse2", - "version": "1.3.6", + "name": "fuse", + "version": "5.2.8", "license": "https://themeforest.net/licenses/terms/regular", "scripts": { "ng": "ng", @@ -19,40 +19,40 @@ "private": true, "dependencies": { "@agm/core": "1.0.0-beta.2", - "@angular/animations": "5.2.3", - "@angular/cdk": "5.1.1", - "@angular/common": "5.2.3", - "@angular/compiler": "5.2.3", - "@angular/core": "5.2.3", - "@angular/flex-layout": "2.0.0-beta.12", - "@angular/forms": "5.2.3", - "@angular/http": "5.2.3", - "@angular/material": "5.1.1", - "@angular/material-moment-adapter": "5.1.1", - "@angular/platform-browser": "5.2.3", - "@angular/platform-browser-dynamic": "5.2.3", - "@angular/router": "5.2.3", - "@ngrx/effects": "5.0.0", - "@ngrx/router-store": "5.0.0", - "@ngrx/store": "5.0.0", - "@ngrx/store-devtools": "5.0.0", + "@angular/animations": "5.2.8", + "@angular/cdk": "5.2.4", + "@angular/common": "5.2.8", + "@angular/compiler": "5.2.8", + "@angular/core": "5.2.8", + "@angular/flex-layout": "5.0.0-beta.13", + "@angular/forms": "5.2.8", + "@angular/http": "5.2.8", + "@angular/material": "5.2.4", + "@angular/material-moment-adapter": "5.2.4", + "@angular/platform-browser": "5.2.8", + "@angular/platform-browser-dynamic": "5.2.8", + "@angular/router": "5.2.8", + "@ngrx/effects": "5.2.0", + "@ngrx/router-store": "5.2.0", + "@ngrx/store": "5.2.0", + "@ngrx/store-devtools": "5.2.0", "@ngx-translate/core": "9.1.1", - "@swimlane/ngx-charts": "7.0.1", - "@swimlane/ngx-datatable": "11.1.7", + "@swimlane/ngx-charts": "7.1.1", + "@swimlane/ngx-datatable": "11.2.0", "@swimlane/ngx-dnd": "3.1.0", "@types/prismjs": "1.9.0", - "angular-calendar": "0.23.3", + "angular-calendar": "0.23.6", "angular-in-memory-web-api": "0.5.3", - "chart.js": "2.7.1", + "chart.js": "2.7.2", "classlist.js": "1.1.20150312", "core-js": "2.5.3", "d3": "4.13.0", "hammerjs": "2.0.8", "intl": "1.2.5", - "moment": "2.20.1", + "moment": "2.21.0", "ng2-charts": "1.6.0", "ngrx-store-freeze": "0.2.1", - "ngx-color-picker": "5.3.1", + "ngx-color-picker": "5.3.4", "ngx-cookie-service": "1.0.10", "perfect-scrollbar": "1.3.0", "prismjs": "1.11.0", @@ -61,25 +61,25 @@ "zone.js": "0.8.20" }, "devDependencies": { - "@angular/cli": "1.6.7", - "@angular/compiler-cli": "5.2.3", - "@angular/language-service": "5.2.3", + "@angular/cli": "1.7.3", + "@angular/compiler-cli": "5.2.8", + "@angular/language-service": "5.2.8", "@angularclass/hmr": "2.1.3", "@types/jasmine": "2.8.6", "@types/jasminewd2": "2.0.3", - "@types/node": "6.0.96", - "codelyzer": "4.1.0", + "@types/node": "6.0.101", + "codelyzer": "4.2.1", "jasmine-core": "2.8.0", "jasmine-spec-reporter": "4.2.1", "karma": "2.0.0", "karma-chrome-launcher": "2.2.0", - "karma-coverage-istanbul-reporter": "1.4.1", + "karma-coverage-istanbul-reporter": "1.4.2", "karma-jasmine": "1.1.1", "karma-jasmine-html-reporter": "0.2.2", "protractor": "5.1.2", "ts-node": "4.1.0", "tslint": "5.9.1", "typescript": "2.6.2", - "webpack-bundle-analyzer": "2.10.0" + "webpack-bundle-analyzer": "2.11.1" } } diff --git a/src/app/core/animations.ts b/src/@fuse/animations/index.ts similarity index 100% rename from src/app/core/animations.ts rename to src/@fuse/animations/index.ts diff --git a/src/app/core/components/confirm-dialog/confirm-dialog.component.html b/src/@fuse/components/confirm-dialog/confirm-dialog.component.html similarity index 100% rename from src/app/core/components/confirm-dialog/confirm-dialog.component.html rename to src/@fuse/components/confirm-dialog/confirm-dialog.component.html diff --git a/src/app/core/components/confirm-dialog/confirm-dialog.component.scss b/src/@fuse/components/confirm-dialog/confirm-dialog.component.scss similarity index 100% rename from src/app/core/components/confirm-dialog/confirm-dialog.component.scss rename to src/@fuse/components/confirm-dialog/confirm-dialog.component.scss diff --git a/src/app/core/components/confirm-dialog/confirm-dialog.component.ts b/src/@fuse/components/confirm-dialog/confirm-dialog.component.ts similarity index 71% rename from src/app/core/components/confirm-dialog/confirm-dialog.component.ts rename to src/@fuse/components/confirm-dialog/confirm-dialog.component.ts index 24e22d35..90eac6e5 100644 --- a/src/app/core/components/confirm-dialog/confirm-dialog.component.ts +++ b/src/@fuse/components/confirm-dialog/confirm-dialog.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit } from '@angular/core'; +import { Component } from '@angular/core'; import { MatDialogRef } from '@angular/material'; @Component({ @@ -6,7 +6,7 @@ import { MatDialogRef } from '@angular/material'; templateUrl: './confirm-dialog.component.html', styleUrls : ['./confirm-dialog.component.scss'] }) -export class FuseConfirmDialogComponent implements OnInit +export class FuseConfirmDialogComponent { public confirmMessage: string; @@ -14,8 +14,4 @@ export class FuseConfirmDialogComponent implements OnInit { } - ngOnInit() - { - } - } diff --git a/src/@fuse/components/confirm-dialog/confirm-dialog.module.ts b/src/@fuse/components/confirm-dialog/confirm-dialog.module.ts new file mode 100644 index 00000000..f6f1f9c7 --- /dev/null +++ b/src/@fuse/components/confirm-dialog/confirm-dialog.module.ts @@ -0,0 +1,20 @@ +import { NgModule } from '@angular/core'; +import { MatButtonModule, MatDialogModule } from '@angular/material'; + +import { FuseConfirmDialogComponent } from '@fuse/components/confirm-dialog/confirm-dialog.component'; + +@NgModule({ + declarations: [ + FuseConfirmDialogComponent + ], + imports: [ + MatDialogModule, + MatButtonModule + ], + entryComponents: [ + FuseConfirmDialogComponent + ], +}) +export class FuseConfirmDialogModule +{ +} diff --git a/src/app/core/components/countdown/countdown.component.html b/src/@fuse/components/countdown/countdown.component.html similarity index 100% rename from src/app/core/components/countdown/countdown.component.html rename to src/@fuse/components/countdown/countdown.component.html diff --git a/src/app/core/components/countdown/countdown.component.scss b/src/@fuse/components/countdown/countdown.component.scss similarity index 100% rename from src/app/core/components/countdown/countdown.component.scss rename to src/@fuse/components/countdown/countdown.component.scss diff --git a/src/app/core/components/countdown/countdown.component.ts b/src/@fuse/components/countdown/countdown.component.ts similarity index 99% rename from src/app/core/components/countdown/countdown.component.ts rename to src/@fuse/components/countdown/countdown.component.ts index 5ab95920..6342b804 100644 --- a/src/app/core/components/countdown/countdown.component.ts +++ b/src/@fuse/components/countdown/countdown.component.ts @@ -1,8 +1,9 @@ import { Component, Input, OnInit } from '@angular/core'; -import * as moment from 'moment'; import { Observable } from 'rxjs/Observable'; import 'rxjs/add/observable/interval'; +import * as moment from 'moment'; + @Component({ selector : 'fuse-countdown', templateUrl: './countdown.component.html', diff --git a/src/@fuse/components/countdown/countdown.module.ts b/src/@fuse/components/countdown/countdown.module.ts new file mode 100644 index 00000000..9c68f4e8 --- /dev/null +++ b/src/@fuse/components/countdown/countdown.module.ts @@ -0,0 +1,15 @@ +import { NgModule } from '@angular/core'; + +import { FuseCountdownComponent } from '@fuse/components/countdown/countdown.component'; + +@NgModule({ + declarations: [ + FuseCountdownComponent + ], + exports: [ + FuseCountdownComponent + ], +}) +export class FuseCountdownModule +{ +} diff --git a/src/@fuse/components/demo/demo-content/demo-content.component.html b/src/@fuse/components/demo/demo-content/demo-content.component.html new file mode 100644 index 00000000..cd95870f --- /dev/null +++ b/src/@fuse/components/demo/demo-content/demo-content.component.html @@ -0,0 +1,75 @@ + +
+ + beach + +

Early Sunrise

+

Demo Content

+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse tortor nibh, convallis sed purus nec, + auctor venenatis nisl. Suspendisse potenti. Nullam sagittis nulla in diam finibus, sed pharetra velit + vestibulum. Suspendisse euismod in urna eu posuere. +

+ +
+

+ Nunc vel lacinia lorem. Nullam tincidunt sed purus eu placerat. Donec id dictum erat. Etiam enim ex, dapibus + et tortor id, posuere pretium est. Maecenas fringilla ipsum vitae neque elementum, at eleifend ante + sollicitudin. Donec viverra augue dolor, a venenatis tellus consectetur sit amet. +

+
+ John Doe +
+
+ +

+ Ut ornare sit amet velit vel congue. Ut nec tristique eros. Lorem ipsum dolor sit amet, consectetur adipiscing + elit. Vivamus sed lorem quis nibh porta iaculis. Vestibulum ut eleifend ante, at semper mi. Nam imperdiet est + nisi, quis hendrerit tellus convallis et. Morbi in luctus neque. Curabitur elementum ut est et gravida. In hac + habitasse platea dictumst. +

+ +

+ In et placerat eros, eu tempor turpis. Curabitur ac felis finibus, elementum lectus vitae, venenatis est. + Integer mollis nisl a eros scelerisque varius. Etiam venenatis lectus vel erat condimentum tristique vel vel mi. + Nulla id euismod mi, et mollis tellus. +

+ +

+ Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Class aptent taciti + sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur vitae sagittis odio. + Suspendisse ullamcorper nunc non pellentesque laoreet. Curabitur eu tortor id quam pretium mattis. Proin ut quam + velit. +

+ +

+ Quisque sit amet risus enim. Aliquam sit amet interdum justo, at ultricies sapien. Suspendisse et semper urna, + in gravida eros. Quisque id nibh iaculis, euismod urna sed, egestas nisi. Donec eros metus, congue a imperdiet + feugiat, sagittis nec ipsum. Quisque dapibus mollis felis non tristique. +

+ +

+ Ut auctor, metus sed dapibus tempus, urna diam auctor odio, in malesuada odio risus vitae nisi. Etiam blandit + ante urna, vitae placerat massa mollis in. Duis nec urna ac purus semper dictum ut eget justo. Aenean non + sagittis augue. Sed venenatis rhoncus enim eget ornare. Donec viverra sed felis at venenatis. Mauris aliquam + fringilla nulla, sit amet congue felis dignissim at. +

+ +

+ Quisque accumsan augue tempor ante mollis, sed placerat diam porttitor. Vestibulum dignissim sem vel velit + eleifend, non pellentesque quam convallis. Pellentesque est dolor, dignissim ac tortor tristique, hendrerit + iaculis metus. Praesent pulvinar quam eu leo consectetur faucibus. Vestibulum purus diam, gravida sagittis + feugiat sit amet, tincidunt in ligula. Sed semper vestibulum magna. Lorem ipsum dolor sit amet, consectetur + adipiscing elit. Suspendisse tortor nibh, convallis sed purus nec, auctor venenatis nisl. Suspendisse potenti. +

+ +

+ Nullam sagittis nulla in diam finibus, sed pharetra velit vestibulum. Suspendisse euismod in urna eu posuere. + Etiam blandit nunc arcu, et consectetur orci blandit a. Aliquam condimentum pharetra quam at ultricies. Nunc vel + lacinia lorem. Nullam tincidunt sed purus eu placerat. Donec id dictum erat. Etiam enim ex, dapibus et tortor + id, posuere pretium est. Maecenas fringilla ipsum vitae neque elementum, at eleifend ante sollicitudin. Donec + viverra augue dolor, a venenatis tellus consectetur sit amet... +

+
+ diff --git a/src/app/core/components/demo/demo-content/demo-content.component.scss b/src/@fuse/components/demo/demo-content/demo-content.component.scss similarity index 100% rename from src/app/core/components/demo/demo-content/demo-content.component.scss rename to src/@fuse/components/demo/demo-content/demo-content.component.scss diff --git a/src/app/core/components/demo/demo-content/demo-content.component.ts b/src/@fuse/components/demo/demo-content/demo-content.component.ts similarity index 100% rename from src/app/core/components/demo/demo-content/demo-content.component.ts rename to src/@fuse/components/demo/demo-content/demo-content.component.ts diff --git a/src/app/core/components/demo/demo-sidenav/demo-sidenav.component.html b/src/@fuse/components/demo/demo-sidenav/demo-sidenav.component.html similarity index 100% rename from src/app/core/components/demo/demo-sidenav/demo-sidenav.component.html rename to src/@fuse/components/demo/demo-sidenav/demo-sidenav.component.html diff --git a/src/app/core/components/demo/demo-sidenav/demo-sidenav.component.scss b/src/@fuse/components/demo/demo-sidenav/demo-sidenav.component.scss similarity index 100% rename from src/app/core/components/demo/demo-sidenav/demo-sidenav.component.scss rename to src/@fuse/components/demo/demo-sidenav/demo-sidenav.component.scss diff --git a/src/app/core/components/demo/demo-sidenav/demo-sidenav.component.ts b/src/@fuse/components/demo/demo-sidenav/demo-sidenav.component.ts similarity index 100% rename from src/app/core/components/demo/demo-sidenav/demo-sidenav.component.ts rename to src/@fuse/components/demo/demo-sidenav/demo-sidenav.component.ts diff --git a/src/app/core/components/demo/demo.module.ts b/src/@fuse/components/demo/demo.module.ts similarity index 78% rename from src/app/core/components/demo/demo.module.ts rename to src/@fuse/components/demo/demo.module.ts index 2f9a7882..ea5b615c 100644 --- a/src/app/core/components/demo/demo.module.ts +++ b/src/@fuse/components/demo/demo.module.ts @@ -1,6 +1,8 @@ import { NgModule } from '@angular/core'; -import { SharedModule } from '../../modules/shared.module'; import { RouterModule } from '@angular/router'; + +import { MatDividerModule, MatListModule } from '@angular/material'; + import { FuseDemoContentComponent } from './demo-content/demo-content.component'; import { FuseDemoSidenavComponent } from './demo-sidenav/demo-sidenav.component'; @@ -10,8 +12,10 @@ import { FuseDemoSidenavComponent } from './demo-sidenav/demo-sidenav.component' FuseDemoSidenavComponent ], imports : [ - SharedModule, - RouterModule + RouterModule, + + MatDividerModule, + MatListModule ], exports : [ FuseDemoContentComponent, diff --git a/src/app/core/components/highlight/highlight.component.scss b/src/@fuse/components/highlight/highlight.component.scss similarity index 100% rename from src/app/core/components/highlight/highlight.component.scss rename to src/@fuse/components/highlight/highlight.component.scss diff --git a/src/app/core/components/highlight/highlight.component.ts b/src/@fuse/components/highlight/highlight.component.ts similarity index 100% rename from src/app/core/components/highlight/highlight.component.ts rename to src/@fuse/components/highlight/highlight.component.ts diff --git a/src/@fuse/components/highlight/highlight.module.ts b/src/@fuse/components/highlight/highlight.module.ts new file mode 100644 index 00000000..d45696df --- /dev/null +++ b/src/@fuse/components/highlight/highlight.module.ts @@ -0,0 +1,15 @@ +import { NgModule } from '@angular/core'; + +import { FuseHighlightComponent } from '@fuse/components/highlight/highlight.component'; + +@NgModule({ + declarations: [ + FuseHighlightComponent + ], + exports: [ + FuseHighlightComponent + ], +}) +export class FuseHighlightModule +{ +} diff --git a/src/app/core/components/highlight/prism-languages.ts b/src/@fuse/components/highlight/prism-languages.ts similarity index 100% rename from src/app/core/components/highlight/prism-languages.ts rename to src/@fuse/components/highlight/prism-languages.ts diff --git a/src/@fuse/components/index.ts b/src/@fuse/components/index.ts new file mode 100644 index 00000000..0a8fb885 --- /dev/null +++ b/src/@fuse/components/index.ts @@ -0,0 +1,11 @@ +export * from './confirm-dialog/confirm-dialog.module'; +export * from './countdown/countdown.module'; +export * from './demo/demo.module'; +export * from './highlight/highlight.module'; +export * from './material-color-picker/material-color-picker.module'; +export * from './navigation/navigation.module'; +export * from './search-bar/search-bar.module'; +export * from './shortcuts/shortcuts.module'; +export * from './sidebar/sidebar.module'; +export * from './theme-options/theme-options.module'; +export * from './widget/widget.module'; diff --git a/src/app/core/components/material-color-picker/material-color-picker.component.html b/src/@fuse/components/material-color-picker/material-color-picker.component.html similarity index 69% rename from src/app/core/components/material-color-picker/material-color-picker.component.html rename to src/@fuse/components/material-color-picker/material-color-picker.component.html index 447939ca..16b28439 100644 --- a/src/app/core/components/material-color-picker/material-color-picker.component.html +++ b/src/@fuse/components/material-color-picker/material-color-picker.component.html @@ -9,10 +9,8 @@ -
+
@@ -39,13 +37,9 @@
-
+
-
+
-
-
-
+
+
+ (click)="selectHue(hue)" fxLayout="row" fxLayoutAlign="start end" mat-ink-ripple> {{hue}} diff --git a/src/app/core/components/material-color-picker/material-color-picker.component.scss b/src/@fuse/components/material-color-picker/material-color-picker.component.scss similarity index 100% rename from src/app/core/components/material-color-picker/material-color-picker.component.scss rename to src/@fuse/components/material-color-picker/material-color-picker.component.scss diff --git a/src/app/core/components/material-color-picker/material-color-picker.component.ts b/src/@fuse/components/material-color-picker/material-color-picker.component.ts similarity index 94% rename from src/app/core/components/material-color-picker/material-color-picker.component.ts rename to src/@fuse/components/material-color-picker/material-color-picker.component.ts index 317c829d..08671cdb 100644 --- a/src/app/core/components/material-color-picker/material-color-picker.component.ts +++ b/src/@fuse/components/material-color-picker/material-color-picker.component.ts @@ -1,6 +1,7 @@ -import { Component, EventEmitter, Input, OnChanges, OnInit, Output, ViewEncapsulation } from '@angular/core'; -import { MatColors } from '../../matColors'; -import { fuseAnimations } from '../../animations'; +import { Component, EventEmitter, Input, OnChanges, Output, ViewEncapsulation } from '@angular/core'; + +import { fuseAnimations } from '@fuse/animations'; +import { MatColors } from '@fuse/mat-colors'; @Component({ selector : 'fuse-material-color-picker', @@ -9,7 +10,7 @@ import { fuseAnimations } from '../../animations'; animations : fuseAnimations, encapsulation: ViewEncapsulation.None }) -export class FuseMaterialColorPickerComponent implements OnInit, OnChanges +export class FuseMaterialColorPickerComponent implements OnChanges { colors: any; selectedColor: any; @@ -91,11 +92,21 @@ export class FuseMaterialColorPickerComponent implements OnInit, OnChanges this.hues = ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', 'A100', 'A200', 'A400', 'A700']; } - ngOnInit() + ngOnChanges(changes: any) { - + if ( changes.selectedBg && changes.selectedBg.currentValue === '' || + changes.selectedClass && changes.selectedClass.currentValue === '' || + changes.selectedPalette && changes.selectedPalette.currentValue === '' ) + { + this.removeColor(); + return; + } + if ( changes.selectedPalette || changes.selectedHue || changes.selectedClass || changes.selectedBg ) + { + this.updateSelectedColor(); + } } - + selectPalette(palette) { this.selectedPalette = palette; @@ -114,6 +125,7 @@ export class FuseMaterialColorPickerComponent implements OnInit, OnChanges this.selectedPalette = ''; this.selectedHue = ''; this.updateSelectedColor(); + this.view = 'palettes'; } updateSelectedColor() @@ -172,19 +184,4 @@ export class FuseMaterialColorPickerComponent implements OnInit, OnChanges this.view = 'hues'; } } - - ngOnChanges(changes: any) - { - if ( changes.selectedBg && changes.selectedBg.currentValue === '' || - changes.selectedClass && changes.selectedClass.currentValue === '' || - changes.selectedPalette && changes.selectedPalette.currentValue === '' ) - { - this.removeColor(); - return; - } - if ( changes.selectedPalette || changes.selectedHue || changes.selectedClass || changes.selectedBg ) - { - this.updateSelectedColor(); - } - } } diff --git a/src/@fuse/components/material-color-picker/material-color-picker.module.ts b/src/@fuse/components/material-color-picker/material-color-picker.module.ts new file mode 100644 index 00000000..94db7875 --- /dev/null +++ b/src/@fuse/components/material-color-picker/material-color-picker.module.ts @@ -0,0 +1,33 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FlexLayoutModule } from '@angular/flex-layout'; + +import { MatButtonModule, MatIconModule, MatMenuModule, MatRippleModule } from '@angular/material'; + +import { FusePipesModule } from '@fuse/pipes/pipes.module'; + +import { FuseMaterialColorPickerComponent } from '@fuse/components/material-color-picker/material-color-picker.component'; + +@NgModule({ + declarations: [ + FuseMaterialColorPickerComponent + ], + imports: [ + CommonModule, + + FlexLayoutModule, + + MatButtonModule, + MatIconModule, + MatMenuModule, + MatRippleModule, + + FusePipesModule + ], + exports: [ + FuseMaterialColorPickerComponent + ], +}) +export class FuseMaterialColorPickerModule +{ +} diff --git a/src/app/core/components/navigation/horizontal/nav-collapse/nav-horizontal-collapse.component.html b/src/@fuse/components/navigation/horizontal/nav-collapse/nav-horizontal-collapse.component.html similarity index 100% rename from src/app/core/components/navigation/horizontal/nav-collapse/nav-horizontal-collapse.component.html rename to src/@fuse/components/navigation/horizontal/nav-collapse/nav-horizontal-collapse.component.html diff --git a/src/app/core/components/navigation/horizontal/nav-collapse/nav-horizontal-collapse.component.scss b/src/@fuse/components/navigation/horizontal/nav-collapse/nav-horizontal-collapse.component.scss similarity index 100% rename from src/app/core/components/navigation/horizontal/nav-collapse/nav-horizontal-collapse.component.scss rename to src/@fuse/components/navigation/horizontal/nav-collapse/nav-horizontal-collapse.component.scss diff --git a/src/app/core/components/navigation/horizontal/nav-collapse/nav-horizontal-collapse.component.ts b/src/@fuse/components/navigation/horizontal/nav-collapse/nav-horizontal-collapse.component.ts similarity index 83% rename from src/app/core/components/navigation/horizontal/nav-collapse/nav-horizontal-collapse.component.ts rename to src/@fuse/components/navigation/horizontal/nav-collapse/nav-horizontal-collapse.component.ts index 4fb2853a..c691a1bb 100644 --- a/src/app/core/components/navigation/horizontal/nav-collapse/nav-horizontal-collapse.component.ts +++ b/src/@fuse/components/navigation/horizontal/nav-collapse/nav-horizontal-collapse.component.ts @@ -1,5 +1,5 @@ import { Component, HostBinding, HostListener, Input, OnDestroy } from '@angular/core'; -import { fuseAnimations } from '../../../../animations'; +import { fuseAnimations } from '../../../../animations/index'; import { FuseConfigService } from '../../../../services/config.service'; import { Subscription } from 'rxjs/Subscription'; @@ -11,7 +11,7 @@ import { Subscription } from 'rxjs/Subscription'; }) export class FuseNavHorizontalCollapseComponent implements OnDestroy { - onSettingsChanged: Subscription; + onConfigChanged: Subscription; fuseSettings: any; isOpen = false; @@ -34,8 +34,8 @@ export class FuseNavHorizontalCollapseComponent implements OnDestroy private fuseConfig: FuseConfigService ) { - this.onSettingsChanged = - this.fuseConfig.onSettingsChanged + this.onConfigChanged = + this.fuseConfig.onConfigChanged .subscribe( (newSettings) => { this.fuseSettings = newSettings; @@ -45,6 +45,6 @@ export class FuseNavHorizontalCollapseComponent implements OnDestroy ngOnDestroy() { - this.onSettingsChanged.unsubscribe(); + this.onConfigChanged.unsubscribe(); } } diff --git a/src/app/core/components/navigation/horizontal/nav-item/nav-horizontal-item.component.html b/src/@fuse/components/navigation/horizontal/nav-item/nav-horizontal-item.component.html similarity index 100% rename from src/app/core/components/navigation/horizontal/nav-item/nav-horizontal-item.component.html rename to src/@fuse/components/navigation/horizontal/nav-item/nav-horizontal-item.component.html diff --git a/src/app/core/components/navigation/horizontal/nav-item/nav-horizontal-item.component.scss b/src/@fuse/components/navigation/horizontal/nav-item/nav-horizontal-item.component.scss similarity index 100% rename from src/app/core/components/navigation/horizontal/nav-item/nav-horizontal-item.component.scss rename to src/@fuse/components/navigation/horizontal/nav-item/nav-horizontal-item.component.scss diff --git a/src/app/core/components/navigation/horizontal/nav-item/nav-horizontal-item.component.ts b/src/@fuse/components/navigation/horizontal/nav-item/nav-horizontal-item.component.ts similarity index 100% rename from src/app/core/components/navigation/horizontal/nav-item/nav-horizontal-item.component.ts rename to src/@fuse/components/navigation/horizontal/nav-item/nav-horizontal-item.component.ts diff --git a/src/app/core/components/navigation/navigation.component.html b/src/@fuse/components/navigation/navigation.component.html similarity index 90% rename from src/app/core/components/navigation/navigation.component.html rename to src/@fuse/components/navigation/navigation.component.html index 4149e261..10ecaf89 100644 --- a/src/app/core/components/navigation/navigation.component.html +++ b/src/@fuse/components/navigation/navigation.component.html @@ -4,7 +4,7 @@ - + @@ -18,7 +18,7 @@ - + diff --git a/src/@fuse/components/navigation/navigation.component.scss b/src/@fuse/components/navigation/navigation.component.scss new file mode 100644 index 00000000..3432e89a --- /dev/null +++ b/src/@fuse/components/navigation/navigation.component.scss @@ -0,0 +1,12 @@ +@import 'src/@fuse/scss/fuse'; + +fuse-navigation { + display: flex; + flex: 1 0 auto; + + #main-navigation { + margin: 0; + padding: 0; + width: 100%; + } +} diff --git a/src/@fuse/components/navigation/navigation.component.ts b/src/@fuse/components/navigation/navigation.component.ts new file mode 100644 index 00000000..9a2e5a5c --- /dev/null +++ b/src/@fuse/components/navigation/navigation.component.ts @@ -0,0 +1,18 @@ +import { Component, Input, ViewEncapsulation } from '@angular/core'; + +@Component({ + selector : 'fuse-navigation', + templateUrl : './navigation.component.html', + styleUrls : ['./navigation.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class FuseNavigationComponent +{ + @Input() layout = 'vertical'; + @Input() navigation: any; + + constructor() + { + + } +} diff --git a/src/app/core/components/navigation/navigation.module.ts b/src/@fuse/components/navigation/navigation.module.ts similarity index 78% rename from src/app/core/components/navigation/navigation.module.ts rename to src/@fuse/components/navigation/navigation.module.ts index 42e680cd..12519314 100644 --- a/src/app/core/components/navigation/navigation.module.ts +++ b/src/@fuse/components/navigation/navigation.module.ts @@ -1,6 +1,10 @@ import { NgModule } from '@angular/core'; -import { SharedModule } from '../../modules/shared.module'; +import { CommonModule } from '@angular/common'; import { RouterModule } from '@angular/router'; +import { MatIconModule, MatRippleModule } from '@angular/material'; + +import { TranslateModule } from '@ngx-translate/core'; + import { FuseNavigationComponent } from './navigation.component'; import { FuseNavVerticalItemComponent } from './vertical/nav-item/nav-vertical-item.component'; import { FuseNavVerticalCollapseComponent } from './vertical/nav-collapse/nav-vertical-collapse.component'; @@ -10,8 +14,13 @@ import { FuseNavHorizontalCollapseComponent } from './horizontal/nav-collapse/na @NgModule({ imports : [ - SharedModule, - RouterModule + CommonModule, + RouterModule, + + MatIconModule, + MatRippleModule, + + TranslateModule.forChild() ], exports : [ FuseNavigationComponent diff --git a/src/@fuse/components/navigation/navigation.service.ts b/src/@fuse/components/navigation/navigation.service.ts new file mode 100644 index 00000000..d2e4a319 --- /dev/null +++ b/src/@fuse/components/navigation/navigation.service.ts @@ -0,0 +1,48 @@ +import { EventEmitter, Injectable } from '@angular/core'; +import { Subject } from 'rxjs/Subject'; + +@Injectable() +export class FuseNavigationService +{ + flatNavigation: any[] = []; + + onItemCollapsed: Subject = new Subject; + onItemCollapseToggled: Subject = new Subject; + + constructor() + { + } + + /** + * Get flattened navigation array + * @param navigation + * @returns {any[]} + */ + getFlatNavigation(navigation) + { + for ( const navItem of navigation ) + { + if ( navItem.type === 'item' ) + { + this.flatNavigation.push({ + title: navItem.title, + type : navItem.type, + icon : navItem.icon || false, + url : navItem.url + }); + + continue; + } + + if ( navItem.type === 'collapse' || navItem.type === 'group' ) + { + if ( navItem.children ) + { + this.getFlatNavigation(navItem.children); + } + } + } + + return this.flatNavigation; + } +} diff --git a/src/@fuse/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.html b/src/@fuse/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.html new file mode 100644 index 00000000..e7654be5 --- /dev/null +++ b/src/@fuse/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.html @@ -0,0 +1,21 @@ + + + + {{item.icon}} + {{item.title}} + + {{item.badge.title}} + + keyboard_arrow_right + + +
+ + + + + +
+ +
diff --git a/src/app/core/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.scss b/src/@fuse/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.scss similarity index 95% rename from src/app/core/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.scss rename to src/@fuse/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.scss index 860565ee..6fa59f1f 100644 --- a/src/app/core/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.scss +++ b/src/@fuse/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.scss @@ -1,6 +1,6 @@ :host { - .folded:not(.folded-open) & { + .folded:not(.unfolded) & { .nav-link { @@ -19,6 +19,7 @@ } .nav-link { + .collapse-arrow { transition: transform .3s ease-in-out, opacity .25s ease-in-out .1s; transform: rotate(0); diff --git a/src/app/core/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.ts b/src/@fuse/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.ts similarity index 92% rename from src/app/core/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.ts rename to src/@fuse/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.ts index 31712d66..65afb2c8 100644 --- a/src/app/core/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.ts +++ b/src/@fuse/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.ts @@ -1,7 +1,7 @@ import { Component, HostBinding, Input, OnInit } from '@angular/core'; import { FuseNavigationService } from '../../navigation.service'; import { NavigationEnd, Router } from '@angular/router'; -import { fuseAnimations } from '../../../../animations'; +import { fuseAnimations } from '../../../../animations/index'; @Component({ selector : 'fuse-nav-vertical-collapse', @@ -40,7 +40,7 @@ export class FuseNavVerticalCollapseComponent implements OnInit ); // Listen for collapsing of any navigation item - this.navigationService.onNavCollapseToggled + this.navigationService.onItemCollapsed .subscribe( (clickedItem) => { if ( clickedItem && clickedItem.children ) @@ -95,8 +95,8 @@ export class FuseNavVerticalCollapseComponent implements OnInit this.isOpen = !this.isOpen; // Navigation collapse toggled... - this.navigationService.onNavCollapseToggled.emit(this.item); - this.navigationService.onNavCollapseToggle.emit(); + this.navigationService.onItemCollapsed.next(this.item); + this.navigationService.onItemCollapseToggled.next(); } /** @@ -110,7 +110,7 @@ export class FuseNavVerticalCollapseComponent implements OnInit } this.isOpen = true; - this.navigationService.onNavCollapseToggle.emit(); + this.navigationService.onItemCollapseToggled.next(); } /** @@ -124,7 +124,7 @@ export class FuseNavVerticalCollapseComponent implements OnInit } this.isOpen = false; - this.navigationService.onNavCollapseToggle.emit(); + this.navigationService.onItemCollapseToggled.next(); } /** diff --git a/src/@fuse/components/navigation/vertical/nav-group/nav-vertical-group.component.html b/src/@fuse/components/navigation/vertical/nav-group/nav-vertical-group.component.html new file mode 100644 index 00000000..0747455c --- /dev/null +++ b/src/@fuse/components/navigation/vertical/nav-group/nav-vertical-group.component.html @@ -0,0 +1,15 @@ + + +
+ {{ item.title }} +
+ +
+ + + + + +
+ +
\ No newline at end of file diff --git a/src/app/core/components/navigation/vertical/nav-group/nav-vertical-group.component.scss b/src/@fuse/components/navigation/vertical/nav-group/nav-vertical-group.component.scss similarity index 92% rename from src/app/core/components/navigation/vertical/nav-group/nav-vertical-group.component.scss rename to src/@fuse/components/navigation/vertical/nav-group/nav-vertical-group.component.scss index 7021a70f..fdbd817a 100644 --- a/src/app/core/components/navigation/vertical/nav-group/nav-vertical-group.component.scss +++ b/src/@fuse/components/navigation/vertical/nav-group/nav-vertical-group.component.scss @@ -1,6 +1,6 @@ :host { - .folded:not(.folded-open) & { + .folded:not(.unfolded) & { > .group-title { align-items: center; diff --git a/src/app/core/components/navigation/vertical/nav-group/nav-vertical-group.component.ts b/src/@fuse/components/navigation/vertical/nav-group/nav-vertical-group.component.ts similarity index 64% rename from src/app/core/components/navigation/vertical/nav-group/nav-vertical-group.component.ts rename to src/@fuse/components/navigation/vertical/nav-group/nav-vertical-group.component.ts index 0d5e681f..56151d6f 100644 --- a/src/app/core/components/navigation/vertical/nav-group/nav-vertical-group.component.ts +++ b/src/@fuse/components/navigation/vertical/nav-group/nav-vertical-group.component.ts @@ -1,11 +1,11 @@ -import { Component, HostBinding, Input, OnInit } from '@angular/core'; +import { Component, HostBinding, Input } from '@angular/core'; @Component({ selector : 'fuse-nav-vertical-group', templateUrl: './nav-vertical-group.component.html', styleUrls : ['./nav-vertical-group.component.scss'] }) -export class FuseNavVerticalGroupComponent implements OnInit +export class FuseNavVerticalGroupComponent { @HostBinding('class') classes = 'nav-group nav-item'; @Input() item: any; @@ -14,8 +14,4 @@ export class FuseNavVerticalGroupComponent implements OnInit { } - ngOnInit() - { - } - } diff --git a/src/@fuse/components/navigation/vertical/nav-item/nav-vertical-item.component.html b/src/@fuse/components/navigation/vertical/nav-item/nav-vertical-item.component.html new file mode 100644 index 00000000..cd67eb10 --- /dev/null +++ b/src/@fuse/components/navigation/vertical/nav-item/nav-vertical-item.component.html @@ -0,0 +1,22 @@ + + + + {{item.icon}} + {{item.title}} + + {{item.badge.title}} + + + + + {{item.icon}} + {{item.title}} + + {{item.badge.title}} + + + + \ No newline at end of file diff --git a/src/app/core/components/navigation/vertical/nav-item/nav-vertical-item.component.scss b/src/@fuse/components/navigation/vertical/nav-item/nav-vertical-item.component.scss similarity index 85% rename from src/app/core/components/navigation/vertical/nav-item/nav-vertical-item.component.scss rename to src/@fuse/components/navigation/vertical/nav-item/nav-vertical-item.component.scss index 1efc651a..6ab28ae1 100644 --- a/src/app/core/components/navigation/vertical/nav-item/nav-vertical-item.component.scss +++ b/src/@fuse/components/navigation/vertical/nav-item/nav-vertical-item.component.scss @@ -1,6 +1,6 @@ :host { - .folded:not(.folded-open) & { + .folded:not(.unfolded) & { .nav-link { diff --git a/src/app/core/components/navigation/vertical/nav-item/nav-vertical-item.component.ts b/src/@fuse/components/navigation/vertical/nav-item/nav-vertical-item.component.ts similarity index 63% rename from src/app/core/components/navigation/vertical/nav-item/nav-vertical-item.component.ts rename to src/@fuse/components/navigation/vertical/nav-item/nav-vertical-item.component.ts index 74e68198..071ed1ee 100644 --- a/src/app/core/components/navigation/vertical/nav-item/nav-vertical-item.component.ts +++ b/src/@fuse/components/navigation/vertical/nav-item/nav-vertical-item.component.ts @@ -1,11 +1,11 @@ -import { Component, HostBinding, Input, OnInit } from '@angular/core'; +import { Component, HostBinding, Input } from '@angular/core'; @Component({ selector : 'fuse-nav-vertical-item', templateUrl: './nav-vertical-item.component.html', styleUrls : ['./nav-vertical-item.component.scss'] }) -export class FuseNavVerticalItemComponent implements OnInit +export class FuseNavVerticalItemComponent { @HostBinding('class') classes = 'nav-item'; @Input() item: any; @@ -13,8 +13,4 @@ export class FuseNavVerticalItemComponent implements OnInit constructor() { } - - ngOnInit() - { - } } diff --git a/src/app/core/components/search-bar/search-bar.component.html b/src/@fuse/components/search-bar/search-bar.component.html similarity index 100% rename from src/app/core/components/search-bar/search-bar.component.html rename to src/@fuse/components/search-bar/search-bar.component.html diff --git a/src/app/core/components/search-bar/search-bar.component.scss b/src/@fuse/components/search-bar/search-bar.component.scss similarity index 98% rename from src/app/core/components/search-bar/search-bar.component.scss rename to src/@fuse/components/search-bar/search-bar.component.scss index 7a737fcc..5ec26450 100644 --- a/src/app/core/components/search-bar/search-bar.component.scss +++ b/src/@fuse/components/search-bar/search-bar.component.scss @@ -1,4 +1,4 @@ -@import "src/app/core/scss/fuse"; +@import "src/@fuse/scss/fuse"; :host { diff --git a/src/app/core/components/search-bar/search-bar.component.ts b/src/@fuse/components/search-bar/search-bar.component.ts similarity index 71% rename from src/app/core/components/search-bar/search-bar.component.ts rename to src/@fuse/components/search-bar/search-bar.component.ts index ea295798..5fa75e44 100644 --- a/src/app/core/components/search-bar/search-bar.component.ts +++ b/src/@fuse/components/search-bar/search-bar.component.ts @@ -1,26 +1,27 @@ -import { Component, EventEmitter, OnInit, Output } from '@angular/core'; -import { FuseConfigService } from '../../services/config.service'; +import { Component, EventEmitter, Output } from '@angular/core'; import { Subscription } from 'rxjs/Subscription'; +import { FuseConfigService } from '@fuse/services/config.service'; + @Component({ selector : 'fuse-search-bar', templateUrl: './search-bar.component.html', styleUrls : ['./search-bar.component.scss'] }) -export class FuseSearchBarComponent implements OnInit +export class FuseSearchBarComponent { collapsed: boolean; toolbarColor: string; @Output() onInput: EventEmitter = new EventEmitter(); - onSettingsChanged: Subscription; + onConfigChanged: Subscription; constructor( private fuseConfig: FuseConfigService ) { this.collapsed = true; - this.onSettingsChanged = - this.fuseConfig.onSettingsChanged + this.onConfigChanged = + this.fuseConfig.onConfigChanged .subscribe( (newSettings) => { this.toolbarColor = newSettings.colorClasses.toolbar; @@ -28,11 +29,6 @@ export class FuseSearchBarComponent implements OnInit ); } - ngOnInit() - { - - } - collapse() { this.collapsed = true; diff --git a/src/app/core/components/search-bar/search-bar.module.ts b/src/@fuse/components/search-bar/search-bar.module.ts similarity index 62% rename from src/app/core/components/search-bar/search-bar.module.ts rename to src/@fuse/components/search-bar/search-bar.module.ts index d996cc9d..f0968924 100644 --- a/src/app/core/components/search-bar/search-bar.module.ts +++ b/src/@fuse/components/search-bar/search-bar.module.ts @@ -1,7 +1,9 @@ import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; import { RouterModule } from '@angular/router'; -import { SharedModule } from '../../modules/shared.module'; +import { MatButtonModule, MatIconModule } from '@angular/material'; + import { FuseSearchBarComponent } from './search-bar.component'; @NgModule({ @@ -9,8 +11,11 @@ import { FuseSearchBarComponent } from './search-bar.component'; FuseSearchBarComponent ], imports : [ - SharedModule, - RouterModule + CommonModule, + RouterModule, + + MatButtonModule, + MatIconModule ], exports : [ FuseSearchBarComponent diff --git a/src/app/core/components/shortcuts/shortcuts.component.html b/src/@fuse/components/shortcuts/shortcuts.component.html similarity index 100% rename from src/app/core/components/shortcuts/shortcuts.component.html rename to src/@fuse/components/shortcuts/shortcuts.component.html diff --git a/src/app/core/components/shortcuts/shortcuts.component.scss b/src/@fuse/components/shortcuts/shortcuts.component.scss similarity index 93% rename from src/app/core/components/shortcuts/shortcuts.component.scss rename to src/@fuse/components/shortcuts/shortcuts.component.scss index 0ee3a166..41b8c57d 100644 --- a/src/app/core/components/shortcuts/shortcuts.component.scss +++ b/src/@fuse/components/shortcuts/shortcuts.component.scss @@ -1,4 +1,4 @@ -@import 'src/app/core/scss/fuse'; +@import 'src/@fuse/scss/fuse'; :host { diff --git a/src/app/core/components/shortcuts/shortcuts.component.ts b/src/@fuse/components/shortcuts/shortcuts.component.ts similarity index 90% rename from src/app/core/components/shortcuts/shortcuts.component.ts rename to src/@fuse/components/shortcuts/shortcuts.component.ts index a1479f1d..4f99d938 100644 --- a/src/app/core/components/shortcuts/shortcuts.component.ts +++ b/src/@fuse/components/shortcuts/shortcuts.component.ts @@ -1,11 +1,14 @@ import { Component, ElementRef, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core'; -import { FuseNavigationService } from '../navigation/navigation.service'; import { Subscription } from 'rxjs/Subscription'; import { ObservableMedia } from '@angular/flex-layout'; -import { FuseMatchMedia } from '../../services/match-media.service'; -import { FuseConfigService } from '../../services/config.service'; import { CookieService } from 'ngx-cookie-service'; +import { FuseMatchMediaService } from '@fuse/services/match-media.service'; +import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; +import { FuseConfigService } from '@fuse/services/config.service'; + +import { navigation } from 'app/navigation/navigation'; + @Component({ selector : 'fuse-shortcuts', templateUrl: './shortcuts.component.html', @@ -20,7 +23,7 @@ export class FuseShortcutsComponent implements OnInit, OnDestroy mobileShortcutsPanelActive = false; toolbarColor: string; matchMediaSubscription: Subscription; - onSettingsChanged: Subscription; + onConfigChanged: Subscription; @ViewChild('searchInput') searchInputField; @ViewChild('shortcuts') shortcutsEl: ElementRef; @@ -28,16 +31,16 @@ export class FuseShortcutsComponent implements OnInit, OnDestroy constructor( private renderer: Renderer2, private observableMedia: ObservableMedia, - private fuseMatchMedia: FuseMatchMedia, + private fuseMatchMedia: FuseMatchMediaService, private fuseNavigationService: FuseNavigationService, private fuseConfig: FuseConfigService, private cookieService: CookieService ) { - this.filteredNavigationItems = this.navigationItems = this.fuseNavigationService.getFlatNavigation(); + this.filteredNavigationItems = this.navigationItems = this.fuseNavigationService.getFlatNavigation(navigation); - this.onSettingsChanged = - this.fuseConfig.onSettingsChanged + this.onConfigChanged = + this.fuseConfig.onConfigChanged .subscribe( (newSettings) => { this.toolbarColor = newSettings.colorClasses.toolbar; diff --git a/src/@fuse/components/shortcuts/shortcuts.module.ts b/src/@fuse/components/shortcuts/shortcuts.module.ts new file mode 100644 index 00000000..22e5e94b --- /dev/null +++ b/src/@fuse/components/shortcuts/shortcuts.module.ts @@ -0,0 +1,38 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { FlexLayoutModule } from '@angular/flex-layout'; +import { MatButtonModule, MatDividerModule, MatFormFieldModule, MatIconModule, MatInputModule, MatListModule, MatMenuModule, MatTooltipModule } from '@angular/material'; +import { CookieService } from 'ngx-cookie-service'; + +import { FuseShortcutsComponent } from './shortcuts.component'; + +@NgModule({ + declarations: [ + FuseShortcutsComponent + ], + imports : [ + CommonModule, + RouterModule, + + FlexLayoutModule, + + MatButtonModule, + MatDividerModule, + MatFormFieldModule, + MatIconModule, + MatInputModule, + MatMenuModule, + MatListModule, + MatTooltipModule + ], + exports : [ + FuseShortcutsComponent + ], + providers : [ + CookieService + ] +}) +export class FuseShortcutsModule +{ +} diff --git a/src/@fuse/components/sidebar/sidebar.component.html b/src/@fuse/components/sidebar/sidebar.component.html new file mode 100644 index 00000000..95a0b70b --- /dev/null +++ b/src/@fuse/components/sidebar/sidebar.component.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/@fuse/components/sidebar/sidebar.component.scss b/src/@fuse/components/sidebar/sidebar.component.scss new file mode 100644 index 00000000..b3853867 --- /dev/null +++ b/src/@fuse/components/sidebar/sidebar.component.scss @@ -0,0 +1,59 @@ +fuse-sidebar { + display: flex; + flex-direction: column; + flex: 1 0 auto; + position: absolute; + top: 0; + bottom: 0; + overflow: hidden; + width: 280px; + min-width: 280px; + max-width: 280px; + z-index: 1000; + transition-property: transform, width, min-width, max-width; + transition-duration: 150ms; + transition-timing-function: ease-in-out; + box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.35); + + &.left-aligned { + left: 0; + transform: translateX(-100%); + } + + &.right-aligned { + right: 0; + transform: translateX(100%); + } + + &.open { + transform: translateX(0); + } + + &.locked-open { + position: relative !important; + transform: translateX(0) !important; + } + + &.folded { + position: absolute !important; + top: 0; + bottom: 0; + + &:not(.unfolded) { + width: 64px; + min-width: 64px; + max-width: 64px; + } + } +} + +.fuse-sidebar-overlay { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 3; + background-color: rgba(0, 0, 0, 0.6); + opacity: 0; +} \ No newline at end of file diff --git a/src/@fuse/components/sidebar/sidebar.component.ts b/src/@fuse/components/sidebar/sidebar.component.ts new file mode 100644 index 00000000..5b410ce7 --- /dev/null +++ b/src/@fuse/components/sidebar/sidebar.component.ts @@ -0,0 +1,368 @@ +import { Component, ElementRef, HostBinding, HostListener, Inject, Input, OnDestroy, OnInit, Renderer2, ViewEncapsulation } from '@angular/core'; +import { animate, AnimationBuilder, AnimationPlayer, style } from '@angular/animations'; +import { ObservableMedia } from '@angular/flex-layout'; +import { Subscription } from 'rxjs/Subscription'; + +import { FuseSidebarService } from './sidebar.service'; +import { FuseMatchMediaService } from '@fuse/services/match-media.service'; +import { DOCUMENT } from '@angular/common'; + +@Component({ + selector : 'fuse-sidebar', + templateUrl : './sidebar.component.html', + styleUrls : ['./sidebar.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class FuseSidebarComponent implements OnInit, OnDestroy +{ + // Name + @Input() + name: string; + + // Align + @Input() + align: string; + + // Open + @HostBinding('class.open') + opened: boolean; + + // Locked Open + @Input() + lockedOpen: string; + + // isLockedOpen + @HostBinding('class.locked-open') + isLockedOpen: boolean; + + // Folded + @HostBinding('class.folded') + @Input() + folded: boolean; + + // Folded unfolded + @HostBinding('class.unfolded') + unfolded: boolean; + + // Private + private _wasActive: boolean; + private _backdrop: HTMLElement | null = null; + private _player: AnimationPlayer; + private _matchMediaWatcher: Subscription; + + /** + * Constructor + * + * @param renderer + * @param elementRef + * @param animationBuilder + * @param sidebarService + * @param matchMedia + * @param media + * @param document + */ + constructor( + private renderer: Renderer2, + private elementRef: ElementRef, + private animationBuilder: AnimationBuilder, + private sidebarService: FuseSidebarService, + private matchMedia: FuseMatchMediaService, + private media: ObservableMedia, + @Inject(DOCUMENT) private document: any + ) + { + // Set the defaults + this.opened = false; + this.folded = false; + this.align = 'left'; + } + + /** + * On init + */ + ngOnInit(): void + { + // Register the sidebar + this.sidebarService.register(this.name, this); + + // Setup alignment + this._setupAlignment(); + + // Setup lockedOpen + this._setupLockedOpen(); + } + + /** + * On destroy + */ + ngOnDestroy(): void + { + // Unregister the sidebar + this.sidebarService.unregister(this.name); + + // Unregister the media watcher + this._matchMediaWatcher.unsubscribe(); + } + + /** + * Setup the alignment + * + * @private + */ + private _setupAlignment(): void + { + if ( this.align === 'left' ) + { + this.renderer.addClass(this.elementRef.nativeElement, 'left-aligned'); + } + else + { + this.renderer.addClass(this.elementRef.nativeElement, 'right-aligned'); + } + } + + /** + * Setup the lockedOpen handler + * + * @private + */ + private _setupLockedOpen(): void + { + // Return if the lockedOpen wasn't set + if ( !this.lockedOpen ) + { + return; + } + + // Set the wasActive for the first time + this._wasActive = false; + + // Act on every media change + this._matchMediaWatcher = + + this.matchMedia.onMediaChange.subscribe(() => { + + // Get the active status + const isActive = this.media.isActive(this.lockedOpen); + + // If the both status are the same, don't act + if ( this._wasActive === isActive ) + { + return; + } + + // Store the new active status + this._wasActive = isActive; + + // Activate the lockedOpen + if ( isActive ) + { + // Set the lockedOpen status + this.isLockedOpen = true; + } + // De-Activate the lockedOpen + else + { + // Set the lockedOpen status + this.isLockedOpen = false; + + // Unfold the sidebar in case if it was folded + this.unfold(); + } + }); + } + + /** + * Open the sidebar + */ + open(): void + { + if ( this.opened || this.isLockedOpen ) + { + return; + } + + // Show the backdrop + this.showBackdrop(); + + // Set the opened status + this.opened = true; + + // Add a css class to the body + this.renderer.addClass(this.document.body, 'fuse-sidebar-opened'); + } + + /** + * Close the sidebar + */ + close(): void + { + if ( !this.opened ) + { + return; + } + + // Hide the backdrop + this.hideBackdrop(); + + // Set the opened status + this.opened = false; + + // Remove the css class from the body + this.renderer.removeClass(this.document.body, 'fuse-sidebar-opened'); + } + + /** + * Toggle open/close the sidebar + */ + toggleOpen(): void + { + if ( this.opened ) + { + this.close(); + } + else + { + this.open(); + } + } + + /** + * Mouseenter + */ + @HostListener('mouseenter') + onMouseEnter(): void + { + // Only work if the sidebar is folded + if ( !this.folded ) + { + return; + } + + // Unfold the sidebar temporarily + this.unfolded = true; + + // Add a css class to the body + this.renderer.addClass(this.document.body, 'fuse-sidebar-folded-unfolded'); + } + + /** + * Mouseleave + */ + @HostListener('mouseleave') + onMouseLeave(): void + { + // Only work if the sidebar is folded + if ( !this.folded ) + { + return; + } + + // Fold the sidebar back + this.unfolded = false; + + // Remove the css class from the body + this.renderer.removeClass(this.document.body, 'fuse-sidebar-folded-unfolded'); + } + + /** + * Fold the sidebar permanently + */ + fold(): void + { + this.folded = true; + + // Add a css class to the body + this.renderer.addClass(this.document.body, 'fuse-sidebar-folded'); + } + + /** + * Unfold the sidebar permanently + */ + unfold(): void + { + this.folded = false; + + // Remove the css class from the body + this.renderer.removeClass(this.document.body, 'fuse-sidebar-folded'); + } + + /** + * Toggle the sidebar fold/unfold permanently + */ + toggleFold(): void + { + if ( this.folded ) + { + this.unfold(); + } + else + { + this.fold(); + } + } + + /** + * Show the backdrop + */ + showBackdrop(): void + { + // Create the backdrop element + this._backdrop = this.renderer.createElement('div'); + + // Add a class to the backdrop element + this._backdrop.classList.add('fuse-sidebar-overlay'); + + // Append the backdrop to the parent of the sidebar + this.renderer.appendChild(this.elementRef.nativeElement.parentElement, this._backdrop); + + // Create the enter animation and attach it to the player + this._player = + this.animationBuilder + .build([ + animate('300ms ease', style({opacity: 1})) + ]).create(this._backdrop); + + // Play the animation + this._player.play(); + + // Add an event listener to the overlay + this._backdrop.addEventListener('click', () => { + this.close(); + } + ); + } + + /** + * Hide the backdrop + */ + hideBackdrop(): void + { + if ( !this._backdrop ) + { + return; + } + + // Create the leave animation and attach it to the player + this._player = + this.animationBuilder + .build([ + animate('300ms ease', style({opacity: 0})) + ]).create(this._backdrop); + + // Play the animation + this._player.play(); + + // Once the animation is done... + this._player.onDone(() => { + + // If the backdrop still exists... + if ( this._backdrop ) + { + // Remove the backdrop + this._backdrop.parentNode.removeChild(this._backdrop); + this._backdrop = null; + } + }); + } +} diff --git a/src/@fuse/components/sidebar/sidebar.module.ts b/src/@fuse/components/sidebar/sidebar.module.ts new file mode 100644 index 00000000..0f5477f5 --- /dev/null +++ b/src/@fuse/components/sidebar/sidebar.module.ts @@ -0,0 +1,15 @@ +import { NgModule } from '@angular/core'; + +import { FuseSidebarComponent } from './sidebar.component'; + +@NgModule({ + declarations: [ + FuseSidebarComponent + ], + exports : [ + FuseSidebarComponent + ] +}) +export class FuseSidebarModule +{ +} diff --git a/src/@fuse/components/sidebar/sidebar.service.ts b/src/@fuse/components/sidebar/sidebar.service.ts new file mode 100644 index 00000000..a1da4cbb --- /dev/null +++ b/src/@fuse/components/sidebar/sidebar.service.ts @@ -0,0 +1,74 @@ +import { Injectable } from '@angular/core'; + +import { FuseSidebarComponent } from './sidebar.component'; + +@Injectable() +export class FuseSidebarService +{ + // Private + private _registry: { [key: string]: FuseSidebarComponent } = {}; + + /** + * Constructor + */ + constructor() + { + + } + + /** + * Add the sidebar to the registry + * + * @param key + * @param sidebar + */ + register(key, sidebar): void + { + // Check if the key already being used + if ( this._registry[key] ) + { + console.error(`The sidebar with the key '${key}' already exists. Either unregister it first or use a unique key.`); + + return; + } + + // Add to the registry + this._registry[key] = sidebar; + } + + /** + * Remove the sidebar from the registry + * + * @param key + */ + unregister(key): void + { + // Check if the sidebar exists + if ( !this._registry[key] ) + { + console.error(`The sidebar with the key '${key}' doesn't exist in the registry.`); + } + + // Unregister the sidebar + delete this._registry[key]; + } + + /** + * Return the sidebar with the given key + * + * @param key + */ + getSidebar(key): any + { + // Check if the sidebar exists + if ( !this._registry[key] ) + { + console.error(`The sidebar with the key '${key}' doesn't exist in the registry.`); + + return; + } + + // Return the sidebar + return this._registry[key]; + } +} diff --git a/src/app/core/components/theme-options/theme-options.component.html b/src/@fuse/components/theme-options/theme-options.component.html similarity index 75% rename from src/app/core/components/theme-options/theme-options.component.html rename to src/@fuse/components/theme-options/theme-options.component.html index 16e4de6e..71b95e66 100644 --- a/src/app/core/components/theme-options/theme-options.component.html +++ b/src/@fuse/components/theme-options/theme-options.component.html @@ -13,8 +13,8 @@

Navigation:

- + Top Left Right @@ -22,30 +22,30 @@

Navigation Fold (for vertical navigation):

- Folded

Toolbar:

- + Below Above None

Footer:

- + Below Above None

Layout Mode:

- + Boxed Fullwidth @@ -57,19 +57,19 @@

Toolbar Color

-

Navigation Bar Color

-

Footer Color

-
@@ -79,7 +79,7 @@

Router Animation:

- + None diff --git a/src/app/core/components/theme-options/theme-options.component.scss b/src/@fuse/components/theme-options/theme-options.component.scss similarity index 98% rename from src/app/core/components/theme-options/theme-options.component.scss rename to src/@fuse/components/theme-options/theme-options.component.scss index bc116a3c..2e2c7c75 100644 --- a/src/app/core/components/theme-options/theme-options.component.scss +++ b/src/@fuse/components/theme-options/theme-options.component.scss @@ -1,4 +1,4 @@ -@import "src/app/core/scss/fuse"; +@import "src/@fuse/scss/fuse"; @keyframes rotating { from { diff --git a/src/app/core/components/theme-options/theme-options.component.ts b/src/@fuse/components/theme-options/theme-options.component.ts similarity index 81% rename from src/app/core/components/theme-options/theme-options.component.ts rename to src/@fuse/components/theme-options/theme-options.component.ts index b84260ef..5d864e1c 100644 --- a/src/app/core/components/theme-options/theme-options.component.ts +++ b/src/@fuse/components/theme-options/theme-options.component.ts @@ -1,9 +1,12 @@ import { Component, ElementRef, HostBinding, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core'; import { style, animate, AnimationBuilder, AnimationPlayer } from '@angular/animations'; import { Subscription } from 'rxjs/Subscription'; -import { FuseConfigService } from '../../services/config.service'; -import { fuseAnimations } from '../../animations'; -import { FuseNavigationService } from '../navigation/navigation.service'; + +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfigService } from '@fuse/services/config.service'; +import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; + +import { navigation } from 'app/navigation/navigation'; @Component({ selector : 'fuse-theme-options', @@ -18,9 +21,9 @@ export class FuseThemeOptionsComponent implements OnInit, OnDestroy @ViewChild('overlay') overlay: ElementRef; public player: AnimationPlayer; - fuseSettings: any; + config: any; - onSettingsChanged: Subscription; + onConfigChanged: Subscription; @HostBinding('class.bar-closed') barClosed: boolean; @@ -33,19 +36,19 @@ export class FuseThemeOptionsComponent implements OnInit, OnDestroy { this.barClosed = true; - this.onSettingsChanged = - this.fuseConfig.onSettingsChanged + this.onConfigChanged = + this.fuseConfig.onConfigChanged .subscribe( - (newSettings) => { - this.fuseSettings = newSettings; + (newConfig) => { + this.config = newConfig; } ); // Get the nav model and add customize nav item // that opens the bar programmatically - const navModel = this.navigationService.getNavigationModel(); + const nav: any = navigation; - navModel.push({ + nav.push({ 'id' : 'custom-function', 'title' : 'Custom Function', 'type' : 'group', @@ -70,9 +73,14 @@ export class FuseThemeOptionsComponent implements OnInit, OnDestroy }); } + ngOnDestroy() + { + this.onConfigChanged.unsubscribe(); + } + onSettingsChange() { - this.fuseConfig.setSettings(this.fuseSettings); + this.fuseConfig.setConfig(this.config); } closeBar() @@ -104,9 +112,4 @@ export class FuseThemeOptionsComponent implements OnInit, OnDestroy this.player.play(); } - - ngOnDestroy() - { - this.onSettingsChanged.unsubscribe(); - } } diff --git a/src/@fuse/components/theme-options/theme-options.module.ts b/src/@fuse/components/theme-options/theme-options.module.ts new file mode 100644 index 00000000..5aa58c8d --- /dev/null +++ b/src/@fuse/components/theme-options/theme-options.module.ts @@ -0,0 +1,37 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { FlexLayoutModule } from '@angular/flex-layout'; +import { MatButtonModule, MatDividerModule, MatFormFieldModule, MatIconModule, MatOptionModule, MatRadioModule, MatSelectModule, MatSlideToggleModule } from '@angular/material'; + +import { FuseMaterialColorPickerModule } from '@fuse/components/material-color-picker/material-color-picker.module'; +import { FuseThemeOptionsComponent } from '@fuse/components/theme-options/theme-options.component'; + +@NgModule({ + declarations: [ + FuseThemeOptionsComponent + ], + imports : [ + CommonModule, + FormsModule, + + FlexLayoutModule, + + MatButtonModule, + MatDividerModule, + MatFormFieldModule, + MatIconModule, + MatOptionModule, + MatRadioModule, + MatSelectModule, + MatSlideToggleModule, + + FuseMaterialColorPickerModule + ], + exports : [ + FuseThemeOptionsComponent + ] +}) +export class FuseThemeOptionsModule +{ +} diff --git a/src/@fuse/components/widget/widget-toggle.directive.ts b/src/@fuse/components/widget/widget-toggle.directive.ts new file mode 100644 index 00000000..0c278925 --- /dev/null +++ b/src/@fuse/components/widget/widget-toggle.directive.ts @@ -0,0 +1,11 @@ +import { Directive, ElementRef } from '@angular/core'; + +@Directive({ + selector: '[fuseWidgetToggle]' +}) +export class FuseWidgetToggleDirective +{ + constructor(public el: ElementRef) + { + } +} diff --git a/src/app/core/components/widget/widget.component.html b/src/@fuse/components/widget/widget.component.html similarity index 100% rename from src/app/core/components/widget/widget.component.html rename to src/@fuse/components/widget/widget.component.html diff --git a/src/app/core/components/widget/widget.component.scss b/src/@fuse/components/widget/widget.component.scss similarity index 100% rename from src/app/core/components/widget/widget.component.scss rename to src/@fuse/components/widget/widget.component.scss diff --git a/src/app/core/components/widget/widget.component.ts b/src/@fuse/components/widget/widget.component.ts similarity index 84% rename from src/app/core/components/widget/widget.component.ts rename to src/@fuse/components/widget/widget.component.ts index 659dcc62..46ecdbb2 100644 --- a/src/app/core/components/widget/widget.component.ts +++ b/src/@fuse/components/widget/widget.component.ts @@ -1,4 +1,4 @@ -import { AfterContentInit, Component, ContentChildren, ElementRef, HostBinding, OnInit, QueryList, Renderer2, ViewEncapsulation } from '@angular/core'; +import { AfterContentInit, Component, ContentChildren, ElementRef, HostBinding, QueryList, Renderer2, ViewEncapsulation } from '@angular/core'; import { FuseWidgetToggleDirective } from './widget-toggle.directive'; @Component({ @@ -8,7 +8,7 @@ import { FuseWidgetToggleDirective } from './widget-toggle.directive'; encapsulation: ViewEncapsulation.None }) -export class FuseWidgetComponent implements OnInit, AfterContentInit +export class FuseWidgetComponent implements AfterContentInit { @HostBinding('class.flipped') flipped = false; @ContentChildren(FuseWidgetToggleDirective, {descendants: true}) toggleButtons: QueryList; @@ -17,11 +17,6 @@ export class FuseWidgetComponent implements OnInit, AfterContentInit { } - ngOnInit() - { - - } - ngAfterContentInit() { setTimeout(() => { diff --git a/src/app/core/components/widget/widget.module.ts b/src/@fuse/components/widget/widget.module.ts similarity index 78% rename from src/app/core/components/widget/widget.module.ts rename to src/@fuse/components/widget/widget.module.ts index 1907c5b2..5d7fea3d 100644 --- a/src/app/core/components/widget/widget.module.ts +++ b/src/@fuse/components/widget/widget.module.ts @@ -1,20 +1,17 @@ import { NgModule } from '@angular/core'; -import { SharedModule } from '../../modules/shared.module'; + import { FuseWidgetComponent } from './widget.component'; import { FuseWidgetToggleDirective } from './widget-toggle.directive'; @NgModule({ - imports : [ - SharedModule + declarations: [ + FuseWidgetComponent, + FuseWidgetToggleDirective ], exports : [ FuseWidgetComponent, FuseWidgetToggleDirective ], - declarations: [ - FuseWidgetComponent, - FuseWidgetToggleDirective - ] }) export class FuseWidgetModule { diff --git a/src/@fuse/directives/directives.ts b/src/@fuse/directives/directives.ts new file mode 100644 index 00000000..91c92607 --- /dev/null +++ b/src/@fuse/directives/directives.ts @@ -0,0 +1,24 @@ +import { NgModule } from '@angular/core'; + +import { FuseIfOnDomDirective } from '@fuse/directives/fuse-if-on-dom/fuse-if-on-dom.directive'; +import { FusePerfectScrollbarDirective } from '@fuse/directives/fuse-perfect-scrollbar/fuse-perfect-scrollbar.directive'; +import { FuseMatSidenavHelperDirective, FuseMatSidenavTogglerDirective } from '@fuse/directives/fuse-mat-sidenav/fuse-mat-sidenav.directive'; + +@NgModule({ + declarations: [ + FuseIfOnDomDirective, + FuseMatSidenavHelperDirective, + FuseMatSidenavTogglerDirective, + FusePerfectScrollbarDirective + ], + imports : [], + exports : [ + FuseIfOnDomDirective, + FuseMatSidenavHelperDirective, + FuseMatSidenavTogglerDirective, + FusePerfectScrollbarDirective + ] +}) +export class FuseDirectivesModule +{ +} diff --git a/src/app/core/directives/fuse-if-on-dom/fuse-if-on-dom.directive.ts b/src/@fuse/directives/fuse-if-on-dom/fuse-if-on-dom.directive.ts similarity index 100% rename from src/app/core/directives/fuse-if-on-dom/fuse-if-on-dom.directive.ts rename to src/@fuse/directives/fuse-if-on-dom/fuse-if-on-dom.directive.ts diff --git a/src/app/core/directives/fuse-mat-sidenav-helper/fuse-mat-sidenav-helper.directive.ts b/src/@fuse/directives/fuse-mat-sidenav/fuse-mat-sidenav.directive.ts similarity index 90% rename from src/app/core/directives/fuse-mat-sidenav-helper/fuse-mat-sidenav-helper.directive.ts rename to src/@fuse/directives/fuse-mat-sidenav/fuse-mat-sidenav.directive.ts index 4388c7bc..df58a483 100644 --- a/src/app/core/directives/fuse-mat-sidenav-helper/fuse-mat-sidenav-helper.directive.ts +++ b/src/@fuse/directives/fuse-mat-sidenav/fuse-mat-sidenav.directive.ts @@ -2,8 +2,9 @@ import { Directive, Input, OnInit, HostListener, OnDestroy, HostBinding } from ' import { MatSidenav } from '@angular/material'; import { ObservableMedia } from '@angular/flex-layout'; import { Subscription } from 'rxjs/Subscription'; -import { FuseMatchMedia } from '../../services/match-media.service'; -import { FuseMatSidenavHelperService } from './fuse-mat-sidenav-helper.service'; + +import { FuseMatchMediaService } from '@fuse/services/match-media.service'; +import { FuseMatSidenavHelperService } from '@fuse/directives/fuse-mat-sidenav/fuse-mat-sidenav.service'; @Directive({ selector: '[fuseMatSidenavHelper]' @@ -11,15 +12,13 @@ import { FuseMatSidenavHelperService } from './fuse-mat-sidenav-helper.service'; export class FuseMatSidenavHelperDirective implements OnInit, OnDestroy { matchMediaSubscription: Subscription; - @HostBinding('class.mat-is-locked-open') isLockedOpen = true; - @Input('fuseMatSidenavHelper') id: string; @Input('mat-is-locked-open') matIsLockedOpenBreakpoint: string; constructor( private fuseMatSidenavService: FuseMatSidenavHelperService, - private fuseMatchMedia: FuseMatchMedia, + private fuseMatchMedia: FuseMatchMediaService, private observableMedia: ObservableMedia, private matSidenav: MatSidenav ) diff --git a/src/app/core/directives/fuse-mat-sidenav-helper/fuse-mat-sidenav-helper.service.ts b/src/@fuse/directives/fuse-mat-sidenav/fuse-mat-sidenav.service.ts similarity index 100% rename from src/app/core/directives/fuse-mat-sidenav-helper/fuse-mat-sidenav-helper.service.ts rename to src/@fuse/directives/fuse-mat-sidenav/fuse-mat-sidenav.service.ts diff --git a/src/app/core/directives/fuse-perfect-scrollbar/fuse-perfect-scrollbar.directive.ts b/src/@fuse/directives/fuse-perfect-scrollbar/fuse-perfect-scrollbar.directive.ts similarity index 89% rename from src/app/core/directives/fuse-perfect-scrollbar/fuse-perfect-scrollbar.directive.ts rename to src/@fuse/directives/fuse-perfect-scrollbar/fuse-perfect-scrollbar.directive.ts index 9156f2c3..3fd4be24 100644 --- a/src/app/core/directives/fuse-perfect-scrollbar/fuse-perfect-scrollbar.directive.ts +++ b/src/@fuse/directives/fuse-perfect-scrollbar/fuse-perfect-scrollbar.directive.ts @@ -1,15 +1,17 @@ -import { AfterViewInit, Directive, ElementRef, HostListener, OnDestroy } from '@angular/core'; -import { FuseConfigService } from '../../services/config.service'; -import { Subscription } from 'rxjs/Subscription'; +import { AfterViewInit, Directive, ElementRef, HostListener, OnDestroy, OnInit } from '@angular/core'; import { Platform } from '@angular/cdk/platform'; +import { Subscription } from 'rxjs/Subscription'; + import PerfectScrollbar from 'perfect-scrollbar'; +import { FuseConfigService } from '@fuse/services/config.service'; + @Directive({ selector: '[fusePerfectScrollbar]' }) -export class FusePerfectScrollbarDirective implements AfterViewInit, OnDestroy +export class FusePerfectScrollbarDirective implements OnInit, AfterViewInit, OnDestroy { - onSettingsChanged: Subscription; + onConfigChanged: Subscription; isDisableCustomScrollbars = false; isMobile = false; isInitialized = true; @@ -21,13 +23,16 @@ export class FusePerfectScrollbarDirective implements AfterViewInit, OnDestroy private platform: Platform ) { - this.onSettingsChanged = - this.fuseConfig.onSettingsChanged - .subscribe( - (settings) => { - this.isDisableCustomScrollbars = !settings.customScrollbars; - } - ); + } + + ngOnInit() + { + this.onConfigChanged = + this.fuseConfig.onConfigChanged.subscribe( + (settings) => { + this.isDisableCustomScrollbars = !settings.customScrollbars; + } + ); if ( this.platform.ANDROID || this.platform.IOS ) { @@ -56,7 +61,7 @@ export class FusePerfectScrollbarDirective implements AfterViewInit, OnDestroy return; } - this.onSettingsChanged.unsubscribe(); + this.onConfigChanged.unsubscribe(); // Destroy the perfect-scrollbar this.ps.destroy(); diff --git a/src/@fuse/fuse.module.ts b/src/@fuse/fuse.module.ts new file mode 100644 index 00000000..7571fbe0 --- /dev/null +++ b/src/@fuse/fuse.module.ts @@ -0,0 +1,47 @@ +import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core'; + +import { FUSE_CONFIG, FuseConfigService } from '@fuse/services/config.service'; +import { FuseCopierService } from '@fuse/services/copier.service'; +import { FuseMatchMediaService } from '@fuse/services/match-media.service'; +import { FuseMatSidenavHelperService } from '@fuse/directives/fuse-mat-sidenav/fuse-mat-sidenav.service'; +import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; +import { FuseSidebarService } from '@fuse/components/sidebar/sidebar.service'; +import { FuseSplashScreenService } from '@fuse/services/splash-screen.service'; +import { FuseTranslationLoaderService } from '@fuse/services/translation-loader.service'; + +@NgModule({ + entryComponents: [], + providers : [ + FuseConfigService, + FuseCopierService, + FuseMatchMediaService, + FuseMatSidenavHelperService, + FuseNavigationService, + FuseSidebarService, + FuseSplashScreenService, + FuseTranslationLoaderService + ] +}) +export class FuseModule +{ + constructor(@Optional() @SkipSelf() parentModule: FuseModule) + { + if ( parentModule ) + { + throw new Error('FuseModule is already loaded. Import it in the AppModule only!'); + } + } + + static forRoot(config): ModuleWithProviders + { + return { + ngModule : FuseModule, + providers: [ + { + provide : FUSE_CONFIG, + useValue: config + } + ] + }; + } +} diff --git a/src/app/core/matColors.ts b/src/@fuse/mat-colors/index.ts similarity index 100% rename from src/app/core/matColors.ts rename to src/@fuse/mat-colors/index.ts diff --git a/src/app/core/pipes/camelCaseToDash.pipe.ts b/src/@fuse/pipes/camelCaseToDash.pipe.ts similarity index 100% rename from src/app/core/pipes/camelCaseToDash.pipe.ts rename to src/@fuse/pipes/camelCaseToDash.pipe.ts diff --git a/src/app/core/pipes/filter.pipe.ts b/src/@fuse/pipes/filter.pipe.ts similarity index 87% rename from src/app/core/pipes/filter.pipe.ts rename to src/@fuse/pipes/filter.pipe.ts index 590d9d59..dc709edf 100644 --- a/src/app/core/pipes/filter.pipe.ts +++ b/src/@fuse/pipes/filter.pipe.ts @@ -1,5 +1,5 @@ import { Pipe, PipeTransform } from '@angular/core'; -import { FuseUtils } from '../fuseUtils'; +import { FuseUtils } from '@fuse/utils'; @Pipe({name: 'filter'}) export class FilterPipe implements PipeTransform diff --git a/src/app/core/pipes/getById.pipe.ts b/src/@fuse/pipes/getById.pipe.ts similarity index 100% rename from src/app/core/pipes/getById.pipe.ts rename to src/@fuse/pipes/getById.pipe.ts diff --git a/src/app/core/pipes/htmlToPlaintext.pipe.ts b/src/@fuse/pipes/htmlToPlaintext.pipe.ts similarity index 100% rename from src/app/core/pipes/htmlToPlaintext.pipe.ts rename to src/@fuse/pipes/htmlToPlaintext.pipe.ts diff --git a/src/app/core/pipes/keys.pipe.ts b/src/@fuse/pipes/keys.pipe.ts similarity index 100% rename from src/app/core/pipes/keys.pipe.ts rename to src/@fuse/pipes/keys.pipe.ts diff --git a/src/app/core/pipes/pipes.module.ts b/src/@fuse/pipes/pipes.module.ts similarity index 99% rename from src/app/core/pipes/pipes.module.ts rename to src/@fuse/pipes/pipes.module.ts index c4a21aeb..bc5b1349 100644 --- a/src/app/core/pipes/pipes.module.ts +++ b/src/@fuse/pipes/pipes.module.ts @@ -13,7 +13,6 @@ import { CamelCaseToDashPipe } from './camelCaseToDash.pipe'; HtmlToPlaintextPipe, FilterPipe, CamelCaseToDashPipe - ], imports : [], exports : [ @@ -24,8 +23,6 @@ import { CamelCaseToDashPipe } from './camelCaseToDash.pipe'; CamelCaseToDashPipe ] }) - export class FusePipesModule { - } diff --git a/src/app/core/scss/core.scss b/src/@fuse/scss/core.scss similarity index 100% rename from src/app/core/scss/core.scss rename to src/@fuse/scss/core.scss diff --git a/src/app/core/scss/fuse.scss b/src/@fuse/scss/fuse.scss similarity index 100% rename from src/app/core/scss/fuse.scss rename to src/@fuse/scss/fuse.scss diff --git a/src/app/core/scss/mixins/_breakpoints.scss b/src/@fuse/scss/mixins/_breakpoints.scss similarity index 100% rename from src/app/core/scss/mixins/_breakpoints.scss rename to src/@fuse/scss/mixins/_breakpoints.scss diff --git a/src/app/core/scss/partials/_angular-material-fix.scss b/src/@fuse/scss/partials/_angular-material-fix.scss similarity index 100% rename from src/app/core/scss/partials/_angular-material-fix.scss rename to src/@fuse/scss/partials/_angular-material-fix.scss diff --git a/src/app/core/scss/partials/_cards.scss b/src/@fuse/scss/partials/_cards.scss similarity index 100% rename from src/app/core/scss/partials/_cards.scss rename to src/@fuse/scss/partials/_cards.scss diff --git a/src/app/core/scss/partials/_colors.scss b/src/@fuse/scss/partials/_colors.scss similarity index 100% rename from src/app/core/scss/partials/_colors.scss rename to src/@fuse/scss/partials/_colors.scss diff --git a/src/app/core/scss/partials/_forms.scss b/src/@fuse/scss/partials/_forms.scss similarity index 100% rename from src/app/core/scss/partials/_forms.scss rename to src/@fuse/scss/partials/_forms.scss diff --git a/src/app/core/scss/partials/_global.scss b/src/@fuse/scss/partials/_global.scss similarity index 100% rename from src/app/core/scss/partials/_global.scss rename to src/@fuse/scss/partials/_global.scss diff --git a/src/app/core/scss/partials/_helpers.scss b/src/@fuse/scss/partials/_helpers.scss similarity index 100% rename from src/app/core/scss/partials/_helpers.scss rename to src/@fuse/scss/partials/_helpers.scss diff --git a/src/app/core/scss/partials/_icons.scss b/src/@fuse/scss/partials/_icons.scss similarity index 100% rename from src/app/core/scss/partials/_icons.scss rename to src/@fuse/scss/partials/_icons.scss diff --git a/src/app/core/scss/partials/_material.scss b/src/@fuse/scss/partials/_material.scss similarity index 100% rename from src/app/core/scss/partials/_material.scss rename to src/@fuse/scss/partials/_material.scss diff --git a/src/app/core/scss/partials/_navigation.scss b/src/@fuse/scss/partials/_navigation.scss similarity index 100% rename from src/app/core/scss/partials/_navigation.scss rename to src/@fuse/scss/partials/_navigation.scss diff --git a/src/app/core/scss/partials/_normalize.scss b/src/@fuse/scss/partials/_normalize.scss similarity index 100% rename from src/app/core/scss/partials/_normalize.scss rename to src/@fuse/scss/partials/_normalize.scss diff --git a/src/app/core/scss/partials/_page-layouts.scss b/src/@fuse/scss/partials/_page-layouts.scss similarity index 99% rename from src/app/core/scss/partials/_page-layouts.scss rename to src/@fuse/scss/partials/_page-layouts.scss index b1188038..d811517a 100644 --- a/src/app/core/scss/partials/_page-layouts.scss +++ b/src/@fuse/scss/partials/_page-layouts.scss @@ -231,9 +231,11 @@ $top-bg-image: url('assets/images/backgrounds/header-bg.png'); > .mat-sidenav-content, > .mat-drawer-content { width: calc(100% - 240px); + min-width: 0; .center { width: calc(100% - 32px); + min-width: 0; @include media-breakpoint-down('md') { width: calc(100% - 64px); diff --git a/src/app/core/scss/partials/_print.scss b/src/@fuse/scss/partials/_print.scss similarity index 100% rename from src/app/core/scss/partials/_print.scss rename to src/@fuse/scss/partials/_print.scss diff --git a/src/app/core/scss/partials/_reset.scss b/src/@fuse/scss/partials/_reset.scss similarity index 100% rename from src/app/core/scss/partials/_reset.scss rename to src/@fuse/scss/partials/_reset.scss diff --git a/src/app/core/scss/partials/_scrollbars.scss b/src/@fuse/scss/partials/_scrollbars.scss similarity index 100% rename from src/app/core/scss/partials/_scrollbars.scss rename to src/@fuse/scss/partials/_scrollbars.scss diff --git a/src/app/core/scss/partials/_toolbar.scss b/src/@fuse/scss/partials/_toolbar.scss similarity index 100% rename from src/app/core/scss/partials/_toolbar.scss rename to src/@fuse/scss/partials/_toolbar.scss diff --git a/src/app/core/scss/partials/_typography.scss b/src/@fuse/scss/partials/_typography.scss similarity index 100% rename from src/app/core/scss/partials/_typography.scss rename to src/@fuse/scss/partials/_typography.scss diff --git a/src/app/core/scss/partials/plugins/_ng-pick-datetime.scss b/src/@fuse/scss/partials/plugins/_ng-pick-datetime.scss similarity index 100% rename from src/app/core/scss/partials/plugins/_ng-pick-datetime.scss rename to src/@fuse/scss/partials/plugins/_ng-pick-datetime.scss diff --git a/src/app/core/scss/partials/plugins/_ngx-color-picker.scss b/src/@fuse/scss/partials/plugins/_ngx-color-picker.scss similarity index 95% rename from src/app/core/scss/partials/plugins/_ngx-color-picker.scss rename to src/@fuse/scss/partials/plugins/_ngx-color-picker.scss index aab3d8d7..c1a7d1b0 100644 --- a/src/app/core/scss/partials/plugins/_ngx-color-picker.scss +++ b/src/@fuse/scss/partials/plugins/_ngx-color-picker.scss @@ -1,4 +1,4 @@ -@import "src/app/core/scss/fuse"; +@import "src/@fuse/scss/fuse"; .color-picker { height: auto !important; diff --git a/src/app/core/scss/partials/plugins/_ngx-datatable.scss b/src/@fuse/scss/partials/plugins/_ngx-datatable.scss similarity index 100% rename from src/app/core/scss/partials/plugins/_ngx-datatable.scss rename to src/@fuse/scss/partials/plugins/_ngx-datatable.scss diff --git a/src/app/core/scss/partials/plugins/_perfect-scrollbar.scss b/src/@fuse/scss/partials/plugins/_perfect-scrollbar.scss similarity index 100% rename from src/app/core/scss/partials/plugins/_perfect-scrollbar.scss rename to src/@fuse/scss/partials/plugins/_perfect-scrollbar.scss diff --git a/src/app/core/scss/partials/plugins/_plugins.scss b/src/@fuse/scss/partials/plugins/_plugins.scss similarity index 100% rename from src/app/core/scss/partials/plugins/_plugins.scss rename to src/@fuse/scss/partials/plugins/_plugins.scss diff --git a/src/app/core/scss/partials/plugins/_prism.scss b/src/@fuse/scss/partials/plugins/_prism.scss similarity index 100% rename from src/app/core/scss/partials/plugins/_prism.scss rename to src/@fuse/scss/partials/plugins/_prism.scss diff --git a/src/app/core/scss/variables/_theme.scss b/src/@fuse/scss/variables/_theme.scss similarity index 100% rename from src/app/core/scss/variables/_theme.scss rename to src/@fuse/scss/variables/_theme.scss diff --git a/src/@fuse/services/config.service.ts b/src/@fuse/services/config.service.ts new file mode 100644 index 00000000..2c4cbde4 --- /dev/null +++ b/src/@fuse/services/config.service.ts @@ -0,0 +1,113 @@ +import { Inject, Injectable, InjectionToken, Optional } from '@angular/core'; +import { NavigationStart, Router } from '@angular/router'; +import { BehaviorSubject } from 'rxjs/BehaviorSubject'; +import { Platform } from '@angular/cdk/platform'; + +// Define the default config +const DEFAULT_CONFIG = { + layout : { + navigation : 'left', // 'right', 'left', 'top', 'none' + navigationFolded: false, // true, false + toolbar : 'below', // 'above', 'below', 'none' + footer : 'below', // 'above', 'below', 'none' + mode : 'fullwidth' // 'boxed', 'fullwidth' + }, + colorClasses : { + toolbar: 'mat-white-500-bg', + navbar : 'mat-fuse-dark-700-bg', + footer : 'mat-fuse-dark-900-bg' + }, + customScrollbars: true, + routerAnimation : 'fadeIn' // fadeIn, slideUp, slideDown, slideRight, slideLeft, none +}; + +// Create the injection token for the custom config +export const FUSE_CONFIG = new InjectionToken('fuseCustomConfig'); + +@Injectable() +export class FuseConfigService +{ + config: any; + defaultConfig: any; + + onConfigChanged: BehaviorSubject; + + /** + * Constructor + * + * @param router + * @param platform + * @param config + */ + constructor( + private router: Router, + public platform: Platform, + @Inject(FUSE_CONFIG) @Optional() config + ) + { + // Set the default settings from the constant + this.defaultConfig = DEFAULT_CONFIG; + + // If custom config provided with forRoot, + // use them as default config... + if ( config ) + { + this.defaultConfig = config; + } + + /** + * Disable Custom Scrollbars if Browser is Mobile + */ + if ( this.platform.ANDROID || this.platform.IOS ) + { + this.defaultConfig.customScrollbars = false; + } + + // Set the config from the default config + this.config = {...this.defaultConfig}; + + // Reload the default settings for the + // layout on every navigation start + router.events.subscribe( + (event) => { + if ( event instanceof NavigationStart ) + { + this.setConfig({ + layout: this.defaultConfig.layout + } + ); + } + } + ); + + // Create the behavior subject + this.onConfigChanged = new BehaviorSubject(this.config); + } + + /** + * Set the new config from given object + * + * @param config + */ + setConfig(config): void + { + // Set the config from the given object + // Ugly, but works for now... + this.config = { + ...this.config, + ...config, + layout : { + ...this.config.layout, + ...config.layout, + }, + colorClasses: { + ...this.config.colorClasses, + ...config.colorClasses + } + }; + + // Trigger the event + this.onConfigChanged.next(this.config); + } +} + diff --git a/src/app/core/components/copier/copier.service.ts b/src/@fuse/services/copier.service.ts similarity index 98% rename from src/app/core/components/copier/copier.service.ts rename to src/@fuse/services/copier.service.ts index 03227fc4..99880d4e 100644 --- a/src/app/core/components/copier/copier.service.ts +++ b/src/@fuse/services/copier.service.ts @@ -9,7 +9,7 @@ import { Injectable } from '@angular/core'; @Injectable() -export class CopierService +export class FuseCopierService { private textarea: HTMLTextAreaElement; diff --git a/src/app/core/services/match-media.service.ts b/src/@fuse/services/match-media.service.ts similarity index 62% rename from src/app/core/services/match-media.service.ts rename to src/@fuse/services/match-media.service.ts index 6e843bc3..b37b2aa1 100644 --- a/src/app/core/services/match-media.service.ts +++ b/src/@fuse/services/match-media.service.ts @@ -1,11 +1,12 @@ import { MediaChange, ObservableMedia } from '@angular/flex-layout'; -import { EventEmitter, Injectable } from '@angular/core'; +import { Injectable } from '@angular/core'; +import { BehaviorSubject } from 'rxjs/BehaviorSubject'; @Injectable() -export class FuseMatchMedia +export class FuseMatchMediaService { activeMediaQuery: string; - onMediaChange: EventEmitter = new EventEmitter(); + onMediaChange: BehaviorSubject = new BehaviorSubject(''); constructor(private observableMedia: ObservableMedia) { @@ -15,7 +16,7 @@ export class FuseMatchMedia if ( this.activeMediaQuery !== change.mqAlias ) { this.activeMediaQuery = change.mqAlias; - this.onMediaChange.emit(change.mqAlias); + this.onMediaChange.next(change.mqAlias); } }); } diff --git a/src/app/core/services/splash-screen.service.ts b/src/@fuse/services/splash-screen.service.ts similarity index 100% rename from src/app/core/services/splash-screen.service.ts rename to src/@fuse/services/splash-screen.service.ts diff --git a/src/app/core/services/translation-loader.service.ts b/src/@fuse/services/translation-loader.service.ts similarity index 100% rename from src/app/core/services/translation-loader.service.ts rename to src/@fuse/services/translation-loader.service.ts diff --git a/src/@fuse/shared.module.ts b/src/@fuse/shared.module.ts new file mode 100644 index 00000000..9d82a601 --- /dev/null +++ b/src/@fuse/shared.module.ts @@ -0,0 +1,34 @@ +import { NgModule } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { CommonModule } from '@angular/common'; + +import { FlexLayoutModule } from '@angular/flex-layout'; + +import { FuseDirectivesModule } from '@fuse/directives/directives'; +import { FusePipesModule } from '@fuse/pipes/pipes.module'; + +@NgModule({ + imports : [ + CommonModule, + FormsModule, + ReactiveFormsModule, + + FlexLayoutModule, + + FuseDirectivesModule, + FusePipesModule + ], + exports : [ + CommonModule, + FormsModule, + ReactiveFormsModule, + + FlexLayoutModule, + + FuseDirectivesModule, + FusePipesModule + ] +}) +export class FuseSharedModule +{ +} diff --git a/src/app/core/fuseUtils.ts b/src/@fuse/utils/index.ts similarity index 100% rename from src/app/core/fuseUtils.ts rename to src/@fuse/utils/index.ts diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 64ca8fd3..9a7d71d2 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,10 +1,10 @@ import { Component } from '@angular/core'; -import { FuseSplashScreenService } from './core/services/splash-screen.service'; import { TranslateService } from '@ngx-translate/core'; -import { FuseTranslationLoaderService } from './core/services/translation-loader.service'; -import { FuseNavigationService } from './core/components/navigation/navigation.service'; -import { FuseNavigationModel } from './navigation/navigation.model'; +import { FuseSplashScreenService } from '@fuse/services/splash-screen.service'; +import { FuseTranslationLoaderService } from '@fuse/services/translation-loader.service'; +import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; + import { locale as navigationEnglish } from './navigation/i18n/en'; import { locale as navigationTurkish } from './navigation/i18n/tr'; @@ -16,10 +16,10 @@ import { locale as navigationTurkish } from './navigation/i18n/tr'; export class AppComponent { constructor( + private translate: TranslateService, private fuseNavigationService: FuseNavigationService, private fuseSplashScreen: FuseSplashScreenService, - private translate: TranslateService, - private translationLoader: FuseTranslationLoaderService + private fuseTranslationLoader: FuseTranslationLoaderService ) { // Add languages @@ -28,13 +28,10 @@ export class AppComponent // Set the default language this.translate.setDefaultLang('en'); + // Set the navigation translations + this.fuseTranslationLoader.loadTranslations(navigationEnglish, navigationTurkish); + // Use a language this.translate.use('en'); - - // Set the navigation model - this.fuseNavigationService.setNavigationModel(new FuseNavigationModel()); - - // Set the navigation translations - this.translationLoader.loadTranslations(navigationEnglish, navigationTurkish); } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 9e884c46..d3f945a5 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -4,14 +4,16 @@ 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 { TranslateModule } from '@ngx-translate/core'; + +import { FuseModule } from '@fuse/fuse.module'; +import { FuseSharedModule } from '@fuse/shared.module'; + +import { fuseConfig } from './fuse-config'; + import { AppComponent } from './app.component'; import { FuseMainModule } from './main/main.module'; -import { FuseSplashScreenService } from './core/services/splash-screen.service'; -import { FuseConfigService } from './core/services/config.service'; -import { FuseNavigationService } from './core/components/navigation/navigation.service'; import { FuseSampleModule } from './main/content/sample/sample.module'; -import { TranslateModule } from '@ngx-translate/core'; const appRoutes: Routes = [ { @@ -26,19 +28,17 @@ const appRoutes: Routes = [ ], imports : [ BrowserModule, - HttpClientModule, BrowserAnimationsModule, - RouterModule.forRoot(appRoutes), - SharedModule, + HttpClientModule, + RouterModule.forRoot(appRoutes), SharedModule, TranslateModule.forRoot(), + + // Fuse Main and Shared modules + FuseModule.forRoot(fuseConfig), + FuseSharedModule, FuseMainModule, FuseSampleModule ], - providers : [ - FuseSplashScreenService, - FuseConfigService, - FuseNavigationService - ], bootstrap : [ AppComponent ] diff --git a/src/app/core/components/demo/demo-content/demo-content.component.html b/src/app/core/components/demo/demo-content/demo-content.component.html deleted file mode 100644 index a8075ec0..00000000 --- a/src/app/core/components/demo/demo-content/demo-content.component.html +++ /dev/null @@ -1,75 +0,0 @@ - -
- - beach - -

Early Sunrise

-

Demo Content

- -

- One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a - horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his - brown belly, slightly domed and divided by arches into stiff sections. -

- -
-

- The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs, - pitifully thin compared with the size of the rest of him, waved about helplessly as he looked. "What's - happened to me? " he thought. It wasn't a dream. -

-
- John Doe -
-
- -

- His room, a proper human room although a little too small, lay peacefully between its four familiar - walls. A collection of textile samples lay spread out on the table - Samsa was a travelling salesman - - and above it there hung a picture that he had recently cut out of an illustrated magazine and housed in - a nice, gilded frame. -

- -

- It showed a lady fitted out with a fur hat and fur boa who sat upright, raising a heavy fur muff that - covered the whole of her lower arm towards the viewer. Gregor then turned to look out the window at the - dull weather. Drops of rain could be heard hitting the pane, which made him feel quite sad. -

- -

- "How about if I sleep a little bit longer and forget all this nonsense", he thought, but that was - something he was unable to do because he was used to sleeping on his right, and in his present state - couldn't get into that position. However hard he threw himself onto his right, he always rolled back to - where he was. -

- -

- He must have tried it a hundred times, shut his eyes so that he wouldn't have to look at the floundering - legs, and only stopped when he began to feel a mild, dull pain there that he had never felt before. "Oh, - God", he thought, "what a strenuous career it is that I've chosen! -

- -

- Travelling day in and day out. Doing business like this takes much more effort than doing your own - business at home, and on top of that there's the curse of travelling, worries about making train - connections, bad and irregular food, contact with different people all the time so that you can never - get to know anyone or become friendly with them. -

- -

- "He felt a slight itch up on his belly; pushed himself slowly up on his back towards the headboard so - that he could lift his head better; found where the itch was, and saw that it was covered with lots of - little white spots which he didn't know what to make of; and when he tried to feel the place with one of - his legs he drew it quickly back because as soon as he touched it he was overcome by a cold shudder. He - slid back into his former position. -

- -

- "Getting up early all the time", he thought, "it makes you stupid. You've got to get enough sleep. Other - travelling salesmen live a life of luxury. For instance, whenever I go back to the guest house during - the morning to copy out the contract, these gentlemen are always still sitting there eating their - breakfasts. I ought to just try that with my boss; I'd get kicked out on the spot. But who knows, maybe - that would be the best thing for me... -

-
- diff --git a/src/app/core/components/navigation/navigation.component.scss b/src/app/core/components/navigation/navigation.component.scss deleted file mode 100644 index 8087fe06..00000000 --- a/src/app/core/components/navigation/navigation.component.scss +++ /dev/null @@ -1,6 +0,0 @@ -@import 'src/app/core/scss/fuse'; - -#main-navigation { - margin: 0; - padding: 0; -} diff --git a/src/app/core/components/navigation/navigation.component.ts b/src/app/core/components/navigation/navigation.component.ts deleted file mode 100644 index edd2c064..00000000 --- a/src/app/core/components/navigation/navigation.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Component, Input, OnDestroy, ViewEncapsulation } from '@angular/core'; -import { FuseNavigationService } from './navigation.service'; -import { Subscription } from 'rxjs/Subscription'; - -@Component({ - selector : 'fuse-navigation', - templateUrl : './navigation.component.html', - styleUrls : ['./navigation.component.scss'], - encapsulation: ViewEncapsulation.None -}) -export class FuseNavigationComponent implements OnDestroy -{ - navigationModel: any[]; - navigationModelChangeSubscription: Subscription; - - @Input('layout') layout = 'vertical'; - - constructor(private fuseNavigationService: FuseNavigationService) - { - this.navigationModelChangeSubscription = - this.fuseNavigationService.onNavigationModelChange - .subscribe((navigationModel) => { - this.navigationModel = navigationModel; - }); - } - - ngOnDestroy() - { - this.navigationModelChangeSubscription.unsubscribe(); - } - -} diff --git a/src/app/core/components/navigation/navigation.model.ts b/src/app/core/components/navigation/navigation.model.ts deleted file mode 100644 index 30268ded..00000000 --- a/src/app/core/components/navigation/navigation.model.ts +++ /dev/null @@ -1,5 +0,0 @@ -export interface FuseNavigationModelInterface -{ - model: any[]; -} - diff --git a/src/app/core/components/navigation/navigation.service.ts b/src/app/core/components/navigation/navigation.service.ts deleted file mode 100644 index b85069b1..00000000 --- a/src/app/core/components/navigation/navigation.service.ts +++ /dev/null @@ -1,198 +0,0 @@ -import { EventEmitter, Injectable } from '@angular/core'; -import { BehaviorSubject } from 'rxjs/BehaviorSubject'; -import { FuseNavigationModelInterface } from './navigation.model'; - -@Injectable() -export class FuseNavigationService -{ - onNavCollapseToggle = new EventEmitter(); - onNavCollapseToggled = new EventEmitter(); - onNavigationModelChange: BehaviorSubject = new BehaviorSubject({}); - navigationModel: FuseNavigationModelInterface; - flatNavigation: any[] = []; - - constructor() - { - } - - /** - * Get navigation model - * - * @returns {any[]} - */ - getNavigationModel() - { - return this.navigationModel.model; - } - - /** - * Set the navigation model - * - * @param model - */ - setNavigationModel(model) - { - this.navigationModel = model; - this.onNavigationModelChange.next(this.navigationModel.model); - } - - /** - * Add new navigation item - * to the given location - */ - addNavigationItem(location, item) - { - // Parse the location - const locationArr = location.split('.'); - - if ( locationArr.length === 0 ) - { - return; - } - - // Find the navigation item - const navItem = this.findNavigationItemById(locationArr); - - // Act according to the item type - switch ( navItem.type ) - { - case 'item': - - // Create a children array - navItem.children = []; - - // Push the item - navItem.children.push(item); - - // Change the item type to collapsable - navItem.type = 'collapse'; - - break; - - case 'collapse': - - // Push the item - navItem.children.push(item); - - break; - - case 'group': - - // Push the item - navItem.children.push(item); - - break; - - default: - break; - } - } - - /** - * Get navigation item from - * given location - * - * @param location - */ - getNavigationItem(location) - { - // Parse the location - const locationArr = location.split('.'); - - if ( locationArr.length === 0 ) - { - return; - } - - // Find and return the navigation item - return this.findNavigationItemById(locationArr); - } - - /** - * Find navigation item by location - * - * @param location - * @param navigation - */ - findNavigationItemById(location, navigation?) - { - if ( !navigation ) - { - navigation = this.navigationModel.model; - } - - // Iterate through the given navigation - for ( const navItem of navigation ) - { - // If the nav item id equals the first location... - if ( navItem.id === location[0] ) - { - // If there is more location to look at... - if ( location.length > 1 ) - { - // Remove the first item of the location - location.splice(0, 1); - - // Go nested... - return this.findNavigationItemById(location, navItem.children); - } - - // Otherwise just return the nav item - else - { - return navItem; - } - } - } - } - - /** - * Get flattened navigation array - * @param navigationItems - * @returns {any[]} - */ - getFlatNavigation(navigationItems?) - { - // If navigation items not provided, - // that means we are running the function - // for the first time... - if ( !navigationItems ) - { - // Reset the flat navigation - this.flatNavigation = []; - - // Get the entire navigation model - navigationItems = this.navigationModel.model; - } - - for ( const navItem of navigationItems ) - { - if ( navItem.type === 'subheader' ) - { - continue; - } - - if ( navItem.type === 'item' ) - { - this.flatNavigation.push({ - title: navItem.title, - type : navItem.type, - icon : navItem.icon || false, - url : navItem.url - }); - - continue; - } - - if ( navItem.type === 'collapse' || navItem.type === 'group' ) - { - if ( navItem.children ) - { - this.getFlatNavigation(navItem.children); - } - } - } - - return this.flatNavigation; - } -} diff --git a/src/app/core/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.html b/src/app/core/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.html deleted file mode 100644 index 6ff78f82..00000000 --- a/src/app/core/components/navigation/vertical/nav-collapse/nav-vertical-collapse.component.html +++ /dev/null @@ -1,17 +0,0 @@ - - {{item.icon}} - {{item.title}} - - {{item.badge.title}} - - keyboard_arrow_right - - -
- - - - - -
diff --git a/src/app/core/components/navigation/vertical/nav-group/nav-vertical-group.component.html b/src/app/core/components/navigation/vertical/nav-group/nav-vertical-group.component.html deleted file mode 100644 index fe5042bb..00000000 --- a/src/app/core/components/navigation/vertical/nav-group/nav-vertical-group.component.html +++ /dev/null @@ -1,11 +0,0 @@ -
- {{ item.title }} -
- -
- - - - - -
\ No newline at end of file diff --git a/src/app/core/components/navigation/vertical/nav-item/nav-vertical-item.component.html b/src/app/core/components/navigation/vertical/nav-item/nav-vertical-item.component.html deleted file mode 100644 index f0dc5201..00000000 --- a/src/app/core/components/navigation/vertical/nav-item/nav-vertical-item.component.html +++ /dev/null @@ -1,18 +0,0 @@ - - {{item.icon}} - {{item.title}} - - {{item.badge.title}} - - - - - {{item.icon}} - {{item.title}} - - {{item.badge.title}} - - diff --git a/src/app/core/components/shortcuts/shortcuts.module.ts b/src/app/core/components/shortcuts/shortcuts.module.ts deleted file mode 100644 index 46cd7069..00000000 --- a/src/app/core/components/shortcuts/shortcuts.module.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; - -import { FuseShortcutsComponent } from './shortcuts.component'; -import { SharedModule } from '../../modules/shared.module'; - -@NgModule({ - declarations: [ - FuseShortcutsComponent - ], - imports : [ - SharedModule, - RouterModule - ], - exports : [ - FuseShortcutsComponent - ] -}) -export class FuseShortcutsModule -{ -} diff --git a/src/app/core/components/widget/widget-toggle.directive.ts b/src/app/core/components/widget/widget-toggle.directive.ts deleted file mode 100644 index f777c588..00000000 --- a/src/app/core/components/widget/widget-toggle.directive.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { AfterViewInit, Directive, ElementRef, OnInit } from '@angular/core'; - -@Directive({ - selector: '[fuseWidgetToggle]' -}) -export class FuseWidgetToggleDirective implements OnInit, AfterViewInit -{ - - constructor(public el: ElementRef) - { - } - - ngOnInit() - { - } - - ngAfterViewInit() - { - } - -} diff --git a/src/app/core/modules/material.module.ts b/src/app/core/modules/material.module.ts deleted file mode 100644 index 36d357c6..00000000 --- a/src/app/core/modules/material.module.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { NgModule } from '@angular/core'; -import { - MatAutocompleteModule, - MatButtonModule, - MatButtonToggleModule, - MatCheckboxModule, - MatToolbarModule, - MatTooltipModule, - MatCardModule, - MatChipsModule, - MatDatepickerModule, - MatDialogModule, - MatExpansionModule, - MatFormFieldModule, - MatGridListModule, - MatIconModule, - MatInputModule, - MatListModule, - MatMenuModule, - MatNativeDateModule, - MatPaginatorModule, - MatProgressBarModule, - MatProgressSpinnerModule, - MatRadioModule, - MatRippleModule, - MatSelectModule, - MatSidenavModule, - MatSliderModule, - MatSlideToggleModule, - MatSnackBarModule, - MatSortModule, - MatTableModule, - MatTabsModule, - MatStepperModule -} from '@angular/material'; -import { CdkTableModule } from '@angular/cdk/table'; - -@NgModule({ - imports: [ - MatAutocompleteModule, - MatButtonModule, - MatButtonToggleModule, - MatCardModule, - MatCheckboxModule, - MatChipsModule, - MatDatepickerModule, - MatDialogModule, - MatExpansionModule, - MatFormFieldModule, - MatGridListModule, - MatIconModule, - MatInputModule, - MatListModule, - MatMenuModule, - MatNativeDateModule, - MatPaginatorModule, - MatProgressBarModule, - MatProgressSpinnerModule, - MatRadioModule, - MatRippleModule, - MatSelectModule, - MatSidenavModule, - MatSliderModule, - MatSlideToggleModule, - MatSnackBarModule, - MatStepperModule, - MatSortModule, - MatTableModule, - MatTabsModule, - MatToolbarModule, - MatTooltipModule, - CdkTableModule - ], - exports: [ - MatAutocompleteModule, - MatButtonModule, - MatButtonToggleModule, - MatCardModule, - MatCheckboxModule, - MatChipsModule, - MatDatepickerModule, - MatDialogModule, - MatExpansionModule, - MatGridListModule, - MatIconModule, - MatInputModule, - MatListModule, - MatMenuModule, - MatNativeDateModule, - MatPaginatorModule, - MatProgressBarModule, - MatProgressSpinnerModule, - MatRadioModule, - MatRippleModule, - MatSelectModule, - MatSidenavModule, - MatSliderModule, - MatSlideToggleModule, - MatSnackBarModule, - MatStepperModule, - MatSortModule, - MatTableModule, - MatTabsModule, - MatToolbarModule, - MatTooltipModule, - CdkTableModule - ] -}) -export class MaterialModule -{ - -} diff --git a/src/app/core/services/config.service.ts b/src/app/core/services/config.service.ts deleted file mode 100644 index bd4093a6..00000000 --- a/src/app/core/services/config.service.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { Injectable } from '@angular/core'; -import { BehaviorSubject } from 'rxjs/BehaviorSubject'; -import { NavigationStart, Router } from '@angular/router'; -import { Platform } from '@angular/cdk/platform'; - -@Injectable() -export class FuseConfigService -{ - settings: any; - defaultSettings: any; - onSettingsChanged: BehaviorSubject; - - /** - * @param router - * @param platform - */ - constructor( - private router: Router, - public platform: Platform - ) - { - // Set the default settings - this.defaultSettings = { - layout : { - navigation : 'left', // 'right', 'left', 'top', 'none' - navigationFolded: false, // true, false - toolbar : 'below', // 'above', 'below', 'none' - footer : 'below', // 'above', 'below', 'none' - mode : 'fullwidth' // 'boxed', 'fullwidth' - }, - colorClasses : { - toolbar: 'mat-white-500-bg', - navbar : 'mat-fuse-dark-700-bg', - footer : 'mat-fuse-dark-900-bg' - }, - customScrollbars: true, - routerAnimation : 'fadeIn' // fadeIn, slideUp, slideDown, slideRight, slideLeft, none - }; - - /** - * Disable Custom Scrollbars if Browser is Mobile - */ - if ( this.platform.ANDROID || this.platform.IOS ) - { - this.defaultSettings.customScrollbars = false; - } - - // Set the settings from the default settings - this.settings = Object.assign({}, this.defaultSettings); - - // Reload the default settings on every navigation start - router.events.subscribe( - (event) => { - if ( event instanceof NavigationStart ) - { - this.setSettings({layout: this.defaultSettings.layout}); - } - } - ); - - // Create the behavior subject - this.onSettingsChanged = new BehaviorSubject(this.settings); - } - - /** - * Sets settings - * @param settings - */ - setSettings(settings) - { - // Set the settings from the given object - this.settings = Object.assign({}, this.settings, settings); - - // Trigger the event - this.onSettingsChanged.next(this.settings); - } -} diff --git a/src/app/fuse-config.ts b/src/app/fuse-config.ts new file mode 100644 index 00000000..0cdd3de8 --- /dev/null +++ b/src/app/fuse-config.ts @@ -0,0 +1,23 @@ +/** + * Default Fuse Configuration + * + * You can edit these options to change the default options. All these options also can be changed per component + * basis. See `app/main/content/pages/authentication/login/login.component.ts` constructor method to learn more + * about changing these options per component basis. + */ +export const fuseConfig = { + layout : { + navigation : 'left', // 'right', 'left', 'top', 'none' + navigationFolded: false, // true, false + toolbar : 'below', // 'above', 'below', 'none' + footer : 'below', // 'above', 'below', 'none' + mode : 'fullwidth' // 'boxed', 'fullwidth' + }, + colorClasses : { + toolbar: 'mat-white-500-bg', + navbar : 'mat-fuse-dark-700-bg', + footer : 'mat-fuse-dark-900-bg' + }, + customScrollbars: true, + routerAnimation : 'fadeIn' // fadeIn, slideUp, slideDown, slideRight, slideLeft, none +}; diff --git a/src/app/main/content/content.component.ts b/src/app/main/content/content.component.ts index 297eaa11..7cfca410 100644 --- a/src/app/main/content/content.component.ts +++ b/src/app/main/content/content.component.ts @@ -1,20 +1,22 @@ -import { Component, HostBinding, OnInit, OnDestroy } from '@angular/core'; +import { Component, HostBinding, OnDestroy } from '@angular/core'; import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; -import { fuseAnimations } from '../../core/animations'; -import { FuseConfigService } from '../../core/services/config.service'; + import { Subscription } from 'rxjs/Subscription'; import 'rxjs/add/operator/filter'; import 'rxjs/add/operator/map'; +import { fuseAnimations } from '@fuse/animations/index'; +import { FuseConfigService } from '@fuse/services/config.service'; + @Component({ selector : 'fuse-content', templateUrl: './content.component.html', styleUrls : ['./content.component.scss'], animations : fuseAnimations }) -export class FuseContentComponent implements OnInit, OnDestroy +export class FuseContentComponent implements OnDestroy { - onSettingsChanged: Subscription; + onConfigChanged: Subscription; fuseSettings: any; @HostBinding('@routerTransitionUp') routeAnimationUp = false; @@ -53,8 +55,8 @@ export class FuseContentComponent implements OnInit, OnDestroy } }); - this.onSettingsChanged = - this.fuseConfig.onSettingsChanged + this.onConfigChanged = + this.fuseConfig.onConfigChanged .subscribe( (newSettings) => { this.fuseSettings = newSettings; @@ -62,13 +64,8 @@ export class FuseContentComponent implements OnInit, OnDestroy ); } - ngOnInit() - { - - } - ngOnDestroy() { - this.onSettingsChanged.unsubscribe(); + this.onConfigChanged.unsubscribe(); } } diff --git a/src/app/main/content/content.module.ts b/src/app/main/content/content.module.ts new file mode 100644 index 00000000..bbccf91f --- /dev/null +++ b/src/app/main/content/content.module.ts @@ -0,0 +1,23 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; + +import { FuseSharedModule } from '@fuse/shared.module'; + +import { FuseContentComponent } from 'app/main/content/content.component'; + +@NgModule({ + declarations: [ + FuseContentComponent + ], + imports : [ + RouterModule, + + FuseSharedModule, + ], + exports: [ + FuseContentComponent + ] +}) +export class FuseContentModule +{ +} diff --git a/src/app/main/footer/footer.component.ts b/src/app/main/footer/footer.component.ts index d741f76c..4065e363 100644 --- a/src/app/main/footer/footer.component.ts +++ b/src/app/main/footer/footer.component.ts @@ -1,19 +1,14 @@ -import { Component, OnInit } from '@angular/core'; +import { Component } from '@angular/core'; @Component({ selector : 'fuse-footer', templateUrl: './footer.component.html', styleUrls : ['./footer.component.scss'] }) -export class FuseFooterComponent implements OnInit +export class FuseFooterComponent { constructor() { } - - ngOnInit() - { - } - } diff --git a/src/app/main/footer/footer.module.ts b/src/app/main/footer/footer.module.ts new file mode 100644 index 00000000..a7c26d66 --- /dev/null +++ b/src/app/main/footer/footer.module.ts @@ -0,0 +1,28 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { MatButtonModule, MatIconModule, MatToolbarModule } from '@angular/material'; + +import { FuseSharedModule } from '@fuse/shared.module'; + +import { FuseFooterComponent } from 'app/main/footer/footer.component'; + +@NgModule({ + declarations: [ + FuseFooterComponent + ], + imports : [ + RouterModule, + + MatButtonModule, + MatIconModule, + MatToolbarModule, + + FuseSharedModule + ], + exports : [ + FuseFooterComponent + ] +}) +export class FuseFooterModule +{ +} diff --git a/src/app/main/main.component.html b/src/app/main/main.component.html index dd808a57..39d8905e 100644 --- a/src/app/main/main.component.html +++ b/src/app/main/main.component.html @@ -9,20 +9,23 @@ - - + +
- - + + +
@@ -44,11 +47,13 @@
- - + + +
diff --git a/src/app/main/main.component.scss b/src/app/main/main.component.scss index 2c1b6977..c677d9e3 100644 --- a/src/app/main/main.component.scss +++ b/src/app/main/main.component.scss @@ -1,4 +1,4 @@ -@import "src/app/core/scss/fuse"; +@import "src/@fuse/scss/fuse"; fuse-main { display: flex; diff --git a/src/app/main/main.component.ts b/src/app/main/main.component.ts index a8a7ce5c..e1ff1281 100644 --- a/src/app/main/main.component.ts +++ b/src/app/main/main.component.ts @@ -1,8 +1,9 @@ -import { Component, ElementRef, HostBinding, Inject, OnDestroy, OnInit, Renderer2, ViewEncapsulation } from '@angular/core'; -import { Subscription } from 'rxjs/Subscription'; -import { FuseConfigService } from '../core/services/config.service'; -import { Platform } from '@angular/cdk/platform'; +import { Component, ElementRef, HostBinding, Inject, OnDestroy, Renderer2, ViewEncapsulation } from '@angular/core'; import { DOCUMENT } from '@angular/common'; +import { Platform } from '@angular/cdk/platform'; +import { Subscription } from 'rxjs/Subscription'; + +import { FuseConfigService } from '@fuse/services/config.service'; @Component({ selector : 'fuse-main', @@ -10,9 +11,9 @@ import { DOCUMENT } from '@angular/common'; styleUrls : ['./main.component.scss'], encapsulation: ViewEncapsulation.None }) -export class FuseMainComponent implements OnInit, OnDestroy +export class FuseMainComponent implements OnDestroy { - onSettingsChanged: Subscription; + onConfigChanged: Subscription; fuseSettings: any; @HostBinding('attr.fuse-layout-mode') layoutMode; @@ -24,8 +25,8 @@ export class FuseMainComponent implements OnInit, OnDestroy @Inject(DOCUMENT) private document: any ) { - this.onSettingsChanged = - this.fuseConfig.onSettingsChanged + this.onConfigChanged = + this.fuseConfig.onConfigChanged .subscribe( (newSettings) => { this.fuseSettings = newSettings; @@ -39,13 +40,9 @@ export class FuseMainComponent implements OnInit, OnDestroy } } - ngOnInit() - { - } - ngOnDestroy() { - this.onSettingsChanged.unsubscribe(); + this.onConfigChanged.unsubscribe(); } addClass(className: string) diff --git a/src/app/main/main.module.ts b/src/app/main/main.module.ts index 3c73543d..f7c03c72 100644 --- a/src/app/main/main.module.ts +++ b/src/app/main/main.module.ts @@ -1,45 +1,46 @@ import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; +import { MatSidenavModule } from '@angular/material'; -import { SharedModule } from '../core/modules/shared.module'; +import { FuseSharedModule } from '@fuse/shared.module'; +import { FuseNavigationModule, FuseSearchBarModule, FuseShortcutsModule, FuseSidebarModule, FuseThemeOptionsModule } from '@fuse/components'; + +import { FuseContentModule } from 'app/main/content/content.module'; +import { FuseFooterModule } from 'app/main/footer/footer.module'; +import { FuseNavbarModule } from 'app/main/navbar/navbar.module'; +import { FuseQuickPanelModule } from 'app/main/quick-panel/quick-panel.module'; +import { FuseToolbarModule } from 'app/main/toolbar/toolbar.module'; import { FuseMainComponent } from './main.component'; -import { FuseContentComponent } from './content/content.component'; -import { FuseFooterComponent } from './footer/footer.component'; -import { FuseNavbarVerticalComponent } from './navbar/vertical/navbar-vertical.component'; -import { FuseToolbarComponent } from './toolbar/toolbar.component'; -import { FuseNavigationModule } from '../core/components/navigation/navigation.module'; -import { FuseNavbarVerticalToggleDirective } from './navbar/vertical/navbar-vertical-toggle.directive'; -import { FuseNavbarHorizontalComponent } from './navbar/horizontal/navbar-horizontal.component'; -import { FuseQuickPanelComponent } from './quick-panel/quick-panel.component'; -import { FuseThemeOptionsComponent } from '../core/components/theme-options/theme-options.component'; -import { FuseShortcutsModule } from '../core/components/shortcuts/shortcuts.module'; -import { FuseSearchBarModule } from '../core/components/search-bar/search-bar.module'; + @NgModule({ declarations: [ - FuseContentComponent, - FuseFooterComponent, FuseMainComponent, - FuseNavbarVerticalComponent, - FuseNavbarHorizontalComponent, - FuseToolbarComponent, - FuseNavbarVerticalToggleDirective, - FuseThemeOptionsComponent, - FuseQuickPanelComponent ], imports : [ - SharedModule, RouterModule, + + MatSidenavModule, + + FuseSharedModule, + + FuseThemeOptionsModule, FuseNavigationModule, + FuseSearchBarModule, FuseShortcutsModule, - FuseSearchBarModule + FuseSidebarModule, + + FuseContentModule, + FuseFooterModule, + FuseNavbarModule, + FuseQuickPanelModule, + FuseToolbarModule, ], exports : [ FuseMainComponent ] }) - export class FuseMainModule { } diff --git a/src/app/main/navbar/horizontal/navbar-horizontal.component.html b/src/app/main/navbar/horizontal/navbar-horizontal.component.html deleted file mode 100644 index 82075715..00000000 --- a/src/app/main/navbar/horizontal/navbar-horizontal.component.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/app/main/navbar/horizontal/navbar-horizontal.component.scss b/src/app/main/navbar/horizontal/navbar-horizontal.component.scss deleted file mode 100644 index 8b137891..00000000 --- a/src/app/main/navbar/horizontal/navbar-horizontal.component.scss +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/app/main/navbar/horizontal/navbar-horizontal.component.ts b/src/app/main/navbar/horizontal/navbar-horizontal.component.ts deleted file mode 100644 index 40cac7dd..00000000 --- a/src/app/main/navbar/horizontal/navbar-horizontal.component.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { FuseMainComponent } from '../../main.component'; - -@Component({ - selector : 'fuse-navbar-horizontal', - templateUrl : './navbar-horizontal.component.html', - styleUrls : ['./navbar-horizontal.component.scss'], - encapsulation: ViewEncapsulation.None -}) -export class FuseNavbarHorizontalComponent implements OnInit, OnDestroy -{ - constructor(private fuseMainComponent: FuseMainComponent) - { - } - - ngOnInit() - { - this.fuseMainComponent.addClass('fuse-nav-bar-horizontal'); - } - - ngOnDestroy() - { - this.fuseMainComponent.removeClass('fuse-nav-bar-horizontal'); - } -} diff --git a/src/app/main/navbar/navbar.component.html b/src/app/main/navbar/navbar.component.html new file mode 100644 index 00000000..7eabc890 --- /dev/null +++ b/src/app/main/navbar/navbar.component.html @@ -0,0 +1,40 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/app/main/navbar/navbar.component.scss b/src/app/main/navbar/navbar.component.scss new file mode 100644 index 00000000..bc12ef87 --- /dev/null +++ b/src/app/main/navbar/navbar.component.scss @@ -0,0 +1,104 @@ +@import "src/@fuse/scss/fuse"; + +body { + + &.fuse-sidebar-folded { + + .content-wrapper { + + &:last-child { + padding-left: 64px !important; + } + + &:first-child { + padding-right: 64px !important; + } + + &:first-child:last-child { + padding-left: 0 !important; + padding-right: 0 !important; + } + + } + } +} + +fuse-sidebar { + + &.folded:not(.unfolded) { + + .navbar-vertical { + + .navbar-header { + padding: 0 13px; + + .logo { + + .logo-text { + opacity: 0; + transition: opacity 200ms ease; + } + } + } + } + } +} + +fuse-navbar { + + &:not(.top-navbar) { + height: 100%; + } + + .navbar-vertical { + display: flex; + flex-direction: column; + width: 100%; + height: 100%; + + .navbar-header { + display: flex; + align-items: center; + justify-content: space-between; + height: 64px; + min-height: 64px; + padding: 0 16px 0 24px; + transition: padding 200ms ease; + background-color: rgba(255, 255, 255, .05); + @include mat-elevation(1); + + .logo { + display: flex; + align-items: center; + + .logo-icon { + width: 38px; + height: 38px; + } + + .logo-text { + margin-left: 8px; + font-size: 20px; + font-weight: 300; + letter-spacing: 0.4px; + } + } + } + + .navbar-content { + flex: 1; + } + } +} + +.top-navbar + #wrapper { + + & > .left-navbar { + display: none !important; + + @include media-breakpoint-down(md) { + display: flex !important; + } + } +} + diff --git a/src/app/main/navbar/navbar.component.ts b/src/app/main/navbar/navbar.component.ts new file mode 100644 index 00000000..78114850 --- /dev/null +++ b/src/app/main/navbar/navbar.component.ts @@ -0,0 +1,76 @@ +import { Component, Input, OnDestroy, ViewChild, ViewEncapsulation } from '@angular/core'; +import { Subscription } from 'rxjs/Subscription'; + +import { FusePerfectScrollbarDirective } from '@fuse/directives/fuse-perfect-scrollbar/fuse-perfect-scrollbar.directive'; +import { FuseSidebarService } from '@fuse/components/sidebar/sidebar.service'; + +import { navigation } from 'app/navigation/navigation'; +import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; + +@Component({ + selector : 'fuse-navbar', + templateUrl : './navbar.component.html', + styleUrls : ['./navbar.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class FuseNavbarComponent implements OnDestroy +{ + private fusePerfectScrollbar: FusePerfectScrollbarDirective; + + @ViewChild(FusePerfectScrollbarDirective) set directive(theDirective: FusePerfectScrollbarDirective) + { + if ( !theDirective ) + { + return; + } + + this.fusePerfectScrollbar = theDirective; + + this.navigationServiceWatcher = + this.navigationService.onItemCollapseToggled.subscribe(() => { + this.fusePerfectScrollbarUpdateTimeout = setTimeout(() => { + this.fusePerfectScrollbar.update(); + }, 310); + }); + } + + @Input() layout; + navigation: any; + navigationServiceWatcher: Subscription; + fusePerfectScrollbarUpdateTimeout; + + constructor( + private sidebarService: FuseSidebarService, + private navigationService: FuseNavigationService + ) + { + // Navigation data + this.navigation = navigation; + + // Default layout + this.layout = 'vertical'; + } + + ngOnDestroy() + { + if ( this.fusePerfectScrollbarUpdateTimeout ) + { + clearTimeout(this.fusePerfectScrollbarUpdateTimeout); + } + + if ( this.navigationServiceWatcher ) + { + this.navigationServiceWatcher.unsubscribe(); + } + } + + toggleSidebarOpened(key) + { + this.sidebarService.getSidebar(key).toggleOpen(); + } + + toggleSidebarFolded(key) + { + this.sidebarService.getSidebar(key).toggleFold(); + } +} diff --git a/src/app/main/navbar/navbar.module.ts b/src/app/main/navbar/navbar.module.ts new file mode 100644 index 00000000..c3da75e6 --- /dev/null +++ b/src/app/main/navbar/navbar.module.ts @@ -0,0 +1,30 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; + +import { MatButtonModule, MatIconModule } from '@angular/material'; + +import { FuseSharedModule } from '@fuse/shared.module'; + +import { FuseNavbarComponent } from 'app/main/navbar/navbar.component'; +import { FuseNavigationModule } from '@fuse/components'; + +@NgModule({ + declarations: [ + FuseNavbarComponent + ], + imports : [ + RouterModule, + + MatButtonModule, + MatIconModule, + + FuseSharedModule, + FuseNavigationModule + ], + exports : [ + FuseNavbarComponent + ] +}) +export class FuseNavbarModule +{ +} diff --git a/src/app/main/navbar/vertical/navbar-vertical-toggle.directive.ts b/src/app/main/navbar/vertical/navbar-vertical-toggle.directive.ts deleted file mode 100644 index 9fd92e20..00000000 --- a/src/app/main/navbar/vertical/navbar-vertical-toggle.directive.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Directive, HostListener, Input } from '@angular/core'; -import { FuseNavbarVerticalService } from './navbar-vertical.service'; -import { FuseNavbarVerticalComponent } from './navbar-vertical.component'; - -@Directive({ - selector: '[fuseNavbarVertical]' -}) -export class FuseNavbarVerticalToggleDirective -{ - @Input() fuseNavbarVertical: string; - navbar: FuseNavbarVerticalComponent; - - constructor(private navbarService: FuseNavbarVerticalService) - { - } - - @HostListener('click') - onClick() - { - this.navbar = this.navbarService.getNavBar(); - - if ( !this.navbar[this.fuseNavbarVertical] ) - { - return; - } - - this.navbar[this.fuseNavbarVertical](); - } -} diff --git a/src/app/main/navbar/vertical/navbar-vertical.component.html b/src/app/main/navbar/vertical/navbar-vertical.component.html deleted file mode 100644 index fe98e297..00000000 --- a/src/app/main/navbar/vertical/navbar-vertical.component.html +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/src/app/main/navbar/vertical/navbar-vertical.component.scss b/src/app/main/navbar/vertical/navbar-vertical.component.scss deleted file mode 100644 index 29e359c5..00000000 --- a/src/app/main/navbar/vertical/navbar-vertical.component.scss +++ /dev/null @@ -1,159 +0,0 @@ -@import "../../../core/scss/fuse"; - -fuse-main { - - &.fuse-nav-bar-folded:not(.fuse-nav-bar-horizontal) { - - .content-wrapper { - - &:last-child { - padding-left: 64px !important; - } - - &:first-child { - padding-right: 64px !important; - } - - &:first-child:last-child { - padding-left: 0 !important; - padding-right: 0 !important; - } - - } - } -} - -fuse-navbar-vertical { - display: flex; - flex-direction: column; - width: 256px; - min-width: 256px; - max-width: 256px; - background-color: #FFFFFF; - overflow-y: auto; - overflow-x: hidden; - z-index: 4; - box-shadow: 0 5px 5px -3px rgba(0, 0, 0, .2), 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12); - transition: all .3s cubic-bezier(.55, 0, .55, .2), width .1s linear, min-width .1s linear, max-width .1s linear; - transform: translateX(0); - - &.folded { - position: absolute; - top: 0; - bottom: 0; - - &.left-navbar { - left: 0; - } - - &.right-navbar { - right: 0; - } - - &:not(.folded-open) { - width: 64px; - min-width: 64px; - max-width: 64px; - - .navbar-header { - padding: 0 13px; - - .logo { - - .logo-text { - opacity: 0; - transition: opacity 200ms ease; - } - } - } - } - } - - &.close { - box-shadow: none; - - &.left-navbar { - transform: translateX(-100%) !important; - } - - &.right-navbar { - transform: translateX(100%) !important; - } - } - - @include media-breakpoint('lt-lg') { - position: absolute; - top: 0; - bottom: 0; - - &.left-navbar { - left: 0; - } - - &.right-navbar { - right: 0; - } - - &:not(.initialized) { - - &.left-navbar { - transform: translateX(-100%); - } - - &.right-navbar { - transform: translateX(100%); - } - } - } - - .navbar-header { - padding: 0 16px 0 24px; - display: flex; - align-items: center; - height: 64px; - min-height: 64px; - justify-content: space-between; - transition: padding 200ms ease; - background-color: rgba(255, 255, 255, .05); - @include mat-elevation(1); - - .logo { - display: flex; - align-items: center; - - .logo-icon { - width: 38px; - height: 38px; - } - - .logo-text { - margin-left: 8px; - font-size: 20px; - font-weight: 300; - letter-spacing: 0.4px; - } - } - } - - .navbar-content { - flex: 1; - } -} - -fuse-navbar-horizontal + #wrapper > fuse-navbar-vertical { - display: none; - @include media-breakpoint-down(md) { - display: flex; - } -} - -.fuse-navbar-backdrop { - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - z-index: 3; - background-color: rgba(0, 0, 0, 0.6); - opacity: 0; -} \ No newline at end of file diff --git a/src/app/main/navbar/vertical/navbar-vertical.component.ts b/src/app/main/navbar/vertical/navbar-vertical.component.ts deleted file mode 100644 index 5c8eede4..00000000 --- a/src/app/main/navbar/vertical/navbar-vertical.component.ts +++ /dev/null @@ -1,279 +0,0 @@ -import { Component, ElementRef, HostBinding, HostListener, Input, OnDestroy, OnInit, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core'; -import { Subscription } from 'rxjs/Subscription'; -import { FuseMatchMedia } from '../../../core/services/match-media.service'; -import { FuseNavbarVerticalService } from './navbar-vertical.service'; -import { ObservableMedia } from '@angular/flex-layout'; -import { FuseMainComponent } from '../../main.component'; -import { NavigationEnd, Router } from '@angular/router'; -import { FuseNavigationService } from '../../../core/components/navigation/navigation.service'; -import { FusePerfectScrollbarDirective } from '../../../core/directives/fuse-perfect-scrollbar/fuse-perfect-scrollbar.directive'; -import { animate, AnimationBuilder, AnimationPlayer, style } from '@angular/animations'; - -@Component({ - selector : 'fuse-navbar-vertical', - templateUrl : './navbar-vertical.component.html', - styleUrls : ['./navbar-vertical.component.scss'], - encapsulation: ViewEncapsulation.None -}) -export class FuseNavbarVerticalComponent implements OnInit, OnDestroy -{ - private _backdropElement: HTMLElement | null = null; - private _folded = false; - - @HostBinding('class.close') isClosed: boolean; - @HostBinding('class.folded') isFoldedActive: boolean; - @HostBinding('class.folded-open') isFoldedOpen: boolean; - @HostBinding('class.initialized') initialized: boolean; - @ViewChild(FusePerfectScrollbarDirective) fusePerfectScrollbarDirective; - - @Input() - set folded(value: boolean) - { - this._folded = value; - - if ( this._folded ) - { - this.activateFolded(); - } - else - { - this.deActivateFolded(); - } - } - - get folded(): boolean - { - return this._folded; - } - - matchMediaWatcher: Subscription; - navigationServiceWatcher: Subscription; - fusePerfectScrollbarUpdateTimeout; - - player: AnimationPlayer; - - constructor( - private fuseMainComponent: FuseMainComponent, - private fuseMatchMedia: FuseMatchMedia, - private fuseNavigationService: FuseNavigationService, - private navBarService: FuseNavbarVerticalService, - private router: Router, - private _renderer: Renderer2, - private _elementRef: ElementRef, - private animationBuilder: AnimationBuilder, - public media: ObservableMedia - ) - { - navBarService.setNavBar(this); - - this.navigationServiceWatcher = - this.fuseNavigationService.onNavCollapseToggle.subscribe(() => { - this.fusePerfectScrollbarUpdateTimeout = setTimeout(() => { - this.fusePerfectScrollbarDirective.update(); - }, 310); - }); - - this.matchMediaWatcher = - this.fuseMatchMedia.onMediaChange - .subscribe((mediaStep) => { - setTimeout(() => { - - if ( this.media.isActive('lt-lg') ) - { - this.closeBar(); - this.deActivateFolded(); - } - else - { - this.openBar(); - this._detachBackdrop(); - } - }); - }); - - router.events.subscribe( - (event) => { - if ( event instanceof NavigationEnd ) - { - if ( this.media.isActive('lt-lg') ) - { - setTimeout(() => { - this.closeBar(); - }); - } - } - } - ); - } - - ngOnInit() - { - this.isClosed = false; - this.isFoldedActive = this._folded; - this.isFoldedOpen = false; - this.initialized = false; - this.updateCssClasses(); - - setTimeout(() => { - this.initialized = true; - }); - - if ( this.media.isActive('lt-lg') ) - { - this.closeBar(); - this.deActivateFolded(); - } - else - { - if ( !this._folded ) - { - this.deActivateFolded(); - } - else - { - this.activateFolded(); - } - } - } - - ngOnDestroy() - { - clearTimeout(this.fusePerfectScrollbarUpdateTimeout); - this.matchMediaWatcher.unsubscribe(); - this.navigationServiceWatcher.unsubscribe(); - } - - openBar() - { - if ( !this.isClosed ) - { - return; - } - - this.isClosed = false; - this.updateCssClasses(); - if ( this.media.isActive('lt-lg') ) - { - this._attachBackdrop(); - } - } - - closeBar() - { - if ( this.isClosed ) - { - return; - } - - this.isClosed = true; - this.updateCssClasses(); - this._detachBackdrop(); - } - - toggleBar() - { - if ( this.isClosed ) - { - this.openBar(); - } - else - { - this.closeBar(); - } - } - - toggleFold() - { - if ( !this.isFoldedActive ) - { - this.activateFolded(); - } - else - { - this.deActivateFolded(); - } - } - - activateFolded() - { - this.isFoldedActive = true; - this.fuseMainComponent.addClass('fuse-nav-bar-folded'); - this.isFoldedOpen = false; - } - - deActivateFolded() - { - this.isFoldedActive = false; - this.fuseMainComponent.removeClass('fuse-nav-bar-folded'); - this.isFoldedOpen = false; - } - - @HostListener('mouseenter') - onMouseEnter() - { - this.isFoldedOpen = true; - } - - @HostListener('mouseleave') - onMouseLeave() - { - this.isFoldedOpen = false; - } - - updateCssClasses() - { - if ( !this.isClosed ) - { - this.fuseMainComponent.addClass('fuse-navbar-opened'); - this.fuseMainComponent.removeClass('fuse-navbar-closed'); - } - else - { - this.fuseMainComponent.addClass('fuse-navbar-closed'); - this.fuseMainComponent.removeClass('fuse-navbar-opened'); - } - } - - private _attachBackdrop() - { - this._backdropElement = this._renderer.createElement('div'); - this._backdropElement.classList.add('fuse-navbar-backdrop'); - - this._renderer.appendChild(this._elementRef.nativeElement.parentElement, this._backdropElement); - - this.player = - this.animationBuilder - .build([ - animate('400ms ease', style({opacity: 1})) - ]).create(this._backdropElement); - - this.player.play(); - - this._backdropElement.addEventListener('click', () => { - this.closeBar(); - } - ); - } - - private _detachBackdrop() - { - if ( this._backdropElement ) - { - this.player = - this.animationBuilder - .build([ - animate('400ms cubic-bezier(.25,.8,.25,1)', style({opacity: 0})) - ]).create(this._backdropElement); - - this.player.play(); - - this.player.onDone(() => { - if ( this._backdropElement ) - { - this._backdropElement.parentNode.removeChild(this._backdropElement); - this._backdropElement = null; - } - }); - } - } -} diff --git a/src/app/main/navbar/vertical/navbar-vertical.service.ts b/src/app/main/navbar/vertical/navbar-vertical.service.ts deleted file mode 100644 index 6cf17124..00000000 --- a/src/app/main/navbar/vertical/navbar-vertical.service.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Injectable } from '@angular/core'; - -@Injectable() -export class FuseNavbarVerticalService -{ - navBarRef; - - constructor() - { - } - - setNavBar(ref) - { - this.navBarRef = ref; - } - - getNavBar() - { - return this.navBarRef; - } -} diff --git a/src/app/main/quick-panel/quick-panel.component.ts b/src/app/main/quick-panel/quick-panel.component.ts index f389e9c3..4b7884d6 100644 --- a/src/app/main/quick-panel/quick-panel.component.ts +++ b/src/app/main/quick-panel/quick-panel.component.ts @@ -21,7 +21,6 @@ export class FuseQuickPanelComponent implements OnInit cloud : false, retro : true }; - } ngOnInit() diff --git a/src/app/main/quick-panel/quick-panel.module.ts b/src/app/main/quick-panel/quick-panel.module.ts new file mode 100644 index 00000000..716461e3 --- /dev/null +++ b/src/app/main/quick-panel/quick-panel.module.ts @@ -0,0 +1,28 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { MatDividerModule, MatListModule, MatSlideToggleModule } from '@angular/material'; + +import { FuseSharedModule } from '@fuse/shared.module'; + +import { FuseQuickPanelComponent } from 'app/main/quick-panel/quick-panel.component'; + +@NgModule({ + declarations: [ + FuseQuickPanelComponent + ], + imports : [ + RouterModule, + + MatDividerModule, + MatListModule, + MatSlideToggleModule, + + FuseSharedModule, + ], + exports: [ + FuseQuickPanelComponent + ] +}) +export class FuseQuickPanelModule +{ +} diff --git a/src/app/main/toolbar/toolbar.component.html b/src/app/main/toolbar/toolbar.component.html index dd6c1dd3..836f2b77 100644 --- a/src/app/main/toolbar/toolbar.component.html +++ b/src/app/main/toolbar/toolbar.component.html @@ -7,7 +7,8 @@
diff --git a/src/app/main/toolbar/toolbar.component.scss b/src/app/main/toolbar/toolbar.component.scss index 6176d063..f1bd3177 100644 --- a/src/app/main/toolbar/toolbar.component.scss +++ b/src/app/main/toolbar/toolbar.component.scss @@ -1,4 +1,4 @@ -@import 'src/app/core/scss/fuse'; +@import 'src/@fuse/scss/fuse'; :host { position: relative; diff --git a/src/app/main/toolbar/toolbar.component.ts b/src/app/main/toolbar/toolbar.component.ts index 11727cc9..2e26b03e 100644 --- a/src/app/main/toolbar/toolbar.component.ts +++ b/src/app/main/toolbar/toolbar.component.ts @@ -1,8 +1,10 @@ import { Component } from '@angular/core'; import { NavigationEnd, NavigationStart, Router } from '@angular/router'; -import { FuseConfigService } from '../../core/services/config.service'; import { TranslateService } from '@ngx-translate/core'; +import { FuseConfigService } from '@fuse/services/config.service'; +import { FuseSidebarService } from '@fuse/components/sidebar/sidebar.service'; + @Component({ selector : 'fuse-toolbar', templateUrl: './toolbar.component.html', @@ -16,10 +18,12 @@ export class FuseToolbarComponent selectedLanguage: any; showLoadingBar: boolean; horizontalNav: boolean; + noNav: boolean; constructor( private router: Router, private fuseConfig: FuseConfigService, + private sidebarService: FuseSidebarService, private translate: TranslateService ) { @@ -78,12 +82,18 @@ export class FuseToolbarComponent } }); - this.fuseConfig.onSettingsChanged.subscribe((settings) => { + this.fuseConfig.onConfigChanged.subscribe((settings) => { this.horizontalNav = settings.layout.navigation === 'top'; + this.noNav = settings.layout.navigation === 'none'; }); } + toggleSidebarOpened(key) + { + this.sidebarService.getSidebar(key).toggleOpen(); + } + search(value) { // Do your search here... diff --git a/src/app/main/toolbar/toolbar.module.ts b/src/app/main/toolbar/toolbar.module.ts new file mode 100644 index 00000000..4d61d960 --- /dev/null +++ b/src/app/main/toolbar/toolbar.module.ts @@ -0,0 +1,33 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { MatButtonModule, MatIconModule, MatMenuModule, MatProgressBarModule, MatToolbarModule } from '@angular/material'; + +import { FuseSharedModule } from '@fuse/shared.module'; + +import { FuseToolbarComponent } from 'app/main/toolbar/toolbar.component'; +import { FuseSearchBarModule, FuseShortcutsModule } from '@fuse/components'; + +@NgModule({ + declarations: [ + FuseToolbarComponent + ], + imports : [ + RouterModule, + + MatButtonModule, + MatIconModule, + MatMenuModule, + MatProgressBarModule, + MatToolbarModule, + + FuseSharedModule, + FuseSearchBarModule, + FuseShortcutsModule + ], + exports : [ + FuseToolbarComponent + ] +}) +export class FuseToolbarModule +{ +} diff --git a/src/app/navigation/navigation.model.ts b/src/app/navigation/navigation.model.ts deleted file mode 100644 index aee3a8c8..00000000 --- a/src/app/navigation/navigation.model.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { FuseNavigationModelInterface } from '../core/components/navigation/navigation.model'; - -export class FuseNavigationModel implements FuseNavigationModelInterface -{ - public model: any[]; - - constructor() - { - this.model = [ - { - 'id' : 'applications', - 'title' : 'Applications', - 'translate': 'NAV.APPLICATIONS', - 'type' : 'group', - 'children': [ - { - 'id' : 'sample', - 'title': 'Sample', - 'translate': 'NAV.SAMPLE.TITLE', - 'type' : 'item', - 'icon' : 'email', - 'url' : '/sample', - 'badge': { - 'title': 25, - 'translate': 'NAV.SAMPLE.BADGE', - 'bg' : '#F44336', - 'fg' : '#FFFFFF' - } - } - ] - } - ]; - } -} diff --git a/src/app/navigation/navigation.ts b/src/app/navigation/navigation.ts new file mode 100644 index 00000000..f7bfd636 --- /dev/null +++ b/src/app/navigation/navigation.ts @@ -0,0 +1,916 @@ +export const navigation = [ + { + 'id' : 'applications', + 'title' : 'Applications', + 'translate': 'NAV.APPLICATIONS', + 'type' : 'group', + 'icon' : 'apps', + 'children' : [ + { + 'id' : 'dashboards', + 'title' : 'Dashboards', + 'translate': 'NAV.DASHBOARDS', + 'type' : 'collapse', + 'icon' : 'dashboard', + 'children' : [ + { + 'id' : 'analytics', + 'title': 'Analytics', + 'type' : 'item', + 'url' : '/apps/dashboards/analytics' + }, + { + 'id' : 'project', + 'title': 'Project', + 'type' : 'item', + 'url' : '/apps/dashboards/project' + } + ] + }, + { + 'id' : 'calendar', + 'title' : 'Calendar', + 'translate': 'NAV.CALENDAR', + 'type' : 'item', + 'icon' : 'today', + 'url' : '/apps/calendar' + }, + { + 'id' : 'e-commerce', + 'title' : 'E-Commerce', + 'translate': 'NAV.ECOMMERCE', + 'type' : 'collapse', + 'icon' : 'shopping_cart', + 'children' : [ + { + 'id' : 'dashboard', + 'title': 'Dashboard', + 'type' : 'item', + 'url' : '/apps/e-commerce/dashboard' + }, + { + 'id' : 'products', + 'title' : 'Products', + 'type' : 'item', + 'url' : '/apps/e-commerce/products', + 'exactMatch': true + }, + { + 'id' : 'productDetail', + 'title' : 'Product Detail', + 'type' : 'item', + 'url' : '/apps/e-commerce/products/1/printed-dress', + 'exactMatch': true + }, + { + 'id' : 'orders', + 'title' : 'Orders', + 'type' : 'item', + 'url' : '/apps/e-commerce/orders', + 'exactMatch': true + }, + { + 'id' : 'orderDetail', + 'title' : 'Order Detail', + 'type' : 'item', + 'url' : '/apps/e-commerce/orders/1', + 'exactMatch': true + } + ] + }, + { + 'id' : 'academy', + 'title' : 'Academy', + 'translate': 'NAV.ACADEMY', + 'type' : 'item', + 'icon' : 'school', + 'url' : '/apps/academy' + }, + { + 'id' : 'mail', + 'title' : 'Mail', + 'translate': 'NAV.MAIL.TITLE', + 'type' : 'item', + 'icon' : 'email', + 'url' : '/apps/mail', + 'badge' : { + 'title' : 25, + 'translate': 'NAV.MAIL.BADGE', + 'bg' : '#F44336', + 'fg' : '#FFFFFF' + } + }, + { + 'id' : 'mail-ngrx', + 'title' : 'Mail Ngrx', + 'translate': 'NAV.MAIL_NGRX.TITLE', + 'type' : 'item', + 'icon' : 'email', + 'url' : '/apps/mail-ngrx', + 'badge' : { + 'title' : 13, + 'translate': 'NAV.MAIL_NGRX.BADGE', + 'bg' : '#EC0C8E', + 'fg' : '#FFFFFF' + } + }, + { + 'id' : 'chat', + 'title' : 'Chat', + 'translate': 'NAV.CHAT', + 'type' : 'item', + 'icon' : 'chat', + 'url' : '/apps/chat', + 'badge' : { + 'title': 13, + 'bg' : '#09d261', + 'fg' : '#FFFFFF' + } + }, + { + 'id' : 'file-manager', + 'title' : 'File Manager', + 'translate': 'NAV.FILE_MANAGER', + 'type' : 'item', + 'icon' : 'folder', + 'url' : '/apps/file-manager' + }, + { + 'id' : 'contacts', + 'title' : 'Contacts', + 'translate': 'NAV.CONTACTS', + 'type' : 'item', + 'icon' : 'account_box', + 'url' : '/apps/contacts' + }, + { + 'id' : 'to-do', + 'title' : 'To-Do', + 'translate': 'NAV.TODO', + 'type' : 'item', + 'icon' : 'check_box', + 'url' : '/apps/todo', + 'badge' : { + 'title': 3, + 'bg' : '#FF6F00', + 'fg' : '#FFFFFF' + } + }, + { + 'id' : 'scrumboard', + 'title' : 'Scrumboard', + 'translate': 'NAV.SCRUMBOARD', + 'type' : 'item', + 'icon' : 'assessment', + 'url' : '/apps/scrumboard' + } + ] + }, + { + 'id' : 'pages', + 'title' : 'Pages', + 'type' : 'group', + 'icon' : 'pages', + 'children': [ + { + 'id' : 'authentication', + 'title' : 'Authentication', + 'type' : 'collapse', + 'icon' : 'lock', + 'badge' : { + 'title': 10, + 'bg' : '#525e8a', + 'fg' : '#FFFFFF' + }, + 'children': [ + { + 'id' : 'login', + 'title': 'Login', + 'type' : 'item', + 'url' : '/pages/auth/login' + }, + { + 'id' : 'login-v2', + 'title': 'Login v2', + 'type' : 'item', + 'url' : '/pages/auth/login-2' + }, + { + 'id' : 'register', + 'title': 'Register', + 'type' : 'item', + 'url' : '/pages/auth/register' + }, + { + 'id' : 'register-v2', + 'title': 'Register v2', + 'type' : 'item', + 'url' : '/pages/auth/register-2' + }, + { + 'id' : 'forgot-password', + 'title': 'Forgot Password', + 'type' : 'item', + 'url' : '/pages/auth/forgot-password' + }, + { + 'id' : 'forgot-password-v2', + 'title': 'Forgot Password v2', + 'type' : 'item', + 'url' : '/pages/auth/forgot-password-2' + }, + { + 'id' : 'reset-password', + 'title': 'Reset Password', + 'type' : 'item', + 'url' : '/pages/auth/reset-password' + }, + { + 'id' : 'reset-password-v2', + 'title': 'Reset Password v2', + 'type' : 'item', + 'url' : '/pages/auth/reset-password-2' + }, + { + 'id' : 'lock-screen', + 'title': 'Lock Screen', + 'type' : 'item', + 'url' : '/pages/auth/lock' + }, + { + 'id' : 'mail-confirmation', + 'title': 'Mail Confirmation', + 'type' : 'item', + 'url' : '/pages/auth/mail-confirm' + } + ] + }, + { + 'id' : 'coming-soon', + 'title': 'Coming Soon', + 'type' : 'item', + 'icon' : 'alarm', + 'url' : '/pages/coming-soon' + }, + { + 'id' : 'errors', + 'title' : 'Errors', + 'type' : 'collapse', + 'icon' : 'error', + 'children': [ + { + 'id' : '404', + 'title': '404', + 'type' : 'item', + 'url' : '/pages/errors/error-404' + }, + { + 'id' : '500', + 'title': '500', + 'type' : 'item', + 'url' : '/pages/errors/error-500' + } + ] + }, + { + 'id' : 'invoice', + 'title' : 'Invoice', + 'type' : 'collapse', + 'icon' : 'receipt', + 'children': [ + { + 'id' : 'modern', + 'title': 'Modern', + 'type' : 'item', + 'url' : '/pages/invoices/modern' + }, + { + 'id' : 'compact', + 'title': 'Compact', + 'type' : 'item', + 'url' : '/pages/invoices/compact' + } + ] + }, + { + 'id' : 'maintenance', + 'title': 'Maintenance', + 'type' : 'item', + 'icon' : 'build', + 'url' : '/pages/maintenance' + }, + { + 'id' : 'pricing', + 'title' : 'Pricing', + 'type' : 'collapse', + 'icon' : 'attach_money', + 'children': [ + { + 'id' : 'style-1', + 'title': 'Style 1', + 'type' : 'item', + 'url' : '/pages/pricing/style-1' + }, + { + 'id' : 'style-2', + 'title': 'Style 2', + 'type' : 'item', + 'url' : '/pages/pricing/style-2' + }, + { + 'id' : 'style-3', + 'title': 'Style 3', + 'type' : 'item', + 'url' : '/pages/pricing/style-3' + } + ] + }, + { + 'id' : 'profile', + 'title': 'Profile', + 'type' : 'item', + 'icon' : 'person', + 'url' : '/pages/profile' + }, + { + 'id' : 'search', + 'title': 'Search', + 'type' : 'item', + 'icon' : 'search', + 'url' : '/pages/search' + }, + { + 'title': 'Faq', + 'type' : 'item', + 'icon' : 'help', + 'url' : '/pages/faq' + }, + { + 'title': 'Knowledge Base', + 'type' : 'item', + 'icon' : 'import_contacts', + 'url' : '/pages/knowledge-base' + } + ] + }, + { + 'id' : 'user-interface', + 'title' : 'User Interface', + 'type' : 'group', + 'icon' : 'web', + 'children': [ + { + 'id' : 'forms', + 'title': 'Forms', + 'type' : 'item', + 'icon' : 'web_asset', + 'url' : '/ui/forms' + }, + { + 'id' : 'icons', + 'title': 'Icons', + 'type' : 'item', + 'icon' : 'photo', + 'url' : '/ui/icons' + }, + { + 'id' : 'typography', + 'title': 'Typography', + 'type' : 'item', + 'icon' : 'text_fields', + 'url' : '/ui/typography' + }, + { + 'id' : 'helper-classes', + 'title': 'Helper Classes', + 'type' : 'item', + 'icon' : 'help', + 'url' : '/ui/helper-classes' + }, + { + 'id' : 'page-layouts', + 'title' : 'Page Layouts', + 'type' : 'collapse', + 'icon' : 'view_quilt', + 'children': [ + { + 'id' : 'carded', + 'title' : 'Carded', + 'type' : 'collapse', + 'badge' : { + 'title': 10, + 'bg' : '#525e8a', + 'fg' : '#FFFFFF' + }, + 'children': [ + { + 'id' : 'full-width', + 'title': 'Full Width', + 'type' : 'item', + 'url' : '/ui/page-layouts/carded/full-width' + }, + { + 'id' : 'full-width-2', + 'title': 'Full Width 2', + 'type' : 'item', + 'url' : '/ui/page-layouts/carded/full-width-2' + }, + { + 'id' : 'left-sidenav', + 'title': 'Left Sidenav', + 'type' : 'item', + 'url' : '/ui/page-layouts/carded/left-sidenav' + }, + { + 'id' : 'left-sidenav-tabbed', + 'title': 'Left Sidenav Tabbed', + 'type' : 'item', + 'url' : '/ui/page-layouts/carded/left-sidenav-tabbed' + }, + { + 'id' : 'left-sidenav-2', + 'title': 'Left Sidenav 2', + 'type' : 'item', + 'url' : '/ui/page-layouts/carded/left-sidenav-2' + }, + { + 'id' : 'left-sidenav-2-tabbed', + 'title': 'Left Sidenav 2 Tabbed', + 'type' : 'item', + 'url' : '/ui/page-layouts/carded/left-sidenav-2-tabbed' + }, + { + 'id' : 'right-sidenav', + 'title': 'Right Sidenav', + 'type' : 'item', + 'url' : '/ui/page-layouts/carded/right-sidenav' + }, + { + 'id' : 'right-sidenav-tabbed', + 'title': 'Right Sidenav Tabbed', + 'type' : 'item', + 'url' : '/ui/page-layouts/carded/right-sidenav-tabbed' + }, + { + 'id' : 'right-sidenav-2', + 'title': 'Right Sidenav 2', + 'type' : 'item', + 'url' : '/ui/page-layouts/carded/right-sidenav-2' + }, + { + 'id' : 'right-sidenav-2-tabbed', + 'title': 'Right Sidenav 2 Tabbed', + 'type' : 'item', + 'url' : '/ui/page-layouts/carded/right-sidenav-2-tabbed' + } + ] + }, + { + 'id' : 'simple', + 'title' : 'Simple', + 'type' : 'collapse', + 'badge' : { + 'title': 8, + 'bg' : '#525e8a', + 'fg' : '#FFFFFF' + }, + 'children': [ + { + 'id' : 'full-width', + 'title': 'Full Width', + 'type' : 'item', + 'url' : '/ui/page-layouts/simple/full-width' + }, + { + 'id' : 'left-sidenav', + 'title': 'Left Sidenav', + 'type' : 'item', + 'url' : '/ui/page-layouts/simple/left-sidenav' + }, + { + 'id' : 'left-sidenav-2', + 'title': 'Left Sidenav 2', + 'type' : 'item', + 'url' : '/ui/page-layouts/simple/left-sidenav-2' + }, + { + 'id' : 'left-sidenav-3', + 'title': 'Left Sidenav 3', + 'type' : 'item', + 'url' : '/ui/page-layouts/simple/left-sidenav-3' + }, + { + 'id' : 'right-sidenav', + 'title': 'Right Sidenav', + 'type' : 'item', + 'url' : '/ui/page-layouts/simple/right-sidenav' + }, + { + 'id' : 'right-sidenav-2', + 'title': 'Right Sidenav 2', + 'type' : 'item', + 'url' : '/ui/page-layouts/simple/right-sidenav-2' + }, + { + 'id' : 'right-sidenav-3', + 'title': 'Right Sidenav 3', + 'type' : 'item', + 'url' : '/ui/page-layouts/simple/right-sidenav-3' + }, + { + 'id' : 'tabbed', + 'title': 'Tabbed', + 'type' : 'item', + 'url' : '/ui/page-layouts/simple/tabbed' + } + ] + }, + { + 'id' : 'blank', + 'title': 'Blank', + 'type' : 'item', + 'url' : '/ui/page-layouts/blank' + } + ] + }, + { + 'id' : 'colors', + 'title': 'Colors', + 'type' : 'item', + 'icon' : 'color_lens', + 'url' : '/ui/colors' + } + ] + }, + { + 'id' : 'services', + 'title' : 'Services', + 'type' : 'group', + 'icon' : 'settings', + 'children': [ + { + 'id' : 'config', + 'title': 'Config', + 'type' : 'item', + 'icon' : 'settings', + 'url' : '/services/config' + }, + { + 'id' : 'splash-screen', + 'title': 'Splash Screen', + 'type' : 'item', + 'icon' : 'settings', + 'url' : '/services/splash-screen' + } + ] + }, + { + 'id' : 'components', + 'title' : 'Components', + 'type' : 'group', + 'icon' : 'settings_input_component', + 'children': [ + { + 'id' : 'angular-material-elements', + 'title' : 'Angular Material Elements', + 'type' : 'collapse', + 'icon' : 'layers', + 'children': [ + { + 'id' : 'form-controls', + 'title' : 'Form Controls', + 'type' : 'group', + 'children': [ + { + 'id' : 'autocomplete', + 'title': 'Autocomplete', + 'type' : 'item', + 'url' : '/components/angular-material/autocomplete' + }, + { + 'id' : 'checkbox', + 'title': 'Checkbox', + 'type' : 'item', + 'url' : '/components/angular-material/checkbox' + }, + { + 'id' : 'datepicker', + 'title': 'Datepicker', + 'type' : 'item', + 'url' : '/components/angular-material/datepicker' + }, + { + 'id' : 'form-field', + 'title': 'Form field', + 'type' : 'item', + 'url' : '/components/angular-material/form-field' + }, + { + 'id' : 'input', + 'title': 'Input', + 'type' : 'item', + 'url' : '/components/angular-material/input' + }, + { + 'id' : 'radio-button', + 'title': 'Radio button', + 'type' : 'item', + 'url' : '/components/angular-material/radio-button' + }, + { + 'id' : 'select', + 'title': 'Select', + 'type' : 'item', + 'url' : '/components/angular-material/select' + }, + { + 'id' : 'slider', + 'title': 'Slider', + 'type' : 'item', + 'url' : '/components/angular-material/slider' + }, + { + 'id' : 'slide-toggle', + 'title': 'Slide toggle', + 'type' : 'item', + 'url' : '/components/angular-material/slide-toggle' + } + ] + }, + { + 'id' : 'navigation', + 'title' : 'Navigation', + 'type' : 'group', + 'children': [ + { + 'id' : 'menu', + 'title': 'Menu', + 'type' : 'item', + 'url' : '/components/angular-material/menu' + }, + { + 'id' : 'sidenav', + 'title': 'Sidenav', + 'type' : 'item', + 'url' : '/components/angular-material/sidenav' + }, + { + 'id' : 'toolbar', + 'title': 'Toolbar', + 'type' : 'item', + 'url' : '/components/angular-material/toolbar' + } + ] + }, + { + 'id' : 'layout', + 'title' : 'Layout', + 'type' : 'group', + 'children': [ + { + 'id' : 'list', + 'title': 'List', + 'type' : 'item', + 'url' : '/components/angular-material/list' + }, + { + 'id' : 'grid-list', + 'title': 'Grid list', + 'type' : 'item', + 'url' : '/components/angular-material/grid-list' + }, + { + 'id' : 'card', + 'title': 'Card', + 'type' : 'item', + 'url' : '/components/angular-material/card' + }, + { + 'id' : 'divider', + 'title': 'Divider', + 'type' : 'item', + 'url' : '/components/angular-material/divider' + }, + { + 'id' : 'stepper', + 'title': 'Stepper', + 'type' : 'item', + 'url' : '/components/angular-material/stepper' + }, + { + 'id' : 'tabs', + 'title': 'Tabs', + 'type' : 'item', + 'url' : '/components/angular-material/tabs' + }, + { + 'id' : 'elevation', + 'title': 'Elevation', + 'type' : 'item', + 'url' : '/components/angular-material/elevation' + }, + { + 'id' : 'expansion-panel', + 'title': 'Expansion Panel', + 'type' : 'item', + 'url' : '/components/angular-material/expansion-panel' + } + ] + }, + { + 'id' : 'buttons-indicators', + 'title' : 'Buttons & Indicators', + 'type' : 'group', + 'children': [ + { + 'id' : 'button', + 'title': 'Button', + 'type' : 'item', + 'url' : '/components/angular-material/button' + }, + { + 'id' : 'button-toggle', + 'title': 'Button toggle', + 'type' : 'item', + 'url' : '/components/angular-material/button-toggle' + }, + { + 'id' : 'chips', + 'title': 'Chips', + 'type' : 'item', + 'url' : '/components/angular-material/chips' + }, + { + 'id' : 'icon', + 'title': 'Icon', + 'type' : 'item', + 'url' : '/components/angular-material/icon' + }, + { + 'id' : 'progress-spinner', + 'title': 'Progress spinner', + 'type' : 'item', + 'url' : '/components/angular-material/progress-spinner' + }, + { + 'id' : 'progress-bar', + 'title': 'Progress bar', + 'type' : 'item', + 'url' : '/components/angular-material/progress-bar' + } + ] + }, + { + 'id' : 'popups-modals', + 'title' : 'Popups & Modals', + 'type' : 'group', + 'children': [ + { + 'id' : 'dialog', + 'title': 'Dialog', + 'type' : 'item', + 'url' : '/components/angular-material/dialog' + }, + { + 'id' : 'tooltip', + 'title': 'Tooltip', + 'type' : 'item', + 'url' : '/components/angular-material/tooltip' + }, + { + 'id' : 'snackbar', + 'title': 'Snackbar', + 'type' : 'item', + 'url' : '/components/angular-material/snackbar' + } + ] + }, + { + 'id' : 'data-table', + 'title' : 'Data table', + 'type' : 'group', + 'children': [ + { + 'id' : 'table', + 'title': 'Table', + 'type' : 'item', + 'url' : '/components/angular-material/data-table' + }, + { + 'id' : 'sort-header', + 'title': 'Sort header', + 'type' : 'item', + 'url' : '/components/angular-material/sort-header' + }, + { + 'id' : 'paginator', + 'title': 'Paginator', + 'type' : 'item', + 'url' : '/components/angular-material/paginator' + } + ] + } + ] + }, + { + 'id' : 'cards', + 'title': 'Cards', + 'type' : 'item', + 'icon' : 'settings_input_component', + 'url' : '/components/cards' + }, + { + 'id' : 'countdown', + 'title': 'Countdown', + 'type' : 'item', + 'icon' : 'settings_input_component', + 'url' : '/components/countdown' + }, + { + 'id' : 'highlight', + 'title': 'Highlight', + 'type' : 'item', + 'icon' : 'settings_input_component', + 'url' : '/components/highlight' + }, + { + 'id' : 'material-color-picker', + 'title': 'Material Color Picker', + 'type' : 'item', + 'icon' : 'settings_input_component', + 'url' : '/components/material-color-picker' + }, + { + 'id' : 'multi-language', + 'title': 'Multi Language', + 'type' : 'item', + 'icon' : 'settings_input_component', + 'url' : '/components/multi-language' + }, + { + 'id' : 'navigation', + 'title': 'Navigation', + 'type' : 'item', + 'icon' : 'settings_input_component', + 'url' : '/components/navigation' + }, + { + 'id' : 'search-bar', + 'title': 'Search Bar', + 'type' : 'item', + 'icon' : 'settings_input_component', + 'url' : '/components/search-bar' + }, + { + 'id' : 'sidebar', + 'title': 'Sidebar', + 'type' : 'item', + 'icon' : 'settings_input_component', + 'url' : '/components/sidebar' + }, + { + 'id' : 'shortcuts', + 'title': 'Shortcuts', + 'type' : 'item', + 'icon' : 'settings_input_component', + 'url' : '/components/shortcuts' + }, + { + 'id' : 'widget', + 'title': 'Widget', + 'type' : 'item', + 'icon' : 'settings_input_component', + 'url' : '/components/widget' + } + ] + }, + { + 'id' : '3rd-party-components', + 'title' : '3rd Party components', + 'type' : 'group', + 'icon' : 'settings_input_component', + 'children': [ + { + 'id' : 'datatables', + 'title' : 'Datatables', + 'type' : 'collapse', + 'icon' : 'border_all', + 'children': [ + { + 'id' : 'ngxdatatable', + 'title': 'ngx-datatable', + 'type' : 'item', + 'url' : '/components-third-party/datatables/ngx-datatable' + } + ] + }, + { + 'id' : 'google-maps', + 'title': 'Google Maps', + 'type' : 'item', + 'icon' : 'place', + 'url' : '/components-third-party/google-maps' + } + ] + } +]; diff --git a/src/app/core/modules/shared.module.ts b/src/app/shared/shared.module.ts similarity index 94% rename from src/app/core/modules/shared.module.ts rename to src/app/shared/shared.module.ts index 36bbeb3d..44fd2cd3 100644 --- a/src/app/core/modules/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -1,3 +1,4 @@ +/* import { NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { CommonModule } from '@angular/common'; @@ -14,7 +15,6 @@ import { FusePipesModule } from '../pipes/pipes.module'; import { FuseConfirmDialogComponent } from '../components/confirm-dialog/confirm-dialog.component'; import { FuseCountdownComponent } from '../components/countdown/countdown.component'; import { FuseMatchMedia } from '../services/match-media.service'; -import { FuseNavbarVerticalService } from '../../main/navbar/vertical/navbar-vertical.service'; import { FuseHighlightComponent } from '../components/highlight/highlight.component'; import { FusePerfectScrollbarDirective } from '../directives/fuse-perfect-scrollbar/fuse-perfect-scrollbar.directive'; import { FuseIfOnDomDirective } from '../directives/fuse-if-on-dom/fuse-if-on-dom.directive'; @@ -37,7 +37,6 @@ import { ChartsModule } from 'ng2-charts'; ], imports : [ FlexLayoutModule, - MaterialModule, CommonModule, FormsModule, FusePipesModule, @@ -49,7 +48,6 @@ import { ChartsModule } from 'ng2-charts'; ], exports : [ FlexLayoutModule, - MaterialModule, CommonModule, FormsModule, FuseMatSidenavHelperDirective, @@ -73,7 +71,6 @@ import { ChartsModule } from 'ng2-charts'; providers : [ CookieService, FuseMatchMedia, - FuseNavbarVerticalService, FuseMatSidenavHelperService, FuseTranslationLoaderService ] @@ -83,3 +80,4 @@ export class SharedModule { } +*/ diff --git a/src/assets/angular-material-examples/autocomplete-auto-active-first-option/autocomplete-auto-active-first-option-example.css b/src/assets/angular-material-examples/autocomplete-auto-active-first-option/autocomplete-auto-active-first-option-example.css new file mode 100755 index 00000000..08fa6753 --- /dev/null +++ b/src/assets/angular-material-examples/autocomplete-auto-active-first-option/autocomplete-auto-active-first-option-example.css @@ -0,0 +1,9 @@ +.example-form { + min-width: 150px; + max-width: 500px; + width: 100%; +} + +.example-full-width { + width: 100%; +} diff --git a/src/assets/angular-material-examples/autocomplete-auto-active-first-option/autocomplete-auto-active-first-option-example.html b/src/assets/angular-material-examples/autocomplete-auto-active-first-option/autocomplete-auto-active-first-option-example.html new file mode 100755 index 00000000..45090946 --- /dev/null +++ b/src/assets/angular-material-examples/autocomplete-auto-active-first-option/autocomplete-auto-active-first-option-example.html @@ -0,0 +1,10 @@ +
+ + + + + {{ option }} + + + +
diff --git a/src/assets/angular-material-examples/autocomplete-auto-active-first-option/autocomplete-auto-active-first-option-example.ts b/src/assets/angular-material-examples/autocomplete-auto-active-first-option/autocomplete-auto-active-first-option-example.ts new file mode 100755 index 00000000..64868772 --- /dev/null +++ b/src/assets/angular-material-examples/autocomplete-auto-active-first-option/autocomplete-auto-active-first-option-example.ts @@ -0,0 +1,31 @@ +import {Component} from '@angular/core'; +import {FormControl} from '@angular/forms'; +import {Observable} from 'rxjs/Observable'; +import {startWith} from 'rxjs/operators/startWith'; +import {map} from 'rxjs/operators/map'; + +/** + * @title Highlight the first autocomplete option + */ +@Component({ + selector: 'autocomplete-auto-active-first-option-example', + templateUrl: 'autocomplete-auto-active-first-option-example.html', + styleUrls: ['autocomplete-auto-active-first-option-example.css'] +}) +export class AutocompleteAutoActiveFirstOptionExample { + myControl: FormControl = new FormControl(); + options = ['One', 'Two', 'Three']; + filteredOptions: Observable; + + ngOnInit() { + this.filteredOptions = this.myControl.valueChanges.pipe( + startWith(''), + map(val => this.filter(val)) + ); + } + + filter(val: string): string[] { + return this.options.filter(option => option.toLowerCase().indexOf(val.toLowerCase()) === 0); + } + +} diff --git a/src/assets/angular-material-examples/datepicker-custom-icon/datepicker-custom-icon-example.html b/src/assets/angular-material-examples/datepicker-custom-icon/datepicker-custom-icon-example.html new file mode 100755 index 00000000..a1b4e5d5 --- /dev/null +++ b/src/assets/angular-material-examples/datepicker-custom-icon/datepicker-custom-icon-example.html @@ -0,0 +1,7 @@ + + + + keyboard_arrow_down + + + diff --git a/src/assets/angular-material-examples/datepicker-custom-icon/datepicker-custom-icon-example.ts b/src/assets/angular-material-examples/datepicker-custom-icon/datepicker-custom-icon-example.ts new file mode 100755 index 00000000..115dab66 --- /dev/null +++ b/src/assets/angular-material-examples/datepicker-custom-icon/datepicker-custom-icon-example.ts @@ -0,0 +1,9 @@ +import {Component} from '@angular/core'; + +/** @title Datepicker with custom icon */ +@Component({ + selector: 'datepicker-custom-icon-example', + templateUrl: 'datepicker-custom-icon-example.html', + styleUrls: ['datepicker-custom-icon-example.css'], +}) +export class DatepickerCustomIconExample {} diff --git a/src/assets/angular-material-examples/divider-overview/divider-overview-example.css b/src/assets/angular-material-examples/divider-overview/divider-overview-example.css new file mode 100755 index 00000000..74323087 --- /dev/null +++ b/src/assets/angular-material-examples/divider-overview/divider-overview-example.css @@ -0,0 +1 @@ +/** No CSS for this example */ diff --git a/src/assets/angular-material-examples/divider-overview/divider-overview-example.html b/src/assets/angular-material-examples/divider-overview/divider-overview-example.html new file mode 100755 index 00000000..c0e121f0 --- /dev/null +++ b/src/assets/angular-material-examples/divider-overview/divider-overview-example.html @@ -0,0 +1,7 @@ + + Item 1 + + Item 2 + + Item 3 + diff --git a/src/assets/angular-material-examples/divider-overview/divider-overview-example.ts b/src/assets/angular-material-examples/divider-overview/divider-overview-example.ts new file mode 100755 index 00000000..536b600e --- /dev/null +++ b/src/assets/angular-material-examples/divider-overview/divider-overview-example.ts @@ -0,0 +1,11 @@ +import {Component} from '@angular/core'; + +/** + * @title Basic divider + */ +@Component({ + selector: 'divider-overview-example', + templateUrl: 'divider-overview-example.html', + styleUrls: ['divider-overview-example.css'], +}) +export class DividerOverviewExample {} diff --git a/src/assets/angular-material-examples/form-field-label/form-field-label-example.html b/src/assets/angular-material-examples/form-field-label/form-field-label-example.html new file mode 100755 index 00000000..0f7066bb --- /dev/null +++ b/src/assets/angular-material-examples/form-field-label/form-field-label-example.html @@ -0,0 +1,34 @@ +
+
+ Hide required marker +
+ + + Auto + Always + Never + +
+
+ + + + + + + Both a label and a placeholder + + + + + + -- None -- + Option + + favorite Fancy placeholder + +
diff --git a/src/assets/angular-material-examples/form-field-label/form-field-label-example.ts b/src/assets/angular-material-examples/form-field-label/form-field-label-example.ts new file mode 100755 index 00000000..4ebb56e3 --- /dev/null +++ b/src/assets/angular-material-examples/form-field-label/form-field-label-example.ts @@ -0,0 +1,19 @@ +import {Component} from '@angular/core'; +import {FormBuilder, FormGroup} from '@angular/forms'; + +/** @title Form field with label */ +@Component({ + selector: 'form-field-label-example', + templateUrl: 'form-field-label-example.html', + styleUrls: ['form-field-label-example.css'] +}) +export class FormFieldLabelExample { + options: FormGroup; + + constructor(fb: FormBuilder) { + this.options = fb.group({ + hideRequired: false, + floatLabel: 'auto', + }); + } +} diff --git a/src/assets/angular-material-examples/icon-svg-example/icon-svg-example.css b/src/assets/angular-material-examples/icon-svg-example/icon-svg-example.css new file mode 100755 index 00000000..74323087 --- /dev/null +++ b/src/assets/angular-material-examples/icon-svg-example/icon-svg-example.css @@ -0,0 +1 @@ +/** No CSS for this example */ diff --git a/src/assets/angular-material-examples/icon-svg-example/icon-svg-example.ts b/src/assets/angular-material-examples/icon-svg-example/icon-svg-example.ts new file mode 100755 index 00000000..21c4c03a --- /dev/null +++ b/src/assets/angular-material-examples/icon-svg-example/icon-svg-example.ts @@ -0,0 +1,19 @@ +import {Component} from '@angular/core'; +import {DomSanitizer} from '@angular/platform-browser'; +import {MatIconRegistry} from '@angular/material'; + +/** + * @title SVG icons + */ +@Component({ + selector: 'icon-svg-example', + templateUrl: 'icon-svg-example.html', + styleUrls: ['icon-svg-example.css'], +}) +export class IconSvgExample { + constructor(iconRegistry: MatIconRegistry, sanitizer: DomSanitizer) { + iconRegistry.addSvgIcon( + 'thumbs-up', + sanitizer.bypassSecurityTrustResourceUrl('assets/images/examples/thumbup-icon.svg')); + } +} diff --git a/src/assets/angular-material-examples/sidenav-autosize/sidenav-autosize-example.css b/src/assets/angular-material-examples/sidenav-autosize/sidenav-autosize-example.css new file mode 100755 index 00000000..8ab00588 --- /dev/null +++ b/src/assets/angular-material-examples/sidenav-autosize/sidenav-autosize-example.css @@ -0,0 +1,16 @@ +.example-container { + width: 500px; + height: 300px; + border: 1px solid rgba(0, 0, 0, 0.5); +} + +.example-sidenav-content { + display: flex; + height: 100%; + align-items: center; + justify-content: center; +} + +.example-sidenav { + padding: 20px; +} diff --git a/src/assets/angular-material-examples/sidenav-autosize/sidenav-autosize-example.html b/src/assets/angular-material-examples/sidenav-autosize/sidenav-autosize-example.html new file mode 100755 index 00000000..f9326a38 --- /dev/null +++ b/src/assets/angular-material-examples/sidenav-autosize/sidenav-autosize-example.html @@ -0,0 +1,16 @@ + + +

Auto-resizing sidenav

+

Lorem, ipsum dolor sit amet consectetur.

+ +
+ +
+ +
+ +
diff --git a/src/assets/angular-material-examples/sidenav-autosize/sidenav-autosize-example.ts b/src/assets/angular-material-examples/sidenav-autosize/sidenav-autosize-example.ts new file mode 100755 index 00000000..f7565c09 --- /dev/null +++ b/src/assets/angular-material-examples/sidenav-autosize/sidenav-autosize-example.ts @@ -0,0 +1,13 @@ +import {Component} from '@angular/core'; + +/** + * @title Autosize sidenav + */ +@Component({ + selector: 'sidenav-autosize-example', + templateUrl: 'sidenav-autosize-example.html', + styleUrls: ['sidenav-autosize-example.css'], +}) +export class SidenavAutosizeExample { + showFiller = false; +} diff --git a/src/assets/angular-material-examples/snack-bar-position/snack-bar-position-example.html b/src/assets/angular-material-examples/snack-bar-position/snack-bar-position-example.html new file mode 100755 index 00000000..ddfe4aa6 --- /dev/null +++ b/src/assets/angular-material-examples/snack-bar-position/snack-bar-position-example.html @@ -0,0 +1,19 @@ + + + Start + Center + End + Left + Right + + + + + Top + Bottom + + + + diff --git a/src/assets/angular-material-examples/snack-bar-position/snack-bar-position-example.ts b/src/assets/angular-material-examples/snack-bar-position/snack-bar-position-example.ts new file mode 100755 index 00000000..f18d10fe --- /dev/null +++ b/src/assets/angular-material-examples/snack-bar-position/snack-bar-position-example.ts @@ -0,0 +1,29 @@ +import {Component} from '@angular/core'; +import { + MatSnackBar, + MatSnackBarHorizontalPosition, + MatSnackBarVerticalPosition, +} from '@angular/material'; + +/** + * @title Snack-bar with configurable position + */ +@Component({ + selector: 'snack-bar-position-example', + templateUrl: 'snack-bar-position-example.html', +}) +export class SnackBarPositionExample { + + horizontalPosition: MatSnackBarHorizontalPosition = 'start'; + verticalPosition: MatSnackBarVerticalPosition = 'bottom'; + + constructor(public snackBar: MatSnackBar) {} + + openSnackBar() { + this.snackBar.open('Canonball!!', 'End now', { + duration: 500, + horizontalPosition: this.horizontalPosition, + verticalPosition: this.verticalPosition, + }); + } +} diff --git a/src/assets/angular-material-examples/table-selection/table-selection-example.css b/src/assets/angular-material-examples/table-selection/table-selection-example.css new file mode 100755 index 00000000..ee01a3c8 --- /dev/null +++ b/src/assets/angular-material-examples/table-selection/table-selection-example.css @@ -0,0 +1,15 @@ +.example-container { + display: flex; + flex-direction: column; + max-height: 500px; + min-width: 300px; +} + +.mat-table { + overflow: auto; + max-height: 500px; +} + +.mat-column-select { + overflow: visible; +} diff --git a/src/assets/angular-material-examples/table-selection/table-selection-example.html b/src/assets/angular-material-examples/table-selection/table-selection-example.html new file mode 100755 index 00000000..9f920558 --- /dev/null +++ b/src/assets/angular-material-examples/table-selection/table-selection-example.html @@ -0,0 +1,49 @@ +
+ + + + + + + + + + + + + + + + + No. + {{element.position}} + + + + + Name + {{element.name}} + + + + + Weight + {{element.weight}} + + + + + Symbol + {{element.symbol}} + + + + + + +
diff --git a/src/assets/angular-material-examples/table-selection/table-selection-example.ts b/src/assets/angular-material-examples/table-selection/table-selection-example.ts new file mode 100755 index 00000000..88e72ead --- /dev/null +++ b/src/assets/angular-material-examples/table-selection/table-selection-example.ts @@ -0,0 +1,61 @@ +import {Component} from '@angular/core'; +import {MatTableDataSource} from '@angular/material'; +import {SelectionModel} from '@angular/cdk/collections'; + +/** + * @title Table with selection + */ +@Component({ + selector: 'table-selection-example', + styleUrls: ['table-selection-example.css'], + templateUrl: 'table-selection-example.html', +}) +export class TableSelectionExample { + displayedColumns = ['select', 'position', 'name', 'weight', 'symbol']; + dataSource = new MatTableDataSource(ELEMENT_DATA); + selection = new SelectionModel(true, []); + + /** Whether the number of selected elements matches the total number of rows. */ + isAllSelected() { + const numSelected = this.selection.selected.length; + const numRows = this.dataSource.data.length; + return numSelected === numRows; + } + + /** Selects all rows if they are not all selected; otherwise clear selection. */ + masterToggle() { + this.isAllSelected() ? + this.selection.clear() : + this.dataSource.data.forEach(row => this.selection.select(row)); + } +} + +export interface Element { + name: string; + position: number; + weight: number; + symbol: string; +} + +const ELEMENT_DATA: Element[] = [ + {position: 1, name: 'Hydrogen', weight: 1.0079, symbol: 'H'}, + {position: 2, name: 'Helium', weight: 4.0026, symbol: 'He'}, + {position: 3, name: 'Lithium', weight: 6.941, symbol: 'Li'}, + {position: 4, name: 'Beryllium', weight: 9.0122, symbol: 'Be'}, + {position: 5, name: 'Boron', weight: 10.811, symbol: 'B'}, + {position: 6, name: 'Carbon', weight: 12.0107, symbol: 'C'}, + {position: 7, name: 'Nitrogen', weight: 14.0067, symbol: 'N'}, + {position: 8, name: 'Oxygen', weight: 15.9994, symbol: 'O'}, + {position: 9, name: 'Fluorine', weight: 18.9984, symbol: 'F'}, + {position: 10, name: 'Neon', weight: 20.1797, symbol: 'Ne'}, + {position: 11, name: 'Sodium', weight: 22.9897, symbol: 'Na'}, + {position: 12, name: 'Magnesium', weight: 24.305, symbol: 'Mg'}, + {position: 13, name: 'Aluminum', weight: 26.9815, symbol: 'Al'}, + {position: 14, name: 'Silicon', weight: 28.0855, symbol: 'Si'}, + {position: 15, name: 'Phosphorus', weight: 30.9738, symbol: 'P'}, + {position: 16, name: 'Sulfur', weight: 32.065, symbol: 'S'}, + {position: 17, name: 'Chlorine', weight: 35.453, symbol: 'Cl'}, + {position: 18, name: 'Argon', weight: 39.948, symbol: 'Ar'}, + {position: 19, name: 'Potassium', weight: 39.0983, symbol: 'K'}, + {position: 20, name: 'Calcium', weight: 40.078, symbol: 'Ca'}, +]; diff --git a/src/assets/angular-material-examples/tooltip-delay/tooltip-delay-example.css b/src/assets/angular-material-examples/tooltip-delay/tooltip-delay-example.css new file mode 100755 index 00000000..56d5205c --- /dev/null +++ b/src/assets/angular-material-examples/tooltip-delay/tooltip-delay-example.css @@ -0,0 +1,3 @@ +button { + margin: 8px; +} diff --git a/src/assets/angular-material-examples/tooltip-delay/tooltip-delay-example.html b/src/assets/angular-material-examples/tooltip-delay/tooltip-delay-example.html new file mode 100755 index 00000000..7cd4a164 --- /dev/null +++ b/src/assets/angular-material-examples/tooltip-delay/tooltip-delay-example.html @@ -0,0 +1,7 @@ + + + diff --git a/src/assets/angular-material-examples/tooltip-delay/tooltip-delay-example.ts b/src/assets/angular-material-examples/tooltip-delay/tooltip-delay-example.ts new file mode 100755 index 00000000..3e7ce9c5 --- /dev/null +++ b/src/assets/angular-material-examples/tooltip-delay/tooltip-delay-example.ts @@ -0,0 +1,11 @@ +import {Component} from '@angular/core'; + +/** + * @title Tooltip with a show and hide delay + */ +@Component({ + selector: 'tooltip-delay-example', + templateUrl: 'tooltip-delay-example.html', + styleUrls: ['tooltip-delay-example.css'], +}) +export class TooltipDelayExample {} diff --git a/src/assets/angular-material-examples/tooltip-manual/tooltip-manual-example.css b/src/assets/angular-material-examples/tooltip-manual/tooltip-manual-example.css new file mode 100755 index 00000000..74323087 --- /dev/null +++ b/src/assets/angular-material-examples/tooltip-manual/tooltip-manual-example.css @@ -0,0 +1 @@ +/** No CSS for this example */ diff --git a/src/assets/angular-material-examples/tooltip-manual/tooltip-manual-example.html b/src/assets/angular-material-examples/tooltip-manual/tooltip-manual-example.html new file mode 100755 index 00000000..3e5ca183 --- /dev/null +++ b/src/assets/angular-material-examples/tooltip-manual/tooltip-manual-example.html @@ -0,0 +1,5 @@ + + + + I have a tooltip + diff --git a/src/assets/angular-material-examples/tooltip-manual/tooltip-manual-example.ts b/src/assets/angular-material-examples/tooltip-manual/tooltip-manual-example.ts new file mode 100755 index 00000000..e39a760a --- /dev/null +++ b/src/assets/angular-material-examples/tooltip-manual/tooltip-manual-example.ts @@ -0,0 +1,11 @@ +import {Component} from '@angular/core'; + +/** + * @title Tooltip that can be manually shown/hidden. + */ +@Component({ + selector: 'tooltip-manual-example', + templateUrl: 'tooltip-manual-example.html', + styleUrls: ['tooltip-manual-example.css'], +}) +export class TooltipManualExample {} diff --git a/src/assets/angular-material-examples/tooltip-modified-defaults/tooltip-modified-defaults-example.css b/src/assets/angular-material-examples/tooltip-modified-defaults/tooltip-modified-defaults-example.css new file mode 100755 index 00000000..74323087 --- /dev/null +++ b/src/assets/angular-material-examples/tooltip-modified-defaults/tooltip-modified-defaults-example.css @@ -0,0 +1 @@ +/** No CSS for this example */ diff --git a/src/assets/angular-material-examples/tooltip-modified-defaults/tooltip-modified-defaults-example.html b/src/assets/angular-material-examples/tooltip-modified-defaults/tooltip-modified-defaults-example.html new file mode 100755 index 00000000..8dcc0d0e --- /dev/null +++ b/src/assets/angular-material-examples/tooltip-modified-defaults/tooltip-modified-defaults-example.html @@ -0,0 +1,3 @@ + diff --git a/src/assets/angular-material-examples/tooltip-modified-defaults/tooltip-modified-defaults-example.ts b/src/assets/angular-material-examples/tooltip-modified-defaults/tooltip-modified-defaults-example.ts new file mode 100755 index 00000000..53cd3bc2 --- /dev/null +++ b/src/assets/angular-material-examples/tooltip-modified-defaults/tooltip-modified-defaults-example.ts @@ -0,0 +1,22 @@ +import {Component} from '@angular/core'; +import {MAT_TOOLTIP_DEFAULT_OPTIONS, MatTooltipDefaultOptions} from '@angular/material'; + +/** Custom options the configure the tooltip's default show/hide delays. */ +export const myCustomTooltipDefaults: MatTooltipDefaultOptions = { + showDelay: 1000, + hideDelay: 1000, + touchendHideDelay: 1000, +}; + +/** + * @title Tooltip with a show and hide delay + */ +@Component({ + selector: 'tooltip-modified-defaults-example', + templateUrl: 'tooltip-modified-defaults-example.html', + styleUrls: ['tooltip-modified-defaults-example.css'], + providers: [ + {provide: MAT_TOOLTIP_DEFAULT_OPTIONS, useValue: myCustomTooltipDefaults} + ], +}) +export class TooltipModifiedDefaultsExample {} diff --git a/src/styles.scss b/src/styles.scss index 5bc10165..d71a4d52 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1,2 +1,2 @@ // Import Fuse main library -@import "app/core/scss/core"; \ No newline at end of file +@import "@fuse/scss/core"; \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index d08dfe1b..422182f0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,25 +1,25 @@ { - "compileOnSave": false, - "compilerOptions": { - "outDir": "./dist/out-tsc", - "sourceMap": true, - "declaration": false, - "moduleResolution": "node", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "target": "es5", - "typeRoots": [ - "node_modules/@types" - ], - "lib": [ - "es2017", - "dom" - ] - }, - "angularCompilerOptions": { - "genDir": "release/", - "strictMetadataEmit": true, - "skipTemplateCodegen": true, - "annotationsAs": "decorators" - } + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./src", + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "target": "es5", + "paths": { + "@fuse": [ + "@fuse/" + ] + }, + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2017", + "dom" + ] + } }