diff --git a/.gitignore b/.gitignore index ccca1b64..0a51f749 100644 --- a/.gitignore +++ b/.gitignore @@ -45,7 +45,7 @@ Thumbs.db # Swagger Codegen swagger-codegen-cli.jar -src/app/api/**/swagger-codegen +src/app/**/swagger-codegen -# Kontur.Focus Model -src/app/kontur-focus/**/gen-model +# Generated models +src/app/**/gen-model diff --git a/.prettierignore b/.prettierignore index 992a27b3..bf6ad8f3 100644 --- a/.prettierignore +++ b/.prettierignore @@ -4,7 +4,6 @@ node_modules dist build_utils coverage -src/app/api/**/swagger-codegen schemes +src/app/**/swagger-codegen src/app/**/gen-model - diff --git a/package-lock.json b/package-lock.json index 303bd334..13d69bbd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,88 +5,134 @@ "requires": true, "dependencies": { "@angular-devkit/architect": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.11.4.tgz", - "integrity": "sha512-2zi6S9tPlk52vyqN67IvFoeNgd0uxtrPlwl3TdvJ3wrH7sYGJnkQ+EzAE7cKUGWAV989BbNtx2YxhRDHnN21Fg==", + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.13.8.tgz", + "integrity": "sha512-gxUs5rhnP576T8ZclKqxlspiChrqRtqaJo54wqNVFvYKEjRZKyMa+1AK6p0oD9zcIToEkcjknj3BbtQa27lLHg==", "dev": true, "requires": { - "@angular-devkit/core": "7.1.4", + "@angular-devkit/core": "7.3.8", "rxjs": "6.3.3" + }, + "dependencies": { + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } } }, "@angular-devkit/build-angular": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.11.4.tgz", - "integrity": "sha512-5WQAQB4heDqAotqjU3Tl8Ons0S/e16dKwVkQFdqfKPyBgmu4CyUH35eTV+i6i7un1Elg65U5GnA4MiUtApqVyw==", + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.13.8.tgz", + "integrity": "sha512-uRb8CKC0hUdcE+Fv2Ov9LJNelyjsiMuddBpo8pdTKCIHVVC6hvip9S/Z18Tvb207kKI3k7Dn+Ji1J63mCqmQzA==", "dev": true, "requires": { - "@angular-devkit/architect": "0.11.4", - "@angular-devkit/build-optimizer": "0.11.4", - "@angular-devkit/build-webpack": "0.11.4", - "@angular-devkit/core": "7.1.4", - "@ngtools/webpack": "7.1.4", - "ajv": "6.5.3", - "autoprefixer": "9.3.1", + "@angular-devkit/architect": "0.13.8", + "@angular-devkit/build-optimizer": "0.13.8", + "@angular-devkit/build-webpack": "0.13.8", + "@angular-devkit/core": "7.3.8", + "@ngtools/webpack": "7.3.8", + "ajv": "6.9.1", + "autoprefixer": "9.4.6", "circular-dependency-plugin": "5.0.2", "clean-css": "4.2.1", - "copy-webpack-plugin": "4.5.4", - "file-loader": "2.0.0", + "copy-webpack-plugin": "4.6.0", + "file-loader": "3.0.1", "glob": "7.1.3", - "istanbul": "0.4.5", "istanbul-instrumenter-loader": "3.0.1", "karma-source-map-support": "1.3.0", - "less": "3.8.1", + "less": "3.9.0", "less-loader": "4.1.0", - "license-webpack-plugin": "2.0.2", - "loader-utils": "1.1.0", - "mini-css-extract-plugin": "0.4.4", + "license-webpack-plugin": "2.1.0", + "loader-utils": "1.2.3", + "mini-css-extract-plugin": "0.5.0", "minimatch": "3.0.4", - "node-sass": "4.10.0", - "opn": "5.3.0", + "node-sass": "4.11.0", + "open": "6.0.0", "parse5": "4.0.0", - "portfinder": "1.0.17", - "postcss": "7.0.5", - "postcss-import": "12.0.0", + "postcss": "7.0.14", + "postcss-import": "12.0.1", "postcss-loader": "3.0.0", - "raw-loader": "0.5.1", + "raw-loader": "1.0.0", "rxjs": "6.3.3", "sass-loader": "7.1.0", - "semver": "5.5.1", + "semver": "5.6.0", "source-map-loader": "0.2.4", - "source-map-support": "0.5.9", - "speed-measure-webpack-plugin": "1.2.3", + "source-map-support": "0.5.10", + "speed-measure-webpack-plugin": "1.3.1", "stats-webpack-plugin": "0.7.0", "style-loader": "0.23.1", "stylus": "0.54.5", "stylus-loader": "3.0.2", - "terser-webpack-plugin": "1.1.0", - "tree-kill": "1.2.0", - "webpack": "4.23.1", - "webpack-dev-middleware": "3.4.0", - "webpack-dev-server": "3.1.10", - "webpack-merge": "4.1.4", + "terser-webpack-plugin": "1.2.2", + "tree-kill": "1.2.1", + "webpack": "4.29.0", + "webpack-dev-middleware": "3.5.1", + "webpack-dev-server": "3.1.14", + "webpack-merge": "4.2.1", "webpack-sources": "1.3.0", "webpack-subresource-integrity": "1.1.0-rc.6" }, "dependencies": { + "ajv": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "parse5": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", "dev": true + }, + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true + }, + "source-map-support": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", + "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } } } }, "@angular-devkit/build-optimizer": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.11.4.tgz", - "integrity": "sha512-tAAWWFCcl918Q1JivlLvLFer8Qm4/THWbEneMwk5fQvG6/NgJLoa3itP/MCUq4qL6YHmp2DWkdWnWfRQCgHeFA==", + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.13.8.tgz", + "integrity": "sha512-RvYxtsdYuvpFb1iivVixylSVN/Q8LsQ449uYuqEe3OsDjQBvUVG2fMLPOQjmKWhi0NC9WSsNiUluxLDNdvd0Vw==", "dev": true, "requires": { - "loader-utils": "1.1.0", + "loader-utils": "1.2.3", "source-map": "0.5.6", - "typescript": "3.1.6", - "webpack-sources": "1.2.0" + "typescript": "3.2.4", + "webpack-sources": "1.3.0" }, "dependencies": { "source-map": { @@ -94,51 +140,65 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", "dev": true - }, - "webpack-sources": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz", - "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "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 - } - } } } }, "@angular-devkit/build-webpack": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.11.4.tgz", - "integrity": "sha512-4nEDXSbv3oDu27Rw5s2DMKmcOZYVAt76bryVF2SycSkDq3eAIiqmgw3G3CJJ4LTulXzDpaIpk02MvgbYkX+hvw==", + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.13.8.tgz", + "integrity": "sha512-WMyn1vUHyx+VfJKgYuEHrICwQzPMDTaUNB1zlvzZt9gX/9H+XnetrebeWBZCITPXHBw/377oA6wmiHWJ0yaZRw==", "dev": true, "requires": { - "@angular-devkit/architect": "0.11.4", - "@angular-devkit/core": "7.1.4", + "@angular-devkit/architect": "0.13.8", + "@angular-devkit/core": "7.3.8", "rxjs": "6.3.3" + }, + "dependencies": { + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } } }, "@angular-devkit/core": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.1.4.tgz", - "integrity": "sha512-3cBVHjSQjMyE/mIyOX82ekdybNRQlN+kUfmdZS6oVW9aV48vdxcVbEGdl8t1H4enMf89u8kXiAAET9jFaqWopg==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.8.tgz", + "integrity": "sha512-3X9uzaZXFpm5o2TSzhD6wEOtVU32CgeytKjD1Scxj+uMMVo48SWLlKiFh312T+smI9ko7tOT8VqxglwYkWosgg==", "dev": true, "requires": { - "ajv": "6.5.3", + "ajv": "6.9.1", "chokidar": "2.0.4", "fast-json-stable-stringify": "2.0.0", "rxjs": "6.3.3", "source-map": "0.7.3" }, "dependencies": { + "ajv": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", @@ -148,73 +208,177 @@ } }, "@angular-devkit/schematics": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.1.4.tgz", - "integrity": "sha512-+rn3ppcC3grsi9vV2uUIYh/5mUBEJ+JRCKW11BJoUqLMeu8W7h+vbVonyfwJXsk3FSTf9ZY0C7F7UqggRS3cWw==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.3.8.tgz", + "integrity": "sha512-mvaKoORZIaW/h0VNZ3IQWP0qThRCZRX6869FNlzV0jlW0mhn07XbiIGHCGGSCDRxS7qJ0VbuIVnKXntF+iDeWw==", "dev": true, "requires": { - "@angular-devkit/core": "7.1.4", + "@angular-devkit/core": "7.3.8", "rxjs": "6.3.3" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.8.tgz", + "integrity": "sha512-3X9uzaZXFpm5o2TSzhD6wEOtVU32CgeytKjD1Scxj+uMMVo48SWLlKiFh312T+smI9ko7tOT8VqxglwYkWosgg==", + "dev": true, + "requires": { + "ajv": "6.9.1", + "chokidar": "2.0.4", + "fast-json-stable-stringify": "2.0.0", + "rxjs": "6.3.3", + "source-map": "0.7.3" + } + }, + "ajv": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } } }, "@angular/animations": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.1.4.tgz", - "integrity": "sha512-877LZ83scksJtflVz97CUWlSsZnxduBxPD+ls5OTrTT/bq3muzHCm8rgTO7S8fBwwrEVXLorvMAlhDPpMg5Swg==", + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.2.14.tgz", + "integrity": "sha512-K+wdq7TslmvDhrbwy65x7owE8wezI0fDdO+8SO9RU4m/w6R6vo4QS3uSdc5I2pxwm4QSXSc5eKhoWJkq0muTbQ==", "requires": { "tslib": "^1.9.0" } }, "@angular/cdk": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-7.1.1.tgz", - "integrity": "sha512-woW9lWDBKRuxZipMzWofrAY7YpuZd4vf/J1YPjmAqV7U94MaDFyizRLyFolbTZVYo8ggh9U3SQAWRrEBvJNsjg==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-7.3.7.tgz", + "integrity": "sha512-xbXxhHHKGkVuW6K7pzPmvpJXIwpl0ykBnvA2g+/7Sgy5Pd35wCC+UtHD9RYczDM/mkygNxMQtagyCErwFnDtQA==", "requires": { "parse5": "^5.0.0", "tslib": "^1.7.1" } }, "@angular/cli": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.1.4.tgz", - "integrity": "sha512-SruaZsmyq3+ymMPeMJSzhytvgtvzyzb1q58pUYX+vZjff2aMYOo0TVxJALwTOPIABICTqUTZmujbLG9uxVgxFA==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.3.8.tgz", + "integrity": "sha512-5ldU1idvWstmRaavGZen9WRjfjIViERGt8NYuLLI7dgVLYOPF5TyFoTnpT5nxkiCopp4tPIcpbzPV394Bxmdtg==", "dev": true, "requires": { - "@angular-devkit/architect": "0.11.4", - "@angular-devkit/core": "7.1.4", - "@angular-devkit/schematics": "7.1.4", - "@schematics/angular": "7.1.4", - "@schematics/update": "0.11.4", - "inquirer": "6.2.0", - "opn": "5.3.0", - "semver": "5.5.1", + "@angular-devkit/architect": "0.13.8", + "@angular-devkit/core": "7.3.8", + "@angular-devkit/schematics": "7.3.8", + "@schematics/angular": "7.3.8", + "@schematics/update": "0.13.8", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "inquirer": "6.2.1", + "npm-package-arg": "6.1.0", + "open": "6.0.0", + "pacote": "9.4.0", + "semver": "5.6.0", "symbol-observable": "1.2.0" + }, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.13.8.tgz", + "integrity": "sha512-gxUs5rhnP576T8ZclKqxlspiChrqRtqaJo54wqNVFvYKEjRZKyMa+1AK6p0oD9zcIToEkcjknj3BbtQa27lLHg==", + "dev": true, + "requires": { + "@angular-devkit/core": "7.3.8", + "rxjs": "6.3.3" + } + }, + "@angular-devkit/core": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.8.tgz", + "integrity": "sha512-3X9uzaZXFpm5o2TSzhD6wEOtVU32CgeytKjD1Scxj+uMMVo48SWLlKiFh312T+smI9ko7tOT8VqxglwYkWosgg==", + "dev": true, + "requires": { + "ajv": "6.9.1", + "chokidar": "2.0.4", + "fast-json-stable-stringify": "2.0.0", + "rxjs": "6.3.3", + "source-map": "0.7.3" + } + }, + "ajv": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } } }, "@angular/common": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.1.4.tgz", - "integrity": "sha512-oQPCilcf1H/OXmt4z6PfGoCSb1YPRBAXGs/KRBARm3tYan2r5CmV0BFwpWXWQrEMt8YQqqLiBQUQ64d8+VFm8Q==", + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.2.14.tgz", + "integrity": "sha512-c2QBhVpbQhg1FDhOQkyVdFvU11mfvYHW5ZaXzxdCpq2rZXCureYiCSnlv++EsIAKqi22+2a6GACHF9Gh8kBmSg==", "requires": { "tslib": "^1.9.0" } }, "@angular/compiler": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.1.4.tgz", - "integrity": "sha512-AvYXtjEJ27Rhv4c27DXNEa58Lit63jdydzbz7VuyFhNU+FwDUK2DC4gZe0nWZsf7HUniJezVRFkECDCZQeSKCQ==", + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.2.14.tgz", + "integrity": "sha512-Idhs+5HIzx+1+hrXIDaRpSqobMB7UvSvPlvCvtb3EDYjmltTNG68TtwMzGM8W2jdayliYuFOjFrnw1wCTkK3Ag==", "requires": { "tslib": "^1.9.0" } }, "@angular/compiler-cli": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.1.4.tgz", - "integrity": "sha512-fyEY58A53pmVEuhfyU1z1TAi1n5rOK5cCjhFnUUnnESQFEW/aQYOl0ZL6LDsMSYfa78fkDw4Nc0DytvZ1ymVMw==", + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.2.14.tgz", + "integrity": "sha512-w5qn1nIPjiCP3WdbqicofpKpiRlh6NMYjWhe6mJysSBnVd34aSuGisYW/gVPQrmD46E1gmfpWTnWPeABVnjj6w==", "dev": true, "requires": { "canonical-path": "1.0.0", - "chokidar": "^1.4.2", + "chokidar": "^2.1.1", "convert-source-map": "^1.5.1", "dependency-graph": "^0.7.2", "magic-string": "^0.25.0", @@ -232,42 +396,6 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", @@ -275,20 +403,23 @@ "dev": true }, "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", + "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", "dev": true, "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, "cross-spawn": { @@ -317,63 +448,12 @@ "strip-eof": "^1.0.0" } }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "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.5" - } - }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -404,33 +484,18 @@ "mimic-fn": "^1.0.0" } }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, "mimic-fn": { "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 }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, "os-locale": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", @@ -548,9 +613,9 @@ } }, "@angular/core": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.1.4.tgz", - "integrity": "sha512-36uWLrmmlzf8JKaq2A5F2tPQEHvFSsbTQWOT559Drp1tzM2uSA7PysNHv5TXUshDn5i54S2EQFm4bj2YPp4Hzg==", + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.2.14.tgz", + "integrity": "sha512-XeZZJCyBKSKo0E/7Ef0SfJejmn+E7uBXa5cR1QapafS0Hnrq/hZu/NI039IDU/51NoycMDH2vTV19SmKu9Mkow==", "requires": { "tslib": "^1.9.0" } @@ -564,55 +629,55 @@ } }, "@angular/forms": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.1.4.tgz", - "integrity": "sha512-YB2lDRe7aMsaO5ZlbeFZGH+uTQOcpotFDKCmTckpefRJ7id6TlUSBYdYRH80qOQfPJGpsnqQvLZkL24UMasKtQ==", + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.2.14.tgz", + "integrity": "sha512-jL5YbTk7VZmz4l0++iFVUNa1vGM+nnALjHKi1Ub8VWioRDRboYUsHyxzlgWW9gZRbHpnLEXFiUz1td+v7TouJw==", "requires": { "tslib": "^1.9.0" } }, "@angular/language-service": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.1.4.tgz", - "integrity": "sha512-Pvrk3W3+6XfrmpCRcTumfyplv6AQJXKfDdPFSbhdpHJlpdcQRo6TckA85Yln5/CXZSAiPaZeiejQt2OogrIRLg==", + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.2.14.tgz", + "integrity": "sha512-YTU4ePAKikbIxNae9Qta8qaDArPgek7nhLEW9QfvrUAnpF7BkVboEI+7yLX5+NTfGf9cQ9cUfQ0TEreV+tMs7A==", "dev": true }, "@angular/material": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-7.1.1.tgz", - "integrity": "sha512-wjYAWsdWpb8/BgoIfoUomnycoljU00avJ3hRIgPNnEpZhB7zqiBA8tCitzDS4NK8dKBJjM9WRAOj6yl6x3+9wA==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-7.3.7.tgz", + "integrity": "sha512-Eq+7frkeNGkLOfEtmkmJgR+AgoWajOipXZWWfCSamNfpCcPof82DwvGOpAmgGni9FuN2XFQdqP5MoaffQzIvUA==", "requires": { "tslib": "^1.7.1" } }, "@angular/material-moment-adapter": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-7.1.1.tgz", - "integrity": "sha512-Ql0yFCuaWnRSSUqkCbeD8kRJ3oPVvl8GgsV20AvOKEpZ2eKvR+kapNbUqW8PTZb/Ovp5xDIaBaFjx5R89U4uxg==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-7.3.7.tgz", + "integrity": "sha512-Nb8hZkF6zcni7Jb+FXcTKKmbp8PhhFAhJSkch9FnKcFs1Py+sCNTLIH/cI53nPrTglkJwlVLwMW7fxj4w9I1CQ==", "requires": { "tslib": "^1.7.1" } }, "@angular/platform-browser": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.1.4.tgz", - "integrity": "sha512-lIFBKo6Uqty7qYDI9T8quFCUzUpGBgpzvDe14aAHFwZCft9rMS1J7PB1F26/dy2RBQE8tUyN2zp2xZQnYAhMcA==", + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.2.14.tgz", + "integrity": "sha512-yAq2+3W4J4B48HEmZYQucdEb9AHwRnv72q9CC/SxU7g59vaLhl1nv7cAWGJ4XFaJTbB7aB4Y4rLffuR+Gxkn7A==", "requires": { "tslib": "^1.9.0" } }, "@angular/platform-browser-dynamic": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.1.4.tgz", - "integrity": "sha512-LtFd6XIz98BKjxrCRbaz2y0XSmVQSTzrvpAyNzKnzHAMn+4XpIpnzyV3Y6DeHolIBwLjFHFzGKMBwOHOwME4RQ==", + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.2.14.tgz", + "integrity": "sha512-lmTCBiDRbOPtniIqBjm1n5jl1TdyQM0qWQdBcoCsKpMNS/6/RacRcQsJZApAMdWm6gIVuLgmRQzaCLkSoekfYA==", "requires": { "tslib": "^1.9.0" } }, "@angular/router": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.1.4.tgz", - "integrity": "sha512-5VVVcRsmuKrIWPnh5zF1ExXmIpCx2tlisJ7YTS2FFDXnqrZ9i2QgaxyJuyZE+Btg3t7LPF4tkhRQpjauNiHJYA==", + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.2.14.tgz", + "integrity": "sha512-uqg0SKy79voEOIOvzVbCzFDD9XOAfZWkYt01ca2qLFXMx+6jWeVQIDuXc8Dmz5udIXNK5Ae//9R+nt5UZUZrSA==", "requires": { "tslib": "^1.9.0" } @@ -970,12 +1035,6 @@ "ansi-regex": "^3.0.0" } }, - "typescript": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz", - "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==", - "dev": true - }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -1025,55 +1084,144 @@ } }, "@ngtools/webpack": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.1.4.tgz", - "integrity": "sha512-8A15TPJzg3g7yI70QvBzJ253P32WAgCVre9nMaDdd22UmlbvN8Ke4RuQY7vYVTECLL+bWpFJEFXL+ThzCRUgeA==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.3.8.tgz", + "integrity": "sha512-gfjSKz+F/2T4tZHpnQ1XqelKP/CIfI87XdoHsOI53ceTUrAkVKsOb3ULmEfkcdsdQZ/HhmCiLivcutHcW8xkhQ==", "dev": true, "requires": { - "@angular-devkit/core": "7.1.4", + "@angular-devkit/core": "7.3.8", "enhanced-resolve": "4.1.0", "rxjs": "6.3.3", - "tree-kill": "1.2.0", - "webpack-sources": "1.2.0" + "tree-kill": "1.2.1", + "webpack-sources": "1.3.0" }, "dependencies": { - "webpack-sources": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz", - "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==", + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", "dev": true, "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" + "tslib": "^1.9.0" } } } }, "@schematics/angular": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-7.1.4.tgz", - "integrity": "sha512-4QVSmvQtOELek+FDq+k2ROeH9YrRrPJ6jWK179+qOruKSd4uTgEti/jy+fS0rfr52kDSGdDhz7XTh/QvQB89fg==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-7.3.8.tgz", + "integrity": "sha512-7o90bnIxXNpJhWPDY/zCedcG6KMIihz7a4UQe6UdlhEX21MNZLYFiDiR5Vmsx39wjm2EfPh3JTuBIHGmMCXkQQ==", "dev": true, "requires": { - "@angular-devkit/core": "7.1.4", - "@angular-devkit/schematics": "7.1.4", - "typescript": "3.1.6" + "@angular-devkit/core": "7.3.8", + "@angular-devkit/schematics": "7.3.8", + "typescript": "3.2.4" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.8.tgz", + "integrity": "sha512-3X9uzaZXFpm5o2TSzhD6wEOtVU32CgeytKjD1Scxj+uMMVo48SWLlKiFh312T+smI9ko7tOT8VqxglwYkWosgg==", + "dev": true, + "requires": { + "ajv": "6.9.1", + "chokidar": "2.0.4", + "fast-json-stable-stringify": "2.0.0", + "rxjs": "6.3.3", + "source-map": "0.7.3" + } + }, + "ajv": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } } }, "@schematics/update": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.11.4.tgz", - "integrity": "sha512-InfsMJtdWwoqCPmtlJeXBwRPPgIXUzpzIkCCcayRe9gy6PkPUIlOjfgEZ4Mqm/HR46lqsI8xwZfUK7SLV//a2g==", + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.13.8.tgz", + "integrity": "sha512-2jP9w7Nnn24jOdrJtWjoS9LsNPmO9/Eu/+gDxBAVERCqR71mtNW+DopgWDtxleE9jri/pZWrHwShGFCSS7w23g==", "dev": true, "requires": { - "@angular-devkit/core": "7.1.4", - "@angular-devkit/schematics": "7.1.4", + "@angular-devkit/core": "7.3.8", + "@angular-devkit/schematics": "7.3.8", "@yarnpkg/lockfile": "1.1.0", "ini": "1.3.5", - "pacote": "9.1.1", + "pacote": "9.4.0", "rxjs": "6.3.3", - "semver": "5.5.1", + "semver": "5.6.0", "semver-intersect": "1.4.0" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.8.tgz", + "integrity": "sha512-3X9uzaZXFpm5o2TSzhD6wEOtVU32CgeytKjD1Scxj+uMMVo48SWLlKiFh312T+smI9ko7tOT8VqxglwYkWosgg==", + "dev": true, + "requires": { + "ajv": "6.9.1", + "chokidar": "2.0.4", + "fast-json-stable-stringify": "2.0.0", + "rxjs": "6.3.3", + "source-map": "0.7.3" + } + }, + "ajv": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } } }, "@types/d3": { @@ -1343,9 +1491,9 @@ "dev": true }, "@types/jasmine": { - "version": "2.8.16", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.16.tgz", - "integrity": "sha512-056oRlBBp7MDzr+HoU5su099s/s7wjZ3KcHxLfv+Byqb9MwdLUvsfLgw1VS97hsh3ddxSPyQu+olHMnoVTUY6g==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.3.12.tgz", + "integrity": "sha512-lXvr2xFQEVQLkIhuGaR3GC1L9lMU1IxeWnAF/wNY5ZWpC4p9dgxkKkzMp7pntpAdv9pZSnYqgsBkCg32MXSZMg==", "dev": true }, "@types/jasminewd2": { @@ -1382,15 +1530,15 @@ } }, "@types/node": { - "version": "8.9.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.9.5.tgz", - "integrity": "sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ==", + "version": "11.13.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.13.10.tgz", + "integrity": "sha512-leUNzbFTMX94TWaIKz8N15Chu55F9QSH+INKayQr5xpkasBQBRF3qQXfo3/dOnMU/dEIit+Y/SU8HyOjq++GwA==", "dev": true }, "@types/pdfmake": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@types/pdfmake/-/pdfmake-0.1.3.tgz", - "integrity": "sha512-b6/notpoQg/jXnbDMImRj/c7GUDzpvC2DF1gtatJlvQ7JXI4O5t3KlgW5F9xCLjd//7RtyoiTcD8gQshMj1pzQ==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@types/pdfmake/-/pdfmake-0.1.5.tgz", + "integrity": "sha512-BOgOn4zV3NLC1iGhpbEhDyaZ1DeX7Ghn3jUNQVf211ds7SuOmkGEhh8t6gnJetujNzQzlykKsZzh6U/GkMy/VQ==", "dev": true }, "@types/q": { @@ -1405,175 +1553,192 @@ "integrity": "sha512-lMC2G0ItF2xv4UCiwbJGbnJlIuUixHrioOhNGHSCsYCJ8l4t9hMCUimCytvFv7qy6AfSzRxhRHoGa+UqaqwyeA==", "dev": true }, - "@webassemblyjs/ast": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.10.tgz", - "integrity": "sha512-wTUeaByYN2EA6qVqhbgavtGc7fLTOx0glG2IBsFlrFG51uXIGlYBTyIZMf4SPLo3v1bgV/7lBN3l7Z0R6Hswew==", + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/webpack-sources": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.5.tgz", + "integrity": "sha512-zfvjpp7jiafSmrzJ2/i3LqOyTYTuJ7u1KOXlKgDlvsj9Rr0x7ZiYu5lZbXwobL7lmsRNtPXlBfmaUD8eU2Hu8w==", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.7.10", - "@webassemblyjs/helper-wasm-bytecode": "1.7.10", - "@webassemblyjs/wast-parser": "1.7.10" + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + } + }, + "@webassemblyjs/ast": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", + "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.10.tgz", - "integrity": "sha512-gMsGbI6I3p/P1xL2UxqhNh1ga2HCsx5VBB2i5VvJFAaqAjd2PBTRULc3BpTydabUQEGlaZCzEUQhLoLG7TvEYQ==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", + "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.10.tgz", - "integrity": "sha512-DoYRlPWtuw3yd5BOr9XhtrmB6X1enYF0/54yNvQWGXZEPDF5PJVNI7zQ7gkcKfTESzp8bIBWailaFXEK/jjCsw==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", + "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.10.tgz", - "integrity": "sha512-+RMU3dt/dPh4EpVX4u5jxsOlw22tp3zjqE0m3ftU2tsYxnPULb4cyHlgaNd2KoWuwasCQqn8Mhr+TTdbtj3LlA==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", + "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", "dev": true }, "@webassemblyjs/helper-code-frame": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.10.tgz", - "integrity": "sha512-UiytbpKAULOEab2hUZK2ywXen4gWJVrgxtwY3Kn+eZaaSWaRM8z/7dAXRSoamhKFiBh1uaqxzE/XD9BLlug3gw==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", + "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", "dev": true, "requires": { - "@webassemblyjs/wast-printer": "1.7.10" + "@webassemblyjs/wast-printer": "1.7.11" } }, "@webassemblyjs/helper-fsm": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.10.tgz", - "integrity": "sha512-w2vDtUK9xeSRtt5+RnnlRCI7wHEvLjF0XdnxJpgx+LJOvklTZPqWkuy/NhwHSLP19sm9H8dWxKeReMR7sCkGZA==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", + "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", "dev": true }, "@webassemblyjs/helper-module-context": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.10.tgz", - "integrity": "sha512-yE5x/LzZ3XdPdREmJijxzfrf+BDRewvO0zl8kvORgSWmxpRrkqY39KZSq6TSgIWBxkK4SrzlS3BsMCv2s1FpsQ==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", + "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", "dev": true }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.10.tgz", - "integrity": "sha512-u5qy4SJ/OrxKxZqJ9N3qH4ZQgHaAzsopsYwLvoWJY6Q33r8PhT3VPyNMaJ7ZFoqzBnZlCcS/0f4Sp8WBxylXfg==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", + "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.10.tgz", - "integrity": "sha512-Ecvww6sCkcjatcyctUrn22neSJHLN/TTzolMGG/N7S9rpbsTZ8c6Bl98GpSpV77EvzNijiNRHBG0+JO99qKz6g==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", + "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.10", - "@webassemblyjs/helper-buffer": "1.7.10", - "@webassemblyjs/helper-wasm-bytecode": "1.7.10", - "@webassemblyjs/wasm-gen": "1.7.10" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11" } }, "@webassemblyjs/ieee754": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.10.tgz", - "integrity": "sha512-HRcWcY+YWt4+s/CvQn+vnSPfRaD4KkuzQFt5MNaELXXHSjelHlSEA8ZcqT69q0GTIuLWZ6JaoKar4yWHVpZHsQ==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", + "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.10.tgz", - "integrity": "sha512-og8MciYlA8hvzCLR71hCuZKPbVBfLQeHv7ImKZ4nlyxrYbG7uJHYtHiHu6OV9SqrGuD03H/HtXC4Bgdjfm9FHw==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", + "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", "dev": true, "requires": { "@xtuc/long": "4.2.1" } }, "@webassemblyjs/utf8": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.10.tgz", - "integrity": "sha512-Ng6Pxv6siyZp635xCSnH3mKmIFgqWPCcGdoo0GBYgyGdxu7cUj4agV7Uu1a8REP66UYUFXJLudeGgd4RvuJAnQ==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", + "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.10.tgz", - "integrity": "sha512-e9RZFQlb+ZuYcKRcW9yl+mqX/Ycj9+3/+ppDI8nEE/NCY6FoK8f3dKBcfubYV/HZn44b+ND4hjh+4BYBt+sDnA==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", + "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.10", - "@webassemblyjs/helper-buffer": "1.7.10", - "@webassemblyjs/helper-wasm-bytecode": "1.7.10", - "@webassemblyjs/helper-wasm-section": "1.7.10", - "@webassemblyjs/wasm-gen": "1.7.10", - "@webassemblyjs/wasm-opt": "1.7.10", - "@webassemblyjs/wasm-parser": "1.7.10", - "@webassemblyjs/wast-printer": "1.7.10" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/helper-wasm-section": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-opt": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "@webassemblyjs/wast-printer": "1.7.11" } }, "@webassemblyjs/wasm-gen": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.10.tgz", - "integrity": "sha512-M0lb6cO2Y0PzDye/L39PqwV+jvO+2YxEG5ax+7dgq7EwXdAlpOMx1jxyXJTScQoeTpzOPIb+fLgX/IkLF8h2yw==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", + "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.10", - "@webassemblyjs/helper-wasm-bytecode": "1.7.10", - "@webassemblyjs/ieee754": "1.7.10", - "@webassemblyjs/leb128": "1.7.10", - "@webassemblyjs/utf8": "1.7.10" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" } }, "@webassemblyjs/wasm-opt": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.10.tgz", - "integrity": "sha512-R66IHGCdicgF5ZliN10yn5HaC7vwYAqrSVJGjtJJQp5+QNPBye6heWdVH/at40uh0uoaDN/UVUfXK0gvuUqtVg==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", + "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.10", - "@webassemblyjs/helper-buffer": "1.7.10", - "@webassemblyjs/wasm-gen": "1.7.10", - "@webassemblyjs/wasm-parser": "1.7.10" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11" } }, "@webassemblyjs/wasm-parser": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.10.tgz", - "integrity": "sha512-AEv8mkXVK63n/iDR3T693EzoGPnNAwKwT3iHmKJNBrrALAhhEjuPzo/lTE4U7LquEwyvg5nneSNdTdgrBaGJcA==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", + "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.10", - "@webassemblyjs/helper-api-error": "1.7.10", - "@webassemblyjs/helper-wasm-bytecode": "1.7.10", - "@webassemblyjs/ieee754": "1.7.10", - "@webassemblyjs/leb128": "1.7.10", - "@webassemblyjs/utf8": "1.7.10" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" } }, "@webassemblyjs/wast-parser": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.10.tgz", - "integrity": "sha512-YTPEtOBljkCL0VjDp4sHe22dAYSm3ZwdJ9+2NTGdtC7ayNvuip1wAhaAS8Zt9Q6SW9E5Jf5PX7YE3XWlrzR9cw==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", + "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.10", - "@webassemblyjs/floating-point-hex-parser": "1.7.10", - "@webassemblyjs/helper-api-error": "1.7.10", - "@webassemblyjs/helper-code-frame": "1.7.10", - "@webassemblyjs/helper-fsm": "1.7.10", + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/floating-point-hex-parser": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-code-frame": "1.7.11", + "@webassemblyjs/helper-fsm": "1.7.11", "@xtuc/long": "4.2.1" } }, "@webassemblyjs/wast-printer": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.10.tgz", - "integrity": "sha512-mJ3QKWtCchL1vhU/kZlJnLPuQZnlDOdZsyP0bbLWPGdYsQDnSBvyTLhzwBA3QAMlzEL9V4JHygEmK6/OTEyytA==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", + "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.10", - "@webassemblyjs/wast-parser": "1.7.10", + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11", "@xtuc/long": "4.2.1" } }, @@ -1606,10 +1771,11 @@ } }, "abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true, + "optional": true }, "accepts": { "version": "1.3.5", @@ -1627,13 +1793,10 @@ "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" }, "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", - "dev": true, - "requires": { - "acorn": "^5.0.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "dev": true }, "adm-zip": { "version": "0.4.13", @@ -1818,12 +1981,6 @@ "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -2012,16 +2169,16 @@ "dev": true }, "autoprefixer": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.3.1.tgz", - "integrity": "sha512-DY9gOh8z3tnCbJ13JIWaeQsoYncTGdsrgCceBaQSIL4nvdrLxgbRSBPevg2XbX7u4QCSfLheSJEEIUUSlkbx6Q==", + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.4.6.tgz", + "integrity": "sha512-Yp51mevbOEdxDUy5WjiKtpQaecqYq9OqZSL04rSoCiry7Tc5I9FEyo3bfxiTJc1DfHeKwSFCUYbBAiOQ2VGfiw==", "dev": true, "requires": { - "browserslist": "^4.3.3", - "caniuse-lite": "^1.0.30000898", + "browserslist": "^4.4.1", + "caniuse-lite": "^1.0.30000929", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", - "postcss": "^7.0.5", + "postcss": "^7.0.13", "postcss-value-parser": "^3.3.1" } }, @@ -2274,9 +2431,9 @@ } }, "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, "binary-extensions": { @@ -2541,14 +2698,14 @@ } }, "browserslist": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.5.5.tgz", - "integrity": "sha512-0QFO1r/2c792Ohkit5XI8Cm8pDtZxgNl2H6HU4mHrpYz7314pEYcsAVVatM0l/YmxPnEzh9VygXouj4gkFUTKA==", + "version": "4.5.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.5.6.tgz", + "integrity": "sha512-o/hPOtbU9oX507lIqon+UvPYqpx3mHc8cV3QemSBTXwkG8gSQSK6UKvXcE/DcleU3+A59XTUHyCvZ5qGy8xVAg==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000960", - "electron-to-chromium": "^1.3.124", - "node-releases": "^1.1.14" + "caniuse-lite": "^1.0.30000963", + "electron-to-chromium": "^1.3.127", + "node-releases": "^1.1.17" } }, "browserstack": { @@ -2710,9 +2867,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000962", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000962.tgz", - "integrity": "sha512-WXYsW38HK+6eaj5IZR16Rn91TGhU3OhbwjKZvJ4HN/XBIABLKfbij9Mnd3pM0VEwZSlltWjoWg3I8FQ0DGgNOA==", + "version": "1.0.30000967", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000967.tgz", + "integrity": "sha512-rUBIbap+VJfxTzrM4akJ00lkvVb5/n5v3EGXfWzSH5zT8aJmGzjA8HWhJ4U6kCpzxozUSnB+yvAYDRPY6mRpgQ==", "dev": true }, "canonical-path": { @@ -2796,12 +2953,6 @@ "integrity": "sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA==", "dev": true }, - "circular-json": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz", - "integrity": "sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ==", - "dev": true - }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -2954,15 +3105,6 @@ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "dev": true }, - "combine-lists": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", - "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", - "dev": true, - "requires": { - "lodash": "^4.5.0" - } - }, "combined-stream": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", @@ -3188,9 +3330,9 @@ "dev": true }, "copy-webpack-plugin": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.4.tgz", - "integrity": "sha512-0lstlEyj74OAtYMrDxlNZsU7cwFijAI3Ofz2fD6Mpo9r4xCv4yegfa3uHIKvZY1NSuOtE9nvG6TAhJ+uz9gDaQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz", + "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==", "dev": true, "requires": { "cacache": "^10.0.4", @@ -3478,9 +3620,9 @@ } }, "date-format": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz", - "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.0.0.tgz", + "integrity": "sha512-M6UqVvZVgFYqZL1SfHsRGIQSz3ZL+qgbsV5Lp1Vj61LZVYuEwcMXYay7DRDtYs2HQQBK5hQtQ0fD9aEJ89V0LA==", "dev": true }, "date-now": { @@ -3807,9 +3949,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.125", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.125.tgz", - "integrity": "sha512-XxowpqQxJ4nDwUXHtVtmEhRqBpm2OnjBomZmZtHD0d2Eo0244+Ojezhk3sD/MBSSe2nxCdGQFRXHIsf/LUTL9A==", + "version": "1.3.131", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.131.tgz", + "integrity": "sha512-NSO4jLeyGLWrT4mzzfYX8vt1MYCoMI5LxSYAjt0H9+LF/14JyiKJSyyjA6AJTxflZlEM5v3QU33F0ohbPMCAPg==", "dev": true }, "elliptic": { @@ -4118,56 +4260,6 @@ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true }, - "expand-braces": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", - "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", - "dev": true, - "requires": { - "array-slice": "^0.2.3", - "array-unique": "^0.2.1", - "braces": "^0.1.2" - }, - "dependencies": { - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", - "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", - "dev": true, - "requires": { - "expand-range": "^0.1.0" - } - }, - "expand-range": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", - "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", - "dev": true, - "requires": { - "is-number": "^0.1.1", - "repeat-string": "^0.2.2" - } - }, - "is-number": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", - "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=", - "dev": true - }, - "repeat-string": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", - "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=", - "dev": true - } - } - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -4203,57 +4295,6 @@ } } }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "^2.1.0" - }, - "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "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.5" - } - } - } - }, "express": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", @@ -4475,21 +4516,15 @@ } }, "file-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", - "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", + "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", "dev": true, "requires": { "loader-utils": "^1.0.2", "schema-utils": "^1.0.0" } }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, "fileset": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", @@ -4716,6 +4751,17 @@ "null-check": "^1.0.0" } }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, "fs-minipass": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", @@ -5390,42 +5436,6 @@ "path-is-absolute": "^1.0.0" } }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - } - } - }, "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", @@ -5500,9 +5510,9 @@ "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=" }, "handle-thing": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", - "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", + "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", "dev": true }, "handlebars": { @@ -5995,9 +6005,9 @@ "dev": true }, "inquirer": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", - "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz", + "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==", "dev": true, "requires": { "ansi-escapes": "^3.0.0", @@ -6011,7 +6021,7 @@ "run-async": "^2.2.0", "rxjs": "^6.1.0", "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", + "strip-ansi": "^5.0.0", "through": "^2.3.6" }, "dependencies": { @@ -6035,15 +6045,34 @@ "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } } } } @@ -6183,21 +6212,6 @@ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", "dev": true }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "^2.0.0" - } - }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -6290,18 +6304,6 @@ "isobject": "^3.0.1" } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", @@ -6377,99 +6379,6 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, - "istanbul": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", - "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", - "dev": true, - "requires": { - "abbrev": "1.0.x", - "async": "1.x", - "escodegen": "1.8.x", - "esprima": "2.7.x", - "glob": "^5.0.15", - "handlebars": "^4.0.1", - "js-yaml": "3.x", - "mkdirp": "0.5.x", - "nopt": "3.x", - "once": "1.x", - "resolve": "1.1.x", - "supports-color": "^3.1.0", - "which": "^1.1.1", - "wordwrap": "^1.0.0" - }, - "dependencies": { - "escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", - "dev": true, - "requires": { - "esprima": "^2.7.1", - "estraverse": "^1.9.1", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.2.0" - } - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", - "dev": true - }, - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "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 - }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - }, - "source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", - "dev": true, - "optional": true, - "requires": { - "amdefine": ">=0.0.4" - } - }, - "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" - } - } - } - }, "istanbul-api": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.5.tgz", @@ -6773,9 +6682,9 @@ } }, "jasmine-core": { - "version": "2.99.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", - "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.4.0.tgz", + "integrity": "sha512-HU/YxV4i6GcmiH4duATwAbJQMlE0MsDIR5XmSVxURxKHn3aGAdbY1/ZJFmVRbKtnLwIxxMJD7gYaPsypcbYimg==", "dev": true }, "jasmine-spec-reporter": { @@ -6797,8 +6706,7 @@ "version": "2.5.1", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", - "dev": true, - "optional": true + "dev": true }, "js-tokens": { "version": "3.0.2", @@ -6876,10 +6784,22 @@ "dev": true }, "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } }, "jsonify": { "version": "0.0.0", @@ -6926,28 +6846,27 @@ } }, "karma": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/karma/-/karma-3.1.4.tgz", - "integrity": "sha512-31Vo8Qr5glN+dZEVIpnPCxEGleqE0EY6CtC2X9TagRV3rRQ3SNrvfhddICkJgUK3AgqpeKSZau03QumTGhGoSw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/karma/-/karma-4.1.0.tgz", + "integrity": "sha512-xckiDqyNi512U4dXGOOSyLKPwek6X/vUizSy2f3geYevbLj+UIdvNwbn7IwfUIL2g1GXEPWt/87qFD1fBbl/Uw==", "dev": true, "requires": { "bluebird": "^3.3.0", "body-parser": "^1.16.1", + "braces": "^2.3.2", "chokidar": "^2.0.3", "colors": "^1.1.0", - "combine-lists": "^1.0.0", "connect": "^3.6.0", "core-js": "^2.2.0", "di": "^0.0.1", "dom-serialize": "^2.2.0", - "expand-braces": "^0.1.1", "flatted": "^2.0.0", "glob": "^7.1.1", "graceful-fs": "^4.1.2", "http-proxy": "^1.13.0", "isbinaryfile": "^3.0.0", - "lodash": "^4.17.5", - "log4js": "^3.0.0", + "lodash": "^4.17.11", + "log4js": "^4.0.0", "mime": "^2.3.1", "minimatch": "^3.0.2", "optimist": "^0.6.1", @@ -6990,20 +6909,20 @@ } }, "karma-jasmine": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.2.tgz", - "integrity": "sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=", - "dev": true - }, - "karma-jasmine-html-reporter": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz", - "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-2.0.1.tgz", + "integrity": "sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA==", "dev": true, "requires": { - "karma-jasmine": "^1.0.2" + "jasmine-core": "^3.3" } }, + "karma-jasmine-html-reporter": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.4.2.tgz", + "integrity": "sha512-7g0gPj8+9JepCNJR9WjDyQ2RkZ375jpdurYQyAYv8PorUCadepl8vrD6LmMqOGcM17cnrynBawQYZHaumgDjBw==", + "dev": true + }, "karma-source-map-support": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz", @@ -7049,9 +6968,9 @@ } }, "less": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz", - "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/less/-/less-3.9.0.tgz", + "integrity": "sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w==", "dev": true, "requires": { "clone": "^2.1.2", @@ -7102,11 +7021,12 @@ } }, "license-webpack-plugin": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.0.2.tgz", - "integrity": "sha512-GsomZw5VoT20ST8qH2tOjBgbyhn6Pgs9M94g0mbvfBIV1VXufm1iKY+4dbgfTObj1Mp6nSRE3Zf74deOZr0KwA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.0.tgz", + "integrity": "sha512-vDiBeMWxjE9n6TabQ9J4FH8urFdsRK0Nvxn1cit9biCiR9aq1zBR0X2BlAkEiIG6qPamLeU0GzvIgLkrFc398A==", "dev": true, "requires": { + "@types/webpack-sources": "^0.1.5", "webpack-sources": "^1.2.0" } }, @@ -7159,14 +7079,14 @@ "dev": true }, "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", "dev": true, "requires": { - "big.js": "^3.1.3", + "big.js": "^5.2.2", "emojis-list": "^2.0.0", - "json5": "^0.5.0" + "json5": "^1.0.1" } }, "locate-path": { @@ -7229,22 +7149,22 @@ "dev": true }, "log4js": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-3.0.6.tgz", - "integrity": "sha512-ezXZk6oPJCWL483zj64pNkMuY/NcRX5MPiB0zE6tjZM137aeusrOnW1ecxgF9cmwMWkBMhjteQxBPoZBh9FDxQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.1.1.tgz", + "integrity": "sha512-tSQUF9bBMdcBtuLD6vD7hBM9Ci6Lng/NVHZEq4YbuRGo7ObmLiZuhxz33HKAmJItit74pAjvZgirqYX2LRaoGA==", "dev": true, "requires": { - "circular-json": "^0.5.5", - "date-format": "^1.2.0", - "debug": "^3.1.0", + "date-format": "^2.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.0", "rfdc": "^1.1.2", - "streamroller": "0.7.0" + "streamroller": "^1.0.4" }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" @@ -7445,12 +7365,6 @@ "object-visit": "^1.0.0" } }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "dev": true - }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -7595,9 +7509,9 @@ "dev": true }, "mini-css-extract-plugin": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.4.tgz", - "integrity": "sha512-o+Jm+ocb0asEngdM6FsZWtZsRzA8koFUudIDwYUfl94M3PejPHG7Vopw5hN9V8WsMkSFpm3tZP3Fesz89EyrfQ==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz", + "integrity": "sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw==", "dev": true, "requires": { "loader-utils": "^1.1.0", @@ -7841,6 +7755,17 @@ "fast-json-stable-stringify": "2.0.0", "rxjs": "6.3.3", "source-map": "0.7.3" + }, + "dependencies": { + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } } }, "@angular-devkit/schematics": { @@ -7851,6 +7776,17 @@ "requires": { "@angular-devkit/core": "7.3.8", "rxjs": "6.3.3" + }, + "dependencies": { + "rxjs": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } } }, "@schematics/angular": { @@ -8513,18 +8449,18 @@ } }, "node-releases": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.15.tgz", - "integrity": "sha512-cKV097BQaZr8LTSRUa2+oc/aX5L8UkZtPQrMSTgiJEeaW7ymTDCoRaGCoaTqk0lqnalcoSHu4wjSl0Cmj2+bMw==", + "version": "1.1.17", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.17.tgz", + "integrity": "sha512-/SCjetyta1m7YXLgtACZGDYJdCSIBAWorDWkGCGZlydP2Ll7J48l7j/JxNYZ+xsgSPbWfdulVS/aY+GdjUsQ7Q==", "dev": true, "requires": { "semver": "^5.3.0" } }, "node-sass": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.10.0.tgz", - "integrity": "sha512-fDQJfXszw6vek63Fe/ldkYXmRYK/QS6NbvM3i5oEo9ntPDy4XX7BcKZyTKv+/kSSxRtXXc7l+MSwEmYc0CSy6Q==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.11.0.tgz", + "integrity": "sha512-bHUdHTphgQJZaF1LASx0kAviPH7sGlcyNhWade4eVIpFp6tsn7SV8xNMTbsQFpEV9VXpnwTTnNYlfsZXgGgmkA==", "dev": true, "optional": true, "requires": { @@ -8584,6 +8520,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, + "optional": true, "requires": { "abbrev": "1" } @@ -8776,27 +8713,6 @@ "isobject": "^3.0.0" } }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - }, - "dependencies": { - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } - } - }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -8853,10 +8769,19 @@ } } }, + "open": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.0.0.tgz", + "integrity": "sha512-/yb5mVZBz7mHLySMiSj2DcLtMBbFPJk5JBKEkHVZFxZAPzeg3L026O0T+lbdz1B2nyDnkClRSwRQJdeVUIF7zw==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, "opn": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", - "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", "dev": true, "requires": { "is-wsl": "^1.1.0" @@ -8995,17 +8920,17 @@ "dev": true }, "pacote": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.1.1.tgz", - "integrity": "sha512-f28Rq5ozzKAA9YwIKw61/ipwAatUZseYmVssDbHHaexF0wRIVotapVEZPAjOT7Eu3LYVqEp0NVpNizoAnYBUaA==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.4.0.tgz", + "integrity": "sha512-WQ1KL/phGMkedYEQx9ODsjj7xvwLSpdFJJdEXrLyw5SILMxcTNt5DTxT2Z93fXuLFYJBlZJdnwdalrQdB/rX5w==", "dev": true, "requires": { - "bluebird": "^3.5.2", - "cacache": "^11.2.0", + "bluebird": "^3.5.3", + "cacache": "^11.3.2", "figgy-pudding": "^3.5.1", "get-stream": "^4.1.0", "glob": "^7.1.3", - "lru-cache": "^4.1.3", + "lru-cache": "^5.1.1", "make-fetch-happen": "^4.0.1", "minimatch": "^3.0.4", "minipass": "^2.3.5", @@ -9014,7 +8939,7 @@ "normalize-package-data": "^2.4.0", "npm-package-arg": "^6.1.0", "npm-packlist": "^1.1.12", - "npm-pick-manifest": "^2.1.0", + "npm-pick-manifest": "^2.2.3", "npm-registry-fetch": "^3.8.0", "osenv": "^0.1.5", "promise-inflight": "^1.0.1", @@ -9024,7 +8949,7 @@ "safe-buffer": "^5.1.2", "semver": "^5.6.0", "ssri": "^6.0.1", - "tar": "^4.4.6", + "tar": "^4.4.8", "unique-filename": "^1.1.1", "which": "^1.3.1" }, @@ -9049,17 +8974,6 @@ "ssri": "^6.0.1", "unique-filename": "^1.1.1", "y18n": "^4.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - } } }, "get-stream": { @@ -9071,6 +8985,15 @@ "pump": "^3.0.0" } }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, "mississippi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", @@ -9167,35 +9090,6 @@ "safe-buffer": "^5.1.1" } }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - } - } - }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -9311,9 +9205,9 @@ } }, "pdfkit": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/pdfkit/-/pdfkit-0.9.0.tgz", - "integrity": "sha512-j/tJvvoEM7qMiOfodNkz6XRNBvAhVohWP1mUvgg+Xy8X8S3aMBpVGXJGZWNCoCUH2ywLidZSbHyn5mJaqv9umw==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/pdfkit/-/pdfkit-0.9.1.tgz", + "integrity": "sha512-45X/NjaynHVNd/866ETK9KmblL8Sqwmah1RPz04IzmZoEO+cvPid2UvkVfZQcS4Jeq/uWY+99qAq04NoigzWSA==", "requires": { "crypto-js": "^3.1.9-1", "fontkit": "^1.0.0", @@ -9323,13 +9217,13 @@ } }, "pdfmake": { - "version": "0.1.54", - "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.1.54.tgz", - "integrity": "sha512-HO2FX+czmO+8LpWXQMFQfdUCCKnqwSvSEJExGkUKfsV34DRIV5PZjNg0xWS7ypGrnTY6RTTssWpdreX/pbyeyw==", + "version": "0.1.56", + "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.1.56.tgz", + "integrity": "sha512-c5fSj16VTQCrmTw02Mc+Oj3boRG+PGJuu7cGXAXXljI3bMNDifwmUs+3opEwRZbTWu9WhFKYbrs2Iq136UN/NQ==", "requires": { "iconv-lite": "^0.4.24", "linebreak": "^0.3.0", - "pdfkit": "^0.9.0" + "pdfkit": "^0.9.1" } }, "performance-now": { @@ -9380,9 +9274,9 @@ "integrity": "sha1-HMfCEjA6yr50Jj7DrHgAlYAkLZM=" }, "portfinder": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.17.tgz", - "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==", + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz", + "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==", "dev": true, "requires": { "async": "^1.5.2", @@ -9397,20 +9291,31 @@ "dev": true }, "postcss": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.5.tgz", - "integrity": "sha512-HBNpviAUFCKvEh7NZhw1e8MBPivRszIiUnhrJ+sBFVSYSqubrzwX3KG51mYgcRHX8j/cAgZJedONZcm5jTBdgQ==", + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", + "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", "dev": true, "requires": { - "chalk": "^2.4.1", + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "postcss-import": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.0.tgz", - "integrity": "sha512-3KqKRZcaZAvxbY8DVLdd81tG5uKzbUQuiWIvy0o0fzEC42bKacqPYFWbfCQyw6L4LWUaqPz/idvIdbhpgQ32eQ==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", "dev": true, "requires": { "postcss": "^7.0.1", @@ -9452,16 +9357,10 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, "prettier": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.15.3.tgz", - "integrity": "sha512-gAU9AGAPMaKb3NNSUUuhhFAS7SCO4ALTN4nRIn6PJ075Qd28Yn2Ig2ahEJWdJwJmlEBTUfC7mMUSFy8MwsOCfg==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.17.0.tgz", + "integrity": "sha512-sXe5lSt2WQlCbydGETgfm1YBShgOX4HxQkFPvbxkcwgDvGDeqVau8h+12+lmSVlP3rHPz0oavfddSZg/q+Szjw==", "dev": true }, "process": { @@ -9735,9 +9634,9 @@ "dev": true }, "quicktype": { - "version": "15.0.184", - "resolved": "https://registry.npmjs.org/quicktype/-/quicktype-15.0.184.tgz", - "integrity": "sha512-11JCldUStYDJMECFiC9t3Lya6n8RJs3iaA7JGHbbwE07KmJT2Yw9bFNZB3HwlbT3iRdlUOASqDWJEjffya8ptg==", + "version": "15.0.187", + "resolved": "https://registry.npmjs.org/quicktype/-/quicktype-15.0.187.tgz", + "integrity": "sha512-eiUwUuLSXTd+7FhjMK6dz4/bywxbzBdyR9uqcmuyuFfjlcGFdw7i28ILqJpzuAT+SSF9aqLXgdnnxMkatJEgDA==", "dev": true, "requires": { "@mark.probst/typescript-json-schema": "~0.32.0", @@ -9760,6 +9659,14 @@ "uuid": "^3.2.1", "wordwrap": "^1.0.0", "yaml": "^1.5.0" + }, + "dependencies": { + "pako": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "dev": true + } } }, "quote-stream": { @@ -9772,25 +9679,6 @@ "through2": "^2.0.0" } }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "dev": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "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 - } - } - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -9840,10 +9728,14 @@ } }, "raw-loader": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-1.0.0.tgz", + "integrity": "sha512-Uqy5AqELpytJTRxYT4fhltcKPj0TyaEpzJDcGz7DFJi+pQOOi3GjR/DOdxTkTsF+NzhnldIoG6TORaBlInUuqA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + } }, "read-cache": { "version": "1.0.0", @@ -9997,15 +9889,6 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "^0.1.3" - } - }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -10232,9 +10115,9 @@ } }, "rxjs": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", - "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.1.tgz", + "integrity": "sha512-y0j31WJc83wPu31vS1VlAFW5JGrnGC+j+TtGAa1fRQphy48+fDYiDmX8tjGloToEsMkxnouOg/1IzXGKkJnZMg==", "requires": { "tslib": "^1.9.0" } @@ -10975,38 +10858,81 @@ "dev": true }, "spdy": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", - "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.0.tgz", + "integrity": "sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q==", "dev": true, "requires": { - "debug": "^2.6.8", - "handle-thing": "^1.2.5", + "debug": "^4.1.0", + "handle-thing": "^2.0.0", "http-deceiver": "^1.2.7", - "safe-buffer": "^5.0.1", "select-hose": "^2.0.0", - "spdy-transport": "^2.0.18" + "spdy-transport": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } } }, "spdy-transport": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.1.tgz", - "integrity": "sha512-q7D8c148escoB3Z7ySCASadkegMmUZW8Wb/Q1u0/XBgDKMO880rLQDj8Twiew/tYi7ghemKUi/whSYOwE17f5Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, "requires": { - "debug": "^2.6.8", - "detect-node": "^2.0.3", + "debug": "^4.1.0", + "detect-node": "^2.0.4", "hpack.js": "^2.1.6", - "obuf": "^1.1.1", - "readable-stream": "^2.2.9", - "safe-buffer": "^5.0.1", - "wbuf": "^1.7.2" + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "readable-stream": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz", + "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "speed-measure-webpack-plugin": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.2.3.tgz", - "integrity": "sha512-p+taQ69VkRUXYMoZOx2nxV/Tz8tt79ahctoZJyJDHWP7fEYvwFNf5Pd73k5kZ6auu0pTsPNLEUwWpM8mCk85Zw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.1.tgz", + "integrity": "sha512-qVIkJvbtS9j/UeZumbdfz0vg+QfG/zxonAjzefZrqzkr7xOncLVXkeGbTpzd1gjCBM4PmVNkWlkeTVhgskAGSQ==", "dev": true, "requires": { "chalk": "^2.0.1" @@ -11183,17 +11109,27 @@ "dev": true }, "streamroller": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz", - "integrity": "sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.4.tgz", + "integrity": "sha512-Wc2Gm5ygjSX8ZpW9J7Y9FwiSzTlKSvcl0FTTMd3rn7RoxDXpBW+xD9TY5sWL2n0UR61COB0LG1BQvN6nTUQbLQ==", "dev": true, "requires": { - "date-format": "^1.2.0", + "async": "^2.6.1", + "date-format": "^2.0.0", "debug": "^3.1.0", - "mkdirp": "^0.5.1", - "readable-stream": "^2.3.0" + "fs-extra": "^7.0.0", + "lodash": "^4.17.10" }, "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "dev": true, + "requires": { + "lodash": "^4.17.11" + } + }, "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", @@ -11405,9 +11341,9 @@ } }, "terser-webpack-plugin": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz", - "integrity": "sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.2.tgz", + "integrity": "sha512-1DMkTk286BzmfylAvLXwpJrI7dWa5BnFmscV/2dCr8+c56egFcbaeFAl7+sujAjdmpLam21XRdhA4oifLyiWWg==", "dev": true, "requires": { "cacache": "^11.0.2", @@ -11415,7 +11351,7 @@ "schema-utils": "^1.0.0", "serialize-javascript": "^1.4.0", "source-map": "^0.6.1", - "terser": "^3.8.1", + "terser": "^3.16.1", "webpack-sources": "^1.1.0", "worker-farm": "^1.5.2" }, @@ -11724,9 +11660,9 @@ } }, "tree-kill": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", - "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz", + "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==", "dev": true }, "trim-newlines": { @@ -11779,23 +11715,24 @@ "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" }, "tslint": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz", - "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.16.0.tgz", + "integrity": "sha512-UxG2yNxJ5pgGwmMzPMYh/CCnCnh0HfPgtlVRDs1ykZklufFBL1ZoTlWFRz2NQjcoEiDoRp+JyT0lhBbbH/obyA==", "dev": true, "requires": { - "babel-code-frame": "^6.22.0", + "@babel/code-frame": "^7.0.0", "builtin-modules": "^1.1.1", "chalk": "^2.3.0", "commander": "^2.12.1", "diff": "^3.2.0", "glob": "^7.1.1", - "js-yaml": "^3.7.0", + "js-yaml": "^3.13.0", "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", "resolve": "^1.3.2", "semver": "^5.3.0", "tslib": "^1.8.0", - "tsutils": "^2.27.2" + "tsutils": "^2.29.0" } }, "tsutils": { @@ -11852,9 +11789,9 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typescript": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz", - "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz", + "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==", "dev": true }, "typical": { @@ -11874,50 +11811,6 @@ "source-map": "~0.6.1" } }, - "uglifyjs-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", - "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", - "dev": true, - "requires": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "schema-utils": "^0.4.5", - "serialize-javascript": "^1.4.0", - "source-map": "^0.6.1", - "uglify-es": "^3.3.4", - "webpack-sources": "^1.1.0", - "worker-farm": "^1.5.2" - }, - "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - }, - "uglify-es": { - "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", - "source-map": "~0.6.1" - } - } - } - }, "ultron": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", @@ -11995,6 +11888,12 @@ "imurmurhash": "^0.1.4" } }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -12225,17 +12124,17 @@ } }, "webpack": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.23.1.tgz", - "integrity": "sha512-iE5Cu4rGEDk7ONRjisTOjVHv3dDtcFfwitSxT7evtYj/rANJpt1OuC/Kozh1pBa99AUBr1L/LsaNB+D9Xz3CEg==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.29.0.tgz", + "integrity": "sha512-pxdGG0keDBtamE1mNvT5zyBdx+7wkh6mh7uzMOo/uRQ/fhsdj5FXkh/j5mapzs060forql1oXqXN9HJGju+y7w==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.10", - "@webassemblyjs/helper-module-context": "1.7.10", - "@webassemblyjs/wasm-edit": "1.7.10", - "@webassemblyjs/wasm-parser": "1.7.10", - "acorn": "^5.6.2", - "acorn-dynamic-import": "^3.0.0", + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/wasm-edit": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "acorn": "^6.0.5", + "acorn-dynamic-import": "^4.0.0", "ajv": "^6.1.0", "ajv-keywords": "^3.1.0", "chrome-trace-event": "^1.0.0", @@ -12251,11 +12150,17 @@ "node-libs-browser": "^2.0.0", "schema-utils": "^0.4.4", "tapable": "^1.1.0", - "uglifyjs-webpack-plugin": "^1.2.4", + "terser-webpack-plugin": "^1.1.0", "watchpack": "^1.5.0", "webpack-sources": "^1.3.0" }, "dependencies": { + "acorn": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", + "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", + "dev": true + }, "schema-utils": { "version": "0.4.7", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", @@ -12296,9 +12201,9 @@ } }, "webpack-dev-middleware": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz", - "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.5.1.tgz", + "integrity": "sha512-4dwCh/AyMOYAybggUr8fiCkRnjVDp+Cqlr9c+aaNB3GJYgRGYQWJ1YX/WAKUNA9dPNHZ6QSN2lYDKqjKSI8Vqw==", "dev": true, "requires": { "memory-fs": "~0.4.1", @@ -12316,9 +12221,9 @@ } }, "webpack-dev-server": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.10.tgz", - "integrity": "sha512-RqOAVjfqZJtQcB0LmrzJ5y4Jp78lv9CK0MZ1YJDTaTmedMZ9PU9FLMQNrMCfVu8hHzaVLVOJKBlGEHMN10z+ww==", + "version": "3.1.14", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz", + "integrity": "sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ==", "dev": true, "requires": { "ansi-html": "0.0.7", @@ -12340,12 +12245,14 @@ "portfinder": "^1.0.9", "schema-utils": "^1.0.0", "selfsigned": "^1.9.1", + "semver": "^5.6.0", "serve-index": "^1.7.2", "sockjs": "0.3.19", "sockjs-client": "1.3.0", - "spdy": "^3.4.1", + "spdy": "^4.0.0", "strip-ansi": "^3.0.0", "supports-color": "^5.1.0", + "url": "^0.11.0", "webpack-dev-middleware": "3.4.0", "webpack-log": "^2.0.0", "yargs": "12.0.2" @@ -12480,6 +12387,12 @@ "path-exists": "^3.0.0" } }, + "mime": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.2.tgz", + "integrity": "sha512-zJBfZDkwRu+j3Pdd2aHsR5GfH2jIWhmL1ZzBoc+X+3JEti2hbArWcyJ+1laC1D2/U/W1a/+Cegj0/OnEU2ybjg==", + "dev": true + }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", @@ -12531,6 +12444,12 @@ "once": "^1.3.1" } }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -12552,6 +12471,18 @@ } } }, + "webpack-dev-middleware": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz", + "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==", + "dev": true, + "requires": { + "memory-fs": "~0.4.1", + "mime": "^2.3.1", + "range-parser": "^1.0.3", + "webpack-log": "^2.0.0" + } + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -12600,9 +12531,9 @@ } }, "webpack-merge": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.4.tgz", - "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz", + "integrity": "sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==", "dev": true, "requires": { "lodash": "^4.17.5" @@ -12691,9 +12622,9 @@ } }, "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", "dev": true, "requires": { "errno": "~0.1.7" @@ -12780,12 +12711,12 @@ "dev": true }, "yaml": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.5.0.tgz", - "integrity": "sha512-nKxSWOa7vxAP2pikrGxbkZsG/garQseRiLn9mIDjzwoQsyVy7ZWIpLoARejnINGGLA4fttuzRFFNxxbsztdJgw==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.5.1.tgz", + "integrity": "sha512-btfJvMOgVthGZSgHBMrDkLuQu4YxOycw6kwuC67cUEOKJmmNozjIa02eKvuSq7usqqqpwwCvflGTF6JcDvSudw==", "dev": true, "requires": { - "@babel/runtime": "^7.4.3" + "@babel/runtime": "^7.4.4" } }, "yargs": { diff --git a/package.json b/package.json index 5358bac7..6549fc8b 100644 --- a/package.json +++ b/package.json @@ -6,26 +6,28 @@ "start": "ng serve --port 8000", "build": "ng build --prod --extraWebpackConfig webpack.extra.js", "test": "ng test", + "test-silent": "ng test --watch=false --browsers ChromeHeadless", "lint": "ng lint", "e2e": "ng e2e", - "prettier": "prettier \"**/*.{html,js,ts,css,md,json,prettierrc,svg}\" --write", - "check": "prettier \"**/*.{html,js,ts,css,md,json,prettierrc,svg}\" --list-different", + "prettier": "prettier \"**/*.{html,js,ts,css,scss,md,json,prettierrc,svg}\"", + "prettify": "npm run prettier -- --write", + "check": "npm run prettier -- --list-different", "quicktype": "quicktype -s schema --just-types" }, "private": true, "dependencies": { - "@angular/animations": "~7.1.0", - "@angular/cdk": "~7.1.0", - "@angular/common": "~7.1.0", - "@angular/compiler": "~7.1.0", - "@angular/core": "~7.1.0", - "@angular/flex-layout": "^7.0.0-beta.19", - "@angular/forms": "~7.1.0", - "@angular/material": "~7.1.0", - "@angular/material-moment-adapter": "~7.1.0", - "@angular/platform-browser": "~7.1.0", - "@angular/platform-browser-dynamic": "~7.1.0", - "@angular/router": "~7.1.0", + "@angular/animations": "~7.2.14", + "@angular/cdk": "~7.3.7", + "@angular/common": "~7.2.14", + "@angular/compiler": "~7.2.14", + "@angular/core": "~7.2.14", + "@angular/flex-layout": "^7.0.0-beta.24", + "@angular/forms": "~7.2.14", + "@angular/material": "~7.3.7", + "@angular/material-moment-adapter": "~7.3.7", + "@angular/platform-browser": "~7.2.14", + "@angular/platform-browser-dynamic": "~7.2.14", + "@angular/router": "~7.2.14", "core-js": "^2.5.4", "d3-axis": "^1.0.12", "d3-scale": "^2.1.2", @@ -34,39 +36,39 @@ "hammerjs": "^2.0.8", "keycloak-angular": "^6.1.0", "lodash.get": "^4.4.2", - "moment": "^2.22.2", - "pdfmake": "^0.1.54", - "rxjs": "~6.3.3", + "moment": "^2.24.0", + "pdfmake": "^0.1.56", + "rxjs": "~6.5.1", "ts-keycode-enum": "^1.0.6", "tslib": "^1.9.0", "zone.js": "~0.8.26" }, "devDependencies": { - "@angular-devkit/build-angular": "~0.11.0", - "@angular/cli": "~7.1.0", - "@angular/compiler-cli": "~7.1.0", - "@angular/language-service": "~7.1.0", + "@angular-devkit/build-angular": "~0.13.8", + "@angular/cli": "~7.3.8", + "@angular/compiler-cli": "~7.2.14", + "@angular/language-service": "~7.2.14", "@types/d3": "^5.7.0", - "@types/jasmine": "~2.8.8", - "@types/jasminewd2": "~2.0.3", + "@types/jasmine": "~3.3.12", + "@types/jasminewd2": "~2.0.6", "@types/lodash.get": "^4.4.6", "@types/moment": "^2.13.0", - "@types/node": "~8.9.4", - "@types/pdfmake": "^0.1.3", + "@types/node": "^11.13.10", + "@types/pdfmake": "^0.1.5", "codelyzer": "~4.5.0", - "jasmine-core": "~2.99.1", + "jasmine-core": "~3.4.0", "jasmine-spec-reporter": "~4.2.1", - "karma": "~3.1.1", + "karma": "~4.1.0", "karma-chrome-launcher": "~2.2.0", - "karma-coverage-istanbul-reporter": "~2.0.1", - "karma-jasmine": "~1.1.2", - "karma-jasmine-html-reporter": "^0.2.2", + "karma-coverage-istanbul-reporter": "~2.0.5", + "karma-jasmine": "~2.0.1", + "karma-jasmine-html-reporter": "^1.4.2", "ngx-build-plus": "^7.2.3", - "prettier": "~1.15.2", - "protractor": "~5.4.0", - "quicktype": "^15.0.184", + "prettier": "~1.17.0", + "protractor": "~5.4.2", + "quicktype": "^15.0.187", "ts-node": "~7.0.0", - "tslint": "~5.11.0", - "typescript": "~3.1.6" + "tslint": "~5.16.0", + "typescript": "~3.2.4" } } diff --git a/src/app/actionbar/actionbar.component.ts b/src/app/actionbar/actionbar.component.ts index 409698e6..7bee37cd 100644 --- a/src/app/actionbar/actionbar.component.ts +++ b/src/app/actionbar/actionbar.component.ts @@ -1,4 +1,5 @@ import { Component, ViewChild } from '@angular/core'; + import { DropdownTriggerDirective } from '../dropdown/dropdown-trigger.directive'; @Component({ diff --git a/src/app/analytics/analytics.component.scss b/src/app/analytics/analytics.component.scss deleted file mode 100644 index 42d711f6..00000000 --- a/src/app/analytics/analytics.component.scss +++ /dev/null @@ -1,11 +0,0 @@ -@import '../../styles/variables.scss'; -@import '../../styles/mixins.scss'; - -.container { - @include fullscreen(); - background-color: $background-color; -} - -.content { - @include content($content-padding, $content-max-width); -} diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 36717611..4b3dbd2a 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -3,36 +3,18 @@ import { NgModule, APP_INITIALIZER } from '@angular/core'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { KeycloakService } from './auth/keycloak-stub'; -import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; -import { MainModule } from './main'; -import { PartyMngModule } from './party-mgt'; -import { DetailsModule } from './details'; -import { PageNotFoundModule } from './page-not-found'; import { IconRegistryService } from './icon-registry.service'; -import { AnalyticsModule } from './analytics/analytics.module'; import { AuthModule } from './auth'; import { initializer } from './initializer'; -import { TableModule } from './table'; import { APIModule } from './api/api.module'; import { ConfigService } from './config/config.service'; +import { SectionsModule } from './sections/sections.module'; +import { RouterModule } from '@angular/router'; @NgModule({ declarations: [AppComponent], - imports: [ - BrowserModule, - BrowserAnimationsModule, - AppRoutingModule, - MainModule, - PartyMngModule, - AnalyticsModule, - DetailsModule, - PageNotFoundModule, - TableModule, - PageNotFoundModule, - APIModule, - AuthModule - ], + imports: [BrowserModule, BrowserAnimationsModule, RouterModule, SectionsModule, APIModule, AuthModule], providers: [ IconRegistryService, ConfigService, diff --git a/src/app/charts/bar-chart/_bar-chart-theme.scss b/src/app/charts/bar-chart/_bar-chart-theme.scss index 24452704..32797ea0 100644 --- a/src/app/charts/bar-chart/_bar-chart-theme.scss +++ b/src/app/charts/bar-chart/_bar-chart-theme.scss @@ -4,7 +4,9 @@ $background: map-get($theme, background); $foreground: map-get($theme, foreground); - .x.axis > .tick:first-of-type > text, .x.axis > .tick:last-of-type > text, .tick > line { + .x.axis > .tick:first-of-type > text, + .x.axis > .tick:last-of-type > text, + .tick > line { color: mat-color($foreground, divider); } diff --git a/src/app/charts/bar-chart/bar-chart.component.scss b/src/app/charts/bar-chart/bar-chart.component.scss index d046059c..090a8fd0 100644 --- a/src/app/charts/bar-chart/bar-chart.component.scss +++ b/src/app/charts/bar-chart/bar-chart.component.scss @@ -1,5 +1,6 @@ @import '../../../styles/variables'; -.y.axis > path, .x.axis > path { +.y.axis > path, +.x.axis > path { color: transparent; } diff --git a/src/app/components/table/_table-theme.scss b/src/app/components/table/_table-theme.scss deleted file mode 100644 index 7cf6ee68..00000000 --- a/src/app/components/table/_table-theme.scss +++ /dev/null @@ -1,52 +0,0 @@ -@import '~@angular/material/theming'; - -@mixin dsh-table-theme($theme) { - $background: map-get($theme, background); - $foreground: map-get($theme, foreground); - - .dsh { - &-table { - background: mat-color($background, card); - - & thead, & tbody, & tfoot, - mat-header-row, mat-row, mat-footer-row, - [dsh-header-row], [dsh-row], [dsh-footer-row], - .dsh-table-sticky { - background: inherit; - } - - & thead { - background: mat-color($background, background); - } - } - - &-header-cell { - color: mat-color($foreground, secondary-text); - } - - &-cell, &-footer-cell { - color: mat-color($foreground, text); - } - - &-row, &-header-row, &-footer-row { - border-bottom-color: mat-color($foreground, divider); - } - } -} - -@mixin dsh-table-typography($config) { - .dsh { - &-table { - font-family: mat-font-family($config); - } - - &-header-cell { - font-size: mat-font-size($config, caption); - font-weight: mat-font-weight($config, body-2); - } - - &-cell, &-footer-cell { - font-size: mat-font-size($config, body-1); - } - } -} diff --git a/src/app/components/table/index.ts b/src/app/components/table/index.ts deleted file mode 100644 index 7e1a213e..00000000 --- a/src/app/components/table/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './public-api'; diff --git a/src/app/components/table/table.module.ts b/src/app/components/table/table.module.ts deleted file mode 100644 index 9d4c2683..00000000 --- a/src/app/components/table/table.module.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { NgModule } from '@angular/core'; -import { DshTableComponent } from './table'; -import { CdkTableModule } from '@angular/cdk/table'; -import { - DshCellDefDirective, - DshCellDirective, - DshColumnDefDirective, - DshFooterCellDefDirective, - DshFooterCellDirective, - DshHeaderCellDefDirective, - DshHeaderCellDirective -} from './cell'; -import { - DshFooterRowComponent, - DshFooterRowDefDirective, - DshHeaderRowComponent, - DshHeaderRowDefDirective, - DshRowComponent, - DshRowDefDirective -} from './row'; -import { CommonModule } from '@angular/common'; -import { MatTableModule } from '@angular/material'; - -const EXPORTED_DECLARATIONS = [ - DshTableComponent, - DshHeaderCellDefDirective, - DshHeaderRowDefDirective, - DshColumnDefDirective, - DshCellDefDirective, - DshRowDefDirective, - DshFooterCellDefDirective, - DshFooterRowDefDirective, - DshHeaderCellDirective, - DshCellDirective, - DshFooterCellDirective, - DshHeaderRowComponent, - DshRowComponent, - DshFooterRowComponent -]; - -@NgModule({ - imports: [CdkTableModule, CommonModule, MatTableModule], - exports: EXPORTED_DECLARATIONS, - declarations: EXPORTED_DECLARATIONS -}) -export class DshTableModule {} diff --git a/src/app/components/table/table.scss b/src/app/components/table/table.scss deleted file mode 100644 index 86ecb641..00000000 --- a/src/app/components/table/table.scss +++ /dev/null @@ -1,94 +0,0 @@ -@import '../../../styles/variables'; - -$dsh-header-row-height: 56px; -$dsh-row-height: 48px; -$dsh-row-horizontal-padding: 24px; - -.dsh { - &-table { - display: block; - border-radius: 5px; - padding: 0; - border-spacing: 0; - - thead, - tbody, - tfoot { - display: block; - } - - thead { - border-radius: 5px; - } - } - - &-header-row { - min-height: $dsh-header-row-height; - } - - &-row, &-footer-row { - min-height: $dsh-row-height; - } - - &-row, &-header-row, &-footer-row { - display: flex; - border-width: 0; - align-items: center; - box-sizing: border-box; - - &::after { - display: inline-block; - min-height: inherit; - content: ''; - } - } - - &-row, &-footer-row { - border-bottom-width: 1px; - border-style: solid; - } - - &-cell:first-of-type, &-header-cell:first-of-type, &-footer-cell:first-of-type { - padding-left: $dsh-row-horizontal-padding; - - [dir='rtl'] & { - padding-left: 0; - padding-right: $dsh-row-horizontal-padding; - } - } - - &-cell:last-of-type, &-header-cell:last-of-type, &-footer-cell:last-of-type { - padding-right: $dsh-row-horizontal-padding; - - [dir='rtl'] & { - padding-right: 0; - padding-left: $dsh-row-horizontal-padding; - } - } - - &-cell, &-header-cell, &-footer-cell { - flex: 1; - display: flex; - align-items: center; - overflow: hidden; - word-wrap: break-word; - min-height: inherit; - padding: 0; - } - - &-header-row { - height: $dsh-header-row-height; - } - - &-row, &-footer-row { - height: $dsh-row-height; - } - - &-header-cell { - text-align: left; - - [dir='rtl'] & { - text-align: right; - } - } -} diff --git a/src/app/config/config-stub.service.ts b/src/app/config/config-stub.service.ts new file mode 100644 index 00000000..f1ffe487 --- /dev/null +++ b/src/app/config/config-stub.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; + +import { config as appConfig } from './config-stub'; +import { Config } from './config'; + +@Injectable() +export class ConfigStubService implements Config { + api: Config['api']; + daData: Config['daData']; + konturFocus: Config['konturFocus']; + + constructor() { + for (const [name, config] of Object.entries(appConfig)) { + this[name] = config; + } + } + + async init() {} +} diff --git a/src/app/config/config-stub.ts b/src/app/config/config-stub.ts new file mode 100644 index 00000000..85af3032 --- /dev/null +++ b/src/app/config/config-stub.ts @@ -0,0 +1,22 @@ +import { HttpTestingController } from '@angular/common/http/testing'; + +import { Config } from './config'; + +export const config: Config = { + api: { + capiEndpoint: 'http://localhost:8000' + }, + daData: { + token: 'Token XXX', + suggestionsApiUrl: 'https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest' + }, + konturFocus: { + apiV3Url: 'https://focus-api.kontur.ru/api3' + } +}; + +export function mockConfig(httpMock: HttpTestingController) { + const req = httpMock.expectOne('/assets/appConfig.json'); + req.flush(config); + return req; +} diff --git a/src/app/config/config.service.ts b/src/app/config/config.service.ts index 8cc77407..82135ff5 100644 --- a/src/app/config/config.service.ts +++ b/src/app/config/config.service.ts @@ -1,9 +1,7 @@ import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; -type AppConfig = typeof import('../../assets/appConfig.json'); -// tslint:disable-next-line:no-empty-interface -interface Config extends AppConfig {} +import { Config } from './config'; @Injectable() export class ConfigService implements Config { diff --git a/src/app/config/config.spec.ts b/src/app/config/config.spec.ts new file mode 100644 index 00000000..e526b6f3 --- /dev/null +++ b/src/app/config/config.spec.ts @@ -0,0 +1,29 @@ +import { TestBed, getTestBed } from '@angular/core/testing'; +import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; + +import { ConfigService } from './config.service.js'; +import { mockConfig, config } from './config-stub.js'; + +describe('ConfigService', () => { + function createService() { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + providers: [ConfigService] + }); + const injector = getTestBed(); + const service: ConfigService = injector.get(ConfigService); + const httpMock: HttpTestingController = injector.get(HttpTestingController); + return { injector, service, httpMock }; + } + + it('should load config', () => { + const { service, httpMock } = createService(); + service.init().then(() => { + for (const [k, v] of Object.entries(config)) { + expect(service[k]).toEqual(v); + } + }); + const req = mockConfig(httpMock); + expect(req.request.method).toBe('GET'); + }); +}); diff --git a/src/app/config/config.ts b/src/app/config/config.ts new file mode 100644 index 00000000..f919c677 --- /dev/null +++ b/src/app/config/config.ts @@ -0,0 +1,5 @@ +type AppConfig = typeof import('../../assets/appConfig.json'); + +// Interface is needed so that you can implement in the class +// tslint:disable-next-line:no-empty-interface +export interface Config extends AppConfig {} diff --git a/src/app/dadata/dadata.spec.ts b/src/app/dadata/dadata.spec.ts index 8e7b41fa..274c38eb 100644 --- a/src/app/dadata/dadata.spec.ts +++ b/src/app/dadata/dadata.spec.ts @@ -8,6 +8,8 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { DaDataModule } from './dadata.module'; import { DaDataService } from './dadata.service'; import { SuggestionType } from './model/type'; +import { ConfigService } from '../config/config.service'; +import { ConfigStubService } from '../config/config-stub.service'; @Component({ template: ` @@ -30,11 +32,6 @@ class SimpleDaDataAutocompleteComponent { } describe('DshDadata', () => { - const config = { - token: 'Token AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', - suggestionsApiUrl: 'https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest' - }; - const suggestions = { suggestions: [ { @@ -93,7 +90,7 @@ describe('DshDadata', () => { function createDaDataService() { TestBed.configureTestingModule({ imports: [HttpClientTestingModule], - providers: [DaDataService] + providers: [DaDataService, { provide: ConfigService, useClass: ConfigStubService }] }); const injector = getTestBed(); const service: DaDataService = injector.get(DaDataService); @@ -109,17 +106,15 @@ describe('DshDadata', () => { TestBed.configureTestingModule({ imports: [DaDataModule, MatFormFieldModule, ReactiveFormsModule, NoopAnimationsModule], declarations: [component, ...declarations], - providers: [{ provide: ComponentFixtureAutoDetect, useValue: true }, ...providers] + providers: [ + { provide: ComponentFixtureAutoDetect, useValue: true }, + { provide: ConfigService, useClass: ConfigStubService }, + ...providers + ] }).compileComponents(); return TestBed.createComponent(component); } - function mockConfig(httpMock: HttpTestingController) { - const req = httpMock.expectOne('/assets/dadata-config.json'); - req.flush(config); - return req; - } - describe('Component', () => { it('should init value', () => { const fixture = createComponent(SimpleDaDataAutocompleteComponent); @@ -128,26 +123,14 @@ describe('DshDadata', () => { }); describe('Service', () => { - it('should load config', () => { - const { service, httpMock } = createDaDataService(); - service.config$.subscribe(c => { - expect(c).toEqual(config); - }); - const req = mockConfig(httpMock); - expect(req.request.method).toBe('GET'); - }); - it('should load suggestions', () => { const { service, httpMock } = createDaDataService(); - service.config$.subscribe(() => { - service.getSuggestions(SuggestionType.party, 'тест').subscribe(s => { - expect(s).toEqual(suggestions.suggestions as any); - }); - const req = httpMock.expectOne('https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party'); - req.flush(suggestions); - expect(req.request.method).toBe('POST'); + service.getSuggestions(SuggestionType.party, 'тест').subscribe(s => { + expect(s).toEqual(suggestions.suggestions as any); }); - mockConfig(httpMock); + const req = httpMock.expectOne('https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party'); + req.flush(suggestions); + expect(req.request.method).toBe('POST'); }); }); }); diff --git a/src/app/dropdown/dropdown-trigger.directive.ts b/src/app/dropdown/dropdown-trigger.directive.ts index f1a63d65..be75aed0 100644 --- a/src/app/dropdown/dropdown-trigger.directive.ts +++ b/src/app/dropdown/dropdown-trigger.directive.ts @@ -112,12 +112,12 @@ export class DropdownTriggerDirective implements OnDestroy { } ]), scrollStrategy: this.overlay.scrollStrategies.reposition(), - width: this.dropdown.correctedWidth + width: this.dropdown.getCorrectedWidth() }); } private updatePosition = () => { - this.overlayRef.updateSize({ width: this.dropdown.correctedWidth }); + this.overlayRef.updateSize({ width: this.dropdown.getCorrectedWidth() }); this.dropdown.triangleLeftOffset = this.getTriangleLeftOffset(); }; diff --git a/src/app/dropdown/dropdown.component.ts b/src/app/dropdown/dropdown.component.ts index f17fa06e..26a4a4ee 100644 --- a/src/app/dropdown/dropdown.component.ts +++ b/src/app/dropdown/dropdown.component.ts @@ -25,11 +25,11 @@ export class DropdownComponent { triangleLeftOffset: string; animationDone$ = new Subject(); - get correctedWidth() { + getCorrectedWidth() { if (this.width === '100%') { return FULL_WIDTH; } - if (!this.width || (typeof this.width === 'string' && this.width.slice(-1) === '%')) { + if (this.isAutoSize(this.width)) { return this.width; } const widthPx: number = typeof this.width === 'string' ? parseFloat(this.width) : this.width; @@ -38,4 +38,8 @@ export class DropdownComponent { } return widthPx; } + + private isAutoSize(size: string | number) { + return !size || (typeof size === 'string' && size.slice(-1) === '%'); + } } diff --git a/src/app/layout/card/card-header/card-header.component.scss b/src/app/layout/card/card-header/card-header.component.scss index f5759235..97559382 100644 --- a/src/app/layout/card/card-header/card-header.component.scss +++ b/src/app/layout/card/card-header/card-header.component.scss @@ -3,4 +3,4 @@ :host { display: block; margin-bottom: $card-header-margin; -} \ No newline at end of file +} diff --git a/src/app/layout/card/card.component.scss b/src/app/layout/card/card.component.scss index a0635f90..b90e3402 100644 --- a/src/app/layout/card/card.component.scss +++ b/src/app/layout/card/card.component.scss @@ -5,5 +5,5 @@ background-color: $card-background-color; padding: $card-padding; border-radius: $card-border-radius; - box-shadow: $card-shadow + box-shadow: $card-shadow; } diff --git a/src/app/main/main.component.scss b/src/app/main/main.component.scss deleted file mode 100644 index 9132d04d..00000000 --- a/src/app/main/main.component.scss +++ /dev/null @@ -1,6 +0,0 @@ -@import '../../styles/variables.scss'; -@import '../../styles/mixins.scss'; - -.content { - @include content($content-padding, $content-max-width); -} diff --git a/src/app/analytics/analytics.component.html b/src/app/sections/analytics/analytics.component.html similarity index 100% rename from src/app/analytics/analytics.component.html rename to src/app/sections/analytics/analytics.component.html diff --git a/src/app/sections/analytics/analytics.component.scss b/src/app/sections/analytics/analytics.component.scss new file mode 100644 index 00000000..b59b633a --- /dev/null +++ b/src/app/sections/analytics/analytics.component.scss @@ -0,0 +1,11 @@ +@import '../../../styles/variables.scss'; +@import '../../../styles/mixins.scss'; + +.container { + @include fullscreen(); + background-color: $background-color; +} + +.content { + @include content($content-padding, $content-max-width); +} diff --git a/src/app/analytics/analytics.component.ts b/src/app/sections/analytics/analytics.component.ts similarity index 92% rename from src/app/analytics/analytics.component.ts rename to src/app/sections/analytics/analytics.component.ts index 0c75c1ef..7f3a448b 100644 --- a/src/app/analytics/analytics.component.ts +++ b/src/app/sections/analytics/analytics.component.ts @@ -1,6 +1,7 @@ import { Component, OnInit } from '@angular/core'; -import { PeriodData, SegmentData } from '../charts/models/chart-data-models'; -import { ChartsService } from '../charts/charts.service'; + +import { PeriodData, SegmentData } from '../../charts/models/chart-data-models'; +import { ChartsService } from '../../charts/charts.service'; @Component({ selector: 'dsh-app-analytics', diff --git a/src/app/analytics/analytics.module.ts b/src/app/sections/analytics/analytics.module.ts similarity index 68% rename from src/app/analytics/analytics.module.ts rename to src/app/sections/analytics/analytics.module.ts index e66e0a2c..5496d835 100644 --- a/src/app/analytics/analytics.module.ts +++ b/src/app/sections/analytics/analytics.module.ts @@ -3,11 +3,11 @@ import { CommonModule } from '@angular/common'; import { FlexLayoutModule } from '@angular/flex-layout'; import { AnalyticsComponent } from './analytics.component'; -import { ToolbarModule } from '../toolbar'; -import { BrandModule } from '../brand'; -import { ActionbarModule } from '../actionbar'; -import { LayoutModule } from '../layout'; -import { ChartsModule } from '../charts'; +import { ToolbarModule } from '../../toolbar'; +import { BrandModule } from '../../brand'; +import { ActionbarModule } from '../../actionbar'; +import { LayoutModule } from '../../layout'; +import { ChartsModule } from '../../charts'; import { AnalyticsService } from './analytics.service'; @NgModule({ diff --git a/src/app/analytics/analytics.service.ts b/src/app/sections/analytics/analytics.service.ts similarity index 100% rename from src/app/analytics/analytics.service.ts rename to src/app/sections/analytics/analytics.service.ts diff --git a/src/app/sections/analytics/index.ts b/src/app/sections/analytics/index.ts new file mode 100644 index 00000000..77dfe2ff --- /dev/null +++ b/src/app/sections/analytics/index.ts @@ -0,0 +1,2 @@ +export * from './analytics.module'; +export * from './analytics.component'; diff --git a/src/app/details/details.component.html b/src/app/sections/details/details.component.html similarity index 100% rename from src/app/details/details.component.html rename to src/app/sections/details/details.component.html diff --git a/src/app/details/details.component.scss b/src/app/sections/details/details.component.scss similarity index 75% rename from src/app/details/details.component.scss rename to src/app/sections/details/details.component.scss index 80cd4a18..dd330423 100644 --- a/src/app/details/details.component.scss +++ b/src/app/sections/details/details.component.scss @@ -1,5 +1,5 @@ -@import '../../styles/variables.scss'; -@import '../../styles/mixins.scss'; +@import '../../../styles/variables.scss'; +@import '../../../styles/mixins.scss'; mat-sidenav-container { @include fullscreen(); diff --git a/src/app/details/details.component.ts b/src/app/sections/details/details.component.ts similarity index 81% rename from src/app/details/details.component.ts rename to src/app/sections/details/details.component.ts index d7c9283e..471028f8 100644 --- a/src/app/details/details.component.ts +++ b/src/app/sections/details/details.component.ts @@ -1,6 +1,6 @@ import { Component } from '@angular/core'; -import { toolbarOffset } from '../layout-settings'; +import { toolbarOffset } from '../../layout-settings'; @Component({ selector: 'dsh-details', diff --git a/src/app/details/details.module.ts b/src/app/sections/details/details.module.ts similarity index 73% rename from src/app/details/details.module.ts rename to src/app/sections/details/details.module.ts index 6cab0618..027b5c2e 100644 --- a/src/app/details/details.module.ts +++ b/src/app/sections/details/details.module.ts @@ -3,9 +3,9 @@ import { MatSidenavModule } from '@angular/material/sidenav'; import { FlexLayoutModule } from '@angular/flex-layout'; import { DetailsComponent } from './details.component'; -import { BrandModule } from '../brand'; -import { ToolbarModule } from '../toolbar'; -import { ActionbarModule } from '../actionbar'; +import { BrandModule } from '../../brand'; +import { ToolbarModule } from '../../toolbar'; +import { ActionbarModule } from '../../actionbar'; @NgModule({ declarations: [DetailsComponent], diff --git a/src/app/details/index.ts b/src/app/sections/details/index.ts similarity index 100% rename from src/app/details/index.ts rename to src/app/sections/details/index.ts diff --git a/src/app/main/index.ts b/src/app/sections/main/index.ts similarity index 100% rename from src/app/main/index.ts rename to src/app/sections/main/index.ts diff --git a/src/app/main/main.component.html b/src/app/sections/main/main.component.html similarity index 100% rename from src/app/main/main.component.html rename to src/app/sections/main/main.component.html diff --git a/src/app/sections/main/main.component.scss b/src/app/sections/main/main.component.scss new file mode 100644 index 00000000..1656802c --- /dev/null +++ b/src/app/sections/main/main.component.scss @@ -0,0 +1,6 @@ +@import '../../../styles/variables.scss'; +@import '../../../styles/mixins.scss'; + +.content { + @include content($content-padding, $content-max-width); +} diff --git a/src/app/main/main.component.ts b/src/app/sections/main/main.component.ts similarity index 96% rename from src/app/main/main.component.ts rename to src/app/sections/main/main.component.ts index eabea56f..55d7a63b 100644 --- a/src/app/main/main.component.ts +++ b/src/app/sections/main/main.component.ts @@ -1,8 +1,8 @@ import { Component } from '@angular/core'; import { Router } from '@angular/router'; -import { DocumentService } from '../document/document.service'; -import { Family } from '../document/document-fonts-config'; +import { DocumentService } from '../../document/document.service'; +import { Family } from '../../document/document-fonts-config'; @Component({ selector: 'dsh-main', diff --git a/src/app/main/main.module.ts b/src/app/sections/main/main.module.ts similarity index 60% rename from src/app/main/main.module.ts rename to src/app/sections/main/main.module.ts index 7c0ec54a..167a5a89 100644 --- a/src/app/main/main.module.ts +++ b/src/app/sections/main/main.module.ts @@ -2,10 +2,10 @@ import { NgModule } from '@angular/core'; import { FlexLayoutModule } from '@angular/flex-layout'; import { MainComponent } from './main.component'; -import { BrandModule } from '../brand'; -import { ToolbarModule } from '../toolbar'; -import { ActionbarModule } from '../actionbar'; -import { DocumentModule } from '../document/document.module'; +import { BrandModule } from '../../brand'; +import { ToolbarModule } from '../../toolbar'; +import { ActionbarModule } from '../../actionbar'; +import { DocumentModule } from '../../document/document.module'; @NgModule({ declarations: [MainComponent], diff --git a/src/app/page-not-found/index.ts b/src/app/sections/page-not-found/index.ts similarity index 100% rename from src/app/page-not-found/index.ts rename to src/app/sections/page-not-found/index.ts diff --git a/src/app/page-not-found/page-not-found.component.html b/src/app/sections/page-not-found/page-not-found.component.html similarity index 100% rename from src/app/page-not-found/page-not-found.component.html rename to src/app/sections/page-not-found/page-not-found.component.html diff --git a/src/app/page-not-found/page-not-found.component.ts b/src/app/sections/page-not-found/page-not-found.component.ts similarity index 100% rename from src/app/page-not-found/page-not-found.component.ts rename to src/app/sections/page-not-found/page-not-found.component.ts diff --git a/src/app/page-not-found/page-not-found.module.ts b/src/app/sections/page-not-found/page-not-found.module.ts similarity index 100% rename from src/app/page-not-found/page-not-found.module.ts rename to src/app/sections/page-not-found/page-not-found.module.ts diff --git a/src/app/party-mgt/index.ts b/src/app/sections/party-mgt/index.ts similarity index 100% rename from src/app/party-mgt/index.ts rename to src/app/sections/party-mgt/index.ts diff --git a/src/app/party-mgt/party-mgt.component.html b/src/app/sections/party-mgt/party-mgt.component.html similarity index 100% rename from src/app/party-mgt/party-mgt.component.html rename to src/app/sections/party-mgt/party-mgt.component.html diff --git a/src/app/party-mgt/party-mgt.component.scss b/src/app/sections/party-mgt/party-mgt.component.scss similarity index 57% rename from src/app/party-mgt/party-mgt.component.scss rename to src/app/sections/party-mgt/party-mgt.component.scss index 7dba18a7..a6ecd974 100644 --- a/src/app/party-mgt/party-mgt.component.scss +++ b/src/app/sections/party-mgt/party-mgt.component.scss @@ -1,5 +1,5 @@ -@import '../../styles/variables.scss'; -@import '../../styles/mixins.scss'; +@import '../../../styles/variables.scss'; +@import '../../../styles/mixins.scss'; .display-2 { font-size: 24px; diff --git a/src/app/party-mgt/party-mgt.component.ts b/src/app/sections/party-mgt/party-mgt.component.ts similarity index 100% rename from src/app/party-mgt/party-mgt.component.ts rename to src/app/sections/party-mgt/party-mgt.component.ts diff --git a/src/app/party-mgt/party-mgt.module.ts b/src/app/sections/party-mgt/party-mgt.module.ts similarity index 73% rename from src/app/party-mgt/party-mgt.module.ts rename to src/app/sections/party-mgt/party-mgt.module.ts index 73ae3233..1bb66574 100644 --- a/src/app/party-mgt/party-mgt.module.ts +++ b/src/app/sections/party-mgt/party-mgt.module.ts @@ -5,12 +5,12 @@ import { FlexLayoutModule } from '@angular/flex-layout'; import { MatButtonModule, MatFormFieldModule, MatAutocompleteModule, MatInputModule } from '@angular/material'; import { PartyMngComponent } from './party-mgt.component'; -import { BrandModule } from '../brand'; -import { ToolbarModule } from '../toolbar'; -import { ActionbarModule } from '../actionbar'; -import { FormControlsModule } from '../form-controls'; -import { LayoutModule } from '../layout'; -import { DaDataModule } from '../dadata/dadata.module'; +import { BrandModule } from '../../brand'; +import { ToolbarModule } from '../../toolbar'; +import { ActionbarModule } from '../../actionbar'; +import { FormControlsModule } from '../../form-controls'; +import { LayoutModule } from '../../layout'; +import { DaDataModule } from '../../dadata/dadata.module'; @NgModule({ declarations: [PartyMngComponent], diff --git a/src/app/app-routing.module.ts b/src/app/sections/sections-routing.module.ts similarity index 89% rename from src/app/app-routing.module.ts rename to src/app/sections/sections-routing.module.ts index 27fe47f0..cbf2d613 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/sections/sections-routing.module.ts @@ -5,7 +5,7 @@ import { MainComponent } from './main'; import { PageNotFoundComponent } from './page-not-found'; import { PartyMngComponent } from './party-mgt'; import { DetailsComponent } from './details'; -import { AnalyticsComponent } from './analytics/analytics.component'; +import { AnalyticsComponent } from './analytics'; import { TableComponent } from './table'; const routes: Routes = [ @@ -39,4 +39,4 @@ const routes: Routes = [ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) -export class AppRoutingModule {} +export class SectionsRoutingModule {} diff --git a/src/app/sections/sections.module.ts b/src/app/sections/sections.module.ts new file mode 100644 index 00000000..e95d5b0f --- /dev/null +++ b/src/app/sections/sections.module.ts @@ -0,0 +1,25 @@ +import { NgModule } from '@angular/core'; + +import { SectionsRoutingModule } from './sections-routing.module'; +import { MainModule } from './main'; +import { PartyMngModule } from './party-mgt'; +import { AnalyticsModule } from './analytics'; +import { DetailsModule } from './details'; +import { PageNotFoundModule } from './page-not-found'; +import { TableModule } from './table'; + +@NgModule({ + imports: [ + SectionsRoutingModule, + MainModule, + PartyMngModule, + AnalyticsModule, + DetailsModule, + PageNotFoundModule, + TableModule + ], + declarations: [], + entryComponents: [], + providers: [] +}) +export class SectionsModule {} diff --git a/src/app/sections/table/index.ts b/src/app/sections/table/index.ts new file mode 100644 index 00000000..b1fc7b34 --- /dev/null +++ b/src/app/sections/table/index.ts @@ -0,0 +1,2 @@ +export * from './table.module'; +export * from './table.component'; diff --git a/src/app/table/table.component.html b/src/app/sections/table/table.component.html similarity index 100% rename from src/app/table/table.component.html rename to src/app/sections/table/table.component.html diff --git a/src/app/table/table.component.scss b/src/app/sections/table/table.component.scss similarity index 81% rename from src/app/table/table.component.scss rename to src/app/sections/table/table.component.scss index a58a3cf9..b08bd19f 100644 --- a/src/app/table/table.component.scss +++ b/src/app/sections/table/table.component.scss @@ -1,5 +1,5 @@ -@import '../../styles/variables.scss'; -@import '../../styles/mixins.scss'; +@import '../../../styles/variables.scss'; +@import '../../../styles/mixins.scss'; mat-sidenav-container { @include fullscreen(); @@ -27,4 +27,3 @@ mat-sidenav-container { height: 400px; overflow: auto; } - diff --git a/src/app/table/table.component.ts b/src/app/sections/table/table.component.ts similarity index 98% rename from src/app/table/table.component.ts rename to src/app/sections/table/table.component.ts index c55fe14b..33ebf89b 100644 --- a/src/app/table/table.component.ts +++ b/src/app/sections/table/table.component.ts @@ -1,8 +1,8 @@ import { Component, OnInit, ViewChild } from '@angular/core'; - -import { toolbarOffset } from '../layout-settings'; import { MatPaginator, MatTableDataSource } from '@angular/material'; +import { toolbarOffset } from '../../layout-settings'; + export interface PeriodicElement { name: string; position: number; diff --git a/src/app/sections/table/table.module.ts b/src/app/sections/table/table.module.ts new file mode 100644 index 00000000..8487d996 --- /dev/null +++ b/src/app/sections/table/table.module.ts @@ -0,0 +1,25 @@ +import { NgModule } from '@angular/core'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { FlexLayoutModule } from '@angular/flex-layout'; +import { MatPaginatorModule, MatTableModule } from '@angular/material'; + +import { TableComponent } from './table.component'; +import { BrandModule } from '../../brand'; +import { ToolbarModule } from '../../toolbar'; +import { ActionbarModule } from '../../actionbar'; +import { DshTableModule } from '../../table'; + +@NgModule({ + declarations: [TableComponent], + imports: [ + FlexLayoutModule, + MatSidenavModule, + BrandModule, + ToolbarModule, + ActionbarModule, + DshTableModule, + MatTableModule, + MatPaginatorModule + ] +}) +export class TableModule {} diff --git a/src/app/table/_table-theme.scss b/src/app/table/_table-theme.scss new file mode 100644 index 00000000..6ac64cb0 --- /dev/null +++ b/src/app/table/_table-theme.scss @@ -0,0 +1,62 @@ +@import '~@angular/material/theming'; + +@mixin dsh-table-theme($theme) { + $background: map-get($theme, background); + $foreground: map-get($theme, foreground); + + .dsh { + &-table { + background: mat-color($background, card); + + & thead, + & tbody, + & tfoot, + mat-header-row, + mat-row, + mat-footer-row, + [dsh-header-row], + [dsh-row], + [dsh-footer-row], + .dsh-table-sticky { + background: inherit; + } + + & thead { + background: mat-color($background, background); + } + } + + &-header-cell { + color: mat-color($foreground, secondary-text); + } + + &-cell, + &-footer-cell { + color: mat-color($foreground, text); + } + + &-row, + &-header-row, + &-footer-row { + border-bottom-color: mat-color($foreground, divider); + } + } +} + +@mixin dsh-table-typography($config) { + .dsh { + &-table { + font-family: mat-font-family($config); + } + + &-header-cell { + font-size: mat-font-size($config, caption); + font-weight: mat-font-weight($config, body-2); + } + + &-cell, + &-footer-cell { + font-size: mat-font-size($config, body-1); + } + } +} diff --git a/src/app/components/table/cell.ts b/src/app/table/cell.ts similarity index 100% rename from src/app/components/table/cell.ts rename to src/app/table/cell.ts diff --git a/src/app/components/table/components.spec.ts b/src/app/table/components.spec.ts similarity index 100% rename from src/app/components/table/components.spec.ts rename to src/app/table/components.spec.ts diff --git a/src/app/table/index.ts b/src/app/table/index.ts index b1fc7b34..7e1a213e 100644 --- a/src/app/table/index.ts +++ b/src/app/table/index.ts @@ -1,2 +1 @@ -export * from './table.module'; -export * from './table.component'; +export * from './public-api'; diff --git a/src/app/components/table/public-api.ts b/src/app/table/public-api.ts similarity index 100% rename from src/app/components/table/public-api.ts rename to src/app/table/public-api.ts diff --git a/src/app/components/table/row.ts b/src/app/table/row.ts similarity index 100% rename from src/app/components/table/row.ts rename to src/app/table/row.ts diff --git a/src/app/components/table/table-utils.spec.ts b/src/app/table/table-utils.spec.ts similarity index 100% rename from src/app/components/table/table-utils.spec.ts rename to src/app/table/table-utils.spec.ts diff --git a/src/app/components/table/table.html b/src/app/table/table.html similarity index 100% rename from src/app/components/table/table.html rename to src/app/table/table.html diff --git a/src/app/table/table.module.ts b/src/app/table/table.module.ts index 83ef563f..9d4c2683 100644 --- a/src/app/table/table.module.ts +++ b/src/app/table/table.module.ts @@ -1,25 +1,46 @@ import { NgModule } from '@angular/core'; -import { MatSidenavModule } from '@angular/material/sidenav'; -import { FlexLayoutModule } from '@angular/flex-layout'; -import { MatPaginatorModule, MatTableModule } from '@angular/material'; +import { DshTableComponent } from './table'; +import { CdkTableModule } from '@angular/cdk/table'; +import { + DshCellDefDirective, + DshCellDirective, + DshColumnDefDirective, + DshFooterCellDefDirective, + DshFooterCellDirective, + DshHeaderCellDefDirective, + DshHeaderCellDirective +} from './cell'; +import { + DshFooterRowComponent, + DshFooterRowDefDirective, + DshHeaderRowComponent, + DshHeaderRowDefDirective, + DshRowComponent, + DshRowDefDirective +} from './row'; +import { CommonModule } from '@angular/common'; +import { MatTableModule } from '@angular/material'; -import { TableComponent } from './table.component'; -import { BrandModule } from '../brand'; -import { ToolbarModule } from '../toolbar'; -import { ActionbarModule } from '../actionbar'; -import { DshTableModule } from '../components/table'; +const EXPORTED_DECLARATIONS = [ + DshTableComponent, + DshHeaderCellDefDirective, + DshHeaderRowDefDirective, + DshColumnDefDirective, + DshCellDefDirective, + DshRowDefDirective, + DshFooterCellDefDirective, + DshFooterRowDefDirective, + DshHeaderCellDirective, + DshCellDirective, + DshFooterCellDirective, + DshHeaderRowComponent, + DshRowComponent, + DshFooterRowComponent +]; @NgModule({ - declarations: [TableComponent], - imports: [ - FlexLayoutModule, - MatSidenavModule, - BrandModule, - ToolbarModule, - ActionbarModule, - DshTableModule, - MatTableModule, - MatPaginatorModule - ] + imports: [CdkTableModule, CommonModule, MatTableModule], + exports: EXPORTED_DECLARATIONS, + declarations: EXPORTED_DECLARATIONS }) -export class TableModule {} +export class DshTableModule {} diff --git a/src/app/table/table.scss b/src/app/table/table.scss new file mode 100644 index 00000000..2aaa3cf2 --- /dev/null +++ b/src/app/table/table.scss @@ -0,0 +1,105 @@ +@import '../../styles/variables'; + +$dsh-header-row-height: 56px; +$dsh-row-height: 48px; +$dsh-row-horizontal-padding: 24px; + +.dsh { + &-table { + display: block; + border-radius: 5px; + padding: 0; + border-spacing: 0; + + thead, + tbody, + tfoot { + display: block; + } + + thead { + border-radius: 5px; + } + } + + &-header-row { + min-height: $dsh-header-row-height; + } + + &-row, + &-footer-row { + min-height: $dsh-row-height; + } + + &-row, + &-header-row, + &-footer-row { + display: flex; + border-width: 0; + align-items: center; + box-sizing: border-box; + + &::after { + display: inline-block; + min-height: inherit; + content: ''; + } + } + + &-row, + &-footer-row { + border-bottom-width: 1px; + border-style: solid; + } + + &-cell:first-of-type, + &-header-cell:first-of-type, + &-footer-cell:first-of-type { + padding-left: $dsh-row-horizontal-padding; + + [dir='rtl'] & { + padding-left: 0; + padding-right: $dsh-row-horizontal-padding; + } + } + + &-cell:last-of-type, + &-header-cell:last-of-type, + &-footer-cell:last-of-type { + padding-right: $dsh-row-horizontal-padding; + + [dir='rtl'] & { + padding-right: 0; + padding-left: $dsh-row-horizontal-padding; + } + } + + &-cell, + &-header-cell, + &-footer-cell { + flex: 1; + display: flex; + align-items: center; + overflow: hidden; + word-wrap: break-word; + min-height: inherit; + padding: 0; + } + + &-header-row { + height: $dsh-header-row-height; + } + + &-row, + &-footer-row { + height: $dsh-row-height; + } + + &-header-cell { + text-align: left; + + [dir='rtl'] & { + text-align: right; + } + } +} diff --git a/src/app/components/table/table.spec.ts b/src/app/table/table.spec.ts similarity index 100% rename from src/app/components/table/table.spec.ts rename to src/app/table/table.spec.ts diff --git a/src/app/components/table/table.ts b/src/app/table/table.ts similarity index 100% rename from src/app/components/table/table.ts rename to src/app/table/table.ts diff --git a/src/styles.scss b/src/styles.scss index 8efe928e..cb941f3a 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1,14 +1,18 @@ -// Dependencies @import '~@angular/material/theming'; + // Utils @import './styles/functions'; + // Variables @import './styles/variables'; -@import "./styles/palletes"; +@import './styles/palletes'; + +// Theme +@import './styles/main-theme'; + // Components -@import "./styles/main-theme"; @import './app/dropdown/dropdown-theme'; -@import './app/components/table/table-theme'; +@import './app/table/table-theme'; @import './app/charts/bar-chart/bar-chart-theme'; @include mat-core(); @@ -23,5 +27,5 @@ $mat-theme: mat-light-theme($primary, $accent, $warn); @include angular-material-theme($mat-theme); @include dsh-main-theme($theme); @include dsh-dropdown-theme($theme); -@include dsh-table-theme($theme) -@include dsh-bar-chart-theme($theme) +@include dsh-table-theme($theme); +@include dsh-bar-chart-theme($theme); diff --git a/src/styles/_functions.scss b/src/styles/_functions.scss new file mode 100644 index 00000000..6e1e156b --- /dev/null +++ b/src/styles/_functions.scss @@ -0,0 +1,20 @@ +@import '~@angular/material/theming'; +@import 'variables'; +@import 'palletes'; + +@function dsh-light-theme( + $primary, + $accent, + $warn: mat-palette($mat-red), + $foreground: $dsh-light-theme-foreground, + $background: $dsh-light-theme-background +) { + @return ( + primary: $primary, + accent: $accent, + warn: $warn, + is-dark: false, + foreground: $foreground, + background: $background + ); +} diff --git a/src/styles/_main-theme.scss b/src/styles/_main-theme.scss index a83ac518..708333de 100644 --- a/src/styles/_main-theme.scss +++ b/src/styles/_main-theme.scss @@ -1,13 +1,12 @@ @import '~@angular/material/theming'; @mixin dsh-main-theme($theme) { - $background: map-get($theme, background); + $background: map-get($theme, background); - body { - font-size: 14px; - font-family: 'Roboto', sans-serif; - margin: 0; - background-color: mat-color($background, background);; - } + body { + font-size: 14px; + font-family: 'Roboto', sans-serif; + margin: 0; + background-color: mat-color($background, background); + } } - diff --git a/src/styles/mixins.scss b/src/styles/_mixins.scss similarity index 100% rename from src/styles/mixins.scss rename to src/styles/_mixins.scss diff --git a/src/styles/_palletes.scss b/src/styles/_palletes.scss new file mode 100644 index 00000000..278876d4 --- /dev/null +++ b/src/styles/_palletes.scss @@ -0,0 +1,108 @@ +@import 'variables'; + +// Background palette for light themes. +$dsh-light-theme-background: ( + background: $background-color, + card: $white +); + +// Background palette for dark themes. +$dsh-dark-theme-background: ( + background: #303030, + card: $black +); + +// Foreground palette for light themes. +$dsh-light-theme-foreground: ( + base: black, + disabled-button: rgba($black, 0.26), + elevation: black, + divider: rgba($black, 0.27), + icon: rgba($black, 0.54), + icons: rgba($black, 0.54), + text: rgba($black, 0.87), + secondary-text: rgba($black, 0.67), + slider-min: rgba($black, 0.87), + slider-off: rgba($black, 0.26), + slider-off-active: rgba($black, 0.38) +); + +// Foreground palette for dark themes. +$dsh-dark-theme-foreground: ( + base: white, + disabled-button: rgba($white, 0.3), + elevation: black, + divider: rgba($white, 0.27), + icon: white, + icons: white, + text: white, + secondary-text: rgba($white, 0.67), + slider-min: white, + slider-off: rgba($white, 0.3), + slider-off-active: rgba($white, 0.3) +); + +$dsh-slateblue: ( + 50: #f4f0ff, + 100: #f3f0ff, + 200: #ded6ff, + 300: #baadff, + 400: #9385ff, + 500: #685bff, + 600: #4b43d9, + 700: #312eb3, + 800: #1d1f8c, + 900: #141866, + A100: #ffffff, + A200: #ffffff, + A400: #dcdaff, + A700: #c4c1ff, + contrast: ( + 50: $dark-primary-text, + 100: $dark-primary-text, + 200: $dark-primary-text, + 300: $light-primary-text, + 400: $light-primary-text, + 500: $light-primary-text, + 600: $light-primary-text, + 700: $light-primary-text, + 800: $light-primary-text, + 900: $light-primary-text, + A100: $dark-primary-text, + A200: $light-primary-text, + A400: $light-primary-text, + A700: $light-primary-text + ) +); +$dsh-palegreen: ( + 50: #f0fff6, + 100: #e8fff2, + 200: #b6f2d3, + 300: #87e6b8, + 400: #5dd9a1, + 500: #38cd8f, + 600: #24a674, + 700: #16805a, + 800: #0b5940, + 900: #063326, + A100: #e2ffef, + A200: #afffd3, + A400: #7cffb7, + A700: #63ffa9, + contrast: ( + 50: $dark-primary-text, + 100: $dark-primary-text, + 200: $dark-primary-text, + 300: $light-primary-text, + 400: $light-primary-text, + 500: $light-primary-text, + 600: $light-primary-text, + 700: $light-primary-text, + 800: $light-primary-text, + 900: $light-primary-text, + A100: $dark-primary-text, + A200: $light-primary-text, + A400: $light-primary-text, + A700: $light-primary-text + ) +); diff --git a/src/styles/variables.scss b/src/styles/_variables.scss similarity index 100% rename from src/styles/variables.scss rename to src/styles/_variables.scss diff --git a/src/styles/functions.scss b/src/styles/functions.scss deleted file mode 100644 index 108aecca..00000000 --- a/src/styles/functions.scss +++ /dev/null @@ -1,14 +0,0 @@ -@import '~@angular/material/theming'; -@import 'variables'; -@import 'palletes'; - -@function dsh-light-theme($primary, $accent, $warn: mat-palette($mat-red), $foreground: $dsh-light-theme-foreground, $background: $dsh-light-theme-background) { - @return ( - primary: $primary, - accent: $accent, - warn: $warn, - is-dark: false, - foreground: $foreground, - background: $background - ); -} diff --git a/src/styles/palletes.scss b/src/styles/palletes.scss deleted file mode 100644 index 1f93fefd..00000000 --- a/src/styles/palletes.scss +++ /dev/null @@ -1,108 +0,0 @@ -@import 'variables'; - -// Background palette for light themes. -$dsh-light-theme-background: ( - background: $background-color, - card: $white -); - -// Background palette for dark themes. -$dsh-dark-theme-background: ( - background: #303030, - card: $black -); - -// Foreground palette for light themes. -$dsh-light-theme-foreground: ( - base: black, - disabled-button: rgba($black, 0.26), - elevation: black, - divider: rgba($black, 0.27), - icon: rgba($black, 0.54), - icons: rgba($black, 0.54), - text: rgba($black, 0.87), - secondary-text: rgba($black, 0.67), - slider-min: rgba($black, 0.87), - slider-off: rgba($black, 0.26), - slider-off-active: rgba($black, 0.38) -); - -// Foreground palette for dark themes. -$dsh-dark-theme-foreground: ( - base: white, - disabled-button: rgba($white, 0.3), - elevation: black, - divider: rgba($white, 0.27), - icon: white, - icons: white, - text: white, - secondary-text: rgba($white, 0.67), - slider-min: white, - slider-off: rgba($white, 0.3), - slider-off-active: rgba($white, 0.3) -); - -$dsh-slateblue: ( - 50: #f4f0ff, - 100: #f3f0ff, - 200: #ded6ff, - 300: #baadff, - 400: #9385ff, - 500: #685bff, - 600: #4b43d9, - 700: #312eb3, - 800: #1d1f8c, - 900: #141866, - A100: #ffffff, - A200: #ffffff, - A400: #dcdaff, - A700: #c4c1ff, - contrast: ( - 50: $dark-primary-text, - 100: $dark-primary-text, - 200: $dark-primary-text, - 300: $light-primary-text, - 400: $light-primary-text, - 500: $light-primary-text, - 600: $light-primary-text, - 700: $light-primary-text, - 800: $light-primary-text, - 900: $light-primary-text, - A100: $dark-primary-text, - A200: $light-primary-text, - A400: $light-primary-text, - A700: $light-primary-text - ) -); -$dsh-palegreen: ( - 50: #f0fff6, - 100: #e8fff2, - 200: #b6f2d3, - 300: #87e6b8, - 400: #5dd9a1, - 500: #38cd8f, - 600: #24a674, - 700: #16805a, - 800: #0b5940, - 900: #063326, - A100: #e2ffef, - A200: #afffd3, - A400: #7cffb7, - A700: #63ffa9, - contrast: ( - 50: $dark-primary-text, - 100: $dark-primary-text, - 200: $dark-primary-text, - 300: $light-primary-text, - 400: $light-primary-text, - 500: $light-primary-text, - 600: $light-primary-text, - 700: $light-primary-text, - 800: $light-primary-text, - 900: $light-primary-text, - A100: $dark-primary-text, - A200: $light-primary-text, - A400: $light-primary-text, - A700: $light-primary-text - ) -);