diff --git a/angular.json b/angular.json index aa3ecce56a..e7a6448a02 100644 --- a/angular.json +++ b/angular.json @@ -119,7 +119,7 @@ "builder": "@angular-devkit/build-angular:tslint", "options": { "tsConfig": [ - "e2e/frontend/test-e2e/tsconfig.e2e.json" + "src/test-e2e/tsconfig.e2e.json" ], "exclude": [ "**/node_modules/**" diff --git a/package-lock.json b/package-lock.json index 4aa5ad52c5..1228b3e384 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,90 +5,107 @@ "requires": true, "dependencies": { "@angular-devkit/architect": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.6.7.tgz", - "integrity": "sha512-ULn46EmEJ9/AD9LJ9DwFtT1CcujpC3x1FSYjpPWqmyv1CH0vsjtMSgUCBUPIonqM4jRjDvIuxclpWJrsH/t9og==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.7.4.tgz", + "integrity": "sha512-qcxLtA5XhUCqNyyMOD+s7oIVywNnhUNE1qoopnm6MN0FJ1n7iQMU5TPZBTiXDWQVnbGODObi7tGo7gFnEBML5Q==", "dev": true, "requires": { - "@angular-devkit/core": "0.6.7", + "@angular-devkit/core": "0.7.4", "rxjs": "6.2.0" } }, "@angular-devkit/build-angular": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.6.7.tgz", - "integrity": "sha512-lrSVYdHSA6Ku+Owr0oEUtzjEr4oeKm582uRRK5kqjAvhGWjvXVrtwF1G4plDTDI0ba7dF6856UbJh1jqY19tuA==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.7.4.tgz", + "integrity": "sha512-aNVhnWHxhx8s8VHn2ixKhrgK/I4h/fyQQd+FtvysvDia5jOb7ckiTeM4I+2hpPI/66Kr2CxSVxuPTlJkRAH+jQ==", "dev": true, "requires": { - "@angular-devkit/architect": "0.6.7", - "@angular-devkit/build-optimizer": "0.6.7", - "@angular-devkit/core": "0.6.7", - "@ngtools/webpack": "6.0.7", + "@angular-devkit/architect": "0.7.4", + "@angular-devkit/build-optimizer": "0.7.4", + "@angular-devkit/build-webpack": "0.7.4", + "@angular-devkit/core": "0.7.4", + "@ngtools/webpack": "6.1.4", "ajv": "6.4.0", - "autoprefixer": "8.5.2", - "cache-loader": "1.2.2", - "chalk": "2.2.2", + "autoprefixer": "8.6.5", "circular-dependency-plugin": "5.0.2", - "clean-css": "4.1.11", - "copy-webpack-plugin": "4.5.1", + "clean-css": "4.2.1", + "copy-webpack-plugin": "4.5.2", "file-loader": "1.1.11", "glob": "7.1.2", "html-webpack-plugin": "3.2.0", "istanbul": "0.4.5", "istanbul-instrumenter-loader": "3.0.1", "karma-source-map-support": "1.3.0", - "less": "3.0.4", + "less": "3.8.1", "less-loader": "4.1.0", - "license-webpack-plugin": "1.3.1", - "lodash": "4.17.10", - "memory-fs": "0.4.1", - "mini-css-extract-plugin": "0.4.0", + "license-webpack-plugin": "1.4.0", + "loader-utils": "1.1.0", + "mini-css-extract-plugin": "0.4.1", "minimatch": "3.0.4", - "node-sass": "4.9.0", + "node-sass": "4.9.3", "opn": "5.3.0", "parse5": "4.0.0", - "portfinder": "1.0.13", - "postcss": "6.0.22", + "portfinder": "1.0.16", + "postcss": "6.0.23", "postcss-import": "11.1.0", - "postcss-loader": "2.1.5", + "postcss-loader": "2.1.6", "postcss-url": "7.3.2", "raw-loader": "0.5.1", - "resolve": "1.7.1", "rxjs": "6.2.0", - "sass-loader": "7.0.1", - "silent-error": "1.1.0", + "sass-loader": "6.0.7", + "semver": "5.5.0", + "source-map-loader": "0.2.4", "source-map-support": "0.5.6", "stats-webpack-plugin": "0.6.2", "style-loader": "0.21.0", "stylus": "0.54.5", "stylus-loader": "3.0.2", "tree-kill": "1.2.0", - "uglifyjs-webpack-plugin": "1.2.5", - "url-loader": "1.0.1", - "webpack": "4.8.3", + "uglifyjs-webpack-plugin": "1.3.0", + "url-loader": "1.1.1", + "webpack": "4.9.2", "webpack-dev-middleware": "3.1.3", - "webpack-dev-server": "3.1.4", - "webpack-merge": "4.1.2", + "webpack-dev-server": "3.1.5", + "webpack-merge": "4.1.4", "webpack-sources": "1.1.0", "webpack-subresource-integrity": "1.1.0-rc.4" } }, "@angular-devkit/build-optimizer": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.6.7.tgz", - "integrity": "sha512-5ZlRrWM0QJSFhrOSfEVoUp3HGna/y6SsFajMnfMQJtkk/wD3+M9a5/CQfKUangwcQB64mr8nKsurbv+IVHqUXQ==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.7.4.tgz", + "integrity": "sha512-R+Icu9XjIaKcYFscaMBJ1DyBK2prxK3JQSFi0S//0MdNP4gBFIpCtNdOQsNXovCkpVZ7YlgmdE5+vSb39GVHHA==", "dev": true, "requires": { "loader-utils": "1.1.0", "source-map": "0.5.6", - "typescript": "2.7.2", + "typescript": "2.9.2", "webpack-sources": "1.1.0" + }, + "dependencies": { + "typescript": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", + "dev": true + } + } + }, + "@angular-devkit/build-webpack": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.7.4.tgz", + "integrity": "sha512-5oezCFtovcZ8fEkFyNEjs30b/t/DM6HIs3L1bP2xy2SFRNfwcWA0uyb5eag1DytZrzws2GEEmyO9qPtfwKjX7g==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.7.4", + "@angular-devkit/core": "0.7.4", + "rxjs": "6.2.0" } }, "@angular-devkit/core": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.6.7.tgz", - "integrity": "sha512-kzNI95g3of8C0an2U/lUa2ixqABFKQt06VfzSz6pUCl/RJblLnxua9dgsSb8jc0eDQ5ZmekXN0UgkED0JDYXsQ==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.7.4.tgz", + "integrity": "sha512-Blh44vzZVzE8B9xIwjRoo7hXPGSDdlrrax0rntvt3DDGVTjsSGm43qT95aDmXiwJruOCJNC5DsaP3+tTAkAyQQ==", "dev": true, "requires": { "ajv": "6.4.0", @@ -97,80 +114,54 @@ "source-map": "0.5.6" } }, - "@angular-devkit/schematics": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-0.6.5.tgz", - "integrity": "sha512-clyw0IBe0i257r35E/BHIYdwERwOwYwLD/PXMCb3bd1thD75S4sxHmLV5NHnn2S32y+mqm12/Q7006XUD/yi1g==", - "dev": true, - "requires": { - "@angular-devkit/core": "0.6.5", - "rxjs": "6.2.0" - }, - "dependencies": { - "@angular-devkit/core": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.6.5.tgz", - "integrity": "sha512-DpowzV6ObjVJb6ccElAD5rlqL9BN32ZGspg14YVyXf9mlmcNw3gm+P9BGIhuwJ8rt9fqmse87W59/Z2MLUTVkQ==", - "dev": true, - "requires": { - "ajv": "6.4.0", - "chokidar": "2.0.3", - "rxjs": "6.2.0", - "source-map": "0.5.6" - } - } - } - }, "@angular/animations": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-6.0.3.tgz", - "integrity": "sha512-X8ey0dvh2ielxPCJOCcdNPAmKW5toCpzHdbjdZqlR9o6uP1UmzEKHd7Un7jVIINRtq9ZB7vnFWIJl0BA7C8U0g==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-6.1.1.tgz", + "integrity": "sha512-6o15ZtoTWlvZgu/qTz2xj25A1ZRr+BGRHxkhQDZ4hADEIUyYi96dVQxkUttXTtmACRAhK4oXkL7xleVm5iN6ow==", "requires": { "tslib": "1.9.2" } }, "@angular/cdk": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-6.2.0.tgz", - "integrity": "sha512-K5GMMxsIJOETwX9lE9rDz/Fg7EiacZnJP3/nN1cElZ9fmf1eKna/gxICMpKL3uy/VDik8DvH98J8DUKgj6CoNA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-6.4.0.tgz", + "integrity": "sha512-JEJ7OsVxoyEgsWG5c48mXLFGOUq0I8Mijar1ktI+TcIqdoLwO1XClcoh8MbgwImp3ZISfOghHVqcjLxhp4UASA==", "requires": { "tslib": "1.9.2" } }, "@angular/cli": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-6.0.5.tgz", - "integrity": "sha512-aJXdLe8IELMtAhrEm9bU5bIKXr7E6LkNQXZfdpFuoTnh8S8EYRHD/QO6RhS/IpuRWMnLN2C7hsgRIQr1uBzNlg==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-6.1.1.tgz", + "integrity": "sha512-lY8c6x6mJsIEQRKajjxNxTaG0WlcHZp+0wP+aJ5n4plmYKxTIVo4IMTRpzMxNBnPy//OKD9gRM2hPbik7+7geQ==", "dev": true, "requires": { - "@angular-devkit/architect": "0.6.5", - "@angular-devkit/core": "0.6.5", - "@angular-devkit/schematics": "0.6.5", - "@schematics/angular": "0.6.5", - "@schematics/update": "0.6.5", + "@angular-devkit/architect": "0.7.1", + "@angular-devkit/core": "0.7.1", + "@angular-devkit/schematics": "0.7.1", + "@schematics/angular": "0.7.1", + "@schematics/update": "0.7.1", "opn": "5.3.0", - "resolve": "1.7.1", "rxjs": "6.2.0", "semver": "5.5.0", - "silent-error": "1.1.0", "symbol-observable": "1.2.0", "yargs-parser": "10.1.0" }, "dependencies": { "@angular-devkit/architect": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.6.5.tgz", - "integrity": "sha512-HlCCnpg301XGbNAycPCadZlSVCOHlFtw2qz2zzNBIWW2Cbi9q3eazWCg/OeD237qgJ8hxvGSkOi7vWG2AoYkIg==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.7.1.tgz", + "integrity": "sha512-eJ9hXQ4JC8yJKmCjShikg48IVqYh/0laJ2tnfwrILtwbeM1mDYtpjR5NNUvovR+voYZJyI7uHc/XRu9CCz4NhA==", "dev": true, "requires": { - "@angular-devkit/core": "0.6.5", + "@angular-devkit/core": "0.7.1", "rxjs": "6.2.0" } }, "@angular-devkit/core": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.6.5.tgz", - "integrity": "sha512-DpowzV6ObjVJb6ccElAD5rlqL9BN32ZGspg14YVyXf9mlmcNw3gm+P9BGIhuwJ8rt9fqmse87W59/Z2MLUTVkQ==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.7.1.tgz", + "integrity": "sha512-m+j1d+oMZRu0jUN7UyE4C8Kh8YoY9TP6ltjcrO2SzE89mzHg+apY1taf4EzOYKrrCZxw7Q4viPa8EXeF2AJ1cQ==", "dev": true, "requires": { "ajv": "6.4.0", @@ -179,6 +170,50 @@ "source-map": "0.5.6" } }, + "@angular-devkit/schematics": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-0.7.1.tgz", + "integrity": "sha512-8G223dq6RgV1tvp3od6mn5TX3VH57OWCN+v6pz4o27pDOQUhxX94VeuetOrhe2oYu4nmcs8epCateG4CJF7phg==", + "dev": true, + "requires": { + "@angular-devkit/core": "0.7.1", + "rxjs": "6.2.0" + } + }, + "@schematics/angular": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-0.7.1.tgz", + "integrity": "sha512-wvP1ofwKVIbu3UCCsLTxdNZ7D0iVl0njoHvFEiMAQEVO+1VnhY3y+xpvnujhmU0pdYfIv17mc/hRNwEH6gQwkQ==", + "dev": true, + "requires": { + "@angular-devkit/core": "0.7.1", + "@angular-devkit/schematics": "0.7.1", + "typescript": "2.7.2" + }, + "dependencies": { + "typescript": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz", + "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==", + "dev": true + } + } + }, + "@schematics/update": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.7.1.tgz", + "integrity": "sha512-b2LXdqGMhQVA4Iy3JzBpalRDQy/kuFzDob3nh2DuYtriJLnvRuAvIQ9J6bbUGpQhad8ED+lDjx2ADt1gfBg9xQ==", + "dev": true, + "requires": { + "@angular-devkit/core": "0.7.1", + "@angular-devkit/schematics": "0.7.1", + "npm-registry-client": "8.6.0", + "rc": "1.2.8", + "rxjs": "6.2.0", + "semver": "5.5.0", + "semver-intersect": "1.3.1" + } + }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", @@ -197,31 +232,31 @@ } }, "@angular/common": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-6.0.3.tgz", - "integrity": "sha512-tqEYeEXoaw2kzSUfTrmC3ruJ87trS61SHayIf56f/jtEVn+4pbgJDTNvLSnB6QEaMTn7sX6QBroauMWmdTVSvA==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-6.1.1.tgz", + "integrity": "sha512-mrMG0Q+BUPuiez3RKWkrMCv3r/9iJl1DoTLhLNsgWvpj0IRGcARUyJgmTZqVVVCeacjFQEM+DopbVQ7AjQCkoA==", "requires": { "tslib": "1.9.2" } }, "@angular/compiler": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-6.0.3.tgz", - "integrity": "sha512-nS65UI6f7grs2k+ggtkwXSBUQ1D/LVSFfXjWR5olxATx25QbIKABec90JphPE4FfhhVm1uonQ/vaSVCjh83Euw==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-6.1.1.tgz", + "integrity": "sha512-60qSglzK8lncRI13axHaJryjGvdnue5yI8yXiJEEXMHba+AJ9xfoXH2aPPqBHvUX7bU4p4fsSVGDOe7kryo/ow==", "requires": { "tslib": "1.9.2" } }, "@angular/compiler-cli": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.0.3.tgz", - "integrity": "sha512-n7L/g2leGSl1LffZ3ZuB5bY4sJoZWjkG5tg9IafXQ8nAIUtKPl+ovoiNUhAaA4CvlUlgYHMcbezKpc9285LnyQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.1.1.tgz", + "integrity": "sha512-J1FJbeN95Oe3hLNZnNFQUpKFxh5mb11EPKHhGScqajK1+2eZrmKfw6SRi2n4R1FPODerML+q4+uJjywjV5QSOw==", "dev": true, "requires": { "chokidar": "1.7.0", "minimist": "1.2.0", "reflect-metadata": "0.1.12", - "tsickle": "0.27.5" + "tsickle": "0.32.1" }, "dependencies": { "anymatch": { @@ -354,37 +389,56 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "tsickle": { + "version": "0.32.1", + "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.32.1.tgz", + "integrity": "sha512-JW9j+W0SaMSZGejIFZBk0AiPfnhljK3oLx5SaqxrJhjlvzFyPml5zqG1/PuScUj6yTe1muEqwk5CnDK0cOZmKw==", + "dev": true, + "requires": { + "jasmine-diff": "0.1.3", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "source-map": "0.6.1", + "source-map-support": "0.5.6" + } } } }, "@angular/core": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-6.0.3.tgz", - "integrity": "sha512-YJk0kS/V9C2JFKMHfiw6TNxmfkYWGW4HzqGOm/VoPkvj9O4Erkz/OtOOc8hYGmXFmQz1UpOAByzY2XIlEi72XQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-6.1.1.tgz", + "integrity": "sha512-4h/8abB4N5meQHg69IV1wtNKUKe8e0w9z9s/0ZYbvFPVqWB9OkcSihsS2xmfSD3glIgSgS5424/jmiTB9G0Tcw==", "requires": { "tslib": "1.9.2" } }, "@angular/forms": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-6.0.3.tgz", - "integrity": "sha512-YAjRMERggkzb3cIo8iKOz1xB89Ko4fSh4A1suqrv9o2Xu41Qxs6LwrWVW+6x+N5kBzvbKFZyADqSz1otMQP83Q==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-6.1.1.tgz", + "integrity": "sha512-NiEMJN0INoK6khjS+YJAqt3FS2nXy3JH4J10m55e2gwzldHrsU94bWUDEOEMbPfm7dFC8G1114p/MneleoXTvg==", "requires": { "tslib": "1.9.2" } }, "@angular/http": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@angular/http/-/http-6.0.3.tgz", - "integrity": "sha512-9GF4hEsm/mK/kk+skn1y54IpsSGcgGnFxHctEFSSyUKTub9gFirkbuLOx9T9fXIKtXqCxnXolHCE7ncfOfS7GA==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-6.1.1.tgz", + "integrity": "sha512-1VtFTSJeo1Q3pgbQ65NyMZFV3f+Jd8i4XMbmqOf+L7StosI1HE8eiDbm1SgQOuXZv0MFwgKMEXy7lzfnyl9Udw==", "requires": { "tslib": "1.9.2" } }, "@angular/language-service": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-6.0.3.tgz", - "integrity": "sha512-yeEMS8GwEhyMKD4nlzg/0Ug56k5Zb58uShjVlh+kr6WWHMRzAtecvNHePlakPjxyWzf/EIDWnMJV31HGOGQYZg==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-6.1.1.tgz", + "integrity": "sha512-DRJAvBMMfbkadaD6mRJpk2DUdMCbqvJmJndi+ewdZ7BpC1+/tzJFtvIHbS59kGbuMvda4YS9gfYk+x13VQfthg==", "dev": true }, "@angular/material": { @@ -396,25 +450,25 @@ } }, "@angular/platform-browser": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-6.0.3.tgz", - "integrity": "sha512-OTgOE6WzytV9fnnCwvoyyXI4Avzmfu9RbBUhVRVontov6LlN9XL8BrzLidT7/lPAEQmHuoRCuNrSSY8TokPJCA==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-6.1.1.tgz", + "integrity": "sha512-YgFP6NQgk7ZkKKfywmLC3wBZuepYLttjIvzWhbvutJpRahAw1qDQaeCXdv75DU4U8fqHDKkllZS/kIdkc3cxQw==", "requires": { "tslib": "1.9.2" } }, "@angular/platform-browser-dynamic": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.0.3.tgz", - "integrity": "sha512-OSaBiog3jH52c+pJhG6qsZjVipzw3ThTcFaymetlBwdRkZ9ch7eIQFhlIXPe4oM3wJt39LTG7peRymWPbnx4uw==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.1.1.tgz", + "integrity": "sha512-OYXMgVapk6XmRwWgW05fN30dj1fSSiJjCXMzxxG/y+hIMe/O9HLfShADQHee9XRQJhZEdDB0rr7tOFYmH1c5Uw==", "requires": { "tslib": "1.9.2" } }, "@angular/platform-server": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-6.0.3.tgz", - "integrity": "sha512-Ou2FrBvhK/RoS4kIyU/Q+UpfkGulhfRlGW3MVVK6G1WcwJ06+OcZE7pgvkV/4U+kvmNHf1EYIl7a+kauquQg0g==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-6.1.1.tgz", + "integrity": "sha512-fss9CRIAK599lb7X5aOcKdGXZ3qr5t/QfkMEYfIc7A/nJ7wupa5L2pGFvifxClJIkFMB7Q7GMQn57WgnPaU5zw==", "requires": { "domino": "2.0.2", "tslib": "1.9.2", @@ -422,9 +476,9 @@ } }, "@angular/router": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-6.0.3.tgz", - "integrity": "sha512-7pQYu5DnNXwZ8nZrKtTpBo3HQoirKSP2hGAoHA0rPsqZvavBfuhUzsksYVvKvFEtoPmBe69uEYydhr115MTTNQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-6.1.1.tgz", + "integrity": "sha512-pYvB0wQI7/TS/BLeEy707t1wMujvM8fAlSw+BJs4iqYJwYuG9nGG3IzKvR90fZDVdseNFNa72WokXaK1BPSs8Q==", "requires": { "tslib": "1.9.2" } @@ -450,69 +504,17 @@ "integrity": "sha512-eZyguQvIltJuhCVgPPR1IyMAztykRuvGalwCH1G2ODWKGZPNrWlJbxVMqzUeSJTBS268RIFIkMTwEDKi/xCQoQ==" }, "@ngtools/webpack": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-6.0.7.tgz", - "integrity": "sha512-4kq1RwjMkmL0zC7A9vlhIvBruPiFW351gyDSxoOimXNIv9N/8Br9oxcNKOvDCwHWepKeoPpIznzUiIOJNbJO6g==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-6.1.4.tgz", + "integrity": "sha512-LiDAvHWKdTyOp8YvjWH1oZtIY8qod13UomvTRQ2FuXXjJwNmi4Bk1VpfGCq3hhtdpo4x/aWHFBuBBpPxoJ74SQ==", "dev": true, "requires": { - "@angular-devkit/core": "0.6.7", + "@angular-devkit/core": "0.7.4", + "rxjs": "6.2.0", "tree-kill": "1.2.0", "webpack-sources": "1.1.0" } }, - "@schematics/angular": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-0.6.5.tgz", - "integrity": "sha512-oB9j+IqVtoSn3kEV6mnBslG8pxaOlUW2Kw7aCVf9DzEqTZEH5awKuPuhRkAVyiXdwHPDn21xoUGVRLy4y/BafA==", - "dev": true, - "requires": { - "@angular-devkit/core": "0.6.5", - "@angular-devkit/schematics": "0.6.5", - "typescript": "2.7.2" - }, - "dependencies": { - "@angular-devkit/core": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.6.5.tgz", - "integrity": "sha512-DpowzV6ObjVJb6ccElAD5rlqL9BN32ZGspg14YVyXf9mlmcNw3gm+P9BGIhuwJ8rt9fqmse87W59/Z2MLUTVkQ==", - "dev": true, - "requires": { - "ajv": "6.4.0", - "chokidar": "2.0.3", - "rxjs": "6.2.0", - "source-map": "0.5.6" - } - } - } - }, - "@schematics/update": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.6.5.tgz", - "integrity": "sha512-Gpp3d7KPmheM61WLJ4YEse4YpR5l0PZm/pR1cy8LfA+s6y3SiX/uHy9rtrmLMa4mUZeNwu2M8j8Eu5aPgtsCWw==", - "dev": true, - "requires": { - "@angular-devkit/core": "0.6.5", - "@angular-devkit/schematics": "0.6.5", - "npm-registry-client": "8.6.0", - "rxjs": "6.2.0", - "semver": "5.5.0", - "semver-intersect": "1.3.1" - }, - "dependencies": { - "@angular-devkit/core": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.6.5.tgz", - "integrity": "sha512-DpowzV6ObjVJb6ccElAD5rlqL9BN32ZGspg14YVyXf9mlmcNw3gm+P9BGIhuwJ8rt9fqmse87W59/Z2MLUTVkQ==", - "dev": true, - "requires": { - "ajv": "6.4.0", - "chokidar": "2.0.3", - "rxjs": "6.2.0", - "source-map": "0.5.6" - } - } - } - }, "@swimlane/ngx-charts": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/@swimlane/ngx-charts/-/ngx-charts-8.1.0.tgz", @@ -841,6 +843,48 @@ "long": "3.2.0" } }, + "@webpack-contrib/schema-utils": { + "version": "1.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@webpack-contrib/schema-utils/-/schema-utils-1.0.0-beta.0.tgz", + "integrity": "sha512-LonryJP+FxQQHsjGBi6W786TQB1Oym+agTpY0c+Kj8alnIw+DLUJb6SI8Y1GHGhLCH1yPRrucjObUmxNICQ1pg==", + "dev": true, + "requires": { + "ajv": "6.4.0", + "ajv-keywords": "3.2.0", + "chalk": "2.4.1", + "strip-ansi": "4.0.0", + "text-table": "0.2.0", + "webpack-log": "1.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" + } + }, + "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" + } + } + } + }, "abbrev": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", @@ -929,6 +973,12 @@ "uri-js": "3.0.2" } }, + "ajv-errors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.0.tgz", + "integrity": "sha1-7PAh+hCP0X37Xms4Py3SM+Mf/Fk=", + "dev": true + }, "ajv-keywords": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", @@ -1094,9 +1144,9 @@ } }, "app-root-path": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz", - "integrity": "sha1-zWLc+OT9WkF+/GZNLlsQZTxlG0Y=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.1.0.tgz", + "integrity": "sha1-mL9lmTJ+zqGZMJhm6BQDaP0uZGo=", "dev": true }, "append-buffer": { @@ -1214,7 +1264,7 @@ "dev": true, "requires": { "define-properties": "1.1.2", - "es-abstract": "1.11.0" + "es-abstract": "1.12.0" } }, "array-initial": { @@ -1435,16 +1485,16 @@ "dev": true }, "autoprefixer": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.5.2.tgz", - "integrity": "sha512-X3BmI+0YBTGaqw0cR9FCPTyTAAPRpijzIUPkysRumGmJC6r8vhix1RjzLNjX01Kbb/iSezjZ9OR3G92pa31+WQ==", + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.6.5.tgz", + "integrity": "sha512-PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig==", "dev": true, "requires": { "browserslist": "3.2.8", - "caniuse-lite": "1.0.30000846", + "caniuse-lite": "1.0.30000877", "normalize-range": "0.1.2", "num2fraction": "1.2.2", - "postcss": "6.0.22", + "postcss": "6.0.23", "postcss-value-parser": "3.3.0" } }, @@ -1967,19 +2017,20 @@ "dev": true, "requires": { "browserify-aes": "1.2.0", - "browserify-des": "1.0.1", + "browserify-des": "1.0.2", "evp_bytestokey": "1.0.3" } }, "browserify-des": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.1.tgz", - "integrity": "sha512-zy0Cobe3hhgpiOM32Tj7KQ3Vl91m0njwsjzZQK1L+JDf11dzP9qIvjreVinsvXrgfjhStXwUWAEpB9D7Gwmayw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, "requires": { "cipher-base": "1.0.4", "des.js": "1.0.0", - "inherits": "2.0.3" + "inherits": "2.0.3", + "safe-buffer": "5.1.2" } }, "browserify-rsa": { @@ -2002,7 +2053,7 @@ "browserify-rsa": "4.0.1", "create-hash": "1.2.0", "create-hmac": "1.1.7", - "elliptic": "6.4.0", + "elliptic": "6.4.1", "inherits": "2.0.3", "parse-asn1": "5.1.1" } @@ -2022,8 +2073,8 @@ "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000846", - "electron-to-chromium": "1.3.48" + "caniuse-lite": "1.0.30000877", + "electron-to-chromium": "1.3.58" } }, "browserstack": { @@ -2042,7 +2093,7 @@ "dev": true, "requires": { "base64-js": "1.3.0", - "ieee754": "1.1.11", + "ieee754": "1.1.12", "isarray": "1.0.0" } }, @@ -2169,18 +2220,6 @@ "unset-value": "1.0.0" } }, - "cache-loader": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-1.2.2.tgz", - "integrity": "sha512-rsGh4SIYyB9glU+d0OcHwiXHXBoUgDhHZaQ1KAbiXqfz1CDPxtTboh1gPbJ0q2qdO8a9lfcjgC5CJ2Ms32y5bw==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "mkdirp": "0.5.1", - "neo-async": "2.5.1", - "schema-utils": "0.4.5" - } - }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", @@ -2238,9 +2277,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000846", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000846.tgz", - "integrity": "sha512-qxUOHr5mTaadWH1ap0ueivHd8x42Bnemcn+JutVr7GWmm2bU4zoBhjuv5QdXgALQnnT626lOQros7cCDf8PwCg==", + "version": "1.0.30000877", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000877.tgz", + "integrity": "sha512-h04kV/lcuhItU1CZTJOxUEk/9R+1XeJqgc67E+XC8J9TjPM8kzVgOn27ZtRdDUo8O5F8U4QRCzDWJrVym3w3Cg==", "dev": true }, "caseless": { @@ -2365,12 +2404,20 @@ } }, "clean-css": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz", - "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", "dev": true, "requires": { - "source-map": "0.5.6" + "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 + } } }, "cli-cursor": { @@ -2474,17 +2521,31 @@ } }, "codelyzer": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-3.1.2.tgz", - "integrity": "sha1-n/HwQfubXuXb60W6hm368EmDrwQ=", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.4.4.tgz", + "integrity": "sha512-JgFMudx0n50IuE/ydAfnkksCwQkWSVWgYvhDPHZgDUbmsiYC22VuEXKu5l8Hhx9UJsLgjWDLjTAFGj2WaW5DUA==", "dev": true, "requires": { - "app-root-path": "2.0.1", + "app-root-path": "2.1.0", "css-selector-tokenizer": "0.7.0", "cssauron": "1.4.0", "semver-dsl": "1.0.1", - "source-map": "0.5.6", - "sprintf-js": "1.0.3" + "source-map": "0.5.7", + "sprintf-js": "1.1.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "sprintf-js": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz", + "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=", + "dev": true + } } }, "collection-map": { @@ -2590,35 +2651,35 @@ "dev": true }, "compressible": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.13.tgz", - "integrity": "sha1-DRAgq5JLL9tNYnmHXH1tq6a6p6k=", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz", + "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=", "dev": true, "requires": { - "mime-db": "1.33.0" + "mime-db": "1.35.0" + }, + "dependencies": { + "mime-db": { + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", + "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==", + "dev": true + } } }, "compression": { - "version": "1.7.2", - "resolved": "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz", - "integrity": "sha1-qv+81qr4VLROuygDU9WtFlH1mmk=", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", + "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", "dev": true, "requires": { "accepts": "1.3.5", "bytes": "3.0.0", - "compressible": "2.0.13", + "compressible": "2.0.14", "debug": "2.6.9", "on-headers": "1.0.1", - "safe-buffer": "5.1.1", + "safe-buffer": "5.1.2", "vary": "1.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - } } }, "concat-map": { @@ -2762,9 +2823,9 @@ } }, "copy-webpack-plugin": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.1.tgz", - "integrity": "sha512-OlTo6DYg0XfTKOF8eLf79wcHm4Ut10xU2cRBRPMW/NA5F9VMjZGTfRHWDIYC3s+1kObGYrBLshXWU1K0hILkNQ==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.2.tgz", + "integrity": "sha512-zmC33E8FFSq3AbflTvqvPvBo621H36Afsxlui91d+QyZxPIuXghfnTsa1CuqiAaCPgJoSUWfTFbKJnadZpKEbQ==", "dev": true, "requires": { "cacache": "10.0.4", @@ -2789,25 +2850,26 @@ "dev": true }, "cosmiconfig": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", - "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", + "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", "dev": true, "requires": { "is-directory": "0.3.1", "js-yaml": "3.11.0", - "minimist": "1.2.0", - "object-assign": "4.1.1", - "os-homedir": "1.0.2", - "parse-json": "2.2.0", - "require-from-string": "1.2.1" + "parse-json": "4.0.0", + "require-from-string": "2.0.2" }, "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "1.3.1", + "json-parse-better-errors": "1.0.2" + } } } }, @@ -2818,7 +2880,7 @@ "dev": true, "requires": { "bn.js": "4.11.8", - "elliptic": "6.4.0" + "elliptic": "6.4.1" } }, "create-hash": { @@ -3172,6 +3234,12 @@ "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", "dev": true }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, "deep-freeze-strict": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-freeze-strict/-/deep-freeze-strict-1.1.1.tgz", @@ -3616,20 +3684,20 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.48", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.48.tgz", - "integrity": "sha1-07DYWTgUBE4JLs4hCPw6ya6kuQA=", + "version": "1.3.58", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.58.tgz", + "integrity": "sha512-AGJxlBEn2wOohxqWZkISVsOjZueKTQljfEODTDSEiMqSpH0S+xzV+/5oEM9AGaqhu7DzrpKOgU7ocQRjj0nJmg==", "dev": true }, "elliptic": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "dev": true, "requires": { "bn.js": "4.11.8", "brorand": "1.1.0", - "hash.js": "1.1.3", + "hash.js": "1.1.5", "hmac-drbg": "1.0.1", "inherits": "2.0.3", "minimalistic-assert": "1.0.1", @@ -3727,9 +3795,9 @@ } }, "enhanced-resolve": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz", - "integrity": "sha512-jox/62b2GofV1qTUQTMPEJSDIGycS43evqYzD/KVtEb9OCoki9cnacUPxCrZa7JfPzZSYOCZhu9O9luaMxAX8g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -3776,15 +3844,15 @@ } }, "es-abstract": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.11.0.tgz", - "integrity": "sha512-ZnQrE/lXTTQ39ulXZ+J1DTFazV9qBy61x2bY071B+qGco8Z8q1QddsLdt/EF8Ai9hcWH72dWS0kFqXLxOxqslA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "dev": true, "requires": { "es-to-primitive": "1.1.1", "function-bind": "1.1.1", - "has": "1.0.1", - "is-callable": "1.1.3", + "has": "1.0.3", + "is-callable": "1.1.4", "is-regex": "1.0.4" } }, @@ -3794,7 +3862,7 @@ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "dev": true, "requires": { - "is-callable": "1.1.3", + "is-callable": "1.1.4", "is-date-object": "1.0.1", "is-symbol": "1.0.1" } @@ -4023,9 +4091,9 @@ } }, "eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "dev": true, "requires": { "esrecurse": "4.2.1", @@ -4118,7 +4186,7 @@ "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", "dev": true, "requires": { - "original": "1.0.1" + "original": "1.0.2" } }, "evp_bytestokey": { @@ -4347,7 +4415,7 @@ "on-finished": "2.3.0", "parseurl": "1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.3", + "proxy-addr": "2.0.4", "qs": "6.5.1", "range-parser": "1.2.0", "safe-buffer": "5.1.1", @@ -4549,7 +4617,7 @@ "dev": true, "requires": { "loader-utils": "1.1.0", - "schema-utils": "0.4.5" + "schema-utils": "0.4.7" } }, "file-uri-to-path": { @@ -6082,9 +6150,9 @@ } }, "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { "function-bind": "1.1.1" @@ -6209,9 +6277,9 @@ } }, "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", + "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", "dev": true, "requires": { "inherits": "2.0.3", @@ -6254,7 +6322,7 @@ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "hash.js": "1.1.3", + "hash.js": "1.1.5", "minimalistic-assert": "1.0.1", "minimalistic-crypto-utils": "1.0.1" } @@ -6299,18 +6367,35 @@ "dev": true }, "html-minifier": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.16.tgz", - "integrity": "sha512-zP5EfLSpiLRp0aAgud4CQXPQZm9kXwWjR/cF0PfdOj+jjWnOaCgeZcll4kYXSvIBPeUMmyaSc7mM4IDtA+kboA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.19.tgz", + "integrity": "sha512-Qr2JC9nsjK8oCrEmuB430ZIA8YWbF3D5LSjywD75FTuXmeqacwHgIM8wp3vHYzzPbklSjp53RdmDuzR4ub2HzA==", "dev": true, "requires": { "camel-case": "3.0.0", "clean-css": "4.1.11", - "commander": "2.15.1", + "commander": "2.16.0", "he": "1.1.1", "param-case": "2.1.1", "relateurl": "0.2.7", - "uglify-js": "3.3.28" + "uglify-js": "3.4.7" + }, + "dependencies": { + "clean-css": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz", + "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=", + "dev": true, + "requires": { + "source-map": "0.5.6" + } + }, + "commander": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", + "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", + "dev": true + } } }, "html-webpack-plugin": { @@ -6319,7 +6404,7 @@ "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", "dev": true, "requires": { - "html-minifier": "3.5.16", + "html-minifier": "3.5.19", "loader-utils": "0.2.17", "lodash": "4.17.10", "pretty-error": "2.1.1", @@ -6518,9 +6603,9 @@ "dev": true }, "ieee754": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.11.tgz", - "integrity": "sha512-VhDzCKN7K8ufStx/CLj5/PDTMgph+qwN5Pkd5i0sGnVwk56zJ0lkT8Qzi1xqWLS0Wp29DgDtNeS7v8/wMoZeHg==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", "dev": true }, "iferr": { @@ -6548,6 +6633,24 @@ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", "dev": true }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "2.1.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "3.0.0" + } + }, "import-local": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", @@ -6700,9 +6803,9 @@ "dev": true }, "ipaddr.js": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", - "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", "dev": true }, "is-absolute": { @@ -6766,9 +6869,9 @@ } }, "is-callable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", - "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", "dev": true }, "is-data-descriptor": { @@ -6995,7 +7098,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "1.0.1" + "has": "1.0.3" } }, "is-relative": { @@ -7341,6 +7444,15 @@ "integrity": "sha1-pHheE11d9lAk38kiSVPfWFvSdmw=", "dev": true }, + "jasmine-diff": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/jasmine-diff/-/jasmine-diff-0.1.3.tgz", + "integrity": "sha1-k8zC3MQQKMXd1GBlWAdIOfLe6qg=", + "dev": true, + "requires": { + "diff": "3.5.0" + } + }, "jasmine-spec-reporter": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz", @@ -7357,9 +7469,9 @@ "dev": true }, "js-base64": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.5.tgz", - "integrity": "sha512-aUnNwqMOXw3yvErjMPSQu6qIIzUmT1e5KcU1OZxRDU1g/am6mzBvcrmLAYwzmB59BHPrh5/tKaiF4OPhqRWESQ==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.8.tgz", + "integrity": "sha512-hm2nYpDrwoO/OzBhdcqs/XGT6XjSuSSCVEpia+Kl2J6x4CYt5hISlVL/AYU1khoDXv0AQVgxtdJySb9gjAn56Q==", "dev": true, "optional": true }, @@ -7391,6 +7503,12 @@ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -7826,11 +7944,12 @@ "dev": true }, "less": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/less/-/less-3.0.4.tgz", - "integrity": "sha512-q3SyEnPKbk9zh4l36PGeW2fgynKu+FpbhiUNx/yaiBUQ3V0CbACCgb9FzYWcRgI2DJlP6eI4jc8XPrCTi55YcQ==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz", + "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==", "dev": true, "requires": { + "clone": "2.1.2", "errno": "0.1.7", "graceful-fs": "4.1.11", "image-size": "0.5.5", @@ -7841,6 +7960,12 @@ "source-map": "0.6.1" }, "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -7903,9 +8028,9 @@ "dev": true }, "license-webpack-plugin": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-1.3.1.tgz", - "integrity": "sha512-NqAFodJdpBUuf1iD+Ij8hQvF0rCFKlO2KaieoQzAPhFgzLCtJnC7Z7x5gQbGNjoe++wOKAtAmwVEIBLqq2Yp1A==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-1.4.0.tgz", + "integrity": "sha512-iwuNFMWbXS76WiQXJBTs8/7Tby4NQnY8AIkBMuJG5El79UT8zWrJQMfpW+KRXt4Y2Bs5uk+Myg/MO7ROSF8jzA==", "dev": true, "requires": { "ejs": "2.6.1" @@ -8572,11 +8697,12 @@ "dev": true }, "mini-css-extract-plugin": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.0.tgz", - "integrity": "sha512-2Zik6PhUZ/MbiboG6SDS9UTPL4XXy4qnyGjSdCIWRrr8xb6PwLtHE+AYOjkXJWdF0OG8vo/yrJ8CgS5WbMpzIg==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.1.tgz", + "integrity": "sha512-XWuB3G61Rtasq/gLe7cp5cuozehE6hN+E4sxCamRR/WDiHTg+f7ZIAS024r8UJQffY+e2gGELXQZgQoFDfNDCg==", "dev": true, "requires": { + "@webpack-contrib/schema-utils": "1.0.0-beta.0", "loader-utils": "1.1.0", "webpack-sources": "1.1.0" } @@ -8622,7 +8748,7 @@ "parallel-transform": "1.1.0", "pump": "2.0.1", "pumpify": "1.5.1", - "stream-each": "1.2.2", + "stream-each": "1.2.3", "through2": "2.0.3" } }, @@ -8767,9 +8893,9 @@ "dev": true }, "neo-async": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz", - "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.2.tgz", + "integrity": "sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw==", "dev": true }, "netmask": { @@ -8821,16 +8947,15 @@ "dev": true }, "node-gyp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", - "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", "dev": true, "optional": true, "requires": { "fstream": "1.0.11", "glob": "7.1.2", "graceful-fs": "4.1.11", - "minimatch": "3.0.4", "mkdirp": "0.5.1", "nopt": "3.0.6", "npmlog": "4.1.2", @@ -8873,7 +8998,7 @@ "querystring-es3": "0.2.1", "readable-stream": "2.3.6", "stream-browserify": "2.0.1", - "stream-http": "2.8.2", + "stream-http": "2.8.3", "string_decoder": "1.1.1", "timers-browserify": "2.0.10", "tty-browserify": "0.0.0", @@ -8891,9 +9016,9 @@ } }, "node-sass": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.0.tgz", - "integrity": "sha512-QFHfrZl6lqRU3csypwviz2XLgGNOoWQbo2GOvtsfQqOfL4cy1BtWnhx/XUeAO9LT3ahBzSRXcEO6DdvAH9DzSg==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz", + "integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==", "dev": true, "optional": true, "requires": { @@ -8910,9 +9035,9 @@ "meow": "3.7.0", "mkdirp": "0.5.1", "nan": "2.10.0", - "node-gyp": "3.6.2", + "node-gyp": "3.8.0", "npmlog": "4.1.2", - "request": "2.79.0", + "request": "2.87.0", "sass-graph": "2.2.4", "stdout-stream": "1.4.0", "true-case-path": "1.0.2" @@ -8922,26 +9047,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true, - "optional": true - }, - "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", "dev": true, "optional": true }, @@ -8950,6 +9055,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, + "optional": true, "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", @@ -8958,89 +9064,10 @@ "supports-color": "2.0.0" } }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" - } - }, - "har-validator": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", - "dev": true, - "optional": true, - "requires": { - "chalk": "1.1.3", - "commander": "2.15.1", - "is-my-json-valid": "2.17.2", - "pinkie-promise": "2.0.1" - } - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.1" - } - }, - "qs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", - "dev": true, - "optional": true - }, - "request": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.7.0", - "caseless": "0.11.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "2.0.6", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "qs": "6.3.2", - "stringstream": "0.0.6", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.4.3", - "uuid": "3.2.1" - } - }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", "dev": true, "optional": true } @@ -9356,7 +9383,7 @@ "dev": true, "requires": { "define-properties": "1.1.2", - "es-abstract": "1.11.0" + "es-abstract": "1.12.0" } }, "object.map": { @@ -9496,12 +9523,12 @@ } }, "original": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.1.tgz", - "integrity": "sha512-IEvtB5vM5ULvwnqMxWBLxkS13JIEXbakizMSo3yoPNPCIWzg8TG3Usn/UhXoZFM/m+FuEA20KdzPSFq/0rS+UA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", "dev": true, "requires": { - "url-parse": "1.4.0" + "url-parse": "1.4.3" } }, "os-browserify": { @@ -9959,9 +9986,9 @@ "dev": true }, "portfinder": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", - "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz", + "integrity": "sha512-icBXCFQxzlK2PMepOM0QeEdPPFSLAaXXeuKOv5AClJlMy1oVCBrkDGJ12IZYesI/BF8mpeVco3vRCmgeBb4+hw==", "dev": true, "requires": { "async": "1.5.2", @@ -9976,9 +10003,9 @@ "dev": true }, "postcss": { - "version": "6.0.22", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", - "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { "chalk": "2.4.1", @@ -10011,54 +10038,32 @@ "integrity": "sha512-5l327iI75POonjxkXgdRCUS+AlzAdBx4pOvMEhTKTCjb1p8IEeVR9yx3cPbmN7LIWJLbfnIXxAhoB4jpD0c/Cw==", "dev": true, "requires": { - "postcss": "6.0.22", + "postcss": "6.0.23", "postcss-value-parser": "3.3.0", "read-cache": "1.0.0", "resolve": "1.7.1" } }, "postcss-load-config": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", - "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", - "dev": true, - "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1", - "postcss-load-options": "1.2.0", - "postcss-load-plugins": "2.3.0" - } - }, - "postcss-load-options": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", - "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", - "dev": true, - "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1" - } - }, - "postcss-load-plugins": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", - "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", + "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", "dev": true, "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1" + "cosmiconfig": "4.0.0", + "import-cwd": "2.1.0" } }, "postcss-loader": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.5.tgz", - "integrity": "sha512-pV7kB5neJ0/1tZ8L1uGOBNTVBCSCXQoIsZMsrwvO8V2rKGa2tBl/f80GGVxow2jJnRJ2w1ocx693EKhZAb9Isg==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz", + "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", "dev": true, "requires": { "loader-utils": "1.1.0", - "postcss": "6.0.22", - "postcss-load-config": "1.2.0", - "schema-utils": "0.4.5" + "postcss": "6.0.23", + "postcss-load-config": "2.0.0", + "schema-utils": "0.4.7" } }, "postcss-url": { @@ -10070,7 +10075,7 @@ "mime": "1.6.0", "minimatch": "3.0.4", "mkdirp": "0.5.1", - "postcss": "6.0.22", + "postcss": "6.0.23", "xxhashjs": "0.2.2" } }, @@ -10279,13 +10284,13 @@ } }, "proxy-addr": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", - "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", "dev": true, "requires": { "forwarded": "0.1.2", - "ipaddr.js": "1.6.0" + "ipaddr.js": "1.8.0" } }, "proxy-agent": { @@ -10500,6 +10505,32 @@ "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", "dev": true }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "0.6.0", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + } + } + }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -11025,9 +11056,9 @@ "dev": true }, "require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, "require-main-filename": { @@ -11210,16 +11241,15 @@ } }, "rxjs-tslint": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/rxjs-tslint/-/rxjs-tslint-0.1.4.tgz", - "integrity": "sha512-7wW9shBod8G9qQXAvfFeIpC7R29HjAbkn9RyeY59N05R8s10OPNJeQhHFmllzqnLycgq7YUJQB6CyC2HBxvWOg==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/rxjs-tslint/-/rxjs-tslint-0.1.5.tgz", + "integrity": "sha512-odvEAx6VoZSJs5o9gWZ7SxgTuS8ldq0mr4qnprbr6flNtIt4DtNJSYJpBK0WEy0o+f1oe92XVHrmgco1e7Cpdw==", "dev": true, "requires": { "chalk": "2.4.1", "optimist": "0.6.1", "tslint": "5.10.0", - "tsutils": "2.27.1", - "typescript": "2.8.3" + "tsutils": "2.27.1" }, "dependencies": { "chalk": { @@ -11232,32 +11262,6 @@ "escape-string-regexp": "1.0.5", "supports-color": "5.4.0" } - }, - "tslint": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz", - "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "builtin-modules": "1.1.1", - "chalk": "2.4.1", - "commander": "2.15.1", - "diff": "3.5.0", - "glob": "7.1.2", - "js-yaml": "3.11.0", - "minimatch": "3.0.4", - "resolve": "1.7.1", - "semver": "5.5.0", - "tslib": "1.9.2", - "tsutils": "2.27.1" - } - }, - "typescript": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.8.3.tgz", - "integrity": "sha512-K7g15Bb6Ra4lKf7Iq2l/I5/En+hLIHmxWZGq3D4DIRNFxMNV6j2SHSvDOqs2tGd4UvD/fJvrwopzQXjLrT7Itw==", - "dev": true } } }, @@ -11367,15 +11371,15 @@ } }, "sass-loader": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.0.1.tgz", - "integrity": "sha512-MeVVJFejJELlAbA7jrRchi88PGP6U9yIfqyiG+bBC4a9s2PX+ulJB9h8bbEohtPBfZmlLhNZ0opQM9hovRXvlw==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.7.tgz", + "integrity": "sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA==", "dev": true, "requires": { "clone-deep": "2.0.2", "loader-utils": "1.1.0", "lodash.tail": "4.1.1", - "neo-async": "2.5.1", + "neo-async": "2.5.2", "pify": "3.0.0" } }, @@ -11395,9 +11399,9 @@ "dev": true }, "schema-utils": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", - "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", + "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.4.0", @@ -11411,7 +11415,7 @@ "dev": true, "optional": true, "requires": { - "js-base64": "2.4.5", + "js-base64": "2.4.8", "source-map": "0.4.4" }, "dependencies": { @@ -11672,15 +11676,6 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, - "silent-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/silent-error/-/silent-error-1.1.0.tgz", - "integrity": "sha1-IglwbxyFCp8dENDYQJGLRvJuG8k=", - "dev": true, - "requires": { - "debug": "2.6.9" - } - }, "slack-node": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/slack-node/-/slack-node-0.2.0.tgz", @@ -11922,9 +11917,9 @@ } }, "sockjs-client": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", - "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz", + "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=", "dev": true, "requires": { "debug": "2.6.9", @@ -11932,7 +11927,7 @@ "faye-websocket": "0.11.1", "inherits": "2.0.3", "json3": "3.3.2", - "url-parse": "1.4.0" + "url-parse": "1.4.3" }, "dependencies": { "faye-websocket": { @@ -11977,6 +11972,27 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" }, + "source-map-loader": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz", + "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==", + "dev": true, + "requires": { + "async": "2.6.1", + "loader-utils": "1.1.0" + }, + "dependencies": { + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "4.17.10" + } + } + } + }, "source-map-resolve": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", @@ -12314,9 +12330,9 @@ } }, "stream-each": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", "dev": true, "requires": { "end-of-stream": "1.4.1", @@ -12330,9 +12346,9 @@ "dev": true }, "stream-http": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.2.tgz", - "integrity": "sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "dev": true, "requires": { "builtin-status-codes": "3.0.0", @@ -12444,7 +12460,7 @@ "dev": true, "requires": { "loader-utils": "1.1.0", - "schema-utils": "0.4.5" + "schema-utils": "0.4.7" } }, "stylus": { @@ -12911,52 +12927,42 @@ } } }, - "tsickle": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.27.5.tgz", - "integrity": "sha512-NP+CjM1EXza/M8mOXBLH3vkFEJiu1zfEAlC5WdJxHPn8l96QPz5eooP6uAgYtw1CcKfuSyIiheNUdKxtDWCNeg==", - "dev": true, - "requires": { - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "source-map": "0.6.1", - "source-map-support": "0.5.6" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, "tslib": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.2.tgz", "integrity": "sha512-AVP5Xol3WivEr7hnssHDsaM+lVrVXWUvd1cfXTRkTj80b//6g2wIFEH6hZG0muGZRnHGrfttpdzRk3YlBkWjKw==" }, "tslint": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.3.2.tgz", - "integrity": "sha1-5WRZ+wlacwfxA7hAUhdPXju+9u0=", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz", + "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", "dev": true, "requires": { "babel-code-frame": "6.26.0", - "colors": "1.1.2", + "builtin-modules": "1.1.1", + "chalk": "2.4.1", + "commander": "2.15.1", "diff": "3.5.0", "glob": "7.1.2", - "optimist": "0.6.1", + "js-yaml": "3.11.0", + "minimatch": "3.0.4", "resolve": "1.7.1", "semver": "5.5.0", "tslib": "1.9.2", "tsutils": "2.27.1" + }, + "dependencies": { + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" + } + } } }, "tsscmp": { @@ -13023,21 +13029,27 @@ "dev": true }, "typescript": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz", - "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", "dev": true }, "uglify-js": { - "version": "3.3.28", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.28.tgz", - "integrity": "sha512-68Rc/aA6cswiaQ5SrE979UJcXX+ADA1z33/ZsPd+fbAiVdjZ16OXdbtGO+rJUUBgK6qdf3SOPhQf3K/ybF5Miw==", + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.7.tgz", + "integrity": "sha512-J0M2i1mQA+ze3EdN9SBi751DNdAXmeFLfJrd/MDIkRc3G3Gbb9OPVSx7GIQvVwfWxQARcYV2DTxIkMyDAk3o9Q==", "dev": true, "requires": { - "commander": "2.15.1", + "commander": "2.16.0", "source-map": "0.6.1" }, "dependencies": { + "commander": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", + "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -13054,14 +13066,14 @@ "optional": true }, "uglifyjs-webpack-plugin": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.5.tgz", - "integrity": "sha512-hIQJ1yxAPhEA2yW/i7Fr+SXZVMp+VEI3d42RTHBgQd2yhp/1UdBcR3QEWPV5ahBxlqQDMEMTuTEvDHSFINfwSw==", + "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", + "schema-utils": "0.4.7", "serialize-javascript": "1.5.0", "source-map": "0.6.1", "uglify-es": "3.3.9", @@ -13301,14 +13313,14 @@ "dev": true }, "url-loader": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.0.1.tgz", - "integrity": "sha512-rAonpHy7231fmweBKUFe0bYnlGDty77E+fm53NZdij7j/YOpyGzc7ttqG1nAXl3aRs0k41o0PC3TvGXQiw2Zvw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.1.tgz", + "integrity": "sha512-vugEeXjyYFBCUOpX+ZuaunbK3QXMKaQ3zUnRfIpRBlGkY7QizCnzyyn2ASfcxsvyU3ef+CJppVywnl3Kgf13Gg==", "dev": true, "requires": { "loader-utils": "1.1.0", "mime": "2.3.1", - "schema-utils": "0.4.5" + "schema-utils": "1.0.0" }, "dependencies": { "mime": { @@ -13316,13 +13328,24 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "6.4.0", + "ajv-errors": "1.0.0", + "ajv-keywords": "3.2.0" + } } } }, "url-parse": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.0.tgz", - "integrity": "sha512-ERuGxDiQ6Xw/agN4tuoCRbmwRuZP0cJ1lJxJubXr5Q/5cDa78+Dc4wfvtxzhzhkm5VvmW6Mf8EVj9SPGN4l8Lg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz", + "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", "dev": true, "requires": { "querystringify": "2.0.0", @@ -13565,7 +13588,7 @@ "requires": { "chokidar": "2.0.3", "graceful-fs": "4.1.11", - "neo-async": "2.5.1" + "neo-async": "2.5.2" } }, "wbuf": { @@ -13606,9 +13629,9 @@ } }, "webpack": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.8.3.tgz", - "integrity": "sha512-/hfAjBISycdK597lxONjKEFX7dSIU1PsYwC3XlXUXoykWBlv9QV5HnO+ql3HvrrgfBJ7WXdnjO9iGPR2aAc5sw==", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.9.2.tgz", + "integrity": "sha512-jlWrCrJDU3sdWFprel6jHH8esN2C++Q8ehedRo74u7MWLTUJn9SD7RSgsCTEZCSRpVpMascDylAqPoldauOMfA==", "dev": true, "requires": { "@webassemblyjs/ast": "1.4.3", @@ -13619,18 +13642,19 @@ "ajv": "6.4.0", "ajv-keywords": "3.2.0", "chrome-trace-event": "0.1.3", - "enhanced-resolve": "4.0.0", - "eslint-scope": "3.7.1", + "enhanced-resolve": "4.1.0", + "eslint-scope": "3.7.3", + "json-parse-better-errors": "1.0.2", "loader-runner": "2.3.0", "loader-utils": "1.1.0", "memory-fs": "0.4.1", "micromatch": "3.1.10", "mkdirp": "0.5.1", - "neo-async": "2.5.1", + "neo-async": "2.5.2", "node-libs-browser": "2.1.0", - "schema-utils": "0.4.5", + "schema-utils": "0.4.7", "tapable": "1.0.0", - "uglifyjs-webpack-plugin": "1.2.5", + "uglifyjs-webpack-plugin": "1.3.0", "watchpack": "1.6.0", "webpack-sources": "1.1.0" } @@ -13686,16 +13710,16 @@ } }, "webpack-dev-server": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.4.tgz", - "integrity": "sha512-itcIUDFkHuj1/QQxzUFOEXXmxOj5bku2ScLEsOFPapnq2JRTm58gPdtnBphBJOKL2+M3p6+xygL64bI+3eyzzw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.5.tgz", + "integrity": "sha512-LVHg+EPwZLHIlfvokSTgtJqO/vI5CQi89fASb5JEDtVMDjY0yuIEqPPdMiKaBJIB/Ab7v/UN/sYZ7WsZvntQKw==", "dev": true, "requires": { "ansi-html": "0.0.7", "array-includes": "3.0.3", "bonjour": "3.5.0", "chokidar": "2.0.3", - "compression": "1.7.2", + "compression": "1.7.3", "connect-history-api-fallback": "1.5.0", "debug": "3.1.0", "del": "3.0.0", @@ -13708,11 +13732,11 @@ "killable": "1.0.0", "loglevel": "1.6.1", "opn": "5.3.0", - "portfinder": "1.0.13", + "portfinder": "1.0.16", "selfsigned": "1.10.3", "serve-index": "1.9.1", "sockjs": "0.3.19", - "sockjs-client": "1.1.4", + "sockjs-client": "1.1.5", "spdy": "3.4.7", "strip-ansi": "3.0.1", "supports-color": "5.4.0", @@ -13858,9 +13882,9 @@ } }, "webpack-merge": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.2.tgz", - "integrity": "sha512-/0QYwW/H1N/CdXYA2PNPVbsxO3u2Fpz34vs72xm03SRfg6bMNGfMJIQEpQjKRvkG2JvT6oRJFpDtSrwbX8Jzvw==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.4.tgz", + "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==", "dev": true, "requires": { "lodash": "4.17.10" diff --git a/package.json b/package.json index 26e55e6cfe..fa9bf38624 100644 --- a/package.json +++ b/package.json @@ -43,18 +43,18 @@ "author": "", "license": "Apache-2.0", "dependencies": { - "@angular/animations": "6.0.3", - "@angular/cdk": "^6.1.0", - "@angular/common": "6.0.3", - "@angular/compiler": "6.0.3", - "@angular/core": "6.0.3", - "@angular/forms": "6.0.3", - "@angular/http": "6.0.3", + "@angular/animations": "^6.1.1", + "@angular/cdk": "^6.4.0", + "@angular/common": "^6.1.1", + "@angular/compiler": "^6.1.1", + "@angular/core": "^6.1.1", + "@angular/forms": "^6.1.1", + "@angular/http": "^6.1.1", "@angular/material": "^6.1.0", - "@angular/platform-browser": "6.0.3", - "@angular/platform-browser-dynamic": "6.0.3", - "@angular/platform-server": "6.0.3", - "@angular/router": "6.0.3", + "@angular/platform-browser": "^6.1.1", + "@angular/platform-browser-dynamic": "^6.1.1", + "@angular/platform-server": "^6.1.1", + "@angular/router": "^6.1.1", "@ngrx/effects": "^6.0.1", "@ngrx/router-store": "^6.0.1", "@ngrx/store": "^6.0.1", @@ -79,17 +79,17 @@ "node": "8.11.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^0.6.5", - "@angular/cli": "6.0.5", - "@angular/compiler-cli": "6.0.3", - "@angular/language-service": "6.0.3", + "@angular-devkit/build-angular": "^0.7.4", + "@angular/cli": "^6.1.1", + "@angular/compiler-cli": "^6.1.1", + "@angular/language-service": "^6.1.1", "@types/jasmine": "^2.8.7", "@types/jasminewd2": "~2.0.3", "@types/karma": "^1.7.1", "@types/node": "^6.0.111", "@types/request": "^2.47.0", "codecov": "^3.0.2", - "codelyzer": "~3.1.1", + "codelyzer": "^4.4.4", "delete": "^0.3.2", "fs-extra": "^3.0.1", "gulp": "^4.0.0", @@ -111,12 +111,12 @@ "q": "^1.4.1", "replace-in-file": "^3.4.0", "request-promise-native": "^1.0.5", - "rxjs-tslint": "^0.1.4", + "rxjs-tslint": "^0.1.5", "sass-lint": "^1.12.1", "stratos-merge-dirs": "^0.2.3", "stratos-protractor-reporter": "^1.2.3", "ts-node": "~3.2.0", - "tslint": "~5.3.2", - "typescript": "2.7.2" + "tslint": "~5.10.0", + "typescript": "~2.9.0" } } diff --git a/src/frontend/app/core/auth-guard.service.ts b/src/frontend/app/core/auth-guard.service.ts index f81f2b825a..cc1c3e003d 100644 --- a/src/frontend/app/core/auth-guard.service.ts +++ b/src/frontend/app/core/auth-guard.service.ts @@ -15,17 +15,17 @@ import { AuthState } from '../store/reducers/auth.reducer'; export class AuthGuardService implements CanActivate { queryParamMap() { - const map = {}; + const paramMap = {}; const query = window.location.search.substring(1); if (query.length === 0) { - return map; + return paramMap; } const vars = query.split('&'); for (let i = 0; i < vars.length; i++) { const pair = vars[i].split('='); - map[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]); + paramMap[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]); } - return map; + return paramMap; } constructor( diff --git a/src/frontend/app/core/current-user-permissions.checker.ts b/src/frontend/app/core/current-user-permissions.checker.ts index 99dbd1c0f1..2e9d7be0b0 100644 --- a/src/frontend/app/core/current-user-permissions.checker.ts +++ b/src/frontend/app/core/current-user-permissions.checker.ts @@ -69,12 +69,10 @@ export class CurrentUserPermissionsChecker { map(state => { const permissionString = permission as PermissionStrings; if (allSpacesWithinOrg) { - const orgOrSpaceState = state[PermissionTypes.ORGANIZATION][orgOrSpaceGuid]; const spaceState = state[PermissionTypes.SPACE]; - return this.checkAllSpacesInOrg(orgOrSpaceState, spaceState, permissionString); + return this.checkAllSpacesInOrg(state[PermissionTypes.ORGANIZATION][orgOrSpaceGuid], spaceState, permissionString); } - const orgOrSpaceState = state[type][orgOrSpaceGuid]; - return this.selectPermission(orgOrSpaceState, permissionString); + return this.selectPermission(state[type][orgOrSpaceGuid], permissionString); }), distinctUntilChanged(), ); diff --git a/src/frontend/app/core/dot-content/dot-content.component.ts b/src/frontend/app/core/dot-content/dot-content.component.ts index 2e5e0a3aa2..7ee8c8e57f 100644 --- a/src/frontend/app/core/dot-content/dot-content.component.ts +++ b/src/frontend/app/core/dot-content/dot-content.component.ts @@ -6,5 +6,5 @@ import { Component, OnInit, Input } from '@angular/core'; styleUrls: ['./dot-content.component.scss'] }) export class DotContentComponent { - @Input('disabled') disabled: boolean; + @Input() disabled: boolean; } diff --git a/src/frontend/app/core/entity-service-factory.service.ts b/src/frontend/app/core/entity-service-factory.service.ts index e12fd41439..4830b7585f 100644 --- a/src/frontend/app/core/entity-service-factory.service.ts +++ b/src/frontend/app/core/entity-service-factory.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { Store } from '@ngrx/store'; import { AppState } from '../store/app-state'; -import { schema } from 'normalizr'; +import { schema as normalizrSchema } from 'normalizr'; import { EntityService } from './entity-service'; import { IRequestAction } from '../store/types/request.types'; import { TRequestTypeKeys, RequestSectionKeys } from '../store/reducers/api-request-reducer/types'; @@ -17,7 +17,7 @@ export class EntityServiceFactory { create( entityKey: string, - schema: schema.Entity, + schema: normalizrSchema.Entity, entityId: string, action: IRequestAction, validateRelations = true, diff --git a/src/frontend/app/core/entity-service.spec.ts b/src/frontend/app/core/entity-service.spec.ts index d6531d039e..1e932f75f5 100644 --- a/src/frontend/app/core/entity-service.spec.ts +++ b/src/frontend/app/core/entity-service.spec.ts @@ -2,7 +2,7 @@ import { inject, TestBed } from '@angular/core/testing'; import { HttpModule, XHRBackend } from '@angular/http'; import { MockBackend } from '@angular/http/testing'; import { Store } from '@ngrx/store'; -import { schema } from 'normalizr'; +import { schema as normalizrSchema } from 'normalizr'; import { filter, first, tap, pairwise, map } from 'rxjs/operators'; import { ENTITY_SERVICE } from '../shared/entity.tokens'; import { EntityMonitor } from '../shared/monitors/entity-monitor'; @@ -28,7 +28,7 @@ describe('EntityServiceService', () => { function createTestService( store: Store, guid: string, - schema: schema.Entity, + schema: normalizrSchema.Entity, action: IRequestAction, ) { const entityMonitor = new EntityMonitor(store, guid, schema.key, schema); diff --git a/src/frontend/app/features/applications/app-name-unique.directive/app-name-unique.directive.ts b/src/frontend/app/features/applications/app-name-unique.directive/app-name-unique.directive.ts index e0a02ef35c..8b1bd2965b 100644 --- a/src/frontend/app/features/applications/app-name-unique.directive/app-name-unique.directive.ts +++ b/src/frontend/app/features/applications/app-name-unique.directive/app-name-unique.directive.ts @@ -1,7 +1,7 @@ -import {throwError as observableThrowError, timer as observableTimer, of as observableOf, Observable } from 'rxjs'; +import { throwError as observableThrowError, timer as observableTimer, of as observableOf, Observable } from 'rxjs'; -import {take, combineLatest, switchMap, map, catchError} from 'rxjs/operators'; +import { take, combineLatest, switchMap, map, catchError } from 'rxjs/operators'; import { Directive, forwardRef, Input, OnInit } from '@angular/core'; import { AbstractControl, AsyncValidator, NG_ASYNC_VALIDATORS } from '@angular/forms'; import { Headers, Http, Request, RequestOptions, URLSearchParams } from '@angular/http'; @@ -46,7 +46,7 @@ export class AppNameUniqueChecking { }) export class AppNameUniqueDirective implements AsyncValidator, OnInit { - @Input('appApplicationNameUnique') appApplicationNameUnique: AppNameUniqueChecking; + @Input() appApplicationNameUnique: AppNameUniqueChecking; constructor( private store: Store, diff --git a/src/frontend/app/features/applications/application-delete/delete-app-instances/delete-app-instances.component.ts b/src/frontend/app/features/applications/application-delete/delete-app-instances/delete-app-instances.component.ts index 8163fa4982..4a9c4c3bf7 100644 --- a/src/frontend/app/features/applications/application-delete/delete-app-instances/delete-app-instances.component.ts +++ b/src/frontend/app/features/applications/application-delete/delete-app-instances/delete-app-instances.component.ts @@ -19,7 +19,7 @@ import { AppDeleteServiceInstancesListConfigService } from './app-delete-instanc }) export class DeleteAppServiceInstancesComponent implements OnDestroy { - @Output('selected') + @Output() public selected = new EventEmitter[]>(); private selectedSub: Subscription; diff --git a/src/frontend/app/features/applications/application-delete/delete-app-routes/delete-app-routes.component.ts b/src/frontend/app/features/applications/application-delete/delete-app-routes/delete-app-routes.component.ts index 201c618eff..bc367f35b3 100644 --- a/src/frontend/app/features/applications/application-delete/delete-app-routes/delete-app-routes.component.ts +++ b/src/frontend/app/features/applications/application-delete/delete-app-routes/delete-app-routes.component.ts @@ -22,7 +22,7 @@ import { IServiceBinding } from '../../../../core/cf-api-svc.types'; }) export class DeleteAppRoutesComponent implements OnDestroy { - @Output('selected') + @Output() public selected = new EventEmitter[]>(); private selectedSub: Subscription; diff --git a/src/frontend/app/features/applications/application/application-base.component.ts b/src/frontend/app/features/applications/application/application-base.component.ts index 3daffee49f..a835a944c5 100644 --- a/src/frontend/app/features/applications/application/application-base.component.ts +++ b/src/frontend/app/features/applications/application/application-base.component.ts @@ -16,7 +16,7 @@ export function applicationServiceFactory( cfId: string, id: string, store: Store, - entityServiceFactory: EntityServiceFactory, + entityServiceFactoryInstance: EntityServiceFactory, appStateService: ApplicationStateService, appEnvVarsService: ApplicationEnvVarsService, paginationMonitorFactory: PaginationMonitorFactory @@ -25,7 +25,7 @@ export function applicationServiceFactory( cfId, id, store, - entityServiceFactory, + entityServiceFactoryInstance, appStateService, appEnvVarsService, paginationMonitorFactory diff --git a/src/frontend/app/features/applications/application/application-instance-chart/application-instance-chart.component.ts b/src/frontend/app/features/applications/application/application-instance-chart/application-instance-chart.component.ts index 168050efbf..4210f73b36 100644 --- a/src/frontend/app/features/applications/application/application-instance-chart/application-instance-chart.component.ts +++ b/src/frontend/app/features/applications/application/application-instance-chart/application-instance-chart.component.ts @@ -13,22 +13,22 @@ import { IMetricApplication } from '../../../../store/types/metric.types'; }) export class ApplicationInstanceChartComponent implements OnInit { - @Input('appGuid') + @Input() private appGuid: string; - @Input('endpointGuid') + @Input() private endpointGuid: string; - @Input('yAxisLabel') + @Input() private yAxisLabel: string; - @Input('metricName') + @Input() private metricName: string; - @Input('seriesTranslation') + @Input() private seriesTranslation: string; - @Input('title') + @Input() public title: string; public instanceChartConfig: MetricsLineChartConfig; diff --git a/src/frontend/app/features/applications/deploy-application/deploy-application-step2/deploy-application-fs/deploy-application-fs.component.ts b/src/frontend/app/features/applications/deploy-application/deploy-application-step2/deploy-application-fs/deploy-application-fs.component.ts index 4b19691e7b..c394e0ee20 100644 --- a/src/frontend/app/features/applications/deploy-application/deploy-application-step2/deploy-application-fs/deploy-application-fs.component.ts +++ b/src/frontend/app/features/applications/deploy-application/deploy-application-step2/deploy-application-fs/deploy-application-fs.component.ts @@ -2,7 +2,7 @@ import { Component, OnInit, Input, forwardRef, ViewChild } from '@angular/core'; import { DeployApplicatioNFsUtils } from './deploy-application-fs-utils'; import { filter, first, map } from 'rxjs/operators'; import { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms'; -import { BehaviorSubject , Observable } from 'rxjs'; +import { BehaviorSubject, Observable } from 'rxjs'; import { FileScannerInfo } from './deploy-application-fs-scanner'; @Component({ @@ -22,7 +22,7 @@ export class DeployApplicationFsComponent implements ControlValueAccessor { private propagateChange: Function; constructor() { } - @Input('sourceType') sourceType: string; + @Input() sourceType: string; sourceData$ = new BehaviorSubject(undefined); diff --git a/src/frontend/app/features/applications/deploy-application/deploy-application-step2/deploy-application-step2.component.ts b/src/frontend/app/features/applications/deploy-application/deploy-application-step2/deploy-application-step2.component.ts index dc49cfe60c..0efa162bb7 100644 --- a/src/frontend/app/features/applications/deploy-application/deploy-application-step2/deploy-application-step2.component.ts +++ b/src/frontend/app/features/applications/deploy-application/deploy-application-step2/deploy-application-step2.component.ts @@ -1,10 +1,10 @@ -import {combineLatest as observableCombineLatest, of as observableOf, Observable , Subscription } from 'rxjs'; +import { combineLatest as observableCombineLatest, of as observableOf, Observable, Subscription } from 'rxjs'; import { AfterContentInit, Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core'; import { NgForm } from '@angular/forms'; import { ActivatedRoute } from '@angular/router'; import { Store } from '@ngrx/store'; -import { filter, map, take, tap , withLatestFrom } from 'rxjs/operators'; +import { filter, map, take, tap, withLatestFrom } from 'rxjs/operators'; import { EntityServiceFactory } from '../../../../core/entity-service-factory.service'; import { PaginationMonitorFactory } from '../../../../shared/monitors/pagination-monitor.factory'; @@ -40,7 +40,7 @@ import { StepOnNextFunction } from '../../../../shared/components/stepper/step/s export class DeployApplicationStep2Component implements OnInit, OnDestroy, AfterContentInit { - @Input('isRedeploy') isRedeploy = false; + @Input() isRedeploy = false; branchesSubscription: Subscription; commitInfo: GithubCommit; @@ -142,13 +142,13 @@ export class DeployApplicationStep2Component if (this.branchesSubscription) { this.branchesSubscription.unsubscribe(); } - const action = new FetchBranchesForProject(p.name); + const fetchBranchesAction = new FetchBranchesForProject(p.name); this.branchesSubscription = getPaginationObservables( { store: this.store, - action, + action: fetchBranchesAction, paginationMonitor: this.paginationMonitorFactory.create( - action.paginationKey, + fetchBranchesAction.paginationKey, entityFactory(githubBranchesSchemaKey) ) }, @@ -160,7 +160,7 @@ export class DeployApplicationStep2Component this.subscriptions.push(fetchBranches); - const action = { + const paginationAction = { entityKey: githubBranchesSchemaKey, paginationKey: 'branches' } as PaginatedAction; @@ -180,7 +180,7 @@ export class DeployApplicationStep2Component const deployCommit$ = this.store.select(selectNewProjectCommit); const paginationMonitor = this.paginationMonitorFactory.create>( - action.paginationKey, + paginationAction.paginationKey, entityFactory(githubBranchesSchemaKey) ); diff --git a/src/frontend/app/features/applications/deploy-application/deploy-application-step3/deploy-application-step3.component.ts b/src/frontend/app/features/applications/deploy-application/deploy-application-step3/deploy-application-step3.component.ts index ca618f6d8a..f743b4d108 100644 --- a/src/frontend/app/features/applications/deploy-application/deploy-application-step3/deploy-application-step3.component.ts +++ b/src/frontend/app/features/applications/deploy-application/deploy-application-step3/deploy-application-step3.component.ts @@ -36,7 +36,7 @@ const APP_CHECK_INTERVAL = 3000; }) export class DeployApplicationStep3Component implements OnDestroy { - @Input('appGuid') appGuid: string; + @Input() appGuid: string; // Validation observable valid$: Observable; diff --git a/src/frontend/app/features/services/detach-service-instance/detach-apps/detach-apps.component.ts b/src/frontend/app/features/services/detach-service-instance/detach-apps/detach-apps.component.ts index 6149730816..a1875d1236 100644 --- a/src/frontend/app/features/services/detach-service-instance/detach-apps/detach-apps.component.ts +++ b/src/frontend/app/features/services/detach-service-instance/detach-apps/detach-apps.component.ts @@ -20,7 +20,7 @@ import { map } from 'rxjs/operators'; export class DetachAppsComponent implements OnDestroy { validate$: Observable; - @Output('selectedApps') + @Output() public selectedApps = new EventEmitter[]>(); selectedSub: Subscription; constructor(private config: ListConfig) { diff --git a/src/frontend/app/shared/components/add-service-instance/bind-apps-step/bind-apps-step.component.ts b/src/frontend/app/shared/components/add-service-instance/bind-apps-step/bind-apps-step.component.ts index 68215b51bc..ff23e3e1b6 100644 --- a/src/frontend/app/shared/components/add-service-instance/bind-apps-step/bind-apps-step.component.ts +++ b/src/frontend/app/shared/components/add-service-instance/bind-apps-step/bind-apps-step.component.ts @@ -26,7 +26,7 @@ import { SpecifyDetailsStepComponent } from '../specify-details-step/specify-det }) export class BindAppsStepComponent implements OnDestroy, AfterContentInit { - @Input('boundAppId') + @Input() boundAppId: string; validateSubscription: Subscription; diff --git a/src/frontend/app/shared/components/add-service-instance/specify-details-step/specify-details-step.component.ts b/src/frontend/app/shared/components/add-service-instance/specify-details-step/specify-details-step.component.ts index 81961efc47..41da4b558e 100644 --- a/src/frontend/app/shared/components/add-service-instance/specify-details-step/specify-details-step.component.ts +++ b/src/frontend/app/shared/components/add-service-instance/specify-details-step/specify-details-step.component.ts @@ -68,10 +68,10 @@ export class SpecifyDetailsStepComponent implements OnDestroy, AfterContentInit key: FormMode.BindServiceInstance } ]; - @Input('showModeSelection') + @Input() showModeSelection = false; - @Input('appId') appId: string; + @Input() appId: string; formMode: FormMode; @@ -410,8 +410,8 @@ export class SpecifyDetailsStepComponent implements OnDestroy, AfterContentInit filter(a => !a.creating), switchMap(a => { const updating = a.updating ? a.updating[UpdateServiceInstance.updateServiceInstance] : null; - if ( (isEditMode && !!updating && updating.error) || (a.error) ) { - return create$; + if ((isEditMode && !!updating && updating.error) || (a.error)) { + return create$; } const guid = getIdFromResponse(a.response as NormalizedResponse); diff --git a/src/frontend/app/shared/components/app-action-monitor-icon/app-action-monitor-icon.component.ts b/src/frontend/app/shared/components/app-action-monitor-icon/app-action-monitor-icon.component.ts index 27c37ffa20..40db12e3d8 100644 --- a/src/frontend/app/shared/components/app-action-monitor-icon/app-action-monitor-icon.component.ts +++ b/src/frontend/app/shared/components/app-action-monitor-icon/app-action-monitor-icon.component.ts @@ -26,22 +26,22 @@ export interface IApplicationMonitorComponentState { }) export class AppActionMonitorIconComponent implements OnInit { - @Input('entityKey') + @Input() public entityKey: string; - @Input('id') + @Input() public id: string; - @Input('schema') + @Input() public schema: schema.Entity; - @Input('monitorState') + @Input() public monitorState: AppMonitorComponentTypes = AppMonitorComponentTypes.FETCHING; - @Input('updateKey') + @Input() public updateKey = rootUpdatingKey; - @Output('currentState') + @Output() public currentState: Observable; constructor(private entityMonitorFactory: EntityMonitorFactory) { } diff --git a/src/frontend/app/shared/components/app-action-monitor/app-action-monitor.component.ts b/src/frontend/app/shared/components/app-action-monitor/app-action-monitor.component.ts index 03cd650f91..6fb0a6c1e1 100644 --- a/src/frontend/app/shared/components/app-action-monitor/app-action-monitor.component.ts +++ b/src/frontend/app/shared/components/app-action-monitor/app-action-monitor.component.ts @@ -19,34 +19,34 @@ import { ITableColumn } from '../list/list-table/table.types'; }) export class AppActionMonitorComponent implements OnInit { - @Input('data$') + @Input() private data$: Observable> = observableNever(); - @Input('entityKey') + @Input() public entityKey: string; - @Input('schema') + @Input() public schema: schema.Entity; - @Input('monitorState') + @Input() public monitorState: AppMonitorComponentTypes = AppMonitorComponentTypes.FETCHING; - @Input('updateKey') + @Input() public updateKey = rootUpdatingKey; - @Input('getId') + @Input() public getId: (element) => string; - @Input('trackBy') + @Input() public trackBy = ((index: number, item: T) => index.toString()); - @Input('getCellConfig') + @Input() public getCellConfig: (element) => ITableCellRequestMonitorIconConfig; - @Input('columns') + @Input() public columns: ITableColumn[] = []; - @Output('currentState') + @Output() public currentState: EventEmitter; public dataSource: DataSource; diff --git a/src/frontend/app/shared/components/application-state/application-state.component.ts b/src/frontend/app/shared/components/application-state/application-state.component.ts index 6cef63c76e..364e038563 100644 --- a/src/frontend/app/shared/components/application-state/application-state.component.ts +++ b/src/frontend/app/shared/components/application-state/application-state.component.ts @@ -1,7 +1,7 @@ import { Component, Input, OnInit } from '@angular/core'; import { CardStatus, ApplicationStateData } from './application-state.service'; import { Observable } from 'rxjs'; -import { map, tap , startWith } from 'rxjs/operators'; +import { map, tap, startWith } from 'rxjs/operators'; @Component({ selector: 'app-application-state', @@ -10,7 +10,7 @@ import { map, tap , startWith } from 'rxjs/operators'; }) export class ApplicationStateComponent implements OnInit { - @Input('state') + @Input() public state: Observable; public status$: Observable; @@ -19,10 +19,10 @@ export class ApplicationStateComponent implements OnInit { public label$: Observable; - @Input('hideIcon') + @Input() public hideIcon = false; - @Input('initialStateOnly') + @Input() public initialStateOnly = false; constructor() { } diff --git a/src/frontend/app/shared/components/boolean-indicator/boolean-indicator.component.ts b/src/frontend/app/shared/components/boolean-indicator/boolean-indicator.component.ts index d432042566..9242810eaa 100644 --- a/src/frontend/app/shared/components/boolean-indicator/boolean-indicator.component.ts +++ b/src/frontend/app/shared/components/boolean-indicator/boolean-indicator.component.ts @@ -17,11 +17,11 @@ export enum BooleanIndicatorType { }) export class BooleanIndicatorComponent implements OnInit { - @Input('isTrue') isTrue: boolean; - @Input('type') type: BooleanIndicatorType; + @Input() isTrue: boolean; + @Input() type: BooleanIndicatorType; // Should we use a subtle display - this won't show the No option as dandger (typically red) - @Input('subtle') subtle = true; + @Input() subtle = true; private icons = { Yes: 'check_circle', diff --git a/src/frontend/app/shared/components/cards/card-app-instances/card-app-instances.component.ts b/src/frontend/app/shared/components/cards/card-app-instances/card-app-instances.component.ts index 928fda78c8..f0ed16c943 100644 --- a/src/frontend/app/shared/components/cards/card-app-instances/card-app-instances.component.ts +++ b/src/frontend/app/shared/components/cards/card-app-instances/card-app-instances.component.ts @@ -21,9 +21,9 @@ const appInstanceScaleToZeroConfirmation = new ConfirmationDialogConfig('Set Ins export class CardAppInstancesComponent implements OnInit, OnDestroy { // Should the card show the actions to scale/down the number of instances? - @Input('showActions') showActions = false; + @Input() showActions = false; - @Input('busy') busy: any; + @Input() busy: any; @ViewChild('instanceField') instanceField: ElementRef; diff --git a/src/frontend/app/shared/components/cards/card-cf-recent-apps/compact-app-card/compact-app-card.component.ts b/src/frontend/app/shared/components/cards/card-cf-recent-apps/compact-app-card/compact-app-card.component.ts index 83f7afbcd2..40de2c7283 100644 --- a/src/frontend/app/shared/components/cards/card-cf-recent-apps/compact-app-card/compact-app-card.component.ts +++ b/src/frontend/app/shared/components/cards/card-cf-recent-apps/compact-app-card/compact-app-card.component.ts @@ -21,7 +21,7 @@ import { BREADCRUMB_URL_PARAM } from '../../../page-header/page-header.types'; }) export class CompactAppCardComponent implements OnInit { - @Input('app') app; + @Input() app; applicationState$: Observable; diff --git a/src/frontend/app/shared/components/cards/card-status/card-status.component.ts b/src/frontend/app/shared/components/cards/card-status/card-status.component.ts index dccf75553c..c5f5be5488 100644 --- a/src/frontend/app/shared/components/cards/card-status/card-status.component.ts +++ b/src/frontend/app/shared/components/cards/card-status/card-status.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; -import { Observable , Subscription } from 'rxjs'; +import { Observable, Subscription } from 'rxjs'; import { CardStatus } from '../../application-state/application-state.service'; @@ -10,7 +10,7 @@ import { CardStatus } from '../../application-state/application-state.service'; changeDetection: ChangeDetectionStrategy.OnPush }) export class CardStatusComponent { - @Input('status$') status$: Observable; + @Input() status$: Observable; private cardStatus = CardStatus; diff --git a/src/frontend/app/shared/components/cards/compact-service-instance-card/compact-service-instance-card.component.ts b/src/frontend/app/shared/components/cards/compact-service-instance-card/compact-service-instance-card.component.ts index 5808ecf069..8b1aabd2d8 100644 --- a/src/frontend/app/shared/components/cards/compact-service-instance-card/compact-service-instance-card.component.ts +++ b/src/frontend/app/shared/components/cards/compact-service-instance-card/compact-service-instance-card.component.ts @@ -11,7 +11,7 @@ import { AppChip } from '../../chips/chips.component'; export class CompactServiceInstanceCardComponent implements OnInit { serviceInstanceTags: AppChip[]; - @Input('serviceInstance') serviceInstance: APIResource; + @Input() serviceInstance: APIResource; constructor() { } ngOnInit() { diff --git a/src/frontend/app/shared/components/chips/chips.component.ts b/src/frontend/app/shared/components/chips/chips.component.ts index bf798a9fcb..1666ce6667 100644 --- a/src/frontend/app/shared/components/chips/chips.component.ts +++ b/src/frontend/app/shared/components/chips/chips.component.ts @@ -29,19 +29,19 @@ export class AppChipsComponent implements OnInit { public atLowerLimit = true; - @Input('chips') + @Input() public chips: AppChip[] = []; - @Input('stacked') + @Input() stacked = false; - @Input('orientation') + @Input() orientation: 'rtl' | 'ltr' = 'ltr'; - @Input('lowerLimit') + @Input() lowerLimit = 3; - @Input('displayProperty') + @Input() displayProperty = 'value'; public limit; diff --git a/src/frontend/app/shared/components/cli-info/cli-command/cli-command.component.ts b/src/frontend/app/shared/components/cli-info/cli-command/cli-command.component.ts index bf5f501396..6e0a81a0c3 100644 --- a/src/frontend/app/shared/components/cli-info/cli-command/cli-command.component.ts +++ b/src/frontend/app/shared/components/cli-info/cli-command/cli-command.component.ts @@ -9,8 +9,8 @@ export class CliCommandComponent { constructor() { } - @Input('name') name: string; - @Input('msg') msg: string; - @Input('syntax') syntax: string; + @Input() name: string; + @Input() msg: string; + @Input() syntax: string; } diff --git a/src/frontend/app/shared/components/cli-info/cli-info.component.ts b/src/frontend/app/shared/components/cli-info/cli-info.component.ts index 422dd1911a..aee5fb6d33 100644 --- a/src/frontend/app/shared/components/cli-info/cli-info.component.ts +++ b/src/frontend/app/shared/components/cli-info/cli-info.component.ts @@ -17,7 +17,7 @@ export interface CFAppCLIInfoContext { }) export class CliInfoComponent { - @Input('context') context: CFAppCLIInfoContext; + @Input() context: CFAppCLIInfoContext; constructor() { } } diff --git a/src/frontend/app/shared/components/create-application/create-application-step1/create-application-step1.component.ts b/src/frontend/app/shared/components/create-application/create-application-step1/create-application-step1.component.ts index a2dd772928..7940697919 100644 --- a/src/frontend/app/shared/components/create-application/create-application-step1/create-application-step1.component.ts +++ b/src/frontend/app/shared/components/create-application/create-application-step1/create-application-step1.component.ts @@ -21,7 +21,7 @@ import { CfOrgSpaceDataService } from '../../../data-services/cf-org-space-servi }) export class CreateApplicationStep1Component implements OnInit, AfterContentInit { - @Input('isMarketplaceMode') + @Input() isMarketplaceMode: boolean; constructor( private store: Store, @@ -35,11 +35,11 @@ export class CreateApplicationStep1Component implements OnInit, AfterContentInit @ViewChild('cfForm') cfForm: NgForm; - @Input('isRedeploy') isRedeploy = false; + @Input() isRedeploy = false; validate: Observable; - @Input('stepperText') + @Input() stepperText = 'Select a Cloud Foundry instance, organization and space for the app.'; onNext: StepOnNextFunction = () => { diff --git a/src/frontend/app/shared/components/details-card/details-card.component.ts b/src/frontend/app/shared/components/details-card/details-card.component.ts index c534a4a525..e7ae36aa85 100644 --- a/src/frontend/app/shared/components/details-card/details-card.component.ts +++ b/src/frontend/app/shared/components/details-card/details-card.component.ts @@ -10,10 +10,10 @@ export class DetailsCardComponent implements OnInit { constructor() { } - @Input('title') + @Input() title: string; - @Input('busy') + @Input() busy: boolean; ngOnInit() { diff --git a/src/frontend/app/shared/components/dialog-error/dialog-error.component.ts b/src/frontend/app/shared/components/dialog-error/dialog-error.component.ts index 7ac08167cc..b0e3f11488 100644 --- a/src/frontend/app/shared/components/dialog-error/dialog-error.component.ts +++ b/src/frontend/app/shared/components/dialog-error/dialog-error.component.ts @@ -10,9 +10,9 @@ export class DialogErrorComponent implements OnInit { constructor() { } - @Input('message') message: string; + @Input() message: string; - @Input('show') show: boolean; + @Input() show: boolean; ngOnInit() { } diff --git a/src/frontend/app/shared/components/enumerate/enumerate.component.ts b/src/frontend/app/shared/components/enumerate/enumerate.component.ts index 5980ca902e..80b52e40a8 100644 --- a/src/frontend/app/shared/components/enumerate/enumerate.component.ts +++ b/src/frontend/app/shared/components/enumerate/enumerate.component.ts @@ -7,6 +7,6 @@ import { Observable } from 'rxjs'; styleUrls: ['./enumerate.component.scss'] }) export class EnumerateComponent { - @Input('collection') collection: Observable; - @Input('labelPath') labelPath: string; + @Input() collection: Observable; + @Input() labelPath: string; } diff --git a/src/frontend/app/shared/components/focus.directive.ts b/src/frontend/app/shared/components/focus.directive.ts index 5ac96bce9a..1800d043b3 100644 --- a/src/frontend/app/shared/components/focus.directive.ts +++ b/src/frontend/app/shared/components/focus.directive.ts @@ -6,9 +6,9 @@ import { Subscription } from 'rxjs'; }) export class FocusDirective implements OnInit, OnDestroy { sub: Subscription; - @Input('appFocus') appFocus: EventEmitter; + @Input() appFocus: EventEmitter; - constructor( @Inject(ElementRef) private element: ElementRef, private renderer: Renderer) { + constructor(@Inject(ElementRef) private element: ElementRef, private renderer: Renderer) { } ngOnInit() { diff --git a/src/frontend/app/shared/components/github-commit-author/github-commit-author.component.ts b/src/frontend/app/shared/components/github-commit-author/github-commit-author.component.ts index aa7d174655..c3603094cc 100644 --- a/src/frontend/app/shared/components/github-commit-author/github-commit-author.component.ts +++ b/src/frontend/app/shared/components/github-commit-author/github-commit-author.component.ts @@ -8,6 +8,6 @@ import { GithubCommit } from '../../../store/types/github.types'; styleUrls: ['./github-commit-author.component.scss'] }) export class GithubCommitAuthorComponent { - @Input('commit') commit: GithubCommit; - @Input('showAvatar') showAvatar = true; + @Input() commit: GithubCommit; + @Input() showAvatar = true; } diff --git a/src/frontend/app/shared/components/list/data-sources-controllers/list-data-source.ts b/src/frontend/app/shared/components/list/data-sources-controllers/list-data-source.ts index a3fddbc98e..7526a36bff 100644 --- a/src/frontend/app/shared/components/list/data-sources-controllers/list-data-source.ts +++ b/src/frontend/app/shared/components/list/data-sources-controllers/list-data-source.ts @@ -272,7 +272,7 @@ export abstract class ListDataSource extends DataSource implements // If data source is not local then this method must be overridden return ''; } - public setFilterParam(filter: string, pag: PaginationEntityState) { + public setFilterParam(filterParam: string, pag: PaginationEntityState) { // If data source is not local then this method must be overridden } } diff --git a/src/frontend/app/shared/components/list/data-sources-controllers/list-pagination-controller.ts b/src/frontend/app/shared/components/list/data-sources-controllers/list-pagination-controller.ts index ccc8b16d38..619e939427 100644 --- a/src/frontend/app/shared/components/list/data-sources-controllers/list-pagination-controller.ts +++ b/src/frontend/app/shared/components/list/data-sources-controllers/list-pagination-controller.ts @@ -137,10 +137,10 @@ export class ListPaginationController implements IListPaginationController } - private cloneMultiFilter(filter: PaginationClientFilter) { + private cloneMultiFilter(paginationClientFilter: PaginationClientFilter) { return { - ...filter, - items: { ...filter.items } + ...paginationClientFilter, + items: { ...paginationClientFilter.items } }; } private createPaginationObservable(dataSource: IListDataSource): Observable { @@ -188,9 +188,9 @@ export class ListPaginationController implements IListPaginationController ); } - private cleanFilterParam(filter) { + private cleanFilterParam(filterVal) { // Flatten some specific falsies into the same value. - if (filter === null || filter === undefined || filter === '') { + if (filterVal === null || filterVal === undefined || filterVal === '') { return undefined; } return filter; diff --git a/src/frontend/app/shared/components/list/list-cards/card/card.component.ts b/src/frontend/app/shared/components/list/list-cards/card/card.component.ts index 2c446c3a57..da7868c227 100644 --- a/src/frontend/app/shared/components/list/list-cards/card/card.component.ts +++ b/src/frontend/app/shared/components/list/list-cards/card/card.component.ts @@ -51,9 +51,9 @@ export const listCards = [ }) export class CardComponent implements OnInit, OnChanges { - @Input('component') component: Type<{}>; - @Input('item') item: T; - @Input('dataSource') dataSource = null as IListDataSource; + @Input() component: Type<{}>; + @Input() item: T; + @Input() dataSource = null as IListDataSource; @ViewChild('target', { read: ViewContainerRef }) target; diff --git a/src/frontend/app/shared/components/list/list-cards/cards.component.ts b/src/frontend/app/shared/components/list/list-cards/cards.component.ts index 7987da3471..113607027f 100644 --- a/src/frontend/app/shared/components/list/list-cards/cards.component.ts +++ b/src/frontend/app/shared/components/list/list-cards/cards.component.ts @@ -10,9 +10,9 @@ import { CardCell } from '../list.types'; }) export class CardsComponent { public columns = CardCell.columns; - @Input('dataSource') dataSource: IListDataSource; + @Input() dataSource: IListDataSource; private _component: CardCell; - @Input('component') + @Input() get component() { return this._component; } set component(cardCell) { this._component = cardCell; diff --git a/src/frontend/app/shared/components/list/list-cards/meta-card/meta-card-base/meta-card.component.ts b/src/frontend/app/shared/components/list/list-cards/meta-card/meta-card-base/meta-card.component.ts index f83f9ac633..709d30a612 100644 --- a/src/frontend/app/shared/components/list/list-cards/meta-card/meta-card-base/meta-card.component.ts +++ b/src/frontend/app/shared/components/list/list-cards/meta-card/meta-card-base/meta-card.component.ts @@ -29,10 +29,10 @@ export class MetaCardComponent { @ContentChild(MetaCardTitleComponent) title: MetaCardTitleComponent; - @Input('status$') + @Input() status$: Observable; - @Input('entityConfig') + @Input() set entityConfig(entityConfig: ComponentEntityMonitorConfig) { if (entityConfig) { const entityMonitor = this.entityMonitorFactory.create( @@ -62,7 +62,7 @@ export class MetaCardComponent { public _actionMenu: MetaCardMenuItem[]; public showMenu$: Observable; - @Input('clickAction') + @Input() clickAction: Function = null; constructor(private entityMonitorFactory: EntityMonitorFactory) { diff --git a/src/frontend/app/shared/components/list/list-cards/meta-card/meta-card-item/meta-card-item.component.ts b/src/frontend/app/shared/components/list/list-cards/meta-card/meta-card-item/meta-card-item.component.ts index cf27808e42..a37275c7a0 100644 --- a/src/frontend/app/shared/components/list/list-cards/meta-card/meta-card-item/meta-card-item.component.ts +++ b/src/frontend/app/shared/components/list/list-cards/meta-card/meta-card-item/meta-card-item.component.ts @@ -27,7 +27,7 @@ export class MetaCardItemComponent implements OnInit { @ViewChild('content') content: TemplateRef; - @Input('customStyle') customStyle = 'row'; + @Input() customStyle = 'row'; constructor() { } diff --git a/src/frontend/app/shared/components/list/list-cards/meta-card/meta-card-title/meta-card-title.component.ts b/src/frontend/app/shared/components/list/list-cards/meta-card/meta-card-title/meta-card-title.component.ts index 3fe767a471..a20e79b263 100644 --- a/src/frontend/app/shared/components/list/list-cards/meta-card/meta-card-title/meta-card-title.component.ts +++ b/src/frontend/app/shared/components/list/list-cards/meta-card/meta-card-title/meta-card-title.component.ts @@ -11,7 +11,7 @@ export class MetaCardTitleComponent implements OnInit { @ViewChild(TemplateRef) content: TemplateRef; - @Input('noMargin') noMargin; + @Input() noMargin; constructor() { } diff --git a/src/frontend/app/shared/components/list/list-table/table-cell-actions/table-cell-actions.component.ts b/src/frontend/app/shared/components/list/list-table/table-cell-actions/table-cell-actions.component.ts index 9fd4a51a7f..0eb8929570 100644 --- a/src/frontend/app/shared/components/list/list-table/table-cell-actions/table-cell-actions.component.ts +++ b/src/frontend/app/shared/components/list/list-table/table-cell-actions/table-cell-actions.component.ts @@ -16,7 +16,7 @@ import { TableCellCustom } from '../../list.types'; }) export class TableCellActionsComponent extends TableCellCustom implements OnInit { - @Input('rowState') + @Input() rowState: Observable; private _row: T; diff --git a/src/frontend/app/shared/components/list/list-table/table-cell-request-monitor-icon/table-cell-request-monitor-icon.component.ts b/src/frontend/app/shared/components/list/list-table/table-cell-request-monitor-icon/table-cell-request-monitor-icon.component.ts index daa148a74b..e3024cee0b 100644 --- a/src/frontend/app/shared/components/list/list-table/table-cell-request-monitor-icon/table-cell-request-monitor-icon.component.ts +++ b/src/frontend/app/shared/components/list/list-table/table-cell-request-monitor-icon/table-cell-request-monitor-icon.component.ts @@ -20,10 +20,10 @@ export interface ITableCellRequestMonitorIconConfig { export class TableCellRequestMonitorIconComponent implements OnInit { public configObj: ITableCellRequestMonitorIconConfig; - @Input('config') + @Input() public config: (element) => ITableCellRequestMonitorIconConfig; - @Input('row') + @Input() public row; public id: string; diff --git a/src/frontend/app/shared/components/list/list-table/table-cell-select/table-cell-select.component.ts b/src/frontend/app/shared/components/list/list-table/table-cell-select/table-cell-select.component.ts index c2034e98dc..f4371aa790 100644 --- a/src/frontend/app/shared/components/list/list-table/table-cell-select/table-cell-select.component.ts +++ b/src/frontend/app/shared/components/list/list-table/table-cell-select/table-cell-select.component.ts @@ -16,7 +16,7 @@ export class TableCellSelectComponent extends TableCellCustom implements O disable$: Observable; - @Input('rowState') + @Input() rowState: Observable; ngOnInit() { diff --git a/src/frontend/app/shared/components/list/list-table/table-cell/table-cell.component.ts b/src/frontend/app/shared/components/list/list-table/table-cell/table-cell.component.ts index 62f77b0d5b..2d6dabebf7 100644 --- a/src/frontend/app/shared/components/list/list-table/table-cell/table-cell.component.ts +++ b/src/frontend/app/shared/components/list/list-table/table-cell/table-cell.component.ts @@ -157,13 +157,13 @@ export class TableCellComponent implements OnInit, OnChanges { @ViewChild('target', { read: ViewContainerRef }) target: ViewContainerRef; - @Input('dataSource') dataSource = null as IListDataSource; + @Input() dataSource = null as IListDataSource; - @Input('component') component: Type<{}>; - @Input('cellDefinition') cellDefinition: ICellDefinition; - @Input('func') func: () => string; - @Input('row') row: T; - @Input('config') config: any; + @Input() component: Type<{}>; + @Input() cellDefinition: ICellDefinition; + @Input() func: () => string; + @Input() row: T; + @Input() config: any; private cellComponent: TableCellCustom; diff --git a/src/frontend/app/shared/components/list/list-table/table-row/table-row.component.ts b/src/frontend/app/shared/components/list/list-table/table-row/table-row.component.ts index 9cd95dd91f..03415f9e38 100644 --- a/src/frontend/app/shared/components/list/list-table/table-row/table-row.component.ts +++ b/src/frontend/app/shared/components/list/list-table/table-row/table-row.component.ts @@ -16,7 +16,7 @@ import { RowState } from '../../data-sources-controllers/list-data-source-types' }) export class TableRowComponent extends CdkRow implements OnInit { - @Input('rowState') + @Input() rowState: Observable; public inErrorState$: Observable; diff --git a/src/frontend/app/shared/components/list/list-table/table.component.ts b/src/frontend/app/shared/components/list/list-table/table.component.ts index cfb4bf2d9d..2f41050ccb 100644 --- a/src/frontend/app/shared/components/list/list-table/table.component.ts +++ b/src/frontend/app/shared/components/list/list-table/table.component.ts @@ -40,15 +40,15 @@ export class TableComponent implements OnInit, OnDestroy { @ViewChild(MatSort) sort: MatSort; // See https://github.com/angular/angular-cli/issues/2034 for weird definition - @Input('hideTable') hideTable = false; - @Input('addSelect') addSelect = false; - @Input('addActions') addActions = false; - @Input('dataSource') dataSource: ITableListDataSource; - @Input('paginationController') paginationController = null as IListPaginationController; - @Input('columns') columns: ITableColumn[]; + @Input() hideTable = false; + @Input() addSelect = false; + @Input() addActions = false; + @Input() dataSource: ITableListDataSource; + @Input() paginationController = null as IListPaginationController; + @Input() columns: ITableColumn[]; public columnNames: string[]; - @Input('fixedRowHeight') fixedRowHeight = false; + @Input() fixedRowHeight = false; ngOnInit() { if (this.addSelect || this.addActions) { diff --git a/src/frontend/app/shared/components/list/list-types/app-route/table-cell-route/table-cell-route.component.ts b/src/frontend/app/shared/components/list/list-types/app-route/table-cell-route/table-cell-route.component.ts index 34eff1519e..b0fd6e33a2 100644 --- a/src/frontend/app/shared/components/list/list-types/app-route/table-cell-route/table-cell-route.component.ts +++ b/src/frontend/app/shared/components/list/list-types/app-route/table-cell-route/table-cell-route.component.ts @@ -17,7 +17,7 @@ import { TableCellCustom } from '../../../list.types'; export class TableCellRouteComponent extends TableCellCustom implements OnInit { domainSubscription: Subscription; - @Input('row') row; + @Input() row; routeUrl: string; isRouteTCP: boolean; constructor(private store: Store) { diff --git a/src/frontend/app/shared/components/list/list-types/app-route/table-cell-tcproute/table-cell-tcproute.component.ts b/src/frontend/app/shared/components/list/list-types/app-route/table-cell-tcproute/table-cell-tcproute.component.ts index 9a85f81419..62d3a0e94b 100644 --- a/src/frontend/app/shared/components/list/list-types/app-route/table-cell-tcproute/table-cell-tcproute.component.ts +++ b/src/frontend/app/shared/components/list/list-types/app-route/table-cell-tcproute/table-cell-tcproute.component.ts @@ -9,7 +9,7 @@ import { isTCPRoute } from '../../../../../../features/applications/routes/route }) export class TableCellTCPRouteComponent extends TableCellCustom { - @Input('row') row; + @Input() row; constructor() { super(); } diff --git a/src/frontend/app/shared/components/list/list-types/app/card/card-app.component.ts b/src/frontend/app/shared/components/list/list-types/app/card/card-app.component.ts index 89ea6d5ebb..986dfef9c8 100644 --- a/src/frontend/app/shared/components/list/list-types/app/card/card-app.component.ts +++ b/src/frontend/app/shared/components/list/list-types/app/card/card-app.component.ts @@ -26,7 +26,7 @@ import { ComponentEntityMonitorConfig } from '../../../../../shared.types'; }) export class CardAppComponent extends CardCell> implements OnInit { - @Input('row') row: APIResource; + @Input() row: APIResource; applicationState$: Observable; appStatus$: Observable; diff --git a/src/frontend/app/shared/components/list/list-types/app/table-cell-app-status/table-cell-app-status.component.ts b/src/frontend/app/shared/components/list/list-types/app/table-cell-app-status/table-cell-app-status.component.ts index 495d4d9cbd..ad94cb6785 100644 --- a/src/frontend/app/shared/components/list/list-types/app/table-cell-app-status/table-cell-app-status.component.ts +++ b/src/frontend/app/shared/components/list/list-types/app/table-cell-app-status/table-cell-app-status.component.ts @@ -16,7 +16,7 @@ import { TableCellCustom } from '../../../list.types'; }) export class TableCellAppStatusComponent extends TableCellCustom implements OnInit { - @Input('row') row; + @Input() row; applicationState: ApplicationStateData; @Input('config') set config(value: { hideIcon: boolean, initialStateOnly: boolean }) { diff --git a/src/frontend/app/shared/components/list/list-types/cf-endpoints/cf-endpoint-card/endpoint-card.component.ts b/src/frontend/app/shared/components/list/list-types/cf-endpoints/cf-endpoint-card/endpoint-card.component.ts index a3b6a0e54d..2b9d69630b 100644 --- a/src/frontend/app/shared/components/list/list-types/cf-endpoints/cf-endpoint-card/endpoint-card.component.ts +++ b/src/frontend/app/shared/components/list/list-types/cf-endpoints/cf-endpoint-card/endpoint-card.component.ts @@ -17,7 +17,7 @@ export class CfEndpointCardComponent extends CardCell implements public status$ = new ReplaySubject(); - @Input('row') + @Input() row: EndpointModel; constructor() { diff --git a/src/frontend/app/shared/components/list/list-types/cf-feature-flags/table-cell-feature-flag-state/table-cell-feature-flag-state.component.ts b/src/frontend/app/shared/components/list/list-types/cf-feature-flags/table-cell-feature-flag-state/table-cell-feature-flag-state.component.ts index b30ed0287d..cad4115231 100644 --- a/src/frontend/app/shared/components/list/list-types/cf-feature-flags/table-cell-feature-flag-state/table-cell-feature-flag-state.component.ts +++ b/src/frontend/app/shared/components/list/list-types/cf-feature-flags/table-cell-feature-flag-state/table-cell-feature-flag-state.component.ts @@ -9,7 +9,7 @@ import { IFeatureFlag } from '../../../../../../core/cf-api.types'; }) export class TableCellFeatureFlagStateComponent implements OnInit { - @Input('row') row: APIResource; + @Input() row: APIResource; constructor() { } ngOnInit() { diff --git a/src/frontend/app/shared/components/list/list-types/cf-services/cf-service-card/cf-service-card.component.ts b/src/frontend/app/shared/components/list/list-types/cf-services/cf-service-card/cf-service-card.component.ts index 1e633ed975..c9cb5caa52 100644 --- a/src/frontend/app/shared/components/list/list-types/cf-services/cf-service-card/cf-service-card.component.ts +++ b/src/frontend/app/shared/components/list/list-types/cf-services/cf-service-card/cf-service-card.component.ts @@ -21,7 +21,7 @@ export interface ServiceTag { export class CfServiceCardComponent extends CardCell> { serviceEntity: APIResource; - @Input('disableCardClick') disableCardClick = false; + @Input() disableCardClick = false; @Input('row') set row(row: APIResource) { diff --git a/src/frontend/app/shared/components/list/list-types/cf-spaces-service-instances/table-cell-service-name/table-cell-service-name.component.ts b/src/frontend/app/shared/components/list/list-types/cf-spaces-service-instances/table-cell-service-name/table-cell-service-name.component.ts index 476d23de01..a6d1f11612 100644 --- a/src/frontend/app/shared/components/list/list-types/cf-spaces-service-instances/table-cell-service-name/table-cell-service-name.component.ts +++ b/src/frontend/app/shared/components/list/list-types/cf-spaces-service-instances/table-cell-service-name/table-cell-service-name.component.ts @@ -19,7 +19,7 @@ import { TableCellCustom } from '../../../list.types'; export class TableCellServiceNameComponent extends TableCellCustom implements OnInit { serviceName$: Observable; - @Input('row') row; + @Input() row; constructor(private store: Store, private entityServiceFactory: EntityServiceFactory) { super(); } diff --git a/src/frontend/app/shared/components/list/list-types/cf-spaces-service-instances/table-cell-service-plan/table-cell-service-plan.component.ts b/src/frontend/app/shared/components/list/list-types/cf-spaces-service-instances/table-cell-service-plan/table-cell-service-plan.component.ts index ee8283b775..69eaf719ab 100644 --- a/src/frontend/app/shared/components/list/list-types/cf-spaces-service-instances/table-cell-service-plan/table-cell-service-plan.component.ts +++ b/src/frontend/app/shared/components/list/list-types/cf-spaces-service-instances/table-cell-service-plan/table-cell-service-plan.component.ts @@ -16,15 +16,15 @@ import { TableCellCustom } from '../../../list.types'; }) export class TableCellServicePlanComponent extends TableCellCustom implements OnInit { - @Input('row') row; + @Input() row; servicePlanName$: Observable; constructor(private store: Store) { super(); } ngOnInit() { this.servicePlanName$ = this.store.select(selectEntity>('servicePlan', this.row.entity.service_plan_guid)) .pipe( - filter(s => !!s), - map(s => s.entity.name) + filter(s => !!s), + map(s => s.entity.name) ); } } diff --git a/src/frontend/app/shared/components/list/list-types/cf-spaces-service-instances/table-cell-space-name/table-cell-space-name.component.ts b/src/frontend/app/shared/components/list/list-types/cf-spaces-service-instances/table-cell-space-name/table-cell-space-name.component.ts index 04588b8b7c..ec8caf3efe 100644 --- a/src/frontend/app/shared/components/list/list-types/cf-spaces-service-instances/table-cell-space-name/table-cell-space-name.component.ts +++ b/src/frontend/app/shared/components/list/list-types/cf-spaces-service-instances/table-cell-space-name/table-cell-space-name.component.ts @@ -15,20 +15,20 @@ export class TableCellSpaceNameComponent extends TableCellCustom; - @Input('row') row; + @Input() row; constructor() { super(); } ngOnInit(): void { this.spaceUrl = [ '/cloud-foundry', - this.row.entity.cfGuid, - 'organizations', - this.row.entity.space.entity.organization_guid, - 'spaces', - this.row.entity.space_guid, - 'summary' - ]; - this.breadcrumbs = { 'breadcrumbs': 'services-wall'}; + this.row.entity.cfGuid, + 'organizations', + this.row.entity.space.entity.organization_guid, + 'spaces', + this.row.entity.space_guid, + 'summary' + ]; + this.breadcrumbs = { 'breadcrumbs': 'services-wall' }; } } diff --git a/src/frontend/app/shared/components/list/list-types/cf-users/cf-permission-cell.ts b/src/frontend/app/shared/components/list/list-types/cf-users/cf-permission-cell.ts index d78b85bbbc..02d7747d5c 100644 --- a/src/frontend/app/shared/components/list/list-types/cf-users/cf-permission-cell.ts +++ b/src/frontend/app/shared/components/list/list-types/cf-users/cf-permission-cell.ts @@ -41,7 +41,7 @@ export abstract class CfPermissionCell extends TableCellCustom implements OnInit, OnDestroy, AfterViewInit { private uberSub: Subscription; - @Input('addForm') addForm: NgForm; + @Input() addForm: NgForm; @Input() noEntries: TemplateRef; @@ -113,11 +113,11 @@ export class ListComponent implements OnInit, OnDestroy, AfterViewInit { }); } - @ViewChild('filter') set setFilter(filter: NgModel) { - if (!filter) { + @ViewChild('filter') set setFilter(filterValue: NgModel) { + if (!filterValue) { return; } - this.filterWidgetToStore = filter.valueChanges.pipe( + this.filterWidgetToStore = filterValue.valueChanges.pipe( debounceTime(this.dataSource.isLocal ? 150 : 250), distinctUntilChanged(), map(value => value as string), @@ -323,9 +323,9 @@ export class ListComponent implements OnInit, OnDestroy, AfterViewInit { this.headerSort.direction = sort.direction; })); - const filterStoreToWidget = this.paginationController.filter$.pipe(tap((filter: ListFilter) => { - this.filterString = filter.string; - this.multiFilters = { ...filter.items }; + const filterStoreToWidget = this.paginationController.filter$.pipe(tap((paginationFilter: ListFilter) => { + this.filterString = paginationFilter.string; + this.multiFilters = { ...paginationFilter.items }; })); // Multi filters (e.g. cf/org/space) @@ -351,9 +351,9 @@ export class ListComponent implements OnInit, OnDestroy, AfterViewInit { ).subscribe(); this.isFiltering$ = this.paginationController.filter$.pipe( - map((filter: ListFilter) => { - const isFilteringByString = filter.string ? !!filter.string.length : false; - const isFilteringByItems = Object.values(filter.items).filter(value => !!value).length > 0; + map((f: ListFilter) => { + const isFilteringByString = f.string ? !!f.string.length : false; + const isFilteringByItems = Object.values(f.items).filter(value => !!value).length > 0; return isFilteringByString || isFilteringByItems; }) ); @@ -546,7 +546,7 @@ export class ListComponent implements OnInit, OnDestroy, AfterViewInit { return actions; } - private getRowStateGeneratorFromEntityMonitor(entitySchema: schema.Entity, dataSource: IListDataSource) { + private getRowStateGeneratorFromEntityMonitor(entitySchema: normalizrSchema.Entity, dataSource: IListDataSource) { return (row) => { if (!entitySchema || !row) { return observableOf(getDefaultRowState()); diff --git a/src/frontend/app/shared/components/loading-page/loading-page.component.ts b/src/frontend/app/shared/components/loading-page/loading-page.component.ts index ef29c121cc..b46ed767c5 100644 --- a/src/frontend/app/shared/components/loading-page/loading-page.component.ts +++ b/src/frontend/app/shared/components/loading-page/loading-page.component.ts @@ -27,22 +27,22 @@ export class LoadingPageComponent implements OnInit { constructor(private entityMonitorFactory: EntityMonitorFactory) { } - @Input('isLoading') + @Input() isLoading: Observable; - @Input('text') + @Input() text = 'Retrieving your data'; - @Input('deleteText') + @Input() deleteText = 'Deleting data'; - @Input('alert') + @Input() alert = ''; - @Input('entityId') + @Input() private entityId: string; - @Input('entitySchema') + @Input() private entitySchema: schema.Entity; public isDeleting: Observable; diff --git a/src/frontend/app/shared/components/log-viewer/log-viewer.component.ts b/src/frontend/app/shared/components/log-viewer/log-viewer.component.ts index fedda91dfb..dc6b44f6e2 100644 --- a/src/frontend/app/shared/components/log-viewer/log-viewer.component.ts +++ b/src/frontend/app/shared/components/log-viewer/log-viewer.component.ts @@ -40,11 +40,11 @@ interface LogStreamMessage { }) export class LogViewerComponent implements OnInit, OnDestroy { - @Input('filter') filter: Function; + @Input() filter: Function; - @Input('status') status: Observable; + @Input() status: Observable; - @Input('logStream') logStream: Observable; + @Input() logStream: Observable; @ViewChild('container') container: ElementRef; @@ -66,7 +66,7 @@ export class LogViewerComponent implements OnInit, OnDestroy { public maxLogLines = 1000; public isHighThroughput$: Observable; public isLocked$: Observable; - public statusMessage$ = new BehaviorSubject({message: ''}); + public statusMessage$ = new BehaviorSubject({ message: '' }); public ngOnInit() { const contentElement = this.content.nativeElement; @@ -167,10 +167,10 @@ export class LogViewerComponent implements OnInit, OnDestroy { this.statusSub = this.status.subscribe((wsStatus => { switch (wsStatus) { case 0: - this.statusMessage$.next({message: 'Connecting....'}); + this.statusMessage$.next({ message: 'Connecting....' }); break; default: - this.statusMessage$.next({message: ''}); + this.statusMessage$.next({ message: '' }); break; } })); diff --git a/src/frontend/app/shared/components/metadata-item/metadata-item.component.ts b/src/frontend/app/shared/components/metadata-item/metadata-item.component.ts index e20582819a..cc76fb1705 100644 --- a/src/frontend/app/shared/components/metadata-item/metadata-item.component.ts +++ b/src/frontend/app/shared/components/metadata-item/metadata-item.component.ts @@ -9,16 +9,16 @@ export class MetadataItemComponent implements OnInit { constructor() { } - @Input('icon') public icon: string; + @Input() public icon: string; - @Input('iconFont') public iconFont: string; + @Input() public iconFont: string; - @Input('label') public label: string; + @Input() public label: string; - @Input('tooltip') public tooltip: string; + @Input() public tooltip: string; // Are we editing? - @Input('edit') public edit: boolean; + @Input() public edit: boolean; ngOnInit() { } diff --git a/src/frontend/app/shared/components/metrics-chart/metrics-chart.component.ts b/src/frontend/app/shared/components/metrics-chart/metrics-chart.component.ts index cb82c210b4..6d972f1f62 100644 --- a/src/frontend/app/shared/components/metrics-chart/metrics-chart.component.ts +++ b/src/frontend/app/shared/components/metrics-chart/metrics-chart.component.ts @@ -31,11 +31,11 @@ export interface MetricsChartConfig { styleUrls: ['./metrics-chart.component.scss'] }) export class MetricsChartComponent implements OnInit, OnDestroy { - @Input('metricsConfig') + @Input() public metricsConfig: MetricsConfig; - @Input('chartConfig') + @Input() public chartConfig: MetricsChartConfig; - @Input('title') + @Input() public title: string; public chartTypes = MetricsChartTypes; diff --git a/src/frontend/app/shared/components/nested-tabs/nested-tabs.component.ts b/src/frontend/app/shared/components/nested-tabs/nested-tabs.component.ts index 7965a05686..a9e2914988 100644 --- a/src/frontend/app/shared/components/nested-tabs/nested-tabs.component.ts +++ b/src/frontend/app/shared/components/nested-tabs/nested-tabs.component.ts @@ -9,12 +9,12 @@ import { ISubHeaderTabs } from '../page-subheader/page-subheader.types'; }) export class NestedTabsComponent implements OnInit { - @Input('tabs') + @Input() tabs: ISubHeaderTabs[]; constructor() { } - ngOnInit() {} + ngOnInit() { } } diff --git a/src/frontend/app/shared/components/no-content-message/no-content-message.component.ts b/src/frontend/app/shared/components/no-content-message/no-content-message.component.ts index 807661b73c..b20f1b432f 100644 --- a/src/frontend/app/shared/components/no-content-message/no-content-message.component.ts +++ b/src/frontend/app/shared/components/no-content-message/no-content-message.component.ts @@ -7,15 +7,15 @@ import { Component, OnInit, Input } from '@angular/core'; }) export class NoContentMessageComponent implements OnInit { - @Input('icon') icon: string; - @Input('iconFont') iconFont: string; - @Input('firstLine') firstLine: string; - @Input('secondLine') secondLine: { + @Input() icon: string; + @Input() iconFont: string; + @Input() firstLine: string; + @Input() secondLine: { link?: string; linkText?: string; text: string; }; - @Input('toolbarLink') toolbarLink: { + @Input() toolbarLink: { text: string; }; diff --git a/src/frontend/app/shared/components/page-header/page-header-events/page-header-events.component.ts b/src/frontend/app/shared/components/page-header/page-header-events/page-header-events.component.ts index 0a598332c1..a6d65156a5 100644 --- a/src/frontend/app/shared/components/page-header/page-header-events/page-header-events.component.ts +++ b/src/frontend/app/shared/components/page-header/page-header-events/page-header-events.component.ts @@ -1,5 +1,5 @@ -import {of as observableOf, Observable } from 'rxjs'; +import { of as observableOf, Observable } from 'rxjs'; import { animate, style, transition, trigger } from '@angular/animations'; import { Component, Input, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; @@ -33,7 +33,7 @@ import { ToggleHeaderEvent } from '../../../../store/actions/dashboard-actions'; ] }) export class PageHeaderEventsComponent implements OnInit { - @Input('endpointIds$') + @Input() public endpointIds$: Observable; public eventMinimized$: Observable; diff --git a/src/frontend/app/shared/components/page-header/page-header.component.ts b/src/frontend/app/shared/components/page-header/page-header.component.ts index 660bc4f596..ea87884600 100644 --- a/src/frontend/app/shared/components/page-header/page-header.component.ts +++ b/src/frontend/app/shared/components/page-header/page-header.component.ts @@ -26,24 +26,24 @@ export class PageHeaderComponent { private breadcrumbKey: string; public eventSeverity = InternalEventSeverity; - @Input('hideSideNavButton') hideSideNavButton = false; + @Input() hideSideNavButton = false; - @Input('hideMenu') hideMenu = false; + @Input() hideMenu = false; - @Input('endpointIds$') + @Input() endpointIds$: Observable; - @Input('tabs') + @Input() tabs: ISubHeaderTabs[]; - @Input('showUnderFlow') showUnderFlow = false; + @Input() showUnderFlow = false; - @Input('breadcrumbs') + @Input() set breadcrumbs(breadcrumbs: IHeaderBreadcrumb[]) { this.breadcrumbDefinitions = this.getBreadcrumb(breadcrumbs); } // Used when non-admin logs in with no-endpoints -> only show logout in the menu - @Input('logoutOnly') logoutOnly: boolean; + @Input() logoutOnly: boolean; private getBreadcrumb(breadcrumbs: IHeaderBreadcrumb[]) { if (!breadcrumbs || !breadcrumbs.length) { diff --git a/src/frontend/app/shared/components/page-subheader/page-subheader.component.ts b/src/frontend/app/shared/components/page-subheader/page-subheader.component.ts index 2de510fb9e..6c8d4f78fc 100644 --- a/src/frontend/app/shared/components/page-subheader/page-subheader.component.ts +++ b/src/frontend/app/shared/components/page-subheader/page-subheader.component.ts @@ -33,10 +33,10 @@ export class PageSubheaderComponent implements AfterViewInit, OnDestroy { @ViewChild('rightButton') rightButton: MatButton; - @Input('tabs') + @Input() tabs: ISubHeaderTabs[]; - @Input('nested') + @Input() nested: boolean; className: string; diff --git a/src/frontend/app/shared/components/running-instances/running-instances.component.ts b/src/frontend/app/shared/components/running-instances/running-instances.component.ts index 52fb1a08e5..fafaf74e34 100644 --- a/src/frontend/app/shared/components/running-instances/running-instances.component.ts +++ b/src/frontend/app/shared/components/running-instances/running-instances.component.ts @@ -16,9 +16,9 @@ import { appStatsSchemaKey } from '../../../store/helpers/entity-factory'; }) export class RunningInstancesComponent implements OnInit { - @Input('instances') instances; - @Input('cfGuid') cfGuid; - @Input('appGuid') appGuid; + @Input() instances; + @Input() cfGuid; + @Input() appGuid; // Observable on the running instances count for the application public runningInstances$: Observable; diff --git a/src/frontend/app/shared/components/service-icon/service-icon.component.ts b/src/frontend/app/shared/components/service-icon/service-icon.component.ts index 79363bc976..598b4107e0 100644 --- a/src/frontend/app/shared/components/service-icon/service-icon.component.ts +++ b/src/frontend/app/shared/components/service-icon/service-icon.component.ts @@ -12,9 +12,9 @@ export class ServiceIconComponent implements OnInit { image = ''; extraInfo: IServiceExtra; - @Input('service') service: APIResource; + @Input() service: APIResource; - @Input('addMenuPadding') addMenuPadding = false; + @Input() addMenuPadding = false; constructor() { } ngOnInit() { diff --git a/src/frontend/app/shared/components/ssh-viewer/ssh-viewer.component.ts b/src/frontend/app/shared/components/ssh-viewer/ssh-viewer.component.ts index 92259660d6..f3c9382c26 100644 --- a/src/frontend/app/shared/components/ssh-viewer/ssh-viewer.component.ts +++ b/src/frontend/app/shared/components/ssh-viewer/ssh-viewer.component.ts @@ -22,16 +22,16 @@ import { Observable, Subject, Subscription } from 'rxjs'; }) export class SshViewerComponent implements OnInit, OnDestroy, AfterViewChecked { - @Input('errorMessage') + @Input() errorMessage: string; - @Input('sshStream') + @Input() sshStream: Observable; - @Input('sshInput') + @Input() sshInput: Subject; - @Input('connectionStatus') + @Input() public connectionStatus: Observable; public isConnected = false; diff --git a/src/frontend/app/shared/components/stateful-icon/stateful-icon.component.ts b/src/frontend/app/shared/components/stateful-icon/stateful-icon.component.ts index e35a7f8477..3115842bbc 100644 --- a/src/frontend/app/shared/components/stateful-icon/stateful-icon.component.ts +++ b/src/frontend/app/shared/components/stateful-icon/stateful-icon.component.ts @@ -19,7 +19,7 @@ type StatefulIconDefinition = IconDefinition | IconTemplateDefinition; export class StatefulIconComponent implements OnInit, OnChanges { - @Input('state') + @Input() state: string; @ViewChild('spinner') diff --git a/src/frontend/app/shared/components/stepper/step/step.component.ts b/src/frontend/app/shared/components/stepper/step/step.component.ts index 8c76981bc7..92d6fe542d 100644 --- a/src/frontend/app/shared/components/stepper/step/step.component.ts +++ b/src/frontend/app/shared/components/stepper/step/step.component.ts @@ -41,7 +41,7 @@ export class StepComponent { @Output() onHidden = new EventEmitter(); - @Input('hidden') + @Input() set hidden(hidden: boolean) { this._hidden = hidden; this.onHidden.emit(this._hidden); @@ -51,28 +51,28 @@ export class StepComponent { return this._hidden; } - @Input('valid') + @Input() valid = true; - @Input('canClose') + @Input() canClose = true; - @Input('nextButtonText') + @Input() nextButtonText = 'Next'; - @Input('finishButtonText') + @Input() finishButtonText = 'Finish'; - @Input('cancelButtonText') + @Input() cancelButtonText = 'Cancel'; - @Input('disablePrevious') + @Input() disablePrevious = false; - @Input('blocked') + @Input() blocked = false; - @Input('destructiveStep') + @Input() public destructiveStep = false; @ViewChild(TemplateRef) diff --git a/src/frontend/app/shared/components/stepper/steppers/steppers.component.ts b/src/frontend/app/shared/components/stepper/steppers/steppers.component.ts index 5d52acda84..319b75ef47 100644 --- a/src/frontend/app/shared/components/stepper/steppers/steppers.component.ts +++ b/src/frontend/app/shared/components/stepper/steppers/steppers.component.ts @@ -36,8 +36,8 @@ export class SteppersComponent implements OnInit, AfterContentInit, OnDestroy { @ContentChildren(StepComponent) _steps: QueryList; - @Input('cancel') cancel = null; - @Input('nextButtonProgress') nextButtonProgress = true; + @Input() cancel = null; + @Input() nextButtonProgress = true; steps: StepComponent[] = []; allSteps: StepComponent[] = []; diff --git a/src/frontend/app/shared/components/tile/tile-grid/tile-grid.component.ts b/src/frontend/app/shared/components/tile/tile-grid/tile-grid.component.ts index 3aa9ba26cf..ba8722a22e 100644 --- a/src/frontend/app/shared/components/tile/tile-grid/tile-grid.component.ts +++ b/src/frontend/app/shared/components/tile/tile-grid/tile-grid.component.ts @@ -8,5 +8,5 @@ import { Component, OnInit, ViewEncapsulation, HostBinding, Input } from '@angul }) export class TileGridComponent { @HostBinding('class.app-tile-grid-fit') - @Input('fit') private fit = false; + @Input() private fit = false; } diff --git a/src/frontend/app/shared/components/tile/tile/tile.component.ts b/src/frontend/app/shared/components/tile/tile/tile.component.ts index 4506d1185d..09d85f51fd 100644 --- a/src/frontend/app/shared/components/tile/tile/tile.component.ts +++ b/src/frontend/app/shared/components/tile/tile/tile.component.ts @@ -8,7 +8,7 @@ import { Component, OnInit, AfterContentInit, Input, ViewEncapsulation, HostBind }) export class TileComponent implements OnInit, AfterContentInit { - @Input('size') size: string; + @Input() size: string; @HostBinding('class.app-tile-1-3') private isOneThirdFixed = false; diff --git a/src/frontend/app/shared/components/upload-progress-indicator/upload-progress-indicator.component.ts b/src/frontend/app/shared/components/upload-progress-indicator/upload-progress-indicator.component.ts index e25c419ad0..495f3d5283 100644 --- a/src/frontend/app/shared/components/upload-progress-indicator/upload-progress-indicator.component.ts +++ b/src/frontend/app/shared/components/upload-progress-indicator/upload-progress-indicator.component.ts @@ -9,6 +9,6 @@ export class UploadProgressIndicatorComponent { constructor() { } - @Input('value') value: number; + @Input() value: number; } diff --git a/src/frontend/app/shared/components/usage-gauge/usage-gauge.component.ts b/src/frontend/app/shared/components/usage-gauge/usage-gauge.component.ts index 065c1141c5..e2874bf0db 100644 --- a/src/frontend/app/shared/components/usage-gauge/usage-gauge.component.ts +++ b/src/frontend/app/shared/components/usage-gauge/usage-gauge.component.ts @@ -7,19 +7,19 @@ import { Component, OnInit, Input } from '@angular/core'; }) export class UsageGaugeComponent implements OnInit { - @Input('title') public title: string; + @Input() public title: string; - @Input('value') public value: number; + @Input() public value: number; - @Input('valueText') public valueText: string; + @Input() public valueText: string; - @Input('barOnly') public barOnly: boolean; + @Input() public barOnly: boolean; // Change bar color to warning if this threshold is reached - @Input('warningAt') public warningAt: number; + @Input() public warningAt: number; // Change bar color to error if this threshold is reached - @Input('errorAt') public errorAt: number; + @Input() public errorAt: number; constructor() { } diff --git a/src/frontend/app/shared/components/user-profile-banner/user-profile-banner.component.ts b/src/frontend/app/shared/components/user-profile-banner/user-profile-banner.component.ts index 51f69047ac..cc08da9e85 100644 --- a/src/frontend/app/shared/components/user-profile-banner/user-profile-banner.component.ts +++ b/src/frontend/app/shared/components/user-profile-banner/user-profile-banner.component.ts @@ -7,8 +7,8 @@ import { Component, OnInit, Input } from '@angular/core'; }) export class UserProfileBannerComponent implements OnInit { - @Input('name') name: string; - @Input('email') email: string; + @Input() name: string; + @Input() email: string; constructor() { } diff --git a/src/frontend/app/shared/monitors/entity-monitor.factory.service.ts b/src/frontend/app/shared/monitors/entity-monitor.factory.service.ts index 8a5a94682e..687e98ae7f 100644 --- a/src/frontend/app/shared/monitors/entity-monitor.factory.service.ts +++ b/src/frontend/app/shared/monitors/entity-monitor.factory.service.ts @@ -2,7 +2,7 @@ import { Injectable } from '@angular/core'; import { EntityMonitor } from './entity-monitor'; import { AppState } from '../../store/app-state'; import { Store } from '@ngrx/store'; -import { schema } from 'normalizr'; +import { schema as normalizrSchema} from 'normalizr'; @Injectable() export class EntityMonitorFactory { @@ -16,7 +16,7 @@ export class EntityMonitorFactory { public create( id: string, entityKey: string, - schema: schema.Entity, + schema: normalizrSchema.Entity, ): EntityMonitor { const cacheKey = id + entityKey; if (this.monitorCache[cacheKey]) { diff --git a/src/frontend/app/shared/monitors/entity-monitor.ts b/src/frontend/app/shared/monitors/entity-monitor.ts index 9a05d9ec33..f70ebe512a 100644 --- a/src/frontend/app/shared/monitors/entity-monitor.ts +++ b/src/frontend/app/shared/monitors/entity-monitor.ts @@ -1,6 +1,6 @@ import { Store } from '@ngrx/store'; -import { denormalize, schema } from 'normalizr'; +import { denormalize, schema as normalizrSchema } from 'normalizr'; import { combineLatest, interval as observableInterval, Observable } from 'rxjs'; import { tag } from 'rxjs-spy/operators/tag'; import { distinctUntilChanged, filter, map, publishReplay, refCount, share, startWith, tap, withLatestFrom } from 'rxjs/operators'; @@ -20,7 +20,7 @@ export class EntityMonitor { private store: Store, public id: string, public entityKey: string, - public schema: schema.Entity, + public schema: normalizrSchema.Entity, ) { const defaultRequestState = getDefaultRequestState(); this.entityRequest$ = store.select(selectRequestInfo(entityKey, id)).pipe( @@ -88,7 +88,7 @@ export class EntityMonitor { } private getEntityObservable = ( - schema: schema.Entity, + schema: normalizrSchema.Entity, entitySelect$: Observable, entityRequestSelect$: Observable, entities$: Observable diff --git a/src/frontend/app/shared/monitors/pagination-monitor.factory.ts b/src/frontend/app/shared/monitors/pagination-monitor.factory.ts index e4d286fd5d..54302b4442 100644 --- a/src/frontend/app/shared/monitors/pagination-monitor.factory.ts +++ b/src/frontend/app/shared/monitors/pagination-monitor.factory.ts @@ -2,7 +2,7 @@ import { Injectable } from '@angular/core'; import { PaginationMonitor } from './pagination-monitor'; import { Store } from '@ngrx/store'; import { AppState } from '../../store/app-state'; -import { schema } from 'normalizr'; +import { schema as normalizrSchema } from 'normalizr'; @Injectable() export class PaginationMonitorFactory { @@ -15,7 +15,7 @@ export class PaginationMonitorFactory { public create( paginationKey: string, - schema: schema.Entity, + schema: normalizrSchema.Entity, ) { const cacheKey = paginationKey + schema.key; if (this.monitorCache[cacheKey]) { diff --git a/src/frontend/app/shared/monitors/pagination-monitor.ts b/src/frontend/app/shared/monitors/pagination-monitor.ts index 77bf974194..a9eeade1a0 100644 --- a/src/frontend/app/shared/monitors/pagination-monitor.ts +++ b/src/frontend/app/shared/monitors/pagination-monitor.ts @@ -1,5 +1,5 @@ import { Store } from '@ngrx/store'; -import { denormalize, schema } from 'normalizr'; +import { denormalize, schema as normalizrSchema } from 'normalizr'; import { asapScheduler, Observable } from 'rxjs'; import { tag } from 'rxjs-spy/operators'; import { @@ -44,7 +44,7 @@ export class PaginationMonitor { constructor( private store: Store, public paginationKey: string, - public schema: schema.Entity, + public schema: normalizrSchema.Entity, ) { this.init(store, paginationKey, schema); } @@ -100,7 +100,7 @@ export class PaginationMonitor { private init( store: Store, paginationKey: string, - schema: schema.Entity, + schema: normalizrSchema.Entity, ) { this.pagination$ = this.createPaginationObservable( store, @@ -125,7 +125,7 @@ export class PaginationMonitor { private createPageObservable( pagination$: Observable, - schema: schema.Entity, + schema: normalizrSchema.Entity, ) { const entityObservable$ = this.store .select(selectEntities(this.schema.key)) diff --git a/src/frontend/app/shared/shared.types.ts b/src/frontend/app/shared/shared.types.ts index d30f45e142..a42823977a 100644 --- a/src/frontend/app/shared/shared.types.ts +++ b/src/frontend/app/shared/shared.types.ts @@ -1,5 +1,5 @@ -import { schema } from 'normalizr'; +import { schema as normalizrSchema} from 'normalizr'; export class ComponentEntityMonitorConfig { - constructor(public guid: string, public schema: schema.Entity) { } + constructor(public guid: string, public schema: normalizrSchema.Entity) { } } diff --git a/src/frontend/app/shared/user-permission.directive.ts b/src/frontend/app/shared/user-permission.directive.ts index 12a7ead7af..01c3574a08 100644 --- a/src/frontend/app/shared/user-permission.directive.ts +++ b/src/frontend/app/shared/user-permission.directive.ts @@ -13,16 +13,16 @@ import { AppState } from '../store/app-state'; }) export class UserPermissionDirective implements OnDestroy, OnInit { - @Input('appUserPermission') + @Input() public appUserPermission: CurrentUserPermissions; - @Input('appUserPermissionEndpointGuid') + @Input() public appUserPermissionEndpointGuid: string; - @Input('appUserPermissionOrganizationGuid') + @Input() private appUserPermissionOrganizationGuid: string; - @Input('appUserPermissionSpaceGuid') + @Input() private appUserPermissionSpaceGuid: string; private canSub: Subscription; diff --git a/src/frontend/app/store/actions/list.actions.ts b/src/frontend/app/store/actions/list.actions.ts index cea4095c2d..4955cab928 100644 --- a/src/frontend/app/store/actions/list.actions.ts +++ b/src/frontend/app/store/actions/list.actions.ts @@ -4,9 +4,9 @@ import { Action } from '@ngrx/store'; import { defaultClientPaginationPageSize } from '../reducers/pagination-reducer/pagination.reducer'; export class ListPagination { - public totalResults? = 0; - public pageSize? = defaultClientPaginationPageSize; - public pageIndex? = 0; + public totalResults ? = 0; + public pageSize ? = defaultClientPaginationPageSize; + public pageIndex ? = 0; } export class ListSort { diff --git a/src/frontend/app/store/reducers/users-roles.reducer.ts b/src/frontend/app/store/reducers/users-roles.reducer.ts index 4e5d083e3d..d3f4a1fc1c 100644 --- a/src/frontend/app/store/reducers/users-roles.reducer.ts +++ b/src/frontend/app/store/reducers/users-roles.reducer.ts @@ -85,27 +85,27 @@ export function UsersRolesReducer(state: UsersRolesState = defaultState, action: return state; } -function setPermission(roles: IUserPermissionInOrg | IUserPermissionInSpace, role: string, setRole: boolean) { - if (roles.permissions[role] === setRole) { +function setPermission(roles: IUserPermissionInOrg | IUserPermissionInSpace, role: string, applyRole: boolean) { + if (roles.permissions[role] === applyRole) { return false; } roles.permissions = { ...roles.permissions, - [role]: setRole + [role]: applyRole }; return true; } -function setRole(existingState: UsersRolesState, orgGuid: string, spaceGuid: string, role: string, setRole: boolean): UsersRolesState { +function setRole(existingState: UsersRolesState, orgGuid: string, spaceGuid: string, role: string, applyRole: boolean): UsersRolesState { // Create a fresh instance of the org roles let newOrgRoles = cloneOrgRoles(existingState.newRoles, orgGuid); if (spaceGuid) { // Space role change - setSpaceRole(newOrgRoles, orgGuid, spaceGuid, role, setRole); + setSpaceRole(newOrgRoles, orgGuid, spaceGuid, role, applyRole); } else { // Org role change - newOrgRoles = setOrgRole(newOrgRoles, orgGuid, role, setRole); + newOrgRoles = setOrgRole(newOrgRoles, orgGuid, role, applyRole); } // There's been no change to the existing state, just return the existing state; @@ -130,16 +130,16 @@ function cloneOrgRoles(orgRoles: IUserPermissionInOrg, orgGuid: string): IUserPe } : createDefaultOrgRoles(orgGuid); } -function setSpaceRole(orgRoles: IUserPermissionInOrg, orgGuid: string, spaceGuid: string, role: string, setRole: boolean) { +function setSpaceRole(orgRoles: IUserPermissionInOrg, orgGuid: string, spaceGuid: string, role: string, applyRole: boolean) { if (!orgRoles.spaces[spaceGuid]) { orgRoles.spaces[spaceGuid] = createDefaultSpaceRoles(orgGuid, spaceGuid); } const spaceRoles = orgRoles.spaces[spaceGuid] = { ...orgRoles.spaces[spaceGuid] }; - orgRoles = setPermission(spaceRoles, role, setRole) ? orgRoles : null; + orgRoles = setPermission(spaceRoles, role, applyRole) ? orgRoles : null; // If the user has applied any space role they must also have the org user role applied too. - if (orgRoles && setRole) { + if (orgRoles && applyRole) { orgRoles.permissions = { ...orgRoles.permissions, [OrgUserRoleNames.USER]: true @@ -147,10 +147,10 @@ function setSpaceRole(orgRoles: IUserPermissionInOrg, orgGuid: string, spaceGuid } } -function setOrgRole(orgRoles: IUserPermissionInOrg, orgGuid: string, role: string, setRole: boolean): IUserPermissionInOrg { - orgRoles = setPermission(orgRoles, role, setRole) ? orgRoles : null; +function setOrgRole(orgRoles: IUserPermissionInOrg, orgGuid: string, role: string, applyRole: boolean): IUserPermissionInOrg { + orgRoles = setPermission(orgRoles, role, applyRole) ? orgRoles : null; // If the user has applied the org manager, auditor or billing manager role they must also have the org user role applied too. - if (orgRoles && role !== 'user' && setRole) { + if (orgRoles && role !== 'user' && applyRole) { orgRoles.permissions = { ...orgRoles.permissions, [OrgUserRoleNames.USER]: true diff --git a/src/frontend/app/test-framework/entity-service.helper.ts b/src/frontend/app/test-framework/entity-service.helper.ts index dabbb30701..03c3370018 100644 --- a/src/frontend/app/test-framework/entity-service.helper.ts +++ b/src/frontend/app/test-framework/entity-service.helper.ts @@ -1,5 +1,5 @@ import { Store } from '@ngrx/store'; -import { schema } from 'normalizr'; +import { schema as normalizrSchema } from 'normalizr'; import { EntityServiceFactory } from '../core/entity-service-factory.service'; import { ENTITY_SERVICE } from '../shared/entity.tokens'; import { AppState } from '../store/app-state'; @@ -8,7 +8,7 @@ import { IRequestAction } from '../store/types/request.types'; export function generateTestEntityServiceProvider( guid: string, - schema: schema.Entity, + schema: normalizrSchema.Entity, action: IRequestAction ) { function useFactory( diff --git a/src/test-e2e/e2e.ts b/src/test-e2e/e2e.ts index 963e0169db..c85cd7cbe5 100644 --- a/src/test-e2e/e2e.ts +++ b/src/test-e2e/e2e.ts @@ -5,6 +5,7 @@ import { RequestHelpers } from './helpers/request-helpers'; import { ResetsHelpers } from './helpers/reset-helpers'; import { SecretsHelpers } from './helpers/secrets-helpers'; +/* tslint:disable */ /** * E2E Helper - just use this via the 'e2e' const - don't import the helpers directly */ @@ -212,3 +213,4 @@ export class E2ESetup { export const e2e = new E2E(); +/* tslint:enable */ diff --git a/src/test-e2e/endpoints/endpoints-register-e2e.spec.ts b/src/test-e2e/endpoints/endpoints-register-e2e.spec.ts index fa08d988c7..9652f8f1d9 100644 --- a/src/test-e2e/endpoints/endpoints-register-e2e.spec.ts +++ b/src/test-e2e/endpoints/endpoints-register-e2e.spec.ts @@ -153,7 +153,8 @@ describe('Endpoints', () => { const snackBar = new SnackBarComponent(); snackBar.waitUntilShown(); /* tslint:disable-line:max-line-length*/ - expect(snackBar.hasMessage(`SSL error - x509: certificate signed by unknown authority. Please check "Skip SSL validation for the endpoint" if the certificate issuer is trusted"`)); + expect(snackBar.hasMessage(`SSL error - x509: certificate + signed by unknown authority. Please check "Skip SSL validation for the endpoint" if the certificate issuer is trusted"`)); }); it('Successful register', () => { diff --git a/src/test-e2e/endpoints/endpoints.po.ts b/src/test-e2e/endpoints/endpoints.po.ts index c6b4588b6b..479f21f908 100644 --- a/src/test-e2e/endpoints/endpoints.po.ts +++ b/src/test-e2e/endpoints/endpoints.po.ts @@ -6,6 +6,44 @@ import { ListComponent, ListTableComponent } from '../po/list.po'; import { Page } from '../po/page.po'; import { SnackBarComponent } from '../po/snackbar.po'; +export class EndpointsTable extends ListTableComponent { + + constructor(locator: ElementFinder) { + super(locator); + } + + getEndpointData(row: ElementFinder) { + // Get all of the columns + return row.all(by.tagName('app-table-cell')).map(col => col.getText()).then(data => { + return { + name: data[0], + connected: data[1] === 'cloud_done', + type: data[2], + url: data[3] + } as EndpointMetadata; + }); + } + + getAllData() { + return this.getRows().map(row => this.getEndpointData(row)); + } + + getRowForEndpoint(name: string) { + return this.getAllData().then(data => { + const index = data.findIndex((ep: E2EEndpointConfig) => ep.name === name); + return this.getRows().get(index); + }); + } + + getEndpointDataForEndpoint(name: string) { + return this.getAllData().then(data => data.find((d: EndpointMetadata) => d.name === name)); + } + + openActionMenu(row: ElementFinder) { + row.element(by.css('app-table-cell-actions button')).click(); + } + +} export function resetToLoggedIn(stateSetter, isAdmin) { return browser.driver.wait(stateSetter()) .then(() => { @@ -84,41 +122,3 @@ export interface EndpointMetadata { connected: boolean; } -export class EndpointsTable extends ListTableComponent { - - constructor(locator: ElementFinder) { - super(locator); - } - - getEndpointData(row: ElementFinder) { - // Get all of the columns - return row.all(by.tagName('app-table-cell')).map(col => col.getText()).then(data => { - return { - name: data[0], - connected: data[1] === 'cloud_done', - type: data[2], - url: data[3] - } as EndpointMetadata; - }); - } - - getAllData() { - return this.getRows().map(row => this.getEndpointData(row)); - } - - getRowForEndpoint(name: string) { - return this.getAllData().then(data => { - const index = data.findIndex((ep: E2EEndpointConfig) => ep.name === name); - return this.getRows().get(index); - }); - } - - getEndpointDataForEndpoint(name: string) { - return this.getAllData().then(data => data.find((d: EndpointMetadata) => d.name === name)); - } - - openActionMenu(row: ElementFinder) { - row.element(by.css('app-table-cell-actions button')).click(); - } - -} diff --git a/src/test-e2e/helpers/e2e-helpers.ts b/src/test-e2e/helpers/e2e-helpers.ts index c0c27bf1fb..6c2eb7b1ac 100644 --- a/src/test-e2e/helpers/e2e-helpers.ts +++ b/src/test-e2e/helpers/e2e-helpers.ts @@ -1,4 +1,4 @@ -import { ElementArrayFinder, browser, by, element } from 'protractor'; +import { ElementArrayFinder, browser, by, element as protractorElement} from 'protractor'; import { promise, protractor } from 'protractor/built'; import { ElementFinder } from 'protractor/built/element'; import { LoginPage } from '../login/login.po'; @@ -78,7 +78,7 @@ export class E2EHelpers { * Form helpers */ getForm(formName): ElementFinder { - return element(by.css('form[name="' + formName + '"]')); + return protractorElement(by.css('form[name="' + formName + '"]')); } getFormFields(formName): ElementArrayFinder { diff --git a/src/test-e2e/helpers/screenshots-helper.ts b/src/test-e2e/helpers/screenshots-helper.ts index e287df998b..9a79079432 100644 --- a/src/test-e2e/helpers/screenshots-helper.ts +++ b/src/test-e2e/helpers/screenshots-helper.ts @@ -17,11 +17,13 @@ export class E2eScreenshot { browser.takeScreenshot().then(function (data) { const base64Data = data.replace(/^data:image\/png;base64,/, ''); writeFile(filePath, base64Data, 'base64', function (err) { + /* tslint:disable */ if (err) { console.log(`Failed to save screenshot '${filePath}'`, err); } else { console.log('Wrote screenshot to ', filePath); } + /* tslint:enable */ }); }); } diff --git a/src/test-e2e/marketplace/marketplace-summary.po.ts b/src/test-e2e/marketplace/marketplace-summary.po.ts index 02add641c3..2b62af1110 100644 --- a/src/test-e2e/marketplace/marketplace-summary.po.ts +++ b/src/test-e2e/marketplace/marketplace-summary.po.ts @@ -12,7 +12,7 @@ export class MarketplaceSummaryPage extends Page { } getServiceSummaryCard() { - return this.locator.element(by.css('.service-summary')) + return this.locator.element(by.css('.service-summary')); } getRecentInstances() { diff --git a/src/test-e2e/po/component.po.ts b/src/test-e2e/po/component.po.ts index 0bdeed0a79..0d035fbf15 100644 --- a/src/test-e2e/po/component.po.ts +++ b/src/test-e2e/po/component.po.ts @@ -1,5 +1,5 @@ import { ElementFinder, protractor } from 'protractor/built'; -import { browser, element, promise } from 'protractor'; +import { browser, promise } from 'protractor'; const until = protractor.ExpectedConditions; diff --git a/src/test-e2e/po/form.po.ts b/src/test-e2e/po/form.po.ts index bb0dad3957..a1b263511e 100644 --- a/src/test-e2e/po/form.po.ts +++ b/src/test-e2e/po/form.po.ts @@ -26,6 +26,41 @@ export interface FormItem { error: string; } +// Page Object for a form field +export class FormField { + + public element: ElementFinder; + + constructor(public form: FormComponent, public name: string) { + this.element = this.form.getField(name); + } + + set(v: string): promise.Promise { + return this.form.fill({ [this.name]: v }); + } + + clear(): promise.Promise { + return this.form.clearField(this.name); + } + + isDisabled(): promise.Promise { + return this.form.isFieldDisabled(this.name); + } + + isInvalid(): promise.Promise { + return this.form.isFieldInvalid(this.name); + } + + getError(): promise.Promise { + return this.form.getFieldErrorText(this.name); + } + + focus(): promise.Promise { + return this.form.focusField(this.name); + } +} + + /** * Page Object for a form */ @@ -169,36 +204,3 @@ export class FormComponent extends Component { } -// Page Object for a form field -export class FormField { - - public element: ElementFinder; - - constructor(public form: FormComponent, public name: string) { - this.element = this.form.getField(name); - } - - set(v: string): promise.Promise { - return this.form.fill({ [this.name]: v }); - } - - clear(): promise.Promise { - return this.form.clearField(this.name); - } - - isDisabled(): promise.Promise { - return this.form.isFieldDisabled(this.name); - } - - isInvalid(): promise.Promise { - return this.form.isFieldInvalid(this.name); - } - - getError(): promise.Promise { - return this.form.getFieldErrorText(this.name); - } - - focus(): promise.Promise { - return this.form.focusField(this.name); - } -} diff --git a/src/test-e2e/po/list.po.ts b/src/test-e2e/po/list.po.ts index fa836b3f23..1f80c29f7b 100644 --- a/src/test-e2e/po/list.po.ts +++ b/src/test-e2e/po/list.po.ts @@ -12,57 +12,6 @@ export interface CardMetadata { click: Function; } -/** - * Page Object for the List component - */ -export class ListComponent extends Component { - - public table: ListTableComponent; - - public cards: ListCardComponent; - - public header: ListHeaderComponent; - - constructor(locator: ElementFinder = element(by.tagName('app-list'))) { - super(locator); - this.table = new ListTableComponent(locator); - this.cards = new ListCardComponent(locator); - this.header = new ListHeaderComponent(locator); - } - - isTableView(): promise.Promise { - const listElement = this.locator.element(by.css('.list-component')); - return this.hasClass('list-component__table', listElement); - } - - isCardsView(): promise.Promise { - const listElement = this.locator.element(by.css('.list-component')); - return this.hasClass('list-component__cards', listElement); - } - - refresh() { - this.locator.element(by.id('app-list-refresh-button')).click(); - const refreshIcon = element(by.css('.refresh-icon.refreshing')); - return browser.wait(until.invisibilityOf(refreshIcon), 10000); - } - - getTotalResults() { - const paginator = new PaginatorComponent(); - return paginator.isDisplayed().then(havePaginator => { - if (havePaginator) { - return paginator.getTotalResults(); - } - return this.isCardsView().then(haveCardsView => { - if (haveCardsView) { - return this.cards.getCards().count(); - } - return this.table.getRows().count(); - }); - }); - } - -} - // Page Object for the List Table View export class ListTableComponent extends Component { @@ -221,3 +170,54 @@ export class ListHeaderComponent extends Component { } } +/** + * Page Object for the List component + */ +export class ListComponent extends Component { + + public table: ListTableComponent; + + public cards: ListCardComponent; + + public header: ListHeaderComponent; + + constructor(locator: ElementFinder = element(by.tagName('app-list'))) { + super(locator); + this.table = new ListTableComponent(locator); + this.cards = new ListCardComponent(locator); + this.header = new ListHeaderComponent(locator); + } + + isTableView(): promise.Promise { + const listElement = this.locator.element(by.css('.list-component')); + return this.hasClass('list-component__table', listElement); + } + + isCardsView(): promise.Promise { + const listElement = this.locator.element(by.css('.list-component')); + return this.hasClass('list-component__cards', listElement); + } + + refresh() { + this.locator.element(by.id('app-list-refresh-button')).click(); + const refreshIcon = element(by.css('.refresh-icon.refreshing')); + return browser.wait(until.invisibilityOf(refreshIcon), 10000); + } + + getTotalResults() { + const paginator = new PaginatorComponent(); + return paginator.isDisplayed().then(havePaginator => { + if (havePaginator) { + return paginator.getTotalResults(); + } + return this.isCardsView().then(haveCardsView => { + if (haveCardsView) { + return this.cards.getCards().count(); + } + return this.table.getRows().count(); + }); + }); + } + +} + diff --git a/src/test-e2e/po/page-header.po.ts b/src/test-e2e/po/page-header.po.ts index d89353c421..dbebc4420f 100644 --- a/src/test-e2e/po/page-header.po.ts +++ b/src/test-e2e/po/page-header.po.ts @@ -1,4 +1,4 @@ -import { browser, by, element, ElementFinder, promise, protractor } from 'protractor'; +import { browser, by, element as protractorElement, ElementFinder, promise, protractor } from 'protractor'; import { ElementArrayFinder } from 'protractor/built'; import { Component } from './component.po'; @@ -10,7 +10,7 @@ import { MenuComponent } from './menu.po'; export class PageHeader extends Component { constructor() { - super(element(by.tagName('app-page-header'))); + super(protractorElement(by.tagName('app-page-header'))); } private readonly until = protractor.ExpectedConditions; private readonly pageTitleSelector = '.page-header h1'; diff --git a/tslint.json b/tslint.json index 62cb344604..8c4e3ed9a2 100644 --- a/tslint.json +++ b/tslint.json @@ -102,7 +102,6 @@ "variable-declaration": "nospace" } ], - "typeof-compare": true, "unified-signatures": true, "variable-name": false, "whitespace": [ @@ -133,9 +132,6 @@ "use-life-cycle-interface": true, "use-pipe-transform-interface": true, "component-class-suffix": true, - "directive-class-suffix": true, - "no-access-missing-member": true, - "templates-use-public": true, - "invoke-injectable": true + "directive-class-suffix": true } -} \ No newline at end of file +}