diff --git a/httpdocs/plp-angular/package-lock.json b/httpdocs/plp-angular/package-lock.json index 13ac14b..1675531 100644 --- a/httpdocs/plp-angular/package-lock.json +++ b/httpdocs/plp-angular/package-lock.json @@ -8,23 +8,25 @@ "name": "plp-angular", "version": "0.0.0", "dependencies": { - "@angular-devkit/build-angular": "^16.0.0", - "@angular-devkit/schematics": "^16.0.0", - "@angular/animations": "^16.0.0", - "@angular/common": "^16.0.0", - "@angular/compiler": "^16.0.0", - "@angular/core": "^16.0.0", - "@angular/forms": "^16.0.0", - "@angular/platform-browser": "^16.0.0", - "@angular/platform-browser-dynamic": "^16.0.0", - "@angular/router": "^16.0.0", + "@angular-devkit/build-angular": "^15.2.8", + "@angular-devkit/schematics": "^15.2.8", + "@angular/animations": "^15.2.8", + "@angular/common": "^15.2.8", + "@angular/compiler": "^15.2.8", + "@angular/core": "^15.2.8", + "@angular/forms": "^15.2.8", + "@angular/platform-browser": "^15.2.8", + "@angular/platform-browser-dynamic": "^15.2.8", + "@angular/router": "^15.2.8", "@ng-bootstrap/ng-bootstrap": "^14.1.1", - "ag-grid-angular": "^21.2.2", - "ag-grid-community": "^21.2.2", + "@npmcli/fs": "^3.1.0", + "ag-grid-angular": "^29.3.5", + "ag-grid-community": "^29.3.5", "angular-calendar": "^0.31.0", "angularx-flatpickr": "^6.2.0", "codelyzer": "^6.0.2", "date-fns": "^1.30.1", + "eslint": "^8.40.0", "file-saver": "^2.0.2", "flatpickr": "^4.6.13", "ng6-breadcrumbs": "^1.0.7", @@ -33,13 +35,13 @@ "zone.js": "~0.13.0" }, "devDependencies": { - "@angular/cli": "^16.0.0", - "@angular/compiler-cli": "^16.0.0", - "@angular/language-service": "^16.0.0", + "@angular/cli": "^15.2.8", + "@angular/compiler-cli": "^15.2.8", + "@angular/language-service": "^15.2.8", "@types/file-saver": "^2.0.1", "@types/jasmine": "~3.3.8", "@types/jasminewd2": "^2.0.8", - "@types/node": "~8.9.4", + "@types/node": "^20.1.5", "jasmine-core": "~3.8.0", "jasmine-spec-reporter": "~5.0.0", "karma": "^6.4.2", @@ -47,18 +49,16 @@ "karma-coverage-istanbul-reporter": "~3.0.2", "karma-jasmine": "~4.0.0", "karma-jasmine-html-reporter": "^1.5.0", - "protractor": "^7.0.0", "ts-node": "~7.0.0", - "tslint": "~6.1.0", "typescript": "~4.9.5" } }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { @@ -66,60 +66,51 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1600.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1600.0.tgz", - "integrity": "sha512-nYRcqAxZnndhAEpSpJ1U2TScs2huu674OKrsEyJTqLEANEyCPBnusAmS9HcGzMBgePAwNElqOKrr5/f1DbYq1A==", + "version": "0.1502.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1502.8.tgz", + "integrity": "sha512-rTltw2ABHrcKc8EGimALvXmrDTP5hlNbEy6nYolJoXEI9EwHgriWrVLVPs3OEF+/ed47dbJi9EGOXUOgzgpB5A==", "dependencies": { - "@angular-devkit/core": "16.0.0", - "rxjs": "7.8.1" + "@angular-devkit/core": "15.2.8", + "rxjs": "6.6.7" }, "engines": { - "node": "^16.14.0 || >=18.10.0", + "node": "^14.20.0 || ^16.13.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/architect/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, "node_modules/@angular-devkit/build-angular": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.0.0.tgz", - "integrity": "sha512-OvDQAbrV3cUMfHws30MnDURsXselZ0GWhSxZjOdcD3cF64Nsq5ywftHOT+QC3YdDghwI8gMADN9et+aVDscBzQ==", - "dependencies": { - "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1600.0", - "@angular-devkit/build-webpack": "0.1600.0", - "@angular-devkit/core": "16.0.0", - "@babel/core": "7.21.4", - "@babel/generator": "7.21.4", + "version": "15.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-15.2.8.tgz", + "integrity": "sha512-TGDnXhhOG6h6TOrWWzfnkha7wYBOXi7iJc1o1w1VKCayE3T6TZZdF847aK66vL9KG7AKYVdGhWEGw2WBHUBUpg==", + "dependencies": { + "@ampproject/remapping": "2.2.0", + "@angular-devkit/architect": "0.1502.8", + "@angular-devkit/build-webpack": "0.1502.8", + "@angular-devkit/core": "15.2.8", + "@babel/core": "7.20.12", + "@babel/generator": "7.20.14", "@babel/helper-annotate-as-pure": "7.18.6", "@babel/helper-split-export-declaration": "7.18.6", "@babel/plugin-proposal-async-generator-functions": "7.20.7", "@babel/plugin-transform-async-to-generator": "7.20.7", - "@babel/plugin-transform-runtime": "7.21.4", - "@babel/preset-env": "7.21.4", - "@babel/runtime": "7.21.0", + "@babel/plugin-transform-runtime": "7.19.6", + "@babel/preset-env": "7.20.2", + "@babel/runtime": "7.20.13", "@babel/template": "7.20.7", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "16.0.0", - "@vitejs/plugin-basic-ssl": "1.0.1", + "@ngtools/webpack": "15.2.8", "ansi-colors": "4.1.3", - "autoprefixer": "10.4.14", + "autoprefixer": "10.4.13", "babel-loader": "9.1.2", "babel-plugin-istanbul": "6.1.1", "browserslist": "4.21.5", - "cacache": "17.0.6", + "cacache": "17.0.4", "chokidar": "3.5.3", "copy-webpack-plugin": "11.0.0", "critters": "0.0.16", "css-loader": "6.7.3", - "esbuild-wasm": "0.17.18", + "esbuild-wasm": "0.17.8", "glob": "8.1.0", "https-proxy-agent": "5.0.1", "inquirer": "8.2.4", @@ -129,53 +120,49 @@ "less-loader": "11.1.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.2.1", - "magic-string": "0.30.0", - "mini-css-extract-plugin": "2.7.5", - "mrmime": "1.0.1", - "open": "8.4.2", + "magic-string": "0.29.0", + "mini-css-extract-plugin": "2.7.2", + "open": "8.4.1", "ora": "5.4.1", "parse5-html-rewriting-stream": "7.0.0", "piscina": "3.2.0", - "postcss": "8.4.23", - "postcss-loader": "7.2.4", + "postcss": "8.4.21", + "postcss-loader": "7.0.2", "resolve-url-loader": "5.0.0", - "rxjs": "7.8.1", - "sass": "1.62.1", - "sass-loader": "13.2.2", - "semver": "7.4.0", + "rxjs": "6.6.7", + "sass": "1.58.1", + "sass-loader": "13.2.0", + "semver": "7.3.8", "source-map-loader": "4.0.1", "source-map-support": "0.5.21", - "terser": "5.17.1", + "terser": "5.16.3", "text-table": "0.2.0", "tree-kill": "1.2.2", "tslib": "2.5.0", - "vite": "4.3.1", - "webpack": "5.80.0", - "webpack-dev-middleware": "6.0.2", - "webpack-dev-server": "4.13.2", + "webpack": "5.76.1", + "webpack-dev-middleware": "6.0.1", + "webpack-dev-server": "4.11.1", "webpack-merge": "5.8.0", "webpack-subresource-integrity": "5.1.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0", + "node": "^14.20.0 || ^16.13.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.17.18" + "esbuild": "0.17.8" }, "peerDependencies": { - "@angular/compiler-cli": "^16.0.0", - "@angular/localize": "^16.0.0", - "@angular/platform-server": "^16.0.0", - "@angular/service-worker": "^16.0.0", - "jest": "^29.5.0", - "jest-environment-jsdom": "^29.5.0", + "@angular/compiler-cli": "^15.0.0", + "@angular/localize": "^15.0.0", + "@angular/platform-server": "^15.0.0", + "@angular/service-worker": "^15.0.0", "karma": "^6.3.0", - "ng-packagr": "^16.0.0", + "ng-packagr": "^15.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=4.9.3 <5.1" + "typescript": ">=4.8.2 <5.0" }, "peerDependenciesMeta": { "@angular/localize": { @@ -187,12 +174,6 @@ "@angular/service-worker": { "optional": true }, - "jest": { - "optional": true - }, - "jest-environment-jsdom": { - "optional": true - }, "karma": { "optional": true }, @@ -207,350 +188,16 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/@babel/core": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", - "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.4", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/@babel/generator": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", - "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", - "dependencies": { - "@babel/types": "^7.21.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/@types/node": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.1.2.tgz", - "integrity": "sha512-CTO/wa8x+rZU626cL2BlbCDzydgnFNgc19h4YvizpTO88MFQxab8wqisxaofQJ/9bLGugRdWIuX/TbIs6VVF6g==", - "peer": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", - "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", - "engines": { - "node": ">=14.6.0" - }, - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/cacache": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.6.tgz", - "integrity": "sha512-ixcYmEBExFa/+ajIPjcwypxL97CjJyOsH9A/W+4qgEPIpJvKlC+HmVY8nkIck6n3PwUTdgq9c489niJGwl+5Cw==", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/cacache/node_modules/glob": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.3.tgz", - "integrity": "sha512-Kb4rfmBVE3eQTAimgmeqc2LwSnN0wIOkkUL6HmxEFxNJ4fHghYHVbFba/HcGcRjE6s9KoMNK3rSOwkL4PioZjg==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.0", - "minipass": "^5.0.0", - "path-scurry": "^1.7.0" - }, - "bin": { - "glob": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/cacache/node_modules/minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/cosmiconfig-typescript-loader": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz", - "integrity": "sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==", - "engines": { - "node": ">=12", - "npm": ">=6" - }, - "peerDependencies": { - "@types/node": "*", - "cosmiconfig": ">=7", - "ts-node": ">=10", - "typescript": ">=3" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "peer": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/postcss-loader": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.2.4.tgz", - "integrity": "sha512-F88rpxxNspo5hatIc+orYwZDtHFaVFOSIVAx+fBfJC1GmhWbVmPWtmg2gXKE1OxJbneOSGn8PWdIwsZFcruS+w==", - "dependencies": { - "cosmiconfig": "^8.1.3", - "cosmiconfig-typescript-loader": "^4.3.0", - "klona": "^2.0.6", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "ts-node": ">=10", - "typescript": ">=4", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "peer": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/vite": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.1.tgz", - "integrity": "sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==", - "dependencies": { - "esbuild": "^0.17.5", - "postcss": "^8.4.21", - "rollup": "^3.20.2" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1600.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1600.0.tgz", - "integrity": "sha512-ZlNNMtAzgMCsaN5crkqtgeYxWEyZ78/ePfrJTB3+Hb6LS+hsRf4WAYubHWRWReSx87ppluRrgNZLy0K9ooWy1w==", + "version": "0.1502.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1502.8.tgz", + "integrity": "sha512-jWtNv+S03FFLDe/C8SPCcRvkz3bSb2R+919IT086Q9axIPQ1VowOEwzt2k3qXPSSrC7GSYuASM+X92dB47NTQQ==", "dependencies": { - "@angular-devkit/architect": "0.1600.0", - "rxjs": "7.8.1" + "@angular-devkit/architect": "0.1502.8", + "rxjs": "6.6.7" }, "engines": { - "node": "^16.14.0 || >=18.10.0", + "node": "^14.20.0 || ^16.13.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -559,27 +206,19 @@ "webpack-dev-server": "^4.0.0" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, "node_modules/@angular-devkit/core": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.0.0.tgz", - "integrity": "sha512-YJKvAJlg4/lfP93pQNawlOTQalynWGpoatZU+1aXBgRh5YCTKu2S/A3gtQ71DBuhac76gJe1RpxDoq41kB2KlQ==", + "version": "15.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.8.tgz", + "integrity": "sha512-Lo4XrbDMtXarKnMrFgWLmQdSX+3QPNAg4otG8cmp/U4jJyjV4dAYKEAsb1sCNGUSM4h4v09EQU/5ugVjDU29lQ==", "dependencies": { "ajv": "8.12.0", "ajv-formats": "2.1.1", "jsonc-parser": "3.2.0", - "rxjs": "7.8.1", + "rxjs": "6.6.7", "source-map": "0.7.4" }, "engines": { - "node": "^16.14.0 || >=18.10.0", + "node": "^14.20.0 || ^16.13.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -592,187 +231,221 @@ } } }, - "node_modules/@angular-devkit/core/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, "node_modules/@angular-devkit/schematics": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.0.0.tgz", - "integrity": "sha512-9uFOqjOQdhnpxU5mku2LvBkV5Ave2ihHBFaQCH7vQ7DD+p4NpLHu93bMSh+f7k9W7F0lY18g9qrihRgK/7wfuA==", + "version": "15.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.8.tgz", + "integrity": "sha512-w6EUGC96kVsH9f8sEzajzbONMawezyVBiSo+JYp5r25rQArAz/a+KZntbuETWHQ0rQOEsKmUNKxwmr11BaptSQ==", "dependencies": { - "@angular-devkit/core": "16.0.0", + "@angular-devkit/core": "15.2.8", "jsonc-parser": "3.2.0", - "magic-string": "0.30.0", + "magic-string": "0.29.0", "ora": "5.4.1", - "rxjs": "7.8.1" + "rxjs": "6.6.7" }, "engines": { - "node": "^16.14.0 || >=18.10.0", + "node": "^14.20.0 || ^16.13.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/schematics/node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, "node_modules/@angular/animations": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.0.0.tgz", - "integrity": "sha512-Xx4Ffdo3sweg24MDVAXbDfxqkNPEuRgqOC1+f9171kf+w7cBEr4Bmy37DP7YkJceaU0xJH9imcx4708KeIjqkQ==", + "version": "15.2.9", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-15.2.9.tgz", + "integrity": "sha512-GQujLhI0cQFcl4Q8y0oSYKSRnW23GIeSL+Arl4eFufziJ9hGAAQNuesaNs/7i+9UlTHDMkPH3kd5ScXuYYz6wg==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.0.0" + "@angular/core": "15.2.9" } }, "node_modules/@angular/cli": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.0.0.tgz", - "integrity": "sha512-vsveaSJ5kj0MeJCg1nir5iJJEsdrRRnyNeL1awMcyrEjAhBPX3d0gfOP2fe0HR5KJtntX8zvihGus3i48Quo7A==", + "version": "15.2.8", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.2.8.tgz", + "integrity": "sha512-3VlTfm6DUZfFHBY43vQSAaqmFTxy3VtRd/iDBCHcEPhHwYLWBvNwReJuJfNja8O105QQ6DBiYVBExEBtPmjQ4w==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1600.0", - "@angular-devkit/core": "16.0.0", - "@angular-devkit/schematics": "16.0.0", - "@schematics/angular": "16.0.0", + "@angular-devkit/architect": "0.1502.8", + "@angular-devkit/core": "15.2.8", + "@angular-devkit/schematics": "15.2.8", + "@schematics/angular": "15.2.8", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", - "ini": "4.0.0", + "ini": "3.0.1", "inquirer": "8.2.4", "jsonc-parser": "3.2.0", "npm-package-arg": "10.1.0", "npm-pick-manifest": "8.0.1", - "open": "8.4.2", + "open": "8.4.1", "ora": "5.4.1", - "pacote": "15.1.3", - "resolve": "1.22.2", - "semver": "7.4.0", + "pacote": "15.1.0", + "resolve": "1.22.1", + "semver": "7.3.8", "symbol-observable": "4.0.0", - "yargs": "17.7.2" + "yargs": "17.6.2" }, "bin": { "ng": "bin/ng.js" }, "engines": { - "node": "^16.14.0 || >=18.10.0", + "node": "^14.20.0 || ^16.13.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular/common": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.0.0.tgz", - "integrity": "sha512-at3/xCevf2t9swX2P7K7gaSBuQPy7ZJsf37qQkYIuczzfij69r7s9NjYeA74/q3EWG9Yl2DCrhYoCW7ViXQINQ==", + "version": "15.2.9", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.2.9.tgz", + "integrity": "sha512-LM9/UHG2dRrOzlu2KovrFwWIziFMjRxHzSP3Igw6Symw/wIl0kXGq8Fn6RpFP78zmLqnv+IQOoRiby9MCXsI4g==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.0.0", + "@angular/core": "15.2.9", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.0.0.tgz", - "integrity": "sha512-xtg+KRvSeB9DUzMDtvlaRGKv+Y0MERsz+JOoqV9H4606ThNz5h8ih6fEhVKYqG100o7GhdJaVFO+vlr2/edUHA==", + "version": "15.2.9", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-15.2.9.tgz", + "integrity": "sha512-MoKugbjk+E0wRBj12uvIyDLELlVLonnqjA2+XiF+7FxALIeyds3/qQeEoMmYIqAbN3NnTT5pV92RxWwG4tHFwA==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/core": "16.0.0" + "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + }, + "peerDependencies": { + "@angular/core": "15.2.9" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + } + } + }, + "node_modules/@angular/compiler-cli": { + "version": "15.2.9", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-15.2.9.tgz", + "integrity": "sha512-zsbI8G2xHOeYWI0hjFzrI//ZhZV9il/uQW5dAimfwJp06KZDeXZ3PdwY9JQslf6F+saLwOObxy6QMrIVvfjy9w==", + "dependencies": { + "@babel/core": "7.19.3", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.11.0", + "magic-string": "^0.27.0", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/main-ngcc.js" + }, + "engines": { + "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + }, + "peerDependencies": { + "@angular/compiler": "15.2.9", + "typescript": ">=4.8.2 <5.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", + "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.3", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "@angular/core": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@angular/compiler-cli": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.0.0.tgz", - "integrity": "sha512-oyJzxiTHxziv7mD0QuA7K6tpDoL6YNGPkquKjeJjNVZvUrodGsvJ8xHO4ydmjK3nMu2ET1YarsdI8bRp4vp/7w==", - "dependencies": { - "@babel/core": "7.19.3", - "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^3.0.0", - "convert-source-map": "^1.5.1", - "reflect-metadata": "^0.1.2", - "semver": "^7.0.0", - "tslib": "^2.3.0", - "yargs": "^17.2.1" - }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "bin": { - "ng-xi18n": "bundles/src/bin/ng_xi18n.js", - "ngc": "bundles/src/bin/ngc.js", - "ngcc": "bundles/ngcc/index.js" + "semver": "bin/semver.js" + } + }, + "node_modules/@angular/compiler-cli/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" }, "engines": { - "node": "^16.14.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/compiler": "16.0.0", - "typescript": ">=4.9.3 <5.1" + "node": ">=12" } }, "node_modules/@angular/core": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.0.0.tgz", - "integrity": "sha512-scppDxtXubum6ZiGu3ogmReBtMuA5XXk5FL3YKLb3c9O7q9Z5PC8KNQ6SsaOwEb6oW+0BWXMV698p/zmd0J4tA==", + "version": "15.2.9", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-15.2.9.tgz", + "integrity": "sha512-w46Z1yUXCQfKV7XfnamOoLA2VD0MVUUYVrUjO73mHSskDXSXxfZAEHO9kfUS71Cj35PvhP3mbkqWscpea2WeYg==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.13.0" + "zone.js": "~0.11.4 || ~0.12.0 || ~0.13.0" } }, "node_modules/@angular/forms": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.0.0.tgz", - "integrity": "sha512-avpreXyDYWf44RNM5hfi5cTXXiNwcajBURP5rLap8RPMSUi2ePlJsmi0O+3+GduNZFbtnRXIpKTj3W+GeNa0PA==", + "version": "15.2.9", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-15.2.9.tgz", + "integrity": "sha512-sk0pC2EFi2Ohg5J0q0NYptbT+2WOkoiERSMYA39ncDvlSZBWsNlxpkbGUSck7NIxjK2QfcVN1ldGbHlZTFvtqg==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.0.0", - "@angular/core": "16.0.0", - "@angular/platform-browser": "16.0.0", + "@angular/common": "15.2.9", + "@angular/core": "15.2.9", + "@angular/platform-browser": "15.2.9", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-16.0.0.tgz", - "integrity": "sha512-jySin8NdZIfcvwyemh2kRVveOvL1SPvywmIrv/6+MbKebG9Oc+casxruoRai8gh8bhahdpUAOG0t8wbedUWcxw==", + "version": "15.2.9", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-15.2.9.tgz", + "integrity": "sha512-B7lP4q/eHge2lZezOXS96EYzVf4stMCWfOnz7+pUUi0HbF+A5QCV65SWQddS/M+NM2jj8N2L/j+6UCH8lJjTQA==", "dev": true, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^14.20.0 || ^16.13.0 || >=18.10.0" } }, "node_modules/@angular/localize": { @@ -798,60 +471,59 @@ "@angular/compiler-cli": "15.2.9" } }, - "node_modules/@angular/localize/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@angular/localize/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "node_modules/@angular/localize/node_modules/@babel/core": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", + "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", "peer": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.3", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" }, "engines": { - "node": ">=12" + "node": ">=6.9.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@angular/localize/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/@angular/localize/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "peer": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" + "bin": { + "semver": "bin/semver.js" } }, "node_modules/@angular/platform-browser": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.0.0.tgz", - "integrity": "sha512-6LpgLfEnumKMKM/S9joWrVSm4MdFuIjddFmlSG7zGcRqwM0N8doH/YkuwTK8/t9q8wI/yztp6qM2pg25Pgv1XA==", + "version": "15.2.9", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-15.2.9.tgz", + "integrity": "sha512-ufCHeSX+U6d43YOMkn3igwfqtlozoCXADcbyfUEG8m2y9XASobqmCKvdSk/zfl62oyiA8msntWBJVBE2l4xKXg==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/animations": "16.0.0", - "@angular/common": "16.0.0", - "@angular/core": "16.0.0" + "@angular/animations": "15.2.9", + "@angular/common": "15.2.9", + "@angular/core": "15.2.9" }, "peerDependenciesMeta": { "@angular/animations": { @@ -860,36 +532,36 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.0.0.tgz", - "integrity": "sha512-xUR36r+7hFQjAb0RA0VFfWrCLj2VnWg0xJgPe4FQmwaEWjKMc011tkJXs0PApaiTxvE0W08nadSDTu5jfsBrFw==", + "version": "15.2.9", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.2.9.tgz", + "integrity": "sha512-ZIYDM6MShblb8OyV1m4+18lJJ2LCeICmeg2uSbpFYptYBSOClrTiYOOFVDJvn7HLvNzljLs16XPrgyaYVqNpcw==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.0.0", - "@angular/compiler": "16.0.0", - "@angular/core": "16.0.0", - "@angular/platform-browser": "16.0.0" + "@angular/common": "15.2.9", + "@angular/compiler": "15.2.9", + "@angular/core": "15.2.9", + "@angular/platform-browser": "15.2.9" } }, "node_modules/@angular/router": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.0.0.tgz", - "integrity": "sha512-+5gjJwFx3AFGv7OnY53pfUzaPbWe5gOVQWXAnlUuk6tsQmWJBMehuCQ5ZO5cxViQDZkyvNALzoUeU6aKWmNqmg==", + "version": "15.2.9", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-15.2.9.tgz", + "integrity": "sha512-UCbh5DLSDhybv0xKYT7kGQMfOVdyhHIHOZz5EYVebbhste6S+W1LE57vTHq7QtxJsyKBa/WSkaUkCLXD6ntCAg==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0" + "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.0.0", - "@angular/core": "16.0.0", - "@angular/platform-browser": "16.0.0", + "@angular/common": "15.2.9", + "@angular/core": "15.2.9", + "@angular/platform-browser": "15.2.9", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -918,24 +590,24 @@ } }, "node_modules/@babel/core": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", - "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.3", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.3", - "@babel/types": "^7.19.3", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", + "json5": "^2.2.2", "semver": "^6.3.0" }, "engines": { @@ -955,19 +627,31 @@ } }, "node_modules/@babel/generator": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", - "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", + "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", + "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", "dependencies": { - "@babel/types": "^7.21.5", + "@babel/types": "^7.20.7", "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", @@ -2142,12 +1826,12 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz", - "integrity": "sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", "dependencies": { - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -2269,30 +1953,30 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", - "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", "dependencies": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.21.0", + "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", - "@babel/plugin-proposal-async-generator-functions": "^7.20.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.21.0", + "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", "@babel/plugin-proposal-export-namespace-from": "^7.18.9", "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.21.0", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.0", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", @@ -2309,40 +1993,40 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.20.7", - "@babel/plugin-transform-async-to-generator": "^7.20.7", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.21.0", - "@babel/plugin-transform-classes": "^7.21.0", - "@babel/plugin-transform-computed-properties": "^7.20.7", - "@babel/plugin-transform-destructuring": "^7.21.3", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.21.0", + "@babel/plugin-transform-for-of": "^7.18.8", "@babel/plugin-transform-function-name": "^7.18.9", "@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.20.11", - "@babel/plugin-transform-modules-commonjs": "^7.21.2", - "@babel/plugin-transform-modules-systemjs": "^7.20.11", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.21.3", + "@babel/plugin-transform-parameters": "^7.20.1", "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.20.5", + "@babel/plugin-transform-regenerator": "^7.18.6", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.20.7", + "@babel/plugin-transform-spread": "^7.19.0", "@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.4", + "@babel/types": "^7.20.2", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -2385,9 +2069,9 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -2428,6 +2112,33 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", + "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", + "dependencies": { + "@babel/types": "^7.21.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/types": { "version": "7.21.5", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", @@ -2450,28 +2161,6 @@ "node": ">=0.1.90" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", @@ -2481,9 +2170,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", - "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.8.tgz", + "integrity": "sha512-0/rb91GYKhrtbeglJXOhAv9RuYimgI8h623TplY2X+vA4EXnk3Zj1fXZreJ0J3OJJu1bwmb0W7g+2cT/d8/l/w==", "cpu": [ "arm" ], @@ -2496,9 +2185,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", - "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.8.tgz", + "integrity": "sha512-oa/N5j6v1svZQs7EIRPqR8f+Bf8g6HBDjD/xHC02radE/NjKHK7oQmtmLxPs1iVwYyvE+Kolo6lbpfEQ9xnhxQ==", "cpu": [ "arm64" ], @@ -2511,9 +2200,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", - "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.8.tgz", + "integrity": "sha512-bTliMLqD7pTOoPg4zZkXqCDuzIUguEWLpeqkNfC41ODBHwoUgZ2w5JBeYimv4oP6TDVocoYmEhZrCLQTrH89bg==", "cpu": [ "x64" ], @@ -2526,9 +2215,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", - "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.8.tgz", + "integrity": "sha512-ghAbV3ia2zybEefXRRm7+lx8J/rnupZT0gp9CaGy/3iolEXkJ6LYRq4IpQVI9zR97ID80KJVoUlo3LSeA/sMAg==", "cpu": [ "arm64" ], @@ -2541,9 +2230,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz", - "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.8.tgz", + "integrity": "sha512-n5WOpyvZ9TIdv2V1K3/iIkkJeKmUpKaCTdun9buhGRWfH//osmUjlv4Z5mmWdPWind/VGcVxTHtLfLCOohsOXw==", "cpu": [ "x64" ], @@ -2556,9 +2245,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", - "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.8.tgz", + "integrity": "sha512-a/SATTaOhPIPFWvHZDoZYgxaZRVHn0/LX1fHLGfZ6C13JqFUZ3K6SMD6/HCtwOQ8HnsNaEeokdiDSFLuizqv5A==", "cpu": [ "arm64" ], @@ -2571,9 +2260,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", - "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.8.tgz", + "integrity": "sha512-xpFJb08dfXr5+rZc4E+ooZmayBW6R3q59daCpKZ/cDU96/kvDM+vkYzNeTJCGd8rtO6fHWMq5Rcv/1cY6p6/0Q==", "cpu": [ "x64" ], @@ -2586,9 +2275,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz", - "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.8.tgz", + "integrity": "sha512-6Ij8gfuGszcEwZpi5jQIJCVIACLS8Tz2chnEBfYjlmMzVsfqBP1iGmHQPp7JSnZg5xxK9tjCc+pJ2WtAmPRFVA==", "cpu": [ "arm" ], @@ -2601,9 +2290,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz", - "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.8.tgz", + "integrity": "sha512-v3iwDQuDljLTxpsqQDl3fl/yihjPAyOguxuloON9kFHYwopeJEf1BkDXODzYyXEI19gisEsQlG1bM65YqKSIww==", "cpu": [ "arm64" ], @@ -2616,9 +2305,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", - "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.8.tgz", + "integrity": "sha512-8svILYKhE5XetuFk/B6raFYIyIqydQi+GngEXJgdPdI7OMKUbSd7uzR02wSY4kb53xBrClLkhH4Xs8P61Q2BaA==", "cpu": [ "ia32" ], @@ -2631,9 +2320,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", - "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.8.tgz", + "integrity": "sha512-B6FyMeRJeV0NpyEOYlm5qtQfxbdlgmiGdD+QsipzKfFky0K5HW5Td6dyK3L3ypu1eY4kOmo7wW0o94SBqlqBSA==", "cpu": [ "loong64" ], @@ -2646,9 +2335,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", - "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.8.tgz", + "integrity": "sha512-CCb67RKahNobjm/eeEqeD/oJfJlrWyw29fgiyB6vcgyq97YAf3gCOuP6qMShYSPXgnlZe/i4a8WFHBw6N8bYAA==", "cpu": [ "mips64el" ], @@ -2661,9 +2350,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz", - "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.8.tgz", + "integrity": "sha512-bytLJOi55y55+mGSdgwZ5qBm0K9WOCh0rx+vavVPx+gqLLhxtSFU0XbeYy/dsAAD6xECGEv4IQeFILaSS2auXw==", "cpu": [ "ppc64" ], @@ -2676,9 +2365,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", - "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.8.tgz", + "integrity": "sha512-2YpRyQJmKVBEHSBLa8kBAtbhucaclb6ex4wchfY0Tj3Kg39kpjeJ9vhRU7x4mUpq8ISLXRXH1L0dBYjAeqzZAw==", "cpu": [ "riscv64" ], @@ -2691,9 +2380,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", - "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.8.tgz", + "integrity": "sha512-QgbNY/V3IFXvNf11SS6exkpVcX0LJcob+0RWCgV9OiDAmVElnxciHIisoSix9uzYzScPmS6dJFbZULdSAEkQVw==", "cpu": [ "s390x" ], @@ -2706,9 +2395,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", - "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.8.tgz", + "integrity": "sha512-mM/9S0SbAFDBc4OPoyP6SEOo5324LpUxdpeIUUSrSTOfhHU9hEfqRngmKgqILqwx/0DVJBzeNW7HmLEWp9vcOA==", "cpu": [ "x64" ], @@ -2721,9 +2410,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", - "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.8.tgz", + "integrity": "sha512-eKUYcWaWTaYr9zbj8GertdVtlt1DTS1gNBWov+iQfWuWyuu59YN6gSEJvFzC5ESJ4kMcKR0uqWThKUn5o8We6Q==", "cpu": [ "x64" ], @@ -2736,9 +2425,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", - "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.8.tgz", + "integrity": "sha512-Vc9J4dXOboDyMXKD0eCeW0SIeEzr8K9oTHJU+Ci1mZc5njPfhKAqkRt3B/fUNU7dP+mRyralPu8QUkiaQn7iIg==", "cpu": [ "x64" ], @@ -2751,9 +2440,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", - "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.8.tgz", + "integrity": "sha512-0xvOTNuPXI7ft1LYUgiaXtpCEjp90RuBBYovdd2lqAFxje4sEucurg30M1WIm03+3jxByd3mfo+VUmPtRSVuOw==", "cpu": [ "x64" ], @@ -2766,9 +2455,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", - "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.8.tgz", + "integrity": "sha512-G0JQwUI5WdEFEnYNKzklxtBheCPkuDdu1YrtRrjuQv30WsYbkkoixKxLLv8qhJmNI+ATEWquZe/N0d0rpr55Mg==", "cpu": [ "arm64" ], @@ -2781,9 +2470,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", - "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.8.tgz", + "integrity": "sha512-Fqy63515xl20OHGFykjJsMnoIWS+38fqfg88ClvPXyDbLtgXal2DTlhb1TfTX34qWi3u4I7Cq563QcHpqgLx8w==", "cpu": [ "ia32" ], @@ -2792,22 +2481,135 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.8.tgz", + "integrity": "sha512-1iuezdyDNngPnz8rLRDO2C/ZZ/emJLb72OsZeqQ6gL6Avko/XCXZw+NuxBSNhBAP13Hie418V7VMt9et1FMvpg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.2", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@esbuild/win32-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", - "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@eslint/js": { + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", + "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", "engines": { - "node": ">=12" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@gar/promisify": { @@ -2816,10 +2618,41 @@ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "dev": true }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2836,6 +2669,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, "engines": { "node": ">=12" }, @@ -2847,6 +2681,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, "engines": { "node": ">=12" }, @@ -2857,12 +2692,14 @@ "node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -2879,6 +2716,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2893,6 +2731,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -2929,13 +2768,12 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" }, "engines": { "node": ">=6.0.0" @@ -2966,6 +2804,19 @@ "@jridgewell/trace-mapping": "^0.3.9" } }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", @@ -3012,17 +2863,17 @@ } }, "node_modules/@ngtools/webpack": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.0.0.tgz", - "integrity": "sha512-I5zjGtJu2wwIdM+OFUHXezmwTJ0wpParVJgCxR0cLd0CIbpRYSjOSZQN/nR9ZnTKAI5uFZ3MM2p/VRQGUUHUcw==", + "version": "15.2.8", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-15.2.8.tgz", + "integrity": "sha512-BJexeT4FxMtToVBGa3wdl6rrkYXgilP0kkSH4Qzu4MPlLPbeBSr4XQalQriewlpC2uzG0r2SJfrAe2eDhtSykA==", "engines": { - "node": "^16.14.0 || >=18.10.0", + "node": "^14.20.0 || ^16.13.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular/compiler-cli": "^16.0.0", - "typescript": ">=4.9.3 <5.1", + "@angular/compiler-cli": "^15.0.0", + "typescript": ">=4.8.2 <5.0", "webpack": "^5.54.0" } }, @@ -3225,6 +3076,7 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, "optional": true, "engines": { "node": ">=14" @@ -3247,17 +3099,17 @@ "hasInstallScript": true }, "node_modules/@schematics/angular": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.0.0.tgz", - "integrity": "sha512-Ao1Y0hEDa30JjWDLnUfOsD+9nnfdBFclfKFzR+7pvvFYCpSUhH1u+8e+7noruIxlP26+SpqPn3AF5+IRTGza8w==", + "version": "15.2.8", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.2.8.tgz", + "integrity": "sha512-F49IEzCFxQlpaMIgTO/wF1l/CLQKif7VaiDdyiTKOeT22IMmyd61FUmWDyZYfCBqMlvBmvDGx64HaHWes1HYCg==", "dev": true, "dependencies": { - "@angular-devkit/core": "16.0.0", - "@angular-devkit/schematics": "16.0.0", + "@angular-devkit/core": "15.2.8", + "@angular-devkit/schematics": "15.2.8", "jsonc-parser": "3.2.0" }, "engines": { - "node": "^16.14.0 || >=18.10.0", + "node": "^14.20.0 || ^16.13.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } @@ -3286,30 +3138,6 @@ "node": ">= 10" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "peer": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "peer": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "peer": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "peer": true - }, "node_modules/@tufjs/canonical-json": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", @@ -3424,9 +3252,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==" + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" }, "node_modules/@types/express": { "version": "4.17.17", @@ -3440,9 +3268,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.34", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.34.tgz", - "integrity": "sha512-fvr49XlCGoUj2Pp730AItckfjat4WNb0lb3kfrLWffd+RLeoGAMsq7UOy04PAPtoL01uKwcp6u8nhzpgpDYr3w==", + "version": "4.17.35", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", + "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -3490,9 +3318,14 @@ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "node_modules/@types/node": { - "version": "8.9.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.9.5.tgz", - "integrity": "sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ==" + "version": "20.1.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.1.5.tgz", + "integrity": "sha512-IvGD1CD/nego63ySR7vrAKEX3AJTcmrAN2kn+/sDNLi1Ff5kBzDeEdqWDplK+0HAEoLYej137Sk0cUU8OLOlMg==" + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, "node_modules/@types/qs": { "version": "6.9.7", @@ -3509,12 +3342,6 @@ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, - "node_modules/@types/selenium-webdriver": { - "version": "3.0.21", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.21.tgz", - "integrity": "sha512-DRHyGEr25ra2C4+eU7eiCSto2j9eUa9pR4z5uiLRBXWFlmfMCAeXwecZnAhuB3eOOCA8OkwcNlb6QUkVZFlKTA==", - "devOptional": true - }, "node_modules/@types/send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", @@ -3558,133 +3385,133 @@ } }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.11.1", "@xtuc/long": "4.2.2" } }, @@ -3739,20 +3566,19 @@ } }, "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "peerDependencies": { "acorn": "^8" } }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "peer": true, - "engines": { - "node": ">=0.4.0" + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/adjust-sourcemap-loader": { @@ -3780,31 +3606,23 @@ "node": ">=8.9.0" } }, - "node_modules/adm-zip": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", - "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", - "devOptional": true, - "engines": { - "node": ">=6.0" - } - }, "node_modules/ag-grid-angular": { - "version": "21.2.2", - "resolved": "https://registry.npmjs.org/ag-grid-angular/-/ag-grid-angular-21.2.2.tgz", - "integrity": "sha512-cd6mYMLn0ah1guISN+4SQZ6OFTLosbfFweaIsGWeVWN8mIOZGBNIpOy+GkuAJH53lkpsMqGgo9CEeUmTh/RhNg==", + "version": "29.3.5", + "resolved": "https://registry.npmjs.org/ag-grid-angular/-/ag-grid-angular-29.3.5.tgz", + "integrity": "sha512-UWDZvDSrS9Z+LFZ1G0HFOeamITD8kEHgO9eooJV4DxSmYoBGMGruLZV1QIPhjQwBVe8ib5TWw3Q1erSf/bcVSw==", + "dependencies": { + "tslib": "^2.3.0" + }, "peerDependencies": { - "@angular/compiler": ">=2.1.x", - "@angular/core": ">=2.1.x", - "ag-grid-community": "^21.2.0", - "rxjs": ">=5.0.0-beta.12", - "zone.js": ">=0.6.x" + "@angular/common": ">= 12.0.0", + "@angular/core": ">= 12.0.0", + "ag-grid-community": "~29.3.5" } }, "node_modules/ag-grid-community": { - "version": "21.2.2", - "resolved": "https://registry.npmjs.org/ag-grid-community/-/ag-grid-community-21.2.2.tgz", - "integrity": "sha512-x8kQmynYM/7zoigs7wIe7DkK1TIlUP5N1TYrGPsK8vO2gN+rqOok9csGPy4YamggWTcSxpy7wji/Kcz/gUp8/w==" + "version": "29.3.5", + "resolved": "https://registry.npmjs.org/ag-grid-community/-/ag-grid-community-29.3.5.tgz", + "integrity": "sha512-LxUo21f2/CH31ACEs1C7Q/ggGGI1fQPSTB4aY5OThmM+lBkygZ7QszBE8jpfgWOIjvjdtcdIeQbmbjkHeMsA7A==" }, "node_modules/agent-base": { "version": "6.0.2", @@ -4036,12 +3854,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "peer": true - }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -4050,6 +3862,11 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/argparse/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, "node_modules/aria-query": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", @@ -4064,57 +3881,24 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "devOptional": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "devOptional": true, - "engines": { - "node": ">=0.8" - } - }, "node_modules/ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "devOptional": true - }, "node_modules/autoprefixer": { - "version": "10.4.14", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", - "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", "funding": [ { "type": "opencollective", @@ -4126,8 +3910,8 @@ } ], "dependencies": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -4143,21 +3927,6 @@ "postcss": "^8.1.0" } }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "devOptional": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "devOptional": true - }, "node_modules/axobject-query": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", @@ -4279,15 +4048,6 @@ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "devOptional": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -4314,21 +4074,6 @@ "readable-stream": "^3.4.0" } }, - "node_modules/blocking-proxy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", - "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", - "devOptional": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "blocking-proxy": "built/lib/bin.js" - }, - "engines": { - "node": ">=6.9.x" - } - }, "node_modules/body-parser": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", @@ -4431,49 +4176,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/browserstack": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", - "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", - "devOptional": true, - "dependencies": { - "https-proxy-agent": "^2.2.1" - } - }, - "node_modules/browserstack/node_modules/agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "devOptional": true, - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/browserstack/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "devOptional": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/browserstack/node_modules/https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "devOptional": true, - "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -4506,6 +4208,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -4528,20 +4231,20 @@ } }, "node_modules/cacache": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.0.tgz", - "integrity": "sha512-hXpFU+Z3AfVmNuiLve1qxWHMq0RSIt5gjCKAHi/M6DktwFwDdAXAtunl1i4WSKaaVcU9IsRvXFg42jTHigcC6Q==", - "dev": true, + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", + "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^10.2.2", + "glob": "^8.0.1", "lru-cache": "^7.7.1", - "minipass": "^5.0.0", + "minipass": "^4.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" @@ -4550,61 +4253,14 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/cacache/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/cacache/node_modules/glob": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.3.tgz", - "integrity": "sha512-Kb4rfmBVE3eQTAimgmeqc2LwSnN0wIOkkUL6HmxEFxNJ4fHghYHVbFba/HcGcRjE6s9KoMNK3rSOwkL4PioZjg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.0", - "minipass": "^5.0.0", - "path-scurry": "^1.7.0" - }, - "bin": { - "glob": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/cacache/node_modules/lru-cache": { "version": "7.18.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, "engines": { "node": ">=12" } }, - "node_modules/cacache/node_modules/minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/calendar-utils": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/calendar-utils/-/calendar-utils-0.10.4.tgz", @@ -4639,9 +4295,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001486", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001486.tgz", - "integrity": "sha512-uv7/gXuHi10Whlj0pp5q/tsK/32J2QSqVRKQhs2j8VsDCjgyruAh/eEXHF822VqO9yT6iZKw3nRwZRSPBE9OQg==", + "version": "1.0.30001487", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001487.tgz", + "integrity": "sha512-83564Z3yWGqXsh2vaH/mhXfEM0wX+NlBCm1jYHOb97TrTWJEmPTccZgeLTPBUUb0PNVo+oomb7wkimZBIERClA==", "funding": [ { "type": "opencollective", @@ -4657,12 +4313,6 @@ } ] }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "devOptional": true - }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -4847,11 +4497,6 @@ "node": ">=0.10.0" } }, - "node_modules/codelyzer/node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, "node_modules/codelyzer/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -4898,18 +4543,6 @@ "node": ">=0.1.90" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "devOptional": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -5119,9 +4752,9 @@ } }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "node_modules/cors": { "version": "2.8.5", @@ -5137,44 +4770,20 @@ } }, "node_modules/cosmiconfig": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", - "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dependencies": { + "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", "parse-json": "^5.0.0", - "path-type": "^4.0.0" + "path-type": "^4.0.0", + "yaml": "^1.10.0" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - } - }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "node": ">=10" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "peer": true - }, "node_modules/critters": { "version": "0.0.16", "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz", @@ -5265,20 +4874,6 @@ "node": ">= 8" } }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/css-loader": { "version": "6.7.3", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", @@ -5369,18 +4964,6 @@ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "devOptional": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/date-fns": { "version": "1.30.1", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", @@ -5411,14 +4994,10 @@ } } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" }, "node_modules/default-gateway": { "version": "6.0.3", @@ -5450,15 +5029,6 @@ "node": ">=8" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "devOptional": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -5473,6 +5043,14 @@ "node": ">= 0.8" } }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -5529,6 +5107,17 @@ "node": ">=6" } }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/dom-serialize": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", @@ -5595,17 +5184,8 @@ "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "devOptional": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true }, "node_modules/ee-first": { "version": "1.1.1", @@ -5613,9 +5193,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.389", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.389.tgz", - "integrity": "sha512-WDgWUOK8ROR7sDFyYmxCUOoDc50lPgYAHAHwnnD1iN3SKO/mpqftb9iIPiEkMKmqYdkrR0j3N/O+YB/U7lSxwg==" + "version": "1.4.394", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.394.tgz", + "integrity": "sha512-0IbC2cfr8w5LxTz+nmn2cJTGafsK9iauV2r5A5scfzyovqLrxuLoxOHE5OBobP3oVIggJT+0JfKnw9sm87c8Hw==" }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -5691,33 +5271,6 @@ "node": ">=10.0.0" } }, - "node_modules/engine.io/node_modules/@types/node": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.1.2.tgz", - "integrity": "sha512-CTO/wa8x+rZU626cL2BlbCDzydgnFNgc19h4YvizpTO88MFQxab8wqisxaofQJ/9bLGugRdWIuX/TbIs6VVF6g==", - "devOptional": true - }, - "node_modules/engine.io/node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "devOptional": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/enhanced-resolve": { "version": "5.14.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz", @@ -5771,112 +5324,388 @@ "errno": "cli.js" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" + }, + "node_modules/esbuild": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.8.tgz", + "integrity": "sha512-g24ybC3fWhZddZK6R3uD2iF/RIPnRpwJAqLov6ouX3hMbY4+tKolP0VMF3zuIYCaXun+yHwS5IPQ91N2BT191g==", + "hasInstallScript": true, + "optional": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.8", + "@esbuild/android-arm64": "0.17.8", + "@esbuild/android-x64": "0.17.8", + "@esbuild/darwin-arm64": "0.17.8", + "@esbuild/darwin-x64": "0.17.8", + "@esbuild/freebsd-arm64": "0.17.8", + "@esbuild/freebsd-x64": "0.17.8", + "@esbuild/linux-arm": "0.17.8", + "@esbuild/linux-arm64": "0.17.8", + "@esbuild/linux-ia32": "0.17.8", + "@esbuild/linux-loong64": "0.17.8", + "@esbuild/linux-mips64el": "0.17.8", + "@esbuild/linux-ppc64": "0.17.8", + "@esbuild/linux-riscv64": "0.17.8", + "@esbuild/linux-s390x": "0.17.8", + "@esbuild/linux-x64": "0.17.8", + "@esbuild/netbsd-x64": "0.17.8", + "@esbuild/openbsd-x64": "0.17.8", + "@esbuild/sunos-x64": "0.17.8", + "@esbuild/win32-arm64": "0.17.8", + "@esbuild/win32-ia32": "0.17.8", + "@esbuild/win32-x64": "0.17.8" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.17.8.tgz", + "integrity": "sha512-zCmpxv95E0FuCmvdw1K836UHnj4EdiQnFfjTby35y3LAjRPtXMj3sbHDRHjbD8Mqg5lTwq3knacr/1qIFU51CQ==", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", + "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.40.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/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==" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dependencies": { - "is-arrayish": "^0.2.1" + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==" - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "devOptional": true + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", - "devOptional": true, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dependencies": { - "es6-promise": "^4.0.3" + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esbuild": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", - "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.18", - "@esbuild/android-arm64": "0.17.18", - "@esbuild/android-x64": "0.17.18", - "@esbuild/darwin-arm64": "0.17.18", - "@esbuild/darwin-x64": "0.17.18", - "@esbuild/freebsd-arm64": "0.17.18", - "@esbuild/freebsd-x64": "0.17.18", - "@esbuild/linux-arm": "0.17.18", - "@esbuild/linux-arm64": "0.17.18", - "@esbuild/linux-ia32": "0.17.18", - "@esbuild/linux-loong64": "0.17.18", - "@esbuild/linux-mips64el": "0.17.18", - "@esbuild/linux-ppc64": "0.17.18", - "@esbuild/linux-riscv64": "0.17.18", - "@esbuild/linux-s390x": "0.17.18", - "@esbuild/linux-x64": "0.17.18", - "@esbuild/netbsd-x64": "0.17.18", - "@esbuild/openbsd-x64": "0.17.18", - "@esbuild/sunos-x64": "0.17.18", - "@esbuild/win32-arm64": "0.17.18", - "@esbuild/win32-ia32": "0.17.18", - "@esbuild/win32-x64": "0.17.18" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esbuild-wasm": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.17.18.tgz", - "integrity": "sha512-h4m5zVa+KaDuRFIbH9dokMwovvkIjTQJS7/Ry+0Z1paVuS9aIkso2vdA2GmwH9GSvGX6w71WveJ3PfkoLuWaRw==", - "bin": { - "esbuild": "bin/esbuild" + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" }, "engines": { - "node": ">=12" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "node_modules/eslint/node_modules/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/espree": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">=8.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { @@ -5891,6 +5720,17 @@ "node": ">=4" } }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -5902,7 +5742,7 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { + "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", @@ -5910,14 +5750,6 @@ "node": ">=4.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -5974,15 +5806,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "devOptional": true, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/express": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", @@ -6131,15 +5954,6 @@ "node": ">=4" } }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "devOptional": true, - "engines": [ - "node >=0.6.0" - ] - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -6165,6 +5979,11 @@ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, "node_modules/fastparse": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", @@ -6203,6 +6022,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, "node_modules/file-saver": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", @@ -6292,6 +6122,18 @@ "node": ">=8" } }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, "node_modules/flatpickr": { "version": "4.6.13", "resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.13.tgz", @@ -6300,8 +6142,7 @@ "node_modules/flatted": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "devOptional": true + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" }, "node_modules/follow-redirects": { "version": "1.15.2", @@ -6326,6 +6167,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -6338,9 +6180,10 @@ } }, "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", - "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "dev": true, "engines": { "node": ">=14" }, @@ -6348,29 +6191,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "devOptional": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "devOptional": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -6424,6 +6244,14 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/fs-monkey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", @@ -6488,12 +6316,13 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" }, "funding": { @@ -6519,29 +6348,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "devOptional": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -6563,6 +6382,25 @@ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -6594,56 +6432,16 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "devOptional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "devOptional": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/har-validator/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "devOptional": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/har-validator/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "devOptional": true - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -6655,27 +6453,6 @@ "node": ">= 0.4.0" } }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "devOptional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -6684,6 +6461,17 @@ "node": ">=4" } }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -6867,27 +6655,12 @@ "node": ">=12.0.0" }, "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "devOptional": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "@types/express": "^4.17.13" }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } } }, "node_modules/https-proxy-agent": { @@ -7016,12 +6789,6 @@ "node": ">=0.10.0" } }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "devOptional": true - }, "node_modules/immutable": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", @@ -7087,12 +6854,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.0.0.tgz", - "integrity": "sha512-t0ikzf5qkSFqRl1e6ejKBe+Tk2bsQd8ivEkcisyGXsku2t8NvXZ1Y3RRz5vxrDgOrTBOi13CvGsVoI5wVpd7xg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", + "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", "dev": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/inquirer": { @@ -7296,6 +7063,14 @@ "node": ">=0.12.0" } }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", @@ -7329,12 +7104,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "devOptional": true - }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -7392,12 +7161,6 @@ "node": ">=0.10.0" } }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "devOptional": true - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", @@ -7480,6 +7243,26 @@ "node": ">=6" } }, + "node_modules/istanbul-lib-source-maps/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", @@ -7549,6 +7332,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz", "integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==", + "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -7562,20 +7346,6 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/jasmine": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", - "integrity": "sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==", - "devOptional": true, - "dependencies": { - "exit": "^0.1.2", - "glob": "^7.0.6", - "jasmine-core": "~2.8.0" - }, - "bin": { - "jasmine": "bin/jasmine.js" - } - }, "node_modules/jasmine-core": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.8.0.tgz", @@ -7591,21 +7361,6 @@ "colors": "1.4.0" } }, - "node_modules/jasmine/node_modules/jasmine-core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", - "integrity": "sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==", - "devOptional": true - }, - "node_modules/jasminewd2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", - "integrity": "sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==", - "devOptional": true, - "engines": { - "node": ">= 6.9.x" - } - }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -7641,6 +7396,15 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/js-sdsl": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -7658,12 +7422,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "devOptional": true - }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -7676,30 +7434,19 @@ } }, "node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "devOptional": true + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "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==" }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "devOptional": true + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" }, "node_modules/json5": { "version": "2.2.3", @@ -7735,63 +7482,6 @@ "node >= 0.2.0" ] }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "devOptional": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "devOptional": true, - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "node_modules/jszip/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "devOptional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/jszip/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==", - "devOptional": true - }, - "node_modules/jszip/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/karma": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", @@ -7839,6 +7529,18 @@ "which": "^1.2.1" } }, + "node_modules/karma-chrome-launcher/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/karma-coverage-istanbul-reporter": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", @@ -7900,6 +7602,26 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/karma/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "devOptional": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/karma/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -7964,15 +7686,6 @@ "node": ">= 8" } }, - "node_modules/launch-editor": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", - "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.7.3" - } - }, "node_modules/less": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", @@ -8060,6 +7773,18 @@ "node": ">=0.10.0" } }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/license-webpack-plugin": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", @@ -8076,15 +7801,6 @@ } } }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "devOptional": true, - "dependencies": { - "immediate": "~3.0.5" - } - }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -8127,6 +7843,11 @@ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -8231,9 +7952,9 @@ } }, "node_modules/magic-string": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", - "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", + "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.13" }, @@ -8266,7 +7987,8 @@ "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true }, "node_modules/make-fetch-happen": { "version": "10.2.1", @@ -8308,15 +8030,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/make-fetch-happen/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/make-fetch-happen/node_modules/cacache": { "version": "16.1.3", "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", @@ -8358,25 +8071,6 @@ "node": ">= 8" } }, - "node_modules/make-fetch-happen/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/make-fetch-happen/node_modules/lru-cache": { "version": "7.18.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", @@ -8386,18 +8080,6 @@ "node": ">=12" } }, - "node_modules/make-fetch-happen/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/make-fetch-happen/node_modules/minipass": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", @@ -8561,9 +8243,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.7.5", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.5.tgz", - "integrity": "sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", + "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", "dependencies": { "schema-utils": "^4.0.0" }, @@ -8603,9 +8285,9 @@ } }, "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", "engines": { "node": ">=8" } @@ -8823,14 +8505,6 @@ "mkdirp": "bin/cmd.js" } }, - "node_modules/mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "engines": { - "node": ">=10" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -8870,6 +8544,11 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, "node_modules/needle": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", @@ -8989,19 +8668,24 @@ "node-gyp-build-test": "build-test.js" } }, - "node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/node-gyp/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 8" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/node-releases": { @@ -9183,6 +8867,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/npm-registry-fetch/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/npm-registry-fetch/node_modules/minipass-fetch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", @@ -9231,19 +8924,10 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "devOptional": true, - "engines": { - "node": "*" + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, "node_modules/object-assign": { @@ -9310,9 +8994,9 @@ } }, "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.1.tgz", + "integrity": "sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -9325,6 +9009,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/ora": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", @@ -9419,18 +9119,7 @@ "node": ">=0.10.0" } }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { + "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", @@ -9444,6 +9133,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", @@ -9487,9 +9187,9 @@ } }, "node_modules/pacote": { - "version": "15.1.3", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.3.tgz", - "integrity": "sha512-aRts8cZqxiJVDitmAh+3z+FxuO3tLNWEmwDRPEpDDiZJaRz06clP4XX112ynMT5uF0QNoMPajBBHnaStUEPJXA==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.0.tgz", + "integrity": "sha512-FFcjtIl+BQNfeliSm7MZz5cpdohvUV1yjGnqgVM4UnVF7JslRY0ImXAygdaCDV0jjUADEWu4y5xsDV8brtrTLg==", "dev": true, "dependencies": { "@npmcli/git": "^4.0.0", @@ -9498,7 +9198,7 @@ "@npmcli/run-script": "^6.0.0", "cacache": "^17.0.0", "fs-minipass": "^3.0.0", - "minipass": "^5.0.0", + "minipass": "^4.0.0", "npm-package-arg": "^10.0.0", "npm-packlist": "^7.0.0", "npm-pick-manifest": "^8.0.0", @@ -9507,7 +9207,7 @@ "promise-retry": "^2.0.1", "read-package-json": "^6.0.0", "read-package-json-fast": "^3.0.0", - "sigstore": "^1.3.0", + "sigstore": "^1.0.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, @@ -9551,11 +9251,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse-json/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, "node_modules/parse-node-version": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", @@ -9669,12 +9364,6 @@ "node": ">=0.10.0" } }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "devOptional": true - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -9689,12 +9378,13 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.7.0.tgz", - "integrity": "sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.1.tgz", + "integrity": "sha512-UgmoiySyjFxP6tscZDgWGEAgsW5ok8W3F5CJDnnH2pozwSTGE6eH7vwTotMwATWA2r5xqdkKdxYPkwlJjAI/3g==", + "dev": true, "dependencies": { - "lru-cache": "^9.0.0", - "minipass": "^5.0.0" + "lru-cache": "^9.1.1", + "minipass": "^5.0.0 || ^6.0.0" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -9707,10 +9397,20 @@ "version": "9.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", + "dev": true, "engines": { "node": "14 || >=16.14" } }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.0.tgz", + "integrity": "sha512-mvD5U4pUen1aWcjTxUgdoMg6PB98dcV0obc/OiPzls79++IpgNoO+MCbOHRlKfWIOvjIjmjUygjZmSStP7B0Og==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -9724,12 +9424,6 @@ "node": ">=8" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "devOptional": true - }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -9755,27 +9449,6 @@ "node": ">=6" } }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "devOptional": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/piscina": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz", @@ -9806,9 +9479,9 @@ "integrity": "sha512-DsAgM42kV/ObuwlRpAzDTjH9E8fGKkMDJHWFX+kfNXSxh7UCCQxEmdjv/Ws5Ft1XDnt3JT8fIDYeKNSE2TbttA==" }, "node_modules/postcss": { - "version": "8.4.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", - "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", "funding": [ { "type": "opencollective", @@ -9817,14 +9490,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -9832,6 +9501,27 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-loader": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.2.tgz", + "integrity": "sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, "node_modules/postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", @@ -9904,6 +9594,14 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", @@ -9947,257 +9645,6 @@ "node": ">=10" } }, - "node_modules/protractor": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", - "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", - "deprecated": "We have news to share - Protractor is deprecated and will reach end-of-life by Summer 2023. To learn more and find out about other options please refer to this post on the Angular blog. Thank you for using and contributing to Protractor. https://goo.gle/state-of-e2e-in-angular", - "devOptional": true, - "dependencies": { - "@types/q": "^0.0.32", - "@types/selenium-webdriver": "^3.0.0", - "blocking-proxy": "^1.0.0", - "browserstack": "^1.5.1", - "chalk": "^1.1.3", - "glob": "^7.0.3", - "jasmine": "2.8.0", - "jasminewd2": "^2.1.0", - "q": "1.4.1", - "saucelabs": "^1.5.0", - "selenium-webdriver": "3.6.0", - "source-map-support": "~0.4.0", - "webdriver-js-extender": "2.1.0", - "webdriver-manager": "^12.1.7", - "yargs": "^15.3.1" - }, - "bin": { - "protractor": "bin/protractor", - "webdriver-manager": "bin/webdriver-manager" - }, - "engines": { - "node": ">=10.13.x" - } - }, - "node_modules/protractor/node_modules/@types/q": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", - "integrity": "sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==", - "devOptional": true - }, - "node_modules/protractor/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "devOptional": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "devOptional": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/protractor/node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "devOptional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "devOptional": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "devOptional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/protractor/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==", - "devOptional": true - }, - "node_modules/protractor/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "devOptional": true, - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/protractor/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "devOptional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "devOptional": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/protractor/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "devOptional": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "devOptional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "devOptional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "devOptional": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "devOptional": true - }, - "node_modules/protractor/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "devOptional": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "devOptional": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -10224,12 +9671,6 @@ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "optional": true }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "devOptional": true - }, "node_modules/punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", @@ -10238,16 +9679,6 @@ "node": ">=6" } }, - "node_modules/q": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==", - "devOptional": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, "node_modules/qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", @@ -10349,6 +9780,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/read-package-json/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -10359,15 +9799,15 @@ } }, "node_modules/read-package-json/node_modules/glob": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.3.tgz", - "integrity": "sha512-Kb4rfmBVE3eQTAimgmeqc2LwSnN0wIOkkUL6HmxEFxNJ4fHghYHVbFba/HcGcRjE6s9KoMNK3rSOwkL4PioZjg==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.4.tgz", + "integrity": "sha512-fDboBse/sl1oXSLhIp0FcCJgzW9KmhC/q8ULTKC82zc+DL3TL7FNb8qlt5qqXN53MsKEUSIcb+7DLmEygOE5Yw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.0.3", "minimatch": "^9.0.0", - "minipass": "^5.0.0", + "minipass": "^5.0.0 || ^6.0.0", "path-scurry": "^1.7.0" }, "bin": { @@ -10380,6 +9820,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/read-package-json/node_modules/json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/read-package-json/node_modules/minimatch": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", @@ -10395,6 +9844,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/read-package-json/node_modules/minipass": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.0.tgz", + "integrity": "sha512-mvD5U4pUen1aWcjTxUgdoMg6PB98dcV0obc/OiPzls79++IpgNoO+MCbOHRlKfWIOvjIjmjUygjZmSStP7B0Og==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -10493,47 +9951,6 @@ "jsesc": "bin/jsesc" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "devOptional": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "devOptional": true, - "engines": { - "node": ">=0.6" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -10550,23 +9967,17 @@ "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "devOptional": true - }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -10671,19 +10082,23 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rollup": { - "version": "3.21.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.6.tgz", - "integrity": "sha512-SXIICxvxQxR3D4dp/3LDHZIJPC8a4anKMHd4E3Jiz2/JnY+2bEjqrOokAauc5ShGVNFHlEFjBXAXlaxkJqIqSg==", - "bin": { - "rollup": "dist/bin/rollup" + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" + "node": "*" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/run-async": { @@ -10757,9 +10172,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { - "version": "1.62.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz", - "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", + "version": "1.58.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.1.tgz", + "integrity": "sha512-bnINi6nPXbP1XNRaranMFEBZWUfdW/AF16Ql5+ypRxfTvCRTTKrLsMIakyDcayUt2t/RZotmL4kgJwNH5xO+bg==", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -10769,15 +10184,15 @@ "sass": "sass.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=12.0.0" } }, "node_modules/sass-loader": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.2.tgz", - "integrity": "sha512-nrIdVAAte3B9icfBiGWvmMhT/D+eCDwnk+yA7VE/76dp/WkHX+i44Q/pfo71NYbwj0Ap+PGsn0ekOuU1WFJ2AA==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.0.tgz", + "integrity": "sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg==", "dependencies": { - "klona": "^2.0.6", + "klona": "^2.0.4", "neo-async": "^2.6.2" }, "engines": { @@ -10809,57 +10224,11 @@ } } }, - "node_modules/saucelabs": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", - "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", - "devOptional": true, - "dependencies": { - "https-proxy-agent": "^2.2.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/saucelabs/node_modules/agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "devOptional": true, - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/saucelabs/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "devOptional": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/saucelabs/node_modules/https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "devOptional": true, - "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "devOptional": true + "optional": true }, "node_modules/schema-utils": { "version": "4.0.1", @@ -10884,45 +10253,6 @@ "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" }, - "node_modules/selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", - "devOptional": true, - "dependencies": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/selenium-webdriver/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "devOptional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/selenium-webdriver/node_modules/tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", - "devOptional": true, - "dependencies": { - "os-tmpdir": "~1.0.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/selfsigned": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", @@ -10935,9 +10265,9 @@ } }, "node_modules/semver": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -11128,13 +10458,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "devOptional": true - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "devOptional": true + "dev": true }, "node_modules/setprototypeof": { "version": "1.2.0", @@ -11171,14 +10495,6 @@ "node": ">=8" } }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -11198,9 +10514,9 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/sigstore": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.4.0.tgz", - "integrity": "sha512-N7TRpSbFjY/TrFDg6yGAQSYBrQ5s6qmPiq4pD6fkv1LoyfMsLG0NwZWG2s5q+uttLHgyVyTa0Rogx2P78rN8kQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.5.0.tgz", + "integrity": "sha512-i3nhvdobiPj8XrXNIggjeur6+A5iAQ4f+r1bR5SGitFJBbthy/6c7Fz0h+kY70Wua1FSMdDr/UEhXSVRXNpynw==", "dev": true, "dependencies": { "@sigstore/protobuf-specs": "^0.1.0", @@ -11249,6 +10565,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/sigstore/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/sigstore/node_modules/minipass-fetch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", @@ -11313,27 +10638,6 @@ "ws": "~8.11.0" } }, - "node_modules/socket.io-adapter/node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "devOptional": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/socket.io-parser": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", @@ -11357,14 +10661,6 @@ "websocket-driver": "^0.7.4" } }, - "node_modules/sockjs/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/socks": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", @@ -11518,34 +10814,9 @@ } }, "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "devOptional": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" }, "node_modules/ssri": { "version": "10.0.4", @@ -11558,6 +10829,14 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/ssri/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -11606,6 +10885,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -11631,6 +10911,7 @@ "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" }, @@ -11646,6 +10927,17 @@ "node": ">=6" } }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -11723,6 +11015,14 @@ "node": ">=8" } }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/tar/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -11740,9 +11040,9 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/terser": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz", - "integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==", + "version": "5.16.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz", + "integrity": "sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==", "dependencies": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", @@ -11834,6 +11134,23 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/terser-webpack-plugin/node_modules/terser": { + "version": "5.17.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.3.tgz", + "integrity": "sha512-AudpAZKmZHkG9jueayypz4duuCFJMMNGRMwaPvQKWfxKedh8Z2x3OCoDqIIi1xx5+iwx1u6Au8XQcc9Lke65Yg==", + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -11847,6 +11164,25 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -11900,19 +11236,6 @@ "node": ">=0.6" } }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "devOptional": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -11953,6 +11276,7 @@ "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", + "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", "builtin-modules": "^1.1.1", @@ -11982,14 +11306,36 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "peer": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tslint/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, "engines": { - "node": ">=0.3.1" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/tslint/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true, "bin": { "semver": "bin/semver" } @@ -11997,12 +11343,14 @@ "node_modules/tslint/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true }, "node_modules/tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "peer": true, "dependencies": { "tslib": "^1.8.1" }, @@ -12013,7 +11361,8 @@ "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true }, "node_modules/tuf-js": { "version": "1.1.6", @@ -12064,6 +11413,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/tuf-js/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/tuf-js/node_modules/minipass-fetch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", @@ -12081,24 +11439,17 @@ "encoding": "^0.1.13" } }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "devOptional": true, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dependencies": { - "safe-buffer": "^5.0.1" + "prelude-ls": "^1.2.1" }, "engines": { - "node": "*" + "node": ">= 0.8.0" } }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "devOptional": true - }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -12284,21 +11635,13 @@ } }, "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "devOptional": true, + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "bin": { - "uuid": "bin/uuid" + "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "peer": true - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -12329,20 +11672,6 @@ "node": ">= 0.8" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "devOptional": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "node_modules/void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -12380,231 +11709,22 @@ "defaults": "^1.0.3" } }, - "node_modules/webdriver-js-extender": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", - "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", - "devOptional": true, - "dependencies": { - "@types/selenium-webdriver": "^3.0.0", - "selenium-webdriver": "^3.0.1" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/webdriver-manager": { - "version": "12.1.9", - "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.9.tgz", - "integrity": "sha512-Yl113uKm8z4m/KMUVWHq1Sjtla2uxEBtx2Ue3AmIlnlPAKloDn/Lvmy6pqWCUersVISpdMeVpAaGbNnvMuT2LQ==", - "devOptional": true, - "dependencies": { - "adm-zip": "^0.5.2", - "chalk": "^1.1.1", - "del": "^2.2.0", - "glob": "^7.0.3", - "ini": "^1.3.4", - "minimist": "^1.2.0", - "q": "^1.4.1", - "request": "^2.87.0", - "rimraf": "^2.5.2", - "semver": "^5.3.0", - "xml2js": "^0.4.17" - }, - "bin": { - "webdriver-manager": "bin/webdriver-manager" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/webdriver-manager/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "devOptional": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "devOptional": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==", - "devOptional": true, - "dependencies": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==", - "devOptional": true, - "dependencies": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "devOptional": true - }, - "node_modules/webdriver-manager/node_modules/is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "devOptional": true, - "dependencies": { - "is-path-inside": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", - "devOptional": true, - "dependencies": { - "path-is-inside": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "devOptional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/webdriver-manager/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "devOptional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/webdriver-manager/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "devOptional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "devOptional": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/webpack": { - "version": "5.80.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.80.0.tgz", - "integrity": "sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==", + "version": "5.76.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.1.tgz", + "integrity": "sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ==", "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.13.0", - "es-module-lexer": "^1.2.1", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -12613,9 +11733,9 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.2", + "schema-utils": "^3.1.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", + "terser-webpack-plugin": "^5.1.3", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, @@ -12636,9 +11756,9 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.0.2.tgz", - "integrity": "sha512-iOddiJzPcQC6lwOIu60vscbGWth8PCRcWRCwoQcTQf9RMoOWBHg5EyzpGdtSmGMrSPd5vHEfFXmVErQEmkRngQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.0.1.tgz", + "integrity": "sha512-PZPZ6jFinmqVPJZbisfggDiC+2EeGZ1ZByyMP5sOFJcPPWSexalISz+cvm+j+oYPT7FIJyxT76esjnw9DhE5sw==", "dependencies": { "colorette": "^2.0.10", "memfs": "^3.4.12", @@ -12655,17 +11775,12 @@ }, "peerDependencies": { "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - } } }, "node_modules/webpack-dev-server": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.13.2.tgz", - "integrity": "sha512-5i6TrGBRxG4vnfDpB6qSQGfnB6skGBXNL5/542w2uRGLimX6qeE5BQMLrzIC3JYV/xlGOv+s+hTleI9AZKUQNw==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", @@ -12686,7 +11801,6 @@ "html-entities": "^2.3.2", "http-proxy-middleware": "^2.0.3", "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", "open": "^8.0.9", "p-retry": "^4.5.0", "rimraf": "^3.0.2", @@ -12696,7 +11810,7 @@ "sockjs": "^0.3.24", "spdy": "^4.0.2", "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" + "ws": "^8.4.2" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" @@ -12712,9 +11826,6 @@ "webpack": "^4.37.0 || ^5.0.0" }, "peerDependenciesMeta": { - "webpack": { - "optional": true - }, "webpack-cli": { "optional": true } @@ -12805,10 +11916,25 @@ "ajv": "^6.9.1" } }, - "node_modules/webpack/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } }, "node_modules/webpack/node_modules/json-schema-traverse": { "version": "0.4.1", @@ -12854,23 +11980,19 @@ } }, "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dependencies": { "isexe": "^2.0.0" }, "bin": { - "which": "bin/which" + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "devOptional": true - }, "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", @@ -12885,6 +12007,14 @@ "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -12906,6 +12036,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -12922,6 +12053,7 @@ "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" }, @@ -12936,6 +12068,7 @@ "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" }, @@ -12946,7 +12079,8 @@ "node_modules/wrap-ansi-cjs/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==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", @@ -12984,15 +12118,15 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -13003,28 +12137,6 @@ } } }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "devOptional": true, - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "devOptional": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -13038,10 +12150,18 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -13072,6 +12192,17 @@ "node": ">=4" } }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/zone.js": { "version": "0.13.0", "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.13.0.tgz", diff --git a/httpdocs/plp-angular/package.json b/httpdocs/plp-angular/package.json index 623245f..2d45f1b 100644 --- a/httpdocs/plp-angular/package.json +++ b/httpdocs/plp-angular/package.json @@ -11,23 +11,25 @@ }, "private": true, "dependencies": { - "@angular-devkit/build-angular": "^16.0.0", - "@angular-devkit/schematics": "^16.0.0", - "@angular/animations": "^16.0.0", - "@angular/common": "^16.0.0", - "@angular/compiler": "^16.0.0", - "@angular/core": "^16.0.0", - "@angular/forms": "^16.0.0", - "@angular/platform-browser": "^16.0.0", - "@angular/platform-browser-dynamic": "^16.0.0", - "@angular/router": "^16.0.0", + "@angular-devkit/build-angular": "^15.2.8", + "@angular-devkit/schematics": "^15.2.8", + "@angular/animations": "^15.2.8", + "@angular/common": "^15.2.8", + "@angular/compiler": "^15.2.8", + "@angular/core": "^15.2.8", + "@angular/forms": "^15.2.8", + "@angular/platform-browser": "^15.2.8", + "@angular/platform-browser-dynamic": "^15.2.8", + "@angular/router": "^15.2.8", "@ng-bootstrap/ng-bootstrap": "^14.1.1", - "ag-grid-angular": "^21.2.2", - "ag-grid-community": "^21.2.2", + "@npmcli/fs": "^3.1.0", + "ag-grid-angular": "^29.3.5", + "ag-grid-community": "^29.3.5", "angular-calendar": "^0.31.0", "angularx-flatpickr": "^6.2.0", "codelyzer": "^6.0.2", "date-fns": "^1.30.1", + "eslint": "^8.40.0", "file-saver": "^2.0.2", "flatpickr": "^4.6.13", "ng6-breadcrumbs": "^1.0.7", @@ -36,13 +38,13 @@ "zone.js": "~0.13.0" }, "devDependencies": { - "@angular/cli": "^16.0.0", - "@angular/compiler-cli": "^16.0.0", - "@angular/language-service": "^16.0.0", + "@angular/cli": "^15.2.8", + "@angular/compiler-cli": "^15.2.8", + "@angular/language-service": "^15.2.8", "@types/file-saver": "^2.0.1", "@types/jasmine": "~3.3.8", "@types/jasminewd2": "^2.0.8", - "@types/node": "~8.9.4", + "@types/node": "^20.1.5", "jasmine-core": "~3.8.0", "jasmine-spec-reporter": "~5.0.0", "karma": "^6.4.2", @@ -50,9 +52,7 @@ "karma-coverage-istanbul-reporter": "~3.0.2", "karma-jasmine": "~4.0.0", "karma-jasmine-html-reporter": "^1.5.0", - "protractor": "^7.0.0", "ts-node": "~7.0.0", - "tslint": "~6.1.0", "typescript": "~4.9.5" } } diff --git a/httpdocs/plp-angular/src/app/app-routing.module.ts b/httpdocs/plp-angular/src/app/app-routing.module.ts index 8fa55a2..1264143 100644 --- a/httpdocs/plp-angular/src/app/app-routing.module.ts +++ b/httpdocs/plp-angular/src/app/app-routing.module.ts @@ -7,9 +7,6 @@ import {RouteInterceptor} from './interceptor/route-interceptor'; import {AccountingComponent} from './views/accounting/accounting.component'; import {TechniqueComponent} from './views/technique/technique.component'; import {SalesComponent} from './views/sales/sales.component'; -import {OperatorsComponent} from './views/operators/operators.component'; -import {ProductionsComponent} from './views/productions/productions.component'; -import {ServicesComponent} from './views/services/services.component'; const routes: Routes = [ @@ -17,9 +14,6 @@ const routes: Routes = [ {path: 'login', component: LoginComponent, data: {breadcrumb: 'Login'}}, {path: 'start', component: StartComponent, data: {breadcrumb: 'Home'}, canActivate: [RouteInterceptor]}, {path: 'customer-management', component: CustomerManagementComponent, data: {breadcrumb: 'Kunden'}, canActivate: [RouteInterceptor]}, - {path: 'operators', component: OperatorsComponent, data: {breadcrumb: 'Betreiber'}, canActivate: [RouteInterceptor]}, - {path: 'productions', component: ProductionsComponent, data: {breadcrumb: 'Produzenten'}, canActivate: [RouteInterceptor]}, - {path: 'service', component: ServicesComponent, data: {breadcrumb: 'Service'}, canActivate: [RouteInterceptor]}, // {path: 'accounting', component: AccountingComponent, data: {breadcrumb: 'Buchhaltung'}, canActivate: [RouteInterceptor]}, // {path: 'technique', component: TechniqueComponent, data: {breadcrumb: 'Technik'}, canActivate: [RouteInterceptor]}, // {path: 'sales', component: SalesComponent, data: {breadcrumb: 'Vertrieb'}, canActivate: [RouteInterceptor]}, @@ -39,10 +33,7 @@ export const routingComponents = [ LoginComponent, StartComponent, CustomerManagementComponent, - OperatorsComponent, AccountingComponent, - ProductionsComponent, - ServicesComponent, TechniqueComponent, SalesComponent, ]; diff --git a/httpdocs/plp-angular/src/app/app.component.html b/httpdocs/plp-angular/src/app/app.component.html index c5e7a8c..0141938 100644 --- a/httpdocs/plp-angular/src/app/app.component.html +++ b/httpdocs/plp-angular/src/app/app.component.html @@ -1,6 +1,5 @@
diff --git a/httpdocs/plp-angular/src/app/app.module.ts b/httpdocs/plp-angular/src/app/app.module.ts index d693834..8e86486 100644 --- a/httpdocs/plp-angular/src/app/app.module.ts +++ b/httpdocs/plp-angular/src/app/app.module.ts @@ -6,7 +6,6 @@ import { NgbModalModule } from '@ng-bootstrap/ng-bootstrap'; import {AppRoutingModule, routingComponents} from './app-routing.module'; import { AppComponent } from './app.component'; import { StartComponent } from './views/start/start.component'; -import {BreadcrumbsModule} from 'ng6-breadcrumbs'; import { BrowserAnimationsModule} from '@angular/platform-browser/animations'; import {CalendarModule, DateAdapter} from 'angular-calendar'; import { adapterFactory} from 'angular-calendar/date-adapters/date-fns'; @@ -38,7 +37,6 @@ import { CustomerContactPersonEditComponent } from './views/customer-management/ import { CustomerNoteViewComponent } from './views/customer-management/customer-view/customer-note-view/customer-note-view.component'; import { CustomerNoteEditComponent } from './views/customer-management/customer-view/customer-note-edit/customer-note-edit.component'; import {CustomerService} from './services/customer.service'; -import { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to'; import { CustomerNoteDetailComponent } from './views/customer-management/customer-view/customer-note-detail/customer-note-detail.component'; import {GridCheckboxRendererComponent} from './grid-cellrenderer/grid-checkbox/grid-checkbox-renderer/grid-checkbox-renderer.component'; import {GridCheckboxEditorComponent} from './grid-cellrenderer/grid-checkbox/grid-checkbox-editor/grid-checkbox-editor.component'; @@ -61,11 +59,12 @@ import { CustomerContactListComponent } from './views/customer-management/custom import { MeetingListComponent } from './views/start/meeting-list/meeting-list.component'; import { MeetingCalendarComponent } from './views/start/meeting-calendar/meeting-calendar.component'; import { CustomerContactPersonDetailComponent } from './views/customer-management/customer-view/customer-contact-person-detail/customer-contact-person-detail.component'; -import {MeetingService} from './services/meeting.service'; import { InternalMeetingEditComponent } from './views/start/internal-meeting-edit/internal-meeting-edit.component'; import { InternalMeetingDetailComponent } from './views/start/internal-meeting-detail/internal-meeting-detail.component'; import { CalendarLegendComponent } from './components/calendar-legend/calendar-legend.component'; import { CommonService } from './services/common.service'; +import {GridRendererComponent} from './grid-cellrenderer/grid-renderer-component'; +import {GridEditorComponent} from './grid-cellrenderer/grid-editor-component'; registerLocaleData(localeDe); @@ -92,6 +91,8 @@ registerLocaleData(localeDe); CustomerNoteViewComponent, CustomerNoteEditComponent, CustomerNoteDetailComponent, + GridRendererComponent, + GridEditorComponent, GridCheckboxRendererComponent, GridCheckboxEditorComponent, GridSelectEditorComponent, @@ -124,23 +125,15 @@ registerLocaleData(localeDe); FlatpickrModule.forRoot(), AppRoutingModule, HttpClientModule, - BreadcrumbsModule, ReactiveFormsModule, FormsModule, BrowserAnimationsModule, - ScrollToModule.forRoot(), + // ScrollToModule.forRoot(), CalendarModule.forRoot({ provide: DateAdapter, useFactory: adapterFactory }), - AgGridModule.withComponents([ - GridCheckboxRendererComponent, GridCheckboxEditorComponent, - GridSelectRendererComponent, GridSelectEditorComponent, - GridDateRendererComponent, GridDateEditorComponent, - GridInputRendererComponent, GridInputEditorComponent, - GridTextRendererComponent, GridTextEditorComponent, - GridBlockedRendererComponent, GridBlockedEditorComponent - ]) + AgGridModule, ], providers: [ AppService, @@ -148,8 +141,7 @@ registerLocaleData(localeDe); CacheService, MessageService, HttpService, - CustomerService - MeetingService, + CustomerService, CommonService, {provide: HTTP_INTERCEPTORS, useClass: HttpClientInterceptor, multi: true}, ], diff --git a/httpdocs/plp-angular/src/app/components/ag-grid-component.ts b/httpdocs/plp-angular/src/app/components/ag-grid-component.ts index d26fe62..83bc7a8 100644 --- a/httpdocs/plp-angular/src/app/components/ag-grid-component.ts +++ b/httpdocs/plp-angular/src/app/components/ag-grid-component.ts @@ -1,4 +1,3 @@ -import {isUndefined} from 'util'; import {path} from '../../environments/path'; import {AgGridLocale} from '../lang/ag-gridlocale'; import {IGridValidationErrors} from '../model/virtual/grid-validation-errors'; @@ -128,7 +127,7 @@ export class AgGridComponent { * Resizes grid */ public gridSizeChanged(params: any): void { - if (!isUndefined(this.gridParamsApi)) { + if (undefined !== this.gridParamsApi) { this.gridParamsApi.sizeColumnsToFit(); } } @@ -202,8 +201,8 @@ export class AgGridComponent { const errors: IGridValidationErrors[] = []; primaryColumns.forEach((value) => { - if (!isUndefined(value.colDef.cellEditorParams)) { - if (!isUndefined(value.colDef.cellEditorParams.mandatory) && value.colDef.cellEditorParams.mandatory === true) { + if (undefined !== value.colDef.cellEditorParams) { + if (undefined !== value.colDef.cellEditorParams.mandatory && true === value.colDef.cellEditorParams.mandatory) { errorColumn.push(value.colDef.field); } } @@ -211,7 +210,7 @@ export class AgGridComponent { errorColumn.forEach((value, i) => { this.params.api.forEachNode((rowNode, index) => { - if (null === rowNode.data[value] || isUndefined(rowNode.data[value])) { + if (null === rowNode.data[value] || undefined === rowNode.data[value]) { errors.push({ column: value, row: index diff --git a/httpdocs/plp-angular/src/app/components/form-component.ts b/httpdocs/plp-angular/src/app/components/form-component.ts index b925b1e..a76d8c2 100644 --- a/httpdocs/plp-angular/src/app/components/form-component.ts +++ b/httpdocs/plp-angular/src/app/components/form-component.ts @@ -1,13 +1,18 @@ -import {ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; +// import {ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; export class FormComponent { public errorMsg: string; public isCreationMode: boolean; - protected scrollToService: ScrollToService; + // protected scrollToService: ScrollToService; - constructor(scrollToService: ScrollToService) { - this.scrollToService = scrollToService; + // constructor(scrollToService: ScrollToService) { + // this.scrollToService = scrollToService; + // this.errorMsg = ''; + // this.isCreationMode = false; + // } + + constructor() { this.errorMsg = ''; this.isCreationMode = false; } @@ -26,7 +31,7 @@ export class FormComponent { /** * Configures scrollToService - https://www.npmjs.com/package/@nicky-lenaers/ngx-scroll-to */ - public scrollUp(identifier: string): void { - this.scrollToService.scrollTo({target: identifier}); - } + // public scrollUp(identifier: string): void { + // this.scrollToService.scrollTo({target: identifier}); + // } } diff --git a/httpdocs/plp-angular/src/app/components/modal/modal.component.ts b/httpdocs/plp-angular/src/app/components/modal/modal.component.ts index f9e89cf..5b8bcab 100644 --- a/httpdocs/plp-angular/src/app/components/modal/modal.component.ts +++ b/httpdocs/plp-angular/src/app/components/modal/modal.component.ts @@ -1,7 +1,7 @@ import {AfterContentInit, Component, EventEmitter, OnInit, Input, Output, Renderer2} from '@angular/core'; @Component({ - selector: 'app-modal', + selector: 'app-spt-modal', templateUrl: './modal.component.html', styleUrls: ['./modal.component.scss'] }) @@ -52,7 +52,6 @@ export class ModalComponent implements OnInit, AfterContentInit { /** * Closes modal dialog with confirm message - * @param {string} message */ public closeWithConfirm(message: string): boolean { if (confirm(message)) { @@ -73,7 +72,6 @@ export class ModalComponent implements OnInit, AfterContentInit { /** * Returns if modal is open - * @returns {boolean} */ public isOpen(): boolean { return this.showModal; diff --git a/httpdocs/plp-angular/src/app/factory/factory.ts b/httpdocs/plp-angular/src/app/factory/factory.ts index e642d2a..54f3469 100644 --- a/httpdocs/plp-angular/src/app/factory/factory.ts +++ b/httpdocs/plp-angular/src/app/factory/factory.ts @@ -7,18 +7,6 @@ import {IUser} from '../model/entities/user'; import {IMeetingType} from '../model/entities/meeting-type'; import {IInternalMeeting} from '../model/entities/internal-meeting'; import {Utils} from '../utils/utils'; -import {IOperator} from '../model/entities/operator'; -import {IOperatorContact} from '../model/entities/operator-contact'; -import {IOperatorNote} from '../model/entities/operator-note'; -import {IOperatorMeeting} from '../model/entities/operator-meeting'; -import {IProduction} from '../model/entities/production'; -import {IProductionContact} from '../model/entities/production-contact'; -import {IProductionNote} from '../model/entities/production-note'; -import {IProductionMeeting} from '../model/entities/production-meeting'; -import {IService} from '../model/entities/service'; -import {IServiceContact} from '../model/entities/service-contact'; -import {IServiceNote} from '../model/entities/service-note'; -import {IServiceMeeting} from '../model/entities/service-meeting'; export class Factory { static getEmptyUser(): IUser { @@ -34,14 +22,6 @@ export class Factory { /** * Returns empty message - * @param errorCode - * @param errorMsg - * @param successCode - * @param successMsg - * @param infoCode - * @param infoMsg - * @param clientErrorCode - * @param optionalInfo */ static getEmptyMessage(errorCode: number, errorMsg: string, successCode: number, successMsg: string, infoCode: number, infoMsg: string, clientErrorCode: number, optionalInfo: string = null): IMessage { @@ -173,348 +153,6 @@ export class Factory { return emptyCustomerMeeting as ICustomerMeeting; } - /** - * Returns empty operator - */ - static getEmptyOperator(): IOperator { - const emptyOperator: {} = { - id: null, - old_plp_id: null, - name: null, - name_additional: null, - street: null, - street_no: null, - zip: null, - city: null, - country_id: null, - url: null, - email: null, - phone_no: null, - mobile_no: null, - fax_no: null, - tax_no: null, - invoice_mode: null, - invoice_comment: null, - invoice_key: null, - comment: null, - active: true, - }; - return emptyOperator as IOperator; - } - - /** - * Returns empty operator contact person - */ - static getEmptyOperatorContact(operatorId: number = null): IOperatorContact { - const emptyOperatorContact: {} = { - id: null, - operator_id: operatorId, - gender: null, - firstname: null, - lastname: null, - email: null, - phone_no: null, - mobile_no: null, - fax_no: null, - department: null, - date_of_birth: null, - comment: null, - street: null, - street_no: null, - zip: null, - city: null, - country_id: null, - is_xmas_mail_recipient: false, - }; - return emptyOperatorContact as IOperatorContact; - } - - static getEmptyOperatorNote(operatorId: number = null, noteDate: string = null): IOperatorNote { - const emptyOperatorNote: {} = { - id: operatorId, - operator_id: null, - operator_contact_id: null, - user_id: null, - gender: null, - firstname: null, - lastname: null, - email: null, - phone_no: null, - mobile_no: null, - fax_no: null, - department: null, - title: null, - comment: null, - note_date: noteDate, - creation_date: null, - creation_user_id: null, - creation_user_firstname: null, - creation_user_lastname: null - }; - return emptyOperatorNote as IOperatorNote; - } - - static getEmptyOperatorMeeting(operatorId: number = null): IOperatorMeeting { - const emptyOperatorMeeting: {} = { - id: null, - operator_id: operatorId, - operator_user_id: null, - owner_user_id: null, - meeting_type_id: null, - is_option_meeting: false, - title: null, - description: null, - start_date: Utils.getCurrentDate() + ' 09:00:00', - end_date: Utils.getCurrentDate() + ' 18:00:00', - operator_contact_id: null, - gender: null, - firstname: null, - lastname: null, - email: null, - phone_no: null, - mobile_no: null, - department: null, - street: null, - street_no: null, - zip: null, - city: null, - country_id: null, - report: null, - first_reminder_sent: false, - second_reminder_sent: false, - report_done: false, - report_reminder_sent: false, - creation_date: null, - v_participants: [], - v_is_editable: true - }; - return emptyOperatorMeeting as IOperatorMeeting; - } - - static getEmptyProduction(): IProduction { - const emptyProduction: {} = { - id: null, - old_plp_id: null, - name: null, - name_additional: null, - street: null, - street_no: null, - zip: null, - city: null, - country_id: null, - url: null, - email: null, - phone_no: null, - mobile_no: null, - fax_no: null, - tax_no: null, - invoice_mode: null, - invoice_comment: null, - invoice_key: null, - comment: null, - active: true, - }; - return emptyProduction as IProduction; - } - - static getEmptyProductionContact(productionId: number = null): IProductionContact { - const emptyProductionContact: {} = { - id: null, - production_id: productionId, - gender: null, - firstname: null, - lastname: null, - email: null, - phone_no: null, - mobile_no: null, - fax_no: null, - department: null, - date_of_birth: null, - comment: null, - street: null, - street_no: null, - zip: null, - city: null, - country_id: null, - is_xmas_mail_recipient: false, - }; - return emptyProductionContact as IProductionContact; - } - - static getEmptyProductionNote(productionId: number = null, noteDate: string = null): IProductionNote { - const emptyProductionNote: {} = { - id: productionId, - production_id: null, - production_contact_id: null, - user_id: null, - gender: null, - firstname: null, - lastname: null, - email: null, - phone_no: null, - mobile_no: null, - fax_no: null, - department: null, - title: null, - comment: null, - note_date: noteDate, - creation_date: null, - creation_user_id: null, - creation_user_firstname: null, - creation_user_lastname: null - }; - return emptyProductionNote as IProductionNote; - } - - static getEmptyProductionMeeting(productionId: number = null): IProductionMeeting { - const emptyProductionMeeting: {} = { - id: null, - production_id: productionId, - production_user_id: null, - owner_user_id: null, - meeting_type_id: null, - is_option_meeting: false, - title: null, - description: null, - start_date: Utils.getCurrentDate() + ' 09:00:00', - end_date: Utils.getCurrentDate() + ' 18:00:00', - production_contact_id: null, - gender: null, - firstname: null, - lastname: null, - email: null, - phone_no: null, - mobile_no: null, - department: null, - street: null, - street_no: null, - zip: null, - city: null, - country_id: null, - report: null, - first_reminder_sent: false, - second_reminder_sent: false, - report_done: false, - report_reminder_sent: false, - creation_date: null, - v_participants: [], - v_is_editable: true - }; - return emptyProductionMeeting as IProductionMeeting; - } - - static getEmptyService(): IService { - const emptyService: {} = { - id: null, - old_plp_id: null, - name: null, - name_additional: null, - street: null, - street_no: null, - zip: null, - city: null, - country_id: null, - url: null, - email: null, - phone_no: null, - mobile_no: null, - fax_no: null, - tax_no: null, - invoice_mode: null, - invoice_comment: null, - invoice_key: null, - comment: null, - active: true, - }; - return emptyService as IService; - } - - static getEmptyServiceContact(serviceId: number = null): IServiceContact { - const emptyServiceContact: {} = { - id: null, - service_id: serviceId, - gender: null, - firstname: null, - lastname: null, - email: null, - phone_no: null, - mobile_no: null, - fax_no: null, - department: null, - date_of_birth: null, - comment: null, - street: null, - street_no: null, - zip: null, - city: null, - country_id: null, - is_xmas_mail_recipient: false, - }; - return emptyServiceContact as IServiceContact; - } - - static getEmptyServiceNote(serviceId: number = null, noteDate: string = null): IServiceNote { - const emptyProductionNote: {} = { - id: serviceId, - service_id: null, - service_contact_id: null, - user_id: null, - gender: null, - firstname: null, - lastname: null, - email: null, - phone_no: null, - mobile_no: null, - fax_no: null, - department: null, - title: null, - comment: null, - note_date: noteDate, - creation_date: null, - creation_user_id: null, - creation_user_firstname: null, - creation_user_lastname: null - }; - return emptyProductionNote as IServiceNote; - } - - static getEmptyServiceMeeting(serviceId: number = null): IServiceMeeting { - const emptyServiceMeeting: {} = { - id: null, - service_id: serviceId, - service_user_id: null, - owner_user_id: null, - meeting_type_id: null, - is_option_meeting: false, - title: null, - description: null, - start_date: Utils.getCurrentDate() + ' 09:00:00', - end_date: Utils.getCurrentDate() + ' 18:00:00', - service_contact_id: null, - gender: null, - firstname: null, - lastname: null, - email: null, - phone_no: null, - mobile_no: null, - department: null, - street: null, - street_no: null, - zip: null, - city: null, - country_id: null, - report: null, - first_reminder_sent: false, - second_reminder_sent: false, - report_done: false, - report_reminder_sent: false, - creation_date: null, - v_participants: [], - v_is_editable: true - }; - return emptyServiceMeeting as IServiceMeeting; - } - static getEmptyInternalMeeting(): IInternalMeeting { const emptyInternalMeeting: {} = { id: null, diff --git a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-date/grid-date-renderer/grid-date-renderer.component.ts b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-date/grid-date-renderer/grid-date-renderer.component.ts index 9c43b33..8c80f31 100644 --- a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-date/grid-date-renderer/grid-date-renderer.component.ts +++ b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-date/grid-date-renderer/grid-date-renderer.component.ts @@ -1,5 +1,4 @@ import {Component} from '@angular/core'; -import {isUndefined} from 'util'; import {GridRendererComponent} from '../../grid-renderer-component'; @Component({ @@ -14,12 +13,11 @@ export class GridDateRendererComponent extends GridRendererComponent { /** * Initialize cell renderer (gets called on cell rendering and after editing / refresh) - * @param params */ agInit(params: any): void { super.agInit(params); let tempValue: string[] = []; - if (null === this.value || isUndefined(this.value)) { + if (null === this.value || undefined === this.value) { this.displayedValue = ''; } else { tempValue = this.value.split('-'); diff --git a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-editor-component.ts b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-editor-component.ts index 92f7bc6..b01cd73 100644 --- a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-editor-component.ts +++ b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-editor-component.ts @@ -1,8 +1,13 @@ -import {ElementRef, OnInit, ViewChild} from '@angular/core'; +import {Component, ElementRef, OnInit, ViewChild} from '@angular/core'; import {ICellEditorAngularComp} from 'ag-grid-angular'; import {IGridCellParams} from './grid-cell-params'; +@Component({ + template: '', +}) + export class GridEditorComponent implements OnInit, ICellEditorAngularComp { + @ViewChild('editorInput', { static: true }) inputField: ElementRef; readonly GRID_ERROR_EMPTY: string = 'Bitte geben Sie einen Wert ein.'; @@ -25,7 +30,6 @@ export class GridEditorComponent implements OnInit, ICellEditorAngularComp { /** * Initialize cell renderer (gets called on cell rendering and after editing / refresh) - * @param params */ agInit(params: any): void { this.params = params; @@ -47,7 +51,6 @@ export class GridEditorComponent implements OnInit, ICellEditorAngularComp { /** * Cancels before value input (this editor is never editable) - * @returns {boolean} */ public isCancelBeforeStart(): boolean { return false; @@ -55,7 +58,6 @@ export class GridEditorComponent implements OnInit, ICellEditorAngularComp { /** * Cancels input of inserted value under certain conditions - * @returns {boolean} */ isCancelAfterEnd(): boolean { return false; @@ -63,7 +65,6 @@ export class GridEditorComponent implements OnInit, ICellEditorAngularComp { /** * Changes value on click - * @param e */ public valueIsChanged = (e) => { this.value = e.srcElement.value; diff --git a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-factory.ts b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-factory.ts index 42336d1..5ea5210 100644 --- a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-factory.ts +++ b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-factory.ts @@ -3,13 +3,6 @@ import {IGridCellParams} from './grid-cell-params'; export class GridFactory { /** * Returns param object for cell renderer and -editors - * @param {string} type - * @param {number} min - * @param {number} max - * @param {string} unit - * @param {boolean} mandatory - * @param {number} altValue - * @returns {IGridCellParams} */ static getGridCellParams(type: string = null, min: number = null, max: number = null, unit: string = null, diff --git a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-input/grid-input-editor/grid-input-editor.component.ts b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-input/grid-input-editor/grid-input-editor.component.ts index 651a6cf..69fa365 100644 --- a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-input/grid-input-editor/grid-input-editor.component.ts +++ b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-input/grid-input-editor/grid-input-editor.component.ts @@ -12,7 +12,6 @@ import {Utils} from '../../../utils/utils'; export class GridInputEditorComponent extends GridEditorComponent { /** * Initialize cell renderer (gets called on cell rendering and after editing / refresh) - * @param params */ agInit(params: any): void { super.agInit(params); @@ -37,7 +36,6 @@ export class GridInputEditorComponent extends GridEditorComponent { /** * Cancels input of inserted value under certain conditions - * @returns {boolean} */ isCancelAfterEnd(): boolean { if (this.cellParams.mandatory && (null === this.value || this.value.toString().trim() === '')) { @@ -46,20 +44,20 @@ export class GridInputEditorComponent extends GridEditorComponent { return true; } - if (this.cellParams.type == AgGridComponentConst.CELL_VALUE_TYPE_INT && !Utils.isInteger(this.value)) { + if (this.cellParams.type === AgGridComponentConst.CELL_VALUE_TYPE_INT && !Utils.isInteger(this.value)) { // No int value given AgGridComponentConst.setGridInputError(this.GRID_ERROR_INT); return true; } - if (this.cellParams.type == AgGridComponentConst.CELL_VALUE_TYPE_FLOAT && !Utils.isFloat(this.value)) { + if (this.cellParams.type === AgGridComponentConst.CELL_VALUE_TYPE_FLOAT && !Utils.isFloat(this.value)) { // No float value given AgGridComponentConst.setGridInputError(this.GRID_ERROR_FLOAT); return true; } - if (this.cellParams.type == AgGridComponentConst.CELL_VALUE_TYPE_INT || - this.cellParams.type == AgGridComponentConst.CELL_VALUE_TYPE_FLOAT) { + if (this.cellParams.type === AgGridComponentConst.CELL_VALUE_TYPE_INT || + this.cellParams.type === AgGridComponentConst.CELL_VALUE_TYPE_FLOAT) { const numericVal: number = Number(String(this.value).replace(',', '.')); if (null !== this.cellParams.min && numericVal < Number(this.cellParams.min)) { // Check on alternative value @@ -101,7 +99,7 @@ export class GridInputEditorComponent extends GridEditorComponent { /** * Changes value on click - * @param e + * todo maybe this should get refacotred properly? */ public valueIsChanged = (e) => { this.value = e.srcElement.value; diff --git a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-input/grid-input-renderer/grid-input-renderer.component.ts b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-input/grid-input-renderer/grid-input-renderer.component.ts index 3275288..7b3d2e1 100644 --- a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-input/grid-input-renderer/grid-input-renderer.component.ts +++ b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-input/grid-input-renderer/grid-input-renderer.component.ts @@ -11,7 +11,6 @@ import {AgGridComponentConst} from '../../../components/ag-grid-component-const' export class GridInputRendererComponent extends GridRendererComponent { /** * Initialize cell renderer (gets called on cell rendering and after editing / refresh) - * @param params */ agInit(params: any): void { super.agInit(params); diff --git a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-renderer-component.ts b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-renderer-component.ts index 86ab1e5..074fe18 100644 --- a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-renderer-component.ts +++ b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-renderer-component.ts @@ -1,8 +1,13 @@ -import {OnInit} from '@angular/core'; +import {Component, OnInit} from '@angular/core'; import {ICellRendererAngularComp} from 'ag-grid-angular'; import {IGridCellParams} from './grid-cell-params'; +@Component({ + template: '', +}) + export class GridRendererComponent implements OnInit, ICellRendererAngularComp { + public value: any; public params: any; public cellParams: IGridCellParams; @@ -16,7 +21,6 @@ export class GridRendererComponent implements OnInit, ICellRendererAngularComp { /** * Initialize cell renderer (gets called on cell rendering and after editing / refresh) - * @param params */ agInit(params: any): void { this.params = params; @@ -30,7 +34,6 @@ export class GridRendererComponent implements OnInit, ICellRendererAngularComp { /** * Sets value - * @param value */ setValue(value: any): void { this.value = value; @@ -38,7 +41,6 @@ export class GridRendererComponent implements OnInit, ICellRendererAngularComp { /** * Refreshes cell - Gets called after editing - * @param params */ refresh(params: any): boolean { return false; diff --git a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-select/grid-select-editor/grid-select-editor.component.ts b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-select/grid-select-editor/grid-select-editor.component.ts index 38bfb55..89a43ad 100644 --- a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-select/grid-select-editor/grid-select-editor.component.ts +++ b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-select/grid-select-editor/grid-select-editor.component.ts @@ -1,6 +1,5 @@ import {Component} from '@angular/core'; import {IGridSelectItem} from '../grid-select-item'; -import {isUndefined} from 'util'; import {GridEditorComponent} from '../../grid-editor-component'; import {GridSelectFactory} from '../grid-select-factory'; import {IGridCellEditorParams} from '../../grid-cell-editor-params'; @@ -37,7 +36,7 @@ export class GridSelectEditorComponent extends GridEditorComponent { const itemRange: any[] = (params.node.data.hasOwnProperty(relatedValue) && null !== params.node.data[relatedValue]) ? cellEditorParams.values[params.node.data[relatedValue]] : null; - if (null !== itemRange && !isUndefined(itemRange)) { + if (null !== itemRange && undefined !== itemRange) { itemRange.forEach(item => { this.values.push(GridSelectFactory.getGridSelectItem(item, this.itemKey, this.itemValueKeys)); }); @@ -47,17 +46,17 @@ export class GridSelectEditorComponent extends GridEditorComponent { // Filter all items used by other selects (compareData) const compareExcludeKey: string = cellEditorParams.exclusiveCompareDataKey; const excludedItemKeys: {} = {}; - for (let i = 0; i < cellEditorParams.exclusiveCompareData.length; i++) { - if (cellEditorParams.exclusiveCompareData[i][compareExcludeKey] != this.value) { - excludedItemKeys[cellEditorParams.exclusiveCompareData[i][compareExcludeKey]] = 1; + cellEditorParams.exclusiveCompareData.forEach(item => { + if (item[compareExcludeKey] !== this.value) { + excludedItemKeys[item[compareExcludeKey]] = 1; } - } + }); // This select contains only values that are not selected by other selects and it's own current item - for (let h = 0; h < cellEditorParams.values.length; h++) { - if (!excludedItemKeys.hasOwnProperty(cellEditorParams.values[h][this.itemKey])) { - this.values.push(GridSelectFactory.getGridSelectItem(cellEditorParams.values[h], this.itemKey, this.itemValueKeys)); + cellEditorParams.values.forEach(item => { + if (!excludedItemKeys.hasOwnProperty(item[this.itemKey])) { + this.values.push(GridSelectFactory.getGridSelectItem(item, this.itemKey, this.itemValueKeys)); } - } + }); } else { // Static values (default behaviour) this.values = params.values; @@ -74,13 +73,12 @@ export class GridSelectEditorComponent extends GridEditorComponent { /** * Makes selectItem out of ID - * @param e */ public getSelectedItem(e: any): IGridSelectItem { - if (e != null && e != '') { - for (let i = 0; i < this.values.length; i++) { - if (this.values[i].key == e) { - this.newValue = this.values[i]; + if (null !== e && e !== '') { + for (const item of this.values) { + if (item.key === e) { + this.newValue = item; break; } } diff --git a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-select/grid-select-factory.ts b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-select/grid-select-factory.ts index bb160e9..5b4e3f7 100644 --- a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-select/grid-select-factory.ts +++ b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-select/grid-select-factory.ts @@ -5,20 +5,6 @@ import {IGridSelectItem} from './grid-select-item'; export class GridSelectFactory { /** * Returns select item for grid - * @param headerName - * @param field - * @param editable - * @param values - * @param itemKey - * @param itemValueKeys - * @param mandatory - * @param relatesOnDgField - * @param headerClass - * @param pinned - * @param cellClass - * @param exclusive - * @param exclusiveCompareData - * @param exclusiveCompareDataKey */ static getGridSelect(headerName: string, field: string, editable: boolean, values: any[], itemKey: string, itemValueKeys: string[], mandatory: boolean = true, relatesOnDgField: string = null, @@ -51,7 +37,7 @@ export class GridSelectFactory { } }; if (mandatory) { - res.cellClassRules = { + res['cellClassRules'] = { error(params) { return params.value == null; } @@ -62,20 +48,6 @@ export class GridSelectFactory { /** * Returns select item for grid without renderer and editor - * @param headerName - * @param field - * @param editable - * @param values - * @param itemKey - * @param itemValueKeys - * @param mandatory - * @param relatesOnDgField - * @param headerClass - * @param pinned - * @param cellClass - * @param exclusive - * @param exclusiveCompareData - * @param exclusiveCompareDataKey */ static getGridSelectForSelectors(headerName: string, field: string, editable: boolean, values: any[], itemKey: string, itemValueKeys: string[], mandatory: boolean = true, relatesOnDgField: string = null, @@ -86,17 +58,13 @@ export class GridSelectFactory { headerName, field, editable, values, itemKey, itemValueKeys, mandatory, relatesOnDgField, headerClass, pinned, cellClass, exclusive, exclusiveCompareData, exclusiveCompareDataKey ); - delete res.cellRenderer; - delete res.cellEditor; + delete res['cellRenderer']; + delete res['cellEditor']; return res; } /** * Returns array of grid select items - * @param objArray - * @param key - * @param valueKeys - * @param mandatory */ static getGridSelectItems(objArray: any[], key: string, valueKeys: string[], mandatory: boolean = true): IGridSelectItem[] { const res: IGridSelectItem[] = []; @@ -143,8 +111,6 @@ export class GridSelectFactory { /** * Returns displayed value of grid item - * @param obj - * @param valueKeys */ static getGridSelectItemValue(obj: any, valueKeys: string[]): string { let value = ''; diff --git a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-select/grid-select-renderer/grid-select-renderer.component.ts b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-select/grid-select-renderer/grid-select-renderer.component.ts index 06b91d0..bd66b53 100644 --- a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-select/grid-select-renderer/grid-select-renderer.component.ts +++ b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-select/grid-select-renderer/grid-select-renderer.component.ts @@ -22,7 +22,6 @@ export class GridSelectRendererComponent extends GridRendererComponent { /** * Initialize cell renderer (gets called on cell rendering and after editing / refresh) - * @param params */ agInit(params: any): void { super.agInit(params); @@ -37,16 +36,15 @@ export class GridSelectRendererComponent extends GridRendererComponent { /** * Case for static item range (all items in column have the same select items - default) - * @param params */ private setStaticValue(params: any): void { if (this.itemRange === null || undefined === this.itemRange) { // Item range is the same for all rows this.itemRange = params.colDef.cellEditorParams.values as IGridSelectItem[]; if (null !== params.value) { - for (let i = 0; i < this.itemRange.length; i++) { - if (this.itemRange[i].key === params.value) { - this.value = this.itemRange[i].value; + for (const item of this.itemRange) { + if (item.key === params.value) { + this.value = item.value; break; } } @@ -58,7 +56,6 @@ export class GridSelectRendererComponent extends GridRendererComponent { /** * Case for item range related on other dg grid field (Select has always to be updated within init) - * @param params */ private setRelatedValue(params: any): void { // @TODO: Might be checked @@ -67,14 +64,14 @@ export class GridSelectRendererComponent extends GridRendererComponent { const itemValueKeys: string[] = params.colDef.cellEditorParams.itemValueKeys; // Get item range by related value - this.itemRange = params.data.hasOwnProperty(relatedValue) && null !== params.data[relatedValue]; ) ? - params.colDef.cellEditorParams.values[params.data[relatedValue]]; : null; + this.itemRange = params.data.hasOwnProperty(relatedValue) && null !== params.data[relatedValue] ? + params.colDef.cellEditorParams.values[params.data[relatedValue]] : null; - if (null !== params.value && null !== this.itemRange) { } } {) { + if (null !== params.value && null !== this.itemRange) { // let value: string = GridFactory.getGridSelectItemValue() - for (let i = 0; i < this.itemRange.length; i++) { - if (this.itemRange[i][itemKey] === params.value) { - this.value = GridSelectFactory.getGridSelectItemValue(this.itemRange[i], itemValueKeys); + for (const item of this.itemRange) { + if (item[itemKey] === params.value) { + this.value = GridSelectFactory.getGridSelectItemValue(item, itemValueKeys); break; } } diff --git a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-text/grid-text-editor/grid-text-editor.component.ts b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-text/grid-text-editor/grid-text-editor.component.ts index 378b37b..9989c55 100644 --- a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-text/grid-text-editor/grid-text-editor.component.ts +++ b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-text/grid-text-editor/grid-text-editor.component.ts @@ -10,7 +10,6 @@ import {GridEditorComponent} from '../../grid-editor-component'; export class GridTextEditorComponent extends GridEditorComponent { /** * Cancels before value input (this editor is never editable) - * @returns {boolean} */ public isCancelBeforeStart(): boolean { return true; diff --git a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-text/grid-text-renderer/grid-text-renderer.component.ts b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-text/grid-text-renderer/grid-text-renderer.component.ts index 1a8fffc..db4f660 100644 --- a/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-text/grid-text-renderer/grid-text-renderer.component.ts +++ b/httpdocs/plp-angular/src/app/grid-cellrenderer/grid-text/grid-text-renderer/grid-text-renderer.component.ts @@ -11,17 +11,16 @@ import {AgGridComponentConst} from '../../../components/ag-grid-component-const' export class GridTextRendererComponent extends GridRendererComponent { /** * Initialize cell renderer (gets called on cell rendering and after editing / refresh) - * @param params */ agInit(params: any): void { super.agInit(params); if (undefined !== this.cellParams) { // Replace "." with "," for display purpose if (this.cellParams.type === AgGridComponentConst.CELL_VALUE_TYPE_FLOAT) { - this.value = isNaN(this.value) || null === this.value; ) ? ''; : this.value = parseFloat(parseFloat(this.value).toFixed(2)).toLocaleString('de-DE'); + this.value = isNaN(this.value) || null === this.value ? '' : parseFloat(parseFloat(this.value).toFixed(2)).toLocaleString('de-DE'); } - if (this.cellParams.type == AgGridComponentConst.CELL_VALUE_TYPE_INT) { - this.value = isNaN(this.value) || null === this.value; ) ? ''; : this.value = parseInt(parseInt(this.value).toFixed(2)).toLocaleString('de-DE'); + if (this.cellParams.type === AgGridComponentConst.CELL_VALUE_TYPE_INT) { + this.value = isNaN(this.value) || null === this.value? '' : this.value = parseInt(parseInt(this.value).toFixed(2)).toLocaleString('de-DE'); } } } diff --git a/httpdocs/plp-angular/src/app/interceptor/route-interceptor.ts b/httpdocs/plp-angular/src/app/interceptor/route-interceptor.ts index 01697e8..b09dbe7 100644 --- a/httpdocs/plp-angular/src/app/interceptor/route-interceptor.ts +++ b/httpdocs/plp-angular/src/app/interceptor/route-interceptor.ts @@ -11,7 +11,6 @@ export class RouteInterceptor { /** * Constructor of router service - * @param {Router} router */ constructor(private router: Router, private appService: AppService) { // Observe login state diff --git a/httpdocs/plp-angular/src/app/model/entities/customer-meeting.ts b/httpdocs/plp-angular/src/app/model/entities/customer-meeting.ts index 2051e6d..2a8f0c3 100644 --- a/httpdocs/plp-angular/src/app/model/entities/customer-meeting.ts +++ b/httpdocs/plp-angular/src/app/model/entities/customer-meeting.ts @@ -1,16 +1,11 @@ import {EntityInterface} from '../interface/entity-interface'; import {ICustomerMeetingParticipant} from './customer-meeting-participant'; +import {MeetingInterface} from '../interface/meeting-interface'; -export interface ICustomerMeeting extends EntityInterface { +export interface ICustomerMeeting extends EntityInterface, MeetingInterface { customer_id: number; - creation_user_id: number; - owner_user_id: number; meeting_type_id: number; is_option_meeting: boolean; - title: string; - description: string; - start_date: string; - end_date: string; customer_contact_id: number; gender: string; firstname: string; @@ -24,11 +19,6 @@ export interface ICustomerMeeting extends EntityInterface { zip: string; city: string; country_id: number; - report: string; - first_reminder_sent: boolean; - second_reminder_sent: boolean; - report_reminder_sent: boolean; - creation_date: string; v_participants: ICustomerMeetingParticipant[]; v_is_editable: boolean; } diff --git a/httpdocs/plp-angular/src/app/model/entities/internal-meeting.ts b/httpdocs/plp-angular/src/app/model/entities/internal-meeting.ts index 3d143dd..4286a90 100644 --- a/httpdocs/plp-angular/src/app/model/entities/internal-meeting.ts +++ b/httpdocs/plp-angular/src/app/model/entities/internal-meeting.ts @@ -1,18 +1,9 @@ import {EntityInterface} from '../interface/entity-interface'; import {IInternalMeetingParticipant} from './internal-meeting-participant'; +import {MeetingInterface} from '../interface/meeting-interface'; -export interface IInternalMeeting extends EntityInterface { +export interface IInternalMeeting extends EntityInterface, MeetingInterface { creation_user_id: number; - owner_user_id: number; - title: string; - description: string; - start_date: string; - end_date: string; - report: string; - first_reminder_sent: boolean; - second_reminder_sent: boolean; - report_reminder_sent: boolean; - creation_date: string; v_participants: IInternalMeetingParticipant[]; v_is_editable: boolean; } diff --git a/httpdocs/plp-angular/src/app/model/entities/operator-contact.ts b/httpdocs/plp-angular/src/app/model/entities/operator-contact.ts deleted file mode 100644 index 25db78a..0000000 --- a/httpdocs/plp-angular/src/app/model/entities/operator-contact.ts +++ /dev/null @@ -1,21 +0,0 @@ -import {EntityInterface} from '../interface/entity-interface'; - -export interface IOperatorContact extends EntityInterface { - operator_id: string; - gender: string; - firstname: string; - lastname: string; - email: string; - phone_no: string; - mobile_no: string; - fax_no: string; - department: string; - date_of_birth: string; - comment: string; - street: string; - street_no: string; - zip: string; - city: string; - country_id: number; - is_xmas_mail_recipient: boolean; -} diff --git a/httpdocs/plp-angular/src/app/model/entities/operator-meeting-participant.ts b/httpdocs/plp-angular/src/app/model/entities/operator-meeting-participant.ts deleted file mode 100644 index 5218961..0000000 --- a/httpdocs/plp-angular/src/app/model/entities/operator-meeting-participant.ts +++ /dev/null @@ -1,6 +0,0 @@ -import {EntityInterface} from '../interface/entity-interface'; - -export interface IOperatorMeetingParticipant extends EntityInterface { - operator_meeting_id: number; - participant_user_id: number; -} diff --git a/httpdocs/plp-angular/src/app/model/entities/operator-meeting.ts b/httpdocs/plp-angular/src/app/model/entities/operator-meeting.ts deleted file mode 100644 index 6cc7a63..0000000 --- a/httpdocs/plp-angular/src/app/model/entities/operator-meeting.ts +++ /dev/null @@ -1,33 +0,0 @@ -import {EntityInterface} from '../interface/entity-interface'; -import {IOperatorMeetingParticipant} from './operator-meeting-participant'; - -export interface IOperatorMeeting extends EntityInterface { - operator_id: number; - creation_user_id: number; - owner_user_id: number; - meeting_type_id: number; - title: string; - description: string; - start_date: string; - end_date: string; - operator_contact_id: number; - gender: string; - firstname: string; - lastname: string; - email: string; - phone_no: string; - mobile_no: string; - department: string; - street: string; - street_no: string; - zip: string; - city: string; - country_id: number; - report: string; - first_reminder_sent: boolean; - second_reminder_sent: boolean; - report_reminder_sent: boolean; - creation_date: string; - v_participants: IOperatorMeetingParticipant[]; - v_is_editable: boolean; -} diff --git a/httpdocs/plp-angular/src/app/model/entities/operator-note.ts b/httpdocs/plp-angular/src/app/model/entities/operator-note.ts deleted file mode 100644 index abe4b86..0000000 --- a/httpdocs/plp-angular/src/app/model/entities/operator-note.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {EntityInterface} from '../interface/entity-interface'; - -export interface IOperatorNote extends EntityInterface { - operator_id: number; - operator_contact_id: number; - user_id: number; - gender: string; - firstname: string; - lastname: string; - email: string; - phone_no: string; - mobile_no: string; - fax_no: string; - department: string; - title: string; - comment: string; - note_date: string; - creation_date: string; - creation_user_id: number; - creation_user_firstname: string; - creation_user_lastname: string; -} diff --git a/httpdocs/plp-angular/src/app/model/entities/operator.ts b/httpdocs/plp-angular/src/app/model/entities/operator.ts deleted file mode 100644 index e0eddd4..0000000 --- a/httpdocs/plp-angular/src/app/model/entities/operator.ts +++ /dev/null @@ -1,29 +0,0 @@ -import {EntityInterface} from '../interface/entity-interface'; -import {IOperatorContact} from './operator-contact'; -import {IOperatorNote} from './operator-note'; -import {IOperatorMeeting} from './operator-meeting'; - -export interface IOperator extends EntityInterface { - old_plp_id: string; - name: string; - name_additional: string; - street: string; - street_no: string; - zip: string; - city: string; - country_id: number; - url: string; - email: string; - phone_no: string; - mobile_no: string; - fax_no: string; - comment: string; - tax_no: string; - invoice_mode: string; - invoice_comment: string; - invoice_key: string; - active: boolean; - v_operator_contacts: IOperatorContact[]; - v_operator_notes: IOperatorNote[]; - v_operator_meetings: IOperatorMeeting[]; -} diff --git a/httpdocs/plp-angular/src/app/model/entities/production-contact.ts b/httpdocs/plp-angular/src/app/model/entities/production-contact.ts deleted file mode 100644 index a1f4bff..0000000 --- a/httpdocs/plp-angular/src/app/model/entities/production-contact.ts +++ /dev/null @@ -1,21 +0,0 @@ -import {EntityInterface} from '../interface/entity-interface'; - -export interface IProductionContact extends EntityInterface { - production_id: string; - gender: string; - firstname: string; - lastname: string; - email: string; - phone_no: string; - mobile_no: string; - fax_no: string; - department: string; - date_of_birth: string; - comment: string; - street: string; - street_no: string; - zip: string; - city: string; - country_id: number; - is_xmas_mail_recipient: boolean; -} diff --git a/httpdocs/plp-angular/src/app/model/entities/production-meeting-participant.ts b/httpdocs/plp-angular/src/app/model/entities/production-meeting-participant.ts deleted file mode 100644 index 8a05195..0000000 --- a/httpdocs/plp-angular/src/app/model/entities/production-meeting-participant.ts +++ /dev/null @@ -1,6 +0,0 @@ -import {EntityInterface} from '../interface/entity-interface'; - -export interface IProductionMeetingParticipant extends EntityInterface { - production_meeting_id: number; - participant_user_id: number; -} diff --git a/httpdocs/plp-angular/src/app/model/entities/production-meeting.ts b/httpdocs/plp-angular/src/app/model/entities/production-meeting.ts deleted file mode 100644 index 1867a5c..0000000 --- a/httpdocs/plp-angular/src/app/model/entities/production-meeting.ts +++ /dev/null @@ -1,33 +0,0 @@ -import {EntityInterface} from '../interface/entity-interface'; -import {IProductionMeetingParticipant} from './production-meeting-participant'; - -export interface IProductionMeeting extends EntityInterface { - production_id: number; - creation_user_id: number; - owner_user_id: number; - meeting_type_id: number; - title: string; - description: string; - start_date: string; - end_date: string; - production_contact_id: number; - gender: string; - firstname: string; - lastname: string; - email: string; - phone_no: string; - mobile_no: string; - department: string; - street: string; - street_no: string; - zip: string; - city: string; - country_id: number; - report: string; - first_reminder_sent: boolean; - second_reminder_sent: boolean; - report_reminder_sent: boolean; - creation_date: string; - v_participants: IProductionMeetingParticipant[]; - v_is_editable: boolean; -} diff --git a/httpdocs/plp-angular/src/app/model/entities/production-note.ts b/httpdocs/plp-angular/src/app/model/entities/production-note.ts deleted file mode 100644 index 30a234c..0000000 --- a/httpdocs/plp-angular/src/app/model/entities/production-note.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {EntityInterface} from '../interface/entity-interface'; - -export interface IProductionNote extends EntityInterface { - production_id: number; - production_contact_id: number; - user_id: number; - gender: string; - firstname: string; - lastname: string; - email: string; - phone_no: string; - mobile_no: string; - fax_no: string; - department: string; - title: string; - comment: string; - note_date: string; - creation_date: string; - creation_user_id: number; - creation_user_firstname: string; - creation_user_lastname: string; -} diff --git a/httpdocs/plp-angular/src/app/model/entities/production.ts b/httpdocs/plp-angular/src/app/model/entities/production.ts deleted file mode 100644 index b255445..0000000 --- a/httpdocs/plp-angular/src/app/model/entities/production.ts +++ /dev/null @@ -1,29 +0,0 @@ -import {EntityInterface} from '../interface/entity-interface'; -import {IProductionContact} from './production-contact'; -import {IProductionNote} from './production-note'; -import {IProductionMeeting} from './production-meeting'; - -export interface IProduction extends EntityInterface { - old_plp_id: string; - name: string; - name_additional: string; - street: string; - street_no: string; - zip: string; - city: string; - country_id: number; - url: string; - email: string; - phone_no: string; - mobile_no: string; - fax_no: string; - comment: string; - tax_no: string; - invoice_mode: string; - invoice_comment: string; - invoice_key: string; - active: boolean; - v_production_contacts: IProductionContact[]; - v_production_notes: IProductionNote[]; - v_production_meetings: IProductionMeeting[]; -} diff --git a/httpdocs/plp-angular/src/app/model/entities/service-contact.ts b/httpdocs/plp-angular/src/app/model/entities/service-contact.ts deleted file mode 100644 index 2ce6eb8..0000000 --- a/httpdocs/plp-angular/src/app/model/entities/service-contact.ts +++ /dev/null @@ -1,21 +0,0 @@ -import {EntityInterface} from '../interface/entity-interface'; - -export interface IServiceContact extends EntityInterface { - service_id: string; - gender: string; - firstname: string; - lastname: string; - email: string; - phone_no: string; - mobile_no: string; - fax_no: string; - department: string; - date_of_birth: string; - comment: string; - street: string; - street_no: string; - zip: string; - city: string; - country_id: number; - is_xmas_mail_recipient: boolean; -} diff --git a/httpdocs/plp-angular/src/app/model/entities/service-meeting-participant.ts b/httpdocs/plp-angular/src/app/model/entities/service-meeting-participant.ts deleted file mode 100644 index c2aa999..0000000 --- a/httpdocs/plp-angular/src/app/model/entities/service-meeting-participant.ts +++ /dev/null @@ -1,6 +0,0 @@ -import {EntityInterface} from '../interface/entity-interface'; - -export interface IServiceMeetingParticipant extends EntityInterface { - service_meeting_id: number; - participant_user_id: number; -} diff --git a/httpdocs/plp-angular/src/app/model/entities/service-meeting.ts b/httpdocs/plp-angular/src/app/model/entities/service-meeting.ts deleted file mode 100644 index f1b44d0..0000000 --- a/httpdocs/plp-angular/src/app/model/entities/service-meeting.ts +++ /dev/null @@ -1,33 +0,0 @@ -import {EntityInterface} from '../interface/entity-interface'; -import {IServiceMeetingParticipant} from './service-meeting-participant'; - -export interface IServiceMeeting extends EntityInterface { - service_id: number; - creation_user_id: number; - owner_user_id: number; - meeting_type_id: number; - title: string; - description: string; - start_date: string; - end_date: string; - service_contact_id: number; - gender: string; - firstname: string; - lastname: string; - email: string; - phone_no: string; - mobile_no: string; - department: string; - street: string; - street_no: string; - zip: string; - city: string; - country_id: number; - report: string; - first_reminder_sent: boolean; - second_reminder_sent: boolean; - report_reminder_sent: boolean; - creation_date: string; - v_participants: IServiceMeetingParticipant[]; - v_is_editable: boolean; -} diff --git a/httpdocs/plp-angular/src/app/model/entities/service-note.ts b/httpdocs/plp-angular/src/app/model/entities/service-note.ts deleted file mode 100644 index 8562c6d..0000000 --- a/httpdocs/plp-angular/src/app/model/entities/service-note.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {EntityInterface} from '../interface/entity-interface'; - -export interface IServiceNote extends EntityInterface { - service_id: number; - service_contact_id: number; - user_id: number; - gender: string; - firstname: string; - lastname: string; - email: string; - phone_no: string; - mobile_no: string; - fax_no: string; - department: string; - title: string; - comment: string; - note_date: string; - creation_date: string; - creation_user_id: number; - creation_user_firstname: string; - creation_user_lastname: string; -} diff --git a/httpdocs/plp-angular/src/app/model/entities/service.ts b/httpdocs/plp-angular/src/app/model/entities/service.ts deleted file mode 100644 index 871b83b..0000000 --- a/httpdocs/plp-angular/src/app/model/entities/service.ts +++ /dev/null @@ -1,29 +0,0 @@ -import {EntityInterface} from '../interface/entity-interface'; -import {IServiceContact} from './service-contact'; -import {IServiceNote} from './service-note'; -import {IServiceMeeting} from './service-meeting'; - -export interface IService extends EntityInterface { - old_plp_id: string; - name: string; - name_additional: string; - street: string; - street_no: string; - zip: string; - city: string; - country_id: number; - url: string; - email: string; - phone_no: string; - mobile_no: string; - fax_no: string; - comment: string; - tax_no: string; - invoice_mode: string; - invoice_comment: string; - invoice_key: string; - active: boolean; - v_service_contacts: IServiceContact[]; - v_service_notes: IServiceNote[]; - v_service_meetings: IServiceMeeting[]; -} diff --git a/httpdocs/plp-angular/src/app/model/interface/meeting-interface.ts b/httpdocs/plp-angular/src/app/model/interface/meeting-interface.ts new file mode 100644 index 0000000..ba6cfb9 --- /dev/null +++ b/httpdocs/plp-angular/src/app/model/interface/meeting-interface.ts @@ -0,0 +1,13 @@ +export interface MeetingInterface { + creation_user_id: number; + owner_user_id: number; + title: string; + description: string; + start_date: string; + end_date: string; + report: string; + first_reminder_sent: boolean; + second_reminder_sent: boolean; + report_reminder_sent: boolean; + creation_date: string; +} \ No newline at end of file diff --git a/httpdocs/plp-angular/src/app/model/virtual/meeting-data.ts b/httpdocs/plp-angular/src/app/model/virtual/meeting-data.ts index 3c9f121..035749b 100644 --- a/httpdocs/plp-angular/src/app/model/virtual/meeting-data.ts +++ b/httpdocs/plp-angular/src/app/model/virtual/meeting-data.ts @@ -1,13 +1,7 @@ import {ICustomerMeeting} from '../entities/customer-meeting'; import {IInternalMeeting} from '../entities/internal-meeting'; -import {IOperatorMeeting} from '../entities/operator-meeting'; -import {IProductionMeeting} from '../entities/production-meeting'; -import {IServiceMeeting} from '../entities/service-meeting'; export interface IMeetingData { customerMeetings: ICustomerMeeting[]; internalMeetings: IInternalMeeting[]; - operatorMeetings: IOperatorMeeting[]; - productionMeetings: IProductionMeeting[]; - serviceMeetings: IServiceMeeting[]; } diff --git a/httpdocs/plp-angular/src/app/model/virtual/operator-data.ts b/httpdocs/plp-angular/src/app/model/virtual/operator-data.ts deleted file mode 100644 index 7c0e24e..0000000 --- a/httpdocs/plp-angular/src/app/model/virtual/operator-data.ts +++ /dev/null @@ -1,9 +0,0 @@ -import {IOperator} from '../entities/operator'; -import {IOperatorContact} from '../entities/operator-contact'; -import {IOperatorMeeting} from '../entities/operator-meeting'; - -export interface IOperatorData { - operators: IOperator[]; - operatorContacts: IOperatorContact[]; - operatorMeetings: IOperatorMeeting[]; -} diff --git a/httpdocs/plp-angular/src/app/model/virtual/production-data.ts b/httpdocs/plp-angular/src/app/model/virtual/production-data.ts deleted file mode 100644 index 7e89aba..0000000 --- a/httpdocs/plp-angular/src/app/model/virtual/production-data.ts +++ /dev/null @@ -1,9 +0,0 @@ -import {IProduction} from '../entities/production'; -import {IProductionContact} from '../entities/production-contact'; -import {IProductionMeeting} from '../entities/production-meeting'; - -export interface IProductionData { - productions: IProduction[]; - productionContacts: IProductionContact[]; - productionMeetings: IProductionMeeting[]; -} diff --git a/httpdocs/plp-angular/src/app/model/virtual/service-data.ts b/httpdocs/plp-angular/src/app/model/virtual/service-data.ts deleted file mode 100644 index 62888b1..0000000 --- a/httpdocs/plp-angular/src/app/model/virtual/service-data.ts +++ /dev/null @@ -1,9 +0,0 @@ -import {IService} from '../entities/service'; -import {IServiceContact} from '../entities/service-contact'; -import {IServiceMeeting} from '../entities/service-meeting'; - -export interface IServiceData { - services: IService[]; - serviceContacts: IServiceContact[]; - serviceMeetings: IServiceMeeting[]; -} diff --git a/httpdocs/plp-angular/src/app/services/customer.service.ts b/httpdocs/plp-angular/src/app/services/customer.service.ts index 16f0b3a..74d8fb4 100644 --- a/httpdocs/plp-angular/src/app/services/customer.service.ts +++ b/httpdocs/plp-angular/src/app/services/customer.service.ts @@ -37,24 +37,23 @@ export class CustomerService { /** * Handles service data updates - * @param {IAppServiceData} serviceData */ public handleServiceData(serviceData: IAppServiceData = null): void { - if (!null === serviceData) { } } {) { - const bSetNewData = false; - const updatedCustomers: ICustomer[] = this.customers.getValue(); - const updatedCustomerContacts: ICustomerContact[] = this.customerContacts.getValue(); - if (!null === serviceData.customers) { } } {) { + if (null !== serviceData) { + let bSetNewData = false; + let updatedCustomers: ICustomer[] = this.customers.getValue(); + let updatedCustomerContacts: ICustomerContact[] = this.customerContacts.getValue(); + if (null !== serviceData.customers) { // Update service data updatedCustomers = ServiceHelper.updateServiceEntries(serviceData.customers, this.customers.getValue()) as ICustomer[]; bSetNewData = true; } - if (!null === serviceData.customerContacts) { } } {) { + if (null !== serviceData.customerContacts) { // Update service data updatedCustomerContacts = ServiceHelper.updateServiceEntries(serviceData.customerContacts, this.customerContacts.getValue()) as ICustomerContact[]; bSetNewData = true; } - if (bSetNewData) { + if (bSetNewData) { this.setCustomerServiceData(updatedCustomers, updatedCustomerContacts); } } @@ -62,10 +61,8 @@ export class CustomerService { /** * Sets customer service and cache data - * @param customers - * @param customerContacts */ - private setCustomerServiceData(customers: ICustomer[], customerContacts: ICustomerContact[]); { + private setCustomerServiceData(customers: ICustomer[], customerContacts: ICustomerContact[]) { this.customers.next(customers); this.customerContacts.next(customerContacts); } @@ -73,34 +70,29 @@ export class CustomerService { /** * Reset service data (on logout) */ - public resetCustomerServiceData(); { + public resetCustomerServiceData() { this.customers.next(null); this.customerContacts.next(null); } /** * Returns observable of customers - * @returns {Observable} */ - public getCustomers$(); : Observable < ICustomer[] > { + public getCustomers$(): Observable { return this.dataCustomers$; }; /** * Returns observable of customer contacts - * @returns {Observable} */ - public getCustomerContacts$(); : Observable < ICustomerContact[] > { + public getCustomerContacts$(): Observable { return this.dataCustomerContacts$; - }; - - + } /** * Gets all customers - * @returns {Observable} */ - public apiGetCustomerData(); : void { + public apiGetCustomerData(): void { this.httpService.apiGet('get-customer-data').subscribe( data => { const res: ICustomerData = data.result_data as ICustomerData; @@ -108,114 +100,96 @@ export class CustomerService { }, error => {} ); - }; + } /** * Returns full customer - * @param {number} customerId - * @returns {Observable} */ - public apiGetCustomerFull(customerId: number); : Observable < IApiResponse > { + public apiGetCustomerFull(customerId: number): Observable { const formData = new FormData(); formData.append('customerId', JSON.stringify(customerId)); return this.httpService.apiPost('get-customer-full', formData); - }; + } /** * Create customer - * @param {ICustomer} customer - * @returns {Observable} */ - public apiCreateCustomer(customer: ICustomer); : Observable < IApiResponse > { + public apiCreateCustomer(customer: ICustomer): Observable { const formData = new FormData(); formData.append('customer', JSON.stringify(customer)); return this.httpService.apiPost('create-customer', formData); - }; + } /** * Edit customer - * @param {ICustomer} customer - * @returns {Observable} */ - public apiEditCustomer(customer: ICustomer); : Observable < IApiResponse > { + public apiEditCustomer(customer: ICustomer): Observable { const formData = new FormData(); formData.append('customer', JSON.stringify(customer)); return this.httpService.apiPost('edit-customer', formData); - }; + } /** * Create customer contact - * @param customerContact */ - public apiCreateCustomerContact(customerContact: ICustomerContact); : Observable < IApiResponse > { + public apiCreateCustomerContact(customerContact: ICustomerContact): Observable { const formData = new FormData(); formData.append('customerContact', JSON.stringify(customerContact)); return this.httpService.apiPost('create-customer-contact', formData); - }; + } /** * Edit customer contact - * @param {ICustomerContact} customerContact - * @returns {Observable} */ - public apiEditCustomerContact(customerContact: ICustomerContact); : Observable < IApiResponse > { + public apiEditCustomerContact(customerContact: ICustomerContact): Observable { const formData = new FormData(); formData.append('customerContact', JSON.stringify(customerContact)); return this.httpService.apiPost('edit-customer-contact', formData); - }; + } /** * Delete customer contact - * @param {number} customerContactId - * @returns {Observable} */ - public apiDeleteCustomerContact(customerContactId: number); : Observable < IApiResponse > { + public apiDeleteCustomerContact(customerContactId: number): Observable { const formData = new FormData(); formData.append('customerContactId', JSON.stringify(customerContactId)); return this.httpService.apiPost('delete-customer-contact', formData); - }; + } /** * Create customer note - * @param {ICustomerNote} customerNote - * @returns {Observable} */ - public apiCreateCustomerNote(customerNote: ICustomerNote); : Observable < IApiResponse > { + public apiCreateCustomerNote(customerNote: ICustomerNote): Observable { const formData = new FormData(); formData.append('customerNote', JSON.stringify(customerNote)); return this.httpService.apiPost('create-customer-note', formData); - }; + } /** * Edit customer note - * @param {ICustomerNote} customerNote - * @returns {Observable} */ - public apiEditCustomerNote(customerNote: ICustomerNote); : Observable < IApiResponse > { + public apiEditCustomerNote(customerNote: ICustomerNote): Observable { const formData = new FormData(); formData.append('customerNote', JSON.stringify(customerNote)); return this.httpService.apiPost('edit-customer-note', formData); - }; + } /** * Delete customer note - * @param {number} customerNoteId - * @returns {Observable} */ - public apiDeleteCustomerNote(customerNoteId: number); : Observable < IApiResponse > { + public apiDeleteCustomerNote(customerNoteId: number): Observable { const formData = new FormData(); formData.append('customerNoteId', JSON.stringify(customerNoteId)); return this.httpService.apiPost('delete-customer-note', formData); - }; + } /** * Edit customer meeting report - * @param customerMeetingId */ - public apiEditCustomerMeetingReport(customerMeetingId: number, customerMeetingReport: string); : Observable < IApiResponse > { + public apiEditCustomerMeetingReport(customerMeetingId: number, customerMeetingReport: string): Observable { const formData = new FormData(); formData.append('customerMeetingId', JSON.stringify(customerMeetingId)); formData.append('customerMeetingReport', JSON.stringify(customerMeetingReport)); return this.httpService.apiPost('edit-customer-meeting-report', formData); - }; + } } diff --git a/httpdocs/plp-angular/src/app/services/http.service.ts b/httpdocs/plp-angular/src/app/services/http.service.ts index 88aae5b..7ec439c 100644 --- a/httpdocs/plp-angular/src/app/services/http.service.ts +++ b/httpdocs/plp-angular/src/app/services/http.service.ts @@ -3,7 +3,6 @@ import {HttpClient, HttpErrorResponse} from '@angular/common/http'; import {BehaviorSubject, Observable} from 'rxjs'; import {environment} from '../../environments/environment'; import {finalize, tap} from 'rxjs/operators'; -import {isUndefined} from 'util'; import {MessageService} from './message.service'; import {IApiResponse} from '../model/virtual/api-response'; import {CacheService} from './cache.service'; @@ -15,9 +14,6 @@ export class HttpService { /** * Constructor - * @param {HttpClient} httpClient - * @param {MessageService} messageService - * @param {RendererFactory2} rendererFactory */ constructor(private httpClient: HttpClient, private messageService: MessageService, private rendererFactory: RendererFactory2) { this.renderer = this.rendererFactory.createRenderer(null, null); @@ -34,7 +30,6 @@ export class HttpService { /** * Returns location observable - * @returns {Observable} */ public getServiceData$(): Observable { return this.dataServiceData$; @@ -42,32 +37,29 @@ export class HttpService { /** * Processes optional cache service data delivered by call - * @param data */ private checkMessages(data: IApiResponse): void { // Show optional success message - if (!isUndefined(data.success_code) && null !== data.success_code && data.success_code !== 0) { + if (undefined !== data.success_code && null !== data.success_code && data.success_code !== 0) { this.messageService.setSuccess(data.success_code, data.success_msg); } // Show optional info message - if (!isUndefined(data.info_code) && null !== data.info_code && data.info_code !== 0) { + if (undefined !== data.info_code && null !== data.info_code && data.info_code !== 0) { this.messageService.setInfoCode(data.info_code, data.info_msg); } // Show optional error message - if (!isUndefined(data.error_code) && null !== data.error_code && data.error_code !== 0) { + if (undefined !== data.error_code && null !== data.error_code && data.error_code !== 0) { this.messageService.setError(data.error_code, data.error_msg); } } /** * Handles http error repsonse - * @param {HttpErrorResponse} error - * @param {boolean} serviceDataCheck */ private handleError(error: HttpErrorResponse, serviceDataCheck: boolean): void { - if (error.status == HttpService.AUTHENTICATION_ERROR_CODE) { + if (error.status === HttpService.AUTHENTICATION_ERROR_CODE) { this.messageService.setError(HttpService.AUTHENTICATION_ERROR_CODE, HttpService.AUTHENTICATION_ERROR_MESSAGE); } else { const response: IApiResponse = error.error as IApiResponse; @@ -80,7 +72,6 @@ export class HttpService { /** * Toggles loader icon - * @param show */ public showLoader(show: boolean): void { show ? @@ -89,12 +80,7 @@ export class HttpService { } /** - * - * @param {string} urlResource - * @param {number} id - * @param {boolean} serviceDataCheck - * @param {boolean} loaderIcon - * @returns {Observable} + * Api get call */ public apiGet(urlResource: string, id: number = null, serviceDataCheck: boolean = true, loaderIcon: boolean = true): Observable { this.showLoader(true); @@ -122,11 +108,6 @@ export class HttpService { /** * Post api call - * @param {string} urlResource - * @param {FormData} formData - * @param {boolean} serviceDataCheck - * @param {boolean} withLoaderIcon - * @returns {Observable} */ public apiPost(urlResource: string, formData: FormData, serviceDataCheck: boolean = true, withLoaderIcon: boolean = true): Observable { if (withLoaderIcon) { @@ -159,9 +140,6 @@ export class HttpService { /** * Post call for excel files - * @param {string} urlResource - * @param {FormData} formData - * @returns {Observable} */ public apiFilePost(urlResource: string, formData: FormData): Observable { this.showLoader(true); diff --git a/httpdocs/plp-angular/src/app/services/meeting.service.ts b/httpdocs/plp-angular/src/app/services/meeting.service.ts index 773253f..15fbbd3 100644 --- a/httpdocs/plp-angular/src/app/services/meeting.service.ts +++ b/httpdocs/plp-angular/src/app/services/meeting.service.ts @@ -7,13 +7,9 @@ import {IApiResponse} from '../model/virtual/api-response'; import {IAppServiceData} from '../model/virtual/app-service-data'; import {saveAs} from 'file-saver'; import {ServiceHelper} from '../utils/service-helper'; -import {ICustomerNote} from '../model/entities/customer-note'; import {ICustomerMeeting} from '../model/entities/customer-meeting'; import {IInternalMeeting} from '../model/entities/internal-meeting'; import {IMeetingData} from '../model/virtual/meeting-data'; -import {IOperatorMeeting} from '../model/entities/operator-meeting'; -import {IProductionMeeting} from '../model/entities/production-meeting'; -import {IServiceMeeting} from '../model/entities/service-meeting'; @Injectable() export class MeetingService { @@ -22,12 +18,6 @@ export class MeetingService { private customerMeetings$: Observable; private internalMeetings: BehaviorSubject; private internalMeetings$: Observable; - private operatorMeetings: BehaviorSubject; - private operatorMeetings$: Observable; - private productionMeetings: BehaviorSubject; - private productionMeetings$: Observable; - private serviceMeetings: BehaviorSubject; - private serviceMeetings$: Observable; private meetingData: BehaviorSubject; private meetingData$: Observable; private serviceDataSub: Subscription; @@ -37,12 +27,6 @@ export class MeetingService { this.customerMeetings$ = this.customerMeetings.asObservable(); this.internalMeetings = new BehaviorSubject(null); this.internalMeetings$ = this.internalMeetings.asObservable(); - this.operatorMeetings = new BehaviorSubject(null); - this.operatorMeetings$ = this.operatorMeetings.asObservable(); - this.productionMeetings = new BehaviorSubject(null); - this.productionMeetings$ = this.productionMeetings.asObservable(); - this.serviceMeetings = new BehaviorSubject(null); - this.serviceMeetings$ = this.serviceMeetings.asObservable(); this.meetingData = new BehaviorSubject(null); this.meetingData$ = this.meetingData.asObservable(); @@ -58,48 +42,27 @@ export class MeetingService { /** * Handles service data updates - * @param {IAppServiceData} serviceData */ public handleServiceData(serviceData: IAppServiceData = null): void { - if (!null === serviceData) { } } {) { - const bSetNewData = false; - const updatedCustomerMeetings: ICustomerMeeting[] = this.customerMeetings.getValue(); - const updatedInternalMeetings: IInternalMeeting[] = this.internalMeetings.getValue(); - const updatedOperatorMeetings: IOperatorMeeting[] = this.operatorMeetings.getValue(); - const updatedProductionMeetings: IProductionMeeting[] = this.productionMeetings.getValue(); - const updatedServiceMeetings: IServiceMeeting[] = this.serviceMeetings.getValue(); - if (!null === serviceData.customerMeetings) { } } {) { + if (null !== serviceData) { + let bSetNewData = false; + let updatedCustomerMeetings: ICustomerMeeting[] = this.customerMeetings.getValue(); + let updatedInternalMeetings: IInternalMeeting[] = this.internalMeetings.getValue(); + if (null !== serviceData.customerMeetings) { // Update service data updatedCustomerMeetings = ServiceHelper.updateServiceEntries(serviceData.customerMeetings, this.customerMeetings.getValue()) as ICustomerMeeting[]; bSetNewData = true; } - if (!null === serviceData.internalMeetings) { } } {) { + if (null !== serviceData.internalMeetings) { // Update service data updatedInternalMeetings = ServiceHelper.updateServiceEntries(serviceData.internalMeetings, this.internalMeetings.getValue()) as IInternalMeeting[]; bSetNewData = true; } - if (!null === serviceData.operatorMeetings) { } } {) { - // Update service data - updatedOperatorMeetings = ServiceHelper.updateServiceEntries(serviceData.operatorMeetings, this.operatorMeetings.getValue()) as IOperatorMeeting[]; - bSetNewData = true; - } - if (!null === serviceData.productionMeetings) { } } {) { - // Update service data - updatedProductionMeetings = ServiceHelper.updateServiceEntries(serviceData.productionMeetings, this.productionMeetings.getValue()) as IProductionMeeting[]; - bSetNewData = true; - } - if (!null === serviceData.operatorMeetings) { } } {) { - // Update service data - updatedServiceMeetings = ServiceHelper.updateServiceEntries(serviceData.serviceMeetings, this.serviceMeetings.getValue()) as IServiceMeeting[]; - bSetNewData = true; - } - if (bSetNewData) { + + if (bSetNewData) { const meetingData: {} = { customerMeetings: updatedCustomerMeetings, internalMeetings: updatedInternalMeetings, - operatorMeetings: updatedOperatorMeetings, - productionMeetings: updatedProductionMeetings, - serviceMeetings: updatedServiceMeetings, }; this.setMeetingServiceData(meetingData as IMeetingData); } @@ -108,58 +71,38 @@ export class MeetingService { /** * Sets customer service and cache data - * @param meetingData */ - private setMeetingServiceData(meetingData: IMeetingData); { + private setMeetingServiceData(meetingData: IMeetingData) { this.meetingData.next(meetingData); this.customerMeetings.next(meetingData.customerMeetings); this.internalMeetings.next(meetingData.internalMeetings); - this.operatorMeetings.next(meetingData.operatorMeetings); - this.productionMeetings.next(meetingData.productionMeetings); - this.serviceMeetings.next(meetingData.serviceMeetings); } /** * Reset service data (on logout) */ - public resetMeetingServiceData(); { + public resetMeetingServiceData() { this.meetingData.next(null); this.customerMeetings.next(null); this.internalMeetings.next(null); - this.operatorMeetings.next(null); - this.productionMeetings.next(null); - this.serviceMeetings.next(null); } - public getMeetingsData$(); : Observable < IMeetingData > { + public getMeetingsData$(): Observable { return this.meetingData$; - }; + } - public getCustomerMeetings$(); : Observable < ICustomerMeeting[] > { + public getCustomerMeetings$(): Observable { return this.customerMeetings$; - }; + } - public getInternalMeetings$(); : Observable < IInternalMeeting[] > { + public getInternalMeetings$(): Observable { return this.internalMeetings$; - }; - - public getOperatorMeetings$(); : Observable < IOperatorMeeting[] > { - return this.operatorMeetings$; - }; - - public getProductionMeetings$(); : Observable < IProductionMeeting[] > { - return this.productionMeetings$; - }; - - public getServiceMeetings$(); : Observable < IServiceMeeting[] > { - return this.serviceMeetings$; - }; + } /** - * Gets all customers - * @returns {Observable} + * Gets meeting data */ - public apiGetMeetingData(); : void { + public apiGetMeetingData(): void { this.httpService.apiGet('get-meeting-data').subscribe( data => { const res: IMeetingData = data.result_data as IMeetingData; @@ -167,280 +110,104 @@ export class MeetingService { }, error => {} ); - }; + } /** * Create customer meeting - * @param {ICustomerNote} customerMeeting - * @returns {Observable} */ - public apiCreateCustomerMeeting(customerMeeting: ICustomerMeeting); : Observable < IApiResponse > { + public apiCreateCustomerMeeting(customerMeeting: ICustomerMeeting): Observable { const formData = new FormData(); formData.append('customerMeeting', JSON.stringify(customerMeeting)); return this.httpService.apiPost('create-customer-meeting', formData); - }; + } /** * Edit customer meeting - * @param {ICustomerNote} customerMeeting - * @returns {Observable} */ - public apiEditCustomerMeeting(customerMeeting: ICustomerMeeting); : Observable < IApiResponse > { + public apiEditCustomerMeeting(customerMeeting: ICustomerMeeting): Observable { const formData = new FormData(); formData.append('customerMeeting', JSON.stringify(customerMeeting)); return this.httpService.apiPost('edit-customer-meeting', formData); - }; + } /** * Delete customer meeting - * @param {number} customerMeetingId - * @returns {Observable} */ - public apiDeleteCustomerMeeting(customerMeetingId: number); : Observable < IApiResponse > { + public apiDeleteCustomerMeeting(customerMeetingId: number): Observable { const formData = new FormData(); formData.append('customerMeetingId', JSON.stringify(customerMeetingId)); return this.httpService.apiPost('delete-customer-meeting', formData); - }; + } /** * Checks customer meeting report - * @param customerMeetingId */ - public apiCheckCustomerMeetingReport(customerMeetingId: number); : Observable < IApiResponse > { + public apiCheckCustomerMeetingReport(customerMeetingId: number): Observable { const formData = new FormData(); formData.append('customerMeetingId', JSON.stringify(customerMeetingId)); return this.httpService.apiPost('check-customer-meeting-report', formData, true); - }; + } /** * Edit customer meeting report - * @param customerMeetingId - * @param customerMeetingReport */ - public apiEditCustomerMeetingReport(customerMeetingId: number, customerMeetingReport: string); : Observable < IApiResponse > { + public apiEditCustomerMeetingReport(customerMeetingId: number, customerMeetingReport: string): Observable { const formData = new FormData(); formData.append('customerMeetingId', JSON.stringify(customerMeetingId)); formData.append('customerMeetingReport', JSON.stringify(customerMeetingReport)); return this.httpService.apiPost('edit-customer-meeting-report', formData); - }; + } /** * Create internal meeting - * @param internalMeeting */ - public apiCreateInternalMeeting(internalMeeting: IInternalMeeting); : Observable < IApiResponse > { + public apiCreateInternalMeeting(internalMeeting: IInternalMeeting): Observable { const formData = new FormData(); formData.append('internalMeeting', JSON.stringify(internalMeeting)); return this.httpService.apiPost('create-internal-meeting', formData); - }; + } /** * Edit internal meeting - * @param internalMeeting */ - public apiEditInternalMeeting(internalMeeting: IInternalMeeting); : Observable < IApiResponse > { + public apiEditInternalMeeting(internalMeeting: IInternalMeeting): Observable { const formData = new FormData(); formData.append('internalMeeting', JSON.stringify(internalMeeting)); return this.httpService.apiPost('edit-internal-meeting', formData); - }; + } /** * Delete internal meeting - * @param internalMeetingId */ - public apiDeleteInternalMeeting(internalMeetingId: number); : Observable < IApiResponse > { + public apiDeleteInternalMeeting(internalMeetingId: number): Observable { const formData = new FormData(); formData.append('internalMeetingId', JSON.stringify(internalMeetingId)); return this.httpService.apiPost('delete-internal-meeting', formData); - }; + } /** * Checks internal meeting report - * @param internalMeetingId */ - public apiCheckInternalMeetingReport(internalMeetingId: number); : Observable < IApiResponse > { + public apiCheckInternalMeetingReport(internalMeetingId: number): Observable { const formData = new FormData(); formData.append('internalMeetingId', JSON.stringify(internalMeetingId)); return this.httpService.apiPost('check-internal-meeting-report', formData, false); - }; + } /** * Edit internal meeting report - * @param internalMeetingId - * @param internalMeetingReport */ - public apiEditInternalMeetingReport(internalMeetingId: number, internalMeetingReport: string); : Observable < IApiResponse > { + public apiEditInternalMeetingReport(internalMeetingId: number, internalMeetingReport: string): Observable { const formData = new FormData(); formData.append('internalMeetingId', JSON.stringify(internalMeetingId)); formData.append('internalMeetingReport', JSON.stringify(internalMeetingReport)); return this.httpService.apiPost('edit-internal-meeting-report', formData); - }; - - /** - * Create operator meeting - * @param operatorMeeting - */ - public apiCreateOperatorMeeting(operatorMeeting: IOperatorMeeting); : Observable < IApiResponse > { - const formData = new FormData(); - formData.append('operatorMeeting', JSON.stringify(operatorMeeting)); - return this.httpService.apiPost('create-operator-meeting', formData); - }; - - /** - * Edit operator meeting - * @param operatorMeeting - */ - public apiEditOperatorMeeting(operatorMeeting: IOperatorMeeting); : Observable < IApiResponse > { - const formData = new FormData(); - formData.append('operatorMeeting', JSON.stringify(operatorMeeting)); - return this.httpService.apiPost('edit-operator-meeting', formData); - }; - - /** - * Delete operator meeting - * @param {number} operatorMeetingId - * @returns {Observable} - */ - public apiDeleteOperatorMeeting(operatorMeetingId: number); : Observable < IApiResponse > { - const formData = new FormData(); - formData.append('operatorMeetingId', JSON.stringify(operatorMeetingId)); - return this.httpService.apiPost('delete-operator-meeting', formData); - }; - - /** - * Checks operator meeting report - * @param operatorMeetingId - */ - public apiCheckOperatorMeetingReport(operatorMeetingId: number); : Observable < IApiResponse > { - const formData = new FormData(); - formData.append('operatorMeetingId', JSON.stringify(operatorMeetingId)); - return this.httpService.apiPost('check-operator-meeting-report', formData, true); - }; - - /** - * Edit operator meeting report - * @param operatorMeetingId - * @param operatorMeetingReport - */ - public apiEditOperatorMeetingReport(operatorMeetingId: number, operatorMeetingReport: string); : Observable < IApiResponse > { - const formData = new FormData(); - formData.append('operatorMeetingId', JSON.stringify(operatorMeetingId)); - formData.append('operatorMeetingReport', JSON.stringify(operatorMeetingReport)); - return this.httpService.apiPost('edit-operator-meeting-report', formData); - }; - - /** - * Create production meeting - * @param productionMeeting - */ - public apiCreateProductionMeeting(productionMeeting: IProductionMeeting); : Observable < IApiResponse > { - const formData = new FormData(); - formData.append('productionMeeting', JSON.stringify(productionMeeting)); - return this.httpService.apiPost('create-production-meeting', formData); - }; - - /** - * Edit production meeting - * @param productionMeeting - */ - public apiEditProductionMeeting(productionMeeting: IProductionMeeting); : Observable < IApiResponse > { - const formData = new FormData(); - formData.append('productionMeeting', JSON.stringify(productionMeeting)); - return this.httpService.apiPost('edit-production-meeting', formData); - }; - - /** - * Delete production meeting - * @param {number} productionMeetingId - * @returns {Observable} - */ - public apiDeleteProductionMeeting(productionMeetingId: number); : Observable < IApiResponse > { - const formData = new FormData(); - formData.append('productionMeetingId', JSON.stringify(productionMeetingId)); - return this.httpService.apiPost('delete-production-meeting', formData); - }; - - /** - * Checks production meeting report - * @param productionMeetingId - */ - public apiCheckProductionMeetingReport(productionMeetingId: number); : Observable < IApiResponse > { - const formData = new FormData(); - formData.append('productionMeetingId', JSON.stringify(productionMeetingId)); - return this.httpService.apiPost('check-production-meeting-report', formData, true); - }; - - /** - * Edit production meeting report - * @param productionMeetingId - * @param productionMeetingReport - */ - public apiEditProductionMeetingReport(productionMeetingId: number, productionMeetingReport: string); : Observable < IApiResponse > { - const formData = new FormData(); - formData.append('productionMeetingId', JSON.stringify(productionMeetingId)); - formData.append('productionMeetingReport', JSON.stringify(productionMeetingReport)); - return this.httpService.apiPost('edit-production-meeting-report', formData); - }; - - /** - * Create service meeting - * @param serviceMeeting - */ - public apiCreateServiceMeeting(serviceMeeting: IServiceMeeting); : Observable < IApiResponse > { - const formData = new FormData(); - formData.append('serviceMeeting', JSON.stringify(serviceMeeting)); - return this.httpService.apiPost('create-service-meeting', formData); - }; - - /** - * Edit service meeting - * @param serviceMeeting - */ - public apiEditServiceMeeting(serviceMeeting: IServiceMeeting); : Observable < IApiResponse > { - const formData = new FormData(); - formData.append('serviceMeeting', JSON.stringify(serviceMeeting)); - return this.httpService.apiPost('edit-service-meeting', formData); - }; - - /** - * Delete service meeting - * @param {number} serviceMeetingId - * @returns {Observable} - */ - public apiDeleteServiceMeeting(serviceMeetingId: number); : Observable < IApiResponse > { - const formData = new FormData(); - formData.append('serviceMeetingId', JSON.stringify(serviceMeetingId)); - return this.httpService.apiPost('delete-service-meeting', formData); - }; - - /** - * Checks production meeting report - * @param serviceMeetingId - */ - public apiCheckServiceMeetingReport(serviceMeetingId: number); : Observable < IApiResponse > { - const formData = new FormData(); - formData.append('serviceMeetingId', JSON.stringify(serviceMeetingId)); - return this.httpService.apiPost('check-service-meeting-report', formData, true); - }; - - /** - * Edit service meeting report - * @param serviceMeetingId - * @param serviceMeetingReport - */ - public apiEditServiceMeetingReport(serviceMeetingId: number, serviceMeetingReport: string); : Observable < IApiResponse > { - const formData = new FormData(); - formData.append('serviceMeetingId', JSON.stringify(serviceMeetingId)); - formData.append('serviceMeetingReport', JSON.stringify(serviceMeetingReport)); - return this.httpService.apiPost('edit-service-meeting-report', formData); - }; + } /** * Returns meeting list as excel - * @param meetingList - * @param fileName */ - public apiExportMeetingList(meetingList: {}[], fileName: string); : void { + public apiExportMeetingList(meetingList: {}[], fileName: string): void { const formData = new FormData(); formData.append('meetingList', JSON.stringify(meetingList)); this.httpService.apiFilePost('export-meeting-list', formData).subscribe( @@ -450,5 +217,5 @@ export class MeetingService { error => { } ); - }; + } } diff --git a/httpdocs/plp-angular/src/app/views/customer-management/customer-contact-list/customer-contact-list.component.html b/httpdocs/plp-angular/src/app/views/customer-management/customer-contact-list/customer-contact-list.component.html index 3f911a5..9a83c32 100644 --- a/httpdocs/plp-angular/src/app/views/customer-management/customer-contact-list/customer-contact-list.component.html +++ b/httpdocs/plp-angular/src/app/views/customer-management/customer-contact-list/customer-contact-list.component.html @@ -15,15 +15,14 @@ [suppressCellSelection]="true" [animateRows]="true" [rowSelection]="rowSelection" - [rowDeselection]="true" (gridReady)="onGridReady($event)" (rowClicked)="rowClicked($event)" >
- + - + diff --git a/httpdocs/plp-angular/src/app/views/customer-management/customer-contact-list/customer-contact-list.component.ts b/httpdocs/plp-angular/src/app/views/customer-management/customer-contact-list/customer-contact-list.component.ts index 2f54abd..0bade80 100644 --- a/httpdocs/plp-angular/src/app/views/customer-management/customer-contact-list/customer-contact-list.component.ts +++ b/httpdocs/plp-angular/src/app/views/customer-management/customer-contact-list/customer-contact-list.component.ts @@ -1,4 +1,4 @@ -import {Component, EventEmitter, OnInit, Output, ViewChild} from '@angular/core'; +import {Component, EventEmitter, NgModule, OnInit, Output, ViewChild} from '@angular/core'; import {AgGridComponent} from '../../../components/ag-grid-component'; import {ICustomer} from '../../../model/entities/customer'; import {ICustomerContact} from '../../../model/entities/customer-contact'; @@ -9,6 +9,7 @@ import {CustomerService} from '../../../services/customer.service'; import {Const} from '../../../utils/const'; import {AppService} from '../../../services/app.service'; import {CommonService} from '../../../services/common.service'; +import {AgGridAngular} from 'ag-grid-angular'; @Component({ selector: 'app-customer-contact-list', @@ -79,7 +80,7 @@ export class CustomerContactListComponent extends AgGridComponent implements OnI */ public generateEntries(): void { this.rowData = []; - if (null !== this.customerContacts) { } } {) { + if (null !== this.customerContacts){ for (let i = 0; i < this.customerContacts.length; i++) { this.rowData.push({ id: this.customerContacts[i].id, @@ -102,7 +103,7 @@ export class CustomerContactListComponent extends AgGridComponent implements OnI * Row is clicked * @param e */ - public rowClicked(e: any); { + public rowClicked(e: any): void { this.modalCustomerContactPersonDetailList.openModal(); this.customerContactPersonDetailList.setData(this.customersById[e.data.customer_id], Utils.deepClone(this.customerContactsById[e.data.id]) as ICustomerContact); } @@ -111,7 +112,7 @@ export class CustomerContactListComponent extends AgGridComponent implements OnI * Edit customer contact * @param customerContact */ - public editCustomerContactFunction(customerContact: ICustomerContact); : void { + public editCustomerContactFunction(customerContact: ICustomerContact): void { this.customerService.apiEditCustomerContact(customerContact).subscribe( data => { this.customerContactPersonDetailList.updateData(data.result_data as ICustomer); @@ -124,7 +125,7 @@ export class CustomerContactListComponent extends AgGridComponent implements OnI * Delete customer contact * @param contactId */ - public deleteCustomerContactFunction(contactId: number); : void { + public deleteCustomerContactFunction(contactId: number): void { this.customerService.apiDeleteCustomerContact(contactId).subscribe( data => { this.modalCustomerContactPersonDetailList.closeModal(); @@ -137,7 +138,7 @@ export class CustomerContactListComponent extends AgGridComponent implements OnI * Shortcut to customer detail * @param customer */ - public shortcutFunction(customer: ICustomer); : void { + public shortcutFunction(customer: ICustomer): void { this.modalCustomerContactPersonDetailList.closeModal(); this.shortcut.emit(customer); }; @@ -145,14 +146,14 @@ export class CustomerContactListComponent extends AgGridComponent implements OnI /** * Export customer contacts pdf */ - public exportCustomerContactsPdf(); : void { + public exportCustomerContactsPdf(): void { this.commonService.apiExportContactsPdf('Kunden_Kontakte', 'customer'); }; /** * Export customer xmas pdf */ - public exportXmasPdf(); : void { + public exportXmasPdf(): void { this.commonService.apiExportXmasPdf('Kunden_Weihnachten', 'customer'); }; } diff --git a/httpdocs/plp-angular/src/app/views/customer-management/customer-list/customer-list.component.html b/httpdocs/plp-angular/src/app/views/customer-management/customer-list/customer-list.component.html index 9e893ac..e9465c6 100644 --- a/httpdocs/plp-angular/src/app/views/customer-management/customer-list/customer-list.component.html +++ b/httpdocs/plp-angular/src/app/views/customer-management/customer-list/customer-list.component.html @@ -15,7 +15,6 @@ [suppressCellSelection]="true" [animateRows]="true" [rowSelection]="rowSelection" - [rowDeselection]="true" [rowClassRules]="rowClassRules" (gridReady)="onGridReady($event)" (rowClicked)="rowClicked($event)" diff --git a/httpdocs/plp-angular/src/app/views/customer-management/customer-management.component.html b/httpdocs/plp-angular/src/app/views/customer-management/customer-management.component.html index e0a764f..d80fd4e 100644 --- a/httpdocs/plp-angular/src/app/views/customer-management/customer-management.component.html +++ b/httpdocs/plp-angular/src/app/views/customer-management/customer-management.component.html @@ -11,7 +11,7 @@
- + - - + +
-
+ diff --git a/httpdocs/plp-angular/src/app/views/customer-management/customer-management.component.ts b/httpdocs/plp-angular/src/app/views/customer-management/customer-management.component.ts index 6567e8f..04b12eb 100644 --- a/httpdocs/plp-angular/src/app/views/customer-management/customer-management.component.ts +++ b/httpdocs/plp-angular/src/app/views/customer-management/customer-management.component.ts @@ -67,7 +67,7 @@ export class CustomerManagementComponent extends AgGridComponent implements OnIn * Set component data after all data has been received */ private setComponentData() { - if (null !== this.customers && null !== this.customerContacts) { } } {) { + if (null !== this.customers && null !== this.customerContacts){ this.customerList.setData(this.customers); this.customerContactList.setData(this.customers, this.customerContacts); } @@ -75,9 +75,8 @@ export class CustomerManagementComponent extends AgGridComponent implements OnIn /** * Customer row is clicked - * @param e */ - public rowClickedCustomer(e: any); { + public rowClickedCustomer(e: any): void { this.customerService.apiGetCustomerFull(e.data.customer_id).subscribe( data => { this.customerView.setData(data.result_data as ICustomer); @@ -90,146 +89,135 @@ export class CustomerManagementComponent extends AgGridComponent implements OnIn /** * OnClick Create customer */ - public createCustomer(); : void { + public createCustomer(): void { this.modalCustomerDataEdit.openModal(); this.customerDataEdit.setData(Factory.getEmptyCustomer()); - }; + } /** * Creates customer - * @param customer */ - public createCustomerFunction(customer: ICustomer); : void { + public createCustomerFunction(customer: ICustomer): void { this.customerService.apiCreateCustomer(customer).subscribe( data => { this.modalCustomerDataEdit.closeModal(); }, error => {} ); - }; + } /** * Saves customer - * @param customer */ - public editCustomerFunction(customer: ICustomer); : void { + public editCustomerFunction(customer: ICustomer): void { this.customerService.apiEditCustomer(customer).subscribe( data => { this.customerView.setData(data.result_data as ICustomer); }, error => {} ); - }; + } /** * Creates customer contact - * @param customerContact */ - public createCustomerContactFunction(customerContact: ICustomerContact); : void { + public createCustomerContactFunction(customerContact: ICustomerContact): void { this.customerService.apiCreateCustomerContact(customerContact).subscribe( data => { this.customerView.setData(data.result_data as ICustomer); }, error => {} ); - }; + } /** * Edit customer contact - * @param customerContact */ - public editCustomerContactFunction(customerContact: ICustomerContact); : void { + public editCustomerContactFunction(customerContact: ICustomerContact): void { this.customerService.apiEditCustomerContact(customerContact).subscribe( data => { this.customerView.setData(data.result_data as ICustomer, true); }, error => {} ); - }; + } /** * Deletes customer contact - * @param contactId */ - public deleteCustomerContactFunction(contactId: number); : void { + public deleteCustomerContactFunction(contactId: number): void { this.customerService.apiDeleteCustomerContact(contactId).subscribe( data => { this.customerView.setData(data.result_data as ICustomer); }, error => {} ); - }; + } /** * Creates customer note entry - * @param customerNote */ - public createCustomerNoteFunction(customerNote: ICustomerNote); : void { + public createCustomerNoteFunction(customerNote: ICustomerNote): void { this.customerService.apiCreateCustomerNote(customerNote).subscribe( data => { this.customerView.setData(data.result_data as ICustomer); }, error => {} ); - }; + } /** * Edits customer note entry - * @param customerNote */ - public editCustomerNoteFunction(customerNote: ICustomerNote); : void { + public editCustomerNoteFunction(customerNote: ICustomerNote): void { this.customerService.apiEditCustomerNote(customerNote).subscribe( data => { this.customerView.setData(data.result_data as ICustomer, true); }, error => {} ); - }; + } /** * Deletes customer note entry - * @param customerNoteId */ - public deleteCustomerNoteFunction(customerNoteId: number); : void { + public deleteCustomerNoteFunction(customerNoteId: number): void { this.customerService.apiDeleteCustomerNote(customerNoteId).subscribe( data => { this.customerView.setData(data.result_data as ICustomer); }, error => {} ); - }; + } /** * Creates customer meeting entry - * @param customerMeeting */ - public createCustomerMeetingFunction(customerMeeting: ICustomerMeeting); : void { + public createCustomerMeetingFunction(customerMeeting: ICustomerMeeting): void { this.meetingService.apiCreateCustomerMeeting(customerMeeting).subscribe( data => { this.customerView.setData(data.result_data as ICustomer); }, error => {} ); - }; + } /** * Edits customer meeting entry - * @param customerMeeting */ - public editCustomerMeetingFunction(customerMeeting: ICustomerMeeting); : void { + public editCustomerMeetingFunction(customerMeeting: ICustomerMeeting): void { this.meetingService.apiEditCustomerMeeting(customerMeeting).subscribe( data => { this.customerView.setData(data.result_data as ICustomer, true); }, error => {} ); - }; + } /** * Deletes customer meeting entry - * @param customerMeetingId */ - public deleteCustomerMeetingFunction(customerMeetingId: number); : void { + public deleteCustomerMeetingFunction(customerMeetingId: number): void { this.meetingService.apiDeleteCustomerMeeting(customerMeetingId).subscribe( data => { this.customerView.setData(data.result_data as ICustomer); @@ -240,9 +228,8 @@ export class CustomerManagementComponent extends AgGridComponent implements OnIn /** * Edit report after meeting has started - * @param reportValues */ - public editCustomerMeetingReportFunction(reportValues: any); : void { + public editCustomerMeetingReportFunction(reportValues: any): void { const meetingId: number = reportValues.id; const report: string = reportValues.report; this.meetingService.apiEditCustomerMeetingReport(meetingId, report).subscribe( @@ -251,13 +238,12 @@ export class CustomerManagementComponent extends AgGridComponent implements OnIn }, error => {} ); - }; + } /** * Shortcut to customer detail - * @param customer */ - public shortcutFunction(customer: ICustomer); : void { + public shortcutFunction(customer: ICustomer) : void { this.customerService.apiGetCustomerFull(customer.id).subscribe( data => { this.customerView.setData(data.result_data as ICustomer); @@ -265,13 +251,13 @@ export class CustomerManagementComponent extends AgGridComponent implements OnIn }, error => {} ); - }; + } /** * Destroy */ -ngOnDestroy(); : void { - if(this.customersSub !== null && this.customersSub !== undefined); { + ngOnDestroy(): void { + if(this.customersSub !== null && this.customersSub !== undefined) { this.customersSub.unsubscribe(); } } diff --git a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-contact-person-edit/customer-contact-person-edit.component.ts b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-contact-person-edit/customer-contact-person-edit.component.ts index ae0ecbc..0a32720 100644 --- a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-contact-person-edit/customer-contact-person-edit.component.ts +++ b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-contact-person-edit/customer-contact-person-edit.component.ts @@ -2,7 +2,7 @@ import {Component, EventEmitter, OnInit, Output, ViewChild} from '@angular/core' import {ICustomerContact} from '../../../../model/entities/customer-contact'; import {Factory} from '../../../../factory/factory'; import {NgForm} from '@angular/forms'; -import {ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; +// import {ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; import {AppService} from '../../../../services/app.service'; import {IConfig} from '../../../../model/virtual/config'; import {FormComponent} from '../../../../components/form-component'; @@ -23,8 +23,8 @@ export class CustomerContactPersonEditComponent extends FormComponent implements public customerContact: ICustomerContact; public config: IConfig; - constructor(private appService: AppService, protected scrollToService: ScrollToService) { - super(scrollToService); + constructor(private appService: AppService, /*protected scrollToService: ScrollToService*/) { + super(/*scrollToService*/); } ngOnInit() { @@ -34,7 +34,6 @@ export class CustomerContactPersonEditComponent extends FormComponent implements /** * Sets data - * @param customerContact */ public setData(customerContact: ICustomerContact): void { this.customerContact = customerContact; @@ -52,15 +51,13 @@ export class CustomerContactPersonEditComponent extends FormComponent implements /** * Saves customer - * @param value - * @param valid */ public onFormSubmit({value, valid}: { value: any, valid: boolean }): void { this.errorMsg = 'Bitte beheben Sie alle Fehler.'; if (valid) { // Check if date is valid if (null === this.customerContact.date_of_birth || - !(null === this.customerContact.date_of_birth && Utils.isValidDate(this.customerContact.date_of_birth))) { + (null !== this.customerContact.date_of_birth && Utils.isValidDate(this.customerContact.date_of_birth))) { if (this.isCreationMode) { this.createCustomerContact.emit(this.customerContact); } else { @@ -69,10 +66,10 @@ export class CustomerContactPersonEditComponent extends FormComponent implements this.errorMsg = ''; } else { this.errorMsg = 'Bitte korrektes Datum eingeben.'; - this.scrollUp(this.isCreationMode ? 'customer-contact-person-modal' : 'customer-contact-person-edit-modal'); + // todo this.scrollUp(this.isCreationMode ? 'customer-contact-person-modal' : 'customer-contact-person-edit-modal'); } } else { - this.scrollUp(this.isCreationMode ? 'customer-contact-person-modal' : 'customer-contact-person-edit-modal'); + // todo this.scrollUp(this.isCreationMode ? 'customer-contact-person-modal' : 'customer-contact-person-edit-modal'); } } diff --git a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-contact-person-view/customer-contact-person-view.component.html b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-contact-person-view/customer-contact-person-view.component.html index af1521e..f694f1c 100644 --- a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-contact-person-view/customer-contact-person-view.component.html +++ b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-contact-person-view/customer-contact-person-view.component.html @@ -21,15 +21,15 @@ - + - + - +
-
+ diff --git a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-data-edit/customer-data-edit.component.ts b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-data-edit/customer-data-edit.component.ts index b1f0545..a2257e6 100644 --- a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-data-edit/customer-data-edit.component.ts +++ b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-data-edit/customer-data-edit.component.ts @@ -2,7 +2,7 @@ import {Component, EventEmitter, OnInit, Output, ViewChild} from '@angular/core' import {ICustomer} from '../../../../model/entities/customer'; import {Factory} from '../../../../factory/factory'; import {NgForm} from '@angular/forms'; -import {ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; +// import {ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; import {AppService} from '../../../../services/app.service'; import {IConfig} from '../../../../model/virtual/config'; import {FormComponent} from '../../../../components/form-component'; @@ -26,8 +26,8 @@ export class CustomerDataEditComponent extends FormComponent implements OnInit { public usersById: {}; public consultant: IUser; - constructor(private appService: AppService, protected scrollToService: ScrollToService) { - super(scrollToService); + constructor(private appService: AppService, /*protected scrollToService: ScrollToService*/) { + super(/*scrollToService*/); } ngOnInit() { @@ -40,7 +40,6 @@ export class CustomerDataEditComponent extends FormComponent implements OnInit { /** * Sets data - * @param customer */ public setData(customer: ICustomer): void { this.customer = customer; @@ -58,8 +57,6 @@ export class CustomerDataEditComponent extends FormComponent implements OnInit { /** * Saves customer - * @param value - * @param valid */ public onFormSubmit({value, valid}: { value: any, valid: boolean }): void { this.errorMsg = 'Bitte beheben Sie alle Fehler.'; @@ -71,7 +68,7 @@ export class CustomerDataEditComponent extends FormComponent implements OnInit { } this.errorMsg = ''; } else { - this.scrollUp(this.isCreationMode ? 'customer-data-modal' : 'customer-data-edit-modal'); + // todo this.scrollUp(this.isCreationMode ? 'customer-data-modal' : 'customer-data-edit-modal'); } } diff --git a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-data-view/customer-data-view.component.html b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-data-view/customer-data-view.component.html index 4986654..654f766 100644 --- a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-data-view/customer-data-view.component.html +++ b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-data-view/customer-data-view.component.html @@ -33,8 +33,8 @@ - +
-
+ diff --git a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-meeting-detail/customer-meeting-detail.component.ts b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-meeting-detail/customer-meeting-detail.component.ts index 856eeca..8207f94 100644 --- a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-meeting-detail/customer-meeting-detail.component.ts +++ b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-meeting-detail/customer-meeting-detail.component.ts @@ -17,9 +17,8 @@ import {AppService} from '../../../../services/app.service'; import {IMeetingType} from '../../../../model/entities/meeting-type'; import {IConfig} from '../../../../model/virtual/config'; import {NgForm} from '@angular/forms'; -import {ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; +// import {ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; import {CustomerService} from '../../../../services/customer.service'; -import {null === ; } from; 'util'; import {MeetingService} from '../../../../services/meeting.service'; import {FormComponent} from '../../../../components/form-component'; import {Const} from '../../../../utils/const'; @@ -56,8 +55,8 @@ export class CustomerMeetingDetailComponent extends FormComponent implements OnI public hasEditRights: boolean; public hasReportRights: boolean; - constructor(public appService: AppService, private customerService: CustomerService, private meetingService: MeetingService, protected scrollToService: ScrollToService, private ref: ChangeDetectorRef) { - super(scrollToService); + constructor(public appService: AppService, private customerService: CustomerService, private meetingService: MeetingService, /*protected scrollToService: ScrollToService,*/ private ref: ChangeDetectorRef) { + super(/*scrollToService*/); } ngOnInit() { @@ -79,8 +78,6 @@ export class CustomerMeetingDetailComponent extends FormComponent implements OnI /** * Set data - * @param customer - * @param customerMeeting */ public setData(customer: ICustomer, customerMeeting: ICustomerMeeting): void { this.customer = customer; @@ -97,16 +94,15 @@ export class CustomerMeetingDetailComponent extends FormComponent implements OnI /** * Updates data - * @param customer */ public updateData(customer: ICustomer): void { this.customer = customer; - if (!null === this.customerMeeting.id) { } } {) { - for (let i = 0; i < this.customer.v_customer_meetings.length; i++) { - if (this.customer.v_customer_meetings[i].id === this.customerMeeting.id) { - this.customerMeeting = this.customer.v_customer_meetings[i]; + if (null !== this.customerMeeting.id){ + this.customer.v_customer_meetings.forEach(item => { + if (item.id === this.customerMeeting.id) { + this.customerMeeting = item; } - } + }); this.setMeetingData(); } } @@ -114,16 +110,16 @@ export class CustomerMeetingDetailComponent extends FormComponent implements OnI /** * Sets variables for meeting */ - public setMeetingData(); { + public setMeetingData(): void { this.errorMsg = ''; this.reportFormVisible = false; this.reportOld = this.customerMeeting.report; this.creator = this.appService.getConfig().vc_user_by_id[this.customerMeeting.creation_user_id]; this.owner = this.appService.getConfig().vc_user_by_id[this.customerMeeting.owner_user_id]; this.participants = []; - for (let i = 0; i < this.customerMeeting.v_participants.length; i++) { - this.participants.push(this.appService.getConfig().vc_user_by_id[this.customerMeeting.v_participants[i].participant_user_id]); - } + this.customerMeeting.v_participants.forEach(item => { + this.participants.push(this.appService.getConfig().vc_user_by_id[item.participant_user_id]); + }); this.meetingType = this.appService.getConfig().vc_meeting_types_by_id[this.customerMeeting.meeting_type_id]; this.date = Utils.getDateTimeToDisplay(this.customerMeeting.start_date); this.timeStart = Utils.getDateTimeToDisplay(this.customerMeeting.start_date, false, true); @@ -137,25 +133,24 @@ export class CustomerMeetingDetailComponent extends FormComponent implements OnI /** * Edit meeting entry */ - public editEntry(); : void { + public editEntry(): void { this.isEditMode = true; this.customerMeetingDetailEdit.setData(this.customer, Utils.deepClone(this.customerMeeting) as ICustomerMeeting); - }; + } /** * Edits meeting entry - * @param customerMeeting */ - public editCustomerMeetingFunction(customerMeeting: ICustomerMeeting); { + public editCustomerMeetingFunction(customerMeeting: ICustomerMeeting): void { this.editMeeting.emit(customerMeeting); } /** * Delete meeting entry */ - public deleteEntry(); : void { + public deleteEntry(): void { const confirmAction = confirm('Wollen Sie diesen Eintrag wirklich löschen?'); - if(confirmAction == true; ) { + if (confirmAction === true) { this.deleteMeeting.emit(this.customerMeeting.id); } } @@ -163,44 +158,42 @@ export class CustomerMeetingDetailComponent extends FormComponent implements OnI /** * Check if edit report after meeting has started */ - public editReport(); : void { + public editReport(): void { this.meetingService.apiCheckCustomerMeetingReport(this.customerMeeting.id).subscribe( data => { this.reportFormVisible = data.result_data as boolean; // NOTE: We need manual change detection in this component this.ref.detectChanges(); - this.scrollUp('customer-meeting-edit-report'); + // todo this.scrollUp('customer-meeting-edit-report'); }, error => { } ); - }; + } /** * Resets Form Validation */ - public resetFormValidation(); : void { - if(this.reportFormVisible); { + public resetFormValidation(): void { + if (this.reportFormVisible) { this.customerMeetingReportForm.form.markAsUntouched(); } } /** * Saves customer meeting report - * @param value - * @param valid */ - public onFormSubmit({value, valid}: { value: any, valid: boolean }); : void { + public onFormSubmit({value, valid}: { value: any, valid: boolean }): void { this.errorMsg = 'Bitte beheben Sie alle Fehler.'; - if(valid) { + if (valid) { this.editMeetingReport.emit({ id: this.customerMeeting.id, report: this.customerMeeting.report }); this.errorMsg = ''; } else { - this.scrollUp('customer-meeting-edit-report'); + // todo this.scrollUp('customer-meeting-edit-report'); } - }; + } } diff --git a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-meeting-edit/customer-meeting-edit.component.ts b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-meeting-edit/customer-meeting-edit.component.ts index d174d80..520c213 100644 --- a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-meeting-edit/customer-meeting-edit.component.ts +++ b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-meeting-edit/customer-meeting-edit.component.ts @@ -2,7 +2,7 @@ import {Component, EventEmitter, OnInit, Output, ViewChild} from '@angular/core' import {NgForm} from '@angular/forms'; import {ICustomerMeeting} from '../../../../model/entities/customer-meeting'; import {ICustomer} from '../../../../model/entities/customer'; -import {ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; +// import {ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; import {Factory} from '../../../../factory/factory'; import {ICustomerContact} from '../../../../model/entities/customer-contact'; import {Utils} from '../../../../utils/utils'; @@ -43,8 +43,8 @@ export class CustomerMeetingEditComponent extends FormComponent implements OnIni public contactPersonValue: string; public config: IConfig; - constructor(public appService: AppService, protected scrollToService: ScrollToService) { - super(scrollToService); + constructor(public appService: AppService, /*protected scrollToService: ScrollToService*/) { + super(/*scrollToService*/); } ngOnInit() { @@ -70,9 +70,6 @@ export class CustomerMeetingEditComponent extends FormComponent implements OnIni /** * Sets data - * @param customer - * @param customerMeeting - * @param isCreationMode */ public setData(customer: ICustomer, customerMeeting: ICustomerMeeting, isCreationMode: boolean = false): void { this.customer = customer; @@ -123,7 +120,6 @@ export class CustomerMeetingEditComponent extends FormComponent implements OnIni /** * On select contact - * @param e */ public selectContact(e: any) { this.customerMeeting.customer_contact_id = e.target.value; @@ -149,7 +145,6 @@ export class CustomerMeetingEditComponent extends FormComponent implements OnIni /** * On select owner - * @param e */ public selectOwner(e: any) { if (e.target.value !== '0: null') { @@ -170,7 +165,6 @@ export class CustomerMeetingEditComponent extends FormComponent implements OnIni /** * On select meeting type - * @param e */ public selectMeetingType(e: any) { this.customerMeeting.meeting_type_id = e.target.value; @@ -178,7 +172,6 @@ export class CustomerMeetingEditComponent extends FormComponent implements OnIni /** * On select participant - * @param e */ public participantsChange(e: any) { const participantUserId: number = parseInt(e.target.value); @@ -199,7 +192,6 @@ export class CustomerMeetingEditComponent extends FormComponent implements OnIni /** * Checks if participant is selected - * @param id */ public checkParticipants(id: number) { return this.selectedParticipantsById.hasOwnProperty(id); @@ -214,8 +206,6 @@ export class CustomerMeetingEditComponent extends FormComponent implements OnIni /** * Saves customer meeting - * @param value - * @param valid */ public onFormSubmit({value, valid}: { value: any, valid: boolean }): void { this.errorMsg = 'Bitte beheben Sie alle Fehler.'; @@ -224,7 +214,7 @@ export class CustomerMeetingEditComponent extends FormComponent implements OnIni // Check if start time before end time if (parseInt(this.timeStart.replace(/\:/g, '')) - parseInt(this.timeEnd.replace(/\:/g, '')) > 0) { this.errorMsg = 'Zeit (Ende) darf nicht vor Zeit (Start) liegen.'; - this.scrollUp(identifier); + // todo this.scrollUp(identifier); } else { this.customerMeeting.start_date = this.startDate + ' ' + this.timeStart + ':00'; this.customerMeeting.end_date = this.startDate + ' ' + this.timeEnd + ':00'; @@ -235,7 +225,7 @@ export class CustomerMeetingEditComponent extends FormComponent implements OnIni this.customerMeeting.v_participants.push(this.selectedParticipantsById[spId]); } - if (this.customerMeeting.customer_contact_id == -1) { + if (this.customerMeeting.customer_contact_id === -1) { this.customerMeeting.customer_contact_id = null; } @@ -247,11 +237,11 @@ export class CustomerMeetingEditComponent extends FormComponent implements OnIni this.errorMsg = ''; } else { this.errorMsg = 'Bitte korrektes Datum eingeben.'; - this.scrollUp(identifier); + // todo this.scrollUp(identifier); } } } else { - this.scrollUp(identifier); + // todo this.scrollUp(identifier); } } diff --git a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-meeting-view/customer-meeting-view.component.html b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-meeting-view/customer-meeting-view.component.html index 346d1ee..3031631 100644 --- a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-meeting-view/customer-meeting-view.component.html +++ b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-meeting-view/customer-meeting-view.component.html @@ -20,14 +20,14 @@ - + - + - +
-
+ diff --git a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-meeting-view/customer-meeting-view.component.ts b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-meeting-view/customer-meeting-view.component.ts index fea3652..eb7a170 100644 --- a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-meeting-view/customer-meeting-view.component.ts +++ b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-meeting-view/customer-meeting-view.component.ts @@ -87,8 +87,6 @@ export class CustomerMeetingViewComponent extends AgGridComponent implements OnI /** * Sets data - * @param customer - * @param isUpdate */ public setData(customer: ICustomer, isUpdate: boolean): void { this.customer = customer; @@ -139,13 +137,12 @@ export class CustomerMeetingViewComponent extends AgGridComponent implements OnI phone: value.phone_no, mobile: value.mobile_no, }); - this.rowData = items.sort((a: {} , b: {}) => this.dateComparator(a.date, b.date, false)); + this.rowData = items.sort((a: {} , b: {}) => this.dateComparator(a['date'], b['date'], false)); }); } /** * On row click - * @param e */ public rowClicked(e: any) { this.modalCustomerMeetingDetail.openModal(); @@ -162,7 +159,6 @@ export class CustomerMeetingViewComponent extends AgGridComponent implements OnI /** * Creates customer meeting - * @param customerMeeting */ public createCustomerMeetingFunction(customerMeeting: ICustomerMeeting): void { this.createMeeting.emit(customerMeeting); @@ -170,7 +166,6 @@ export class CustomerMeetingViewComponent extends AgGridComponent implements OnI /** * Edits meeting entry - * @param customerMeeting */ public editCustomerMeetingFunction(customerMeeting: ICustomerMeeting) { this.editMeeting.emit(customerMeeting); @@ -178,7 +173,6 @@ export class CustomerMeetingViewComponent extends AgGridComponent implements OnI /** * Deletes customer meeting - * @param meetingId */ public deleteCustomerMeetingFunction(meetingId: number): void { this.deleteMeeting.emit(meetingId); @@ -186,7 +180,6 @@ export class CustomerMeetingViewComponent extends AgGridComponent implements OnI /** * Edit report after meeting has started - * @param reportValues */ public editCustomerMeetingReportFunction(reportValues: any): void { this.editMeetingReport.emit(reportValues); diff --git a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-note-edit/customer-note-edit.component.ts b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-note-edit/customer-note-edit.component.ts index ce4f4f6..45806fc 100644 --- a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-note-edit/customer-note-edit.component.ts +++ b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-note-edit/customer-note-edit.component.ts @@ -5,7 +5,7 @@ import {Factory} from '../../../../factory/factory'; import {ICustomer} from '../../../../model/entities/customer'; import {ICustomerContact} from '../../../../model/entities/customer-contact'; import {Utils} from '../../../../utils/utils'; -import {ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; +// import {ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; import {FormComponent} from '../../../../components/form-component'; @Component({ @@ -27,8 +27,8 @@ export class CustomerNoteEditComponent extends FormComponent implements OnInit { public isExistingCustomerContact: boolean; public contactId: string; - constructor(protected scrollToService: ScrollToService) { - super(scrollToService); + constructor(/* protected scrollToService: ScrollToService */) { + super(/* scrollToService */); } ngOnInit() { @@ -44,9 +44,6 @@ export class CustomerNoteEditComponent extends FormComponent implements OnInit { /** * Sets data - * @param customer - * @param customerNote - * @param isCreationMode */ public setData(customer: ICustomer, customerNote: ICustomerNote, isCreationMode = false): void { this.customer = customer; @@ -68,7 +65,6 @@ export class CustomerNoteEditComponent extends FormComponent implements OnInit { /** * On select contact - * @param e */ public selectContact(e: any) { this.customerNote.customer_contact_id = e.target.value; @@ -103,8 +99,6 @@ export class CustomerNoteEditComponent extends FormComponent implements OnInit { /** * Saves customer - * @param value - * @param valid */ public onFormSubmit({value, valid}: { value: any, valid: boolean }): void { this.errorMsg = 'Bitte beheben Sie alle Fehler.'; @@ -119,7 +113,7 @@ export class CustomerNoteEditComponent extends FormComponent implements OnInit { } this.errorMsg = ''; } else { - this.scrollUp(this.isCreationMode ? 'customer-note-modal' : 'customer-note-edit-modal'); + // todo this.scrollUp(this.isCreationMode ? 'customer-note-modal' : 'customer-note-edit-modal'); } } diff --git a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-note-view/customer-note-view.component.html b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-note-view/customer-note-view.component.html index 549f646..61bbe45 100644 --- a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-note-view/customer-note-view.component.html +++ b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-note-view/customer-note-view.component.html @@ -20,13 +20,13 @@ - + - + - +
-
+ diff --git a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-note-view/customer-note-view.component.ts b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-note-view/customer-note-view.component.ts index 8ecc34e..c0b14de 100644 --- a/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-note-view/customer-note-view.component.ts +++ b/httpdocs/plp-angular/src/app/views/customer-management/customer-view/customer-note-view/customer-note-view.component.ts @@ -65,8 +65,6 @@ export class CustomerNoteViewComponent extends AgGridComponent implements OnInit /** * Sets data - * @param customer - * @param isUpdate */ public setData(customer: ICustomer, isUpdate: boolean): void { this.customer = customer; @@ -87,38 +85,37 @@ export class CustomerNoteViewComponent extends AgGridComponent implements OnInit public generateEntries(): void { this.rowData = []; const items: {}[] = []; - for (let i = 0; i < this.customerNote.length; i++) { + for (const item of this.customerNote) { let ccGender = ''; - if (this.customerNote[i].gender == 'male') { + if (item.gender === 'male') { ccGender = 'Herr'; - } else if (this.customerNote[i].gender == 'female') { + } else if (item.gender === 'female') { ccGender = 'Frau'; - } else if (this.customerNote[i].gender == 'diverse') { + } else if (item.gender === 'diverse') { ccGender = 'Divers'; } items.push({ - id: this.customerNote[i].id, - date: this.customerNote[i].note_date, - title: this.customerNote[i].title, - comment: this.customerNote[i].comment, + id: item.id, + date: item.note_date, + title: item.title, + comment: item.comment, gender: ccGender, - firstname: this.customerNote[i].firstname, - lastname: this.customerNote[i].lastname, - email: this.customerNote[i].email, - phone_no: this.customerNote[i].phone_no, - mobile_no: this.customerNote[i].mobile_no, - fax_no: this.customerNote[i].fax_no, - department: this.customerNote[i].department, - creation_date: this.customerNote[i].creation_date, - creator: this.customerNote[i].creation_user_firstname + ' ' + this.customerNote[i].creation_user_lastname, + firstname: item.firstname, + lastname: item.lastname, + email: item.email, + phone_no: item.phone_no, + mobile_no: item.mobile_no, + fax_no: item.fax_no, + department: item.department, + creation_date: item.creation_date, + creator: item.creation_user_firstname + ' ' + item.creation_user_lastname, }); } - this.rowData = items.sort((a: {} , b: {}) => this.dateComparator(a.date, b.date, false)); + this.rowData = items.sort((a: {} , b: {}) => this.dateComparator(a['date'], b['date'], false)); } /** * On row click - * @param e */ public rowClicked(e: any) { this.modalCustomerNoteDetail.openModal(); @@ -135,7 +132,6 @@ export class CustomerNoteViewComponent extends AgGridComponent implements OnInit /** * Creates customer note - * @param customerNote */ public createCustomerNoteFunction(customerNote: ICustomerNote): void { this.createNote.emit(customerNote); @@ -143,7 +139,6 @@ export class CustomerNoteViewComponent extends AgGridComponent implements OnInit /** * Edits note entry - * @param customerNote */ public editCustomerNoteFunction(customerNote: ICustomerNote) { this.editNote.emit(customerNote); @@ -151,7 +146,6 @@ export class CustomerNoteViewComponent extends AgGridComponent implements OnInit /** * Deletes customer note - * @param noteId */ public deleteCustomerNoteFunction(noteId: number): void { this.deleteNote.emit(noteId); diff --git a/httpdocs/plp-angular/src/app/views/start/internal-meeting-detail/internal-meeting-detail.component.ts b/httpdocs/plp-angular/src/app/views/start/internal-meeting-detail/internal-meeting-detail.component.ts index e2ffda4..d7e3c07 100644 --- a/httpdocs/plp-angular/src/app/views/start/internal-meeting-detail/internal-meeting-detail.component.ts +++ b/httpdocs/plp-angular/src/app/views/start/internal-meeting-detail/internal-meeting-detail.component.ts @@ -16,7 +16,7 @@ import {IConfig} from '../../../model/virtual/config'; import {AppService} from '../../../services/app.service'; import {IUser} from '../../../model/entities/user'; import {FormComponent} from '../../../components/form-component'; -import {ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; +// import {ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; import {MeetingService} from '../../../services/meeting.service'; import {Const} from '../../../utils/const'; @@ -51,8 +51,8 @@ export class InternalMeetingDetailComponent extends FormComponent implements OnI public reportOld: string; public hasAdminRights: boolean; - constructor(public appService: AppService, private meetingService: MeetingService, protected scrollToService: ScrollToService, private ref: ChangeDetectorRef) { - super(scrollToService); + constructor(public appService: AppService, private meetingService: MeetingService, /*protected scrollToService: ScrollToService,*/ private ref: ChangeDetectorRef) { + super(/*scrollToService*/); } ngOnInit() { @@ -74,7 +74,6 @@ export class InternalMeetingDetailComponent extends FormComponent implements OnI /** * Set data - * @param internalMeeting */ public setData(internalMeeting: IInternalMeeting): void { this.internalMeeting = internalMeeting; @@ -83,7 +82,6 @@ export class InternalMeetingDetailComponent extends FormComponent implements OnI /** * Updates data - * @param internalMeeting */ public updateData(internalMeeting: IInternalMeeting): void { if (null !== this.internalMeeting.id) { @@ -125,7 +123,6 @@ export class InternalMeetingDetailComponent extends FormComponent implements OnI /** * Edits meeting entry - * @param internalMeeting */ public editInternalMeetingFunction(internalMeeting: IInternalMeeting) { this.editMeeting.emit(internalMeeting); @@ -136,7 +133,7 @@ export class InternalMeetingDetailComponent extends FormComponent implements OnI */ public deleteEntry(): void { const confirmAction = confirm('Wollen Sie diesen Eintrag wirklich löschen?'); - if (confirmAction == true) { + if (confirmAction === true) { this.deleteMeeting.emit(this.internalMeeting.id); } } @@ -150,7 +147,7 @@ export class InternalMeetingDetailComponent extends FormComponent implements OnI this.reportFormVisible = data.result_data as boolean; // NOTE: We need manual change detection in this component this.ref.detectChanges(); - this.scrollUp('internal-meeting-edit-report'); + // todo this.scrollUp('internal-meeting-edit-report'); }, error => { } @@ -168,8 +165,6 @@ export class InternalMeetingDetailComponent extends FormComponent implements OnI /** * Saves internal meeting report - * @param value - * @param valid */ public onFormSubmit({value, valid}: { value: any, valid: boolean }): void { this.errorMsg = 'Bitte beheben Sie alle Fehler.'; @@ -180,7 +175,7 @@ export class InternalMeetingDetailComponent extends FormComponent implements OnI }); this.errorMsg = ''; } else { - this.scrollUp('internal-meeting-edit-report'); + // todo this.scrollUp('internal-meeting-edit-report'); } } diff --git a/httpdocs/plp-angular/src/app/views/start/internal-meeting-edit/internal-meeting-edit.component.ts b/httpdocs/plp-angular/src/app/views/start/internal-meeting-edit/internal-meeting-edit.component.ts index b7667bf..e73d44a 100644 --- a/httpdocs/plp-angular/src/app/views/start/internal-meeting-edit/internal-meeting-edit.component.ts +++ b/httpdocs/plp-angular/src/app/views/start/internal-meeting-edit/internal-meeting-edit.component.ts @@ -1,7 +1,7 @@ import {Component, EventEmitter, OnInit, Output, ViewChild} from '@angular/core'; import {IConfig} from '../../../model/virtual/config'; import {AppService} from '../../../services/app.service'; -import {ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; +// import {ScrollToService} from '@nicky-lenaers/ngx-scroll-to'; import {NgForm} from '@angular/forms'; import {Factory} from '../../../factory/factory'; import {IInternalMeeting} from '../../../model/entities/internal-meeting'; @@ -36,8 +36,8 @@ export class InternalMeetingEditComponent extends FormComponent implements OnIni public timeEnd: string; public config: IConfig; - constructor(public appService: AppService, protected scrollToService: ScrollToService) { - super(scrollToService); + constructor(public appService: AppService, /*protected scrollToService: ScrollToService*/) { + super(/*scrollToService*/); } ngOnInit() { @@ -59,8 +59,6 @@ export class InternalMeetingEditComponent extends FormComponent implements OnIni /** * Sets data - * @param internalMeeting - * @param isCreationMode */ public setData(internalMeeting: IInternalMeeting, isCreationMode = false): void { this.internalMeeting = internalMeeting; @@ -102,7 +100,6 @@ export class InternalMeetingEditComponent extends FormComponent implements OnIni /** * On select owner - * @param e */ public selectOwner(e: any) { if (e.target.value !== '0: null') { @@ -123,7 +120,6 @@ export class InternalMeetingEditComponent extends FormComponent implements OnIni /** * On select participant - * @param e */ public participantsChange(e: any) { const participantUserId: number = parseInt(e.target.value); @@ -144,7 +140,6 @@ export class InternalMeetingEditComponent extends FormComponent implements OnIni /** * Checks if participant is selected - * @param id */ public checkParticipants(id: number) { if (this.selectedParticipantsById.hasOwnProperty(id)) { @@ -163,7 +158,6 @@ export class InternalMeetingEditComponent extends FormComponent implements OnIni /** * Saves internal meeting - * @param value */ public onFormSubmit({value, valid}: { value: any, valid: boolean }): void { this.errorMsg = 'Bitte beheben Sie alle Fehler.'; @@ -174,7 +168,7 @@ export class InternalMeetingEditComponent extends FormComponent implements OnIni const compareDateEnd = new Date(this.dateEnd + 'T' + this.timeEnd + ':00'); if (compareDateStart > compareDateEnd) { this.errorMsg = 'Datum / Zeit (Ende) darf nicht vor Datum / Zeit (Start) liegen.'; - this.scrollUp(identifier); + // todo this.scrollUp(identifier); } else { this.internalMeeting.start_date = this.dateStart + ' ' + this.timeStart + ':00'; this.internalMeeting.end_date = this.dateEnd + ' ' + this.timeEnd + ':00'; @@ -193,11 +187,11 @@ export class InternalMeetingEditComponent extends FormComponent implements OnIni this.errorMsg = ''; } else { this.errorMsg = 'Bitte korrektes Datum eingeben.'; - this.scrollUp(identifier); + // todo this.scrollUp(identifier); } } } else { - this.scrollUp(identifier); + // todo this.scrollUp(identifier); } } diff --git a/httpdocs/plp-angular/src/app/views/start/meeting-calendar/meeting-calendar.component.ts b/httpdocs/plp-angular/src/app/views/start/meeting-calendar/meeting-calendar.component.ts index 82c4941..5439dd7 100644 --- a/httpdocs/plp-angular/src/app/views/start/meeting-calendar/meeting-calendar.component.ts +++ b/httpdocs/plp-angular/src/app/views/start/meeting-calendar/meeting-calendar.component.ts @@ -9,12 +9,6 @@ import {Utils} from '../../../utils/utils'; import {IUser} from '../../../model/entities/user'; import {AppService} from '../../../services/app.service'; import {IInternalMeeting} from '../../../model/entities/internal-meeting'; -import {IOperatorMeeting} from '../../../model/entities/operator-meeting'; -import {IOperator} from '../../../model/entities/operator'; -import {IProductionMeeting} from '../../../model/entities/production-meeting'; -import {IServiceMeeting} from '../../../model/entities/service-meeting'; -import {IProduction} from '../../../model/entities/production'; -import {IService} from '../../../model/entities/service'; const colors: any = { colorCustomer: { @@ -52,15 +46,9 @@ export class MeetingCalendarComponent implements OnInit { static MEETING_TYPE_CUSTOMER = 'customer_meeting'; static MEETING_TYPE_INTERNAL = 'internal_meeting'; - static MEETING_TYPE_OPERATOR = 'operator_meeting'; - static MEETING_TYPE_PRODUCTION = 'production_meeting'; - static MEETING_TYPE_SERVICE = 'service_meeting'; @Output() editCustomerMeeting: EventEmitter = new EventEmitter(); - @Output() editOperatorMeeting: EventEmitter = new EventEmitter(); @Output() editInternalMeeting: EventEmitter = new EventEmitter(); - @Output() editProductionMeeting: EventEmitter = new EventEmitter(); - @Output() editServiceMeeting: EventEmitter = new EventEmitter(); @ViewChild('modalContent', { static: true }) modalContent: TemplateRef; @@ -81,18 +69,9 @@ export class MeetingCalendarComponent implements OnInit { public activeDayIsOpen: boolean; private customerMeetings: ICustomerMeeting[]; private internalMeetings: IInternalMeeting[]; - private operatorMeetings: IOperatorMeeting[]; - private productionMeetings: IProductionMeeting[]; - private serviceMeetings: IServiceMeeting[]; private customerMeetingsById: {}; private internalMeetingsById: {}; - private operatorMeetingsById: {}; - private productionMeetingsById: {}; - private serviceMeetingsById: {}; private customersById: {}; - private operatorsById: {}; - private productionsById: {}; - private servicesById: {}; public users: IUser[]; public usersById: {}; public selectableUsers: IUser[]; @@ -103,16 +82,7 @@ export class MeetingCalendarComponent implements OnInit { this.customerMeetingsById = {}; this.internalMeetings = []; this.internalMeetingsById = {}; - this.operatorMeetings = []; - this.operatorMeetingsById = {}; - this.productionMeetings = []; - this.productionMeetingsById = {}; - this.serviceMeetings = []; - this.serviceMeetingsById = {}; this.customersById = {}; - this.operatorsById = {}; - this.productionsById = {}; - this.servicesById = {}; this.activeDayIsOpen = false; this.actions = [ { @@ -135,19 +105,10 @@ export class MeetingCalendarComponent implements OnInit { */ public setData( customersById: {}, - operatorsById: {}, - productionsById: {}, - servicesById: {}, customerMeetings: ICustomerMeeting[], internalMeetings: IInternalMeeting[], - operatorMeetings: IOperatorMeeting[], - productionMeetings: IProductionMeeting[], - serviceMeetings: IServiceMeeting[] ) { this.customersById = customersById; - this.operatorsById = operatorsById; - this.productionsById = productionsById; - this.servicesById = servicesById; this.users = this.appService.getConfig().users; this.usersById = this.appService.getConfig().vc_user_by_id; this.activeDayIsOpen = false; @@ -155,18 +116,12 @@ export class MeetingCalendarComponent implements OnInit { this.customerMeetingsById = Utils.getSortedObjFromArray(this.customerMeetings, 'id'); this.internalMeetings = internalMeetings; this.internalMeetingsById = Utils.getSortedObjFromArray(this.internalMeetings, 'id'); - this.operatorMeetings = operatorMeetings; - this.operatorMeetingsById = Utils.getSortedObjFromArray(this.operatorMeetings, 'id'); - this.productionMeetings = productionMeetings; - this.productionMeetingsById = Utils.getSortedObjFromArray(this.productionMeetings, 'id'); - this.serviceMeetings = serviceMeetings; - this.serviceMeetingsById = Utils.getSortedObjFromArray(this.serviceMeetings, 'id'); this.selectableUsers = []; - for (let i = 0; i < this.users.length; i++) { - if (this.users[i].active === true) { - this.selectableUsers.push(this.users[i]); + this.users.forEach(item => { + if (item.active === true) { + this.selectableUsers.push(item); } - } + }); for (let k = 0; k < this.selectableUsers.length; k++) { if (this.selectableUsers[k].id === this.appService.getAppUser().id) { this.selectedUserIndex = k + 1; @@ -183,32 +138,32 @@ export class MeetingCalendarComponent implements OnInit { this.events = []; this.closeOpenMonthViewDay(); const filterUser: IUser = null !== this.selectedUserIndex ? this.selectableUsers[this.selectedUserIndex - 1] : null; - for (let c = 0; c < this.customerMeetings.length; c++) { + this.customerMeetings.forEach(item => { if (null !== filterUser) { - if (filterUser.id !== this.customerMeetings[c].owner_user_id) { + if (filterUser.id !== item.owner_user_id) { let isParticipant = false; - for (let p = 0; p < this.customerMeetings[c].v_participants.length; p++) { - if (filterUser.id === this.customerMeetings[c].v_participants[p].participant_user_id) { + item.v_participants.forEach(item1 => { + if (filterUser.id === item1.participant_user_id) { isParticipant = true; } - } + }); if (!isParticipant) { // Don't show this meeting, since it does not involve filtered user - continue; + return; } } } - const customer: ICustomer = this.customersById[this.customerMeetings[c].customer_id]; - const user: IUser = this.appService.getConfig().vc_user_by_id[this.customerMeetings[c].owner_user_id]; - const title: string = Utils.getDateTimeToDisplay(this.customerMeetings[c].start_date, true, true) + ' bis ' + - Utils.getDateTimeToDisplay(this.customerMeetings[c].end_date, true, true) + ' - ' + + const customer: ICustomer = this.customersById[item.customer_id]; + const user: IUser = this.appService.getConfig().vc_user_by_id[item.owner_user_id]; + const title: string = Utils.getDateTimeToDisplay(item.start_date, true, true) + ' bis ' + + Utils.getDateTimeToDisplay(item.end_date, true, true) + ' - ' + user.firstname + ' ' + user.lastname + ': ' + - customer.name + ' [' + this.customerMeetings[c].title + ']'; + customer.name + ' [' + item.title + ']'; this.events.push( { - id: MeetingCalendarComponent.MEETING_TYPE_CUSTOMER + ':' + this.customerMeetings[c].id, - start: addHours(Utils.getParsedDate(this.customerMeetings[c].start_date), 1), - end: addHours(Utils.getParsedDate(this.customerMeetings[c].end_date), 1), + id: MeetingCalendarComponent.MEETING_TYPE_CUSTOMER + ':' + item.id, + start: addHours(Utils.getParsedDate(item.start_date), 1), + end: addHours(Utils.getParsedDate(item.end_date), 1), title, color: colors.colorCustomer, actions: this.actions, @@ -220,33 +175,33 @@ export class MeetingCalendarComponent implements OnInit { draggable: false } ); - } + }); - for (let i = 0; i < this.internalMeetings.length; i++) { - const user: IUser = this.appService.getConfig().vc_user_by_id[this.internalMeetings[i].owner_user_id]; - const title: string = Utils.getDateTimeToDisplay(this.internalMeetings[i].start_date, true, true) + ' bis ' + - Utils.getDateTimeToDisplay(this.internalMeetings[i].end_date, true, true) + ' - ' + - user.firstname + ' ' + user.lastname + ': ' + 'PLP intern [' + this.internalMeetings[i].title + ']'; + this.internalMeetings.forEach(item => { + const user: IUser = this.appService.getConfig().vc_user_by_id[item.owner_user_id]; + const title: string = Utils.getDateTimeToDisplay(item.start_date, true, true) + ' bis ' + + Utils.getDateTimeToDisplay(item.end_date, true, true) + ' - ' + + user.firstname + ' ' + user.lastname + ': ' + 'PLP intern [' + item.title + ']'; if (null !== filterUser) { - if (filterUser.id !== this.internalMeetings[i].owner_user_id) { + if (filterUser.id !== item.owner_user_id) { let isParticipant = false; - for (let p = 0; p < this.internalMeetings[i].v_participants.length; p++) { - if (filterUser.id === this.internalMeetings[i].v_participants[p].participant_user_id) { + item.v_participants.forEach(item1 => { + if (filterUser.id === item1.participant_user_id) { isParticipant = true; } - } + }); if (!isParticipant) { // Don't show this meeting, since it does not involve filtered user - continue; + return; } } } this.events.push( { - id: MeetingCalendarComponent.MEETING_TYPE_INTERNAL + ':' + this.internalMeetings[i].id, - start: addHours(Utils.getParsedDate(this.internalMeetings[i].start_date), 1), - end: addHours(Utils.getParsedDate(this.internalMeetings[i].end_date), 1), + id: MeetingCalendarComponent.MEETING_TYPE_INTERNAL + ':' + item.id, + start: addHours(Utils.getParsedDate(item.start_date), 1), + end: addHours(Utils.getParsedDate(item.end_date), 1), title, color: colors.colorInternal, actions: this.actions, @@ -258,133 +213,12 @@ export class MeetingCalendarComponent implements OnInit { draggable: false } ); - } - - for (let o = 0; o < this.operatorMeetings.length; o++) { - const operator: IOperator = this.operatorsById[this.operatorMeetings[o].operator_id]; - const user: IUser = this.appService.getConfig().vc_user_by_id[this.operatorMeetings[o].owner_user_id]; - const title: string = Utils.getDateTimeToDisplay(this.operatorMeetings[o].start_date, true, true) + ' bis ' + - Utils.getDateTimeToDisplay(this.operatorMeetings[o].end_date, true, true) + ' - ' + - user.firstname + ' ' + user.lastname + ': ' + - operator.name + ' [' + this.operatorMeetings[o].title + ']'; - - if (null !== filterUser) { - if (filterUser.id !== this.operatorMeetings[o].owner_user_id) { - let isParticipant = false; - for (let p = 0; p < this.operatorMeetings[o].v_participants.length; p++) { - if (filterUser.id === this.operatorMeetings[o].v_participants[p].participant_user_id) { - isParticipant = true; - } - } - if (!isParticipant) { - // Don't show this meeting, since it does not involve filtered user - continue; - } - } - } - this.events.push( - { - id: MeetingCalendarComponent.MEETING_TYPE_OPERATOR + ':' + this.operatorMeetings[o].id, - start: addHours(Utils.getParsedDate(this.operatorMeetings[o].start_date), 1), - end: addHours(Utils.getParsedDate(this.operatorMeetings[o].end_date), 1), - title, - color: colors.colorOperators, - actions: this.actions, - allDay: false, - resizable: { - beforeStart: true, - afterEnd: true - }, - draggable: false - } - ); - } - for (let pr = 0; pr < this.productionMeetings.length; pr++) { - const production: IProduction = this.productionsById[this.productionMeetings[pr].production_id]; - const user: IUser = this.appService.getConfig().vc_user_by_id[this.productionMeetings[pr].owner_user_id]; - const title: string = Utils.getDateTimeToDisplay(this.productionMeetings[pr].start_date, true, true) + ' bis ' + - Utils.getDateTimeToDisplay(this.productionMeetings[pr].end_date, true, true) + ' - ' + - user.firstname + ' ' + user.lastname + ': ' + - production.name + ' [' + this.productionMeetings[pr].title + ']'; - - if (null !== filterUser) { - if (filterUser.id !== this.productionMeetings[pr].owner_user_id) { - let isParticipant = false; - for (let p = 0; p < this.productionMeetings[pr].v_participants.length; p++) { - if (filterUser.id === this.productionMeetings[pr].v_participants[p].participant_user_id) { - isParticipant = true; - } - } - if (!isParticipant) { - // Don't show this meeting, since it does not involve filtered user - continue; - } - } - } - this.events.push( - { - id: MeetingCalendarComponent.MEETING_TYPE_PRODUCTION + ':' + this.productionMeetings[pr].id, - start: addHours(Utils.getParsedDate(this.productionMeetings[pr].start_date), 1), - end: addHours(Utils.getParsedDate(this.productionMeetings[pr].end_date), 1), - title, - color: colors.colorProduction, - actions: this.actions, - allDay: false, - resizable: { - beforeStart: true, - afterEnd: true - }, - draggable: false - } - ); - } - for (let se = 0; se < this.serviceMeetings.length; se++) { - const service: IService = this.servicesById[this.serviceMeetings[se].service_id]; - const user: IUser = this.appService.getConfig().vc_user_by_id[this.serviceMeetings[se].owner_user_id]; - const title: string = Utils.getDateTimeToDisplay(this.serviceMeetings[se].start_date, true, true) + ' bis ' + - Utils.getDateTimeToDisplay(this.serviceMeetings[se].end_date, true, true) + ' - ' + - user.firstname + ' ' + user.lastname + ': ' + - service.name + ' [' + this.serviceMeetings[se].title + ']'; - - if (null !== filterUser) { - if (filterUser.id !== this.serviceMeetings[se].owner_user_id) { - let isParticipant = false; - for (let p = 0; p < this.serviceMeetings[se].v_participants.length; p++) { - if (filterUser.id === this.serviceMeetings[se].v_participants[p].participant_user_id) { - isParticipant = true; - } - } - if (!isParticipant) { - // Don't show this meeting, since it does not involve filtered user - continue; - } - } - } - - this.events.push( - { - id: MeetingCalendarComponent.MEETING_TYPE_SERVICE + ':' + this.serviceMeetings[se].id, - start: addHours(Utils.getParsedDate(this.serviceMeetings[se].start_date), 1), - end: addHours(Utils.getParsedDate(this.serviceMeetings[se].end_date), 1), - title, - color: colors.colorService, - actions: this.actions, - allDay: false, - resizable: { - beforeStart: true, - afterEnd: true - }, - draggable: false - } - ); - } + }); this.refresh.next(); } /** * Day is clicked - * @param date - * @param events */ public dayClicked({ date, events }: { date: Date; events: CalendarEvent[] }): void { if (isSameMonth(date, this.viewDate)) { @@ -402,9 +236,6 @@ export class MeetingCalendarComponent implements OnInit { /** * Times changed event - * @param event - * @param newStart - * @param newEnd */ eventTimesChanged({ event, @@ -426,8 +257,6 @@ export class MeetingCalendarComponent implements OnInit { /** * Handles event - * @param action - * @param event */ public handleEvent(action: string, event: CalendarEvent): void { this.modalData = { event, action }; @@ -441,15 +270,6 @@ export class MeetingCalendarComponent implements OnInit { case MeetingCalendarComponent.MEETING_TYPE_INTERNAL: this.editInternalMeeting.emit(this.internalMeetingsById[idComponents[1]] as IInternalMeeting); break; - case MeetingCalendarComponent.MEETING_TYPE_OPERATOR: - this.editOperatorMeeting.emit(this.operatorMeetingsById[idComponents[1]] as IOperatorMeeting); - break; - case MeetingCalendarComponent.MEETING_TYPE_PRODUCTION: - this.editProductionMeeting.emit(this.productionMeetingsById[idComponents[1]] as IProductionMeeting); - break; - case MeetingCalendarComponent.MEETING_TYPE_SERVICE: - this.editServiceMeeting.emit(this.serviceMeetingsById[idComponents[1]] as IServiceMeeting); - break; } } @@ -475,7 +295,6 @@ export class MeetingCalendarComponent implements OnInit { /** * Delete event - * @param eventToDelete */ public deleteEvent(eventToDelete: CalendarEvent) { this.events = this.events.filter(event => event !== eventToDelete); @@ -483,7 +302,6 @@ export class MeetingCalendarComponent implements OnInit { /** * Set view - * @param view */ public setView(view: CalendarView) { this.view = view; diff --git a/httpdocs/plp-angular/src/app/views/start/meeting-list/meeting-list.component.html b/httpdocs/plp-angular/src/app/views/start/meeting-list/meeting-list.component.html index 79e7084..f3b61c6 100644 --- a/httpdocs/plp-angular/src/app/views/start/meeting-list/meeting-list.component.html +++ b/httpdocs/plp-angular/src/app/views/start/meeting-list/meeting-list.component.html @@ -22,7 +22,6 @@ [suppressCellSelection]="true" [animateRows]="true" [rowSelection]="rowSelection" - [rowDeselection]="true" (gridReady)="onGridReady($event)" (rowClicked)="rowClicked($event)" > diff --git a/httpdocs/plp-angular/src/app/views/start/meeting-list/meeting-list.component.ts b/httpdocs/plp-angular/src/app/views/start/meeting-list/meeting-list.component.ts index be3d412..4e2c78f 100644 --- a/httpdocs/plp-angular/src/app/views/start/meeting-list/meeting-list.component.ts +++ b/httpdocs/plp-angular/src/app/views/start/meeting-list/meeting-list.component.ts @@ -6,14 +6,8 @@ import {IUser} from '../../../model/entities/user'; import {IMeetingType} from '../../../model/entities/meeting-type'; import {AppService} from '../../../services/app.service'; import {IInternalMeeting} from '../../../model/entities/internal-meeting'; -import {IOperatorMeeting} from '../../../model/entities/operator-meeting'; -import {IOperator} from '../../../model/entities/operator'; import {MeetingService} from '../../../services/meeting.service'; import {Utils} from '../../../utils/utils'; -import {IProductionMeeting} from '../../../model/entities/production-meeting'; -import {IServiceMeeting} from '../../../model/entities/service-meeting'; -import {IProduction} from '../../../model/entities/production'; -import {IService} from '../../../model/entities/service'; @Component({ selector: 'app-meeting-list', @@ -24,16 +18,10 @@ import {IService} from '../../../model/entities/service'; export class MeetingListComponent extends AgGridComponent implements OnInit, OnDestroy { @Output() editCustomerMeeting: EventEmitter = new EventEmitter(); - @Output() editOperatorMeeting: EventEmitter = new EventEmitter(); @Output() editInternalMeeting: EventEmitter = new EventEmitter(); - @Output() editProductionMeeting: EventEmitter = new EventEmitter(); - @Output() editServiceMeeting: EventEmitter = new EventEmitter(); private customerMeetings: ICustomerMeeting[]; private internalMeetings: IInternalMeeting[]; - private operatorMeetings: IOperatorMeeting[]; - private productionMeetings: IProductionMeeting[]; - private serviceMeetings: IServiceMeeting[]; private customersById: {}; private operatorsById: {}; private productionsById: {}; @@ -51,9 +39,6 @@ export class MeetingListComponent extends AgGridComponent implements OnInit, OnD this.servicesById = {}; this.customerMeetings = []; this.internalMeetings = []; - this.operatorMeetings = []; - this.productionMeetings = []; - this.serviceMeetings = []; this.customersById = {}; this.participants = []; @@ -90,24 +75,12 @@ export class MeetingListComponent extends AgGridComponent implements OnInit, OnD */ public setData( customersById: {}, - operatorsById: {}, - productionsById: {}, - servicesById: {}, customerMeetings: ICustomerMeeting[], - internalMeetings: IInternalMeeting[], - operatorMeetings: IOperatorMeeting[], - productionMeetings: IProductionMeeting[], - serviceMeetings: IServiceMeeting[] + internalMeetings: IInternalMeeting[] ): void { this.customersById = customersById; - this.operatorsById = operatorsById; - this.productionsById = productionsById; - this.servicesById = servicesById; this.customerMeetings = customerMeetings; this.internalMeetings = internalMeetings; - this.operatorMeetings = operatorMeetings; - this.productionMeetings = productionMeetings; - this.serviceMeetings = serviceMeetings; this.generateEntries(); } @@ -120,58 +93,58 @@ export class MeetingListComponent extends AgGridComponent implements OnInit, OnD let owner: IUser = null; let meetingType: IMeetingType = null; - for (let c = 0; c < this.customerMeetings.length; c++) { - owner = this.appService.getConfig().vc_user_by_id[this.customerMeetings[c].owner_user_id] as IUser; - meetingType = this.appService.getConfig().vc_meeting_types_by_id[this.customerMeetings[c].meeting_type_id] as IMeetingType; - let customerContactName: string = null !== this.customerMeetings[c].firstname) ?; this.customerMeetings[c].firstname + ' '; : ''; - customerContactName += null !== this.customerMeetings[c].lastname; ) ? this.customerMeetings[c].lastname; : ''; - const customer: ICustomer = this.customersById[this.customerMeetings[c].customer_id]; - const creator: IUser = this.appService.getConfig().vc_user_by_id[this.customerMeetings[c].creation_user_id]; + this.customerMeetings.forEach(item => { + owner = this.appService.getConfig().vc_user_by_id[item.owner_user_id] as IUser; + meetingType = this.appService.getConfig().vc_meeting_types_by_id[item.meeting_type_id] as IMeetingType; + let customerContactName: string = null !== item.firstname ? item.firstname + ' ' : ''; + customerContactName += null !== item.lastname ? item.lastname : ''; + const customer: ICustomer = this.customersById[item.customer_id]; + const creator: IUser = this.appService.getConfig().vc_user_by_id[item.creation_user_id]; items.push({ that: this, itemType: 'customer', objectId: customer.id, - id: this.customerMeetings[c].id, - meeting: this.customerMeetings[c], - title: this.customerMeetings[c].title, + id: item.id, + meeting: item, + title: item.title, objectName: customer.name, - dateStart: this.customerMeetings[c].start_date, - dateEnd: this.customerMeetings[c].end_date, + dateStart: item.start_date, + dateEnd: item.end_date, type: meetingType.name, typeType: meetingType.type, - reportExists: this.customerMeetings[c].report !== null ? 'Ja' : 'Nein', - is_option_meeting: this.customerMeetings[c].is_option_meeting, - street: this.customerMeetings[c].street, - street_no: this.customerMeetings[c].street_no, - zip: this.customerMeetings[c].zip, - city: this.customerMeetings[c].city, + reportExists: item.report !== null ? 'Ja' : 'Nein', + is_option_meeting: item.is_option_meeting, + street: item.street, + street_no: item.street_no, + zip: item.zip, + city: item.city, owner: owner.firstname + ' ' + owner.lastname, creator: creator.firstname + ' ' + creator.lastname, contactName: customerContactName, - participants: this.customerMeetings[c].v_participants, - department: this.customerMeetings[c].department, - email: this.customerMeetings[c].email, - phone: this.customerMeetings[c].phone_no, - mobile: this.customerMeetings[c].mobile_no, + participants: item.v_participants, + department: item.department, + email: item.email, + phone: item.phone_no, + mobile: item.mobile_no, }); - } - for (let i = 0; i < this.internalMeetings.length; i++) { - owner = this.appService.getConfig().vc_user_by_id[this.internalMeetings[i].owner_user_id] as IUser; - const creator: IUser = this.appService.getConfig().vc_user_by_id[this.internalMeetings[i].creation_user_id]; + }); + this.internalMeetings.forEach(item => { + owner = this.appService.getConfig().vc_user_by_id[item.owner_user_id] as IUser; + const creator: IUser = this.appService.getConfig().vc_user_by_id[item.creation_user_id]; items.push({ that: this, itemType: 'internal', objectId: null, - id: this.internalMeetings[i].id, - meeting: this.internalMeetings[i], - title: this.internalMeetings[i].title, + id: item.id, + meeting: item, + title: item.title, objectName: 'PLP Intern', - dateStart: this.internalMeetings[i].start_date, - dateEnd: this.internalMeetings[i].end_date, + dateStart: item.start_date, + dateEnd: item.end_date, type: 'Intern', typeType: '', - reportExists: this.internalMeetings[i].report !== null ? 'Ja' : 'Nein', + reportExists: item.report !== null ? 'Ja' : 'Nein', is_option_meeting: '-', street: '', street_no: '', @@ -180,126 +153,19 @@ export class MeetingListComponent extends AgGridComponent implements OnInit, OnD owner: owner.firstname + ' ' + owner.lastname, creator: creator.firstname + ' ' + creator.lastname, contactName: null, - participants: this.internalMeetings[i].v_participants, + participants: item.v_participants, department: null, email: null, phone: null, mobile: null, }); - } - for (let o = 0; o < this.operatorMeetings.length; o++) { - owner = this.appService.getConfig().vc_user_by_id[this.operatorMeetings[o].owner_user_id]; - meetingType = this.appService.getConfig().vc_meeting_types_by_id[this.operatorMeetings[o].meeting_type_id]; - let operatorContactName: string = null !== this.operatorMeetings[o].firstname ? this.operatorMeetings[o].firstname + ' ' : ''; - operatorContactName += null !== this.operatorMeetings[o].lastname ? this.operatorMeetings[o].lastname : ''; - const operator: IOperator = this.operatorsById[this.operatorMeetings[o].operator_id]; - const creator: IUser = this.appService.getConfig().vc_user_by_id[this.operatorMeetings[o].creation_user_id]; - - items.push({ - that: this, - itemType: 'operator', - objectId: operator.id, - id: this.operatorMeetings[o].id, - meeting: this.operatorMeetings[o], - title: this.operatorMeetings[o].title, - objectName: operator.name, - dateStart: this.operatorMeetings[o].start_date, - dateEnd: this.operatorMeetings[o].end_date, - type: meetingType.name, - typeType: meetingType.type, - reportExists: this.operatorMeetings[o].report !== null ? 'Ja' : 'Nein', - is_option_meeting: '-', - street: this.operatorMeetings[o].street, - street_no: this.operatorMeetings[o].street_no, - zip: this.operatorMeetings[o].zip, - city: this.operatorMeetings[o].city, - owner: owner.firstname + ' ' + owner.lastname, - creator: creator.firstname + ' ' + creator.lastname, - contactName: operatorContactName, - participants: this.operatorMeetings[o].v_participants, - department: this.operatorMeetings[o].department, - email: this.operatorMeetings[o].email, - phone: this.operatorMeetings[o].phone_no, - mobile: this.operatorMeetings[o].mobile_no, - }); - } - for (let p = 0; p < this.productionMeetings.length; p++) { - owner = this.appService.getConfig().vc_user_by_id[this.productionMeetings[p].owner_user_id]; - meetingType = this.appService.getConfig().vc_meeting_types_by_id[this.productionMeetings[p].meeting_type_id]; - let contactName: string = null !== this.productionMeetings[p].firstname ? this.productionMeetings[p].firstname + ' ' : ''; - contactName += null !== this.productionMeetings[p].lastname ? this.productionMeetings[p].lastname : ''; - const production: IProduction = this.operatorsById[this.productionMeetings[p].production_id]; - const creator: IUser = this.appService.getConfig().vc_user_by_id[this.productionMeetings[p].creation_user_id]; + }); - items.push({ - that: this, - itemType: 'production', - objectId: production.id, - id: this.productionMeetings[p].id, - meeting: this.productionMeetings[p], - title: this.productionMeetings[p].title, - objectName: production.name, - dateStart: this.productionMeetings[p].start_date, - dateEnd: this.productionMeetings[p].end_date, - type: meetingType.name, - typeType: meetingType.type, - reportExists: this.productionMeetings[p].report !== null ? 'Ja' : 'Nein', - is_option_meeting: '-', - street: this.productionMeetings[p].street, - street_no: this.productionMeetings[p].street_no, - zip: this.productionMeetings[p].zip, - city: this.productionMeetings[p].city, - owner: owner.firstname + ' ' + owner.lastname, - creator: creator.firstname + ' ' + creator.lastname, - contactName, - participants: this.productionMeetings[p].v_participants, - department: this.productionMeetings[p].department, - email: this.productionMeetings[p].email, - phone: this.productionMeetings[p].phone_no, - mobile: this.productionMeetings[p].mobile_no, - }); - } - for (let s = 0; s < this.serviceMeetings.length; s++) { - owner = this.appService.getConfig().vc_user_by_id[this.serviceMeetings[s].owner_user_id]; - meetingType = this.appService.getConfig().vc_meeting_types_by_id[this.serviceMeetings[s].meeting_type_id]; - let contactName: string = null !== this.serviceMeetings[s].firstname ? this.serviceMeetings[s].firstname + ' ' : ''; - contactName += null !== this.serviceMeetings[s].lastname ? this.serviceMeetings[s].lastname : ''; - const service: IService = this.operatorsById[this.serviceMeetings[s].service_id]; - const creator: IUser = this.appService.getConfig().vc_user_by_id[this.serviceMeetings[s].creation_user_id]; - items.push({ - that: this, - itemType: 'service', - objectId: service.id, - id: this.serviceMeetings[s].id, - meeting: this.serviceMeetings[s], - title: this.serviceMeetings[s].title, - objectName: service.name, - dateStart: this.serviceMeetings[s].start_date, - dateEnd: this.serviceMeetings[s].end_date, - type: meetingType.name, - typeType: meetingType.type, - reportExists: this.serviceMeetings[s].report !== null ? 'Ja' : 'Nein', - is_option_meeting: '-', - street: this.serviceMeetings[s].street, - street_no: this.serviceMeetings[s].street_no, - zip: this.serviceMeetings[s].zip, - city: this.serviceMeetings[s].city, - owner: owner.firstname + ' ' + owner.lastname, - creator: creator.firstname + ' ' + creator.lastname, - contactName, - participants: this.serviceMeetings[s].v_participants, - department: this.serviceMeetings[s].department, - email: this.serviceMeetings[s].email, - phone: this.serviceMeetings[s].phone_no, - mobile: this.serviceMeetings[s].mobile_no, - }); - } - this.rowData = items.sort((a: {} , b: {}) => this.dateComparator(a.dateStart, b.dateStart, false)); + this.rowData = items.sort((a: {} , b: {}) => this.dateComparator(a['dateStart'], b['dateStart'], false)); } /** * row is clicked - * @param e */ public rowClicked(e: any): void { switch (e.data.itemType) { @@ -309,25 +175,16 @@ export class MeetingListComponent extends AgGridComponent implements OnInit, OnD case 'internal': this.editInternalMeeting.emit(e.data.meeting); break; - case 'operator': - this.editOperatorMeeting.emit(e.data.meeting); - break; - case 'production': - this.editProductionMeeting.emit(e.data.meeting); - break; - case 'service': - this.editServiceMeeting.emit(e.data.meeting); - break; } } public exportFilteredMeetingList(e: any): void { const exportData: {}[] = []; - this.gridParamsApi.forEachNodeAfterFilter(function(rowNode, index) { + this.gridParamsApi.forEachNodeAfterFilter((rowNode, index) => { const exportEntry: {} = rowNode.data; - delete exportEntry.that; - delete exportEntry.participants; + delete exportEntry['that']; + delete exportEntry['participants']; exportData.push(exportEntry); }); diff --git a/httpdocs/plp-angular/src/app/views/start/start.component.html b/httpdocs/plp-angular/src/app/views/start/start.component.html index d8b372a..0323fa8 100644 --- a/httpdocs/plp-angular/src/app/views/start/start.component.html +++ b/httpdocs/plp-angular/src/app/views/start/start.component.html @@ -6,68 +6,38 @@ + (editInternalMeeting)="rowClickedInternalMeeting($event)"> + (editInternalMeeting)="rowClickedInternalMeeting($event)"> - + - + - - - - - - + - - - - - - - - - - - + - +
-
+ diff --git a/httpdocs/plp-angular/src/app/views/start/start.component.ts b/httpdocs/plp-angular/src/app/views/start/start.component.ts index 331b2bf..204ea27 100644 --- a/httpdocs/plp-angular/src/app/views/start/start.component.ts +++ b/httpdocs/plp-angular/src/app/views/start/start.component.ts @@ -1,4 +1,4 @@ -import {Component, ChangeDetectionStrategy, ViewChild, OnInit, OnDestroy} from '@angular/core'; +import {Component, ChangeDetectionStrategy, ViewChild, OnInit, OnDestroy, NgModule} from '@angular/core'; import {Subscription} from 'rxjs'; import {AppService} from '../../services/app.service'; import {CustomerService} from '../../services/customer.service'; @@ -17,19 +17,7 @@ import {InternalMeetingEditComponent} from './internal-meeting-edit/internal-mee import {Factory} from '../../factory/factory'; import {InternalMeetingDetailComponent} from './internal-meeting-detail/internal-meeting-detail.component'; import {IMeetingData} from '../../model/virtual/meeting-data'; -import {IOperatorMeeting} from '../../model/entities/operator-meeting'; -import {IOperator} from '../../model/entities/operator'; -import {OperatorMeetingDetailComponent} from '../operators/operator-view/operator-meeting-detail/operator-meeting-detail.component'; -import {IProduction} from '../../model/entities/production'; -import {IService} from '../../model/entities/service'; -import {IProductionMeeting} from '../../model/entities/production-meeting'; -import {IServiceMeeting} from '../../model/entities/service-meeting'; -import { - ProductionMeetingDetailComponent -} from '../productions/production-view/production-meeting-detail/production-meeting-detail.component'; -import { - ServiceMeetingDetailComponent -} from '../services/service-view/service-meeting-detail/service-meeting-detail.component'; +import {TabComponent} from '../../components/tab/tab.component'; @Component({ selector: 'app-start', @@ -51,32 +39,15 @@ export class StartComponent implements OnInit, OnDestroy { @ViewChild('modalCustomerMeetingEditStart', {static: true}) modalCustomerMeetingEditStart: ModalComponent; @ViewChild('customerMeetingDetailStart', {static: true}) customerMeetingDetailStart: CustomerMeetingDetailComponent; @ViewChild('customerMeetingEditStart', {static: true}) customerMeetingEditStart: CustomerMeetingEditComponent; - @ViewChild('modalOperatorMeetingDetailStart', {static: true}) modalOperatorMeetingDetailStart: ModalComponent; - @ViewChild('operatorMeetingDetailStart', {static: true}) operatorMeetingDetailStart: OperatorMeetingDetailComponent; - @ViewChild('modalProductionMeetingDetailStart', {static: true}) modalProductionMeetingDetailStart: ModalComponent; - @ViewChild('productionMeetingDetailStart', {static: true}) productionMeetingDetailStart: ProductionMeetingDetailComponent; - @ViewChild('modalServiceMeetingDetailStart', {static: true}) modalServiceMeetingDetailStart: ModalComponent; - @ViewChild('serviceMeetingDetailStart', {static: true}) serviceMeetingDetailStart: ServiceMeetingDetailComponent; private customers: ICustomer[]; private customersById: {}; - private operators: IOperator[]; private operatorsById: {}; - private productions: IProduction[]; - private productionsById: {}; - private services: IService[]; - private servicesById: {}; private customersSub: Subscription; - private operatorsSub: Subscription; - private productionsSub: Subscription; - private servicesSub: Subscription; private meetingData: IMeetingData; private meetingsSub: Subscription; private customerMeetings: ICustomerMeeting[]; private internalMeetings: IInternalMeeting[]; - private operatorMeetings: IOperatorMeeting[]; - private productionMeetings: IProductionMeeting[]; - private serviceMeetings: IServiceMeeting[]; constructor( private appService: AppService, @@ -88,13 +59,9 @@ export class StartComponent implements OnInit, OnDestroy { ngOnInit() { this.customers = null; this.customersById = {}; - this.operators = null; this.operatorsById = {}; this.customerMeetings = null; this.internalMeetings = null; - this.operatorMeetings = null; - this.productionMeetings = null; - this.serviceMeetings = null; this.customerService.apiGetCustomerData(); this.meetingService.apiGetMeetingData(); @@ -113,15 +80,9 @@ export class StartComponent implements OnInit, OnDestroy { if (null !== data) { this.customerMeetings = data.customerMeetings; this.internalMeetings = data.internalMeetings; - this.operatorMeetings = data.operatorMeetings; - this.productionMeetings = data.productionMeetings; - this.serviceMeetings = data.serviceMeetings; } else { this.customerMeetings = null; this.internalMeetings = null; - this.operatorMeetings = null; - this.productionMeetings = null; - this.serviceMeetings = null; } this.setComponentData(); } @@ -133,36 +94,17 @@ export class StartComponent implements OnInit, OnDestroy { */ private setComponentData() { if (null !== this.customers && - null !== this.operators && - null !== this.productions && - null !== this.services && null !== this.customerMeetings && - null !== this.internalMeetings && - null !== this.operatorMeetings && - null !== this.productionMeetings && - null !== this.serviceMeetings - ) { + null !== this.internalMeetings) { this.meetingCalendar.setData( this.customersById, - this.operatorsById, - this.productionsById, - this.servicesById, this.customerMeetings, this.internalMeetings, - this.operatorMeetings, - this.productionMeetings, - this.serviceMeetings ); this.meetingList.setData( this.customersById, - this.operatorsById, - this.productionsById, - this.servicesById, this.customerMeetings, this.internalMeetings, - this.operatorMeetings, - this.productionMeetings, - this.serviceMeetings ); } } @@ -172,26 +114,11 @@ export class StartComponent implements OnInit, OnDestroy { this.customerMeetingDetailStart.setData(this.customersById[e.customer_id], e); } - public rowClickedOperatorMeeting(e: IOperatorMeeting): void { - this.modalOperatorMeetingDetailStart.openModal(); - this.operatorMeetingDetailStart.setData(this.operatorsById[e.operator_id], e); - } - public rowClickedInternalMeeting(e: IInternalMeeting): void { this.modalInternalMeetingDetailStart.openModal(); this.internalMeetingDetailStart.setData(e); } - public rowClickedProductionMeeting(e: IProductionMeeting): void { - this.modalProductionMeetingDetailStart.openModal(); - this.productionMeetingDetailStart.setData(this.productionsById[e.production_id], e); - } - - public rowClickedServiceMeeting(e: IServiceMeeting): void { - this.modalServiceMeetingDetailStart.openModal(); - this.serviceMeetingDetailStart.setData(this.servicesById[e.service_id], e); - } - public editCustomerMeetingFunction(customerMeeting: ICustomerMeeting): void { this.meetingService.apiEditCustomerMeeting(customerMeeting).subscribe( data => { @@ -223,37 +150,6 @@ export class StartComponent implements OnInit, OnDestroy { ); } - public editOperatorMeetingFunction(operatorMeeting: IOperatorMeeting): void { - this.meetingService.apiEditOperatorMeeting(operatorMeeting).subscribe( - data => { - this.operatorMeetingDetailStart.updateData(data.result_data as IOperator); - }, - error => { - } - ); - } - - public editOperatorMeetingReportFunction(reportValues: any): void { - const meetingId: number = reportValues.id; - const report: string = reportValues.report; - this.meetingService.apiEditOperatorMeetingReport(meetingId, report).subscribe( - data => { - this.operatorMeetingDetailStart.updateData(data.result_data as IOperator); - }, - error => {} - ); - } - - public deleteOperatorMeetingFunction(operatorMeetingId: number): void { - this.meetingService.apiDeleteOperatorMeeting(operatorMeetingId).subscribe( - data => { - this.modalOperatorMeetingDetailStart.exitModal(); - }, - error => { - } - ); - } - public editInternalMeetingFunction(internalMeeting: IInternalMeeting): void { this.meetingService.apiEditInternalMeeting(internalMeeting).subscribe( data => { @@ -299,68 +195,6 @@ export class StartComponent implements OnInit, OnDestroy { ); } - public editProductionMeetingFunction(productionMeeting: IProductionMeeting): void { - this.meetingService.apiEditProductionMeeting(productionMeeting).subscribe( - data => { - this.productionMeetingDetailStart.updateData(data.result_data as IProduction); - }, - error => { - } - ); - } - - public editProductionMeetingReportFunction(reportValues: any): void { - const meetingId: number = reportValues.id; - const report: string = reportValues.report; - this.meetingService.apiEditProductionMeetingReport(meetingId, report).subscribe( - data => { - this.productionMeetingDetailStart.updateData(data.result_data as IProduction); - }, - error => {} - ); - } - - public deleteProductionMeetingFunction(productionMeetingId: number): void { - this.meetingService.apiDeleteProductionMeeting(productionMeetingId).subscribe( - data => { - this.modalProductionMeetingDetailStart.exitModal(); - }, - error => { - } - ); - } - - public editServiceMeetingFunction(serviceMeeting: IServiceMeeting): void { - this.meetingService.apiEditServiceMeeting(serviceMeeting).subscribe( - data => { - this.serviceMeetingDetailStart.updateData(data.result_data as IService); - }, - error => { - } - ); - } - - public editServiceMeetingReportFunction(reportValues: any): void { - const meetingId: number = reportValues.id; - const report: string = reportValues.report; - this.meetingService.apiEditServiceMeetingReport(meetingId, report).subscribe( - data => { - this.serviceMeetingDetailStart.updateData(data.result_data as IService); - }, - error => {} - ); - } - - public deleteServiceMeetingFunction(serviceMeetingId: number): void { - this.meetingService.apiDeleteServiceMeeting(serviceMeetingId).subscribe( - data => { - this.modalServiceMeetingDetailStart.exitModal(); - }, - error => { - } - ); - } - /** * Destroy */ diff --git a/httpdocs/plp-angular/src/scss/styles.scss b/httpdocs/plp-angular/src/scss/styles.scss index 133a711..45b4fe2 100644 --- a/httpdocs/plp-angular/src/scss/styles.scss +++ b/httpdocs/plp-angular/src/scss/styles.scss @@ -13,9 +13,9 @@ @import "components/tabs"; /* angular-cli file: src/styles.css */ -@import "~angular-calendar/css/angular-calendar.css"; -@import "~ag-grid-community/dist/styles/ag-grid.css"; -@import "~ag-grid-community/dist/styles/ag-theme-balham.css"; +/*@import "~angular-calendar/css/angular-calendar.css";*/ +@import "~ag-grid-community/styles/ag-grid.css"; +@import "~ag-grid-community/styles/ag-theme-balham.css"; /* apply a natural box layout model to all elements, but allowing person to change */ html {box-sizing:border-box;} diff --git a/httpdocs/plp-angular/tsconfig.app.json b/httpdocs/plp-angular/tsconfig.app.json index 54ccc58..1882923 100644 --- a/httpdocs/plp-angular/tsconfig.app.json +++ b/httpdocs/plp-angular/tsconfig.app.json @@ -2,7 +2,7 @@ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/app", - "types": [] + "types": ["node"] }, "files": [ "src/main.ts", @@ -16,6 +16,6 @@ "src/**/*.spec.ts" ], "types": [ - "node" + ] }