From 7846cb2c4b9b72a44f82b43f16fb513edba7a24a Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Mon, 25 Jan 2021 14:41:25 -0700 Subject: [PATCH] Update angular core --- ui/package-lock.json | 577 ++++++++---------- ui/package.json | 26 +- .../access-request.component.spec.ts | 6 +- .../delete-user-dialog.component.spec.ts | 6 +- .../enable-metadata.component.spec.ts | 6 +- .../user-management.component.spec.ts | 6 +- .../app/admin/service/admin.service.spec.ts | 8 +- ui/src/app/app.component.spec.ts | 8 +- ui/src/app/app.routing.ts | 11 +- .../component/page-title.component.spec.ts | 4 +- ui/src/app/core/core.module.ts | 28 +- .../core/service/api-path.interceptor.spec.ts | 4 +- ui/src/app/core/service/file.service.spec.ts | 2 +- .../core/service/navigation.service.spec.ts | 2 +- ui/src/app/i18n/i18n.module.ts | 16 +- ui/src/app/i18n/service/i18n.service.spec.ts | 4 +- .../metadata-configuration.component.spec.ts | 6 +- .../metadata-header.component.spec.ts | 6 +- .../property/array-property.component.spec.ts | 6 +- .../configuration-property.component.spec.ts | 6 +- .../filter-target-property.component.spec.ts | 6 +- .../object-property.component.spec.ts | 6 +- .../primitive-property.component.spec.ts | 6 +- .../configuration/configuration.module.ts | 2 +- .../container/configuration.component.spec.ts | 6 +- .../metadata-options.component.spec.ts | 6 +- .../container/metadata-xml.component.spec.ts | 6 +- .../restore-edit-step.component.spec.ts | 4 +- .../container/restore-edit.component.spec.ts | 4 +- .../container/restore.component.spec.ts | 6 +- .../version-options.component.spec.ts | 4 +- .../container/version.component.spec.ts | 4 +- .../service/configuration.service.spec.ts | 16 +- .../service/history.service.spec.ts | 12 +- .../component/editor-nav.component.spec.ts | 6 +- .../summary-property.component.spec.ts | 12 +- .../component/unsaved-entity.dialog.spec.ts | 6 +- ui/src/app/metadata/domain/domain.module.ts | 2 +- .../model/wizards/metadata-source-editor.ts | 2 + .../model/wizards/metadata-source-wizard.ts | 2 + .../domain/service/attributes.service.spec.ts | 6 +- .../domain/service/entity-id.service.spec.ts | 4 +- .../service/entity-validators.service.spec.ts | 18 +- .../domain/service/filter.service.spec.ts | 10 +- .../service/list-values.service.spec.ts | 2 +- .../provider-change-emitter.service.spec.ts | 6 +- .../domain/service/provider.service.spec.ts | 10 +- .../domain/service/resolver.service.spec.ts | 24 +- .../component/delete-dialog.component.spec.ts | 6 +- ui/src/app/metadata/manager/manager.module.ts | 2 +- .../app/metadata/metadata.component.spec.ts | 6 +- .../component/delete-filter.component.spec.ts | 6 +- .../provider-edit-step.component.spec.ts | 6 +- .../container/provider-edit.component.spec.ts | 6 +- .../provider-filter-list.component.spec.ts | 6 +- .../provider-select.component.spec.ts | 6 +- .../provider-wizard-step.component.spec.ts | 6 +- .../provider-wizard.component.spec.ts | 6 +- .../app/metadata/provider/provider.module.ts | 2 +- .../container/new-resolver.component.spec.ts | 2 +- .../resolver-wizard-step.component.spec.ts | 6 +- .../resolver-wizard.component.spec.ts | 10 +- .../upload-resolver.component.spec.ts | 10 +- .../app/metadata/resolver/resolver.module.ts | 2 +- ui/src/app/schema-form/registry.ts | 2 + ui/src/app/schema-form/schema-form.module.ts | 16 +- .../component/info-icon.component.spec.ts | 8 +- .../shared/component/info-icon.component.ts | 6 +- .../valid-form-icon.component.spec.ts | 8 +- ui/src/app/shared/util.ts | 2 + .../wizard/component/wizard.component.spec.ts | 4 +- ui/src/app/wizard/wizard.module.ts | 2 +- 72 files changed, 490 insertions(+), 582 deletions(-) diff --git a/ui/package-lock.json b/ui/package-lock.json index c098cecb0..0d2fc77cf 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -727,27 +727,27 @@ } }, "@angular/animations": { - "version": "8.2.11", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-8.2.11.tgz", - "integrity": "sha512-u0PSR2uvSqn3ovgGlw2H8ZueyYN42SLir2Yn3+7sGE+LcYOSTjyJ/GIgjV8jWddvPbx7KYzFRCs6bEMpBsMXYg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-11.1.0.tgz", + "integrity": "sha512-VgpknW33WJiqnNtQwNVWrpiSxkgoChIZLpYLlijSTvFwZOHiraFKApohaW8X61mwL0HuK1RB7Z36B+Q11cw3aw==", "requires": { - "tslib": "^1.9.0" + "tslib": "^2.0.0" }, "dependencies": { "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "@angular/cdk": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-8.2.3.tgz", - "integrity": "sha512-ZwO5Sn720RA2YvBqud0JAHkZXjmjxM0yNzCO8RVtRE9i8Gl26Wk0j0nQeJkVm4zwv2QO8MwbKUKGTMt8evsokA==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-11.1.0.tgz", + "integrity": "sha512-yFEHtdp0o/xGnYebrU/PQqWVIlB7SaP3cSviq/LTv/h2EINn3PzU/Zhdhg0k0fk09BrKoS+o8AVIddduIdDpYw==", "requires": { "parse5": "^5.0.0", - "tslib": "^1.7.1" + "tslib": "^2.0.0" }, "dependencies": { "parse5": { @@ -755,6 +755,11 @@ "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", "optional": true + }, + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, @@ -815,235 +820,107 @@ } }, "@angular/common": { - "version": "8.2.11", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-8.2.11.tgz", - "integrity": "sha512-AN8KKv13rVN1vwyVszZ1POvuUequ7jNC7Af/IDuxTJXKUDCI44dvjYQI0hbCicDDV+XZgjdkd4CBIiLCZRKnOQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-11.1.0.tgz", + "integrity": "sha512-jR9fnhzvvpdilyhPnyRlRRFRJ9vf/OhUFJrL42Knaj7uknmjgeu168JhwVdq6uj+v1208suXW+nOXhKNIpH38Q==", "requires": { - "tslib": "^1.9.0" + "tslib": "^2.0.0" }, "dependencies": { "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "@angular/compiler": { - "version": "8.2.11", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-8.2.11.tgz", - "integrity": "sha512-Qnh07i04s0LZECEKu9/NHwdRutfEs9N3y8f0uMdC+m7Cjy3guvmLtriAMdnxlH3KFFFSnugM6Ng6+gII8tZI6A==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-11.1.0.tgz", + "integrity": "sha512-XW+McH/RVjpLtNkft6UYZQbjhXwX/hvLgUa9jGlTuIFM5o7W4XRPnq5sfn3+QvzdROF0j8S5sy47mGVNQOYMNg==", "requires": { - "tslib": "^1.9.0" + "tslib": "^2.0.0" }, "dependencies": { "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "@angular/compiler-cli": { - "version": "8.2.11", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-8.2.11.tgz", - "integrity": "sha512-g6Ius7ctubz/xFjU/kaX6EwOQbfLtKqlRXWP4YRsKA302idlBrgbZYdMrTbFApf0H00vyS87/gipyHp7iNqyHw==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-11.1.0.tgz", + "integrity": "sha512-PLeVrqBpn43G7DeBkDQqH38Y+VMlCIbxiP4Vv1rFAmKVNIm9J8m8jdC3EQSTXVV+L3oDCVP5/ERSCZ8Jqx6UoA==", "dev": true, "requires": { + "@babel/core": "^7.8.6", + "@babel/types": "^7.8.6", "canonical-path": "1.0.0", - "chokidar": "^2.1.1", + "chokidar": "^3.0.0", "convert-source-map": "^1.5.1", "dependency-graph": "^0.7.2", + "fs-extra": "4.0.2", "magic-string": "^0.25.0", "minimist": "^1.2.0", "reflect-metadata": "^0.1.2", + "semver": "^6.3.0", "source-map": "^0.6.1", - "tslib": "^1.9.0", - "yargs": "13.1.0" + "sourcemap-codec": "^1.4.8", + "tslib": "^2.0.0", + "yargs": "^16.1.1" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "@babel/types": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" } }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - } - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "fs-extra": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", + "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", "dev": true, "requires": { - "binary-extensions": "^1.0.0" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "source-map": { @@ -1052,164 +929,145 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^5.0.0" } }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", "dev": true }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", "dev": true }, "yargs": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.1.0.tgz", - "integrity": "sha512-1UhJbXfzHiPqkfXNHYhiz79qM/kZqjTE8yGlEjZa85Q+3+OwcV6NRkV7XOV1W2Eom2bzILeUn55pQYffjVOLAg==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { - "cliui": "^4.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.0.0" + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } }, "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true } } }, "@angular/core": { - "version": "8.2.11", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-8.2.11.tgz", - "integrity": "sha512-TRfoJPcTjjiFh1dquqDc7LDI4sqD/LPCC9y2HP4r8644xJawhPJ0Ms6gWaeobCeP2k0vKsjrFmbPWeolOig/YA==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-11.1.0.tgz", + "integrity": "sha512-VhiRWZEj9Q/OvbbSDcgQ4f53oVcMnDB4uNL8xaWnK0Sb3lZA4aQW3VOlROBITS5n2g7D1zRhvUzdfzVuyuMIaQ==", "requires": { - "tslib": "^1.9.0" + "tslib": "^2.0.0" }, "dependencies": { "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "@angular/forms": { - "version": "8.2.11", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-8.2.11.tgz", - "integrity": "sha512-9sXLvAgscGwoE7k9kwRPogPSx8B8kT+kbXCvkL3Az+C+HrEuQ3rwMIJEFO+OhOCkRwrdUniKsp7GHLw94jAqtQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-11.1.0.tgz", + "integrity": "sha512-pHwLPGDHk3JOoK2nA3wJoDCJF2bn8NmVqv8Lh5Pd8NYqLFRIIDiHSjNkqr1eM0JUmExqfU5tCrLrPz4YChdYBA==", "requires": { - "tslib": "^1.9.0" + "tslib": "^2.0.0" }, "dependencies": { "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "@angular/language-service": { - "version": "8.2.11", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-8.2.11.tgz", - "integrity": "sha512-jNzVEzJRdDynAAY3ncJBRX9RE52nRNpaKrW7KgZCpAoqgyponi8HBs+lt/ANcRmhdoIkM1VAOnDAb1rE30dLeQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-11.1.0.tgz", + "integrity": "sha512-7NQcwNHgUGOdqQsyp1Xw/WFbYvC4WA+Et2DJJvkitmg2ejndtm45FALUu1Z2X6bbKzdJOuNGU5vNh1ZJ/IyGRQ==", "dev": true }, "@angular/platform-browser": { - "version": "8.2.11", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-8.2.11.tgz", - "integrity": "sha512-bKDkC7kpNvgvRQfw4s+84GJWrY7MPFx9d1bUk9OPQzEBAjzRX+E6IFlqfTpZRGy4m5rbSzBk3bpZdqcZSJM98A==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-11.1.0.tgz", + "integrity": "sha512-wdinsRiKC5mGWWSA5RqferFvpe3Wr9YIVK2Gaj50DlJGOJ/8yWvux3BYjsCd5B44PC8+6dxUEZMgvA6CmhXgpw==", "requires": { - "tslib": "^1.9.0" + "tslib": "^2.0.0" }, "dependencies": { "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "@angular/platform-browser-dynamic": { - "version": "8.2.11", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-8.2.11.tgz", - "integrity": "sha512-0DyO7N2HTQdV0OQJiLy3ZWimvdBgPHPbTP62l/Qc+ieZzA86KU8jWjbtyUOdqXkyEQ9gcpWEpxX9dBH8nW74jg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-11.1.0.tgz", + "integrity": "sha512-1MFRvjbkogtEQO/bWkNm2xOIl8CeIJuRWoXYE00VKShmq4o+2kTHBRQD0NydPQYwqo9o4XpgmIrJXHgwp3S2Qw==", "requires": { - "tslib": "^1.9.0" + "tslib": "^2.0.0" }, "dependencies": { "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "@angular/router": { - "version": "8.2.11", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-8.2.11.tgz", - "integrity": "sha512-US8vp9TiryAVoLZwKZqApG6OvRizlJh6k+YA40/Z+fZBFIFM+Og80yiuUJ+p29unheVqA/tvAHmBdBrLNaliJA==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-11.1.0.tgz", + "integrity": "sha512-jsGuyt/QNxtN2eHrkk6lqRnTf3NeuaxBWJSrwuoqrjLCZH2elg3r1GXDTII1Ih3E1zIwuOlK59O78dXW2eQVBg==", "requires": { - "tslib": "^1.9.0" + "tslib": "^2.0.0" }, "dependencies": { "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, @@ -5726,10 +5584,13 @@ "dev": true }, "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } }, "cookie": { "version": "0.3.1", @@ -10707,9 +10568,9 @@ } }, "magic-string": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.4.tgz", - "integrity": "sha512-oycWO9nEVAP2RVPbIoDoA4Y7LFIJ3xRYov93gAyJhZkET1tNuB0u7uWkZS2LpBWTJUWnmau/To8ECWRC+jKNfw==", + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", "dev": true, "requires": { "sourcemap-codec": "^1.4.4" @@ -10774,15 +10635,6 @@ } } }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -10835,17 +10687,6 @@ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", @@ -12132,24 +11973,12 @@ "os-tmpdir": "^1.0.0" } }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - }, "p-limit": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", @@ -18043,7 +17872,8 @@ "tslib": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.8.1.tgz", - "integrity": "sha1-aUavLR1lGnsYY7Ux1uWvpBqkTqw=" + "integrity": "sha1-aUavLR1lGnsYY7Ux1uWvpBqkTqw=", + "dev": true }, "tslint": { "version": "5.20.1", @@ -18168,9 +17998,9 @@ "dev": true }, "typescript": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", - "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "ultron": { @@ -19723,13 +19553,72 @@ } }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "wrappy": { @@ -19901,9 +19790,19 @@ } }, "zone.js": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.9.1.tgz", - "integrity": "sha512-GkPiJL8jifSrKReKaTZ5jkhrMEgXbXYC+IPo1iquBjayRa0q86w3Dipjn8b415jpitMExe9lV8iTsv8tk3DGag==" + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.3.tgz", + "integrity": "sha512-Y4hTHoh4VcxU5BDGAqEoOnOiyT254w6CiHtpQxAJUSMZPyVgdbKf+5R7Mwz6xsPhMIeBXk5rTopRZDpjssTCUg==", + "requires": { + "tslib": "^2.0.0" + }, + "dependencies": { + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + } + } } } } diff --git a/ui/package.json b/ui/package.json index ffb200da3..111877752 100644 --- a/ui/package.json +++ b/ui/package.json @@ -17,15 +17,15 @@ }, "private": true, "dependencies": { - "@angular/animations": "8.2.11", - "@angular/cdk": "^8.2.3", - "@angular/common": "8.2.11", - "@angular/compiler": "8.2.11", - "@angular/core": "8.2.11", - "@angular/forms": "8.2.11", - "@angular/platform-browser": "8.2.11", - "@angular/platform-browser-dynamic": "8.2.11", - "@angular/router": "8.2.11", + "@angular/animations": "11.1.0", + "@angular/cdk": "^11.1.0", + "@angular/common": "11.1.0", + "@angular/compiler": "11.1.0", + "@angular/core": "11.1.0", + "@angular/forms": "11.1.0", + "@angular/platform-browser": "11.1.0", + "@angular/platform-browser-dynamic": "11.1.0", + "@angular/router": "11.1.0", "@ng-bootstrap/ng-bootstrap": "5.1.1", "@ngrx/effects": "8.4.0", "@ngrx/entity": "8.4.0", @@ -43,13 +43,13 @@ "rxjs": "^6.5.3", "xml-formatter": "^1.0.1", "z-schema": "^3.22.0", - "zone.js": "~0.9.1" + "zone.js": "~0.11.3" }, "devDependencies": { "@angular-devkit/build-angular": "^0.1101.1", "@angular/cli": "^8.3.12", - "@angular/compiler-cli": "^8.2.11", - "@angular/language-service": "^8.2.11", + "@angular/compiler-cli": "^11.1.0", + "@angular/language-service": "^11.1.0", "@types/file-saver": "^1.3.0", "@types/jasmine": "~3.3.12", "@types/jasminewd2": "~2.0.6", @@ -71,7 +71,7 @@ "path": "^0.12.7", "ts-node": "~3.2.0", "tslint": "^5.20.1", - "typescript": "3.5.3", + "typescript": "4.1.3", "webpack-bundle-analyzer": "^3.3.2" } } diff --git a/ui/src/app/admin/component/access-request.component.spec.ts b/ui/src/app/admin/component/access-request.component.spec.ts index 5c236e63c..257239997 100644 --- a/ui/src/app/admin/component/access-request.component.spec.ts +++ b/ui/src/app/admin/component/access-request.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { NgbDropdownModule, NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { Store, StoreModule, combineReducers } from '@ngrx/store'; @@ -27,7 +27,7 @@ describe('Access Request Component', () => { let instance: TestHostComponent; let store: Store; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ FormsModule, @@ -59,7 +59,7 @@ describe('Access Request Component', () => { fixture.detectChanges(); })); - it('should compile without error', async(() => { + it('should compile without error', waitForAsync(() => { expect(app).toBeTruthy(); })); }); diff --git a/ui/src/app/admin/component/delete-user-dialog.component.spec.ts b/ui/src/app/admin/component/delete-user-dialog.component.spec.ts index 50acb6d54..92677d126 100644 --- a/ui/src/app/admin/component/delete-user-dialog.component.spec.ts +++ b/ui/src/app/admin/component/delete-user-dialog.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { NgbDropdownModule, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; @@ -22,7 +22,7 @@ describe('Delete Dialog (modal) Component', () => { let fixture: ComponentFixture; let instance: TestHostComponent; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -49,7 +49,7 @@ describe('Delete Dialog (modal) Component', () => { fixture.detectChanges(); })); - it('should compile without error', async(() => { + it('should compile without error', waitForAsync(() => { expect(app).toBeTruthy(); })); }); diff --git a/ui/src/app/admin/component/enable-metadata.component.spec.ts b/ui/src/app/admin/component/enable-metadata.component.spec.ts index 3d3132edb..afe962011 100644 --- a/ui/src/app/admin/component/enable-metadata.component.spec.ts +++ b/ui/src/app/admin/component/enable-metadata.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { NgbDropdownModule, NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap'; @@ -28,7 +28,7 @@ describe('Enable Metadata (modal) Component', () => { let instance: TestHostComponent; let store: Store; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -59,7 +59,7 @@ describe('Enable Metadata (modal) Component', () => { fixture.detectChanges(); })); - it('should compile without error', async(() => { + it('should compile without error', waitForAsync(() => { expect(app).toBeTruthy(); })); }); diff --git a/ui/src/app/admin/component/user-management.component.spec.ts b/ui/src/app/admin/component/user-management.component.spec.ts index 53eab38c9..6a6c9aa27 100644 --- a/ui/src/app/admin/component/user-management.component.spec.ts +++ b/ui/src/app/admin/component/user-management.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { Store, StoreModule, combineReducers } from '@ngrx/store'; import { NgbDropdownModule, NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap'; @@ -26,7 +26,7 @@ describe('User Management Component', () => { let instance: TestHostComponent; let store: Store; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ FormsModule, @@ -58,7 +58,7 @@ describe('User Management Component', () => { fixture.detectChanges(); })); - it('should compile without error', async(() => { + it('should compile without error', waitForAsync(() => { expect(app).toBeTruthy(); })); }); diff --git a/ui/src/app/admin/service/admin.service.spec.ts b/ui/src/app/admin/service/admin.service.spec.ts index 609c2d8bc..39955145f 100644 --- a/ui/src/app/admin/service/admin.service.spec.ts +++ b/ui/src/app/admin/service/admin.service.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, async, inject } from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { AdminService } from './admin.service'; import { HttpTestingController, HttpClientTestingModule } from '@angular/common/http/testing'; import { HttpRequest, HttpClientModule } from '@angular/common/http'; @@ -39,7 +39,7 @@ describe('Admin Service', () => { }); describe('query', () => { - it(`should send an expected query request`, async(inject([AdminService, HttpTestingController], + it(`should send an expected query request`, waitForAsync(inject([AdminService, HttpTestingController], (service: AdminService, backend: HttpTestingController) => { service.query().subscribe(); @@ -51,7 +51,7 @@ describe('Admin Service', () => { ))); }); describe('update method', () => { - it(`should send an expected patch request`, async(inject([AdminService, HttpTestingController], + it(`should send an expected patch request`, waitForAsync(inject([AdminService, HttpTestingController], (service: AdminService, backend: HttpTestingController) => { service.update({...users[0]}).subscribe(); @@ -63,7 +63,7 @@ describe('Admin Service', () => { ))); }); describe('remove method', () => { - it(`should send an expected delete request`, async(inject([AdminService, HttpTestingController], + it(`should send an expected delete request`, waitForAsync(inject([AdminService, HttpTestingController], (service: AdminService, backend: HttpTestingController) => { service.remove(users[0].username).subscribe(); diff --git a/ui/src/app/app.component.spec.ts b/ui/src/app/app.component.spec.ts index 9e501e543..34bf1f15d 100644 --- a/ui/src/app/app.component.spec.ts +++ b/ui/src/app/app.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { AppComponent } from './app.component'; @@ -30,7 +30,7 @@ describe('AppComponent', () => { let app: AppComponent; let store: Store; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ providers: [ {provide: I18nService, useClass: MockI18nService }, @@ -61,12 +61,12 @@ describe('AppComponent', () => { fixture.detectChanges(); })); - it('should create the app', async(() => { + it('should create the app', waitForAsync(() => { expect(app).toBeTruthy(); expect(store.dispatch).toHaveBeenCalledTimes(3); })); - it(`should have as title 'Shib-UI'`, async(() => { + it(`should have as title 'Shib-UI'`, waitForAsync(() => { expect(app.title).toEqual('Shib UI'); })); diff --git a/ui/src/app/app.routing.ts b/ui/src/app/app.routing.ts index 06f79db25..92a7ae4cd 100644 --- a/ui/src/app/app.routing.ts +++ b/ui/src/app/app.routing.ts @@ -15,11 +15,12 @@ const routes: Routes = [ @NgModule({ imports: [RouterModule.forRoot(routes, { - preloadingStrategy: PreloadAllModules, - scrollOffset: [0, 64], - anchorScrolling: 'enabled', - scrollPositionRestoration: 'enabled' - })], + preloadingStrategy: PreloadAllModules, + scrollOffset: [0, 64], + anchorScrolling: 'enabled', + scrollPositionRestoration: 'enabled', + relativeLinkResolution: 'legacy' +})], exports: [RouterModule] }) export class AppRoutingModule { } diff --git a/ui/src/app/core/component/page-title.component.spec.ts b/ui/src/app/core/component/page-title.component.spec.ts index 2f0d6a668..b810d7d7e 100644 --- a/ui/src/app/core/component/page-title.component.spec.ts +++ b/ui/src/app/core/component/page-title.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; @@ -26,7 +26,7 @@ describe('Page Title Component', () => { let app: PageTitleComponent; let store: Store; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, diff --git a/ui/src/app/core/core.module.ts b/ui/src/app/core/core.module.ts index c18bb8852..ad27ad37f 100644 --- a/ui/src/app/core/core.module.ts +++ b/ui/src/app/core/core.module.ts @@ -33,20 +33,20 @@ export const COMPONENTS = [ exports: COMPONENTS, }) export class CoreModule { - static forRoot() { - return { - ngModule: RootCoreModule, - providers: [ - UserService, - FileService, - ModalService, - DifferentialService, - CanDeactivateGuard, - NavigatorService, - NavigationService - ] - }; - } + static forRoot(): ModuleWithProviders { + return { + ngModule: RootCoreModule, + providers: [ + UserService, + FileService, + ModalService, + DifferentialService, + CanDeactivateGuard, + NavigatorService, + NavigationService + ] + }; +} } @NgModule({ diff --git a/ui/src/app/core/service/api-path.interceptor.spec.ts b/ui/src/app/core/service/api-path.interceptor.spec.ts index 3f1b8fc66..976805dca 100644 --- a/ui/src/app/core/service/api-path.interceptor.spec.ts +++ b/ui/src/app/core/service/api-path.interceptor.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, async, inject } from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { HTTP_INTERCEPTORS, HttpClientModule, HttpClient, HttpRequest } from '@angular/common/http'; import { HttpTestingController, HttpClientTestingModule } from '@angular/common/http/testing'; @@ -27,7 +27,7 @@ describe('API Path Interceptor Service', () => { }); describe('query', () => { - it(`should send an expected query request`, async(inject([HttpClient, HttpTestingController], + it(`should send an expected query request`, waitForAsync(inject([HttpClient, HttpTestingController], (service: HttpClient, backend: HttpTestingController) => { service.get('foo').subscribe(); diff --git a/ui/src/app/core/service/file.service.spec.ts b/ui/src/app/core/service/file.service.spec.ts index 518d8269f..81eefdbc3 100644 --- a/ui/src/app/core/service/file.service.spec.ts +++ b/ui/src/app/core/service/file.service.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, async, inject } from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { FileService } from './file.service'; const getFakeFile = (str: string) => { diff --git a/ui/src/app/core/service/navigation.service.spec.ts b/ui/src/app/core/service/navigation.service.spec.ts index d036019e4..bb92403c6 100644 --- a/ui/src/app/core/service/navigation.service.spec.ts +++ b/ui/src/app/core/service/navigation.service.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, async } from '@angular/core/testing'; +import { TestBed, waitForAsync } from '@angular/core/testing'; import { NavigationService } from './navigation.service'; diff --git a/ui/src/app/i18n/i18n.module.ts b/ui/src/app/i18n/i18n.module.ts index b800ce48d..e8ec9c6b9 100644 --- a/ui/src/app/i18n/i18n.module.ts +++ b/ui/src/app/i18n/i18n.module.ts @@ -42,14 +42,14 @@ export const PIPES = [ ], }) export class I18nModule { - static forRoot() { - return { - ngModule: RootI18nModule, - providers: [ - I18nService - ] - }; - } + static forRoot(): ModuleWithProviders { + return { + ngModule: RootI18nModule, + providers: [ + I18nService + ] + }; +} } @NgModule({ diff --git a/ui/src/app/i18n/service/i18n.service.spec.ts b/ui/src/app/i18n/service/i18n.service.spec.ts index dd4220bf5..e8059fe80 100644 --- a/ui/src/app/i18n/service/i18n.service.spec.ts +++ b/ui/src/app/i18n/service/i18n.service.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, async, inject } from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { I18nService } from './i18n.service'; import { HttpClientModule, HttpRequest } from '@angular/common/http'; import { NavigatorService } from '../../core/service/navigator.service'; @@ -36,7 +36,7 @@ describe('i18n Service', () => { }); describe('get method', () => { - it(`should send an expected GET request`, async(inject([I18nService, HttpTestingController], + it(`should send an expected GET request`, waitForAsync(inject([I18nService, HttpTestingController], (i18n: I18nService, backend: HttpTestingController) => { const lang = 'en'; i18n.get(lang).subscribe(); diff --git a/ui/src/app/metadata/configuration/component/metadata-configuration.component.spec.ts b/ui/src/app/metadata/configuration/component/metadata-configuration.component.spec.ts index e1f49151f..bce7bff3a 100644 --- a/ui/src/app/metadata/configuration/component/metadata-configuration.component.spec.ts +++ b/ui/src/app/metadata/configuration/component/metadata-configuration.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild, Input } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { MetadataConfigurationComponent } from './metadata-configuration.component'; @@ -40,7 +40,7 @@ describe('Metadata Configuration Component', () => { let app: MetadataConfigurationComponent; let router: Router; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -61,7 +61,7 @@ describe('Metadata Configuration Component', () => { fixture.detectChanges(); })); - it('should accept a configuration input', async(() => { + it('should accept a configuration input', waitForAsync(() => { expect(app).toBeTruthy(); })); diff --git a/ui/src/app/metadata/configuration/component/metadata-header.component.spec.ts b/ui/src/app/metadata/configuration/component/metadata-header.component.spec.ts index 95aa91bda..0f6e9b9f5 100644 --- a/ui/src/app/metadata/configuration/component/metadata-header.component.spec.ts +++ b/ui/src/app/metadata/configuration/component/metadata-header.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { MockI18nModule } from '../../../../testing/i18n.stub'; import { MetadataVersion } from '../model/version'; import { MetadataHeaderComponent } from './metadata-header.component'; @@ -33,7 +33,7 @@ describe('Metadata Header Component', () => { let instance: TestHostComponent; let app: MetadataHeaderComponent; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ MockI18nModule @@ -50,7 +50,7 @@ describe('Metadata Header Component', () => { fixture.detectChanges(); })); - it('should accept a property input', async(() => { + it('should accept a property input', waitForAsync(() => { expect(app).toBeTruthy(); })); }); diff --git a/ui/src/app/metadata/configuration/component/property/array-property.component.spec.ts b/ui/src/app/metadata/configuration/component/property/array-property.component.spec.ts index 05be27ca8..3c9aa3793 100644 --- a/ui/src/app/metadata/configuration/component/property/array-property.component.spec.ts +++ b/ui/src/app/metadata/configuration/component/property/array-property.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild, Input } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { NgbDropdownModule, NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap'; @@ -40,7 +40,7 @@ describe('Array Property Component', () => { let app: ArrayPropertyComponent; let service: AttributesService; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbPopoverModule, @@ -63,7 +63,7 @@ describe('Array Property Component', () => { fixture.detectChanges(); })); - it('should accept a property input', async(() => { + it('should accept a property input', waitForAsync(() => { expect(app).toBeTruthy(); })); diff --git a/ui/src/app/metadata/configuration/component/property/configuration-property.component.spec.ts b/ui/src/app/metadata/configuration/component/property/configuration-property.component.spec.ts index a3c7d31ce..35e115f88 100644 --- a/ui/src/app/metadata/configuration/component/property/configuration-property.component.spec.ts +++ b/ui/src/app/metadata/configuration/component/property/configuration-property.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild, Input } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap'; @@ -31,7 +31,7 @@ describe('Configuration Property Component', () => { let instance: TestHostComponent; let app: ConfigurationPropertyComponent; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbPopoverModule, @@ -50,7 +50,7 @@ describe('Configuration Property Component', () => { fixture.detectChanges(); })); - it('should accept a property input', async(() => { + it('should accept a property input', waitForAsync(() => { expect(app).toBeTruthy(); })); diff --git a/ui/src/app/metadata/configuration/component/property/filter-target-property.component.spec.ts b/ui/src/app/metadata/configuration/component/property/filter-target-property.component.spec.ts index 9c63a1b86..4ec53ce0c 100644 --- a/ui/src/app/metadata/configuration/component/property/filter-target-property.component.spec.ts +++ b/ui/src/app/metadata/configuration/component/property/filter-target-property.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap'; @@ -35,7 +35,7 @@ describe('Filter Target Property Component', () => { let instance: TestHostComponent; let app: FilterTargetPropertyComponent; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbPopoverModule, @@ -57,7 +57,7 @@ describe('Filter Target Property Component', () => { fixture.detectChanges(); })); - it('should accept a property input', async(() => { + it('should accept a property input', waitForAsync(() => { expect(app).toBeTruthy(); })); }); diff --git a/ui/src/app/metadata/configuration/component/property/object-property.component.spec.ts b/ui/src/app/metadata/configuration/component/property/object-property.component.spec.ts index 57aac139c..f3bc215a7 100644 --- a/ui/src/app/metadata/configuration/component/property/object-property.component.spec.ts +++ b/ui/src/app/metadata/configuration/component/property/object-property.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap'; @@ -34,7 +34,7 @@ describe('Object Property Component', () => { let instance: TestHostComponent; let app: ObjectPropertyComponent; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbPopoverModule, @@ -56,7 +56,7 @@ describe('Object Property Component', () => { fixture.detectChanges(); })); - it('should accept a property input', async(() => { + it('should accept a property input', waitForAsync(() => { expect(app).toBeTruthy(); })); }); diff --git a/ui/src/app/metadata/configuration/component/property/primitive-property.component.spec.ts b/ui/src/app/metadata/configuration/component/property/primitive-property.component.spec.ts index 17e57b6dc..9982137a3 100644 --- a/ui/src/app/metadata/configuration/component/property/primitive-property.component.spec.ts +++ b/ui/src/app/metadata/configuration/component/property/primitive-property.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild, Input } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { NgbDropdownModule, NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap'; @@ -35,7 +35,7 @@ describe('Primitive Property Component', () => { let instance: TestHostComponent; let app: PrimitivePropertyComponent; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -55,7 +55,7 @@ describe('Primitive Property Component', () => { fixture.detectChanges(); })); - it('should accept a property input', async(() => { + it('should accept a property input', waitForAsync(() => { expect(app).toBeTruthy(); })); }); diff --git a/ui/src/app/metadata/configuration/configuration.module.ts b/ui/src/app/metadata/configuration/configuration.module.ts index 6430886b8..b7f2827a4 100644 --- a/ui/src/app/metadata/configuration/configuration.module.ts +++ b/ui/src/app/metadata/configuration/configuration.module.ts @@ -93,7 +93,7 @@ import { FilterCompareVersionEffects } from './effect/filter.effect'; ] }) export class MetadataConfigurationModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: RootMetadataConfigurationModule, providers: [ diff --git a/ui/src/app/metadata/configuration/container/configuration.component.spec.ts b/ui/src/app/metadata/configuration/container/configuration.component.spec.ts index 6341d73db..8d33546fe 100644 --- a/ui/src/app/metadata/configuration/container/configuration.component.spec.ts +++ b/ui/src/app/metadata/configuration/container/configuration.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, combineReducers } from '@ngrx/store'; import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; @@ -26,7 +26,7 @@ describe('Metadata Configuration Page Component', () => { let instance: TestHostComponent; let app: ConfigurationComponent; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -50,7 +50,7 @@ describe('Metadata Configuration Page Component', () => { fixture.detectChanges(); })); - it('should load metadata objects', async(() => { + it('should load metadata objects', waitForAsync(() => { expect(app).toBeTruthy(); })); }); diff --git a/ui/src/app/metadata/configuration/container/metadata-options.component.spec.ts b/ui/src/app/metadata/configuration/container/metadata-options.component.spec.ts index 59dabed3a..277e66a47 100644 --- a/ui/src/app/metadata/configuration/container/metadata-options.component.spec.ts +++ b/ui/src/app/metadata/configuration/container/metadata-options.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild, Input } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule, SpyNgModuleFactoryLoader } from '@angular/router/testing'; import { StoreModule, combineReducers, Store } from '@ngrx/store'; import { NgbDropdownModule, NgbModalModule, NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'; @@ -57,7 +57,7 @@ describe('Metadata Options Page Component', () => { } as MetadataFilter; let modal: NgbModal; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -98,7 +98,7 @@ describe('Metadata Options Page Component', () => { fixture.detectChanges(); })); - it('should load metadata objects', async(() => { + it('should load metadata objects', waitForAsync(() => { expect(app).toBeTruthy(); expect(store.select).toHaveBeenCalled(); })); diff --git a/ui/src/app/metadata/configuration/container/metadata-xml.component.spec.ts b/ui/src/app/metadata/configuration/container/metadata-xml.component.spec.ts index 4767482f9..03d4d3a88 100644 --- a/ui/src/app/metadata/configuration/container/metadata-xml.component.spec.ts +++ b/ui/src/app/metadata/configuration/container/metadata-xml.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild, Input } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, combineReducers, Store } from '@ngrx/store'; import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; @@ -26,7 +26,7 @@ describe('Metadata Xml Page Component', () => { let app: MetadataXmlComponent; let store: Store; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -52,7 +52,7 @@ describe('Metadata Xml Page Component', () => { fixture.detectChanges(); })); - it('should load metadata objects', async(() => { + it('should load metadata objects', waitForAsync(() => { expect(app).toBeTruthy(); expect(store.select).toHaveBeenCalledTimes(3); })); diff --git a/ui/src/app/metadata/configuration/container/restore-edit-step.component.spec.ts b/ui/src/app/metadata/configuration/container/restore-edit-step.component.spec.ts index 501a35609..d0608169f 100644 --- a/ui/src/app/metadata/configuration/container/restore-edit-step.component.spec.ts +++ b/ui/src/app/metadata/configuration/container/restore-edit-step.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild, NO_ERRORS_SCHEMA } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, combineReducers, Store } from '@ngrx/store'; import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; @@ -34,7 +34,7 @@ describe('Restore Version Edit Step Component', () => { let store: Store; let dispatchSpy; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, diff --git a/ui/src/app/metadata/configuration/container/restore-edit.component.spec.ts b/ui/src/app/metadata/configuration/container/restore-edit.component.spec.ts index 972236642..2388e6c97 100644 --- a/ui/src/app/metadata/configuration/container/restore-edit.component.spec.ts +++ b/ui/src/app/metadata/configuration/container/restore-edit.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild, NO_ERRORS_SCHEMA } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, combineReducers, Store } from '@ngrx/store'; import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; @@ -29,7 +29,7 @@ describe('Restore Version Edit Component', () => { let store: Store; let dispatchSpy; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, diff --git a/ui/src/app/metadata/configuration/container/restore.component.spec.ts b/ui/src/app/metadata/configuration/container/restore.component.spec.ts index afa3d3dfe..45590e342 100644 --- a/ui/src/app/metadata/configuration/container/restore.component.spec.ts +++ b/ui/src/app/metadata/configuration/container/restore.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild, Input } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, combineReducers, Store } from '@ngrx/store'; import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; @@ -31,7 +31,7 @@ describe('Metadata Restore Page Component', () => { let store: Store; let router: Router; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -63,7 +63,7 @@ describe('Metadata Restore Page Component', () => { fixture.detectChanges(); })); - it('should load metadata objects', async(() => { + it('should load metadata objects', waitForAsync(() => { expect(app).toBeTruthy(); expect(store.select).toHaveBeenCalledTimes(2); expect(store.dispatch).not.toHaveBeenCalled(); diff --git a/ui/src/app/metadata/configuration/container/version-options.component.spec.ts b/ui/src/app/metadata/configuration/container/version-options.component.spec.ts index 8894111a9..cbdf6f18f 100644 --- a/ui/src/app/metadata/configuration/container/version-options.component.spec.ts +++ b/ui/src/app/metadata/configuration/container/version-options.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild, NO_ERRORS_SCHEMA } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, combineReducers } from '@ngrx/store'; import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; @@ -29,7 +29,7 @@ describe('Metadata Version Options Page Component', () => { let app: VersionOptionsComponent; let scroller: ViewportScroller; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, diff --git a/ui/src/app/metadata/configuration/container/version.component.spec.ts b/ui/src/app/metadata/configuration/container/version.component.spec.ts index 9a020f3dc..559449b2b 100644 --- a/ui/src/app/metadata/configuration/container/version.component.spec.ts +++ b/ui/src/app/metadata/configuration/container/version.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, combineReducers } from '@ngrx/store'; import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; @@ -26,7 +26,7 @@ describe('Metadata Version Page Component', () => { let instance: TestHostComponent; let app: VersionComponent; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, diff --git a/ui/src/app/metadata/configuration/service/configuration.service.spec.ts b/ui/src/app/metadata/configuration/service/configuration.service.spec.ts index e191471a0..e02d9bd80 100644 --- a/ui/src/app/metadata/configuration/service/configuration.service.spec.ts +++ b/ui/src/app/metadata/configuration/service/configuration.service.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, async, inject } from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { HttpClientModule, HttpRequest } from '@angular/common/http'; import { HttpTestingController, HttpClientTestingModule } from '@angular/common/http/testing'; import { MetadataConfigurationService } from './configuration.service'; @@ -45,7 +45,7 @@ describe(`Configuration Service`, () => { }); describe('find method', () => { - it(`should call the resolver service when type is resolver`, async(inject([MetadataConfigurationService, HttpTestingController], + it(`should call the resolver service when type is resolver`, waitForAsync(inject([MetadataConfigurationService, HttpTestingController], (service: MetadataConfigurationService, backend: HttpTestingController) => { spyOn(resolverService, 'find').and.callThrough(); const type = 'resolver'; @@ -54,7 +54,7 @@ describe(`Configuration Service`, () => { expect(resolverService.find).toHaveBeenCalledWith(id); } ))); - it(`should call the provider service when type is resolver`, async(inject([MetadataConfigurationService, HttpTestingController], + it(`should call the provider service when type is resolver`, waitForAsync(inject([MetadataConfigurationService, HttpTestingController], (service: MetadataConfigurationService, backend: HttpTestingController) => { spyOn(providerService, 'find').and.callThrough(); const type = 'provider'; @@ -63,7 +63,7 @@ describe(`Configuration Service`, () => { expect(providerService.find).toHaveBeenCalledWith(id); } ))); - it(`should throw an error when a type is not found`, async(inject([MetadataConfigurationService, HttpTestingController], + it(`should throw an error when a type is not found`, waitForAsync(inject([MetadataConfigurationService, HttpTestingController], (service: MetadataConfigurationService, backend: HttpTestingController) => { spyOn(providerService, 'find').and.callThrough(); const type = 'bar'; @@ -76,7 +76,7 @@ describe(`Configuration Service`, () => { }); describe('loadSchema method', () => { - it(`should send an expected GET request`, async(inject([MetadataConfigurationService, HttpTestingController], + it(`should send an expected GET request`, waitForAsync(inject([MetadataConfigurationService, HttpTestingController], (service: MetadataConfigurationService, backend: HttpTestingController) => { const path = '/foo.json'; service.loadSchema(path).subscribe(); @@ -89,14 +89,14 @@ describe(`Configuration Service`, () => { }); describe('getDefinition method', () => { - it(`should retrieve the editor definition by model type`, async(inject([MetadataConfigurationService, HttpTestingController], + it(`should retrieve the editor definition by model type`, waitForAsync(inject([MetadataConfigurationService, HttpTestingController], (service: MetadataConfigurationService, backend: HttpTestingController) => { const def = service.getDefinition('FileBackedHttpMetadataResolver'); expect(def).toBe(FileBackedHttpMetadataProviderEditor); } ))); - it(`should instantiate an editor for resolvers`, async(inject([MetadataConfigurationService], + it(`should instantiate an editor for resolvers`, waitForAsync(inject([MetadataConfigurationService], (service: MetadataConfigurationService) => { const def = service.getDefinition('foo'); expect(def instanceof MetadataSourceEditor).toBe(true); @@ -105,7 +105,7 @@ describe(`Configuration Service`, () => { }); describe('getMetadataConfiguration method', () => { - it('should return the parsed configuration', async(inject([MetadataConfigurationService], + it('should return the parsed configuration', waitForAsync(inject([MetadataConfigurationService], (service: MetadataConfigurationService) => { const model = {} as Metadata; const definition = {steps: []}; diff --git a/ui/src/app/metadata/configuration/service/history.service.spec.ts b/ui/src/app/metadata/configuration/service/history.service.spec.ts index 8edb179a3..447be26be 100644 --- a/ui/src/app/metadata/configuration/service/history.service.spec.ts +++ b/ui/src/app/metadata/configuration/service/history.service.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, async, inject } from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { HttpClientModule, HttpRequest } from '@angular/common/http'; import { HttpTestingController, HttpClientTestingModule } from '@angular/common/http/testing'; import { MetadataHistoryService } from './history.service'; @@ -20,7 +20,7 @@ describe(`Attributes Service`, () => { }); describe('query method', () => { - it(`should return a MetadataHistory`, async(inject([MetadataHistoryService, HttpTestingController], + it(`should return a MetadataHistory`, waitForAsync(inject([MetadataHistoryService, HttpTestingController], (service: MetadataHistoryService) => { service.query('foo', 'resolver').subscribe(history => { expect(history).toBeDefined(); @@ -30,7 +30,7 @@ describe(`Attributes Service`, () => { }); describe('getVersions method', () => { - it(`should join a list of observables`, async(inject([MetadataHistoryService, HttpTestingController], + it(`should join a list of observables`, waitForAsync(inject([MetadataHistoryService, HttpTestingController], (service: MetadataHistoryService) => { spyOn(service, 'getVersion').and.returnValue(of()); service.getVersions('foo', ['abc', 'def'], 'resolver').subscribe(history => { @@ -41,7 +41,7 @@ describe(`Attributes Service`, () => { }); describe('getVersion method', () => { - it(`should get the primary version of the resource`, async(inject([MetadataHistoryService, HttpTestingController], + it(`should get the primary version of the resource`, waitForAsync(inject([MetadataHistoryService, HttpTestingController], (service: MetadataHistoryService, backend: HttpTestingController) => { const resourceId = 'foo'; const type = 'resource'; @@ -52,7 +52,7 @@ describe(`Attributes Service`, () => { }, `GET schema by path`); } ))); - it(`should get the provided version of the resource`, async(inject([MetadataHistoryService, HttpTestingController], + it(`should get the provided version of the resource`, waitForAsync(inject([MetadataHistoryService, HttpTestingController], (service: MetadataHistoryService, backend: HttpTestingController) => { const resourceId = 'foo'; const type = 'resource'; @@ -67,7 +67,7 @@ describe(`Attributes Service`, () => { }); describe('updateVersion method', () => { - it(`should send a put request`, async(inject([MetadataHistoryService, HttpTestingController], + it(`should send a put request`, waitForAsync(inject([MetadataHistoryService, HttpTestingController], (service: MetadataHistoryService, backend: HttpTestingController) => { const resourceId = 'foo'; const type = 'resource'; diff --git a/ui/src/app/metadata/domain/component/editor-nav.component.spec.ts b/ui/src/app/metadata/domain/component/editor-nav.component.spec.ts index 58c3df04e..65e8f7865 100644 --- a/ui/src/app/metadata/domain/component/editor-nav.component.spec.ts +++ b/ui/src/app/metadata/domain/component/editor-nav.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; @@ -38,7 +38,7 @@ describe('Editor Nav Component', () => { initialValues: [] }; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -68,7 +68,7 @@ describe('Editor Nav Component', () => { fixture.detectChanges(); })); - it('should instantiate the component', async(() => { + it('should instantiate the component', waitForAsync(() => { expect(app).toBeTruthy(); })); diff --git a/ui/src/app/metadata/domain/component/summary-property.component.spec.ts b/ui/src/app/metadata/domain/component/summary-property.component.spec.ts index b03bf4d70..307faa61b 100644 --- a/ui/src/app/metadata/domain/component/summary-property.component.spec.ts +++ b/ui/src/app/metadata/domain/component/summary-property.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { NgbDropdownModule, NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap'; @@ -38,7 +38,7 @@ describe('Summary Property Component', () => { let app: SummaryPropertyComponent; let service: AttributesService; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -66,12 +66,12 @@ describe('Summary Property Component', () => { fixture.detectChanges(); })); - it('should instantiate the component', async(() => { + it('should instantiate the component', waitForAsync(() => { expect(app).toBeTruthy(); })); describe('attribute list getter', () => { - it('should return the data from the property schema', async(() => { + it('should return the data from the property schema', waitForAsync(() => { let list = [{ key: 'foo', label: 'foo' }]; app.property = { type: 'array', @@ -90,7 +90,7 @@ describe('Summary Property Component', () => { }); })); - it('should return fetch data from the supplied path', async(() => { + it('should return fetch data from the supplied path', waitForAsync(() => { let list = [{key: 'foo', label: 'foo'}]; spyOn(service, 'query').and.returnValue(of(list)); app.property = { @@ -110,7 +110,7 @@ describe('Summary Property Component', () => { }); })); - it('should return an empty array if no data is found', async(() => { + it('should return an empty array if no data is found', waitForAsync(() => { let list = []; spyOn(service, 'query').and.returnValue(of(list)); app.property = { diff --git a/ui/src/app/metadata/domain/component/unsaved-entity.dialog.spec.ts b/ui/src/app/metadata/domain/component/unsaved-entity.dialog.spec.ts index 4bd80a64e..1a771f05c 100644 --- a/ui/src/app/metadata/domain/component/unsaved-entity.dialog.spec.ts +++ b/ui/src/app/metadata/domain/component/unsaved-entity.dialog.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture} from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; import { UnsavedEntityComponent } from './unsaved-entity.dialog'; import { NgbActiveModalStub } from '../../../../testing/modal.stub'; @@ -21,7 +21,7 @@ describe('Unsaved Provider Dialog Component', () => { let instance: TestHostComponent; let cmp: UnsavedEntityComponent; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ MockI18nModule @@ -41,7 +41,7 @@ describe('Unsaved Provider Dialog Component', () => { fixture.detectChanges(); })); - it('should instantiate the component', async(() => { + it('should instantiate the component', waitForAsync(() => { expect(cmp).toBeTruthy(); })); }); diff --git a/ui/src/app/metadata/domain/domain.module.ts b/ui/src/app/metadata/domain/domain.module.ts index 954655cdc..c3679435e 100644 --- a/ui/src/app/metadata/domain/domain.module.ts +++ b/ui/src/app/metadata/domain/domain.module.ts @@ -48,7 +48,7 @@ export const DECLARATIONS = [ providers: [] }) export class DomainModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: RootDomainModule, providers: [ diff --git a/ui/src/app/metadata/domain/model/wizards/metadata-source-editor.ts b/ui/src/app/metadata/domain/model/wizards/metadata-source-editor.ts index 5fbfbd48a..65e2569c0 100644 --- a/ui/src/app/metadata/domain/model/wizards/metadata-source-editor.ts +++ b/ui/src/app/metadata/domain/model/wizards/metadata-source-editor.ts @@ -2,7 +2,9 @@ import { Wizard, WizardStep } from '../../../../wizard/model'; import { MetadataResolver } from '../metadata-resolver'; import { MetadataSourceBase } from './metadata-source-base'; import API_BASE_PATH from '../../../../app.constant'; +import { Injectable } from "@angular/core"; +@Injectable() export class MetadataSourceEditor extends MetadataSourceBase implements Wizard { schema = `${API_BASE_PATH}/ui/MetadataSources`; steps: WizardStep[] = [ diff --git a/ui/src/app/metadata/domain/model/wizards/metadata-source-wizard.ts b/ui/src/app/metadata/domain/model/wizards/metadata-source-wizard.ts index b92ea5410..edf1209b0 100644 --- a/ui/src/app/metadata/domain/model/wizards/metadata-source-wizard.ts +++ b/ui/src/app/metadata/domain/model/wizards/metadata-source-wizard.ts @@ -2,7 +2,9 @@ import { Wizard, WizardStep } from '../../../../wizard/model'; import { MetadataResolver } from '../metadata-resolver'; import { MetadataSourceBase } from './metadata-source-base'; import API_BASE_PATH from '../../../../app.constant'; +import { Injectable } from "@angular/core"; +@Injectable() export class MetadataSourceWizard extends MetadataSourceBase implements Wizard { schema = `${API_BASE_PATH}/ui/MetadataSources`; steps: WizardStep[] = [ diff --git a/ui/src/app/metadata/domain/service/attributes.service.spec.ts b/ui/src/app/metadata/domain/service/attributes.service.spec.ts index 76ed230b9..fdb3ded69 100644 --- a/ui/src/app/metadata/domain/service/attributes.service.spec.ts +++ b/ui/src/app/metadata/domain/service/attributes.service.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, async, inject } from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { AttributesService } from './attributes.service'; import { HttpClient, HttpClientModule, HttpRequest } from '@angular/common/http'; import { of } from 'rxjs'; @@ -18,7 +18,7 @@ describe(`Attributes Service`, () => { }); describe('query method', () => { - it(`should call the request attributes method`, async(inject([AttributesService, HttpTestingController], + it(`should call the request attributes method`, waitForAsync(inject([AttributesService, HttpTestingController], (service: AttributesService) => { spyOn(service, 'requestAttributes').and.returnValue(of([])); service.query().subscribe(() => { @@ -28,7 +28,7 @@ describe(`Attributes Service`, () => { ))); }); describe('requestAttributes method', () => { - it(`should send an expected GET request`, async(inject([AttributesService, HttpTestingController], + it(`should send an expected GET request`, waitForAsync(inject([AttributesService, HttpTestingController], (service: AttributesService, backend: HttpTestingController) => { service.requestAttributes('foo').subscribe(); diff --git a/ui/src/app/metadata/domain/service/entity-id.service.spec.ts b/ui/src/app/metadata/domain/service/entity-id.service.spec.ts index 4189ce153..9fdb54970 100644 --- a/ui/src/app/metadata/domain/service/entity-id.service.spec.ts +++ b/ui/src/app/metadata/domain/service/entity-id.service.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, async, inject } from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { HttpClientModule, HttpRequest, HttpParams } from '@angular/common/http'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; import { EntityIdService } from './entity-id.service'; @@ -25,7 +25,7 @@ describe(`EntityIdService`, () => { offset: 1 }; - it(`should send an expected GET request`, async(inject([EntityIdService, HttpTestingController], + it(`should send an expected GET request`, waitForAsync(inject([EntityIdService, HttpTestingController], (service: EntityIdService, backend: HttpTestingController) => { service.query(query).subscribe(); diff --git a/ui/src/app/metadata/domain/service/entity-validators.service.spec.ts b/ui/src/app/metadata/domain/service/entity-validators.service.spec.ts index c0c861979..d6c4a8392 100644 --- a/ui/src/app/metadata/domain/service/entity-validators.service.spec.ts +++ b/ui/src/app/metadata/domain/service/entity-validators.service.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, async, inject } from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { EntityValidators } from './entity-validators.service'; import { Observable, of } from 'rxjs'; import { AbstractControl, FormBuilder, ReactiveFormsModule } from '@angular/forms'; @@ -19,7 +19,7 @@ describe(`Entity Validators service`, () => { }); describe('createUniqueIdValidator', () => { - it('should detect that a provided id is already used', async(inject([FormBuilder], (fb) => { + it('should detect that a provided id is already used', waitForAsync(inject([FormBuilder], (fb) => { let obs = of(ids), validator = EntityValidators.createUniqueIdValidator(obs), ctrl = fb.control('foo'); @@ -28,7 +28,7 @@ describe(`Entity Validators service`, () => { }); }))); - it('should detect that a provided id is NOT already used', async(inject([FormBuilder], (fb) => { + it('should detect that a provided id is NOT already used', waitForAsync(inject([FormBuilder], (fb) => { let obs = of(ids), validator = EntityValidators.createUniqueIdValidator(obs), ctrl = fb.control('hi'); @@ -39,7 +39,7 @@ describe(`Entity Validators service`, () => { }); describe('createOrgValidator', () => { - it('should detect that all controls in a group have a value', async(inject([FormBuilder], (fb) => { + it('should detect that all controls in a group have a value', waitForAsync(inject([FormBuilder], (fb) => { let validator = EntityValidators.createOrgValidator(), group = fb.group({ foo: '', @@ -53,7 +53,7 @@ describe(`Entity Validators service`, () => { }); }))); - it('should not validate if all controls are empty', async(inject([FormBuilder], (fb) => { + it('should not validate if all controls are empty', waitForAsync(inject([FormBuilder], (fb) => { let validator = EntityValidators.createOrgValidator(), group = fb.group({ foo: '', @@ -65,7 +65,7 @@ describe(`Entity Validators service`, () => { }); }))); - it('should not validate if all controls are empty', async(inject([FormBuilder], (fb) => { + it('should not validate if all controls are empty', waitForAsync(inject([FormBuilder], (fb) => { let validator = EntityValidators.createOrgValidator(), group = fb.group({ foo: '', @@ -81,7 +81,7 @@ describe(`Entity Validators service`, () => { }); }))); - it('should return an empty observable when no control is provided', async(inject([FormBuilder], (fb) => { + it('should return an empty observable when no control is provided', waitForAsync(inject([FormBuilder], (fb) => { let validator = EntityValidators.createOrgValidator(); validator(null).subscribe(next => { expect(next).toBeFalsy(); @@ -90,7 +90,7 @@ describe(`Entity Validators service`, () => { }); describe('createUniqueIdValidator', () => { - it('should detect that a provided id is in the collection', async(inject([FormBuilder], (fb) => { + it('should detect that a provided id is in the collection', waitForAsync(inject([FormBuilder], (fb) => { let obs = of(ids), validator = EntityValidators.existsInCollection(obs), ctrl = fb.control('foo'); @@ -99,7 +99,7 @@ describe(`Entity Validators service`, () => { }); }))); - it('should detect that a provided id is not in the collection', async(inject([FormBuilder], (fb) => { + it('should detect that a provided id is not in the collection', waitForAsync(inject([FormBuilder], (fb) => { let obs = of(ids), validator = EntityValidators.existsInCollection(obs), ctrl = fb.control('hi'); diff --git a/ui/src/app/metadata/domain/service/filter.service.spec.ts b/ui/src/app/metadata/domain/service/filter.service.spec.ts index 218054885..bf8147a4d 100644 --- a/ui/src/app/metadata/domain/service/filter.service.spec.ts +++ b/ui/src/app/metadata/domain/service/filter.service.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, async, inject } from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { HttpTestingController, HttpClientTestingModule } from '@angular/common/http/testing'; import { HttpClientModule, HttpRequest } from '@angular/common/http'; import { MetadataFilterService } from './filter.service'; @@ -21,7 +21,7 @@ describe(`Metadata Filter Service`, () => { }); describe('query method', () => { - it(`should send an expected GET[] request`, async(inject([MetadataFilterService, HttpTestingController], + it(`should send an expected GET[] request`, waitForAsync(inject([MetadataFilterService, HttpTestingController], (service: MetadataFilterService, backend: HttpTestingController) => { service.query(provider).subscribe(); @@ -33,7 +33,7 @@ describe(`Metadata Filter Service`, () => { ))); }); describe('find method', () => { - it(`should send an expected GET request`, async(inject([MetadataFilterService, HttpTestingController], + it(`should send an expected GET request`, waitForAsync(inject([MetadataFilterService, HttpTestingController], (service: MetadataFilterService, backend: HttpTestingController) => { const id = 'bar'; service.find(provider, id).subscribe(); @@ -46,7 +46,7 @@ describe(`Metadata Filter Service`, () => { ))); }); describe('update method', () => { - it(`should send an expected PUT request`, async(inject([MetadataFilterService, HttpTestingController], + it(`should send an expected PUT request`, waitForAsync(inject([MetadataFilterService, HttpTestingController], (service: MetadataFilterService, backend: HttpTestingController) => { const id = 'bar'; const filter = new EntityAttributesFilterEntity({ resourceId: id }); @@ -60,7 +60,7 @@ describe(`Metadata Filter Service`, () => { ))); }); describe('save method', () => { - it(`should send an expected POST request`, async(inject([MetadataFilterService, HttpTestingController], + it(`should send an expected POST request`, waitForAsync(inject([MetadataFilterService, HttpTestingController], (service: MetadataFilterService, backend: HttpTestingController) => { const id = 'bar'; const filter = new EntityAttributesFilterEntity({ resourceId: id }); diff --git a/ui/src/app/metadata/domain/service/list-values.service.spec.ts b/ui/src/app/metadata/domain/service/list-values.service.spec.ts index 2c26ba912..a4b17614e 100644 --- a/ui/src/app/metadata/domain/service/list-values.service.spec.ts +++ b/ui/src/app/metadata/domain/service/list-values.service.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, async, inject } from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { EntityValidators } from './entity-validators.service'; import { Observable, of } from 'rxjs'; import { ListValuesService } from './list-values.service'; diff --git a/ui/src/app/metadata/domain/service/provider-change-emitter.service.spec.ts b/ui/src/app/metadata/domain/service/provider-change-emitter.service.spec.ts index 97dba2257..b96ee0416 100644 --- a/ui/src/app/metadata/domain/service/provider-change-emitter.service.spec.ts +++ b/ui/src/app/metadata/domain/service/provider-change-emitter.service.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, async, inject } from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { EntityValidators } from './entity-validators.service'; import { Observable } from 'rxjs'; import { AbstractControl, FormBuilder, ReactiveFormsModule } from '@angular/forms'; @@ -19,7 +19,7 @@ describe(`Resolver Change emitter service`, () => { }); describe('ProviderStatusEmitter', () => { - it('should emit values', async(inject([ProviderStatusEmitter], (emitter) => { + it('should emit values', waitForAsync(inject([ProviderStatusEmitter], (emitter) => { let val = 'foo'; emitter.changeEmitted$.subscribe(n => { expect(n).toEqual(val); @@ -29,7 +29,7 @@ describe(`Resolver Change emitter service`, () => { }); describe('ProviderValueEmitter', () => { - it('should emit values', async(inject([ProviderValueEmitter], (emitter) => { + it('should emit values', waitForAsync(inject([ProviderValueEmitter], (emitter) => { let val = 'foo'; emitter.changeEmitted$.subscribe(n => { expect(n).toEqual(val); diff --git a/ui/src/app/metadata/domain/service/provider.service.spec.ts b/ui/src/app/metadata/domain/service/provider.service.spec.ts index 356bf5964..dabc06e6c 100644 --- a/ui/src/app/metadata/domain/service/provider.service.spec.ts +++ b/ui/src/app/metadata/domain/service/provider.service.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, async, inject } from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { HttpTestingController, HttpClientTestingModule } from '@angular/common/http/testing'; import { HttpClientModule, HttpRequest } from '@angular/common/http'; import { MetadataProviderService } from './provider.service'; @@ -19,7 +19,7 @@ describe(`Metadata Provider Service`, () => { }); describe('query method', () => { - it(`should send an expected GET[] request`, async(inject([MetadataProviderService, HttpTestingController], + it(`should send an expected GET[] request`, waitForAsync(inject([MetadataProviderService, HttpTestingController], (service: MetadataProviderService, backend: HttpTestingController) => { service.query().subscribe(); @@ -31,7 +31,7 @@ describe(`Metadata Provider Service`, () => { ))); }); describe('find method', () => { - it(`should send an expected GET request`, async(inject([MetadataProviderService, HttpTestingController], + it(`should send an expected GET request`, waitForAsync(inject([MetadataProviderService, HttpTestingController], (service: MetadataProviderService, backend: HttpTestingController) => { const id = 'foo'; service.find(id).subscribe(); @@ -44,7 +44,7 @@ describe(`Metadata Provider Service`, () => { ))); }); describe('update method', () => { - it(`should send an expected PUT request`, async(inject([MetadataProviderService, HttpTestingController], + it(`should send an expected PUT request`, waitForAsync(inject([MetadataProviderService, HttpTestingController], (service: MetadataProviderService, backend: HttpTestingController) => { const id = 'foo'; const provider = { resourceId: id }; @@ -58,7 +58,7 @@ describe(`Metadata Provider Service`, () => { ))); }); describe('save method', () => { - it(`should send an expected POST request`, async(inject([MetadataProviderService, HttpTestingController], + it(`should send an expected POST request`, waitForAsync(inject([MetadataProviderService, HttpTestingController], (service: MetadataProviderService, backend: HttpTestingController) => { const id = 'foo'; const provider = { resourceId: id }; diff --git a/ui/src/app/metadata/domain/service/resolver.service.spec.ts b/ui/src/app/metadata/domain/service/resolver.service.spec.ts index 69a00ccc0..e4fb0c089 100644 --- a/ui/src/app/metadata/domain/service/resolver.service.spec.ts +++ b/ui/src/app/metadata/domain/service/resolver.service.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, async, inject } from '@angular/core/testing'; +import { TestBed, inject, waitForAsync } from '@angular/core/testing'; import { HttpClientModule, HttpRequest } from '@angular/common/http'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; import { ResolverService } from './resolver.service'; @@ -20,7 +20,7 @@ describe(`Resolver Service`, () => { }); describe('query', () => { - it(`should send an expected query request`, async(inject([ResolverService, HttpTestingController], + it(`should send an expected query request`, waitForAsync(inject([ResolverService, HttpTestingController], (service: ResolverService, backend: HttpTestingController) => { service.query().subscribe(); @@ -31,7 +31,7 @@ describe(`Resolver Service`, () => { } ))); - it(`should emit 'true' for 200 Ok`, async(inject([ResolverService, HttpTestingController], + it(`should emit 'true' for 200 Ok`, waitForAsync(inject([ResolverService, HttpTestingController], (service: ResolverService, backend: HttpTestingController) => { service.query().subscribe((next) => { expect(next).toBeTruthy(); @@ -43,7 +43,7 @@ describe(`Resolver Service`, () => { }); describe('queryForAdmin', () => { - it(`should send an expected query request`, async(inject([ResolverService, HttpTestingController], + it(`should send an expected query request`, waitForAsync(inject([ResolverService, HttpTestingController], (service: ResolverService, backend: HttpTestingController) => { service.queryForAdmin().subscribe(); @@ -54,7 +54,7 @@ describe(`Resolver Service`, () => { } ))); - it(`should emit 'true' for 200 Ok`, async(inject([ResolverService, HttpTestingController], + it(`should emit 'true' for 200 Ok`, waitForAsync(inject([ResolverService, HttpTestingController], (service: ResolverService, backend: HttpTestingController) => { service.queryForAdmin().subscribe((next) => { expect(next).toBeTruthy(); @@ -68,7 +68,7 @@ describe(`Resolver Service`, () => { describe('find', () => { let id = 'foo'; - it(`should send an expected GET request`, async(inject([ResolverService, HttpTestingController], + it(`should send an expected GET request`, waitForAsync(inject([ResolverService, HttpTestingController], (service: ResolverService, backend: HttpTestingController) => { service.find(id).subscribe(); @@ -85,7 +85,7 @@ describe(`Resolver Service`, () => { serviceProviderName = 'Test Provider', createdBy = 'admin'; - it(`should send an expected PUT request`, async(inject([ResolverService, HttpTestingController], + it(`should send an expected PUT request`, waitForAsync(inject([ResolverService, HttpTestingController], (service: ResolverService, backend: HttpTestingController) => { service.update({id, serviceProviderName, createdBy}).subscribe(); @@ -102,7 +102,7 @@ describe(`Resolver Service`, () => { serviceProviderName = 'Test Provider', createdBy = 'admin'; - it(`should send an expected POST request`, async(inject([ResolverService, HttpTestingController], + it(`should send an expected POST request`, waitForAsync(inject([ResolverService, HttpTestingController], (service: ResolverService, backend: HttpTestingController) => { service.save({ id, serviceProviderName, createdBy }).subscribe(); @@ -119,7 +119,7 @@ describe(`Resolver Service`, () => { serviceProviderName = 'Test Provider', createdBy = 'admin'; - it(`should send an expected PUT request`, async(inject([ResolverService, HttpTestingController], + it(`should send an expected PUT request`, waitForAsync(inject([ResolverService, HttpTestingController], (service: ResolverService, backend: HttpTestingController) => { service.remove({ id, serviceProviderName, createdBy }).subscribe(); @@ -134,7 +134,7 @@ describe(`Resolver Service`, () => { describe('preview', () => { let id = 'foo'; - it(`should send an expected GET request`, async(inject([ResolverService, HttpTestingController], + it(`should send an expected GET request`, waitForAsync(inject([ResolverService, HttpTestingController], (service: ResolverService, backend: HttpTestingController) => { service.preview(id).subscribe(); @@ -149,7 +149,7 @@ describe(`Resolver Service`, () => { }); describe('upload', () => { - it(`should send an expected POST request`, async(inject([ResolverService, HttpTestingController], + it(`should send an expected POST request`, waitForAsync(inject([ResolverService, HttpTestingController], (service: ResolverService, backend: HttpTestingController) => { const name = 'foo', xml = ''; service.upload(name, xml).subscribe(); @@ -164,7 +164,7 @@ describe(`Resolver Service`, () => { }); describe('createFromUrl', () => { - it(`should send an expected POST request`, async(inject([ResolverService, HttpTestingController], + it(`should send an expected POST request`, waitForAsync(inject([ResolverService, HttpTestingController], (service: ResolverService, backend: HttpTestingController) => { const name = 'foo', url = 'http://goo.gle'; service.createFromUrl(name, url).subscribe(); diff --git a/ui/src/app/metadata/manager/component/delete-dialog.component.spec.ts b/ui/src/app/metadata/manager/component/delete-dialog.component.spec.ts index ec8fdc665..4829741c6 100644 --- a/ui/src/app/metadata/manager/component/delete-dialog.component.spec.ts +++ b/ui/src/app/metadata/manager/component/delete-dialog.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { NgbDropdownModule, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; @@ -22,7 +22,7 @@ describe('Delete Dialog (modal) Component', () => { let fixture: ComponentFixture; let instance: TestHostComponent; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -49,7 +49,7 @@ describe('Delete Dialog (modal) Component', () => { fixture.detectChanges(); })); - it('should compile without error', async(() => { + it('should compile without error', waitForAsync(() => { expect(app).toBeTruthy(); })); }); diff --git a/ui/src/app/metadata/manager/manager.module.ts b/ui/src/app/metadata/manager/manager.module.ts index 9f00d9842..afccc2c96 100644 --- a/ui/src/app/metadata/manager/manager.module.ts +++ b/ui/src/app/metadata/manager/manager.module.ts @@ -49,7 +49,7 @@ import { ResolversListComponent } from './component/resolvers-list.component'; ] }) export class ManagerModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: RootManagerModule, providers: [] diff --git a/ui/src/app/metadata/metadata.component.spec.ts b/ui/src/app/metadata/metadata.component.spec.ts index 5cc74adf9..ae37f90f7 100644 --- a/ui/src/app/metadata/metadata.component.spec.ts +++ b/ui/src/app/metadata/metadata.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { MetadataPageComponent } from './metadata.component'; @@ -24,7 +24,7 @@ describe('Metadata Root Component', () => { let app: MetadataPageComponent; let store: Store; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -48,7 +48,7 @@ describe('Metadata Root Component', () => { fixture.detectChanges(); })); - it('should load metadata objects', async(() => { + it('should load metadata objects', waitForAsync(() => { expect(app).toBeTruthy(); })); }); diff --git a/ui/src/app/metadata/provider/component/delete-filter.component.spec.ts b/ui/src/app/metadata/provider/component/delete-filter.component.spec.ts index 08b4007cc..837ca2047 100644 --- a/ui/src/app/metadata/provider/component/delete-filter.component.spec.ts +++ b/ui/src/app/metadata/provider/component/delete-filter.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { NgbDropdownModule, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; @@ -22,7 +22,7 @@ describe('Delete Filter (modal) Component', () => { let fixture: ComponentFixture; let instance: TestHostComponent; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -49,7 +49,7 @@ describe('Delete Filter (modal) Component', () => { fixture.detectChanges(); })); - it('should compile without error', async(() => { + it('should compile without error', waitForAsync(() => { expect(app).toBeTruthy(); })); }); diff --git a/ui/src/app/metadata/provider/container/provider-edit-step.component.spec.ts b/ui/src/app/metadata/provider/container/provider-edit-step.component.spec.ts index 701ee99a0..0e6b88854 100644 --- a/ui/src/app/metadata/provider/container/provider-edit-step.component.spec.ts +++ b/ui/src/app/metadata/provider/container/provider-edit-step.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture, fakeAsync, tick } from '@angular/core/testing'; +import { TestBed, ComponentFixture, fakeAsync, tick, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; @@ -28,7 +28,7 @@ describe('Provider Edit Step Component', () => { let store: Store; let storeSpy: any; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -75,7 +75,7 @@ describe('Provider Edit Step Component', () => { fixture.detectChanges(); })); - it('should instantiate the component', async(() => { + it('should instantiate the component', waitForAsync(() => { expect(app).toBeTruthy(); })); diff --git a/ui/src/app/metadata/provider/container/provider-edit.component.spec.ts b/ui/src/app/metadata/provider/container/provider-edit.component.spec.ts index 875fd9b65..7ae7516e2 100644 --- a/ui/src/app/metadata/provider/container/provider-edit.component.spec.ts +++ b/ui/src/app/metadata/provider/container/provider-edit.component.spec.ts @@ -1,7 +1,7 @@ import { Component, ViewChild } from '@angular/core'; import { ActivatedRoute, Router, ActivatedRouteSnapshot } from '@angular/router'; import { APP_BASE_HREF } from '@angular/common'; -import { TestBed, async, ComponentFixture, fakeAsync } from '@angular/core/testing'; +import { TestBed, ComponentFixture, fakeAsync, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { NgbDropdownModule, NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'; @@ -42,7 +42,7 @@ describe('Provider Edit Component', () => { activatedRoute.firstChild = child; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -92,7 +92,7 @@ describe('Provider Edit Component', () => { fixture.detectChanges(); })); - it('should instantiate the component', async(() => { + it('should instantiate the component', waitForAsync(() => { expect(app).toBeTruthy(); })); diff --git a/ui/src/app/metadata/provider/container/provider-filter-list.component.spec.ts b/ui/src/app/metadata/provider/container/provider-filter-list.component.spec.ts index 6e91ad8cf..f427ce535 100644 --- a/ui/src/app/metadata/provider/container/provider-filter-list.component.spec.ts +++ b/ui/src/app/metadata/provider/container/provider-filter-list.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild, Input, Output, EventEmitter } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { NgbDropdownModule, NgbModal } from '@ng-bootstrap/ng-bootstrap'; @@ -30,7 +30,7 @@ describe('Provider Filter List Component', () => { let app: ProviderFilterListComponent; let store: Store; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -63,7 +63,7 @@ describe('Provider Filter List Component', () => { fixture.detectChanges(); })); - it('should instantiate the component', async(() => { + it('should instantiate the component', waitForAsync(() => { expect(app).toBeTruthy(); })); diff --git a/ui/src/app/metadata/provider/container/provider-select.component.spec.ts b/ui/src/app/metadata/provider/container/provider-select.component.spec.ts index 281b25117..e4b9accc3 100644 --- a/ui/src/app/metadata/provider/container/provider-select.component.spec.ts +++ b/ui/src/app/metadata/provider/container/provider-select.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; @@ -25,7 +25,7 @@ describe('Provider Select Component', () => { let app: ProviderSelectComponent; let store: Store; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -51,7 +51,7 @@ describe('Provider Select Component', () => { fixture.detectChanges(); })); - it('should instantiate the component', async(() => { + it('should instantiate the component', waitForAsync(() => { expect(app).toBeTruthy(); })); diff --git a/ui/src/app/metadata/provider/container/provider-wizard-step.component.spec.ts b/ui/src/app/metadata/provider/container/provider-wizard-step.component.spec.ts index 6eea51e99..883b9f793 100644 --- a/ui/src/app/metadata/provider/container/provider-wizard-step.component.spec.ts +++ b/ui/src/app/metadata/provider/container/provider-wizard-step.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; @@ -29,7 +29,7 @@ describe('Provider Wizard Step Component', () => { let app: ProviderWizardStepComponent; let store: Store; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -58,7 +58,7 @@ describe('Provider Wizard Step Component', () => { fixture.detectChanges(); })); - it('should instantiate the component', async(() => { + it('should instantiate the component', waitForAsync(() => { expect(app).toBeTruthy(); })); diff --git a/ui/src/app/metadata/provider/container/provider-wizard.component.spec.ts b/ui/src/app/metadata/provider/container/provider-wizard.component.spec.ts index 7c0099484..055a97714 100644 --- a/ui/src/app/metadata/provider/container/provider-wizard.component.spec.ts +++ b/ui/src/app/metadata/provider/container/provider-wizard.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; @@ -32,7 +32,7 @@ describe('Provider Wizard Component', () => { let app: ProviderWizardComponent; let store: Store; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ WizardModule.forRoot(), @@ -64,7 +64,7 @@ describe('Provider Wizard Component', () => { fixture.detectChanges(); })); - it('should instantiate the component', async(() => { + it('should instantiate the component', waitForAsync(() => { expect(app).toBeTruthy(); })); }); diff --git a/ui/src/app/metadata/provider/provider.module.ts b/ui/src/app/metadata/provider/provider.module.ts index a8580f23e..25f4a13d2 100644 --- a/ui/src/app/metadata/provider/provider.module.ts +++ b/ui/src/app/metadata/provider/provider.module.ts @@ -62,7 +62,7 @@ import { MetadataConfigurationModule } from '../configuration/configuration.modu exports: [] }) export class ProviderModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: RootProviderModule }; diff --git a/ui/src/app/metadata/resolver/container/new-resolver.component.spec.ts b/ui/src/app/metadata/resolver/container/new-resolver.component.spec.ts index fa76b3d45..9ebe511e1 100644 --- a/ui/src/app/metadata/resolver/container/new-resolver.component.spec.ts +++ b/ui/src/app/metadata/resolver/container/new-resolver.component.spec.ts @@ -31,7 +31,7 @@ describe('New Resolver Page', () => { StoreModule.forRoot(fromResolver.reducers), ReactiveFormsModule, SharedModule, - RouterModule.forRoot([]), + RouterModule.forRoot([], { relativeLinkResolution: 'legacy' }), MockI18nModule ], declarations: [ diff --git a/ui/src/app/metadata/resolver/container/resolver-wizard-step.component.spec.ts b/ui/src/app/metadata/resolver/container/resolver-wizard-step.component.spec.ts index c04a4d136..dc481b30d 100644 --- a/ui/src/app/metadata/resolver/container/resolver-wizard-step.component.spec.ts +++ b/ui/src/app/metadata/resolver/container/resolver-wizard-step.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; @@ -44,7 +44,7 @@ describe('Resolver Wizard Step Component', () => { } }; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, @@ -94,7 +94,7 @@ describe('Resolver Wizard Step Component', () => { fixture.detectChanges(); })); - it('should instantiate the component', async(() => { + it('should instantiate the component', waitForAsync(() => { expect(app).toBeTruthy(); })); diff --git a/ui/src/app/metadata/resolver/container/resolver-wizard.component.spec.ts b/ui/src/app/metadata/resolver/container/resolver-wizard.component.spec.ts index af0ce357a..bde6a5816 100644 --- a/ui/src/app/metadata/resolver/container/resolver-wizard.component.spec.ts +++ b/ui/src/app/metadata/resolver/container/resolver-wizard.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; import { RouterStateSnapshot } from '@angular/router'; @@ -50,7 +50,7 @@ describe('Resolver Wizard Component', () => { } }; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ MockWizardModule, @@ -107,12 +107,12 @@ describe('Resolver Wizard Component', () => { modal = TestBed.get(NgbModal); })); - it('should instantiate the component', async(() => { + it('should instantiate the component', waitForAsync(() => { expect(app).toBeTruthy(); })); describe('canDeactivate method', () => { - it('should return true if moving to another page', async(() => { + it('should return true if moving to another page', waitForAsync(() => { app.canDeactivate( null, { @@ -157,7 +157,7 @@ describe('Resolver Wizard Component', () => { expect(modal.open).toHaveBeenCalled(); }); - it('should check if the entity is saved', async(() => { + it('should check if the entity is saved', waitForAsync(() => { app.changes = {} as MetadataResolver; spyOn(store, 'select').and.returnValue(of(true)); spyOn(modal, 'open').and.callThrough(); diff --git a/ui/src/app/metadata/resolver/container/upload-resolver.component.spec.ts b/ui/src/app/metadata/resolver/container/upload-resolver.component.spec.ts index de4bb6fa2..9b7659870 100644 --- a/ui/src/app/metadata/resolver/container/upload-resolver.component.spec.ts +++ b/ui/src/app/metadata/resolver/container/upload-resolver.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, ComponentFixture, async } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { ReactiveFormsModule } from '@angular/forms'; import { Observable, of } from 'rxjs'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; @@ -83,7 +83,7 @@ describe('Upload Resolver Page', () => { }); describe('saveFromFile method', () => { - it('should retrieve the file text from a service and call the provided upload emitter', async((done) => { + it('should retrieve the file text from a service and call the provided upload emitter', waitForAsync((done) => { fixture.detectChanges(); spyOn(fileService, 'readAsText').and.callFake(() => of('foo')); form.providerForm.setValue({ serviceProviderName: 'foo', file: '', url: '' }); @@ -99,7 +99,7 @@ describe('Upload Resolver Page', () => { }); describe('saveFromUrl method', () => { - it('should retrieve the file text from a service and call the provided upload emitter', async((done) => { + it('should retrieve the file text from a service and call the provided upload emitter', waitForAsync((done) => { fixture.detectChanges(); form.saveFromUrl({ serviceProviderName: 'foo', url: 'foo.bar' }); form.fromUrl.subscribe(v => { @@ -113,7 +113,7 @@ describe('Upload Resolver Page', () => { }); describe('fileChange method', () => { - it('should set the reactive form value based on the provided event', async((done) => { + it('should set the reactive form value based on the provided event', waitForAsync((done) => { let evt = { target: { files: [{name: 'foo'}] @@ -125,7 +125,7 @@ describe('Upload Resolver Page', () => { expect(form.providerForm.get('file').value).toBe('foo'); })); - it('should do nothing if no file is selected', async((done) => { + it('should do nothing if no file is selected', waitForAsync((done) => { let evt = { target: { files: [] diff --git a/ui/src/app/metadata/resolver/resolver.module.ts b/ui/src/app/metadata/resolver/resolver.module.ts index ce5a6ec21..362d67485 100644 --- a/ui/src/app/metadata/resolver/resolver.module.ts +++ b/ui/src/app/metadata/resolver/resolver.module.ts @@ -73,7 +73,7 @@ import { MetadataConfigurationModule } from '../configuration/configuration.modu providers: [] }) export class ResolverModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: RootResolverModule, providers: [ diff --git a/ui/src/app/schema-form/registry.ts b/ui/src/app/schema-form/registry.ts index 1551a2497..428d2d7fa 100644 --- a/ui/src/app/schema-form/registry.ts +++ b/ui/src/app/schema-form/registry.ts @@ -21,7 +21,9 @@ import { CustomRadioComponent } from './widget/radio/radio.component'; import { InlineObjectListComponent } from './widget/array/inline-obj-list.component'; import { InlineObjectComponent } from './widget/object/inline-obj.component'; import { CustomFloatComponent } from './widget/number/float.component'; +import { Injectable } from "@angular/core"; +@Injectable() export class CustomWidgetRegistry extends WidgetRegistry { constructor() { super(); diff --git a/ui/src/app/schema-form/schema-form.module.ts b/ui/src/app/schema-form/schema-form.module.ts index 6b3d45751..e5ac45ed3 100644 --- a/ui/src/app/schema-form/schema-form.module.ts +++ b/ui/src/app/schema-form/schema-form.module.ts @@ -64,14 +64,14 @@ export const COMPONENTS = [ ], }) export class FormModule { - static forRoot() { - return { - ngModule: RootFormModule, - providers: [ - SchemaService - ] - }; - } + static forRoot(): ModuleWithProviders { + return { + ngModule: RootFormModule, + providers: [ + SchemaService + ] + }; +} } @NgModule({ diff --git a/ui/src/app/shared/component/info-icon.component.spec.ts b/ui/src/app/shared/component/info-icon.component.spec.ts index 17fc4d216..557dd1414 100644 --- a/ui/src/app/shared/component/info-icon.component.spec.ts +++ b/ui/src/app/shared/component/info-icon.component.spec.ts @@ -1,5 +1,5 @@ -import { Component, ViewChild, Renderer, RootRenderer } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { Component, ViewChild, RootRenderer, Renderer2 } from '@angular/core'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap'; import { MockI18nModule } from '../../../testing/i18n.stub'; import { InfoIconComponent } from './info-icon.component'; @@ -22,7 +22,7 @@ describe('Info Icon Component', () => { let instance: TestHostComponent; let app: InfoIconComponent; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbPopoverModule, @@ -43,7 +43,7 @@ describe('Info Icon Component', () => { fixture.detectChanges(); })); - it('should display an information icon', async(() => { + it('should display an information icon', waitForAsync(() => { expect(app).toBeTruthy(); })); }); diff --git a/ui/src/app/shared/component/info-icon.component.ts b/ui/src/app/shared/component/info-icon.component.ts index e11e928ad..ceba5f733 100644 --- a/ui/src/app/shared/component/info-icon.component.ts +++ b/ui/src/app/shared/component/info-icon.component.ts @@ -1,4 +1,4 @@ -import { Component, Input, ChangeDetectionStrategy, Renderer } from '@angular/core'; +import { Component, Input, ChangeDetectionStrategy, Renderer2 } from '@angular/core'; import { NgbPopover, NgbPopoverConfig } from '@ng-bootstrap/ng-bootstrap'; @Component({ @@ -18,9 +18,9 @@ export class InfoIconComponent { placement = ['top']; constructor( - private renderer: Renderer + private renderer: Renderer2 ) { } focus(element): void { - this.renderer.invokeElementMethod(element.elementRef.nativeElement, 'focus'); + element.elementRef.nativeElement.focus(); } } diff --git a/ui/src/app/shared/component/valid-form-icon.component.spec.ts b/ui/src/app/shared/component/valid-form-icon.component.spec.ts index c15c39e4d..12b7e2f62 100644 --- a/ui/src/app/shared/component/valid-form-icon.component.spec.ts +++ b/ui/src/app/shared/component/valid-form-icon.component.spec.ts @@ -1,5 +1,5 @@ -import { Component, ViewChild, Renderer, RootRenderer } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { Component, ViewChild, RootRenderer, Renderer2 } from '@angular/core'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap'; import { MockI18nModule } from '../../../testing/i18n.stub'; import { ValidFormIconComponent } from './valid-form-icon.component'; @@ -22,7 +22,7 @@ describe('Info Icon Component', () => { let instance: TestHostComponent; let app: ValidFormIconComponent; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbPopoverModule, @@ -43,7 +43,7 @@ describe('Info Icon Component', () => { fixture.detectChanges(); })); - it('should display an information icon', async(() => { + it('should display an information icon', waitForAsync(() => { expect(app).toBeTruthy(); })); }); diff --git a/ui/src/app/shared/util.ts b/ui/src/app/shared/util.ts index f054a19d8..a5fe7f0df 100644 --- a/ui/src/app/shared/util.ts +++ b/ui/src/app/shared/util.ts @@ -1,11 +1,13 @@ import { RouterStateSerializer } from '@ngrx/router-store'; import { RouterStateSnapshot, Params } from '@angular/router'; +import { Injectable } from "@angular/core"; export interface RouterStateUrl { url: string; queryParams: Params; } +@Injectable() export class CustomRouterStateSerializer implements RouterStateSerializer { serialize(routerState: RouterStateSnapshot): RouterStateUrl { const { url } = routerState; diff --git a/ui/src/app/wizard/component/wizard.component.spec.ts b/ui/src/app/wizard/component/wizard.component.spec.ts index 9105e2d82..c694cbf91 100644 --- a/ui/src/app/wizard/component/wizard.component.spec.ts +++ b/ui/src/app/wizard/component/wizard.component.spec.ts @@ -1,5 +1,5 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, async, ComponentFixture } from '@angular/core/testing'; +import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { StoreModule, Store, combineReducers } from '@ngrx/store'; @@ -26,7 +26,7 @@ describe('Wizard Component', () => { let app: WizardComponent; let store: Store; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ NgbDropdownModule, diff --git a/ui/src/app/wizard/wizard.module.ts b/ui/src/app/wizard/wizard.module.ts index 34a196d14..75fdb7e39 100644 --- a/ui/src/app/wizard/wizard.module.ts +++ b/ui/src/app/wizard/wizard.module.ts @@ -22,7 +22,7 @@ import { WizardService } from './service/wizard.service'; ] }) export class WizardModule { - static forRoot(): ModuleWithProviders { + static forRoot(): ModuleWithProviders { return { ngModule: RootWizardModule, providers: [WizardService]