From 92d9c2cf03f263f9490a8fd6ac2ccd815c9b0c7c Mon Sep 17 00:00:00 2001 From: "CITE\\dtziotzios" Date: Tue, 27 Nov 2018 19:33:17 +0200 Subject: [PATCH] rxjs refactor --- dmp-frontend/.editorconfig | 1 + dmp-frontend/karma.conf.js | 31 - dmp-frontend/package-lock.json | 4588 ++++++++--------- dmp-frontend/package.json | 7 +- dmp-frontend/protractor.conf.js | 50 +- .../app/core/common/base/base.component.ts | 14 + .../src/app/core/common/base/base.service.ts | 14 + ...dataset-profile-admin-listing.component.ts | 48 +- .../form/form.component.html | 2 +- .../form/form.component.ts | 100 +- .../dataset-profile-previewer.component.ts | 26 +- .../section-form/section-form.component.ts | 24 +- .../dataset-public-listing.component.ts | 52 +- ...ory-referenced-model-helper.component.html | 6 +- ...itory-referenced-model-helper.component.ts | 20 +- ...set-referenced-model-helper.component.html | 4 +- ...taset-referenced-model-helper.component.ts | 24 +- ...try-referenced-model-helper.component.html | 6 +- ...istry-referenced-model-helper.component.ts | 18 +- ...ces-referenced-model-helper.component.html | 6 +- ...vices-referenced-model-helper.component.ts | 18 +- .../dataset-wizard.component.ts | 248 +- .../editor/dataset-editor.component.html | 12 +- .../editor/dataset-editor.component.ts | 25 +- .../listing/dataset-listing.component.ts | 65 +- .../dmp-profile-editor.component.html | 16 +- .../dmp-profile-editor.component.ts | 68 +- .../dmp-profile-listing.component.ts | 36 +- .../app/dmps/editor/dmp-editor.component.html | 8 +- .../app/dmps/editor/dmp-editor.component.ts | 291 +- .../dmp-finalise-dialog.component.ts | 42 +- .../app/dmps/listing/dmp-listing.component.ts | 104 +- .../app/dmps/wizard/dmp-wizard.component.ts | 64 +- .../editor/dmp-wizard-editor.component.html | 8 +- .../editor/dmp-wizard-editor.component.ts | 70 +- .../dataset-wizard-listing.component.ts | 53 +- .../dynamic-field-dropdown.html | 2 +- .../dynamic-form-field.component.ts | 29 +- .../dynamic-form/dynamic-form.component.ts | 55 +- .../pprogress-bar/progress-bar.component.ts | 14 +- .../src/app/homepage/homepage.component.html | 169 +- .../src/app/homepage/homepage.component.ts | 59 +- .../editor/project-editor.component.html | 109 +- .../editor/project-editor.component.scss | 95 +- .../editor/project-editor.component.ts | 104 +- .../listing/project-listing.component.html | 111 +- .../listing/project-listing.component.ts | 4 +- .../src/app/services/auth/auth.service.ts | 16 +- .../breadcrumb/breadcrumb-resolver.service.ts | 36 +- .../language-resolver.service.ts | 16 +- .../add-researchers.component.html | 4 +- .../add-researchers.component.ts | 22 +- .../auto-complete.component.html | 2 +- .../auto-complete/auto-complete.component.ts | 31 +- .../available-profiles.component.ts | 27 +- .../criteria/base/base-criteria.component.ts | 8 +- .../dmp-criteria.component.ts | 22 +- .../datasets/datasets-criteria.component.ts | 26 +- .../users/users-criteria.component.ts | 23 +- .../facet-search-section.component.scss | 5 + .../facet-search-section.component.ts | 16 +- .../facets/facet-search.component.html | 8 +- .../facets/facet-search.component.scss | 9 + .../facets/facet-search.component.ts | 45 +- .../file-uploader/file-uploader.component.ts | 10 +- .../invitation-accepted.component.ts | 31 +- .../invitation/invitation.component.ts | 104 +- .../snack-bar-notification.component.ts | 15 +- .../help-content/help-content.component.ts | 28 +- .../unauthorized/unauthorized.component.ts | 22 +- .../b2access/b2access-login.component.ts | 18 +- .../linkedin-login.component.ts | 18 +- .../login/login.component.html | 90 +- .../twitter-login/twitter-login.component.ts | 18 +- .../user-management/utilties/login-service.ts | 74 +- .../activity/recent-activity.component.ts | 35 +- .../roles/user-role-editor.component.html | 2 +- .../roles/user-role-editor.component.ts | 40 +- .../app/users/components/users.component.ts | 31 +- .../users/profile/user-profile.component.ts | 99 +- dmp-frontend/src/assets/lang/en.json | 4 +- .../src/assets/scss/bootstrap-material.scss | 11 +- dmp-frontend/src/blue-theme.scss | 140 + dmp-frontend/src/index.html | 10 +- dmp-frontend/src/styles.scss | 22 +- dmp-frontend/static/goodbye.html | 1 - dmp-frontend/static/index.html | 29 - dmp-frontend/static/openDmps.png | Bin 3322 -> 0 bytes dmp-frontend/tsconfig.json | 28 +- dmp-frontend/tslint.json | 12 + 90 files changed, 4226 insertions(+), 3902 deletions(-) delete mode 100644 dmp-frontend/karma.conf.js create mode 100644 dmp-frontend/src/app/core/common/base/base.component.ts create mode 100644 dmp-frontend/src/app/core/common/base/base.service.ts create mode 100644 dmp-frontend/src/blue-theme.scss delete mode 100644 dmp-frontend/static/goodbye.html delete mode 100644 dmp-frontend/static/index.html delete mode 100644 dmp-frontend/static/openDmps.png diff --git a/dmp-frontend/.editorconfig b/dmp-frontend/.editorconfig index 2e8b0ef1b..1aaf025fc 100644 --- a/dmp-frontend/.editorconfig +++ b/dmp-frontend/.editorconfig @@ -5,6 +5,7 @@ root = true charset = utf-8 indent_style = tab indent_size = 4 +max_line_length = off insert_final_newline = true trim_trailing_whitespace = true diff --git a/dmp-frontend/karma.conf.js b/dmp-frontend/karma.conf.js deleted file mode 100644 index 0840f6ca5..000000000 --- a/dmp-frontend/karma.conf.js +++ /dev/null @@ -1,31 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/1.0/config/configuration-file.html - -module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', '@angular-devkit/build-angular'], - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-jasmine-html-reporter'), - require('karma-coverage-istanbul-reporter'), - require('@angular-devkit/build-angular/plugins/karma') - ], - client:{ - clearContext: false // leave Jasmine Spec Runner output visible in browser - }, - coverageIstanbulReporter: { - dir: require('path').join(__dirname, 'coverage'), reports: [ 'html', 'lcovonly' ], - fixWebpackSourcePaths: true - }, - - reporters: ['progress', 'kjhtml'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['Chrome'], - singleRun: false - }); -}; diff --git a/dmp-frontend/package-lock.json b/dmp-frontend/package-lock.json index 431a68bb2..0cd1fbb96 100644 --- a/dmp-frontend/package-lock.json +++ b/dmp-frontend/package-lock.json @@ -11,7 +11,7 @@ "dev": true, "requires": { "@angular-devkit/core": "0.8.5", - "rxjs": "~6.2.0" + "rxjs": "6.2.2" }, "dependencies": { "rxjs": { @@ -20,7 +20,7 @@ "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } } } @@ -36,50 +36,50 @@ "@angular-devkit/build-webpack": "0.8.5", "@angular-devkit/core": "0.8.5", "@ngtools/webpack": "6.2.5", - "ajv": "~6.4.0", - "autoprefixer": "^8.4.1", - "circular-dependency-plugin": "^5.0.2", - "clean-css": "^4.1.11", - "copy-webpack-plugin": "^4.5.2", - "file-loader": "^1.1.11", - "glob": "^7.0.3", - "html-webpack-plugin": "^3.0.6", - "istanbul": "^0.4.5", - "istanbul-instrumenter-loader": "^3.0.1", - "karma-source-map-support": "^1.2.0", - "less": "^3.7.1", - "less-loader": "^4.1.0", - "license-webpack-plugin": "^1.3.1", - "loader-utils": "^1.1.0", - "mini-css-extract-plugin": "~0.4.0", - "minimatch": "^3.0.4", - "node-sass": "^4.9.3", - "opn": "^5.1.0", - "parse5": "^4.0.0", - "portfinder": "^1.0.13", - "postcss": "^6.0.22", - "postcss-import": "^11.1.0", - "postcss-loader": "^2.1.5", - "postcss-url": "^7.3.2", - "raw-loader": "^0.5.1", - "rxjs": "~6.2.0", - "sass-loader": "^7.1.0", - "semver": "^5.5.0", - "source-map-loader": "^0.2.3", - "source-map-support": "^0.5.0", - "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.15.1", - "webpack-dev-middleware": "^3.1.3", - "webpack-dev-server": "^3.1.4", - "webpack-merge": "^4.1.2", - "webpack-sources": "^1.1.0", - "webpack-subresource-integrity": "^1.1.0-rc.4" + "ajv": "6.4.0", + "autoprefixer": "8.6.5", + "circular-dependency-plugin": "5.0.2", + "clean-css": "4.2.1", + "copy-webpack-plugin": "4.5.3", + "file-loader": "1.1.11", + "glob": "7.1.3", + "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.8.1", + "less-loader": "4.1.0", + "license-webpack-plugin": "1.5.0", + "loader-utils": "1.1.0", + "mini-css-extract-plugin": "0.4.4", + "minimatch": "3.0.4", + "node-sass": "4.9.3", + "opn": "5.3.0", + "parse5": "4.0.0", + "portfinder": "1.0.17", + "postcss": "6.0.23", + "postcss-import": "11.1.0", + "postcss-loader": "2.1.6", + "postcss-url": "7.3.2", + "raw-loader": "0.5.1", + "rxjs": "6.2.2", + "sass-loader": "7.1.0", + "semver": "5.5.0", + "source-map-loader": "0.2.4", + "source-map-support": "0.5.9", + "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.3.0", + "url-loader": "1.1.2", + "webpack": "4.20.2", + "webpack-dev-middleware": "3.4.0", + "webpack-dev-server": "3.1.9", + "webpack-merge": "4.1.4", + "webpack-sources": "1.3.0", + "webpack-subresource-integrity": "1.2.0" }, "dependencies": { "rxjs": { @@ -88,7 +88,7 @@ "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } } } @@ -99,10 +99,10 @@ "integrity": "sha512-VKzTmSz7X4VdAZm51qIx9vPrbk1WCmoVznCFp/VCEW3YJNNwiCwdkI/CQDgQbMWbkUE/3s6f1JIkTP/S+rAsuA==", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "source-map": "^0.5.6", - "typescript": "~2.9.2", - "webpack-sources": "^1.1.0" + "loader-utils": "1.1.0", + "source-map": "0.5.7", + "typescript": "2.9.2", + "webpack-sources": "1.3.0" }, "dependencies": { "typescript": { @@ -121,7 +121,7 @@ "requires": { "@angular-devkit/architect": "0.8.5", "@angular-devkit/core": "0.8.5", - "rxjs": "~6.2.0" + "rxjs": "6.2.2" }, "dependencies": { "rxjs": { @@ -130,7 +130,7 @@ "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } } } @@ -141,10 +141,10 @@ "integrity": "sha512-QGYuGJDzCOjZaRR7pSly9QNM8RO7Q5NawqRYQzsOVhdI4n5GJ2gAYSw+wi5tyavlrNcbvLw9//MAPhBkPrZMJw==", "dev": true, "requires": { - "ajv": "~6.4.0", - "chokidar": "^2.0.3", - "rxjs": "~6.2.0", - "source-map": "^0.5.6" + "ajv": "6.4.0", + "chokidar": "2.0.4", + "rxjs": "6.2.2", + "source-map": "0.5.7" }, "dependencies": { "anymatch": { @@ -153,8 +153,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "micromatch": "3.1.10", + "normalize-path": "2.1.1" } }, "arr-diff": { @@ -175,16 +175,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -193,7 +193,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -204,19 +204,19 @@ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.2", + "fsevents": "1.2.4", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "lodash.debounce": "4.0.8", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0", + "upath": "1.1.0" } }, "expand-brackets": { @@ -225,13 +225,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -240,7 +240,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -249,7 +249,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -258,7 +258,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -267,7 +267,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -278,7 +278,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -287,7 +287,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -298,9 +298,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -317,14 +317,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -333,7 +333,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -342,7 +342,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -353,10 +353,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -365,7 +365,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -376,8 +376,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -386,7 +386,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -397,7 +397,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -406,7 +406,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -415,9 +415,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-extglob": { @@ -432,7 +432,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-number": { @@ -441,7 +441,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -450,7 +450,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -473,19 +473,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "rxjs": { @@ -494,7 +494,7 @@ "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } } } @@ -506,7 +506,7 @@ "dev": true, "requires": { "@angular-devkit/core": "0.8.5", - "rxjs": "~6.2.0" + "rxjs": "6.2.2" }, "dependencies": { "@angular-devkit/core": { @@ -515,10 +515,10 @@ "integrity": "sha512-QGYuGJDzCOjZaRR7pSly9QNM8RO7Q5NawqRYQzsOVhdI4n5GJ2gAYSw+wi5tyavlrNcbvLw9//MAPhBkPrZMJw==", "dev": true, "requires": { - "ajv": "~6.4.0", - "chokidar": "^2.0.3", - "rxjs": "~6.2.0", - "source-map": "^0.5.6" + "ajv": "6.4.0", + "chokidar": "2.0.4", + "rxjs": "6.2.2", + "source-map": "0.5.7" } }, "anymatch": { @@ -527,8 +527,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "micromatch": "3.1.10", + "normalize-path": "2.1.1" } }, "arr-diff": { @@ -549,16 +549,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -567,7 +567,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -578,19 +578,19 @@ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.2", + "fsevents": "1.2.4", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "lodash.debounce": "4.0.8", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0", + "upath": "1.1.0" } }, "expand-brackets": { @@ -599,13 +599,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -614,7 +614,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -623,7 +623,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -632,7 +632,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -641,7 +641,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -652,7 +652,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -661,7 +661,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -672,9 +672,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -691,14 +691,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -707,7 +707,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -716,7 +716,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -727,10 +727,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -739,7 +739,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -750,8 +750,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -760,7 +760,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -771,7 +771,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -780,7 +780,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -789,9 +789,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-extglob": { @@ -806,7 +806,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-number": { @@ -815,7 +815,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -824,7 +824,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -847,19 +847,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "rxjs": { @@ -868,7 +868,7 @@ "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } } } @@ -878,7 +878,7 @@ "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-6.1.10.tgz", "integrity": "sha512-dd/lq7kw3uwfHPICan8psu2nthuUpp7PvMLuNIm0XxObZ4oNs0ls6uxKEDPnEkRKoGdiJpvmsyzZZN9ACMPEAA==", "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } }, "@angular/cdk": { @@ -887,7 +887,7 @@ "integrity": "sha512-18x0U66fLD5kGQWZ9n3nb75xQouXlWs7kUDaTd8HTrHpT1s2QIAqlLd1KxfrYiVhsEC2jPQaoiae7VnBlcvkBg==", "dev": true, "requires": { - "tslib": "^1.7.1" + "tslib": "1.9.2" } }, "@angular/cli": { @@ -901,12 +901,12 @@ "@angular-devkit/schematics": "0.8.5", "@schematics/angular": "0.8.5", "@schematics/update": "0.8.5", - "json-schema-traverse": "^0.4.1", - "opn": "^5.3.0", - "rxjs": "~6.2.0", - "semver": "^5.1.0", - "symbol-observable": "^1.2.0", - "yargs-parser": "^10.0.0" + "json-schema-traverse": "0.4.1", + "opn": "5.3.0", + "rxjs": "6.2.2", + "semver": "5.5.0", + "symbol-observable": "1.2.0", + "yargs-parser": "10.1.0" }, "dependencies": { "@angular-devkit/architect": { @@ -916,7 +916,7 @@ "dev": true, "requires": { "@angular-devkit/core": "0.8.5", - "rxjs": "~6.2.0" + "rxjs": "6.2.2" } }, "@angular-devkit/core": { @@ -925,10 +925,10 @@ "integrity": "sha512-QGYuGJDzCOjZaRR7pSly9QNM8RO7Q5NawqRYQzsOVhdI4n5GJ2gAYSw+wi5tyavlrNcbvLw9//MAPhBkPrZMJw==", "dev": true, "requires": { - "ajv": "~6.4.0", - "chokidar": "^2.0.3", - "rxjs": "~6.2.0", - "source-map": "^0.5.6" + "ajv": "6.4.0", + "chokidar": "2.0.4", + "rxjs": "6.2.2", + "source-map": "0.5.7" } }, "anymatch": { @@ -937,8 +937,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "micromatch": "3.1.10", + "normalize-path": "2.1.1" } }, "arr-diff": { @@ -959,16 +959,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -977,7 +977,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -988,19 +988,19 @@ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.2", + "fsevents": "1.2.4", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "lodash.debounce": "4.0.8", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0", + "upath": "1.1.0" } }, "expand-brackets": { @@ -1009,13 +1009,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -1024,7 +1024,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -1033,7 +1033,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -1042,7 +1042,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -1051,7 +1051,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -1062,7 +1062,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -1071,7 +1071,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -1082,9 +1082,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -1101,14 +1101,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -1117,7 +1117,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -1126,7 +1126,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -1137,10 +1137,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -1149,7 +1149,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -1160,8 +1160,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -1170,7 +1170,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -1181,7 +1181,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -1190,7 +1190,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -1199,9 +1199,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-extglob": { @@ -1216,7 +1216,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-number": { @@ -1225,7 +1225,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -1234,7 +1234,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -1263,19 +1263,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "rxjs": { @@ -1284,7 +1284,7 @@ "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } } } @@ -1294,7 +1294,7 @@ "resolved": "https://registry.npmjs.org/@angular/common/-/common-6.1.10.tgz", "integrity": "sha512-73xxTSYJNKfiJ7C1Ajg+sz5l8y+blb/vNgHYg7O3yem5zLBnfPpidJ1UGg4W4d2Y+jwUVJbZKh8SKJarqAJVUQ==", "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } }, "@angular/compiler": { @@ -1302,7 +1302,7 @@ "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-6.1.10.tgz", "integrity": "sha512-FPIb2j3zfoBwb6vo/u0gQeu70h8InGlSisBr3xMACs/35/pwB6kbQR+JQiUr0D7k6QApg7AuMkvq8aFNelg0aw==", "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } }, "@angular/compiler-cli": { @@ -1311,10 +1311,10 @@ "integrity": "sha512-GCWdyeNQSnF4RfzO4A0+WHsNEgxKpl5arg4ldLSWMNkj/DrhMD4TnmxhR+IVY+7ieMkUBwpcuWRnjdOdnbmV+w==", "dev": true, "requires": { - "chokidar": "^1.4.2", - "minimist": "^1.2.0", - "reflect-metadata": "^0.1.2", - "tsickle": "^0.32.1" + "chokidar": "1.7.0", + "minimist": "1.2.0", + "reflect-metadata": "0.1.12", + "tsickle": "0.32.1" }, "dependencies": { "minimist": { @@ -1330,7 +1330,7 @@ "resolved": "https://registry.npmjs.org/@angular/core/-/core-6.1.10.tgz", "integrity": "sha512-61l3rIQTVdT45eOf6/fBJIeVmV10mcrxqS4N/1OWkuDT29YSJTZSxGcv8QjAyyutuhcqWWpO6gVRkN07rWmkPg==", "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } }, "@angular/flex-layout": { @@ -1338,7 +1338,7 @@ "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-6.0.0-beta.18.tgz", "integrity": "sha512-1Alv3YSIZYp0CTUIESIaSQLoSVyLzuNKPa5bGM/RzOmeSrndm5plVgI9wopGfJUDiwM18R97rq/4XjDvNT/+ig==", "requires": { - "tslib": "^1.7.1" + "tslib": "1.9.2" } }, "@angular/forms": { @@ -1346,7 +1346,7 @@ "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-6.1.10.tgz", "integrity": "sha512-zAPx2kMV1/FbP5DrY472Sd/ze1m+GS6T5ullZCtP392r62p2RkwzDCXieR51YiRJjZj3M6c3AcRND7PWBdXT7A==", "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } }, "@angular/http": { @@ -1355,7 +1355,7 @@ "integrity": "sha512-LDsSqyexh8fj23y+G2oSGLWSZVhbxBBo2ehYHnRgH/jlp0pmZVLRaGgUMNSCVtZc1rxLzpEjZjtw+P+qlutAtw==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } }, "@angular/language-service": { @@ -1370,8 +1370,8 @@ "integrity": "sha512-SdNx7Xovi24Kw9eU6lkLhY/7f2M7L9F+/uh6XuPr4jbGgCUVVpeeVI5ztZhsZRbj1sN+/r1p5w8u62apWWl5Ww==", "dev": true, "requires": { - "parse5": "^5.0.0", - "tslib": "^1.7.1" + "parse5": "5.1.0", + "tslib": "1.9.2" }, "dependencies": { "parse5": { @@ -1388,7 +1388,7 @@ "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-6.4.7.tgz", "integrity": "sha512-OGdDtpu/yRioOQXhJFCNuiOF2OgiL9VUj8ewFPi1lDtFGUFfVwU2h3hWkKLn+yuPW+DBVYla11tCNsn5dLElmA==", "requires": { - "tslib": "^1.7.1" + "tslib": "1.9.2" } }, "@angular/platform-browser": { @@ -1396,7 +1396,7 @@ "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-6.1.10.tgz", "integrity": "sha512-CB7pqMwtgb7KjdHDAJlsXcs0rrU+2xQVaoOaqEfJtUrKhtGMLaZh8Qoic5l92SoGattkOw7SYarAOsWlAsVfvw==", "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } }, "@angular/platform-browser-dynamic": { @@ -1405,7 +1405,7 @@ "integrity": "sha512-DmBSUyFPoyKqkmBXyJ2CrP1oXDioeoBlPA8lmWUDUv2yBuoHIzIkdY/OkTZbdyu/QYa1hK2Jl9OlfoeoenKddg==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } }, "@angular/router": { @@ -1414,15 +1414,15 @@ "integrity": "sha512-tekI3dkdvd65oMoxjjgRA+16uDgPUBWHhYxids6pgO8vobZNtCo8VaVlcDyLUhdmtS5kONELx0iL5E2M0Y2Bag==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } }, "@covalent/core": { - "version": "2.0.0-beta.3", - "resolved": "https://registry.npmjs.org/@covalent/core/-/core-2.0.0-beta.3.tgz", - "integrity": "sha512-EPWFxtaxfvUlLIZLPyfaKQM+rkeiHem5w0hc9bmVrFBNV9rZklGBBdZMdCegcdQR0P2Wplr+j3oNbAL6Qi1oRw==", + "version": "2.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@covalent/core/-/core-2.0.0-beta.5.tgz", + "integrity": "sha512-pEhp2qwTzQ26OkZeU48n4ifGU4Gx4+7l4TsaZcUyREK2huaYbGMQCYrIhpeuecB04iNTDBOfWBSftBLQ7X9X9w==", "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } }, "@ngtools/webpack": { @@ -1432,9 +1432,9 @@ "dev": true, "requires": { "@angular-devkit/core": "0.8.5", - "rxjs": "~6.2.0", - "tree-kill": "^1.0.0", - "webpack-sources": "^1.1.0" + "rxjs": "6.2.2", + "tree-kill": "1.2.0", + "webpack-sources": "1.3.0" }, "dependencies": { "rxjs": { @@ -1443,7 +1443,7 @@ "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } } } @@ -1453,7 +1453,7 @@ "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-10.0.2.tgz", "integrity": "sha512-7nM3DrJaqKswwtJlbu2kuKNl+hE8Isr18sKsKvGGpSxQk+G0gO0reDlx2PhUNus7TJTkA1C59vU/JoN8hIvZ4g==", "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } }, "@ngx-translate/http-loader": { @@ -1461,7 +1461,7 @@ "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-3.0.1.tgz", "integrity": "sha1-ILD5i8bCUyESnT4zAqs8xInApCo=", "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } }, "@schematics/angular": { @@ -1472,7 +1472,7 @@ "requires": { "@angular-devkit/core": "0.8.5", "@angular-devkit/schematics": "0.8.5", - "typescript": ">=2.6.2 <2.10" + "typescript": "2.9.2" }, "dependencies": { "@angular-devkit/core": { @@ -1481,10 +1481,10 @@ "integrity": "sha512-QGYuGJDzCOjZaRR7pSly9QNM8RO7Q5NawqRYQzsOVhdI4n5GJ2gAYSw+wi5tyavlrNcbvLw9//MAPhBkPrZMJw==", "dev": true, "requires": { - "ajv": "~6.4.0", - "chokidar": "^2.0.3", - "rxjs": "~6.2.0", - "source-map": "^0.5.6" + "ajv": "6.4.0", + "chokidar": "2.0.4", + "rxjs": "6.2.2", + "source-map": "0.5.7" }, "dependencies": { "rxjs": { @@ -1493,7 +1493,7 @@ "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } } } @@ -1504,8 +1504,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "micromatch": "3.1.10", + "normalize-path": "2.1.1" } }, "arr-diff": { @@ -1526,16 +1526,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -1544,7 +1544,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -1555,19 +1555,19 @@ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.2", + "fsevents": "1.2.4", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "lodash.debounce": "4.0.8", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0", + "upath": "1.1.0" } }, "expand-brackets": { @@ -1576,13 +1576,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -1591,7 +1591,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -1600,7 +1600,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -1609,7 +1609,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -1618,7 +1618,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -1629,7 +1629,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -1638,7 +1638,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -1649,9 +1649,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -1668,14 +1668,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -1684,7 +1684,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -1693,7 +1693,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -1704,10 +1704,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -1716,7 +1716,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -1727,8 +1727,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -1737,7 +1737,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -1748,7 +1748,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -1757,7 +1757,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -1766,9 +1766,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-extglob": { @@ -1783,7 +1783,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-number": { @@ -1792,7 +1792,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -1801,7 +1801,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -1824,19 +1824,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "typescript": { @@ -1855,10 +1855,10 @@ "requires": { "@angular-devkit/core": "0.8.5", "@angular-devkit/schematics": "0.8.5", - "npm-registry-client": "^8.5.1", - "rxjs": "~6.2.0", - "semver": "^5.3.0", - "semver-intersect": "^1.1.2" + "npm-registry-client": "8.6.0", + "rxjs": "6.2.2", + "semver": "5.5.0", + "semver-intersect": "1.4.0" }, "dependencies": { "@angular-devkit/core": { @@ -1867,10 +1867,10 @@ "integrity": "sha512-QGYuGJDzCOjZaRR7pSly9QNM8RO7Q5NawqRYQzsOVhdI4n5GJ2gAYSw+wi5tyavlrNcbvLw9//MAPhBkPrZMJw==", "dev": true, "requires": { - "ajv": "~6.4.0", - "chokidar": "^2.0.3", - "rxjs": "~6.2.0", - "source-map": "^0.5.6" + "ajv": "6.4.0", + "chokidar": "2.0.4", + "rxjs": "6.2.2", + "source-map": "0.5.7" } }, "anymatch": { @@ -1879,8 +1879,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "micromatch": "3.1.10", + "normalize-path": "2.1.1" } }, "arr-diff": { @@ -1901,16 +1901,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -1919,7 +1919,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -1930,19 +1930,19 @@ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.2", + "fsevents": "1.2.4", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "lodash.debounce": "4.0.8", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0", + "upath": "1.1.0" } }, "expand-brackets": { @@ -1951,13 +1951,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -1966,7 +1966,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -1975,7 +1975,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -1984,7 +1984,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -1993,7 +1993,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -2004,7 +2004,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -2013,7 +2013,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -2024,9 +2024,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -2043,14 +2043,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -2059,7 +2059,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -2068,7 +2068,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -2079,10 +2079,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -2091,7 +2091,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -2102,8 +2102,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -2112,7 +2112,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -2123,7 +2123,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -2132,7 +2132,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -2141,9 +2141,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-extglob": { @@ -2158,7 +2158,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-number": { @@ -2167,7 +2167,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -2176,7 +2176,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -2199,19 +2199,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "rxjs": { @@ -2220,7 +2220,7 @@ "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } } } @@ -2254,7 +2254,7 @@ "integrity": "sha512-+V/w7MUyPAUcTX0A7qd9Fj0nxnhERptFtgY9GaybXdlVPGGNDhQgXfm+yiMa+LN6/8UIKTdLC8yyrVEHXZTgEg==", "dev": true, "requires": { - "@types/gapi": "*" + "@types/gapi": "0.0.36" } }, "@types/jasmine": { @@ -2269,7 +2269,7 @@ "integrity": "sha512-1awkm/O4pQCR9hI2F80HmIOda/L+ogkSL8Arj1k00eue5VLY5ooewhSOyF/cUJE0S+/34uD5EYY3zmd6fu2OCA==", "dev": true, "requires": { - "@types/jasmine": "*" + "@types/jasmine": "2.8.9" } }, "@types/moment-timezone": { @@ -2278,7 +2278,7 @@ "integrity": "sha512-tBf1QR8xAayQfI1xD+SMSNDMxi+aCYKEhjgVXTZt3sgxS2XusNX3jM6jJbFoY/ar1CK/PaYJoPkWs/mwcwgOqw==", "dev": true, "requires": { - "moment": ">=2.14.0" + "moment": "2.22.2" } }, "@types/node": { @@ -2373,7 +2373,7 @@ "integrity": "sha512-tOarWChdG1a3y1yqCX0JMDKzrat5tQe4pV6K/TX19BcXsBLYxFQOL1DEDa5KG9syeyvCrvZ+i1+Mv1ExngvktQ==", "dev": true, "requires": { - "@xtuc/ieee754": "^1.2.0" + "@xtuc/ieee754": "1.2.0" } }, "@webassemblyjs/leb128": { @@ -2495,7 +2495,7 @@ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "mime-types": "~2.1.18", + "mime-types": "2.1.20", "negotiator": "0.6.1" } }, @@ -2511,7 +2511,7 @@ "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "dev": true, "requires": { - "acorn": "^5.0.0" + "acorn": "5.7.3" } }, "adm-zip": { @@ -2526,7 +2526,7 @@ "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", "dev": true, "requires": { - "es6-promisify": "^5.0.0" + "es6-promisify": "5.0.0" } }, "ajv": { @@ -2535,10 +2535,10 @@ "integrity": "sha1-06/3jpJ3VJdx2vAWTP9ISCt1T8Y=", "dev": true, "requires": { - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0", - "uri-js": "^3.0.2" + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1", + "uri-js": "3.0.2" } }, "ajv-errors": { @@ -2583,7 +2583,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.3" } }, "anymatch": { @@ -2592,8 +2592,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "app-root-path": { @@ -2614,8 +2614,8 @@ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "argparse": { @@ -2624,7 +2624,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "arr-diff": { @@ -2633,7 +2633,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-flatten": { @@ -2667,7 +2667,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "^1.0.1" + "array-uniq": "1.0.3" } }, "array-uniq": { @@ -2707,9 +2707,9 @@ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "bn.js": "4.11.8", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" } }, "assert": { @@ -2788,12 +2788,12 @@ "integrity": "sha512-PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig==", "dev": true, "requires": { - "browserslist": "^3.2.8", - "caniuse-lite": "^1.0.30000864", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^6.0.23", - "postcss-value-parser": "^3.2.3" + "browserslist": "3.2.8", + "caniuse-lite": "1.0.30000890", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "6.0.23", + "postcss-value-parser": "3.3.0" } }, "aws-sign2": { @@ -2816,9 +2816,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" }, "dependencies": { "ansi-styles": { @@ -2833,11 +2833,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" } }, "supports-color": { @@ -2854,14 +2854,14 @@ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.11", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-messages": { @@ -2870,7 +2870,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-runtime": { @@ -2879,8 +2879,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -2889,11 +2889,11 @@ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.11" } }, "babel-traverse": { @@ -2902,15 +2902,15 @@ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.11" } }, "babel-types": { @@ -2919,10 +2919,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.11", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -2943,13 +2943,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -2958,7 +2958,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -2967,7 +2967,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -2976,7 +2976,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -2985,9 +2985,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -3023,7 +3023,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, "big.js": { @@ -3045,7 +3045,7 @@ "dev": true, "optional": true, "requires": { - "inherits": "~2.0.0" + "inherits": "2.0.3" } }, "blocking-proxy": { @@ -3054,7 +3054,7 @@ "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", "dev": true, "requires": { - "minimist": "^1.2.0" + "minimist": "1.2.0" }, "dependencies": { "minimist": { @@ -3084,15 +3084,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "~1.0.4", + "content-type": "1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "~1.6.3", + "depd": "1.1.2", + "http-errors": "1.6.3", "iconv-lite": "0.4.23", - "on-finished": "~2.3.0", + "on-finished": "2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "~1.6.16" + "type-is": "1.6.16" } }, "bonjour": { @@ -3101,12 +3101,12 @@ "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "dev": true, "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" + "array-flatten": "2.1.1", + "deep-equal": "1.0.1", + "dns-equal": "1.0.0", + "dns-txt": "2.0.2", + "multicast-dns": "6.2.3", + "multicast-dns-service-types": "1.1.0" } }, "boolbase": { @@ -3126,7 +3126,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -3136,9 +3136,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, "brorand": { @@ -3153,12 +3153,12 @@ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.3", + "safe-buffer": "5.1.2" } }, "browserify-cipher": { @@ -3167,9 +3167,9 @@ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "browserify-aes": "1.2.0", + "browserify-des": "1.0.2", + "evp_bytestokey": "1.0.3" } }, "browserify-des": { @@ -3178,10 +3178,10 @@ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.3", + "safe-buffer": "5.1.2" } }, "browserify-rsa": { @@ -3190,8 +3190,8 @@ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" + "bn.js": "4.11.8", + "randombytes": "2.0.6" } }, "browserify-sign": { @@ -3200,13 +3200,13 @@ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "dev": true, "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "elliptic": "6.4.1", + "inherits": "2.0.3", + "parse-asn1": "5.1.1" } }, "browserify-zlib": { @@ -3215,7 +3215,7 @@ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, "requires": { - "pako": "~1.0.5" + "pako": "1.0.6" } }, "browserslist": { @@ -3224,8 +3224,8 @@ "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" + "caniuse-lite": "1.0.30000890", + "electron-to-chromium": "1.3.78" } }, "browserstack": { @@ -3234,7 +3234,7 @@ "integrity": "sha512-O8VMT64P9NOLhuIoD4YngyxBURefaSdR4QdhG8l6HZ9VxtU7jc3m6jLufFwKA5gaf7fetfB2TnRJnMxyob+heg==", "dev": true, "requires": { - "https-proxy-agent": "^2.2.1" + "https-proxy-agent": "2.2.1" } }, "buffer": { @@ -3243,9 +3243,9 @@ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "dev": true, "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "base64-js": "1.3.0", + "ieee754": "1.1.12", + "isarray": "1.0.0" } }, "buffer-from": { @@ -3296,19 +3296,19 @@ "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", "dev": true, "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" + "bluebird": "3.5.2", + "chownr": "1.1.1", + "glob": "7.1.3", + "graceful-fs": "4.1.11", + "lru-cache": "4.1.3", + "mississippi": "2.0.0", + "mkdirp": "0.5.1", + "move-concurrently": "1.0.1", + "promise-inflight": "1.0.1", + "rimraf": "2.6.2", + "ssri": "5.3.0", + "unique-filename": "1.1.1", + "y18n": "4.0.0" } }, "cache-base": { @@ -3317,15 +3317,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" }, "dependencies": { "isobject": { @@ -3342,8 +3342,8 @@ "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "dev": true, "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" + "no-case": "2.3.2", + "upper-case": "1.1.3" } }, "camelcase": { @@ -3359,8 +3359,8 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "camelcase": "2.1.1", + "map-obj": "1.0.1" }, "dependencies": { "camelcase": { @@ -3390,42 +3390,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chart.js": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.7.2.tgz", - "integrity": "sha512-90wl3V9xRZ8tnMvMlpcW+0Yg13BelsGS9P9t0ClaDxv/hdypHDr/YAGf+728m11P5ljwyB0ZHfPKCapZFqSqYA==", - "requires": { - "chartjs-color": "^2.1.0", - "moment": "^2.10.2" - } - }, - "chartjs-color": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.2.0.tgz", - "integrity": "sha1-hKL7dVeH7YXDndbdjHsdiEKbrq4=", - "requires": { - "chartjs-color-string": "^0.5.0", - "color-convert": "^0.5.3" - }, - "dependencies": { - "color-convert": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", - "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=" - } - } - }, - "chartjs-color-string": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.5.0.tgz", - "integrity": "sha512-amWNvCOXlOUYxZVDSa0YOab5K/lmEhbFNKI55PWc4mlv28BDzA7zaoQTGxSBgJMHIW+hGX8YUrvw/FH4LyhwSQ==", - "requires": { - "color-name": "^1.0.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" } }, "chokidar": { @@ -3434,15 +3401,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" } }, "chownr": { @@ -3457,7 +3424,7 @@ "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } }, "cipher-base": { @@ -3466,8 +3433,8 @@ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.3", + "safe-buffer": "5.1.2" } }, "circular-dependency-plugin": { @@ -3482,10 +3449,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -3494,7 +3461,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { @@ -3511,7 +3478,7 @@ "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", "dev": true, "requires": { - "source-map": "~0.6.0" + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -3529,9 +3496,9 @@ "dev": true, "optional": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" } }, "clone": { @@ -3546,10 +3513,10 @@ "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", "dev": true, "requires": { - "for-own": "^1.0.0", - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.0", - "shallow-clone": "^1.0.0" + "for-own": "1.0.0", + "is-plain-object": "2.0.4", + "kind-of": "6.0.2", + "shallow-clone": "1.0.0" }, "dependencies": { "for-own": { @@ -3558,7 +3525,7 @@ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "dev": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "kind-of": { @@ -3587,12 +3554,12 @@ "integrity": "sha512-oO6vCkjqsVrEsmh58oNlnJkRXuA30hF8cdNAQV9DytEalDwyOFRvHMnlKFzmOStNerOmPGZU9GAHnBo4tGvtiQ==", "dev": true, "requires": { - "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.7", - "sprintf-js": "^1.1.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.7", + "sprintf-js": "1.1.1" }, "dependencies": { "sprintf-js": { @@ -3609,8 +3576,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "color-convert": { @@ -3630,11 +3597,6 @@ } } }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=" - }, "colors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", @@ -3647,7 +3609,7 @@ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "commander": { @@ -3674,7 +3636,7 @@ "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==", "dev": true, "requires": { - "mime-db": ">= 1.36.0 < 2" + "mime-db": "1.36.0" } }, "compression": { @@ -3683,13 +3645,13 @@ "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", "dev": true, "requires": { - "accepts": "~1.3.5", + "accepts": "1.3.5", "bytes": "3.0.0", - "compressible": "~2.0.14", + "compressible": "2.0.15", "debug": "2.6.9", - "on-headers": "~1.0.1", + "on-headers": "1.0.1", "safe-buffer": "5.1.2", - "vary": "~1.1.2" + "vary": "1.1.2" } }, "concat-map": { @@ -3704,10 +3666,10 @@ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "buffer-from": "1.1.0", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" } }, "connect-history-api-fallback": { @@ -3722,7 +3684,7 @@ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "dev": true, "requires": { - "date-now": "^0.1.4" + "date-now": "0.1.4" } }, "console-control-strings": { @@ -3755,7 +3717,7 @@ "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "dev": true, "requires": { - "safe-buffer": "~5.1.1" + "safe-buffer": "5.1.2" } }, "cookie": { @@ -3776,12 +3738,12 @@ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "dev": true, "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" + "aproba": "1.2.0", + "fs-write-stream-atomic": "1.0.10", + "iferr": "0.1.5", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" } }, "copy-descriptor": { @@ -3796,14 +3758,14 @@ "integrity": "sha512-VKCiNXQcc8zyznaepXfKpCH2cZD+/j3T3B+gsFY97P7qMlEsj34wr/sI9OCG7QPUUh7gAHVx3q8Q1rdQIDM4bA==", "dev": true, "requires": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "globby": "^7.1.1", - "is-glob": "^4.0.0", - "loader-utils": "^1.1.0", - "minimatch": "^3.0.4", - "p-limit": "^1.0.0", - "serialize-javascript": "^1.4.0" + "cacache": "10.0.4", + "find-cache-dir": "1.0.0", + "globby": "7.1.1", + "is-glob": "4.0.0", + "loader-utils": "1.1.0", + "minimatch": "3.0.4", + "p-limit": "1.3.0", + "serialize-javascript": "1.5.0" }, "dependencies": { "is-extglob": { @@ -3818,7 +3780,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } } } @@ -3840,10 +3802,10 @@ "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", "dev": true, "requires": { - "is-directory": "^0.3.1", - "js-yaml": "^3.9.0", - "parse-json": "^4.0.0", - "require-from-string": "^2.0.1" + "is-directory": "0.3.1", + "js-yaml": "3.12.0", + "parse-json": "4.0.0", + "require-from-string": "2.0.2" }, "dependencies": { "parse-json": { @@ -3852,8 +3814,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } } } @@ -3864,8 +3826,8 @@ "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "dev": true, "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "bn.js": "4.11.8", + "elliptic": "6.4.1" } }, "create-hash": { @@ -3874,11 +3836,11 @@ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "md5.js": "1.3.5", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" } }, "create-hmac": { @@ -3887,12 +3849,12 @@ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "inherits": "2.0.3", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "cross-spawn": { @@ -3902,8 +3864,8 @@ "dev": true, "optional": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.1" } }, "crypto-browserify": { @@ -3912,17 +3874,17 @@ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "browserify-cipher": "1.0.1", + "browserify-sign": "4.0.4", + "create-ecdh": "4.0.3", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "diffie-hellman": "5.0.3", + "inherits": "2.0.3", + "pbkdf2": "3.0.17", + "public-encrypt": "4.0.3", + "randombytes": "2.0.6", + "randomfill": "1.0.4" } }, "css-parse": { @@ -3937,10 +3899,10 @@ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "dev": true, "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", + "boolbase": "1.0.0", + "css-what": "2.1.0", "domutils": "1.5.1", - "nth-check": "~1.0.1" + "nth-check": "1.0.1" } }, "css-selector-tokenizer": { @@ -3949,9 +3911,9 @@ "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", "dev": true, "requires": { - "cssesc": "^0.1.0", - "fastparse": "^1.1.1", - "regexpu-core": "^1.0.0" + "cssesc": "0.1.0", + "fastparse": "1.1.1", + "regexpu-core": "1.0.0" } }, "css-what": { @@ -3966,7 +3928,7 @@ "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", "dev": true, "requires": { - "through": "X.X.X" + "through": "2.3.8" } }, "cssesc": { @@ -3988,7 +3950,7 @@ "dev": true, "optional": true, "requires": { - "array-find-index": "^1.0.1" + "array-find-index": "1.0.2" } }, "cyclist": { @@ -4003,7 +3965,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" }, "dependencies": { "assert-plus": { @@ -4059,8 +4021,8 @@ "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==", "dev": true, "requires": { - "execa": "^0.10.0", - "ip-regex": "^2.1.0" + "execa": "0.10.0", + "ip-regex": "2.1.0" } }, "define-properties": { @@ -4069,7 +4031,7 @@ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "object-keys": "1.0.12" } }, "define-property": { @@ -4078,8 +4040,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -4088,7 +4050,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -4097,7 +4059,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -4106,9 +4068,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -4131,12 +4093,12 @@ "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "dev": true, "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" + "globby": "6.1.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", + "p-map": "1.2.0", + "pify": "3.0.0", + "rimraf": "2.6.2" }, "dependencies": { "globby": { @@ -4145,11 +4107,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "glob": "7.1.3", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" }, "dependencies": { "pify": { @@ -4186,8 +4148,8 @@ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "dev": true, "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" } }, "destroy": { @@ -4202,7 +4164,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "detect-node": { @@ -4223,9 +4185,9 @@ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "bn.js": "4.11.8", + "miller-rabin": "4.0.1", + "randombytes": "2.0.6" } }, "dir-glob": { @@ -4234,8 +4196,8 @@ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "dev": true, "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" + "arrify": "1.0.1", + "path-type": "3.0.0" } }, "dns-equal": { @@ -4250,8 +4212,8 @@ "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", "dev": true, "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" + "ip": "1.1.5", + "safe-buffer": "5.1.2" } }, "dns-txt": { @@ -4260,7 +4222,7 @@ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "dev": true, "requires": { - "buffer-indexof": "^1.0.0" + "buffer-indexof": "1.1.1" } }, "dom-converter": { @@ -4269,7 +4231,7 @@ "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", "dev": true, "requires": { - "utila": "~0.4" + "utila": "0.4.0" } }, "dom-serializer": { @@ -4278,8 +4240,8 @@ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "~1.1.1", - "entities": "~1.1.1" + "domelementtype": "1.1.3", + "entities": "1.1.1" }, "dependencies": { "domelementtype": { @@ -4308,7 +4270,7 @@ "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", "dev": true, "requires": { - "domelementtype": "1" + "domelementtype": "1.3.0" } }, "domutils": { @@ -4317,8 +4279,8 @@ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "dev": true, "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" } }, "duplexify": { @@ -4327,10 +4289,10 @@ "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "dev": true, "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "stream-shift": "1.0.0" } }, "ecc-jsbn": { @@ -4340,7 +4302,7 @@ "dev": true, "optional": true, "requires": { - "jsbn": "~0.1.0" + "jsbn": "0.1.1" } }, "ee-first": { @@ -4367,13 +4329,13 @@ "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "dev": true, "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.5", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "emojis-list": { @@ -4394,7 +4356,7 @@ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { - "once": "^1.4.0" + "once": "1.4.0" } }, "enhanced-resolve": { @@ -4403,9 +4365,9 @@ "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "tapable": "^1.0.0" + "graceful-fs": "4.1.11", + "memory-fs": "0.4.1", + "tapable": "1.1.0" } }, "entities": { @@ -4420,7 +4382,7 @@ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { - "prr": "~1.0.1" + "prr": "1.0.1" } }, "error-ex": { @@ -4429,7 +4391,7 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "es-abstract": { @@ -4438,11 +4400,11 @@ "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", - "is-regex": "^1.0.4" + "es-to-primitive": "1.2.0", + "function-bind": "1.1.1", + "has": "1.0.3", + "is-callable": "1.1.4", + "is-regex": "1.0.4" } }, "es-to-primitive": { @@ -4451,9 +4413,9 @@ "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "dev": true, "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "1.1.4", + "is-date-object": "1.0.1", + "is-symbol": "1.0.2" } }, "es6-promise": { @@ -4468,7 +4430,7 @@ "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { - "es6-promise": "^4.0.3" + "es6-promise": "4.2.5" } }, "escape-html": { @@ -4489,11 +4451,11 @@ "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", "dev": true, "requires": { - "esprima": "^2.7.1", - "estraverse": "^1.9.1", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.2.0" + "esprima": "2.7.3", + "estraverse": "1.9.3", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.2.0" }, "dependencies": { "source-map": { @@ -4503,7 +4465,7 @@ "dev": true, "optional": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -4514,8 +4476,8 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" }, "dependencies": { "estraverse": { @@ -4538,7 +4500,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.2.0" }, "dependencies": { "estraverse": { @@ -4585,7 +4547,7 @@ "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", "dev": true, "requires": { - "original": ">=0.0.5" + "original": "1.0.2" } }, "evp_bytestokey": { @@ -4594,8 +4556,8 @@ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "md5.js": "1.3.5", + "safe-buffer": "5.1.2" } }, "execa": { @@ -4604,13 +4566,13 @@ "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "6.0.5", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" }, "dependencies": { "cross-spawn": { @@ -4619,11 +4581,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "nice-try": "1.0.5", + "path-key": "2.0.1", + "semver": "5.5.0", + "shebang-command": "1.2.0", + "which": "1.3.1" } } } @@ -4640,7 +4602,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { @@ -4649,7 +4611,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.4" } }, "express": { @@ -4658,36 +4620,36 @@ "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", "dev": true, "requires": { - "accepts": "~1.3.5", + "accepts": "1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.3", "content-disposition": "0.5.2", - "content-type": "~1.0.4", + "content-type": "1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", + "depd": "1.1.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.4", + "proxy-addr": "2.0.4", "qs": "6.5.2", - "range-parser": "~1.2.0", + "range-parser": "1.2.0", "safe-buffer": "5.1.2", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "~1.4.0", - "type-is": "~1.6.16", + "statuses": "1.4.0", + "type-is": "1.6.16", "utils-merge": "1.0.1", - "vary": "~1.1.2" + "vary": "1.1.2" }, "dependencies": { "array-flatten": { @@ -4711,8 +4673,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -4721,7 +4683,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -4732,7 +4694,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "extsprintf": { @@ -4771,7 +4733,7 @@ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "dev": true, "requires": { - "websocket-driver": ">=0.5.1" + "websocket-driver": "0.7.0" } }, "file-loader": { @@ -4780,14 +4742,14 @@ "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", "dev": true, "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^0.4.5" + "loader-utils": "1.1.0", + "schema-utils": "0.4.7" } }, "file-saver": { - "version": "2.0.0-rc.3", - "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.0-rc.3.tgz", - "integrity": "sha512-LZ89x9kYxsAbJFoeLFiD5dRQnGoppXn3NLmPuULYyiKeAcEHQ8TTUwzGAEWT1VjoNGCapP3z+OG2qrwPoas80Q==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.0.tgz", + "integrity": "sha512-cYM1ic5DAkg25pHKgi5f10ziAM7RJU37gaH1XQlyNDrtUnzhC/dfoV9zf2OmF0RMKi42jG5B0JWBnPQqyj/G6g==" }, "filename-regex": { "version": "2.0.1", @@ -4801,11 +4763,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.1.0", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" } }, "finalhandler": { @@ -4815,12 +4777,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.4.0", - "unpipe": "~1.0.0" + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.4.0", + "unpipe": "1.0.0" } }, "find-cache-dir": { @@ -4829,9 +4791,9 @@ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" + "commondir": "1.0.1", + "make-dir": "1.3.0", + "pkg-dir": "2.0.0" } }, "find-up": { @@ -4840,7 +4802,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "flush-write-stream": { @@ -4849,8 +4811,8 @@ "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "follow-redirects": { @@ -4859,7 +4821,7 @@ "integrity": "sha512-Bh65EZI/RU8nx0wbYF9shkFZlqLP+6WT/5FnA3cE/djNSuKNHJEinGGZgu/cQEkeeb2GdFOgenAmn8qaqYke2w==", "dev": true, "requires": { - "debug": "=3.1.0" + "debug": "3.1.0" }, "dependencies": { "debug": { @@ -4885,7 +4847,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "forever-agent": { @@ -4901,9 +4863,9 @@ "dev": true, "optional": true, "requires": { - "asynckit": "^0.4.0", + "asynckit": "0.4.0", "combined-stream": "1.0.6", - "mime-types": "^2.1.12" + "mime-types": "2.1.20" } }, "forwarded": { @@ -4918,7 +4880,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fresh": { @@ -4933,8 +4895,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "fs-write-stream-atomic": { @@ -4943,10 +4905,10 @@ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" + "graceful-fs": "4.1.11", + "iferr": "0.1.5", + "imurmurhash": "0.1.4", + "readable-stream": "2.3.6" } }, "fs.realpath": { @@ -4962,8 +4924,8 @@ "dev": true, "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "2.10.0", + "node-pre-gyp": "0.10.0" }, "dependencies": { "abbrev": { @@ -4989,8 +4951,8 @@ "dev": true, "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "balanced-match": { @@ -5003,7 +4965,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -5067,7 +5029,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "fs.realpath": { @@ -5082,14 +5044,14 @@ "dev": true, "optional": true, "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" } }, "glob": { @@ -5098,12 +5060,12 @@ "dev": true, "optional": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "has-unicode": { @@ -5118,7 +5080,7 @@ "dev": true, "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": "2.1.2" } }, "ignore-walk": { @@ -5127,7 +5089,7 @@ "dev": true, "optional": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "inflight": { @@ -5136,8 +5098,8 @@ "dev": true, "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -5156,7 +5118,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "isarray": { @@ -5170,7 +5132,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -5183,8 +5145,8 @@ "bundled": true, "dev": true, "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "minizlib": { @@ -5193,7 +5155,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "mkdirp": { @@ -5216,9 +5178,9 @@ "dev": true, "optional": true, "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" } }, "node-pre-gyp": { @@ -5227,16 +5189,16 @@ "dev": true, "optional": true, "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" } }, "nopt": { @@ -5245,8 +5207,8 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "npm-bundled": { @@ -5261,8 +5223,8 @@ "dev": true, "optional": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" } }, "npmlog": { @@ -5271,10 +5233,10 @@ "dev": true, "optional": true, "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "number-is-nan": { @@ -5293,7 +5255,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { @@ -5314,8 +5276,8 @@ "dev": true, "optional": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "path-is-absolute": { @@ -5336,10 +5298,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -5356,13 +5318,13 @@ "dev": true, "optional": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "rimraf": { @@ -5371,7 +5333,7 @@ "dev": true, "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-buffer": { @@ -5414,9 +5376,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { @@ -5425,7 +5387,7 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } }, "strip-ansi": { @@ -5433,7 +5395,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-json-comments": { @@ -5448,13 +5410,13 @@ "dev": true, "optional": true, "requires": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", - "yallist": "^3.0.2" + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "util-deprecate": { @@ -5469,7 +5431,7 @@ "dev": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "1.0.2" } }, "wrappy": { @@ -5490,10 +5452,10 @@ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.2" } }, "function-bind": { @@ -5508,14 +5470,14 @@ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.3" } }, "gaze": { @@ -5525,7 +5487,7 @@ "dev": true, "optional": true, "requires": { - "globule": "^1.0.0" + "globule": "1.2.1" } }, "get-caller-file": { @@ -5558,7 +5520,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" }, "dependencies": { "assert-plus": { @@ -5575,12 +5537,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { @@ -5589,8 +5551,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -5599,7 +5561,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "globals": { @@ -5614,12 +5576,12 @@ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", "dev": true, "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "array-union": "1.0.2", + "dir-glob": "2.0.0", + "glob": "7.1.3", + "ignore": "3.3.10", + "pify": "3.0.0", + "slash": "1.0.0" } }, "globule": { @@ -5629,9 +5591,9 @@ "dev": true, "optional": true, "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" + "glob": "7.1.3", + "lodash": "4.17.11", + "minimatch": "3.0.4" } }, "graceful-fs": { @@ -5652,10 +5614,10 @@ "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", "dev": true, "requires": { - "async": "^2.5.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" + "async": "2.6.1", + "optimist": "0.6.1", + "source-map": "0.6.1", + "uglify-js": "3.4.9" }, "dependencies": { "async": { @@ -5664,7 +5626,7 @@ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "dev": true, "requires": { - "lodash": "^4.17.10" + "lodash": "4.17.11" } }, "source-map": { @@ -5689,8 +5651,8 @@ "dev": true, "optional": true, "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" + "ajv": "5.5.2", + "har-schema": "2.0.0" }, "dependencies": { "ajv": { @@ -5700,10 +5662,10 @@ "dev": true, "optional": true, "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } } } @@ -5714,7 +5676,7 @@ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "^1.1.1" + "function-bind": "1.1.1" } }, "has-ansi": { @@ -5723,7 +5685,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-flag": { @@ -5750,9 +5712,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -5769,8 +5731,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { @@ -5779,7 +5741,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5788,7 +5750,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5799,7 +5761,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5810,8 +5772,8 @@ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.3", + "safe-buffer": "5.1.2" } }, "hash.js": { @@ -5820,8 +5782,8 @@ "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", "dev": true, "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" } }, "he": { @@ -5836,9 +5798,9 @@ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "hash.js": "1.1.5", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "hosted-git-info": { @@ -5853,10 +5815,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "inherits": "2.0.3", + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "wbuf": "1.7.3" } }, "html-entities": { @@ -5871,13 +5833,13 @@ "integrity": "sha512-ZmgNLaTp54+HFKkONyLFEfs5dd/ZOtlquKaTnqIWFmx3Av5zG6ZPcV2d0o9XM2fXOTxxIf6eDcwzFFotke/5zA==", "dev": true, "requires": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.1.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" + "camel-case": "3.0.0", + "clean-css": "4.2.1", + "commander": "2.17.1", + "he": "1.1.1", + "param-case": "2.1.1", + "relateurl": "0.2.7", + "uglify-js": "3.4.9" } }, "html-webpack-plugin": { @@ -5886,12 +5848,12 @@ "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", "dev": true, "requires": { - "html-minifier": "^3.2.3", - "loader-utils": "^0.2.16", - "lodash": "^4.17.3", - "pretty-error": "^2.0.2", - "tapable": "^1.0.0", - "toposort": "^1.0.0", + "html-minifier": "3.5.20", + "loader-utils": "0.2.17", + "lodash": "4.17.11", + "pretty-error": "2.1.1", + "tapable": "1.1.0", + "toposort": "1.0.7", "util.promisify": "1.0.0" }, "dependencies": { @@ -5901,10 +5863,10 @@ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", "dev": true, "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" } } } @@ -5915,10 +5877,10 @@ "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", "dev": true, "requires": { - "domelementtype": "1", - "domhandler": "2.1", - "domutils": "1.1", - "readable-stream": "1.0" + "domelementtype": "1.3.0", + "domhandler": "2.1.0", + "domutils": "1.1.6", + "readable-stream": "1.0.34" }, "dependencies": { "domutils": { @@ -5927,7 +5889,7 @@ "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", "dev": true, "requires": { - "domelementtype": "1" + "domelementtype": "1.3.0" } }, "isarray": { @@ -5942,10 +5904,10 @@ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "core-util-is": "1.0.2", + "inherits": "2.0.3", "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "string_decoder": "0.10.31" } }, "string_decoder": { @@ -5968,10 +5930,10 @@ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "~1.1.2", + "depd": "1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "statuses": "1.4.0" } }, "http-parser-js": { @@ -5986,9 +5948,9 @@ "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", "dev": true, "requires": { - "eventemitter3": "^3.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "eventemitter3": "3.1.0", + "follow-redirects": "1.5.9", + "requires-port": "1.0.0" } }, "http-proxy-middleware": { @@ -5997,10 +5959,10 @@ "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", "dev": true, "requires": { - "http-proxy": "^1.16.2", - "is-glob": "^4.0.0", - "lodash": "^4.17.5", - "micromatch": "^3.1.9" + "http-proxy": "1.17.0", + "is-glob": "4.0.0", + "lodash": "4.17.11", + "micromatch": "3.1.10" }, "dependencies": { "arr-diff": { @@ -6021,16 +5983,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -6039,7 +6001,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -6050,13 +6012,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -6065,7 +6027,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -6074,7 +6036,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -6083,7 +6045,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -6092,7 +6054,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -6103,7 +6065,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -6112,7 +6074,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -6123,9 +6085,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -6142,14 +6104,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -6158,7 +6120,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -6167,7 +6129,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -6178,10 +6140,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -6190,7 +6152,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -6201,7 +6163,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -6210,7 +6172,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -6219,9 +6181,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-extglob": { @@ -6236,7 +6198,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-number": { @@ -6245,7 +6207,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -6254,7 +6216,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -6277,19 +6239,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -6301,9 +6263,9 @@ "dev": true, "optional": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.14.2" } }, "https-browserify": { @@ -6318,8 +6280,8 @@ "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", "dev": true, "requires": { - "agent-base": "^4.1.0", - "debug": "^3.1.0" + "agent-base": "4.2.1", + "debug": "3.2.6" }, "dependencies": { "debug": { @@ -6328,7 +6290,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "ms": { @@ -6345,7 +6307,7 @@ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "ieee754": { @@ -6385,7 +6347,7 @@ "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", "dev": true, "requires": { - "import-from": "^2.1.0" + "import-from": "2.1.0" } }, "import-from": { @@ -6394,7 +6356,7 @@ "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", "dev": true, "requires": { - "resolve-from": "^3.0.0" + "resolve-from": "3.0.0" } }, "import-local": { @@ -6403,8 +6365,8 @@ "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", "dev": true, "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" + "pkg-dir": "3.0.0", + "resolve-cwd": "2.0.0" }, "dependencies": { "find-up": { @@ -6413,7 +6375,7 @@ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "3.0.0" } }, "locate-path": { @@ -6422,8 +6384,8 @@ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "3.0.0", + "path-exists": "3.0.0" } }, "p-limit": { @@ -6432,7 +6394,7 @@ "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "2.0.0" } }, "p-locate": { @@ -6441,7 +6403,7 @@ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "2.0.0" } }, "p-try": { @@ -6456,7 +6418,7 @@ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "requires": { - "find-up": "^3.0.0" + "find-up": "3.0.0" } } } @@ -6481,7 +6443,7 @@ "dev": true, "optional": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "indexof": { @@ -6496,8 +6458,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -6518,8 +6480,8 @@ "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==", "dev": true, "requires": { - "default-gateway": "^2.6.0", - "ipaddr.js": "^1.5.2" + "default-gateway": "2.7.2", + "ipaddr.js": "1.8.0" } }, "invariant": { @@ -6528,7 +6490,7 @@ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.4.0" } }, "invert-kv": { @@ -6562,7 +6524,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -6577,7 +6539,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "1.11.0" } }, "is-buffer": { @@ -6592,7 +6554,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-callable": { @@ -6607,7 +6569,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-date-object": { @@ -6622,9 +6584,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -6653,7 +6615,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-extendable": { @@ -6674,7 +6636,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -6683,7 +6645,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-glob": { @@ -6692,7 +6654,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-number": { @@ -6701,7 +6663,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-odd": { @@ -6710,7 +6672,7 @@ "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "dev": true, "requires": { - "is-number": "^4.0.0" + "is-number": "4.0.0" }, "dependencies": { "is-number": { @@ -6733,7 +6695,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "^1.0.0" + "is-path-inside": "1.0.1" } }, "is-path-inside": { @@ -6742,7 +6704,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "^1.0.1" + "path-is-inside": "1.0.2" } }, "is-plain-object": { @@ -6751,7 +6713,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -6780,7 +6742,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "^1.0.1" + "has": "1.0.3" } }, "is-stream": { @@ -6795,7 +6757,7 @@ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "dev": true, "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "1.0.0" } }, "is-typedarray": { @@ -6855,20 +6817,20 @@ "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", "dev": true, "requires": { - "abbrev": "1.0.x", - "async": "1.x", - "escodegen": "1.8.x", - "esprima": "2.7.x", - "glob": "^5.0.15", - "handlebars": "^4.0.1", - "js-yaml": "3.x", - "mkdirp": "0.5.x", - "nopt": "3.x", - "once": "1.x", - "resolve": "1.1.x", - "supports-color": "^3.1.0", - "which": "^1.1.1", - "wordwrap": "^1.0.0" + "abbrev": "1.0.9", + "async": "1.5.2", + "escodegen": "1.8.1", + "esprima": "2.7.3", + "glob": "5.0.15", + "handlebars": "4.0.12", + "js-yaml": "3.12.0", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "once": "1.4.0", + "resolve": "1.1.7", + "supports-color": "3.2.3", + "which": "1.3.1", + "wordwrap": "1.0.0" }, "dependencies": { "glob": { @@ -6877,11 +6839,11 @@ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "has-flag": { @@ -6896,7 +6858,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } @@ -6907,10 +6869,10 @@ "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==", "dev": true, "requires": { - "convert-source-map": "^1.5.0", - "istanbul-lib-instrument": "^1.7.3", - "loader-utils": "^1.1.0", - "schema-utils": "^0.3.0" + "convert-source-map": "1.6.0", + "istanbul-lib-instrument": "1.10.2", + "loader-utils": "1.1.0", + "schema-utils": "0.3.0" }, "dependencies": { "ajv": { @@ -6919,10 +6881,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "schema-utils": { @@ -6931,7 +6893,7 @@ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", "dev": true, "requires": { - "ajv": "^5.0.0" + "ajv": "5.5.2" } } } @@ -6948,13 +6910,13 @@ "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", "dev": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.1", - "semver": "^5.3.0" + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.2.1", + "semver": "5.5.0" } }, "jasmine": { @@ -6963,9 +6925,9 @@ "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", "dev": true, "requires": { - "exit": "^0.1.2", - "glob": "^7.0.6", - "jasmine-core": "~2.8.0" + "exit": "0.1.2", + "glob": "7.1.3", + "jasmine-core": "2.8.0" }, "dependencies": { "jasmine-core": { @@ -6988,7 +6950,7 @@ "integrity": "sha1-k8zC3MQQKMXd1GBlWAdIOfLe6qg=", "dev": true, "requires": { - "diff": "^3.2.0" + "diff": "3.5.0" } }, "jasmine-spec-reporter": { @@ -7025,8 +6987,8 @@ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.1" }, "dependencies": { "esprima": { @@ -7112,11 +7074,11 @@ "integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==", "dev": true, "requires": { - "core-js": "~2.3.0", - "es6-promise": "~3.0.2", - "lie": "~3.1.0", - "pako": "~1.0.2", - "readable-stream": "~2.0.6" + "core-js": "2.3.0", + "es6-promise": "3.0.2", + "lie": "3.1.1", + "pako": "1.0.6", + "readable-stream": "2.0.6" }, "dependencies": { "core-js": { @@ -7143,12 +7105,12 @@ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.2" } }, "string_decoder": { @@ -7165,7 +7127,7 @@ "integrity": "sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q==", "dev": true, "requires": { - "source-map-support": "^0.5.5" + "source-map-support": "0.5.9" } }, "killable": { @@ -7180,7 +7142,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lcid": { @@ -7190,7 +7152,7 @@ "dev": true, "optional": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "less": { @@ -7199,15 +7161,15 @@ "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==", "dev": true, "requires": { - "clone": "^2.1.2", - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "mime": "^1.4.1", - "mkdirp": "^0.5.0", - "promise": "^7.1.1", - "request": "^2.83.0", - "source-map": "~0.6.0" + "clone": "2.1.2", + "errno": "0.1.7", + "graceful-fs": "4.1.11", + "image-size": "0.5.5", + "mime": "1.6.0", + "mkdirp": "0.5.1", + "promise": "7.3.1", + "request": "2.88.0", + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -7225,9 +7187,9 @@ "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", "dev": true, "requires": { - "clone": "^2.1.1", - "loader-utils": "^1.1.0", - "pify": "^3.0.0" + "clone": "2.1.2", + "loader-utils": "1.1.0", + "pify": "3.0.0" } }, "levn": { @@ -7236,8 +7198,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "license-webpack-plugin": { @@ -7246,7 +7208,7 @@ "integrity": "sha512-Of/H79rZqm2aeg4RnP9SMSh19qkKemoLT5VaJV58uH5AxeYWEcBgGFs753JEJ/Hm6BPvQVfIlrrjoBwYj8p7Tw==", "dev": true, "requires": { - "ejs": "^2.5.7" + "ejs": "2.6.1" } }, "lie": { @@ -7255,7 +7217,7 @@ "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", "dev": true, "requires": { - "immediate": "~3.0.5" + "immediate": "3.0.6" } }, "load-json-file": { @@ -7264,11 +7226,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" }, "dependencies": { "pify": { @@ -7291,9 +7253,9 @@ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", "dev": true, "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1" } }, "locate-path": { @@ -7302,8 +7264,8 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" } }, "lodash": { @@ -7356,7 +7318,7 @@ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "js-tokens": "3.0.2" } }, "loud-rejection": { @@ -7366,8 +7328,8 @@ "dev": true, "optional": true, "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" } }, "lower-case": { @@ -7382,8 +7344,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "make-dir": { @@ -7392,7 +7354,7 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "make-error": { @@ -7407,7 +7369,7 @@ "integrity": "sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ==", "dev": true, "requires": { - "p-defer": "^1.0.0" + "p-defer": "1.0.0" } }, "map-cache": { @@ -7428,7 +7390,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "math-random": { @@ -7443,9 +7405,9 @@ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "hash-base": "3.0.4", + "inherits": "2.0.3", + "safe-buffer": "5.1.2" } }, "media-typer": { @@ -7460,9 +7422,9 @@ "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", "dev": true, "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^1.0.0", - "p-is-promise": "^1.1.0" + "map-age-cleaner": "0.1.2", + "mimic-fn": "1.2.0", + "p-is-promise": "1.1.0" } }, "memory-fs": { @@ -7471,8 +7433,8 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" + "errno": "0.1.7", + "readable-stream": "2.3.6" } }, "meow": { @@ -7482,16 +7444,16 @@ "dev": true, "optional": true, "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" }, "dependencies": { "minimist": { @@ -7521,19 +7483,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" } }, "miller-rabin": { @@ -7542,8 +7504,8 @@ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "bn.js": "4.11.8", + "brorand": "1.1.0" } }, "mime": { @@ -7564,7 +7526,7 @@ "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", "dev": true, "requires": { - "mime-db": "~1.36.0" + "mime-db": "1.36.0" } }, "mimic-fn": { @@ -7579,9 +7541,9 @@ "integrity": "sha512-o+Jm+ocb0asEngdM6FsZWtZsRzA8koFUudIDwYUfl94M3PejPHG7Vopw5hN9V8WsMkSFpm3tZP3Fesz89EyrfQ==", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" + "loader-utils": "1.1.0", + "schema-utils": "1.0.0", + "webpack-sources": "1.3.0" }, "dependencies": { "schema-utils": { @@ -7590,9 +7552,9 @@ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "ajv": "6.4.0", + "ajv-errors": "1.0.0", + "ajv-keywords": "3.2.0" } } } @@ -7615,7 +7577,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -7630,16 +7592,16 @@ "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "dev": true, "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" + "concat-stream": "1.6.2", + "duplexify": "3.6.0", + "end-of-stream": "1.4.1", + "flush-write-stream": "1.0.3", + "from2": "2.3.0", + "parallel-transform": "1.1.0", + "pump": "2.0.1", + "pumpify": "1.5.1", + "stream-each": "1.2.3", + "through2": "2.0.3" } }, "mixin-deep": { @@ -7648,8 +7610,8 @@ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -7658,7 +7620,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -7669,8 +7631,8 @@ "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", "dev": true, "requires": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" + "for-in": "0.1.8", + "is-extendable": "0.1.1" }, "dependencies": { "for-in": { @@ -7696,11 +7658,11 @@ "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" }, "moment-timezone": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.21.tgz", - "integrity": "sha512-j96bAh4otsgj3lKydm3K7kdtA3iKf2m6MY2iSYCzCm5a1zmHo1g+aK3068dDEeocLZQIS9kU8bsdQHLqEvgW0A==", + "version": "0.5.23", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.23.tgz", + "integrity": "sha512-WHFH85DkCfiNMDX5D3X7hpNH3/PUhjTGcD0U1SgfBGZxJ3qUmJh5FdvaFjcClxOvB3rzdfj4oRffbI38jEnC1w==", "requires": { - "moment": ">= 2.9.0" + "moment": "2.22.2" } }, "move-concurrently": { @@ -7709,12 +7671,12 @@ "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "dev": true, "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" + "aproba": "1.2.0", + "copy-concurrently": "1.0.5", + "fs-write-stream-atomic": "1.0.10", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" } }, "ms": { @@ -7729,8 +7691,8 @@ "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "dev": true, "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" + "dns-packet": "1.3.1", + "thunky": "1.0.2" } }, "multicast-dns-service-types": { @@ -7752,18 +7714,18 @@ "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -7815,7 +7777,7 @@ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "dev": true, "requires": { - "lower-case": "^1.1.1" + "lower-case": "1.1.4" } }, "node-forge": { @@ -7831,18 +7793,18 @@ "dev": true, "optional": true, "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" + "fstream": "1.0.11", + "glob": "7.1.3", + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.1.2", + "osenv": "0.1.5", + "request": "2.88.0", + "rimraf": "2.6.2", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.3.1" }, "dependencies": { "semver": { @@ -7860,28 +7822,28 @@ "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", "dev": true, "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^1.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", + "assert": "1.4.1", + "browserify-zlib": "0.2.0", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "domain-browser": "1.2.0", + "events": "1.1.1", + "https-browserify": "1.0.0", + "os-browserify": "0.3.0", "path-browserify": "0.0.0", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.6", + "stream-browserify": "2.0.1", + "stream-http": "2.8.3", + "string_decoder": "1.1.1", + "timers-browserify": "2.0.10", "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.10.3", + "url": "0.11.0", + "util": "0.10.4", "vm-browserify": "0.0.4" }, "dependencies": { @@ -7900,25 +7862,25 @@ "dev": true, "optional": true, "requires": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash.assign": "^4.2.0", - "lodash.clonedeep": "^4.3.2", - "lodash.mergewith": "^4.6.0", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.10.0", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", + "async-foreach": "0.1.3", + "chalk": "1.1.3", + "cross-spawn": "3.0.1", + "gaze": "1.1.3", + "get-stdin": "4.0.1", + "glob": "7.1.3", + "in-publish": "2.0.0", + "lodash.assign": "4.2.0", + "lodash.clonedeep": "4.5.0", + "lodash.mergewith": "4.6.1", + "meow": "3.7.0", + "mkdirp": "0.5.1", + "nan": "2.10.0", + "node-gyp": "3.8.0", + "npmlog": "4.1.2", "request": "2.87.0", - "sass-graph": "^2.2.4", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" + "sass-graph": "2.2.4", + "stdout-stream": "1.4.1", + "true-case-path": "1.0.3" }, "dependencies": { "ansi-styles": { @@ -7935,11 +7897,11 @@ "dev": true, "optional": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" } }, "request": { @@ -7949,26 +7911,26 @@ "dev": true, "optional": true, "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" + "aws-sign2": "0.7.0", + "aws4": "1.8.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.0.3", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.20", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.3.4", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" } }, "supports-color": { @@ -7986,7 +7948,7 @@ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "1" + "abbrev": "1.0.9" } }, "normalize-package-data": { @@ -7995,10 +7957,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "normalize-path": { @@ -8007,7 +7969,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "normalize-range": { @@ -8022,10 +7984,10 @@ "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "dev": true, "requires": { - "hosted-git-info": "^2.6.0", - "osenv": "^0.1.5", - "semver": "^5.5.0", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "2.6.1", + "osenv": "0.1.5", + "semver": "5.5.0", + "validate-npm-package-name": "3.0.0" } }, "npm-registry-client": { @@ -8034,18 +7996,18 @@ "integrity": "sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==", "dev": true, "requires": { - "concat-stream": "^1.5.2", - "graceful-fs": "^4.1.6", - "normalize-package-data": "~1.0.1 || ^2.0.0", - "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", - "npmlog": "2 || ^3.1.0 || ^4.0.0", - "once": "^1.3.3", - "request": "^2.74.0", - "retry": "^0.10.0", - "safe-buffer": "^5.1.1", - "semver": "2 >=2.2.1 || 3.x || 4 || 5", - "slide": "^1.1.3", - "ssri": "^5.2.4" + "concat-stream": "1.6.2", + "graceful-fs": "4.1.11", + "normalize-package-data": "2.4.0", + "npm-package-arg": "6.1.0", + "npmlog": "4.1.2", + "once": "1.4.0", + "request": "2.88.0", + "retry": "0.10.1", + "safe-buffer": "5.1.2", + "semver": "5.5.0", + "slide": "1.1.6", + "ssri": "5.3.0" } }, "npm-run-path": { @@ -8054,7 +8016,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "npmlog": { @@ -8063,10 +8025,10 @@ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "are-we-there-yet": "1.1.5", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "nth-check": { @@ -8075,7 +8037,7 @@ "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", "dev": true, "requires": { - "boolbase": "~1.0.0" + "boolbase": "1.0.0" } }, "num2fraction": { @@ -8109,9 +8071,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -8120,7 +8082,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -8137,7 +8099,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -8154,8 +8116,8 @@ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "define-properties": "1.1.3", + "es-abstract": "1.12.0" } }, "object.omit": { @@ -8164,8 +8126,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "object.pick": { @@ -8174,7 +8136,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -8212,7 +8174,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "opn": { @@ -8221,7 +8183,7 @@ "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", "dev": true, "requires": { - "is-wsl": "^1.1.0" + "is-wsl": "1.1.0" } }, "optimist": { @@ -8230,8 +8192,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" }, "dependencies": { "wordwrap": { @@ -8248,12 +8210,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" } }, "original": { @@ -8262,7 +8224,7 @@ "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", "dev": true, "requires": { - "url-parse": "^1.4.3" + "url-parse": "1.4.3" } }, "os-browserify": { @@ -8284,7 +8246,7 @@ "dev": true, "optional": true, "requires": { - "lcid": "^1.0.0" + "lcid": "1.0.0" } }, "os-tmpdir": { @@ -8299,8 +8261,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "p-defer": { @@ -8327,7 +8289,7 @@ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -8336,7 +8298,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, "p-map": { @@ -8363,9 +8325,9 @@ "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "dev": true, "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" + "cyclist": "0.2.2", + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "param-case": { @@ -8374,7 +8336,7 @@ "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "dev": true, "requires": { - "no-case": "^2.2.0" + "no-case": "2.3.2" } }, "parse-asn1": { @@ -8383,11 +8345,11 @@ "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", "dev": true, "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" + "asn1.js": "4.10.1", + "browserify-aes": "1.2.0", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "pbkdf2": "3.0.17" } }, "parse-glob": { @@ -8396,10 +8358,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -8408,7 +8370,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.2" } }, "parse5": { @@ -8483,7 +8445,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "pbkdf2": { @@ -8492,11 +8454,11 @@ "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "dev": true, "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "performance-now": { @@ -8524,7 +8486,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { @@ -8533,7 +8495,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^2.1.0" + "find-up": "2.1.0" } }, "portfinder": { @@ -8542,9 +8504,9 @@ "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==", "dev": true, "requires": { - "async": "^1.5.2", - "debug": "^2.2.0", - "mkdirp": "0.5.x" + "async": "1.5.2", + "debug": "2.6.9", + "mkdirp": "0.5.1" } }, "posix-character-classes": { @@ -8559,9 +8521,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" + "chalk": "2.4.1", + "source-map": "0.6.1", + "supports-color": "5.5.0" }, "dependencies": { "source-map": { @@ -8578,10 +8540,10 @@ "integrity": "sha512-5l327iI75POonjxkXgdRCUS+AlzAdBx4pOvMEhTKTCjb1p8IEeVR9yx3cPbmN7LIWJLbfnIXxAhoB4jpD0c/Cw==", "dev": true, "requires": { - "postcss": "^6.0.1", - "postcss-value-parser": "^3.2.3", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" + "postcss": "6.0.23", + "postcss-value-parser": "3.3.0", + "read-cache": "1.0.0", + "resolve": "1.1.7" } }, "postcss-load-config": { @@ -8590,8 +8552,8 @@ "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", "dev": true, "requires": { - "cosmiconfig": "^4.0.0", - "import-cwd": "^2.0.0" + "cosmiconfig": "4.0.0", + "import-cwd": "2.1.0" } }, "postcss-loader": { @@ -8600,10 +8562,10 @@ "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "postcss": "^6.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^0.4.0" + "loader-utils": "1.1.0", + "postcss": "6.0.23", + "postcss-load-config": "2.0.0", + "schema-utils": "0.4.7" } }, "postcss-url": { @@ -8612,11 +8574,11 @@ "integrity": "sha512-QMV5mA+pCYZQcUEPQkmor9vcPQ2MT+Ipuu8qdi1gVxbNiIiErEGft+eny1ak19qALoBkccS5AHaCaCDzh7b9MA==", "dev": true, "requires": { - "mime": "^1.4.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.0", - "postcss": "^6.0.1", - "xxhashjs": "^0.2.1" + "mime": "1.6.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "postcss": "6.0.23", + "xxhashjs": "0.2.2" } }, "postcss-value-parser": { @@ -8643,8 +8605,8 @@ "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", "dev": true, "requires": { - "renderkid": "^2.0.1", - "utila": "~0.4" + "renderkid": "2.0.2", + "utila": "0.4.0" } }, "process": { @@ -8666,7 +8628,7 @@ "dev": true, "optional": true, "requires": { - "asap": "~2.0.3" + "asap": "2.0.6" } }, "promise-inflight": { @@ -8681,22 +8643,22 @@ "integrity": "sha512-ORey5ewQMYiXQxcQohsqEiKYOg/r5yJoJbt0tuROmmgajdg/CA3gTOZNIFJncUVMAJIk5YFqBBLUjKVmQO6tfA==", "dev": true, "requires": { - "@types/node": "^6.0.46", - "@types/q": "^0.0.32", - "@types/selenium-webdriver": "^3.0.0", - "blocking-proxy": "^1.0.0", - "browserstack": "^1.5.1", - "chalk": "^1.1.3", - "glob": "^7.0.3", + "@types/node": "6.14.0", + "@types/q": "0.0.32", + "@types/selenium-webdriver": "3.0.12", + "blocking-proxy": "1.0.1", + "browserstack": "1.5.1", + "chalk": "1.1.3", + "glob": "7.1.3", "jasmine": "2.8.0", - "jasminewd2": "^2.1.0", - "optimist": "~0.6.0", + "jasminewd2": "2.2.0", + "optimist": "0.6.1", "q": "1.4.1", - "saucelabs": "^1.5.0", + "saucelabs": "1.5.0", "selenium-webdriver": "3.6.0", - "source-map-support": "~0.4.0", + "source-map-support": "0.4.18", "webdriver-js-extender": "2.1.0", - "webdriver-manager": "^12.0.6" + "webdriver-manager": "12.1.0" }, "dependencies": { "@types/node": { @@ -8717,11 +8679,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" } }, "del": { @@ -8730,13 +8692,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" } }, "globby": { @@ -8745,12 +8707,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.3", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "minimist": { @@ -8771,7 +8733,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } }, "supports-color": { @@ -8786,17 +8748,17 @@ "integrity": "sha512-oEc5fmkpz6Yh6udhwir5m0eN5mgRPq9P/NU5YWuT3Up5slt6Zz+znhLU7q4+8rwCZz/Qq3Fgpr/4oao7NPCm2A==", "dev": true, "requires": { - "adm-zip": "^0.4.9", - "chalk": "^1.1.1", - "del": "^2.2.0", - "glob": "^7.0.3", - "ini": "^1.3.4", - "minimist": "^1.2.0", - "q": "^1.4.1", - "request": "^2.87.0", - "rimraf": "^2.5.2", - "semver": "^5.3.0", - "xml2js": "^0.4.17" + "adm-zip": "0.4.11", + "chalk": "1.1.3", + "del": "2.2.2", + "glob": "7.1.3", + "ini": "1.3.5", + "minimist": "1.2.0", + "q": "1.4.1", + "request": "2.88.0", + "rimraf": "2.6.2", + "semver": "5.5.0", + "xml2js": "0.4.19" } } } @@ -8807,7 +8769,7 @@ "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", "dev": true, "requires": { - "forwarded": "~0.1.2", + "forwarded": "0.1.2", "ipaddr.js": "1.8.0" } }, @@ -8835,12 +8797,12 @@ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.2.0", + "parse-asn1": "5.1.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2" } }, "pump": { @@ -8849,8 +8811,8 @@ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "end-of-stream": "1.4.1", + "once": "1.4.0" } }, "pumpify": { @@ -8859,9 +8821,9 @@ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" + "duplexify": "3.6.0", + "inherits": "2.0.3", + "pump": "2.0.1" } }, "punycode": { @@ -8906,9 +8868,9 @@ "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", "dev": true, "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { @@ -8931,7 +8893,7 @@ "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "dev": true, "requires": { - "safe-buffer": "^5.1.0" + "safe-buffer": "5.1.2" } }, "randomfill": { @@ -8940,8 +8902,8 @@ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "randombytes": "2.0.6", + "safe-buffer": "5.1.2" } }, "range-parser": { @@ -8974,7 +8936,7 @@ "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", "dev": true, "requires": { - "pify": "^2.3.0" + "pify": "2.3.0" }, "dependencies": { "pify": { @@ -8991,9 +8953,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" }, "dependencies": { "path-type": { @@ -9002,9 +8964,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -9021,8 +8983,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { @@ -9031,8 +8993,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "path-exists": { @@ -9041,7 +9003,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } } } @@ -9052,13 +9014,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "readdirp": { @@ -9067,10 +9029,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.6", + "set-immediate-shim": "1.0.1" } }, "redent": { @@ -9080,8 +9042,8 @@ "dev": true, "optional": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "indent-string": "2.1.0", + "strip-indent": "1.0.1" } }, "reflect-metadata": { @@ -9108,7 +9070,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "regex-not": { @@ -9117,8 +9079,8 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "regexpu-core": { @@ -9127,9 +9089,9 @@ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", "dev": true, "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "1.4.0", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" } }, "regjsgen": { @@ -9144,7 +9106,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "~0.5.0" + "jsesc": "0.5.0" }, "dependencies": { "jsesc": { @@ -9173,11 +9135,11 @@ "integrity": "sha512-FsygIxevi1jSiPY9h7vZmBFUbAOcbYm9UwyiLNdVsLRs/5We9Ob5NMPbGYUTWiLq5L+ezlVdE0A8bbME5CWTpg==", "dev": true, "requires": { - "css-select": "^1.1.0", - "dom-converter": "~0.2", - "htmlparser2": "~3.3.0", - "strip-ansi": "^3.0.0", - "utila": "^0.4.0" + "css-select": "1.2.0", + "dom-converter": "0.2.0", + "htmlparser2": "3.3.0", + "strip-ansi": "3.0.1", + "utila": "0.4.0" } }, "repeat-element": { @@ -9198,7 +9160,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "request": { @@ -9207,26 +9169,26 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "aws-sign2": "0.7.0", + "aws4": "1.8.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.1.0", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.20", + "oauth-sign": "0.9.0", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.4.3", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" }, "dependencies": { "ajv": { @@ -9235,10 +9197,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "assert-plus": { @@ -9271,9 +9233,9 @@ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, "requires": { - "asynckit": "^0.4.0", + "asynckit": "0.4.0", "combined-stream": "1.0.6", - "mime-types": "^2.1.12" + "mime-types": "2.1.20" } }, "har-schema": { @@ -9288,8 +9250,8 @@ "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "dev": true, "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" + "ajv": "5.5.2", + "har-schema": "2.0.0" } }, "http-signature": { @@ -9298,9 +9260,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.14.2" } }, "mime-db": { @@ -9315,7 +9277,7 @@ "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", "dev": true, "requires": { - "mime-db": "~1.36.0" + "mime-db": "1.36.0" } }, "oauth-sign": { @@ -9348,8 +9310,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" + "psl": "1.1.29", + "punycode": "1.4.1" } } } @@ -9390,7 +9352,7 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "^3.0.0" + "resolve-from": "3.0.0" } }, "resolve-from": { @@ -9423,7 +9385,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.3" } }, "ripemd160": { @@ -9432,8 +9394,8 @@ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "hash-base": "3.0.4", + "inherits": "2.0.3" } }, "run-queue": { @@ -9442,7 +9404,7 @@ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "dev": true, "requires": { - "aproba": "^1.1.1" + "aproba": "1.2.0" } }, "rxjs": { @@ -9450,7 +9412,7 @@ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.2" } }, "rxjs-compat": { @@ -9470,7 +9432,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "safer-buffer": { @@ -9486,10 +9448,10 @@ "dev": true, "optional": true, "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^7.0.0" + "glob": "7.1.3", + "lodash": "4.17.11", + "scss-tokenizer": "0.2.3", + "yargs": "7.1.0" } }, "sass-loader": { @@ -9498,12 +9460,12 @@ "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==", "dev": true, "requires": { - "clone-deep": "^2.0.1", - "loader-utils": "^1.0.1", - "lodash.tail": "^4.1.1", - "neo-async": "^2.5.0", - "pify": "^3.0.0", - "semver": "^5.5.0" + "clone-deep": "2.0.2", + "loader-utils": "1.1.0", + "lodash.tail": "4.1.1", + "neo-async": "2.5.2", + "pify": "3.0.0", + "semver": "5.5.0" } }, "saucelabs": { @@ -9512,7 +9474,7 @@ "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", "dev": true, "requires": { - "https-proxy-agent": "^2.2.1" + "https-proxy-agent": "2.2.1" } }, "sax": { @@ -9527,8 +9489,8 @@ "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" + "ajv": "6.4.0", + "ajv-keywords": "3.2.0" } }, "scss-tokenizer": { @@ -9538,8 +9500,8 @@ "dev": true, "optional": true, "requires": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" + "js-base64": "2.4.9", + "source-map": "0.4.4" }, "dependencies": { "source-map": { @@ -9549,7 +9511,7 @@ "dev": true, "optional": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -9566,10 +9528,10 @@ "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", "dev": true, "requires": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", + "jszip": "3.1.5", + "rimraf": "2.6.2", "tmp": "0.0.30", - "xml2js": "^0.4.17" + "xml2js": "0.4.19" } }, "selfsigned": { @@ -9593,7 +9555,7 @@ "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", "dev": true, "requires": { - "semver": "^5.3.0" + "semver": "5.5.0" } }, "semver-intersect": { @@ -9602,7 +9564,7 @@ "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", "dev": true, "requires": { - "semver": "^5.0.0" + "semver": "5.5.0" } }, "send": { @@ -9612,18 +9574,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", "fresh": "0.5.2", - "http-errors": "~1.6.2", + "http-errors": "1.6.3", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.4.0" }, "dependencies": { "mime": { @@ -9646,13 +9608,13 @@ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, "requires": { - "accepts": "~1.3.4", + "accepts": "1.3.5", "batch": "0.6.1", "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" + "escape-html": "1.0.3", + "http-errors": "1.6.3", + "mime-types": "2.1.20", + "parseurl": "1.3.2" } }, "serve-static": { @@ -9661,9 +9623,9 @@ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", "send": "0.16.2" } }, @@ -9685,10 +9647,10 @@ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -9697,7 +9659,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9720,8 +9682,8 @@ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.3", + "safe-buffer": "5.1.2" } }, "shallow-clone": { @@ -9730,9 +9692,9 @@ "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", "dev": true, "requires": { - "is-extendable": "^0.1.1", - "kind-of": "^5.0.0", - "mixin-object": "^2.0.1" + "is-extendable": "0.1.1", + "kind-of": "5.1.0", + "mixin-object": "2.0.1" }, "dependencies": { "kind-of": { @@ -9749,7 +9711,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -9782,14 +9744,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.2", + "use": "3.1.0" }, "dependencies": { "define-property": { @@ -9798,7 +9760,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -9807,7 +9769,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9818,9 +9780,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -9829,7 +9791,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -9838,7 +9800,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -9847,7 +9809,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -9856,9 +9818,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -9881,7 +9843,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "sockjs": { @@ -9890,8 +9852,8 @@ "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", "dev": true, "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" + "faye-websocket": "0.10.0", + "uuid": "3.3.2" } }, "sockjs-client": { @@ -9900,12 +9862,12 @@ "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=", "dev": true, "requires": { - "debug": "^2.6.6", + "debug": "2.6.9", "eventsource": "0.1.6", - "faye-websocket": "~0.11.0", - "inherits": "^2.0.1", - "json3": "^3.3.2", - "url-parse": "^1.1.8" + "faye-websocket": "0.11.1", + "inherits": "2.0.3", + "json3": "3.3.2", + "url-parse": "1.4.3" }, "dependencies": { "faye-websocket": { @@ -9914,7 +9876,7 @@ "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", "dev": true, "requires": { - "websocket-driver": ">=0.5.1" + "websocket-driver": "0.7.0" } } } @@ -9937,8 +9899,8 @@ "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==", "dev": true, "requires": { - "async": "^2.5.0", - "loader-utils": "^1.1.0" + "async": "2.6.1", + "loader-utils": "1.1.0" }, "dependencies": { "async": { @@ -9947,7 +9909,7 @@ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "dev": true, "requires": { - "lodash": "^4.17.10" + "lodash": "4.17.11" } } } @@ -9958,11 +9920,11 @@ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-support": { @@ -9971,8 +9933,8 @@ "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "buffer-from": "1.1.0", + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -9995,8 +9957,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -10011,8 +9973,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -10027,12 +9989,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "dev": true, "requires": { - "debug": "^2.6.8", - "handle-thing": "^1.2.5", - "http-deceiver": "^1.2.7", - "safe-buffer": "^5.0.1", - "select-hose": "^2.0.0", - "spdy-transport": "^2.0.18" + "debug": "2.6.9", + "handle-thing": "1.2.5", + "http-deceiver": "1.2.7", + "safe-buffer": "5.1.2", + "select-hose": "2.0.0", + "spdy-transport": "2.1.0" } }, "spdy-transport": { @@ -10041,13 +10003,13 @@ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "dev": true, "requires": { - "debug": "^2.6.8", - "detect-node": "^2.0.3", - "hpack.js": "^2.1.6", - "obuf": "^1.1.1", - "readable-stream": "^2.2.9", - "safe-buffer": "^5.0.1", - "wbuf": "^1.7.2" + "debug": "2.6.9", + "detect-node": "2.0.4", + "hpack.js": "2.1.6", + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "safe-buffer": "5.1.2", + "wbuf": "1.7.3" } }, "split-string": { @@ -10056,7 +10018,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "sprintf-js": { @@ -10071,15 +10033,15 @@ "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "dev": true, "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" }, "dependencies": { "assert-plus": { @@ -10096,7 +10058,7 @@ "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "dev": true, "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } }, "static-extend": { @@ -10105,8 +10067,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { @@ -10115,7 +10077,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -10126,7 +10088,7 @@ "integrity": "sha1-LFlJtTHgf4eojm6k3PrFOqjHWis=", "dev": true, "requires": { - "lodash": "^4.17.4" + "lodash": "4.17.11" } }, "statuses": { @@ -10142,7 +10104,7 @@ "dev": true, "optional": true, "requires": { - "readable-stream": "^2.0.1" + "readable-stream": "2.3.6" } }, "stream-browserify": { @@ -10151,8 +10113,8 @@ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "dev": true, "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "stream-each": { @@ -10161,8 +10123,8 @@ "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" + "end-of-stream": "1.4.1", + "stream-shift": "1.0.0" } }, "stream-http": { @@ -10171,11 +10133,11 @@ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "dev": true, "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" } }, "stream-shift": { @@ -10190,9 +10152,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { @@ -10201,7 +10163,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { @@ -10210,7 +10172,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -10219,7 +10181,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { @@ -10235,7 +10197,7 @@ "dev": true, "optional": true, "requires": { - "get-stdin": "^4.0.1" + "get-stdin": "4.0.1" } }, "style-loader": { @@ -10244,8 +10206,8 @@ "integrity": "sha512-T+UNsAcl3Yg+BsPKs1vd22Fr8sVT+CJMtzqc6LEw9bbJZb43lm9GoeIfUcDEefBSWC0BhYbcdupV1GtI4DGzxg==", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^0.4.5" + "loader-utils": "1.1.0", + "schema-utils": "0.4.7" } }, "stylus": { @@ -10254,12 +10216,12 @@ "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", "dev": true, "requires": { - "css-parse": "1.7.x", - "debug": "*", - "glob": "7.0.x", - "mkdirp": "0.5.x", - "sax": "0.5.x", - "source-map": "0.1.x" + "css-parse": "1.7.0", + "debug": "2.6.9", + "glob": "7.0.6", + "mkdirp": "0.5.1", + "sax": "0.5.8", + "source-map": "0.1.43" }, "dependencies": { "glob": { @@ -10268,12 +10230,12 @@ "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.2", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "source-map": { @@ -10282,7 +10244,7 @@ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -10293,9 +10255,9 @@ "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", "dev": true, "requires": { - "loader-utils": "^1.0.2", - "lodash.clonedeep": "^4.5.0", - "when": "~3.6.x" + "loader-utils": "1.1.0", + "lodash.clonedeep": "4.5.0", + "when": "3.6.4" } }, "supports-color": { @@ -10304,7 +10266,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } }, "symbol-observable": { @@ -10326,9 +10288,9 @@ "dev": true, "optional": true, "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" } }, "through": { @@ -10343,8 +10305,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" + "readable-stream": "2.3.6", + "xtend": "4.0.1" } }, "thunky": { @@ -10359,7 +10321,7 @@ "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", "dev": true, "requires": { - "setimmediate": "^1.0.4" + "setimmediate": "1.0.5" } }, "tmp": { @@ -10368,7 +10330,7 @@ "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", "dev": true, "requires": { - "os-tmpdir": "~1.0.1" + "os-tmpdir": "1.0.2" } }, "to-arraybuffer": { @@ -10389,7 +10351,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -10398,10 +10360,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -10410,8 +10372,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { @@ -10420,7 +10382,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } @@ -10438,7 +10400,7 @@ "dev": true, "optional": true, "requires": { - "punycode": "^1.4.1" + "punycode": "1.4.1" }, "dependencies": { "punycode": { @@ -10476,7 +10438,7 @@ "dev": true, "optional": true, "requires": { - "glob": "^7.1.2" + "glob": "7.1.3" } }, "ts-node": { @@ -10485,14 +10447,14 @@ "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", "dev": true, "requires": { - "arrify": "^1.0.0", - "buffer-from": "^1.1.0", - "diff": "^3.1.0", - "make-error": "^1.1.1", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "source-map-support": "^0.5.6", - "yn": "^2.0.0" + "arrify": "1.0.1", + "buffer-from": "1.1.0", + "diff": "3.5.0", + "make-error": "1.3.5", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "source-map-support": "0.5.9", + "yn": "2.0.0" }, "dependencies": { "minimist": { @@ -10509,11 +10471,11 @@ "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.0", - "source-map-support": "^0.5.0" + "jasmine-diff": "0.1.3", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "source-map": "0.6.1", + "source-map-support": "0.5.9" }, "dependencies": { "minimist": { @@ -10541,18 +10503,18 @@ "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", "dev": true, "requires": { - "babel-code-frame": "^6.22.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^3.2.0", - "glob": "^7.1.1", - "js-yaml": "^3.7.0", - "minimatch": "^3.0.4", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.27.2" + "babel-code-frame": "6.26.0", + "builtin-modules": "1.1.1", + "chalk": "2.4.1", + "commander": "2.17.1", + "diff": "3.5.0", + "glob": "7.1.3", + "js-yaml": "3.12.0", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.5.0", + "tslib": "1.9.2", + "tsutils": "2.29.0" }, "dependencies": { "resolve": { @@ -10561,7 +10523,7 @@ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.6" } } } @@ -10572,7 +10534,7 @@ "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "requires": { - "tslib": "^1.8.1" + "tslib": "1.9.2" } }, "tty-browserify": { @@ -10587,7 +10549,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -10603,7 +10565,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-is": { @@ -10613,7 +10575,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.18" + "mime-types": "2.1.20" } }, "typedarray": { @@ -10634,8 +10596,8 @@ "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", "dev": true, "requires": { - "commander": "~2.17.1", - "source-map": "~0.6.1" + "commander": "2.17.1", + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -10652,14 +10614,14 @@ "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", "dev": true, "requires": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "schema-utils": "^0.4.5", - "serialize-javascript": "^1.4.0", - "source-map": "^0.6.1", - "uglify-es": "^3.3.4", - "webpack-sources": "^1.1.0", - "worker-farm": "^1.5.2" + "cacache": "10.0.4", + "find-cache-dir": "1.0.0", + "schema-utils": "0.4.7", + "serialize-javascript": "1.5.0", + "source-map": "0.6.1", + "uglify-es": "3.3.9", + "webpack-sources": "1.3.0", + "worker-farm": "1.6.0" }, "dependencies": { "commander": { @@ -10680,8 +10642,8 @@ "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", "dev": true, "requires": { - "commander": "~2.13.0", - "source-map": "~0.6.1" + "commander": "2.13.0", + "source-map": "0.6.1" } } } @@ -10692,10 +10654,10 @@ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" }, "dependencies": { "extend-shallow": { @@ -10704,7 +10666,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -10713,10 +10675,10 @@ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -10727,7 +10689,7 @@ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, "requires": { - "unique-slug": "^2.0.0" + "unique-slug": "2.0.1" } }, "unique-slug": { @@ -10736,7 +10698,7 @@ "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", "dev": true, "requires": { - "imurmurhash": "^0.1.4" + "imurmurhash": "0.1.4" } }, "unpipe": { @@ -10751,8 +10713,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -10761,9 +10723,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -10809,7 +10771,7 @@ "integrity": "sha1-+QuFhQf4HepNz7s8TD2/orVX+qo=", "dev": true, "requires": { - "punycode": "^2.1.0" + "punycode": "2.1.1" } }, "urix": { @@ -10842,9 +10804,9 @@ "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "mime": "^2.0.3", - "schema-utils": "^1.0.0" + "loader-utils": "1.1.0", + "mime": "2.3.1", + "schema-utils": "1.0.0" }, "dependencies": { "mime": { @@ -10859,9 +10821,9 @@ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "ajv": "6.4.0", + "ajv-errors": "1.0.0", + "ajv-keywords": "3.2.0" } } } @@ -10872,8 +10834,8 @@ "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", "dev": true, "requires": { - "querystringify": "^2.0.0", - "requires-port": "^1.0.0" + "querystringify": "2.1.0", + "requires-port": "1.0.0" } }, "use": { @@ -10882,7 +10844,7 @@ "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "dev": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { @@ -10914,8 +10876,8 @@ "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" + "define-properties": "1.1.3", + "object.getownpropertydescriptors": "2.0.3" } }, "utila": { @@ -10942,8 +10904,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "validate-npm-package-name": { @@ -10952,7 +10914,7 @@ "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { - "builtins": "^1.0.3" + "builtins": "1.0.3" } }, "vary": { @@ -10967,9 +10929,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "extsprintf": "1.3.0" }, "dependencies": { "assert-plus": { @@ -10995,9 +10957,9 @@ "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", "dev": true, "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" + "chokidar": "2.0.4", + "graceful-fs": "4.1.11", + "neo-async": "2.5.2" }, "dependencies": { "anymatch": { @@ -11006,8 +10968,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "micromatch": "3.1.10", + "normalize-path": "2.1.1" } }, "arr-diff": { @@ -11028,16 +10990,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -11046,7 +11008,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -11057,19 +11019,19 @@ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.2", + "fsevents": "1.2.4", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "lodash.debounce": "4.0.8", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0", + "upath": "1.1.0" } }, "expand-brackets": { @@ -11078,13 +11040,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -11093,7 +11055,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -11102,7 +11064,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -11111,7 +11073,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -11120,7 +11082,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -11131,7 +11093,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -11140,7 +11102,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -11151,9 +11113,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -11170,14 +11132,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -11186,7 +11148,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -11195,7 +11157,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -11206,10 +11168,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -11218,7 +11180,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -11229,8 +11191,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -11239,7 +11201,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -11250,7 +11212,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -11259,7 +11221,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -11268,9 +11230,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-extglob": { @@ -11285,7 +11247,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-number": { @@ -11294,7 +11256,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -11303,7 +11265,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -11326,19 +11288,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -11349,7 +11311,7 @@ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "1.0.1" } }, "web-animations-js": { @@ -11363,8 +11325,8 @@ "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", "dev": true, "requires": { - "@types/selenium-webdriver": "^3.0.0", - "selenium-webdriver": "^3.0.1" + "@types/selenium-webdriver": "3.0.12", + "selenium-webdriver": "3.6.0" } }, "webpack": { @@ -11377,26 +11339,26 @@ "@webassemblyjs/helper-module-context": "1.7.8", "@webassemblyjs/wasm-edit": "1.7.8", "@webassemblyjs/wasm-parser": "1.7.8", - "acorn": "^5.6.2", - "acorn-dynamic-import": "^3.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", - "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.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^0.4.4", - "tapable": "^1.1.0", - "uglifyjs-webpack-plugin": "^1.2.4", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" + "acorn": "5.7.3", + "acorn-dynamic-import": "3.0.0", + "ajv": "6.4.0", + "ajv-keywords": "3.2.0", + "chrome-trace-event": "1.0.0", + "enhanced-resolve": "4.1.0", + "eslint-scope": "4.0.0", + "json-parse-better-errors": "1.0.2", + "loader-runner": "2.3.1", + "loader-utils": "1.1.0", + "memory-fs": "0.4.1", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "neo-async": "2.5.2", + "node-libs-browser": "2.1.0", + "schema-utils": "0.4.7", + "tapable": "1.1.0", + "uglifyjs-webpack-plugin": "1.3.0", + "watchpack": "1.6.0", + "webpack-sources": "1.3.0" }, "dependencies": { "arr-diff": { @@ -11417,16 +11379,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -11435,7 +11397,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -11446,13 +11408,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -11461,7 +11423,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -11470,7 +11432,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -11479,7 +11441,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -11488,7 +11450,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -11499,7 +11461,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -11508,7 +11470,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -11519,9 +11481,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -11538,14 +11500,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -11554,7 +11516,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -11563,7 +11525,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -11574,10 +11536,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -11586,7 +11548,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -11597,7 +11559,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -11606,7 +11568,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -11615,9 +11577,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { @@ -11626,7 +11588,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -11635,7 +11597,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -11658,19 +11620,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -11681,10 +11643,10 @@ "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==", "dev": true, "requires": { - "memory-fs": "~0.4.1", - "mime": "^2.3.1", - "range-parser": "^1.0.3", - "webpack-log": "^2.0.0" + "memory-fs": "0.4.1", + "mime": "2.3.1", + "range-parser": "1.2.0", + "webpack-log": "2.0.0" }, "dependencies": { "mime": { @@ -11702,32 +11664,32 @@ "dev": true, "requires": { "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.0.0", - "compression": "^1.5.2", - "connect-history-api-fallback": "^1.3.0", - "debug": "^3.1.0", - "del": "^3.0.0", - "express": "^4.16.2", - "html-entities": "^1.2.0", - "http-proxy-middleware": "~0.18.0", - "import-local": "^2.0.0", - "internal-ip": "^3.0.1", - "ip": "^1.1.5", - "killable": "^1.0.0", - "loglevel": "^1.4.1", - "opn": "^5.1.0", - "portfinder": "^1.0.9", - "schema-utils": "^1.0.0", - "selfsigned": "^1.9.1", - "serve-index": "^1.7.2", + "bonjour": "3.5.0", + "chokidar": "2.0.4", + "compression": "1.7.3", + "connect-history-api-fallback": "1.5.0", + "debug": "3.2.6", + "del": "3.0.0", + "express": "4.16.4", + "html-entities": "1.2.1", + "http-proxy-middleware": "0.18.0", + "import-local": "2.0.0", + "internal-ip": "3.0.1", + "ip": "1.1.5", + "killable": "1.0.1", + "loglevel": "1.6.1", + "opn": "5.3.0", + "portfinder": "1.0.17", + "schema-utils": "1.0.0", + "selfsigned": "1.10.4", + "serve-index": "1.9.1", "sockjs": "0.3.19", "sockjs-client": "1.1.5", - "spdy": "^3.4.1", - "strip-ansi": "^3.0.0", - "supports-color": "^5.1.0", + "spdy": "3.4.7", + "strip-ansi": "3.0.1", + "supports-color": "5.5.0", "webpack-dev-middleware": "3.4.0", - "webpack-log": "^2.0.0", + "webpack-log": "2.0.0", "yargs": "12.0.2" }, "dependencies": { @@ -11743,8 +11705,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "micromatch": "3.1.10", + "normalize-path": "2.1.1" } }, "arr-diff": { @@ -11765,16 +11727,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -11783,7 +11745,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -11794,19 +11756,19 @@ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.2", + "fsevents": "1.2.4", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "lodash.debounce": "4.0.8", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0", + "upath": "1.1.0" } }, "cliui": { @@ -11815,9 +11777,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" }, "dependencies": { "strip-ansi": { @@ -11826,7 +11788,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -11837,7 +11799,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" }, "dependencies": { "ms": { @@ -11863,13 +11825,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "debug": { @@ -11887,7 +11849,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -11896,7 +11858,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -11905,7 +11867,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -11914,7 +11876,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -11925,7 +11887,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -11934,7 +11896,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -11945,9 +11907,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -11964,14 +11926,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -11980,7 +11942,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -11989,7 +11951,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -12000,10 +11962,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -12012,7 +11974,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -12023,7 +11985,7 @@ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "3.0.0" } }, "glob-parent": { @@ -12032,8 +11994,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -12042,7 +12004,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -12059,7 +12021,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -12068,7 +12030,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -12077,9 +12039,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-extglob": { @@ -12100,7 +12062,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-number": { @@ -12109,7 +12071,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -12118,7 +12080,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -12141,7 +12103,7 @@ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": true, "requires": { - "invert-kv": "^2.0.0" + "invert-kv": "2.0.0" } }, "locate-path": { @@ -12150,8 +12112,8 @@ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "3.0.0", + "path-exists": "3.0.0" } }, "micromatch": { @@ -12160,19 +12122,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "os-locale": { @@ -12181,9 +12143,9 @@ "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==", "dev": true, "requires": { - "execa": "^0.10.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "execa": "0.10.0", + "lcid": "2.0.0", + "mem": "4.0.0" } }, "p-limit": { @@ -12192,7 +12154,7 @@ "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "2.0.0" } }, "p-locate": { @@ -12201,7 +12163,7 @@ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "2.0.0" } }, "p-try": { @@ -12216,9 +12178,9 @@ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "ajv": "6.4.0", + "ajv-errors": "1.0.0", + "ajv-keywords": "3.2.0" } }, "string-width": { @@ -12227,8 +12189,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" }, "dependencies": { "strip-ansi": { @@ -12237,7 +12199,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -12254,18 +12216,18 @@ "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^2.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^10.1.0" + "cliui": "4.1.0", + "decamelize": "2.0.0", + "find-up": "3.0.0", + "get-caller-file": "1.0.3", + "os-locale": "3.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "4.0.0", + "yargs-parser": "10.1.0" } } } @@ -12276,8 +12238,8 @@ "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", "dev": true, "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" + "ansi-colors": "3.1.0", + "uuid": "3.3.2" } }, "webpack-merge": { @@ -12286,7 +12248,7 @@ "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==", "dev": true, "requires": { - "lodash": "^4.17.5" + "lodash": "4.17.11" } }, "webpack-sources": { @@ -12295,8 +12257,8 @@ "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", "dev": true, "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" + "source-list-map": "2.0.1", + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -12313,7 +12275,7 @@ "integrity": "sha512-bdMR4DRbINUFt+QhNfBFHURnCzT8mtHjXiclQWX/aXBpu2pM4nOb2qViyt84ZSFrVKEXkAbmz7mSoZQH/08xFg==", "dev": true, "requires": { - "webpack-sources": "^1.3.0" + "webpack-sources": "1.3.0" } }, "websocket-driver": { @@ -12322,8 +12284,8 @@ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "dev": true, "requires": { - "http-parser-js": ">=0.4.0", - "websocket-extensions": ">=0.1.1" + "http-parser-js": "0.4.13", + "websocket-extensions": "0.1.3" } }, "websocket-extensions": { @@ -12344,7 +12306,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -12360,7 +12322,7 @@ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "string-width": "^1.0.2 || 2" + "string-width": "1.0.2" } }, "wordwrap": { @@ -12375,7 +12337,7 @@ "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", "dev": true, "requires": { - "errno": "~0.1.7" + "errno": "0.1.7" } }, "wrap-ansi": { @@ -12384,8 +12346,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" } }, "wrappy": { @@ -12400,8 +12362,8 @@ "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", "dev": true, "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~9.0.1" + "sax": "1.2.4", + "xmlbuilder": "9.0.7" }, "dependencies": { "sax": { @@ -12436,7 +12398,7 @@ "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", "dev": true, "requires": { - "cuint": "^0.2.2" + "cuint": "0.2.2" } }, "y18n": { @@ -12458,19 +12420,19 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.3", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "5.0.0" }, "dependencies": { "camelcase": { @@ -12493,7 +12455,7 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^3.0.0" + "camelcase": "3.0.0" } } } @@ -12504,7 +12466,7 @@ "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } }, "yn": { diff --git a/dmp-frontend/package.json b/dmp-frontend/package.json index b8c33251d..2577d358b 100644 --- a/dmp-frontend/package.json +++ b/dmp-frontend/package.json @@ -16,20 +16,19 @@ "@angular/common": "^6.1.7", "@angular/compiler": "^6.1.7", "@angular/core": "^6.1.7", - "@angular/forms": "^6.1.7", "@angular/flex-layout": "6.0.0-beta.18", + "@angular/forms": "^6.1.7", "@angular/material-moment-adapter": "^6.4.7", "@angular/platform-browser": "^6.1.7", + "@covalent/core": "^2.0.0-beta.5", "@ngx-translate/core": "^10.0.2", "@ngx-translate/http-loader": "^3.0.1", "@swimlane/ngx-datatable": "^13.1.0", - "@covalent/core": "^2.0.0-beta.2", "bootstrap": "^4.1.3", - "chart.js": "^2.7.2", "core-js": "^2.5.5", "file-saver": "^2.0.0-rc.3", "moment": "^2.22.2", - "moment-timezone": "^0.5.14", + "moment-timezone": "^0.5.23", "ngx-cookie-service": "^1.0.10", "rxjs": "^6.3.2", "rxjs-compat": "^6.3.2", diff --git a/dmp-frontend/protractor.conf.js b/dmp-frontend/protractor.conf.js index 7ee3b5ee8..7bc5c1e87 100644 --- a/dmp-frontend/protractor.conf.js +++ b/dmp-frontend/protractor.conf.js @@ -1,28 +1,34 @@ // Protractor configuration file, see link for more information // https://github.com/angular/protractor/blob/master/lib/config.ts -const { SpecReporter } = require('jasmine-spec-reporter'); +const { + SpecReporter +} = require('jasmine-spec-reporter'); exports.config = { - allScriptsTimeout: 11000, - specs: [ - './e2e/**/*.e2e-spec.ts' - ], - capabilities: { - 'browserName': 'chrome' - }, - directConnect: true, - baseUrl: 'http://localhost:4200/', - framework: 'jasmine', - jasmineNodeOpts: { - showColors: true, - defaultTimeoutInterval: 30000, - print: function() {} - }, - onPrepare() { - require('ts-node').register({ - project: 'e2e/tsconfig.e2e.json' - }); - jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); - } + allScriptsTimeout: 11000, + specs: [ + './e2e/**/*.e2e-spec.ts' + ], + capabilities: { + 'browserName': 'chrome' + }, + directConnect: true, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function () {} + }, + onPrepare() { + require('ts-node').register({ + project: 'e2e/tsconfig.e2e.json' + }); + jasmine.getEnv().addReporter(new SpecReporter({ + spec: { + displayStacktrace: true + } + })); + } }; diff --git a/dmp-frontend/src/app/core/common/base/base.component.ts b/dmp-frontend/src/app/core/common/base/base.component.ts new file mode 100644 index 000000000..bfff59ea4 --- /dev/null +++ b/dmp-frontend/src/app/core/common/base/base.component.ts @@ -0,0 +1,14 @@ +import { OnDestroy } from '@angular/core'; +import { Subject } from 'rxjs'; + +export abstract class BaseComponent implements OnDestroy { + + protected _destroyed: Subject = new Subject(); + + protected constructor() { } + + ngOnDestroy(): void { + this._destroyed.next(true); + this._destroyed.complete(); + } +} diff --git a/dmp-frontend/src/app/core/common/base/base.service.ts b/dmp-frontend/src/app/core/common/base/base.service.ts new file mode 100644 index 000000000..6f77bcd59 --- /dev/null +++ b/dmp-frontend/src/app/core/common/base/base.service.ts @@ -0,0 +1,14 @@ +import { OnDestroy } from '@angular/core'; +import { Subject } from 'rxjs'; + +export abstract class BaseService implements OnDestroy { + + protected _destroyed: Subject = new Subject(); + + protected constructor() { } + + ngOnDestroy(): void { + this._destroyed.next(true); + this._destroyed.complete(); + } +} diff --git a/dmp-frontend/src/app/dataset-profile-form/datasets-admin-listing/dataset-profile-admin-listing.component.ts b/dmp-frontend/src/app/dataset-profile-form/datasets-admin-listing/dataset-profile-admin-listing.component.ts index c1b7473d0..6dcc94fb1 100644 --- a/dmp-frontend/src/app/dataset-profile-form/datasets-admin-listing/dataset-profile-admin-listing.component.ts +++ b/dmp-frontend/src/app/dataset-profile-form/datasets-admin-listing/dataset-profile-admin-listing.component.ts @@ -1,19 +1,18 @@ -import { Component, ViewChild, OnInit, AfterViewInit } from '@angular/core'; -import { MatPaginator, MatSort, MatSnackBar } from '@angular/material'; -import { Router, Params, ActivatedRoute } from '@angular/router'; -import { TranslateService } from '@ngx-translate/core'; import { DataSource } from '@angular/cdk/table'; - +import { Component, OnInit, ViewChild } from '@angular/core'; +import { MatPaginator, MatSnackBar, MatSort, PageEvent } from '@angular/material'; +import { ActivatedRoute, Params, Router } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; import { Observable } from 'rxjs'; -import { PageEvent } from '@angular/material'; -import { DatasetProfileAdmin } from '../../services/datasetProfileAdmin/datasetProfileAfmin.service'; -import { DataManagementPlanService } from '../../services/data-management-plan/data-management-plan.service'; -import { DatasetProfileCriteriaComponent } from '../../shared/components/criteria/dataset-profile/dataset-profile.component'; -import { DataManagementPlanModel } from '../../models/data-managemnt-plans/DataManagementPlanModel'; -import { DatasetListingModel } from '../../models/datasets/DatasetListingModel'; -import { DataTableRequest } from '../../models/data-table/DataTableRequest'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../core/common/base/base.component'; import { DatasetProfileCriteria } from '../../models/criteria/dataset-profile/DatasetProfileCriteria'; - +import { DataManagementPlanModel } from '../../models/data-managemnt-plans/DataManagementPlanModel'; +import { DataTableRequest } from '../../models/data-table/DataTableRequest'; +import { DatasetListingModel } from '../../models/datasets/DatasetListingModel'; +import { DataManagementPlanService } from '../../services/data-management-plan/data-management-plan.service'; +import { DatasetProfileAdmin } from '../../services/datasetProfileAdmin/datasetProfileAfmin.service'; +import { DatasetProfileCriteriaComponent } from '../../shared/components/criteria/dataset-profile/dataset-profile.component'; @Component({ selector: 'app-dataset-profile-admin-listing-component', @@ -21,7 +20,7 @@ import { DatasetProfileCriteria } from '../../models/criteria/dataset-profile/Da styleUrls: ['./dataset-profile-admin-listing.component.scss'], providers: [DatasetProfileAdmin, DataManagementPlanService] }) -export class DatasetProfileAdminListingComponent implements OnInit { +export class DatasetProfileAdminListingComponent extends BaseComponent implements OnInit { @ViewChild(MatPaginator) _paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; @@ -47,22 +46,25 @@ export class DatasetProfileAdminListingComponent implements OnInit { public route: ActivatedRoute, public dataManagementPlanService: DataManagementPlanService ) { - + super(); } ngOnInit() { - this.route.params.subscribe((params: Params) => { - this.dmpId = params['dmpId']; - if (this.dmpId != null) { this.setDmpTitle(this.dmpId); } - this.criteria.setCriteria(this.getDefaultCriteria(this.dmpId)); - this.refresh(); - this.criteria.setRefreshCallback(() => this.refresh()); - }); + this.route.params + .pipe(takeUntil(this._destroyed)) + .subscribe((params: Params) => { + this.dmpId = params['dmpId']; + if (this.dmpId != null) { this.setDmpTitle(this.dmpId); } + this.criteria.setCriteria(this.getDefaultCriteria(this.dmpId)); + this.refresh(); + this.criteria.setRefreshCallback(() => this.refresh()); + }); } setDmpTitle(dmpId: String) { this.dataManagementPlanService.getSingle(dmpId).map(data => data as DataManagementPlanModel) + .pipe(takeUntil(this._destroyed)) .subscribe(data => { this.titlePrefix = data.label; }); @@ -88,7 +90,7 @@ export class DatasetProfileAdminListingComponent implements OnInit { // makeItPublic(id: String) { // debugger; - // this.datasetService.makeDatasetPublic(id).subscribe(); + // this.datasetService.makeDatasetPublic(id).pipe(takeUntil(this._destroyed)).subscribe(); // } } diff --git a/dmp-frontend/src/app/dataset-profile-form/form/form.component.html b/dmp-frontend/src/app/dataset-profile-form/form/form.component.html index 706477395..d3a5c212d 100644 --- a/dmp-frontend/src/app/dataset-profile-form/form/form.component.html +++ b/dmp-frontend/src/app/dataset-profile-form/form/form.component.html @@ -1,7 +1,7 @@ 
- {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} diff --git a/dmp-frontend/src/app/dataset-profile-form/form/form.component.ts b/dmp-frontend/src/app/dataset-profile-form/form/form.component.ts index c45a1fa11..0064c080c 100644 --- a/dmp-frontend/src/app/dataset-profile-form/form/form.component.ts +++ b/dmp-frontend/src/app/dataset-profile-form/form/form.component.ts @@ -1,18 +1,17 @@ -import { JsonSerializer } from '../../utilities/JsonSerializer'; -import { DatasetProfileService } from '../../services/dataset-profile.service'; +import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core'; +import { FormArray, FormControl, FormGroup } from '@angular/forms'; +import { MatDialog, MatHorizontalStepper } from '@angular/material'; +import { ActivatedRoute, Router } from '@angular/router'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../core/common/base/base.component'; import { DatasetProfileModelAdmin } from '../../models/datasetProfileAdmin/DatasetProfileModelAdmin'; import { Page } from '../../models/datasetProfileAdmin/Page'; -import { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core'; -import { FormGroup, FormControl } from '@angular/forms'; -import { FormArray } from '@angular/forms'; -import { Router, ActivatedRoute } from '@angular/router'; -import { DatasetProfileAdmin } from '../../services/datasetProfileAdmin/datasetProfileAfmin.service'; import { Section } from '../../models/datasetProfileAdmin/Section'; -import { MatDialog, MatHorizontalStepper, MatStepper } from '@angular/material'; -import { DatasetProfilePreviewerComponent } from '../previewer/dataset-profile-previewer.component'; -import { Observable } from 'rxjs'; -import { DatasetWizardModel } from '../../models/datasets/DatasetWizardModel'; import { DatasetProfileDefinitionModel } from '../../models/DatasetProfileDefinitionModel'; +import { DatasetWizardModel } from '../../models/datasets/DatasetWizardModel'; +import { DatasetProfileService } from '../../services/dataset-profile.service'; +import { DatasetProfileAdmin } from '../../services/datasetProfileAdmin/datasetProfileAfmin.service'; +import { JsonSerializer } from '../../utilities/JsonSerializer'; @Component({ selector: 'app-form-component', @@ -21,7 +20,7 @@ import { DatasetProfileDefinitionModel } from '../../models/DatasetProfileDefini styleUrls: ['./form.component.scss'] }) -export class FormComponent implements OnInit, AfterViewInit { +export class FormComponent extends BaseComponent implements OnInit, AfterViewInit { dataModel: DatasetProfileModelAdmin; @@ -39,6 +38,7 @@ export class FormComponent implements OnInit, AfterViewInit { private router: Router, public dialog: MatDialog, ) { + super(); this.profileID = route.snapshot.params['id']; this.cloneId = route.snapshot.params['cloneid']; } @@ -51,33 +51,45 @@ export class FormComponent implements OnInit, AfterViewInit { this.dataModel = JsonSerializer.fromJSONObject(new DatasetProfileModelAdmin(), DatasetProfileModelAdmin); if (this.profileID) { - this.datasetProfileService.getDatasetProfileById(this.profileID).subscribe((data) => { - this.dataModel = JsonSerializer.fromJSONObject(data, DatasetProfileModelAdmin); - this.form = this.dataModel.buildForm(); - this.form.valueChanges.subscribe(change => { - this.datasetProfileAdminService.preview(this.dataModel).subscribe(dataset => { - const datasetModel = new DatasetWizardModel(); - datasetModel.datasetProfileDefinition = JsonSerializer.fromJSONObject(dataset, DatasetProfileDefinitionModel); - this.dataWizardModel = datasetModel; - this.previewerFormGroup = this.dataWizardModel.buildForm().get('datasetProfileDefinition'); - }); + this.datasetProfileService.getDatasetProfileById(this.profileID) + .pipe(takeUntil(this._destroyed)) + .subscribe((data) => { + this.dataModel = JsonSerializer.fromJSONObject(data, DatasetProfileModelAdmin); + this.form = this.dataModel.buildForm(); + this.form.valueChanges + .pipe(takeUntil(this._destroyed)) + .subscribe(change => { + this.datasetProfileAdminService.preview(this.dataModel) + .pipe(takeUntil(this._destroyed)) + .subscribe(dataset => { + const datasetModel = new DatasetWizardModel(); + datasetModel.datasetProfileDefinition = JsonSerializer.fromJSONObject(dataset, DatasetProfileDefinitionModel); + this.dataWizardModel = datasetModel; + this.previewerFormGroup = this.dataWizardModel.buildForm().get('datasetProfileDefinition'); + }); + }); + this.form.updateValueAndValidity(); }); - this.form.updateValueAndValidity(); - }); } else if (this.cloneId) { - this.datasetprofileAdmin.clone(this.cloneId).subscribe((data) => { - this.dataModel = JsonSerializer.fromJSONObject(data, DatasetProfileModelAdmin); - this.form = this.dataModel.buildForm(); - this.form.valueChanges.subscribe(change => { - this.datasetProfileAdminService.preview(this.dataModel).subscribe(dataset => { - const datasetModel = new DatasetWizardModel(); - datasetModel.datasetProfileDefinition = JsonSerializer.fromJSONObject(dataset, DatasetProfileDefinitionModel); - this.dataWizardModel = datasetModel; - this.previewerFormGroup = this.dataWizardModel.buildForm().get('datasetProfileDefinition'); - }); + this.datasetprofileAdmin.clone(this.cloneId) + .pipe(takeUntil(this._destroyed)) + .subscribe((data) => { + this.dataModel = JsonSerializer.fromJSONObject(data, DatasetProfileModelAdmin); + this.form = this.dataModel.buildForm(); + this.form.valueChanges + .pipe(takeUntil(this._destroyed)) + .subscribe(change => { + this.datasetProfileAdminService.preview(this.dataModel) + .pipe(takeUntil(this._destroyed)) + .subscribe(dataset => { + const datasetModel = new DatasetWizardModel(); + datasetModel.datasetProfileDefinition = JsonSerializer.fromJSONObject(dataset, DatasetProfileDefinitionModel); + this.dataWizardModel = datasetModel; + this.previewerFormGroup = this.dataWizardModel.buildForm().get('datasetProfileDefinition'); + }); + }); + this.form.updateValueAndValidity(); }); - this.form.updateValueAndValidity(); - }); } else { this.addSection(); this.addPage(); @@ -124,13 +136,17 @@ export class FormComponent implements OnInit, AfterViewInit { const data = this.form.value; if (this.profileID) { - this.updateForm(this.profileID, data).subscribe(() => { - this.router.navigate(['/dataset-profile']); - }); + this.updateForm(this.profileID, data) + .pipe(takeUntil(this._destroyed)) + .subscribe(() => { + this.router.navigate(['/dataset-profile']); + }); } else { - this.createForm(data).subscribe(() => { - this.router.navigate(['/dataset-profile']); - }); + this.createForm(data) + .pipe(takeUntil(this._destroyed)) + .subscribe(() => { + this.router.navigate(['/dataset-profile']); + }); } } diff --git a/dmp-frontend/src/app/dataset-profile-form/previewer/dataset-profile-previewer.component.ts b/dmp-frontend/src/app/dataset-profile-form/previewer/dataset-profile-previewer.component.ts index d1ac90549..05180f86f 100644 --- a/dmp-frontend/src/app/dataset-profile-form/previewer/dataset-profile-previewer.component.ts +++ b/dmp-frontend/src/app/dataset-profile-form/previewer/dataset-profile-previewer.component.ts @@ -1,12 +1,12 @@ -import { ViewEncapsulation, Component, Inject, OnInit } from '@angular/core'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core'; import { FormGroup } from '@angular/forms'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../core/common/base/base.component'; import { DatasetProfileDefinitionModel } from '../../models/DatasetProfileDefinitionModel'; -import { JsonSerializer } from '../../utilities/JsonSerializer'; -import { DatasetModel } from '../../models/datasets/DatasetModel'; import { DatasetWizardModel } from '../../models/datasets/DatasetWizardModel'; -import { DatasetProfileService } from '../../services/dataset-profile.service'; import { DatasetProfileAdmin } from '../../services/datasetProfileAdmin/datasetProfileAfmin.service'; +import { JsonSerializer } from '../../utilities/JsonSerializer'; @Component({ selector: 'app-dataset-profile-previewer', @@ -15,22 +15,24 @@ import { DatasetProfileAdmin } from '../../services/datasetProfileAdmin/datasetP encapsulation: ViewEncapsulation.None }) -export class DatasetProfilePreviewerComponent implements OnInit { +export class DatasetProfilePreviewerComponent extends BaseComponent implements OnInit { formGroup: FormGroup; datasetWizardModel: DatasetWizardModel; constructor( private datasetProfileAdminService: DatasetProfileAdmin, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any - ) { } + ) { super(); } ngOnInit(): void { - this.datasetProfileAdminService.preview(this.data['model']).subscribe(x => { - this.datasetWizardModel = new DatasetWizardModel(); - this.datasetWizardModel.datasetProfileDefinition = JsonSerializer.fromJSONObject(x, DatasetProfileDefinitionModel); - this.formGroup = this.datasetWizardModel.buildForm().get('datasetProfileDefinition'); - }); + this.datasetProfileAdminService.preview(this.data['model']) + .pipe(takeUntil(this._destroyed)) + .subscribe(x => { + this.datasetWizardModel = new DatasetWizardModel(); + this.datasetWizardModel.datasetProfileDefinition = JsonSerializer.fromJSONObject(x, DatasetProfileDefinitionModel); + this.formGroup = this.datasetWizardModel.buildForm().get('datasetProfileDefinition'); + }); } } diff --git a/dmp-frontend/src/app/dataset-profile-form/section-form/section-form.component.ts b/dmp-frontend/src/app/dataset-profile-form/section-form/section-form.component.ts index 405f84636..0cbee6087 100644 --- a/dmp-frontend/src/app/dataset-profile-form/section-form/section-form.component.ts +++ b/dmp-frontend/src/app/dataset-profile-form/section-form/section-form.component.ts @@ -1,11 +1,11 @@ -import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core'; -import { FormGroup } from '@angular/forms'; -import { Section } from '../../models/datasetProfileAdmin/Section'; -import { FormArray } from '@angular/forms'; -import { DatasetProfileModel } from '../../models/datasetprofile/DatasetProfileModel'; -import { FieldSet } from '../../models/datasetProfileAdmin/FieldSet'; +import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core'; +import { FormArray, FormGroup } from '@angular/forms'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../core/common/base/base.component'; import { Field } from '../../models/datasetProfileAdmin/Field'; +import { FieldSet } from '../../models/datasetProfileAdmin/FieldSet'; import { Page } from '../../models/datasetProfileAdmin/Page'; +import { Section } from '../../models/datasetProfileAdmin/Section'; import { JsonSerializer } from '../../utilities/JsonSerializer'; @Component({ @@ -15,17 +15,19 @@ import { JsonSerializer } from '../../utilities/JsonSerializer'; encapsulation: ViewEncapsulation.None }) -export class SectionFormComponent implements OnInit { +export class SectionFormComponent extends BaseComponent implements OnInit { @Input() form: FormGroup; @Input() dataModel: Section; @Input() indexPath: string; - constructor() { } + constructor() { super(); } ngOnInit() { - this.form.root.get('pages').valueChanges.subscribe(x => - this.keepPageSelectionValid(x) - ); + this.form.root.get('pages').valueChanges + .pipe(takeUntil(this._destroyed)) + .subscribe(x => + this.keepPageSelectionValid(x) + ); } addField() { diff --git a/dmp-frontend/src/app/datasets/dataset-public/dataset-public-listing.component.ts b/dmp-frontend/src/app/datasets/dataset-public/dataset-public-listing.component.ts index adc5be160..4109bdde6 100644 --- a/dmp-frontend/src/app/datasets/dataset-public/dataset-public-listing.component.ts +++ b/dmp-frontend/src/app/datasets/dataset-public/dataset-public-listing.component.ts @@ -1,18 +1,17 @@ -import { OnInit, Component, ViewChild } from '@angular/core'; -import { MatSort, MatPaginator, PageEvent, MatSnackBar } from '@angular/material'; -import { DatasetCriteriaComponent } from '../../shared/components/criteria/datasets/datasets-criteria.component'; -import { Observable } from 'rxjs'; -import { BreadcrumbItem } from '../../shared/components/breadcrumb/definition/breadcrumb-item'; -import { DatasetService } from '../../services/dataset/dataset.service'; -import { Router, ActivatedRoute, Params } from '@angular/router'; -import { TranslateService } from '@ngx-translate/core'; -import { DataManagementPlanService } from '../../services/data-management-plan/data-management-plan.service'; -import { DatasetCriteria } from '../../models/criteria/dataset/DatasetCriteria'; import { DataSource } from '@angular/cdk/table'; -import { DatasetListingModel } from '../../models/datasets/DatasetListingModel'; +import { Component, OnInit, ViewChild } from '@angular/core'; +import { MatPaginator, MatSnackBar, MatSort, PageEvent } from '@angular/material'; +import { ActivatedRoute, Params, Router } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; +import { Observable } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../core/common/base/base.component'; +import { DatasetCriteria } from '../../models/criteria/dataset/DatasetCriteria'; import { DataTableRequest } from '../../models/data-table/DataTableRequest'; +import { DatasetListingModel } from '../../models/datasets/DatasetListingModel'; import { FacetSearchCriteriaModel } from '../../models/facet-search/FacetSearchCriteriaModel'; -import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; +import { DataManagementPlanService } from '../../services/data-management-plan/data-management-plan.service'; +import { DatasetService } from '../../services/dataset/dataset.service'; @Component({ @@ -20,7 +19,7 @@ import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definit templateUrl: 'dataset-public-listing.component.html', styleUrls: ['./dataset-public-listing.component.scss'], }) -export class DatasetPublicListingComponent implements OnInit { +export class DatasetPublicListingComponent extends BaseComponent implements OnInit { @ViewChild(MatPaginator) _paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; @@ -40,21 +39,23 @@ export class DatasetPublicListingComponent implements OnInit { public route: ActivatedRoute, public dataManagementPlanService: DataManagementPlanService ) { - + super(); } ngOnInit() { - this.route.params.subscribe(async (params: Params) => { - this.dmpId = params['dmpId']; - this.refresh(); - if (this.dmpId != null) { - const dmp = await this.dataManagementPlanService.getSingle(this.dmpId).toPromise(); - if (params['dmpLabel'] !== undefined) { - this.titlePrefix = 'for ' + params['dmpLabel']; + this.route.params + .pipe(takeUntil(this._destroyed)) + .subscribe(async (params: Params) => { + this.dmpId = params['dmpId']; + this.refresh(); + if (this.dmpId != null) { + const dmp = await this.dataManagementPlanService.getSingle(this.dmpId).toPromise(); + if (params['dmpLabel'] !== undefined) { + this.titlePrefix = 'for ' + params['dmpLabel']; + } } - } - }); + }); } onCriteriaChange(event: FacetSearchCriteriaModel) { @@ -80,9 +81,10 @@ export class DatasetPublicListingComponent implements OnInit { } makeItPublic(id: String) { - this.datasetService.makeDatasetPublic(id).subscribe(); + this.datasetService.makeDatasetPublic(id) + .pipe(takeUntil(this._destroyed)) + .subscribe(); } - } export class DatasetDataSource extends DataSource { diff --git a/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/datarepository/datarepository-referenced-model-helper.component.html b/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/datarepository/datarepository-referenced-model-helper.component.html index d240bcd35..a1c322489 100644 --- a/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/datarepository/datarepository-referenced-model-helper.component.html +++ b/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/datarepository/datarepository-referenced-model-helper.component.html @@ -3,15 +3,15 @@
- {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}}
diff --git a/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/datarepository/datarepository-referenced-model-helper.component.ts b/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/datarepository/datarepository-referenced-model-helper.component.ts index f79d69d12..a781cb594 100644 --- a/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/datarepository/datarepository-referenced-model-helper.component.ts +++ b/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/datarepository/datarepository-referenced-model-helper.component.ts @@ -1,9 +1,11 @@ -import { Component, ViewEncapsulation, OnInit, Inject } from '@angular/core'; +import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { DataRepositoryService } from '../../../services/datarepository/datarepository.service'; -import { Router, ActivatedRoute } from '@angular/router'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { ActivatedRoute, Router } from '@angular/router'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; import { DataRepositoryModel } from '../../../models/dataRepositories/DataRepositoryModel'; +import { DataRepositoryService } from '../../../services/datarepository/datarepository.service'; @Component({ selector: 'app-datarepository-referenced-model-helper', @@ -11,7 +13,7 @@ import { DataRepositoryModel } from '../../../models/dataRepositories/DataReposi styleUrls: ['./datarepository-referenced-model-helper.component.scss'], encapsulation: ViewEncapsulation.None }) -export class DataRepositoryReferencedModelHelperComponent implements OnInit { +export class DataRepositoryReferencedModelHelperComponent extends BaseComponent implements OnInit { public formGroup: FormGroup; constructor( @@ -20,7 +22,7 @@ export class DataRepositoryReferencedModelHelperComponent implements OnInit { public router: Router, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any - ) { } + ) { super(); } ngOnInit(): void { const datarepo = new DataRepositoryModel(); @@ -29,8 +31,10 @@ export class DataRepositoryReferencedModelHelperComponent implements OnInit { send(value: any) { - this.dataRepositoryService.create(this.formGroup.value).subscribe( - (item) => this.dialogRef.close(item) - ); + this.dataRepositoryService.create(this.formGroup.value) + .pipe(takeUntil(this._destroyed)) + .subscribe( + (item) => this.dialogRef.close(item) + ); } } diff --git a/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/externalDataset/externaldataset-referenced-model-helper.component.html b/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/externalDataset/externaldataset-referenced-model-helper.component.html index 8f251f5cf..390e5a783 100644 --- a/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/externalDataset/externaldataset-referenced-model-helper.component.html +++ b/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/externalDataset/externaldataset-referenced-model-helper.component.html @@ -3,11 +3,11 @@
- {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}}
diff --git a/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/externalDataset/externaldataset-referenced-model-helper.component.ts b/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/externalDataset/externaldataset-referenced-model-helper.component.ts index 688180ba8..623454d3a 100644 --- a/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/externalDataset/externaldataset-referenced-model-helper.component.ts +++ b/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/externalDataset/externaldataset-referenced-model-helper.component.ts @@ -1,9 +1,11 @@ -import { ExternalDatasetModel } from '../../../models/external-dataset/ExternalDatasetModel'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { Inject, ViewEncapsulation, Component, OnInit } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { ExternalDatasetService } from '../../../services/external-dataset/external-dataset.service'; +import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core'; import { FormGroup } from '@angular/forms'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { ActivatedRoute, Router } from '@angular/router'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; +import { ExternalDatasetModel } from '../../../models/external-dataset/ExternalDatasetModel'; +import { ExternalDatasetService } from '../../../services/external-dataset/external-dataset.service'; @Component({ selector: 'app-externaldataset-referenced-model-helper', @@ -11,7 +13,7 @@ import { FormGroup } from '@angular/forms'; styleUrls: ['./externaldataset-referenced-model-helper.component.scss'], encapsulation: ViewEncapsulation.None }) -export class ExternalDatasetReferencedModelHelperComponent implements OnInit { +export class ExternalDatasetReferencedModelHelperComponent extends BaseComponent implements OnInit { public formGroup: FormGroup; constructor( @@ -20,7 +22,7 @@ export class ExternalDatasetReferencedModelHelperComponent implements OnInit { public router: Router, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any - ) { } + ) { super(); } ngOnInit(): void { const externalDatasetModel = new ExternalDatasetModel(); @@ -29,8 +31,10 @@ export class ExternalDatasetReferencedModelHelperComponent implements OnInit { send(value: any) { - this.externalDatasetService.create(this.formGroup.value).subscribe( - (item) => this.dialogRef.close(item) - ); + this.externalDatasetService.create(this.formGroup.value) + .pipe(takeUntil(this._destroyed)) + .subscribe( + (item) => this.dialogRef.close(item) + ); } } diff --git a/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/registry/registry-referenced-model-helper.component.html b/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/registry/registry-referenced-model-helper.component.html index dd192366f..d5ffae7cc 100644 --- a/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/registry/registry-referenced-model-helper.component.html +++ b/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/registry/registry-referenced-model-helper.component.html @@ -3,15 +3,15 @@
- {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}}
diff --git a/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/registry/registry-referenced-model-helper.component.ts b/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/registry/registry-referenced-model-helper.component.ts index aa77fc6af..48e8728e9 100644 --- a/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/registry/registry-referenced-model-helper.component.ts +++ b/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/registry/registry-referenced-model-helper.component.ts @@ -1,7 +1,9 @@ -import { Component, ViewEncapsulation, OnInit, Inject } from '@angular/core'; +import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { ActivatedRoute, Router } from '@angular/router'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { ActivatedRoute, Router } from '@angular/router'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; import { RegisterModel } from '../../../models/registers/RegisterModel'; import { RegistryService } from '../../../services/registries/registry.service'; @@ -11,7 +13,7 @@ import { RegistryService } from '../../../services/registries/registry.service'; styleUrls: ['./registry-referenced-model-helper.component.scss'], encapsulation: ViewEncapsulation.None }) -export class RegistryReferencedModelHelperComponent implements OnInit { +export class RegistryReferencedModelHelperComponent extends BaseComponent implements OnInit { public formGroup: FormGroup; constructor( @@ -20,7 +22,7 @@ export class RegistryReferencedModelHelperComponent implements OnInit { public router: Router, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any - ) { } + ) { super(); } ngOnInit(): void { const registryModel = new RegisterModel(); @@ -29,8 +31,10 @@ export class RegistryReferencedModelHelperComponent implements OnInit { send(value: any) { - this.registryService.create(this.formGroup.value).subscribe( - (item) => this.dialogRef.close(item) - ); + this.registryService.create(this.formGroup.value) + .pipe(takeUntil(this._destroyed)) + .subscribe( + (item) => this.dialogRef.close(item) + ); } } diff --git a/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/services/services-referenced-model-helper.component.html b/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/services/services-referenced-model-helper.component.html index 1369e93a7..4043fb8d7 100644 --- a/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/services/services-referenced-model-helper.component.html +++ b/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/services/services-referenced-model-helper.component.html @@ -3,15 +3,15 @@
- {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}}
diff --git a/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/services/services-referenced-model-helper.component.ts b/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/services/services-referenced-model-helper.component.ts index 83cc04d4b..83492e7d5 100644 --- a/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/services/services-referenced-model-helper.component.ts +++ b/dmp-frontend/src/app/datasets/dataset-referenced-models-helper/services/services-referenced-model-helper.component.ts @@ -1,7 +1,9 @@ -import { ViewEncapsulation, Component, OnInit, Inject } from '@angular/core'; +import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { ActivatedRoute, Router } from '@angular/router'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { ActivatedRoute, Router } from '@angular/router'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; import { ServiceModel } from '../../../models/services/ServiceModel'; import { ServicesDataService } from '../../../services/services/services-data.service'; @@ -11,7 +13,7 @@ import { ServicesDataService } from '../../../services/services/services-data.se styleUrls: ['./services-referenced-model-helper.component.scss'], encapsulation: ViewEncapsulation.None }) -export class ServicesReferencedModelHelperComponent implements OnInit { +export class ServicesReferencedModelHelperComponent extends BaseComponent implements OnInit { public formGroup: FormGroup; constructor( @@ -20,7 +22,7 @@ export class ServicesReferencedModelHelperComponent implements OnInit { public router: Router, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any - ) { } + ) { super(); } ngOnInit(): void { const serviceModel = new ServiceModel(); @@ -29,8 +31,10 @@ export class ServicesReferencedModelHelperComponent implements OnInit { send() { - this.registryService.create(this.formGroup.value).subscribe( - (item) => this.dialogRef.close(item) - ); + this.registryService.create(this.formGroup.value) + .pipe(takeUntil(this._destroyed)) + .subscribe( + (item) => this.dialogRef.close(item) + ); } } diff --git a/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.ts b/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.ts index f1b682f41..43dca5607 100644 --- a/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.ts +++ b/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.ts @@ -1,46 +1,47 @@ -import { BaseErrorModel } from '../../models/error/BaseErrorModel'; -import { SnackBarNotificationComponent } from '../../shared/components/notificaiton/snack-bar-notification.component'; -import { DatasetProfileCriteria } from '../../models/criteria/dataset-profile/DatasetProfileCriteria'; -import { DataManagementPlanModel } from '../../models/data-managemnt-plans/DataManagementPlanModel'; -import { JsonSerializer } from '../../utilities/JsonSerializer'; +import { AfterViewInit, Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; +import { FormArray, FormBuilder, FormGroup } from '@angular/forms'; +import { MatDialog, MatSnackBar, MatStepper } from '@angular/material'; +import { ActivatedRoute, Params, Router } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; +import * as FileSaver from 'file-saver'; +import { BehaviorSubject, Observable } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../core/common/base/base.component'; import { DataManagementPlanCriteria } from '../../models/criteria/data-management-plan/DataManagementPlanCriteria'; +import { DataRepositoryCriteria } from '../../models/criteria/data-repository/DataRepositoryCriteria'; +import { DatasetProfileCriteria } from '../../models/criteria/dataset-profile/DatasetProfileCriteria'; +import { ExternalDatasetCriteria } from '../../models/criteria/external-dataset/ExternalDatasetCriteria'; +import { RegistryCriteria } from '../../models/criteria/registry/RegistryCriteria'; import { RequestItem } from '../../models/criteria/RequestItem'; -import { DatasetService } from '../../services/dataset/dataset.service'; +import { ServicesCriteria } from '../../models/criteria/services/ServicesCriteria'; +import { TagsCriteria } from '../../models/criteria/tags/TagsCriteria'; +import { DataManagementPlanListingModel } from '../../models/data-managemnt-plans/DataManagementPlanListingModel'; +import { DataManagementPlanModel } from '../../models/data-managemnt-plans/DataManagementPlanModel'; +import { DataRepositoryModel } from '../../models/dataRepositories/DataRepositoryModel'; import { DatasetProfileModel } from '../../models/datasetprofile/DatasetProfileModel'; import { DatasetProfileDefinitionModel } from '../../models/DatasetProfileDefinitionModel'; -import { DatasetWizardModel, DatasetStatus } from '../../models/datasets/DatasetWizardModel'; -import { DataManagementPlanService } from '../../services/data-management-plan/data-management-plan.service'; -import { ExternalSourcesService } from '../../services/external-sources/external-sources.service'; -import { DatasetWizardService } from '../../services/dataset-wizard/dataset-wizard.service'; -import { TranslateService } from '@ngx-translate/core'; -import { ActivatedRoute, Router, Params } from '@angular/router'; -import { Component, ViewChild, OnInit, AfterViewInit, ViewEncapsulation, TemplateRef, ChangeDetectionStrategy } from '@angular/core'; -import { FormGroup, FormBuilder, FormArray } from '@angular/forms'; -import * as FileSaver from 'file-saver'; -import { MatSnackBar, MatStepper, MatDialog } from '@angular/material'; -import { ExternalDatasetCriteria } from '../../models/criteria/external-dataset/ExternalDatasetCriteria'; +import { DatasetStatus, DatasetWizardModel } from '../../models/datasets/DatasetWizardModel'; +import { BaseErrorModel } from '../../models/error/BaseErrorModel'; import { ExternalDatasetModel } from '../../models/external-dataset/ExternalDatasetModel'; -import { RegistryCriteria } from '../../models/criteria/registry/RegistryCriteria'; -import { RegisterModel } from '../../models/registers/RegisterModel'; -import { DataRepositoryCriteria } from '../../models/criteria/data-repository/DataRepositoryCriteria'; -import { ServicesCriteria } from '../../models/criteria/services/ServicesCriteria'; -import { ServiceModel } from '../../models/services/ServiceModel'; -import { DataRepositoryModel } from '../../models/dataRepositories/DataRepositoryModel'; -import { ExternalSourcesConfigurationService } from '../../services/external-sources/external-sources-configuration.service'; import { ExternalSourcesConfiguration } from '../../models/external-sources/ExternalSourcesConfiguration'; -import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; -import { Observable } from 'rxjs'; -import { BreadcrumbItem } from '../../shared/components/breadcrumb/definition/breadcrumb-item'; -import { TagsCriteria } from '../../models/criteria/tags/TagsCriteria'; +import { RegisterModel } from '../../models/registers/RegisterModel'; +import { ServiceModel } from '../../models/services/ServiceModel'; import { TagModel } from '../../models/tags/TagModel'; +import { DataManagementPlanService } from '../../services/data-management-plan/data-management-plan.service'; +import { DatasetWizardService } from '../../services/dataset-wizard/dataset-wizard.service'; +import { DatasetService } from '../../services/dataset/dataset.service'; +import { ExternalSourcesConfigurationService } from '../../services/external-sources/external-sources-configuration.service'; +import { ExternalSourcesService } from '../../services/external-sources/external-sources.service'; import { AutoCompleteConfiguration } from '../../shared/components/auto-complete/AutoCompleteConfiguration'; import { SingleAutoCompleteConfiguration } from '../../shared/components/autocompletes/single/single-auto-complete-configuration'; -import { DataManagementPlanListingModel } from '../../models/data-managemnt-plans/DataManagementPlanListingModel'; +import { BreadcrumbItem } from '../../shared/components/breadcrumb/definition/breadcrumb-item'; +import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; +import { SnackBarNotificationComponent } from '../../shared/components/notificaiton/snack-bar-notification.component'; +import { JsonSerializer } from '../../utilities/JsonSerializer'; import { DataRepositoryReferencedModelHelperComponent } from '../dataset-referenced-models-helper/datarepository/datarepository-referenced-model-helper.component'; -import { RegistryReferencedModelHelperComponent } from '../dataset-referenced-models-helper/registry/registry-referenced-model-helper.component'; import { ExternalDatasetReferencedModelHelperComponent } from '../dataset-referenced-models-helper/externalDataset/externaldataset-referenced-model-helper.component'; +import { RegistryReferencedModelHelperComponent } from '../dataset-referenced-models-helper/registry/registry-referenced-model-helper.component'; import { ServicesReferencedModelHelperComponent } from '../dataset-referenced-models-helper/services/services-referenced-model-helper.component'; -import { BehaviorSubject } from 'rxjs'; @Component({ selector: 'app-dataset-wizard-component', @@ -48,7 +49,7 @@ import { BehaviorSubject } from 'rxjs'; styleUrls: ['./dataset-wizard.component.scss'], encapsulation: ViewEncapsulation.None, }) -export class DatasetWizardComponent implements OnInit, AfterViewInit, IBreadCrumbComponent { +export class DatasetWizardComponent extends BaseComponent implements OnInit, AfterViewInit, IBreadCrumbComponent { breadCrumbs: Observable; viewOnly = false; @ViewChild('stepper') stepper: MatStepper; @@ -101,13 +102,14 @@ export class DatasetWizardComponent implements OnInit, AfterViewInit, IBreadCrum public dialog: MatDialog, public externalSourcesConfigurationService: ExternalSourcesConfigurationService ) { - + super(); } ngOnInit() { this.route .data + .pipe(takeUntil(this._destroyed)) .subscribe(v => this.viewOnly = v['public']); const dmpRequestItem: RequestItem = new RequestItem(); @@ -138,14 +140,16 @@ export class DatasetWizardComponent implements OnInit, AfterViewInit, IBreadCrum this.tagsAutoCompleteConfiguration = new AutoCompleteConfiguration(this.externalSourcesService.searchDatasetTags.bind(this.externalSourcesService), tagsRequestItem, new BehaviorSubject(false)); - this.externalSourcesConfigurationService.getExternalSourcesConfiguration().subscribe(result => { - this.externalSourcesConfiguration = result; - this.externalSourcesConfiguration.dataRepositories.push({ key: '', label: 'All' }); - this.externalSourcesConfiguration.externalDatasets.push({ key: '', label: 'All' }); - this.externalSourcesConfiguration.registries.push({ key: '', label: 'All' }); - this.externalSourcesConfiguration.services.push({ key: '', label: 'All' }); - this.externalSourcesConfiguration.tags.push({ key: '', label: 'All' }); - }); + this.externalSourcesConfigurationService.getExternalSourcesConfiguration() + .pipe(takeUntil(this._destroyed)) + .subscribe(result => { + this.externalSourcesConfiguration = result; + this.externalSourcesConfiguration.dataRepositories.push({ key: '', label: 'All' }); + this.externalSourcesConfiguration.externalDatasets.push({ key: '', label: 'All' }); + this.externalSourcesConfiguration.registries.push({ key: '', label: 'All' }); + this.externalSourcesConfiguration.services.push({ key: '', label: 'All' }); + this.externalSourcesConfiguration.tags.push({ key: '', label: 'All' }); + }); this.dmpAutoCompleteConfiguration = { filterFn: this.searchDmp.bind(this), @@ -161,6 +165,7 @@ export class DatasetWizardComponent implements OnInit, AfterViewInit, IBreadCrum if (this.itemId != null) { this.isNew = false; this.datasetWizardService.getSingle(this.itemId).map(data => data as DatasetWizardModel) + .pipe(takeUntil(this._destroyed)) .subscribe(data => { this.datasetWizardModel = JsonSerializer.fromJSONObject(data, DatasetWizardModel); this.breadCrumbs = Observable.of([ @@ -193,6 +198,7 @@ export class DatasetWizardComponent implements OnInit, AfterViewInit, IBreadCrum } else if (dmpId != null) { this.isNew = true; this.dataManagementPlanService.getSingle(dmpId).map(data => data as DataManagementPlanModel) + .pipe(takeUntil(this._destroyed)) .subscribe(data => { this.datasetWizardModel = new DatasetWizardModel(); setTimeout(() => { @@ -232,17 +238,21 @@ export class DatasetWizardComponent implements OnInit, AfterViewInit, IBreadCrum this.viewOnly = true; } if (this.viewOnly) { this.formGroup.disable(); } - this.formGroup.get('dmp').valueChanges.subscribe(x => { - this.loadDatasetProfiles(); - }); + this.formGroup.get('dmp').valueChanges + .pipe(takeUntil(this._destroyed)) + .subscribe(x => { + this.loadDatasetProfiles(); + }); } } ngAfterViewInit() { - this.route.params.subscribe((params: Params) => { - const itemId = params['id']; - if (itemId != null) { this.stepper.selectedIndex = 2; } - }); + this.route.params + .pipe(takeUntil(this._destroyed)) + .subscribe((params: Params) => { + const itemId = params['id']; + if (itemId != null) { this.stepper.selectedIndex = 2; } + }); } searchDmp(query: string): Observable { @@ -257,9 +267,11 @@ export class DatasetWizardComponent implements OnInit, AfterViewInit, IBreadCrum datasetProfileRequestItem.criteria = new DatasetProfileCriteria(); datasetProfileRequestItem.criteria.id = this.formGroup.get('dmp').value.id; if (datasetProfileRequestItem.criteria.id) { - this.datasetWizardService.getAvailableProfiles(datasetProfileRequestItem).subscribe(items => { - this.availableProfiles = JsonSerializer.fromJSONArray(items, DatasetProfileModel); - }); + this.datasetWizardService.getAvailableProfiles(datasetProfileRequestItem) + .pipe(takeUntil(this._destroyed)) + .subscribe(items => { + this.availableProfiles = JsonSerializer.fromJSONArray(items, DatasetProfileModel); + }); } } @@ -270,11 +282,13 @@ export class DatasetWizardComponent implements OnInit, AfterViewInit, IBreadCrum getDefinition() { if (this.formGroup.invalid) { this.stepper.selectedIndex = 0; return; } if (this.isNew) { - this.datasetWizardService.getDefinition(this.formGroup.get('profile').get('id').value).subscribe(item => { - this.datasetWizardModel.datasetProfileDefinition = JsonSerializer.fromJSONObject(item, DatasetProfileDefinitionModel); - this.datasetProfileDefinitionModel = this.datasetWizardModel.datasetProfileDefinition; - this.formGroup.addControl('datasetProfileDefinition', this.datasetProfileDefinitionModel.buildForm()); - }); + this.datasetWizardService.getDefinition(this.formGroup.get('profile').get('id').value) + .pipe(takeUntil(this._destroyed)) + .subscribe(item => { + this.datasetWizardModel.datasetProfileDefinition = JsonSerializer.fromJSONObject(item, DatasetProfileDefinitionModel); + this.datasetProfileDefinitionModel = this.datasetWizardModel.datasetProfileDefinition; + this.formGroup.addControl('datasetProfileDefinition', this.datasetProfileDefinitionModel.buildForm()); + }); } } @@ -289,23 +303,29 @@ export class DatasetWizardComponent implements OnInit, AfterViewInit, IBreadCrum } onSubmit(): void { - this.datasetWizardService.createDataset(this.formGroup.value).subscribe( - complete => { - this.datasetWizardService.getSingle(complete.id).subscribe( - result => { - this.datasetWizardModel = JsonSerializer.fromJSONObject(result, DatasetWizardModel); - } - ); - this.onCallbackSuccess(); - }, - error => this.onCallbackError(error) - ); + this.datasetWizardService.createDataset(this.formGroup.value) + .pipe(takeUntil(this._destroyed)) + .subscribe( + complete => { + this.datasetWizardService.getSingle(complete.id) + .pipe(takeUntil(this._destroyed)) + .subscribe( + result => { + this.datasetWizardModel = JsonSerializer.fromJSONObject(result, DatasetWizardModel); + } + ); + this.onCallbackSuccess(); + }, + error => this.onCallbackError(error) + ); } submit() { - this.datasetWizardService.createDataset(this.formGroup.value).subscribe(data => { - this.router.navigateByUrl('/datasets/dmp/' + this.formGroup.get('dmp').value.id); - }); + this.datasetWizardService.createDataset(this.formGroup.value) + .pipe(takeUntil(this._destroyed)) + .subscribe(data => { + this.router.navigateByUrl('/datasets/dmp/' + this.formGroup.get('dmp').value.id); + }); } @@ -339,21 +359,25 @@ export class DatasetWizardComponent implements OnInit, AfterViewInit, IBreadCrum } downloadPDF(): void { - this.datasetWizardService.downloadPDF(this.itemId).subscribe(response => { - const blob = new Blob([response.body], { type: 'application/pdf' }); - const filename = this.getFilenameFromContentDispositionHeader(response.headers.get('Content-Disposition')); + this.datasetWizardService.downloadPDF(this.itemId) + .pipe(takeUntil(this._destroyed)) + .subscribe(response => { + const blob = new Blob([response.body], { type: 'application/pdf' }); + const filename = this.getFilenameFromContentDispositionHeader(response.headers.get('Content-Disposition')); - FileSaver.saveAs(blob, filename); - }); + FileSaver.saveAs(blob, filename); + }); } downloadXML(): void { - this.datasetWizardService.downloadXML(this.itemId).subscribe(response => { - const blob = new Blob([response.body], { type: 'application/xml' }); - const filename = this.getFilenameFromContentDispositionHeader(response.headers.get('Content-Disposition')); + this.datasetWizardService.downloadXML(this.itemId) + .pipe(takeUntil(this._destroyed)) + .subscribe(response => { + const blob = new Blob([response.body], { type: 'application/xml' }); + const filename = this.getFilenameFromContentDispositionHeader(response.headers.get('Content-Disposition')); - FileSaver.saveAs(blob, filename); - }); + FileSaver.saveAs(blob, filename); + }); } getFilenameFromContentDispositionHeader(header: string): string { @@ -416,11 +440,13 @@ export class DatasetWizardComponent implements OnInit, AfterViewInit, IBreadCrum } }); - dialogRef.afterClosed().subscribe(result => { - if (!result) { return; } - const dataRepositoryModel = new DataRepositoryModel(result.id, result.label, result.pid, result.uri, result.reference); - (this.formGroup.get('dataRepositories')).push(dataRepositoryModel.buildForm()); - }); + dialogRef.afterClosed() + .pipe(takeUntil(this._destroyed)) + .subscribe(result => { + if (!result) { return; } + const dataRepositoryModel = new DataRepositoryModel(result.id, result.label, result.pid, result.uri, result.reference); + (this.formGroup.get('dataRepositories')).push(dataRepositoryModel.buildForm()); + }); } addRegistry() { @@ -431,11 +457,13 @@ export class DatasetWizardComponent implements OnInit, AfterViewInit, IBreadCrum } }); - dialogRef.afterClosed().subscribe(result => { - if (!result) { return; } - const registryModel = new RegisterModel(result.abbreviation, result.definition, result.id, result.label, result.reference, result.uri); - (this.formGroup.get('registries')).push(registryModel.buildForm()); - }); + dialogRef.afterClosed() + .pipe(takeUntil(this._destroyed)) + .subscribe(result => { + if (!result) { return; } + const registryModel = new RegisterModel(result.abbreviation, result.definition, result.id, result.label, result.reference, result.uri); + (this.formGroup.get('registries')).push(registryModel.buildForm()); + }); } addExternalDataset() { @@ -446,11 +474,13 @@ export class DatasetWizardComponent implements OnInit, AfterViewInit, IBreadCrum } }); - dialogRef.afterClosed().subscribe(result => { - if (!result) { return; } - const externalDatasetModel = new ExternalDatasetModel(result.id, result.abbreviation, result.label, result.reference); - (this.formGroup.get('externalDatasets')).push(externalDatasetModel.buildForm()); - }); + dialogRef.afterClosed() + .pipe(takeUntil(this._destroyed)) + .subscribe(result => { + if (!result) { return; } + const externalDatasetModel = new ExternalDatasetModel(result.id, result.abbreviation, result.label, result.reference); + (this.formGroup.get('externalDatasets')).push(externalDatasetModel.buildForm()); + }); } addService() { @@ -461,11 +491,13 @@ export class DatasetWizardComponent implements OnInit, AfterViewInit, IBreadCrum } }); - dialogRef.afterClosed().subscribe(result => { - if (!result) { return; } - const serviceModel = new ServiceModel(result.id, result.abbreviation, result.definition, result.uri, result.label, result.reference); - (this.formGroup.get('services')).push(serviceModel.buildForm()); - }); + dialogRef.afterClosed() + .pipe(takeUntil(this._destroyed)) + .subscribe(result => { + if (!result) { return; } + const serviceModel = new ServiceModel(result.id, result.abbreviation, result.definition, result.uri, result.label, result.reference); + (this.formGroup.get('services')).push(serviceModel.buildForm()); + }); } public enableForm() { @@ -474,13 +506,15 @@ export class DatasetWizardComponent implements OnInit, AfterViewInit, IBreadCrum this.viewOnly = false; this.formGroup.enable(); } else { - this.datasetWizardService.unlock(this.formGroup.get('id').value).subscribe(x => { - this.editMode = true; - this.viewOnly = false; - this.datasetWizardModel.status = DatasetStatus.Draft; - this.formGroup.get('status').patchValue(DatasetStatus.Draft); - this.formGroup.enable(); - }); + this.datasetWizardService.unlock(this.formGroup.get('id').value) + .pipe(takeUntil(this._destroyed)) + .subscribe(x => { + this.editMode = true; + this.viewOnly = false; + this.datasetWizardModel.status = DatasetStatus.Draft; + this.formGroup.get('status').patchValue(DatasetStatus.Draft); + this.formGroup.enable(); + }); } } diff --git a/dmp-frontend/src/app/datasets/editor/dataset-editor.component.html b/dmp-frontend/src/app/datasets/editor/dataset-editor.component.html index fc71f0002..c751b198c 100644 --- a/dmp-frontend/src/app/datasets/editor/dataset-editor.component.html +++ b/dmp-frontend/src/app/datasets/editor/dataset-editor.component.html @@ -4,22 +4,22 @@ - {{baseErrorModel.label}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{baseErrorModel.label}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} - {{baseErrorModel.uri}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{baseErrorModel.uri}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} - {{errorModel.description}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{errorModel.description}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} diff --git a/dmp-frontend/src/app/datasets/editor/dataset-editor.component.ts b/dmp-frontend/src/app/datasets/editor/dataset-editor.component.ts index 40e329a34..b48b08506 100644 --- a/dmp-frontend/src/app/datasets/editor/dataset-editor.component.ts +++ b/dmp-frontend/src/app/datasets/editor/dataset-editor.component.ts @@ -1,17 +1,9 @@ -import { AfterViewInit, Component, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; -import { MatPaginator, MatSort, MatSnackBar } from '@angular/material'; -import { Router, ActivatedRoute, Params } from '@angular/router'; -import { TranslateService } from '@ngx-translate/core'; -import { DataSource } from '@angular/cdk/table'; -import { Observable } from 'rxjs'; -import { JsonSerializer } from '../../utilities/JsonSerializer'; +import { AfterViewInit, Component, Input, ViewEncapsulation } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { SnackBarNotificationComponent } from '../../shared/components/notificaiton/snack-bar-notification.component'; -import { BaseErrorModel } from '../../models/error/BaseErrorModel'; -import { DatasetService } from '../../services/dataset/dataset.service'; +import { MatSnackBar } from '@angular/material'; +import { Router } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; import { DatasetModel } from '../../models/datasets/DatasetModel'; -import { ExternalSourcesService } from '../../services/external-sources/external-sources.service'; -import { ExternalSourcesItemModel } from '../../models/external-sources/ExternalSourcesItemModel'; @@ -44,12 +36,13 @@ export class DatasetEditorComponent implements AfterViewInit { } ngAfterViewInit() { - /* this.route.params.subscribe((params: Params) => { + /* this.route.params.pipe(takeUntil(this._destroyed)).subscribe((params: Params) => { const itemId = params['id']; if (itemId != null) { this.isNew = false; this.datasetService.getSingle(itemId).map(data => data as DatasetModel) + .pipe(takeUntil(this._destroyed)) .subscribe(data => { this.dataset = new JsonSerializer().fromJSONObject(data, DatasetModel); this.formGroup = this.dataset.buildForm(); @@ -74,7 +67,7 @@ export class DatasetEditorComponent implements AfterViewInit { // if (value) { // this.filtereddataRepositoriesAsync = true; - // this.externalSourcesService.searchDMPOrganizations(value).subscribe(items => { + // this.externalSourcesService.searchDMPOrganizations(value).pipe(takeUntil(this._destroyed)).subscribe(items => { // this.filtereddataRepositories = items; // this.filtereddataRepositoriesAsync = false; @@ -92,7 +85,7 @@ export class DatasetEditorComponent implements AfterViewInit { // if (value) { // this.filteredRegistriesAsync = true; - // this.externalSourcesService.searchDMPResearchers(value).subscribe(items => { + // this.externalSourcesService.searchDMPResearchers(value).pipe(takeUntil(this._destroyed)).subscribe(items => { // this.filteredRegistries = items; // this.filteredRegistriesAsync = false; @@ -110,7 +103,7 @@ export class DatasetEditorComponent implements AfterViewInit { // if (value) { // this.filteredServicesAsync = true; - // this.externalSourcesService.searchDatasetService(value).subscribe(items => { + // this.externalSourcesService.searchDatasetService(value).pipe(takeUntil(this._destroyed)).subscribe(items => { // this.filteredServices = items; // this.filteredServicesAsync = false; diff --git a/dmp-frontend/src/app/datasets/listing/dataset-listing.component.ts b/dmp-frontend/src/app/datasets/listing/dataset-listing.component.ts index 69ecbafe2..b1c6c6088 100644 --- a/dmp-frontend/src/app/datasets/listing/dataset-listing.component.ts +++ b/dmp-frontend/src/app/datasets/listing/dataset-listing.component.ts @@ -1,24 +1,21 @@ -import { Field } from '../../models/Field'; +import { DataSource } from '@angular/cdk/table'; +import { Component, OnInit, ViewChild } from '@angular/core'; +import { MatPaginator, MatSnackBar, MatSort, PageEvent } from '@angular/material'; +import { ActivatedRoute, Params, Router } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; +import { Observable } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../core/common/base/base.component'; +import { DatasetCriteria } from '../../models/criteria/dataset/DatasetCriteria'; import { DataTableRequest } from '../../models/data-table/DataTableRequest'; import { DatasetListingModel } from '../../models/datasets/DatasetListingModel'; -import { DatasetCriteria } from '../../models/criteria/dataset/DatasetCriteria'; -import { DatasetService } from '../../services/dataset/dataset.service'; -import { Component, ViewChild, OnInit, AfterViewInit } from '@angular/core'; -import { MatPaginator, MatSort, MatSnackBar } from '@angular/material'; -import { Router, Params, ActivatedRoute } from '@angular/router'; -import { TranslateService } from '@ngx-translate/core'; -import { DataSource } from '@angular/cdk/table'; - -import { Observable } from 'rxjs'; -import { PageEvent } from '@angular/material'; import { DataManagementPlanService } from '../../services/data-management-plan/data-management-plan.service'; -import { DataManagementPlanModel } from '../../models/data-managemnt-plans/DataManagementPlanModel'; -import { DatasetCriteriaComponent } from '../../shared/components/criteria/datasets/datasets-criteria.component'; +import { DatasetService } from '../../services/dataset/dataset.service'; import { BreadcrumbItem } from '../../shared/components/breadcrumb/definition/breadcrumb-item'; import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; -import { Utilities } from '../../utilities/utilities'; +import { DatasetCriteriaComponent } from '../../shared/components/criteria/datasets/datasets-criteria.component'; import { JsonSerializer } from '../../utilities/JsonSerializer'; - +import { Utilities } from '../../utilities/utilities'; @Component({ selector: 'app-dataset-listing-component', @@ -26,7 +23,7 @@ import { JsonSerializer } from '../../utilities/JsonSerializer'; styleUrls: ['./dataset-listing.component.scss'], providers: [Utilities] }) -export class DatasetListingComponent implements OnInit, IBreadCrumbComponent { +export class DatasetListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent { @ViewChild(MatPaginator) _paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; @@ -54,27 +51,29 @@ export class DatasetListingComponent implements OnInit, IBreadCrumbComponent { public dataManagementPlanService: DataManagementPlanService, public utilities: Utilities ) { - + super(); } ngOnInit() { - this.route.params.subscribe(async (params: Params) => { - this.dmpId = params['dmpId']; - this.criteria.setCriteria(this.getDefaultCriteria(this.dmpId)); - this.refresh(); - this.criteria.setRefreshCallback(() => this.refresh()); - if (this.dmpId != null) { - const dmp = await this.dataManagementPlanService.getSingle(this.dmpId).toPromise(); - this.breadCrumbs = Observable.of([{ parentComponentName: 'DataManagementPlanEditorComponent', label: dmp.label, url: 'dmps/edit/' + this.dmpId }]); - if (params['dmpLabel'] !== undefined) { - this.titlePrefix = 'for ' + params['dmpLabel']; + this.route.params + .pipe(takeUntil(this._destroyed)) + .subscribe(async (params: Params) => { + this.dmpId = params['dmpId']; + this.criteria.setCriteria(this.getDefaultCriteria(this.dmpId)); + this.refresh(); + this.criteria.setRefreshCallback(() => this.refresh()); + if (this.dmpId != null) { + const dmp = await this.dataManagementPlanService.getSingle(this.dmpId).toPromise(); + this.breadCrumbs = Observable.of([{ parentComponentName: 'DataManagementPlanEditorComponent', label: dmp.label, url: 'dmps/edit/' + this.dmpId }]); + if (params['dmpLabel'] !== undefined) { + this.titlePrefix = 'for ' + params['dmpLabel']; + } + } else { + this.breadCrumbs = Observable.of([]); } - } else { - this.breadCrumbs = Observable.of([]); - } - }); + }); } refresh() { @@ -94,7 +93,9 @@ export class DatasetListingComponent implements OnInit, IBreadCrumbComponent { } makeItPublic(id: String) { - this.datasetService.makeDatasetPublic(id).subscribe(); + this.datasetService.makeDatasetPublic(id) + .pipe(takeUntil(this._destroyed)) + .subscribe(); } } diff --git a/dmp-frontend/src/app/dmp-profiles/dmp-profile-editor/dmp-profile-editor.component.html b/dmp-frontend/src/app/dmp-profiles/dmp-profile-editor/dmp-profile-editor.component.html index 5611767f9..1eefbacaa 100644 --- a/dmp-frontend/src/app/dmp-profiles/dmp-profile-editor/dmp-profile-editor.component.html +++ b/dmp-frontend/src/app/dmp-profiles/dmp-profile-editor/dmp-profile-editor.component.html @@ -11,8 +11,8 @@ - {{baseErrorModel.label}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{baseErrorModel.label}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}}
@@ -22,8 +22,8 @@ - {{baseErrorModel.label}} - {{'GENERAL.VALIDATION.REQUIRED' + {{baseErrorModel.label}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} @@ -31,8 +31,8 @@ {{ getDMPProfileFieldTypeWithLanguage(fieldType) | translate}} - {{baseErrorModel.type}} - {{'GENERAL.VALIDATION.REQUIRED' + {{baseErrorModel.type}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} @@ -40,8 +40,8 @@ {{ getDMPProfileFieldDataTypeWithLanguage(fieldDataType) | translate}} - {{baseErrorModel.dataType}} - {{'GENERAL.VALIDATION.REQUIRED' + {{baseErrorModel.dataType}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} diff --git a/dmp-frontend/src/app/dmp-profiles/dmp-profile-editor/dmp-profile-editor.component.ts b/dmp-frontend/src/app/dmp-profiles/dmp-profile-editor/dmp-profile-editor.component.ts index 831bef5a8..1217beebe 100644 --- a/dmp-frontend/src/app/dmp-profiles/dmp-profile-editor/dmp-profile-editor.component.ts +++ b/dmp-frontend/src/app/dmp-profiles/dmp-profile-editor/dmp-profile-editor.component.ts @@ -4,7 +4,9 @@ import { MatSnackBar } from '@angular/material'; import { ActivatedRoute, Params, Router } from '@angular/router'; import { TdDialogService } from '@covalent/core'; import { TranslateService } from '@ngx-translate/core'; +import { takeUntil } from 'rxjs/operators'; import { environment } from '../../../environments/environment'; +import { BaseComponent } from '../../core/common/base/base.component'; import { DataManagementPlanProfileModel } from '../../models/data-management-plan-profile/DataManagementPlanProfileModel'; import { DataManagementProfileField, DMPProfileFieldDataType, DMPProfileType } from '../../models/data-management-plan-profile/DataManagementProfileField'; import { BaseErrorModel } from '../../models/error/BaseErrorModel'; @@ -22,7 +24,7 @@ import { Utilities } from '../../utilities/utilities'; providers: [DataManagementPlanProfileService, Utilities], encapsulation: ViewEncapsulation.None }) -export class DataManagementPlanProfileEditorComponent implements AfterViewInit { +export class DataManagementPlanProfileEditorComponent extends BaseComponent implements AfterViewInit { isNew = true; dataManagementPlanProfileModel: DataManagementPlanProfileModel; @@ -38,29 +40,33 @@ export class DataManagementPlanProfileEditorComponent implements AfterViewInit { private dialogService: TdDialogService, private utilities: Utilities ) { + super(); } ngAfterViewInit() { - this.route.params.subscribe((params: Params) => { - const itemId = params['id']; + this.route.params + .pipe(takeUntil(this._destroyed)) + .subscribe((params: Params) => { + const itemId = params['id']; - if (itemId != null) { - this.isNew = false; - this.dmpProfileService.getSingle(itemId).map(data => data as DataManagementPlanProfileModel) - .subscribe(data => { - this.dataManagementPlanProfileModel = JsonSerializer.fromJSONObject(data, DataManagementPlanProfileModel); - this.baseErrorModel = this.dataManagementPlanProfileModel.errorModel; + if (itemId != null) { + this.isNew = false; + this.dmpProfileService.getSingle(itemId).map(data => data as DataManagementPlanProfileModel) + .pipe(takeUntil(this._destroyed)) + .subscribe(data => { + this.dataManagementPlanProfileModel = JsonSerializer.fromJSONObject(data, DataManagementPlanProfileModel); + this.baseErrorModel = this.dataManagementPlanProfileModel.errorModel; + this.formGroup = this.dataManagementPlanProfileModel.buildForm(); + }); + } else { + this.dataManagementPlanProfileModel = new DataManagementPlanProfileModel(); + this.baseErrorModel = this.dataManagementPlanProfileModel.errorModel; + + setTimeout(() => { this.formGroup = this.dataManagementPlanProfileModel.buildForm(); }); - } else { - this.dataManagementPlanProfileModel = new DataManagementPlanProfileModel(); - this.baseErrorModel = this.dataManagementPlanProfileModel.errorModel; - - setTimeout(() => { - this.formGroup = this.dataManagementPlanProfileModel.buildForm(); - }); - } - }); + } + }); } formSubmit(): void { @@ -74,10 +80,12 @@ export class DataManagementPlanProfileEditorComponent implements AfterViewInit { } onSubmit(): void { - this.dmpProfileService.createDataManagementPlan(this.formGroup.value).subscribe( - complete => this.onCallbackSuccess(), - error => this.onCallbackError(error) - ); + this.dmpProfileService.createDataManagementPlan(this.formGroup.value) + .pipe(takeUntil(this._destroyed)) + .subscribe( + complete => this.onCallbackSuccess(), + error => this.onCallbackError(error) + ); } onCallbackSuccess(): void { @@ -147,9 +155,11 @@ export class DataManagementPlanProfileEditorComponent implements AfterViewInit { getDMPProfileFieldDataTypeWithLanguage(role: DMPProfileFieldDataType): string { let result = ''; - this.language.get(this.utilities.convertFromDMPProfileDataType(role)).subscribe((value: string) => { - result = value; - }); + this.language.get(this.utilities.convertFromDMPProfileDataType(role)) + .pipe(takeUntil(this._destroyed)) + .subscribe((value: string) => { + result = value; + }); return result; } @@ -162,9 +172,11 @@ export class DataManagementPlanProfileEditorComponent implements AfterViewInit { getDMPProfileFieldTypeWithLanguage(role: DMPProfileType): string { let result = ''; - this.language.get(this.utilities.convertFromDMPProfileType(role)).subscribe((value: string) => { - result = value; - }); + this.language.get(this.utilities.convertFromDMPProfileType(role)) + .pipe(takeUntil(this._destroyed)) + .subscribe((value: string) => { + result = value; + }); return result; } } diff --git a/dmp-frontend/src/app/dmp-profiles/dmp-profile-listing/dmp-profile-listing.component.ts b/dmp-frontend/src/app/dmp-profiles/dmp-profile-listing/dmp-profile-listing.component.ts index dc368bbe8..ef3a02933 100644 --- a/dmp-frontend/src/app/dmp-profiles/dmp-profile-listing/dmp-profile-listing.component.ts +++ b/dmp-frontend/src/app/dmp-profiles/dmp-profile-listing/dmp-profile-listing.component.ts @@ -1,14 +1,16 @@ -import { Component, ViewChild, OnInit } from '@angular/core'; -import { MatPaginator, MatSort, PageEvent, MatSnackBar } from '@angular/material'; -import { DataManagementPlanProfileCriteriaComponent } from '../../shared/components/criteria/datamanagementplanprofile/dmp-profile-criteria.component'; -import { ActivatedRoute, Router, Params } from '@angular/router'; -import { TranslateService } from '@ngx-translate/core'; import { DataSource } from '@angular/cdk/table'; -import { DataManagementPlanProfileCriteria } from '../../models/criteria/dmp-profile/DataManagementPlanProfileCriteria'; +import { Component, OnInit, ViewChild } from '@angular/core'; +import { MatPaginator, MatSnackBar, MatSort, PageEvent } from '@angular/material'; +import { ActivatedRoute, Params, Router } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; import { Observable } from 'rxjs'; -import { DataTableRequest } from '../../models/data-table/DataTableRequest'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../core/common/base/base.component'; +import { DataManagementPlanProfileCriteria } from '../../models/criteria/dmp-profile/DataManagementPlanProfileCriteria'; import { DataManagementPlanProfileListingModel } from '../../models/data-management-plan-profile/DataManagementPlanProfileListingModel'; +import { DataTableRequest } from '../../models/data-table/DataTableRequest'; import { DataManagementPlanProfileService } from '../../services/data-management-plan-profile/datamanagement-profile.service'; +import { DataManagementPlanProfileCriteriaComponent } from '../../shared/components/criteria/datamanagementplanprofile/dmp-profile-criteria.component'; @Component({ selector: 'app-dmp-profile-listing-component', @@ -16,7 +18,7 @@ import { DataManagementPlanProfileService } from '../../services/data-management styleUrls: ['./dmp-profile-listing.component.scss'], providers: [DataManagementPlanProfileService] }) -export class DataManagementPlanProfileListingComponent implements OnInit { +export class DataManagementPlanProfileListingComponent extends BaseComponent implements OnInit { @ViewChild(MatPaginator) _paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; @@ -41,17 +43,19 @@ export class DataManagementPlanProfileListingComponent implements OnInit { public route: ActivatedRoute, public dataManagementPlanService: DataManagementPlanProfileService ) { - + super(); } ngOnInit() { - this.route.params.subscribe((params: Params) => { - this.dmpId = params['dmpId']; - this.criteria.setCriteria(this.getDefaultCriteria()); - this.refresh(); - this.criteria.setRefreshCallback(() => this.refresh()); - }); + this.route.params + .pipe(takeUntil(this._destroyed)) + .subscribe((params: Params) => { + this.dmpId = params['dmpId']; + this.criteria.setCriteria(this.getDefaultCriteria()); + this.refresh(); + this.criteria.setRefreshCallback(() => this.refresh()); + }); } refresh() { @@ -69,7 +73,7 @@ export class DataManagementPlanProfileListingComponent implements OnInit { // makeItPublic(id: String) { // debugger; - // this.datasetService.makeDatasetPublic(id).subscribe(); + // this.datasetService.makeDatasetPublic(id).pipe(takeUntil(this._destroyed)).subscribe(); // } } diff --git a/dmp-frontend/src/app/dmps/editor/dmp-editor.component.html b/dmp-frontend/src/app/dmps/editor/dmp-editor.component.html index 0750f5c9f..bbc13841d 100644 --- a/dmp-frontend/src/app/dmps/editor/dmp-editor.component.html +++ b/dmp-frontend/src/app/dmps/editor/dmp-editor.component.html @@ -53,15 +53,15 @@ - {{baseErrorModel.label}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{baseErrorModel.label}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} - {{errorModel.description}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{errorModel.description}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}}
diff --git a/dmp-frontend/src/app/dmps/editor/dmp-editor.component.ts b/dmp-frontend/src/app/dmps/editor/dmp-editor.component.ts index aa1255e4b..24b14756f 100644 --- a/dmp-frontend/src/app/dmps/editor/dmp-editor.component.ts +++ b/dmp-frontend/src/app/dmps/editor/dmp-editor.component.ts @@ -1,41 +1,39 @@ -import { Component, ViewChild, OnInit, AfterViewInit, ViewEncapsulation } from '@angular/core'; -import { MatPaginator, MatSort, MatSnackBar, MatDialog, MatChipList, MatChip } from '@angular/material'; -import { Router, ActivatedRoute, Params } from '@angular/router'; -import { TranslateService } from '@ngx-translate/core'; -import { DataSource } from '@angular/cdk/table'; -import { Observable } from 'rxjs'; -import { JsonSerializer } from '../../utilities/JsonSerializer'; -import { FormGroup, FormControl } from '@angular/forms'; -import { SnackBarNotificationComponent } from '../../shared/components/notificaiton/snack-bar-notification.component'; -import { BaseErrorModel } from '../../models/error/BaseErrorModel'; -import { DataManagementPlanService } from '../../services/data-management-plan/data-management-plan.service'; -import { DataManagementPlanModel, DataManagementPlanStatus } from '../../models/data-managemnt-plans/DataManagementPlanModel'; -import { ExternalSourcesService } from '../../services/external-sources/external-sources.service'; -import { ExternalSourcesItemModel } from '../../models/external-sources/ExternalSourcesItemModel'; -import { RequestItem } from '../../models/criteria/RequestItem'; -import { DataManagementPlanCriteriaComponent } from '../../shared/components/criteria/data-management-plan/dmp-criteria.component'; -import { DatasetProfileModel } from '../../models/datasets/DatasetProfileModel'; -import { ProjectCriteria } from '../../models/criteria/project/ProjectCriteria'; -import { ProjectService } from '../../services/project/project.service'; -import { DmpUsersModel } from '../../models/dmpUsers/DmpUsersModel'; -import { AddResearchersComponent } from '../../shared/components/add-researchers/add-researchers.component'; -import { ViewContainerRef } from '@angular/core'; +import { AfterViewInit, Component, ViewContainerRef, ViewEncapsulation } from '@angular/core'; +import { FormControl, FormGroup } from '@angular/forms'; +import { MatDialog, MatSnackBar } from '@angular/material'; +import { ActivatedRoute, Params, Router } from '@angular/router'; import { TdDialogService } from '@covalent/core'; -import { AvailableProfilesComponent } from '../../shared/components/available-profiles/available-profiles.component'; -import { BaseCriteria } from '../../models/criteria/BaseCriteria'; -import { DataManagementPlanProfileService } from '../../services/data-management-plan-profile/datamanagement-profile.service'; -import { DataManagementPlanProfileListingModel } from '../../models/data-management-plan-profile/DataManagementPlanProfileListingModel'; -import { DataManagementPlanProfileCriteria } from '../../models/criteria/dmp-profile/DataManagementPlanProfileCriteria'; -import { DataManagementPlanProfile } from '../../models/data-management-plan-profile/DataManagementPlanProfile'; -import { LanguageResolverService } from '../../services/language-resolver/language-resolver.service'; -import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; -import { BreadcrumbItem } from '../../shared/components/breadcrumb/definition/breadcrumb-item'; -import { SingleAutoCompleteConfiguration } from '../../shared/components/autocompletes/single/single-auto-complete-configuration'; -import { MultipleAutoCompleteConfiguration } from '../../shared/components/autocompletes/multiple/multiple-auto-complete-configuration'; +import { TranslateService } from '@ngx-translate/core'; import * as FileSaver from 'file-saver'; -import { DMPFinaliseDialogComponent } from './dmp-finalise-dialog/dmp-finalise-dialog.component'; -import { DatasetListingModel } from '../../models/datasets/DatasetListingModel'; +import { Observable } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../core/common/base/base.component'; +import { BaseCriteria } from '../../models/criteria/BaseCriteria'; import { DatasetProfileCriteria } from '../../models/criteria/dataset-profile/DatasetProfileCriteria'; +import { DataManagementPlanProfileCriteria } from '../../models/criteria/dmp-profile/DataManagementPlanProfileCriteria'; +import { ProjectCriteria } from '../../models/criteria/project/ProjectCriteria'; +import { RequestItem } from '../../models/criteria/RequestItem'; +import { DataManagementPlanProfileListingModel } from '../../models/data-management-plan-profile/DataManagementPlanProfileListingModel'; +import { DataManagementPlanModel, DataManagementPlanStatus } from '../../models/data-managemnt-plans/DataManagementPlanModel'; +import { DatasetListingModel } from '../../models/datasets/DatasetListingModel'; +import { DatasetProfileModel } from '../../models/datasets/DatasetProfileModel'; +import { DmpUsersModel } from '../../models/dmpUsers/DmpUsersModel'; +import { BaseErrorModel } from '../../models/error/BaseErrorModel'; +import { ExternalSourcesItemModel } from '../../models/external-sources/ExternalSourcesItemModel'; +import { DataManagementPlanProfileService } from '../../services/data-management-plan-profile/datamanagement-profile.service'; +import { DataManagementPlanService } from '../../services/data-management-plan/data-management-plan.service'; +import { ExternalSourcesService } from '../../services/external-sources/external-sources.service'; +import { LanguageResolverService } from '../../services/language-resolver/language-resolver.service'; +import { ProjectService } from '../../services/project/project.service'; +import { AddResearchersComponent } from '../../shared/components/add-researchers/add-researchers.component'; +import { MultipleAutoCompleteConfiguration } from '../../shared/components/autocompletes/multiple/multiple-auto-complete-configuration'; +import { SingleAutoCompleteConfiguration } from '../../shared/components/autocompletes/single/single-auto-complete-configuration'; +import { AvailableProfilesComponent } from '../../shared/components/available-profiles/available-profiles.component'; +import { BreadcrumbItem } from '../../shared/components/breadcrumb/definition/breadcrumb-item'; +import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; +import { SnackBarNotificationComponent } from '../../shared/components/notificaiton/snack-bar-notification.component'; +import { JsonSerializer } from '../../utilities/JsonSerializer'; +import { DMPFinaliseDialogComponent } from './dmp-finalise-dialog/dmp-finalise-dialog.component'; @Component({ selector: 'app-dmp-editor-component', @@ -43,7 +41,7 @@ import { DatasetProfileCriteria } from '../../models/criteria/dataset-profile/Da styleUrls: ['./dmp-editor.component.scss'], encapsulation: ViewEncapsulation.None }) -export class DataManagementPlanEditorComponent implements AfterViewInit, IBreadCrumbComponent { +export class DataManagementPlanEditorComponent extends BaseComponent implements AfterViewInit, IBreadCrumbComponent { editMode = true; @@ -84,62 +82,83 @@ export class DataManagementPlanEditorComponent implements AfterViewInit, IBreadC private _viewContainerRef: ViewContainerRef, private languageResolverService: LanguageResolverService ) { + super(); this.filteredOptions = dmpProfileService.getAll({ criteria: new DataManagementPlanProfileCriteria() }); } ngAfterViewInit() { - this.route.params.subscribe((params: Params) => { - const itemId = params['id']; + this.route.params + .pipe(takeUntil(this._destroyed)) + .subscribe((params: Params) => { + const itemId = params['id']; - const projectRequestItem: RequestItem = new RequestItem(); - projectRequestItem.criteria = new ProjectCriteria(); - const organisationRequestItem: RequestItem = new RequestItem(); - organisationRequestItem.criteria = new BaseCriteria(); + const projectRequestItem: RequestItem = new RequestItem(); + projectRequestItem.criteria = new ProjectCriteria(); + const organisationRequestItem: RequestItem = new RequestItem(); + organisationRequestItem.criteria = new BaseCriteria(); - this.projectAutoCompleteConfiguration = { - filterFn: this.searchProject.bind(this), - items: this.searchProject(''), - displayFn: (item) => item['label'], - titleFn: (item) => item['label'], - //mapFn: (item) => new JsonSerializer().fromJSONArray(item, ProjectReference).map(item => item.toDropdownList()), - loadDataOnStart: true - }; + this.projectAutoCompleteConfiguration = { + filterFn: this.searchProject.bind(this), + items: this.searchProject(''), + displayFn: (item) => item['label'], + titleFn: (item) => item['label'], + //mapFn: (item) => new JsonSerializer().fromJSONArray(item, ProjectReference).map(item => item.toDropdownList()), + loadDataOnStart: true + }; - this.profilesAutoCompleteConfiguration = { - filterFn: this.filterProfiles.bind(this), - initialItems: (excludedItems: any[]) => this.filterProfiles('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), - displayFn: (item) => item['label'], - titleFn: (item) => item['label'], - //mapFn: (item) => new JsonSerializer().fromJSONArray(item, ProjectReference).map(item => item.toDropdownList()), - loadDataOnStart: true - }; + this.profilesAutoCompleteConfiguration = { + filterFn: this.filterProfiles.bind(this), + initialItems: (excludedItems: any[]) => this.filterProfiles('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + displayFn: (item) => item['label'], + titleFn: (item) => item['label'], + //mapFn: (item) => new JsonSerializer().fromJSONArray(item, ProjectReference).map(item => item.toDropdownList()), + loadDataOnStart: true + }; - this.organisationsAutoCompleteConfiguration = { - filterFn: this.filterOrganisations.bind(this), - initialItems: (excludedItems: any[]) => this.filterOrganisations('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), - displayFn: (item) => item['name'], - titleFn: (item) => item['name'], - loadDataOnStart: true - }; + this.organisationsAutoCompleteConfiguration = { + filterFn: this.filterOrganisations.bind(this), + initialItems: (excludedItems: any[]) => this.filterOrganisations('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + displayFn: (item) => item['name'], + titleFn: (item) => item['name'], + loadDataOnStart: true + }; - this.researchersAutoCompleteConfiguration = { - filterFn: this.filterResearchers.bind(this), - initialItems: (excludedItems: any[]) => this.filterResearchers('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), - displayFn: (item) => item['name'], - titleFn: (item) => item['name'], - loadDataOnStart: true - }; + this.researchersAutoCompleteConfiguration = { + filterFn: this.filterResearchers.bind(this), + initialItems: (excludedItems: any[]) => this.filterResearchers('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + displayFn: (item) => item['name'], + titleFn: (item) => item['name'], + loadDataOnStart: true + }; - if (itemId != null) { - this.isNew = false; - this.dataManagementPlanService.getSingle(itemId).map(data => data as DataManagementPlanModel) - .subscribe(async data => { - this.dataManagementPlan = JsonSerializer.fromJSONObject(data, DataManagementPlanModel); + if (itemId != null) { + this.isNew = false; + this.dataManagementPlanService.getSingle(itemId).map(data => data as DataManagementPlanModel) + .pipe(takeUntil(this._destroyed)) + .subscribe(async data => { + this.dataManagementPlan = JsonSerializer.fromJSONObject(data, DataManagementPlanModel); + this.formGroup = this.dataManagementPlan.buildForm(); + this.editMode = this.dataManagementPlan.status !== 1; + if (!this.editMode) { this.formGroup.disable(); } + if (this.formGroup.get('profile') && this.formGroup.get('profile').value) { + this.textCtrl.patchValue(this.formGroup.get('profile').value); + } + this.breadCrumbs = Observable.of([ + { + parentComponentName: 'DataManagementPlanListingComponent', + label: 'DMPs', + url: 'dmps', + notFoundResolver: [await this.projectService.getSingle(this.dataManagementPlan.project.id).map(x => ({ label: x.label, url: '/projects/edit/' + x.id }) as BreadcrumbItem).toPromise()] + }] + ); + this.associatedUsers = data.associatedUsers; + }); + } else { + this.dataManagementPlan = new DataManagementPlanModel(); + setTimeout(async () => { this.formGroup = this.dataManagementPlan.buildForm(); - this.editMode = this.dataManagementPlan.status !== 1; - if (!this.editMode) { this.formGroup.disable(); } if (this.formGroup.get('profile') && this.formGroup.get('profile').value) { this.textCtrl.patchValue(this.formGroup.get('profile').value); } @@ -148,31 +167,15 @@ export class DataManagementPlanEditorComponent implements AfterViewInit, IBreadC parentComponentName: 'DataManagementPlanListingComponent', label: 'DMPs', url: 'dmps', - notFoundResolver: [await this.projectService.getSingle(this.dataManagementPlan.project.id).map(x => ({ label: x.label, url: '/projects/edit/' + x.id }) as BreadcrumbItem).toPromise()] - }] - ); - this.associatedUsers = data.associatedUsers; + } + ]); }); - } else { - this.dataManagementPlan = new DataManagementPlanModel(); - setTimeout(async () => { - this.formGroup = this.dataManagementPlan.buildForm(); - if (this.formGroup.get('profile') && this.formGroup.get('profile').value) { - this.textCtrl.patchValue(this.formGroup.get('profile').value); - } - this.breadCrumbs = Observable.of([ - { - parentComponentName: 'DataManagementPlanListingComponent', - label: 'DMPs', - url: 'dmps', - } - ]); - }); - } + } - }); + }); this.route .queryParams + .pipe(takeUntil(this._destroyed)) .subscribe(params => { this.createNewVersion = params['clone']; }); @@ -196,10 +199,12 @@ export class DataManagementPlanEditorComponent implements AfterViewInit, IBreadC } onSubmit(): void { - this.dataManagementPlanService.createDataManagementPlan(this.formGroup.value).subscribe( - complete => this.onCallbackSuccess(), - error => this.onCallbackError(error) - ); + this.dataManagementPlanService.createDataManagementPlan(this.formGroup.value) + .pipe(takeUntil(this._destroyed)) + .subscribe( + complete => this.onCallbackSuccess(), + error => this.onCallbackError(error) + ); } onCallbackSuccess(): void { @@ -289,24 +294,30 @@ export class DataManagementPlanEditorComponent implements AfterViewInit, IBreadC title: 'Confirm', cancelButton: 'No', acceptButton: 'Yes' - }).afterClosed().subscribe((accept: boolean) => { - if (accept) { - this.dataManagementPlanService.delete(id).subscribe(() => { - this.router.navigate(['/dmps']); - }); - } else { - // DO SOMETHING ELSE - } - }); + }).afterClosed() + .pipe(takeUntil(this._destroyed)) + .subscribe((accept: boolean) => { + if (accept) { + this.dataManagementPlanService.delete(id) + .pipe(takeUntil(this._destroyed)) + .subscribe(() => { + this.router.navigate(['/dmps']); + }); + } else { + // DO SOMETHING ELSE + } + }); } selectOption(option: any) { this.dataManagementPlan.definition = null; this.formGroup.get('profile').patchValue(option, { emitEvent: false }); - this.dmpProfileService.getSingle(option.id).subscribe(result => { - this.dataManagementPlan.definition = result.definition; - }); + this.dmpProfileService.getSingle(option.id) + .pipe(takeUntil(this._destroyed)) + .subscribe(result => { + this.dataManagementPlan.definition = result.definition; + }); } displayWith(item: any) { @@ -335,30 +346,36 @@ export class DataManagementPlanEditorComponent implements AfterViewInit, IBreadC } downloadXml(id: string) { - this.dataManagementPlanService.downloadXML(id).subscribe(response => { - const blob = new Blob([response.body], { type: 'application/xml' }); - const filename = this.getFilenameFromContentDispositionHeader(response.headers.get('Content-Disposition')); + this.dataManagementPlanService.downloadXML(id) + .pipe(takeUntil(this._destroyed)) + .subscribe(response => { + const blob = new Blob([response.body], { type: 'application/xml' }); + const filename = this.getFilenameFromContentDispositionHeader(response.headers.get('Content-Disposition')); - FileSaver.saveAs(blob, filename); - }); + FileSaver.saveAs(blob, filename); + }); } downloadDocx(id: string) { - this.dataManagementPlanService.downloadDocx(id).subscribe(response => { - const blob = new Blob([response.body], { type: 'application/octet-stream' }); - const filename = this.getFilenameFromContentDispositionHeader(response.headers.get('Content-Disposition')); + this.dataManagementPlanService.downloadDocx(id) + .pipe(takeUntil(this._destroyed)) + .subscribe(response => { + const blob = new Blob([response.body], { type: 'application/octet-stream' }); + const filename = this.getFilenameFromContentDispositionHeader(response.headers.get('Content-Disposition')); - FileSaver.saveAs(blob, filename); - }); + FileSaver.saveAs(blob, filename); + }); } downloadPDF(id: string) { - this.dataManagementPlanService.downloadPDF(id).subscribe(response => { - const blob = new Blob([response.body], { type: 'application/octet-stream' }); - const filename = this.getFilenameFromContentDispositionHeader(response.headers.get('Content-Disposition')); + this.dataManagementPlanService.downloadPDF(id) + .pipe(takeUntil(this._destroyed)) + .subscribe(response => { + const blob = new Blob([response.body], { type: 'application/octet-stream' }); + const filename = this.getFilenameFromContentDispositionHeader(response.headers.get('Content-Disposition')); - FileSaver.saveAs(blob, filename); - }); + FileSaver.saveAs(blob, filename); + }); } getFilenameFromContentDispositionHeader(header: string): string { @@ -384,11 +401,13 @@ export class DataManagementPlanEditorComponent implements AfterViewInit, IBreadC this.editMode = true; this.formGroup.enable(); } else { - this.dataManagementPlanService.unlock(this.formGroup.get('id').value).subscribe(x => { - this.editMode = true; - this.formGroup.get('status').patchValue(DataManagementPlanStatus.Draft); - this.formGroup.enable(); - }); + this.dataManagementPlanService.unlock(this.formGroup.get('id').value) + .pipe(takeUntil(this._destroyed)) + .subscribe(x => { + this.editMode = true; + this.formGroup.get('status').patchValue(DataManagementPlanStatus.Draft); + this.formGroup.enable(); + }); } } diff --git a/dmp-frontend/src/app/dmps/editor/dmp-finalise-dialog/dmp-finalise-dialog.component.ts b/dmp-frontend/src/app/dmps/editor/dmp-finalise-dialog/dmp-finalise-dialog.component.ts index 0129f987e..62772d962 100644 --- a/dmp-frontend/src/app/dmps/editor/dmp-finalise-dialog/dmp-finalise-dialog.component.ts +++ b/dmp-frontend/src/app/dmps/editor/dmp-finalise-dialog/dmp-finalise-dialog.component.ts @@ -1,23 +1,22 @@ -import { Component, OnInit, Inject, ViewChild } from '@angular/core'; -import { FormGroup, FormBuilder, Validators, AbstractControl, FormControl, FormArray } from '@angular/forms'; -import { ActivatedRoute, Router } from '@angular/router'; -import { AuthService } from '../../../services/auth/auth.service'; -import { MatDialogRef, MAT_DIALOG_DATA, MatSelectionList } from '@angular/material'; -import { DataManagementPlanModel } from '../../../models/data-managemnt-plans/DataManagementPlanModel'; -import { DataManagementPlanService } from '../../../services/data-management-plan/data-management-plan.service'; -import { DatasetListingModel } from '../../../models/datasets/DatasetListingModel'; -import { DatasetService } from '../../../services/dataset/dataset.service'; -import { DataTableRequest } from '../../../models/data-table/DataTableRequest'; +import { Component, Inject, OnInit, ViewChild } from '@angular/core'; +import { AbstractControl, FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms'; +import { MatDialogRef, MatSelectionList, MAT_DIALOG_DATA } from '@angular/material'; +import { Router } from '@angular/router'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; import { DatasetCriteria } from '../../../models/criteria/dataset/DatasetCriteria'; +import { DataManagementPlanModel } from '../../../models/data-managemnt-plans/DataManagementPlanModel'; +import { DataTableRequest } from '../../../models/data-table/DataTableRequest'; +import { DatasetListingModel } from '../../../models/datasets/DatasetListingModel'; import { DatasetStatus } from '../../../models/datasets/DatasetWizardModel'; -import { Observable } from 'rxjs'; +import { DatasetService } from '../../../services/dataset/dataset.service'; @Component({ selector: 'app-dmp-finalise-dialog-component', templateUrl: 'dmp-finalise-dialog.component.html', }) -export class DMPFinaliseDialogComponent implements OnInit { +export class DMPFinaliseDialogComponent extends BaseComponent implements OnInit { @ViewChild('datasetsDraftSelectionList') selectionList: MatSelectionList; public formGroup: FormGroup; @@ -31,6 +30,7 @@ export class DMPFinaliseDialogComponent implements OnInit { public dmpService: DatasetService, @Inject(MAT_DIALOG_DATA) public data: any ) { + super(); this.submitFunction = data['submitFunction']; this.dmp = data['dmp']; } @@ -45,10 +45,12 @@ export class DMPFinaliseDialogComponent implements OnInit { request.criteria = new DatasetCriteria(); request.criteria.dmpIds = [this.dmp.id]; request.criteria.status = DatasetStatus.Finalised; - this.dmpService.getPaged(request).map(x => x.data).subscribe(result => { - this.datasetsFinalised = result; - this.createFormGroup(); - }); + this.dmpService.getPaged(request).map(x => x.data) + .pipe(takeUntil(this._destroyed)) + .subscribe(result => { + this.datasetsFinalised = result; + this.createFormGroup(); + }); } @@ -57,9 +59,11 @@ export class DMPFinaliseDialogComponent implements OnInit { request.criteria = new DatasetCriteria(); request.criteria.dmpIds = [this.dmp.id]; request.criteria.status = DatasetStatus.Draft; - this.dmpService.getPaged(request).map(x => x.data).subscribe(result => { - this.datasetsDraft = result; - }); + this.dmpService.getPaged(request).map(x => x.data) + .pipe(takeUntil(this._destroyed)) + .subscribe(result => { + this.datasetsDraft = result; + }); } createFormGroup() { diff --git a/dmp-frontend/src/app/dmps/listing/dmp-listing.component.ts b/dmp-frontend/src/app/dmps/listing/dmp-listing.component.ts index d6b03db98..de2fbb0fa 100644 --- a/dmp-frontend/src/app/dmps/listing/dmp-listing.component.ts +++ b/dmp-frontend/src/app/dmps/listing/dmp-listing.component.ts @@ -1,36 +1,30 @@ -import { DataTableRequest } from '../../models/data-table/DataTableRequest'; -import { DataManagementPlanListingModel } from '../../models/data-managemnt-plans/DataManagementPlanListingModel'; -import { InvitationComponent } from '../../shared/components/invitation/invitation.component'; -import { DataManagementPlanCriteria } from '../../models/criteria/data-management-plan/DataManagementPlanCriteria'; -import { - DataManagementPlanCriteriaComponent, -} from '../../shared/components/criteria/data-management-plan/dmp-criteria.component'; -import { DataManagementPlanService } from '../../services/data-management-plan/data-management-plan.service'; -import { Component, ViewChild, OnInit, AfterViewInit } from '@angular/core'; -import { MatPaginator, MatSort, MatSnackBar, MatDialog } from '@angular/material'; -import { Router, ActivatedRoute, ActivatedRouteSnapshot } from '@angular/router'; -import { TranslateService } from '@ngx-translate/core'; import { DataSource } from '@angular/cdk/table'; +import { Component, OnInit, ViewChild } from '@angular/core'; +import { MatDialog, MatPaginator, MatSnackBar, MatSort } from '@angular/material'; +import { ActivatedRoute, Router } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; import { Observable } from 'rxjs'; -import { DataManagementPlanRoutes } from '../../dmps/dmps.routes'; -import { DatasetRoutes } from '../../datasets/dataset.routes'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../core/common/base/base.component'; +import { DataManagementPlanCriteria } from '../../models/criteria/data-management-plan/DataManagementPlanCriteria'; +import { DataManagementPlanListingModel } from '../../models/data-managemnt-plans/DataManagementPlanListingModel'; +import { DataTableRequest } from '../../models/data-table/DataTableRequest'; import { ProjectModel } from '../../models/projects/ProjectModel'; -import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; +import { DataManagementPlanService } from '../../services/data-management-plan/data-management-plan.service'; import { BreadcrumbItem } from '../../shared/components/breadcrumb/definition/breadcrumb-item'; +import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; +import { DataManagementPlanCriteriaComponent } from '../../shared/components/criteria/data-management-plan/dmp-criteria.component'; +import { InvitationComponent } from '../../shared/components/invitation/invitation.component'; import { JsonSerializer } from '../../utilities/JsonSerializer'; import { Utilities } from '../../utilities/utilities'; - - @Component({ selector: 'app-dmp-listing-component', templateUrl: 'dmp-listing.component.html', styleUrls: ['./dmp-listing.component.scss'], providers: [Utilities] }) -export class DataManagementPlanListingComponent implements OnInit, IBreadCrumbComponent { - - +export class DataManagementPlanListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent { @ViewChild(MatPaginator) _paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; @@ -52,47 +46,49 @@ export class DataManagementPlanListingComponent implements OnInit, IBreadCrumbCo public dialog: MatDialog, public utilities: Utilities ) { - + super(); } ngOnInit() { - this.route.params.subscribe(async params => { - let projectLabel; - if (params['projectId']) { - this.projectId = params['projectId']; - this.showProject = false; - const project = new ProjectModel(); - project.id = this.projectId; - this.criteria.setCriteria({ like: null, projects: [project], groupIds: null, allVersions: false }); - this.refresh(); - projectLabel = this.route.snapshot.queryParams.projectLabel; - this.breadCrumbs = Observable.of([{ parentComponentName: 'ProjectEditorComponent', label: projectLabel, url: '/projects/edit/' + this.projectId }]); - this.criteria.setRefreshCallback(() => this.refresh()); - } else { - this.itemId = params['groupId']; - this.showProject = true; - const breadCrumbs = []; + this.route.params + .pipe(takeUntil(this._destroyed)) + .subscribe(async params => { + let projectLabel; + if (params['projectId']) { + this.projectId = params['projectId']; + this.showProject = false; + const project = new ProjectModel(); + project.id = this.projectId; + this.criteria.setCriteria({ like: null, projects: [project], groupIds: null, allVersions: false }); + this.refresh(); + projectLabel = this.route.snapshot.queryParams.projectLabel; + this.breadCrumbs = Observable.of([{ parentComponentName: 'ProjectEditorComponent', label: projectLabel, url: '/projects/edit/' + this.projectId }]); + this.criteria.setRefreshCallback(() => this.refresh()); + } else { + this.itemId = params['groupId']; + this.showProject = true; + const breadCrumbs = []; - if (this.itemId) { - const dmplabel = this.route.snapshot.queryParams.groupLabel; - breadCrumbs.push( - { parentComponentName: null, label: 'DMPs', url: '/dmps' }, - ); + if (this.itemId) { + const dmplabel = this.route.snapshot.queryParams.groupLabel; + breadCrumbs.push( + { parentComponentName: null, label: 'DMPs', url: '/dmps' }, + ); + } + //else breadCrumbs.push({ parentComponentName: null, label: 'DMPs', url: "/dmps" }) + this.breadCrumbs = Observable.of(breadCrumbs); + + this.criteria.setCriteria(this.getDefaultCriteria()); + this.refresh(); + this.criteria.setRefreshCallback(() => this.refresh()); } - //else breadCrumbs.push({ parentComponentName: null, label: 'DMPs', url: "/dmps" }) - this.breadCrumbs = Observable.of(breadCrumbs); - this.criteria.setCriteria(this.getDefaultCriteria()); - this.refresh(); - this.criteria.setRefreshCallback(() => this.refresh()); - } - - if (this.projectId != null) { - if (projectLabel !== undefined) { - this.titlePrefix = 'for ' + projectLabel; + if (this.projectId != null) { + if (projectLabel !== undefined) { + this.titlePrefix = 'for ' + projectLabel; + } } - } - }); + }); } diff --git a/dmp-frontend/src/app/dmps/wizard/dmp-wizard.component.ts b/dmp-frontend/src/app/dmps/wizard/dmp-wizard.component.ts index 372935278..ba0dc9fea 100644 --- a/dmp-frontend/src/app/dmps/wizard/dmp-wizard.component.ts +++ b/dmp-frontend/src/app/dmps/wizard/dmp-wizard.component.ts @@ -1,22 +1,25 @@ -import { BaseErrorModel } from '../../models/error/BaseErrorModel'; -import { SnackBarNotificationComponent } from '../../shared/components/notificaiton/snack-bar-notification.component'; -import { JsonSerializer } from '../../utilities/JsonSerializer'; -import { DataManagementPlanModel } from '../../models/data-managemnt-plans/DataManagementPlanModel'; -import { DataManagementPlanService } from '../../services/data-management-plan/data-management-plan.service'; import { Component, OnInit } from '@angular/core'; -import { ActivatedRoute, Params, Router } from '@angular/router'; import { FormGroup } from '@angular/forms'; import { MatSnackBar } from '@angular/material'; +import { ActivatedRoute, Params, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; -import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; import { Observable } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../core/common/base/base.component'; +import { DataManagementPlanModel } from '../../models/data-managemnt-plans/DataManagementPlanModel'; +import { BaseErrorModel } from '../../models/error/BaseErrorModel'; +import { DataManagementPlanService } from '../../services/data-management-plan/data-management-plan.service'; import { BreadcrumbItem } from '../../shared/components/breadcrumb/definition/breadcrumb-item'; +import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; +import { SnackBarNotificationComponent } from '../../shared/components/notificaiton/snack-bar-notification.component'; +import { JsonSerializer } from '../../utilities/JsonSerializer'; + @Component({ selector: 'app-dmp-wizard-component', templateUrl: 'dmp-wizard.component.html', styleUrls: ['./dmp-wizard.component.scss'], }) -export class DataManagementPlanWizardComponent implements OnInit, IBreadCrumbComponent { +export class DataManagementPlanWizardComponent extends BaseComponent implements OnInit, IBreadCrumbComponent { breadCrumbs: Observable; constructor( private dataManagementPlanService: DataManagementPlanService, @@ -24,7 +27,7 @@ export class DataManagementPlanWizardComponent implements OnInit, IBreadCrumbCom public snackBar: MatSnackBar, public route: ActivatedRoute, private router: Router - ) { } + ) { super(); } public itemId: string; public dataManagementPlan: DataManagementPlanModel; @@ -33,30 +36,37 @@ export class DataManagementPlanWizardComponent implements OnInit, IBreadCrumbCom ngOnInit(): void { - this.route.params.subscribe((params: Params) => { - this.itemId = params['id']; - this.dataManagementPlanService.getSingle(this.itemId).map(data => data as DataManagementPlanModel) - .subscribe(data => { - this.dataManagementPlan = JsonSerializer.fromJSONObject(data, DataManagementPlanModel); - this.isClone = this.route.snapshot.data.clone; - if (this.isClone === false) { this.dataManagementPlan.version = this.dataManagementPlan.version + 1; } - this.formGroup = this.dataManagementPlan.buildForm(); - }); - }); + this.route.params + .pipe(takeUntil(this._destroyed)) + .subscribe((params: Params) => { + this.itemId = params['id']; + this.dataManagementPlanService.getSingle(this.itemId).map(data => data as DataManagementPlanModel) + .pipe(takeUntil(this._destroyed)) + .subscribe(data => { + this.dataManagementPlan = JsonSerializer.fromJSONObject(data, DataManagementPlanModel); + this.isClone = this.route.snapshot.data.clone; + if (this.isClone === false) { this.dataManagementPlan.version = this.dataManagementPlan.version + 1; } + this.formGroup = this.dataManagementPlan.buildForm(); + }); + }); } submit() { if (this.isClone) { - this.dataManagementPlanService.clone(this.formGroup.getRawValue(), this.itemId).subscribe( - complete => this.onCallbackSuccess(), - error => this.onCallbackError(error) - ); + this.dataManagementPlanService.clone(this.formGroup.getRawValue(), this.itemId) + .pipe(takeUntil(this._destroyed)) + .subscribe( + complete => this.onCallbackSuccess(), + error => this.onCallbackError(error) + ); } else { - this.dataManagementPlanService.newVersion(this.formGroup.getRawValue(), this.itemId).subscribe( - complete => this.onCallbackSuccess(), - error => this.onCallbackError(error) - ); + this.dataManagementPlanService.newVersion(this.formGroup.getRawValue(), this.itemId) + .pipe(takeUntil(this._destroyed)) + .subscribe( + complete => this.onCallbackSuccess(), + error => this.onCallbackError(error) + ); } } diff --git a/dmp-frontend/src/app/dmps/wizard/editor/dmp-wizard-editor.component.html b/dmp-frontend/src/app/dmps/wizard/editor/dmp-wizard-editor.component.html index 251a97d99..29120353d 100644 --- a/dmp-frontend/src/app/dmps/wizard/editor/dmp-wizard-editor.component.html +++ b/dmp-frontend/src/app/dmps/wizard/editor/dmp-wizard-editor.component.html @@ -5,15 +5,15 @@ - {{baseErrorModel.label}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{baseErrorModel.label}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} - {{errorModel.description}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{errorModel.description}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}}
diff --git a/dmp-frontend/src/app/dmps/wizard/editor/dmp-wizard-editor.component.ts b/dmp-frontend/src/app/dmps/wizard/editor/dmp-wizard-editor.component.ts index f85298708..23bfd1bd4 100644 --- a/dmp-frontend/src/app/dmps/wizard/editor/dmp-wizard-editor.component.ts +++ b/dmp-frontend/src/app/dmps/wizard/editor/dmp-wizard-editor.component.ts @@ -1,28 +1,26 @@ -import { DatasetProfileModel } from '../../../models/datasets/DatasetProfileModel'; -import { BaseErrorModel } from '../../../models/error/BaseErrorModel'; -import { SnackBarNotificationComponent } from '../../../shared/components/notificaiton/snack-bar-notification.component'; -import { JsonSerializer } from '../../../utilities/JsonSerializer'; -import { RequestItem } from '../../../models/criteria/RequestItem'; -import { ProjectCriteria } from '../../../models/criteria/project/ProjectCriteria'; -import { DmpUsersModel } from '../../../models/dmpUsers/DmpUsersModel'; -import { ExternalSourcesItemModel } from '../../../models/external-sources/ExternalSourcesItemModel'; -import { DataManagementPlanModel } from '../../../models/data-managemnt-plans/DataManagementPlanModel'; -import { ProjectService } from '../../../services/project/project.service'; -import { ExternalSourcesService } from '../../../services/external-sources/external-sources.service'; -import { DataManagementPlanService } from '../../../services/data-management-plan/data-management-plan.service'; -import { Component, ViewChild, OnInit, AfterViewInit, ViewEncapsulation, Input } from '@angular/core'; -import { MatPaginator, MatSort, MatSnackBar } from '@angular/material'; -import { Router, ActivatedRoute, Params } from '@angular/router'; -import { TranslateService } from '@ngx-translate/core'; -import { DataSource } from '@angular/cdk/table'; -import { Observable } from 'rxjs'; +import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core'; import { FormGroup } from '@angular/forms'; +import { MatSnackBar } from '@angular/material'; +import { ActivatedRoute, Router } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; +import { Observable } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; import { BaseCriteria } from '../../../models/criteria/BaseCriteria'; -import { SingleAutoCompleteConfiguration } from '../../../shared/components/autocompletes/single/single-auto-complete-configuration'; -import { LanguageResolverService } from '../../../services/language-resolver/language-resolver.service'; -import { MultipleAutoCompleteConfiguration } from '../../../shared/components/autocompletes/multiple/multiple-auto-complete-configuration'; import { DatasetProfileCriteria } from '../../../models/criteria/dataset-profile/DatasetProfileCriteria'; - +import { ProjectCriteria } from '../../../models/criteria/project/ProjectCriteria'; +import { RequestItem } from '../../../models/criteria/RequestItem'; +import { DatasetProfileModel } from '../../../models/datasets/DatasetProfileModel'; +import { DmpUsersModel } from '../../../models/dmpUsers/DmpUsersModel'; +import { BaseErrorModel } from '../../../models/error/BaseErrorModel'; +import { ExternalSourcesItemModel } from '../../../models/external-sources/ExternalSourcesItemModel'; +import { DataManagementPlanService } from '../../../services/data-management-plan/data-management-plan.service'; +import { ExternalSourcesService } from '../../../services/external-sources/external-sources.service'; +import { LanguageResolverService } from '../../../services/language-resolver/language-resolver.service'; +import { ProjectService } from '../../../services/project/project.service'; +import { MultipleAutoCompleteConfiguration } from '../../../shared/components/autocompletes/multiple/multiple-auto-complete-configuration'; +import { SingleAutoCompleteConfiguration } from '../../../shared/components/autocompletes/single/single-auto-complete-configuration'; +import { SnackBarNotificationComponent } from '../../../shared/components/notificaiton/snack-bar-notification.component'; @Component({ selector: 'app-dmp-wizard-editor-component', @@ -30,7 +28,7 @@ import { DatasetProfileCriteria } from '../../../models/criteria/dataset-profile styleUrls: ['./dmp-wizard-editor.component.scss'], encapsulation: ViewEncapsulation.None }) -export class DataManagementPlanWizardEditorComponent implements OnInit { +export class DataManagementPlanWizardEditorComponent extends BaseComponent implements OnInit { isNew = true; @@ -62,7 +60,7 @@ export class DataManagementPlanWizardEditorComponent implements OnInit { private _service: DataManagementPlanService, private languageResolverService: LanguageResolverService ) { - + super(); } ngOnInit() { @@ -106,12 +104,14 @@ export class DataManagementPlanWizardEditorComponent implements OnInit { const organisationRequestItem: RequestItem = new RequestItem(); organisationRequestItem.criteria = new BaseCriteria(); - this.route.data.subscribe(value => { - if (value.clone === false && this.formGroup.get('label').value) { - this.labelDisabled = true; - } - this.formGroup.controls['version'].disable(); - }); + this.route.data + .pipe(takeUntil(this._destroyed)) + .subscribe(value => { + if (value.clone === false && this.formGroup.get('label').value) { + this.labelDisabled = true; + } + this.formGroup.controls['version'].disable(); + }); } searchProject(query: string) { @@ -132,10 +132,12 @@ export class DataManagementPlanWizardEditorComponent implements OnInit { } onSubmit(): void { - this.dataManagementPlanService.createDataManagementPlan(this.formGroup.getRawValue()).subscribe( - complete => this.onCallbackSuccess(), - error => this.onCallbackError(error) - ); + this.dataManagementPlanService.createDataManagementPlan(this.formGroup.getRawValue()) + .pipe(takeUntil(this._destroyed)) + .subscribe( + complete => this.onCallbackSuccess(), + error => this.onCallbackError(error) + ); } onCallbackSuccess(): void { diff --git a/dmp-frontend/src/app/dmps/wizard/listing/dataset-wizard-listing.component.ts b/dmp-frontend/src/app/dmps/wizard/listing/dataset-wizard-listing.component.ts index 877fc4d44..81d670480 100644 --- a/dmp-frontend/src/app/dmps/wizard/listing/dataset-wizard-listing.component.ts +++ b/dmp-frontend/src/app/dmps/wizard/listing/dataset-wizard-listing.component.ts @@ -1,29 +1,25 @@ -import { DataTableData } from '../../../models/data-table/DataTableData'; -import { JsonSerializer } from '../../../utilities/JsonSerializer'; +import { SelectionModel } from '@angular/cdk/collections'; +import { Component, Input, OnInit, ViewChild } from '@angular/core'; +import { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms'; +import { MatPaginator, MatSnackBar, MatSort } from '@angular/material'; +import { ActivatedRoute, Params, Router } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; +import { DatasetCriteria } from '../../../models/criteria/dataset/DatasetCriteria'; import { DataTableRequest } from '../../../models/data-table/DataTableRequest'; import { DatasetListingModel } from '../../../models/datasets/DatasetListingModel'; -import { DatasetCriteria } from '../../../models/criteria/dataset/DatasetCriteria'; -import { DataManagementPlanModel } from '../../../models/data-managemnt-plans/DataManagementPlanModel'; -import { DatasetCriteriaComponent } from '../../../shared/components/criteria/datasets/datasets-criteria.component'; import { DataManagementPlanService } from '../../../services/data-management-plan/data-management-plan.service'; import { DatasetService } from '../../../services/dataset/dataset.service'; -import { Component, ViewChild, OnInit, AfterViewInit, Input } from '@angular/core'; -import { MatPaginator, MatSort, MatSnackBar } from '@angular/material'; -import { Router, Params, ActivatedRoute } from '@angular/router'; -import { TranslateService } from '@ngx-translate/core'; -import { DataSource } from '@angular/cdk/table'; -import { FormGroup, FormBuilder, FormControl, FormArray } from '@angular/forms'; -import { Observable } from 'rxjs'; -import { PageEvent } from '@angular/material'; -import { SelectionModel } from '@angular/cdk/collections'; - +import { DatasetCriteriaComponent } from '../../../shared/components/criteria/datasets/datasets-criteria.component'; +import { JsonSerializer } from '../../../utilities/JsonSerializer'; @Component({ selector: 'app-dataset-wizard-listing-component', templateUrl: 'dataset-wizard-listing.component.html', styleUrls: ['./dataset-wizard-listing.component.scss'], }) -export class DatasetWizardListingComponent implements OnInit { +export class DatasetWizardListingComponent extends BaseComponent implements OnInit { @ViewChild(MatPaginator) _paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; @@ -50,24 +46,28 @@ export class DatasetWizardListingComponent implements OnInit { public route: ActivatedRoute, public dataManagementPlanService: DataManagementPlanService ) { - + super(); } ngOnInit() { - this.route.params.subscribe((params: Params) => { - if (this.dmpId != null) { - if (params['dmpLabel'] !== undefined) { - this.titlePrefix = 'for ' + params['dmpLabel']; + this.route.params + .pipe(takeUntil(this._destroyed)) + .subscribe((params: Params) => { + if (this.dmpId != null) { + if (params['dmpLabel'] !== undefined) { + this.titlePrefix = 'for ' + params['dmpLabel']; + } } - } - }); + }); const request: DataTableRequest = new DataTableRequest(null, null, null); request.criteria = new DatasetCriteria(); request.criteria.dmpIds = [this.dmpId]; - this.datasetService.getPaged(request).subscribe(items => { - this.datasets = JsonSerializer.fromJSONArray(items.data, DatasetListingModel); - }); + this.datasetService.getPaged(request) + .pipe(takeUntil(this._destroyed)) + .subscribe(items => { + this.datasets = JsonSerializer.fromJSONArray(items.data, DatasetListingModel); + }); this.formGroup.addControl('datasets', new FormBuilder().array(new Array())); } @@ -78,5 +78,4 @@ export class DatasetWizardListingComponent implements OnInit { (this.formGroup.get('datasets')).push(new FormBuilder().group({ id: element.value })); }); } - } diff --git a/dmp-frontend/src/app/form/dynamic-fields/dynamic-field-dropdown/dynamic-field-dropdown.html b/dmp-frontend/src/app/form/dynamic-fields/dynamic-field-dropdown/dynamic-field-dropdown.html index 77a558544..7d1237fae 100644 --- a/dmp-frontend/src/app/form/dynamic-fields/dynamic-field-dropdown/dynamic-field-dropdown.html +++ b/dmp-frontend/src/app/form/dynamic-fields/dynamic-field-dropdown/dynamic-field-dropdown.html @@ -3,7 +3,7 @@ {{opt.label}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}}
diff --git a/dmp-frontend/src/app/form/dynamic-fields/dynamic-form-field.component.ts b/dmp-frontend/src/app/form/dynamic-fields/dynamic-form-field.component.ts index 730bd5f89..5e74a4658 100644 --- a/dmp-frontend/src/app/form/dynamic-fields/dynamic-form-field.component.ts +++ b/dmp-frontend/src/app/form/dynamic-fields/dynamic-form-field.component.ts @@ -1,10 +1,11 @@ -import { Field } from '../../models/Field'; -import { Component, Input, OnInit, ViewEncapsulation, ChangeDetectionStrategy, OnChanges, OnDestroy } from '@angular/core'; -import { FormGroup, ValidatorFn, AbstractControl, Validators } from '@angular/forms'; +import { Component, Input, OnChanges, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; +import { FormGroup } from '@angular/forms'; import { ActivatedRoute } from '@angular/router'; -import { VisibilityRulesService } from '../../utilities/visibility-rules/visibility-rules.service'; import { Subscription } from 'rxjs'; - +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../core/common/base/base.component'; +import { Field } from '../../models/Field'; +import { VisibilityRulesService } from '../../utilities/visibility-rules/visibility-rules.service'; @Component({ selector: 'app-df-field', @@ -15,24 +16,28 @@ import { Subscription } from 'rxjs'; ], encapsulation: ViewEncapsulation.None }) - -export class DynamicFormFieldComponent implements OnInit, OnChanges, OnDestroy { +export class DynamicFormFieldComponent extends BaseComponent implements OnInit, OnChanges, OnDestroy { @Input() field: Field; form: FormGroup; change: Subscription; trackByFn = (index, item) => item ? item['id'] : null; - constructor(private route: ActivatedRoute, public visibilityRulesService: VisibilityRulesService) { - + constructor( + private route: ActivatedRoute, + public visibilityRulesService: VisibilityRulesService + ) { + super(); } ngOnInit() { if (this.field) { this.form = this.visibilityRulesService.getFormGroup(this.field.id); - this.change = this.form.get('value').valueChanges.subscribe(item => { - this.visibilityRulesService.updateValueAndVisibility(this.field.id); - }); + this.change = this.form.get('value').valueChanges + .pipe(takeUntil(this._destroyed)) + .subscribe(item => { + this.visibilityRulesService.updateValueAndVisibility(this.field.id); + }); } } diff --git a/dmp-frontend/src/app/form/dynamic-form/dynamic-form.component.ts b/dmp-frontend/src/app/form/dynamic-form/dynamic-form.component.ts index 0d97302b0..c0ef6360a 100644 --- a/dmp-frontend/src/app/form/dynamic-form/dynamic-form.component.ts +++ b/dmp-frontend/src/app/form/dynamic-form/dynamic-form.component.ts @@ -1,22 +1,20 @@ -import { Section } from '../../models/Section'; -import { JsonSerializer } from '../../utilities/JsonSerializer'; -import { Rule } from '../../models/Rule'; -import { DatasetWizardService } from '../../services/dataset-wizard/dataset-wizard.service'; -import { BaseHttpService } from '../../utilities/cite-http-service-module/base-http.service'; -import { VisibilityRulesService } from '../../utilities/visibility-rules/visibility-rules.service'; +import { AfterViewInit, Component, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { MatStepper } from '@angular/material'; +import { ActivatedRoute, Router } from '@angular/router'; +import 'rxjs/add/operator/switchMap'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../core/common/base/base.component'; +import { CompositeField } from '../../models/CompositeField'; import { DatasetProfileDefinitionModel } from '../../models/DatasetProfileDefinitionModel'; import { DatasetWizardModel } from '../../models/datasets/DatasetWizardModel'; -import { Component, Input, OnInit, ViewEncapsulation, AfterViewInit, ViewChild } from '@angular/core'; -import { FormGroup } from '@angular/forms'; -import { Router, ActivatedRoute } from '@angular/router'; -import 'rxjs/add/operator/switchMap'; -import '../../utilities/enhancers/flatJoinOn'; -import { Location } from '@angular/common'; -import { MarkForConsiderationService } from '../../utilities/mark-for-considerations/mark-for-consideration.service'; -import { FormFocusService } from '../../utilities/form-focus-service/form-focus.service'; -import { CompositeField } from '../../models/CompositeField'; import { Pair } from '../../models/helpers/Pair'; -import { MatStepper } from '@angular/material'; +import { Rule } from '../../models/Rule'; +import { Section } from '../../models/Section'; +import '../../utilities/enhancers/flatJoinOn'; +import { FormFocusService } from '../../utilities/form-focus-service/form-focus.service'; +import { JsonSerializer } from '../../utilities/JsonSerializer'; +import { VisibilityRulesService } from '../../utilities/visibility-rules/visibility-rules.service'; @Component({ selector: 'app-dynamic-form', @@ -29,7 +27,7 @@ import { MatStepper } from '@angular/material'; ], encapsulation: ViewEncapsulation.None, }) -export class DynamicFormComponent implements OnInit, AfterViewInit { +export class DynamicFormComponent extends BaseComponent implements OnInit, AfterViewInit { pathName: string; pages: Array; @@ -55,6 +53,7 @@ export class DynamicFormComponent implements OnInit, AfterViewInit { private visibilityRulesService: VisibilityRulesService, private formFocusService: FormFocusService ) { + super(); //this.datasetId = route.snapshot.params['id']; } @@ -82,19 +81,23 @@ export class DynamicFormComponent implements OnInit, AfterViewInit { //const fields = compositeFieldsUnion.flatJoinOn(x => x.right); this.formFocusService.setFields(compositeFieldsUnion); - this.route.fragment.subscribe((fragment: string) => { - const self = this; - setTimeout(function () { self.scrollTo(fragment); }); - }); + this.route.fragment + .pipe(takeUntil(this._destroyed)) + .subscribe((fragment: string) => { + const self = this; + setTimeout(function () { self.scrollTo(fragment); }); + }); } ngAfterViewInit() { this.visibilityRulesService.triggerVisibilityEvaluation(); - this.route.queryParams.subscribe((params) => { - if (params && 'page' in params) { - this.changeCurrentPage(params['page']); - } - }); + this.route.queryParams + .pipe(takeUntil(this._destroyed)) + .subscribe((params) => { + if (params && 'page' in params) { + this.changeCurrentPage(params['page']); + } + }); } diff --git a/dmp-frontend/src/app/form/pprogress-bar/progress-bar.component.ts b/dmp-frontend/src/app/form/pprogress-bar/progress-bar.component.ts index ca7e4f17a..b257100a3 100644 --- a/dmp-frontend/src/app/form/pprogress-bar/progress-bar.component.ts +++ b/dmp-frontend/src/app/form/pprogress-bar/progress-bar.component.ts @@ -1,26 +1,28 @@ -import { VisibilityRulesService } from '../../utilities/visibility-rules/visibility-rules.service'; -import { ViewEncapsulation } from '@angular/core'; +import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core'; +import { FormArray, FormGroup } from '@angular/forms'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../core/common/base/base.component'; +import { VisibilityRulesService } from '../../utilities/visibility-rules/visibility-rules.service'; -import { Component, Input, OnInit } from '@angular/core'; -import { FormGroup, FormControl, FormArray } from '@angular/forms'; @Component({ selector: 'app-progress-bar', templateUrl: './progress-bar.component.html', styles: ['.alwaysVisible .ui-progressbar-label { display:block!important; }'], encapsulation: ViewEncapsulation.None }) -export class ProgressBarComponent implements OnInit { +export class ProgressBarComponent extends BaseComponent implements OnInit { @Input() formGroup: FormGroup; @Input() public progressValueAccuracy = 1; determinateProgressValue: number; - constructor(private visibilityRulesService: VisibilityRulesService) { } + constructor(private visibilityRulesService: VisibilityRulesService) { super(); } public value = 0; ngOnInit() { this.calculateValueForProgressbar(); this.formGroup .valueChanges + .pipe(takeUntil(this._destroyed)) .subscribe(control => { this.calculateValueForProgressbar(); }); diff --git a/dmp-frontend/src/app/homepage/homepage.component.html b/dmp-frontend/src/app/homepage/homepage.component.html index 7eef0750c..397a3ae5a 100644 --- a/dmp-frontend/src/app/homepage/homepage.component.html +++ b/dmp-frontend/src/app/homepage/homepage.component.html @@ -1,88 +1,85 @@
-
-
-
-

{{ 'HOMEPAGE.OPEN-DMPS.STATS' | translate }}

-

{{ 'HOMEPAGE.MY-DMPS.STATS' | translate }}

-
-
- -
-
-
- - - - - - {{'RECENT-ACTIVITY.MY-TITLE-DMP' | translate}} - - - - - -

- {{activity.label}} -

-

- {{activity.timestamp | date:'shortDate'}} -

-
-
-
-
-
-
- - - - - - {{'RECENT-ACTIVITY.MY-TITLE-PROJECT' | translate}} - - - - - -

- {{activity.label}} -

-

- {{activity.timestamp | date:'shortDate'}} -

-
-
-
-
-
-
- - - - - - {{'RECENT-ACTIVITY.MY-TITLE-DATASET' | translate}} - - - - - -

- {{activity.label}} -

-

- {{activity.timestamp | date:'shortDate'}} -

-
-
-
-
-
-
+
+
+
+
+

{{ 'HOMEPAGE.OPEN-DMPS.STATS' | translate }}

+

{{ 'HOMEPAGE.MY-DMPS.STATS' | translate }}

+
+
+
+
+
+
+
+ + + + + + {{'RECENT-ACTIVITY.MY-TITLE-DMP' | translate}} + + + + + +

+ {{activity.label}} +

+

+ {{activity.timestamp | date:'shortDate'}} +

+
+
+
+
+
+
+ + + + + + {{'RECENT-ACTIVITY.MY-TITLE-PROJECT' | translate}} + + + + + +

+ {{activity.label}} +

+

+ {{activity.timestamp | date:'shortDate'}} +

+
+
+
+
+
+
+ + + + + + {{'RECENT-ACTIVITY.MY-TITLE-DATASET' | translate}} + + + + + +

+ {{activity.label}} +

+

+ {{activity.timestamp | date:'shortDate'}} +

+
+
+
+
+
+
+
diff --git a/dmp-frontend/src/app/homepage/homepage.component.ts b/dmp-frontend/src/app/homepage/homepage.component.ts index 304bd1076..e500293b6 100644 --- a/dmp-frontend/src/app/homepage/homepage.component.ts +++ b/dmp-frontend/src/app/homepage/homepage.component.ts @@ -1,19 +1,21 @@ -import { Component, OnInit, Input } from '@angular/core'; -import { Router, ActivatedRoute } from '@angular/router'; -import { DashboardService } from '../../app/services/dashboard/dashboard.service'; -import { DashboardStatisticsModel } from '../models/dashboard/DashboardStatisticsModel'; -import { JsonSerializer } from '../utilities/JsonSerializer'; -import { AuthService } from '../services/auth/auth.service'; +import { Component, OnInit } from '@angular/core'; import { FormControl } from '@angular/forms'; -import { RequestItem } from '../models/criteria/RequestItem'; -import { ProjectCriteria } from '../models/criteria/project/ProjectCriteria'; -import { ProjectService } from '../services/project/project.service'; -import { SingleAutoCompleteConfiguration } from '../shared/components/autocompletes/single/single-auto-complete-configuration'; -import { UserReferenceService } from '../services/user-reference/user-reference-data.service'; -import { RecentActivityTypes } from '../users/activity/RecentActivityTypes'; +import { ActivatedRoute, Router } from '@angular/router'; import { Observable } from 'rxjs/internal/Observable'; +import { takeUntil } from 'rxjs/operators'; +import { DashboardService } from '../../app/services/dashboard/dashboard.service'; +import { BaseComponent } from '../core/common/base/base.component'; +import { ProjectCriteria } from '../models/criteria/project/ProjectCriteria'; +import { RequestItem } from '../models/criteria/RequestItem'; +import { DashboardStatisticsModel } from '../models/dashboard/DashboardStatisticsModel'; import { SearchBarItem } from '../models/dashboard/SearchBarItem'; +import { AuthService } from '../services/auth/auth.service'; +import { ProjectService } from '../services/project/project.service'; +import { UserReferenceService } from '../services/user-reference/user-reference-data.service'; +import { SingleAutoCompleteConfiguration } from '../shared/components/autocompletes/single/single-auto-complete-configuration'; import { SearchBarType } from '../shared/components/search-bar/types/search-bar-type'; +import { RecentActivityTypes } from '../users/activity/RecentActivityTypes'; +import { JsonSerializer } from '../utilities/JsonSerializer'; @Component({ selector: 'app-homepage', @@ -21,7 +23,7 @@ import { SearchBarType } from '../shared/components/search-bar/types/search-bar- styleUrls: ['./homepage.component.scss'], providers: [ProjectService, UserReferenceService] }) -export class HomepageComponent implements OnInit { +export class HomepageComponent extends BaseComponent implements OnInit { public userInfo: any; datasetActivities: any[]; @@ -44,6 +46,7 @@ export class HomepageComponent implements OnInit { private userReferenceService: UserReferenceService ) { + super(); this.dashboardStatisticsData.totalDataManagementPlanCount = 0; this.dashboardStatisticsData.totalDataSetCount = 0; this.dashboardStatisticsData.totalProjectCount = 0; @@ -53,11 +56,13 @@ export class HomepageComponent implements OnInit { ngOnInit() { if (this.isAuthenticated()) { - this.userReferenceService.getRecentActivity().subscribe(response => { - this.datasetActivities = response['recentDatasetActivities']; - this.dmpActivities = response['recentDmpActivities']; - this.projectActivities = response['recentProjectActivities']; - }); + this.userReferenceService.getRecentActivity() + .pipe(takeUntil(this._destroyed)) + .subscribe(response => { + this.datasetActivities = response['recentDatasetActivities']; + this.dmpActivities = response['recentDmpActivities']; + this.projectActivities = response['recentProjectActivities']; + }); } this.projectAutoCompleteConfiguration = { @@ -70,14 +75,18 @@ export class HomepageComponent implements OnInit { }; if (!this.isAuthenticated()) { - this.dashBoardService.getStatistics().subscribe(results => { - //let data = results['payload']; - this.dashboardStatisticsData = JsonSerializer.fromJSONObject(results, DashboardStatisticsModel); - }); + this.dashBoardService.getStatistics() + .pipe(takeUntil(this._destroyed)) + .subscribe(results => { + //let data = results['payload']; + this.dashboardStatisticsData = JsonSerializer.fromJSONObject(results, DashboardStatisticsModel); + }); } else { - this.dashBoardService.getStatisticsSpecificuser().subscribe(results => { - this.dashboardStatisticsData = JsonSerializer.fromJSONObject(results, DashboardStatisticsModel); - }); + this.dashBoardService.getStatisticsSpecificuser() + .pipe(takeUntil(this._destroyed)) + .subscribe(results => { + this.dashboardStatisticsData = JsonSerializer.fromJSONObject(results, DashboardStatisticsModel); + }); } this.filteredOptions = this.searchControl.valueChanges.flatMap(x => { diff --git a/dmp-frontend/src/app/projects/editor/project-editor.component.html b/dmp-frontend/src/app/projects/editor/project-editor.component.html index 3bb620da0..54a9857ac 100644 --- a/dmp-frontend/src/app/projects/editor/project-editor.component.html +++ b/dmp-frontend/src/app/projects/editor/project-editor.component.html @@ -4,81 +4,81 @@
- - - - - -
- - - - - -
-
-
- - - +
+ + + + + +
+ + + + + +
+
+
+
+
+ +
+
+ +
+
+ +
+
+
- - - - - {{baseErrorModel.label}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + + {{baseErrorModel.label}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} - - {{baseErrorModel.abbreviation}} + + {{baseErrorModel.abbreviation}} - {{baseErrorModel.uri}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{baseErrorModel.uri}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} - + - {{this.project.errorModel.startDate}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{this.project.errorModel.startDate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} - + - {{baseErrorModel.endDate}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{baseErrorModel.endDate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} - - {{errorModel.description}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + + {{errorModel.description}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}}
@@ -87,12 +87,13 @@
-
-
-
-
diff --git a/dmp-frontend/src/app/projects/editor/project-editor.component.scss b/dmp-frontend/src/app/projects/editor/project-editor.component.scss index 0845cd529..14527073b 100644 --- a/dmp-frontend/src/app/projects/editor/project-editor.component.scss +++ b/dmp-frontend/src/app/projects/editor/project-editor.component.scss @@ -1,49 +1,56 @@ -.full-width { - width: 100%; -} - -.input-table { - table-layout: fixed; -} - -.logo-table { - table-layout: fixed; - display: inline-block; - td { - padding: 3px; - } -} - -.table-card .mat-grid-tile { - background: rgba(0, 0, 0, 0.32); -} - .project-editor { - .fill-space { - flex: 1 1 auto; + + .project-editor-header-actions { + display: flex; + align-items: center; } - .mat-card { - margin: 16px 0; + + + .logo-table { + table-layout: fixed; + display: inline-block; + + td { + padding: 3px; + } } - p { - margin: 16px; - } - .left-button { - float: left; - } - .right-button { - float: right; - } - .description-area { - height: 100px; + + // .table-card .mat-grid-tile { + // background: rgba(0, 0, 0, 0.32); + // } + + // .project-editor { + // .fill-space { + // flex: 1 1 auto; + // } + + // .mat-card { + // margin: 16px 0; + // } + + // p { + // margin: 16px; + // } + + // .left-button { + // float: left; + // } + + // .right-button { + // float: right; + // } + + // .description-area { + // height: 100px; + // } + // } + + // h3 { + // margin-top: 0px; + // } + + + .hidden { + display: none; } } - -h3{ - margin-top: 0px; -} - - -.hidden { - display: none !important; -} \ No newline at end of file diff --git a/dmp-frontend/src/app/projects/editor/project-editor.component.ts b/dmp-frontend/src/app/projects/editor/project-editor.component.ts index 0f4738ad8..6a00f65f7 100644 --- a/dmp-frontend/src/app/projects/editor/project-editor.component.ts +++ b/dmp-frontend/src/app/projects/editor/project-editor.component.ts @@ -1,11 +1,13 @@ -import { Component, OnInit, ViewEncapsulation } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms'; import { MatSnackBar } from '@angular/material'; import { ActivatedRoute, Params, Router } from '@angular/router'; import { TdDialogService } from '@covalent/core'; import { TranslateService } from '@ngx-translate/core'; import { Observable } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; import { environment } from '../../../environments/environment'; +import { BaseComponent } from '../../core/common/base/base.component'; import { BaseErrorModel } from '../../models/error/BaseErrorModel'; import { ProjectModel, ProjectType } from '../../models/projects/ProjectModel'; import { ProjectFileUploaderService } from '../../services/files/project-file-uploader.service'; @@ -19,10 +21,9 @@ import { JsonSerializer } from '../../utilities/JsonSerializer'; @Component({ selector: 'app-project-editor-component', templateUrl: 'project-editor.component.html', - styleUrls: ['./project-editor.component.scss'], - encapsulation: ViewEncapsulation.None + styleUrls: ['./project-editor.component.scss'] }) -export class ProjectEditorComponent implements OnInit, IBreadCrumbComponent { +export class ProjectEditorComponent extends BaseComponent implements OnInit, IBreadCrumbComponent { breadCrumbs: Observable = Observable.of([]); isNew = true; @@ -40,33 +41,36 @@ export class ProjectEditorComponent implements OnInit, IBreadCrumbComponent { private uploaderService: ProjectFileUploaderService, private languageResolverService: LanguageResolverService ) { - + super(); } ngOnInit() { - this.route.params.subscribe((params: Params) => { - const itemId = params['id']; + this.route.params + .pipe(takeUntil(this._destroyed)) + .subscribe((params: Params) => { + const itemId = params['id']; - if (itemId != null) { - this.isNew = false; - this.projectService.getSingle(itemId).map(data => data as ProjectModel) - .subscribe(data => { - this.project = JsonSerializer.fromJSONObject(data, ProjectModel); - this.formGroup = this.project.buildForm(null, this.project.type === ProjectType.External || !this.editMode); - this.breadCrumbs = Observable.of([ - { parentComponentName: 'ProjectListingComponent', label: 'Projects', url: '/projects' }, - ]); + if (itemId != null) { + this.isNew = false; + this.projectService.getSingle(itemId).map(data => data as ProjectModel) + .pipe(takeUntil(this._destroyed)) + .subscribe(data => { + this.project = JsonSerializer.fromJSONObject(data, ProjectModel); + this.formGroup = this.project.buildForm(null, this.project.type === ProjectType.External || !this.editMode); + this.breadCrumbs = Observable.of([ + { parentComponentName: 'ProjectListingComponent', label: 'Projects', url: '/projects' }, + ]); + }); + } else { + this.breadCrumbs = Observable.of([ + { parentComponentName: 'ProjectListingComponent', label: 'Projects', url: '/projects' }, + ]); + this.project = new ProjectModel(); + setTimeout(() => { + this.formGroup = this.project.buildForm(); }); - } else { - this.breadCrumbs = Observable.of([ - { parentComponentName: 'ProjectListingComponent', label: 'Projects', url: '/projects' }, - ]); - this.project = new ProjectModel(); - setTimeout(() => { - this.formGroup = this.project.buildForm(); - }); - } - }); + } + }); } formSubmit(): void { @@ -80,10 +84,12 @@ export class ProjectEditorComponent implements OnInit, IBreadCrumbComponent { } onSubmit(): void { - this.projectService.createProject(this.formGroup.value).subscribe( - complete => this.onCallbackSuccess(), - error => this.onCallbackError(error) - ); + this.projectService.createProject(this.formGroup.value) + .pipe(takeUntil(this._destroyed)) + .subscribe( + complete => this.onCallbackSuccess(), + error => this.onCallbackError(error) + ); } onCallbackSuccess(): void { @@ -110,21 +116,27 @@ export class ProjectEditorComponent implements OnInit, IBreadCrumbComponent { } public delete(): void { - this.language.get('GENERAL.DELETE-CONFIRMATION').subscribe((messages: any) => { - this.dialogService.openConfirm({ - message: messages.MESSAGE, - title: messages.TITLE, - cancelButton: messages.NEGATIVE, - acceptButton: messages.POSITIVE - }).afterClosed().subscribe((accept: boolean) => { - if (accept) { - this.projectService.inactivate(this.project.id).subscribe( - complete => { this.router.navigate(['/projects']); }, - error => this.onCallbackError(error) - ); - } + this.language.get('GENERAL.DELETE-CONFIRMATION') + .pipe(takeUntil(this._destroyed)) + .subscribe((messages: any) => { + this.dialogService.openConfirm({ + message: messages.MESSAGE, + title: messages.TITLE, + cancelButton: messages.NEGATIVE, + acceptButton: messages.POSITIVE + }).afterClosed() + .pipe(takeUntil(this._destroyed)) + .subscribe((accept: boolean) => { + if (accept) { + this.projectService.inactivate(this.project.id) + .pipe(takeUntil(this._destroyed)) + .subscribe( + complete => { this.router.navigate(['/projects']); }, + error => this.onCallbackError(error) + ); + } + }); }); - }); } public touchAllFormFields(formControl: AbstractControl) { @@ -189,6 +201,8 @@ export class ProjectEditorComponent implements OnInit, IBreadCrumbComponent { } else { formdata.append('file', fileList); } - this.uploaderService.uploadFile(formdata).subscribe(files => this.formGroup.get('files').patchValue(files)); + this.uploaderService.uploadFile(formdata) + .pipe(takeUntil(this._destroyed)) + .subscribe(files => this.formGroup.get('files').patchValue(files)); } } diff --git a/dmp-frontend/src/app/projects/listing/project-listing.component.html b/dmp-frontend/src/app/projects/listing/project-listing.component.html index 333902754..a432d0645 100644 --- a/dmp-frontend/src/app/projects/listing/project-listing.component.html +++ b/dmp-frontend/src/app/projects/listing/project-listing.component.html @@ -1,71 +1,72 @@
-

{{languageResolverService.getBy('listingTitle') | translate}}

+

{{languageResolverService.getBy('listingTitle') | translate}}

- - - - - -
- - + + + + + +
+ + - - {{'PROJECT-LISTING.COLUMNS.AVATAR' | translate}} - - - - - - - {{'PROJECT-LISTING.COLUMNS.NAME' | translate}} - {{row.label}} - + + {{'PROJECT-LISTING.COLUMNS.AVATAR' | translate}} + + + + + + + {{'PROJECT-LISTING.COLUMNS.NAME' | translate}} + {{row.label}} + - - - {{'PROJECT-LISTING.COLUMNS.ABBREVIATION' | translate}} - {{row.abbreviation}} - + + + {{'PROJECT-LISTING.COLUMNS.ABBREVIATION' | + translate}} + {{row.abbreviation}} + - - - {{'PROJECT-LISTING.COLUMNS.START' | translate}} - {{row.startDate | date:'shortDate'}} - + + + {{'PROJECT-LISTING.COLUMNS.START' | translate}} + {{row.startDate | date:'shortDate'}} + - - - {{'PROJECT-LISTING.COLUMNS.END' | translate}} - {{row.endDate | date:'shortDate'}} - + + + {{'PROJECT-LISTING.COLUMNS.END' | translate}} + {{row.endDate | date:'shortDate'}} + - - - {{'PROJECT-LISTING.COLUMNS.DMPS' | translate}} - - - - + + + {{'PROJECT-LISTING.COLUMNS.DMPS' | translate}} + + + + - - + - - + + - - - -
-
-
+
+ + +
+
+
- +
diff --git a/dmp-frontend/src/app/projects/listing/project-listing.component.ts b/dmp-frontend/src/app/projects/listing/project-listing.component.ts index 908c43bc5..ea44bcb58 100644 --- a/dmp-frontend/src/app/projects/listing/project-listing.component.ts +++ b/dmp-frontend/src/app/projects/listing/project-listing.component.ts @@ -82,7 +82,7 @@ export class ProjectDataSource extends DataSource { ) { super(); - //this._paginator.page.subscribe((pageEvent: PageEvent) => { + //this._paginator.page.pipe(takeUntil(this._destroyed)).subscribe((pageEvent: PageEvent) => { // this.store.dispatch(new LoadPhotosRequestAction(pageEvent.pageIndex, pageEvent.pageSize)) //}) } @@ -94,7 +94,7 @@ export class ProjectDataSource extends DataSource { ]; // If the user changes the sort order, reset back to the first page. - //this._sort.matSortChange.subscribe(() => { + //this._sort.matSortChange.pipe(takeUntil(this._destroyed)).subscribe(() => { // this._paginator.pageIndex = 0; //}) diff --git a/dmp-frontend/src/app/services/auth/auth.service.ts b/dmp-frontend/src/app/services/auth/auth.service.ts index e5b0aaf7e..9512312ce 100644 --- a/dmp-frontend/src/app/services/auth/auth.service.ts +++ b/dmp-frontend/src/app/services/auth/auth.service.ts @@ -3,8 +3,10 @@ import { Injectable } from '@angular/core'; import { MatSnackBar } from '@angular/material'; import { Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; +import { takeUntil } from 'rxjs/operators'; import { Observable } from 'rxjs/Rx'; import { environment } from '../../../environments/environment'; +import { BaseService } from '../../core/common/base/base.service'; import { Credential } from '../../models/login/Credential'; import { LoginInfo } from '../../models/login/LoginInfo'; import { Principal } from '../../models/login/Principal'; @@ -12,7 +14,7 @@ import { SnackBarNotificationComponent } from '../../shared/components/notificai import { JsonSerializer } from '../../utilities/JsonSerializer'; @Injectable() -export class AuthService { +export class AuthService extends BaseService { private actionUrl: string; private headers: HttpHeaders; @@ -22,7 +24,7 @@ export class AuthService { public language: TranslateService, public router: Router ) { - + super(); this.actionUrl = environment.Server + 'auth/'; this.headers = new HttpHeaders(); @@ -99,10 +101,12 @@ export class AuthService { if (!principal) { return; } let headers = this.headers; headers = headers.set('AuthToken', principal.token); - this.http.post(url, null, { headers: headers }).subscribe( - res => this.onLogOutSuccess(res), - error => this.onLogOutError(error) - ); + this.http.post(url, null, { headers: headers }) + .pipe(takeUntil(this._destroyed)) + .subscribe( + res => this.onLogOutSuccess(res), + error => this.onLogOutError(error) + ); } public me(): Observable { diff --git a/dmp-frontend/src/app/services/breadcrumb/breadcrumb-resolver.service.ts b/dmp-frontend/src/app/services/breadcrumb/breadcrumb-resolver.service.ts index 4bc5810c0..6dc7dc90c 100644 --- a/dmp-frontend/src/app/services/breadcrumb/breadcrumb-resolver.service.ts +++ b/dmp-frontend/src/app/services/breadcrumb/breadcrumb-resolver.service.ts @@ -1,13 +1,13 @@ -import { Component, Input, OnInit, AfterViewChecked, ViewChild, NgZone } from '@angular/core'; -import { HttpClient, HttpHeaders } from '@angular/common/http'; -import { Injectable } from '@angular/core'; +import { Injectable, NgZone } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; +import { Observable } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { BaseService } from '../../core/common/base/base.service'; import { BreadcrumbItem } from '../../shared/components/breadcrumb/definition/breadcrumb-item'; import { IBreadCrumbComponent } from '../../shared/components/breadcrumb/definition/IBreadCrumbComponent'; -import { Observable } from 'rxjs'; @Injectable() -export class BreadCrumbResolverService { +export class BreadCrumbResolverService extends BaseService { private activeComponents = []; private parentComponents = []; @@ -15,7 +15,7 @@ export class BreadCrumbResolverService { constructor( private router: Router, private zone: NgZone - ) { } + ) { super(); } public push(component: any) { const existingComponentIndex = this.activeComponents.map(x => x.constructor.name).indexOf(component.constructor.name); @@ -51,18 +51,20 @@ export class BreadCrumbResolverService { } resolveDependentComponents(items: Observable, components: any[]): any[] { - items.subscribe(breadCrumbs => { - breadCrumbs.forEach(async item => { - const parentComponent = item.parentComponentName ? this.findComponent(item.parentComponentName) : null; - if (parentComponent && parentComponent.hasOwnProperty('breadCrumbs')) { - components = this.pushToStart(components, this.resolveDependentComponents((parentComponent).breadCrumbs, components)); - } else if (item.notFoundResolver) { - components = this.pushToStart(components, item.notFoundResolver); - //components = this.pushToStart(components, [unresolvedComponentItems]) - } + items + .pipe(takeUntil(this._destroyed)) + .subscribe(breadCrumbs => { + breadCrumbs.forEach(async item => { + const parentComponent = item.parentComponentName ? this.findComponent(item.parentComponentName) : null; + if (parentComponent && parentComponent.hasOwnProperty('breadCrumbs')) { + components = this.pushToStart(components, this.resolveDependentComponents((parentComponent).breadCrumbs, components)); + } else if (item.notFoundResolver) { + components = this.pushToStart(components, item.notFoundResolver); + //components = this.pushToStart(components, [unresolvedComponentItems]) + } + }); + components = this.pushToEnd(components, breadCrumbs); }); - components = this.pushToEnd(components, breadCrumbs); - }); return components; } diff --git a/dmp-frontend/src/app/services/language-resolver/language-resolver.service.ts b/dmp-frontend/src/app/services/language-resolver/language-resolver.service.ts index 268098d74..33350cfb7 100644 --- a/dmp-frontend/src/app/services/language-resolver/language-resolver.service.ts +++ b/dmp-frontend/src/app/services/language-resolver/language-resolver.service.ts @@ -1,23 +1,27 @@ import { Injectable } from '@angular/core'; +import { takeUntil } from 'rxjs/operators'; +import { BaseService } from '../../core/common/base/base.service'; import { LanguageService } from '../language/language.service'; @Injectable() -export class LanguageResolverService { +export class LanguageResolverService extends BaseService { private languageData = {}; constructor(private language: LanguageService) { + super(); if (Object.keys(this.languageData).length === 0) { - this.language.getLang().subscribe(result => { - result.forEach(item => { - this.languageData[item.key] = item.languageKey; + this.language.getLang() + .pipe(takeUntil(this._destroyed)) + .subscribe(result => { + result.forEach(item => { + this.languageData[item.key] = item.languageKey; + }); }); - }); } } public getBy(key: string): string { return this.languageData[key]; } - } diff --git a/dmp-frontend/src/app/shared/components/add-researchers/add-researchers.component.html b/dmp-frontend/src/app/shared/components/add-researchers/add-researchers.component.html index 17c05f341..3e0b5ea56 100644 --- a/dmp-frontend/src/app/shared/components/add-researchers/add-researchers.component.html +++ b/dmp-frontend/src/app/shared/components/add-researchers/add-researchers.component.html @@ -3,11 +3,11 @@
- {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}}
diff --git a/dmp-frontend/src/app/shared/components/add-researchers/add-researchers.component.ts b/dmp-frontend/src/app/shared/components/add-researchers/add-researchers.component.ts index dad2638f3..14e0d2800 100644 --- a/dmp-frontend/src/app/shared/components/add-researchers/add-researchers.component.ts +++ b/dmp-frontend/src/app/shared/components/add-researchers/add-researchers.component.ts @@ -1,9 +1,9 @@ -import { JsonSerializer } from '../../../utilities/JsonSerializer'; -import { RequestItem } from '../../../models/criteria/RequestItem'; -import { Component, OnInit, Inject } from '@angular/core'; +import { Component, Inject, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { Params, ActivatedRoute, Router } from '@angular/router'; -import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { ActivatedRoute, Router } from '@angular/router'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; import { ResearcherModel } from '../../../models/researcher/ResearcherModel'; import { ResearcherService } from '../../../services/researchers/researchers.service'; @@ -12,7 +12,7 @@ import { ResearcherService } from '../../../services/researchers/researchers.ser templateUrl: 'add-researchers.component.html', }) -export class AddResearchersComponent implements OnInit { +export class AddResearchersComponent extends BaseComponent implements OnInit { public formGroup: FormGroup; @@ -22,7 +22,7 @@ export class AddResearchersComponent implements OnInit { public router: Router, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any - ) { } + ) { super(); } ngOnInit(): void { const researcher = new ResearcherModel(); @@ -31,8 +31,10 @@ export class AddResearchersComponent implements OnInit { send(value: any) { - this.researcherService.createResearcher(this.formGroup.value).subscribe( - null, null, () => this.dialogRef.close() - ); + this.researcherService.createResearcher(this.formGroup.value) + .pipe(takeUntil(this._destroyed)) + .subscribe( + null, null, () => this.dialogRef.close() + ); } } diff --git a/dmp-frontend/src/app/shared/components/auto-complete/auto-complete.component.html b/dmp-frontend/src/app/shared/components/auto-complete/auto-complete.component.html index 5116f42b1..78928f454 100644 --- a/dmp-frontend/src/app/shared/components/auto-complete/auto-complete.component.html +++ b/dmp-frontend/src/app/shared/components/auto-complete/auto-complete.component.html @@ -3,7 +3,7 @@ {{validationErrorString}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}} diff --git a/dmp-frontend/src/app/shared/components/auto-complete/auto-complete.component.ts b/dmp-frontend/src/app/shared/components/auto-complete/auto-complete.component.ts index 5723bf9f6..da630b28c 100644 --- a/dmp-frontend/src/app/shared/components/auto-complete/auto-complete.component.ts +++ b/dmp-frontend/src/app/shared/components/auto-complete/auto-complete.component.ts @@ -1,6 +1,8 @@ -import { Input, OnInit, Component, AfterViewInit, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core'; -import { FormGroup, FormControl, FormGroupDirective, NgForm } from '@angular/forms'; +import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; +import { FormControl, FormGroupDirective, NgForm } from '@angular/forms'; import { ErrorStateMatcher } from '@angular/material'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; import { AutoCompleteConfiguration } from './AutoCompleteConfiguration'; @Component({ @@ -8,7 +10,7 @@ import { AutoCompleteConfiguration } from './AutoCompleteConfiguration'; templateUrl: './auto-complete.component.html', styleUrls: ['./auto-complete.component.scss'] }) -export class AutoCompleteComponent implements OnInit, ErrorStateMatcher { +export class AutoCompleteComponent extends BaseComponent implements OnInit, ErrorStateMatcher { @Input() placeholder: String; @Input() disabled: boolean; @@ -35,18 +37,20 @@ export class AutoCompleteComponent implements OnInit, ErrorStateMatcher { isUnchanged = true; constructor() { - + super(); } ngOnInit() { if (this.inputData.refreshEvent) { - this.inputData.refreshEvent.subscribe(x => { - if (x) { - this.formCtrl.patchValue(null); - this.textFormCtrl.patchValue(null); - this.options = []; - } - }); + this.inputData.refreshEvent + .pipe(takeUntil(this._destroyed)) + .subscribe(x => { + if (x) { + this.formCtrl.patchValue(null); + this.textFormCtrl.patchValue(null); + this.options = []; + } + }); } this.textFormCtrl = new FormControl(); if (this.disabled) { this.textFormCtrl.disable(); } @@ -80,11 +84,14 @@ export class AutoCompleteComponent implements OnInit, ErrorStateMatcher { this.inputData.callback(this.inputData.requestItem).map(res => { this.options = res; this.loading = false; - }).subscribe(); + }) + .pipe(takeUntil(this._destroyed)) + .subscribe(); } else { this.loading = false; } }) + .pipe(takeUntil(this._destroyed)) .subscribe(); } diff --git a/dmp-frontend/src/app/shared/components/available-profiles/available-profiles.component.ts b/dmp-frontend/src/app/shared/components/available-profiles/available-profiles.component.ts index ca4c22867..dc4323133 100644 --- a/dmp-frontend/src/app/shared/components/available-profiles/available-profiles.component.ts +++ b/dmp-frontend/src/app/shared/components/available-profiles/available-profiles.component.ts @@ -1,19 +1,18 @@ -import { JsonSerializer } from '../../../utilities/JsonSerializer'; -import { RequestItem } from '../../../models/criteria/RequestItem'; -import { Component, OnInit, Inject } from '@angular/core'; +import { Component, Inject, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { Params, ActivatedRoute, Router } from '@angular/router'; -import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material'; -import { DatasetService } from '../../../services/dataset/dataset.service'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { ActivatedRoute, Router } from '@angular/router'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; import { DatasetProfileModel } from '../../../models/datasetprofile/DatasetProfileModel'; -import { DatasetProfileModule } from '../../../dataset-profile-form/dataset-profile.module'; +import { DatasetService } from '../../../services/dataset/dataset.service'; +import { JsonSerializer } from '../../../utilities/JsonSerializer'; @Component({ selector: 'app-available-profiles-component', templateUrl: 'available-profiles.component.html', - }) -export class AvailableProfilesComponent implements OnInit { +export class AvailableProfilesComponent extends BaseComponent implements OnInit { public formGroup: FormGroup; public profiles: DatasetProfileModel[] = []; @@ -25,13 +24,15 @@ export class AvailableProfilesComponent implements OnInit { public router: Router, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any - ) { } + ) { super(); } ngOnInit(): void { this.formGroup = this.data['profiles']; - this.datasetService.getDatasetProfiles().subscribe(data => { - this.profiles = JsonSerializer.fromJSONArray(data, DatasetProfileModel); - }); + this.datasetService.getDatasetProfiles() + .pipe(takeUntil(this._destroyed)) + .subscribe(data => { + this.profiles = JsonSerializer.fromJSONArray(data, DatasetProfileModel); + }); } addProfiles(profiles) { diff --git a/dmp-frontend/src/app/shared/components/criteria/base/base-criteria.component.ts b/dmp-frontend/src/app/shared/components/criteria/base/base-criteria.component.ts index bcd2f1a56..f64519bc6 100644 --- a/dmp-frontend/src/app/shared/components/criteria/base/base-criteria.component.ts +++ b/dmp-frontend/src/app/shared/components/criteria/base/base-criteria.component.ts @@ -1,5 +1,6 @@ -import { Component, OnInit, Input } from '@angular/core'; -import { FormControl, FormGroup, NgForm, FormArray, AbstractControl } from '@angular/forms'; +import { Component, OnInit } from '@angular/core'; +import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms'; +import { BaseComponent } from '../../../../core/common/base/base.component'; import { BaseCriteriaErrorModel } from '../../../../models/criteria/BaseCriteriaErrorModel'; @Component({ @@ -10,7 +11,7 @@ import { BaseCriteriaErrorModel } from '../../../../models/criteria/BaseCriteria ] }) -export class BaseCriteriaComponent implements OnInit { +export class BaseCriteriaComponent extends BaseComponent implements OnInit { public refreshCallback: Function = null; public formGroup: FormGroup = null; @@ -18,6 +19,7 @@ export class BaseCriteriaComponent implements OnInit { constructor( public baseErrorModel?: BaseCriteriaErrorModel, ) { + super(); } ngOnInit() { diff --git a/dmp-frontend/src/app/shared/components/criteria/data-management-plan/dmp-criteria.component.ts b/dmp-frontend/src/app/shared/components/criteria/data-management-plan/dmp-criteria.component.ts index 173c83abc..d33f39734 100644 --- a/dmp-frontend/src/app/shared/components/criteria/data-management-plan/dmp-criteria.component.ts +++ b/dmp-frontend/src/app/shared/components/criteria/data-management-plan/dmp-criteria.component.ts @@ -1,17 +1,15 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { FormBuilder, FormControl } from '@angular/forms'; import { TranslateService } from '@ngx-translate/core'; -import { Component, OnInit, Input } from '@angular/core'; -import { FormControl, FormGroup, FormBuilder, Validators } from '@angular/forms'; -import { BaseCriteriaComponent } from '../base/base-criteria.component'; -import { ValidationContext, Validation } from '../../../../utilities/validators/ValidationContext'; -import { BackendErrorValidator } from '../../../../utilities/validators/BackendErrorValidator'; +import { takeUntil } from 'rxjs/operators'; import { DataManagementPlanCriteria } from '../../../../models/criteria/data-management-plan/DataManagementPlanCriteria'; import { DataManagementPlanCriteriaErrorModel } from '../../../../models/criteria/data-management-plan/DataManagementPlanCriteriaErrorModel'; -import { ProjectModel } from '../../../../models/projects/ProjectModel'; -import { ProjectService } from '../../../../services/project/project.service'; import { ProjectCriteria } from '../../../../models/criteria/project/ProjectCriteria'; import { RequestItem } from '../../../../models/criteria/RequestItem'; -import { create } from 'domain'; +import { ProjectModel } from '../../../../models/projects/ProjectModel'; +import { ProjectService } from '../../../../services/project/project.service'; import { MultipleAutoCompleteConfiguration } from '../../autocompletes/multiple/multiple-auto-complete-configuration'; +import { BaseCriteriaComponent } from '../base/base-criteria.component'; @Component({ selector: 'app-dmp-criteria-component', @@ -51,8 +49,12 @@ export class DataManagementPlanCriteriaComponent extends BaseCriteriaComponent i loadDataOnStart: true }; - this.formGroup.get('projects').valueChanges.subscribe(x => this.controlModified()); - this.formGroup.get('like').valueChanges.subscribe(x => this.controlModified()); + this.formGroup.get('projects').valueChanges + .pipe(takeUntil(this._destroyed)) + .subscribe(x => this.controlModified()); + this.formGroup.get('like').valueChanges + .pipe(takeUntil(this._destroyed)) + .subscribe(x => this.controlModified()); //if (this.criteria == null) { this.criteria = new DataManagementPlanCriteria(); } } diff --git a/dmp-frontend/src/app/shared/components/criteria/datasets/datasets-criteria.component.ts b/dmp-frontend/src/app/shared/components/criteria/datasets/datasets-criteria.component.ts index 8ad5a1f2f..b3bb34251 100644 --- a/dmp-frontend/src/app/shared/components/criteria/datasets/datasets-criteria.component.ts +++ b/dmp-frontend/src/app/shared/components/criteria/datasets/datasets-criteria.component.ts @@ -1,16 +1,14 @@ +import { Component, OnInit } from '@angular/core'; +import { FormBuilder } from '@angular/forms'; import { TranslateService } from '@ngx-translate/core'; -import { Component, OnInit, Input } from '@angular/core'; -import { FormControl, FormGroup, FormBuilder, Validators } from '@angular/forms'; -import { BaseCriteriaComponent } from '../base/base-criteria.component'; -import { ValidationContext, Validation } from '../../../../utilities/validators/ValidationContext'; -import { BackendErrorValidator } from '../../../../utilities/validators/BackendErrorValidator'; -import { DatasetCriteriaErrorModel } from '../../../../models/criteria/dataset/DatasetCriteriaErrorModel'; +import { takeUntil } from 'rxjs/operators'; import { DatasetCriteria } from '../../../../models/criteria/dataset/DatasetCriteria'; -import { TagsCriteria } from '../../../../models/criteria/tags/TagsCriteria'; -import { ExternalSourcesService } from '../../../../services/external-sources/external-sources.service'; +import { DatasetCriteriaErrorModel } from '../../../../models/criteria/dataset/DatasetCriteriaErrorModel'; import { RequestItem } from '../../../../models/criteria/RequestItem'; -import { TagModel } from '../../../../models/tags/TagModel'; +import { TagsCriteria } from '../../../../models/criteria/tags/TagsCriteria'; import { ExternalSourcesItemModel } from '../../../../models/external-sources/ExternalSourcesItemModel'; +import { ExternalSourcesService } from '../../../../services/external-sources/external-sources.service'; +import { BaseCriteriaComponent } from '../base/base-criteria.component'; @Component({ selector: 'app-datasets-criteria-component', @@ -72,10 +70,12 @@ export class DatasetCriteriaComponent extends BaseCriteriaComponent implements O const criteria: TagsCriteria = new TagsCriteria(); criteria.like = value; requestItem.criteria = criteria; - this.externalSourcesService.searchDatasetTags(requestItem).subscribe(items => { - this.filteredTags = items; - this.filteringTagsAsync = false; - }); + this.externalSourcesService.searchDatasetTags(requestItem) + .pipe(takeUntil(this._destroyed)) + .subscribe(items => { + this.filteredTags = items; + this.filteringTagsAsync = false; + }); } } } diff --git a/dmp-frontend/src/app/shared/components/criteria/users/users-criteria.component.ts b/dmp-frontend/src/app/shared/components/criteria/users/users-criteria.component.ts index a625a0ab6..2cc88834a 100644 --- a/dmp-frontend/src/app/shared/components/criteria/users/users-criteria.component.ts +++ b/dmp-frontend/src/app/shared/components/criteria/users/users-criteria.component.ts @@ -1,12 +1,13 @@ -import { Utilities } from '../../../../utilities/utilities'; -import { UserCriteriaErrorModel } from '../../../../models/criteria/users/UserCriteriaErrorModel'; -import { UserCriteria } from '../../../../models/criteria/users/UserCriteria'; -import { TranslateService } from '@ngx-translate/core'; -import { Validation, ValidationContext } from '../../../../utilities/validators/ValidationContext'; import { Component, OnInit } from '@angular/core'; -import { BaseCriteriaComponent } from '../base/base-criteria.component'; -import { Principal } from '../../../../models/login/Principal'; import { FormBuilder, FormGroup } from '@angular/forms'; +import { TranslateService } from '@ngx-translate/core'; +import { takeUntil } from 'rxjs/operators'; +import { UserCriteria } from '../../../../models/criteria/users/UserCriteria'; +import { UserCriteriaErrorModel } from '../../../../models/criteria/users/UserCriteriaErrorModel'; +import { Principal } from '../../../../models/login/Principal'; +import { Utilities } from '../../../../utilities/utilities'; +import { Validation, ValidationContext } from '../../../../utilities/validators/ValidationContext'; +import { BaseCriteriaComponent } from '../base/base-criteria.component'; @Component({ selector: 'app-users-criteria-component', @@ -75,9 +76,11 @@ export class UsersCriteriaComponent extends BaseCriteriaComponent implements OnI getPrincipalAppRoleWithLanguage(role: Principal.AppRole): string { let result = ''; - this.language.get(this.utilities.convertFromPrincipalAppRole(role)).subscribe((value: string) => { - result = value; - }); + this.language.get(this.utilities.convertFromPrincipalAppRole(role)) + .pipe(takeUntil(this._destroyed)) + .subscribe((value: string) => { + result = value; + }); return result; } diff --git a/dmp-frontend/src/app/shared/components/facets/facet-search-component/facet-search-section.component.scss b/dmp-frontend/src/app/shared/components/facets/facet-search-component/facet-search-section.component.scss index 292915923..8c7b2430b 100644 --- a/dmp-frontend/src/app/shared/components/facets/facet-search-component/facet-search-section.component.scss +++ b/dmp-frontend/src/app/shared/components/facets/facet-search-component/facet-search-section.component.scss @@ -1,5 +1,10 @@ .facet-option-item { + height: auto !important; min-height: 48px; padding: 0.5em; + + .mat-list-item-content { + min-height: inherit; + } } diff --git a/dmp-frontend/src/app/shared/components/facets/facet-search-component/facet-search-section.component.ts b/dmp-frontend/src/app/shared/components/facets/facet-search-component/facet-search-section.component.ts index 724e0245a..8e3aa96e5 100644 --- a/dmp-frontend/src/app/shared/components/facets/facet-search-component/facet-search-section.component.ts +++ b/dmp-frontend/src/app/shared/components/facets/facet-search-component/facet-search-section.component.ts @@ -1,8 +1,10 @@ -import { Component, ViewEncapsulation, OnInit, Input, Output, ViewChild, EventEmitter } from '@angular/core'; -import { Observable } from 'rxjs'; -import { FormControl } from '@angular/forms'; -import { MatSelectionList, MatListOption } from '@angular/material'; import { SelectionModel } from '@angular/cdk/collections'; +import { Component, EventEmitter, Input, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core'; +import { FormControl } from '@angular/forms'; +import { MatListOption, MatSelectionList } from '@angular/material'; +import { Observable } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../../core/common/base/base.component'; @Component({ selector: 'app-facet-section-component', @@ -10,7 +12,7 @@ import { SelectionModel } from '@angular/cdk/collections'; styleUrls: ['./facet-search-section.component.scss'], encapsulation: ViewEncapsulation.None, }) -export class FacetSearchSectionComponent implements OnInit { +export class FacetSearchSectionComponent extends BaseComponent implements OnInit { @Input() searchEnabled = false; @@ -49,7 +51,9 @@ export class FacetSearchSectionComponent implements OnInit { ngOnInit(): void { if (!this.multipleSelect) { this.selectionList.selectedOptions = new SelectionModel(this.multipleSelect); } this.optionSearchControl.valueChanges.debounceTime(this.requestDelay) - .distinctUntilChanged().subscribe(x => { if (this.filterOptions) { this.options = this.filterOptions(x); } }); + .distinctUntilChanged() + .pipe(takeUntil(this._destroyed)) + .subscribe(x => { if (this.filterOptions) { this.options = this.filterOptions(x); } }); } public selectionChanged(event: any) { diff --git a/dmp-frontend/src/app/shared/components/facets/facet-search.component.html b/dmp-frontend/src/app/shared/components/facets/facet-search.component.html index 7e4e91a73..89b457891 100644 --- a/dmp-frontend/src/app/shared/components/facets/facet-search.component.html +++ b/dmp-frontend/src/app/shared/components/facets/facet-search.component.html @@ -1,18 +1,18 @@ - + - + {{ 'FACET-SEARCH.FILTER' | translate }}
-
-
{{chip.name.substring(0, 1).toUpperCase()}}
diff --git a/dmp-frontend/src/app/shared/components/facets/facet-search.component.scss b/dmp-frontend/src/app/shared/components/facets/facet-search.component.scss index e69de29bb..9c5d328da 100644 --- a/dmp-frontend/src/app/shared/components/facets/facet-search.component.scss +++ b/dmp-frontend/src/app/shared/components/facets/facet-search.component.scss @@ -0,0 +1,9 @@ +.facet-search-component { + .mat-form-field { + width: 100%; + } + + .tags-chips { + padding: 0px; + } +} diff --git a/dmp-frontend/src/app/shared/components/facets/facet-search.component.ts b/dmp-frontend/src/app/shared/components/facets/facet-search.component.ts index 93fbc7288..bd3bd7b38 100644 --- a/dmp-frontend/src/app/shared/components/facets/facet-search.component.ts +++ b/dmp-frontend/src/app/shared/components/facets/facet-search.component.ts @@ -1,20 +1,21 @@ -import { Component, OnInit, ViewEncapsulation, Input, ViewChild, Output, EventEmitter, AfterViewInit } from '@angular/core'; -import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; -import { BreadCrumbResolverService } from '../../../services/breadcrumb/breadcrumb-resolver.service'; -import { Observable } from 'rxjs'; -import { FacetSearchCriteriaModel } from '../../../models/facet-search/FacetSearchCriteriaModel'; -import { ProjectStateType } from '../../../models/projects/ProjectStateType'; -import { ProjectModel } from '../../../models/projects/ProjectModel'; -import { ProjectService } from '../../../services/project/project.service'; -import { ProjectCriteria } from '../../../models/criteria/project/ProjectCriteria'; -import { DatasetService } from '../../../services/dataset/dataset.service'; -import { DatasetProfileModel } from '../../../models/datasetprofile/DatasetProfileModel'; -import { RequestItem } from '../../../models/criteria/RequestItem'; -import { ExternalSourcesService } from '../../../services/external-sources/external-sources.service'; -import { ExternalSourcesItemModel } from '../../../models/external-sources/ExternalSourcesItemModel'; -import { TranslateService } from '@ngx-translate/core'; +import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core'; import { MatAccordion } from '@angular/material'; +import { ActivatedRoute } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; +import { Observable } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; +import { ProjectCriteria } from '../../../models/criteria/project/ProjectCriteria'; +import { RequestItem } from '../../../models/criteria/RequestItem'; import { TagsCriteria } from '../../../models/criteria/tags/TagsCriteria'; +import { DatasetProfileModel } from '../../../models/datasetprofile/DatasetProfileModel'; +import { ExternalSourcesItemModel } from '../../../models/external-sources/ExternalSourcesItemModel'; +import { FacetSearchCriteriaModel } from '../../../models/facet-search/FacetSearchCriteriaModel'; +import { ProjectModel } from '../../../models/projects/ProjectModel'; +import { ProjectStateType } from '../../../models/projects/ProjectStateType'; +import { DatasetService } from '../../../services/dataset/dataset.service'; +import { ExternalSourcesService } from '../../../services/external-sources/external-sources.service'; +import { ProjectService } from '../../../services/project/project.service'; @Component({ selector: 'app-facet', @@ -23,7 +24,7 @@ import { TagsCriteria } from '../../../models/criteria/tags/TagsCriteria'; encapsulation: ViewEncapsulation.None, providers: [ProjectService] }) -export class FacetSearchComponent implements OnInit, AfterViewInit { +export class FacetSearchComponent extends BaseComponent implements OnInit, AfterViewInit { @Input() facetCriteria = new FacetSearchCriteriaModel(); @Output() facetCriteriaChange = new EventEmitter(); @@ -55,7 +56,7 @@ export class FacetSearchComponent implements OnInit, AfterViewInit { public languageService: TranslateService, public datasetProfileService: DatasetService, public externalSourcesService: ExternalSourcesService - ) { } + ) { super(); } ngOnInit() { setTimeout(x => { @@ -167,10 +168,12 @@ export class FacetSearchComponent implements OnInit, AfterViewInit { const criteria: TagsCriteria = new TagsCriteria(); criteria.like = value; requestItem.criteria = criteria; - this.externalSourcesService.searchDatasetTags(requestItem).subscribe(items => { - this.filteredTags = items; - this.filteringTagsAsync = false; - }); + this.externalSourcesService.searchDatasetTags(requestItem) + .pipe(takeUntil(this._destroyed)) + .subscribe(items => { + this.filteredTags = items; + this.filteringTagsAsync = false; + }); } } diff --git a/dmp-frontend/src/app/shared/components/file-uploader/file-uploader.component.ts b/dmp-frontend/src/app/shared/components/file-uploader/file-uploader.component.ts index 9ea0400bc..548ffc0b1 100644 --- a/dmp-frontend/src/app/shared/components/file-uploader/file-uploader.component.ts +++ b/dmp-frontend/src/app/shared/components/file-uploader/file-uploader.component.ts @@ -1,12 +1,14 @@ import { Component, Input, OnInit } from '@angular/core'; -import { FileUploader } from '../../../shared/components/file-uploader/FileUploader'; import { FormControl } from '@angular/forms'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; +import { FileUploader } from '../../../shared/components/file-uploader/FileUploader'; @Component({ selector: 'app-fileuploader-component', templateUrl: './file-uploader.component.html' }) -export class FileUploaderComponent implements OnInit { +export class FileUploaderComponent extends BaseComponent implements OnInit { files: File | FileList; disabled = false; @@ -48,7 +50,9 @@ export class FileUploaderComponent implements OnInit { } else { formdata.append('file', files); } - this.fileUploader.uploadFile(formdata).subscribe(fileitem => this.form.patchValue(fileitem)); + this.fileUploader.uploadFile(formdata) + .pipe(takeUntil(this._destroyed)) + .subscribe(fileitem => this.form.patchValue(fileitem)); } cancelEvent(): void { diff --git a/dmp-frontend/src/app/shared/components/invitation-accepted/invitation-accepted.component.ts b/dmp-frontend/src/app/shared/components/invitation-accepted/invitation-accepted.component.ts index d38aa8bd3..d6d439842 100644 --- a/dmp-frontend/src/app/shared/components/invitation-accepted/invitation-accepted.component.ts +++ b/dmp-frontend/src/app/shared/components/invitation-accepted/invitation-accepted.component.ts @@ -1,32 +1,31 @@ -import { JsonSerializer } from '../../../utilities/JsonSerializer'; -import { UserInvitationCriteria } from '../../../models/criteria/invitation/UserInvitationCriteria'; -import { RequestItem } from '../../../models/criteria/RequestItem'; -import { Invitation } from '../../../models/invitation/Invitation'; +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; import { InvitationService } from '../../../services/invitation/invitation.service'; -import { User } from '../../../models/invitation/User'; -import { Component, OnInit, Inject } from '@angular/core'; -import { FormGroup } from '@angular/forms'; -import { Params, ActivatedRoute, Router } from '@angular/router'; -import { MAT_DIALOG_DATA } from '@angular/material'; @Component({ selector: 'app-invitation-accepted-component', templateUrl: 'invitation-accepted.component.html', }) -export class InvitationAcceptedComponent implements OnInit { +export class InvitationAcceptedComponent extends BaseComponent implements OnInit { constructor( private invitationService: InvitationService, private route: ActivatedRoute, public router: Router - ) { } + ) { super(); } ngOnInit(): void { - this.route.params.subscribe(params => { - const id = params['id']; - this.invitationService.exchange(id).subscribe(result => { - this.router.navigate(['dmps/edit/' + result]); + this.route.params + .pipe(takeUntil(this._destroyed)) + .subscribe(params => { + const id = params['id']; + this.invitationService.exchange(id) + .pipe(takeUntil(this._destroyed)) + .subscribe(result => { + this.router.navigate(['dmps/edit/' + result]); + }); }); - }); } } diff --git a/dmp-frontend/src/app/shared/components/invitation/invitation.component.ts b/dmp-frontend/src/app/shared/components/invitation/invitation.component.ts index bcd610440..ea22c38d0 100644 --- a/dmp-frontend/src/app/shared/components/invitation/invitation.component.ts +++ b/dmp-frontend/src/app/shared/components/invitation/invitation.component.ts @@ -1,64 +1,70 @@ -import { JsonSerializer } from '../../../utilities/JsonSerializer'; +import { Component, Inject, OnInit } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { ActivatedRoute, Router } from '@angular/router'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; import { UserInvitationCriteria } from '../../../models/criteria/invitation/UserInvitationCriteria'; import { RequestItem } from '../../../models/criteria/RequestItem'; import { Invitation } from '../../../models/invitation/Invitation'; -import { InvitationService } from '../../../services/invitation/invitation.service'; import { User } from '../../../models/invitation/User'; -import { Component, OnInit, Inject } from '@angular/core'; -import { FormGroup } from '@angular/forms'; -import { Params, ActivatedRoute, Router } from '@angular/router'; -import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material'; +import { InvitationService } from '../../../services/invitation/invitation.service'; +import { JsonSerializer } from '../../../utilities/JsonSerializer'; @Component({ - selector: 'app-invitation-component', - templateUrl: 'invitation.component.html', + selector: 'app-invitation-component', + templateUrl: 'invitation.component.html', }) -export class InvitationComponent implements OnInit { +export class InvitationComponent extends BaseComponent implements OnInit { - public formGroup: FormGroup; + public formGroup: FormGroup; - public filteredUsersAsync = false; + public filteredUsersAsync = false; - public filteredUsers: User[]; + public filteredUsers: User[]; - constructor( - public invitationService: InvitationService, - public route: ActivatedRoute, - public router: Router, - public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data: any - ) { } + constructor( + public invitationService: InvitationService, + public route: ActivatedRoute, + public router: Router, + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any + ) { super(); } - ngOnInit(): void { - const invitation = new Invitation(); - invitation.dataManagementPlan = this.data.dmpId; - this.formGroup = invitation.buildForm(); - } - - - send(value: any) { - this.invitationService.inviteUsers(this.formGroup.value).subscribe( - null, null, () => this.dialogRef.close() - ); - } - - filterUsers(value: string): void { - this.filteredUsers = undefined; - if (value) { - this.filteredUsersAsync = true; - const request = new RequestItem(); - request.criteria = { like: value }; - this.invitationService.getUsers(request).subscribe(items => { - this.filteredUsers = JsonSerializer.fromJSONArray(items, User); - if (!this.filteredUsers || this.filteredUsers.length === 0) { - const user = new User(); - user.email = value; - user.name = value; - this.filteredUsers.push(user); - } - this.filteredUsersAsync = false; - }); + ngOnInit(): void { + const invitation = new Invitation(); + invitation.dataManagementPlan = this.data.dmpId; + this.formGroup = invitation.buildForm(); + } + + + send(value: any) { + this.invitationService.inviteUsers(this.formGroup.value) + .pipe(takeUntil(this._destroyed)) + .subscribe( + null, null, () => this.dialogRef.close() + ); + } + + filterUsers(value: string): void { + this.filteredUsers = undefined; + if (value) { + this.filteredUsersAsync = true; + const request = new RequestItem(); + request.criteria = { like: value }; + this.invitationService.getUsers(request) + .pipe(takeUntil(this._destroyed)) + .subscribe(items => { + this.filteredUsers = JsonSerializer.fromJSONArray(items, User); + if (!this.filteredUsers || this.filteredUsers.length === 0) { + const user = new User(); + user.email = value; + user.name = value; + this.filteredUsers.push(user); + } + this.filteredUsersAsync = false; + }); + } } - } } diff --git a/dmp-frontend/src/app/shared/components/notificaiton/snack-bar-notification.component.ts b/dmp-frontend/src/app/shared/components/notificaiton/snack-bar-notification.component.ts index b1be87392..19aded5bc 100644 --- a/dmp-frontend/src/app/shared/components/notificaiton/snack-bar-notification.component.ts +++ b/dmp-frontend/src/app/shared/components/notificaiton/snack-bar-notification.component.ts @@ -1,22 +1,27 @@ -import { TranslateService } from '@ngx-translate/core'; import { Component, Inject } from '@angular/core'; import { MAT_SNACK_BAR_DATA } from '@angular/material'; +import { TranslateService } from '@ngx-translate/core'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; @Component({ selector: 'app-snack-bar-notification', templateUrl: 'snack-bar-notification.component.html' }) -export class SnackBarNotificationComponent { +export class SnackBarNotificationComponent extends BaseComponent { message: string; constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any) { + super(); this.parseMessage(data.message, data.language); } parseMessage(message: any, language: TranslateService): void { if (language) { - language.get(message).subscribe((value: string) => { - this.message = value; - }); + language.get(message) + .pipe(takeUntil(this._destroyed)) + .subscribe((value: string) => { + this.message = value; + }); } else { this.message = message; } } } diff --git a/dmp-frontend/src/app/shared/help-content/help-content.component.ts b/dmp-frontend/src/app/shared/help-content/help-content.component.ts index 9de3082f5..3cc977dcc 100644 --- a/dmp-frontend/src/app/shared/help-content/help-content.component.ts +++ b/dmp-frontend/src/app/shared/help-content/help-content.component.ts @@ -1,8 +1,10 @@ /** * Created by stefania on 7/17/17. */ -import { Component, OnInit, Input } from '@angular/core'; -import { ActivatedRoute, Router, NavigationStart } from '@angular/router'; +import { Component, Input, OnInit } from '@angular/core'; +import { ActivatedRoute, NavigationStart, Router } from '@angular/router'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../core/common/base/base.component'; import { PageHelpContent } from '../../models/help-content/page-help-content'; import { HelpContentService } from '../../services/help-content/help-content.service'; @Component({ @@ -15,21 +17,27 @@ import { HelpContentService } from '../../services/help-content/help-content.ser
`, }) -export class HelpContentComponent implements OnInit { +export class HelpContentComponent extends BaseComponent implements OnInit { @Input() position: string; contents: any[]; errorMessage: string = null; constructor(private _helpContentService: HelpContentService, private route: ActivatedRoute, private router: Router) { + super(); } + ngOnInit() { this.errorMessage = null; - this.router.events.subscribe(event => { - if (event instanceof NavigationStart) { - this._helpContentService.getActivePageContent(event['url']).subscribe( - pageContent => this.shiftThroughContent(pageContent), - error => this.handleError(error)); - } - }); + this.router.events + .pipe(takeUntil(this._destroyed)) + .subscribe(event => { + if (event instanceof NavigationStart) { + this._helpContentService.getActivePageContent(event['url']) + .pipe(takeUntil(this._destroyed)) + .subscribe( + pageContent => this.shiftThroughContent(pageContent), + error => this.handleError(error)); + } + }); } shiftThroughContent(pageContent: PageHelpContent) { this.contents = pageContent.content[this.position]; diff --git a/dmp-frontend/src/app/unauthorized/unauthorized.component.ts b/dmp-frontend/src/app/unauthorized/unauthorized.component.ts index 3153117f4..19ed8a28a 100644 --- a/dmp-frontend/src/app/unauthorized/unauthorized.component.ts +++ b/dmp-frontend/src/app/unauthorized/unauthorized.component.ts @@ -1,19 +1,21 @@ -import { AuthService } from '../services/auth/auth.service'; -import { Component, Input, AfterViewInit } from '@angular/core'; +import { AfterViewInit, Component, Input } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../core/common/base/base.component'; +import { AuthService } from '../services/auth/auth.service'; @Component({ selector: 'app-unauthorized-component', templateUrl: './unauthorized.component.html' }) -export class UnauthorizedComponent implements AfterViewInit { +export class UnauthorizedComponent extends BaseComponent implements AfterViewInit { @Input() public message: string; constructor( private authService: AuthService, private route: ActivatedRoute, private router: Router - ) { } + ) { super(); } ngAfterViewInit() { const returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/'; @@ -21,11 +23,13 @@ export class UnauthorizedComponent implements AfterViewInit { if (!principal) { this.router.navigate(['/login'], { queryParams: { returnUrl: returnUrl } }); } else { - this.authService.me().subscribe( - result => { - if (!result) { this.router.navigate(['/login'], { queryParams: { returnUrl: returnUrl } }); } else { this.router.navigate(['/']); } - }, - err => console.error('An error occurred', err)); + this.authService.me() + .pipe(takeUntil(this._destroyed)) + .subscribe( + result => { + if (!result) { this.router.navigate(['/login'], { queryParams: { returnUrl: returnUrl } }); } else { this.router.navigate(['/']); } + }, + err => console.error('An error occurred', err)); } } } diff --git a/dmp-frontend/src/app/user-management/login/b2access/b2access-login.component.ts b/dmp-frontend/src/app/user-management/login/b2access/b2access-login.component.ts index 6b0ec9583..61953b7df 100644 --- a/dmp-frontend/src/app/user-management/login/b2access/b2access-login.component.ts +++ b/dmp-frontend/src/app/user-management/login/b2access/b2access-login.component.ts @@ -1,25 +1,29 @@ -import { LoginService } from '../../utilties/login-service'; import { Component, OnInit } from '@angular/core'; -import { Router, ActivatedRoute, Params } from '@angular/router'; +import { ActivatedRoute, Router } from '@angular/router'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; +import { LoginService } from '../../utilties/login-service'; @Component({ selector: 'app-b2access-login', templateUrl: './b2access-login.component.html', }) -export class B2AccessLoginComponent implements OnInit { +export class B2AccessLoginComponent extends BaseComponent implements OnInit { constructor( private router: Router, private route: ActivatedRoute, private loginService: LoginService ) { - + super(); } ngOnInit(): void { - this.route.queryParams.subscribe((data: any) => { - if (!data['code']) { this.loginService.b2AccessGetAuthCode(); } else { this.loginService.b2AccessLogin(data['code']); } - }); + this.route.queryParams + .pipe(takeUntil(this._destroyed)) + .subscribe((data: any) => { + if (!data['code']) { this.loginService.b2AccessGetAuthCode(); } else { this.loginService.b2AccessLogin(data['code']); } + }); } } diff --git a/dmp-frontend/src/app/user-management/login/linkedin-login/linkedin-login.component.ts b/dmp-frontend/src/app/user-management/login/linkedin-login/linkedin-login.component.ts index a738f9a66..2fb3ab8e4 100644 --- a/dmp-frontend/src/app/user-management/login/linkedin-login/linkedin-login.component.ts +++ b/dmp-frontend/src/app/user-management/login/linkedin-login/linkedin-login.component.ts @@ -1,25 +1,29 @@ -import { LoginService } from '../../utilties/login-service'; import { Component, OnInit } from '@angular/core'; -import { Router, ActivatedRoute, Params } from '@angular/router'; +import { ActivatedRoute, Router } from '@angular/router'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; +import { LoginService } from '../../utilties/login-service'; @Component({ selector: 'app-linkedin-login', templateUrl: './linkedin-login.component.html', }) -export class LinkedInLoginComponent implements OnInit { +export class LinkedInLoginComponent extends BaseComponent implements OnInit { constructor( private router: Router, private route: ActivatedRoute, private loginService: LoginService ) { - + super(); } ngOnInit(): void { - this.route.queryParams.subscribe((data: any) => { - if (!data['code']) { this.loginService.linkedinAuthorize(); } else { this.loginService.linkedInloginUser(data['code']); } - }); + this.route.queryParams + .pipe(takeUntil(this._destroyed)) + .subscribe((data: any) => { + if (!data['code']) { this.loginService.linkedinAuthorize(); } else { this.loginService.linkedInloginUser(data['code']); } + }); } } diff --git a/dmp-frontend/src/app/user-management/login/login.component.html b/dmp-frontend/src/app/user-management/login/login.component.html index 5effbf193..f4be1e6e4 100644 --- a/dmp-frontend/src/app/user-management/login/login.component.html +++ b/dmp-frontend/src/app/user-management/login/login.component.html @@ -1,52 +1,48 @@ -
-
-
-
-
-
-

Login

- - -
-
- -
-
- email - - - -
-
- lock_outline - - - -
-
- -
-

You dont need to have a registered account for OpenDMP

+
+
+
+
+

Login

+ + +
+
+ +
+
+ email + + + +
+
+ lock_outline + + +
+
+

You dont need to have a registered account for OpenDMP

+
diff --git a/dmp-frontend/src/app/user-management/login/twitter-login/twitter-login.component.ts b/dmp-frontend/src/app/user-management/login/twitter-login/twitter-login.component.ts index 21d7039c5..46e1a0420 100644 --- a/dmp-frontend/src/app/user-management/login/twitter-login/twitter-login.component.ts +++ b/dmp-frontend/src/app/user-management/login/twitter-login/twitter-login.component.ts @@ -1,23 +1,27 @@ -import { LoginService } from '../../utilties/login-service'; -import { ActivatedRoute, Router } from '@angular/router'; import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; +import { LoginService } from '../../utilties/login-service'; @Component({ selector: 'app-twitter-login', templateUrl: './twitter-login.component.html', }) -export class TwitterLoginComponent implements OnInit { +export class TwitterLoginComponent extends BaseComponent implements OnInit { constructor( private router: Router, private route: ActivatedRoute, private loginService: LoginService ) { - + super(); } ngOnInit(): void { - this.route.queryParams.subscribe((data: any) => { - if (!data['oauth_token'] && !data['oauth_verifier']) { this.loginService.twitterAuthorize(); } else { this.loginService.twitterLogin(data['oauth_token'], data['oauth_verifier']); } - }); + this.route.queryParams + .pipe(takeUntil(this._destroyed)) + .subscribe((data: any) => { + if (!data['oauth_token'] && !data['oauth_verifier']) { this.loginService.twitterAuthorize(); } else { this.loginService.twitterLogin(data['oauth_token'], data['oauth_verifier']); } + }); } } diff --git a/dmp-frontend/src/app/user-management/utilties/login-service.ts b/dmp-frontend/src/app/user-management/utilties/login-service.ts index 2dca303e2..de5680db5 100644 --- a/dmp-frontend/src/app/user-management/utilties/login-service.ts +++ b/dmp-frontend/src/app/user-management/utilties/login-service.ts @@ -3,7 +3,9 @@ import { Injectable, NgZone, Optional } from '@angular/core'; import { MatSnackBar } from '@angular/material'; import { ActivatedRoute, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; +import { takeUntil } from 'rxjs/operators'; import { environment } from '../../../environments/environment'; +import { BaseService } from '../../core/common/base/base.service'; import { Credential } from '../../models/login/Credential'; import { LoginProviders } from '../../models/login/LoginInfo'; import { AuthService } from '../../services/auth/auth.service'; @@ -18,7 +20,7 @@ declare const FB: any; declare const IN: any; @Injectable() -export class LoginService { +export class LoginService extends BaseService { private providers: LoginOptions[]; private auth2: any; @@ -33,6 +35,7 @@ export class LoginService { private cultureService: CultureService, @Optional() private config: LoginServiceConfiguration ) { + super(); if (config) { this.providers = config.loginProviders; } else { this.providers = [LoginOptions.nativeLogin]; } @@ -88,10 +91,12 @@ export class LoginService { (googleUser) => { const id_token = googleUser.getAuthResponse().id_token; if (id_token) { - this.authService.login({ ticket: id_token, provider: LoginProviders.Google }).subscribe( - res => this.onLogInSuccess(res), - error => this.onLogInError(error) - ); + this.authService.login({ ticket: id_token, provider: LoginProviders.Google }) + .pipe(takeUntil(this._destroyed)) + .subscribe( + res => this.onLogInSuccess(res), + error => this.onLogInError(error) + ); } }, (error) => { }); @@ -119,10 +124,12 @@ export class LoginService { public facebookLogin() { FB.login((response: any) => { if (response.status === 'connected' || 'not_authorized') { - this.authService.login({ ticket: response.authResponse.accessToken, provider: LoginProviders.Facebook }).subscribe( - res => this.onLogInSuccess(res), - error => this.onLogInError(error) - ); + this.authService.login({ ticket: response.authResponse.accessToken, provider: LoginProviders.Facebook }) + .pipe(takeUntil(this._destroyed)) + .subscribe( + res => this.onLogInSuccess(res), + error => this.onLogInError(error) + ); } }, { scope: 'user_friends,email' }); } @@ -140,10 +147,12 @@ export class LoginService { } public linkedInloginUser(code: string) { - this.authService.login({ ticket: code, provider: LoginProviders.LinkedIn }).subscribe( - res => this.onLogInSuccess(res), - error => this.onLogInError(error) - ); + this.authService.login({ ticket: code, provider: LoginProviders.LinkedIn }) + .pipe(takeUntil(this._destroyed)) + .subscribe( + res => this.onLogInSuccess(res), + error => this.onLogInError(error) + ); } /* @@ -157,16 +166,20 @@ export class LoginService { let headers = new HttpHeaders(); headers = headers.set('Content-Type', 'application/json'); headers = headers.set('Accept', 'application/json'); - this.httpClient.get(environment.Server + 'auth/twitterRequestToken', { headers: headers }).subscribe((data: any) => { - window.location.href = this.config.twitterConfiguration.oauthUrl + '?oauth_token=' + data.payload.value; - }); + this.httpClient.get(environment.Server + 'auth/twitterRequestToken', { headers: headers }) + .pipe(takeUntil(this._destroyed)) + .subscribe((data: any) => { + window.location.href = this.config.twitterConfiguration.oauthUrl + '?oauth_token=' + data.payload.value; + }); } public twitterLogin(token: string, verifier: string) { - this.authService.login({ ticket: token, provider: LoginProviders.Twitter, data: verifier }).subscribe( - res => this.onLogInSuccess(res), - error => this.onLogInError(error) - ); + this.authService.login({ ticket: token, provider: LoginProviders.Twitter, data: verifier }) + .pipe(takeUntil(this._destroyed)) + .subscribe( + res => this.onLogInSuccess(res), + error => this.onLogInError(error) + ); } /* @@ -186,11 +199,14 @@ export class LoginService { headers = headers.set('Content-Type', 'application/json'); headers = headers.set('Accept', 'application/json'); this.httpClient.post(environment.Server + 'auth/b2AccessRequestToken', { code: code }, { headers: headers }) + .pipe(takeUntil(this._destroyed)) .subscribe((data: any) => { - this.authService.login({ ticket: data.payload.accessToken, provider: LoginProviders.B2Accesss, data: null }).subscribe( - res => this.onLogInSuccess(res), - error => this.onLogInError(error) - ); + this.authService.login({ ticket: data.payload.accessToken, provider: LoginProviders.B2Accesss, data: null }) + .pipe(takeUntil(this._destroyed)) + .subscribe( + res => this.onLogInSuccess(res), + error => this.onLogInError(error) + ); }); } @@ -200,10 +216,12 @@ export class LoginService { */ public nativeLogin(credentials: Credential) { - this.authService.nativeLogin(credentials).subscribe( - res => this.onLogInSuccess(res), - error => this.onLogInError(error) - ); + this.authService.nativeLogin(credentials) + .pipe(takeUntil(this._destroyed)) + .subscribe( + res => this.onLogInSuccess(res), + error => this.onLogInError(error) + ); } diff --git a/dmp-frontend/src/app/users/activity/recent-activity.component.ts b/dmp-frontend/src/app/users/activity/recent-activity.component.ts index c6fea0098..405978be2 100644 --- a/dmp-frontend/src/app/users/activity/recent-activity.component.ts +++ b/dmp-frontend/src/app/users/activity/recent-activity.component.ts @@ -1,21 +1,10 @@ -import { DataTableRequest } from '../../models/data-table/DataTableRequest'; -import { UserErrorModel } from '../../models/users/UserErrorModel'; -import { UserReferenceService } from '../../services/user-reference/user-reference-data.service'; -import { UserListingModel } from '../../models/users/UserListingModel'; -import { SnackBarNotificationComponent } from '../../shared/components/notificaiton/snack-bar-notification.component'; -import { UserCriteria } from '../../models/criteria/users/UserCriteria'; -import { UserCriteriaErrorModel } from '../../models/criteria/users/UserCriteriaErrorModel'; -import { Observable } from 'rxjs/Rx'; -import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core'; -import { UsersCriteriaComponent } from '../../shared/components/criteria/users/users-criteria.component'; +import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; -import { Principal } from '../../models/login/Principal'; -import { MatPaginator, MatSort, MatSnackBar } from '@angular/material'; -import { TranslateService } from '@ngx-translate/core'; -import { DataSource } from '@angular/cdk/table'; +import { takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../core/common/base/base.component'; +import { UserReferenceService } from '../../services/user-reference/user-reference-data.service'; import { RecentActivityTypes } from '../../users/activity/RecentActivityTypes'; - @Component({ selector: 'app-recent-activity', templateUrl: './recent-activity.component.html', @@ -24,7 +13,7 @@ import { RecentActivityTypes } from '../../users/activity/RecentActivityTypes'; UserReferenceService ] }) -export class RecentActivityComponent implements OnInit { +export class RecentActivityComponent extends BaseComponent implements OnInit { datasetActivities: any[]; projectActivities: any[]; @@ -33,14 +22,16 @@ export class RecentActivityComponent implements OnInit { constructor( private router: Router, private userReferenceService: UserReferenceService - ) { } + ) { super(); } ngOnInit() { - this.userReferenceService.getRecentActivity().subscribe(response => { - this.datasetActivities = response['recentDatasetActivities']; - this.dmpActivities = response['recentDmpActivities']; - this.projectActivities = response['recentProjectActivities']; - }); + this.userReferenceService.getRecentActivity() + .pipe(takeUntil(this._destroyed)) + .subscribe(response => { + this.datasetActivities = response['recentDatasetActivities']; + this.dmpActivities = response['recentDmpActivities']; + this.projectActivities = response['recentProjectActivities']; + }); } redirect(id: string, type: RecentActivityTypes) { diff --git a/dmp-frontend/src/app/users/components/roles/user-role-editor.component.html b/dmp-frontend/src/app/users/components/roles/user-role-editor.component.html index 1e5662036..63e8817e0 100644 --- a/dmp-frontend/src/app/users/components/roles/user-role-editor.component.html +++ b/dmp-frontend/src/app/users/components/roles/user-role-editor.component.html @@ -3,7 +3,7 @@ {{getPrincipalAppRoleWithLanguage(role)}} - {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{'GENERAL.VALIDATION.REQUIRED' | translate}}