From aa6ed456d60ed945866fc78fd9a17d5d9e63755b Mon Sep 17 00:00:00 2001 From: Dennis Wong Date: Tue, 20 Jun 2023 23:55:54 +0200 Subject: [PATCH 1/2] Het toepassen van logica en voorwaardes --- angular.json | 5 + package-lock.json | 877 +++++++++++++++++- package.json | 6 +- src/app/app.component.html | 82 +- src/app/app.component.ts | 86 +- src/app/app.module.ts | 28 +- .../herstelform/herstel.form.component.css | 0 .../herstelform/herstel.form.component.html | 17 + .../herstel.form.component.spec.ts | 28 + src/app/herstelform/herstel.form.component.ts | 21 + src/index.html | 32 +- src/styles.scss | 3 + 12 files changed, 1087 insertions(+), 98 deletions(-) create mode 100644 src/app/herstelform/herstel.form.component.css create mode 100644 src/app/herstelform/herstel.form.component.html create mode 100644 src/app/herstelform/herstel.form.component.spec.ts create mode 100644 src/app/herstelform/herstel.form.component.ts diff --git a/angular.json b/angular.json index 78adc84..29f760e 100644 --- a/angular.json +++ b/angular.json @@ -31,6 +31,7 @@ "src/assets" ], "styles": [ + "@angular/material/prebuilt-themes/pink-bluegrey.css", "src/styles.scss" ], "scripts": [] @@ -99,6 +100,7 @@ "src/assets" ], "styles": [ + "@angular/material/prebuilt-themes/pink-bluegrey.css", "src/styles.scss" ], "scripts": [] @@ -106,5 +108,8 @@ } } } + }, + "cli": { + "analytics": false } } diff --git a/package-lock.json b/package-lock.json index 771611c..f46170e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,10 +9,12 @@ "version": "0.0.0", "dependencies": { "@angular/animations": "^16.1.1", + "@angular/cdk": "^16.1.1", "@angular/common": "^16.1.1", "@angular/compiler": "^16.1.1", "@angular/core": "^16.1.1", "@angular/forms": "^16.1.1", + "@angular/material": "^16.1.1", "@angular/platform-browser": "^16.1.1", "@angular/platform-browser-dynamic": "^16.1.1", "@angular/router": "^16.1.1", @@ -463,6 +465,22 @@ "@angular/core": "16.1.1" } }, + "node_modules/@angular/cdk": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-16.1.1.tgz", + "integrity": "sha512-nVIeooGspNLT8XySfGZ4e8HYO/TsFemrjNVKb3G9+7KxY4tvE5dkGbJjx5TStEQoSzjfNbCscO89lHIaQ7+aMA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@angular/common": "^16.0.0 || ^17.0.0", + "@angular/core": "^16.0.0 || ^17.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, "node_modules/@angular/cli": { "version": "16.1.0", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.1.0.tgz", @@ -606,6 +624,70 @@ "rxjs": "^6.5.3 || ^7.4.0" } }, + "node_modules/@angular/material": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-16.1.1.tgz", + "integrity": "sha512-fVFsxYdCQ9PtDR2Cx6q7XqRFnMKz/OGUaC0pPa/RVuBnUbC+GaapDHd4Suy8NF/skX/xl46rZVEKrRumaWM8FA==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/auto-init": "15.0.0-canary.90291f2e2.0", + "@material/banner": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/button": "15.0.0-canary.90291f2e2.0", + "@material/card": "15.0.0-canary.90291f2e2.0", + "@material/checkbox": "15.0.0-canary.90291f2e2.0", + "@material/chips": "15.0.0-canary.90291f2e2.0", + "@material/circular-progress": "15.0.0-canary.90291f2e2.0", + "@material/data-table": "15.0.0-canary.90291f2e2.0", + "@material/density": "15.0.0-canary.90291f2e2.0", + "@material/dialog": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/drawer": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/fab": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/floating-label": "15.0.0-canary.90291f2e2.0", + "@material/form-field": "15.0.0-canary.90291f2e2.0", + "@material/icon-button": "15.0.0-canary.90291f2e2.0", + "@material/image-list": "15.0.0-canary.90291f2e2.0", + "@material/layout-grid": "15.0.0-canary.90291f2e2.0", + "@material/line-ripple": "15.0.0-canary.90291f2e2.0", + "@material/linear-progress": "15.0.0-canary.90291f2e2.0", + "@material/list": "15.0.0-canary.90291f2e2.0", + "@material/menu": "15.0.0-canary.90291f2e2.0", + "@material/menu-surface": "15.0.0-canary.90291f2e2.0", + "@material/notched-outline": "15.0.0-canary.90291f2e2.0", + "@material/radio": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/segmented-button": "15.0.0-canary.90291f2e2.0", + "@material/select": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/slider": "15.0.0-canary.90291f2e2.0", + "@material/snackbar": "15.0.0-canary.90291f2e2.0", + "@material/switch": "15.0.0-canary.90291f2e2.0", + "@material/tab": "15.0.0-canary.90291f2e2.0", + "@material/tab-bar": "15.0.0-canary.90291f2e2.0", + "@material/tab-indicator": "15.0.0-canary.90291f2e2.0", + "@material/tab-scroller": "15.0.0-canary.90291f2e2.0", + "@material/textfield": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tooltip": "15.0.0-canary.90291f2e2.0", + "@material/top-app-bar": "15.0.0-canary.90291f2e2.0", + "@material/touch-target": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/animations": "^16.0.0 || ^17.0.0", + "@angular/cdk": "16.1.1", + "@angular/common": "^16.0.0 || ^17.0.0", + "@angular/core": "^16.0.0 || ^17.0.0", + "@angular/forms": "^16.0.0 || ^17.0.0", + "@angular/platform-browser": "^16.0.0 || ^17.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, "node_modules/@angular/platform-browser": { "version": "16.1.1", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.1.1.tgz", @@ -2996,6 +3078,758 @@ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", "dev": true }, + "node_modules/@material/animation": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-tr1y4KYZ2Ml9lFU9b91r5jivDCbh0N3Zv6VFe0frphztlZO5Lqx7MCxsliQ7NwQjqpXg3MkD6ZusVNvnMyo+LA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/auto-init": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-ZslBlje2LajaL5d7JCxUoWCKOBOsZYT33CamqPoDeY0Cjl77t3O+8B9YPHF8libytI8j9lrrDrTItQr53PHeHw==", + "dependencies": { + "@material/base": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/banner": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-mVtGop9rBXRD6UYkMD7y+OJwd3MA73w7BJ/oJIKFij2q2fn/5hZba6vQ6d6YGUGv+iJPP/S/HaiMQuRE5yyoqA==", + "dependencies": { + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/button": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/base": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-DNelmohDScmGvWWS/J05dkIJb/dKOVkA6s0URgPrnTFKXNSavPsmwj7hWzYB5kusz3ZrXJBYBJsE6VqkRRXl0w==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/button": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-m3YqCh33kcPGYehCKviDy7RxQIEM2m8Exo6AswPPsxd95jSN3rAeF+pXopoXW5QTOqyKHqHymTKTRYYvwvZHYg==", + "dependencies": { + "@material/density": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/focus-ring": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "@material/touch-target": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/card": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-8Z8KQDmEIwt5IK0n+9C9Be9p4mWLKBXILbH+c6XcMCTemmUxH6cTTax1MwuAmqBGuIq3WE3g7qDpdzjFLTC2kw==", + "dependencies": { + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/checkbox": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-hCilHX0vLedMgeRSOskf+JjdfLIUvEg597LEkTJHnTtJkhwypvol8OwP3eqz3TyJ3qGimIi/sFPKdMBn1Uk4AQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/density": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/focus-ring": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/touch-target": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/chips": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-TMtlzuadWP/YMRYg8mpqmaD9M9GzRL5ulHHgYO5F4kaZmI3L+3zvaPvUme/x5qwPkIJUO9S21NxxGAsp9X+ZJQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/checkbox": "15.0.0-canary.90291f2e2.0", + "@material/density": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/focus-ring": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "@material/touch-target": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/circular-progress": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-znCz3cXC8rmC+1k1ZEeZNOhngm7O7kVG2PoANaE79NN9taDtCTyBGGeocJ4Kza3tb01vxJ2/tuQXC39GNFkHFg==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/progress-indicator": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/data-table": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-9YU6KkOeKs2ARPXZdg7Cv6nPwLkEyBIN331ZB92apcbQpTMJMhR3uuW8SSw4p7aXCE6CJjREsCc0KuYAnFSa2A==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/checkbox": "15.0.0-canary.90291f2e2.0", + "@material/density": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/icon-button": "15.0.0-canary.90291f2e2.0", + "@material/linear-progress": "15.0.0-canary.90291f2e2.0", + "@material/list": "15.0.0-canary.90291f2e2.0", + "@material/menu": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/select": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "@material/touch-target": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/density": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-z2L49vc5tbIGe7tUHwbmzoPvOugsTNVP24WWwBwtg9PRuK4Td5HIsMGYqSzSuwFJvDWQK9Ugvl37jGZSv4vxog==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/dialog": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-n0o4MELpVqJHbJDPBYeXf3xeL9a8hbzHmfXYLDI1MUhDIr4xgSkckKdCRc2IFda/g7kxjAgcUTga9EFWqns2qA==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/button": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/icon-button": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "@material/touch-target": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/dom": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-90JKk/Ncnqn2dKopNxs1uruiiQZzgLTZQF3a8jxa/w3RQd3Ac9ET1KqmaJSfzXaxgebm+1RZfL9lL+ANEfLWwQ==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/drawer": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-7MJbjUxqpQG9J52xWGVKRhSI/0/7Uhf7l2P9VI2WFb5Fz0IeUupXlw2k1Ktb97nxSjMe9OazjtVUgzBNwOad/Q==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/list": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/elevation": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-4eYbCDc6IfgfguNmRc5GT4QMCfOEwj+K3BAraABcbpuCzEQ5nCClsVrPbRLfPnhWbQrFc2/eBglB8wsrNTjVBw==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/fab": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-YJuJRdqe57DnJ4qyc04flknuGeN+7Nc9ciFZE6snPn84wD6J1khscb21yRARbALDki18kbfnJNrNbzHkYaEMZg==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/focus-ring": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "@material/touch-target": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/feature-targeting": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-mjUemPnMLXPooDcPHxxc2uhVUzm7X3NDsE0x0QJnsHDwuejakaRLghVcRDX3x1VmL/p52Eu5HrgW2FryFEiVhQ==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/floating-label": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-dYtgNlXkO0H9Vn76oESZZg1KOa2XIOLhVxhV/qPYrhntET534i7TyajmVk54ncuSSoLPZrbrwrhhR2fUJWxZIg==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/focus-ring": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-U7ERDgHi33ZRmqsiO6syFaWsCUGneltX2sYVtLpQnxME7pKFzi22GdUUIslhgHOFjSMBFF9av2Y79VFbyj9BaQ==", + "dependencies": { + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0" + } + }, + "node_modules/@material/form-field": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-KTj+EOobLcPUYy4nR+t0c2Cjvs7jCI4F1w8XuV0bbmSa6Sxh02tMKY2Xa7Lx55A/uUrsUfViMdP60OLzi7HgjQ==", + "dependencies": { + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/icon-button": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-bpqiVPkf/LJEP7iIV5VL9Th0chCIQKTeOuw0mK8HmYucuvqq+k76oPsUcE7mvxRvuKyVh6KJ9fTHAkjse0y7cg==", + "dependencies": { + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/density": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/focus-ring": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/touch-target": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/image-list": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-JobM4lWsf9grgbqrLuUtJ5fr8BkG02r9c2oFMl5++dtjtLdXWnUIWbiofna8CeqDFQCKXsCk4Jw8ydSKZvj/3A==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/layout-grid": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-f5DSHGf1ka6vHu+8VoTvcU9NkR8fdN2wHmPnITZHQXPVvR6SKoyDzdAf2gacmiTYy69ZFmmJeMcdfNnbcPPUJw==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/line-ripple": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-cWpS7l/pFg6cUzL7Lx3ywF6RYF6ESYPkiGlDo9kFERv8lVA2/3m4NF4d9b4kC9h9OWx1b1CaUFRFGD07okgI+g==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/linear-progress": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-nK5RYn8NFZi/+fznLYoEdY6tSzXiJqOU0tX5by7hStURhP2g/RM5SQaJwyjEmHdorfCUIStgmKsN4rB5aMnxdw==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/progress-indicator": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/list": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-h2c6G5aPH1bhgl2yBYAW4y86pl+yVl3YdqU0ixemQ5/2uB/t92imUbI+gKH5LzlbuJKenk3rZJ5eaV+t5zTS1A==", + "dependencies": { + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/density": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/menu": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-yfpBN4Hg59pHMNplh2LIe8t+/qsfyP0iRAtJoCK90SBwX43kv65u22+3vEJmYzm3Ey/m3S3YRFXTFQRQnn9cmA==", + "dependencies": { + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/list": "15.0.0-canary.90291f2e2.0", + "@material/menu-surface": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/menu-surface": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-AkRpOjFOJi2ROZPvFo1z8ik61eEyJEew8NuvlzCE4S3BX/RNFrYVh4W5ylo030S01ALCS5zhVOeekxa/4eokZA==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/notched-outline": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-4lpoIoFJ8cb++M1iQpZ+8iypUuTruzyBAkOvoaNjk7EftEV+aS3K6XntGNtlUZoB/fFho3mAUVjT19IHFWD03A==", + "dependencies": { + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/floating-label": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/progress-indicator": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-trQLSstZIA0C64adW/HycycD+PtMfg6iZCIVuTNlZr7PR2Yc1EjuGyA7ts+iXBHZ0TxVshRbDYMwcDogP0rc1w==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/radio": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-Ypl4BZ9w1NdbiiEUV3Xw2pb97prMPGEE+5Lm719sVsaFmI4yCKgtsWNEbCbKixborh2ZDZWGCzgMyUQHf3a8xA==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/density": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/focus-ring": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/touch-target": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/ripple": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-8yCR/V+7SJ9om0cvAOULF/i5+gPQeT+cuPoCZJQRWq9IndfCmQPY3Zmy26reIT/zEyCebAvMG4/WtU4rc+jxyw==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/rtl": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-HkUhD8K03BxWVw21WDViWo01Chi22cZ1rmlsdCtggkxdVjtDhTbYm/3XvRnxt4RVpr6KaYQgRXI/52T5RtBUnw==", + "dependencies": { + "@material/theme": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/segmented-button": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-u1DF+jbysX6wCqt7dDnHgEo2XhNrwkqHq6YsMOFVCoo54PHt3gpwhD89DONqQJKspkdvZuxYHzpqRtV0GIzYDQ==", + "dependencies": { + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/touch-target": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/select": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-CCaftyi3eIJl2XqBfHbzj8W2jgTMBzSM2+q4WthA+7z0fYQI4JIHQVHO5YKQG5J9MR1VjYQ0Gy0GNotZLAcoOQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/density": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/floating-label": "15.0.0-canary.90291f2e2.0", + "@material/line-ripple": "15.0.0-canary.90291f2e2.0", + "@material/list": "15.0.0-canary.90291f2e2.0", + "@material/menu": "15.0.0-canary.90291f2e2.0", + "@material/menu-surface": "15.0.0-canary.90291f2e2.0", + "@material/notched-outline": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/shape": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-UEB168x8ovLvH4eoBtRnoCT9QvnxB/ZMpOKW1+C+xWisis6Wy9AX0wKT5T6wIpffYYCaBJuhI+ExX2134rAxJw==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/slider": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-krbdGHcROlvnZ0X7HT0d+PvJummczeShQeWeV/ZezXnQM7bQoy86qfwtX4ai1dIXYkF9qKTFlta2zZezTJyf5g==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/snackbar": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-f1+HaSaAkALtQqEr6WMUqfwOsJr5nOUjP15GA+sTs9SD7yzwqMeWsVriBdWXVRe0zNgew6sfBM+cLjg2w4VAOQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/button": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/icon-button": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/switch": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-94/+Zp2VjlLVJXY7u8VHPcJMHPRVNAwHydiGrKvnJ+6LfbLxAcILNBP9RVKqqqOWQeDxB4ApUl+0TV2Lj6mOzA==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/density": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/focus-ring": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-zju6UP038Ddi3XAfliYy58A3OvkQ+zSlOdNOd5l82oMArLYEFi3t51QTjKVjV1wokr6ZQ3Chs4kcrgwVTElYtg==", + "dependencies": { + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/focus-ring": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/tab-indicator": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-bar": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-dTC7oGZg6KuDK2OXO7luJWqshtNY2YgImwZbQ9a1vZZrIGMRHdu+ZtP6RVH2srFVlNIWjzcxfLgNrG+U027RdA==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/density": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/tab": "15.0.0-canary.90291f2e2.0", + "@material/tab-indicator": "15.0.0-canary.90291f2e2.0", + "@material/tab-scroller": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-indicator": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-GXdFO6rO1crXcj+todijzZQVACW4EC72XwLAl6z69TKBgZrhwCoZ6RgzX6vIXSs+KoZ0eIyQLr+yQQx1JjDd4w==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-scroller": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-R6trOZpkfk54VV0w0NjMMDcZPQgbnARxCoHLrWeSzv5KOMoiDyWji7FFpLc4fynX/F2lNg8xHpEolpugNRW/1g==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/tab": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/textfield": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-ipxPH8DRh9+cn4MOtAYvGsRLP5RJH/gB/BWh/BiJwjI38Djt4FK4LDHbx7fFo/C8hoj7UNs/BWaSLllyxuWKcg==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/density": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/floating-label": "15.0.0-canary.90291f2e2.0", + "@material/line-ripple": "15.0.0-canary.90291f2e2.0", + "@material/notched-outline": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/theme": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-rDSZ0bPoJothI8nRPQWB4Cyu7DTmc8qIuvFm3OOD4uI/2n+yIFqktS6X+6YF82LeKt4uMTZE+Ce/l51bb8UJGA==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tokens": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-ZTis8UeSRrm/4iQ6BujtcTf1J2bs2H+SAEnugtZSQiX8pyf90gQvylEoTuMPdUs1+YJ273cn04ipHdkq3OHaew==", + "dependencies": { + "@material/elevation": "15.0.0-canary.90291f2e2.0" + } + }, + "node_modules/@material/tooltip": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-H3XsrctgRriNwt++NN+Zy6/JhyRznWo2pXiTFnOlaYwHOiGIFCNZR0A/0vf/3Kpf0GYhTfkJEFJMosUSZidSDg==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/button": "15.0.0-canary.90291f2e2.0", + "@material/dom": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/tokens": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/top-app-bar": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-ZiJjK4WpIsE0MZTWokP9r4C9/oDqzUhKRn3ef2WCeJEIU3Vjg4t0xBTnST2vIrcBGw1s7WP1gfaxb3DSXSxzpw==", + "dependencies": { + "@material/animation": "15.0.0-canary.90291f2e2.0", + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/elevation": "15.0.0-canary.90291f2e2.0", + "@material/ripple": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/shape": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "@material/typography": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/touch-target": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-IpRFf4umZ4ZNxrP+qJkRY9syh7TFZmU4c7EbAlANAJ0/8rlkEo7WJiqa9P1p4nFaT4eMo4n5g+qRI0Dkb9zW5g==", + "dependencies": { + "@material/base": "15.0.0-canary.90291f2e2.0", + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/rtl": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/typography": { + "version": "15.0.0-canary.90291f2e2.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.90291f2e2.0.tgz", + "integrity": "sha512-tv1HWkJYi5T0470k8vbBb+nefdPgsaIO04ocWMf7luvmfE+MZIaR13RxdupLJ4k5otrdydL3/wEaCNhQ+Ipnvw==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.90291f2e2.0", + "@material/theme": "15.0.0-canary.90291f2e2.0", + "tslib": "^2.1.0" + } + }, "node_modules/@ngtools/webpack": { "version": "16.1.0", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.1.0.tgz", @@ -5374,7 +6208,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.12" }, @@ -8853,6 +9687,18 @@ "node": ">= 0.10" } }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "devOptional": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/parse5-html-rewriting-stream": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", @@ -8867,18 +9713,6 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5-html-rewriting-stream/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/parse5-sax-parser": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", @@ -8891,18 +9725,6 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5-sax-parser/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -9754,6 +10576,11 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "node_modules/safevalues": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/safevalues/-/safevalues-0.3.4.tgz", + "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" + }, "node_modules/sass": { "version": "1.63.2", "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.2.tgz", diff --git a/package.json b/package.json index c5066ca..62945ee 100644 --- a/package.json +++ b/package.json @@ -11,17 +11,19 @@ "private": true, "dependencies": { "@angular/animations": "^16.1.1", + "@angular/cdk": "^16.1.1", "@angular/common": "^16.1.1", "@angular/compiler": "^16.1.1", "@angular/core": "^16.1.1", "@angular/forms": "^16.1.1", + "@angular/material": "^16.1.1", "@angular/platform-browser": "^16.1.1", "@angular/platform-browser-dynamic": "^16.1.1", "@angular/router": "^16.1.1", "rxjs": "~7.4.0", "tslib": "^2.3.0", - "zone.js": "~0.13.1", - "uuid": "^8.3.2" + "uuid": "^8.3.2", + "zone.js": "~0.13.1" }, "devDependencies": { "@angular-devkit/build-angular": "^16.1.0", diff --git a/src/app/app.component.html b/src/app/app.component.html index 9d46558..a256080 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,39 +1,49 @@ -

- User Import -

+

User Import

- - - - - - - - - - - - - - +
- Naam - - E-mail - - Rol - - Status -
- {{dataRow.name}} - - {{dataRow.email}} - - {{dataRow.role}} - - ... -
+ + + + + + + + + + + + + + + + + + + + +
Naam{{ element.name }}E-mail{{ element.email }}Rol{{ element.role }}Status + + {{ element.status }} + + +
- \ No newline at end of file + diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 11155df..07cc95e 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,38 +1,86 @@ import { Component, OnInit } from '@angular/core'; import { rawData } from './raw-data'; -import { MockApiService } from './mock-api.service'; +import { MockApiService, RoleTypeEnum } from './mock-api.service'; +import { EMPTY, catchError, mergeAll, switchMap, tap, throwError } from 'rxjs'; +import { MatDialog } from '@angular/material/dialog'; +import { HerstelformComponent } from './herstelform/herstel.form.component'; + +export interface AdjustData { + name: string; + email: string; + role: string; + status?: string; + error?: string; +} @Component({ selector: 'app-root', templateUrl: './app.component.html', - styleUrls: ['./app.component.css'] + styleUrls: ['./app.component.css'], }) export class AppComponent implements OnInit { - - rawData: {name: string, email: string, role: string}[]; + adjustedData: AdjustData[]; + showData: AdjustData[]; - constructor( - private mockApi: MockApiService - ){} + constructor(private mockApi: MockApiService, public dialog: MatDialog) {} - ngOnInit(){ + ngOnInit() { this.loadRawData(); } - - private loadRawData(){ - - // get the rawData from the provided file - this.rawData = rawData; + private loadRawData() { + this.adjustedData = rawData; + this.showData = [...this.adjustedData]; } - clickSubmit(){ - - // this is probably not right - for(let dataRow of this.rawData){ - this.mockApi.createUser(dataRow.name, dataRow.email).subscribe(); + clickSubmit() { + for (let dataRow of this.adjustedData) { + this.mockApi + .createUser(dataRow.name, dataRow.email) + .pipe( + switchMap((user) => + this.mockApi.createRole(user.id, dataRow.role as RoleTypeEnum) + ), + tap(() => (dataRow.status = 'Goed')), + switchMap((role) => + role.roleType === RoleTypeEnum.student + ? this.mockApi.createPortfolio(role.userId) + : EMPTY + ), + catchError((error) => throwError(() => error)) + ) + .subscribe({ + error: (e) => { + dataRow.status = 'Fout'; + dataRow.error = e; + }, + complete: () => { + this.adjustedData.splice( + this.adjustedData.findIndex((data) => data.status === 'Goed'), + 1 + ); + this.showData = [...this.adjustedData]; + }, + }); } - } + corrigeerData(data: AdjustData): void { + const index = this.adjustedData.indexOf(data); + const dialogRef = this.dialog.open(HerstelformComponent, { + data: { + name: data.name, + email: data.email, + role: data.role, + error: data.error, + }, + }); + + dialogRef.afterClosed().subscribe((result) => { + if (result) { + this.adjustedData[index] = result; + this.showData = [...this.adjustedData]; + } + }); + } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index f657163..64b15b7 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -2,15 +2,31 @@ import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; +import { MatTableModule } from '@angular/material/table'; +import { MatButtonModule } from '@angular/material/button'; +import { + MatDialogModule, +} from '@angular/material/dialog'; +import { FormsModule } from '@angular/forms'; +import { MatInputModule } from '@angular/material/input'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { HerstelformComponent } from './herstelform/herstel.form.component'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; @NgModule({ - declarations: [ - AppComponent - ], + declarations: [AppComponent, HerstelformComponent], imports: [ - BrowserModule + BrowserModule, + MatTableModule, + MatButtonModule, + MatDialogModule, + MatFormFieldModule, + MatInputModule, + FormsModule, + MatButtonModule, + BrowserAnimationsModule, ], providers: [], - bootstrap: [AppComponent] + bootstrap: [AppComponent], }) -export class AppModule { } +export class AppModule {} diff --git a/src/app/herstelform/herstel.form.component.css b/src/app/herstelform/herstel.form.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/herstelform/herstel.form.component.html b/src/app/herstelform/herstel.form.component.html new file mode 100644 index 0000000..2d94502 --- /dev/null +++ b/src/app/herstelform/herstel.form.component.html @@ -0,0 +1,17 @@ +

{{data.error}}

+
+ + Naam + + Email + + Role + + +
+
+ + +
diff --git a/src/app/herstelform/herstel.form.component.spec.ts b/src/app/herstelform/herstel.form.component.spec.ts new file mode 100644 index 0000000..fc8fc48 --- /dev/null +++ b/src/app/herstelform/herstel.form.component.spec.ts @@ -0,0 +1,28 @@ +/* tslint:disable:no-unused-variable */ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { By } from '@angular/platform-browser'; +import { DebugElement } from '@angular/core'; + +import { Herstel.formComponent } from './herstel.form.component'; + +describe('Herstel.formComponent', () => { + let component: Herstel.formComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ Herstel.formComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(Herstel.formComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/herstelform/herstel.form.component.ts b/src/app/herstelform/herstel.form.component.ts new file mode 100644 index 0000000..ab8ec83 --- /dev/null +++ b/src/app/herstelform/herstel.form.component.ts @@ -0,0 +1,21 @@ +import { Component, Inject } from '@angular/core'; +import { MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog'; +import { AdjustData } from '../app.component'; + +@Component({ + selector: 'app-herstelform', + templateUrl: './herstel.form.component.html', + styleUrls: ['./herstel.form.component.css'] +}) +export class HerstelformComponent { + + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: AdjustData, + ) {} + + onNoClick(): void { + this.dialogRef.close(); + } + +} diff --git a/src/index.html b/src/index.html index 24b82d4..8e6c0fb 100644 --- a/src/index.html +++ b/src/index.html @@ -1,14 +1,26 @@ - + - - - UserImport - + + + UserImport + - - + + + + + + + + - - - + + + diff --git a/src/styles.scss b/src/styles.scss index 90d4ee0..7e7239a 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1 +1,4 @@ /* You can add global styles to this file, and also import other style files */ + +html, body { height: 100%; } +body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; } From 43b169706d075cd1dfa434486a2ed8df3b4c4042 Mon Sep 17 00:00:00 2001 From: Dennis Wong Date: Wed, 21 Jun 2023 22:35:55 +0200 Subject: [PATCH 2/2] onnodige import --- src/app/app.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 07cc95e..d64472a 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; import { rawData } from './raw-data'; import { MockApiService, RoleTypeEnum } from './mock-api.service'; -import { EMPTY, catchError, mergeAll, switchMap, tap, throwError } from 'rxjs'; +import { EMPTY, catchError, switchMap, tap, throwError } from 'rxjs'; import { MatDialog } from '@angular/material/dialog'; import { HerstelformComponent } from './herstelform/herstel.form.component';