diff --git a/angular.json b/angular.json index ea4531b..2856feb 100644 --- a/angular.json +++ b/angular.json @@ -82,8 +82,8 @@ "browserTarget": "selfdelivery-admin-panel:build:production" }, "development": { - "browserTarget": "selfdelivery-admin-panel:build:development", - "proxyConfig": "proxy.confi.json" + "browserTarget": "selfdelivery-admin-panel:build:development" + //"proxyConfig": "proxy.confi.json" } }, "defaultConfiguration": "development" diff --git a/package-lock.json b/package-lock.json index 375e28e..8afa049 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,15 +9,23 @@ "version": "0.0.0", "dependencies": { "@angular/animations": "~13.3.0", + "@angular/cdk": "^13.3.8", "@angular/common": "~13.3.0", "@angular/compiler": "~13.3.0", "@angular/core": "~13.3.0", "@angular/forms": "~13.3.0", + "@angular/material": "^13.3.8", "@angular/platform-browser": "~13.3.0", "@angular/platform-browser-dynamic": "~13.3.0", + "@angular/pwa": "^14.0.0", "@angular/router": "~13.3.0", + "@schematics/angular": "^14.0.0", + "primeicons": "^5.0.0", + "primeng": "^13.4.1", "rxjs": "~7.5.0", "tslib": "^2.3.0", + "uuid": "^8.3.2", + "web-push": "^3.5.0", "zone.js": "~0.11.4" }, "devDependencies": { @@ -26,6 +34,7 @@ "@angular/compiler-cli": "~13.3.0", "@types/jasmine": "~3.10.0", "@types/node": "^12.11.1", + "@types/uuid": "^8.3.4", "jasmine-core": "~4.0.0", "karma": "~6.3.0", "karma-chrome-launcher": "~3.1.0", @@ -347,6 +356,28 @@ "@angular/core": "13.3.8" } }, + "node_modules/@angular/cdk": { + "version": "13.3.8", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-13.3.8.tgz", + "integrity": "sha512-ciLYoVxsqnA9hGJTUW74A56NjArYhFdqFYmVDimWWNYAgY7jY1gCfKq9UtixUErDi29FGSCWRbLuZ6w4q0NYnA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^5.0.0" + }, + "peerDependencies": { + "@angular/common": "^13.0.0 || ^14.0.0-0", + "@angular/core": "^13.0.0 || ^14.0.0-0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cdk/node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "optional": true + }, "node_modules/@angular/cli": { "version": "13.3.5", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.3.5.tgz", @@ -383,6 +414,22 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@angular/cli/node_modules/@schematics/angular": { + "version": "13.3.5", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.5.tgz", + "integrity": "sha512-1Ovx0cq72ZaNCyTyRD8ebIwUzpqhEH9ypWF05bfBLq3J0LlZgewIMhPJSxKmwRC3NQB5DZIYEvD0uhzBIuHCCA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "13.3.5", + "@angular-devkit/schematics": "13.3.5", + "jsonc-parser": "3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, "node_modules/@angular/common": { "version": "13.3.8", "resolved": "https://registry.npmjs.org/@angular/common/-/common-13.3.8.tgz", @@ -536,6 +583,23 @@ "rxjs": "^6.5.3 || ^7.4.0" } }, + "node_modules/@angular/material": { + "version": "13.3.8", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-13.3.8.tgz", + "integrity": "sha512-y+j4WphhDZXvqKwf/fNuR+QNkH13Qc0fp7//i98f8Gy3Za1NCCc5SfIoifQ7Xqwh2ZKbgnh6GTdtbT4zq+NjaQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/animations": "^13.0.0 || ^14.0.0-0", + "@angular/cdk": "13.3.8", + "@angular/common": "^13.0.0 || ^14.0.0-0", + "@angular/core": "^13.0.0 || ^14.0.0-0", + "@angular/forms": "^13.0.0 || ^14.0.0-0", + "@angular/platform-browser": "^13.0.0 || ^14.0.0-0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, "node_modules/@angular/platform-browser": { "version": "13.3.8", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-13.3.8.tgz", @@ -574,6 +638,105 @@ "@angular/platform-browser": "13.3.8" } }, + "node_modules/@angular/pwa": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@angular/pwa/-/pwa-14.0.0.tgz", + "integrity": "sha512-HLZY+ELvd/ZAoPZI+IrBCns4yJoIIwTongZ1iVBQ21N1yWjSHv3hdW9u/eqHhq4CPziQ5FMSnNb0jxqJDyYkcQ==", + "dependencies": { + "@angular-devkit/schematics": "14.0.0", + "@schematics/angular": "14.0.0", + "parse5-html-rewriting-stream": "6.0.1" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/pwa/node_modules/@angular-devkit/core": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.0.0.tgz", + "integrity": "sha512-xQXpNbIeBjnbY68OFkrpFm6v7xlmTLFk6zGPIkI4T/hrqT2kNmg0y1/FcN6yMBgCEC9WVWR8SHGaPWrc5VVZMw==", + "dependencies": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.0.0", + "rxjs": "6.6.7", + "source-map": "0.7.3" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular/pwa/node_modules/@angular-devkit/schematics": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.0.0.tgz", + "integrity": "sha512-/ycPygU1XpdGrROdxHJUUFGwxCf5vRrcBQvVbZhB2s7+DfDAaZHyWEItDeGK04hqpeTFq4m0NUP6ylXZospWvQ==", + "dependencies": { + "@angular-devkit/core": "14.0.0", + "jsonc-parser": "3.0.0", + "magic-string": "0.26.1", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/pwa/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular/pwa/node_modules/magic-string": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.1.tgz", + "integrity": "sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/pwa/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular/pwa/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, "node_modules/@angular/router": { "version": "13.3.8", "resolved": "https://registry.npmjs.org/@angular/router/-/router-13.3.8.tgz", @@ -2514,21 +2677,104 @@ } }, "node_modules/@schematics/angular": { - "version": "13.3.5", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.5.tgz", - "integrity": "sha512-1Ovx0cq72ZaNCyTyRD8ebIwUzpqhEH9ypWF05bfBLq3J0LlZgewIMhPJSxKmwRC3NQB5DZIYEvD0uhzBIuHCCA==", - "dev": true, + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.0.0.tgz", + "integrity": "sha512-Or9sFl0kGnB9uUs03/4eRtBS5S9WW+HeSe5rS5kFyMaXdydeshAjAVffAbYB6sDp57Qw0E4LvBC0mHzuZGYp/A==", "dependencies": { - "@angular-devkit/core": "13.3.5", - "@angular-devkit/schematics": "13.3.5", + "@angular-devkit/core": "14.0.0", + "@angular-devkit/schematics": "14.0.0", "jsonc-parser": "3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "node": "^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, + "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.0.0.tgz", + "integrity": "sha512-xQXpNbIeBjnbY68OFkrpFm6v7xlmTLFk6zGPIkI4T/hrqT2kNmg0y1/FcN6yMBgCEC9WVWR8SHGaPWrc5VVZMw==", + "dependencies": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.0.0", + "rxjs": "6.6.7", + "source-map": "0.7.3" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@schematics/angular/node_modules/@angular-devkit/schematics": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.0.0.tgz", + "integrity": "sha512-/ycPygU1XpdGrROdxHJUUFGwxCf5vRrcBQvVbZhB2s7+DfDAaZHyWEItDeGK04hqpeTFq4m0NUP6ylXZospWvQ==", + "dependencies": { + "@angular-devkit/core": "14.0.0", + "jsonc-parser": "3.0.0", + "magic-string": "0.26.1", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@schematics/angular/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@schematics/angular/node_modules/magic-string": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.1.tgz", + "integrity": "sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@schematics/angular/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@schematics/angular/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, "node_modules/@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -2728,6 +2974,12 @@ "@types/node": "*" } }, + "node_modules/@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "dev": true + }, "node_modules/@types/ws": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", @@ -2978,7 +3230,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, "dependencies": { "debug": "4" }, @@ -3026,7 +3277,6 @@ "version": "8.9.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -3042,7 +3292,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, "dependencies": { "ajv": "^8.0.0" }, @@ -3107,7 +3356,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -3128,7 +3376,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, + "devOptional": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -3183,6 +3431,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, "node_modules/async": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", @@ -3365,7 +3624,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, "funding": [ { "type": "github", @@ -3409,7 +3667,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=8" } @@ -3418,13 +3676,17 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, + "node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, "node_modules/body-parser": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", @@ -3498,7 +3760,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, + "devOptional": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -3539,7 +3801,6 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, "funding": [ { "type": "github", @@ -3559,6 +3820,11 @@ "ieee754": "^1.1.13" } }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -3686,7 +3952,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, + "devOptional": true, "funding": [ { "type": "individual", @@ -3752,7 +4018,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, "dependencies": { "restore-cursor": "^3.1.0" }, @@ -3764,7 +4029,6 @@ "version": "2.6.1", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "dev": true, "engines": { "node": ">=6" }, @@ -3796,7 +4060,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true, "engines": { "node": ">=0.8" } @@ -4444,7 +4707,6 @@ "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -4499,7 +4761,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, "dependencies": { "clone": "^1.0.2" } @@ -4739,6 +5000,14 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -5534,8 +5803,7 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { "version": "3.2.11", @@ -5599,7 +5867,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, + "devOptional": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -5902,7 +6170,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, + "devOptional": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -6100,6 +6368,17 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "node_modules/http_ece": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/http_ece/-/http_ece-1.1.0.tgz", + "integrity": "sha512-bptAfCDdPJxOs5zYSe7Y3lpr772s1G346R4Td5LgRUeCwIGpCGDUTJxRrhTNcAXbx37spge0kWEIH7QAYWNTlA==", + "dependencies": { + "urlsafe-base64": "~1.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -6199,7 +6478,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, "dependencies": { "agent-base": "6", "debug": "4" @@ -6254,7 +6532,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, "funding": [ { "type": "github", @@ -6372,8 +6649,7 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { "version": "2.0.0", @@ -6520,7 +6796,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, + "devOptional": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -6574,7 +6850,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -6592,7 +6868,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, + "devOptional": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -6604,7 +6880,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, "engines": { "node": ">=8" } @@ -6619,7 +6894,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.12.0" } @@ -6698,7 +6973,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, "engines": { "node": ">=10" }, @@ -6952,8 +7226,7 @@ "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/json5": { "version": "2.2.1", @@ -6970,8 +7243,7 @@ "node_modules/jsonc-parser": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", - "dev": true + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==" }, "node_modules/jsonfile": { "version": "6.1.0", @@ -6994,6 +7266,25 @@ "node >= 0.2.0" ] }, + "node_modules/jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, "node_modules/karma": { "version": "6.3.20", "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.20.tgz", @@ -7373,7 +7664,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -7389,7 +7679,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -7404,7 +7693,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7420,7 +7708,6 @@ "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, "dependencies": { "color-name": "~1.1.4" }, @@ -7431,14 +7718,12 @@ "node_modules/log-symbols/node_modules/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 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -7447,7 +7732,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7661,7 +7945,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, "engines": { "node": ">=6" } @@ -7707,8 +7990,7 @@ "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" }, "node_modules/minimatch": { "version": "3.0.5", @@ -7725,8 +8007,7 @@ "node_modules/minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/minipass": { "version": "3.1.6", @@ -7843,8 +8124,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/multicast-dns": { "version": "6.2.3", @@ -8033,7 +8313,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -8458,7 +8738,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -8490,7 +8769,6 @@ "version": "5.4.1", "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -8513,7 +8791,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -8528,7 +8805,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8544,7 +8820,6 @@ "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, "dependencies": { "color-name": "~1.1.4" }, @@ -8555,14 +8830,12 @@ "node_modules/ora/node_modules/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 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/ora/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -8571,7 +8844,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -8742,14 +9014,12 @@ "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" }, "node_modules/parse5-html-rewriting-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", - "dev": true, "dependencies": { "parse5": "^6.0.1", "parse5-sax-parser": "^6.0.1" @@ -8768,7 +9038,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", - "dev": true, "dependencies": { "parse5": "^6.0.1" } @@ -8840,7 +9109,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=8.6" }, @@ -9476,6 +9745,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/primeicons": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/primeicons/-/primeicons-5.0.0.tgz", + "integrity": "sha512-heygWF0X5HFI1otlZE62pp6ye7sZ8om78J9au2BRkg8O7Y8AHTZ9qKMRzchZUHLe8zUAvdi6hZzzm9XxgwIExw==" + }, + "node_modules/primeng": { + "version": "13.4.1", + "resolved": "https://registry.npmjs.org/primeng/-/primeng-13.4.1.tgz", + "integrity": "sha512-Dp72Yt7ORwoVYXr5r4oNTacQHUyLAdTuvXXNg9ZNjjxCdIfYZsVjTFBHBVzgEo9BpPy+/5twYy1JP/eXXDNPHg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": "^13.0.0", + "@angular/core": "^13.0.0", + "@angular/forms": "^13.0.0", + "primeicons": "^5.0.0", + "rxjs": "^6.0.0 || ^7.0.0", + "zone.js": "^0.10.2 || ^0.11.0" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -9534,7 +9824,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, "engines": { "node": ">=6" } @@ -9642,7 +9931,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -9656,7 +9944,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, + "devOptional": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -9783,7 +10071,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -9863,7 +10150,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -9955,14 +10241,12 @@ "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { "version": "1.49.9", @@ -10324,8 +10608,7 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/slash": { "version": "4.0.0", @@ -10429,7 +10712,6 @@ "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, "engines": { "node": ">= 8" } @@ -10509,8 +10791,7 @@ "node_modules/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 + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" }, "node_modules/spdy": { "version": "4.0.2", @@ -10604,7 +10885,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -10613,7 +10893,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -10647,7 +10926,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -10932,7 +11210,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, + "devOptional": true, "dependencies": { "is-number": "^7.0.0" }, @@ -11106,16 +11384,19 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "dependencies": { "punycode": "^2.1.0" } }, + "node_modules/urlsafe-base64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/urlsafe-base64/-/urlsafe-base64-1.0.0.tgz", + "integrity": "sha1-I/iQaabGL0bPOh07ABac77kL4MY=" + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "node_modules/utils-merge": { "version": "1.0.1", @@ -11130,7 +11411,6 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, "bin": { "uuid": "dist/bin/uuid" } @@ -11188,11 +11468,29 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, "dependencies": { "defaults": "^1.0.3" } }, + "node_modules/web-push": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/web-push/-/web-push-3.5.0.tgz", + "integrity": "sha512-JC0V9hzKTqlDYJ+LTZUXtW7B175qwwaqzbbMSWDxHWxZvd3xY0C2rcotMGDavub2nAAFw+sXTsqR65/KY2A5AQ==", + "dependencies": { + "asn1.js": "^5.3.0", + "http_ece": "1.1.0", + "https-proxy-agent": "^5.0.0", + "jws": "^4.0.0", + "minimist": "^1.2.5", + "urlsafe-base64": "^1.0.0" + }, + "bin": { + "web-push": "src/cli.js" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/webpack": { "version": "5.70.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", @@ -11890,6 +12188,23 @@ "tslib": "^2.3.0" } }, + "@angular/cdk": { + "version": "13.3.8", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-13.3.8.tgz", + "integrity": "sha512-ciLYoVxsqnA9hGJTUW74A56NjArYhFdqFYmVDimWWNYAgY7jY1gCfKq9UtixUErDi29FGSCWRbLuZ6w4q0NYnA==", + "requires": { + "parse5": "^5.0.0", + "tslib": "^2.3.0" + }, + "dependencies": { + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "optional": true + } + } + }, "@angular/cli": { "version": "13.3.5", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.3.5.tgz", @@ -11915,6 +12230,19 @@ "semver": "7.3.5", "symbol-observable": "4.0.0", "uuid": "8.3.2" + }, + "dependencies": { + "@schematics/angular": { + "version": "13.3.5", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.5.tgz", + "integrity": "sha512-1Ovx0cq72ZaNCyTyRD8ebIwUzpqhEH9ypWF05bfBLq3J0LlZgewIMhPJSxKmwRC3NQB5DZIYEvD0uhzBIuHCCA==", + "dev": true, + "requires": { + "@angular-devkit/core": "13.3.5", + "@angular-devkit/schematics": "13.3.5", + "jsonc-parser": "3.0.0" + } + } } }, "@angular/common": { @@ -12020,6 +12348,14 @@ "tslib": "^2.3.0" } }, + "@angular/material": { + "version": "13.3.8", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-13.3.8.tgz", + "integrity": "sha512-y+j4WphhDZXvqKwf/fNuR+QNkH13Qc0fp7//i98f8Gy3Za1NCCc5SfIoifQ7Xqwh2ZKbgnh6GTdtbT4zq+NjaQ==", + "requires": { + "tslib": "^2.3.0" + } + }, "@angular/platform-browser": { "version": "13.3.8", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-13.3.8.tgz", @@ -12036,6 +12372,74 @@ "tslib": "^2.3.0" } }, + "@angular/pwa": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@angular/pwa/-/pwa-14.0.0.tgz", + "integrity": "sha512-HLZY+ELvd/ZAoPZI+IrBCns4yJoIIwTongZ1iVBQ21N1yWjSHv3hdW9u/eqHhq4CPziQ5FMSnNb0jxqJDyYkcQ==", + "requires": { + "@angular-devkit/schematics": "14.0.0", + "@schematics/angular": "14.0.0", + "parse5-html-rewriting-stream": "6.0.1" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.0.0.tgz", + "integrity": "sha512-xQXpNbIeBjnbY68OFkrpFm6v7xlmTLFk6zGPIkI4T/hrqT2kNmg0y1/FcN6yMBgCEC9WVWR8SHGaPWrc5VVZMw==", + "requires": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.0.0", + "rxjs": "6.6.7", + "source-map": "0.7.3" + } + }, + "@angular-devkit/schematics": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.0.0.tgz", + "integrity": "sha512-/ycPygU1XpdGrROdxHJUUFGwxCf5vRrcBQvVbZhB2s7+DfDAaZHyWEItDeGK04hqpeTFq4m0NUP6ylXZospWvQ==", + "requires": { + "@angular-devkit/core": "14.0.0", + "jsonc-parser": "3.0.0", + "magic-string": "0.26.1", + "ora": "5.4.1", + "rxjs": "6.6.7" + } + }, + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "magic-string": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.1.tgz", + "integrity": "sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, "@angular/router": { "version": "13.3.8", "resolved": "https://registry.npmjs.org/@angular/router/-/router-13.3.8.tgz", @@ -13411,14 +13815,71 @@ } }, "@schematics/angular": { - "version": "13.3.5", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.5.tgz", - "integrity": "sha512-1Ovx0cq72ZaNCyTyRD8ebIwUzpqhEH9ypWF05bfBLq3J0LlZgewIMhPJSxKmwRC3NQB5DZIYEvD0uhzBIuHCCA==", - "dev": true, + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.0.0.tgz", + "integrity": "sha512-Or9sFl0kGnB9uUs03/4eRtBS5S9WW+HeSe5rS5kFyMaXdydeshAjAVffAbYB6sDp57Qw0E4LvBC0mHzuZGYp/A==", "requires": { - "@angular-devkit/core": "13.3.5", - "@angular-devkit/schematics": "13.3.5", + "@angular-devkit/core": "14.0.0", + "@angular-devkit/schematics": "14.0.0", "jsonc-parser": "3.0.0" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.0.0.tgz", + "integrity": "sha512-xQXpNbIeBjnbY68OFkrpFm6v7xlmTLFk6zGPIkI4T/hrqT2kNmg0y1/FcN6yMBgCEC9WVWR8SHGaPWrc5VVZMw==", + "requires": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.0.0", + "rxjs": "6.6.7", + "source-map": "0.7.3" + } + }, + "@angular-devkit/schematics": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.0.0.tgz", + "integrity": "sha512-/ycPygU1XpdGrROdxHJUUFGwxCf5vRrcBQvVbZhB2s7+DfDAaZHyWEItDeGK04hqpeTFq4m0NUP6ylXZospWvQ==", + "requires": { + "@angular-devkit/core": "14.0.0", + "jsonc-parser": "3.0.0", + "magic-string": "0.26.1", + "ora": "5.4.1", + "rxjs": "6.6.7" + } + }, + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "magic-string": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.1.tgz", + "integrity": "sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } } }, "@tootallnate/once": { @@ -13617,6 +14078,12 @@ "@types/node": "*" } }, + "@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "dev": true + }, "@types/ws": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", @@ -13852,7 +14319,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, "requires": { "debug": "4" } @@ -13890,7 +14356,6 @@ "version": "8.9.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", - "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -13902,7 +14367,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, "requires": { "ajv": "^8.0.0" } @@ -13940,8 +14404,7 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "3.2.1", @@ -13956,7 +14419,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, + "devOptional": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -13999,6 +14462,17 @@ "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", "dev": true }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, "async": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", @@ -14131,8 +14605,7 @@ "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "base64id": { "version": "2.0.0", @@ -14156,19 +14629,23 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true + "devOptional": true }, "bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, "requires": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, "body-parser": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", @@ -14240,7 +14717,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, + "devOptional": true, "requires": { "fill-range": "^7.0.1" } @@ -14262,12 +14739,16 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, "requires": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -14367,7 +14848,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, + "devOptional": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -14408,7 +14889,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, "requires": { "restore-cursor": "^3.1.0" } @@ -14416,8 +14896,7 @@ "cli-spinners": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "dev": true + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" }, "cli-width": { "version": "3.0.0", @@ -14439,8 +14918,7 @@ "clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "clone-deep": { "version": "4.0.1", @@ -14929,7 +15407,6 @@ "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -14967,7 +15444,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, "requires": { "clone": "^1.0.2" } @@ -15151,6 +15627,14 @@ "domhandler": "^4.2.0" } }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -15672,8 +16156,7 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { "version": "3.2.11", @@ -15725,7 +16208,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, + "devOptional": true, "requires": { "to-regex-range": "^5.0.1" } @@ -15942,7 +16425,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, + "devOptional": true, "requires": { "is-glob": "^4.0.1" } @@ -16106,6 +16589,14 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "http_ece": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/http_ece/-/http_ece-1.1.0.tgz", + "integrity": "sha512-bptAfCDdPJxOs5zYSe7Y3lpr772s1G346R4Td5LgRUeCwIGpCGDUTJxRrhTNcAXbx37spge0kWEIH7QAYWNTlA==", + "requires": { + "urlsafe-base64": "~1.0.0" + } + }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -16184,7 +16675,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, "requires": { "agent-base": "6", "debug": "4" @@ -16224,8 +16714,7 @@ "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { "version": "5.2.0", @@ -16304,8 +16793,7 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "2.0.0", @@ -16418,7 +16906,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, + "devOptional": true, "requires": { "binary-extensions": "^2.0.0" } @@ -16451,7 +16939,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "devOptional": true }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -16463,7 +16951,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, + "devOptional": true, "requires": { "is-extglob": "^2.1.1" } @@ -16471,8 +16959,7 @@ "is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" }, "is-lambda": { "version": "1.0.1", @@ -16484,7 +16971,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "devOptional": true }, "is-path-cwd": { "version": "2.2.0", @@ -16532,8 +17019,7 @@ "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" }, "is-what": { "version": "3.14.1", @@ -16729,8 +17215,7 @@ "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "json5": { "version": "2.2.1", @@ -16741,8 +17226,7 @@ "jsonc-parser": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", - "dev": true + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==" }, "jsonfile": { "version": "6.1.0", @@ -16760,6 +17244,25 @@ "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, + "jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "requires": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, "karma": { "version": "6.3.20", "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.20.tgz", @@ -17047,7 +17550,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, "requires": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -17057,7 +17559,6 @@ "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" } @@ -17066,7 +17567,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -17076,7 +17576,6 @@ "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" } @@ -17084,20 +17583,17 @@ "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 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -17260,8 +17756,7 @@ "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "mini-css-extract-plugin": { "version": "2.5.3", @@ -17289,8 +17784,7 @@ "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" }, "minimatch": { "version": "3.0.5", @@ -17304,8 +17798,7 @@ "minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "minipass": { "version": "3.1.6", @@ -17393,8 +17886,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "multicast-dns": { "version": "6.2.3", @@ -17539,7 +18031,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "devOptional": true }, "normalize-range": { "version": "0.1.2", @@ -17873,7 +18365,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, "requires": { "mimic-fn": "^2.1.0" } @@ -17893,7 +18384,6 @@ "version": "5.4.1", "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, "requires": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -17910,7 +18400,6 @@ "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" } @@ -17919,7 +18408,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -17929,7 +18417,6 @@ "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" } @@ -17937,20 +18424,17 @@ "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 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -18077,14 +18561,12 @@ "parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" }, "parse5-html-rewriting-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", - "dev": true, "requires": { "parse5": "^6.0.1", "parse5-sax-parser": "^6.0.1" @@ -18103,7 +18585,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", - "dev": true, "requires": { "parse5": "^6.0.1" } @@ -18160,7 +18641,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "devOptional": true }, "pify": { "version": "2.3.0", @@ -18571,6 +19052,19 @@ "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true }, + "primeicons": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/primeicons/-/primeicons-5.0.0.tgz", + "integrity": "sha512-heygWF0X5HFI1otlZE62pp6ye7sZ8om78J9au2BRkg8O7Y8AHTZ9qKMRzchZUHLe8zUAvdi6hZzzm9XxgwIExw==" + }, + "primeng": { + "version": "13.4.1", + "resolved": "https://registry.npmjs.org/primeng/-/primeng-13.4.1.tgz", + "integrity": "sha512-Dp72Yt7ORwoVYXr5r4oNTacQHUyLAdTuvXXNg9ZNjjxCdIfYZsVjTFBHBVzgEo9BpPy+/5twYy1JP/eXXDNPHg==", + "requires": { + "tslib": "^2.3.0" + } + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -18621,8 +19115,7 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qjobs": { "version": "1.2.0", @@ -18695,7 +19188,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -18706,7 +19198,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, + "devOptional": true, "requires": { "picomatch": "^2.2.1" } @@ -18810,8 +19302,7 @@ "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" }, "requires-port": { "version": "1.0.0", @@ -18872,7 +19363,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, "requires": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -18931,14 +19421,12 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sass": { "version": "1.49.9", @@ -19220,8 +19708,7 @@ "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "slash": { "version": "4.0.0", @@ -19301,8 +19788,7 @@ "source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" }, "source-map-js": { "version": "1.0.2", @@ -19363,8 +19849,7 @@ "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 + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" }, "spdy": { "version": "4.0.2", @@ -19440,7 +19925,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "requires": { "safe-buffer": "~5.2.0" }, @@ -19448,8 +19932,7 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" } } }, @@ -19468,7 +19951,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "requires": { "ansi-regex": "^5.0.1" } @@ -19662,7 +20144,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, + "devOptional": true, "requires": { "is-number": "^7.0.0" } @@ -19780,16 +20262,19 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "requires": { "punycode": "^2.1.0" } }, + "urlsafe-base64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/urlsafe-base64/-/urlsafe-base64-1.0.0.tgz", + "integrity": "sha1-I/iQaabGL0bPOh07ABac77kL4MY=" + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "utils-merge": { "version": "1.0.1", @@ -19800,8 +20285,7 @@ "uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "validate-npm-package-name": { "version": "3.0.0", @@ -19847,11 +20331,23 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, "requires": { "defaults": "^1.0.3" } }, + "web-push": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/web-push/-/web-push-3.5.0.tgz", + "integrity": "sha512-JC0V9hzKTqlDYJ+LTZUXtW7B175qwwaqzbbMSWDxHWxZvd3xY0C2rcotMGDavub2nAAFw+sXTsqR65/KY2A5AQ==", + "requires": { + "asn1.js": "^5.3.0", + "http_ece": "1.1.0", + "https-proxy-agent": "^5.0.0", + "jws": "^4.0.0", + "minimist": "^1.2.5", + "urlsafe-base64": "^1.0.0" + } + }, "webpack": { "version": "5.70.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", diff --git a/package.json b/package.json index 8500e24..6cb6bc9 100644 --- a/package.json +++ b/package.json @@ -19,12 +19,15 @@ "@angular/material": "^13.3.8", "@angular/platform-browser": "~13.3.0", "@angular/platform-browser-dynamic": "~13.3.0", + "@angular/pwa": "^14.0.0", "@angular/router": "~13.3.0", + "@schematics/angular": "^14.0.0", "primeicons": "^5.0.0", "primeng": "^13.4.1", "rxjs": "~7.5.0", "tslib": "^2.3.0", "uuid": "^8.3.2", + "web-push": "^3.5.0", "zone.js": "~0.11.4" }, "devDependencies": { diff --git a/src/app/app.component.html b/src/app/app.component.html index 9d1cd13..ecf263a 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -4,12 +4,12 @@ - - + + - \ No newline at end of file + diff --git a/src/app/app.component.scss b/src/app/app.component.scss index 366c3ba..1ff9aa9 100644 --- a/src/app/app.component.scss +++ b/src/app/app.component.scss @@ -1,3 +1,3 @@ .main-container { height: 100%; -} \ No newline at end of file +} diff --git a/src/app/app.component.ts b/src/app/app.component.ts index cb6f19f..81b3fca 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,4 +1,5 @@ import { Component, ComponentRef, EmbeddedViewRef, OnInit, Type, ViewContainerRef } from '@angular/core'; +import { Router } from '@angular/router'; import { DialogService } from 'primeng/dynamicdialog'; import {Toast} from "primeng/toast"; import { ExitComponentComponent } from './components/exit-component/exit-component.component'; @@ -20,12 +21,14 @@ export class AppComponent implements OnInit { private cookiesService: CookiesService, private viewContainerRef: ViewContainerRef, public dialogService: DialogService, + private router: Router, ) {} ngOnInit(): void { this.messageComponent = this.appendComponent(Toast); const token = decodeURI(this.cookiesService.getItem('token') ?? '') this.isAuth = token.length ? true : false; + this.router.navigate(['/clients']) } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index e632d82..5753555 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -21,6 +21,9 @@ import { DivisionsComponent } from './pages/divisions/divisions.component'; import { AreasComponent } from './pages/areas/areas.component'; import { MenuComponent } from './components/menu/menu.component'; import { ExitComponentComponent } from './components/exit-component/exit-component.component'; +import { TableModule } from 'primeng/table'; +import { ScrollPanelModule } from 'primeng/scrollpanel'; + const routes = [ { path: 'clients', component: ClientsComponent }, @@ -56,6 +59,8 @@ const routes = [ FormsModule, ReactiveFormsModule, MessagesModule, + TableModule, + ScrollPanelModule, RouterModule.forRoot(routes) ], providers: [MessageService, {provide: APP_BASE_HREF, useValue: '/'}], diff --git a/src/app/components/login-modal/login-modal.component.ts b/src/app/components/login-modal/login-modal.component.ts index f948c8e..2a5b7ea 100644 --- a/src/app/components/login-modal/login-modal.component.ts +++ b/src/app/components/login-modal/login-modal.component.ts @@ -54,7 +54,7 @@ export class LoginModalComponent implements OnInit { params: [userData.login, userData.password] }, RpcService.authService, false).subscribe({ next: (result) => { - this.cookiesService.setCookie('token', result); + this.cookiesService.setCookie('token', result.result); this.messageService.add({ severity: 'success', summary: 'Авторизация прошла успешно!', @@ -73,4 +73,4 @@ export class LoginModalComponent implements OnInit { ); } -} \ No newline at end of file +} diff --git a/src/app/components/menu/menu.component.html b/src/app/components/menu/menu.component.html index a83147c..d719f87 100644 --- a/src/app/components/menu/menu.component.html +++ b/src/app/components/menu/menu.component.html @@ -1,5 +1,5 @@ diff --git a/src/app/components/menu/menu.component.ts b/src/app/components/menu/menu.component.ts index a45dbdf..b3959d9 100644 --- a/src/app/components/menu/menu.component.ts +++ b/src/app/components/menu/menu.component.ts @@ -42,4 +42,4 @@ export class MenuComponent implements OnInit { redirect(path: string) { this.router.navigate([path]); } -} \ No newline at end of file +} diff --git a/src/app/interface/data.ts b/src/app/interface/data.ts index 5067be6..0a257a9 100644 --- a/src/app/interface/data.ts +++ b/src/app/interface/data.ts @@ -6,4 +6,89 @@ export interface UserData { export interface MenuItem { name: string; path: string; -} \ No newline at end of file +} + +export interface Delivery_address { + flat: string; + house: string; + street: string; +} + +export interface Modifiers { + group: string; + title: string; +} + +export interface Products { + area: string; + id: string; + modifiers: Modifiers[]; + nomenclature_code: string; + requested_quantity: string; + status: string; + stock_quantity: string; + title: string; + unit: string; +} + +export interface Address { + client_id: string; + id: string; + name: string; +} + +export interface Payment { + summ: number; + type: string; +} + +export interface Order { + address: Address; + comment: string; + date_created: string; + delivery_address: Delivery_address; + due_datetime: string; + external_id: string; + id: string; + payment: Payment[]; + phone: string; + products: Products[]; + status: string; + status_h: string; + item_style: string; + isWarnLine: boolean; +} + +export interface Client { + id: string; + name: string; + choose: boolean; +} + +export interface Divisions { + client_id: string; + id: string; + name: string; +} + +export interface Areas { + client_id: string; + id: string; + name: string; + selected: boolean; +} + +export interface Terminals { + area_types: []; + client_id: string; + division_id: string; + id: string; + public_id: string; +} + +export interface Notification { + id: string; + new: boolean; + new_fin: boolean; + due: boolean; +} diff --git a/src/app/pages/areas/areas.component.html b/src/app/pages/areas/areas.component.html index f922b61..a6291ad 100644 --- a/src/app/pages/areas/areas.component.html +++ b/src/app/pages/areas/areas.component.html @@ -1 +1,51 @@ -

areas

\ No newline at end of file +

Зоны

+ +

Выбран: {{chooseName}}

+ +

Выберите клиента

+
+ +
+ + + + + ID + Наименование зоны + + + + + + + + + + {{areas.id}} + {{areas.name}} + + + + + + + +
+ + + + + + + Введите наименование зоны: + + + + +
+ +
+ + + +
diff --git a/src/app/pages/areas/areas.component.ts b/src/app/pages/areas/areas.component.ts index a3b2ec0..11bd36b 100644 --- a/src/app/pages/areas/areas.component.ts +++ b/src/app/pages/areas/areas.component.ts @@ -1,4 +1,7 @@ import { Component, OnInit } from "@angular/core"; +import { JsonrpcService, RpcService } from "src/app/services/jsonrpc.service"; +import { MessageService } from "primeng/api"; +import { Areas } from "src/app/interface/data"; @Component({ @@ -7,11 +10,134 @@ import { Component, OnInit } from "@angular/core"; styleUrls: ['./areas.component.scss'] }) export class AreasComponent implements OnInit { - constructor( + public areas: Areas[] = []; + public new_ar = true; + public choose = this.jsonRpcService.ClientChoose; + public create = false; + public chooseName!: string; - ) {} + constructor( + private jsonRpcService: JsonrpcService, + private messageService: MessageService + ) { } - ngOnInit(): void { - - } -} \ No newline at end of file + ngOnInit(): void { + if (this.choose) { this.getAreas() }; + } + + async getAreas() { + this.create = false; + this.new_ar = true; + await this.jsonRpcService.rpc2({ + method: 'getAreas', + params: { + "client_id": this.choose + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + this.areas = data; + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + this.chooseName = this.jsonRpcService.ClientChooseName; + } + + updateArea1(id: any, name: any) { + this.new_ar = false; + setTimeout(() => document.getElementsByTagName("input")[0].value = name, 100); + this.jsonRpcService.changeId = id + } + + updateArea() { + let name_n = document.getElementsByTagName("input")[0].value + this.jsonRpcService.rpc2({ + method: 'updateArea', + params: { + "client_id": this.choose, + "area_id": this.jsonRpcService.changeId, + "name": name_n + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + /*this.clients = data;*/ + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + this.new_ar = true; + this.jsonRpcService.changeId = ""; + this.getAreas(); + } + + deleteArea(id: any) { + this.jsonRpcService.rpc2({ + method: 'deleteArea', + params: { + "client_id": this.choose, + "area_id": id + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + /*this.clients = data;*/ + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + setTimeout(() => this.getAreas(), 100); + } + + + createArea() { + this.new_ar = false; + this.create = true; + } + + createArea2() { + let name = document.getElementsByTagName("input")[0].value + this.jsonRpcService.rpc2({ + method: 'createArea', + params: { + "name": name, + "client_id": this.choose + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + /*this.clients = data;*/ + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + setTimeout(() => this.getAreas(), 100); + + } + +} diff --git a/src/app/pages/clients/clients.component.html b/src/app/pages/clients/clients.component.html index c2c65e6..d742916 100644 --- a/src/app/pages/clients/clients.component.html +++ b/src/app/pages/clients/clients.component.html @@ -1 +1,49 @@ -

Clients

\ No newline at end of file +

Клиенты

+ +

Выбран: {{chooseName}}

+ +

Выберите клиента

+
+ +
+ + + + + ID + Наименование организации + + + + + + + + + {{client.id}} + {{client.name}} + + + + + + +
+ + + + + + + Введите наименование организации: + + + + +
+ +
+ + + +
diff --git a/src/app/pages/clients/clients.component.ts b/src/app/pages/clients/clients.component.ts index 404e56e..8fd8680 100644 --- a/src/app/pages/clients/clients.component.ts +++ b/src/app/pages/clients/clients.component.ts @@ -1,4 +1,8 @@ import { Component, OnInit } from "@angular/core"; +import { JsonrpcService, RpcService } from "src/app/services/jsonrpc.service"; +import { MessageService } from "primeng/api"; +import { Client } from "src/app/interface/data"; + @Component({ @@ -7,11 +11,142 @@ import { Component, OnInit } from "@angular/core"; styleUrls: ['./clients.component.scss'] }) export class ClientsComponent implements OnInit { + public clients: Client[] = []; + public new_cl = true; + public choose = this.jsonRpcService.ClientChoose; + public create = false; + public chooseName!: string; + public myAudio = new Audio(); + + constructor( + private jsonRpcService: JsonrpcService, + private messageService: MessageService + ) { } - ) {} + ngOnInit(): void { + this.getClients(); + } - ngOnInit(): void { - - } -} \ No newline at end of file + async getClients() { + this.create = false; + this.new_cl = true; + await this.jsonRpcService.rpc2({ + method: 'getClients', + params: { + "name": "" + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + this.clients = data; + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + this.chooseName = this.jsonRpcService.ClientChooseName; + } + + changeClient1(id: any, name: any) { + this.new_cl = false; + setTimeout(() => document.getElementsByTagName("input")[0].value = name, 100); + this.jsonRpcService.changeId = id + } + + changeClient() { + let name_n = document.getElementsByTagName("input")[0].value + this.jsonRpcService.rpc2({ + method: 'updateClient', + params: { + "client_id": this.jsonRpcService.changeId, + "name": name_n + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + /*this.clients = data;*/ + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + this.new_cl = true; + this.jsonRpcService.changeId = ""; + this.getClients(); + } + + deleteClient(id: any) { + this.jsonRpcService.rpc2({ + method: 'deleteClient', + params: { + "client_id": id + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + /*this.clients = data;*/ + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + setTimeout(() => this.getClients(), 100); + } + + chooseClient(id: any, name: any) { + this.myAudio.src = "../../../assets/myAudio.mp3" + this.jsonRpcService.ClientChooseName = name; + this.jsonRpcService.ClientChoose = id; + this.choose = this.jsonRpcService.ClientChoose; + this.chooseName = this.jsonRpcService.ClientChooseName; + //this.myAudio.load(); + //this.myAudio.play(); + } + + createCient() { + this.new_cl = false; + this.create = true; + } + + createClient2() { + let name = document.getElementsByTagName("input")[0].value + this.jsonRpcService.rpc2({ + method: 'createClient', + params: { + "name": name + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + /*this.clients = data;*/ + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + setTimeout(() => this.getClients(), 100); + + } + +} diff --git a/src/app/pages/divisions/divisions.component.html b/src/app/pages/divisions/divisions.component.html index c93b62b..a903aad 100644 --- a/src/app/pages/divisions/divisions.component.html +++ b/src/app/pages/divisions/divisions.component.html @@ -1 +1,51 @@ -

divisions

\ No newline at end of file +

Подразделения

+ +

Выбран: {{chooseName}}

+ +

Выберите клиента

+
+ +
+ + + + + ID + Наименование подразделения + + + + + + + + + + {{Division.id}} + {{Division.name}} + + + + + + + +
+ + + + + + + Введите наименование подразделения: + + + + +
+ +
+ + + +
diff --git a/src/app/pages/divisions/divisions.component.ts b/src/app/pages/divisions/divisions.component.ts index 8994b77..a5c0695 100644 --- a/src/app/pages/divisions/divisions.component.ts +++ b/src/app/pages/divisions/divisions.component.ts @@ -1,4 +1,7 @@ import { Component, OnInit } from "@angular/core"; +import { JsonrpcService, RpcService } from "src/app/services/jsonrpc.service"; +import { MessageService } from "primeng/api"; +import { Divisions } from "src/app/interface/data"; @Component({ @@ -7,11 +10,141 @@ import { Component, OnInit } from "@angular/core"; styleUrls: ['./divisions.component.scss'] }) export class DivisionsComponent implements OnInit { - constructor( + public divisions: Divisions[] = []; + public new_div = true; + public choose = this.jsonRpcService.ClientChoose; + public create = false; + public chooseName!: string; - ) {} + constructor( + private jsonRpcService: JsonrpcService, + private messageService: MessageService + ) { } - ngOnInit(): void { - - } -} \ No newline at end of file + ngOnInit(): void { + if (this.choose) { this.getDivisions() }; + } + + async getDivisions() { + this.create = false; + this.new_div = true; + await this.jsonRpcService.rpc2({ + method: 'getDivisions', + params: { + "client_id": this.choose + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + this.divisions = data; + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + this.chooseName = this.jsonRpcService.ClientChooseName; + } + + changeDivision1(id: any, name: any) { + this.new_div = false; + setTimeout(() => document.getElementsByTagName("input")[0].value = name, 100); + this.jsonRpcService.changeId = id + } + + changeDivision() { + let name_n = document.getElementsByTagName("input")[0].value + this.jsonRpcService.rpc2({ + method: 'updateDivision', + params: { + "client_id": this.choose, + "division_id": this.jsonRpcService.changeId, + "name": name_n + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + /*this.clients = data;*/ + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + this.new_div = true; + this.jsonRpcService.changeId = ""; + this.getDivisions(); + } + + deleteDivision(id: any) { + this.jsonRpcService.rpc2({ + method: 'deleteDivision', + params: { + "client_id": this.choose, + "division_id": id + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + /*this.clients = data;*/ + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + setTimeout(() => this.getDivisions(), 100); + } + + chooseClient(id: any, name: any) { + console.log(id); + this.jsonRpcService.ClientChooseName = name; + this.jsonRpcService.ClientChoose = id; + this.choose = this.jsonRpcService.ClientChoose; + this.chooseName = this.jsonRpcService.ClientChooseName; + } + + createDivision() { + this.new_div = false; + this.create = true; + } + + createDivision2() { + let name = document.getElementsByTagName("input")[0].value + this.jsonRpcService.rpc2({ + method: 'createDivision', + params: { + "name": name, + "client_id": this.choose + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + /*this.clients = data;*/ + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + setTimeout(() => this.getDivisions(), 100); + + } + +} diff --git a/src/app/pages/orders/orders.component.html b/src/app/pages/orders/orders.component.html index 94bfa0b..80001c4 100644 --- a/src/app/pages/orders/orders.component.html +++ b/src/app/pages/orders/orders.component.html @@ -1 +1,205 @@ -

Orders

\ No newline at end of file +

Заказы

+ +

Выбран: {{chooseName}}

+ +

Выберите клиента

+
+ + +
+

Время последнего обновления: {{lastOrderUpdateTime | date:'dd.MM.yyyy HH:mm:ss'}}

+ + + + + ID + Статус + + ID точки заказа + Дата создания + Дата самовывоза + Внешний ID заказа + Телефон клиента + Тип оплаты + + + + + + + + + + + + + + + + + + {{order.id}} + {{order.status_h}} + {{order.address.name}} + {{order.date_created | date:'HH:mm dd.MM.yyyy'}} + {{order.due_datetime | date:'HH:mm dd.MM.yyyy'}} + {{order.external_id}} + {{order.phone}} + {{order.payment[0].type}} + + + + Нет данных + + +
+ + +
+ +

Заказ: {{order[0].id}}

+ + + + Внешний ID заказа + Дата создания + ID точки заказа + Статус + + + + + + + + + + + + + +

Состав заказа:

+ + + + Товар + Кол-во (факт.) + Цена + Кол-во (реал.) + Стоимость + Модификаторы + + + + + + {{ord.title}} + + {{ord.requested_quantity}} + - + {{ord.stock_quantity}} + - + + + + + + + + + {{mod.group}} + + + {{mod.title}} + + + + + + + +

Оплата:

+ + + + Сумма к оплате по безналу: + Тип оплаты: + + + + + {{pay.summ}} + {{pay.type}} + + + +
+
+ + + diff --git a/src/app/pages/orders/orders.component.scss b/src/app/pages/orders/orders.component.scss index e69de29..b9956f0 100644 --- a/src/app/pages/orders/orders.component.scss +++ b/src/app/pages/orders/orders.component.scss @@ -0,0 +1,3 @@ +.Red { + color: red; +} diff --git a/src/app/pages/orders/orders.component.ts b/src/app/pages/orders/orders.component.ts index 4e0a4e0..5829bf9 100644 --- a/src/app/pages/orders/orders.component.ts +++ b/src/app/pages/orders/orders.component.ts @@ -1,17 +1,206 @@ -import { Component, OnInit } from "@angular/core"; +import { Component, OnInit, Renderer2, ElementRef, Input } from "@angular/core"; +import { TableModule } from 'primeng/table'; +import { JsonrpcService, RpcService } from "src/app/services/jsonrpc.service"; +import { MessageService } from "primeng/api"; +import { Order, Products, Delivery_address, Notification } from "src/app/interface/data"; +import { ClientsComponent } from "../clients/clients.component"; +/*import { SwPush, NewsletterService } from '@angular/service-worker*/ @Component({ selector: 'app-orders', templateUrl: './orders.component.html', - styleUrls: ['./orders.component.scss'] + styleUrls: ['./orders.component.scss'], + providers: [ClientsComponent] }) export class OrdersComponent implements OnInit { + public orders: Array = []; + public order: Array = []; + public view: boolean = true; + public chooseName!: string; + public lastOrderUpdateTime: string = ""; + public choose = this.jsonRpcService.ClientChoose; + public notification: Array = []; + public map_new = new Map(); + public map_new_fin = new Map(); + public map_due = new Map(); + public myAudioP = new Audio(); + public myAudioA = new Audio(); + + + public statuses = [ + "К готовке", + "Готовится", + "Готово", + "Отменен", + "Можно забирать", + "У курьера", + "Доставлен", + "Не подтвержден", + "Требует согласия", + "Требуется оплата", + "Оплата просрочена", + "Новый", + "Выдан", + "Нужен возврат" + ]; + + + constructor( - - ) {} - - ngOnInit(): void { - + private jsonRpcService: JsonrpcService, + private messageService: MessageService, + private clientsComponent: ClientsComponent, + ) { } -} \ No newline at end of file + + + + async ngOnInit() { + + if (this.choose) { + this.getOrders(); + setTimeout(() => this.notif(), 700); + + setInterval(() => this.getOrders(), 60000); + this.chooseName = this.jsonRpcService.ClientChooseName; + } + + } + + notif() { + for (let i = 0; i < this.orders.length; i++) { + this.map_new.set(this.orders[i].id, true) + this.map_new_fin.set(this.orders[i].id, true) + } + } + + async getOrders() { + this.myAudioP.src = "../../../assets/myAudio.mp3"; + this.myAudioA.src = "../../../assets/myAudio2.mp3"; + if (this.view == true) { + await this.jsonRpcService.rpc2({ + method: 'getOrders', + params: { + "client_id": this.choose, "order_status": [ + "readyToStart", + "inProgress", + "complete", + "cancel", + "readyToPickup", + "onWay", + "delivered", + "unconfirmed", + "requiresConsent", + "requiresPayment", + "paymentOverdue", + "newOrder", + "issued", + "needReturnPayment" + ] + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + this.color(data); + this.orders = data; + + + this.lastOrderUpdateTime = Date().toString(); + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + } + ); + } + setTimeout (() => this.notif2(), 700) + + } + + + +notif2() { + for (let i = 0; i < this.orders.length; i++) { + if (this.map_new.has(this.orders[i].id) == false) { + this.map_new.set(this.orders[i].id, true); + } + if (this.map_new_fin.has(this.orders[i].id) == false && this.map_new.has(this.orders[i].id) == true) { + this.myAudioP.load(); + this.myAudioP.play(); + this.map_new_fin.set(this.orders[i].id, true); + } + var date1 = new Date(); + var date2 = new Date(this.orders[i].due_datetime); + if ((date2.getTime() - date1.getTime() < 1000 * 3600) && (this.orders[i].status_h == 'К готовке') && (this.map_due.has(this.orders[i].id) == false) && (date2.getTime() - date1.getTime() > 1000 * 1080)) { + this.myAudioA.load(); + this.myAudioA.play(); + this.map_due.set(this.orders[i].id, true); + } + } +} + + + async vievOrder(id: any) { + + await this.jsonRpcService.rpc2({ + method: 'getOrders', + params: { "client_id": this.choose, "order_id": id } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result + + this.order = data + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + } + ); + this.view = false + } + + listOrders() { + this.view = true; + this.getOrders(); + } + + color(targetData: any) { + for (let i = 0; i < targetData.length; i++) { + var item = targetData[i]; + var date1 = new Date(); + var date2 = new Date(item.due_datetime); + if ((date2.getTime() - date1.getTime() < 1000 * 3600) && (item.status_h == 'К готовке') && (date2.getTime() - date1.getTime() >= 0)) { + item.item_style = 'orange' + }; + if ((item.status_h == 'К готовке') && (date2.getTime() - date1.getTime() < 0)) { + item.item_style = 'red' + }; + if (item.status_h == 'Готово') { + item.item_style = 'green' + }; + if ((item.status_h == 'Отменен') || (item.status_h == 'Оплата просрочена')) { + item.item_style = 'grey' + }; + if ((date2.getTime() - date1.getTime() >= 1000 * 3600) && (item.status_h == 'К готовке')) { + item.item_style = 'yellow' + }; + if (item.status_h == 'Готовится') { + item.item_style = 'blue' + }; + if (item.status_h == 'Выдан') { + item.item_style = 'lilac' + }; + } + } +} diff --git a/src/app/pages/terminals/terminals.component.html b/src/app/pages/terminals/terminals.component.html index fb374e7..3edb554 100644 --- a/src/app/pages/terminals/terminals.component.html +++ b/src/app/pages/terminals/terminals.component.html @@ -1 +1,77 @@ -

terminals

\ No newline at end of file +

Терминалы

+ + + +

Выбран: {{chooseName}}

+ +

Выберите клиента

+
+ +
+ + + + + ID + Наименование терминала + ID точки заказа + Список ID цехов готовки + Статус подключения + + + + + + + + {{terminals.id}} + {{terminals.public_id}} + {{terminals.division_id}} + {{terminals.area_types}} + + + + + + +
+ + + + + + + Введите внешний ID терминала: + + + + Введите ID точки заказа: + + + + Введите ID цехов готовки: + + + + + + Цех: {{area.name}} + + + + + + + +
+ + +
+ + + +
diff --git a/src/app/pages/terminals/terminals.component.ts b/src/app/pages/terminals/terminals.component.ts index c243843..e1b5840 100644 --- a/src/app/pages/terminals/terminals.component.ts +++ b/src/app/pages/terminals/terminals.component.ts @@ -1,4 +1,8 @@ import { Component, OnInit } from "@angular/core"; +import { JsonrpcService, RpcService } from "src/app/services/jsonrpc.service"; +import { MessageService } from "primeng/api"; +import { Terminals, Areas } from "src/app/interface/data"; +import { ScrollPanelModule } from 'primeng/scrollpanel'; @Component({ @@ -7,11 +11,176 @@ import { Component, OnInit } from "@angular/core"; styleUrls: ['./terminals.component.scss'] }) export class TerminalsComponent implements OnInit { - constructor( + public terminals: Terminals[] = []; + public new_ter = true; + public choose = this.jsonRpcService.ClientChoose; + public create = false; + public chooseName!: string; + public areas: Areas[] = []; + public chooseArea: Array = []; - ) {} - ngOnInit(): void { - + constructor( + private jsonRpcService: JsonrpcService, + private messageService: MessageService, + + //readonly swPush: SwPush, + //private newsletterService: NewsletterService + ) { } + + ngOnInit(): void { + if (this.choose) { this.getTerminals() }; + } + + async getTerminals() { + this.create = false; + this.new_ter = true; + await this.jsonRpcService.rpc2({ + method: 'getTerminals', + params: { + "client_id": this.choose + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + this.terminals = data; + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + this.chooseName = this.jsonRpcService.ClientChooseName; + } + + async getAreas() { + await this.jsonRpcService.rpc2({ + method: 'getAreas', + params: { + "client_id": this.choose + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + this.areas = data; + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + } + + updateTerminal1(id: any, public_id: any, division_id: any, area_types: any) { + this.new_ter = false; + setTimeout(() => document.getElementsByTagName("input")[0].value = public_id, 100); + setTimeout(() => document.getElementsByTagName("input")[1].value = division_id, 100); + this.jsonRpcService.changeId = id; + this.getAreas() + } + + updateTerminal() { + this.chooseArea = []; + let address = document.getElementsByTagName("input")[1].value +/* let areas = document.getElementsByTagName("input")[1].value*/ + let public_id = document.getElementsByTagName("input")[0].value + for (let i = 0; i < this.areas.length; i++) { + + if (this.areas[i].selected == true) { + this.chooseArea.push(this.areas[i].name) + } } -} \ No newline at end of file + + this.jsonRpcService.rpc2({ + method: 'updateTerminal', + params: { + "client_id": this.choose, + "terminal_id": this.jsonRpcService.changeId, + "address": address, + "areas": this.chooseArea, + "public_id": public_id + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + /*this.clients = data;*/ + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + this.new_ter = true; + this.jsonRpcService.changeId = ""; + this.getTerminals(); + } + + deleteTerminal(id: any) { + this.jsonRpcService.rpc2({ + method: 'deleteTerminal', + params: { + "client_id": this.choose, + "terminal_id": id + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + /*this.clients = data;*/ + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + setTimeout(() => this.getTerminals(), 100); + } + + + registerTerminal() { + this.new_ter = false; + this.create = true; + this.getAreas() + } + + registerTerminal2() { + let public_id = document.getElementsByTagName("input")[0].value + this.jsonRpcService.rpc2({ + method: 'registerTerminal', + params: { + "public_id": public_id, + } + }, RpcService.authService, false) + .subscribe({ + next: (result) => { + let data = result.result; + /*this.clients = data;*/ + }, + error: (err) => { + console.log('ERROR: ', err) + this.messageService.add({ + severity: 'error', + summary: 'Произошла ошибка!', + }) + } + }); + setTimeout(() => this.getTerminals(), 100); + + } + +} diff --git a/src/app/services/jsonrpc.service.ts b/src/app/services/jsonrpc.service.ts index 1e71c92..b572333 100644 --- a/src/app/services/jsonrpc.service.ts +++ b/src/app/services/jsonrpc.service.ts @@ -5,6 +5,9 @@ import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { CookiesService } from './cookies.service'; import { v4 as uuidv4 } from 'uuid'; +import { Areas } from "src/app/interface/data"; + + export enum RpcService{ authService, @@ -27,13 +30,17 @@ export class JsonrpcService { protected readonly api = environment.appSelfDeliveryEndPoint; private jsonrpc = '2.0'; private body!: JsonRpcBody; + public ClientChoose = ""; + public ClientChooseName = ""; + public changeId = ""; + public areas: Areas[] = []; constructor( private http: HttpClient, private cookiesService: CookiesService ) { } - rpc(data: {method: string, params: any[]},service: RpcService, auth = false): Observable { + rpc(data: {method: string, params: any},service: RpcService, auth = false): Observable { let headers = new HttpHeaders(); const token = decodeURI(this.cookiesService.getItem('token') ?? ''); headers = headers.set('Content-Type', 'application/json'); @@ -56,6 +63,32 @@ export class JsonrpcService { } } + rpc2(data: { method: string, params: any }, service: RpcService, auth = false): Observable { + let headers = new HttpHeaders(); + const token = decodeURI(this.cookiesService.getItem('token') ?? ''); + + const options = { + headers: { + 'Content-Type': 'application/json', + 'Authorization': token + }, + }; + this.body = { + id: uuidv4(), + jsonrpc: this.jsonrpc, + method: data.method, + params: { ...data.params }, + }; + try { + return this.http + .post(environment.appSelfDeliveryEndPoint, this.body, options) + .pipe(map((res: any) => res)); + } catch (error) { + return new Observable() + } + } + + handleHttpError(error: HttpErrorResponse): void { console.log(error.message); } diff --git a/src/assets/myAudio.mp3 b/src/assets/myAudio.mp3 new file mode 100644 index 0000000..fa82a40 Binary files /dev/null and b/src/assets/myAudio.mp3 differ diff --git a/src/assets/myAudio2.mp3 b/src/assets/myAudio2.mp3 new file mode 100644 index 0000000..f39aec8 Binary files /dev/null and b/src/assets/myAudio2.mp3 differ diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index ac0373f..e939b73 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -1,5 +1,5 @@ export const environment = { production: true, - appSelfDeliveryEndPoint: 'http://selfdelivery-dev.crm4retail.ru/api', + appSelfDeliveryEndPoint: 'http://selfdelivery-pitsburg.mydatahosting.ru/admin_api', systemId: 'dfe16ca16a3598b812', }; diff --git a/src/environments/environment.ts b/src/environments/environment.ts index d69e879..59c0e63 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -4,7 +4,7 @@ export const environment = { production: false, - appSelfDeliveryEndPoint: 'http://localhost:4200/api', + appSelfDeliveryEndPoint: 'http://selfdelivery-pitsburg.mydatahosting.ru/admin_api', systemId: 'dfe16ca16a3598b812', }; diff --git a/src/styles.scss b/src/styles.scss index f2ea922..ce676b9 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1,9 +1,55 @@ /* 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; } +html, body { + height: 98%; +} +body { + margin: 15px 15px 15px 15px; + font-family: Roboto, "Helvetica Neue", sans-serif; +} *, *::before, *::after { box-sizing: border-box; -} \ No newline at end of file +} + +button { + display: inline-block; + box-sizing: border-box; + padding: 0 20px; + margin: 2px 2px 2px 2px; + outline: none; + border: none; + border-radius: 4px; + height: 28px; + line-height: 28px; + font-size: 14px; + font-weight: 500; + text-decoration: none; + color: #fff; + background-color: gray; +/* box-shadow: 0 2px black;*/ + cursor: pointer; + user-select: none; + appearance: none; + touch-action: manipulation; + vertical-align: top; + width: 120px; +} + +button:disabled { + background-color: forestgreen; + opacity: 50%; + cursor: default; +} + +h1 { + margin: 15px 0px 15px 0px !important; +} + +#menu:hover { + + cursor: pointer; +} + +