diff --git a/package-lock.json b/package-lock.json index 3ae8143a..c9f41a4c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,73 +1,84 @@ { "name": "fuse-angular", - "version": "17.2.0", + "version": "18.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "fuse-angular", - "version": "17.2.0", + "version": "18.0.0", "license": "https://themeforest.net/licenses/standard", "dependencies": { - "@angular/animations": "15.1.1", - "@angular/cdk": "15.1.1", - "@angular/common": "15.1.1", - "@angular/compiler": "15.1.1", - "@angular/core": "15.1.1", - "@angular/forms": "15.1.1", - "@angular/material": "15.1.1", - "@angular/material-luxon-adapter": "15.1.1", - "@angular/platform-browser": "15.1.1", - "@angular/platform-browser-dynamic": "15.1.1", - "@angular/router": "15.1.1", - "@ngneat/transloco": "4.2.2", - "apexcharts": "3.36.3", + "@angular/animations": "16.0.3", + "@angular/cdk": "16.0.2", + "@angular/common": "16.0.3", + "@angular/compiler": "16.0.3", + "@angular/core": "16.0.3", + "@angular/forms": "16.0.3", + "@angular/material": "16.0.2", + "@angular/material-luxon-adapter": "16.0.2", + "@angular/platform-browser": "16.0.3", + "@angular/platform-browser-dynamic": "16.0.3", + "@angular/router": "16.0.3", + "@ngneat/transloco": "4.2.7", + "apexcharts": "3.40.0", "crypto-js": "3.3.0", - "highlight.js": "11.7.0", + "highlight.js": "11.8.0", "lodash-es": "4.17.21", - "luxon": "3.2.1", - "ng-apexcharts": "1.7.4", - "ngx-quill": "20.0.1", + "luxon": "3.3.0", + "ng-apexcharts": "1.7.6", + "ngx-quill": "22.0.0", "perfect-scrollbar": "1.5.5", "quill": "1.3.7", - "rxjs": "7.8.0", - "tslib": "2.4.1", - "zone.js": "0.12.0" + "rxjs": "7.8.1", + "tslib": "2.5.2", + "zone.js": "0.13.0" }, "devDependencies": { - "@angular-devkit/build-angular": "15.1.2", - "@angular/cli": "15.1.2", - "@angular/compiler-cli": "15.1.1", - "@tailwindcss/line-clamp": "0.4.2", + "@angular-devkit/build-angular": "16.0.3", + "@angular/cli": "16.0.3", + "@angular/compiler-cli": "16.0.3", "@tailwindcss/typography": "0.5.9", - "@types/chroma-js": "2.1.4", + "@types/chroma-js": "2.4.0", "@types/crypto-js": "3.1.47", "@types/highlight.js": "10.1.0", - "@types/jasmine": "4.3.1", - "@types/lodash": "4.14.191", - "@types/lodash-es": "4.17.6", - "@types/luxon": "3.2.0", - "autoprefixer": "10.4.13", + "@types/jasmine": "4.3.2", + "@types/lodash": "4.14.195", + "@types/lodash-es": "4.17.7", + "@types/luxon": "3.3.0", + "autoprefixer": "10.4.14", "chroma-js": "2.4.2", - "jasmine-core": "4.5.0", - "karma": "6.4.1", - "karma-chrome-launcher": "3.1.1", + "jasmine-core": "5.0.0", + "karma": "6.4.2", + "karma-chrome-launcher": "3.2.0", "karma-coverage": "2.2.0", "karma-jasmine": "5.1.0", "karma-jasmine-html-reporter": "2.0.0", "lodash": "4.17.21", - "postcss": "8.4.21", - "tailwindcss": "3.2.4", - "typescript": "4.9.4" + "postcss": "8.4.24", + "tailwindcss": "3.3.2", + "typescript": "5.0.4" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { @@ -75,71 +86,55 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1501.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1501.2.tgz", - "integrity": "sha512-AfORVGLN0FBIUXO3FkfGOKu+Gz6oJjF8Bu8cPn27duiI0wszxGNY3fATKwbSg7JcKx1oQS/G7RjyC5OiTA6a0Q==", + "version": "0.1600.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1600.3.tgz", + "integrity": "sha512-XEncYhrQDwHjDBWqSv9oeufzsYQNHVP+ftD0LWtqL4TvOwsJ5ShWEqkjXIfG9FiaIUtmd6X2BBXutbib/yALxA==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.1.2", - "rxjs": "6.6.7" + "@angular-devkit/core": "16.0.3", + "rxjs": "7.8.1" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^16.14.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": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/architect/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/@angular-devkit/build-angular": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-15.1.2.tgz", - "integrity": "sha512-8udBKfHo3c/hOuh6VB11UKQZcqbolcNW2smtM9HJMm3fcykvyFEIitoCyl/tgraST+14/kA4aiINdl4EQ4BanQ==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.0.3.tgz", + "integrity": "sha512-AMxxrK0eMN7s6N4nxq0ZvyVIKwBD6L0xEb3kHOCt6BSSy7KdKnc3hTjB6ozQuzZog01xqtIfS87jsVA8WoRD2Q==", "dev": true, "dependencies": { - "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1501.2", - "@angular-devkit/build-webpack": "0.1501.2", - "@angular-devkit/core": "15.1.2", - "@babel/core": "7.20.12", - "@babel/generator": "7.20.7", + "@ampproject/remapping": "2.2.1", + "@angular-devkit/architect": "0.1600.3", + "@angular-devkit/build-webpack": "0.1600.3", + "@angular-devkit/core": "16.0.3", + "@babel/core": "7.21.4", + "@babel/generator": "7.21.4", "@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.19.6", - "@babel/preset-env": "7.20.2", - "@babel/runtime": "7.20.7", + "@babel/plugin-transform-runtime": "7.21.4", + "@babel/preset-env": "7.21.4", + "@babel/runtime": "7.21.0", "@babel/template": "7.20.7", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "15.1.2", + "@ngtools/webpack": "16.0.3", + "@vitejs/plugin-basic-ssl": "1.0.1", "ansi-colors": "4.1.3", - "autoprefixer": "10.4.13", + "autoprefixer": "10.4.14", "babel-loader": "9.1.2", "babel-plugin-istanbul": "6.1.1", - "browserslist": "4.21.4", - "cacache": "17.0.4", + "browserslist": "4.21.5", + "cacache": "17.0.6", "chokidar": "3.5.3", "copy-webpack-plugin": "11.0.0", "critters": "0.0.16", "css-loader": "6.7.3", - "esbuild-wasm": "0.16.17", - "glob": "8.0.3", + "esbuild-wasm": "0.17.18", + "glob": "8.1.0", "https-proxy-agent": "5.0.1", "inquirer": "8.2.4", "jsonc-parser": "3.2.0", @@ -148,49 +143,54 @@ "less-loader": "11.1.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.2.1", - "magic-string": "0.27.0", - "mini-css-extract-plugin": "2.7.2", - "open": "8.4.0", + "magic-string": "0.30.0", + "mini-css-extract-plugin": "2.7.5", + "mrmime": "1.0.1", + "open": "8.4.2", "ora": "5.4.1", - "parse5-html-rewriting-stream": "6.0.1", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "2.3.1", "piscina": "3.2.0", - "postcss": "8.4.21", - "postcss-loader": "7.0.2", + "postcss": "8.4.23", + "postcss-loader": "7.2.4", "resolve-url-loader": "5.0.0", - "rxjs": "6.6.7", - "sass": "1.57.1", - "sass-loader": "13.2.0", - "semver": "7.3.8", + "rxjs": "7.8.1", + "sass": "1.62.1", + "sass-loader": "13.2.2", + "semver": "7.4.0", "source-map-loader": "4.0.1", "source-map-support": "0.5.21", - "terser": "5.16.1", + "terser": "5.17.1", "text-table": "0.2.0", "tree-kill": "1.2.2", - "tslib": "2.4.1", - "webpack": "5.75.0", - "webpack-dev-middleware": "6.0.1", - "webpack-dev-server": "4.11.1", + "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-merge": "5.8.0", "webpack-subresource-integrity": "5.1.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^16.14.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.16.17" + "esbuild": "0.17.18" }, "peerDependencies": { - "@angular/compiler-cli": "^15.0.0", - "@angular/localize": "^15.0.0", - "@angular/platform-server": "^15.0.0", - "@angular/service-worker": "^15.0.0", + "@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", "karma": "^6.3.0", - "ng-packagr": "^15.0.0", + "ng-packagr": "^16.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=4.8.2 <5.0" + "typescript": ">=4.9.3 <5.1" }, "peerDependenciesMeta": { "@angular/localize": { @@ -202,6 +202,12 @@ "@angular/service-worker": { "optional": true }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, "karma": { "optional": true }, @@ -216,45 +222,6 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@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.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==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "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", @@ -265,9 +232,9 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "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", @@ -284,9 +251,9 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "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" @@ -295,58 +262,66 @@ "node": ">=10" } }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "node_modules/@angular-devkit/build-angular/node_modules/postcss": { + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "tslib": "^1.9.0" + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" }, "engines": { - "npm": ">=2.0.0" + "node": "^10 || ^12 || >=14" } }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "node_modules/@angular-devkit/build-angular/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==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true }, - "node_modules/@angular-devkit/build-angular/node_modules/webpack-dev-middleware": { - "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==", - "dev": true, - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.12", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1501.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1501.2.tgz", - "integrity": "sha512-FzslFvjuAabwtz2wMTCeemYCJA4NqRECz+WEsEZbtwESBMmKdaqmpbdW9ypsepB2iC7eIbHK43R95XAM75utTw==", + "version": "0.1600.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1600.3.tgz", + "integrity": "sha512-b9AO5Kk+uOIK65x9IY1hTNCBs81G681qYRP1kmH8hD0yCC89l+dm0zM+D18s7syWJGem+1iSmceX2D5IOOVstg==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1501.2", - "rxjs": "6.6.7" + "@angular-devkit/architect": "0.1600.3", + "rxjs": "7.8.1" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^16.14.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -355,38 +330,20 @@ "webpack-dev-server": "^4.0.0" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/build-webpack/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/@angular-devkit/core": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.1.2.tgz", - "integrity": "sha512-wkLZYvTZt30Ge6Z83Gxsr6mO1TIHCu3SImdE0zwW63EdU9o1NYkU74z1D9VUZ9Up7uHi1cHs/dssbxUuZ4eWOA==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.0.3.tgz", + "integrity": "sha512-3Epwyl0jlLP4X1hT8rl6fF66aGX6a/OvERvDFyaSI5fgMmiO/mN44JXeew9G6OE8XFQoV/cofrroYQ+Ugy+nJw==", "dev": true, "dependencies": { "ajv": "8.12.0", "ajv-formats": "2.1.1", "jsonc-parser": "3.2.0", - "rxjs": "6.6.7", + "rxjs": "7.8.1", "source-map": "0.7.4" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^16.14.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -399,78 +356,42 @@ } } }, - "node_modules/@angular-devkit/core/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/core/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/@angular-devkit/schematics": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.1.2.tgz", - "integrity": "sha512-HjJPm+4SS5TdAHHvdpXLv25wsvwVOn5RYs0A9MazTndlm80ct3PKeYUgakNDRFjRj8uORNlJMKmQIIhUSDjFsw==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.0.3.tgz", + "integrity": "sha512-mWvEKtuWi8GjplhdogJ48e8/19Fa6JjyFvRJulZNFUpxfAUUTOAJ1e5FuxbK9mwD2f2NGOJf0/6wIl9ldj4jUg==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.1.2", + "@angular-devkit/core": "16.0.3", "jsonc-parser": "3.2.0", - "magic-string": "0.27.0", + "magic-string": "0.30.0", "ora": "5.4.1", - "rxjs": "6.6.7" + "rxjs": "7.8.1" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^16.14.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": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/@angular/animations": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-15.1.1.tgz", - "integrity": "sha512-oQrbO7uDsw1VcqhuSqvwQQPxEUjmssMM3nDbFUrs6A0MX7XIuhGnkB7mN35M6ZSd0Chj9DMzgbrYToPg1LoLHQ==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.0.3.tgz", + "integrity": "sha512-YKy3ECR3+Os1viw3FhBJ+pUqPTACGB1sxeZ2LYCX8LLynpetQ/yQQWQUYDGXEZQJrXlnnDS8QDlebEIvk1hCcQ==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "15.1.1" + "@angular/core": "16.0.3" } }, "node_modules/@angular/cdk": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-15.1.1.tgz", - "integrity": "sha512-99zaW+EqS/pJh2BLxC+L+/mAyaC3oncRUqRL4WWLENZI2lqD6mCe/kRYDL57WbSZaI54Of38u9GhkBVA/0rn7A==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-16.0.2.tgz", + "integrity": "sha512-wspHIYEnYPDBcDldm3tKJU3FJW/M6fB0N+ja+79Amo3+yQBpkr57mfjRYaLGaPZeHXsRah8y+P7YGj6I8NN7Pw==", "dependencies": { "tslib": "^2.3.0" }, @@ -478,72 +399,87 @@ "parse5": "^7.1.2" }, "peerDependencies": { - "@angular/common": "^15.0.0 || ^16.0.0", - "@angular/core": "^15.0.0 || ^16.0.0", + "@angular/common": "^16.0.0 || ^17.0.0", + "@angular/core": "^16.0.0 || ^17.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/cli": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.1.2.tgz", - "integrity": "sha512-h42k410W6PPnz9KjX8dCtruMqf1mHgIf7UWrLa8icKpk03U2SIgoJzaXgY/spSHiMGIdDnY1dAYKWV0GQS4zEg==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.0.3.tgz", + "integrity": "sha512-yZQSfjxy1Tw2nAU5q1NEiE+qGDfVSqFJPptsRSi8C1DhOtwFI4mCbUjdX9l8X+J3y+trKCyaTtPhljs12TQrWg==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1501.2", - "@angular-devkit/core": "15.1.2", - "@angular-devkit/schematics": "15.1.2", - "@schematics/angular": "15.1.2", + "@angular-devkit/architect": "0.1600.3", + "@angular-devkit/core": "16.0.3", + "@angular-devkit/schematics": "16.0.3", + "@schematics/angular": "16.0.3", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", - "ini": "3.0.1", + "ini": "4.0.0", "inquirer": "8.2.4", "jsonc-parser": "3.2.0", "npm-package-arg": "10.1.0", "npm-pick-manifest": "8.0.1", - "open": "8.4.0", + "open": "8.4.2", "ora": "5.4.1", - "pacote": "15.0.8", - "resolve": "1.22.1", - "semver": "7.3.8", + "pacote": "15.1.3", + "resolve": "1.22.2", + "semver": "7.4.0", "symbol-observable": "4.0.0", - "yargs": "17.6.2" + "yargs": "17.7.2" }, "bin": { "ng": "bin/ng.js" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^16.14.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, + "node_modules/@angular/cli/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==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@angular/common": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.1.1.tgz", - "integrity": "sha512-P4f2rK/YBQQT4clQrcQ9goLf53RS63Q1x2d1dvz7Syr3gcOUyxO7NZQ7Au5afzvbIKZ5Okd+X0+TCGV4q9wQjw==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.0.3.tgz", + "integrity": "sha512-pN1Mz2xwPs9+W3i+wBletdPMJC+exP9dCdy+iSG5pwpvii1jF3CbstHAPE/pmsoUlQ9nN+vrFowDAXVV7FQpWw==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "15.1.1", + "@angular/core": "16.0.3", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-15.1.1.tgz", - "integrity": "sha512-A35iXLTTDEej4F2tm5t1flA+5Tv+jYAkQx+d0xvH6LDiWvsiDsOe5OjP8L2LD8dejwWl/JYUz2TH0JZcvw0uqA==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.0.3.tgz", + "integrity": "sha512-LF/AS0bFXQ+qn6a8Ogx5nNHTYxf+OUYLXQYWECrKCJ4HSsouKDmQ/k8UPlh0gWt9NqQ4SPp9mNpzQhQ4Hq+rXw==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "15.1.1" + "@angular/core": "16.0.3" }, "peerDependenciesMeta": { "@angular/core": { @@ -552,17 +488,15 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-15.1.1.tgz", - "integrity": "sha512-sBYvh6Y08aKuZPAVwzT1YGVfG63xeXElEfAfq6No9FLUHDo83QB9fU7ovXnu1RJFJiVIy16DHjmTpAmgvlomGA==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.0.3.tgz", + "integrity": "sha512-h4dnQqvaXOqNWiNgnolahKRoArVJ3r0DW27lTru4eSrnYv+Pd1cDAlBihEJq1Yk76W9wFCN3UjtRwkb1d1ZjUg==", "dev": true, "dependencies": { - "@babel/core": "7.19.3", + "@babel/core": "7.21.8", "@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", @@ -571,36 +505,36 @@ "bin": { "ng-xi18n": "bundles/src/bin/ng_xi18n.js", "ngc": "bundles/src/bin/ngc.js", - "ngcc": "bundles/ngcc/main-ngcc.js" + "ngcc": "bundles/ngcc/index.js" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/compiler": "15.1.1", - "typescript": ">=4.8.2 <5.0" + "@angular/compiler": "16.0.3", + "typescript": ">=4.9.3 <5.1" } }, "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==", + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz", + "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==", "dev": true, "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", + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helpers": "^7.21.5", + "@babel/parser": "^7.21.8", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5", "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": { @@ -620,129 +554,144 @@ "semver": "bin/semver.js" } }, + "node_modules/@angular/compiler-cli/node_modules/@babel/generator": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.3.tgz", + "integrity": "sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.3", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@angular/core": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-15.1.1.tgz", - "integrity": "sha512-nsz+IXdkQanAGhqA2vcwTrGGyw5zIm3TgtYQ/JqK185qkmlhsQfSRvdSPsFPhmIFYp9ngZVUbkhY3D4P3gDzIg==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.0.3.tgz", + "integrity": "sha512-vaUOLgDk03aKDHX6jtv4NEDB6gEBCXvgTpvsTmDUXcCa9WxyXs4Ak22q9ZyNln8/7UG5Uo1gTn90FlOAh9jHww==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.11.4 || ~0.12.0" + "zone.js": "~0.13.0" } }, "node_modules/@angular/forms": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-15.1.1.tgz", - "integrity": "sha512-1c/oZD+eSbGzDCcmC+hOqkPH+AzLOiGHxII5QiOOj8so8M958UBrsFBwrnLz06d9OK5Z4IrR4UL2JJspZNbpjw==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.0.3.tgz", + "integrity": "sha512-bCDD17HO9yzKNo4dFJm1doHDlkeBJaIrZKOEtwU6GJ4UcfhBV/xS+upYzZggj4SRIcKbu+ivWhoNGSJS3Lgo/w==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "15.1.1", - "@angular/core": "15.1.1", - "@angular/platform-browser": "15.1.1", + "@angular/common": "16.0.3", + "@angular/core": "16.0.3", + "@angular/platform-browser": "16.0.3", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/material": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-15.1.1.tgz", - "integrity": "sha512-QhyTJv9CnimXKXb4LCH93ovJVAdnoHyElwspl80PcfAV/6A6VrRQAflFoul0WL4WPrV50DG7TWYiEwHPpblbCw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-16.0.2.tgz", + "integrity": "sha512-0bOWXfKsSDiRP39Nv4mJr85G6dChJTI3sNx5g9aWb88il0AiJP0CjgVqMkjoPlzNEcxewWJ8EEPGHf2maszNFQ==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/auto-init": "15.0.0-canary.684e33d25.0", - "@material/banner": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/button": "15.0.0-canary.684e33d25.0", - "@material/card": "15.0.0-canary.684e33d25.0", - "@material/checkbox": "15.0.0-canary.684e33d25.0", - "@material/chips": "15.0.0-canary.684e33d25.0", - "@material/circular-progress": "15.0.0-canary.684e33d25.0", - "@material/data-table": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dialog": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/drawer": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/fab": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/floating-label": "15.0.0-canary.684e33d25.0", - "@material/form-field": "15.0.0-canary.684e33d25.0", - "@material/icon-button": "15.0.0-canary.684e33d25.0", - "@material/image-list": "15.0.0-canary.684e33d25.0", - "@material/layout-grid": "15.0.0-canary.684e33d25.0", - "@material/line-ripple": "15.0.0-canary.684e33d25.0", - "@material/linear-progress": "15.0.0-canary.684e33d25.0", - "@material/list": "15.0.0-canary.684e33d25.0", - "@material/menu": "15.0.0-canary.684e33d25.0", - "@material/menu-surface": "15.0.0-canary.684e33d25.0", - "@material/notched-outline": "15.0.0-canary.684e33d25.0", - "@material/radio": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/segmented-button": "15.0.0-canary.684e33d25.0", - "@material/select": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/slider": "15.0.0-canary.684e33d25.0", - "@material/snackbar": "15.0.0-canary.684e33d25.0", - "@material/switch": "15.0.0-canary.684e33d25.0", - "@material/tab": "15.0.0-canary.684e33d25.0", - "@material/tab-bar": "15.0.0-canary.684e33d25.0", - "@material/tab-indicator": "15.0.0-canary.684e33d25.0", - "@material/tab-scroller": "15.0.0-canary.684e33d25.0", - "@material/textfield": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tooltip": "15.0.0-canary.684e33d25.0", - "@material/top-app-bar": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/auto-init": "15.0.0-canary.576d3d2c8.0", + "@material/banner": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/button": "15.0.0-canary.576d3d2c8.0", + "@material/card": "15.0.0-canary.576d3d2c8.0", + "@material/checkbox": "15.0.0-canary.576d3d2c8.0", + "@material/chips": "15.0.0-canary.576d3d2c8.0", + "@material/circular-progress": "15.0.0-canary.576d3d2c8.0", + "@material/data-table": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dialog": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/drawer": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/fab": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/floating-label": "15.0.0-canary.576d3d2c8.0", + "@material/form-field": "15.0.0-canary.576d3d2c8.0", + "@material/icon-button": "15.0.0-canary.576d3d2c8.0", + "@material/image-list": "15.0.0-canary.576d3d2c8.0", + "@material/layout-grid": "15.0.0-canary.576d3d2c8.0", + "@material/line-ripple": "15.0.0-canary.576d3d2c8.0", + "@material/linear-progress": "15.0.0-canary.576d3d2c8.0", + "@material/list": "15.0.0-canary.576d3d2c8.0", + "@material/menu": "15.0.0-canary.576d3d2c8.0", + "@material/menu-surface": "15.0.0-canary.576d3d2c8.0", + "@material/notched-outline": "15.0.0-canary.576d3d2c8.0", + "@material/radio": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/segmented-button": "15.0.0-canary.576d3d2c8.0", + "@material/select": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/slider": "15.0.0-canary.576d3d2c8.0", + "@material/snackbar": "15.0.0-canary.576d3d2c8.0", + "@material/switch": "15.0.0-canary.576d3d2c8.0", + "@material/tab": "15.0.0-canary.576d3d2c8.0", + "@material/tab-bar": "15.0.0-canary.576d3d2c8.0", + "@material/tab-indicator": "15.0.0-canary.576d3d2c8.0", + "@material/tab-scroller": "15.0.0-canary.576d3d2c8.0", + "@material/textfield": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tooltip": "15.0.0-canary.576d3d2c8.0", + "@material/top-app-bar": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/animations": "^15.0.0 || ^16.0.0", - "@angular/cdk": "15.1.1", - "@angular/common": "^15.0.0 || ^16.0.0", - "@angular/core": "^15.0.0 || ^16.0.0", - "@angular/forms": "^15.0.0 || ^16.0.0", - "@angular/platform-browser": "^15.0.0 || ^16.0.0", + "@angular/animations": "^16.0.0 || ^17.0.0", + "@angular/cdk": "16.0.2", + "@angular/common": "^16.0.0 || ^17.0.0", + "@angular/core": "^16.0.0 || ^17.0.0", + "@angular/forms": "^16.0.0 || ^17.0.0", + "@angular/platform-browser": "^16.0.0 || ^17.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/material-luxon-adapter": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/material-luxon-adapter/-/material-luxon-adapter-15.1.1.tgz", - "integrity": "sha512-J3yYt3zfP4oNBedDPvP6JD6w3uUzwGkYDOkptbrYmy7SpH9Zyut84jcF++gjkFJqFB9tyCJxB/d/sSzEMJUOBQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@angular/material-luxon-adapter/-/material-luxon-adapter-16.0.2.tgz", + "integrity": "sha512-I8lafeMKrn1vSOSooqXZNVACP7IxL04YVZ5T48zpbSUrxAZCqZzPN7wDCZcYy+MalhU8jf5JBrnAt/QJwqveYg==", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/core": "^15.0.0 || ^16.0.0", - "@angular/material": "15.1.1", + "@angular/core": "^16.0.0 || ^17.0.0", + "@angular/material": "16.0.2", "luxon": "^3.0.0" } }, "node_modules/@angular/platform-browser": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-15.1.1.tgz", - "integrity": "sha512-U1MXowvyigmMpffsnMQI6e9gX7tA6Su7unY0pjN5u9wRYJIkEbKuFyVijguQ83bt+JK3ZBHXD0dvskYnscGUzg==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.0.3.tgz", + "integrity": "sha512-3YzRixYdmFhmTauHhnwLAHq1SOmHCk2VfUYsSfGyZM71DGMGXvUYVPZ00IE1+Hoh61ulv9do4+FDcGhB+r2Huw==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/animations": "15.1.1", - "@angular/common": "15.1.1", - "@angular/core": "15.1.1" + "@angular/animations": "16.0.3", + "@angular/common": "16.0.3", + "@angular/core": "16.0.3" }, "peerDependenciesMeta": { "@angular/animations": { @@ -751,36 +700,36 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.1.1.tgz", - "integrity": "sha512-iCbvYduSGtyBWuQfTzm/MDZy7Rd5MNsjpknEtJ45nbjZzv9EL1tGo6qufaTgPXHP8Nbfcco/4UO9w84Gp5irLA==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.0.3.tgz", + "integrity": "sha512-40z8aRCZeMfT8iK4obsY/m91NI5PTW2KS51j+rswctne7i2g3MPLJDcAuTkClIR3Gj9x54qXwR5Tjdsx/r/Lsg==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "15.1.1", - "@angular/compiler": "15.1.1", - "@angular/core": "15.1.1", - "@angular/platform-browser": "15.1.1" + "@angular/common": "16.0.3", + "@angular/compiler": "16.0.3", + "@angular/core": "16.0.3", + "@angular/platform-browser": "16.0.3" } }, "node_modules/@angular/router": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-15.1.1.tgz", - "integrity": "sha512-5l1+6MzeJW01BeO8ZNfYe/TEVzxIHDKHWUrsmGE6oQW01LezG5LUjwR1T23YeR8G5zzRs/p+AU72wTn/aPGQHg==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.0.3.tgz", + "integrity": "sha512-0ckLBbpMi0F7o5sJKis5kWxu7UzkJa4/5K3pDEFd301Ira8c/9LiSMqtFZ1bLGKVjwlpNJKnkq+k0KfmyyGHMw==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "15.1.1", - "@angular/core": "15.1.1", - "@angular/platform-browser": "15.1.1", + "@angular/common": "16.0.3", + "@angular/core": "16.0.3", + "@angular/platform-browser": "16.0.3", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -791,9 +740,9 @@ "dev": true }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dependencies": { "@babel/highlight": "^7.18.6" }, @@ -802,34 +751,34 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", - "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "version": "7.21.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", + "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", - "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", "dev": true, "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.2", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.1", - "@babel/parser": "^7.20.2", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2", + "@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.1", + "json5": "^2.2.2", "semver": "^6.3.0" }, "engines": { @@ -850,33 +799,20 @@ } }, "node_modules/@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", "dev": true, "dependencies": { - "@babel/types": "^7.20.7", + "@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/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "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", @@ -890,26 +826,25 @@ } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz", + "integrity": "sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", + "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", + "@babel/compat-data": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", "browserslist": "^4.21.3", "lru-cache": "^5.1.1", "semver": "^6.3.0" @@ -946,18 +881,20 @@ "dev": true }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz", - "integrity": "sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==", + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz", + "integrity": "sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.5", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-replace-supers": "^7.21.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -966,14 +903,24 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", - "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz", + "integrity": "sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" + "regexpu-core": "^5.3.1", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -982,6 +929,15 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", @@ -1009,34 +965,22 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", + "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "dev": true, "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" }, "engines": { "node": ">=6.9.0" @@ -1055,43 +999,43 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz", + "integrity": "sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==", "dev": true, "dependencies": { - "@babel/types": "^7.18.9" + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.21.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", + "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-simple-access": "^7.21.5", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1110,9 +1054,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", + "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1137,28 +1081,29 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", - "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz", + "integrity": "sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-member-expression-to-functions": "^7.21.5", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", + "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", "dev": true, "dependencies": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1189,9 +1134,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", + "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1206,38 +1151,38 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", - "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", "dev": true, "dependencies": { "@babel/helper-function-name": "^7.19.0", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", - "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", + "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", "dev": true, "dependencies": { "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1257,9 +1202,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", - "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", + "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1284,14 +1229,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", - "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-proposal-optional-chaining": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -1335,13 +1280,13 @@ } }, "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -1400,12 +1345,12 @@ } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", - "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -1448,16 +1393,16 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", - "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.1" + "@babel/plugin-transform-parameters": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -1483,13 +1428,13 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", - "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -1516,14 +1461,14 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1742,12 +1687,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", + "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1789,9 +1734,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz", - "integrity": "sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" @@ -1804,18 +1749,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", - "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", + "@babel/helper-function-name": "^7.21.0", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-replace-supers": "^7.20.7", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" }, @@ -1827,12 +1772,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", - "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", + "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/template": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -1842,9 +1788,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", - "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" @@ -1904,12 +1850,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", + "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1966,13 +1912,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", - "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1982,14 +1928,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", - "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz", + "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-simple-access": "^7.19.4" + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-simple-access": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1999,14 +1945,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", - "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-validator-identifier": "^7.19.1" }, "engines": { @@ -2033,13 +1979,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", - "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.19.0", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -2080,9 +2026,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz", - "integrity": "sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" @@ -2110,13 +2056,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz", + "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" + "@babel/helper-plugin-utils": "^7.21.5", + "regenerator-transform": "^0.15.1" }, "engines": { "node": ">=6.9.0" @@ -2141,13 +2087,13 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "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==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz", + "integrity": "sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-plugin-utils": "^7.20.2", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -2185,13 +2131,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", - "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -2246,12 +2192,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", + "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -2277,31 +2223,31 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", + "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", + "@babel/compat-data": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", + "@babel/helper-validator-option": "^7.21.0", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", "@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.18.9", + "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", "@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.2", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", "@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", @@ -2318,40 +2264,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.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.20.7", + "@babel/plugin-transform-async-to-generator": "^7.20.7", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@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-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-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.18.8", + "@babel/plugin-transform-for-of": "^7.21.0", "@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.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.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-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-parameters": "^7.21.3", "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.20.5", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-spread": "^7.20.7", "@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.20.2", + "@babel/types": "^7.21.4", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -2390,10 +2336,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "node_modules/@babel/runtime": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", - "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", + "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==", "dev": true, "dependencies": { "regenerator-runtime": "^0.13.11" @@ -2417,19 +2369,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", - "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2437,13 +2389,28 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "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==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.19.4", + "@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/types": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.3.tgz", + "integrity": "sha512-P3na3xIQHTKY4L0YOG7pM8M8uoUIB910WQaSiiMCZUC2Cy8XFEQONGABFnHWBa2gpGKODTAJcNhi5Zk0sLRrzg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.21.5", "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, @@ -2470,9 +2437,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", - "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", + "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", "cpu": [ "arm" ], @@ -2486,9 +2453,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", - "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", + "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", "cpu": [ "arm64" ], @@ -2502,9 +2469,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", - "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", + "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", "cpu": [ "x64" ], @@ -2518,9 +2485,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", - "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", + "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", "cpu": [ "arm64" ], @@ -2534,9 +2501,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", - "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "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==", "cpu": [ "x64" ], @@ -2550,9 +2517,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", - "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", + "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", "cpu": [ "arm64" ], @@ -2566,9 +2533,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", - "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", + "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", "cpu": [ "x64" ], @@ -2582,9 +2549,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", - "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "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==", "cpu": [ "arm" ], @@ -2598,9 +2565,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", - "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "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==", "cpu": [ "arm64" ], @@ -2614,9 +2581,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", - "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", + "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", "cpu": [ "ia32" ], @@ -2630,9 +2597,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", - "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", + "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", "cpu": [ "loong64" ], @@ -2646,9 +2613,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", - "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", + "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", "cpu": [ "mips64el" ], @@ -2662,9 +2629,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", - "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "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==", "cpu": [ "ppc64" ], @@ -2678,9 +2645,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", - "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", + "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", "cpu": [ "riscv64" ], @@ -2694,9 +2661,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", - "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", + "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", "cpu": [ "s390x" ], @@ -2710,9 +2677,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", - "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", + "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", "cpu": [ "x64" ], @@ -2726,9 +2693,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", - "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", + "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", "cpu": [ "x64" ], @@ -2742,9 +2709,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", - "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", + "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", "cpu": [ "x64" ], @@ -2758,9 +2725,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", - "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", + "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", "cpu": [ "x64" ], @@ -2774,9 +2741,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", - "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", + "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", "cpu": [ "arm64" ], @@ -2790,9 +2757,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", - "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", + "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", "cpu": [ "ia32" ], @@ -2806,9 +2773,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", - "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", + "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", "cpu": [ "x64" ], @@ -2827,6 +2794,102 @@ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "dev": true }, + "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", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "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" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "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" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==", + "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", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "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" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "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", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -2853,22 +2916,23 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@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/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, "engines": { "node": ">=6.0.0" @@ -2884,29 +2948,15 @@ } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "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.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", @@ -2914,13 +2964,13 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@leichtgewicht/ip-codec": { @@ -2930,762 +2980,763 @@ "dev": true }, "node_modules/@material/animation": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-5osi1z4JQIXcklPALbH/zTfOm2pDzHt9Fxm7ZyURy250xIZj6QjULRzPTnzOhC2ropfix9ra2Cfggbf0dcRbEQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-kOba/FmgxMNWL7Zgyma7Ar0vsF+M/lu089qOeAviD/ccohYatmsr0LGaqFZL+M1AjnW9wXOoBtJXPF2kFii5AQ==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/auto-init": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-OigQTmrVzkcGvxNjOaIe5oItTFPgrO9xLewvharDI6m6yvO1z7OBnkcW+sFN6ggLNYNxd0O1u9v64vMsmeDABQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-MWH+0YdPr8a4FsJEkQC6nJ57WmPIqm3kS1WbROkSoxb/eZGECJCA6ajpWfgQtfjjKBrV217mRpen80Uf6fY9Kg==", "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/banner": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-PqtGp3KWzdu58rWv/DIvSfe38m5YKOBbAAbBinSvgadBb/da+IE1t5F7YPNKE1T5lJsQBGVUYx6QBIeXm+aI/A==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-/tV7PDwmWMLQbyLjN2kuJvkAK2HyVCrmnd9ftcBoR02HGQ6uHGPiJYsP8Xw/ueBdpix2gM9ujtD6Vqby/Y6vMg==", "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/button": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/button": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/base": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-oOaqb/SfjWwTKsdJUZmeh/Qrs41nIJI0N+zELsxnvbGjSIN1ZMAKYZFPMahqvC68OJ6+5CvJM8PoTNs5l+B8IQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-fObaR0dtmP8JrtZ0jzO28iP+TCn2RJzyOC1OHC7qyYOmGYw7MaHF9lArCdD++J93mhppTK3Fe+nOaBT6QkQW+g==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/button": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-Nkekk4edeX+ObVOa7UlwavaHdmckPV5wU4SAJf3iA3R61cmz+KsgAgpzfcwv5WfNhIlc2nLu8QYEecpHdo9d/w==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-NrL9dJ364BJhf31+pffZw9iqOEM9pYxYshSH0xO9mjuo/F/VmPsFrUoK4PE+rx2/JltIhGJ+zaooZowEYIHlKg==", "dependencies": { - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/focus-ring": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/card": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-xhyB7XX5KkEiCEqwSPkl58ZGYL6xFdnY62zimyBXJRG/Eaa0Swj3kW20hVCpt4f7c9Zmp8Se27rg8vnKmhvO3g==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-lBwgu7wHjvS2LhiqsUBm+m6MEYMt74bON8GV6XCHXJYJK1Bvr7W5ib9D4KrOrEg9U2ksXK7i76b87c3yCuIRkQ==", "dependencies": { - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/checkbox": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-NFpM3TS924PmVsk2KQLNU95OYCf8ZwYgzeqfnAexU0bEfjUJXINBun2Go0AaeOUMjuvWUe+byjrXgv8SFYbMUA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-eb2Mq0ME6l0o358/WSeRLzaSqj8YEDb1LLQZqivZQhcNV9NnqUtMEMx1UEEaH7RelbsSraqQAQQ8/zoKmDBZKg==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/focus-ring": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/chips": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-z4ajQ4NnsAQ/Si9tZ4xmxzjj2Qb+vW++4QjCjjjwAGIZbCe0xglAnMh2t66XLJUxt7RoKZuZVEO7ZqcFZpvJFQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-IvKmOpk8FHPzJXD19uHkPjmquQP6oerNh1QL2FdVm5+6dLt43CMVlCe8qzGorQofw3xWeY304aGL9eGEwuz51A==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/checkbox": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/checkbox": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/focus-ring": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "safevalues": "^0.3.4", "tslib": "^2.1.0" } }, "node_modules/@material/circular-progress": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-G6qD0nGNtEUwWnAMJuA9INYFpZoKtx7KFjBaPF4Ol2YLHtmShALNAYyn54TMAK8AZ2IpW08PXjGS7Ye88vrdEQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-J4yrTYftgDiw1buLPSPQKp6FRhgQ0RU6WEHX1OIy6RL0AySSsOB6eDAcVzOg5enWsXBtSsEwjNLXTb5UmHtilA==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/progress-indicator": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/progress-indicator": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/data-table": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-+wDw1DDDFfAsKAMzs84f/5GCjux39zjNfW8tL4wFbkWNwewmQrG9zaQMJhBpVOtLCrM8Gj6SOgOANqgqoCjvGg==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-E3K8exa8ihrUFz61gUvJ9zwqcLwHY4k5vcHiqKhf9Sa4Lqgy7FQmd+EMckr0X62aaj+RqmJdahiJoWDFBx7LVw==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/checkbox": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/icon-button": "15.0.0-canary.684e33d25.0", - "@material/linear-progress": "15.0.0-canary.684e33d25.0", - "@material/list": "15.0.0-canary.684e33d25.0", - "@material/menu": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/select": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/checkbox": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/icon-button": "15.0.0-canary.576d3d2c8.0", + "@material/linear-progress": "15.0.0-canary.576d3d2c8.0", + "@material/list": "15.0.0-canary.576d3d2c8.0", + "@material/menu": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/select": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/density": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-661yEVRMGrlq6S6WuSbPRO+ZwpdUOg2glCc7y96doM6itSLOa3UEAldjOLfsYZVB74GnKCiuDp//QmfoRyYTfA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-seBxT1LkU4jhzyeP1yT1coWXs0QGhwmwfeZOCx2YG2RmHD8a+ucf0y4BjWGDQSc4B9nudeIOYkXEUMfSdjRoQA==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/dialog": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-szn0dHnfeQTSOC6SSRSGAzX6Tnx+4NnSMUwNkXm+3bwjds8ZVK26+DXwLrP5f3ID5F1K5sFsRf2INo5/TNTHyQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-12rNdRft1iKpZQLCVlYK3f314wFU1KlF6Ejbx8wT6dz4mrNhgYYoxjOOpL0D/Ys1iMR2EUBJOHdv7ghU/ApcGA==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/button": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/icon-button": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/button": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/icon-button": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/dom": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-7pEJLYov+tGgfuD8mZxoVU6rWtPI8ppjTAhz+F27Hz9FG0JETMWTKpDPBXLnKvX7vhIxL83GvZ9geNHCe8Hfog==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-oo8vmADL6Z26iCWG7PEvUYEeVWXufETGHYVbWIEPGCr7uzB6j4Apb+JDKn0h3yMP33t7VJibQTBkA5q5Y4Vtxw==", "dependencies": { - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/drawer": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-/KMckLf1PYU/H3PXnS4e0aFl03qG3JlSv4LGgX6juJufcONqGTl/m63EMO/L/eUy6H1CRrXmVDjik/jzHLyDhg==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-+y+DaXemENGgouy0qzP8XhcO+n57V40lyzHd5lZ7MaTSy7VcgKUjIoAX/aTGKjbh/jFk+fuQZeCwC8D0oAZz8g==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/list": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/list": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/elevation": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-WDF8SsRtq3rXUbVVbd9K4DUijIPH0bUFSOreVYxudpuxAfTlDS5+aeS1EK9UIBFYLuba4u5wVT2tDv6e1RTfrQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-9jMCY7Wwbo2FBzXKM2InxgsGvflOGPm/ZeUAZ5OtIV3WSvj/nI08FxPcZFwUJvWvyB3OgwSVAWPfT0gsD1sUHQ==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/fab": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-KCu87rWOKEAe9vZcAm6K8XazYSWPNjMG+OhrbPjHW6bCO7as1YCgtmkBkhff7csY/rFmcVpIy884xtUfLmSudQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-5t8QDhDbdRelLiQbPHWh/M36Q4LNPMRqBnoA3V3r2H7+zOVhA5msqi8GLp2zx+cW6oAQjrs6QF9fMLOkXX8qgw==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/focus-ring": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/feature-targeting": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-HyH1erNTSjS63sigNSUMaCd0nJhTNdDFeC+myrxwtDaQm+uYJ8troCNtQM3g6mx0XATNtX5aTOoPmrM6yVVi1A==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-i93vd9JZj5mDCzSrIAJjnuwySo/zkf3S+TmCcOb5vp/8R6Tkj5djTZt067PIUX+HN17Ukit7NSpSVTbJjAsaBQ==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/floating-label": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-f7TPp6bKpGvV3sYYiZHSGlrixXKkXXITW3Esp7KB9jRq42c0H82novmdwvY0eTef4ootmA2JEysr78KQfHBUPg==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-5NX6px0ndc51rRg/OcmehTpXrSuwmdsblpkHLxzYeeDKygBzGz+5ixfRSa8QWoHifEZdcTaUNsz5G7vQPngHdA==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/focus-ring": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-ikw2RVUfgzXChpWIzPH1VzRvTjYb5ZKj4H+CZf7jqPUXMstFOZg90Bp7ARLZHqYiyNMuUq3zUTHozS6iHorSqg==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-dV0UnsKyYhF3SUcRhWdcyYtO/2GkOLcANq+iujDywfMuqQfo48ui8fA1x9C8Jl7LJPVTNvRjiI4kEsWJya273g==", "dependencies": { - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0" + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0" } }, "node_modules/@material/form-field": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-vpF9N/uq5no/7+8GAbEH0868FhOuBgxAWRr1Sfb+jthKfBr8OS/wPU/AHzZHdHdAm7PQynbeOXfDsX2dI//PDA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-4c00pPlVwx8lvfYO28Ato+WcA9HmKmU5NmmPrYuifMxGpz8BwHPL3369wsE40qkgZt8bvtwVE2lDcij6kJ434g==", "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/icon-button": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-wMI+XGzmIN/o2ePBKg2hLyx7H4pXCRAyyIKMQS1FMp1UKa2tYmiHVX/V8skhKwCqxg3i6Ls/LxMjfPxTR18WvQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-Wer60ASSo7nj2xXcJRUTFbm6uiKVvtpuoAn9a7SvtNYDLPGBTCmDDxI0VEXjDfTMSPhpxIo92i40gl5Hk0fsKQ==", "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/focus-ring": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/image-list": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-Ol+uaHYBe5R/cgzlfh5ONnMVX0wO6fV74JMUcQCQlxP6lXau/edARo4tkRc7A7UJUkU3VRv0EpEjLoCRNUPGaA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-veGiP8W43sHWhny8enHNXLaPkvubjgh5NzJOryfTyHb+Ixyfr6/FYCtNGtRgTkNiy7nRye33mMaNqQ/oRyN/LA==", "dependencies": { - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/layout-grid": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-ALXE1mqFNb/RB2lVRQ3/r1Aufw2mFZnOjRE+boYDVepmAG/xWyPCyaGoavELJF5l4GAb0tXi8wA/8HeGbLOpuA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-Vxh2Lyv0XvkSFuzio6PmooZtDVFyhFXAhTXWhvxYBgTPyrYB8lsUcWRwHJZEkKuz3Sti7WKtF5rqv+p3KGy01A==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/line-ripple": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-7hRx8C/e9i0P6pgQpNOMfTwSS2r1fwEvBL72QDVGLtLuoKKwsjjgP6Z0Jat/GeHJe87u9LQvGBoD4upt+of/HA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-NnHk935Ae39eH4Ac7aR0GKIUd3/7WkV5VRW/SXdwTaEie0hLK9+AGXkhJH0U6pmmWmM7moJNRFXZMSv5oavkBw==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/linear-progress": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-iJclt7mKmcMk6pqD7ocXKfCWZhqBoODp7N593jYlxVpTJuEz2wiVAjZUDn/YGj/Uz3CRH+2YFfOiLr9pwWjhDg==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-yuvhPo1n8J7C+VtzP2RjqNfyiApx2k2W5g7zVAWmfDJbvqtPqciO8rqKhrQM67ZfpfseA1HgG1kVqigbxi4ERg==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/progress-indicator": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/progress-indicator": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/list": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-rQ+FCSdzmwTcT00IYE0uRV3CS4oGSccKFl9hkcF+aHFW61L7ORh/SCGUDPrEfQFrFkMn5f8qroVJjpUAMXBz4g==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-MPEC640uS3i6fvRSWaUetErAeRsqyqlM6l59/pf9EY1+L/gV6tFheb07/nj41l0sI6BbUr+qR1j98Ybj/8pKQg==", "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/menu": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-r7wzDLSGSI9629/mfpvsMzkVxpmV75kcD3IrW0Pcu6/Bv/1xi0EvjcUXzNJJoQlwN4Zj35Ymz/PCjZkIDIz68Q==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-l/PQjH78oLnMBBzRavPAarsqT567dDnglaLMhlZHHcgpzWdGQreJ/kIPoaMr/VPaIAAwjQfivNUaIb17+3mLEw==", "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/list": "15.0.0-canary.684e33d25.0", - "@material/menu-surface": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/list": "15.0.0-canary.576d3d2c8.0", + "@material/menu-surface": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/menu-surface": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-RVO5GAYcfWPaKwxsF/NhUAmrYXQCQBKvRQW0TIlbmAJz6lcFeTs6YZqF3u1C7qrL3ZQGz+sur/7ywj6QU0oMow==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-BLTOgfVR96uRE5vvXy+ZO7A/NgzMjT7YhxRbODYv+vSi46Gmdyx09GQcOKMUZspat9vNRqh/AYSXpJ6j5E9U2w==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/notched-outline": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-9YHcBkvJLPVYzkHcWoTpBZAFrEd+j1hjhGxLhh0LuNrZe8VroUkZD1TTnUAPHRG3os6EqEWWaKb0RN+aPIF2yQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-+l3AHq8JuNBz4J0d5jsWAueghwnzAASMq7BIqrZUMEfyCSG3MJ2Pzzj5AMLyqFvb6IMMSqbNozgkVwtD/Qh8SQ==", "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/floating-label": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/floating-label": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/progress-indicator": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-c0icji4faeNWUoqGENGC7Hav0Puxh0RwXIDVizffaUxKIGbajpIp5+4Zop73fK/xFLGMB/npg7TbP+aCGjQ3fw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-Id+ie1pRQRbaglj8P/LAB7wIuQf5zlwuMw6MhefjkgXRXg5GkJQIeE4EQOzVhDQUkvLOBapKP8gRMs7t9TwHPg==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/radio": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-U3Eh8sNUA8trDla1Bq8Bo02foxYvtoewaKeF8A8tAju81XZ4jRiftfOsOWZDZEHCVbbCB2QwvutvFlnay5n+Aw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-/BpEL6YWKM+7c4dWqOcSM8wbfz1K3g3r+q+r1ReBKlvUh+Uhz++PW6qjMxPTPNt7a+yzH9/LkXMRZan9/+pjxw==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/focus-ring": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/ripple": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-RyePu7SjIm/OuyyEieZ/gxiPYkNZOZHeid72WRcN9ofdlljj2pifcdPvcfZA+v/DMS33xo5GjG2L/Qj6ClWrKw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-YewgiAu6fmHLiJrML2sWeNXYZB4ooCY8m+mMl2eSsAq0YDpIFL8gsrgPAAKete5J9ASbF6id1jsm0pyoM6AO1g==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/rtl": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-NqdJl8Ayupp1Th+vCNCpVQHbUFOuF7TCte9LD1norTIBUF/QizIxWby2W5uUEiPbnh5j9PmE1CJtfLwKun3pcw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-LCVuYdauCQ7+SD1h+rrqRazP9ownLDsq0XSgbRZXFPAVq8ED8FDvlK8+Ustu4/slLNBq3F78M6SlzOWyCnErRA==", "dependencies": { - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/segmented-button": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-bEGgg8vgXNLyukyV8HRjFMuQ6t6nm5LQ4Pgm22um61Yc8qyi0BOqV41OR4SVdUrUqZxh1aVD+p+4NN03+LfQXw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-XGluudwIFds1XU+W+C+5pxTP5z8t4wn4UC24RCbMG2AhmeF3cP+iou1eL9gRT/OQ5YYG+E+tB7UeTQUXpxIVcA==", "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/select": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-kf178/2TeEinTv0mgmSBcmmExQ2h7a7dtR1E3WuqQgisJ/R6+zVLMkC2CnfIyzxYX2vkuUTG0ue3Reh/6XiqSg==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-4HBxKVgsEdTRUZo7ciH2rGUMnE2dmKzGo2XGK1yQadbS26Dn3uIJV92xvn+fv5eoHWvYcHrcq1/7pH+JhuAogQ==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/floating-label": "15.0.0-canary.684e33d25.0", - "@material/line-ripple": "15.0.0-canary.684e33d25.0", - "@material/list": "15.0.0-canary.684e33d25.0", - "@material/menu": "15.0.0-canary.684e33d25.0", - "@material/menu-surface": "15.0.0-canary.684e33d25.0", - "@material/notched-outline": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/floating-label": "15.0.0-canary.576d3d2c8.0", + "@material/line-ripple": "15.0.0-canary.576d3d2c8.0", + "@material/list": "15.0.0-canary.576d3d2c8.0", + "@material/menu": "15.0.0-canary.576d3d2c8.0", + "@material/menu-surface": "15.0.0-canary.576d3d2c8.0", + "@material/notched-outline": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/shape": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-aEelpaTFmpnCji3TUGP9bVCS/bRVjUmLTHBPZtuu1gOrUVVtJ6kYOg73dZNJF+XOoNL2yOX/LRcKwsop29tptA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-AYcQjpeWq/lJoBtUdjSeOf9nVCqGrsNTzuBqwKcQ+bPHkhHsD8h5YK6yD//DR2fTT0TFidvOY3NsYqcP460B0Q==", "dependencies": { - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/slider": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-WVyK+2pSNSZmj07M2K/a3TADoQ9FBCndfNC/vE7/wGIg4dddJJK5KvQ+yruf9R2cSzTL/S1sZ5WpyyeM8E9HTw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-80GPBNJXWO3tCK95P49H+Ru/+Q6E6NNwGgZHx6L5ADFKJt5k6jZLwjZ1DlX5kqD10WpV3qVggSxbP9/TgGdNAQ==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/snackbar": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-itO+DCkOannZzR1/cCHcqAm7ifhuFvXmDItNoA8qLEcAyJDJJRkhpwj3XQ01yuo9gBFcSctp7Txt7e+Hncm/Jg==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-aOPR54EI1BrlompgcWcYtCgGHvd+mtvHrgcbvHbB1BxqIVG7X6N2gJ/8I4yzDNjXbxlu0hPVSsVRwhuvlF6NcA==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/button": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/icon-button": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/button": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/icon-button": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/switch": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-Jxi0gl92yvvZZsAPxvVHzXx2ga+T/djMow98jvEczmpUorWnAhgiCr9CsSSRoosahWyRB8NLZOxUQrACxvffjw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-WSOdXZJotvxhAsWxhvaBHXC5sGRSWxkyAX1lCg39y5NisopiKSNlPWgZcl++yyFKVhpoYzYVV7yGynRWFj/VWQ==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/focus-ring": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", "safevalues": "^0.3.4", "tslib": "^2.1.0" } }, "node_modules/@material/tab": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-WQL3wj9syHNcfe8KbgGGUcA34M8C/xZ+n0Fkkh8Kk6puVwaU+xqUNihsxPY6YzKpmh4PZ4oJaBdiN8zvFT1zqQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-3crRmZpIG6qRByPr784Cy2Yi714+YLAXD3q1PGcrb2dqNl/ckFBS3JnwkfvDYTTOBz+sOkVcDIbadAUivnqWZQ==", "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/tab-indicator": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/focus-ring": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/tab-indicator": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/tab-bar": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-SW/cMaDsIGGkM1ag3A7GJRlmr8eXmObWsvitQJzh6Azr5zzZtSI+GQygkMesAEE1gbpqOVN8d40rh3H7VVIAcA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-CuBJe4jt3mOO7zUy8tpUZizeac76AP2Scw/R8GZCArj+tW/Sxtx+J0VAMMzpLrkxChbflLKdKj7/vehvt1dRpA==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/tab": "15.0.0-canary.684e33d25.0", - "@material/tab-indicator": "15.0.0-canary.684e33d25.0", - "@material/tab-scroller": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/tab": "15.0.0-canary.576d3d2c8.0", + "@material/tab-indicator": "15.0.0-canary.576d3d2c8.0", + "@material/tab-scroller": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/tab-indicator": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-kKICqSPqOlaf0lzaFFCmuOqPXJC+cK48Qmsc+m5o6fJhkmuZRCYpIwB2JeP+uZSOq/bTH+SrPtCtnVlgWg6ksA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-zPGeBimy+mG0Eo2wc83aKS8cdiyQM7RZW0BFl570BGejzjTRWoW3hoQTqKj/3Ha7/jcN+kMHMFpsNr8toWGC4g==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/tab-scroller": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-H6EU/TSiK/M2DyyORX5GEtXD9rKYxTMHC2VxsNWARPMFJGzgeW2ugYkFv+rKI1/c0bs0CJ4e+qFnOlBsQXZvyQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-8ambIVmtdrKgSirGxVYJEDaXOQE81m3lJrPp8hBjuQeo8m6+769mb1cXf7uvUazsuHTQPl7BAxrd+BF5b+v32w==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/tab": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/tab": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/textfield": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-OvgpDXjvpyJTtAWskO69IDybFvDNzr9w2PN/Fk7yFm+uNVupaWz1Ew8lZ4gGslaTNSVmh2XcsvmzxcLINSiiNg==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-Pyd+xyKXrAbsvE5Prh2A0QvzMLvK5toBGsVGkwU/Y3qzu0lZQpd4uxgCGFau0/Ni8Jl58CNxmPTFnT69MLgM9Q==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/floating-label": "15.0.0-canary.684e33d25.0", - "@material/line-ripple": "15.0.0-canary.684e33d25.0", - "@material/notched-outline": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/floating-label": "15.0.0-canary.576d3d2c8.0", + "@material/line-ripple": "15.0.0-canary.576d3d2c8.0", + "@material/notched-outline": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/theme": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-AZxaXXAvRKzAi20RlMxzt2U5UmkCWyv7DMWEBXsxtG5Tk54mi1HsbVUp3fxDPTlmL7Pq8p1/DESg/o7TgRCVlw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-wD3N8+2uqyRc9K1q3Q5YvTKgbecSFQuJGQeQFsHKNsshuqm0lQgserWs5ECHJ4NKihAceR4y+9K6tFlutnd2UQ==", "dependencies": { - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/tokens": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-wVwbQOTCXDPKYPdHQHLr026y36MMFelID1CmbfRk6mSol4O8yE9U0fXcShfRDW8Qo5E3X31w9c2A6T3neJY7wQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-Gg864O9D+hEPm+el/rl9gGo9JoMdNV1imqBr3pQR1NbH8Whn2qSUl7JufVOz1qe4WwU5wzV2bqXfEVI5/R37Ug==", "dependencies": { - "@material/elevation": "15.0.0-canary.684e33d25.0" + "@material/elevation": "15.0.0-canary.576d3d2c8.0" } }, "node_modules/@material/tooltip": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-dtm26QjxyQdinc8btgz6yys07b7bUW4FZgNF2EBPeGrICrPg7jf+JEvDziz5g8VMaTBQLOQRSCGy0MKuRlOjLw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-jLqEOTSaGY2iezoNnbvgmbHh+U+4KXaL1WvCwWrrzuaq+d204pEFfuhnIrFksChgn/vTKLbBJ08j41Dxv483mg==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/button": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/button": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "safevalues": "^0.3.4", "tslib": "^2.1.0" } }, "node_modules/@material/top-app-bar": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-1M+oupUxflfW7u81P1XlxoLZB8bLzwtpKofIfDNRbEsiKhlLTERJR3Yak3BGE9xakNMysAaBHlkb5MrN5bNPFw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-3GSVTPiK0dpexfIxImg7He8WWzTJ94Su+WuKhCHMBUsnc1jeMWD22fNBXo0HrEBK6+4U+4PxJXgrGE9xI3uzug==", "dependencies": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/touch-target": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-zdE69Slg8+T7sTn1OwqZ6H7WBYac9mxJ/JlJqfTqthzIjZRcCxBSYymQJcDHjsrPnUojOtr9U4Tpm5YZ96TEkQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-wCJSv1yPnD2CQN9r24MBWTFL3+xJOsFo9W/3jPpipvTGi16Nq5ce0Fr6gw7Y/hVUfkqSdKudly9bTNTJnmhglA==", "dependencies": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@material/typography": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-aVnvgMwcfNa/K4wujzpKDIxjGl2hbkEL+m+OKDSQqWYjKcP9QrbzCXJruJBqxrBoPRHLbqo47k5f9uT8raSgjw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-hScFlyRZ8Qv/jL5rihhs1SR/wt7yGIq8KLYObi45LhMHHEl3s+otGcg8JmWrD+xZufVz/pemRlNJ9wlM+yO4rQ==", "dependencies": { - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "node_modules/@ngneat/transloco": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@ngneat/transloco/-/transloco-4.2.2.tgz", - "integrity": "sha512-IyLNUiC0O4aCRtvZ5D6KER9KP3UWoONJTAT7hhtBNWuLNNwamV29tlq08cYuMOKpp8i+YUWf9vTcRNeHsIQgYg==", + "version": "4.2.7", + "resolved": "https://registry.npmjs.org/@ngneat/transloco/-/transloco-4.2.7.tgz", + "integrity": "sha512-NMrIoDfeqQhqZlt6uFOuV9OvpHAwNKC2fOAYkTsLGRs6JhcsRdJX+jYY1PL/9Wziv5HartcUTFdbAJ/czHRGRQ==", "dependencies": { - "@ngneat/transloco-utils": "^3.0.1", + "@ngneat/transloco-utils": "3.0.5", "flat": "5.0.2", "lodash.kebabcase": "^4.1.1", "ora": "^5.4.1", @@ -3694,31 +3745,33 @@ }, "peerDependencies": { "@angular/core": ">=13.0.0", + "fs-extra": ">=9.1.0", + "glob": ">=7.1.7", "rxjs": ">=6.0.0" } }, "node_modules/@ngneat/transloco-utils": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@ngneat/transloco-utils/-/transloco-utils-3.0.2.tgz", - "integrity": "sha512-NItuBldCJPfQ1FtDcbTQUGbOtfYjdoNC/IIV+M0jeUqzeKCZCYh5ajwTYhLXSXhMhG4nH4QNWCADOKwOAOVuRg==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@ngneat/transloco-utils/-/transloco-utils-3.0.5.tgz", + "integrity": "sha512-Xn9GaLUocXSPMhErNHbUyoloDm9sb+JaYszZJFL9F8em6frPQDSJxcYk9pV0caWpAU8INlksJSYgx1LXAH18mw==", "dependencies": { - "cosmiconfig": "^7.0.0", + "cosmiconfig": "^8.1.3", "tslib": "^2.3.0" } }, "node_modules/@ngtools/webpack": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-15.1.2.tgz", - "integrity": "sha512-IxKPqyA5hiwUioAAptFaETF2TifH6cTGOc7qKYFxFgzK+llZtEBcNj3w9zrL5uCFnPHWDZqdIDhH3/WM4zBmkw==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.0.3.tgz", + "integrity": "sha512-OtTKgv6wgRwbLD0WkOqLYRFKrYKH4luiCSzzTqlJuCIKrPI+7+L1rH5I0zWzkTYzGFGTAgP5BGRiY19gFS3/BA==", "dev": true, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^16.14.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular/compiler-cli": "^15.0.0", - "typescript": ">=4.8.2 <5.0", + "@angular/compiler-cli": "^16.0.0", + "typescript": ">=4.9.3 <5.1", "webpack": "^5.54.0" } }, @@ -3770,14 +3823,13 @@ } }, "node_modules/@npmcli/git": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.3.tgz", - "integrity": "sha512-8cXNkDIbnXPVbhXMmQ7/bklCAjtmPaXfI9aEM4iH+xSuEHINLMHhlfESvVwdqmHJRJkR48vNJTSUvoF6GRPSFA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.4.tgz", + "integrity": "sha512-5yZghx+u5M47LghaybLCkdSyFzV/w4OuH12d96HO389Ik9CDsLaDZJVynSGGVJOLn6gy/k7Dz5XYcplM3uxXRg==", "dev": true, "dependencies": { "@npmcli/promise-spawn": "^6.0.0", "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", "npm-pick-manifest": "^8.0.0", "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", @@ -3790,33 +3842,18 @@ } }, "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "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/@npmcli/git/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/@npmcli/installed-package-contents": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.1.tgz", - "integrity": "sha512-GIykAFdOVK31Q1/zAtT5MbxqQL2vyl9mvFJv+OGu01zxbhL3p0xc8gJjdNGX1mWmUT43aEKVO2L6V/2j4TOsAA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", + "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", "dev": true, "dependencies": { "npm-bundled": "^3.0.0", @@ -3864,25 +3901,10 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/@npmcli/run-script": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.0.tgz", - "integrity": "sha512-ql+AbRur1TeOdl1FY+RAwGW9fcr4ZwiVKabdvm93mujGREVuVLbdkXRJDrkTXSdCjaxYydr1wlA2v67jxWG5BQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.1.tgz", + "integrity": "sha512-Yi04ZSold8jcbBJD/ahKMJSQCQifH8DAbMwkBvoLaTpGFxzHC3B/5ZyoVR69q/4xedz84tvi9DJOJjNe17h+LA==", "dev": true, "dependencies": { "@npmcli/node-gyp": "^3.0.0", @@ -3895,44 +3917,39 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/run-script/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, + "optional": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=14" } }, "node_modules/@schematics/angular": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.1.2.tgz", - "integrity": "sha512-PcAbjbWvaW3yKvcGCqHrlHm4BTwGuqr58czCASc49Hy6tJba+dRblYatzB0D1tzdJOTsa684Ghg7knCN86fHeg==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.0.3.tgz", + "integrity": "sha512-aWRVvgOTMxsaY6FETd+1L4YvqAjfIRSmB3yqfRXpzEdUelAkYozg0lWDHS6q6u6YlfCIUnEw0oUTJG3m8JSF4w==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.1.2", - "@angular-devkit/schematics": "15.1.2", + "@angular-devkit/core": "16.0.3", + "@angular-devkit/schematics": "16.0.3", "jsonc-parser": "3.2.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^16.14.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, - "node_modules/@tailwindcss/line-clamp": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/line-clamp/-/line-clamp-0.4.2.tgz", - "integrity": "sha512-HFzAQuqYCjyy/SX9sLGB1lroPzmcnWv1FHkIpmypte10hptf4oPUfucryMKovZh2u0uiS9U5Ty3GghWfEJGwVw==", + "node_modules/@sigstore/protobuf-specs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", + "integrity": "sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==", "dev": true, - "peerDependencies": { - "tailwindcss": ">=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@tailwindcss/typography": { @@ -3959,6 +3976,52 @@ "node": ">= 10" } }, + "node_modules/@tufjs/canonical-json": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", + "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", + "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", + "dev": true, + "dependencies": { + "@tufjs/canonical-json": "1.0.0", + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models/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/@tufjs/models/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/@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -3979,9 +4042,9 @@ } }, "node_modules/@types/chroma-js": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.4.tgz", - "integrity": "sha512-l9hWzP7cp7yleJUI7P2acmpllTJNYf5uU6wh50JzSIZt3fFHe+w2FM6w9oZGBTYzjjm2qHdnQvI+fF/JF/E5jQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.4.0.tgz", + "integrity": "sha512-JklMxityrwjBTjGY2anH8JaTx3yjRU3/sEHSblLH1ba5lqcSh1LnImXJZO5peJfXyqKYWjHTGy4s5Wz++hARrw==", "dev": true }, "node_modules/@types/component-emitter": { @@ -4000,9 +4063,9 @@ } }, "node_modules/@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", "dev": true, "dependencies": { "@types/express-serve-static-core": "*", @@ -4028,9 +4091,9 @@ "dev": true }, "node_modules/@types/eslint": { - "version": "8.4.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", - "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", "dev": true, "dependencies": { "@types/estree": "*", @@ -4048,32 +4111,33 @@ } }, "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", "dev": true }, "node_modules/@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", "dev": true, "dependencies": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", + "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "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==", "dev": true, "dependencies": { "@types/node": "*", "@types/qs": "*", - "@types/range-parser": "*" + "@types/range-parser": "*", + "@types/send": "*" } }, "node_modules/@types/highlight.js": { @@ -4087,18 +4151,18 @@ } }, "node_modules/@types/http-proxy": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", - "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "version": "1.17.11", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", + "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/jasmine": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.3.1.tgz", - "integrity": "sha512-Vu8l+UGcshYmV1VWwULgnV/2RDbBaO6i2Ptx7nd//oJPIZGhoI1YLST4VKagD2Pq/Bc2/7zvtvhM7F3p4SN7kQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.3.2.tgz", + "integrity": "sha512-lKkWBcbxEZX/7nxPqEtv/OjPLaBa2j0o+hmv5Yn83b/+11C1kfBAkgvmrb13WDkmizUJ3B+jYrWh4M0YRtrzEQ==", "dev": true }, "node_modules/@types/json-schema": { @@ -4108,30 +4172,30 @@ "dev": true }, "node_modules/@types/lodash": { - "version": "4.14.191", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", - "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==", + "version": "4.14.195", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.195.tgz", + "integrity": "sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg==", "dev": true }, "node_modules/@types/lodash-es": { - "version": "4.17.6", - "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.6.tgz", - "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==", + "version": "4.17.7", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.7.tgz", + "integrity": "sha512-z0ptr6UI10VlU6l5MYhGwS4mC8DZyYer2mCoyysZtSF7p26zOX8UpbrV0YpNYLGS8K4PUFIyEr62IMFFjveSiQ==", "dev": true, "dependencies": { "@types/lodash": "*" } }, "node_modules/@types/luxon": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.2.0.tgz", - "integrity": "sha512-lGmaGFoaXHuOLXFvuju2bfvZRqxAqkHPx9Y9IQdQABrinJJshJwfNCKV+u7rR3kJbiqfTF/NhOkcxxAFrObyaA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.0.tgz", + "integrity": "sha512-uKRI5QORDnrGFYgcdAVnHvEIvEZ8noTpP/Bg+HeUzZghwinDlIS87DEenV5r1YoOF9G4x600YsUXLWZ19rmTmg==", "dev": true }, "node_modules/@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true }, "node_modules/@types/node": { @@ -4140,11 +4204,6 @@ "integrity": "sha512-cPjLXj8d6anFPzFvOPxS3fvly3Shm5nTfl6g8X5smexixbuGUf7hfr21J5tX9JW+UPStp/5P5R8qrKL5IyVJ+A==", "dev": true }, - "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", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", @@ -4163,6 +4222,16 @@ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, + "node_modules/@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, "node_modules/@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -4173,9 +4242,9 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", "dev": true, "dependencies": { "@types/mime": "*", @@ -4192,157 +4261,169 @@ } }, "node_modules/@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", "dev": true, "dependencies": { "@types/node": "*" } }, + "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==", + "dev": true, + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0" + } + }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.5.tgz", + "integrity": "sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==", "dev": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "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==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.5.tgz", + "integrity": "sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==", "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { - "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==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.5.tgz", + "integrity": "sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==", "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.5.tgz", + "integrity": "sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==", "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { - "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==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.5.tgz", + "integrity": "sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==", "dev": true, "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "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==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.5.tgz", + "integrity": "sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==", "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "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==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.5.tgz", + "integrity": "sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.5.tgz", + "integrity": "sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==", "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.5.tgz", + "integrity": "sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==", "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.5.tgz", + "integrity": "sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==", "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.5.tgz", + "integrity": "sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==", "dev": true, "dependencies": { - "@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" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/helper-wasm-section": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-opt": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5", + "@webassemblyjs/wast-printer": "1.11.5" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.5.tgz", + "integrity": "sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==", "dev": true, "dependencies": { - "@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" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.5.tgz", + "integrity": "sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.5.tgz", + "integrity": "sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==", "dev": true, "dependencies": { - "@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" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.5.tgz", + "integrity": "sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.5", "@xtuc/long": "4.2.2" } }, @@ -4390,9 +4471,9 @@ } }, "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -4410,26 +4491,6 @@ "acorn": "^8" } }, - "node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/adjust-sourcemap-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", @@ -4470,13 +4531,13 @@ } }, "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", "dev": true, "dependencies": { "debug": "^4.1.0", - "depd": "^1.1.2", + "depd": "^2.0.0", "humanize-ms": "^1.2.1" }, "engines": { @@ -4593,6 +4654,12 @@ "node": ">=4" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, "node_modules/anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -4607,9 +4674,9 @@ } }, "node_modules/apexcharts": { - "version": "3.36.3", - "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.36.3.tgz", - "integrity": "sha512-8/FXEs0ohXMff07Gv28XjhPwEJphIUdq2/wii/pcvi54Tw6z1mjrV8ydN8rlWi/ve8BAPBefJkLmRWv7UOBsLw==", + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.40.0.tgz", + "integrity": "sha512-dSi3BUfCJkFd67uFp+xffrJVd3lDT7AAUUyRp0qPYiglJ76CeZLddVhM3FAk1P9GCzf8VewqGYUPCYQvXm+b9A==", "dependencies": { "svg.draggable.js": "^2.2.2", "svg.easing.js": "^2.0.0", @@ -4660,9 +4727,9 @@ "dev": true }, "node_modules/autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", "dev": true, "funding": [ { @@ -4675,8 +4742,8 @@ } ], "dependencies": { - "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -4873,15 +4940,6 @@ "ms": "2.0.0" } }, - "node_modules/body-parser/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4901,9 +4959,9 @@ } }, "node_modules/bonjour-service": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", - "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", "dev": true, "dependencies": { "array-flatten": "^2.1.2", @@ -4940,9 +4998,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "funding": [ { @@ -4955,10 +5013,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" }, "bin": { "browserslist": "cli.js" @@ -5015,16 +5073,16 @@ } }, "node_modules/cacache": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", - "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.6.tgz", + "integrity": "sha512-ixcYmEBExFa/+ajIPjcwypxL97CjJyOsH9A/W+4qgEPIpJvKlC+HmVY8nkIck6n3PwUTdgq9c489niJGwl+5Cw==", "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^8.0.1", + "glob": "^10.2.2", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -5048,43 +5106,49 @@ } }, "node_modules/cacache/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.2.tgz", + "integrity": "sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "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": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "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": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "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": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/call-bind": { @@ -5126,9 +5190,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001431", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", - "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", + "version": "1.0.30001482", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001482.tgz", + "integrity": "sha512-F1ZInsg53cegyjroxLNW9DmrEQ1SuGRTO1QlpA0o2/6OpQ0gFeDRoq1yFmnr8Sakn9qwwt9DmbxHB6w167OSuQ==", "dev": true, "funding": [ { @@ -5138,6 +5202,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -5307,11 +5375,20 @@ } }, "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -5573,12 +5650,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.25.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz", - "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==", + "version": "3.30.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.1.tgz", + "integrity": "sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw==", "dev": true, "dependencies": { - "browserslist": "^4.21.4" + "browserslist": "^4.21.5" }, "funding": { "type": "opencollective", @@ -5605,18 +5682,52 @@ } }, "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", "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", - "yaml": "^1.10.0" + "path-type": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "ts-node": ">=10", + "typescript": ">=3" + } + }, + "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_modules/critters": { @@ -5723,6 +5834,21 @@ "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==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/crypto-js": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz", @@ -5890,12 +6016,6 @@ "node": ">= 0.4" } }, - "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==", - "dev": true - }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -5903,21 +6023,12 @@ "dev": true }, "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, "engines": { - "node": ">= 0.6" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.6.0" + "node": ">= 0.8" } }, "node_modules/destroy": { @@ -5936,23 +6047,6 @@ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, - "node_modules/detective": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", - "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", - "dev": true, - "dependencies": { - "acorn-node": "^1.8.2", - "defined": "^1.0.0", - "minimist": "^1.2.6" - }, - "bin": { - "detective": "bin/detective.js" - }, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", @@ -5990,9 +6084,9 @@ "dev": true }, "node_modules/dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", "dev": true, "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" @@ -6068,6 +6162,12 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -6075,9 +6175,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.271", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.271.tgz", - "integrity": "sha512-BCPBtK07xR1/uY2HFDtl3wK2De66AW4MSiPlLrnPNxKC/Qhccxd59W73654S3y6Rb/k3hmuGJOBnhjfoutetXA==", + "version": "1.4.382", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.382.tgz", + "integrity": "sha512-czMavlW52VIPgutbVL9JnZIZuFijzsG1ww/1z2Otu1r1q+9Qe2bTsH3My3sZarlvwyqHM6+mnZfEnt2Vr4dsIg==", "dev": true }, "node_modules/emoji-regex": { @@ -6157,9 +6257,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz", + "integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -6221,18 +6321,17 @@ } }, "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==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", + "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", "dev": true }, "node_modules/esbuild": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", - "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", + "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", "dev": true, "hasInstallScript": true, - "optional": true, "bin": { "esbuild": "bin/esbuild" }, @@ -6240,34 +6339,34 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.16.17", - "@esbuild/android-arm64": "0.16.17", - "@esbuild/android-x64": "0.16.17", - "@esbuild/darwin-arm64": "0.16.17", - "@esbuild/darwin-x64": "0.16.17", - "@esbuild/freebsd-arm64": "0.16.17", - "@esbuild/freebsd-x64": "0.16.17", - "@esbuild/linux-arm": "0.16.17", - "@esbuild/linux-arm64": "0.16.17", - "@esbuild/linux-ia32": "0.16.17", - "@esbuild/linux-loong64": "0.16.17", - "@esbuild/linux-mips64el": "0.16.17", - "@esbuild/linux-ppc64": "0.16.17", - "@esbuild/linux-riscv64": "0.16.17", - "@esbuild/linux-s390x": "0.16.17", - "@esbuild/linux-x64": "0.16.17", - "@esbuild/netbsd-x64": "0.16.17", - "@esbuild/openbsd-x64": "0.16.17", - "@esbuild/sunos-x64": "0.16.17", - "@esbuild/win32-arm64": "0.16.17", - "@esbuild/win32-ia32": "0.16.17", - "@esbuild/win32-x64": "0.16.17" + "@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" } }, "node_modules/esbuild-wasm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.16.17.tgz", - "integrity": "sha512-Tn7NuMqRcM+T/qCOxbQRq0qrwWl1sUWp6ARfJRakE8Bepew6zata4qrKgH2YqovNC5e/2fcTa7o+VL/FAOZC1Q==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.17.18.tgz", + "integrity": "sha512-h4m5zVa+KaDuRFIbH9dokMwovvkIjTQJS7/Ry+0Z1paVuS9aIkso2vdA2GmwH9GSvGX6w71WveJ3PfkoLuWaRw==", "dev": true, "bin": { "esbuild": "bin/esbuild" @@ -6482,15 +6581,6 @@ "ms": "2.0.0" } }, - "node_modules/express/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/express/node_modules/finalhandler": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", @@ -6765,6 +6855,34 @@ } } }, + "node_modules/foreground-child": { + "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" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -6811,12 +6929,12 @@ } }, "node_modules/fs-minipass": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.0.tgz", - "integrity": "sha512-EUojgQaSPy6sxcqcZgQv6TVF6jiKvurji3AxhAivs/Ep4O1UpS8TusaxpybfFHZ2skRhLqzk6WR8nqNYIMMDeA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", + "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", "dev": true, "dependencies": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -7048,9 +7166,9 @@ "dev": true }, "node_modules/highlight.js": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.7.0.tgz", - "integrity": "sha512-1rRqesRFhMO/PRF+G86evnyJkCgaZFOI+Z6kdj15TA18funfoqJXvgPCLSf0SWq3SRfg1j3HlDs8o4s3EGq1oQ==", + "version": "11.8.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.8.0.tgz", + "integrity": "sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==", "engines": { "node": ">=12.0.0" } @@ -7068,9 +7186,9 @@ } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "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" @@ -7089,9 +7207,9 @@ } }, "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -7125,9 +7243,9 @@ "dev": true }, "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true }, "node_modules/http-deceiver": { @@ -7152,15 +7270,6 @@ "node": ">= 0.8" } }, - "node_modules/http-errors/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/http-errors/node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -7312,12 +7421,12 @@ } }, "node_modules/ignore-walk": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.0.tgz", - "integrity": "sha512-bTf9UWe/UP1yxG3QUrj/KOvEhTAUWPcv+WvbFZ28LcqznXabp7Xu6o9y1JEC18+oqODuS7VhTpekV5XvFwsxJg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", + "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", "dev": true, "dependencies": { - "minimatch": "^5.0.1" + "minimatch": "^9.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -7333,15 +7442,18 @@ } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "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": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/image-size": { @@ -7358,9 +7470,9 @@ } }, "node_modules/immutable": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.2.tgz", - "integrity": "sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", "dev": true }, "node_modules/import-fresh": { @@ -7425,12 +7537,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", - "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.0.0.tgz", + "integrity": "sha512-t0ikzf5qkSFqRl1e6ejKBe+Tk2bsQd8ivEkcisyGXsku2t8NvXZ1Y3RRz5vxrDgOrTBOi13CvGsVoI5wVpd7xg==", "dev": true, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/inquirer": { @@ -7577,9 +7689,9 @@ } }, "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -7887,10 +7999,28 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "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" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jasmine-core": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.5.0.tgz", - "integrity": "sha512-9PMzyvhtocxb3aXJVOPqBDswdgyAeSB81QnLop4npOpbqnheaTEwPc9ZloQeVswugPManznQBjD8kWDTjlnHuw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.0.0.tgz", + "integrity": "sha512-BJLxZlSVyWPN/oyaS1IIvIjChghI9/xWsLAIJqL9J5Fz47CN3JNr8Lmik3S2S7QS2RxclYjvSVSXP7IR35PAmg==", "dev": true }, "node_modules/jest-worker": { @@ -7931,6 +8061,15 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jiti": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", + "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -8012,9 +8151,9 @@ ] }, "node_modules/karma": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.1.tgz", - "integrity": "sha512-Cj57NKOskK7wtFWSlMvZf459iX+kpYIPXmkNUzP2WAFcA7nhr/ALn5R7sw3w+1udFDcpMx/tuB8d5amgm3ijaA==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", + "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", "dev": true, "dependencies": { "@colors/colors": "1.5.0", @@ -8050,9 +8189,9 @@ } }, "node_modules/karma-chrome-launcher": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", - "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", + "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", "dev": true, "dependencies": { "which": "^1.2.1" @@ -8113,6 +8252,12 @@ "karma-jasmine": "^5.0.0" } }, + "node_modules/karma-jasmine/node_modules/jasmine-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", + "dev": true + }, "node_modules/karma-source-map-support": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", @@ -8180,14 +8325,24 @@ } }, "node_modules/klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "dev": true, "engines": { "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==", + "dev": true, + "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", @@ -8309,9 +8464,9 @@ } }, "node_modules/lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, "engines": { "node": ">=10" @@ -8500,17 +8655,17 @@ } }, "node_modules/luxon": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", - "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz", + "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==", "engines": { "node": ">=12" } }, "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==", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.13" @@ -8653,9 +8808,9 @@ } }, "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "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" @@ -8731,9 +8886,9 @@ } }, "node_modules/memfs": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", - "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.1.tgz", + "integrity": "sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA==", "dev": true, "dependencies": { "fs-monkey": "^1.0.3" @@ -8827,9 +8982,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "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==", + "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==", "dev": true, "dependencies": { "schema-utils": "^4.0.0" @@ -8869,13 +9024,10 @@ "dev": true }, "node_modules/minipass": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", - "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { "node": ">=8" } @@ -9064,6 +9216,15 @@ "node": ">=10" } }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -9089,11 +9250,28 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -9158,23 +9336,23 @@ "dev": true }, "node_modules/ng-apexcharts": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/ng-apexcharts/-/ng-apexcharts-1.7.4.tgz", - "integrity": "sha512-XpykR8qos14i2ly/QrmGkQIUQfqaZAe2+7tDg5An1akws3VwYg6O643g9LwdTIG3YeWlkKtt4zxYJpEJF3uLUg==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/ng-apexcharts/-/ng-apexcharts-1.7.6.tgz", + "integrity": "sha512-XzW0gLRG9x9ntJ+Ena3dbrGB6lLPuIgVP21Qcv82zbebnYncG9aOyQk48fd2P56jDychanAVTYrNUuK0pMUM1g==", "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "@angular/common": ">=13.0.0", "@angular/core": ">=13.0.0", - "apexcharts": "^3.36.0", + "apexcharts": "^3.40.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/ngx-quill": { - "version": "20.0.1", - "resolved": "https://registry.npmjs.org/ngx-quill/-/ngx-quill-20.0.1.tgz", - "integrity": "sha512-X02Me3RYuQgoOHXzYrkdi4aaDHPkyTZTUib+2amKxAMpM9LEOh/QYrFjudreQJtih6rhV6kRorO5AS4UueX9Mw==", + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/ngx-quill/-/ngx-quill-22.0.0.tgz", + "integrity": "sha512-+MDP3kh/LN1GTZVYbqKxbtlx7y0ahfICLbJckj9/wItQQJSuQZJBwr6B1CntoINu36x79b7MhpSqMGHQsyxL4A==", "dependencies": { "tslib": "^2.3.0" }, @@ -9182,7 +9360,7 @@ "node": ">= 16" }, "peerDependencies": { - "@angular/core": "^14.0.0 || ^15.0.0", + "@angular/core": "^16.0.0", "quill": "^1.3.7", "rxjs": "^7.0.0" } @@ -9254,10 +9432,25 @@ "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==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, "node_modules/nopt": { @@ -9321,9 +9514,9 @@ } }, "node_modules/npm-install-checks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.0.0.tgz", - "integrity": "sha512-SBU9oFglRVZnfElwAtF14NivyulDqF1VKqqwNsFW9HDcbHMAPHpRSsVFgKuwFGq/hVvWZExz62Th0kvxn/XE7Q==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.1.1.tgz", + "integrity": "sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==", "dev": true, "dependencies": { "semver": "^7.1.1" @@ -9333,9 +9526,9 @@ } }, "node_modules/npm-normalize-package-bin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", - "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -9384,13 +9577,13 @@ } }, "node_modules/npm-registry-fetch": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", - "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", + "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", "dev": true, "dependencies": { "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", @@ -9402,29 +9595,28 @@ } }, "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "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/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.2.tgz", - "integrity": "sha512-5n/Pq41w/uZghpdlXAY5kIM85RgJThtTH/NYBRAZ9VUOBWV90USaQjwGrw76fZP3Lj5hl/VZjpVvOaRBMoL/2w==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "dependencies": { "agentkeepalive": "^4.2.1", "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.0", + "http-cache-semantics": "^4.1.1", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-collect": "^1.0.2", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -9438,12 +9630,12 @@ } }, "node_modules/npm-registry-fetch/node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "dependencies": { - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, @@ -9593,9 +9785,9 @@ } }, "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, "dependencies": { "define-lazy-prop": "^2.0.0", @@ -9778,9 +9970,9 @@ } }, "node_modules/pacote": { - "version": "15.0.8", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.0.8.tgz", - "integrity": "sha512-UlcumB/XS6xyyIMwg/WwMAyUmga+RivB5KgkRwA1hZNtrx+0Bt41KxHCvg1kr0pZ/ZeD8qjhW4fph6VaYRCbLw==", + "version": "15.1.3", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.3.tgz", + "integrity": "sha512-aRts8cZqxiJVDitmAh+3z+FxuO3tLNWEmwDRPEpDDiZJaRz06clP4XX112ynMT5uF0QNoMPajBBHnaStUEPJXA==", "dev": true, "dependencies": { "@npmcli/git": "^4.0.0", @@ -9789,7 +9981,7 @@ "@npmcli/run-script": "^6.0.0", "cacache": "^17.0.0", "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "npm-package-arg": "^10.0.0", "npm-packlist": "^7.0.0", "npm-pick-manifest": "^8.0.0", @@ -9798,6 +9990,7 @@ "promise-retry": "^2.0.1", "read-package-json": "^6.0.0", "read-package-json-fast": "^3.0.0", + "sigstore": "^1.3.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, @@ -9860,7 +10053,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "optional": true, + "devOptional": true, "dependencies": { "entities": "^4.4.0" }, @@ -9869,20 +10062,30 @@ } }, "node_modules/parse5-html-rewriting-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", - "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", "dev": true, "dependencies": { - "parse5": "^6.0.1", - "parse5-sax-parser": "^6.0.1" + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5-html-rewriting-stream/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true + "node_modules/parse5-html-rewriting-stream/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, "node_modules/parse5-htmlparser2-tree-adapter": { "version": "6.0.1", @@ -9900,25 +10103,22 @@ "dev": true }, "node_modules/parse5-sax-parser": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", - "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", "dev": true, "dependencies": { - "parse5": "^6.0.1" + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5-sax-parser/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, "node_modules/parse5/node_modules/entities": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "optional": true, + "devOptional": true, "engines": { "node": ">=0.12" }, @@ -9967,6 +10167,31 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "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==", + "dev": true, + "dependencies": { + "lru-cache": "^9.0.0", + "minipass": "^5.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "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-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -10007,12 +10232,21 @@ "node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/piscina": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz", @@ -10040,9 +10274,9 @@ } }, "node_modules/postcss": { - "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==", + "version": "8.4.24", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", + "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", "dev": true, "funding": [ { @@ -10052,10 +10286,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -10064,9 +10302,9 @@ } }, "node_modules/postcss-import": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", - "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", "dev": true, "dependencies": { "postcss-value-parser": "^4.0.0", @@ -10074,16 +10312,16 @@ "resolve": "^1.1.7" }, "engines": { - "node": ">=10.0.0" + "node": ">=14.0.0" }, "peerDependencies": { "postcss": "^8.0.0" } }, "node_modules/postcss-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", - "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", "dev": true, "dependencies": { "camelcase-css": "^2.0.1" @@ -10096,20 +10334,20 @@ "url": "https://opencollective.com/postcss/" }, "peerDependencies": { - "postcss": "^8.3.3" + "postcss": "^8.4.21" } }, "node_modules/postcss-load-config": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", "dev": true, "dependencies": { "lilconfig": "^2.0.5", - "yaml": "^1.10.2" + "yaml": "^2.1.1" }, "engines": { - "node": ">= 10" + "node": ">= 14" }, "funding": { "type": "opencollective", @@ -10128,14 +10366,24 @@ } } }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", + "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", + "dev": true, + "engines": { + "node": ">= 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==", + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.2.4.tgz", + "integrity": "sha512-F88rpxxNspo5hatIc+orYwZDtHFaVFOSIVAx+fBfJC1GmhWbVmPWtmg2gXKE1OxJbneOSGn8PWdIwsZFcruS+w==", "dev": true, "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", + "cosmiconfig": "^8.1.3", + "cosmiconfig-typescript-loader": "^4.3.0", + "klona": "^2.0.6", "semver": "^7.3.8" }, "engines": { @@ -10147,7 +10395,17 @@ }, "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/postcss-modules-extract-imports": { @@ -10210,12 +10468,12 @@ } }, "node_modules/postcss-nested": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", - "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.10" + "postcss-selector-parser": "^6.0.11" }, "engines": { "node": ">=12.0" @@ -10228,6 +10486,19 @@ "postcss": "^8.2.14" } }, + "node_modules/postcss-nested/node_modules/postcss-selector-parser": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz", + "integrity": "sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-selector-parser": { "version": "6.0.10", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", @@ -10375,18 +10646,6 @@ } ] }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/quill": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz", @@ -10454,19 +10713,19 @@ "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", "dev": true, "dependencies": { "pify": "^2.3.0" } }, "node_modules/read-package-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.0.tgz", - "integrity": "sha512-b/9jxWJ8EwogJPpv99ma+QwtqB7FSl3+V6UXS7Aaay8/5VwMY50oIFooY1UKXMWpfNCM6T/PoGqa5GD1g9xf9w==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.3.tgz", + "integrity": "sha512-4QbpReW4kxFgeBQ0vPAqh2y8sXEB3D4t3jsXbJKIhBiF80KT6XRo45reqwtftju5J6ru1ax06A2Gb/wM1qCOEQ==", "dev": true, "dependencies": { - "glob": "^8.0.1", + "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^5.0.0", "npm-normalize-package-bin": "^3.0.0" @@ -10507,19 +10766,22 @@ } }, "node_modules/read-package-json/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.2.tgz", + "integrity": "sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "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": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -10535,15 +10797,18 @@ } }, "node_modules/read-package-json/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "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": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/readable-stream": { @@ -10602,9 +10867,9 @@ "dev": true }, "node_modules/regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" @@ -10632,28 +10897,22 @@ } }, "node_modules/regexpu-core": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", - "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "dependencies": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { "node": ">=4" } }, - "node_modules/regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", - "dev": true - }, "node_modules/regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", @@ -10779,12 +11038,12 @@ "dev": true }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.11.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -10895,6 +11154,22 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rollup": { + "version": "3.21.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.5.tgz", + "integrity": "sha512-a4NTKS4u9PusbUJcfF4IMxuqjFzjm6ifj76P54a7cKnvVzJaG12BLVR+hgU2YDGHzyMMQNxLAZWuALsn8q2oQg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -10928,9 +11203,9 @@ } }, "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "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" } @@ -10953,9 +11228,9 @@ "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" }, "node_modules/sass": { - "version": "1.57.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.57.1.tgz", - "integrity": "sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==", + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz", + "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -10966,16 +11241,16 @@ "sass": "sass.js" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" } }, "node_modules/sass-loader": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.0.tgz", - "integrity": "sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg==", + "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==", "dev": true, "dependencies": { - "klona": "^2.0.4", + "klona": "^2.0.6", "neo-async": "^2.6.2" }, "engines": { @@ -11117,15 +11392,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/send/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/send/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -11166,9 +11432,9 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, "dependencies": { "randombytes": "^2.1.0" @@ -11201,6 +11467,15 @@ "ms": "2.0.0" } }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/serve-index/node_modules/http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", @@ -11294,6 +11569,15 @@ "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==", + "dev": true, + "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", @@ -11313,6 +11597,75 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "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==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.1.0", + "make-fetch-happen": "^11.0.1", + "tuf-js": "^1.1.3" + }, + "bin": { + "sigstore": "bin/sigstore.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/sigstore/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/sigstore/node_modules/make-fetch-happen": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/sigstore/node_modules/minipass-fetch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", + "dev": true, + "dependencies": { + "minipass": "^5.0.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -11470,9 +11823,9 @@ } }, "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -11496,9 +11849,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", "dev": true }, "node_modules/spdy": { @@ -11538,12 +11891,12 @@ "dev": true }, "node_modules/ssri": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", - "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", + "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", "dev": true, "dependencies": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -11612,6 +11965,21 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "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", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -11623,6 +11991,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "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" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -11632,6 +12013,48 @@ "node": ">=6" } }, + "node_modules/sucrase": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz", + "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -11748,52 +12171,43 @@ } }, "node_modules/tailwindcss": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz", - "integrity": "sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz", + "integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==", "dev": true, "dependencies": { + "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", "chokidar": "^3.5.3", - "color-name": "^1.1.4", - "detective": "^5.2.1", "didyoumean": "^1.2.2", "dlv": "^1.1.3", "fast-glob": "^3.2.12", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "lilconfig": "^2.0.6", + "jiti": "^1.18.2", + "lilconfig": "^2.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.18", - "postcss-import": "^14.1.0", - "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.4", - "postcss-nested": "6.0.0", - "postcss-selector-parser": "^6.0.10", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0", - "quick-lru": "^5.1.1", - "resolve": "^1.22.1" + "resolve": "^1.22.2", + "sucrase": "^3.32.0" }, "bin": { "tailwind": "lib/cli.js", "tailwindcss": "lib/cli.js" }, "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "postcss": "^8.0.9" + "node": ">=14.0.0" } }, - "node_modules/tailwindcss/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/tailwindcss/node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -11806,6 +12220,19 @@ "node": ">=10.13.0" } }, + "node_modules/tailwindcss/node_modules/postcss-selector-parser": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz", + "integrity": "sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -11816,14 +12243,14 @@ } }, "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "version": "6.1.14", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.14.tgz", + "integrity": "sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==", "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -11857,9 +12284,9 @@ } }, "node_modules/terser": { - "version": "5.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", - "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz", + "integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -11875,16 +12302,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", + "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.14", + "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" }, "engines": { "node": ">= 10.13.0" @@ -11931,9 +12358,9 @@ "dev": true }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -11948,18 +12375,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/terser/node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -11986,6 +12401,27 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -12049,10 +12485,81 @@ "tree-kill": "cli.js" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, "node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", + "integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" + }, + "node_modules/tuf-js": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.5.tgz", + "integrity": "sha512-inqodgxdsmuxrtQVbu6tPNgRKWD1Boy3VB6GO7KczJZpAHiTukwhSzXUSzvDcw5pE2Jo8ua+e1ykpHv7VdPVlQ==", + "dev": true, + "dependencies": { + "@tufjs/models": "1.0.4", + "make-fetch-happen": "^11.1.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/tuf-js/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/tuf-js/node_modules/make-fetch-happen": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", + "dev": true, + "dependencies": { + "minipass": "^5.0.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } }, "node_modules/type-fest": { "version": "0.21.3", @@ -12086,16 +12593,16 @@ "dev": true }, "node_modules/typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=12.20" } }, "node_modules/ua-parser-js": { @@ -12140,9 +12647,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, "engines": { "node": ">=4" @@ -12200,9 +12707,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "funding": [ { @@ -12212,6 +12719,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -12219,7 +12730,7 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -12288,6 +12799,54 @@ "node": ">= 0.8" } }, + "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==", + "dev": true, + "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/void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -12328,22 +12887,22 @@ } }, "node_modules/webpack": { - "version": "5.75.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", - "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "version": "5.80.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.80.0.tgz", + "integrity": "sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", + "enhanced-resolve": "^5.13.0", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -12352,9 +12911,9 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.1.2", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, @@ -12375,6 +12934,93 @@ } }, "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==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.12", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "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==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.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", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", @@ -12397,72 +13043,17 @@ "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/webpack-dev-server": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", - "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", - "dev": true, - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.1", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", - "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -12516,18 +13107,6 @@ } } }, - "node_modules/webpack/node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/webpack/node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -12551,9 +13130,9 @@ "dev": true }, "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -12592,18 +13171,18 @@ } }, "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { - "node-which": "bin/node-which" + "node-which": "bin/which.js" }, "engines": { - "node": ">= 8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/wide-align": { @@ -12637,6 +13216,57 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "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", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/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==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/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==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "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==", + "dev": true + }, "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", @@ -12693,15 +13323,6 @@ } } }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -12716,18 +13337,10 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "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.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -12763,86 +13376,77 @@ } }, "node_modules/zone.js": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.12.0.tgz", - "integrity": "sha512-XtC+I5dXU14HrzidAKBNMqneIVUykLEAA1x+v4KVrd6AUPWlwYORF8KgsVqvgdHiKZ4BkxxjvYi/ksEixTPR0Q==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.13.0.tgz", + "integrity": "sha512-7m3hNNyswsdoDobCkYNAy5WiUulkMd3+fWaGT9ij6iq3Zr/IwJo4RMCYPSDjT+r7tnPErmY9sZpKhWQ8S5k6XQ==", "dependencies": { "tslib": "^2.3.0" } } }, "dependencies": { + "@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true + }, "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, "requires": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" } }, "@angular-devkit/architect": { - "version": "0.1501.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1501.2.tgz", - "integrity": "sha512-AfORVGLN0FBIUXO3FkfGOKu+Gz6oJjF8Bu8cPn27duiI0wszxGNY3fATKwbSg7JcKx1oQS/G7RjyC5OiTA6a0Q==", + "version": "0.1600.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1600.3.tgz", + "integrity": "sha512-XEncYhrQDwHjDBWqSv9oeufzsYQNHVP+ftD0LWtqL4TvOwsJ5ShWEqkjXIfG9FiaIUtmd6X2BBXutbib/yALxA==", "dev": true, "requires": { - "@angular-devkit/core": "15.1.2", - "rxjs": "6.6.7" - }, - "dependencies": { - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } + "@angular-devkit/core": "16.0.3", + "rxjs": "7.8.1" } }, "@angular-devkit/build-angular": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-15.1.2.tgz", - "integrity": "sha512-8udBKfHo3c/hOuh6VB11UKQZcqbolcNW2smtM9HJMm3fcykvyFEIitoCyl/tgraST+14/kA4aiINdl4EQ4BanQ==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.0.3.tgz", + "integrity": "sha512-AMxxrK0eMN7s6N4nxq0ZvyVIKwBD6L0xEb3kHOCt6BSSy7KdKnc3hTjB6ozQuzZog01xqtIfS87jsVA8WoRD2Q==", "dev": true, "requires": { - "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1501.2", - "@angular-devkit/build-webpack": "0.1501.2", - "@angular-devkit/core": "15.1.2", - "@babel/core": "7.20.12", - "@babel/generator": "7.20.7", + "@ampproject/remapping": "2.2.1", + "@angular-devkit/architect": "0.1600.3", + "@angular-devkit/build-webpack": "0.1600.3", + "@angular-devkit/core": "16.0.3", + "@babel/core": "7.21.4", + "@babel/generator": "7.21.4", "@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.19.6", - "@babel/preset-env": "7.20.2", - "@babel/runtime": "7.20.7", + "@babel/plugin-transform-runtime": "7.21.4", + "@babel/preset-env": "7.21.4", + "@babel/runtime": "7.21.0", "@babel/template": "7.20.7", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "15.1.2", + "@ngtools/webpack": "16.0.3", + "@vitejs/plugin-basic-ssl": "1.0.1", "ansi-colors": "4.1.3", - "autoprefixer": "10.4.13", + "autoprefixer": "10.4.14", "babel-loader": "9.1.2", "babel-plugin-istanbul": "6.1.1", - "browserslist": "4.21.4", - "cacache": "17.0.4", + "browserslist": "4.21.5", + "cacache": "17.0.6", "chokidar": "3.5.3", "copy-webpack-plugin": "11.0.0", "critters": "0.0.16", "css-loader": "6.7.3", - "esbuild": "0.16.17", - "esbuild-wasm": "0.16.17", - "glob": "8.0.3", + "esbuild": "0.17.18", + "esbuild-wasm": "0.17.18", + "glob": "8.1.0", "https-proxy-agent": "5.0.1", "inquirer": "8.2.4", "jsonc-parser": "3.2.0", @@ -12851,48 +13455,232 @@ "less-loader": "11.1.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.2.1", - "magic-string": "0.27.0", - "mini-css-extract-plugin": "2.7.2", - "open": "8.4.0", + "magic-string": "0.30.0", + "mini-css-extract-plugin": "2.7.5", + "mrmime": "1.0.1", + "open": "8.4.2", "ora": "5.4.1", - "parse5-html-rewriting-stream": "6.0.1", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "2.3.1", "piscina": "3.2.0", - "postcss": "8.4.21", - "postcss-loader": "7.0.2", + "postcss": "8.4.23", + "postcss-loader": "7.2.4", "resolve-url-loader": "5.0.0", - "rxjs": "6.6.7", - "sass": "1.57.1", - "sass-loader": "13.2.0", - "semver": "7.3.8", + "rxjs": "7.8.1", + "sass": "1.62.1", + "sass-loader": "13.2.2", + "semver": "7.4.0", "source-map-loader": "4.0.1", "source-map-support": "0.5.21", - "terser": "5.16.1", + "terser": "5.17.1", "text-table": "0.2.0", "tree-kill": "1.2.2", - "tslib": "2.4.1", - "webpack": "5.75.0", - "webpack-dev-middleware": "6.0.1", - "webpack-dev-server": "4.11.1", + "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-merge": "5.8.0", "webpack-subresource-integrity": "5.1.0" }, "dependencies": { - "@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", + "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, "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@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", + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "postcss": { + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", + "dev": true, + "requires": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "semver": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", + "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + } + } + }, + "@angular-devkit/build-webpack": { + "version": "0.1600.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1600.3.tgz", + "integrity": "sha512-b9AO5Kk+uOIK65x9IY1hTNCBs81G681qYRP1kmH8hD0yCC89l+dm0zM+D18s7syWJGem+1iSmceX2D5IOOVstg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1600.3", + "rxjs": "7.8.1" + } + }, + "@angular-devkit/core": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.0.3.tgz", + "integrity": "sha512-3Epwyl0jlLP4X1hT8rl6fF66aGX6a/OvERvDFyaSI5fgMmiO/mN44JXeew9G6OE8XFQoV/cofrroYQ+Ugy+nJw==", + "dev": true, + "requires": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "rxjs": "7.8.1", + "source-map": "0.7.4" + } + }, + "@angular-devkit/schematics": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.0.3.tgz", + "integrity": "sha512-mWvEKtuWi8GjplhdogJ48e8/19Fa6JjyFvRJulZNFUpxfAUUTOAJ1e5FuxbK9mwD2f2NGOJf0/6wIl9ldj4jUg==", + "dev": true, + "requires": { + "@angular-devkit/core": "16.0.3", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.0", + "ora": "5.4.1", + "rxjs": "7.8.1" + } + }, + "@angular/animations": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.0.3.tgz", + "integrity": "sha512-YKy3ECR3+Os1viw3FhBJ+pUqPTACGB1sxeZ2LYCX8LLynpetQ/yQQWQUYDGXEZQJrXlnnDS8QDlebEIvk1hCcQ==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/cdk": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-16.0.2.tgz", + "integrity": "sha512-wspHIYEnYPDBcDldm3tKJU3FJW/M6fB0N+ja+79Amo3+yQBpkr57mfjRYaLGaPZeHXsRah8y+P7YGj6I8NN7Pw==", + "requires": { + "parse5": "^7.1.2", + "tslib": "^2.3.0" + } + }, + "@angular/cli": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.0.3.tgz", + "integrity": "sha512-yZQSfjxy1Tw2nAU5q1NEiE+qGDfVSqFJPptsRSi8C1DhOtwFI4mCbUjdX9l8X+J3y+trKCyaTtPhljs12TQrWg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1600.3", + "@angular-devkit/core": "16.0.3", + "@angular-devkit/schematics": "16.0.3", + "@schematics/angular": "16.0.3", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.3", + "ini": "4.0.0", + "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", + "ora": "5.4.1", + "pacote": "15.1.3", + "resolve": "1.22.2", + "semver": "7.4.0", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "dependencies": { + "semver": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", + "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@angular/common": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.0.3.tgz", + "integrity": "sha512-pN1Mz2xwPs9+W3i+wBletdPMJC+exP9dCdy+iSG5pwpvii1jF3CbstHAPE/pmsoUlQ9nN+vrFowDAXVV7FQpWw==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/compiler": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.0.3.tgz", + "integrity": "sha512-LF/AS0bFXQ+qn6a8Ogx5nNHTYxf+OUYLXQYWECrKCJ4HSsouKDmQ/k8UPlh0gWt9NqQ4SPp9mNpzQhQ4Hq+rXw==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/compiler-cli": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.0.3.tgz", + "integrity": "sha512-h4dnQqvaXOqNWiNgnolahKRoArVJ3r0DW27lTru4eSrnYv+Pd1cDAlBihEJq1Yk76W9wFCN3UjtRwkb1d1ZjUg==", + "dev": true, + "requires": { + "@babel/core": "7.21.8", + "@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" + }, + "dependencies": { + "@babel/core": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz", + "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helpers": "^7.21.5", + "@babel/parser": "^7.21.8", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -12908,365 +13696,119 @@ } } }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "@babel/generator": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.3.tgz", + "integrity": "sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==", "dev": true, "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "webpack-dev-middleware": { - "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==", - "dev": true, - "requires": { - "colorette": "^2.0.10", - "memfs": "^3.4.12", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - } - } - } - }, - "@angular-devkit/build-webpack": { - "version": "0.1501.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1501.2.tgz", - "integrity": "sha512-FzslFvjuAabwtz2wMTCeemYCJA4NqRECz+WEsEZbtwESBMmKdaqmpbdW9ypsepB2iC7eIbHK43R95XAM75utTw==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.1501.2", - "rxjs": "6.6.7" - }, - "dependencies": { - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "@angular-devkit/core": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.1.2.tgz", - "integrity": "sha512-wkLZYvTZt30Ge6Z83Gxsr6mO1TIHCu3SImdE0zwW63EdU9o1NYkU74z1D9VUZ9Up7uHi1cHs/dssbxUuZ4eWOA==", - "dev": true, - "requires": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - }, - "dependencies": { - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "@angular-devkit/schematics": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.1.2.tgz", - "integrity": "sha512-HjJPm+4SS5TdAHHvdpXLv25wsvwVOn5RYs0A9MazTndlm80ct3PKeYUgakNDRFjRj8uORNlJMKmQIIhUSDjFsw==", - "dev": true, - "requires": { - "@angular-devkit/core": "15.1.2", - "jsonc-parser": "3.2.0", - "magic-string": "0.27.0", - "ora": "5.4.1", - "rxjs": "6.6.7" - }, - "dependencies": { - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "@angular/animations": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-15.1.1.tgz", - "integrity": "sha512-oQrbO7uDsw1VcqhuSqvwQQPxEUjmssMM3nDbFUrs6A0MX7XIuhGnkB7mN35M6ZSd0Chj9DMzgbrYToPg1LoLHQ==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/cdk": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-15.1.1.tgz", - "integrity": "sha512-99zaW+EqS/pJh2BLxC+L+/mAyaC3oncRUqRL4WWLENZI2lqD6mCe/kRYDL57WbSZaI54Of38u9GhkBVA/0rn7A==", - "requires": { - "parse5": "^7.1.2", - "tslib": "^2.3.0" - } - }, - "@angular/cli": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.1.2.tgz", - "integrity": "sha512-h42k410W6PPnz9KjX8dCtruMqf1mHgIf7UWrLa8icKpk03U2SIgoJzaXgY/spSHiMGIdDnY1dAYKWV0GQS4zEg==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.1501.2", - "@angular-devkit/core": "15.1.2", - "@angular-devkit/schematics": "15.1.2", - "@schematics/angular": "15.1.2", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.3", - "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.0", - "ora": "5.4.1", - "pacote": "15.0.8", - "resolve": "1.22.1", - "semver": "7.3.8", - "symbol-observable": "4.0.0", - "yargs": "17.6.2" - } - }, - "@angular/common": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.1.1.tgz", - "integrity": "sha512-P4f2rK/YBQQT4clQrcQ9goLf53RS63Q1x2d1dvz7Syr3gcOUyxO7NZQ7Au5afzvbIKZ5Okd+X0+TCGV4q9wQjw==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/compiler": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-15.1.1.tgz", - "integrity": "sha512-A35iXLTTDEej4F2tm5t1flA+5Tv+jYAkQx+d0xvH6LDiWvsiDsOe5OjP8L2LD8dejwWl/JYUz2TH0JZcvw0uqA==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/compiler-cli": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-15.1.1.tgz", - "integrity": "sha512-sBYvh6Y08aKuZPAVwzT1YGVfG63xeXElEfAfq6No9FLUHDo83QB9fU7ovXnu1RJFJiVIy16DHjmTpAmgvlomGA==", - "dev": true, - "requires": { - "@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" - }, - "dependencies": { - "@babel/core": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", - "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", - "dev": true, - "requires": { - "@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" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "@babel/types": "^7.22.3", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" } } } }, "@angular/core": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-15.1.1.tgz", - "integrity": "sha512-nsz+IXdkQanAGhqA2vcwTrGGyw5zIm3TgtYQ/JqK185qkmlhsQfSRvdSPsFPhmIFYp9ngZVUbkhY3D4P3gDzIg==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.0.3.tgz", + "integrity": "sha512-vaUOLgDk03aKDHX6jtv4NEDB6gEBCXvgTpvsTmDUXcCa9WxyXs4Ak22q9ZyNln8/7UG5Uo1gTn90FlOAh9jHww==", "requires": { "tslib": "^2.3.0" } }, "@angular/forms": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-15.1.1.tgz", - "integrity": "sha512-1c/oZD+eSbGzDCcmC+hOqkPH+AzLOiGHxII5QiOOj8so8M958UBrsFBwrnLz06d9OK5Z4IrR4UL2JJspZNbpjw==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.0.3.tgz", + "integrity": "sha512-bCDD17HO9yzKNo4dFJm1doHDlkeBJaIrZKOEtwU6GJ4UcfhBV/xS+upYzZggj4SRIcKbu+ivWhoNGSJS3Lgo/w==", "requires": { "tslib": "^2.3.0" } }, "@angular/material": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-15.1.1.tgz", - "integrity": "sha512-QhyTJv9CnimXKXb4LCH93ovJVAdnoHyElwspl80PcfAV/6A6VrRQAflFoul0WL4WPrV50DG7TWYiEwHPpblbCw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-16.0.2.tgz", + "integrity": "sha512-0bOWXfKsSDiRP39Nv4mJr85G6dChJTI3sNx5g9aWb88il0AiJP0CjgVqMkjoPlzNEcxewWJ8EEPGHf2maszNFQ==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/auto-init": "15.0.0-canary.684e33d25.0", - "@material/banner": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/button": "15.0.0-canary.684e33d25.0", - "@material/card": "15.0.0-canary.684e33d25.0", - "@material/checkbox": "15.0.0-canary.684e33d25.0", - "@material/chips": "15.0.0-canary.684e33d25.0", - "@material/circular-progress": "15.0.0-canary.684e33d25.0", - "@material/data-table": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dialog": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/drawer": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/fab": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/floating-label": "15.0.0-canary.684e33d25.0", - "@material/form-field": "15.0.0-canary.684e33d25.0", - "@material/icon-button": "15.0.0-canary.684e33d25.0", - "@material/image-list": "15.0.0-canary.684e33d25.0", - "@material/layout-grid": "15.0.0-canary.684e33d25.0", - "@material/line-ripple": "15.0.0-canary.684e33d25.0", - "@material/linear-progress": "15.0.0-canary.684e33d25.0", - "@material/list": "15.0.0-canary.684e33d25.0", - "@material/menu": "15.0.0-canary.684e33d25.0", - "@material/menu-surface": "15.0.0-canary.684e33d25.0", - "@material/notched-outline": "15.0.0-canary.684e33d25.0", - "@material/radio": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/segmented-button": "15.0.0-canary.684e33d25.0", - "@material/select": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/slider": "15.0.0-canary.684e33d25.0", - "@material/snackbar": "15.0.0-canary.684e33d25.0", - "@material/switch": "15.0.0-canary.684e33d25.0", - "@material/tab": "15.0.0-canary.684e33d25.0", - "@material/tab-bar": "15.0.0-canary.684e33d25.0", - "@material/tab-indicator": "15.0.0-canary.684e33d25.0", - "@material/tab-scroller": "15.0.0-canary.684e33d25.0", - "@material/textfield": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tooltip": "15.0.0-canary.684e33d25.0", - "@material/top-app-bar": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/auto-init": "15.0.0-canary.576d3d2c8.0", + "@material/banner": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/button": "15.0.0-canary.576d3d2c8.0", + "@material/card": "15.0.0-canary.576d3d2c8.0", + "@material/checkbox": "15.0.0-canary.576d3d2c8.0", + "@material/chips": "15.0.0-canary.576d3d2c8.0", + "@material/circular-progress": "15.0.0-canary.576d3d2c8.0", + "@material/data-table": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dialog": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/drawer": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/fab": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/floating-label": "15.0.0-canary.576d3d2c8.0", + "@material/form-field": "15.0.0-canary.576d3d2c8.0", + "@material/icon-button": "15.0.0-canary.576d3d2c8.0", + "@material/image-list": "15.0.0-canary.576d3d2c8.0", + "@material/layout-grid": "15.0.0-canary.576d3d2c8.0", + "@material/line-ripple": "15.0.0-canary.576d3d2c8.0", + "@material/linear-progress": "15.0.0-canary.576d3d2c8.0", + "@material/list": "15.0.0-canary.576d3d2c8.0", + "@material/menu": "15.0.0-canary.576d3d2c8.0", + "@material/menu-surface": "15.0.0-canary.576d3d2c8.0", + "@material/notched-outline": "15.0.0-canary.576d3d2c8.0", + "@material/radio": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/segmented-button": "15.0.0-canary.576d3d2c8.0", + "@material/select": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/slider": "15.0.0-canary.576d3d2c8.0", + "@material/snackbar": "15.0.0-canary.576d3d2c8.0", + "@material/switch": "15.0.0-canary.576d3d2c8.0", + "@material/tab": "15.0.0-canary.576d3d2c8.0", + "@material/tab-bar": "15.0.0-canary.576d3d2c8.0", + "@material/tab-indicator": "15.0.0-canary.576d3d2c8.0", + "@material/tab-scroller": "15.0.0-canary.576d3d2c8.0", + "@material/textfield": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tooltip": "15.0.0-canary.576d3d2c8.0", + "@material/top-app-bar": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.3.0" } }, "@angular/material-luxon-adapter": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/material-luxon-adapter/-/material-luxon-adapter-15.1.1.tgz", - "integrity": "sha512-J3yYt3zfP4oNBedDPvP6JD6w3uUzwGkYDOkptbrYmy7SpH9Zyut84jcF++gjkFJqFB9tyCJxB/d/sSzEMJUOBQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@angular/material-luxon-adapter/-/material-luxon-adapter-16.0.2.tgz", + "integrity": "sha512-I8lafeMKrn1vSOSooqXZNVACP7IxL04YVZ5T48zpbSUrxAZCqZzPN7wDCZcYy+MalhU8jf5JBrnAt/QJwqveYg==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-browser": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-15.1.1.tgz", - "integrity": "sha512-U1MXowvyigmMpffsnMQI6e9gX7tA6Su7unY0pjN5u9wRYJIkEbKuFyVijguQ83bt+JK3ZBHXD0dvskYnscGUzg==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.0.3.tgz", + "integrity": "sha512-3YzRixYdmFhmTauHhnwLAHq1SOmHCk2VfUYsSfGyZM71DGMGXvUYVPZ00IE1+Hoh61ulv9do4+FDcGhB+r2Huw==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-browser-dynamic": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.1.1.tgz", - "integrity": "sha512-iCbvYduSGtyBWuQfTzm/MDZy7Rd5MNsjpknEtJ45nbjZzv9EL1tGo6qufaTgPXHP8Nbfcco/4UO9w84Gp5irLA==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.0.3.tgz", + "integrity": "sha512-40z8aRCZeMfT8iK4obsY/m91NI5PTW2KS51j+rswctne7i2g3MPLJDcAuTkClIR3Gj9x54qXwR5Tjdsx/r/Lsg==", "requires": { "tslib": "^2.3.0" } }, "@angular/router": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-15.1.1.tgz", - "integrity": "sha512-5l1+6MzeJW01BeO8ZNfYe/TEVzxIHDKHWUrsmGE6oQW01LezG5LUjwR1T23YeR8G5zzRs/p+AU72wTn/aPGQHg==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.0.3.tgz", + "integrity": "sha512-0ckLBbpMi0F7o5sJKis5kWxu7UzkJa4/5K3pDEFd301Ira8c/9LiSMqtFZ1bLGKVjwlpNJKnkq+k0KfmyyGHMw==", "requires": { "tslib": "^2.3.0" } @@ -13278,39 +13820,39 @@ "dev": true }, "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "requires": { "@babel/highlight": "^7.18.6" } }, "@babel/compat-data": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", - "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "version": "7.21.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", + "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", "dev": true }, "@babel/core": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", - "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", "dev": true, "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.2", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.1", - "@babel/parser": "^7.20.2", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2", + "@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.1", + "json5": "^2.2.2", "semver": "^6.3.0" }, "dependencies": { @@ -13323,27 +13865,15 @@ } }, "@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", "dev": true, "requires": { - "@babel/types": "^7.20.7", + "@babel/types": "^7.21.4", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } } }, "@babel/helper-annotate-as-pure": { @@ -13356,23 +13886,22 @@ } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz", + "integrity": "sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/types": "^7.21.5" } }, "@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", + "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", "dev": true, "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", + "@babel/compat-data": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", "browserslist": "^4.21.3", "lru-cache": "^5.1.1", "semver": "^6.3.0" @@ -13402,28 +13931,47 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz", - "integrity": "sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==", + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz", + "integrity": "sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.5", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-replace-supers": "^7.21.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", - "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz", + "integrity": "sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" + "regexpu-core": "^5.3.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "@babel/helper-define-polyfill-provider": { @@ -13449,28 +13997,19 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", + "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", "dev": true }, - "@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, "@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "dev": true, "requires": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" } }, "@babel/helper-hoist-variables": { @@ -13483,37 +14022,37 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz", + "integrity": "sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==", "dev": true, "requires": { - "@babel/types": "^7.18.9" + "@babel/types": "^7.21.5" } }, "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.21.4" } }, "@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", + "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-simple-access": "^7.21.5", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" } }, "@babel/helper-optimise-call-expression": { @@ -13526,9 +14065,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", + "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", "dev": true }, "@babel/helper-remap-async-to-generator": { @@ -13544,25 +14083,26 @@ } }, "@babel/helper-replace-supers": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", - "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz", + "integrity": "sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-member-expression-to-functions": "^7.21.5", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" } }, "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", + "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", "dev": true, "requires": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.21.5" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -13584,9 +14124,9 @@ } }, "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", + "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", "dev": true }, "@babel/helper-validator-identifier": { @@ -13595,32 +14135,32 @@ "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" }, "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", "dev": true }, "@babel/helper-wrap-function": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", - "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", "dev": true, "requires": { "@babel/helper-function-name": "^7.19.0", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" } }, "@babel/helpers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", - "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", + "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", "dev": true, "requires": { "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" } }, "@babel/highlight": { @@ -13634,9 +14174,9 @@ } }, "@babel/parser": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", - "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", + "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -13649,14 +14189,14 @@ } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", - "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-proposal-optional-chaining": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" } }, "@babel/plugin-proposal-async-generator-functions": { @@ -13682,13 +14222,13 @@ } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, @@ -13723,12 +14263,12 @@ } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", - "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, @@ -13753,16 +14293,16 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", - "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", "dev": true, "requires": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.1" + "@babel/plugin-transform-parameters": "^7.20.7" } }, "@babel/plugin-proposal-optional-catch-binding": { @@ -13776,13 +14316,13 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", - "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, @@ -13797,14 +14337,14 @@ } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, @@ -13954,12 +14494,12 @@ } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", + "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.21.5" } }, "@babel/plugin-transform-async-to-generator": { @@ -13983,44 +14523,45 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz", - "integrity": "sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-classes": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", - "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", + "@babel/helper-function-name": "^7.21.0", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-replace-supers": "^7.20.7", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", - "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", + "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/template": "^7.20.7" } }, "@babel/plugin-transform-destructuring": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", - "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.20.2" @@ -14056,12 +14597,12 @@ } }, "@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", + "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.21.5" } }, "@babel/plugin-transform-function-name": { @@ -14094,35 +14635,35 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", - "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", - "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz", + "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-simple-access": "^7.19.4" + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-simple-access": "^7.21.5" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", - "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-validator-identifier": "^7.19.1" } }, @@ -14137,13 +14678,13 @@ } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", - "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.19.0", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-new-target": { @@ -14166,9 +14707,9 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz", - "integrity": "sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.20.2" @@ -14184,13 +14725,13 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz", + "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" + "@babel/helper-plugin-utils": "^7.21.5", + "regenerator-transform": "^0.15.1" } }, "@babel/plugin-transform-reserved-words": { @@ -14203,13 +14744,13 @@ } }, "@babel/plugin-transform-runtime": { - "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==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz", + "integrity": "sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-plugin-utils": "^7.20.2", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -14234,13 +14775,13 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", - "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" } }, "@babel/plugin-transform-sticky-regex": { @@ -14271,12 +14812,12 @@ } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", + "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.21.5" } }, "@babel/plugin-transform-unicode-regex": { @@ -14290,31 +14831,31 @@ } }, "@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", + "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", "dev": true, "requires": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", + "@babel/compat-data": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", + "@babel/helper-validator-option": "^7.21.0", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", "@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.18.9", + "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", "@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.2", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", "@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", @@ -14331,40 +14872,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.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.20.7", + "@babel/plugin-transform-async-to-generator": "^7.20.7", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@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-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-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.18.8", + "@babel/plugin-transform-for-of": "^7.21.0", "@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.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.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-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-parameters": "^7.21.3", "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.20.5", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-spread": "^7.20.7", "@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.20.2", + "@babel/types": "^7.21.4", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -14393,10 +14934,16 @@ "esutils": "^2.0.2" } }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "@babel/runtime": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", - "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", + "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==", "dev": true, "requires": { "regenerator-runtime": "^0.13.11" @@ -14414,30 +14961,44 @@ } }, "@babel/traverse": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", - "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", "dev": true, "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", "debug": "^4.1.0", "globals": "^11.1.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", + "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", + "dev": true, + "requires": { + "@babel/types": "^7.21.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + } } }, "@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.3.tgz", + "integrity": "sha512-P3na3xIQHTKY4L0YOG7pM8M8uoUIB910WQaSiiMCZUC2Cy8XFEQONGABFnHWBa2gpGKODTAJcNhi5Zk0sLRrzg==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-string-parser": "^7.21.5", "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } @@ -14455,156 +15016,156 @@ "dev": true }, "@esbuild/android-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", - "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", + "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", - "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", + "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", - "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", + "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", - "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", + "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", - "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "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==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", - "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", + "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", - "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", + "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", - "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "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==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", - "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "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==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", - "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", + "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", - "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", + "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", - "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", + "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", - "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "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==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", - "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", + "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", - "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", + "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", - "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", + "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", - "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", + "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", - "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", + "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", - "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", + "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", - "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", + "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", - "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", + "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", - "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", + "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", "dev": true, "optional": true }, @@ -14614,6 +15175,71 @@ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "dev": true }, + "@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, + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "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, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -14634,19 +15260,20 @@ "dev": true }, "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" } }, "@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true }, "@jridgewell/set-array": { @@ -14656,26 +15283,13 @@ "dev": true }, "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } } }, "@jridgewell/sourcemap-codec": { @@ -14685,13 +15299,13 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "@leichtgewicht/ip-codec": { @@ -14701,762 +15315,763 @@ "dev": true }, "@material/animation": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-5osi1z4JQIXcklPALbH/zTfOm2pDzHt9Fxm7ZyURy250xIZj6QjULRzPTnzOhC2ropfix9ra2Cfggbf0dcRbEQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-kOba/FmgxMNWL7Zgyma7Ar0vsF+M/lu089qOeAviD/ccohYatmsr0LGaqFZL+M1AjnW9wXOoBtJXPF2kFii5AQ==", "requires": { "tslib": "^2.1.0" } }, "@material/auto-init": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-OigQTmrVzkcGvxNjOaIe5oItTFPgrO9xLewvharDI6m6yvO1z7OBnkcW+sFN6ggLNYNxd0O1u9v64vMsmeDABQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-MWH+0YdPr8a4FsJEkQC6nJ57WmPIqm3kS1WbROkSoxb/eZGECJCA6ajpWfgQtfjjKBrV217mRpen80Uf6fY9Kg==", "requires": { - "@material/base": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/banner": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-PqtGp3KWzdu58rWv/DIvSfe38m5YKOBbAAbBinSvgadBb/da+IE1t5F7YPNKE1T5lJsQBGVUYx6QBIeXm+aI/A==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-/tV7PDwmWMLQbyLjN2kuJvkAK2HyVCrmnd9ftcBoR02HGQ6uHGPiJYsP8Xw/ueBdpix2gM9ujtD6Vqby/Y6vMg==", "requires": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/button": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/button": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/base": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-oOaqb/SfjWwTKsdJUZmeh/Qrs41nIJI0N+zELsxnvbGjSIN1ZMAKYZFPMahqvC68OJ6+5CvJM8PoTNs5l+B8IQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-fObaR0dtmP8JrtZ0jzO28iP+TCn2RJzyOC1OHC7qyYOmGYw7MaHF9lArCdD++J93mhppTK3Fe+nOaBT6QkQW+g==", "requires": { "tslib": "^2.1.0" } }, "@material/button": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-Nkekk4edeX+ObVOa7UlwavaHdmckPV5wU4SAJf3iA3R61cmz+KsgAgpzfcwv5WfNhIlc2nLu8QYEecpHdo9d/w==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-NrL9dJ364BJhf31+pffZw9iqOEM9pYxYshSH0xO9mjuo/F/VmPsFrUoK4PE+rx2/JltIhGJ+zaooZowEYIHlKg==", "requires": { - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/focus-ring": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/card": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-xhyB7XX5KkEiCEqwSPkl58ZGYL6xFdnY62zimyBXJRG/Eaa0Swj3kW20hVCpt4f7c9Zmp8Se27rg8vnKmhvO3g==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-lBwgu7wHjvS2LhiqsUBm+m6MEYMt74bON8GV6XCHXJYJK1Bvr7W5ib9D4KrOrEg9U2ksXK7i76b87c3yCuIRkQ==", "requires": { - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/checkbox": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-NFpM3TS924PmVsk2KQLNU95OYCf8ZwYgzeqfnAexU0bEfjUJXINBun2Go0AaeOUMjuvWUe+byjrXgv8SFYbMUA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-eb2Mq0ME6l0o358/WSeRLzaSqj8YEDb1LLQZqivZQhcNV9NnqUtMEMx1UEEaH7RelbsSraqQAQQ8/zoKmDBZKg==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/focus-ring": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/chips": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-z4ajQ4NnsAQ/Si9tZ4xmxzjj2Qb+vW++4QjCjjjwAGIZbCe0xglAnMh2t66XLJUxt7RoKZuZVEO7ZqcFZpvJFQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-IvKmOpk8FHPzJXD19uHkPjmquQP6oerNh1QL2FdVm5+6dLt43CMVlCe8qzGorQofw3xWeY304aGL9eGEwuz51A==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/checkbox": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/checkbox": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/focus-ring": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "safevalues": "^0.3.4", "tslib": "^2.1.0" } }, "@material/circular-progress": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-G6qD0nGNtEUwWnAMJuA9INYFpZoKtx7KFjBaPF4Ol2YLHtmShALNAYyn54TMAK8AZ2IpW08PXjGS7Ye88vrdEQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-J4yrTYftgDiw1buLPSPQKp6FRhgQ0RU6WEHX1OIy6RL0AySSsOB6eDAcVzOg5enWsXBtSsEwjNLXTb5UmHtilA==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/progress-indicator": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/progress-indicator": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/data-table": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-+wDw1DDDFfAsKAMzs84f/5GCjux39zjNfW8tL4wFbkWNwewmQrG9zaQMJhBpVOtLCrM8Gj6SOgOANqgqoCjvGg==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-E3K8exa8ihrUFz61gUvJ9zwqcLwHY4k5vcHiqKhf9Sa4Lqgy7FQmd+EMckr0X62aaj+RqmJdahiJoWDFBx7LVw==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/checkbox": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/icon-button": "15.0.0-canary.684e33d25.0", - "@material/linear-progress": "15.0.0-canary.684e33d25.0", - "@material/list": "15.0.0-canary.684e33d25.0", - "@material/menu": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/select": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/checkbox": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/icon-button": "15.0.0-canary.576d3d2c8.0", + "@material/linear-progress": "15.0.0-canary.576d3d2c8.0", + "@material/list": "15.0.0-canary.576d3d2c8.0", + "@material/menu": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/select": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/density": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-661yEVRMGrlq6S6WuSbPRO+ZwpdUOg2glCc7y96doM6itSLOa3UEAldjOLfsYZVB74GnKCiuDp//QmfoRyYTfA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-seBxT1LkU4jhzyeP1yT1coWXs0QGhwmwfeZOCx2YG2RmHD8a+ucf0y4BjWGDQSc4B9nudeIOYkXEUMfSdjRoQA==", "requires": { "tslib": "^2.1.0" } }, "@material/dialog": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-szn0dHnfeQTSOC6SSRSGAzX6Tnx+4NnSMUwNkXm+3bwjds8ZVK26+DXwLrP5f3ID5F1K5sFsRf2INo5/TNTHyQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-12rNdRft1iKpZQLCVlYK3f314wFU1KlF6Ejbx8wT6dz4mrNhgYYoxjOOpL0D/Ys1iMR2EUBJOHdv7ghU/ApcGA==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/button": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/icon-button": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/button": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/icon-button": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/dom": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-7pEJLYov+tGgfuD8mZxoVU6rWtPI8ppjTAhz+F27Hz9FG0JETMWTKpDPBXLnKvX7vhIxL83GvZ9geNHCe8Hfog==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-oo8vmADL6Z26iCWG7PEvUYEeVWXufETGHYVbWIEPGCr7uzB6j4Apb+JDKn0h3yMP33t7VJibQTBkA5q5Y4Vtxw==", "requires": { - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/drawer": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-/KMckLf1PYU/H3PXnS4e0aFl03qG3JlSv4LGgX6juJufcONqGTl/m63EMO/L/eUy6H1CRrXmVDjik/jzHLyDhg==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-+y+DaXemENGgouy0qzP8XhcO+n57V40lyzHd5lZ7MaTSy7VcgKUjIoAX/aTGKjbh/jFk+fuQZeCwC8D0oAZz8g==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/list": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/list": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/elevation": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-WDF8SsRtq3rXUbVVbd9K4DUijIPH0bUFSOreVYxudpuxAfTlDS5+aeS1EK9UIBFYLuba4u5wVT2tDv6e1RTfrQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-9jMCY7Wwbo2FBzXKM2InxgsGvflOGPm/ZeUAZ5OtIV3WSvj/nI08FxPcZFwUJvWvyB3OgwSVAWPfT0gsD1sUHQ==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/fab": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-KCu87rWOKEAe9vZcAm6K8XazYSWPNjMG+OhrbPjHW6bCO7as1YCgtmkBkhff7csY/rFmcVpIy884xtUfLmSudQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-5t8QDhDbdRelLiQbPHWh/M36Q4LNPMRqBnoA3V3r2H7+zOVhA5msqi8GLp2zx+cW6oAQjrs6QF9fMLOkXX8qgw==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/focus-ring": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/feature-targeting": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-HyH1erNTSjS63sigNSUMaCd0nJhTNdDFeC+myrxwtDaQm+uYJ8troCNtQM3g6mx0XATNtX5aTOoPmrM6yVVi1A==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-i93vd9JZj5mDCzSrIAJjnuwySo/zkf3S+TmCcOb5vp/8R6Tkj5djTZt067PIUX+HN17Ukit7NSpSVTbJjAsaBQ==", "requires": { "tslib": "^2.1.0" } }, "@material/floating-label": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-f7TPp6bKpGvV3sYYiZHSGlrixXKkXXITW3Esp7KB9jRq42c0H82novmdwvY0eTef4ootmA2JEysr78KQfHBUPg==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-5NX6px0ndc51rRg/OcmehTpXrSuwmdsblpkHLxzYeeDKygBzGz+5ixfRSa8QWoHifEZdcTaUNsz5G7vQPngHdA==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/focus-ring": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-ikw2RVUfgzXChpWIzPH1VzRvTjYb5ZKj4H+CZf7jqPUXMstFOZg90Bp7ARLZHqYiyNMuUq3zUTHozS6iHorSqg==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-dV0UnsKyYhF3SUcRhWdcyYtO/2GkOLcANq+iujDywfMuqQfo48ui8fA1x9C8Jl7LJPVTNvRjiI4kEsWJya273g==", "requires": { - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0" + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0" } }, "@material/form-field": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-vpF9N/uq5no/7+8GAbEH0868FhOuBgxAWRr1Sfb+jthKfBr8OS/wPU/AHzZHdHdAm7PQynbeOXfDsX2dI//PDA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-4c00pPlVwx8lvfYO28Ato+WcA9HmKmU5NmmPrYuifMxGpz8BwHPL3369wsE40qkgZt8bvtwVE2lDcij6kJ434g==", "requires": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/icon-button": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-wMI+XGzmIN/o2ePBKg2hLyx7H4pXCRAyyIKMQS1FMp1UKa2tYmiHVX/V8skhKwCqxg3i6Ls/LxMjfPxTR18WvQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-Wer60ASSo7nj2xXcJRUTFbm6uiKVvtpuoAn9a7SvtNYDLPGBTCmDDxI0VEXjDfTMSPhpxIo92i40gl5Hk0fsKQ==", "requires": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/focus-ring": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/image-list": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-Ol+uaHYBe5R/cgzlfh5ONnMVX0wO6fV74JMUcQCQlxP6lXau/edARo4tkRc7A7UJUkU3VRv0EpEjLoCRNUPGaA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-veGiP8W43sHWhny8enHNXLaPkvubjgh5NzJOryfTyHb+Ixyfr6/FYCtNGtRgTkNiy7nRye33mMaNqQ/oRyN/LA==", "requires": { - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/layout-grid": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-ALXE1mqFNb/RB2lVRQ3/r1Aufw2mFZnOjRE+boYDVepmAG/xWyPCyaGoavELJF5l4GAb0tXi8wA/8HeGbLOpuA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-Vxh2Lyv0XvkSFuzio6PmooZtDVFyhFXAhTXWhvxYBgTPyrYB8lsUcWRwHJZEkKuz3Sti7WKtF5rqv+p3KGy01A==", "requires": { "tslib": "^2.1.0" } }, "@material/line-ripple": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-7hRx8C/e9i0P6pgQpNOMfTwSS2r1fwEvBL72QDVGLtLuoKKwsjjgP6Z0Jat/GeHJe87u9LQvGBoD4upt+of/HA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-NnHk935Ae39eH4Ac7aR0GKIUd3/7WkV5VRW/SXdwTaEie0hLK9+AGXkhJH0U6pmmWmM7moJNRFXZMSv5oavkBw==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/linear-progress": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-iJclt7mKmcMk6pqD7ocXKfCWZhqBoODp7N593jYlxVpTJuEz2wiVAjZUDn/YGj/Uz3CRH+2YFfOiLr9pwWjhDg==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-yuvhPo1n8J7C+VtzP2RjqNfyiApx2k2W5g7zVAWmfDJbvqtPqciO8rqKhrQM67ZfpfseA1HgG1kVqigbxi4ERg==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/progress-indicator": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/progress-indicator": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/list": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-rQ+FCSdzmwTcT00IYE0uRV3CS4oGSccKFl9hkcF+aHFW61L7ORh/SCGUDPrEfQFrFkMn5f8qroVJjpUAMXBz4g==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-MPEC640uS3i6fvRSWaUetErAeRsqyqlM6l59/pf9EY1+L/gV6tFheb07/nj41l0sI6BbUr+qR1j98Ybj/8pKQg==", "requires": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/menu": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-r7wzDLSGSI9629/mfpvsMzkVxpmV75kcD3IrW0Pcu6/Bv/1xi0EvjcUXzNJJoQlwN4Zj35Ymz/PCjZkIDIz68Q==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-l/PQjH78oLnMBBzRavPAarsqT567dDnglaLMhlZHHcgpzWdGQreJ/kIPoaMr/VPaIAAwjQfivNUaIb17+3mLEw==", "requires": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/list": "15.0.0-canary.684e33d25.0", - "@material/menu-surface": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/list": "15.0.0-canary.576d3d2c8.0", + "@material/menu-surface": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/menu-surface": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-RVO5GAYcfWPaKwxsF/NhUAmrYXQCQBKvRQW0TIlbmAJz6lcFeTs6YZqF3u1C7qrL3ZQGz+sur/7ywj6QU0oMow==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-BLTOgfVR96uRE5vvXy+ZO7A/NgzMjT7YhxRbODYv+vSi46Gmdyx09GQcOKMUZspat9vNRqh/AYSXpJ6j5E9U2w==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/notched-outline": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-9YHcBkvJLPVYzkHcWoTpBZAFrEd+j1hjhGxLhh0LuNrZe8VroUkZD1TTnUAPHRG3os6EqEWWaKb0RN+aPIF2yQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-+l3AHq8JuNBz4J0d5jsWAueghwnzAASMq7BIqrZUMEfyCSG3MJ2Pzzj5AMLyqFvb6IMMSqbNozgkVwtD/Qh8SQ==", "requires": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/floating-label": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/floating-label": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/progress-indicator": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-c0icji4faeNWUoqGENGC7Hav0Puxh0RwXIDVizffaUxKIGbajpIp5+4Zop73fK/xFLGMB/npg7TbP+aCGjQ3fw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-Id+ie1pRQRbaglj8P/LAB7wIuQf5zlwuMw6MhefjkgXRXg5GkJQIeE4EQOzVhDQUkvLOBapKP8gRMs7t9TwHPg==", "requires": { "tslib": "^2.1.0" } }, "@material/radio": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-U3Eh8sNUA8trDla1Bq8Bo02foxYvtoewaKeF8A8tAju81XZ4jRiftfOsOWZDZEHCVbbCB2QwvutvFlnay5n+Aw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-/BpEL6YWKM+7c4dWqOcSM8wbfz1K3g3r+q+r1ReBKlvUh+Uhz++PW6qjMxPTPNt7a+yzH9/LkXMRZan9/+pjxw==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/focus-ring": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/ripple": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-RyePu7SjIm/OuyyEieZ/gxiPYkNZOZHeid72WRcN9ofdlljj2pifcdPvcfZA+v/DMS33xo5GjG2L/Qj6ClWrKw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-YewgiAu6fmHLiJrML2sWeNXYZB4ooCY8m+mMl2eSsAq0YDpIFL8gsrgPAAKete5J9ASbF6id1jsm0pyoM6AO1g==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/rtl": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-NqdJl8Ayupp1Th+vCNCpVQHbUFOuF7TCte9LD1norTIBUF/QizIxWby2W5uUEiPbnh5j9PmE1CJtfLwKun3pcw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-LCVuYdauCQ7+SD1h+rrqRazP9ownLDsq0XSgbRZXFPAVq8ED8FDvlK8+Ustu4/slLNBq3F78M6SlzOWyCnErRA==", "requires": { - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/segmented-button": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-bEGgg8vgXNLyukyV8HRjFMuQ6t6nm5LQ4Pgm22um61Yc8qyi0BOqV41OR4SVdUrUqZxh1aVD+p+4NN03+LfQXw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-XGluudwIFds1XU+W+C+5pxTP5z8t4wn4UC24RCbMG2AhmeF3cP+iou1eL9gRT/OQ5YYG+E+tB7UeTQUXpxIVcA==", "requires": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/touch-target": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/touch-target": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/select": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-kf178/2TeEinTv0mgmSBcmmExQ2h7a7dtR1E3WuqQgisJ/R6+zVLMkC2CnfIyzxYX2vkuUTG0ue3Reh/6XiqSg==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-4HBxKVgsEdTRUZo7ciH2rGUMnE2dmKzGo2XGK1yQadbS26Dn3uIJV92xvn+fv5eoHWvYcHrcq1/7pH+JhuAogQ==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/floating-label": "15.0.0-canary.684e33d25.0", - "@material/line-ripple": "15.0.0-canary.684e33d25.0", - "@material/list": "15.0.0-canary.684e33d25.0", - "@material/menu": "15.0.0-canary.684e33d25.0", - "@material/menu-surface": "15.0.0-canary.684e33d25.0", - "@material/notched-outline": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/floating-label": "15.0.0-canary.576d3d2c8.0", + "@material/line-ripple": "15.0.0-canary.576d3d2c8.0", + "@material/list": "15.0.0-canary.576d3d2c8.0", + "@material/menu": "15.0.0-canary.576d3d2c8.0", + "@material/menu-surface": "15.0.0-canary.576d3d2c8.0", + "@material/notched-outline": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/shape": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-aEelpaTFmpnCji3TUGP9bVCS/bRVjUmLTHBPZtuu1gOrUVVtJ6kYOg73dZNJF+XOoNL2yOX/LRcKwsop29tptA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-AYcQjpeWq/lJoBtUdjSeOf9nVCqGrsNTzuBqwKcQ+bPHkhHsD8h5YK6yD//DR2fTT0TFidvOY3NsYqcP460B0Q==", "requires": { - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/slider": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-WVyK+2pSNSZmj07M2K/a3TADoQ9FBCndfNC/vE7/wGIg4dddJJK5KvQ+yruf9R2cSzTL/S1sZ5WpyyeM8E9HTw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-80GPBNJXWO3tCK95P49H+Ru/+Q6E6NNwGgZHx6L5ADFKJt5k6jZLwjZ1DlX5kqD10WpV3qVggSxbP9/TgGdNAQ==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/snackbar": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-itO+DCkOannZzR1/cCHcqAm7ifhuFvXmDItNoA8qLEcAyJDJJRkhpwj3XQ01yuo9gBFcSctp7Txt7e+Hncm/Jg==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-aOPR54EI1BrlompgcWcYtCgGHvd+mtvHrgcbvHbB1BxqIVG7X6N2gJ/8I4yzDNjXbxlu0hPVSsVRwhuvlF6NcA==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/button": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/icon-button": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/button": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/icon-button": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/switch": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-Jxi0gl92yvvZZsAPxvVHzXx2ga+T/djMow98jvEczmpUorWnAhgiCr9CsSSRoosahWyRB8NLZOxUQrACxvffjw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-WSOdXZJotvxhAsWxhvaBHXC5sGRSWxkyAX1lCg39y5NisopiKSNlPWgZcl++yyFKVhpoYzYVV7yGynRWFj/VWQ==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/focus-ring": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", "safevalues": "^0.3.4", "tslib": "^2.1.0" } }, "@material/tab": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-WQL3wj9syHNcfe8KbgGGUcA34M8C/xZ+n0Fkkh8Kk6puVwaU+xqUNihsxPY6YzKpmh4PZ4oJaBdiN8zvFT1zqQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-3crRmZpIG6qRByPr784Cy2Yi714+YLAXD3q1PGcrb2dqNl/ckFBS3JnwkfvDYTTOBz+sOkVcDIbadAUivnqWZQ==", "requires": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/focus-ring": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/tab-indicator": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/focus-ring": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/tab-indicator": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/tab-bar": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-SW/cMaDsIGGkM1ag3A7GJRlmr8eXmObWsvitQJzh6Azr5zzZtSI+GQygkMesAEE1gbpqOVN8d40rh3H7VVIAcA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-CuBJe4jt3mOO7zUy8tpUZizeac76AP2Scw/R8GZCArj+tW/Sxtx+J0VAMMzpLrkxChbflLKdKj7/vehvt1dRpA==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/tab": "15.0.0-canary.684e33d25.0", - "@material/tab-indicator": "15.0.0-canary.684e33d25.0", - "@material/tab-scroller": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/tab": "15.0.0-canary.576d3d2c8.0", + "@material/tab-indicator": "15.0.0-canary.576d3d2c8.0", + "@material/tab-scroller": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/tab-indicator": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-kKICqSPqOlaf0lzaFFCmuOqPXJC+cK48Qmsc+m5o6fJhkmuZRCYpIwB2JeP+uZSOq/bTH+SrPtCtnVlgWg6ksA==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-zPGeBimy+mG0Eo2wc83aKS8cdiyQM7RZW0BFl570BGejzjTRWoW3hoQTqKj/3Ha7/jcN+kMHMFpsNr8toWGC4g==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/tab-scroller": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-H6EU/TSiK/M2DyyORX5GEtXD9rKYxTMHC2VxsNWARPMFJGzgeW2ugYkFv+rKI1/c0bs0CJ4e+qFnOlBsQXZvyQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-8ambIVmtdrKgSirGxVYJEDaXOQE81m3lJrPp8hBjuQeo8m6+769mb1cXf7uvUazsuHTQPl7BAxrd+BF5b+v32w==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/tab": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/tab": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/textfield": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-OvgpDXjvpyJTtAWskO69IDybFvDNzr9w2PN/Fk7yFm+uNVupaWz1Ew8lZ4gGslaTNSVmh2XcsvmzxcLINSiiNg==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-Pyd+xyKXrAbsvE5Prh2A0QvzMLvK5toBGsVGkwU/Y3qzu0lZQpd4uxgCGFau0/Ni8Jl58CNxmPTFnT69MLgM9Q==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/density": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/floating-label": "15.0.0-canary.684e33d25.0", - "@material/line-ripple": "15.0.0-canary.684e33d25.0", - "@material/notched-outline": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/density": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/floating-label": "15.0.0-canary.576d3d2c8.0", + "@material/line-ripple": "15.0.0-canary.576d3d2c8.0", + "@material/notched-outline": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/theme": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-AZxaXXAvRKzAi20RlMxzt2U5UmkCWyv7DMWEBXsxtG5Tk54mi1HsbVUp3fxDPTlmL7Pq8p1/DESg/o7TgRCVlw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-wD3N8+2uqyRc9K1q3Q5YvTKgbecSFQuJGQeQFsHKNsshuqm0lQgserWs5ECHJ4NKihAceR4y+9K6tFlutnd2UQ==", "requires": { - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/tokens": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-wVwbQOTCXDPKYPdHQHLr026y36MMFelID1CmbfRk6mSol4O8yE9U0fXcShfRDW8Qo5E3X31w9c2A6T3neJY7wQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-Gg864O9D+hEPm+el/rl9gGo9JoMdNV1imqBr3pQR1NbH8Whn2qSUl7JufVOz1qe4WwU5wzV2bqXfEVI5/R37Ug==", "requires": { - "@material/elevation": "15.0.0-canary.684e33d25.0" + "@material/elevation": "15.0.0-canary.576d3d2c8.0" } }, "@material/tooltip": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-dtm26QjxyQdinc8btgz6yys07b7bUW4FZgNF2EBPeGrICrPg7jf+JEvDziz5g8VMaTBQLOQRSCGy0MKuRlOjLw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-jLqEOTSaGY2iezoNnbvgmbHh+U+4KXaL1WvCwWrrzuaq+d204pEFfuhnIrFksChgn/vTKLbBJ08j41Dxv483mg==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/button": "15.0.0-canary.684e33d25.0", - "@material/dom": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/tokens": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/button": "15.0.0-canary.576d3d2c8.0", + "@material/dom": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/tokens": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "safevalues": "^0.3.4", "tslib": "^2.1.0" } }, "@material/top-app-bar": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-1M+oupUxflfW7u81P1XlxoLZB8bLzwtpKofIfDNRbEsiKhlLTERJR3Yak3BGE9xakNMysAaBHlkb5MrN5bNPFw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-3GSVTPiK0dpexfIxImg7He8WWzTJ94Su+WuKhCHMBUsnc1jeMWD22fNBXo0HrEBK6+4U+4PxJXgrGE9xI3uzug==", "requires": { - "@material/animation": "15.0.0-canary.684e33d25.0", - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/elevation": "15.0.0-canary.684e33d25.0", - "@material/ripple": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/shape": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", - "@material/typography": "15.0.0-canary.684e33d25.0", + "@material/animation": "15.0.0-canary.576d3d2c8.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/elevation": "15.0.0-canary.576d3d2c8.0", + "@material/ripple": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/shape": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", + "@material/typography": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/touch-target": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-zdE69Slg8+T7sTn1OwqZ6H7WBYac9mxJ/JlJqfTqthzIjZRcCxBSYymQJcDHjsrPnUojOtr9U4Tpm5YZ96TEkQ==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-wCJSv1yPnD2CQN9r24MBWTFL3+xJOsFo9W/3jPpipvTGi16Nq5ce0Fr6gw7Y/hVUfkqSdKudly9bTNTJnmhglA==", "requires": { - "@material/base": "15.0.0-canary.684e33d25.0", - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/rtl": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/base": "15.0.0-canary.576d3d2c8.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/rtl": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@material/typography": { - "version": "15.0.0-canary.684e33d25.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.684e33d25.0.tgz", - "integrity": "sha512-aVnvgMwcfNa/K4wujzpKDIxjGl2hbkEL+m+OKDSQqWYjKcP9QrbzCXJruJBqxrBoPRHLbqo47k5f9uT8raSgjw==", + "version": "15.0.0-canary.576d3d2c8.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.576d3d2c8.0.tgz", + "integrity": "sha512-hScFlyRZ8Qv/jL5rihhs1SR/wt7yGIq8KLYObi45LhMHHEl3s+otGcg8JmWrD+xZufVz/pemRlNJ9wlM+yO4rQ==", "requires": { - "@material/feature-targeting": "15.0.0-canary.684e33d25.0", - "@material/theme": "15.0.0-canary.684e33d25.0", + "@material/feature-targeting": "15.0.0-canary.576d3d2c8.0", + "@material/theme": "15.0.0-canary.576d3d2c8.0", "tslib": "^2.1.0" } }, "@ngneat/transloco": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@ngneat/transloco/-/transloco-4.2.2.tgz", - "integrity": "sha512-IyLNUiC0O4aCRtvZ5D6KER9KP3UWoONJTAT7hhtBNWuLNNwamV29tlq08cYuMOKpp8i+YUWf9vTcRNeHsIQgYg==", + "version": "4.2.7", + "resolved": "https://registry.npmjs.org/@ngneat/transloco/-/transloco-4.2.7.tgz", + "integrity": "sha512-NMrIoDfeqQhqZlt6uFOuV9OvpHAwNKC2fOAYkTsLGRs6JhcsRdJX+jYY1PL/9Wziv5HartcUTFdbAJ/czHRGRQ==", "requires": { - "@ngneat/transloco-utils": "^3.0.1", + "@ngneat/transloco-utils": "3.0.5", "flat": "5.0.2", "lodash.kebabcase": "^4.1.1", "ora": "^5.4.1", @@ -15465,18 +16080,18 @@ } }, "@ngneat/transloco-utils": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@ngneat/transloco-utils/-/transloco-utils-3.0.2.tgz", - "integrity": "sha512-NItuBldCJPfQ1FtDcbTQUGbOtfYjdoNC/IIV+M0jeUqzeKCZCYh5ajwTYhLXSXhMhG4nH4QNWCADOKwOAOVuRg==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@ngneat/transloco-utils/-/transloco-utils-3.0.5.tgz", + "integrity": "sha512-Xn9GaLUocXSPMhErNHbUyoloDm9sb+JaYszZJFL9F8em6frPQDSJxcYk9pV0caWpAU8INlksJSYgx1LXAH18mw==", "requires": { - "cosmiconfig": "^7.0.0", + "cosmiconfig": "^8.1.3", "tslib": "^2.3.0" } }, "@ngtools/webpack": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-15.1.2.tgz", - "integrity": "sha512-IxKPqyA5hiwUioAAptFaETF2TifH6cTGOc7qKYFxFgzK+llZtEBcNj3w9zrL5uCFnPHWDZqdIDhH3/WM4zBmkw==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.0.3.tgz", + "integrity": "sha512-OtTKgv6wgRwbLD0WkOqLYRFKrYKH4luiCSzzTqlJuCIKrPI+7+L1rH5I0zWzkTYzGFGTAgP5BGRiY19gFS3/BA==", "dev": true }, "@nodelib/fs.scandir": { @@ -15515,14 +16130,13 @@ } }, "@npmcli/git": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.3.tgz", - "integrity": "sha512-8cXNkDIbnXPVbhXMmQ7/bklCAjtmPaXfI9aEM4iH+xSuEHINLMHhlfESvVwdqmHJRJkR48vNJTSUvoF6GRPSFA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.4.tgz", + "integrity": "sha512-5yZghx+u5M47LghaybLCkdSyFzV/w4OuH12d96HO389Ik9CDsLaDZJVynSGGVJOLn6gy/k7Dz5XYcplM3uxXRg==", "dev": true, "requires": { "@npmcli/promise-spawn": "^6.0.0", "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", "npm-pick-manifest": "^8.0.0", "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", @@ -15532,26 +16146,17 @@ }, "dependencies": { "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true - }, - "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, "@npmcli/installed-package-contents": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.1.tgz", - "integrity": "sha512-GIykAFdOVK31Q1/zAtT5MbxqQL2vyl9mvFJv+OGu01zxbhL3p0xc8gJjdNGX1mWmUT43aEKVO2L6V/2j4TOsAA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", + "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", "dev": true, "requires": { "npm-bundled": "^3.0.0", @@ -15581,23 +16186,12 @@ "dev": true, "requires": { "which": "^3.0.0" - }, - "dependencies": { - "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } } }, "@npmcli/run-script": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.0.tgz", - "integrity": "sha512-ql+AbRur1TeOdl1FY+RAwGW9fcr4ZwiVKabdvm93mujGREVuVLbdkXRJDrkTXSdCjaxYydr1wlA2v67jxWG5BQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.1.tgz", + "integrity": "sha512-Yi04ZSold8jcbBJD/ahKMJSQCQifH8DAbMwkBvoLaTpGFxzHC3B/5ZyoVR69q/4xedz84tvi9DJOJjNe17h+LA==", "dev": true, "requires": { "@npmcli/node-gyp": "^3.0.0", @@ -15605,34 +16199,30 @@ "node-gyp": "^9.0.0", "read-package-json-fast": "^3.0.0", "which": "^3.0.0" - }, - "dependencies": { - "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } } }, + "@pkgjs/parseargs": { + "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 + }, "@schematics/angular": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.1.2.tgz", - "integrity": "sha512-PcAbjbWvaW3yKvcGCqHrlHm4BTwGuqr58czCASc49Hy6tJba+dRblYatzB0D1tzdJOTsa684Ghg7knCN86fHeg==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.0.3.tgz", + "integrity": "sha512-aWRVvgOTMxsaY6FETd+1L4YvqAjfIRSmB3yqfRXpzEdUelAkYozg0lWDHS6q6u6YlfCIUnEw0oUTJG3m8JSF4w==", "dev": true, "requires": { - "@angular-devkit/core": "15.1.2", - "@angular-devkit/schematics": "15.1.2", + "@angular-devkit/core": "16.0.3", + "@angular-devkit/schematics": "16.0.3", "jsonc-parser": "3.2.0" } }, - "@tailwindcss/line-clamp": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/line-clamp/-/line-clamp-0.4.2.tgz", - "integrity": "sha512-HFzAQuqYCjyy/SX9sLGB1lroPzmcnWv1FHkIpmypte10hptf4oPUfucryMKovZh2u0uiS9U5Ty3GghWfEJGwVw==", + "@sigstore/protobuf-specs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", + "integrity": "sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==", "dev": true }, "@tailwindcss/typography": { @@ -15653,6 +16243,42 @@ "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true }, + "@tufjs/canonical-json": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", + "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", + "dev": true + }, + "@tufjs/models": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", + "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", + "dev": true, + "requires": { + "@tufjs/canonical-json": "1.0.0", + "minimatch": "^9.0.0" + }, + "dependencies": { + "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, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, "@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -15673,9 +16299,9 @@ } }, "@types/chroma-js": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.4.tgz", - "integrity": "sha512-l9hWzP7cp7yleJUI7P2acmpllTJNYf5uU6wh50JzSIZt3fFHe+w2FM6w9oZGBTYzjjm2qHdnQvI+fF/JF/E5jQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.4.0.tgz", + "integrity": "sha512-JklMxityrwjBTjGY2anH8JaTx3yjRU3/sEHSblLH1ba5lqcSh1LnImXJZO5peJfXyqKYWjHTGy4s5Wz++hARrw==", "dev": true }, "@types/component-emitter": { @@ -15694,9 +16320,9 @@ } }, "@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", "dev": true, "requires": { "@types/express-serve-static-core": "*", @@ -15722,9 +16348,9 @@ "dev": true }, "@types/eslint": { - "version": "8.4.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", - "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", "dev": true, "requires": { "@types/estree": "*", @@ -15742,32 +16368,33 @@ } }, "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", "dev": true }, "@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", "dev": true, "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", + "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "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==", "dev": true, "requires": { "@types/node": "*", "@types/qs": "*", - "@types/range-parser": "*" + "@types/range-parser": "*", + "@types/send": "*" } }, "@types/highlight.js": { @@ -15780,18 +16407,18 @@ } }, "@types/http-proxy": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", - "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "version": "1.17.11", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", + "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", "dev": true, "requires": { "@types/node": "*" } }, "@types/jasmine": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.3.1.tgz", - "integrity": "sha512-Vu8l+UGcshYmV1VWwULgnV/2RDbBaO6i2Ptx7nd//oJPIZGhoI1YLST4VKagD2Pq/Bc2/7zvtvhM7F3p4SN7kQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.3.2.tgz", + "integrity": "sha512-lKkWBcbxEZX/7nxPqEtv/OjPLaBa2j0o+hmv5Yn83b/+11C1kfBAkgvmrb13WDkmizUJ3B+jYrWh4M0YRtrzEQ==", "dev": true }, "@types/json-schema": { @@ -15801,30 +16428,30 @@ "dev": true }, "@types/lodash": { - "version": "4.14.191", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", - "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==", + "version": "4.14.195", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.195.tgz", + "integrity": "sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg==", "dev": true }, "@types/lodash-es": { - "version": "4.17.6", - "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.6.tgz", - "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==", + "version": "4.17.7", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.7.tgz", + "integrity": "sha512-z0ptr6UI10VlU6l5MYhGwS4mC8DZyYer2mCoyysZtSF7p26zOX8UpbrV0YpNYLGS8K4PUFIyEr62IMFFjveSiQ==", "dev": true, "requires": { "@types/lodash": "*" } }, "@types/luxon": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.2.0.tgz", - "integrity": "sha512-lGmaGFoaXHuOLXFvuju2bfvZRqxAqkHPx9Y9IQdQABrinJJshJwfNCKV+u7rR3kJbiqfTF/NhOkcxxAFrObyaA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.0.tgz", + "integrity": "sha512-uKRI5QORDnrGFYgcdAVnHvEIvEZ8noTpP/Bg+HeUzZghwinDlIS87DEenV5r1YoOF9G4x600YsUXLWZ19rmTmg==", "dev": true }, "@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true }, "@types/node": { @@ -15833,11 +16460,6 @@ "integrity": "sha512-cPjLXj8d6anFPzFvOPxS3fvly3Shm5nTfl6g8X5smexixbuGUf7hfr21J5tX9JW+UPStp/5P5R8qrKL5IyVJ+A==", "dev": true }, - "@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==" - }, "@types/qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", @@ -15856,6 +16478,16 @@ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, + "@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, "@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -15866,9 +16498,9 @@ } }, "@types/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", "dev": true, "requires": { "@types/mime": "*", @@ -15885,157 +16517,163 @@ } }, "@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", "dev": true, "requires": { "@types/node": "*" } }, + "@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==", + "dev": true + }, "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.5.tgz", + "integrity": "sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==", "dev": true, "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5" } }, "@webassemblyjs/floating-point-hex-parser": { - "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==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.5.tgz", + "integrity": "sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==", "dev": true }, "@webassemblyjs/helper-api-error": { - "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==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.5.tgz", + "integrity": "sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.5.tgz", + "integrity": "sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==", "dev": true }, "@webassemblyjs/helper-numbers": { - "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==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.5.tgz", + "integrity": "sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==", "dev": true, "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/helper-wasm-bytecode": { - "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==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.5.tgz", + "integrity": "sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "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==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.5.tgz", + "integrity": "sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5" } }, "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.5.tgz", + "integrity": "sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.5.tgz", + "integrity": "sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.5.tgz", + "integrity": "sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.5.tgz", + "integrity": "sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==", "dev": true, "requires": { - "@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" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/helper-wasm-section": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-opt": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5", + "@webassemblyjs/wast-printer": "1.11.5" } }, "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.5.tgz", + "integrity": "sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==", "dev": true, "requires": { - "@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" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" } }, "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.5.tgz", + "integrity": "sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5" } }, "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.5.tgz", + "integrity": "sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==", "dev": true, "requires": { - "@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" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" } }, "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.5.tgz", + "integrity": "sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.5", "@xtuc/long": "4.2.2" } }, @@ -16080,9 +16718,9 @@ } }, "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true }, "acorn-import-assertions": { @@ -16091,23 +16729,6 @@ "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", "dev": true }, - "acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "requires": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, "adjust-sourcemap-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", @@ -16141,13 +16762,13 @@ } }, "agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", "dev": true, "requires": { "debug": "^4.1.0", - "depd": "^1.1.2", + "depd": "^2.0.0", "humanize-ms": "^1.2.1" } }, @@ -16222,6 +16843,12 @@ "color-convert": "^1.9.0" } }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -16233,9 +16860,9 @@ } }, "apexcharts": { - "version": "3.36.3", - "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.36.3.tgz", - "integrity": "sha512-8/FXEs0ohXMff07Gv28XjhPwEJphIUdq2/wii/pcvi54Tw6z1mjrV8ydN8rlWi/ve8BAPBefJkLmRWv7UOBsLw==", + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.40.0.tgz", + "integrity": "sha512-dSi3BUfCJkFd67uFp+xffrJVd3lDT7AAUUyRp0qPYiglJ76CeZLddVhM3FAk1P9GCzf8VewqGYUPCYQvXm+b9A==", "requires": { "svg.draggable.js": "^2.2.2", "svg.easing.js": "^2.0.0", @@ -16283,13 +16910,13 @@ "dev": true }, "autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", "dev": true, "requires": { - "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -16430,12 +17057,6 @@ "ms": "2.0.0" } }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -16454,9 +17075,9 @@ } }, "bonjour-service": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", - "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", "dev": true, "requires": { "array-flatten": "^2.1.2", @@ -16490,15 +17111,15 @@ } }, "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" } }, "buffer": { @@ -16532,16 +17153,16 @@ "dev": true }, "cacache": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", - "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.6.tgz", + "integrity": "sha512-ixcYmEBExFa/+ajIPjcwypxL97CjJyOsH9A/W+4qgEPIpJvKlC+HmVY8nkIck6n3PwUTdgq9c489niJGwl+5Cw==", "dev": true, "requires": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^8.0.1", + "glob": "^10.2.2", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -16562,28 +17183,28 @@ } }, "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.2.tgz", + "integrity": "sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" } }, "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true }, "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -16618,9 +17239,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001431", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", - "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", + "version": "1.0.30001482", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001482.tgz", + "integrity": "sha512-F1ZInsg53cegyjroxLNW9DmrEQ1SuGRTO1QlpA0o2/6OpQ0gFeDRoq1yFmnr8Sakn9qwwt9DmbxHB6w167OSuQ==", "dev": true }, "chalk": { @@ -16745,9 +17366,15 @@ "dev": true }, "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true }, "commondir": { @@ -16953,12 +17580,12 @@ } }, "core-js-compat": { - "version": "3.25.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz", - "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==", + "version": "3.30.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.1.tgz", + "integrity": "sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw==", "dev": true, "requires": { - "browserslist": "^4.21.4" + "browserslist": "^4.21.5" } }, "core-util-is": { @@ -16978,17 +17605,37 @@ } }, "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", "requires": { - "@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", - "yaml": "^1.10.0" + "path-type": "^4.0.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + } } }, + "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==", + "dev": true + }, "critters": { "version": "0.0.16", "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz", @@ -17069,6 +17716,17 @@ "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "crypto-js": { @@ -17189,12 +17847,6 @@ "object-keys": "^1.0.12" } }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==", - "dev": true - }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -17202,15 +17854,9 @@ "dev": true }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true - }, - "dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true }, "destroy": { @@ -17225,17 +17871,6 @@ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, - "detective": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", - "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", - "dev": true, - "requires": { - "acorn-node": "^1.8.2", - "defined": "^1.0.0", - "minimist": "^1.2.6" - } - }, "di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", @@ -17270,9 +17905,9 @@ "dev": true }, "dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", "dev": true, "requires": { "@leichtgewicht/ip-codec": "^2.0.1" @@ -17327,6 +17962,12 @@ "domhandler": "^4.2.0" } }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -17334,9 +17975,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.271", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.271.tgz", - "integrity": "sha512-BCPBtK07xR1/uY2HFDtl3wK2De66AW4MSiPlLrnPNxKC/Qhccxd59W73654S3y6Rb/k3hmuGJOBnhjfoutetXA==", + "version": "1.4.382", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.382.tgz", + "integrity": "sha512-czMavlW52VIPgutbVL9JnZIZuFijzsG1ww/1z2Otu1r1q+9Qe2bTsH3My3sZarlvwyqHM6+mnZfEnt2Vr4dsIg==", "dev": true }, "emoji-regex": { @@ -17403,9 +18044,9 @@ "dev": true }, "enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz", + "integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -17455,46 +18096,45 @@ } }, "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==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", + "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", "dev": true }, "esbuild": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", - "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", + "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", "dev": true, - "optional": true, "requires": { - "@esbuild/android-arm": "0.16.17", - "@esbuild/android-arm64": "0.16.17", - "@esbuild/android-x64": "0.16.17", - "@esbuild/darwin-arm64": "0.16.17", - "@esbuild/darwin-x64": "0.16.17", - "@esbuild/freebsd-arm64": "0.16.17", - "@esbuild/freebsd-x64": "0.16.17", - "@esbuild/linux-arm": "0.16.17", - "@esbuild/linux-arm64": "0.16.17", - "@esbuild/linux-ia32": "0.16.17", - "@esbuild/linux-loong64": "0.16.17", - "@esbuild/linux-mips64el": "0.16.17", - "@esbuild/linux-ppc64": "0.16.17", - "@esbuild/linux-riscv64": "0.16.17", - "@esbuild/linux-s390x": "0.16.17", - "@esbuild/linux-x64": "0.16.17", - "@esbuild/netbsd-x64": "0.16.17", - "@esbuild/openbsd-x64": "0.16.17", - "@esbuild/sunos-x64": "0.16.17", - "@esbuild/win32-arm64": "0.16.17", - "@esbuild/win32-ia32": "0.16.17", - "@esbuild/win32-x64": "0.16.17" + "@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" } }, "esbuild-wasm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.16.17.tgz", - "integrity": "sha512-Tn7NuMqRcM+T/qCOxbQRq0qrwWl1sUWp6ARfJRakE8Bepew6zata4qrKgH2YqovNC5e/2fcTa7o+VL/FAOZC1Q==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.17.18.tgz", + "integrity": "sha512-h4m5zVa+KaDuRFIbH9dokMwovvkIjTQJS7/Ry+0Z1paVuS9aIkso2vdA2GmwH9GSvGX6w71WveJ3PfkoLuWaRw==", "dev": true }, "escalade": { @@ -17659,12 +18299,6 @@ "ms": "2.0.0" } }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, "finalhandler": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", @@ -17872,6 +18506,24 @@ "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==", "dev": true }, + "foreground-child": { + "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, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -17902,12 +18554,12 @@ } }, "fs-minipass": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.0.tgz", - "integrity": "sha512-EUojgQaSPy6sxcqcZgQv6TVF6jiKvurji3AxhAivs/Ep4O1UpS8TusaxpybfFHZ2skRhLqzk6WR8nqNYIMMDeA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", + "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", "dev": true, "requires": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" } }, "fs-monkey": { @@ -18078,9 +18730,9 @@ "dev": true }, "highlight.js": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.7.0.tgz", - "integrity": "sha512-1rRqesRFhMO/PRF+G86evnyJkCgaZFOI+Z6kdj15TA18funfoqJXvgPCLSf0SWq3SRfg1j3HlDs8o4s3EGq1oQ==" + "version": "11.8.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.8.0.tgz", + "integrity": "sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==" }, "hosted-git-info": { "version": "6.1.1", @@ -18092,9 +18744,9 @@ }, "dependencies": { "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true } } @@ -18112,9 +18764,9 @@ }, "dependencies": { "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -18150,9 +18802,9 @@ "dev": true }, "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true }, "http-deceiver": { @@ -18174,12 +18826,6 @@ "toidentifier": "1.0.1" }, "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, "statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -18281,12 +18927,12 @@ "dev": true }, "ignore-walk": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.0.tgz", - "integrity": "sha512-bTf9UWe/UP1yxG3QUrj/KOvEhTAUWPcv+WvbFZ28LcqznXabp7Xu6o9y1JEC18+oqODuS7VhTpekV5XvFwsxJg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", + "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", "dev": true, "requires": { - "minimatch": "^5.0.1" + "minimatch": "^9.0.0" }, "dependencies": { "brace-expansion": { @@ -18299,9 +18945,9 @@ } }, "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -18317,9 +18963,9 @@ "optional": true }, "immutable": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.2.tgz", - "integrity": "sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", "dev": true }, "import-fresh": { @@ -18371,9 +19017,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", - "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.0.0.tgz", + "integrity": "sha512-t0ikzf5qkSFqRl1e6ejKBe+Tk2bsQd8ivEkcisyGXsku2t8NvXZ1Y3RRz5vxrDgOrTBOi13CvGsVoI5wVpd7xg==", "dev": true }, "inquirer": { @@ -18486,9 +19132,9 @@ } }, "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -18703,10 +19349,20 @@ "istanbul-lib-report": "^3.0.0" } }, + "jackspeak": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz", + "integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==", + "dev": true, + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, "jasmine-core": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.5.0.tgz", - "integrity": "sha512-9PMzyvhtocxb3aXJVOPqBDswdgyAeSB81QnLop4npOpbqnheaTEwPc9ZloQeVswugPManznQBjD8kWDTjlnHuw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.0.0.tgz", + "integrity": "sha512-BJLxZlSVyWPN/oyaS1IIvIjChghI9/xWsLAIJqL9J5Fz47CN3JNr8Lmik3S2S7QS2RxclYjvSVSXP7IR35PAmg==", "dev": true }, "jest-worker": { @@ -18737,6 +19393,12 @@ } } }, + "jiti": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", + "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -18798,9 +19460,9 @@ "dev": true }, "karma": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.1.tgz", - "integrity": "sha512-Cj57NKOskK7wtFWSlMvZf459iX+kpYIPXmkNUzP2WAFcA7nhr/ALn5R7sw3w+1udFDcpMx/tuB8d5amgm3ijaA==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", + "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", "dev": true, "requires": { "@colors/colors": "1.5.0", @@ -18868,9 +19530,9 @@ } }, "karma-chrome-launcher": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", - "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", + "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", "dev": true, "requires": { "which": "^1.2.1" @@ -18908,6 +19570,14 @@ "dev": true, "requires": { "jasmine-core": "^4.1.0" + }, + "dependencies": { + "jasmine-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", + "dev": true + } } }, "karma-jasmine-html-reporter": { @@ -18932,11 +19602,21 @@ "dev": true }, "klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "dev": true }, + "launch-editor": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", + "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "shell-quote": "^1.7.3" + } + }, "less": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", @@ -19015,9 +19695,9 @@ } }, "lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true }, "lines-and-columns": { @@ -19163,14 +19843,14 @@ } }, "luxon": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", - "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz", + "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==" }, "magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", "dev": true, "requires": { "@jridgewell/sourcemap-codec": "^1.4.13" @@ -19285,9 +19965,9 @@ } }, "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true }, "minimatch": { @@ -19344,9 +20024,9 @@ "dev": true }, "memfs": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", - "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.1.tgz", + "integrity": "sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA==", "dev": true, "requires": { "fs-monkey": "^1.0.3" @@ -19413,9 +20093,9 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "mini-css-extract-plugin": { - "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==", + "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==", "dev": true, "requires": { "schema-utils": "^4.0.0" @@ -19442,13 +20122,10 @@ "dev": true }, "minipass": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", - "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true }, "minipass-collect": { "version": "1.0.2", @@ -19601,6 +20278,12 @@ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, + "mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -19623,10 +20306,21 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "dev": true }, "needle": { @@ -19676,17 +20370,17 @@ "dev": true }, "ng-apexcharts": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/ng-apexcharts/-/ng-apexcharts-1.7.4.tgz", - "integrity": "sha512-XpykR8qos14i2ly/QrmGkQIUQfqaZAe2+7tDg5An1akws3VwYg6O643g9LwdTIG3YeWlkKtt4zxYJpEJF3uLUg==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/ng-apexcharts/-/ng-apexcharts-1.7.6.tgz", + "integrity": "sha512-XzW0gLRG9x9ntJ+Ena3dbrGB6lLPuIgVP21Qcv82zbebnYncG9aOyQk48fd2P56jDychanAVTYrNUuK0pMUM1g==", "requires": { "tslib": "^2.0.0" } }, "ngx-quill": { - "version": "20.0.1", - "resolved": "https://registry.npmjs.org/ngx-quill/-/ngx-quill-20.0.1.tgz", - "integrity": "sha512-X02Me3RYuQgoOHXzYrkdi4aaDHPkyTZTUib+2amKxAMpM9LEOh/QYrFjudreQJtih6rhV6kRorO5AS4UueX9Mw==", + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/ngx-quill/-/ngx-quill-22.0.0.tgz", + "integrity": "sha512-+MDP3kh/LN1GTZVYbqKxbtlx7y0ahfICLbJckj9/wItQQJSuQZJBwr6B1CntoINu36x79b7MhpSqMGHQsyxL4A==", "requires": { "tslib": "^2.3.0" } @@ -19731,6 +20425,17 @@ "semver": "^7.3.5", "tar": "^6.1.2", "which": "^2.0.2" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "node-gyp-build": { @@ -19741,9 +20446,9 @@ "optional": true }, "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, "nopt": { @@ -19789,18 +20494,18 @@ } }, "npm-install-checks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.0.0.tgz", - "integrity": "sha512-SBU9oFglRVZnfElwAtF14NivyulDqF1VKqqwNsFW9HDcbHMAPHpRSsVFgKuwFGq/hVvWZExz62Th0kvxn/XE7Q==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.1.1.tgz", + "integrity": "sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==", "dev": true, "requires": { "semver": "^7.1.1" } }, "npm-normalize-package-bin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", - "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true }, "npm-package-arg": { @@ -19837,13 +20542,13 @@ } }, "npm-registry-fetch": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", - "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", + "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", "dev": true, "requires": { "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", @@ -19852,26 +20557,25 @@ }, "dependencies": { "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true }, "make-fetch-happen": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.2.tgz", - "integrity": "sha512-5n/Pq41w/uZghpdlXAY5kIM85RgJThtTH/NYBRAZ9VUOBWV90USaQjwGrw76fZP3Lj5hl/VZjpVvOaRBMoL/2w==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "requires": { "agentkeepalive": "^4.2.1", "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.0", + "http-cache-semantics": "^4.1.1", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-collect": "^1.0.2", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -19882,13 +20586,13 @@ } }, "minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "requires": { "encoding": "^0.1.13", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" } @@ -19995,9 +20699,9 @@ } }, "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, "requires": { "define-lazy-prop": "^2.0.0", @@ -20126,9 +20830,9 @@ } }, "pacote": { - "version": "15.0.8", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.0.8.tgz", - "integrity": "sha512-UlcumB/XS6xyyIMwg/WwMAyUmga+RivB5KgkRwA1hZNtrx+0Bt41KxHCvg1kr0pZ/ZeD8qjhW4fph6VaYRCbLw==", + "version": "15.1.3", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.3.tgz", + "integrity": "sha512-aRts8cZqxiJVDitmAh+3z+FxuO3tLNWEmwDRPEpDDiZJaRz06clP4XX112ynMT5uF0QNoMPajBBHnaStUEPJXA==", "dev": true, "requires": { "@npmcli/git": "^4.0.0", @@ -20137,7 +20841,7 @@ "@npmcli/run-script": "^6.0.0", "cacache": "^17.0.0", "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "npm-package-arg": "^10.0.0", "npm-packlist": "^7.0.0", "npm-pick-manifest": "^8.0.0", @@ -20146,6 +20850,7 @@ "promise-retry": "^2.0.1", "read-package-json": "^6.0.0", "read-package-json-fast": "^3.0.0", + "sigstore": "^1.3.0", "ssri": "^10.0.0", "tar": "^6.1.11" } @@ -20190,7 +20895,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "optional": true, + "devOptional": true, "requires": { "entities": "^4.4.0" }, @@ -20199,24 +20904,25 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "optional": true + "devOptional": true } } }, "parse5-html-rewriting-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", - "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", "dev": true, "requires": { - "parse5": "^6.0.1", - "parse5-sax-parser": "^6.0.1" + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" }, "dependencies": { - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true } } @@ -20239,20 +20945,12 @@ } }, "parse5-sax-parser": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", - "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", "dev": true, "requires": { - "parse5": "^6.0.1" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - } + "parse5": "^7.0.0" } }, "parseurl": { @@ -20284,6 +20982,24 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "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==", + "dev": true, + "requires": { + "lru-cache": "^9.0.0", + "minipass": "^5.0.0" + }, + "dependencies": { + "lru-cache": { + "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 + } + } + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -20315,7 +21031,13 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", "dev": true }, "piscina": { @@ -20340,20 +21062,20 @@ } }, "postcss": { - "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==", + "version": "8.4.24", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", + "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", "dev": true, "requires": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } }, "postcss-import": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", - "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", "dev": true, "requires": { "postcss-value-parser": "^4.0.0", @@ -20362,32 +21084,41 @@ } }, "postcss-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", - "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", "dev": true, "requires": { "camelcase-css": "^2.0.1" } }, "postcss-load-config": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", "dev": true, "requires": { "lilconfig": "^2.0.5", - "yaml": "^1.10.2" + "yaml": "^2.1.1" + }, + "dependencies": { + "yaml": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", + "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", + "dev": true + } } }, "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==", + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.2.4.tgz", + "integrity": "sha512-F88rpxxNspo5hatIc+orYwZDtHFaVFOSIVAx+fBfJC1GmhWbVmPWtmg2gXKE1OxJbneOSGn8PWdIwsZFcruS+w==", "dev": true, "requires": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", + "cosmiconfig": "^8.1.3", + "cosmiconfig-typescript-loader": "^4.3.0", + "klona": "^2.0.6", "semver": "^7.3.8" } }, @@ -20427,12 +21158,24 @@ } }, "postcss-nested": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", - "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", "dev": true, "requires": { - "postcss-selector-parser": "^6.0.10" + "postcss-selector-parser": "^6.0.11" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz", + "integrity": "sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + } } }, "postcss-selector-parser": { @@ -20537,12 +21280,6 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - }, "quill": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz", @@ -20603,19 +21340,19 @@ "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", "dev": true, "requires": { "pify": "^2.3.0" } }, "read-package-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.0.tgz", - "integrity": "sha512-b/9jxWJ8EwogJPpv99ma+QwtqB7FSl3+V6UXS7Aaay8/5VwMY50oIFooY1UKXMWpfNCM6T/PoGqa5GD1g9xf9w==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.3.tgz", + "integrity": "sha512-4QbpReW4kxFgeBQ0vPAqh2y8sXEB3D4t3jsXbJKIhBiF80KT6XRo45reqwtftju5J6ru1ax06A2Gb/wM1qCOEQ==", "dev": true, "requires": { - "glob": "^8.0.1", + "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^5.0.0", "npm-normalize-package-bin": "^3.0.0" @@ -20631,16 +21368,16 @@ } }, "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.2.tgz", + "integrity": "sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" } }, "json-parse-even-better-errors": { @@ -20650,9 +21387,9 @@ "dev": true }, "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -20725,9 +21462,9 @@ "dev": true }, "regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dev": true, "requires": { "@babel/runtime": "^7.8.4" @@ -20749,25 +21486,19 @@ } }, "regexpu-core": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", - "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "requires": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" } }, - "regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", - "dev": true - }, "regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", @@ -20858,12 +21589,12 @@ "dev": true }, "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dev": true, "requires": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.11.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -20942,6 +21673,15 @@ "glob": "^7.1.3" } }, + "rollup": { + "version": "3.21.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.5.tgz", + "integrity": "sha512-a4NTKS4u9PusbUJcfF4IMxuqjFzjm6ifj76P54a7cKnvVzJaG12BLVR+hgU2YDGHzyMMQNxLAZWuALsn8q2oQg==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -20958,9 +21698,9 @@ } }, "rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "requires": { "tslib": "^2.1.0" } @@ -20983,9 +21723,9 @@ "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" }, "sass": { - "version": "1.57.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.57.1.tgz", - "integrity": "sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==", + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz", + "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -20994,12 +21734,12 @@ } }, "sass-loader": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.0.tgz", - "integrity": "sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg==", + "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==", "dev": true, "requires": { - "klona": "^2.0.4", + "klona": "^2.0.6", "neo-async": "^2.6.2" } }, @@ -21095,12 +21835,6 @@ } } }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -21131,9 +21865,9 @@ } }, "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -21163,6 +21897,12 @@ "ms": "2.0.0" } }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, "http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", @@ -21243,6 +21983,12 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true + }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -21259,6 +22005,60 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "sigstore": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.4.0.tgz", + "integrity": "sha512-N7TRpSbFjY/TrFDg6yGAQSYBrQ5s6qmPiq4pD6fkv1LoyfMsLG0NwZWG2s5q+uttLHgyVyTa0Rogx2P78rN8kQ==", + "dev": true, + "requires": { + "@sigstore/protobuf-specs": "^0.1.0", + "make-fetch-happen": "^11.0.1", + "tuf-js": "^1.1.3" + }, + "dependencies": { + "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 + }, + "make-fetch-happen": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "dev": true, + "requires": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + } + }, + "minipass-fetch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", + "dev": true, + "requires": { + "encoding": "^0.1.13", + "minipass": "^5.0.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + } + } + }, "smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -21381,9 +22181,9 @@ } }, "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -21407,9 +22207,9 @@ } }, "spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", "dev": true }, "spdy": { @@ -21446,12 +22246,12 @@ "dev": true }, "ssri": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", - "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", + "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", "dev": true, "requires": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" } }, "statuses": { @@ -21496,6 +22296,17 @@ "strip-ansi": "^6.0.1" } }, + "string-width-cjs": { + "version": "npm:string-width@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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -21504,12 +22315,52 @@ "ansi-regex": "^5.0.1" } }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, + "sucrase": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz", + "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -21595,42 +22446,36 @@ "dev": true }, "tailwindcss": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz", - "integrity": "sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz", + "integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==", "dev": true, "requires": { + "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", "chokidar": "^3.5.3", - "color-name": "^1.1.4", - "detective": "^5.2.1", "didyoumean": "^1.2.2", "dlv": "^1.1.3", "fast-glob": "^3.2.12", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "lilconfig": "^2.0.6", + "jiti": "^1.18.2", + "lilconfig": "^2.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.18", - "postcss-import": "^14.1.0", - "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.4", - "postcss-nested": "6.0.0", - "postcss-selector-parser": "^6.0.10", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0", - "quick-lru": "^5.1.1", - "resolve": "^1.22.1" + "resolve": "^1.22.2", + "sucrase": "^3.32.0" }, "dependencies": { - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -21639,6 +22484,16 @@ "requires": { "is-glob": "^4.0.3" } + }, + "postcss-selector-parser": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz", + "integrity": "sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } } } }, @@ -21649,14 +22504,14 @@ "dev": true }, "tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "version": "6.1.14", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.14.tgz", + "integrity": "sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==", "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -21685,9 +22540,9 @@ } }, "terser": { - "version": "5.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", - "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz", + "integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", @@ -21696,12 +22551,6 @@ "source-map-support": "~0.5.20" }, "dependencies": { - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true - }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -21711,16 +22560,16 @@ } }, "terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", + "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.14", + "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" }, "dependencies": { "ajv": { @@ -21742,9 +22591,9 @@ "dev": true }, "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -21771,6 +22620,24 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -21819,10 +22686,69 @@ "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true }, + "ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", + "integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" + }, + "tuf-js": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.5.tgz", + "integrity": "sha512-inqodgxdsmuxrtQVbu6tPNgRKWD1Boy3VB6GO7KczJZpAHiTukwhSzXUSzvDcw5pE2Jo8ua+e1ykpHv7VdPVlQ==", + "dev": true, + "requires": { + "@tufjs/models": "1.0.4", + "make-fetch-happen": "^11.1.0" + }, + "dependencies": { + "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 + }, + "make-fetch-happen": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "dev": true, + "requires": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + } + }, + "minipass-fetch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", + "dev": true, + "requires": { + "encoding": "^0.1.13", + "minipass": "^5.0.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + } + } }, "type-fest": { "version": "0.21.3", @@ -21847,9 +22773,9 @@ "dev": true }, "typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true }, "ua-parser-js": { @@ -21875,9 +22801,9 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true }, "unicode-property-aliases-ecmascript": { @@ -21917,9 +22843,9 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -21977,6 +22903,18 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, + "vite": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.1.tgz", + "integrity": "sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==", + "dev": true, + "requires": { + "esbuild": "^0.17.5", + "fsevents": "~2.3.2", + "postcss": "^8.4.21", + "rollup": "^3.20.2" + } + }, "void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -22011,22 +22949,22 @@ } }, "webpack": { - "version": "5.75.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", - "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "version": "5.80.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.80.0.tgz", + "integrity": "sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", + "enhanced-resolve": "^5.13.0", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -22035,19 +22973,13 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.1.2", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "dependencies": { - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true - }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -22067,9 +22999,9 @@ "dev": true }, "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -22080,22 +23012,22 @@ } }, "webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.0.2.tgz", + "integrity": "sha512-iOddiJzPcQC6lwOIu60vscbGWth8PCRcWRCwoQcTQf9RMoOWBHg5EyzpGdtSmGMrSPd5vHEfFXmVErQEmkRngQ==", "dev": true, "requires": { "colorette": "^2.0.10", - "memfs": "^3.4.3", + "memfs": "^3.4.12", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" } }, "webpack-dev-server": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", - "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", + "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==", "dev": true, "requires": { "@types/bonjour": "^3.5.9", @@ -22117,6 +23049,7 @@ "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", @@ -22126,13 +23059,26 @@ "sockjs": "^0.3.24", "spdy": "^4.0.2", "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" + "ws": "^8.13.0" }, "dependencies": { + "webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + } + }, "ws": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", - "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true } } @@ -22180,9 +23126,9 @@ "dev": true }, "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -22236,6 +23182,43 @@ } } }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -22247,12 +23230,6 @@ "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", "dev": true }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -22264,15 +23241,10 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" - }, "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "requires": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -22301,9 +23273,9 @@ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" }, "zone.js": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.12.0.tgz", - "integrity": "sha512-XtC+I5dXU14HrzidAKBNMqneIVUykLEAA1x+v4KVrd6AUPWlwYORF8KgsVqvgdHiKZ4BkxxjvYi/ksEixTPR0Q==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.13.0.tgz", + "integrity": "sha512-7m3hNNyswsdoDobCkYNAy5WiUulkMd3+fWaGT9ij6iq3Zr/IwJo4RMCYPSDjT+r7tnPErmY9sZpKhWQ8S5k6XQ==", "requires": { "tslib": "^2.3.0" } diff --git a/package.json b/package.json index d9b2972b..be50fb42 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fuse-angular", - "version": "17.2.0", + "version": "18.0.0", "description": "Fuse - Angular Admin Template and Starter Project", "author": "https://themeforest.net/user/srcn", "license": "https://themeforest.net/licenses/standard", @@ -13,55 +13,54 @@ "test": "ng test" }, "dependencies": { - "@angular/animations": "15.1.1", - "@angular/cdk": "15.1.1", - "@angular/common": "15.1.1", - "@angular/compiler": "15.1.1", - "@angular/core": "15.1.1", - "@angular/forms": "15.1.1", - "@angular/material": "15.1.1", - "@angular/material-luxon-adapter": "15.1.1", - "@angular/platform-browser": "15.1.1", - "@angular/platform-browser-dynamic": "15.1.1", - "@angular/router": "15.1.1", - "@ngneat/transloco": "4.2.2", - "apexcharts": "3.36.3", + "@angular/animations": "16.0.3", + "@angular/cdk": "16.0.2", + "@angular/common": "16.0.3", + "@angular/compiler": "16.0.3", + "@angular/core": "16.0.3", + "@angular/forms": "16.0.3", + "@angular/material": "16.0.2", + "@angular/material-luxon-adapter": "16.0.2", + "@angular/platform-browser": "16.0.3", + "@angular/platform-browser-dynamic": "16.0.3", + "@angular/router": "16.0.3", + "@ngneat/transloco": "4.2.7", + "apexcharts": "3.40.0", "crypto-js": "3.3.0", - "highlight.js": "11.7.0", + "highlight.js": "11.8.0", "lodash-es": "4.17.21", - "luxon": "3.2.1", - "ng-apexcharts": "1.7.4", - "ngx-quill": "20.0.1", + "luxon": "3.3.0", + "ng-apexcharts": "1.7.6", + "ngx-quill": "22.0.0", "perfect-scrollbar": "1.5.5", "quill": "1.3.7", - "rxjs": "7.8.0", - "tslib": "2.4.1", - "zone.js": "0.12.0" + "rxjs": "7.8.1", + "tslib": "2.5.2", + "zone.js": "0.13.0" }, "devDependencies": { - "@angular-devkit/build-angular": "15.1.2", - "@angular/cli": "15.1.2", - "@angular/compiler-cli": "15.1.1", - "@tailwindcss/line-clamp": "0.4.2", + "@angular-devkit/build-angular": "16.0.3", + "@angular/cli": "16.0.3", + "@angular/compiler-cli": "16.0.3", "@tailwindcss/typography": "0.5.9", - "@types/chroma-js": "2.1.4", + "@types/chroma-js": "2.4.0", "@types/crypto-js": "3.1.47", "@types/highlight.js": "10.1.0", - "@types/jasmine": "4.3.1", - "@types/lodash": "4.14.191", - "@types/lodash-es": "4.17.6", - "@types/luxon": "3.2.0", - "autoprefixer": "10.4.13", + "@types/jasmine": "4.3.2", + "@types/lodash": "4.14.195", + "@types/lodash-es": "4.17.7", + "@types/luxon": "3.3.0", + "autoprefixer": "10.4.14", "chroma-js": "2.4.2", - "jasmine-core": "4.5.0", - "karma": "6.4.1", - "karma-chrome-launcher": "3.1.1", + "jasmine-core": "5.0.0", + "karma": "6.4.2", + "karma-chrome-launcher": "3.2.0", "karma-coverage": "2.2.0", "karma-jasmine": "5.1.0", "karma-jasmine-html-reporter": "2.0.0", "lodash": "4.17.21", - "postcss": "8.4.21", - "tailwindcss": "3.2.4", - "typescript": "4.9.4" + "postcss": "8.4.24", + "tailwindcss": "3.3.2", + "typescript": "5.0.4" } } diff --git a/src/@fuse/animations/expand-collapse.ts b/src/@fuse/animations/expand-collapse.ts index 60b63903..d0b93210 100644 --- a/src/@fuse/animations/expand-collapse.ts +++ b/src/@fuse/animations/expand-collapse.ts @@ -8,12 +8,12 @@ const expandCollapse = trigger('expandCollapse', [ state('void, collapsed', style({ - height: '0' - }) + height: '0', + }), ), state('*, expanded', - style('*') + style('*'), ), // Prevent the transition if the state is false @@ -24,11 +24,11 @@ const expandCollapse = trigger('expandCollapse', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`, + }, + }, + ), + ], ); export { expandCollapse }; diff --git a/src/@fuse/animations/fade.ts b/src/@fuse/animations/fade.ts index a2982b70..d14cc2f1 100644 --- a/src/@fuse/animations/fade.ts +++ b/src/@fuse/animations/fade.ts @@ -8,14 +8,14 @@ const fadeIn = trigger('fadeIn', [ state('void', style({ - opacity: 0 - }) + opacity: 0, + }), ), state('*', style({ - opacity: 1 - }) + opacity: 1, + }), ), // Prevent the transition if the state is false @@ -25,11 +25,11 @@ const fadeIn = trigger('fadeIn', transition('void => *', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -40,15 +40,15 @@ const fadeInTop = trigger('fadeInTop', state('void', style({ opacity : 0, - transform: 'translate3d(0, -100%, 0)' - }) + transform: 'translate3d(0, -100%, 0)', + }), ), state('*', style({ opacity : 1, - transform: 'translate3d(0, 0, 0)' - }) + transform: 'translate3d(0, 0, 0)', + }), ), // Prevent the transition if the state is false @@ -58,11 +58,11 @@ const fadeInTop = trigger('fadeInTop', transition('void => *', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -73,15 +73,15 @@ const fadeInBottom = trigger('fadeInBottom', state('void', style({ opacity : 0, - transform: 'translate3d(0, 100%, 0)' - }) + transform: 'translate3d(0, 100%, 0)', + }), ), state('*', style({ opacity : 1, - transform: 'translate3d(0, 0, 0)' - }) + transform: 'translate3d(0, 0, 0)', + }), ), // Prevent the transition if the state is false @@ -91,11 +91,11 @@ const fadeInBottom = trigger('fadeInBottom', transition('void => *', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -106,15 +106,15 @@ const fadeInLeft = trigger('fadeInLeft', state('void', style({ opacity : 0, - transform: 'translate3d(-100%, 0, 0)' - }) + transform: 'translate3d(-100%, 0, 0)', + }), ), state('*', style({ opacity : 1, - transform: 'translate3d(0, 0, 0)' - }) + transform: 'translate3d(0, 0, 0)', + }), ), // Prevent the transition if the state is false @@ -124,11 +124,11 @@ const fadeInLeft = trigger('fadeInLeft', transition('void => *', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -139,15 +139,15 @@ const fadeInRight = trigger('fadeInRight', state('void', style({ opacity : 0, - transform: 'translate3d(100%, 0, 0)' - }) + transform: 'translate3d(100%, 0, 0)', + }), ), state('*', style({ opacity : 1, - transform: 'translate3d(0, 0, 0)' - }) + transform: 'translate3d(0, 0, 0)', + }), ), // Prevent the transition if the state is false @@ -157,11 +157,11 @@ const fadeInRight = trigger('fadeInRight', transition('void => *', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -171,14 +171,14 @@ const fadeOut = trigger('fadeOut', [ state('*', style({ - opacity: 1 - }) + opacity: 1, + }), ), state('void', style({ - opacity: 0 - }) + opacity: 0, + }), ), // Prevent the transition if the state is false @@ -188,11 +188,11 @@ const fadeOut = trigger('fadeOut', transition('* => void', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -203,15 +203,15 @@ const fadeOutTop = trigger('fadeOutTop', state('*', style({ opacity : 1, - transform: 'translate3d(0, 0, 0)' - }) + transform: 'translate3d(0, 0, 0)', + }), ), state('void', style({ opacity : 0, - transform: 'translate3d(0, -100%, 0)' - }) + transform: 'translate3d(0, -100%, 0)', + }), ), // Prevent the transition if the state is false @@ -221,11 +221,11 @@ const fadeOutTop = trigger('fadeOutTop', transition('* => void', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -236,15 +236,15 @@ const fadeOutBottom = trigger('fadeOutBottom', state('*', style({ opacity : 1, - transform: 'translate3d(0, 0, 0)' - }) + transform: 'translate3d(0, 0, 0)', + }), ), state('void', style({ opacity : 0, - transform: 'translate3d(0, 100%, 0)' - }) + transform: 'translate3d(0, 100%, 0)', + }), ), // Prevent the transition if the state is false @@ -254,11 +254,11 @@ const fadeOutBottom = trigger('fadeOutBottom', transition('* => void', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -269,15 +269,15 @@ const fadeOutLeft = trigger('fadeOutLeft', state('*', style({ opacity : 1, - transform: 'translate3d(0, 0, 0)' - }) + transform: 'translate3d(0, 0, 0)', + }), ), state('void', style({ opacity : 0, - transform: 'translate3d(-100%, 0, 0)' - }) + transform: 'translate3d(-100%, 0, 0)', + }), ), // Prevent the transition if the state is false @@ -287,11 +287,11 @@ const fadeOutLeft = trigger('fadeOutLeft', transition('* => void', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -302,15 +302,15 @@ const fadeOutRight = trigger('fadeOutRight', state('*', style({ opacity : 1, - transform: 'translate3d(0, 0, 0)' - }) + transform: 'translate3d(0, 0, 0)', + }), ), state('void', style({ opacity : 0, - transform: 'translate3d(100%, 0, 0)' - }) + transform: 'translate3d(100%, 0, 0)', + }), ), // Prevent the transition if the state is false @@ -320,11 +320,11 @@ const fadeOutRight = trigger('fadeOutRight', transition('* => void', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}`, + }, + }, + ), + ], ); export { fadeIn, fadeInTop, fadeInBottom, fadeInLeft, fadeInRight, fadeOut, fadeOutTop, fadeOutBottom, fadeOutLeft, fadeOutRight }; diff --git a/src/@fuse/animations/public-api.ts b/src/@fuse/animations/public-api.ts index 3e7cd5a5..d475fbc0 100644 --- a/src/@fuse/animations/public-api.ts +++ b/src/@fuse/animations/public-api.ts @@ -11,5 +11,5 @@ export const fuseAnimations = [ shake, slideInTop, slideInBottom, slideInLeft, slideInRight, slideOutTop, slideOutBottom, slideOutLeft, slideOutRight, - zoomIn, zoomOut + zoomIn, zoomOut, ]; diff --git a/src/@fuse/animations/shake.ts b/src/@fuse/animations/shake.ts index 2742345b..e66f8f79 100644 --- a/src/@fuse/animations/shake.ts +++ b/src/@fuse/animations/shake.ts @@ -16,58 +16,58 @@ const shake = trigger('shake', keyframes([ style({ transform: 'translate3d(0, 0, 0)', - offset : 0 + offset : 0, }), style({ transform: 'translate3d(-10px, 0, 0)', - offset : 0.1 + offset : 0.1, }), style({ transform: 'translate3d(10px, 0, 0)', - offset : 0.2 + offset : 0.2, }), style({ transform: 'translate3d(-10px, 0, 0)', - offset : 0.3 + offset : 0.3, }), style({ transform: 'translate3d(10px, 0, 0)', - offset : 0.4 + offset : 0.4, }), style({ transform: 'translate3d(-10px, 0, 0)', - offset : 0.5 + offset : 0.5, }), style({ transform: 'translate3d(10px, 0, 0)', - offset : 0.6 + offset : 0.6, }), style({ transform: 'translate3d(-10px, 0, 0)', - offset : 0.7 + offset : 0.7, }), style({ transform: 'translate3d(10px, 0, 0)', - offset : 0.8 + offset : 0.8, }), style({ transform: 'translate3d(-10px, 0, 0)', - offset : 0.9 + offset : 0.9, }), style({ transform: 'translate3d(0, 0, 0)', - offset : 1 - }) - ]) - ) + offset : 1, + }), + ]), + ), ], { params: { - timings: '0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955)' - } - } - ) - ] + timings: '0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955)', + }, + }, + ), + ], ); export { shake }; diff --git a/src/@fuse/animations/slide.ts b/src/@fuse/animations/slide.ts index 08a80ba7..a38c1466 100644 --- a/src/@fuse/animations/slide.ts +++ b/src/@fuse/animations/slide.ts @@ -8,14 +8,14 @@ const slideInTop = trigger('slideInTop', [ state('void', style({ - transform: 'translate3d(0, -100%, 0)' - }) + transform: 'translate3d(0, -100%, 0)', + }), ), state('*', style({ - transform: 'translate3d(0, 0, 0)' - }) + transform: 'translate3d(0, 0, 0)', + }), ), // Prevent the transition if the state is false @@ -25,11 +25,11 @@ const slideInTop = trigger('slideInTop', transition('void => *', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -39,14 +39,14 @@ const slideInBottom = trigger('slideInBottom', [ state('void', style({ - transform: 'translate3d(0, 100%, 0)' - }) + transform: 'translate3d(0, 100%, 0)', + }), ), state('*', style({ - transform: 'translate3d(0, 0, 0)' - }) + transform: 'translate3d(0, 0, 0)', + }), ), // Prevent the transition if the state is false @@ -56,11 +56,11 @@ const slideInBottom = trigger('slideInBottom', transition('void => *', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -70,14 +70,14 @@ const slideInLeft = trigger('slideInLeft', [ state('void', style({ - transform: 'translate3d(-100%, 0, 0)' - }) + transform: 'translate3d(-100%, 0, 0)', + }), ), state('*', style({ - transform: 'translate3d(0, 0, 0)' - }) + transform: 'translate3d(0, 0, 0)', + }), ), // Prevent the transition if the state is false @@ -87,11 +87,11 @@ const slideInLeft = trigger('slideInLeft', transition('void => *', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -101,14 +101,14 @@ const slideInRight = trigger('slideInRight', [ state('void', style({ - transform: 'translate3d(100%, 0, 0)' - }) + transform: 'translate3d(100%, 0, 0)', + }), ), state('*', style({ - transform: 'translate3d(0, 0, 0)' - }) + transform: 'translate3d(0, 0, 0)', + }), ), // Prevent the transition if the state is false @@ -118,11 +118,11 @@ const slideInRight = trigger('slideInRight', transition('void => *', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -132,14 +132,14 @@ const slideOutTop = trigger('slideOutTop', [ state('*', style({ - transform: 'translate3d(0, 0, 0)' - }) + transform: 'translate3d(0, 0, 0)', + }), ), state('void', style({ - transform: 'translate3d(0, -100%, 0)' - }) + transform: 'translate3d(0, -100%, 0)', + }), ), // Prevent the transition if the state is false @@ -149,11 +149,11 @@ const slideOutTop = trigger('slideOutTop', transition('* => void', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -163,14 +163,14 @@ const slideOutBottom = trigger('slideOutBottom', [ state('*', style({ - transform: 'translate3d(0, 0, 0)' - }) + transform: 'translate3d(0, 0, 0)', + }), ), state('void', style({ - transform: 'translate3d(0, 100%, 0)' - }) + transform: 'translate3d(0, 100%, 0)', + }), ), // Prevent the transition if the state is false @@ -180,11 +180,11 @@ const slideOutBottom = trigger('slideOutBottom', transition('* => void', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -194,14 +194,14 @@ const slideOutLeft = trigger('slideOutLeft', [ state('*', style({ - transform: 'translate3d(0, 0, 0)' - }) + transform: 'translate3d(0, 0, 0)', + }), ), state('void', style({ - transform: 'translate3d(-100%, 0, 0)' - }) + transform: 'translate3d(-100%, 0, 0)', + }), ), // Prevent the transition if the state is false @@ -211,11 +211,11 @@ const slideOutLeft = trigger('slideOutLeft', transition('* => void', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -225,14 +225,14 @@ const slideOutRight = trigger('slideOutRight', [ state('*', style({ - transform: 'translate3d(0, 0, 0)' - }) + transform: 'translate3d(0, 0, 0)', + }), ), state('void', style({ - transform: 'translate3d(100%, 0, 0)' - }) + transform: 'translate3d(100%, 0, 0)', + }), ), // Prevent the transition if the state is false @@ -242,11 +242,11 @@ const slideOutRight = trigger('slideOutRight', transition('* => void', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}`, + }, + }, + ), + ], ); export { slideInTop, slideInBottom, slideInLeft, slideInRight, slideOutTop, slideOutBottom, slideOutLeft, slideOutRight }; diff --git a/src/@fuse/animations/zoom.ts b/src/@fuse/animations/zoom.ts index c9742515..fee79143 100644 --- a/src/@fuse/animations/zoom.ts +++ b/src/@fuse/animations/zoom.ts @@ -10,15 +10,15 @@ const zoomIn = trigger('zoomIn', state('void', style({ opacity : 0, - transform: 'scale(0.5)' - }) + transform: 'scale(0.5)', + }), ), state('*', style({ opacity : 1, - transform: 'scale(1)' - }) + transform: 'scale(1)', + }), ), // Prevent the transition if the state is false @@ -28,11 +28,11 @@ const zoomIn = trigger('zoomIn', transition('void => *', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`, + }, + }, + ), + ], ); // ----------------------------------------------------------------------------------------------------- @@ -44,15 +44,15 @@ const zoomOut = trigger('zoomOut', state('*', style({ opacity : 1, - transform: 'scale(1)' - }) + transform: 'scale(1)', + }), ), state('void', style({ opacity : 0, - transform: 'scale(0.5)' - }) + transform: 'scale(0.5)', + }), ), // Prevent the transition if the state is false @@ -62,11 +62,11 @@ const zoomOut = trigger('zoomOut', transition('* => void', animate('{{timings}}'), { params: { - timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}` - } - } - ) - ] + timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}`, + }, + }, + ), + ], ); export { zoomIn, zoomOut }; diff --git a/src/@fuse/components/alert/alert.component.html b/src/@fuse/components/alert/alert.component.html index 6efa4c99..2f8e208e 100644 --- a/src/@fuse/components/alert/alert.component.html +++ b/src/@fuse/components/alert/alert.component.html @@ -48,7 +48,7 @@ + [svgIcon]="'heroicons_solid:exclamation-triangle'"> - + diff --git a/src/@fuse/components/alert/alert.component.ts b/src/@fuse/components/alert/alert.component.ts index 4abe0502..67b6efe1 100644 --- a/src/@fuse/components/alert/alert.component.ts +++ b/src/@fuse/components/alert/alert.component.ts @@ -1,10 +1,13 @@ -import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core'; -import { filter, Subject, takeUntil } from 'rxjs'; import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'; +import { NgIf } from '@angular/common'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; import { fuseAnimations } from '@fuse/animations'; -import { FuseAlertAppearance, FuseAlertType } from '@fuse/components/alert/alert.types'; import { FuseAlertService } from '@fuse/components/alert/alert.service'; +import { FuseAlertAppearance, FuseAlertType } from '@fuse/components/alert/alert.types'; import { FuseUtilsService } from '@fuse/services/utils/utils.service'; +import { filter, Subject, takeUntil } from 'rxjs'; @Component({ selector : 'fuse-alert', @@ -13,7 +16,9 @@ import { FuseUtilsService } from '@fuse/services/utils/utils.service'; encapsulation : ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations : fuseAnimations, - exportAs : 'fuseAlert' + exportAs : 'fuseAlert', + standalone : true, + imports : [NgIf, MatIconModule, MatButtonModule], }) export class FuseAlertComponent implements OnChanges, OnInit, OnDestroy { @@ -39,7 +44,7 @@ export class FuseAlertComponent implements OnChanges, OnInit, OnDestroy constructor( private _changeDetectorRef: ChangeDetectorRef, private _fuseAlertService: FuseAlertService, - private _fuseUtilsService: FuseUtilsService + private _fuseUtilsService: FuseUtilsService, ) { } @@ -69,7 +74,7 @@ export class FuseAlertComponent implements OnChanges, OnInit, OnDestroy 'fuse-alert-type-info' : this.type === 'info', 'fuse-alert-type-success' : this.type === 'success', 'fuse-alert-type-warning' : this.type === 'warning', - 'fuse-alert-type-error' : this.type === 'error' + 'fuse-alert-type-error' : this.type === 'error', }; /* eslint-enable @typescript-eslint/naming-convention */ } @@ -119,10 +124,10 @@ export class FuseAlertComponent implements OnChanges, OnInit, OnDestroy this._fuseAlertService.onDismiss .pipe( filter(name => this.name === name), - takeUntil(this._unsubscribeAll) + takeUntil(this._unsubscribeAll), ) - .subscribe(() => { - + .subscribe(() => + { // Dismiss the alert this.dismiss(); }); @@ -131,10 +136,10 @@ export class FuseAlertComponent implements OnChanges, OnInit, OnDestroy this._fuseAlertService.onShow .pipe( filter(name => this.name === name), - takeUntil(this._unsubscribeAll) + takeUntil(this._unsubscribeAll), ) - .subscribe(() => { - + .subscribe(() => + { // Show the alert this.show(); }); diff --git a/src/@fuse/components/alert/alert.module.ts b/src/@fuse/components/alert/alert.module.ts deleted file mode 100644 index beecabdd..00000000 --- a/src/@fuse/components/alert/alert.module.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { MatButtonModule } from '@angular/material/button'; -import { MatIconModule } from '@angular/material/icon'; -import { FuseAlertComponent } from '@fuse/components/alert/alert.component'; - -@NgModule({ - declarations: [ - FuseAlertComponent - ], - imports : [ - CommonModule, - MatButtonModule, - MatIconModule - ], - exports : [ - FuseAlertComponent - ] -}) -export class FuseAlertModule -{ -} diff --git a/src/@fuse/components/alert/alert.service.ts b/src/@fuse/components/alert/alert.service.ts index a04dbe5c..5d29f7a5 100644 --- a/src/@fuse/components/alert/alert.service.ts +++ b/src/@fuse/components/alert/alert.service.ts @@ -1,9 +1,7 @@ import { Injectable } from '@angular/core'; import { Observable, ReplaySubject } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class FuseAlertService { private readonly _onDismiss: ReplaySubject = new ReplaySubject(1); diff --git a/src/@fuse/components/alert/public-api.ts b/src/@fuse/components/alert/public-api.ts index fdf984ae..9144d500 100644 --- a/src/@fuse/components/alert/public-api.ts +++ b/src/@fuse/components/alert/public-api.ts @@ -1,4 +1,3 @@ export * from '@fuse/components/alert/alert.component'; -export * from '@fuse/components/alert/alert.module'; export * from '@fuse/components/alert/alert.service'; export * from '@fuse/components/alert/alert.types'; diff --git a/src/@fuse/components/card/card.component.ts b/src/@fuse/components/card/card.component.ts index 9d3962a2..84c6b2fb 100644 --- a/src/@fuse/components/card/card.component.ts +++ b/src/@fuse/components/card/card.component.ts @@ -1,5 +1,6 @@ -import { Component, HostBinding, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core'; import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'; +import { NgIf } from '@angular/common'; +import { Component, HostBinding, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core'; import { fuseAnimations } from '@fuse/animations'; import { FuseCardFace } from '@fuse/components/card/card.types'; @@ -9,7 +10,9 @@ import { FuseCardFace } from '@fuse/components/card/card.types'; styleUrls : ['./card.component.scss'], encapsulation: ViewEncapsulation.None, animations : fuseAnimations, - exportAs : 'fuseCard' + exportAs : 'fuseCard', + standalone : true, + imports : [NgIf], }) export class FuseCardComponent implements OnChanges { @@ -43,7 +46,7 @@ export class FuseCardComponent implements OnChanges 'fuse-card-expanded' : this.expanded, 'fuse-card-face-back' : this.flippable && this.face === 'back', 'fuse-card-face-front': this.flippable && this.face === 'front', - 'fuse-card-flippable' : this.flippable + 'fuse-card-flippable' : this.flippable, }; /* eslint-enable @typescript-eslint/naming-convention */ } diff --git a/src/@fuse/components/card/card.module.ts b/src/@fuse/components/card/card.module.ts deleted file mode 100644 index c600e30c..00000000 --- a/src/@fuse/components/card/card.module.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { FuseCardComponent } from '@fuse/components/card/card.component'; - -@NgModule({ - declarations: [ - FuseCardComponent - ], - imports : [ - CommonModule - ], - exports : [ - FuseCardComponent - ] -}) -export class FuseCardModule -{ -} diff --git a/src/@fuse/components/card/public-api.ts b/src/@fuse/components/card/public-api.ts index ee2ca6e8..9d8c31e7 100644 --- a/src/@fuse/components/card/public-api.ts +++ b/src/@fuse/components/card/public-api.ts @@ -1,2 +1 @@ export * from '@fuse/components/card/card.component'; -export * from '@fuse/components/card/card.module'; diff --git a/src/@fuse/components/drawer/drawer.component.ts b/src/@fuse/components/drawer/drawer.component.ts index db2aae69..aec268a2 100644 --- a/src/@fuse/components/drawer/drawer.component.ts +++ b/src/@fuse/components/drawer/drawer.component.ts @@ -1,16 +1,17 @@ -import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnChanges, OnDestroy, OnInit, Output, Renderer2, SimpleChanges, ViewEncapsulation } from '@angular/core'; import { animate, AnimationBuilder, AnimationPlayer, style } from '@angular/animations'; -import { FuseDrawerMode, FuseDrawerPosition } from '@fuse/components/drawer/drawer.types'; -import { FuseDrawerService } from '@fuse/components/drawer/drawer.service'; -import { FuseUtilsService } from '@fuse/services/utils/utils.service'; import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'; +import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnChanges, OnDestroy, OnInit, Output, Renderer2, SimpleChanges, ViewEncapsulation } from '@angular/core'; +import { FuseDrawerService } from '@fuse/components/drawer/drawer.service'; +import { FuseDrawerMode, FuseDrawerPosition } from '@fuse/components/drawer/drawer.types'; +import { FuseUtilsService } from '@fuse/services/utils/utils.service'; @Component({ selector : 'fuse-drawer', templateUrl : './drawer.component.html', styleUrls : ['./drawer.component.scss'], encapsulation: ViewEncapsulation.None, - exportAs : 'fuseDrawer' + exportAs : 'fuseDrawer', + standalone : true, }) export class FuseDrawerComponent implements OnChanges, OnInit, OnDestroy { @@ -45,10 +46,11 @@ export class FuseDrawerComponent implements OnChanges, OnInit, OnDestroy private _elementRef: ElementRef, private _renderer2: Renderer2, private _fuseDrawerService: FuseDrawerService, - private _fuseUtilsService: FuseUtilsService + private _fuseUtilsService: FuseUtilsService, ) { - this._handleOverlayClick = (): void => { + this._handleOverlayClick = (): void => + { this.close(); }; } @@ -69,7 +71,7 @@ export class FuseDrawerComponent implements OnChanges, OnInit, OnDestroy 'fuse-drawer-hover' : this._hovered, [`fuse-drawer-mode-${this.mode}`] : true, 'fuse-drawer-opened' : this.opened, - [`fuse-drawer-position-${this.position}`]: true + [`fuse-drawer-position-${this.position}`]: true, }; /* eslint-enable @typescript-eslint/naming-convention */ } @@ -80,7 +82,7 @@ export class FuseDrawerComponent implements OnChanges, OnInit, OnDestroy @HostBinding('style') get styleList(): any { return { - 'visibility': this.opened ? 'visible' : 'hidden' + 'visibility': this.opened ? 'visible' : 'hidden', }; } @@ -173,7 +175,8 @@ export class FuseDrawerComponent implements OnChanges, OnInit, OnDestroy // Enable the animations after a delay // The delay must be bigger than the current transition-duration // to make sure nothing will be animated while the mode is changing - setTimeout(() => { + setTimeout(() => + { this._enableAnimations(); }, 500); } @@ -345,7 +348,7 @@ export class FuseDrawerComponent implements OnChanges, OnInit, OnDestroy // Create enter animation and attach it to the player this._player = this._animationBuilder.build([ style({opacity: 0}), - animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({opacity: 1})) + animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({opacity: 1})), ]).create(this._overlay); // Play the animation @@ -369,15 +372,15 @@ export class FuseDrawerComponent implements OnChanges, OnInit, OnDestroy // Create the leave animation and attach it to the player this._player = this._animationBuilder.build([ - animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({opacity: 0})) + animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({opacity: 0})), ]).create(this._overlay); // Play the animation this._player.play(); // Once the animation is done... - this._player.onDone(() => { - + this._player.onDone(() => + { // If the overlay still exists... if ( this._overlay ) { diff --git a/src/@fuse/components/drawer/drawer.module.ts b/src/@fuse/components/drawer/drawer.module.ts deleted file mode 100644 index d8383a07..00000000 --- a/src/@fuse/components/drawer/drawer.module.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { FuseDrawerComponent } from '@fuse/components/drawer/drawer.component'; - -@NgModule({ - declarations: [ - FuseDrawerComponent - ], - imports : [ - CommonModule - ], - exports : [ - FuseDrawerComponent - ] -}) -export class FuseDrawerModule -{ -} diff --git a/src/@fuse/components/drawer/drawer.service.ts b/src/@fuse/components/drawer/drawer.service.ts index 7de348aa..efc5a760 100644 --- a/src/@fuse/components/drawer/drawer.service.ts +++ b/src/@fuse/components/drawer/drawer.service.ts @@ -1,9 +1,7 @@ import { Injectable } from '@angular/core'; import { FuseDrawerComponent } from '@fuse/components/drawer/drawer.component'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class FuseDrawerService { private _componentRegistry: Map = new Map(); diff --git a/src/@fuse/components/drawer/public-api.ts b/src/@fuse/components/drawer/public-api.ts index 2439ec12..306b7d42 100644 --- a/src/@fuse/components/drawer/public-api.ts +++ b/src/@fuse/components/drawer/public-api.ts @@ -1,4 +1,3 @@ export * from '@fuse/components/drawer/drawer.component'; -export * from '@fuse/components/drawer/drawer.module'; export * from '@fuse/components/drawer/drawer.service'; export * from '@fuse/components/drawer/drawer.types'; diff --git a/src/@fuse/components/fullscreen/fullscreen.component.html b/src/@fuse/components/fullscreen/fullscreen.component.html index 77cb0f1d..d8e60020 100644 --- a/src/@fuse/components/fullscreen/fullscreen.component.html +++ b/src/@fuse/components/fullscreen/fullscreen.component.html @@ -8,5 +8,5 @@ - + diff --git a/src/@fuse/components/fullscreen/fullscreen.component.ts b/src/@fuse/components/fullscreen/fullscreen.component.ts index 38ec191d..258267b7 100644 --- a/src/@fuse/components/fullscreen/fullscreen.component.ts +++ b/src/@fuse/components/fullscreen/fullscreen.component.ts @@ -1,5 +1,8 @@ +import { DOCUMENT, NgTemplateOutlet } from '@angular/common'; import { ChangeDetectionStrategy, Component, Inject, Input, OnInit, TemplateRef, ViewEncapsulation } from '@angular/core'; -import { DOCUMENT } from '@angular/common'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatTooltipModule } from '@angular/material/tooltip'; import { FSDocument, FSDocumentElement } from '@fuse/components/fullscreen/fullscreen.types'; @Component({ @@ -7,7 +10,9 @@ import { FSDocument, FSDocumentElement } from '@fuse/components/fullscreen/fulls templateUrl : './fullscreen.component.html', encapsulation : ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, - exportAs : 'fuseFullscreen' + exportAs : 'fuseFullscreen', + standalone : true, + imports : [MatButtonModule, MatTooltipModule, NgTemplateOutlet, MatIconModule], }) export class FuseFullscreenComponent implements OnInit { diff --git a/src/@fuse/components/fullscreen/fullscreen.module.ts b/src/@fuse/components/fullscreen/fullscreen.module.ts deleted file mode 100644 index 2237f2af..00000000 --- a/src/@fuse/components/fullscreen/fullscreen.module.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { NgModule } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { MatIconModule } from '@angular/material/icon'; -import { MatTooltipModule } from '@angular/material/tooltip'; -import { FuseFullscreenComponent } from '@fuse/components/fullscreen/fullscreen.component'; -import { CommonModule } from '@angular/common'; - -@NgModule({ - declarations: [ - FuseFullscreenComponent - ], - imports : [ - MatButtonModule, - MatIconModule, - MatTooltipModule, - CommonModule - ], - exports : [ - FuseFullscreenComponent - ] -}) -export class FuseFullscreenModule -{ -} diff --git a/src/@fuse/components/fullscreen/public-api.ts b/src/@fuse/components/fullscreen/public-api.ts index e6264e3c..03aee0fc 100644 --- a/src/@fuse/components/fullscreen/public-api.ts +++ b/src/@fuse/components/fullscreen/public-api.ts @@ -1,3 +1,2 @@ export * from '@fuse/components/fullscreen/fullscreen.component'; -export * from '@fuse/components/fullscreen/fullscreen.module'; export * from '@fuse/components/fullscreen/fullscreen.types'; diff --git a/src/@fuse/components/highlight/highlight.component.ts b/src/@fuse/components/highlight/highlight.component.ts index 13923796..a45da103 100644 --- a/src/@fuse/components/highlight/highlight.component.ts +++ b/src/@fuse/components/highlight/highlight.component.ts @@ -1,3 +1,4 @@ +import { NgClass } from '@angular/common'; import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EmbeddedViewRef, Input, OnChanges, Renderer2, SecurityContext, SimpleChanges, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; import { FuseHighlightService } from '@fuse/components/highlight/highlight.service'; @@ -8,7 +9,9 @@ import { FuseHighlightService } from '@fuse/components/highlight/highlight.servi styleUrls : ['./highlight.component.scss'], encapsulation : ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, - exportAs : 'fuseHighlight' + exportAs : 'fuseHighlight', + standalone : true, + imports : [NgClass], }) export class FuseHighlightComponent implements OnChanges, AfterViewInit { @@ -28,7 +31,7 @@ export class FuseHighlightComponent implements OnChanges, AfterViewInit private _elementRef: ElementRef, private _renderer2: Renderer2, private _fuseHighlightService: FuseHighlightService, - private _viewContainerRef: ViewContainerRef + private _viewContainerRef: ViewContainerRef, ) { } @@ -123,7 +126,7 @@ export class FuseHighlightComponent implements OnChanges, AfterViewInit // Render and insert the template this._viewRef = this._viewContainerRef.createEmbeddedView(this.templateRef, { highlightedCode: this.highlightedCode, - lang : this.lang + lang : this.lang, }); // Detect the changes diff --git a/src/@fuse/components/highlight/highlight.module.ts b/src/@fuse/components/highlight/highlight.module.ts deleted file mode 100644 index a61149d1..00000000 --- a/src/@fuse/components/highlight/highlight.module.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { FuseHighlightComponent } from '@fuse/components/highlight/highlight.component'; - -@NgModule({ - declarations: [ - FuseHighlightComponent - ], - imports : [ - CommonModule - ], - exports : [ - FuseHighlightComponent - ] -}) -export class FuseHighlightModule -{ -} diff --git a/src/@fuse/components/highlight/highlight.service.ts b/src/@fuse/components/highlight/highlight.service.ts index bb627bc2..e5039902 100644 --- a/src/@fuse/components/highlight/highlight.service.ts +++ b/src/@fuse/components/highlight/highlight.service.ts @@ -1,9 +1,7 @@ import { Injectable } from '@angular/core'; import hljs from 'highlight.js'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class FuseHighlightService { /** @@ -61,19 +59,19 @@ export class FuseHighlightService // Iterate through the lines lines.filter(line => line.length) - .forEach((line, index) => { + .forEach((line, index) => + { + // Always get the indentation of the first line so we can + // have something to compare with + if ( index === 0 ) + { + indentation = line.search(/\S|$/); + return; + } - // Always get the indentation of the first line so we can - // have something to compare with - if ( index === 0 ) - { - indentation = line.search(/\S|$/); - return; - } - - // Look at all the remaining lines to figure out the smallest indentation. - indentation = Math.min(line.search(/\S|$/), indentation); - }); + // Look at all the remaining lines to figure out the smallest indentation. + indentation = Math.min(line.search(/\S|$/), indentation); + }); // Iterate through the lines one more time, remove the extra // indentation, join them together and return it diff --git a/src/@fuse/components/highlight/public-api.ts b/src/@fuse/components/highlight/public-api.ts index 15c2edc1..66d766e1 100644 --- a/src/@fuse/components/highlight/public-api.ts +++ b/src/@fuse/components/highlight/public-api.ts @@ -1,3 +1,2 @@ export * from '@fuse/components/highlight/highlight.component'; -export * from '@fuse/components/highlight/highlight.module'; export * from '@fuse/components/highlight/highlight.service'; diff --git a/src/@fuse/components/loading-bar/loading-bar.component.ts b/src/@fuse/components/loading-bar/loading-bar.component.ts index 74c03465..3c0c939b 100644 --- a/src/@fuse/components/loading-bar/loading-bar.component.ts +++ b/src/@fuse/components/loading-bar/loading-bar.component.ts @@ -1,14 +1,18 @@ -import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewEncapsulation } from '@angular/core'; import { coerceBooleanProperty } from '@angular/cdk/coercion'; -import { Subject, takeUntil } from 'rxjs'; +import { NgIf } from '@angular/common'; +import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewEncapsulation } from '@angular/core'; +import { MatProgressBarModule } from '@angular/material/progress-bar'; import { FuseLoadingService } from '@fuse/services/loading'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'fuse-loading-bar', templateUrl : './loading-bar.component.html', styleUrls : ['./loading-bar.component.scss'], encapsulation: ViewEncapsulation.None, - exportAs : 'fuseLoadingBar' + exportAs : 'fuseLoadingBar', + standalone : true, + imports : [NgIf, MatProgressBarModule], }) export class FuseLoadingBarComponent implements OnChanges, OnInit, OnDestroy { @@ -52,19 +56,22 @@ export class FuseLoadingBarComponent implements OnChanges, OnInit, OnDestroy // Subscribe to the service this._fuseLoadingService.mode$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((value) => { + .subscribe((value) => + { this.mode = value; }); this._fuseLoadingService.progress$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((value) => { + .subscribe((value) => + { this.progress = value; }); this._fuseLoadingService.show$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((value) => { + .subscribe((value) => + { this.show = value; }); diff --git a/src/@fuse/components/loading-bar/loading-bar.module.ts b/src/@fuse/components/loading-bar/loading-bar.module.ts deleted file mode 100644 index b371b8ac..00000000 --- a/src/@fuse/components/loading-bar/loading-bar.module.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { MatProgressBarModule } from '@angular/material/progress-bar'; -import { FuseLoadingBarComponent } from '@fuse/components/loading-bar/loading-bar.component'; - -@NgModule({ - declarations: [ - FuseLoadingBarComponent - ], - imports : [ - CommonModule, - MatProgressBarModule - ], - exports : [ - FuseLoadingBarComponent - ] -}) -export class FuseLoadingBarModule -{ -} diff --git a/src/@fuse/components/loading-bar/public-api.ts b/src/@fuse/components/loading-bar/public-api.ts index 471ccd33..4a272ee4 100644 --- a/src/@fuse/components/loading-bar/public-api.ts +++ b/src/@fuse/components/loading-bar/public-api.ts @@ -1,2 +1 @@ export * from '@fuse/components/loading-bar/loading-bar.component'; -export * from '@fuse/components/loading-bar/loading-bar.module'; diff --git a/src/@fuse/components/masonry/masonry.component.ts b/src/@fuse/components/masonry/masonry.component.ts index 6737ab97..4c86020f 100644 --- a/src/@fuse/components/masonry/masonry.component.ts +++ b/src/@fuse/components/masonry/masonry.component.ts @@ -1,3 +1,4 @@ +import { NgTemplateOutlet } from '@angular/common'; import { AfterViewInit, Component, Input, OnChanges, SimpleChanges, TemplateRef, ViewEncapsulation } from '@angular/core'; import { fuseAnimations } from '@fuse/animations'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; @@ -7,7 +8,9 @@ import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; templateUrl : './masonry.component.html', encapsulation: ViewEncapsulation.None, animations : fuseAnimations, - exportAs : 'fuseMasonry' + exportAs : 'fuseMasonry', + standalone : true, + imports : [NgTemplateOutlet], }) export class FuseMasonryComponent implements OnChanges, AfterViewInit { diff --git a/src/@fuse/components/masonry/masonry.module.ts b/src/@fuse/components/masonry/masonry.module.ts deleted file mode 100644 index 651c5510..00000000 --- a/src/@fuse/components/masonry/masonry.module.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { FuseMasonryComponent } from '@fuse/components/masonry/masonry.component'; - -@NgModule({ - declarations: [ - FuseMasonryComponent - ], - imports : [ - CommonModule - ], - exports : [ - FuseMasonryComponent - ] -}) -export class FuseMasonryModule -{ -} diff --git a/src/@fuse/components/masonry/public-api.ts b/src/@fuse/components/masonry/public-api.ts index e074c48c..ea222316 100644 --- a/src/@fuse/components/masonry/public-api.ts +++ b/src/@fuse/components/masonry/public-api.ts @@ -1,2 +1 @@ export * from '@fuse/components/masonry/masonry.component'; -export * from '@fuse/components/masonry/masonry.module'; diff --git a/src/@fuse/components/navigation/horizontal/components/basic/basic.component.ts b/src/@fuse/components/navigation/horizontal/components/basic/basic.component.ts index af49292a..10f4b87f 100644 --- a/src/@fuse/components/navigation/horizontal/components/basic/basic.component.ts +++ b/src/@fuse/components/navigation/horizontal/components/basic/basic.component.ts @@ -1,15 +1,21 @@ +import { NgClass, NgIf, NgTemplateOutlet } from '@angular/common'; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core'; -import { IsActiveMatchOptions } from '@angular/router'; -import { Subject, takeUntil } from 'rxjs'; +import { MatIconModule } from '@angular/material/icon'; +import { MatMenuModule } from '@angular/material/menu'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { IsActiveMatchOptions, RouterLink, RouterLinkActive } from '@angular/router'; import { FuseHorizontalNavigationComponent } from '@fuse/components/navigation/horizontal/horizontal.component'; import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; import { FuseNavigationItem } from '@fuse/components/navigation/navigation.types'; import { FuseUtilsService } from '@fuse/services/utils/utils.service'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'fuse-horizontal-navigation-basic-item', templateUrl : './basic.component.html', - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [NgClass, NgIf, RouterLink, RouterLinkActive, MatTooltipModule, NgTemplateOutlet, MatMenuModule, MatIconModule], }) export class FuseHorizontalNavigationBasicItemComponent implements OnInit, OnDestroy { @@ -26,7 +32,7 @@ export class FuseHorizontalNavigationBasicItemComponent implements OnInit, OnDes constructor( private _changeDetectorRef: ChangeDetectorRef, private _fuseNavigationService: FuseNavigationService, - private _fuseUtilsService: FuseUtilsService + private _fuseUtilsService: FuseUtilsService, ) { // Set the equivalent of {exact: false} as default for active match options. @@ -61,9 +67,9 @@ export class FuseHorizontalNavigationBasicItemComponent implements OnInit, OnDes // Subscribe to onRefreshed on the navigation component this._fuseHorizontalNavigationComponent.onRefreshed.pipe( - takeUntil(this._unsubscribeAll) - ).subscribe(() => { - + takeUntil(this._unsubscribeAll), + ).subscribe(() => + { // Mark for check this._changeDetectorRef.markForCheck(); }); diff --git a/src/@fuse/components/navigation/horizontal/components/branch/branch.component.ts b/src/@fuse/components/navigation/horizontal/components/branch/branch.component.ts index 69464d8a..99077be6 100644 --- a/src/@fuse/components/navigation/horizontal/components/branch/branch.component.ts +++ b/src/@fuse/components/navigation/horizontal/components/branch/branch.component.ts @@ -1,15 +1,22 @@ -import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core'; import { BooleanInput } from '@angular/cdk/coercion'; -import { MatMenu } from '@angular/material/menu'; -import { Subject, takeUntil } from 'rxjs'; +import { NgClass, NgFor, NgIf, NgTemplateOutlet } from '@angular/common'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core'; +import { MatIconModule } from '@angular/material/icon'; +import { MatMenu, MatMenuModule } from '@angular/material/menu'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { FuseHorizontalNavigationBasicItemComponent } from '@fuse/components/navigation/horizontal/components/basic/basic.component'; +import { FuseHorizontalNavigationDividerItemComponent } from '@fuse/components/navigation/horizontal/components/divider/divider.component'; import { FuseHorizontalNavigationComponent } from '@fuse/components/navigation/horizontal/horizontal.component'; import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; import { FuseNavigationItem } from '@fuse/components/navigation/navigation.types'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'fuse-horizontal-navigation-branch-item', templateUrl : './branch.component.html', - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [NgIf, NgClass, MatMenuModule, NgTemplateOutlet, NgFor, FuseHorizontalNavigationBasicItemComponent, forwardRef(() => FuseHorizontalNavigationBranchItemComponent), FuseHorizontalNavigationDividerItemComponent, MatTooltipModule, MatIconModule], }) export class FuseHorizontalNavigationBranchItemComponent implements OnInit, OnDestroy { @@ -30,7 +37,7 @@ export class FuseHorizontalNavigationBranchItemComponent implements OnInit, OnDe */ constructor( private _changeDetectorRef: ChangeDetectorRef, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -49,9 +56,9 @@ export class FuseHorizontalNavigationBranchItemComponent implements OnInit, OnDe // Subscribe to onRefreshed on the navigation component this._fuseHorizontalNavigationComponent.onRefreshed.pipe( - takeUntil(this._unsubscribeAll) - ).subscribe(() => { - + takeUntil(this._unsubscribeAll), + ).subscribe(() => + { // Mark for check this._changeDetectorRef.markForCheck(); }); diff --git a/src/@fuse/components/navigation/horizontal/components/divider/divider.component.ts b/src/@fuse/components/navigation/horizontal/components/divider/divider.component.ts index 06fb7087..631faa50 100644 --- a/src/@fuse/components/navigation/horizontal/components/divider/divider.component.ts +++ b/src/@fuse/components/navigation/horizontal/components/divider/divider.component.ts @@ -1,13 +1,16 @@ +import { NgClass } from '@angular/common'; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; import { FuseHorizontalNavigationComponent } from '@fuse/components/navigation/horizontal/horizontal.component'; import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; import { FuseNavigationItem } from '@fuse/components/navigation/navigation.types'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'fuse-horizontal-navigation-divider-item', templateUrl : './divider.component.html', - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [NgClass], }) export class FuseHorizontalNavigationDividerItemComponent implements OnInit, OnDestroy { @@ -22,7 +25,7 @@ export class FuseHorizontalNavigationDividerItemComponent implements OnInit, OnD */ constructor( private _changeDetectorRef: ChangeDetectorRef, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -41,9 +44,9 @@ export class FuseHorizontalNavigationDividerItemComponent implements OnInit, OnD // Subscribe to onRefreshed on the navigation component this._fuseHorizontalNavigationComponent.onRefreshed.pipe( - takeUntil(this._unsubscribeAll) - ).subscribe(() => { - + takeUntil(this._unsubscribeAll), + ).subscribe(() => + { // Mark for check this._changeDetectorRef.markForCheck(); }); diff --git a/src/@fuse/components/navigation/horizontal/components/spacer/spacer.component.ts b/src/@fuse/components/navigation/horizontal/components/spacer/spacer.component.ts index f05107d5..05f953af 100644 --- a/src/@fuse/components/navigation/horizontal/components/spacer/spacer.component.ts +++ b/src/@fuse/components/navigation/horizontal/components/spacer/spacer.component.ts @@ -1,13 +1,16 @@ +import { NgClass } from '@angular/common'; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; import { FuseHorizontalNavigationComponent } from '@fuse/components/navigation/horizontal/horizontal.component'; import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; import { FuseNavigationItem } from '@fuse/components/navigation/navigation.types'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'fuse-horizontal-navigation-spacer-item', templateUrl : './spacer.component.html', - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [NgClass], }) export class FuseHorizontalNavigationSpacerItemComponent implements OnInit, OnDestroy { @@ -22,7 +25,7 @@ export class FuseHorizontalNavigationSpacerItemComponent implements OnInit, OnDe */ constructor( private _changeDetectorRef: ChangeDetectorRef, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -41,9 +44,9 @@ export class FuseHorizontalNavigationSpacerItemComponent implements OnInit, OnDe // Subscribe to onRefreshed on the navigation component this._fuseHorizontalNavigationComponent.onRefreshed.pipe( - takeUntil(this._unsubscribeAll) - ).subscribe(() => { - + takeUntil(this._unsubscribeAll), + ).subscribe(() => + { // Mark for check this._changeDetectorRef.markForCheck(); }); diff --git a/src/@fuse/components/navigation/horizontal/horizontal.component.ts b/src/@fuse/components/navigation/horizontal/horizontal.component.ts index 96cbd6e9..440108cd 100644 --- a/src/@fuse/components/navigation/horizontal/horizontal.component.ts +++ b/src/@fuse/components/navigation/horizontal/horizontal.component.ts @@ -1,9 +1,13 @@ +import { NgFor, NgIf } from '@angular/common'; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewEncapsulation } from '@angular/core'; -import { ReplaySubject, Subject } from 'rxjs'; import { fuseAnimations } from '@fuse/animations'; -import { FuseNavigationItem } from '@fuse/components/navigation/navigation.types'; import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; +import { FuseNavigationItem } from '@fuse/components/navigation/navigation.types'; import { FuseUtilsService } from '@fuse/services/utils/utils.service'; +import { ReplaySubject, Subject } from 'rxjs'; +import { FuseHorizontalNavigationBasicItemComponent } from './components/basic/basic.component'; +import { FuseHorizontalNavigationBranchItemComponent } from './components/branch/branch.component'; +import { FuseHorizontalNavigationSpacerItemComponent } from './components/spacer/spacer.component'; @Component({ selector : 'fuse-horizontal-navigation', @@ -12,7 +16,9 @@ import { FuseUtilsService } from '@fuse/services/utils/utils.service'; animations : fuseAnimations, encapsulation : ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, - exportAs : 'fuseHorizontalNavigation' + exportAs : 'fuseHorizontalNavigation', + standalone : true, + imports : [NgFor, NgIf, FuseHorizontalNavigationBasicItemComponent, FuseHorizontalNavigationBranchItemComponent, FuseHorizontalNavigationSpacerItemComponent], }) export class FuseHorizontalNavigationComponent implements OnChanges, OnInit, OnDestroy { @@ -28,7 +34,7 @@ export class FuseHorizontalNavigationComponent implements OnChanges, OnInit, OnD constructor( private _changeDetectorRef: ChangeDetectorRef, private _fuseNavigationService: FuseNavigationService, - private _fuseUtilsService: FuseUtilsService + private _fuseUtilsService: FuseUtilsService, ) { } diff --git a/src/@fuse/components/navigation/navigation.module.ts b/src/@fuse/components/navigation/navigation.module.ts deleted file mode 100644 index d93c6b7b..00000000 --- a/src/@fuse/components/navigation/navigation.module.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatDividerModule } from '@angular/material/divider'; -import { MatIconModule } from '@angular/material/icon'; -import { MatMenuModule } from '@angular/material/menu'; -import { MatTooltipModule } from '@angular/material/tooltip'; -import { FuseScrollbarModule } from '@fuse/directives/scrollbar/public-api'; -import { FuseHorizontalNavigationBasicItemComponent } from '@fuse/components/navigation/horizontal/components/basic/basic.component'; -import { FuseHorizontalNavigationBranchItemComponent } from '@fuse/components/navigation/horizontal/components/branch/branch.component'; -import { FuseHorizontalNavigationDividerItemComponent } from '@fuse/components/navigation/horizontal/components/divider/divider.component'; -import { FuseHorizontalNavigationSpacerItemComponent } from '@fuse/components/navigation/horizontal/components/spacer/spacer.component'; -import { FuseHorizontalNavigationComponent } from '@fuse/components/navigation/horizontal/horizontal.component'; -import { FuseVerticalNavigationAsideItemComponent } from '@fuse/components/navigation/vertical/components/aside/aside.component'; -import { FuseVerticalNavigationBasicItemComponent } from '@fuse/components/navigation/vertical/components/basic/basic.component'; -import { FuseVerticalNavigationCollapsableItemComponent } from '@fuse/components/navigation/vertical/components/collapsable/collapsable.component'; -import { FuseVerticalNavigationDividerItemComponent } from '@fuse/components/navigation/vertical/components/divider/divider.component'; -import { FuseVerticalNavigationGroupItemComponent } from '@fuse/components/navigation/vertical/components/group/group.component'; -import { FuseVerticalNavigationSpacerItemComponent } from '@fuse/components/navigation/vertical/components/spacer/spacer.component'; -import { FuseVerticalNavigationComponent } from '@fuse/components/navigation/vertical/vertical.component'; - -@NgModule({ - declarations: [ - FuseHorizontalNavigationBasicItemComponent, - FuseHorizontalNavigationBranchItemComponent, - FuseHorizontalNavigationDividerItemComponent, - FuseHorizontalNavigationSpacerItemComponent, - FuseHorizontalNavigationComponent, - FuseVerticalNavigationAsideItemComponent, - FuseVerticalNavigationBasicItemComponent, - FuseVerticalNavigationCollapsableItemComponent, - FuseVerticalNavigationDividerItemComponent, - FuseVerticalNavigationGroupItemComponent, - FuseVerticalNavigationSpacerItemComponent, - FuseVerticalNavigationComponent - ], - imports : [ - CommonModule, - RouterModule, - MatButtonModule, - MatDividerModule, - MatIconModule, - MatMenuModule, - MatTooltipModule, - FuseScrollbarModule - ], - exports : [ - FuseHorizontalNavigationComponent, - FuseVerticalNavigationComponent - ] -}) -export class FuseNavigationModule -{ -} diff --git a/src/@fuse/components/navigation/navigation.service.ts b/src/@fuse/components/navigation/navigation.service.ts index 3c5bea80..53ee89b1 100644 --- a/src/@fuse/components/navigation/navigation.service.ts +++ b/src/@fuse/components/navigation/navigation.service.ts @@ -1,9 +1,7 @@ import { Injectable } from '@angular/core'; import { FuseNavigationItem } from '@fuse/components/navigation/navigation.types'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class FuseNavigationService { private _componentRegistry: Map = new Map(); @@ -160,7 +158,7 @@ export class FuseNavigationService getItemParent( id: string, navigation: FuseNavigationItem[], - parent: FuseNavigationItem[] | FuseNavigationItem + parent: FuseNavigationItem[] | FuseNavigationItem, ): FuseNavigationItem[] | FuseNavigationItem | null { for ( const item of navigation ) diff --git a/src/@fuse/components/navigation/public-api.ts b/src/@fuse/components/navigation/public-api.ts index 032e3ef6..3127dcd8 100644 --- a/src/@fuse/components/navigation/public-api.ts +++ b/src/@fuse/components/navigation/public-api.ts @@ -1,5 +1,4 @@ export * from '@fuse/components/navigation/horizontal/horizontal.component'; export * from '@fuse/components/navigation/vertical/vertical.component'; -export * from '@fuse/components/navigation/navigation.module'; export * from '@fuse/components/navigation/navigation.service'; export * from '@fuse/components/navigation/navigation.types'; diff --git a/src/@fuse/components/navigation/vertical/components/aside/aside.component.ts b/src/@fuse/components/navigation/vertical/components/aside/aside.component.ts index de4c5152..429fb4a7 100644 --- a/src/@fuse/components/navigation/vertical/components/aside/aside.component.ts +++ b/src/@fuse/components/navigation/vertical/components/aside/aside.component.ts @@ -1,15 +1,25 @@ -import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core'; -import { NavigationEnd, Router } from '@angular/router'; import { BooleanInput } from '@angular/cdk/coercion'; -import { filter, Subject, takeUntil } from 'rxjs'; -import { FuseVerticalNavigationComponent } from '@fuse/components/navigation/vertical/vertical.component'; +import { NgClass, NgFor, NgIf } from '@angular/common'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core'; +import { MatIconModule } from '@angular/material/icon'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { NavigationEnd, Router } from '@angular/router'; import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; import { FuseNavigationItem } from '@fuse/components/navigation/navigation.types'; +import { FuseVerticalNavigationBasicItemComponent } from '@fuse/components/navigation/vertical/components/basic/basic.component'; +import { FuseVerticalNavigationCollapsableItemComponent } from '@fuse/components/navigation/vertical/components/collapsable/collapsable.component'; +import { FuseVerticalNavigationDividerItemComponent } from '@fuse/components/navigation/vertical/components/divider/divider.component'; +import { FuseVerticalNavigationGroupItemComponent } from '@fuse/components/navigation/vertical/components/group/group.component'; +import { FuseVerticalNavigationSpacerItemComponent } from '@fuse/components/navigation/vertical/components/spacer/spacer.component'; +import { FuseVerticalNavigationComponent } from '@fuse/components/navigation/vertical/vertical.component'; +import { filter, Subject, takeUntil } from 'rxjs'; @Component({ selector : 'fuse-vertical-navigation-aside-item', templateUrl : './aside.component.html', - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [NgClass, MatTooltipModule, NgIf, MatIconModule, NgFor, FuseVerticalNavigationBasicItemComponent, FuseVerticalNavigationCollapsableItemComponent, FuseVerticalNavigationDividerItemComponent, FuseVerticalNavigationGroupItemComponent, FuseVerticalNavigationSpacerItemComponent], }) export class FuseVerticalNavigationAsideItemComponent implements OnChanges, OnInit, OnDestroy { @@ -34,7 +44,7 @@ export class FuseVerticalNavigationAsideItemComponent implements OnChanges, OnIn constructor( private _changeDetectorRef: ChangeDetectorRef, private _router: Router, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -70,10 +80,10 @@ export class FuseVerticalNavigationAsideItemComponent implements OnChanges, OnIn this._router.events .pipe( filter((event): event is NavigationEnd => event instanceof NavigationEnd), - takeUntil(this._unsubscribeAll) + takeUntil(this._unsubscribeAll), ) - .subscribe((event: NavigationEnd) => { - + .subscribe((event: NavigationEnd) => + { // Mark if active this._markIfActive(event.urlAfterRedirects); }); @@ -83,9 +93,9 @@ export class FuseVerticalNavigationAsideItemComponent implements OnChanges, OnIn // Subscribe to onRefreshed on the navigation component this._fuseVerticalNavigationComponent.onRefreshed.pipe( - takeUntil(this._unsubscribeAll) - ).subscribe(() => { - + takeUntil(this._unsubscribeAll), + ).subscribe(() => + { // Mark for check this._changeDetectorRef.markForCheck(); }); diff --git a/src/@fuse/components/navigation/vertical/components/basic/basic.component.ts b/src/@fuse/components/navigation/vertical/components/basic/basic.component.ts index 5cf689a3..e4092de1 100644 --- a/src/@fuse/components/navigation/vertical/components/basic/basic.component.ts +++ b/src/@fuse/components/navigation/vertical/components/basic/basic.component.ts @@ -1,15 +1,20 @@ +import { NgClass, NgIf, NgTemplateOutlet } from '@angular/common'; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core'; -import { IsActiveMatchOptions } from '@angular/router'; -import { Subject, takeUntil } from 'rxjs'; -import { FuseVerticalNavigationComponent } from '@fuse/components/navigation/vertical/vertical.component'; +import { MatIconModule } from '@angular/material/icon'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { IsActiveMatchOptions, RouterLink, RouterLinkActive } from '@angular/router'; import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; import { FuseNavigationItem } from '@fuse/components/navigation/navigation.types'; +import { FuseVerticalNavigationComponent } from '@fuse/components/navigation/vertical/vertical.component'; import { FuseUtilsService } from '@fuse/services/utils/utils.service'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'fuse-vertical-navigation-basic-item', templateUrl : './basic.component.html', - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [NgClass, NgIf, RouterLink, RouterLinkActive, MatTooltipModule, NgTemplateOutlet, MatIconModule], }) export class FuseVerticalNavigationBasicItemComponent implements OnInit, OnDestroy { @@ -26,7 +31,7 @@ export class FuseVerticalNavigationBasicItemComponent implements OnInit, OnDestr constructor( private _changeDetectorRef: ChangeDetectorRef, private _fuseNavigationService: FuseNavigationService, - private _fuseUtilsService: FuseUtilsService + private _fuseUtilsService: FuseUtilsService, ) { // Set the equivalent of {exact: false} as default for active match options. @@ -61,9 +66,9 @@ export class FuseVerticalNavigationBasicItemComponent implements OnInit, OnDestr // Subscribe to onRefreshed on the navigation component this._fuseVerticalNavigationComponent.onRefreshed.pipe( - takeUntil(this._unsubscribeAll) - ).subscribe(() => { - + takeUntil(this._unsubscribeAll), + ).subscribe(() => + { // Mark for check this._changeDetectorRef.markForCheck(); }); diff --git a/src/@fuse/components/navigation/vertical/components/collapsable/collapsable.component.ts b/src/@fuse/components/navigation/vertical/components/collapsable/collapsable.component.ts index 963a2ee7..deb7e403 100644 --- a/src/@fuse/components/navigation/vertical/components/collapsable/collapsable.component.ts +++ b/src/@fuse/components/navigation/vertical/components/collapsable/collapsable.component.ts @@ -1,17 +1,26 @@ -import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input, OnDestroy, OnInit } from '@angular/core'; -import { NavigationEnd, Router } from '@angular/router'; import { BooleanInput } from '@angular/cdk/coercion'; -import { filter, Subject, takeUntil } from 'rxjs'; +import { NgClass, NgFor, NgIf } from '@angular/common'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, HostBinding, Input, OnDestroy, OnInit } from '@angular/core'; +import { MatIconModule } from '@angular/material/icon'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { NavigationEnd, Router } from '@angular/router'; import { fuseAnimations } from '@fuse/animations'; -import { FuseVerticalNavigationComponent } from '@fuse/components/navigation/vertical/vertical.component'; import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; import { FuseNavigationItem } from '@fuse/components/navigation/navigation.types'; +import { FuseVerticalNavigationBasicItemComponent } from '@fuse/components/navigation/vertical/components/basic/basic.component'; +import { FuseVerticalNavigationDividerItemComponent } from '@fuse/components/navigation/vertical/components/divider/divider.component'; +import { FuseVerticalNavigationGroupItemComponent } from '@fuse/components/navigation/vertical/components/group/group.component'; +import { FuseVerticalNavigationSpacerItemComponent } from '@fuse/components/navigation/vertical/components/spacer/spacer.component'; +import { FuseVerticalNavigationComponent } from '@fuse/components/navigation/vertical/vertical.component'; +import { filter, Subject, takeUntil } from 'rxjs'; @Component({ selector : 'fuse-vertical-navigation-collapsable-item', templateUrl : './collapsable.component.html', animations : fuseAnimations, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [NgClass, MatTooltipModule, NgIf, MatIconModule, NgFor, FuseVerticalNavigationBasicItemComponent, forwardRef(() => FuseVerticalNavigationCollapsableItemComponent), FuseVerticalNavigationDividerItemComponent, FuseVerticalNavigationGroupItemComponent, FuseVerticalNavigationSpacerItemComponent], }) export class FuseVerticalNavigationCollapsableItemComponent implements OnInit, OnDestroy { @@ -34,7 +43,7 @@ export class FuseVerticalNavigationCollapsableItemComponent implements OnInit, O constructor( private _changeDetectorRef: ChangeDetectorRef, private _router: Router, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -51,7 +60,7 @@ export class FuseVerticalNavigationCollapsableItemComponent implements OnInit, O /* eslint-disable @typescript-eslint/naming-convention */ return { 'fuse-vertical-navigation-item-collapsed': this.isCollapsed, - 'fuse-vertical-navigation-item-expanded' : this.isExpanded + 'fuse-vertical-navigation-item-expanded' : this.isExpanded, }; /* eslint-enable @typescript-eslint/naming-convention */ } @@ -86,8 +95,8 @@ export class FuseVerticalNavigationCollapsableItemComponent implements OnInit, O // Listen for the onCollapsableItemCollapsed from the service this._fuseVerticalNavigationComponent.onCollapsableItemCollapsed .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((collapsedItem) => { - + .subscribe((collapsedItem) => + { // Check if the collapsed item is null if ( collapsedItem === null ) { @@ -106,8 +115,8 @@ export class FuseVerticalNavigationCollapsableItemComponent implements OnInit, O { this._fuseVerticalNavigationComponent.onCollapsableItemExpanded .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((expandedItem) => { - + .subscribe((expandedItem) => + { // Check if the expanded item is null if ( expandedItem === null ) { @@ -141,10 +150,10 @@ export class FuseVerticalNavigationCollapsableItemComponent implements OnInit, O this._router.events .pipe( filter((event): event is NavigationEnd => event instanceof NavigationEnd), - takeUntil(this._unsubscribeAll) + takeUntil(this._unsubscribeAll), ) - .subscribe((event: NavigationEnd) => { - + .subscribe((event: NavigationEnd) => + { // If the item has a children that has a matching url with the current url, expand... if ( this._hasActiveChild(this.item, event.urlAfterRedirects) ) { @@ -163,9 +172,9 @@ export class FuseVerticalNavigationCollapsableItemComponent implements OnInit, O // Subscribe to onRefreshed on the navigation component this._fuseVerticalNavigationComponent.onRefreshed.pipe( - takeUntil(this._unsubscribeAll) - ).subscribe(() => { - + takeUntil(this._unsubscribeAll), + ).subscribe(() => + { // Mark for check this._changeDetectorRef.markForCheck(); }); diff --git a/src/@fuse/components/navigation/vertical/components/divider/divider.component.ts b/src/@fuse/components/navigation/vertical/components/divider/divider.component.ts index 15255b38..2ea1bad4 100644 --- a/src/@fuse/components/navigation/vertical/components/divider/divider.component.ts +++ b/src/@fuse/components/navigation/vertical/components/divider/divider.component.ts @@ -1,13 +1,16 @@ +import { NgClass } from '@angular/common'; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; -import { FuseVerticalNavigationComponent } from '@fuse/components/navigation/vertical/vertical.component'; import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; import { FuseNavigationItem } from '@fuse/components/navigation/navigation.types'; +import { FuseVerticalNavigationComponent } from '@fuse/components/navigation/vertical/vertical.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'fuse-vertical-navigation-divider-item', templateUrl : './divider.component.html', - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [NgClass], }) export class FuseVerticalNavigationDividerItemComponent implements OnInit, OnDestroy { @@ -22,7 +25,7 @@ export class FuseVerticalNavigationDividerItemComponent implements OnInit, OnDes */ constructor( private _changeDetectorRef: ChangeDetectorRef, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -41,9 +44,9 @@ export class FuseVerticalNavigationDividerItemComponent implements OnInit, OnDes // Subscribe to onRefreshed on the navigation component this._fuseVerticalNavigationComponent.onRefreshed.pipe( - takeUntil(this._unsubscribeAll) - ).subscribe(() => { - + takeUntil(this._unsubscribeAll), + ).subscribe(() => + { // Mark for check this._changeDetectorRef.markForCheck(); }); diff --git a/src/@fuse/components/navigation/vertical/components/group/group.component.ts b/src/@fuse/components/navigation/vertical/components/group/group.component.ts index 290daeec..ef4ed319 100644 --- a/src/@fuse/components/navigation/vertical/components/group/group.component.ts +++ b/src/@fuse/components/navigation/vertical/components/group/group.component.ts @@ -1,14 +1,22 @@ -import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core'; import { BooleanInput } from '@angular/cdk/coercion'; -import { Subject, takeUntil } from 'rxjs'; -import { FuseVerticalNavigationComponent } from '@fuse/components/navigation/vertical/vertical.component'; +import { NgClass, NgFor, NgIf } from '@angular/common'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, OnDestroy, OnInit } from '@angular/core'; +import { MatIconModule } from '@angular/material/icon'; import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; import { FuseNavigationItem } from '@fuse/components/navigation/navigation.types'; +import { FuseVerticalNavigationBasicItemComponent } from '@fuse/components/navigation/vertical/components/basic/basic.component'; +import { FuseVerticalNavigationCollapsableItemComponent } from '@fuse/components/navigation/vertical/components/collapsable/collapsable.component'; +import { FuseVerticalNavigationDividerItemComponent } from '@fuse/components/navigation/vertical/components/divider/divider.component'; +import { FuseVerticalNavigationSpacerItemComponent } from '@fuse/components/navigation/vertical/components/spacer/spacer.component'; +import { FuseVerticalNavigationComponent } from '@fuse/components/navigation/vertical/vertical.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'fuse-vertical-navigation-group-item', templateUrl : './group.component.html', - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [NgClass, NgIf, MatIconModule, NgFor, FuseVerticalNavigationBasicItemComponent, FuseVerticalNavigationCollapsableItemComponent, FuseVerticalNavigationDividerItemComponent, forwardRef(() => FuseVerticalNavigationGroupItemComponent), FuseVerticalNavigationSpacerItemComponent], }) export class FuseVerticalNavigationGroupItemComponent implements OnInit, OnDestroy { @@ -28,7 +36,7 @@ export class FuseVerticalNavigationGroupItemComponent implements OnInit, OnDestr */ constructor( private _changeDetectorRef: ChangeDetectorRef, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -47,9 +55,9 @@ export class FuseVerticalNavigationGroupItemComponent implements OnInit, OnDestr // Subscribe to onRefreshed on the navigation component this._fuseVerticalNavigationComponent.onRefreshed.pipe( - takeUntil(this._unsubscribeAll) - ).subscribe(() => { - + takeUntil(this._unsubscribeAll), + ).subscribe(() => + { // Mark for check this._changeDetectorRef.markForCheck(); }); diff --git a/src/@fuse/components/navigation/vertical/components/spacer/spacer.component.ts b/src/@fuse/components/navigation/vertical/components/spacer/spacer.component.ts index 925bfc1c..f1b61c50 100644 --- a/src/@fuse/components/navigation/vertical/components/spacer/spacer.component.ts +++ b/src/@fuse/components/navigation/vertical/components/spacer/spacer.component.ts @@ -1,13 +1,16 @@ +import { NgClass } from '@angular/common'; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; -import { FuseVerticalNavigationComponent } from '@fuse/components/navigation/vertical/vertical.component'; import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; import { FuseNavigationItem } from '@fuse/components/navigation/navigation.types'; +import { FuseVerticalNavigationComponent } from '@fuse/components/navigation/vertical/vertical.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'fuse-vertical-navigation-spacer-item', templateUrl : './spacer.component.html', - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [NgClass], }) export class FuseVerticalNavigationSpacerItemComponent implements OnInit, OnDestroy { @@ -22,7 +25,7 @@ export class FuseVerticalNavigationSpacerItemComponent implements OnInit, OnDest */ constructor( private _changeDetectorRef: ChangeDetectorRef, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -41,9 +44,9 @@ export class FuseVerticalNavigationSpacerItemComponent implements OnInit, OnDest // Subscribe to onRefreshed on the navigation component this._fuseVerticalNavigationComponent.onRefreshed.pipe( - takeUntil(this._unsubscribeAll) - ).subscribe(() => { - + takeUntil(this._unsubscribeAll), + ).subscribe(() => + { // Mark for check this._changeDetectorRef.markForCheck(); }); diff --git a/src/@fuse/components/navigation/vertical/vertical.component.ts b/src/@fuse/components/navigation/vertical/vertical.component.ts index 7a19c7be..ced92e2e 100644 --- a/src/@fuse/components/navigation/vertical/vertical.component.ts +++ b/src/@fuse/components/navigation/vertical/vertical.component.ts @@ -1,15 +1,21 @@ -import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, HostListener, Inject, Input, OnChanges, OnDestroy, OnInit, Output, QueryList, Renderer2, SimpleChanges, ViewChild, ViewChildren, ViewEncapsulation } from '@angular/core'; import { animate, AnimationBuilder, AnimationPlayer, style } from '@angular/animations'; -import { DOCUMENT } from '@angular/common'; -import { NavigationEnd, Router } from '@angular/router'; +import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'; import { ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay'; -import { delay, filter, merge, ReplaySubject, Subject, Subscription, takeUntil } from 'rxjs'; +import { DOCUMENT, NgFor, NgIf } from '@angular/common'; +import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, HostListener, Inject, Input, OnChanges, OnDestroy, OnInit, Output, QueryList, Renderer2, SimpleChanges, ViewChild, ViewChildren, ViewEncapsulation } from '@angular/core'; +import { NavigationEnd, Router } from '@angular/router'; import { fuseAnimations } from '@fuse/animations'; -import { FuseNavigationItem, FuseVerticalNavigationAppearance, FuseVerticalNavigationMode, FuseVerticalNavigationPosition } from '@fuse/components/navigation/navigation.types'; import { FuseNavigationService } from '@fuse/components/navigation/navigation.service'; +import { FuseNavigationItem, FuseVerticalNavigationAppearance, FuseVerticalNavigationMode, FuseVerticalNavigationPosition } from '@fuse/components/navigation/navigation.types'; +import { FuseVerticalNavigationAsideItemComponent } from '@fuse/components/navigation/vertical/components/aside/aside.component'; +import { FuseVerticalNavigationBasicItemComponent } from '@fuse/components/navigation/vertical/components/basic/basic.component'; +import { FuseVerticalNavigationCollapsableItemComponent } from '@fuse/components/navigation/vertical/components/collapsable/collapsable.component'; +import { FuseVerticalNavigationDividerItemComponent } from '@fuse/components/navigation/vertical/components/divider/divider.component'; +import { FuseVerticalNavigationGroupItemComponent } from '@fuse/components/navigation/vertical/components/group/group.component'; +import { FuseVerticalNavigationSpacerItemComponent } from '@fuse/components/navigation/vertical/components/spacer/spacer.component'; import { FuseScrollbarDirective } from '@fuse/directives/scrollbar/scrollbar.directive'; import { FuseUtilsService } from '@fuse/services/utils/utils.service'; -import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'; +import { delay, filter, merge, ReplaySubject, Subject, Subscription, takeUntil } from 'rxjs'; @Component({ selector : 'fuse-vertical-navigation', @@ -18,7 +24,9 @@ import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'; animations : fuseAnimations, encapsulation : ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, - exportAs : 'fuseVerticalNavigation' + exportAs : 'fuseVerticalNavigation', + standalone : true, + imports : [FuseScrollbarDirective, NgFor, NgIf, FuseVerticalNavigationAsideItemComponent, FuseVerticalNavigationBasicItemComponent, FuseVerticalNavigationCollapsableItemComponent, FuseVerticalNavigationDividerItemComponent, FuseVerticalNavigationGroupItemComponent, FuseVerticalNavigationSpacerItemComponent], }) export class FuseVerticalNavigationComponent implements OnChanges, OnInit, AfterViewInit, OnDestroy { @@ -72,13 +80,15 @@ export class FuseVerticalNavigationComponent implements OnChanges, OnInit, After private _router: Router, private _scrollStrategyOptions: ScrollStrategyOptions, private _fuseNavigationService: FuseNavigationService, - private _fuseUtilsService: FuseUtilsService + private _fuseUtilsService: FuseUtilsService, ) { - this._handleAsideOverlayClick = (): void => { + this._handleAsideOverlayClick = (): void => + { this.closeAside(); }; - this._handleOverlayClick = (): void => { + this._handleOverlayClick = (): void => + { this.close(); }; } @@ -102,7 +112,7 @@ export class FuseVerticalNavigationComponent implements OnChanges, OnInit, After 'fuse-vertical-navigation-mode-side' : this.mode === 'side', 'fuse-vertical-navigation-opened' : this.opened, 'fuse-vertical-navigation-position-left' : this.position === 'left', - 'fuse-vertical-navigation-position-right' : this.position === 'right' + 'fuse-vertical-navigation-position-right' : this.position === 'right', }; /* eslint-enable @typescript-eslint/naming-convention */ } @@ -113,7 +123,7 @@ export class FuseVerticalNavigationComponent implements OnChanges, OnInit, After @HostBinding('style') get styleList(): any { return { - 'visibility': this.opened ? 'visible' : 'hidden' + 'visibility': this.opened ? 'visible' : 'hidden', }; } @@ -142,16 +152,17 @@ export class FuseVerticalNavigationComponent implements OnChanges, OnInit, After this._fuseScrollbarDirectivesSubscription = merge( this.onCollapsableItemCollapsed, - this.onCollapsableItemExpanded + this.onCollapsableItemExpanded, ) .pipe( takeUntil(this._unsubscribeAll), - delay(250) + delay(250), ) - .subscribe(() => { - + .subscribe(() => + { // Loop through the scrollbars and update them - fuseScrollbarDirectives.forEach((fuseScrollbarDirective) => { + fuseScrollbarDirectives.forEach((fuseScrollbarDirective) => + { fuseScrollbarDirective.update(); }); }); @@ -253,7 +264,8 @@ export class FuseVerticalNavigationComponent implements OnChanges, OnInit, After // Enable the animations after a delay // The delay must be bigger than the current transition-duration // to make sure nothing will be animated while the mode changing - setTimeout(() => { + setTimeout(() => + { this._enableAnimations(); }, 500); } @@ -308,10 +320,10 @@ export class FuseVerticalNavigationComponent implements OnChanges, OnInit, After this._router.events .pipe( filter(event => event instanceof NavigationEnd), - takeUntil(this._unsubscribeAll) + takeUntil(this._unsubscribeAll), ) - .subscribe(() => { - + .subscribe(() => + { // If the mode is 'over' and the navigation is opened... if ( this.mode === 'over' && this.opened ) { @@ -339,8 +351,10 @@ export class FuseVerticalNavigationComponent implements OnChanges, OnInit, After // adding the '.cdk-global-scrollblock' to the html element breaks the navigation's position. // This fixes the problem by reading the 'top' value from the html element and adding it as a // 'marginTop' to the navigation itself. - this._mutationObserver = new MutationObserver((mutations) => { - mutations.forEach((mutation) => { + this._mutationObserver = new MutationObserver((mutations) => + { + mutations.forEach((mutation) => + { const mutationTarget = mutation.target as HTMLElement; if ( mutation.attributeName === 'class' ) { @@ -358,11 +372,11 @@ export class FuseVerticalNavigationComponent implements OnChanges, OnInit, After }); this._mutationObserver.observe(this._document.documentElement, { attributes : true, - attributeFilter: ['class'] + attributeFilter: ['class'], }); - setTimeout(() => { - + setTimeout(() => + { // Return if 'navigation content' element does not exist if ( !this._navigationContentEl ) { @@ -386,8 +400,8 @@ export class FuseVerticalNavigationComponent implements OnChanges, OnInit, After else { // Go through all the scrollbar directives - this._fuseScrollbarDirectives.forEach((fuseScrollbarDirective) => { - + this._fuseScrollbarDirectives.forEach((fuseScrollbarDirective) => + { // Skip if not enabled if ( !fuseScrollbarDirective.isEnabled() ) { @@ -624,7 +638,7 @@ export class FuseVerticalNavigationComponent implements OnChanges, OnInit, After // Create the enter animation and attach it to the player this._player = this._animationBuilder.build([ - animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({opacity: 1})) + animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({opacity: 1})), ]).create(this._overlay); // Play the animation @@ -648,15 +662,15 @@ export class FuseVerticalNavigationComponent implements OnChanges, OnInit, After // Create the leave animation and attach it to the player this._player = this._animationBuilder.build([ - animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({opacity: 0})) + animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({opacity: 0})), ]).create(this._overlay); // Play the animation this._player.play(); // Once the animation is done... - this._player.onDone(() => { - + this._player.onDone(() => + { // If the overlay still exists... if ( this._overlay ) { @@ -699,7 +713,7 @@ export class FuseVerticalNavigationComponent implements OnChanges, OnInit, After this._player = this._animationBuilder .build([ - animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({opacity: 1})) + animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({opacity: 1})), ]).create(this._asideOverlay); // Play the animation @@ -725,15 +739,15 @@ export class FuseVerticalNavigationComponent implements OnChanges, OnInit, After this._player = this._animationBuilder .build([ - animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({opacity: 0})) + animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({opacity: 0})), ]).create(this._asideOverlay); // Play the animation this._player.play(); // Once the animation is done... - this._player.onDone(() => { - + this._player.onDone(() => + { // If the aside overlay still exists... if ( this._asideOverlay ) { diff --git a/src/@fuse/directives/scroll-reset/public-api.ts b/src/@fuse/directives/scroll-reset/public-api.ts index c394b43c..a5192a0c 100644 --- a/src/@fuse/directives/scroll-reset/public-api.ts +++ b/src/@fuse/directives/scroll-reset/public-api.ts @@ -1,2 +1 @@ export * from '@fuse/directives/scroll-reset/scroll-reset.directive'; -export * from '@fuse/directives/scroll-reset/scroll-reset.module'; diff --git a/src/@fuse/directives/scroll-reset/scroll-reset.directive.ts b/src/@fuse/directives/scroll-reset/scroll-reset.directive.ts index ab8bae1e..59b793b3 100644 --- a/src/@fuse/directives/scroll-reset/scroll-reset.directive.ts +++ b/src/@fuse/directives/scroll-reset/scroll-reset.directive.ts @@ -3,8 +3,9 @@ import { NavigationEnd, Router } from '@angular/router'; import { filter, Subject, takeUntil } from 'rxjs'; @Directive({ - selector: '[fuseScrollReset]', - exportAs: 'fuseScrollReset' + selector : '[fuseScrollReset]', + exportAs : 'fuseScrollReset', + standalone: true, }) export class FuseScrollResetDirective implements OnInit, OnDestroy { @@ -15,7 +16,7 @@ export class FuseScrollResetDirective implements OnInit, OnDestroy */ constructor( private _elementRef: ElementRef, - private _router: Router + private _router: Router, ) { } @@ -32,9 +33,9 @@ export class FuseScrollResetDirective implements OnInit, OnDestroy // Subscribe to NavigationEnd event this._router.events.pipe( filter(event => event instanceof NavigationEnd), - takeUntil(this._unsubscribeAll) - ).subscribe(() => { - + takeUntil(this._unsubscribeAll), + ).subscribe(() => + { // Reset the element's scroll position to the top this._elementRef.nativeElement.scrollTop = 0; }); diff --git a/src/@fuse/directives/scroll-reset/scroll-reset.module.ts b/src/@fuse/directives/scroll-reset/scroll-reset.module.ts deleted file mode 100644 index 48715be3..00000000 --- a/src/@fuse/directives/scroll-reset/scroll-reset.module.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { NgModule } from '@angular/core'; -import { FuseScrollResetDirective } from '@fuse/directives/scroll-reset/scroll-reset.directive'; - -@NgModule({ - declarations: [ - FuseScrollResetDirective - ], - exports : [ - FuseScrollResetDirective - ] -}) -export class FuseScrollResetModule -{ -} diff --git a/src/@fuse/directives/scrollbar/public-api.ts b/src/@fuse/directives/scrollbar/public-api.ts index c74ff507..5e80e778 100644 --- a/src/@fuse/directives/scrollbar/public-api.ts +++ b/src/@fuse/directives/scrollbar/public-api.ts @@ -1,2 +1 @@ export * from '@fuse/directives/scrollbar/scrollbar.directive'; -export * from '@fuse/directives/scrollbar/scrollbar.module'; diff --git a/src/@fuse/directives/scrollbar/scrollbar.directive.ts b/src/@fuse/directives/scrollbar/scrollbar.directive.ts index 03865f18..dbde4e5f 100644 --- a/src/@fuse/directives/scrollbar/scrollbar.directive.ts +++ b/src/@fuse/directives/scrollbar/scrollbar.directive.ts @@ -1,18 +1,19 @@ -import { Directive, ElementRef, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core'; -import { Router } from '@angular/router'; import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'; import { Platform } from '@angular/cdk/platform'; -import { debounceTime, fromEvent, Subject, takeUntil } from 'rxjs'; -import PerfectScrollbar from 'perfect-scrollbar'; -import { merge } from 'lodash-es'; +import { Directive, ElementRef, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core'; +import { Router } from '@angular/router'; import { ScrollbarGeometry, ScrollbarPosition } from '@fuse/directives/scrollbar/scrollbar.types'; +import { merge } from 'lodash-es'; +import PerfectScrollbar from 'perfect-scrollbar'; +import { debounceTime, fromEvent, Subject, takeUntil } from 'rxjs'; /** * Wrapper directive for the Perfect Scrollbar: https://github.com/mdbootstrap/perfect-scrollbar */ @Directive({ - selector: '[fuseScrollbar]', - exportAs: 'fuseScrollbar' + selector : '[fuseScrollbar]', + exportAs : 'fuseScrollbar', + standalone: true, }) export class FuseScrollbarDirective implements OnChanges, OnInit, OnDestroy { @@ -34,7 +35,7 @@ export class FuseScrollbarDirective implements OnChanges, OnInit, OnDestroy constructor( private _elementRef: ElementRef, private _platform: Platform, - private _router: Router + private _router: Router, ) { } @@ -101,11 +102,13 @@ export class FuseScrollbarDirective implements OnChanges, OnInit, OnDestroy } // Destroy and re-init the PerfectScrollbar to update its options - setTimeout(() => { + setTimeout(() => + { this._destroy(); }); - setTimeout(() => { + setTimeout(() => + { this._init(); }); } @@ -120,10 +123,10 @@ export class FuseScrollbarDirective implements OnChanges, OnInit, OnDestroy fromEvent(window, 'resize') .pipe( takeUntil(this._unsubscribeAll), - debounceTime(150) + debounceTime(150), ) - .subscribe(() => { - + .subscribe(() => + { // Update the PerfectScrollbar this.update(); }); @@ -203,14 +206,14 @@ export class FuseScrollbarDirective implements OnChanges, OnInit, OnDestroy { scrollbarPosition = new ScrollbarPosition( this._ps.reach.x || 0, - this._ps.reach.y || 0 + this._ps.reach.y || 0, ); } else { scrollbarPosition = new ScrollbarPosition( this._elementRef.nativeElement.scrollLeft, - this._elementRef.nativeElement.scrollTop + this._elementRef.nativeElement.scrollTop, ); } @@ -388,7 +391,8 @@ export class FuseScrollbarDirective implements OnChanges, OnInit, OnDestroy const cosParameter = (oldValue - value) / 2; - const step = (newTimestamp: number): void => { + const step = (newTimestamp: number): void => + { scrollCount += Math.PI / (speed / (newTimestamp - oldTimestamp)); newValue = Math.round(value + cosParameter + cosParameter * Math.cos(scrollCount)); diff --git a/src/@fuse/directives/scrollbar/scrollbar.module.ts b/src/@fuse/directives/scrollbar/scrollbar.module.ts deleted file mode 100644 index 628645b6..00000000 --- a/src/@fuse/directives/scrollbar/scrollbar.module.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { NgModule } from '@angular/core'; -import { FuseScrollbarDirective } from '@fuse/directives/scrollbar/scrollbar.directive'; - -@NgModule({ - declarations: [ - FuseScrollbarDirective - ], - exports : [ - FuseScrollbarDirective - ] -}) -export class FuseScrollbarModule -{ -} diff --git a/src/@fuse/fuse.module.ts b/src/@fuse/fuse.module.ts deleted file mode 100644 index 91390c11..00000000 --- a/src/@fuse/fuse.module.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { NgModule, Optional, SkipSelf } from '@angular/core'; -import { MATERIAL_SANITY_CHECKS } from '@angular/material/core'; -import { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field'; -import { FuseConfirmationModule } from '@fuse/services/confirmation'; -import { FuseLoadingModule } from '@fuse/services/loading'; -import { FuseMediaWatcherModule } from '@fuse/services/media-watcher/media-watcher.module'; -import { FusePlatformModule } from '@fuse/services/platform/platform.module'; -import { FuseSplashScreenModule } from '@fuse/services/splash-screen/splash-screen.module'; -import { FuseUtilsModule } from '@fuse/services/utils/utils.module'; - -@NgModule({ - imports : [ - FuseConfirmationModule, - FuseLoadingModule, - FuseMediaWatcherModule, - FusePlatformModule, - FuseSplashScreenModule, - FuseUtilsModule - ], - providers: [ - { - // Disable 'theme' sanity check - provide : MATERIAL_SANITY_CHECKS, - useValue: { - doctype: true, - theme : false, - version: true - } - }, - { - // Use the 'fill' appearance on Angular Material form fields by default - provide : MAT_FORM_FIELD_DEFAULT_OPTIONS, - useValue: { - appearance: 'fill' - } - } - ] -}) -export class FuseModule -{ - /** - * Constructor - */ - constructor(@Optional() @SkipSelf() parentModule?: FuseModule) - { - if ( parentModule ) - { - throw new Error('FuseModule has already been loaded. Import this module in the AppModule only!'); - } - } -} diff --git a/src/@fuse/fuse.provider.ts b/src/@fuse/fuse.provider.ts new file mode 100644 index 00000000..a7914945 --- /dev/null +++ b/src/@fuse/fuse.provider.ts @@ -0,0 +1,108 @@ +import { provideHttpClient, withInterceptors } from '@angular/common/http'; +import { APP_INITIALIZER, ENVIRONMENT_INITIALIZER, EnvironmentProviders, importProvidersFrom, inject, Provider } from '@angular/core'; +import { MATERIAL_SANITY_CHECKS } from '@angular/material/core'; +import { MatDialogModule } from '@angular/material/dialog'; +import { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field'; +import { FUSE_MOCK_API_DEFAULT_DELAY, mockApiInterceptor } from '@fuse/lib/mock-api'; +import { FuseConfig } from '@fuse/services/config'; +import { FUSE_CONFIG } from '@fuse/services/config/config.constants'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; +import { fuseLoadingInterceptor, FuseLoadingService } from '@fuse/services/loading'; +import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { FusePlatformService } from '@fuse/services/platform'; +import { FuseSplashScreenService } from '@fuse/services/splash-screen'; +import { FuseUtilsService } from '@fuse/services/utils'; + +export type FuseProviderConfig = { + mockApi?: { + delay?: number; + services?: any[]; + }, + fuse?: FuseConfig +} + +/** + * Fuse provider + */ +export const provideFuse = (config: FuseProviderConfig): Array => +{ + // Base providers + const providers: Array = [ + { + // Disable 'theme' sanity check + provide : MATERIAL_SANITY_CHECKS, + useValue: { + doctype: true, + theme : false, + version: true, + }, + }, + { + // Use the 'fill' appearance on Angular Material form fields by default + provide : MAT_FORM_FIELD_DEFAULT_OPTIONS, + useValue: { + appearance: 'fill', + }, + }, + { + provide : FUSE_MOCK_API_DEFAULT_DELAY, + useValue: config?.mockApi?.delay ?? 0, + }, + { + provide : FUSE_CONFIG, + useValue: config?.fuse ?? {}, + }, + + importProvidersFrom(MatDialogModule), + { + provide : ENVIRONMENT_INITIALIZER, + useValue: () => inject(FuseConfirmationService), + multi : true, + }, + + provideHttpClient(withInterceptors([fuseLoadingInterceptor])), + { + provide : ENVIRONMENT_INITIALIZER, + useValue: () => inject(FuseLoadingService), + multi : true, + }, + + { + provide : ENVIRONMENT_INITIALIZER, + useValue: () => inject(FuseMediaWatcherService), + multi : true, + }, + { + provide : ENVIRONMENT_INITIALIZER, + useValue: () => inject(FusePlatformService), + multi : true, + }, + { + provide : ENVIRONMENT_INITIALIZER, + useValue: () => inject(FuseSplashScreenService), + multi : true, + }, + { + provide : ENVIRONMENT_INITIALIZER, + useValue: () => inject(FuseUtilsService), + multi : true, + }, + ]; + + // Mock Api services + if ( config?.mockApi?.services ) + { + providers.push( + provideHttpClient(withInterceptors([mockApiInterceptor])), + { + provide : APP_INITIALIZER, + deps : [...config.mockApi.services], + useFactory: () => (): any => null, + multi : true, + }, + ); + } + + // Return the providers + return providers; +}; diff --git a/src/@fuse/index.ts b/src/@fuse/index.ts index b172fb6f..31e43335 100644 --- a/src/@fuse/index.ts +++ b/src/@fuse/index.ts @@ -1 +1 @@ -export * from './fuse.module'; +export * from './fuse.provider'; diff --git a/src/@fuse/lib/mock-api/mock-api.interceptor.ts b/src/@fuse/lib/mock-api/mock-api.interceptor.ts index e94bdf1d..2ef6b5f4 100644 --- a/src/@fuse/lib/mock-api/mock-api.interceptor.ts +++ b/src/@fuse/lib/mock-api/mock-api.interceptor.ts @@ -1,96 +1,77 @@ -import { Inject, Injectable } from '@angular/core'; -import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http'; -import { delay, Observable, of, switchMap, throwError } from 'rxjs'; +import { HttpErrorResponse, HttpEvent, HttpHandlerFn, HttpRequest, HttpResponse } from '@angular/common/http'; +import { inject } from '@angular/core'; import { FUSE_MOCK_API_DEFAULT_DELAY } from '@fuse/lib/mock-api/mock-api.constants'; import { FuseMockApiService } from '@fuse/lib/mock-api/mock-api.service'; +import { delay, Observable, of, switchMap, throwError } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) -export class FuseMockApiInterceptor implements HttpInterceptor +export const mockApiInterceptor = (request: HttpRequest, next: HttpHandlerFn): Observable> => { - /** - * Constructor - */ - constructor( - @Inject(FUSE_MOCK_API_DEFAULT_DELAY) private _defaultDelay: number, - private _fuseMockApiService: FuseMockApiService - ) + const defaultDelay = inject(FUSE_MOCK_API_DEFAULT_DELAY); + const fuseMockApiService = inject(FuseMockApiService); + + // Try to get the request handler + const { + handler, + urlParams, + } = fuseMockApiService.findHandler(request.method.toUpperCase(), request.url); + + // Pass through if the request handler does not exist + if ( !handler ) { + return next(request); } - /** - * Intercept - * - * @param request - * @param next - */ - intercept(request: HttpRequest, next: HttpHandler): Observable> - { - // Try to get the request handler - const { - handler, - urlParams - } = this._fuseMockApiService.findHandler(request.method.toUpperCase(), request.url); + // Set the intercepted request on the handler + handler.request = request; - // Pass through if the request handler does not exist - if ( !handler ) + // Set the url params on the handler + handler.urlParams = urlParams; + + // Subscribe to the response function observable + return handler.response.pipe( + delay(handler.delay ?? defaultDelay ?? 0), + switchMap((response) => { - return next.handle(request); - } - - // Set the intercepted request on the handler - handler.request = request; - - // Set the url params on the handler - handler.urlParams = urlParams; - - // Subscribe to the response function observable - return handler.response.pipe( - delay(handler.delay ?? this._defaultDelay ?? 0), - switchMap((response) => { - - // If there is no response data, - // throw an error response - if ( !response ) - { - response = new HttpErrorResponse({ - error : 'NOT FOUND', - status : 404, - statusText: 'NOT FOUND' - }); - - return throwError(response); - } - - // Parse the response data - const data = { - status: response[0], - body : response[1] - }; - - // If the status code is in between 200 and 300, - // return a success response - if ( data.status >= 200 && data.status < 300 ) - { - response = new HttpResponse({ - body : data.body, - status : data.status, - statusText: 'OK' - }); - - return of(response); - } - - // For other status codes, - // throw an error response + // If there is no response data, + // throw an error response + if ( !response ) + { response = new HttpErrorResponse({ - error : data.body.error, - status : data.status, - statusText: 'ERROR' + error : 'NOT FOUND', + status : 404, + statusText: 'NOT FOUND', }); return throwError(response); - })); - } -} + } + + // Parse the response data + const data = { + status: response[0], + body : response[1], + }; + + // If the status code is in between 200 and 300, + // return a success response + if ( data.status >= 200 && data.status < 300 ) + { + response = new HttpResponse({ + body : data.body, + status : data.status, + statusText: 'OK', + }); + + return of(response); + } + + // For other status codes, + // throw an error response + response = new HttpErrorResponse({ + error : data.body.error, + status : data.status, + statusText: 'ERROR', + }); + + return throwError(response); + })); +}; diff --git a/src/@fuse/lib/mock-api/mock-api.module.ts b/src/@fuse/lib/mock-api/mock-api.module.ts deleted file mode 100644 index 1450a66a..00000000 --- a/src/@fuse/lib/mock-api/mock-api.module.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core'; -import { HTTP_INTERCEPTORS } from '@angular/common/http'; -import { FUSE_MOCK_API_DEFAULT_DELAY } from '@fuse/lib/mock-api/mock-api.constants'; -import { FuseMockApiInterceptor } from '@fuse/lib/mock-api/mock-api.interceptor'; - -@NgModule({ - providers: [ - { - provide : HTTP_INTERCEPTORS, - useClass: FuseMockApiInterceptor, - multi : true - } - ] -}) -export class FuseMockApiModule -{ - /** - * FuseMockApi module default configuration. - * - * @param mockApiServices - Array of services that register mock API handlers - * @param config - Configuration options - * @param config.delay - Default delay value in milliseconds to apply all responses - */ - static forRoot(mockApiServices: any[], config?: { delay?: number }): ModuleWithProviders - { - return { - ngModule : FuseMockApiModule, - providers: [ - { - provide : APP_INITIALIZER, - deps : [...mockApiServices], - useFactory: () => (): any => null, - multi : true - }, - { - provide : FUSE_MOCK_API_DEFAULT_DELAY, - useValue: config?.delay ?? 0 - } - ] - }; - } -} diff --git a/src/@fuse/lib/mock-api/mock-api.request-handler.ts b/src/@fuse/lib/mock-api/mock-api.request-handler.ts index 668c7b08..239f332f 100644 --- a/src/@fuse/lib/mock-api/mock-api.request-handler.ts +++ b/src/@fuse/lib/mock-api/mock-api.request-handler.ts @@ -1,6 +1,6 @@ import { HttpRequest } from '@angular/common/http'; -import { Observable, of, take, throwError } from 'rxjs'; import { FuseMockApiReplyCallback } from '@fuse/lib/mock-api/mock-api.types'; +import { Observable, of, take, throwError } from 'rxjs'; export class FuseMockApiHandler { @@ -17,7 +17,7 @@ export class FuseMockApiHandler */ constructor( public url: string, - public delay?: number + public delay?: number, ) { } @@ -55,7 +55,7 @@ export class FuseMockApiHandler // Execute the reply callback const replyResult = this._reply({ request : this.request, - urlParams: this.urlParams + urlParams: this.urlParams, }); // If the result of the reply callback is an observable... diff --git a/src/@fuse/lib/mock-api/mock-api.service.ts b/src/@fuse/lib/mock-api/mock-api.service.ts index 30a06524..eee5210f 100644 --- a/src/@fuse/lib/mock-api/mock-api.service.ts +++ b/src/@fuse/lib/mock-api/mock-api.service.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { compact, fromPairs } from 'lodash-es'; import { FuseMockApiHandler } from '@fuse/lib/mock-api/mock-api.request-handler'; import { FuseMockApiMethods } from '@fuse/lib/mock-api/mock-api.types'; +import { compact, fromPairs } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class FuseMockApiService { private _handlers: { [key: string]: Map } = { @@ -16,7 +14,7 @@ export class FuseMockApiService 'put' : new Map(), 'head' : new Map(), 'jsonp' : new Map(), - 'options': new Map() + 'options': new Map(), }; /** @@ -42,7 +40,7 @@ export class FuseMockApiService // Prepare the return object const matchingHandler: { handler: FuseMockApiHandler | undefined; urlParams: { [key: string]: string } } = { handler : undefined, - urlParams: {} + urlParams: {}, }; // Split the url @@ -52,8 +50,8 @@ export class FuseMockApiService const handlers = this._handlers[method.toLowerCase()]; // Iterate through the handlers - handlers.forEach((handler, handlerUrl) => { - + handlers.forEach((handler, handlerUrl) => + { // Skip if there is already a matching handler if ( matchingHandler.handler ) { @@ -80,7 +78,7 @@ export class FuseMockApiService // Extract and assign the parameters matchingHandler.urlParams = fromPairs(compact(handlerUrlParts.map((handlerUrlPart, index) => - handlerUrlPart.startsWith(':') ? [handlerUrlPart.substring(1), urlParts[index]] : undefined + handlerUrlPart.startsWith(':') ? [handlerUrlPart.substring(1), urlParts[index]] : undefined, ))); } }); diff --git a/src/@fuse/lib/mock-api/mock-api.utils.ts b/src/@fuse/lib/mock-api/mock-api.utils.ts index 91af6a8f..ba3c5b81 100644 --- a/src/@fuse/lib/mock-api/mock-api.utils.ts +++ b/src/@fuse/lib/mock-api/mock-api.utils.ts @@ -26,7 +26,8 @@ export class FuseMockApiUtils d += performance.now(); } - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => + { const r = (d + Math.random() * 16) % 16 | 0; d = Math.floor(d / 16); return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16); diff --git a/src/@fuse/lib/mock-api/public-api.ts b/src/@fuse/lib/mock-api/public-api.ts index 77e23456..4fc941dc 100644 --- a/src/@fuse/lib/mock-api/public-api.ts +++ b/src/@fuse/lib/mock-api/public-api.ts @@ -1,5 +1,5 @@ export * from '@fuse/lib/mock-api/mock-api.constants'; -export * from '@fuse/lib/mock-api/mock-api.module'; +export * from '@fuse/lib/mock-api/mock-api.interceptor'; export * from '@fuse/lib/mock-api/mock-api.service'; export * from '@fuse/lib/mock-api/mock-api.types'; export * from '@fuse/lib/mock-api/mock-api.utils'; diff --git a/src/@fuse/pipes/find-by-key/find-by-key.module.ts b/src/@fuse/pipes/find-by-key/find-by-key.module.ts deleted file mode 100644 index ead34778..00000000 --- a/src/@fuse/pipes/find-by-key/find-by-key.module.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { NgModule } from '@angular/core'; -import { FuseFindByKeyPipe } from '@fuse/pipes/find-by-key/find-by-key.pipe'; - -@NgModule({ - declarations: [ - FuseFindByKeyPipe - ], - exports : [ - FuseFindByKeyPipe - ] -}) -export class FuseFindByKeyPipeModule -{ -} diff --git a/src/@fuse/pipes/find-by-key/find-by-key.pipe.ts b/src/@fuse/pipes/find-by-key/find-by-key.pipe.ts index ef56d410..4a7a9a9d 100644 --- a/src/@fuse/pipes/find-by-key/find-by-key.pipe.ts +++ b/src/@fuse/pipes/find-by-key/find-by-key.pipe.ts @@ -4,8 +4,9 @@ import { Pipe, PipeTransform } from '@angular/core'; * Finds an object from given source using the given key - value pairs */ @Pipe({ - name: 'fuseFindByKey', - pure: false + name : 'fuseFindByKey', + pure : false, + standalone: true, }) export class FuseFindByKeyPipe implements PipeTransform { diff --git a/src/@fuse/services/config/config.constants.ts b/src/@fuse/services/config/config.constants.ts index ef99d39c..fd82bb02 100644 --- a/src/@fuse/services/config/config.constants.ts +++ b/src/@fuse/services/config/config.constants.ts @@ -1,3 +1,3 @@ import { InjectionToken } from '@angular/core'; -export const FUSE_APP_CONFIG = new InjectionToken('FUSE_APP_CONFIG'); +export const FUSE_CONFIG = new InjectionToken('FUSE_APP_CONFIG'); diff --git a/src/@fuse/services/config/config.module.ts b/src/@fuse/services/config/config.module.ts deleted file mode 100644 index 4416a4ce..00000000 --- a/src/@fuse/services/config/config.module.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { ModuleWithProviders, NgModule } from '@angular/core'; -import { FuseConfigService } from '@fuse/services/config/config.service'; -import { FUSE_APP_CONFIG } from '@fuse/services/config/config.constants'; - -@NgModule() -export class FuseConfigModule -{ - /** - * Constructor - */ - constructor(private _fuseConfigService: FuseConfigService) - { - } - - /** - * forRoot method for setting user configuration - * - * @param config - */ - static forRoot(config: any): ModuleWithProviders - { - return { - ngModule : FuseConfigModule, - providers: [ - { - provide : FUSE_APP_CONFIG, - useValue: config - } - ] - }; - } -} diff --git a/src/@fuse/services/config/config.service.ts b/src/@fuse/services/config/config.service.ts index cfdd2105..b192bd10 100644 --- a/src/@fuse/services/config/config.service.ts +++ b/src/@fuse/services/config/config.service.ts @@ -1,11 +1,9 @@ import { Inject, Injectable } from '@angular/core'; -import { BehaviorSubject, Observable } from 'rxjs'; +import { FUSE_CONFIG } from '@fuse/services/config/config.constants'; import { merge } from 'lodash-es'; -import { FUSE_APP_CONFIG } from '@fuse/services/config/config.constants'; +import { BehaviorSubject, Observable } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class FuseConfigService { private _config: BehaviorSubject; @@ -13,7 +11,7 @@ export class FuseConfigService /** * Constructor */ - constructor(@Inject(FUSE_APP_CONFIG) config: any) + constructor(@Inject(FUSE_CONFIG) config: any) { // Private this._config = new BehaviorSubject(config); diff --git a/src/@fuse/services/config/config.types.ts b/src/@fuse/services/config/config.types.ts new file mode 100644 index 00000000..cf3ce6e7 --- /dev/null +++ b/src/@fuse/services/config/config.types.ts @@ -0,0 +1,18 @@ +// Types +export type Scheme = 'auto' | 'dark' | 'light'; +export type Screens = { [key: string]: string }; +export type Theme = 'theme-default' | string; +export type Themes = { id: string; name: string }[]; + +/** + * AppConfig interface. Update this interface to strictly type your config + * object. + */ +export interface FuseConfig +{ + layout: string; + scheme: Scheme; + screens: Screens; + theme: Theme; + themes: Themes; +} diff --git a/src/@fuse/services/config/public-api.ts b/src/@fuse/services/config/public-api.ts index 36df7bdc..cb38bdc7 100644 --- a/src/@fuse/services/config/public-api.ts +++ b/src/@fuse/services/config/public-api.ts @@ -1,2 +1,2 @@ -export * from '@fuse/services/config/config.module'; export * from '@fuse/services/config/config.service'; +export * from '@fuse/services/config/config.types'; diff --git a/src/@fuse/services/confirmation/confirmation.module.ts b/src/@fuse/services/confirmation/confirmation.module.ts deleted file mode 100644 index ce143296..00000000 --- a/src/@fuse/services/confirmation/confirmation.module.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { NgModule } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { MatDialogModule } from '@angular/material/dialog'; -import { MatIconModule } from '@angular/material/icon'; -import { FuseConfirmationService } from '@fuse/services/confirmation/confirmation.service'; -import { FuseConfirmationDialogComponent } from '@fuse/services/confirmation/dialog/dialog.component'; -import { CommonModule } from '@angular/common'; - -@NgModule({ - declarations: [ - FuseConfirmationDialogComponent - ], - imports : [ - MatButtonModule, - MatDialogModule, - MatIconModule, - CommonModule - ], - providers : [ - FuseConfirmationService - ] -}) -export class FuseConfirmationModule -{ - /** - * Constructor - */ - constructor(private _fuseConfirmationService: FuseConfirmationService) - { - } -} diff --git a/src/@fuse/services/confirmation/confirmation.service.ts b/src/@fuse/services/confirmation/confirmation.service.ts index b22ccae5..080c789d 100644 --- a/src/@fuse/services/confirmation/confirmation.service.ts +++ b/src/@fuse/services/confirmation/confirmation.service.ts @@ -1,40 +1,39 @@ -import { Injectable } from '@angular/core'; +import { inject, Injectable } from '@angular/core'; import { MatDialog, MatDialogRef } from '@angular/material/dialog'; -import { merge } from 'lodash-es'; -import { FuseConfirmationDialogComponent } from '@fuse/services/confirmation/dialog/dialog.component'; import { FuseConfirmationConfig } from '@fuse/services/confirmation/confirmation.types'; +import { FuseConfirmationDialogComponent } from '@fuse/services/confirmation/dialog/dialog.component'; +import { merge } from 'lodash-es'; -@Injectable() +@Injectable({providedIn: 'root'}) export class FuseConfirmationService { + private _matDialog: MatDialog = inject(MatDialog); private _defaultConfig: FuseConfirmationConfig = { title : 'Confirm action', message : 'Are you sure you want to confirm this action?', icon : { show : true, - name : 'heroicons_outline:exclamation', - color: 'warn' + name : 'heroicons_outline:exclamation-triangle', + color: 'warn', }, actions : { confirm: { show : true, label: 'Confirm', - color: 'warn' + color: 'warn', }, cancel : { show : true, - label: 'Cancel' - } + label: 'Cancel', + }, }, - dismissible: false + dismissible: false, }; /** * Constructor */ - constructor( - private _matDialog: MatDialog - ) + constructor() { } @@ -52,7 +51,7 @@ export class FuseConfirmationService autoFocus : false, disableClose: !userConfig.dismissible, data : userConfig, - panelClass : 'fuse-confirmation-dialog-panel' + panelClass : 'fuse-confirmation-dialog-panel', }); } } diff --git a/src/@fuse/services/confirmation/dialog/dialog.component.html b/src/@fuse/services/confirmation/dialog/dialog.component.html index 1d15451d..aaa08a18 100644 --- a/src/@fuse/services/confirmation/dialog/dialog.component.html +++ b/src/@fuse/services/confirmation/dialog/dialog.component.html @@ -8,7 +8,7 @@ [matDialogClose]="undefined"> + [svgIcon]="'heroicons_outline:x-mark'"> diff --git a/src/@fuse/services/confirmation/dialog/dialog.component.ts b/src/@fuse/services/confirmation/dialog/dialog.component.ts index d429a098..995da16b 100644 --- a/src/@fuse/services/confirmation/dialog/dialog.component.ts +++ b/src/@fuse/services/confirmation/dialog/dialog.component.ts @@ -1,5 +1,8 @@ +import { NgClass, NgIf } from '@angular/common'; import { Component, Inject, ViewEncapsulation } from '@angular/core'; -import { MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { MatButtonModule } from '@angular/material/button'; +import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog'; +import { MatIconModule } from '@angular/material/icon'; import { FuseConfirmationConfig } from '@fuse/services/confirmation/confirmation.types'; @Component({ @@ -20,9 +23,11 @@ import { FuseConfirmationConfig } from '@fuse/services/confirmation/confirmation } } } - ` + `, ], - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [NgIf, MatButtonModule, MatDialogModule, MatIconModule, NgClass], }) export class FuseConfirmationDialogComponent { diff --git a/src/@fuse/services/confirmation/public-api.ts b/src/@fuse/services/confirmation/public-api.ts index 815db9fd..91367332 100644 --- a/src/@fuse/services/confirmation/public-api.ts +++ b/src/@fuse/services/confirmation/public-api.ts @@ -1,3 +1,2 @@ -export * from '@fuse/services/confirmation/confirmation.module'; export * from '@fuse/services/confirmation/confirmation.service'; export * from '@fuse/services/confirmation/confirmation.types'; diff --git a/src/@fuse/services/loading/loading.interceptor.ts b/src/@fuse/services/loading/loading.interceptor.ts index 886243f2..9dbd7c8e 100644 --- a/src/@fuse/services/loading/loading.interceptor.ts +++ b/src/@fuse/services/loading/loading.interceptor.ts @@ -1,48 +1,33 @@ -import { Injectable } from '@angular/core'; -import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http'; -import { finalize, Observable } from 'rxjs'; +import { HttpEvent, HttpHandlerFn, HttpRequest } from '@angular/common/http'; +import { inject } from '@angular/core'; import { FuseLoadingService } from '@fuse/services/loading/loading.service'; +import { finalize, Observable, take } from 'rxjs'; -@Injectable() -export class FuseLoadingInterceptor implements HttpInterceptor +export const fuseLoadingInterceptor = (req: HttpRequest, next: HttpHandlerFn): Observable> => { - handleRequestsAutomatically: boolean; + const fuseLoadingService = inject(FuseLoadingService); + let handleRequestsAutomatically = false; - /** - * Constructor - */ - constructor( - private _fuseLoadingService: FuseLoadingService - ) - { - // Subscribe to the auto - this._fuseLoadingService.auto$ - .subscribe((value) => { - this.handleRequestsAutomatically = value; - }); - } - - /** - * Intercept - * - * @param req - * @param next - */ - intercept(req: HttpRequest, next: HttpHandler): Observable> - { - // If the Auto mode is turned off, do nothing - if ( !this.handleRequestsAutomatically ) + fuseLoadingService.auto$ + .pipe(take(1)) + .subscribe((value) => { - return next.handle(req); - } + handleRequestsAutomatically = value; + }); - // Set the loading status to true - this._fuseLoadingService._setLoadingStatus(true, req.url); - - return next.handle(req).pipe( - finalize(() => { - // Set the status to false if there are any errors or the request is completed - this._fuseLoadingService._setLoadingStatus(false, req.url); - })); + // If the Auto mode is turned off, do nothing + if ( !handleRequestsAutomatically ) + { + return next(req); } -} + + // Set the loading status to true + fuseLoadingService._setLoadingStatus(true, req.url); + + return next(req).pipe( + finalize(() => + { + // Set the status to false if there are any errors or the request is completed + fuseLoadingService._setLoadingStatus(false, req.url); + })); +}; diff --git a/src/@fuse/services/loading/loading.module.ts b/src/@fuse/services/loading/loading.module.ts deleted file mode 100644 index 778ddfd3..00000000 --- a/src/@fuse/services/loading/loading.module.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { NgModule } from '@angular/core'; -import { HTTP_INTERCEPTORS } from '@angular/common/http'; -import { FuseLoadingInterceptor } from '@fuse/services/loading/loading.interceptor'; - -@NgModule({ - providers: [ - { - provide : HTTP_INTERCEPTORS, - useClass: FuseLoadingInterceptor, - multi : true - } - ] -}) -export class FuseLoadingModule -{ -} diff --git a/src/@fuse/services/loading/loading.service.ts b/src/@fuse/services/loading/loading.service.ts index 84049f22..d761714e 100644 --- a/src/@fuse/services/loading/loading.service.ts +++ b/src/@fuse/services/loading/loading.service.ts @@ -1,10 +1,8 @@ -import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; import { BehaviorSubject, Observable } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class FuseLoadingService { private _auto$: BehaviorSubject = new BehaviorSubject(true); diff --git a/src/@fuse/services/loading/public-api.ts b/src/@fuse/services/loading/public-api.ts index c52faedd..a1477621 100644 --- a/src/@fuse/services/loading/public-api.ts +++ b/src/@fuse/services/loading/public-api.ts @@ -1,2 +1,2 @@ export * from '@fuse/services/loading/loading.service'; -export * from '@fuse/services/loading/loading.module'; +export * from '@fuse/services/loading/loading.interceptor'; diff --git a/src/@fuse/services/media-watcher/media-watcher.module.ts b/src/@fuse/services/media-watcher/media-watcher.module.ts deleted file mode 100644 index 3e5133e0..00000000 --- a/src/@fuse/services/media-watcher/media-watcher.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NgModule } from '@angular/core'; -import { FuseMediaWatcherService } from '@fuse/services/media-watcher/media-watcher.service'; - -@NgModule({ - providers: [ - FuseMediaWatcherService - ] -}) -export class FuseMediaWatcherModule -{ - /** - * Constructor - */ - constructor(private _fuseMediaWatcherService: FuseMediaWatcherService) - { - } -} diff --git a/src/@fuse/services/media-watcher/media-watcher.service.ts b/src/@fuse/services/media-watcher/media-watcher.service.ts index 2066f065..bf4d91fe 100644 --- a/src/@fuse/services/media-watcher/media-watcher.service.ts +++ b/src/@fuse/services/media-watcher/media-watcher.service.ts @@ -1,10 +1,10 @@ -import { Injectable } from '@angular/core'; import { BreakpointObserver, BreakpointState } from '@angular/cdk/layout'; -import { map, Observable, ReplaySubject, switchMap } from 'rxjs'; -import { fromPairs } from 'lodash-es'; +import { Injectable } from '@angular/core'; import { FuseConfigService } from '@fuse/services/config'; +import { fromPairs } from 'lodash-es'; +import { map, Observable, ReplaySubject, switchMap } from 'rxjs'; -@Injectable() +@Injectable({providedIn: 'root'}) export class FuseMediaWatcherService { private _onMediaChange: ReplaySubject<{ matchingAliases: string[]; matchingQueries: any }> = new ReplaySubject<{ matchingAliases: string[]; matchingQueries: any }>(1); @@ -14,14 +14,14 @@ export class FuseMediaWatcherService */ constructor( private _breakpointObserver: BreakpointObserver, - private _fuseConfigService: FuseConfigService + private _fuseConfigService: FuseConfigService, ) { this._fuseConfigService.config$.pipe( map(config => fromPairs(Object.entries(config.screens).map(([alias, screen]) => ([alias, `(min-width: ${screen})`])))), switchMap(screens => this._breakpointObserver.observe(Object.values(screens)).pipe( - map((state) => { - + map((state) => + { // Prepare the observable values and set their defaults const matchingAliases: string[] = []; const matchingQueries: any = {}; @@ -44,10 +44,10 @@ export class FuseMediaWatcherService // Execute the observable this._onMediaChange.next({ matchingAliases, - matchingQueries + matchingQueries, }); - }) - )) + }), + )), ).subscribe(); } diff --git a/src/@fuse/services/media-watcher/public-api.ts b/src/@fuse/services/media-watcher/public-api.ts index fd5905d7..88a928b2 100644 --- a/src/@fuse/services/media-watcher/public-api.ts +++ b/src/@fuse/services/media-watcher/public-api.ts @@ -1,2 +1 @@ -export * from '@fuse/services/media-watcher/media-watcher.module'; export * from '@fuse/services/media-watcher/media-watcher.service'; diff --git a/src/@fuse/services/platform/platform.module.ts b/src/@fuse/services/platform/platform.module.ts deleted file mode 100644 index ae3d0f54..00000000 --- a/src/@fuse/services/platform/platform.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NgModule } from '@angular/core'; -import { FusePlatformService } from '@fuse/services/platform/platform.service'; - -@NgModule({ - providers: [ - FusePlatformService - ] -}) -export class FusePlatformModule -{ - /** - * Constructor - */ - constructor(private _fusePlatformService: FusePlatformService) - { - } -} diff --git a/src/@fuse/services/platform/platform.service.ts b/src/@fuse/services/platform/platform.service.ts index 9c350eb7..1553c99d 100644 --- a/src/@fuse/services/platform/platform.service.ts +++ b/src/@fuse/services/platform/platform.service.ts @@ -1,9 +1,7 @@ -import { Injectable } from '@angular/core'; import { Platform } from '@angular/cdk/platform'; +import { Injectable } from '@angular/core'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class FusePlatformService { osName = 'os-unknown'; diff --git a/src/@fuse/services/splash-screen/public-api.ts b/src/@fuse/services/splash-screen/public-api.ts index ab0ada99..195e3023 100644 --- a/src/@fuse/services/splash-screen/public-api.ts +++ b/src/@fuse/services/splash-screen/public-api.ts @@ -1,2 +1 @@ -export * from '@fuse/services/splash-screen/splash-screen.module'; export * from '@fuse/services/splash-screen/splash-screen.service'; diff --git a/src/@fuse/services/splash-screen/splash-screen.module.ts b/src/@fuse/services/splash-screen/splash-screen.module.ts deleted file mode 100644 index 913d595d..00000000 --- a/src/@fuse/services/splash-screen/splash-screen.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NgModule } from '@angular/core'; -import { FuseSplashScreenService } from '@fuse/services/splash-screen/splash-screen.service'; - -@NgModule({ - providers: [ - FuseSplashScreenService - ] -}) -export class FuseSplashScreenModule -{ - /** - * Constructor - */ - constructor(private _fuseSplashScreenService: FuseSplashScreenService) - { - } -} diff --git a/src/@fuse/services/splash-screen/splash-screen.service.ts b/src/@fuse/services/splash-screen/splash-screen.service.ts index 5743f4c5..76f41e58 100644 --- a/src/@fuse/services/splash-screen/splash-screen.service.ts +++ b/src/@fuse/services/splash-screen/splash-screen.service.ts @@ -1,9 +1,9 @@ -import { Inject, Injectable } from '@angular/core'; import { DOCUMENT } from '@angular/common'; +import { Inject, Injectable } from '@angular/core'; import { NavigationEnd, Router } from '@angular/router'; import { filter, take } from 'rxjs'; -@Injectable() +@Injectable({providedIn: 'root'}) export class FuseSplashScreenService { /** @@ -11,16 +11,17 @@ export class FuseSplashScreenService */ constructor( @Inject(DOCUMENT) private _document: any, - private _router: Router + private _router: Router, ) { // Hide it on the first NavigationEnd event this._router.events .pipe( filter(event => event instanceof NavigationEnd), - take(1) + take(1), ) - .subscribe(() => { + .subscribe(() => + { this.hide(); }); } diff --git a/src/@fuse/services/utils/public-api.ts b/src/@fuse/services/utils/public-api.ts index 8d2a55bd..60af22f2 100644 --- a/src/@fuse/services/utils/public-api.ts +++ b/src/@fuse/services/utils/public-api.ts @@ -1,2 +1 @@ -export * from '@fuse/services/utils/utils.module'; export * from '@fuse/services/utils/utils.service'; diff --git a/src/@fuse/services/utils/utils.module.ts b/src/@fuse/services/utils/utils.module.ts deleted file mode 100644 index 9f974f33..00000000 --- a/src/@fuse/services/utils/utils.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NgModule } from '@angular/core'; -import { FuseUtilsService } from '@fuse/services/utils/utils.service'; - -@NgModule({ - providers: [ - FuseUtilsService - ] -}) -export class FuseUtilsModule -{ - /** - * Constructor - */ - constructor(private _fuseUtilsService: FuseUtilsService) - { - } -} diff --git a/src/@fuse/services/utils/utils.service.ts b/src/@fuse/services/utils/utils.service.ts index 0c307ee6..815e53c5 100644 --- a/src/@fuse/services/utils/utils.service.ts +++ b/src/@fuse/services/utils/utils.service.ts @@ -1,9 +1,7 @@ import { Injectable } from '@angular/core'; import { IsActiveMatchOptions } from '@angular/router'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class FuseUtilsService { /** @@ -26,7 +24,7 @@ export class FuseUtilsService paths : 'exact', fragment : 'ignored', matrixParams: 'ignored', - queryParams : 'exact' + queryParams : 'exact', }; } @@ -39,7 +37,7 @@ export class FuseUtilsService paths : 'subset', fragment : 'ignored', matrixParams: 'ignored', - queryParams : 'subset' + queryParams : 'subset', }; } diff --git a/src/@fuse/styles/user-themes.scss b/src/@fuse/styles/user-themes.scss index d082ce46..2735bdac 100644 --- a/src/@fuse/styles/user-themes.scss +++ b/src/@fuse/styles/user-themes.scss @@ -1 +1 @@ -$user-themes: (default: (selector: ".theme-default", primary: (50: #eef2ff, 100: #e0e7ff, 200: #c7d2fe, 300: #a5b4fc, 400: #818cf8, 500: #6366f1, 600: #4f46e5, 700: #4338ca, 800: #3730a3, 900: #312e81, DEFAULT: #4f46e5, contrast: (50: #312e81, 100: #312e81, 200: #312e81, 300: #312e81, 400: #312e81, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF)), accent: (50: #f8fafc, 100: #f1f5f9, 200: #e2e8f0, 300: #cbd5e1, 400: #94a3b8, 500: #64748b, 600: #475569, 700: #334155, 800: #1e293b, 900: #0f172a, DEFAULT: #1e293b, contrast: (50: #0f172a, 100: #0f172a, 200: #0f172a, 300: #0f172a, 400: #0f172a, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF)), warn: (50: #fef2f2, 100: #fee2e2, 200: #fecaca, 300: #fca5a5, 400: #f87171, 500: #ef4444, 600: #dc2626, 700: #b91c1c, 800: #991b1b, 900: #7f1d1d, DEFAULT: #dc2626, contrast: (50: #7f1d1d, 100: #7f1d1d, 200: #7f1d1d, 300: #7f1d1d, 400: #7f1d1d, 500: #fef2f2, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF))), brand: (selector: ".theme-brand", primary: (50: #eff5fe, 100: #e2ecfd, 200: #c4dafa, 300: #a1c6f8, 400: #74b0f5, 500: #2196f3, 600: #1e88dc, 700: #1a78c3, 800: #1766a6, 900: #125183, DEFAULT: #2196f3, contrast: (50: #125183, 100: #125183, 200: #125183, 300: #125183, 400: #125183, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF)), accent: (50: #f8fafc, 100: #f1f5f9, 200: #e2e8f0, 300: #cbd5e1, 400: #94a3b8, 500: #64748b, 600: #475569, 700: #334155, 800: #1e293b, 900: #0f172a, DEFAULT: #1e293b, contrast: (50: #0f172a, 100: #0f172a, 200: #0f172a, 300: #0f172a, 400: #0f172a, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF)), warn: (50: #fef2f2, 100: #fee2e2, 200: #fecaca, 300: #fca5a5, 400: #f87171, 500: #ef4444, 600: #dc2626, 700: #b91c1c, 800: #991b1b, 900: #7f1d1d, DEFAULT: #dc2626, contrast: (50: #7f1d1d, 100: #7f1d1d, 200: #7f1d1d, 300: #7f1d1d, 400: #7f1d1d, 500: #fef2f2, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF))), teal: (selector: ".theme-teal", primary: (50: #f0fdfa, 100: #ccfbf1, 200: #99f6e4, 300: #5eead4, 400: #2dd4bf, 500: #14b8a6, 600: #0d9488, 700: #0f766e, 800: #115e59, 900: #134e4a, DEFAULT: #0d9488, contrast: (50: #134e4a, 100: #134e4a, 200: #134e4a, 300: #134e4a, 400: #134e4a, 500: #134e4a, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF)), accent: (50: #f8fafc, 100: #f1f5f9, 200: #e2e8f0, 300: #cbd5e1, 400: #94a3b8, 500: #64748b, 600: #475569, 700: #334155, 800: #1e293b, 900: #0f172a, DEFAULT: #1e293b, contrast: (50: #0f172a, 100: #0f172a, 200: #0f172a, 300: #0f172a, 400: #0f172a, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF)), warn: (50: #fef2f2, 100: #fee2e2, 200: #fecaca, 300: #fca5a5, 400: #f87171, 500: #ef4444, 600: #dc2626, 700: #b91c1c, 800: #991b1b, 900: #7f1d1d, DEFAULT: #dc2626, contrast: (50: #7f1d1d, 100: #7f1d1d, 200: #7f1d1d, 300: #7f1d1d, 400: #7f1d1d, 500: #fef2f2, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF))), rose: (selector: ".theme-rose", primary: (50: #fff1f2, 100: #ffe4e6, 200: #fecdd3, 300: #fda4af, 400: #fb7185, 500: #f43f5e, 600: #e11d48, 700: #be123c, 800: #9f1239, 900: #881337, DEFAULT: #f43f5e, contrast: (50: #881337, 100: #881337, 200: #881337, 300: #881337, 400: #881337, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF)), accent: (50: #f8fafc, 100: #f1f5f9, 200: #e2e8f0, 300: #cbd5e1, 400: #94a3b8, 500: #64748b, 600: #475569, 700: #334155, 800: #1e293b, 900: #0f172a, DEFAULT: #1e293b, contrast: (50: #0f172a, 100: #0f172a, 200: #0f172a, 300: #0f172a, 400: #0f172a, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF)), warn: (50: #fef2f2, 100: #fee2e2, 200: #fecaca, 300: #fca5a5, 400: #f87171, 500: #ef4444, 600: #dc2626, 700: #b91c1c, 800: #991b1b, 900: #7f1d1d, DEFAULT: #dc2626, contrast: (50: #7f1d1d, 100: #7f1d1d, 200: #7f1d1d, 300: #7f1d1d, 400: #7f1d1d, 500: #fef2f2, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF))), purple: (selector: ".theme-purple", primary: (50: #faf5ff, 100: #f3e8ff, 200: #e9d5ff, 300: #d8b4fe, 400: #c084fc, 500: #a855f7, 600: #9333ea, 700: #7e22ce, 800: #6b21a8, 900: #581c87, DEFAULT: #9333ea, contrast: (50: #581c87, 100: #581c87, 200: #581c87, 300: #581c87, 400: #581c87, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF)), accent: (50: #f8fafc, 100: #f1f5f9, 200: #e2e8f0, 300: #cbd5e1, 400: #94a3b8, 500: #64748b, 600: #475569, 700: #334155, 800: #1e293b, 900: #0f172a, DEFAULT: #1e293b, contrast: (50: #0f172a, 100: #0f172a, 200: #0f172a, 300: #0f172a, 400: #0f172a, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF)), warn: (50: #fef2f2, 100: #fee2e2, 200: #fecaca, 300: #fca5a5, 400: #f87171, 500: #ef4444, 600: #dc2626, 700: #b91c1c, 800: #991b1b, 900: #7f1d1d, DEFAULT: #dc2626, contrast: (50: #7f1d1d, 100: #7f1d1d, 200: #7f1d1d, 300: #7f1d1d, 400: #7f1d1d, 500: #fef2f2, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF))), amber: (selector: ".theme-amber", primary: (50: #fffbeb, 100: #fef3c7, 200: #fde68a, 300: #fcd34d, 400: #fbbf24, 500: #f59e0b, 600: #d97706, 700: #b45309, 800: #92400e, 900: #78350f, DEFAULT: #f59e0b, contrast: (50: #78350f, 100: #78350f, 200: #78350f, 300: #78350f, 400: #78350f, 500: #78350f, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #78350f)), accent: (50: #f8fafc, 100: #f1f5f9, 200: #e2e8f0, 300: #cbd5e1, 400: #94a3b8, 500: #64748b, 600: #475569, 700: #334155, 800: #1e293b, 900: #0f172a, DEFAULT: #1e293b, contrast: (50: #0f172a, 100: #0f172a, 200: #0f172a, 300: #0f172a, 400: #0f172a, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF)), warn: (50: #fef2f2, 100: #fee2e2, 200: #fecaca, 300: #fca5a5, 400: #f87171, 500: #ef4444, 600: #dc2626, 700: #b91c1c, 800: #991b1b, 900: #7f1d1d, DEFAULT: #dc2626, contrast: (50: #7f1d1d, 100: #7f1d1d, 200: #7f1d1d, 300: #7f1d1d, 400: #7f1d1d, 500: #fef2f2, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF)))); \ No newline at end of file +$user-themes: (default: (selector: ".theme-default", primary: (50: #eef2ff, 100: #e0e7ff, 200: #c7d2fe, 300: #a5b4fc, 400: #818cf8, 500: #6366f1, 600: #4f46e5, 700: #4338ca, 800: #3730a3, 900: #312e81, 950: #1e1b4b, DEFAULT: #4f46e5, contrast: (50: #1e1b4b, 100: #1e1b4b, 200: #1e1b4b, 300: #1e1b4b, 400: #1e1b4b, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #FFFFFF)), accent: (50: #f8fafc, 100: #f1f5f9, 200: #e2e8f0, 300: #cbd5e1, 400: #94a3b8, 500: #64748b, 600: #475569, 700: #334155, 800: #1e293b, 900: #0f172a, 950: #020617, DEFAULT: #1e293b, contrast: (50: #020617, 100: #020617, 200: #020617, 300: #020617, 400: #020617, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #FFFFFF)), warn: (50: #fef2f2, 100: #fee2e2, 200: #fecaca, 300: #fca5a5, 400: #f87171, 500: #ef4444, 600: #dc2626, 700: #b91c1c, 800: #991b1b, 900: #7f1d1d, 950: #450a0a, DEFAULT: #dc2626, contrast: (50: #450a0a, 100: #450a0a, 200: #450a0a, 300: #450a0a, 400: #450a0a, 500: #fef2f2, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #FFFFFF))), brand: (selector: ".theme-brand", primary: (50: #eff5fe, 100: #e2ecfd, 200: #c4dafa, 300: #a1c6f8, 400: #74b0f5, 500: #2196f3, 600: #1e88dc, 700: #1a78c3, 800: #1766a6, 900: #125183, DEFAULT: #2196f3, contrast: (50: #125183, 100: #125183, 200: #125183, 300: #125183, 400: #125183, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, DEFAULT: #FFFFFF)), accent: (50: #f8fafc, 100: #f1f5f9, 200: #e2e8f0, 300: #cbd5e1, 400: #94a3b8, 500: #64748b, 600: #475569, 700: #334155, 800: #1e293b, 900: #0f172a, 950: #020617, DEFAULT: #1e293b, contrast: (50: #020617, 100: #020617, 200: #020617, 300: #020617, 400: #020617, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #FFFFFF)), warn: (50: #fef2f2, 100: #fee2e2, 200: #fecaca, 300: #fca5a5, 400: #f87171, 500: #ef4444, 600: #dc2626, 700: #b91c1c, 800: #991b1b, 900: #7f1d1d, 950: #450a0a, DEFAULT: #dc2626, contrast: (50: #450a0a, 100: #450a0a, 200: #450a0a, 300: #450a0a, 400: #450a0a, 500: #fef2f2, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #FFFFFF))), teal: (selector: ".theme-teal", primary: (50: #f0fdfa, 100: #ccfbf1, 200: #99f6e4, 300: #5eead4, 400: #2dd4bf, 500: #14b8a6, 600: #0d9488, 700: #0f766e, 800: #115e59, 900: #134e4a, 950: #042f2e, DEFAULT: #0d9488, contrast: (50: #042f2e, 100: #042f2e, 200: #042f2e, 300: #042f2e, 400: #042f2e, 500: #042f2e, 600: #042f2e, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #042f2e)), accent: (50: #f8fafc, 100: #f1f5f9, 200: #e2e8f0, 300: #cbd5e1, 400: #94a3b8, 500: #64748b, 600: #475569, 700: #334155, 800: #1e293b, 900: #0f172a, 950: #020617, DEFAULT: #1e293b, contrast: (50: #020617, 100: #020617, 200: #020617, 300: #020617, 400: #020617, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #FFFFFF)), warn: (50: #fef2f2, 100: #fee2e2, 200: #fecaca, 300: #fca5a5, 400: #f87171, 500: #ef4444, 600: #dc2626, 700: #b91c1c, 800: #991b1b, 900: #7f1d1d, 950: #450a0a, DEFAULT: #dc2626, contrast: (50: #450a0a, 100: #450a0a, 200: #450a0a, 300: #450a0a, 400: #450a0a, 500: #fef2f2, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #FFFFFF))), rose: (selector: ".theme-rose", primary: (50: #fff1f2, 100: #ffe4e6, 200: #fecdd3, 300: #fda4af, 400: #fb7185, 500: #f43f5e, 600: #e11d48, 700: #be123c, 800: #9f1239, 900: #881337, 950: #4c0519, DEFAULT: #f43f5e, contrast: (50: #4c0519, 100: #4c0519, 200: #4c0519, 300: #4c0519, 400: #4c0519, 500: #4c0519, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #4c0519)), accent: (50: #f8fafc, 100: #f1f5f9, 200: #e2e8f0, 300: #cbd5e1, 400: #94a3b8, 500: #64748b, 600: #475569, 700: #334155, 800: #1e293b, 900: #0f172a, 950: #020617, DEFAULT: #1e293b, contrast: (50: #020617, 100: #020617, 200: #020617, 300: #020617, 400: #020617, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #FFFFFF)), warn: (50: #fef2f2, 100: #fee2e2, 200: #fecaca, 300: #fca5a5, 400: #f87171, 500: #ef4444, 600: #dc2626, 700: #b91c1c, 800: #991b1b, 900: #7f1d1d, 950: #450a0a, DEFAULT: #dc2626, contrast: (50: #450a0a, 100: #450a0a, 200: #450a0a, 300: #450a0a, 400: #450a0a, 500: #fef2f2, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #FFFFFF))), purple: (selector: ".theme-purple", primary: (50: #faf5ff, 100: #f3e8ff, 200: #e9d5ff, 300: #d8b4fe, 400: #c084fc, 500: #a855f7, 600: #9333ea, 700: #7e22ce, 800: #6b21a8, 900: #581c87, 950: #3b0764, DEFAULT: #9333ea, contrast: (50: #3b0764, 100: #3b0764, 200: #3b0764, 300: #3b0764, 400: #3b0764, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #FFFFFF)), accent: (50: #f8fafc, 100: #f1f5f9, 200: #e2e8f0, 300: #cbd5e1, 400: #94a3b8, 500: #64748b, 600: #475569, 700: #334155, 800: #1e293b, 900: #0f172a, 950: #020617, DEFAULT: #1e293b, contrast: (50: #020617, 100: #020617, 200: #020617, 300: #020617, 400: #020617, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #FFFFFF)), warn: (50: #fef2f2, 100: #fee2e2, 200: #fecaca, 300: #fca5a5, 400: #f87171, 500: #ef4444, 600: #dc2626, 700: #b91c1c, 800: #991b1b, 900: #7f1d1d, 950: #450a0a, DEFAULT: #dc2626, contrast: (50: #450a0a, 100: #450a0a, 200: #450a0a, 300: #450a0a, 400: #450a0a, 500: #fef2f2, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #FFFFFF))), amber: (selector: ".theme-amber", primary: (50: #fffbeb, 100: #fef3c7, 200: #fde68a, 300: #fcd34d, 400: #fbbf24, 500: #f59e0b, 600: #d97706, 700: #b45309, 800: #92400e, 900: #78350f, 950: #451a03, DEFAULT: #f59e0b, contrast: (50: #451a03, 100: #451a03, 200: #451a03, 300: #451a03, 400: #451a03, 500: #451a03, 600: #451a03, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #451a03)), accent: (50: #f8fafc, 100: #f1f5f9, 200: #e2e8f0, 300: #cbd5e1, 400: #94a3b8, 500: #64748b, 600: #475569, 700: #334155, 800: #1e293b, 900: #0f172a, 950: #020617, DEFAULT: #1e293b, contrast: (50: #020617, 100: #020617, 200: #020617, 300: #020617, 400: #020617, 500: #FFFFFF, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #FFFFFF)), warn: (50: #fef2f2, 100: #fee2e2, 200: #fecaca, 300: #fca5a5, 400: #f87171, 500: #ef4444, 600: #dc2626, 700: #b91c1c, 800: #991b1b, 900: #7f1d1d, 950: #450a0a, DEFAULT: #dc2626, contrast: (50: #450a0a, 100: #450a0a, 200: #450a0a, 300: #450a0a, 400: #450a0a, 500: #fef2f2, 600: #FFFFFF, 700: #FFFFFF, 800: #FFFFFF, 900: #FFFFFF, 950: #FFFFFF, DEFAULT: #FFFFFF)))); \ No newline at end of file diff --git a/src/@fuse/tailwind/plugins/icon-size.js b/src/@fuse/tailwind/plugins/icon-size.js index 7933b5f1..7c862477 100644 --- a/src/@fuse/tailwind/plugins/icon-size.js +++ b/src/@fuse/tailwind/plugins/icon-size.js @@ -3,7 +3,7 @@ const plugin = require('tailwindcss/plugin'); module.exports = plugin( ({ matchUtilities, - theme + theme, }) => { matchUtilities( @@ -17,12 +17,12 @@ module.exports = plugin( lineHeight: value, [`svg`] : { width : value, - height: value - } - }) + height: value, + }, + }), }, { - values: theme('iconSize') + values: theme('iconSize'), }); }, { @@ -43,8 +43,8 @@ module.exports = plugin( 18 : '4.5rem', 20 : '5rem', 22 : '5.5rem', - 24 : '6rem' - } - } - } + 24 : '6rem', + }, + }, + }, ); diff --git a/src/@fuse/tailwind/plugins/theming.js b/src/@fuse/tailwind/plugins/theming.js index f2d6bf6c..3f2135d4 100644 --- a/src/@fuse/tailwind/plugins/theming.js +++ b/src/@fuse/tailwind/plugins/theming.js @@ -26,9 +26,9 @@ const normalizeTheme = (theme) => paletteName, { ...palette, - DEFAULT: palette['DEFAULT'] || palette[500] - } - ] + DEFAULT: palette['DEFAULT'] || palette[500], + }, + ], )); }; @@ -38,7 +38,7 @@ const normalizeTheme = (theme) => const theming = plugin.withOptions((options) => ({ addComponents, e, - theme + theme, }) => { /** @@ -48,7 +48,7 @@ const theming = plugin.withOptions((options) => ({ */ const userThemes = _.fromPairs(_.map(options.themes, (theme, themeName) => [ themeName, - _.defaults({}, theme, options.themes['default']) + _.defaults({}, theme, options.themes['default']), ])); /** @@ -57,7 +57,7 @@ const theming = plugin.withOptions((options) => ({ */ let themes = _.fromPairs(_.map(userThemes, (theme, themeName) => [ themeName, - normalizeTheme(theme) + normalizeTheme(theme), ])); /** @@ -73,12 +73,12 @@ const theming = plugin.withOptions((options) => ({ ...palette, contrast: _.fromPairs(_.map(generateContrasts(palette), (color, hue) => [ hue, - _.get(userThemes[themeName], [`on-${paletteName}`, hue]) || color - ])) - } + _.get(userThemes[themeName], [`on-${paletteName}`, hue]) || color, + ])), + }, ])), - ['primary', 'accent', 'warn'] - ) + ['primary', 'accent', 'warn'], + ), ])); /** @@ -89,8 +89,8 @@ const theming = plugin.withOptions((options) => ({ themeName, { selector: `".theme-${themeName}"`, - ...theme - } + ...theme, + }, ])); /* Generate the SASS map using the themes object */ @@ -134,15 +134,15 @@ const theming = plugin.withOptions((options) => ({ _.fromPairs(_.flatten(_.map(flattenColorPalette(_.fromPairs(_.flatten(_.map(normalizeTheme(theme), (palette, paletteName) => [ [ e(paletteName), - palette + palette, ], [ `on-${e(paletteName)}`, - _.fromPairs(_.map(generateContrasts(palette), (color, hue) => [hue, _.get(theme, [`on-${paletteName}`, hue]) || color])) - ] - ]) - ))), (value, key) => [[`--fuse-${e(key)}`, value], [`--fuse-${e(key)}-rgb`, chroma(value).rgb().join(',')]]))) - ])) + _.fromPairs(_.map(generateContrasts(palette), (color, hue) => [hue, _.get(theme, [`on-${paletteName}`, hue]) || color])), + ], + ]), + ))), (value, key) => [[`--fuse-${e(key)}`, value], [`--fuse-${e(key)}-rgb`, chroma(value).rgb().join(',')]]))), + ])), ); /** @@ -185,8 +185,8 @@ const theming = plugin.withOptions((options) => ({ /* Generate custom properties from customProps */ ..._.fromPairs(_.flatten(_.map(background, (value, key) => [[`--fuse-${e(key)}`, value], [`--fuse-${e(key)}-rgb`, chroma(value).rgb().join(',')]]))), - ..._.fromPairs(_.flatten(_.map(foreground, (value, key) => [[`--fuse-${e(key)}`, value], [`--fuse-${e(key)}-rgb`, chroma(value).rgb().join(',')]]))) - } + ..._.fromPairs(_.flatten(_.map(foreground, (value, key) => [[`--fuse-${e(key)}`, value], [`--fuse-${e(key)}-rgb`, chroma(value).rgb().join(',')]]))), + }, }; }); @@ -211,8 +211,8 @@ const theming = plugin.withOptions((options) => ({ */ colors: _.fromPairs(_.flatten(_.map(_.keys(flattenColorPalette(normalizeTheme(options.themes.default))), (name) => [ [name, `rgba(var(--fuse-${name}-rgb), )`], - [`on-${name}`, `rgba(var(--fuse-on-${name}-rgb), )`] - ]))) + [`on-${name}`, `rgba(var(--fuse-on-${name}-rgb), )`], + ]))), }, fuse : { customProps: { @@ -223,7 +223,7 @@ const theming = plugin.withOptions((options) => ({ 'bg-default' : colors.slate[100], 'bg-dialog' : '#FFFFFF', 'bg-hover' : chroma(colors.slate[400]).alpha(0.12).css(), - 'bg-status-bar': colors.slate[300] + 'bg-status-bar': colors.slate[300], }, dark : { 'bg-app-bar' : colors.slate[900], @@ -231,8 +231,8 @@ const theming = plugin.withOptions((options) => ({ 'bg-default' : colors.slate[900], 'bg-dialog' : colors.slate[800], 'bg-hover' : 'rgba(255, 255, 255, 0.05)', - 'bg-status-bar': colors.slate[900] - } + 'bg-status-bar': colors.slate[900], + }, }, foreground: { light: { @@ -243,7 +243,7 @@ const theming = plugin.withOptions((options) => ({ 'border' : colors.slate[200], 'divider' : colors.slate[200], 'icon' : colors.slate[500], - 'mat-icon' : colors.slate[500] + 'mat-icon' : colors.slate[500], }, dark : { 'text-default' : '#FFFFFF', @@ -253,14 +253,14 @@ const theming = plugin.withOptions((options) => ({ 'border' : chroma(colors.slate[100]).alpha(0.12).css(), 'divider' : chroma(colors.slate[100]).alpha(0.12).css(), 'icon' : colors.slate[400], - 'mat-icon' : colors.slate[400] - } - } - } - } - } + 'mat-icon' : colors.slate[400], + }, + }, + }, + }, + }, }; - } + }, ); module.exports = theming; diff --git a/src/@fuse/tailwind/plugins/utilities.js b/src/@fuse/tailwind/plugins/utilities.js index 4b1afb9d..e4ef8b40 100644 --- a/src/@fuse/tailwind/plugins/utilities.js +++ b/src/@fuse/tailwind/plugins/utilities.js @@ -1,7 +1,7 @@ const plugin = require('tailwindcss/plugin'); module.exports = plugin(({ - addComponents + addComponents, }) => { /* @@ -13,55 +13,55 @@ module.exports = plugin(({ { '.mat-icon' : { '--tw-text-opacity': '1', - color : 'rgba(var(--fuse-mat-icon-rgb), var(--tw-text-opacity))' + color : 'rgba(var(--fuse-mat-icon-rgb), var(--tw-text-opacity))', }, '.text-default' : { '--tw-text-opacity': '1 !important', - color : 'rgba(var(--fuse-text-default-rgb), var(--tw-text-opacity)) !important' + color : 'rgba(var(--fuse-text-default-rgb), var(--tw-text-opacity)) !important', }, '.text-secondary' : { '--tw-text-opacity': '1 !important', - color : 'rgba(var(--fuse-text-secondary-rgb), var(--tw-text-opacity)) !important' + color : 'rgba(var(--fuse-text-secondary-rgb), var(--tw-text-opacity)) !important', }, '.text-hint' : { '--tw-text-opacity': '1 !important', - color : 'rgba(var(--fuse-text-hint-rgb), var(--tw-text-opacity)) !important' + color : 'rgba(var(--fuse-text-hint-rgb), var(--tw-text-opacity)) !important', }, '.text-disabled' : { '--tw-text-opacity': '1 !important', - color : 'rgba(var(--fuse-text-disabled-rgb), var(--tw-text-opacity)) !important' + color : 'rgba(var(--fuse-text-disabled-rgb), var(--tw-text-opacity)) !important', }, '.divider' : { - color: 'var(--fuse-divider) !important' + color: 'var(--fuse-divider) !important', }, '.bg-card' : { '--tw-bg-opacity': '1 !important', - backgroundColor : 'rgba(var(--fuse-bg-card-rgb), var(--tw-bg-opacity)) !important' + backgroundColor : 'rgba(var(--fuse-bg-card-rgb), var(--tw-bg-opacity)) !important', }, '.bg-default' : { '--tw-bg-opacity': '1 !important', - backgroundColor : 'rgba(var(--fuse-bg-default-rgb), var(--tw-bg-opacity)) !important' + backgroundColor : 'rgba(var(--fuse-bg-default-rgb), var(--tw-bg-opacity)) !important', }, '.bg-dialog' : { '--tw-bg-opacity': '1 !important', - backgroundColor : 'rgba(var(--fuse-bg-dialog-rgb), var(--tw-bg-opacity)) !important' + backgroundColor : 'rgba(var(--fuse-bg-dialog-rgb), var(--tw-bg-opacity)) !important', }, '.ring-bg-default': { '--tw-ring-opacity': '1 !important', - '--tw-ring-color' : 'rgba(var(--fuse-bg-default-rgb), var(--tw-ring-opacity)) !important' + '--tw-ring-color' : 'rgba(var(--fuse-bg-default-rgb), var(--tw-ring-opacity)) !important', }, '.ring-bg-card' : { '--tw-ring-opacity': '1 !important', - '--tw-ring-color' : 'rgba(var(--fuse-bg-card-rgb), var(--tw-ring-opacity)) !important' - } - } + '--tw-ring-color' : 'rgba(var(--fuse-bg-card-rgb), var(--tw-ring-opacity)) !important', + }, + }, ); addComponents( { '.bg-hover': { - backgroundColor: 'var(--fuse-bg-hover) !important' - } - } + backgroundColor: 'var(--fuse-bg-hover) !important', + }, + }, ); }); diff --git a/src/@fuse/tailwind/utils/generate-contrasts.js b/src/@fuse/tailwind/utils/generate-contrasts.js index fd98c3c8..2d7df415 100644 --- a/src/@fuse/tailwind/utils/generate-contrasts.js +++ b/src/@fuse/tailwind/utils/generate-contrasts.js @@ -23,7 +23,7 @@ const generateContrasts = (palette) => // Generate the contrasting colors return _.fromPairs(_.map(palette, ((color, hue) => [ hue, - chroma.contrast(color, darkColor) > chroma.contrast(color, lightColor) ? darkColor : lightColor + chroma.contrast(color, darkColor) > chroma.contrast(color, lightColor) ? darkColor : lightColor, ] ))); }; diff --git a/src/@fuse/tailwind/utils/generate-palette.js b/src/@fuse/tailwind/utils/generate-palette.js index e2a8c90c..8af41002 100644 --- a/src/@fuse/tailwind/utils/generate-palette.js +++ b/src/@fuse/tailwind/utils/generate-palette.js @@ -22,7 +22,7 @@ const generatePalette = (config) => 600: null, 700: null, 800: null, - 900: null + 900: null, }; // If a single color is provided, @@ -58,14 +58,14 @@ const generatePalette = (config) => colors.unshift( chroma.scale(['white', palette[500]]) .domain([0, 1]) - .mode("lrgb") - .colors(50)[1] + .mode('lrgb') + .colors(50)[1], ); colors.push( chroma.scale(['black', palette[500]]) .domain([0, 1]) - .mode("lrgb") - .colors(10)[1] + .mode('lrgb') + .colors(10)[1], ); // Prepare the domains array @@ -74,7 +74,7 @@ const generatePalette = (config) => ...Object.entries(palette) .filter(([key, value]) => value) .map(([key]) => parseInt(key) / 1000), - 1 + 1, ]; // Generate the color scale @@ -93,7 +93,7 @@ const generatePalette = (config) => 600: scale(0.6).hex(), 700: scale(0.7).hex(), 800: scale(0.8).hex(), - 900: scale(0.9).hex() + 900: scale(0.9).hex(), }; }; diff --git a/src/@fuse/tailwind/utils/json-to-sass-map.js b/src/@fuse/tailwind/utils/json-to-sass-map.js index f7f193f7..de88736a 100644 --- a/src/@fuse/tailwind/utils/json-to-sass-map.js +++ b/src/@fuse/tailwind/utils/json-to-sass-map.js @@ -13,13 +13,13 @@ module.exports = (data) => { let scss = ''; - if ( typeof chunk === "object" && !Array.isArray(chunk) ) + if ( typeof chunk === 'object' && !Array.isArray(chunk) ) { _.mapKeys(chunk, (value, key) => { scss += key + ': '; - if ( typeof value === "object" ) + if ( typeof value === 'object' ) { if ( Array.isArray(value) ) { diff --git a/src/@fuse/validators/validators.ts b/src/@fuse/validators/validators.ts index 5fb1f60f..e86182d4 100644 --- a/src/@fuse/validators/validators.ts +++ b/src/@fuse/validators/validators.ts @@ -20,8 +20,8 @@ export class FuseValidators */ static mustMatch(controlPath: string, matchingControlPath: string): ValidatorFn { - return (formGroup: AbstractControl): ValidationErrors | null => { - + return (formGroup: AbstractControl): ValidationErrors | null => + { // Get the control and matching control const control = formGroup.get(controlPath); const matchingControl = formGroup.get(matchingControlPath); diff --git a/src/@fuse/version/fuse-version.ts b/src/@fuse/version/fuse-version.ts index 7fa71a4f..80774733 100644 --- a/src/@fuse/version/fuse-version.ts +++ b/src/@fuse/version/fuse-version.ts @@ -1,3 +1,3 @@ import { Version } from '@fuse/version/version'; -export const FUSE_VERSION = new Version('17.2.0').full; +export const FUSE_VERSION = new Version('18.0.0').full; diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 0103342d..23712759 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,9 +1,12 @@ import { Component } from '@angular/core'; +import { RouterOutlet } from '@angular/router'; @Component({ selector : 'app-root', templateUrl: './app.component.html', - styleUrls : ['./app.component.scss'] + styleUrls : ['./app.component.scss'], + standalone : true, + imports : [RouterOutlet], }) export class AppComponent { diff --git a/src/app/app.config.ts b/src/app/app.config.ts new file mode 100644 index 00000000..46531567 --- /dev/null +++ b/src/app/app.config.ts @@ -0,0 +1,93 @@ +import { provideHttpClient } from '@angular/common/http'; +import { ApplicationConfig } from '@angular/core'; +import { LuxonDateAdapter } from '@angular/material-luxon-adapter'; +import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core'; +import { provideAnimations } from '@angular/platform-browser/animations'; +import { PreloadAllModules, provideRouter, withInMemoryScrolling, withPreloading } from '@angular/router'; +import { provideFuse } from '@fuse'; +import { appRoutes } from 'app/app.routes'; +import { provideAuth } from 'app/core/auth/auth.provider'; +import { provideIcons } from 'app/core/icons/icons.provider'; +import { provideTransloco } from 'app/core/transloco/transloco.provider'; +import { mockApiServices } from 'app/mock-api'; + +export const appConfig: ApplicationConfig = { + providers: [ + provideAnimations(), + provideHttpClient(), + provideRouter(appRoutes, + withPreloading(PreloadAllModules), + withInMemoryScrolling({scrollPositionRestoration: 'enabled'}), + ), + + // Material Date Adapter + { + provide : DateAdapter, + useClass: LuxonDateAdapter, + }, + { + provide : MAT_DATE_FORMATS, + useValue: { + parse : { + dateInput: 'D', + }, + display: { + dateInput : 'DDD', + monthYearLabel : 'LLL yyyy', + dateA11yLabel : 'DD', + monthYearA11yLabel: 'LLLL yyyy', + }, + }, + }, + + // Transloco Config + provideTransloco(), + + // Fuse + provideAuth(), + provideIcons(), + provideFuse({ + mockApi: { + delay : 0, + services: mockApiServices, + }, + fuse : { + layout : 'classy', + scheme : 'light', + screens: { + sm: '600px', + md: '960px', + lg: '1280px', + xl: '1440px', + }, + theme : 'theme-default', + themes : [ + { + id : 'theme-default', + name: 'Default', + }, + { + id : 'theme-brand', + name: 'Brand', + }, + { + id : 'theme-teal', + name: 'Teal', + }, + { + id : 'theme-rose', + name: 'Rose', + }, + { + id : 'theme-purple', + name: 'Purple', + }, + { + id : 'theme-amber', + name: 'Amber', + }, + ], + }, + }), + ], +}; diff --git a/src/app/app.module.ts b/src/app/app.module.ts deleted file mode 100644 index 6f840144..00000000 --- a/src/app/app.module.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { ExtraOptions, PreloadAllModules, RouterModule } from '@angular/router'; -import { FuseModule } from '@fuse'; -import { FuseConfigModule } from '@fuse/services/config'; -import { FuseMockApiModule } from '@fuse/lib/mock-api'; -import { CoreModule } from 'app/core/core.module'; -import { appConfig } from 'app/core/config/app.config'; -import { mockApiServices } from 'app/mock-api'; -import { LayoutModule } from 'app/layout/layout.module'; -import { AppComponent } from 'app/app.component'; -import { appRoutes } from 'app/app.routing'; - -const routerConfig: ExtraOptions = { - preloadingStrategy : PreloadAllModules, - scrollPositionRestoration: 'enabled' -}; - -@NgModule({ - declarations: [ - AppComponent - ], - imports : [ - BrowserModule, - BrowserAnimationsModule, - RouterModule.forRoot(appRoutes, routerConfig), - - // Fuse, FuseConfig & FuseMockAPI - FuseModule, - FuseConfigModule.forRoot(appConfig), - FuseMockApiModule.forRoot(mockApiServices), - - // Core module of your application - CoreModule, - - // Layout module of your application - LayoutModule - ], - bootstrap : [ - AppComponent - ] -}) -export class AppModule -{ -} diff --git a/src/app/app.resolvers.ts b/src/app/app.resolvers.ts index 6da08ee2..7cf8cec8 100644 --- a/src/app/app.resolvers.ts +++ b/src/app/app.resolvers.ts @@ -1,49 +1,25 @@ -import { Injectable } from '@angular/core'; -import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router'; -import { forkJoin, Observable } from 'rxjs'; -import { MessagesService } from 'app/layout/common/messages/messages.service'; +import { inject } from '@angular/core'; import { NavigationService } from 'app/core/navigation/navigation.service'; +import { MessagesService } from 'app/layout/common/messages/messages.service'; import { NotificationsService } from 'app/layout/common/notifications/notifications.service'; import { QuickChatService } from 'app/layout/common/quick-chat/quick-chat.service'; import { ShortcutsService } from 'app/layout/common/shortcuts/shortcuts.service'; +import { forkJoin } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) -export class InitialDataResolver implements Resolve +export const initialDataResolver = () => { - /** - * Constructor - */ - constructor( - private _messagesService: MessagesService, - private _navigationService: NavigationService, - private _notificationsService: NotificationsService, - private _quickChatService: QuickChatService, - private _shortcutsService: ShortcutsService - ) - { - } + const messagesService = inject(MessagesService); + const navigationService = inject(NavigationService); + const notificationsService = inject(NotificationsService); + const quickChatService = inject(QuickChatService); + const shortcutsService = inject(ShortcutsService); - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Use this resolver to resolve initial mock-api for the application - * - * @param route - * @param state - */ - resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable - { - // Fork join multiple API endpoint calls to wait all of them to finish - return forkJoin([ - this._navigationService.get(), - this._messagesService.getAll(), - this._notificationsService.getAll(), - this._quickChatService.getChats(), - this._shortcutsService.getAll() - ]); - } -} + // Fork join multiple API endpoint calls to wait all of them to finish + return forkJoin([ + navigationService.get(), + messagesService.getAll(), + notificationsService.getAll(), + quickChatService.getChats(), + shortcutsService.getAll(), + ]); +}; diff --git a/src/app/app.routing.ts b/src/app/app.routes.ts similarity index 59% rename from src/app/app.routing.ts rename to src/app/app.routes.ts index caef9e16..04bcb300 100644 --- a/src/app/app.routing.ts +++ b/src/app/app.routes.ts @@ -1,8 +1,8 @@ import { Route } from '@angular/router'; +import { initialDataResolver } from 'app/app.resolvers'; import { AuthGuard } from 'app/core/auth/guards/auth.guard'; import { NoAuthGuard } from 'app/core/auth/guards/noAuth.guard'; import { LayoutComponent } from 'app/layout/layout.component'; -import { InitialDataResolver } from 'app/app.resolvers'; // @formatter:off /* eslint-disable max-len */ @@ -29,11 +29,11 @@ export const appRoutes: Route[] = [ layout: 'empty' }, children: [ - {path: 'confirmation-required', loadChildren: () => import('app/modules/auth/confirmation-required/confirmation-required.module').then(m => m.AuthConfirmationRequiredModule)}, - {path: 'forgot-password', loadChildren: () => import('app/modules/auth/forgot-password/forgot-password.module').then(m => m.AuthForgotPasswordModule)}, - {path: 'reset-password', loadChildren: () => import('app/modules/auth/reset-password/reset-password.module').then(m => m.AuthResetPasswordModule)}, - {path: 'sign-in', loadChildren: () => import('app/modules/auth/sign-in/sign-in.module').then(m => m.AuthSignInModule)}, - {path: 'sign-up', loadChildren: () => import('app/modules/auth/sign-up/sign-up.module').then(m => m.AuthSignUpModule)} + {path: 'confirmation-required', loadChildren: () => import('app/modules/auth/confirmation-required/confirmation-required.routes')}, + {path: 'forgot-password', loadChildren: () => import('app/modules/auth/forgot-password/forgot-password.routes')}, + {path: 'reset-password', loadChildren: () => import('app/modules/auth/reset-password/reset-password.routes')}, + {path: 'sign-in', loadChildren: () => import('app/modules/auth/sign-in/sign-in.routes')}, + {path: 'sign-up', loadChildren: () => import('app/modules/auth/sign-up/sign-up.routes')} ] }, @@ -47,8 +47,8 @@ export const appRoutes: Route[] = [ layout: 'empty' }, children: [ - {path: 'sign-out', loadChildren: () => import('app/modules/auth/sign-out/sign-out.module').then(m => m.AuthSignOutModule)}, - {path: 'unlock-session', loadChildren: () => import('app/modules/auth/unlock-session/unlock-session.module').then(m => m.AuthUnlockSessionModule)} + {path: 'sign-out', loadChildren: () => import('app/modules/auth/sign-out/sign-out.routes')}, + {path: 'unlock-session', loadChildren: () => import('app/modules/auth/unlock-session/unlock-session.routes')} ] }, @@ -60,7 +60,7 @@ export const appRoutes: Route[] = [ layout: 'empty' }, children: [ - {path: 'home', loadChildren: () => import('app/modules/landing/home/home.module').then(m => m.LandingHomeModule)}, + {path: 'home', loadChildren: () => import('app/modules/landing/home/home.routes')}, ] }, @@ -71,138 +71,134 @@ export const appRoutes: Route[] = [ canActivateChild: [AuthGuard], component: LayoutComponent, resolve: { - initialData: InitialDataResolver, + initialData: initialDataResolver }, children: [ // Dashboards {path: 'dashboards', children: [ - {path: 'project', loadChildren: () => import('app/modules/admin/dashboards/project/project.module').then(m => m.ProjectModule)}, - {path: 'analytics', loadChildren: () => import('app/modules/admin/dashboards/analytics/analytics.module').then(m => m.AnalyticsModule)}, - {path: 'finance', loadChildren: () => import('app/modules/admin/dashboards/finance/finance.module').then(m => m.FinanceModule)}, - {path: 'crypto', loadChildren: () => import('app/modules/admin/dashboards/crypto/crypto.module').then(m => m.CryptoModule)}, + {path: 'project', loadChildren: () => import('app/modules/admin/dashboards/project/project.routes')}, + {path: 'analytics', loadChildren: () => import('app/modules/admin/dashboards/analytics/analytics.routes')}, + {path: 'finance', loadChildren: () => import('app/modules/admin/dashboards/finance/finance.routes')}, + {path: 'crypto', loadChildren: () => import('app/modules/admin/dashboards/crypto/crypto.routes')}, ]}, // Apps {path: 'apps', children: [ - {path: 'academy', loadChildren: () => import('app/modules/admin/apps/academy/academy.module').then(m => m.AcademyModule)}, - {path: 'chat', loadChildren: () => import('app/modules/admin/apps/chat/chat.module').then(m => m.ChatModule)}, - {path: 'contacts', loadChildren: () => import('app/modules/admin/apps/contacts/contacts.module').then(m => m.ContactsModule)}, - {path: 'ecommerce', loadChildren: () => import('app/modules/admin/apps/ecommerce/ecommerce.module').then(m => m.ECommerceModule)}, - {path: 'file-manager', loadChildren: () => import('app/modules/admin/apps/file-manager/file-manager.module').then(m => m.FileManagerModule)}, - {path: 'help-center', loadChildren: () => import('app/modules/admin/apps/help-center/help-center.module').then(m => m.HelpCenterModule)}, - {path: 'mailbox', loadChildren: () => import('app/modules/admin/apps/mailbox/mailbox.module').then(m => m.MailboxModule)}, - {path: 'notes', loadChildren: () => import('app/modules/admin/apps/notes/notes.module').then(m => m.NotesModule)}, - {path: 'scrumboard', loadChildren: () => import('app/modules/admin/apps/scrumboard/scrumboard.module').then(m => m.ScrumboardModule)}, - {path: 'tasks', loadChildren: () => import('app/modules/admin/apps/tasks/tasks.module').then(m => m.TasksModule)}, + {path: 'academy', loadChildren: () => import('app/modules/admin/apps/academy/academy.routes')}, + {path: 'chat', loadChildren: () => import('app/modules/admin/apps/chat/chat.routes')}, + {path: 'contacts', loadChildren: () => import('app/modules/admin/apps/contacts/contacts.routes')}, + {path: 'ecommerce', loadChildren: () => import('app/modules/admin/apps/ecommerce/ecommerce.routes')}, + {path: 'file-manager', loadChildren: () => import('app/modules/admin/apps/file-manager/file-manager.routes')}, + {path: 'help-center', loadChildren: () => import('app/modules/admin/apps/help-center/help-center.routes')}, + {path: 'mailbox', loadChildren: () => import('app/modules/admin/apps/mailbox/mailbox.routes')}, + {path: 'notes', loadChildren: () => import('app/modules/admin/apps/notes/notes.routes')}, + {path: 'scrumboard', loadChildren: () => import('app/modules/admin/apps/scrumboard/scrumboard.routes')}, + {path: 'tasks', loadChildren: () => import('app/modules/admin/apps/tasks/tasks.routes')}, ]}, // Pages {path: 'pages', children: [ // Activities - {path: 'activities', loadChildren: () => import('app/modules/admin/pages/activities/activities.module').then(m => m.ActivitiesModule)}, + {path: 'activities', loadChildren: () => import('app/modules/admin/pages/activities/activities.routes')}, // Authentication - {path: 'authentication', loadChildren: () => import('app/modules/admin/pages/authentication/authentication.module').then(m => m.AuthenticationModule)}, + {path: 'authentication', loadChildren: () => import('app/modules/admin/pages/authentication/authentication.routes')}, // Coming Soon - {path: 'coming-soon', loadChildren: () => import('app/modules/admin/pages/coming-soon/coming-soon.module').then(m => m.ComingSoonModule)}, + {path: 'coming-soon', loadChildren: () => import('app/modules/admin/pages/coming-soon/coming-soon.routes')}, // Error {path: 'error', children: [ - {path: '404', loadChildren: () => import('app/modules/admin/pages/error/error-404/error-404.module').then(m => m.Error404Module)}, - {path: '500', loadChildren: () => import('app/modules/admin/pages/error/error-500/error-500.module').then(m => m.Error500Module)} + {path: '404', loadChildren: () => import('app/modules/admin/pages/error/error-404/error-404.routes')}, + {path: '500', loadChildren: () => import('app/modules/admin/pages/error/error-500/error-500.routes')} ]}, // Invoice {path: 'invoice', children: [ {path: 'printable', children: [ - {path: 'compact', loadChildren: () => import('app/modules/admin/pages/invoice/printable/compact/compact.module').then(m => m.CompactModule)}, - {path: 'modern', loadChildren: () => import('app/modules/admin/pages/invoice/printable/modern/modern.module').then(m => m.ModernModule)} + {path: 'compact', loadChildren: () => import('app/modules/admin/pages/invoice/printable/compact/compact.routes')}, + {path: 'modern', loadChildren: () => import('app/modules/admin/pages/invoice/printable/modern/modern.routes')} ]} ]}, // Maintenance - {path: 'maintenance', loadChildren: () => import('app/modules/admin/pages/maintenance/maintenance.module').then(m => m.MaintenanceModule)}, + {path: 'maintenance', loadChildren: () => import('app/modules/admin/pages/maintenance/maintenance.routes')}, // Pricing {path: 'pricing', children: [ - {path: 'modern', loadChildren: () => import('app/modules/admin/pages/pricing/modern/modern.module').then(m => m.PricingModernModule)}, - {path: 'simple', loadChildren: () => import('app/modules/admin/pages/pricing/simple/simple.module').then(m => m.PricingSimpleModule)}, - {path: 'single', loadChildren: () => import('app/modules/admin/pages/pricing/single/single.module').then(m => m.PricingSingleModule)}, - {path: 'table', loadChildren: () => import('app/modules/admin/pages/pricing/table/table.module').then(m => m.PricingTableModule)} + {path: 'modern', loadChildren: () => import('app/modules/admin/pages/pricing/modern/modern.routes')}, + {path: 'simple', loadChildren: () => import('app/modules/admin/pages/pricing/simple/simple.routes')}, + {path: 'single', loadChildren: () => import('app/modules/admin/pages/pricing/single/single.routes')}, + {path: 'table', loadChildren: () => import('app/modules/admin/pages/pricing/table/table.routes')} ]}, // Profile - {path: 'profile', loadChildren: () => import('app/modules/admin/pages/profile/profile.module').then(m => m.ProfileModule)}, + {path: 'profile', loadChildren: () => import('app/modules/admin/pages/profile/profile.routes')}, // Settings - {path: 'settings', loadChildren: () => import('app/modules/admin/pages/settings/settings.module').then(m => m.SettingsModule)}, + {path: 'settings', loadChildren: () => import('app/modules/admin/pages/settings/settings.routes')}, ]}, // User Interface {path: 'ui', children: [ // Material Components - {path: 'material-components', loadChildren: () => import('app/modules/admin/ui/material-components/material-components.module').then(m => m.MaterialComponentsModule)}, + {path: 'material-components', loadChildren: () => import('app/modules/admin/ui/material-components/material-components.routes')}, // Fuse Components - {path: 'fuse-components', loadChildren: () => import('app/modules/admin/ui/fuse-components/fuse-components.module').then(m => m.FuseComponentsModule)}, + {path: 'fuse-components', loadChildren: () => import('app/modules/admin/ui/fuse-components/fuse-components.routes')}, // Other Components - {path: 'other-components', loadChildren: () => import('app/modules/admin/ui/other-components/other-components.module').then(m => m.OtherComponentsModule)}, + {path: 'other-components', loadChildren: () => import('app/modules/admin/ui/other-components/other-components.routes')}, // TailwindCSS - {path: 'tailwindcss', loadChildren: () => import('app/modules/admin/ui/tailwindcss/tailwindcss.module').then(m => m.TailwindCSSModule)}, + {path: 'tailwindcss', loadChildren: () => import('app/modules/admin/ui/tailwindcss/tailwindcss.routes')}, // Advanced Search - {path: 'advanced-search', loadChildren: () => import('app/modules/admin/ui/advanced-search/advanced-search.module').then(m => m.AdvancedSearchModule)}, + {path: 'advanced-search', loadChildren: () => import('app/modules/admin/ui/advanced-search/advanced-search.routes')}, // Animations - {path: 'animations', loadChildren: () => import('app/modules/admin/ui/animations/animations.module').then(m => m.AnimationsModule)}, + {path: 'animations', loadChildren: () => import('app/modules/admin/ui/animations/animations.routes')}, // Cards - {path: 'cards', loadChildren: () => import('app/modules/admin/ui/cards/cards.module').then(m => m.CardsModule)}, + {path: 'cards', loadChildren: () => import('app/modules/admin/ui/cards/cards.routes')}, // Colors - {path: 'colors', loadChildren: () => import('app/modules/admin/ui/colors/colors.module').then(m => m.ColorsModule)}, + {path: 'colors', loadChildren: () => import('app/modules/admin/ui/colors/colors.routes')}, // Confirmation Dialog - {path: 'confirmation-dialog', loadChildren: () => import('app/modules/admin/ui/confirmation-dialog/confirmation-dialog.module').then(m => m.ConfirmationDialogModule)}, + {path: 'confirmation-dialog', loadChildren: () => import('app/modules/admin/ui/confirmation-dialog/confirmation-dialog.routes')}, // Datatable - {path: 'datatable', loadChildren: () => import('app/modules/admin/ui/datatable/datatable.module').then(m => m.DatatableModule)}, + {path: 'datatable', loadChildren: () => import('app/modules/admin/ui/datatable/datatable.routes')}, // Forms - {path: 'forms', children: [ - {path: 'fields', loadChildren: () => import('app/modules/admin/ui/forms/fields/fields.module').then(m => m.FormsFieldsModule)}, - {path: 'layouts', loadChildren: () => import('app/modules/admin/ui/forms/layouts/layouts.module').then(m => m.FormsLayoutsModule)}, - {path: 'wizards', loadChildren: () => import('app/modules/admin/ui/forms/wizards/wizards.module').then(m => m.FormsWizardsModule)} - ]}, + {path: 'forms', loadChildren: () => import('app/modules/admin/ui/forms/forms.routes')}, // Icons - {path: 'icons', loadChildren: () => import('app/modules/admin/ui/icons/icons.module').then(m => m.IconsModule)}, + {path: 'icons', loadChildren: () => import('app/modules/admin/ui/icons/icons.routes')}, // Page Layouts - {path: 'page-layouts', loadChildren: () => import('app/modules/admin/ui/page-layouts/page-layouts.module').then(m => m.PageLayoutsModule)}, + {path: 'page-layouts', loadChildren: () => import('app/modules/admin/ui/page-layouts/page-layouts.routes')}, // Typography - {path: 'typography', loadChildren: () => import('app/modules/admin/ui/typography/typography.module').then(m => m.TypographyModule)} + {path: 'typography', loadChildren: () => import('app/modules/admin/ui/typography/typography.routes')} ]}, // Documentation {path: 'docs', children: [ // Changelog - {path: 'changelog', loadChildren: () => import('app/modules/admin/docs/changelog/changelog.module').then(m => m.ChangelogModule)}, + {path: 'changelog', loadChildren: () => import('app/modules/admin/docs/changelog/changelog.routes')}, // Guides - {path: 'guides', loadChildren: () => import('app/modules/admin/docs/guides/guides.module').then(m => m.GuidesModule)} + {path: 'guides', loadChildren: () => import('app/modules/admin/docs/guides/guides.routes')} ]}, // 404 & Catch all - {path: '404-not-found', pathMatch: 'full', loadChildren: () => import('app/modules/admin/pages/error/error-404/error-404.module').then(m => m.Error404Module)}, + {path: '404-not-found', pathMatch: 'full', loadChildren: () => import('app/modules/admin/pages/error/error-404/error-404.routes')}, {path: '**', redirectTo: '404-not-found'} ] } diff --git a/src/app/core/auth/auth.interceptor.ts b/src/app/core/auth/auth.interceptor.ts index ae99e96a..5140c08b 100644 --- a/src/app/core/auth/auth.interceptor.ts +++ b/src/app/core/auth/auth.interceptor.ts @@ -1,61 +1,52 @@ -import { Injectable } from '@angular/core'; -import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http'; -import { catchError, Observable, throwError } from 'rxjs'; +import { HttpErrorResponse, HttpEvent, HttpHandlerFn, HttpRequest } from '@angular/common/http'; +import { inject } from '@angular/core'; import { AuthService } from 'app/core/auth/auth.service'; import { AuthUtils } from 'app/core/auth/auth.utils'; +import { catchError, Observable, throwError } from 'rxjs'; -@Injectable() -export class AuthInterceptor implements HttpInterceptor +/** + * Intercept + * + * @param req + * @param next + */ +export const authInterceptor = (req: HttpRequest, next: HttpHandlerFn): Observable> => { - /** - * Constructor - */ - constructor(private _authService: AuthService) + const authService = inject(AuthService); + + // Clone the request object + let newReq = req.clone(); + + // Request + // + // If the access token didn't expire, add the Authorization header. + // We won't add the Authorization header if the access token expired. + // This will force the server to return a "401 Unauthorized" response + // for the protected API routes which our response interceptor will + // catch and delete the access token from the local storage while logging + // the user out from the app. + if ( authService.accessToken && !AuthUtils.isTokenExpired(authService.accessToken) ) { + newReq = req.clone({ + headers: req.headers.set('Authorization', 'Bearer ' + authService.accessToken), + }); } - /** - * Intercept - * - * @param req - * @param next - */ - intercept(req: HttpRequest, next: HttpHandler): Observable> - { - // Clone the request object - let newReq = req.clone(); - - // Request - // - // If the access token didn't expire, add the Authorization header. - // We won't add the Authorization header if the access token expired. - // This will force the server to return a "401 Unauthorized" response - // for the protected API routes which our response interceptor will - // catch and delete the access token from the local storage while logging - // the user out from the app. - if ( this._authService.accessToken && !AuthUtils.isTokenExpired(this._authService.accessToken) ) + // Response + return next(newReq).pipe( + catchError((error) => { - newReq = req.clone({ - headers: req.headers.set('Authorization', 'Bearer ' + this._authService.accessToken) - }); - } + // Catch "401 Unauthorized" responses + if ( error instanceof HttpErrorResponse && error.status === 401 ) + { + // Sign out + authService.signOut(); - // Response - return next.handle(newReq).pipe( - catchError((error) => { + // Reload the app + location.reload(); + } - // Catch "401 Unauthorized" responses - if ( error instanceof HttpErrorResponse && error.status === 401 ) - { - // Sign out - this._authService.signOut(); - - // Reload the app - location.reload(); - } - - return throwError(error); - }) - ); - } -} + return throwError(error); + }), + ); +}; diff --git a/src/app/core/auth/auth.module.ts b/src/app/core/auth/auth.module.ts deleted file mode 100644 index 0ff1f2ad..00000000 --- a/src/app/core/auth/auth.module.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { NgModule } from '@angular/core'; -import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'; -import { AuthService } from 'app/core/auth/auth.service'; -import { AuthInterceptor } from 'app/core/auth/auth.interceptor'; - -@NgModule({ - imports : [ - HttpClientModule - ], - providers: [ - AuthService, - { - provide : HTTP_INTERCEPTORS, - useClass: AuthInterceptor, - multi : true - } - ] -}) -export class AuthModule -{ -} diff --git a/src/app/core/auth/auth.provider.ts b/src/app/core/auth/auth.provider.ts new file mode 100644 index 00000000..cc062a7a --- /dev/null +++ b/src/app/core/auth/auth.provider.ts @@ -0,0 +1,16 @@ +import { provideHttpClient, withInterceptors } from '@angular/common/http'; +import { ENVIRONMENT_INITIALIZER, EnvironmentProviders, inject, Provider } from '@angular/core'; +import { authInterceptor } from 'app/core/auth/auth.interceptor'; +import { AuthService } from 'app/core/auth/auth.service'; + +export const provideAuth = (): Array => +{ + return [ + provideHttpClient(withInterceptors([authInterceptor])), + { + provide : ENVIRONMENT_INITIALIZER, + useValue: () => inject(AuthService), + multi : true, + }, + ]; +}; diff --git a/src/app/core/auth/auth.service.ts b/src/app/core/auth/auth.service.ts index f7194b50..dcd7bf72 100644 --- a/src/app/core/auth/auth.service.ts +++ b/src/app/core/auth/auth.service.ts @@ -1,10 +1,10 @@ -import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; -import { catchError, Observable, of, switchMap, throwError } from 'rxjs'; +import { Injectable } from '@angular/core'; import { AuthUtils } from 'app/core/auth/auth.utils'; import { UserService } from 'app/core/user/user.service'; +import { catchError, Observable, of, switchMap, throwError } from 'rxjs'; -@Injectable() +@Injectable({providedIn: 'root'}) export class AuthService { private _authenticated: boolean = false; @@ -14,7 +14,7 @@ export class AuthService */ constructor( private _httpClient: HttpClient, - private _userService: UserService + private _userService: UserService, ) { } @@ -74,8 +74,8 @@ export class AuthService } return this._httpClient.post('api/auth/sign-in', credentials).pipe( - switchMap((response: any) => { - + switchMap((response: any) => + { // Store the access token in the local storage this.accessToken = response.accessToken; @@ -87,7 +87,7 @@ export class AuthService // Return a new observable with the response return of(response); - }) + }), ); } @@ -98,15 +98,15 @@ export class AuthService { // Sign in using the token return this._httpClient.post('api/auth/sign-in-with-token', { - accessToken: this.accessToken + accessToken: this.accessToken, }).pipe( catchError(() => // Return false - of(false) + of(false), ), - switchMap((response: any) => { - + switchMap((response: any) => + { // Replace the access token with the new one if it's available on // the response object. // @@ -127,7 +127,7 @@ export class AuthService // Return true return of(true); - }) + }), ); } diff --git a/src/app/core/auth/auth.utils.ts b/src/app/core/auth/auth.utils.ts index 5f20ea07..233fe799 100644 --- a/src/app/core/auth/auth.utils.ts +++ b/src/app/core/auth/auth.utils.ts @@ -67,7 +67,7 @@ export class AuthUtils if ( str.length % 4 === 1 ) { throw new Error( - '\'atob\' failed: The string to be decoded is not correctly encoded.' + '\'atob\' failed: The string to be decoded is not correctly encoded.', ); } @@ -107,8 +107,8 @@ export class AuthUtils { return decodeURIComponent( Array.prototype.map - .call(this._b64decode(str), (c: any) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)) - .join('') + .call(this._b64decode(str), (c: any) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)) + .join(''), ); } diff --git a/src/app/core/auth/guards/auth.guard.ts b/src/app/core/auth/guards/auth.guard.ts index 34e365af..cd11d12d 100644 --- a/src/app/core/auth/guards/auth.guard.ts +++ b/src/app/core/auth/guards/auth.guard.ts @@ -1,15 +1,16 @@ import { inject } from '@angular/core'; import { CanActivateChildFn, CanActivateFn, Router } from '@angular/router'; -import { of, switchMap } from 'rxjs'; import { AuthService } from 'app/core/auth/auth.service'; +import { of, switchMap } from 'rxjs'; -export const AuthGuard: CanActivateFn | CanActivateChildFn = (route, state) => { +export const AuthGuard: CanActivateFn | CanActivateChildFn = (route, state) => +{ const router: Router = inject(Router); // Check the authentication status return inject(AuthService).check().pipe( - switchMap((authenticated) => { - + switchMap((authenticated) => + { // If the user is not authenticated... if ( !authenticated ) { @@ -22,6 +23,6 @@ export const AuthGuard: CanActivateFn | CanActivateChildFn = (route, state) => { // Allow the access return of(true); - }) + }), ); }; diff --git a/src/app/core/auth/guards/noAuth.guard.ts b/src/app/core/auth/guards/noAuth.guard.ts index 282eb2ce..0d1c5628 100644 --- a/src/app/core/auth/guards/noAuth.guard.ts +++ b/src/app/core/auth/guards/noAuth.guard.ts @@ -1,15 +1,16 @@ import { inject } from '@angular/core'; import { CanActivateChildFn, CanActivateFn, Router } from '@angular/router'; -import { of, switchMap } from 'rxjs'; import { AuthService } from 'app/core/auth/auth.service'; +import { of, switchMap } from 'rxjs'; -export const NoAuthGuard: CanActivateFn | CanActivateChildFn = (route, state) => { +export const NoAuthGuard: CanActivateFn | CanActivateChildFn = (route, state) => +{ const router: Router = inject(Router); // Check the authentication status return inject(AuthService).check().pipe( - switchMap((authenticated) => { - + switchMap((authenticated) => + { // If the user is authenticated... if ( authenticated ) { @@ -18,6 +19,6 @@ export const NoAuthGuard: CanActivateFn | CanActivateChildFn = (route, state) => // Allow the access return of(true); - }) + }), ); }; diff --git a/src/app/core/config/app.config.ts b/src/app/core/config/app.config.ts deleted file mode 100644 index 0d46121c..00000000 --- a/src/app/core/config/app.config.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { Layout } from 'app/layout/layout.types'; - -// Types -export type Scheme = 'auto' | 'dark' | 'light'; -export type Screens = { [key: string]: string }; -export type Theme = 'theme-default' | string; -export type Themes = { id: string; name: string }[]; - -/** - * AppConfig interface. Update this interface to strictly type your config - * object. - */ -export interface AppConfig -{ - layout: Layout; - scheme: Scheme; - screens: Screens; - theme: Theme; - themes: Themes; -} - -/** - * Default configuration for the entire application. This object is used by - * FuseConfigService to set the default configuration. - * - * If you need to store global configuration for your app, you can use this - * object to set the defaults. To access, update and reset the config, use - * FuseConfigService and its methods. - * - * "Screens" are carried over to the BreakpointObserver for accessing them within - * components, and they are required. - * - * "Themes" are required for Tailwind to generate themes. - */ -export const appConfig: AppConfig = { - layout : 'classy', - scheme : 'light', - screens: { - sm: '600px', - md: '960px', - lg: '1280px', - xl: '1440px' - }, - theme : 'theme-default', - themes : [ - { - id : 'theme-default', - name: 'Default' - }, - { - id : 'theme-brand', - name: 'Brand' - }, - { - id : 'theme-teal', - name: 'Teal' - }, - { - id : 'theme-rose', - name: 'Rose' - }, - { - id : 'theme-purple', - name: 'Purple' - }, - { - id : 'theme-amber', - name: 'Amber' - } - ] -}; diff --git a/src/app/core/core.module.ts b/src/app/core/core.module.ts deleted file mode 100644 index 83fcb1ad..00000000 --- a/src/app/core/core.module.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { NgModule, Optional, SkipSelf } from '@angular/core'; -import { AuthModule } from 'app/core/auth/auth.module'; -import { IconsModule } from 'app/core/icons/icons.module'; -import { TranslocoCoreModule } from 'app/core/transloco/transloco.module'; - -@NgModule({ - imports: [ - AuthModule, - IconsModule, - TranslocoCoreModule - ] -}) -export class CoreModule -{ - /** - * Constructor - */ - constructor( - @Optional() @SkipSelf() parentModule?: CoreModule - ) - { - // Do not allow multiple injections - if ( parentModule ) - { - throw new Error('CoreModule has already been loaded. Import this module in the AppModule only.'); - } - } -} diff --git a/src/app/core/icons/icons.module.ts b/src/app/core/icons/icons.module.ts deleted file mode 100644 index 789b02bd..00000000 --- a/src/app/core/icons/icons.module.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { NgModule } from '@angular/core'; -import { DomSanitizer } from '@angular/platform-browser'; -import { MatIconRegistry } from '@angular/material/icon'; - -@NgModule() -export class IconsModule -{ - /** - * Constructor - */ - constructor( - private _domSanitizer: DomSanitizer, - private _matIconRegistry: MatIconRegistry - ) - { - // Register icon sets - this._matIconRegistry.addSvgIconSet(this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/material-twotone.svg')); - this._matIconRegistry.addSvgIconSetInNamespace('mat_outline', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/material-outline.svg')); - this._matIconRegistry.addSvgIconSetInNamespace('mat_solid', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/material-solid.svg')); - this._matIconRegistry.addSvgIconSetInNamespace('feather', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/feather.svg')); - this._matIconRegistry.addSvgIconSetInNamespace('heroicons_outline', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/heroicons-outline.svg')); - this._matIconRegistry.addSvgIconSetInNamespace('heroicons_solid', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/heroicons-solid.svg')); - } -} diff --git a/src/app/core/icons/icons.provider.ts b/src/app/core/icons/icons.provider.ts new file mode 100644 index 00000000..9f078670 --- /dev/null +++ b/src/app/core/icons/icons.provider.ts @@ -0,0 +1,13 @@ +import { ENVIRONMENT_INITIALIZER, EnvironmentProviders, inject, Provider } from '@angular/core'; +import { IconsService } from 'app/core/icons/icons.service'; + +export const provideIcons = (): Array => +{ + return [ + { + provide : ENVIRONMENT_INITIALIZER, + useValue: () => inject(IconsService), + multi : true, + }, + ]; +}; diff --git a/src/app/core/icons/icons.service.ts b/src/app/core/icons/icons.service.ts new file mode 100644 index 00000000..8159276d --- /dev/null +++ b/src/app/core/icons/icons.service.ts @@ -0,0 +1,25 @@ +import { inject, Injectable } from '@angular/core'; +import { MatIconRegistry } from '@angular/material/icon'; +import { DomSanitizer } from '@angular/platform-browser'; + +@Injectable({providedIn: 'root'}) +export class IconsService +{ + /** + * Constructor + */ + constructor() + { + const domSanitizer = inject(DomSanitizer); + const matIconRegistry = inject(MatIconRegistry); + + // Register icon sets + matIconRegistry.addSvgIconSet(domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/material-twotone.svg')); + matIconRegistry.addSvgIconSetInNamespace('mat_outline', domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/material-outline.svg')); + matIconRegistry.addSvgIconSetInNamespace('mat_solid', domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/material-solid.svg')); + matIconRegistry.addSvgIconSetInNamespace('feather', domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/feather.svg')); + matIconRegistry.addSvgIconSetInNamespace('heroicons_outline', domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/heroicons-outline.svg')); + matIconRegistry.addSvgIconSetInNamespace('heroicons_solid', domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/heroicons-solid.svg')); + matIconRegistry.addSvgIconSetInNamespace('heroicons_mini', domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/heroicons-mini.svg')); + } +} diff --git a/src/app/core/navigation/navigation.service.ts b/src/app/core/navigation/navigation.service.ts index 68627d61..7309b151 100644 --- a/src/app/core/navigation/navigation.service.ts +++ b/src/app/core/navigation/navigation.service.ts @@ -1,11 +1,9 @@ -import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; -import { Observable, ReplaySubject, tap } from 'rxjs'; +import { Injectable } from '@angular/core'; import { Navigation } from 'app/core/navigation/navigation.types'; +import { Observable, ReplaySubject, tap } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class NavigationService { private _navigation: ReplaySubject = new ReplaySubject(1); @@ -39,9 +37,10 @@ export class NavigationService get(): Observable { return this._httpClient.get('api/common/navigation').pipe( - tap((navigation) => { + tap((navigation) => + { this._navigation.next(navigation); - }) + }), ); } } diff --git a/src/app/core/transloco/transloco.http-loader.ts b/src/app/core/transloco/transloco.http-loader.ts index 166469db..958e2107 100644 --- a/src/app/core/transloco/transloco.http-loader.ts +++ b/src/app/core/transloco/transloco.http-loader.ts @@ -1,11 +1,9 @@ -import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; -import { Observable } from 'rxjs'; +import { Injectable } from '@angular/core'; import { Translation, TranslocoLoader } from '@ngneat/transloco'; +import { Observable } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class TranslocoHttpLoader implements TranslocoLoader { /** diff --git a/src/app/core/transloco/transloco.module.ts b/src/app/core/transloco/transloco.provider.ts similarity index 54% rename from src/app/core/transloco/transloco.module.ts rename to src/app/core/transloco/transloco.provider.ts index 928683b1..1b86009a 100644 --- a/src/app/core/transloco/transloco.module.ts +++ b/src/app/core/transloco/transloco.provider.ts @@ -1,12 +1,11 @@ -import { Translation, TRANSLOCO_CONFIG, TRANSLOCO_LOADER, translocoConfig, TranslocoModule, TranslocoService } from '@ngneat/transloco'; -import { APP_INITIALIZER, NgModule } from '@angular/core'; +import { APP_INITIALIZER, EnvironmentProviders, importProvidersFrom, inject, Provider } from '@angular/core'; +import { TRANSLOCO_CONFIG, TRANSLOCO_LOADER, translocoConfig, TranslocoModule, TranslocoService } from '@ngneat/transloco'; import { TranslocoHttpLoader } from 'app/core/transloco/transloco.http-loader'; -@NgModule({ - exports : [ - TranslocoModule - ], - providers: [ +export const provideTransloco = (): Array => +{ + return [ + importProvidersFrom(TranslocoModule), { // Provide the default Transloco configuration provide : TRANSLOCO_CONFIG, @@ -14,37 +13,36 @@ import { TranslocoHttpLoader } from 'app/core/transloco/transloco.http-loader'; availableLangs : [ { id : 'en', - label: 'English' + label: 'English', }, { id : 'tr', - label: 'Turkish' - } + label: 'Turkish', + }, ], defaultLang : 'en', fallbackLang : 'en', reRenderOnLangChange: true, - prodMode : true - }) + prodMode : true, + }), }, { // Provide the default Transloco loader provide : TRANSLOCO_LOADER, - useClass: TranslocoHttpLoader + useClass: TranslocoHttpLoader, }, { // Preload the default language before the app starts to prevent empty/jumping content provide : APP_INITIALIZER, - deps : [TranslocoService], - useFactory: (translocoService: TranslocoService): any => (): Promise => { + useFactory: () => + { + const translocoService = inject(TranslocoService); const defaultLang = translocoService.getDefaultLang(); translocoService.setActiveLang(defaultLang); - return translocoService.load(defaultLang).toPromise(); + + return () => translocoService.load(defaultLang).toPromise(); }, - multi : true - } - ] -}) -export class TranslocoCoreModule -{ -} + multi : true, + }, + ]; +}; diff --git a/src/app/core/user/user.service.ts b/src/app/core/user/user.service.ts index 1f5c14c6..a7d71d02 100644 --- a/src/app/core/user/user.service.ts +++ b/src/app/core/user/user.service.ts @@ -1,11 +1,9 @@ -import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; -import { map, Observable, ReplaySubject, tap } from 'rxjs'; +import { Injectable } from '@angular/core'; import { User } from 'app/core/user/user.types'; +import { map, Observable, ReplaySubject, tap } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class UserService { private _user: ReplaySubject = new ReplaySubject(1); @@ -47,9 +45,10 @@ export class UserService get(): Observable { return this._httpClient.get('api/common/user').pipe( - tap((user) => { + tap((user) => + { this._user.next(user); - }) + }), ); } @@ -61,9 +60,10 @@ export class UserService update(user: User): Observable { return this._httpClient.patch('api/common/user', {user}).pipe( - map((response) => { + map((response) => + { this._user.next(response); - }) + }), ); } } diff --git a/src/app/layout/common/languages/languages.component.ts b/src/app/layout/common/languages/languages.component.ts index 127f257e..17b9b197 100644 --- a/src/app/layout/common/languages/languages.component.ts +++ b/src/app/layout/common/languages/languages.component.ts @@ -1,14 +1,19 @@ +import { NgFor, NgTemplateOutlet } from '@angular/common'; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { take } from 'rxjs'; -import { AvailableLangs, TranslocoService } from '@ngneat/transloco'; +import { MatButtonModule } from '@angular/material/button'; +import { MatMenuModule } from '@angular/material/menu'; import { FuseNavigationService, FuseVerticalNavigationComponent } from '@fuse/components/navigation'; +import { AvailableLangs, TranslocoService } from '@ngneat/transloco'; +import { take } from 'rxjs'; @Component({ selector : 'languages', templateUrl : './languages.component.html', encapsulation : ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, - exportAs : 'languages' + exportAs : 'languages', + standalone : true, + imports : [MatButtonModule, MatMenuModule, NgTemplateOutlet, NgFor], }) export class LanguagesComponent implements OnInit, OnDestroy { @@ -22,7 +27,7 @@ export class LanguagesComponent implements OnInit, OnDestroy constructor( private _changeDetectorRef: ChangeDetectorRef, private _fuseNavigationService: FuseNavigationService, - private _translocoService: TranslocoService + private _translocoService: TranslocoService, ) { } @@ -40,8 +45,8 @@ export class LanguagesComponent implements OnInit, OnDestroy this.availableLangs = this._translocoService.getAvailableLangs(); // Subscribe to language changes - this._translocoService.langChanges$.subscribe((activeLang) => { - + this._translocoService.langChanges$.subscribe((activeLang) => + { // Get the active lang this.activeLang = activeLang; @@ -52,7 +57,7 @@ export class LanguagesComponent implements OnInit, OnDestroy // Set the country iso codes for languages for flags this.flagCodes = { 'en': 'us', - 'tr': 'tr' + 'tr': 'tr', }; } @@ -125,8 +130,8 @@ export class LanguagesComponent implements OnInit, OnDestroy if ( projectDashboardItem ) { this._translocoService.selectTranslate('Project').pipe(take(1)) - .subscribe((translation) => { - + .subscribe((translation) => + { // Set the title projectDashboardItem.title = translation; @@ -140,8 +145,8 @@ export class LanguagesComponent implements OnInit, OnDestroy if ( analyticsDashboardItem ) { this._translocoService.selectTranslate('Analytics').pipe(take(1)) - .subscribe((translation) => { - + .subscribe((translation) => + { // Set the title analyticsDashboardItem.title = translation; diff --git a/src/app/layout/common/languages/languages.module.ts b/src/app/layout/common/languages/languages.module.ts deleted file mode 100644 index 4393a9a8..00000000 --- a/src/app/layout/common/languages/languages.module.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { NgModule } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { MatIconModule } from '@angular/material/icon'; -import { MatMenuModule } from '@angular/material/menu'; -import { LanguagesComponent } from 'app/layout/common/languages/languages.component'; -import { SharedModule } from 'app/shared/shared.module'; - -@NgModule({ - declarations: [ - LanguagesComponent - ], - imports : [ - MatButtonModule, - MatIconModule, - MatMenuModule, - SharedModule - ], - exports : [ - LanguagesComponent - ] -}) -export class LanguagesModule -{ -} diff --git a/src/app/layout/common/messages/messages.component.html b/src/app/layout/common/messages/messages.component.html index e7666b4b..8608f0fc 100644 --- a/src/app/layout/common/messages/messages.component.html +++ b/src/app/layout/common/messages/messages.component.html @@ -26,7 +26,7 @@ (click)="closePanel()"> + [svgIcon]="'heroicons_solid:x-mark'">
Messages
@@ -38,7 +38,7 @@ (click)="markAllAsRead()"> + [svgIcon]="'heroicons_solid:envelope-open'"> @@ -99,7 +99,7 @@ [matTooltip]="'Remove'"> + [svgIcon]="'heroicons_solid:x-mark'"> diff --git a/src/app/layout/common/messages/messages.component.ts b/src/app/layout/common/messages/messages.component.ts index d68ceb4c..d8937943 100644 --- a/src/app/layout/common/messages/messages.component.ts +++ b/src/app/layout/common/messages/messages.component.ts @@ -1,17 +1,23 @@ -import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core'; import { Overlay, OverlayRef } from '@angular/cdk/overlay'; import { TemplatePortal } from '@angular/cdk/portal'; -import { MatButton } from '@angular/material/button'; -import { Subject, takeUntil } from 'rxjs'; -import { Message } from 'app/layout/common/messages/messages.types'; +import { DatePipe, NgClass, NgFor, NgIf, NgTemplateOutlet } from '@angular/common'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core'; +import { MatButton, MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { RouterLink } from '@angular/router'; import { MessagesService } from 'app/layout/common/messages/messages.service'; +import { Message } from 'app/layout/common/messages/messages.types'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'messages', templateUrl : './messages.component.html', encapsulation : ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, - exportAs : 'messages' + exportAs : 'messages', + standalone : true, + imports : [MatButtonModule, NgIf, MatIconModule, MatTooltipModule, NgFor, NgClass, NgTemplateOutlet, RouterLink, DatePipe], }) export class MessagesComponent implements OnInit, OnDestroy { @@ -30,7 +36,7 @@ export class MessagesComponent implements OnInit, OnDestroy private _changeDetectorRef: ChangeDetectorRef, private _messagesService: MessagesService, private _overlay: Overlay, - private _viewContainerRef: ViewContainerRef + private _viewContainerRef: ViewContainerRef, ) { } @@ -47,8 +53,8 @@ export class MessagesComponent implements OnInit, OnDestroy // Subscribe to message changes this._messagesService.messages$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((messages: Message[]) => { - + .subscribe((messages: Message[]) => + { // Load the messages this.messages = messages; @@ -165,39 +171,40 @@ export class MessagesComponent implements OnInit, OnDestroy backdropClass : 'fuse-backdrop-on-mobile', scrollStrategy : this._overlay.scrollStrategies.block(), positionStrategy: this._overlay.position() - .flexibleConnectedTo(this._messagesOrigin._elementRef.nativeElement) - .withLockedPosition(true) - .withPush(true) - .withPositions([ - { - originX : 'start', - originY : 'bottom', - overlayX: 'start', - overlayY: 'top' - }, - { - originX : 'start', - originY : 'top', - overlayX: 'start', - overlayY: 'bottom' - }, - { - originX : 'end', - originY : 'bottom', - overlayX: 'end', - overlayY: 'top' - }, - { - originX : 'end', - originY : 'top', - overlayX: 'end', - overlayY: 'bottom' - } - ]) + .flexibleConnectedTo(this._messagesOrigin._elementRef.nativeElement) + .withLockedPosition(true) + .withPush(true) + .withPositions([ + { + originX : 'start', + originY : 'bottom', + overlayX: 'start', + overlayY: 'top', + }, + { + originX : 'start', + originY : 'top', + overlayX: 'start', + overlayY: 'bottom', + }, + { + originX : 'end', + originY : 'bottom', + overlayX: 'end', + overlayY: 'top', + }, + { + originX : 'end', + originY : 'top', + overlayX: 'end', + overlayY: 'bottom', + }, + ]), }); // Detach the overlay from the portal on backdrop click - this._overlayRef.backdropClick().subscribe(() => { + this._overlayRef.backdropClick().subscribe(() => + { this._overlayRef.detach(); }); } diff --git a/src/app/layout/common/messages/messages.module.ts b/src/app/layout/common/messages/messages.module.ts deleted file mode 100644 index 8e1c070a..00000000 --- a/src/app/layout/common/messages/messages.module.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { OverlayModule } from '@angular/cdk/overlay'; -import { PortalModule } from '@angular/cdk/portal'; -import { MatButtonModule } from '@angular/material/button'; -import { MatIconModule } from '@angular/material/icon'; -import { MatTooltipModule } from '@angular/material/tooltip'; -import { MessagesComponent } from 'app/layout/common/messages/messages.component'; -import { SharedModule } from 'app/shared/shared.module'; - -@NgModule({ - declarations: [ - MessagesComponent - ], - imports : [ - RouterModule, - OverlayModule, - PortalModule, - MatButtonModule, - MatIconModule, - MatTooltipModule, - SharedModule - ], - exports : [ - MessagesComponent - ] -}) -export class MessagesModule -{ -} diff --git a/src/app/layout/common/messages/messages.service.ts b/src/app/layout/common/messages/messages.service.ts index d61b8852..edbe2d80 100644 --- a/src/app/layout/common/messages/messages.service.ts +++ b/src/app/layout/common/messages/messages.service.ts @@ -1,11 +1,9 @@ -import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; -import { map, Observable, ReplaySubject, switchMap, take, tap } from 'rxjs'; +import { Injectable } from '@angular/core'; import { Message } from 'app/layout/common/messages/messages.types'; +import { map, Observable, ReplaySubject, switchMap, take, tap } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class MessagesService { private _messages: ReplaySubject = new ReplaySubject(1); @@ -39,9 +37,10 @@ export class MessagesService getAll(): Observable { return this._httpClient.get('api/common/messages').pipe( - tap((messages) => { + tap((messages) => + { this._messages.next(messages); - }) + }), ); } @@ -55,15 +54,15 @@ export class MessagesService return this.messages$.pipe( take(1), switchMap(messages => this._httpClient.post('api/common/messages', {message}).pipe( - map((newMessage) => { - + map((newMessage) => + { // Update the messages with the new message this._messages.next([...messages, newMessage]); // Return the new message from observable return newMessage; - }) - )) + }), + )), ); } @@ -79,10 +78,10 @@ export class MessagesService take(1), switchMap(messages => this._httpClient.patch('api/common/messages', { id, - message + message, }).pipe( - map((updatedMessage: Message) => { - + map((updatedMessage: Message) => + { // Find the index of the updated message const index = messages.findIndex(item => item.id === id); @@ -94,8 +93,8 @@ export class MessagesService // Return the updated message return updatedMessage; - }) - )) + }), + )), ); } @@ -109,8 +108,8 @@ export class MessagesService return this.messages$.pipe( take(1), switchMap(messages => this._httpClient.delete('api/common/messages', {params: {id}}).pipe( - map((isDeleted: boolean) => { - + map((isDeleted: boolean) => + { // Find the index of the deleted message const index = messages.findIndex(item => item.id === id); @@ -122,8 +121,8 @@ export class MessagesService // Return the deleted status return isDeleted; - }) - )) + }), + )), ); } @@ -135,10 +134,11 @@ export class MessagesService return this.messages$.pipe( take(1), switchMap(messages => this._httpClient.get('api/common/messages/mark-all-as-read').pipe( - map((isUpdated: boolean) => { - + map((isUpdated: boolean) => + { // Go through all messages and set them as read - messages.forEach((message, index) => { + messages.forEach((message, index) => + { messages[index].read = true; }); @@ -147,8 +147,8 @@ export class MessagesService // Return the updated status return isUpdated; - }) - )) + }), + )), ); } } diff --git a/src/app/layout/common/notifications/notifications.component.html b/src/app/layout/common/notifications/notifications.component.html index d91bf589..eca75e75 100644 --- a/src/app/layout/common/notifications/notifications.component.html +++ b/src/app/layout/common/notifications/notifications.component.html @@ -26,7 +26,7 @@ (click)="closePanel()"> + [svgIcon]="'heroicons_solid:x-mark'">
Notifications
@@ -38,7 +38,7 @@ (click)="markAllAsRead()"> + [svgIcon]="'heroicons_solid:envelope-open'"> @@ -99,7 +99,7 @@ [matTooltip]="'Remove'"> + [svgIcon]="'heroicons_solid:x-mark'"> diff --git a/src/app/layout/common/notifications/notifications.component.ts b/src/app/layout/common/notifications/notifications.component.ts index d0439457..e50a0324 100644 --- a/src/app/layout/common/notifications/notifications.component.ts +++ b/src/app/layout/common/notifications/notifications.component.ts @@ -1,17 +1,23 @@ -import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core'; import { Overlay, OverlayRef } from '@angular/cdk/overlay'; import { TemplatePortal } from '@angular/cdk/portal'; -import { MatButton } from '@angular/material/button'; -import { Subject, takeUntil } from 'rxjs'; -import { Notification } from 'app/layout/common/notifications/notifications.types'; +import { DatePipe, NgClass, NgFor, NgIf, NgTemplateOutlet } from '@angular/common'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core'; +import { MatButton, MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { RouterLink } from '@angular/router'; import { NotificationsService } from 'app/layout/common/notifications/notifications.service'; +import { Notification } from 'app/layout/common/notifications/notifications.types'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'notifications', templateUrl : './notifications.component.html', encapsulation : ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, - exportAs : 'notifications' + exportAs : 'notifications', + standalone : true, + imports : [MatButtonModule, NgIf, MatIconModule, MatTooltipModule, NgFor, NgClass, NgTemplateOutlet, RouterLink, DatePipe], }) export class NotificationsComponent implements OnInit, OnDestroy { @@ -30,7 +36,7 @@ export class NotificationsComponent implements OnInit, OnDestroy private _changeDetectorRef: ChangeDetectorRef, private _notificationsService: NotificationsService, private _overlay: Overlay, - private _viewContainerRef: ViewContainerRef + private _viewContainerRef: ViewContainerRef, ) { } @@ -47,8 +53,8 @@ export class NotificationsComponent implements OnInit, OnDestroy // Subscribe to notification changes this._notificationsService.notifications$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((notifications: Notification[]) => { - + .subscribe((notifications: Notification[]) => + { // Load the notifications this.notifications = notifications; @@ -165,39 +171,40 @@ export class NotificationsComponent implements OnInit, OnDestroy backdropClass : 'fuse-backdrop-on-mobile', scrollStrategy : this._overlay.scrollStrategies.block(), positionStrategy: this._overlay.position() - .flexibleConnectedTo(this._notificationsOrigin._elementRef.nativeElement) - .withLockedPosition(true) - .withPush(true) - .withPositions([ - { - originX : 'start', - originY : 'bottom', - overlayX: 'start', - overlayY: 'top' - }, - { - originX : 'start', - originY : 'top', - overlayX: 'start', - overlayY: 'bottom' - }, - { - originX : 'end', - originY : 'bottom', - overlayX: 'end', - overlayY: 'top' - }, - { - originX : 'end', - originY : 'top', - overlayX: 'end', - overlayY: 'bottom' - } - ]) + .flexibleConnectedTo(this._notificationsOrigin._elementRef.nativeElement) + .withLockedPosition(true) + .withPush(true) + .withPositions([ + { + originX : 'start', + originY : 'bottom', + overlayX: 'start', + overlayY: 'top', + }, + { + originX : 'start', + originY : 'top', + overlayX: 'start', + overlayY: 'bottom', + }, + { + originX : 'end', + originY : 'bottom', + overlayX: 'end', + overlayY: 'top', + }, + { + originX : 'end', + originY : 'top', + overlayX: 'end', + overlayY: 'bottom', + }, + ]), }); // Detach the overlay from the portal on backdrop click - this._overlayRef.backdropClick().subscribe(() => { + this._overlayRef.backdropClick().subscribe(() => + { this._overlayRef.detach(); }); } diff --git a/src/app/layout/common/notifications/notifications.module.ts b/src/app/layout/common/notifications/notifications.module.ts deleted file mode 100644 index 468b7c19..00000000 --- a/src/app/layout/common/notifications/notifications.module.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { OverlayModule } from '@angular/cdk/overlay'; -import { PortalModule } from '@angular/cdk/portal'; -import { MatButtonModule } from '@angular/material/button'; -import { MatIconModule } from '@angular/material/icon'; -import { MatTooltipModule } from '@angular/material/tooltip'; -import { NotificationsComponent } from 'app/layout/common/notifications/notifications.component'; -import { SharedModule } from 'app/shared/shared.module'; - -@NgModule({ - declarations: [ - NotificationsComponent - ], - imports : [ - RouterModule, - OverlayModule, - PortalModule, - MatButtonModule, - MatIconModule, - MatTooltipModule, - SharedModule - ], - exports : [ - NotificationsComponent - ] -}) -export class NotificationsModule -{ -} diff --git a/src/app/layout/common/notifications/notifications.service.ts b/src/app/layout/common/notifications/notifications.service.ts index bea1ecdc..54c54b9f 100644 --- a/src/app/layout/common/notifications/notifications.service.ts +++ b/src/app/layout/common/notifications/notifications.service.ts @@ -1,11 +1,9 @@ -import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; -import { map, Observable, ReplaySubject, switchMap, take, tap } from 'rxjs'; +import { Injectable } from '@angular/core'; import { Notification } from 'app/layout/common/notifications/notifications.types'; +import { map, Observable, ReplaySubject, switchMap, take, tap } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class NotificationsService { private _notifications: ReplaySubject = new ReplaySubject(1); @@ -39,9 +37,10 @@ export class NotificationsService getAll(): Observable { return this._httpClient.get('api/common/notifications').pipe( - tap((notifications) => { + tap((notifications) => + { this._notifications.next(notifications); - }) + }), ); } @@ -55,15 +54,15 @@ export class NotificationsService return this.notifications$.pipe( take(1), switchMap(notifications => this._httpClient.post('api/common/notifications', {notification}).pipe( - map((newNotification) => { - + map((newNotification) => + { // Update the notifications with the new notification this._notifications.next([...notifications, newNotification]); // Return the new notification from observable return newNotification; - }) - )) + }), + )), ); } @@ -79,10 +78,10 @@ export class NotificationsService take(1), switchMap(notifications => this._httpClient.patch('api/common/notifications', { id, - notification + notification, }).pipe( - map((updatedNotification: Notification) => { - + map((updatedNotification: Notification) => + { // Find the index of the updated notification const index = notifications.findIndex(item => item.id === id); @@ -94,8 +93,8 @@ export class NotificationsService // Return the updated notification return updatedNotification; - }) - )) + }), + )), ); } @@ -109,8 +108,8 @@ export class NotificationsService return this.notifications$.pipe( take(1), switchMap(notifications => this._httpClient.delete('api/common/notifications', {params: {id}}).pipe( - map((isDeleted: boolean) => { - + map((isDeleted: boolean) => + { // Find the index of the deleted notification const index = notifications.findIndex(item => item.id === id); @@ -122,8 +121,8 @@ export class NotificationsService // Return the deleted status return isDeleted; - }) - )) + }), + )), ); } @@ -135,10 +134,11 @@ export class NotificationsService return this.notifications$.pipe( take(1), switchMap(notifications => this._httpClient.get('api/common/notifications/mark-all-as-read').pipe( - map((isUpdated: boolean) => { - + map((isUpdated: boolean) => + { // Go through all notifications and set them as read - notifications.forEach((notification, index) => { + notifications.forEach((notification, index) => + { notifications[index].read = true; }); @@ -147,8 +147,8 @@ export class NotificationsService // Return the updated status return isUpdated; - }) - )) + }), + )), ); } } diff --git a/src/app/layout/common/quick-chat/quick-chat.component.html b/src/app/layout/common/quick-chat/quick-chat.component.html index d1ef83f6..2b6f2ff4 100644 --- a/src/app/layout/common/quick-chat/quick-chat.component.html +++ b/src/app/layout/common/quick-chat/quick-chat.component.html @@ -14,13 +14,13 @@
+ [svgIcon]="'heroicons_outline:chat-bubble-left-right'">
Team Chat
@@ -45,7 +45,7 @@ @@ -179,7 +179,7 @@
+ [svgIcon]="'heroicons_outline:chat-bubble-bottom-center-text'">
Select a conversation
diff --git a/src/app/layout/common/quick-chat/quick-chat.component.ts b/src/app/layout/common/quick-chat/quick-chat.component.ts index b8babd7c..b5c12383 100644 --- a/src/app/layout/common/quick-chat/quick-chat.component.ts +++ b/src/app/layout/common/quick-chat/quick-chat.component.ts @@ -1,16 +1,24 @@ -import { AfterViewInit, Component, ElementRef, HostBinding, HostListener, Inject, NgZone, OnDestroy, OnInit, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core'; -import { DOCUMENT } from '@angular/common'; import { ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay'; -import { Subject, takeUntil } from 'rxjs'; +import { TextFieldModule } from '@angular/cdk/text-field'; +import { DatePipe, DOCUMENT, NgClass, NgFor, NgIf, NgTemplateOutlet } from '@angular/common'; +import { AfterViewInit, Component, ElementRef, HostBinding, HostListener, Inject, NgZone, OnDestroy, OnInit, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { FuseScrollbarDirective } from '@fuse/directives/scrollbar'; import { QuickChatService } from 'app/layout/common/quick-chat/quick-chat.service'; import { Chat } from 'app/layout/common/quick-chat/quick-chat.types'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'quick-chat', templateUrl : './quick-chat.component.html', styleUrls : ['./quick-chat.component.scss'], encapsulation: ViewEncapsulation.None, - exportAs : 'quickChat' + exportAs : 'quickChat', + standalone : true, + imports : [NgClass, NgIf, MatIconModule, MatButtonModule, FuseScrollbarDirective, NgFor, NgTemplateOutlet, MatFormFieldModule, MatInputModule, TextFieldModule, DatePipe], }) export class QuickChatComponent implements OnInit, AfterViewInit, OnDestroy { @@ -33,7 +41,7 @@ export class QuickChatComponent implements OnInit, AfterViewInit, OnDestroy private _renderer2: Renderer2, private _ngZone: NgZone, private _quickChatService: QuickChatService, - private _scrollStrategyOptions: ScrollStrategyOptions + private _scrollStrategyOptions: ScrollStrategyOptions, ) { } @@ -48,7 +56,7 @@ export class QuickChatComponent implements OnInit, AfterViewInit, OnDestroy @HostBinding('class') get classList(): any { return { - 'quick-chat-opened': this.opened + 'quick-chat-opened': this.opened, }; } @@ -62,10 +70,10 @@ export class QuickChatComponent implements OnInit, AfterViewInit, OnDestroy private _resizeMessageInput(): void { // This doesn't need to trigger Angular's change detection by itself - this._ngZone.runOutsideAngular(() => { - - setTimeout(() => { - + this._ngZone.runOutsideAngular(() => + { + setTimeout(() => + { // Set the height to 'auto' so we can correctly read the scrollHeight this.messageInput.nativeElement.style.height = 'auto'; @@ -87,21 +95,24 @@ export class QuickChatComponent implements OnInit, AfterViewInit, OnDestroy // Chat this._quickChatService.chat$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((chat: Chat) => { + .subscribe((chat: Chat) => + { this.chat = chat; }); // Chats this._quickChatService.chats$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((chats: Chat[]) => { + .subscribe((chats: Chat[]) => + { this.chats = chats; }); // Selected chat this._quickChatService.chat$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((chat: Chat) => { + .subscribe((chat: Chat) => + { this.selectedChat = chat; }); } @@ -117,8 +128,10 @@ export class QuickChatComponent implements OnInit, AfterViewInit, OnDestroy // adding the '.cdk-global-scrollblock' to the html element breaks the navigation's position. // This fixes the problem by reading the 'top' value from the html element and adding it as a // 'marginTop' to the navigation itself. - this._mutationObserver = new MutationObserver((mutations) => { - mutations.forEach((mutation) => { + this._mutationObserver = new MutationObserver((mutations) => + { + mutations.forEach((mutation) => + { const mutationTarget = mutation.target as HTMLElement; if ( mutation.attributeName === 'class' ) { @@ -136,7 +149,7 @@ export class QuickChatComponent implements OnInit, AfterViewInit, OnDestroy }); this._mutationObserver.observe(this._document.documentElement, { attributes : true, - attributeFilter: ['class'] + attributeFilter: ['class'], }); } @@ -260,7 +273,8 @@ export class QuickChatComponent implements OnInit, AfterViewInit, OnDestroy this._scrollStrategy.enable(); // Add an event listener to the overlay - this._overlay.addEventListener('click', () => { + this._overlay.addEventListener('click', () => + { this.close(); }); } diff --git a/src/app/layout/common/quick-chat/quick-chat.module.ts b/src/app/layout/common/quick-chat/quick-chat.module.ts deleted file mode 100644 index dca7895e..00000000 --- a/src/app/layout/common/quick-chat/quick-chat.module.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatIconModule } from '@angular/material/icon'; -import { MatInputModule } from '@angular/material/input'; -import { FuseDrawerModule } from '@fuse/components/drawer'; -import { FuseScrollbarModule } from '@fuse/directives/scrollbar'; -import { SharedModule } from 'app/shared/shared.module'; -import { QuickChatComponent } from 'app/layout/common/quick-chat/quick-chat.component'; - -@NgModule({ - declarations: [ - QuickChatComponent - ], - imports : [ - RouterModule, - MatButtonModule, - MatFormFieldModule, - MatIconModule, - MatInputModule, - FuseDrawerModule, - FuseScrollbarModule, - SharedModule - ], - exports : [ - QuickChatComponent - ] -}) -export class QuickChatModule -{ -} diff --git a/src/app/layout/common/quick-chat/quick-chat.service.ts b/src/app/layout/common/quick-chat/quick-chat.service.ts index 60e1bfef..7061d477 100644 --- a/src/app/layout/common/quick-chat/quick-chat.service.ts +++ b/src/app/layout/common/quick-chat/quick-chat.service.ts @@ -1,11 +1,9 @@ -import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; -import { BehaviorSubject, map, Observable, of, switchMap, tap, throwError } from 'rxjs'; +import { Injectable } from '@angular/core'; import { Chat } from 'app/layout/common/quick-chat/quick-chat.types'; +import { BehaviorSubject, map, Observable, of, switchMap, tap, throwError } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class QuickChatService { private _chat: BehaviorSubject = new BehaviorSubject(null); @@ -48,9 +46,10 @@ export class QuickChatService getChats(): Observable { return this._httpClient.get('api/apps/chat/chats').pipe( - tap((response: Chat[]) => { + tap((response: Chat[]) => + { this._chats.next(response); - }) + }), ); } @@ -62,23 +61,23 @@ export class QuickChatService getChatById(id: string): Observable { return this._httpClient.get('api/apps/chat/chat', {params: {id}}).pipe( - map((chat) => { - + map((chat) => + { // Update the chat this._chat.next(chat); // Return the chat return chat; }), - switchMap((chat) => { - + switchMap((chat) => + { if ( !chat ) { return throwError('Could not found chat with id of ' + id + '!'); } return of(chat); - }) + }), ); } } diff --git a/src/app/layout/common/search/search.component.html b/src/app/layout/common/search/search.component.html index 18950a4c..9878e92d 100644 --- a/src/app/layout/common/search/search.component.html +++ b/src/app/layout/common/search/search.component.html @@ -4,7 +4,7 @@ mat-icon-button *ngIf="!opened" (click)="open()"> - +
+ [svgIcon]="'heroicons_outline:magnifying-glass'"> - +
@@ -73,7 +73,7 @@ [subscriptSizing]="'dynamic'"> + [svgIcon]="'heroicons_outline:magnifying-glass'"> + { + const overlay = inject(Overlay); + return () => overlay.scrollStrategies.block(); + }, + }, + ], }) export class SearchComponent implements OnChanges, OnInit, OnDestroy { @@ -31,7 +51,7 @@ export class SearchComponent implements OnChanges, OnInit, OnDestroy constructor( private _elementRef: ElementRef, private _httpClient: HttpClient, - private _renderer2: Renderer2 + private _renderer2: Renderer2, ) { } @@ -48,7 +68,7 @@ export class SearchComponent implements OnChanges, OnInit, OnDestroy return { 'search-appearance-bar' : this.appearance === 'bar', 'search-appearance-basic': this.appearance === 'basic', - 'search-opened' : this.opened + 'search-opened' : this.opened, }; } @@ -65,8 +85,8 @@ export class SearchComponent implements OnChanges, OnInit, OnDestroy if ( value ) { // Give Angular time to complete the change detection cycle - setTimeout(() => { - + setTimeout(() => + { // Focus to the input element value.nativeElement.focus(); }); @@ -114,8 +134,8 @@ export class SearchComponent implements OnChanges, OnInit, OnDestroy .pipe( debounceTime(this.debounce), takeUntil(this._unsubscribeAll), - map((value) => { - + map((value) => + { // Set the resultSets to null if there is no value or // the length of the value is smaller than the minLength // so the autocomplete panel can be closed @@ -129,12 +149,13 @@ export class SearchComponent implements OnChanges, OnInit, OnDestroy }), // Filter out undefined/null/false statements and also // filter out the values that are smaller than minLength - filter(value => value && value.length >= this.minLength) + filter(value => value && value.length >= this.minLength), ) - .subscribe((value) => { + .subscribe((value) => + { this._httpClient.post('api/common/search', {query: value}) - .subscribe((resultSets: any) => { - + .subscribe((resultSets: any) => + { // Store the result sets this.resultSets = resultSets; diff --git a/src/app/layout/common/search/search.module.ts b/src/app/layout/common/search/search.module.ts deleted file mode 100644 index a099faf1..00000000 --- a/src/app/layout/common/search/search.module.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { BlockScrollStrategy, Overlay } from '@angular/cdk/overlay'; -import { MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MatAutocompleteModule } from '@angular/material/autocomplete'; -import { MatButtonModule } from '@angular/material/button'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatIconModule } from '@angular/material/icon'; -import { MatInputModule } from '@angular/material/input'; -import { SharedModule } from 'app/shared/shared.module'; -import { SearchComponent } from 'app/layout/common/search/search.component'; - -@NgModule({ - declarations: [ - SearchComponent - ], - imports : [ - RouterModule.forChild([]), - MatAutocompleteModule, - MatButtonModule, - MatFormFieldModule, - MatIconModule, - MatInputModule, - SharedModule - ], - exports : [ - SearchComponent - ], - providers : [ - { - provide : MAT_AUTOCOMPLETE_SCROLL_STRATEGY, - useFactory: (overlay: Overlay) => (): BlockScrollStrategy => overlay.scrollStrategies.block(), - deps : [Overlay] - } - ] -}) -export class SearchModule -{ -} diff --git a/src/app/layout/common/settings/settings.component.html b/src/app/layout/common/settings/settings.component.html index b0a3052e..a3bf75ae 100644 --- a/src/app/layout/common/settings/settings.component.html +++ b/src/app/layout/common/settings/settings.component.html @@ -6,7 +6,7 @@ (click)="settingsDrawer.toggle()"> + [svgIcon]="'heroicons_solid:cog-8-tooth'"> + [svgIcon]="'heroicons_solid:cog-8-tooth'">
Settings
@@ -70,7 +70,7 @@
+ [svgIcon]="'heroicons_solid:bolt'">
{ - + .subscribe((config: FuseConfig) => + { // Store the config this.config = config; }); @@ -89,11 +95,11 @@ export class SettingsComponent implements OnInit, OnDestroy // Clear the 'layout' query param to allow layout changes this._router.navigate([], { queryParams : { - layout: null + layout: null, }, - queryParamsHandling: 'merge' - }).then(() => { - + queryParamsHandling: 'merge', + }).then(() => + { // Set the config this._fuseConfigService.config = {layout}; }); diff --git a/src/app/layout/common/settings/settings.module.ts b/src/app/layout/common/settings/settings.module.ts deleted file mode 100644 index 1ee5d4bb..00000000 --- a/src/app/layout/common/settings/settings.module.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { RouterModule } from '@angular/router'; -import { MatIconModule } from '@angular/material/icon'; -import { MatTooltipModule } from '@angular/material/tooltip'; -import { FuseDrawerModule } from '@fuse/components/drawer'; -import { SettingsComponent } from 'app/layout/common/settings/settings.component'; -import { MatButtonModule } from '@angular/material/button'; - -@NgModule({ - declarations: [ - SettingsComponent - ], - imports : [ - CommonModule, - RouterModule, - MatIconModule, - MatTooltipModule, - FuseDrawerModule, - MatButtonModule - ], - exports : [ - SettingsComponent - ] -}) -export class SettingsModule -{ -} diff --git a/src/app/layout/common/shortcuts/shortcuts.component.html b/src/app/layout/common/shortcuts/shortcuts.component.html index 1ad750c7..563b0e98 100644 --- a/src/app/layout/common/shortcuts/shortcuts.component.html +++ b/src/app/layout/common/shortcuts/shortcuts.component.html @@ -3,7 +3,7 @@ mat-icon-button (click)="openPanel()" #shortcutsOrigin> - + @@ -18,7 +18,7 @@ (click)="closePanel()"> + [svgIcon]="'heroicons_solid:x-mark'">
@@ -41,7 +41,7 @@ [matTooltip]="'Enter edit mode'"> + [svgIcon]="'heroicons_solid:pencil-square'"> diff --git a/src/app/layout/common/user/user.component.ts b/src/app/layout/common/user/user.component.ts index 865e037d..d544789e 100644 --- a/src/app/layout/common/user/user.component.ts +++ b/src/app/layout/common/user/user.component.ts @@ -1,16 +1,23 @@ -import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Router } from '@angular/router'; import { BooleanInput } from '@angular/cdk/coercion'; -import { Subject, takeUntil } from 'rxjs'; -import { User } from 'app/core/user/user.types'; +import { NgClass, NgIf } from '@angular/common'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatDividerModule } from '@angular/material/divider'; +import { MatIconModule } from '@angular/material/icon'; +import { MatMenuModule } from '@angular/material/menu'; +import { Router } from '@angular/router'; import { UserService } from 'app/core/user/user.service'; +import { User } from 'app/core/user/user.types'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'user', templateUrl : './user.component.html', encapsulation : ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, - exportAs : 'user' + exportAs : 'user', + standalone : true, + imports : [MatButtonModule, MatMenuModule, NgIf, MatIconModule, NgClass, MatDividerModule], }) export class UserComponent implements OnInit, OnDestroy { @@ -29,7 +36,7 @@ export class UserComponent implements OnInit, OnDestroy constructor( private _changeDetectorRef: ChangeDetectorRef, private _router: Router, - private _userService: UserService + private _userService: UserService, ) { } @@ -46,7 +53,8 @@ export class UserComponent implements OnInit, OnDestroy // Subscribe to user changes this._userService.user$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((user: User) => { + .subscribe((user: User) => + { this.user = user; // Mark for check @@ -84,7 +92,7 @@ export class UserComponent implements OnInit, OnDestroy // Update the user this._userService.update({ ...this.user, - status + status, }).subscribe(); } diff --git a/src/app/layout/common/user/user.module.ts b/src/app/layout/common/user/user.module.ts deleted file mode 100644 index 5cd0d06b..00000000 --- a/src/app/layout/common/user/user.module.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { NgModule } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { MatDividerModule } from '@angular/material/divider'; -import { MatIconModule } from '@angular/material/icon'; -import { MatMenuModule } from '@angular/material/menu'; -import { UserComponent } from 'app/layout/common/user/user.component'; -import { SharedModule } from 'app/shared/shared.module'; - -@NgModule({ - declarations: [ - UserComponent - ], - imports : [ - MatButtonModule, - MatDividerModule, - MatIconModule, - MatMenuModule, - SharedModule - ], - exports : [ - UserComponent - ] -}) -export class UserModule -{ -} diff --git a/src/app/layout/layout.component.ts b/src/app/layout/layout.component.ts index ad9b62cd..e6419351 100644 --- a/src/app/layout/layout.component.ts +++ b/src/app/layout/layout.component.ts @@ -1,24 +1,36 @@ +import { DOCUMENT, NgIf } from '@angular/common'; import { Component, Inject, OnDestroy, OnInit, Renderer2, ViewEncapsulation } from '@angular/core'; -import { DOCUMENT } from '@angular/common'; import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; -import { combineLatest, filter, map, Subject, takeUntil } from 'rxjs'; -import { FuseConfigService } from '@fuse/services/config'; +import { FuseConfig, FuseConfigService } from '@fuse/services/config'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; import { FusePlatformService } from '@fuse/services/platform'; import { FUSE_VERSION } from '@fuse/version'; -import { Layout } from 'app/layout/layout.types'; -import { AppConfig } from 'app/core/config/app.config'; +import { combineLatest, filter, map, Subject, takeUntil } from 'rxjs'; +import { SettingsComponent } from './common/settings/settings.component'; +import { EmptyLayoutComponent } from './layouts/empty/empty.component'; +import { CenteredLayoutComponent } from './layouts/horizontal/centered/centered.component'; +import { EnterpriseLayoutComponent } from './layouts/horizontal/enterprise/enterprise.component'; +import { MaterialLayoutComponent } from './layouts/horizontal/material/material.component'; +import { ModernLayoutComponent } from './layouts/horizontal/modern/modern.component'; +import { ClassicLayoutComponent } from './layouts/vertical/classic/classic.component'; +import { ClassyLayoutComponent } from './layouts/vertical/classy/classy.component'; +import { CompactLayoutComponent } from './layouts/vertical/compact/compact.component'; +import { DenseLayoutComponent } from './layouts/vertical/dense/dense.component'; +import { FuturisticLayoutComponent } from './layouts/vertical/futuristic/futuristic.component'; +import { ThinLayoutComponent } from './layouts/vertical/thin/thin.component'; @Component({ selector : 'layout', templateUrl : './layout.component.html', styleUrls : ['./layout.component.scss'], - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [NgIf, EmptyLayoutComponent, CenteredLayoutComponent, EnterpriseLayoutComponent, MaterialLayoutComponent, ModernLayoutComponent, ClassicLayoutComponent, ClassyLayoutComponent, CompactLayoutComponent, DenseLayoutComponent, FuturisticLayoutComponent, ThinLayoutComponent, SettingsComponent], }) export class LayoutComponent implements OnInit, OnDestroy { - config: AppConfig; - layout: Layout; + config: FuseConfig; + layout: string; scheme: 'dark' | 'light'; theme: string; private _unsubscribeAll: Subject = new Subject(); @@ -33,7 +45,7 @@ export class LayoutComponent implements OnInit, OnDestroy private _router: Router, private _fuseConfigService: FuseConfigService, private _fuseMediaWatcherService: FuseMediaWatcherService, - private _fusePlatformService: FusePlatformService + private _fusePlatformService: FusePlatformService, ) { } @@ -50,14 +62,14 @@ export class LayoutComponent implements OnInit, OnDestroy // Set the theme and scheme based on the configuration combineLatest([ this._fuseConfigService.config$, - this._fuseMediaWatcherService.onMediaQueryChange$(['(prefers-color-scheme: dark)', '(prefers-color-scheme: light)']) + this._fuseMediaWatcherService.onMediaQueryChange$(['(prefers-color-scheme: dark)', '(prefers-color-scheme: light)']), ]).pipe( takeUntil(this._unsubscribeAll), - map(([config, mql]) => { - + map(([config, mql]) => + { const options = { scheme: config.scheme, - theme : config.theme + theme : config.theme, }; // If the scheme is set to 'auto'... @@ -68,9 +80,9 @@ export class LayoutComponent implements OnInit, OnDestroy } return options; - }) - ).subscribe((options) => { - + }), + ).subscribe((options) => + { // Store the options this.scheme = options.scheme; this.theme = options.theme; @@ -83,8 +95,8 @@ export class LayoutComponent implements OnInit, OnDestroy // Subscribe to config changes this._fuseConfigService.config$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((config: AppConfig) => { - + .subscribe((config: FuseConfig) => + { // Store the config this.config = config; @@ -95,9 +107,9 @@ export class LayoutComponent implements OnInit, OnDestroy // Subscribe to NavigationEnd event this._router.events.pipe( filter(event => event instanceof NavigationEnd), - takeUntil(this._unsubscribeAll) - ).subscribe(() => { - + takeUntil(this._unsubscribeAll), + ).subscribe(() => + { // Update the layout this._updateLayout(); }); @@ -140,7 +152,7 @@ export class LayoutComponent implements OnInit, OnDestroy // 2. Get the query parameter from the current route and // set the layout and save the layout to the config - const layoutFromQueryParam = (route.snapshot.queryParamMap.get('layout') as Layout); + const layoutFromQueryParam = route.snapshot.queryParamMap.get('layout'); if ( layoutFromQueryParam ) { this.layout = layoutFromQueryParam; @@ -167,8 +179,8 @@ export class LayoutComponent implements OnInit, OnDestroy // Also, this will allow overriding the layout in any time so we // can have different layouts for different routes. const paths = route.pathFromRoot; - paths.forEach((path) => { - + paths.forEach((path) => + { // Check if there is a 'layout' data if ( path.routeConfig && path.routeConfig.data && path.routeConfig.data.layout ) { @@ -200,7 +212,8 @@ export class LayoutComponent implements OnInit, OnDestroy private _updateTheme(): void { // Find the class name for the previously selected theme and remove it - this._document.body.classList.forEach((className: string) => { + this._document.body.classList.forEach((className: string) => + { if ( className.startsWith('theme-') ) { this._document.body.classList.remove(className, className.split('-')[1]); diff --git a/src/app/layout/layout.module.ts b/src/app/layout/layout.module.ts deleted file mode 100644 index 88211cab..00000000 --- a/src/app/layout/layout.module.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { NgModule } from '@angular/core'; -import { LayoutComponent } from 'app/layout/layout.component'; -import { EmptyLayoutModule } from 'app/layout/layouts/empty/empty.module'; -import { CenteredLayoutModule } from 'app/layout/layouts/horizontal/centered/centered.module'; -import { EnterpriseLayoutModule } from 'app/layout/layouts/horizontal/enterprise/enterprise.module'; -import { MaterialLayoutModule } from 'app/layout/layouts/horizontal/material/material.module'; -import { ModernLayoutModule } from 'app/layout/layouts/horizontal/modern/modern.module'; -import { ClassicLayoutModule } from 'app/layout/layouts/vertical/classic/classic.module'; -import { ClassyLayoutModule } from 'app/layout/layouts/vertical/classy/classy.module'; -import { CompactLayoutModule } from 'app/layout/layouts/vertical/compact/compact.module'; -import { DenseLayoutModule } from 'app/layout/layouts/vertical/dense/dense.module'; -import { FuturisticLayoutModule } from 'app/layout/layouts/vertical/futuristic/futuristic.module'; -import { ThinLayoutModule } from 'app/layout/layouts/vertical/thin/thin.module'; -import { SettingsModule } from 'app/layout/common/settings/settings.module'; -import { SharedModule } from 'app/shared/shared.module'; - -const layoutModules = [ - // Empty - EmptyLayoutModule, - - // Horizontal navigation - CenteredLayoutModule, - EnterpriseLayoutModule, - MaterialLayoutModule, - ModernLayoutModule, - - // Vertical navigation - ClassicLayoutModule, - ClassyLayoutModule, - CompactLayoutModule, - DenseLayoutModule, - FuturisticLayoutModule, - ThinLayoutModule -]; - -@NgModule({ - declarations: [ - LayoutComponent - ], - imports : [ - SharedModule, - SettingsModule, - ...layoutModules - ], - exports : [ - LayoutComponent, - ...layoutModules - ] -}) -export class LayoutModule -{ -} diff --git a/src/app/layout/layout.types.ts b/src/app/layout/layout.types.ts deleted file mode 100644 index f82d98d3..00000000 --- a/src/app/layout/layout.types.ts +++ /dev/null @@ -1,14 +0,0 @@ -export type Layout = - | 'empty' - // Horizontal - | 'centered' - | 'enterprise' - | 'material' - | 'modern' - // Vertical - | 'classic' - | 'classy' - | 'compact' - | 'dense' - | 'futuristic' - | 'thin'; diff --git a/src/app/layout/layouts/empty/empty.component.ts b/src/app/layout/layouts/empty/empty.component.ts index 328c62ac..035f822f 100644 --- a/src/app/layout/layouts/empty/empty.component.ts +++ b/src/app/layout/layouts/empty/empty.component.ts @@ -1,10 +1,15 @@ +import { NgIf } from '@angular/common'; import { Component, OnDestroy, ViewEncapsulation } from '@angular/core'; +import { RouterOutlet } from '@angular/router'; +import { FuseLoadingBarComponent } from '@fuse/components/loading-bar'; import { Subject } from 'rxjs'; @Component({ selector : 'empty-layout', templateUrl : './empty.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [FuseLoadingBarComponent, NgIf, RouterOutlet], }) export class EmptyLayoutComponent implements OnDestroy { diff --git a/src/app/layout/layouts/empty/empty.module.ts b/src/app/layout/layouts/empty/empty.module.ts deleted file mode 100644 index 12153080..00000000 --- a/src/app/layout/layouts/empty/empty.module.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { FuseLoadingBarModule } from '@fuse/components/loading-bar'; -import { SharedModule } from 'app/shared/shared.module'; -import { EmptyLayoutComponent } from 'app/layout/layouts/empty/empty.component'; - -@NgModule({ - declarations: [ - EmptyLayoutComponent - ], - imports : [ - RouterModule, - FuseLoadingBarModule, - SharedModule - ], - exports : [ - EmptyLayoutComponent - ] -}) -export class EmptyLayoutModule -{ -} diff --git a/src/app/layout/layouts/horizontal/centered/centered.component.html b/src/app/layout/layouts/horizontal/centered/centered.component.html index c6c8ca70..98d211d3 100644 --- a/src/app/layout/layouts/horizontal/centered/centered.component.html +++ b/src/app/layout/layouts/horizontal/centered/centered.component.html @@ -61,7 +61,7 @@ class="mr-2" mat-icon-button (click)="toggleNavigation('mainNavigation')"> - + diff --git a/src/app/layout/layouts/horizontal/centered/centered.component.ts b/src/app/layout/layouts/horizontal/centered/centered.component.ts index 628fa1f7..6488a9df 100644 --- a/src/app/layout/layouts/horizontal/centered/centered.component.ts +++ b/src/app/layout/layouts/horizontal/centered/centered.component.ts @@ -1,15 +1,28 @@ +import { NgIf } from '@angular/common'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { ActivatedRoute, Router, RouterOutlet } from '@angular/router'; +import { FuseFullscreenComponent } from '@fuse/components/fullscreen'; +import { FuseLoadingBarComponent } from '@fuse/components/loading-bar'; +import { FuseHorizontalNavigationComponent, FuseNavigationService, FuseVerticalNavigationComponent } from '@fuse/components/navigation'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; -import { FuseNavigationService, FuseVerticalNavigationComponent } from '@fuse/components/navigation'; -import { Navigation } from 'app/core/navigation/navigation.types'; import { NavigationService } from 'app/core/navigation/navigation.service'; +import { Navigation } from 'app/core/navigation/navigation.types'; +import { LanguagesComponent } from 'app/layout/common/languages/languages.component'; +import { MessagesComponent } from 'app/layout/common/messages/messages.component'; +import { NotificationsComponent } from 'app/layout/common/notifications/notifications.component'; +import { SearchComponent } from 'app/layout/common/search/search.component'; +import { ShortcutsComponent } from 'app/layout/common/shortcuts/shortcuts.component'; +import { UserComponent } from 'app/layout/common/user/user.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'centered-layout', templateUrl : './centered.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [FuseLoadingBarComponent, NgIf, FuseVerticalNavigationComponent, FuseHorizontalNavigationComponent, MatButtonModule, MatIconModule, LanguagesComponent, FuseFullscreenComponent, SearchComponent, ShortcutsComponent, MessagesComponent, NotificationsComponent, UserComponent, RouterOutlet], }) export class CenteredLayoutComponent implements OnInit, OnDestroy { @@ -25,7 +38,7 @@ export class CenteredLayoutComponent implements OnInit, OnDestroy private _router: Router, private _navigationService: NavigationService, private _fuseMediaWatcherService: FuseMediaWatcherService, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -54,15 +67,16 @@ export class CenteredLayoutComponent implements OnInit, OnDestroy // Subscribe to navigation data this._navigationService.navigation$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((navigation: Navigation) => { + .subscribe((navigation: Navigation) => + { this.navigation = navigation; }); // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Check if the screen is small this.isScreenSmall = !matchingAliases.includes('md'); }); diff --git a/src/app/layout/layouts/horizontal/centered/centered.module.ts b/src/app/layout/layouts/horizontal/centered/centered.module.ts deleted file mode 100644 index cc4bc461..00000000 --- a/src/app/layout/layouts/horizontal/centered/centered.module.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { NgModule } from '@angular/core'; -import { HttpClientModule } from '@angular/common/http'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatDividerModule } from '@angular/material/divider'; -import { MatIconModule } from '@angular/material/icon'; -import { MatMenuModule } from '@angular/material/menu'; -import { FuseFullscreenModule } from '@fuse/components/fullscreen'; -import { FuseLoadingBarModule } from '@fuse/components/loading-bar'; -import { FuseNavigationModule } from '@fuse/components/navigation'; -import { LanguagesModule } from 'app/layout/common/languages/languages.module'; -import { MessagesModule } from 'app/layout/common/messages/messages.module'; -import { NotificationsModule } from 'app/layout/common/notifications/notifications.module'; -import { SearchModule } from 'app/layout/common/search/search.module'; -import { ShortcutsModule } from 'app/layout/common/shortcuts/shortcuts.module'; -import { UserModule } from 'app/layout/common/user/user.module'; -import { SharedModule } from 'app/shared/shared.module'; -import { CenteredLayoutComponent } from 'app/layout/layouts/horizontal/centered/centered.component'; - -@NgModule({ - declarations: [ - CenteredLayoutComponent - ], - imports : [ - HttpClientModule, - RouterModule, - MatButtonModule, - MatDividerModule, - MatIconModule, - MatMenuModule, - FuseFullscreenModule, - FuseLoadingBarModule, - FuseNavigationModule, - LanguagesModule, - MessagesModule, - NotificationsModule, - SearchModule, - ShortcutsModule, - UserModule, - SharedModule - ], - exports : [ - CenteredLayoutComponent - ] -}) -export class CenteredLayoutModule -{ -} diff --git a/src/app/layout/layouts/horizontal/enterprise/enterprise.component.html b/src/app/layout/layouts/horizontal/enterprise/enterprise.component.html index 45b3fb3f..f13e5f9a 100644 --- a/src/app/layout/layouts/horizontal/enterprise/enterprise.component.html +++ b/src/app/layout/layouts/horizontal/enterprise/enterprise.component.html @@ -44,7 +44,7 @@ @@ -59,7 +59,7 @@ class="lg:hidden" mat-icon-button (click)="quickChat.toggle()"> - +
diff --git a/src/app/layout/layouts/horizontal/enterprise/enterprise.component.ts b/src/app/layout/layouts/horizontal/enterprise/enterprise.component.ts index 2942a801..482f7044 100644 --- a/src/app/layout/layouts/horizontal/enterprise/enterprise.component.ts +++ b/src/app/layout/layouts/horizontal/enterprise/enterprise.component.ts @@ -1,15 +1,29 @@ +import { NgIf } from '@angular/common'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { ActivatedRoute, Router, RouterOutlet } from '@angular/router'; +import { FuseFullscreenComponent } from '@fuse/components/fullscreen'; +import { FuseLoadingBarComponent } from '@fuse/components/loading-bar'; +import { FuseHorizontalNavigationComponent, FuseNavigationService, FuseVerticalNavigationComponent } from '@fuse/components/navigation'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; -import { FuseNavigationService, FuseVerticalNavigationComponent } from '@fuse/components/navigation'; -import { Navigation } from 'app/core/navigation/navigation.types'; import { NavigationService } from 'app/core/navigation/navigation.service'; +import { Navigation } from 'app/core/navigation/navigation.types'; +import { LanguagesComponent } from 'app/layout/common/languages/languages.component'; +import { MessagesComponent } from 'app/layout/common/messages/messages.component'; +import { NotificationsComponent } from 'app/layout/common/notifications/notifications.component'; +import { QuickChatComponent } from 'app/layout/common/quick-chat/quick-chat.component'; +import { SearchComponent } from 'app/layout/common/search/search.component'; +import { ShortcutsComponent } from 'app/layout/common/shortcuts/shortcuts.component'; +import { UserComponent } from 'app/layout/common/user/user.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'enterprise-layout', templateUrl : './enterprise.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [FuseLoadingBarComponent, NgIf, FuseVerticalNavigationComponent, MatButtonModule, MatIconModule, LanguagesComponent, FuseFullscreenComponent, SearchComponent, ShortcutsComponent, MessagesComponent, NotificationsComponent, UserComponent, FuseHorizontalNavigationComponent, RouterOutlet, QuickChatComponent], }) export class EnterpriseLayoutComponent implements OnInit, OnDestroy { @@ -25,7 +39,7 @@ export class EnterpriseLayoutComponent implements OnInit, OnDestroy private _router: Router, private _navigationService: NavigationService, private _fuseMediaWatcherService: FuseMediaWatcherService, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -54,15 +68,16 @@ export class EnterpriseLayoutComponent implements OnInit, OnDestroy // Subscribe to navigation data this._navigationService.navigation$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((navigation: Navigation) => { + .subscribe((navigation: Navigation) => + { this.navigation = navigation; }); // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Check if the screen is small this.isScreenSmall = !matchingAliases.includes('md'); }); diff --git a/src/app/layout/layouts/horizontal/enterprise/enterprise.module.ts b/src/app/layout/layouts/horizontal/enterprise/enterprise.module.ts deleted file mode 100644 index 24215695..00000000 --- a/src/app/layout/layouts/horizontal/enterprise/enterprise.module.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { NgModule } from '@angular/core'; -import { HttpClientModule } from '@angular/common/http'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatDividerModule } from '@angular/material/divider'; -import { MatIconModule } from '@angular/material/icon'; -import { MatMenuModule } from '@angular/material/menu'; -import { FuseFullscreenModule } from '@fuse/components/fullscreen'; -import { FuseLoadingBarModule } from '@fuse/components/loading-bar'; -import { FuseNavigationModule } from '@fuse/components/navigation'; -import { LanguagesModule } from 'app/layout/common/languages/languages.module'; -import { MessagesModule } from 'app/layout/common/messages/messages.module'; -import { NotificationsModule } from 'app/layout/common/notifications/notifications.module'; -import { QuickChatModule } from 'app/layout/common/quick-chat/quick-chat.module'; -import { SearchModule } from 'app/layout/common/search/search.module'; -import { ShortcutsModule } from 'app/layout/common/shortcuts/shortcuts.module'; -import { UserModule } from 'app/layout/common/user/user.module'; -import { SharedModule } from 'app/shared/shared.module'; -import { EnterpriseLayoutComponent } from 'app/layout/layouts/horizontal/enterprise/enterprise.component'; - -@NgModule({ - declarations: [ - EnterpriseLayoutComponent - ], - imports : [ - HttpClientModule, - RouterModule, - MatButtonModule, - MatDividerModule, - MatIconModule, - MatMenuModule, - FuseFullscreenModule, - FuseLoadingBarModule, - FuseNavigationModule, - LanguagesModule, - MessagesModule, - NotificationsModule, - QuickChatModule, - SearchModule, - ShortcutsModule, - UserModule, - SharedModule - ], - exports : [ - EnterpriseLayoutComponent - ] -}) -export class EnterpriseLayoutModule -{ -} diff --git a/src/app/layout/layouts/horizontal/material/material.component.html b/src/app/layout/layouts/horizontal/material/material.component.html index 20e1c9ca..b4325f54 100644 --- a/src/app/layout/layouts/horizontal/material/material.component.html +++ b/src/app/layout/layouts/horizontal/material/material.component.html @@ -50,7 +50,7 @@ diff --git a/src/app/layout/layouts/horizontal/material/material.component.ts b/src/app/layout/layouts/horizontal/material/material.component.ts index c9481630..c3471431 100644 --- a/src/app/layout/layouts/horizontal/material/material.component.ts +++ b/src/app/layout/layouts/horizontal/material/material.component.ts @@ -1,15 +1,28 @@ +import { NgIf } from '@angular/common'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { ActivatedRoute, Router, RouterOutlet } from '@angular/router'; +import { FuseFullscreenComponent } from '@fuse/components/fullscreen'; +import { FuseLoadingBarComponent } from '@fuse/components/loading-bar'; +import { FuseHorizontalNavigationComponent, FuseNavigationService, FuseVerticalNavigationComponent } from '@fuse/components/navigation'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; -import { FuseNavigationService, FuseVerticalNavigationComponent } from '@fuse/components/navigation'; -import { Navigation } from 'app/core/navigation/navigation.types'; import { NavigationService } from 'app/core/navigation/navigation.service'; +import { Navigation } from 'app/core/navigation/navigation.types'; +import { LanguagesComponent } from 'app/layout/common/languages/languages.component'; +import { MessagesComponent } from 'app/layout/common/messages/messages.component'; +import { NotificationsComponent } from 'app/layout/common/notifications/notifications.component'; +import { SearchComponent } from 'app/layout/common/search/search.component'; +import { ShortcutsComponent } from 'app/layout/common/shortcuts/shortcuts.component'; +import { UserComponent } from 'app/layout/common/user/user.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'material-layout', templateUrl : './material.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [FuseLoadingBarComponent, NgIf, FuseVerticalNavigationComponent, MatButtonModule, MatIconModule, LanguagesComponent, FuseFullscreenComponent, SearchComponent, ShortcutsComponent, MessagesComponent, NotificationsComponent, UserComponent, FuseHorizontalNavigationComponent, RouterOutlet], }) export class MaterialLayoutComponent implements OnInit, OnDestroy { @@ -25,7 +38,7 @@ export class MaterialLayoutComponent implements OnInit, OnDestroy private _router: Router, private _navigationService: NavigationService, private _fuseMediaWatcherService: FuseMediaWatcherService, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -54,15 +67,16 @@ export class MaterialLayoutComponent implements OnInit, OnDestroy // Subscribe to navigation data this._navigationService.navigation$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((navigation: Navigation) => { + .subscribe((navigation: Navigation) => + { this.navigation = navigation; }); // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Check if the screen is small this.isScreenSmall = !matchingAliases.includes('md'); }); diff --git a/src/app/layout/layouts/horizontal/material/material.module.ts b/src/app/layout/layouts/horizontal/material/material.module.ts deleted file mode 100644 index e2147ac8..00000000 --- a/src/app/layout/layouts/horizontal/material/material.module.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { NgModule } from '@angular/core'; -import { HttpClientModule } from '@angular/common/http'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatDividerModule } from '@angular/material/divider'; -import { MatIconModule } from '@angular/material/icon'; -import { MatMenuModule } from '@angular/material/menu'; -import { FuseFullscreenModule } from '@fuse/components/fullscreen'; -import { FuseLoadingBarModule } from '@fuse/components/loading-bar'; -import { FuseNavigationModule } from '@fuse/components/navigation'; -import { LanguagesModule } from 'app/layout/common/languages/languages.module'; -import { MessagesModule } from 'app/layout/common/messages/messages.module'; -import { NotificationsModule } from 'app/layout/common/notifications/notifications.module'; -import { SearchModule } from 'app/layout/common/search/search.module'; -import { ShortcutsModule } from 'app/layout/common/shortcuts/shortcuts.module'; -import { UserModule } from 'app/layout/common/user/user.module'; -import { SharedModule } from 'app/shared/shared.module'; -import { MaterialLayoutComponent } from 'app/layout/layouts/horizontal/material/material.component'; - -@NgModule({ - declarations: [ - MaterialLayoutComponent - ], - imports : [ - HttpClientModule, - RouterModule, - MatButtonModule, - MatDividerModule, - MatIconModule, - MatMenuModule, - FuseFullscreenModule, - FuseLoadingBarModule, - FuseNavigationModule, - LanguagesModule, - MessagesModule, - NotificationsModule, - SearchModule, - ShortcutsModule, - UserModule, - SharedModule - ], - exports : [ - MaterialLayoutComponent - ] -}) -export class MaterialLayoutModule -{ -} diff --git a/src/app/layout/layouts/horizontal/modern/modern.component.html b/src/app/layout/layouts/horizontal/modern/modern.component.html index 0718b729..de61c05d 100644 --- a/src/app/layout/layouts/horizontal/modern/modern.component.html +++ b/src/app/layout/layouts/horizontal/modern/modern.component.html @@ -53,7 +53,7 @@ @@ -68,7 +68,7 @@ class="lg:hidden" mat-icon-button (click)="quickChat.toggle()"> - + diff --git a/src/app/layout/layouts/horizontal/modern/modern.component.ts b/src/app/layout/layouts/horizontal/modern/modern.component.ts index 1e7b8af7..524962d2 100644 --- a/src/app/layout/layouts/horizontal/modern/modern.component.ts +++ b/src/app/layout/layouts/horizontal/modern/modern.component.ts @@ -1,15 +1,29 @@ +import { NgIf } from '@angular/common'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { ActivatedRoute, Router, RouterOutlet } from '@angular/router'; +import { FuseFullscreenComponent } from '@fuse/components/fullscreen'; +import { FuseLoadingBarComponent } from '@fuse/components/loading-bar'; +import { FuseHorizontalNavigationComponent, FuseNavigationService, FuseVerticalNavigationComponent } from '@fuse/components/navigation'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; -import { FuseNavigationService, FuseVerticalNavigationComponent } from '@fuse/components/navigation'; -import { Navigation } from 'app/core/navigation/navigation.types'; import { NavigationService } from 'app/core/navigation/navigation.service'; +import { Navigation } from 'app/core/navigation/navigation.types'; +import { LanguagesComponent } from 'app/layout/common/languages/languages.component'; +import { MessagesComponent } from 'app/layout/common/messages/messages.component'; +import { NotificationsComponent } from 'app/layout/common/notifications/notifications.component'; +import { QuickChatComponent } from 'app/layout/common/quick-chat/quick-chat.component'; +import { SearchComponent } from 'app/layout/common/search/search.component'; +import { ShortcutsComponent } from 'app/layout/common/shortcuts/shortcuts.component'; +import { UserComponent } from 'app/layout/common/user/user.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'modern-layout', templateUrl : './modern.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [FuseLoadingBarComponent, NgIf, FuseVerticalNavigationComponent, FuseHorizontalNavigationComponent, MatButtonModule, MatIconModule, LanguagesComponent, FuseFullscreenComponent, SearchComponent, ShortcutsComponent, MessagesComponent, NotificationsComponent, UserComponent, RouterOutlet, QuickChatComponent], }) export class ModernLayoutComponent implements OnInit, OnDestroy { @@ -25,7 +39,7 @@ export class ModernLayoutComponent implements OnInit, OnDestroy private _router: Router, private _navigationService: NavigationService, private _fuseMediaWatcherService: FuseMediaWatcherService, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -54,15 +68,16 @@ export class ModernLayoutComponent implements OnInit, OnDestroy // Subscribe to navigation data this._navigationService.navigation$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((navigation: Navigation) => { + .subscribe((navigation: Navigation) => + { this.navigation = navigation; }); // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Check if the screen is small this.isScreenSmall = !matchingAliases.includes('md'); }); diff --git a/src/app/layout/layouts/horizontal/modern/modern.module.ts b/src/app/layout/layouts/horizontal/modern/modern.module.ts deleted file mode 100644 index 3ec2f681..00000000 --- a/src/app/layout/layouts/horizontal/modern/modern.module.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { NgModule } from '@angular/core'; -import { HttpClientModule } from '@angular/common/http'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatDividerModule } from '@angular/material/divider'; -import { MatIconModule } from '@angular/material/icon'; -import { MatMenuModule } from '@angular/material/menu'; -import { FuseFullscreenModule } from '@fuse/components/fullscreen'; -import { FuseLoadingBarModule } from '@fuse/components/loading-bar'; -import { FuseNavigationModule } from '@fuse/components/navigation'; -import { LanguagesModule } from 'app/layout/common/languages/languages.module'; -import { MessagesModule } from 'app/layout/common/messages/messages.module'; -import { NotificationsModule } from 'app/layout/common/notifications/notifications.module'; -import { QuickChatModule } from 'app/layout/common/quick-chat/quick-chat.module'; -import { SearchModule } from 'app/layout/common/search/search.module'; -import { ShortcutsModule } from 'app/layout/common/shortcuts/shortcuts.module'; -import { UserModule } from 'app/layout/common/user/user.module'; -import { SharedModule } from 'app/shared/shared.module'; -import { ModernLayoutComponent } from 'app/layout/layouts/horizontal/modern/modern.component'; - -@NgModule({ - declarations: [ - ModernLayoutComponent - ], - imports : [ - HttpClientModule, - RouterModule, - MatButtonModule, - MatDividerModule, - MatIconModule, - MatMenuModule, - FuseFullscreenModule, - FuseLoadingBarModule, - FuseNavigationModule, - LanguagesModule, - MessagesModule, - NotificationsModule, - QuickChatModule, - SearchModule, - ShortcutsModule, - UserModule, - SharedModule - ], - exports : [ - ModernLayoutComponent - ] -}) -export class ModernLayoutModule -{ -} diff --git a/src/app/layout/layouts/vertical/classic/classic.component.html b/src/app/layout/layouts/vertical/classic/classic.component.html index 66b0cf2b..27b840c2 100644 --- a/src/app/layout/layouts/vertical/classic/classic.component.html +++ b/src/app/layout/layouts/vertical/classic/classic.component.html @@ -35,7 +35,7 @@
@@ -49,7 +49,7 @@ class="lg:hidden" mat-icon-button (click)="quickChat.toggle()"> - +
diff --git a/src/app/layout/layouts/vertical/classic/classic.component.ts b/src/app/layout/layouts/vertical/classic/classic.component.ts index 7dca1dc2..fd20ac01 100644 --- a/src/app/layout/layouts/vertical/classic/classic.component.ts +++ b/src/app/layout/layouts/vertical/classic/classic.component.ts @@ -1,15 +1,29 @@ +import { NgIf } from '@angular/common'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { Subject, takeUntil } from 'rxjs'; -import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { ActivatedRoute, Router, RouterOutlet } from '@angular/router'; +import { FuseFullscreenComponent } from '@fuse/components/fullscreen'; +import { FuseLoadingBarComponent } from '@fuse/components/loading-bar'; import { FuseNavigationService, FuseVerticalNavigationComponent } from '@fuse/components/navigation'; -import { Navigation } from 'app/core/navigation/navigation.types'; +import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; import { NavigationService } from 'app/core/navigation/navigation.service'; +import { Navigation } from 'app/core/navigation/navigation.types'; +import { LanguagesComponent } from 'app/layout/common/languages/languages.component'; +import { MessagesComponent } from 'app/layout/common/messages/messages.component'; +import { NotificationsComponent } from 'app/layout/common/notifications/notifications.component'; +import { QuickChatComponent } from 'app/layout/common/quick-chat/quick-chat.component'; +import { SearchComponent } from 'app/layout/common/search/search.component'; +import { ShortcutsComponent } from 'app/layout/common/shortcuts/shortcuts.component'; +import { UserComponent } from 'app/layout/common/user/user.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'classic-layout', templateUrl : './classic.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [FuseLoadingBarComponent, FuseVerticalNavigationComponent, MatButtonModule, MatIconModule, LanguagesComponent, FuseFullscreenComponent, SearchComponent, ShortcutsComponent, MessagesComponent, NotificationsComponent, UserComponent, NgIf, RouterOutlet, QuickChatComponent], }) export class ClassicLayoutComponent implements OnInit, OnDestroy { @@ -25,7 +39,7 @@ export class ClassicLayoutComponent implements OnInit, OnDestroy private _router: Router, private _navigationService: NavigationService, private _fuseMediaWatcherService: FuseMediaWatcherService, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -54,15 +68,16 @@ export class ClassicLayoutComponent implements OnInit, OnDestroy // Subscribe to navigation data this._navigationService.navigation$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((navigation: Navigation) => { + .subscribe((navigation: Navigation) => + { this.navigation = navigation; }); // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Check if the screen is small this.isScreenSmall = !matchingAliases.includes('md'); }); diff --git a/src/app/layout/layouts/vertical/classic/classic.module.ts b/src/app/layout/layouts/vertical/classic/classic.module.ts deleted file mode 100644 index 520bc5c4..00000000 --- a/src/app/layout/layouts/vertical/classic/classic.module.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { NgModule } from '@angular/core'; -import { HttpClientModule } from '@angular/common/http'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatDividerModule } from '@angular/material/divider'; -import { MatIconModule } from '@angular/material/icon'; -import { MatMenuModule } from '@angular/material/menu'; -import { FuseFullscreenModule } from '@fuse/components/fullscreen'; -import { FuseLoadingBarModule } from '@fuse/components/loading-bar'; -import { FuseNavigationModule } from '@fuse/components/navigation'; -import { LanguagesModule } from 'app/layout/common/languages/languages.module'; -import { MessagesModule } from 'app/layout/common/messages/messages.module'; -import { NotificationsModule } from 'app/layout/common/notifications/notifications.module'; -import { QuickChatModule } from 'app/layout/common/quick-chat/quick-chat.module'; -import { SearchModule } from 'app/layout/common/search/search.module'; -import { ShortcutsModule } from 'app/layout/common/shortcuts/shortcuts.module'; -import { UserModule } from 'app/layout/common/user/user.module'; -import { SharedModule } from 'app/shared/shared.module'; -import { ClassicLayoutComponent } from 'app/layout/layouts/vertical/classic/classic.component'; - -@NgModule({ - declarations: [ - ClassicLayoutComponent - ], - imports : [ - HttpClientModule, - RouterModule, - MatButtonModule, - MatDividerModule, - MatIconModule, - MatMenuModule, - FuseFullscreenModule, - FuseLoadingBarModule, - FuseNavigationModule, - LanguagesModule, - MessagesModule, - NotificationsModule, - QuickChatModule, - SearchModule, - ShortcutsModule, - UserModule, - SharedModule - ], - exports : [ - ClassicLayoutComponent - ] -}) -export class ClassicLayoutModule -{ -} diff --git a/src/app/layout/layouts/vertical/classy/classy.component.html b/src/app/layout/layouts/vertical/classy/classy.component.html index e4bee1bb..ecb32f22 100644 --- a/src/app/layout/layouts/vertical/classy/classy.component.html +++ b/src/app/layout/layouts/vertical/classy/classy.component.html @@ -65,7 +65,7 @@
@@ -78,7 +78,7 @@ class="lg:hidden" mat-icon-button (click)="quickChat.toggle()"> - +
diff --git a/src/app/layout/layouts/vertical/classy/classy.component.ts b/src/app/layout/layouts/vertical/classy/classy.component.ts index 7f63d2a8..38c490d7 100644 --- a/src/app/layout/layouts/vertical/classy/classy.component.ts +++ b/src/app/layout/layouts/vertical/classy/classy.component.ts @@ -1,17 +1,31 @@ +import { NgIf } from '@angular/common'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { Subject, takeUntil } from 'rxjs'; -import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { ActivatedRoute, Router, RouterOutlet } from '@angular/router'; +import { FuseFullscreenComponent } from '@fuse/components/fullscreen'; +import { FuseLoadingBarComponent } from '@fuse/components/loading-bar'; import { FuseNavigationService, FuseVerticalNavigationComponent } from '@fuse/components/navigation'; -import { Navigation } from 'app/core/navigation/navigation.types'; +import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; import { NavigationService } from 'app/core/navigation/navigation.service'; -import { User } from 'app/core/user/user.types'; +import { Navigation } from 'app/core/navigation/navigation.types'; import { UserService } from 'app/core/user/user.service'; +import { User } from 'app/core/user/user.types'; +import { LanguagesComponent } from 'app/layout/common/languages/languages.component'; +import { MessagesComponent } from 'app/layout/common/messages/messages.component'; +import { NotificationsComponent } from 'app/layout/common/notifications/notifications.component'; +import { QuickChatComponent } from 'app/layout/common/quick-chat/quick-chat.component'; +import { SearchComponent } from 'app/layout/common/search/search.component'; +import { ShortcutsComponent } from 'app/layout/common/shortcuts/shortcuts.component'; +import { UserComponent } from 'app/layout/common/user/user.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'classy-layout', templateUrl : './classy.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [FuseLoadingBarComponent, FuseVerticalNavigationComponent, NotificationsComponent, UserComponent, NgIf, MatIconModule, MatButtonModule, LanguagesComponent, FuseFullscreenComponent, SearchComponent, ShortcutsComponent, MessagesComponent, RouterOutlet, QuickChatComponent], }) export class ClassyLayoutComponent implements OnInit, OnDestroy { @@ -29,7 +43,7 @@ export class ClassyLayoutComponent implements OnInit, OnDestroy private _navigationService: NavigationService, private _userService: UserService, private _fuseMediaWatcherService: FuseMediaWatcherService, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -58,22 +72,24 @@ export class ClassyLayoutComponent implements OnInit, OnDestroy // Subscribe to navigation data this._navigationService.navigation$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((navigation: Navigation) => { + .subscribe((navigation: Navigation) => + { this.navigation = navigation; }); // Subscribe to the user service this._userService.user$ .pipe((takeUntil(this._unsubscribeAll))) - .subscribe((user: User) => { + .subscribe((user: User) => + { this.user = user; }); // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Check if the screen is small this.isScreenSmall = !matchingAliases.includes('md'); }); diff --git a/src/app/layout/layouts/vertical/classy/classy.module.ts b/src/app/layout/layouts/vertical/classy/classy.module.ts deleted file mode 100644 index c6c809ed..00000000 --- a/src/app/layout/layouts/vertical/classy/classy.module.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { NgModule } from '@angular/core'; -import { HttpClientModule } from '@angular/common/http'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatDividerModule } from '@angular/material/divider'; -import { MatIconModule } from '@angular/material/icon'; -import { MatMenuModule } from '@angular/material/menu'; -import { FuseNavigationModule } from '@fuse/components/navigation'; -import { FuseLoadingBarModule } from '@fuse/components/loading-bar'; -import { FuseFullscreenModule } from '@fuse/components/fullscreen/fullscreen.module'; -import { LanguagesModule } from 'app/layout/common/languages/languages.module'; -import { MessagesModule } from 'app/layout/common/messages/messages.module'; -import { NotificationsModule } from 'app/layout/common/notifications/notifications.module'; -import { QuickChatModule } from 'app/layout/common/quick-chat/quick-chat.module'; -import { SearchModule } from 'app/layout/common/search/search.module'; -import { ShortcutsModule } from 'app/layout/common/shortcuts/shortcuts.module'; -import { UserModule } from 'app/layout/common/user/user.module'; -import { SharedModule } from 'app/shared/shared.module'; -import { ClassyLayoutComponent } from 'app/layout/layouts/vertical/classy/classy.component'; - -@NgModule({ - declarations: [ - ClassyLayoutComponent - ], - imports : [ - HttpClientModule, - RouterModule, - MatButtonModule, - MatDividerModule, - MatIconModule, - MatMenuModule, - FuseFullscreenModule, - FuseLoadingBarModule, - FuseNavigationModule, - LanguagesModule, - MessagesModule, - NotificationsModule, - QuickChatModule, - SearchModule, - ShortcutsModule, - UserModule, - SharedModule - ], - exports : [ - ClassyLayoutComponent - ] -}) -export class ClassyLayoutModule -{ -} diff --git a/src/app/layout/layouts/vertical/compact/compact.component.html b/src/app/layout/layouts/vertical/compact/compact.component.html index ebc9175b..6e0ae9be 100644 --- a/src/app/layout/layouts/vertical/compact/compact.component.html +++ b/src/app/layout/layouts/vertical/compact/compact.component.html @@ -30,7 +30,7 @@
@@ -44,7 +44,7 @@ class="lg:hidden" mat-icon-button (click)="quickChat.toggle()"> - +
diff --git a/src/app/layout/layouts/vertical/compact/compact.component.ts b/src/app/layout/layouts/vertical/compact/compact.component.ts index ec71501e..c4a98278 100644 --- a/src/app/layout/layouts/vertical/compact/compact.component.ts +++ b/src/app/layout/layouts/vertical/compact/compact.component.ts @@ -1,15 +1,29 @@ +import { NgIf } from '@angular/common'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { Subject, takeUntil } from 'rxjs'; -import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { ActivatedRoute, Router, RouterOutlet } from '@angular/router'; +import { FuseFullscreenComponent } from '@fuse/components/fullscreen'; +import { FuseLoadingBarComponent } from '@fuse/components/loading-bar'; import { FuseNavigationService, FuseVerticalNavigationComponent } from '@fuse/components/navigation'; -import { Navigation } from 'app/core/navigation/navigation.types'; +import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; import { NavigationService } from 'app/core/navigation/navigation.service'; +import { Navigation } from 'app/core/navigation/navigation.types'; +import { LanguagesComponent } from 'app/layout/common/languages/languages.component'; +import { MessagesComponent } from 'app/layout/common/messages/messages.component'; +import { NotificationsComponent } from 'app/layout/common/notifications/notifications.component'; +import { QuickChatComponent } from 'app/layout/common/quick-chat/quick-chat.component'; +import { SearchComponent } from 'app/layout/common/search/search.component'; +import { ShortcutsComponent } from 'app/layout/common/shortcuts/shortcuts.component'; +import { UserComponent } from 'app/layout/common/user/user.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'compact-layout', templateUrl : './compact.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [FuseLoadingBarComponent, MatButtonModule, MatIconModule, LanguagesComponent, FuseFullscreenComponent, SearchComponent, ShortcutsComponent, MessagesComponent, NotificationsComponent, UserComponent, NgIf, RouterOutlet, QuickChatComponent, FuseVerticalNavigationComponent], }) export class CompactLayoutComponent implements OnInit, OnDestroy { @@ -25,7 +39,7 @@ export class CompactLayoutComponent implements OnInit, OnDestroy private _router: Router, private _navigationService: NavigationService, private _fuseMediaWatcherService: FuseMediaWatcherService, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -54,15 +68,16 @@ export class CompactLayoutComponent implements OnInit, OnDestroy // Subscribe to navigation data this._navigationService.navigation$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((navigation: Navigation) => { + .subscribe((navigation: Navigation) => + { this.navigation = navigation; }); // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Check if the screen is small this.isScreenSmall = !matchingAliases.includes('md'); }); diff --git a/src/app/layout/layouts/vertical/compact/compact.module.ts b/src/app/layout/layouts/vertical/compact/compact.module.ts deleted file mode 100644 index 1cbe123f..00000000 --- a/src/app/layout/layouts/vertical/compact/compact.module.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { NgModule } from '@angular/core'; -import { HttpClientModule } from '@angular/common/http'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatDividerModule } from '@angular/material/divider'; -import { MatIconModule } from '@angular/material/icon'; -import { MatMenuModule } from '@angular/material/menu'; -import { FuseFullscreenModule } from '@fuse/components/fullscreen'; -import { FuseLoadingBarModule } from '@fuse/components/loading-bar'; -import { FuseNavigationModule } from '@fuse/components/navigation'; -import { LanguagesModule } from 'app/layout/common/languages/languages.module'; -import { MessagesModule } from 'app/layout/common/messages/messages.module'; -import { NotificationsModule } from 'app/layout/common/notifications/notifications.module'; -import { QuickChatModule } from 'app/layout/common/quick-chat/quick-chat.module'; -import { SearchModule } from 'app/layout/common/search/search.module'; -import { ShortcutsModule } from 'app/layout/common/shortcuts/shortcuts.module'; -import { UserModule } from 'app/layout/common/user/user.module'; -import { SharedModule } from 'app/shared/shared.module'; -import { CompactLayoutComponent } from 'app/layout/layouts/vertical/compact/compact.component'; - -@NgModule({ - declarations: [ - CompactLayoutComponent - ], - imports : [ - HttpClientModule, - RouterModule, - MatButtonModule, - MatDividerModule, - MatIconModule, - MatMenuModule, - FuseFullscreenModule, - FuseLoadingBarModule, - FuseNavigationModule, - LanguagesModule, - MessagesModule, - NotificationsModule, - QuickChatModule, - SearchModule, - ShortcutsModule, - UserModule, - SharedModule - ], - exports : [ - CompactLayoutComponent - ] -}) -export class CompactLayoutModule -{ -} diff --git a/src/app/layout/layouts/vertical/dense/dense.component.html b/src/app/layout/layouts/vertical/dense/dense.component.html index b4c17fd6..81e41be8 100644 --- a/src/app/layout/layouts/vertical/dense/dense.component.html +++ b/src/app/layout/layouts/vertical/dense/dense.component.html @@ -31,14 +31,14 @@ @@ -53,7 +53,7 @@ class="lg:hidden" mat-icon-button (click)="quickChat.toggle()"> - + diff --git a/src/app/layout/layouts/vertical/dense/dense.component.ts b/src/app/layout/layouts/vertical/dense/dense.component.ts index 58525cdd..f5e111aa 100644 --- a/src/app/layout/layouts/vertical/dense/dense.component.ts +++ b/src/app/layout/layouts/vertical/dense/dense.component.ts @@ -1,15 +1,29 @@ +import { NgIf } from '@angular/common'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { Subject, takeUntil } from 'rxjs'; -import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { ActivatedRoute, Router, RouterOutlet } from '@angular/router'; +import { FuseFullscreenComponent } from '@fuse/components/fullscreen'; +import { FuseLoadingBarComponent } from '@fuse/components/loading-bar'; import { FuseNavigationService, FuseVerticalNavigationComponent } from '@fuse/components/navigation'; -import { Navigation } from 'app/core/navigation/navigation.types'; +import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; import { NavigationService } from 'app/core/navigation/navigation.service'; +import { Navigation } from 'app/core/navigation/navigation.types'; +import { LanguagesComponent } from 'app/layout/common/languages/languages.component'; +import { MessagesComponent } from 'app/layout/common/messages/messages.component'; +import { NotificationsComponent } from 'app/layout/common/notifications/notifications.component'; +import { QuickChatComponent } from 'app/layout/common/quick-chat/quick-chat.component'; +import { SearchComponent } from 'app/layout/common/search/search.component'; +import { ShortcutsComponent } from 'app/layout/common/shortcuts/shortcuts.component'; +import { UserComponent } from 'app/layout/common/user/user.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'dense-layout', templateUrl : './dense.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [FuseLoadingBarComponent, FuseVerticalNavigationComponent, MatButtonModule, MatIconModule, LanguagesComponent, FuseFullscreenComponent, SearchComponent, ShortcutsComponent, MessagesComponent, NotificationsComponent, UserComponent, NgIf, RouterOutlet, QuickChatComponent], }) export class DenseLayoutComponent implements OnInit, OnDestroy { @@ -26,7 +40,7 @@ export class DenseLayoutComponent implements OnInit, OnDestroy private _router: Router, private _navigationService: NavigationService, private _fuseMediaWatcherService: FuseMediaWatcherService, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -55,15 +69,16 @@ export class DenseLayoutComponent implements OnInit, OnDestroy // Subscribe to navigation data this._navigationService.navigation$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((navigation: Navigation) => { + .subscribe((navigation: Navigation) => + { this.navigation = navigation; }); // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Check if the screen is small this.isScreenSmall = !matchingAliases.includes('md'); diff --git a/src/app/layout/layouts/vertical/dense/dense.module.ts b/src/app/layout/layouts/vertical/dense/dense.module.ts deleted file mode 100644 index bd43d29a..00000000 --- a/src/app/layout/layouts/vertical/dense/dense.module.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { NgModule } from '@angular/core'; -import { HttpClientModule } from '@angular/common/http'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatDividerModule } from '@angular/material/divider'; -import { MatIconModule } from '@angular/material/icon'; -import { MatMenuModule } from '@angular/material/menu'; -import { FuseFullscreenModule } from '@fuse/components/fullscreen'; -import { FuseLoadingBarModule } from '@fuse/components/loading-bar'; -import { FuseNavigationModule } from '@fuse/components/navigation'; -import { LanguagesModule } from 'app/layout/common/languages/languages.module'; -import { MessagesModule } from 'app/layout/common/messages/messages.module'; -import { NotificationsModule } from 'app/layout/common/notifications/notifications.module'; -import { QuickChatModule } from 'app/layout/common/quick-chat/quick-chat.module'; -import { SearchModule } from 'app/layout/common/search/search.module'; -import { ShortcutsModule } from 'app/layout/common/shortcuts/shortcuts.module'; -import { UserModule } from 'app/layout/common/user/user.module'; -import { SharedModule } from 'app/shared/shared.module'; -import { DenseLayoutComponent } from 'app/layout/layouts/vertical/dense/dense.component'; - -@NgModule({ - declarations: [ - DenseLayoutComponent - ], - imports : [ - HttpClientModule, - RouterModule, - MatButtonModule, - MatDividerModule, - MatIconModule, - MatMenuModule, - FuseFullscreenModule, - FuseLoadingBarModule, - FuseNavigationModule, - LanguagesModule, - MessagesModule, - NotificationsModule, - QuickChatModule, - SearchModule, - ShortcutsModule, - UserModule, - SharedModule - ], - exports : [ - DenseLayoutComponent - ] -}) -export class DenseLayoutModule -{ -} diff --git a/src/app/layout/layouts/vertical/futuristic/futuristic.component.html b/src/app/layout/layouts/vertical/futuristic/futuristic.component.html index 0f802cda..7411e164 100644 --- a/src/app/layout/layouts/vertical/futuristic/futuristic.component.html +++ b/src/app/layout/layouts/vertical/futuristic/futuristic.component.html @@ -44,7 +44,7 @@ class="mr-2" mat-icon-button (click)="toggleNavigation('mainNavigation')"> - +
@@ -58,7 +58,7 @@ class="lg:hidden" mat-icon-button (click)="quickChat.toggle()"> - +
diff --git a/src/app/layout/layouts/vertical/futuristic/futuristic.component.ts b/src/app/layout/layouts/vertical/futuristic/futuristic.component.ts index b9dae5b9..1dca3bc3 100644 --- a/src/app/layout/layouts/vertical/futuristic/futuristic.component.ts +++ b/src/app/layout/layouts/vertical/futuristic/futuristic.component.ts @@ -1,17 +1,31 @@ +import { NgIf } from '@angular/common'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { Subject, takeUntil } from 'rxjs'; -import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { ActivatedRoute, Router, RouterOutlet } from '@angular/router'; +import { FuseFullscreenComponent } from '@fuse/components/fullscreen'; +import { FuseLoadingBarComponent } from '@fuse/components/loading-bar'; import { FuseNavigationService, FuseVerticalNavigationComponent } from '@fuse/components/navigation'; -import { Navigation } from 'app/core/navigation/navigation.types'; +import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; import { NavigationService } from 'app/core/navigation/navigation.service'; -import { User } from 'app/core/user/user.types'; +import { Navigation } from 'app/core/navigation/navigation.types'; import { UserService } from 'app/core/user/user.service'; +import { User } from 'app/core/user/user.types'; +import { LanguagesComponent } from 'app/layout/common/languages/languages.component'; +import { MessagesComponent } from 'app/layout/common/messages/messages.component'; +import { NotificationsComponent } from 'app/layout/common/notifications/notifications.component'; +import { QuickChatComponent } from 'app/layout/common/quick-chat/quick-chat.component'; +import { SearchComponent } from 'app/layout/common/search/search.component'; +import { ShortcutsComponent } from 'app/layout/common/shortcuts/shortcuts.component'; +import { UserComponent } from 'app/layout/common/user/user.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'futuristic-layout', templateUrl : './futuristic.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [FuseLoadingBarComponent, FuseVerticalNavigationComponent, UserComponent, MatButtonModule, MatIconModule, LanguagesComponent, FuseFullscreenComponent, SearchComponent, ShortcutsComponent, MessagesComponent, NotificationsComponent, NgIf, RouterOutlet, QuickChatComponent], }) export class FuturisticLayoutComponent implements OnInit, OnDestroy { @@ -29,7 +43,7 @@ export class FuturisticLayoutComponent implements OnInit, OnDestroy private _navigationService: NavigationService, private _userService: UserService, private _fuseMediaWatcherService: FuseMediaWatcherService, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -58,22 +72,24 @@ export class FuturisticLayoutComponent implements OnInit, OnDestroy // Subscribe to navigation data this._navigationService.navigation$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((navigation: Navigation) => { + .subscribe((navigation: Navigation) => + { this.navigation = navigation; }); // Subscribe to the user service this._userService.user$ .pipe((takeUntil(this._unsubscribeAll))) - .subscribe((user: User) => { + .subscribe((user: User) => + { this.user = user; }); // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Check if the screen is small this.isScreenSmall = !matchingAliases.includes('md'); }); diff --git a/src/app/layout/layouts/vertical/futuristic/futuristic.module.ts b/src/app/layout/layouts/vertical/futuristic/futuristic.module.ts deleted file mode 100644 index c3ca9592..00000000 --- a/src/app/layout/layouts/vertical/futuristic/futuristic.module.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { NgModule } from '@angular/core'; -import { HttpClientModule } from '@angular/common/http'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatDividerModule } from '@angular/material/divider'; -import { MatIconModule } from '@angular/material/icon'; -import { MatMenuModule } from '@angular/material/menu'; -import { FuseFullscreenModule } from '@fuse/components/fullscreen'; -import { FuseLoadingBarModule } from '@fuse/components/loading-bar'; -import { FuseNavigationModule } from '@fuse/components/navigation'; -import { LanguagesModule } from 'app/layout/common/languages/languages.module'; -import { MessagesModule } from 'app/layout/common/messages/messages.module'; -import { NotificationsModule } from 'app/layout/common/notifications/notifications.module'; -import { QuickChatModule } from 'app/layout/common/quick-chat/quick-chat.module'; -import { SearchModule } from 'app/layout/common/search/search.module'; -import { ShortcutsModule } from 'app/layout/common/shortcuts/shortcuts.module'; -import { UserModule } from 'app/layout/common/user/user.module'; -import { SharedModule } from 'app/shared/shared.module'; -import { FuturisticLayoutComponent } from 'app/layout/layouts/vertical/futuristic/futuristic.component'; - -@NgModule({ - declarations: [ - FuturisticLayoutComponent - ], - imports : [ - HttpClientModule, - RouterModule, - MatButtonModule, - MatDividerModule, - MatIconModule, - MatMenuModule, - FuseFullscreenModule, - FuseLoadingBarModule, - FuseNavigationModule, - LanguagesModule, - MessagesModule, - NotificationsModule, - QuickChatModule, - SearchModule, - ShortcutsModule, - UserModule, - SharedModule - ], - exports : [ - FuturisticLayoutComponent - ] -}) -export class FuturisticLayoutModule -{ -} diff --git a/src/app/layout/layouts/vertical/thin/thin.component.html b/src/app/layout/layouts/vertical/thin/thin.component.html index 5d12ecf5..cf2fff28 100644 --- a/src/app/layout/layouts/vertical/thin/thin.component.html +++ b/src/app/layout/layouts/vertical/thin/thin.component.html @@ -31,7 +31,7 @@ class="mr-2" mat-icon-button (click)="toggleNavigation('mainNavigation')"> - +
@@ -45,7 +45,7 @@ class="lg:hidden" mat-icon-button (click)="quickChat.toggle()"> - +
diff --git a/src/app/layout/layouts/vertical/thin/thin.component.ts b/src/app/layout/layouts/vertical/thin/thin.component.ts index 12f29fa6..166fc7db 100644 --- a/src/app/layout/layouts/vertical/thin/thin.component.ts +++ b/src/app/layout/layouts/vertical/thin/thin.component.ts @@ -1,15 +1,29 @@ +import { NgIf } from '@angular/common'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { Subject, takeUntil } from 'rxjs'; -import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { ActivatedRoute, Router, RouterOutlet } from '@angular/router'; +import { FuseFullscreenComponent } from '@fuse/components/fullscreen'; +import { FuseLoadingBarComponent } from '@fuse/components/loading-bar'; import { FuseNavigationService, FuseVerticalNavigationComponent } from '@fuse/components/navigation'; -import { Navigation } from 'app/core/navigation/navigation.types'; +import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; import { NavigationService } from 'app/core/navigation/navigation.service'; +import { Navigation } from 'app/core/navigation/navigation.types'; +import { LanguagesComponent } from 'app/layout/common/languages/languages.component'; +import { MessagesComponent } from 'app/layout/common/messages/messages.component'; +import { NotificationsComponent } from 'app/layout/common/notifications/notifications.component'; +import { QuickChatComponent } from 'app/layout/common/quick-chat/quick-chat.component'; +import { SearchComponent } from 'app/layout/common/search/search.component'; +import { ShortcutsComponent } from 'app/layout/common/shortcuts/shortcuts.component'; +import { UserComponent } from 'app/layout/common/user/user.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'thin-layout', templateUrl : './thin.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [FuseLoadingBarComponent, FuseVerticalNavigationComponent, MatButtonModule, MatIconModule, LanguagesComponent, FuseFullscreenComponent, SearchComponent, ShortcutsComponent, MessagesComponent, NotificationsComponent, UserComponent, NgIf, RouterOutlet, QuickChatComponent], }) export class ThinLayoutComponent implements OnInit, OnDestroy { @@ -25,7 +39,7 @@ export class ThinLayoutComponent implements OnInit, OnDestroy private _router: Router, private _navigationService: NavigationService, private _fuseMediaWatcherService: FuseMediaWatcherService, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { } @@ -54,15 +68,16 @@ export class ThinLayoutComponent implements OnInit, OnDestroy // Subscribe to navigation data this._navigationService.navigation$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((navigation: Navigation) => { + .subscribe((navigation: Navigation) => + { this.navigation = navigation; }); // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Check if the screen is small this.isScreenSmall = !matchingAliases.includes('md'); }); diff --git a/src/app/layout/layouts/vertical/thin/thin.module.ts b/src/app/layout/layouts/vertical/thin/thin.module.ts deleted file mode 100644 index 93bca447..00000000 --- a/src/app/layout/layouts/vertical/thin/thin.module.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { NgModule } from '@angular/core'; -import { HttpClientModule } from '@angular/common/http'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatDividerModule } from '@angular/material/divider'; -import { MatIconModule } from '@angular/material/icon'; -import { MatMenuModule } from '@angular/material/menu'; -import { FuseFullscreenModule } from '@fuse/components/fullscreen'; -import { FuseLoadingBarModule } from '@fuse/components/loading-bar'; -import { FuseNavigationModule } from '@fuse/components/navigation'; -import { LanguagesModule } from 'app/layout/common/languages/languages.module'; -import { MessagesModule } from 'app/layout/common/messages/messages.module'; -import { NotificationsModule } from 'app/layout/common/notifications/notifications.module'; -import { QuickChatModule } from 'app/layout/common/quick-chat/quick-chat.module'; -import { SearchModule } from 'app/layout/common/search/search.module'; -import { ShortcutsModule } from 'app/layout/common/shortcuts/shortcuts.module'; -import { UserModule } from 'app/layout/common/user/user.module'; -import { SharedModule } from 'app/shared/shared.module'; -import { ThinLayoutComponent } from 'app/layout/layouts/vertical/thin/thin.component'; - -@NgModule({ - declarations: [ - ThinLayoutComponent - ], - imports : [ - HttpClientModule, - RouterModule, - MatButtonModule, - MatDividerModule, - MatIconModule, - MatMenuModule, - FuseFullscreenModule, - FuseLoadingBarModule, - FuseNavigationModule, - LanguagesModule, - MessagesModule, - NotificationsModule, - QuickChatModule, - SearchModule, - ShortcutsModule, - UserModule, - SharedModule - ], - exports : [ - ThinLayoutComponent - ] -}) -export class ThinLayoutModule -{ -} diff --git a/src/app/mock-api/apps/academy/api.ts b/src/app/mock-api/apps/academy/api.ts index ed843342..e39ca5ab 100644 --- a/src/app/mock-api/apps/academy/api.ts +++ b/src/app/mock-api/apps/academy/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { cloneDeep } from 'lodash-es'; import { FuseMockApiService } from '@fuse/lib/mock-api/mock-api.service'; import { categories as categoriesData, courses as coursesData, demoCourseSteps as demoCourseStepsData } from 'app/mock-api/apps/academy/data'; +import { cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class AcademyMockApi { private _categories: any[] = categoriesData; @@ -35,8 +33,8 @@ export class AcademyMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/academy/categories') - .reply(() => { - + .reply(() => + { // Clone the categories const categories = cloneDeep(this._categories); @@ -51,8 +49,8 @@ export class AcademyMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/academy/courses') - .reply(() => { - + .reply(() => + { // Clone the courses const courses = cloneDeep(this._courses); @@ -64,8 +62,8 @@ export class AcademyMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/academy/courses/course') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id from the params const id = request.params.get('id'); @@ -82,7 +80,7 @@ export class AcademyMockApi return [ 200, - course + course, ]; }); } diff --git a/src/app/mock-api/apps/academy/data.ts b/src/app/mock-api/apps/academy/data.ts index 21dfad88..8f0d64da 100644 --- a/src/app/mock-api/apps/academy/data.ts +++ b/src/app/mock-api/apps/academy/data.ts @@ -3,23 +3,23 @@ export const categories = [ { id : '9a67dff7-3c38-4052-a335-0cef93438ff6', title: 'Web', - slug : 'web' + slug : 'web', }, { id : 'a89672f5-e00d-4be4-9194-cb9d29f82165', title: 'Firebase', - slug : 'firebase' + slug : 'firebase', }, { id : '02f42092-bb23-4552-9ddb-cfdcc235d48f', title: 'Cloud', - slug : 'cloud' + slug : 'cloud', }, { id : '5648a630-979f-4403-8c41-fc9790dea8cd', title: 'Android', - slug : 'android' - } + slug : 'android', + }, ]; export const courses = [ { @@ -34,8 +34,8 @@ export const courses = [ featured : true, progress : { currentStep: 3, - completed : 2 - } + completed : 2, + }, }, { id : 'f924007a-2ee9-470b-a316-8d21ed78277f', @@ -49,8 +49,8 @@ export const courses = [ featured : true, progress : { currentStep: 5, - completed : 3 - } + completed : 3, + }, }, { id : '0c06e980-abb5-4ba7-ab65-99a228cab36b', @@ -64,8 +64,8 @@ export const courses = [ featured : false, progress : { currentStep: 10, - completed : 1 - } + completed : 1, + }, }, { id : '1b9a9acc-9a36-403e-a1e7-b11780179e38', @@ -79,8 +79,8 @@ export const courses = [ featured : false, progress : { currentStep: 4, - completed : 3 - } + completed : 3, + }, }, { id : '55eb415f-3f4e-4853-a22b-f0ae91331169', @@ -94,8 +94,8 @@ export const courses = [ featured : false, progress : { currentStep: 6, - completed : 0 - } + completed : 0, + }, }, { id : 'fad2ab23-1011-4028-9a54-e52179ac4a50', @@ -109,8 +109,8 @@ export const courses = [ featured : false, progress : { currentStep: 6, - completed : 0 - } + completed : 0, + }, }, { id : 'c4bc107b-edc4-47a7-a7a8-4fb09732e794', @@ -124,8 +124,8 @@ export const courses = [ featured : false, progress : { currentStep: 0, - completed : 0 - } + completed : 0, + }, }, { id : '1449f945-d032-460d-98e3-406565a22293', @@ -139,8 +139,8 @@ export const courses = [ featured : false, progress : { currentStep: 3, - completed : 1 - } + completed : 1, + }, }, { id : 'f05e08ab-f3e3-4597-a032-6a4b69816f24', @@ -154,8 +154,8 @@ export const courses = [ featured : false, progress : { currentStep: 0, - completed : 1 - } + completed : 1, + }, }, { id : '181728f4-87c8-45c5-b9cc-92265bcd2f4d', @@ -169,8 +169,8 @@ export const courses = [ featured : false, progress : { currentStep: 0, - completed : 0 - } + completed : 0, + }, }, { id : 'fcbfedbf-6187-4b3b-89d3-1a7cb4e11616', @@ -184,8 +184,8 @@ export const courses = [ featured : false, progress : { currentStep: 0, - completed : 0 - } + completed : 0, + }, }, { id : '5213f6a1-1dd7-4b1d-b6e9-ffb7af534f28', @@ -199,8 +199,8 @@ export const courses = [ featured : false, progress : { currentStep: 0, - completed : 0 - } + completed : 0, + }, }, { id : '02992ac9-d1a3-4167-b70e-8a1d5b5ba253', @@ -214,8 +214,8 @@ export const courses = [ featured : false, progress : { currentStep: 8, - completed : 2 - } + completed : 2, + }, }, { id : '2139512f-41fb-4a4a-841a-0b4ac034f9b4', @@ -229,8 +229,8 @@ export const courses = [ featured : false, progress : { currentStep: 0, - completed : 0 - } + completed : 0, + }, }, { id : '65e0a0e0-d8c0-4117-a3cb-eb74f8e28809', @@ -244,8 +244,8 @@ export const courses = [ featured : false, progress : { currentStep: 0, - completed : 0 - } + completed : 0, + }, }, { id : 'c202ebc9-9be3-433a-9d38-7003b3ed7b7a', @@ -259,8 +259,8 @@ export const courses = [ featured : false, progress : { currentStep: 0, - completed : 0 - } + completed : 0, + }, }, { id : '980ae7da-9f77-4e30-aa98-1b1ea594e775', @@ -274,8 +274,8 @@ export const courses = [ featured : false, progress : { currentStep: 0, - completed : 0 - } + completed : 0, + }, }, { id : 'c9748ea9-4117-492c-bdb2-55085b515978', @@ -289,9 +289,9 @@ export const courses = [ featured : false, progress : { currentStep: 2, - completed : 0 - } - } + completed : 0, + }, + }, ]; export const demoCourseContent = `

@@ -654,66 +654,66 @@ export const demoCourseSteps = [ order : 0, title : 'Introduction', subtitle: 'Introducing the library and how it works', - content : `

Introduction

${demoCourseContent}` + content : `

Introduction

${demoCourseContent}`, }, { order : 1, title : 'Get the sample code', subtitle: 'Where to find the sample code and how to access it', - content : `

Get the sample code

${demoCourseContent}` + content : `

Get the sample code

${demoCourseContent}`, }, { order : 2, title : 'Create a Firebase project and Set up your app', subtitle: 'How to create a basic Firebase project and how to run it locally', - content : `

Create a Firebase project and Set up your app

${demoCourseContent}` + content : `

Create a Firebase project and Set up your app

${demoCourseContent}`, }, { order : 3, title : 'Install the Firebase Command Line Interface', subtitle: 'Setting up the Firebase CLI to access command line tools', - content : `

Install the Firebase Command Line Interface

${demoCourseContent}` + content : `

Install the Firebase Command Line Interface

${demoCourseContent}`, }, { order : 4, title : 'Deploy and run the web app', subtitle: 'How to build, push and run the project remotely', - content : `

Deploy and run the web app

${demoCourseContent}` + content : `

Deploy and run the web app

${demoCourseContent}`, }, { order : 5, title : 'The Functions Directory', subtitle: 'Introducing the Functions and Functions Directory', - content : `

The Functions Directory

${demoCourseContent}` + content : `

The Functions Directory

${demoCourseContent}`, }, { order : 6, title : 'Import the Cloud Functions and Firebase Admin modules', subtitle: 'Create your first Function and run it to administer your app', - content : `

Import the Cloud Functions and Firebase Admin modules

${demoCourseContent}` + content : `

Import the Cloud Functions and Firebase Admin modules

${demoCourseContent}`, }, { order : 7, title : 'Welcome New Users', subtitle: 'How to create a welcome message for the new users', - content : `

Welcome New Users

${demoCourseContent}` + content : `

Welcome New Users

${demoCourseContent}`, }, { order : 8, title : 'Images moderation', subtitle: 'How to moderate images; crop, resize, optimize', - content : `

Images moderation

${demoCourseContent}` + content : `

Images moderation

${demoCourseContent}`, }, { order : 9, title : 'New Message Notifications', subtitle: 'How to create and push a notification to a user', - content : `

New Message Notifications

${demoCourseContent}` + content : `

New Message Notifications

${demoCourseContent}`, }, { order : 10, title : 'Congratulations!', subtitle: 'Nice work, you have created your first application', - content : `

Congratulations!

${demoCourseContent}` - } + content : `

Congratulations!

${demoCourseContent}`, + }, ]; diff --git a/src/app/mock-api/apps/chat/api.ts b/src/app/mock-api/apps/chat/api.ts index db2286d5..5a474a8d 100644 --- a/src/app/mock-api/apps/chat/api.ts +++ b/src/app/mock-api/apps/chat/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { assign, cloneDeep, omit } from 'lodash-es'; import { FuseMockApiService } from '@fuse/lib/mock-api'; import { chats as chatsData, contacts as contactsData, messages as messagesData, profile as profileData } from 'app/mock-api/apps/chat/data'; +import { assign, cloneDeep, omit } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class ChatMockApi { private _chats: any[] = chatsData; @@ -31,8 +29,8 @@ export class ChatMockApi ...message, chatId : chat.id, contactId: message.contactId === 'me' ? this._profile.id : chat.contactId, - isMine : message.contactId === 'me' - })) + isMine : message.contactId === 'me', + })), })); } @@ -50,8 +48,8 @@ export class ChatMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/chat/chats') - .reply(() => { - + .reply(() => + { // Clone the chats const chats = cloneDeep(this._chats); @@ -64,8 +62,8 @@ export class ChatMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/chat/chat') - .reply(({request}) => { - + .reply(({request}) => + { // Get the chat id const id = request.params.get('id'); @@ -84,8 +82,8 @@ export class ChatMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/chat/chat') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id and chat const id = request.body.id; const chat = cloneDeep(request.body.chat); @@ -94,8 +92,8 @@ export class ChatMockApi let updatedChat = null; // Find the chat and update it - this._chats.forEach((item, index, chats) => { - + this._chats.forEach((item, index, chats) => + { if ( item.id === id ) { // Update the chat @@ -115,8 +113,8 @@ export class ChatMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/chat/contacts') - .reply(() => { - + .reply(() => + { // Clone the contacts let contacts = cloneDeep(this._contacts); @@ -135,8 +133,8 @@ export class ChatMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/chat/contact') - .reply(({request}) => { - + .reply(({request}) => + { // Get the contact id const id = request.params.get('id'); @@ -155,8 +153,8 @@ export class ChatMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/chat/profile') - .reply(() => { - + .reply(() => + { // Clone the profile const profile = cloneDeep(this._profile); diff --git a/src/app/mock-api/apps/chat/data.ts b/src/app/mock-api/apps/chat/data.ts index 15852d69..3d08e0ee 100644 --- a/src/app/mock-api/apps/chat/data.ts +++ b/src/app/mock-api/apps/chat/data.ts @@ -17,10 +17,10 @@ const _attachments = { 'assets/images/cards/05-320x200.jpg', 'assets/images/cards/06-320x200.jpg', 'assets/images/cards/07-320x200.jpg', - 'assets/images/cards/08-320x200.jpg' + 'assets/images/cards/08-320x200.jpg', ], docs : [], - links: [] + links: [], }; /** @@ -35,176 +35,251 @@ export const messages = [ chatId : '', contactId: 'me', value : 'Hi!', - createdAt: now.minus({week: 1}).set({hour: 18, minute: 56}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 18, + minute: 56, + }).toISO(), }, { id : 'eb82cf4b-fa93-4bf4-a88a-99e987ddb7ea', chatId : '', contactId: '', value : 'Hey, dude!', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 4}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 4, + }).toISO(), }, { id : '3cf9b2a6-ae54-47db-97b2-ee139a8f84e5', chatId : '', contactId: '', value : 'Long time no see.', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 4}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 4, + }).toISO(), }, { id : '2ab91b0f-fafb-45f3-88df-7efaff29134b', chatId : '', contactId: 'me', value : 'Yeah, man... Things were quite busy for me and my family.', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 6}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 6, + }).toISO(), }, { id : '10e81481-378f-49ac-b06b-7c59dcc639ae', chatId : '', contactId: '', value : 'What\'s up? Anything I can help with?', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 6}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 6, + }).toISO(), }, { id : '3b334e72-6605-4ebd-a4f6-3850067048de', chatId : '', contactId: 'me', value : 'We\'ve been on the move, changed 3 places over 4 months', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 7}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 7, + }).toISO(), }, { id : '25998113-3a96-4dd0-a7b9-4d2bb58db3f3', chatId : '', contactId: '', value : 'Wow! That\'s crazy! 🤯 What happened?', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 7}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 7, + }).toISO(), }, { id : '30adb3da-0e4f-487e-aec2-6d9f31e097f6', chatId : '', contactId: 'me', value : 'You know I got a job in that big software company. First move was because of that.', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 8}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 8, + }).toISO(), }, { id : 'c0d6fd6e-d294-4845-8751-e84b8f2c4d3b', chatId : '', contactId: 'me', value : 'Then they decided to re-locate me after a month', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 8}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 8, + }).toISO(), }, { id : '8d3c442b-62fa-496f-bffa-210ff5c1866b', chatId : '', contactId: 'me', value : 'Which was an absolute pain because we just set up everything, house, kids school and all that.', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 8}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 8, + }).toISO(), }, { id : '3cf26ef0-e81f-4698-ac39-487454413332', chatId : '', contactId: 'me', value : 'So we moved the second time.', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 9}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 9, + }).toISO(), }, { id : '415151b9-9ee9-40a4-a4ad-2d88146bc71b', chatId : '', contactId: '', value : 'It\'s crazy!', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 9}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 9, + }).toISO(), }, { id : '3a2d3a0e-839b-46e7-86ae-ca0826ecda7c', chatId : '', contactId: 'me', value : 'Then this virus thing happened and just after a week we moved in, they decided the whole department will be working remotely.', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 10}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 10, + }).toISO(), }, { id : '5329c20d-6754-47ec-af8c-660c72be3528', chatId : '', contactId: 'me', value : 'And then we decided to move back our first location because, you know, everything was already setup so that\'s the third time.', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 10}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 10, + }).toISO(), }, { id : '415151b9-9ee9-40a4-a4ad-2d88146bc71b', chatId : '', contactId: '', value : 'Ohh dude, I\'m really sorry you had to go through all that in such a short period of time', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 11}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 11, + }).toISO(), }, { id : 'ea7662d5-7b72-4c19-ad6c-f80320541001', chatId : '', contactId: '', value : '😕', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 11}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 11, + }).toISO(), }, { id : '3a2d3a0e-839b-46e7-86ae-ca0826ecda7c', chatId : '', contactId: 'me', value : 'Thanks, man! It was good catching up with you.', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 11}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 11, + }).toISO(), }, { id : '5329c20d-6754-47ec-af8c-660c72be3528', chatId : '', contactId: '', value : 'Yeah dude. Hit me again next week so we can grab a coffee, remotely!', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 12}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 12, + }).toISO(), }, { id : '5329c20d-6754-47ec-af8c-660c72be3528', chatId : '', contactId: 'me', value : ':) Sure, man! See you next week!', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 12}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 12, + }).toISO(), }, { id : '5329c20d-6754-47ec-af8c-660c72be3528', chatId : '', contactId: '', value : 'See you later!', - createdAt: now.minus({week: 1}).set({hour: 19, minute: 12}).toISO() + createdAt: now.minus({week: 1}).set({ + hour : 19, + minute: 12, + }).toISO(), }, { id : 'bab8ca0e-b8e5-4375-807b-1c91fca25a5d', chatId : '', contactId: 'me', value : 'Hey! Are you available right now? How about if we grab that coffee today? Remotely, of course :)', - createdAt: now.set({hour: 12, minute: 45}).toISO() + createdAt: now.set({ + hour : 12, + minute: 45, + }).toISO(), }, { id : '8445a84d-599d-4e2d-a31c-5f4f29ad2b4c', chatId : '', contactId: '', value : 'Hi!', - createdAt: now.set({hour: 12, minute: 56}).toISO() + createdAt: now.set({ + hour : 12, + minute: 56, + }).toISO(), }, { id : '9f506742-50da-4350-af9d-61e53392fa08', chatId : '', contactId: '', value : 'Sure thing! I\'m gonna call you in 5, is it okay?', - createdAt: now.set({hour: 12, minute: 56}).toISO() + createdAt: now.set({ + hour : 12, + minute: 56, + }).toISO(), }, { id : 'ca8523d8-faed-45f7-af09-f6bd5c3f3875', chatId : '', contactId: 'me', value : 'Awesome! Call me in 5 minutes..', - createdAt: now.set({hour: 12, minute: 58}).toISO() + createdAt: now.set({ + hour : 12, + minute: 58, + }).toISO(), }, { id : '39944b00-1ffe-4ffb-8ca6-13c292812e06', chatId : '', contactId: '', value : '👍🏻', - createdAt: now.set({hour: 13, minute: 0}).toISO() - } + createdAt: now.set({ + hour : 13, + minute: 0, + }).toISO(), + }, ]; export const chats = [ { @@ -213,7 +288,7 @@ export const chats = [ unreadCount : 2, muted : false, lastMessage : 'See you tomorrow!', - lastMessageAt: '26/04/2021' + lastMessageAt: '26/04/2021', }, { id : '4459a3f0-b65e-4df2-8c37-6ec72fcc4b31', @@ -221,7 +296,7 @@ export const chats = [ unreadCount : 0, muted : false, lastMessage : 'See you tomorrow!', - lastMessageAt: '26/04/2021' + lastMessageAt: '26/04/2021', }, { id : 'f73a5a34-a723-4b35-8439-5289e0164c83', @@ -229,7 +304,7 @@ export const chats = [ unreadCount : 1, muted : false, lastMessage : 'See you tomorrow!', - lastMessageAt: '26/04/2021' + lastMessageAt: '26/04/2021', }, { id : '747f101c-0371-4ca3-9f20-cb913a80fe89', @@ -237,7 +312,7 @@ export const chats = [ unreadCount : 0, muted : true, lastMessage : 'See you tomorrow!', - lastMessageAt: '26/04/2021' + lastMessageAt: '26/04/2021', }, { id : 'b3facfc4-dfc2-4ac2-b55d-cb70b3e68419', @@ -245,7 +320,7 @@ export const chats = [ unreadCount : 0, muted : false, lastMessage : 'See you tomorrow!', - lastMessageAt: '26/04/2021' + lastMessageAt: '26/04/2021', }, { id : 'e3127982-9e53-4611-ac27-eb70c84be4aa', @@ -253,7 +328,7 @@ export const chats = [ unreadCount : 0, muted : false, lastMessage : 'See you tomorrow!', - lastMessageAt: '26/04/2021' + lastMessageAt: '26/04/2021', }, { id : 'a30351f3-bfa6-4ce3-b13a-82748fe0edee', @@ -261,7 +336,7 @@ export const chats = [ unreadCount : 0, muted : false, lastMessage : 'See you tomorrow!', - lastMessageAt: '26/04/2021' + lastMessageAt: '26/04/2021', }, { id : '5636c0ba-fa47-42ca-9160-27340583041e', @@ -269,7 +344,7 @@ export const chats = [ unreadCount : 0, muted : false, lastMessage : 'See you tomorrow!', - lastMessageAt: '26/04/2021' + lastMessageAt: '26/04/2021', }, { id : 'feddd91a-51af-48d8-99b0-cd99ee060a36', @@ -277,7 +352,7 @@ export const chats = [ unreadCount : 0, muted : false, lastMessage : 'See you tomorrow!', - lastMessageAt: '26/04/2021' + lastMessageAt: '26/04/2021', }, { id : '89421c2f-1751-4040-b09b-4a4268db47b9', @@ -285,14 +360,14 @@ export const chats = [ unreadCount : 0, muted : true, lastMessage : 'See you tomorrow!', - lastMessageAt: '26/04/2021' + lastMessageAt: '26/04/2021', }, { id : 'ffbbfdb4-0485-44aa-8521-5ce1eda3fd2f', contactId : '81fdc48c-5572-4123-8a73-71b7892120de', muted : false, lastMessage : 'See you tomorrow!', - lastMessageAt: '26/04/2021' + lastMessageAt: '26/04/2021', }, { id : 'a477baea-df90-4e2f-b108-7791bcd50bc8', @@ -300,7 +375,7 @@ export const chats = [ unreadCount : 0, muted : false, lastMessage : 'See you tomorrow!', - lastMessageAt: '26/04/2021' + lastMessageAt: '26/04/2021', }, { id : '450840c8-aa0b-47a4-b6ca-b864ad9a3a88', @@ -308,7 +383,7 @@ export const chats = [ unreadCount : 0, muted : false, lastMessage : 'See you tomorrow!', - lastMessageAt: '26/04/2021' + lastMessageAt: '26/04/2021', }, { id : '427270f0-841c-47f9-912c-3fd8139db5e6', @@ -316,7 +391,7 @@ export const chats = [ unreadCount : 0, muted : false, lastMessage : 'See you tomorrow!', - lastMessageAt: '26/04/2021' + lastMessageAt: '26/04/2021', }, { id : '491b2918-e71e-4017-919e-0ba009afd003', @@ -324,8 +399,8 @@ export const chats = [ unreadCount : 0, muted : false, lastMessage : 'See you tomorrow!', - lastMessageAt: '26/04/2021' - } + lastMessageAt: '26/04/2021', + }, ]; export const contacts = [ { @@ -337,31 +412,31 @@ export const contacts = [ emails : [ { email: 'dejesusmichael@mail.org', - label: 'Personal' + label: 'Personal', }, { email: 'michael.dejesus@vitricomp.io', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'bs', phoneNumber: '984 531 2468', - label : 'Mobile' + label : 'Mobile', }, { country : 'bs', phoneNumber: '806 470 2693', - label : 'Work' - } + label : 'Work', + }, ], title : 'Track Service Worker', company : 'Vitricomp', birthday : '1975-01-10T12:00:00.000Z', - address : '279 Independence Avenue, Calvary, Guam, PO4127' + address : '279 Independence Avenue, Calvary, Guam, PO4127', }, - attachments: _attachments + attachments: _attachments, }, { id : 'beec5287-ed50-4504-858a-5dc3f8ce6935', @@ -372,26 +447,26 @@ export const contacts = [ emails : [ { email: 'denamolina@mail.us', - label: 'Personal' + label: 'Personal', }, { email: 'molina.dena@envire.tv', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'io', phoneNumber: '934 537 3180', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Weather Analyst', company : 'Envire', birthday : '1994-12-05T12:00:00.000Z', - address : '856 Woodside Avenue, Alfarata, Iowa, PO4992' + address : '856 Woodside Avenue, Alfarata, Iowa, PO4992', }, - attachments: _attachments + attachments: _attachments, }, { id : '9d3f0e7f-dcbd-4e56-a5e8-87b8154e9edf', @@ -402,26 +477,26 @@ export const contacts = [ emails : [ { email: 'bernardlangley@mail.com', - label: 'Personal' + label: 'Personal', }, { email: 'langley.bernard@boilcat.name', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'md', phoneNumber: '893 548 2862', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Electromedical Equipment Technician', company : 'Boilcat', birthday : '1988-05-26T12:00:00.000Z', - address : '943 Adler Place, Hamilton, South Dakota, PO5592' + address : '943 Adler Place, Hamilton, South Dakota, PO5592', }, - attachments: _attachments + attachments: _attachments, }, { id : '42a5da95-5e6d-42fd-a09d-de755d123a47', @@ -432,35 +507,35 @@ export const contacts = [ emails : [ { email: 'mclaughlinsteele@mail.me', - label: 'Personal' + label: 'Personal', }, { email: 'steele.mclaughlin@accel.info', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'va', phoneNumber: '830 484 3813', - label : 'Mobile' + label : 'Mobile', }, { country : 'va', phoneNumber: '999 475 2789', - label : 'Work' + label : 'Work', }, { country : 'va', phoneNumber: '933 406 3598', - label : 'Home' - } + label : 'Home', + }, ], company : 'Accel', birthday : '1968-08-13T12:00:00.000Z', - address : '334 Sandford Street, Savage, Virgin Islands, PO1858' + address : '334 Sandford Street, Savage, Virgin Islands, PO1858', }, - attachments: _attachments + attachments: _attachments, }, { id : 'a7806ced-03f1-4197-8b30-00bdd463366b', @@ -471,27 +546,27 @@ export const contacts = [ emails : [ { email: 'marshcochran@mail.biz', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'tz', phoneNumber: '864 401 3980', - label : 'Mobile' + label : 'Mobile', }, { country : 'tz', phoneNumber: '956 546 2589', - label : 'Work' - } + label : 'Work', + }, ], title : 'Fundraising Director', company : 'Xsports', birthday : '1983-12-22T12:00:00.000Z', - address : '487 Hamilton Walk, Bergoo, American Samoa, PO5616' + address : '487 Hamilton Walk, Bergoo, American Samoa, PO5616', }, - attachments: _attachments + attachments: _attachments, }, { id : 'f4ad15d9-5a24-463a-88ea-6189d6bb3a53', @@ -502,36 +577,36 @@ export const contacts = [ emails : [ { email: 'parrishaustin@mail.co.uk', - label: 'Personal' + label: 'Personal', }, { email: 'austin.parrish@insource.net', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'lv', phoneNumber: '834 426 3574', - label : 'Mobile' + label : 'Mobile', }, { country : 'lv', phoneNumber: '816 573 3694', - label : 'Work' + label : 'Work', }, { country : 'lv', phoneNumber: '967 515 2009', - label : 'Home' - } + label : 'Home', + }, ], title : 'Motor Winder', company : 'Insource', birthday : '1963-08-24T12:00:00.000Z', - address : '610 Harbor Lane, Cascades, Minnesota, PO8639' + address : '610 Harbor Lane, Cascades, Minnesota, PO8639', }, - attachments: _attachments + attachments: _attachments, }, { id : '780d0111-5e5c-4694-8d1d-0ea421971fbf', @@ -542,27 +617,27 @@ export const contacts = [ emails : [ { email: 'lavernedodson@mail.ca', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'ar', phoneNumber: '964 417 2318', - label : 'Mobile' + label : 'Mobile', }, { country : 'ar', phoneNumber: '830 410 2506', - label : 'Work' - } + label : 'Work', + }, ], title : 'Television News Producer', company : 'Lovepad', birthday : '1973-09-25T12:00:00.000Z', - address : '428 Newport Street, Neahkahnie, Arkansas, PO8324' + address : '428 Newport Street, Neahkahnie, Arkansas, PO8324', }, - attachments: _attachments + attachments: _attachments, }, { id : 'bf172879-423a-4fd6-8df3-6d1938bbfe1f', @@ -573,36 +648,36 @@ export const contacts = [ emails : [ { email: 'edwardsmckenzie@mail.org', - label: 'Personal' + label: 'Personal', }, { email: 'mckenzie.edwards@bugsall.io', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'pe', phoneNumber: '934 519 2903', - label : 'Mobile' + label : 'Mobile', }, { country : 'pe', phoneNumber: '989 489 3662', - label : 'Work' + label : 'Work', }, { country : 'pe', phoneNumber: '813 461 2790', - label : 'Home' - } + label : 'Home', + }, ], title : 'Legal Assistant', company : 'Bugsall', birthday : '1988-07-27T12:00:00.000Z', - address : '384 Polhemus Place, Dalton, Palau, PO6038' + address : '384 Polhemus Place, Dalton, Palau, PO6038', }, - attachments: _attachments + attachments: _attachments, }, { id : '1eaa3213-ece2-4ba6-8e15-eb36ca388f50', @@ -613,26 +688,26 @@ export const contacts = [ emails : [ { email: 'trudyberg@mail.us', - label: 'Personal' + label: 'Personal', }, { email: 'berg.trudy@satiance.tv', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'ls', phoneNumber: '912 539 2770', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Meteorologist', company : 'Satiance', birthday : '1989-12-15T12:00:00.000Z', - address : '945 Jerome Avenue, Riceville, North Carolina, PO1625' + address : '945 Jerome Avenue, Riceville, North Carolina, PO1625', }, - attachments: _attachments + attachments: _attachments, }, { id : 'abd9e78b-9e96-428f-b3ff-4d934c401bee', @@ -643,31 +718,31 @@ export const contacts = [ emails : [ { email: 'elsiemelendez@mail.com', - label: 'Personal' + label: 'Personal', }, { email: 'melendez.elsie@chillium.name', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'tg', phoneNumber: '907 515 3007', - label : 'Mobile' + label : 'Mobile', }, { country : 'tg', phoneNumber: '967 534 2803', - label : 'Work' - } + label : 'Work', + }, ], title : 'Fundraising Director', company : 'Chillium', birthday : '1980-06-28T12:00:00.000Z', - address : '428 Varanda Place, Veyo, Oklahoma, PO6188' + address : '428 Varanda Place, Veyo, Oklahoma, PO6188', }, - attachments: _attachments + attachments: _attachments, }, { id : 'efae92cc-3bd1-4c6a-a395-b6760c69bd55', @@ -678,32 +753,32 @@ export const contacts = [ emails : [ { email: 'lambunderwood@mail.me', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'pf', phoneNumber: '855 517 2767', - label : 'Mobile' + label : 'Mobile', }, { country : 'pf', phoneNumber: '906 442 3593', - label : 'Work' + label : 'Work', }, { country : 'pf', phoneNumber: '905 402 2121', - label : 'Home' - } + label : 'Home', + }, ], title : 'Legal Assistant', company : 'Exotechno', birthday : '1990-07-26T12:00:00.000Z', - address : '609 Greenpoint Avenue, Beason, Vermont, PO5229' + address : '609 Greenpoint Avenue, Beason, Vermont, PO5229', }, - attachments: _attachments + attachments: _attachments, }, { id : 'bde636a7-c3d2-4bff-939a-aab11df1516b', @@ -714,32 +789,32 @@ export const contacts = [ emails : [ { email: 'tessavaldez@mail.info', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'dz', phoneNumber: '892 430 2631', - label : 'Mobile' + label : 'Mobile', }, { country : 'dz', phoneNumber: '997 525 2354', - label : 'Work' + label : 'Work', }, { country : 'dz', phoneNumber: '907 472 2857', - label : 'Home' - } + label : 'Home', + }, ], title : 'Banker Mason', company : 'Securia', birthday : '1994-01-10T12:00:00.000Z', - address : '183 Crosby Avenue, Blanco, Mississippi, PO3463' + address : '183 Crosby Avenue, Blanco, Mississippi, PO3463', }, - attachments: _attachments + attachments: _attachments, }, { id : '6519600a-5eaa-45f8-8bed-c46fddb3b26a', @@ -750,31 +825,31 @@ export const contacts = [ emails : [ { email: 'mcleodwagner@mail.biz', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'at', phoneNumber: '977 590 2773', - label : 'Mobile' + label : 'Mobile', }, { country : 'at', phoneNumber: '828 496 3813', - label : 'Work' + label : 'Work', }, { country : 'at', phoneNumber: '831 432 2512', - label : 'Home' - } + label : 'Home', + }, ], company : 'Inrt', birthday : '1980-12-03T12:00:00.000Z', - address : '736 Glen Street, Kaka, West Virginia, PO9350' + address : '736 Glen Street, Kaka, West Virginia, PO9350', }, - attachments: _attachments + attachments: _attachments, }, { id : '6d80a6f6-2884-4ac4-9c73-06b82c220017', @@ -785,36 +860,36 @@ export const contacts = [ emails : [ { email: 'kristiehall@mail.co.uk', - label: 'Personal' + label: 'Personal', }, { email: 'hall.kristie@austech.net', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'tn', phoneNumber: '841 530 3641', - label : 'Mobile' + label : 'Mobile', }, { country : 'tn', phoneNumber: '941 410 3743', - label : 'Work' + label : 'Work', }, { country : 'tn', phoneNumber: '938 599 3850', - label : 'Home' - } + label : 'Home', + }, ], title : 'Electromedical Equipment Technician', company : 'Austech', birthday : '1975-08-31T12:00:00.000Z', - address : '547 Revere Place, Hoehne, New Hampshire, PO2125' + address : '547 Revere Place, Hoehne, New Hampshire, PO2125', }, - attachments: _attachments + attachments: _attachments, }, { id : '35190d23-036e-44ef-b545-cc744c626edd', @@ -825,32 +900,32 @@ export const contacts = [ emails : [ { email: 'shannonkennedy@mail.ca', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'gb', phoneNumber: '899 508 2992', - label : 'Mobile' + label : 'Mobile', }, { country : 'gb', phoneNumber: '834 499 3354', - label : 'Work' + label : 'Work', }, { country : 'gb', phoneNumber: '834 526 3388', - label : 'Home' - } + label : 'Home', + }, ], title : 'Gas Meter Mechanic', company : 'Eventix', birthday : '1994-09-07T12:00:00.000Z', - address : '480 Chase Court, Edinburg, Kansas, PO5357' + address : '480 Chase Court, Edinburg, Kansas, PO5357', }, - attachments: _attachments + attachments: _attachments, }, { id : 'b018c194-68ec-4915-ab56-e9f3bd2d98db', @@ -861,36 +936,36 @@ export const contacts = [ emails : [ { email: 'marthaswanson@mail.org', - label: 'Personal' + label: 'Personal', }, { email: 'swanson.martha@sequitur.io', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'gb', phoneNumber: '844 480 3309', - label : 'Mobile' + label : 'Mobile', }, { country : 'gb', phoneNumber: '981 591 3239', - label : 'Work' + label : 'Work', }, { country : 'gb', phoneNumber: '923 484 3147', - label : 'Home' - } + label : 'Home', + }, ], title : 'Short Story Writer', company : 'Sequitur', birthday : '1993-12-31T12:00:00.000Z', - address : '595 Howard Place, Convent, Rhode Island, PO6993' + address : '595 Howard Place, Convent, Rhode Island, PO6993', }, - attachments: _attachments + attachments: _attachments, }, { id : 'b7c355e9-e003-467e-82d2-4f6978c1a696', @@ -901,26 +976,26 @@ export const contacts = [ emails : [ { email: 'jacklynmorgan@mail.us', - label: 'Personal' + label: 'Personal', }, { email: 'morgan.jacklyn@shopabout.tv', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'so', phoneNumber: '974 542 2061', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Animal Sitter', company : 'Shopabout', birthday : '1976-09-30T12:00:00.000Z', - address : '971 Conover Street, Statenville, Louisiana, PO6622' + address : '971 Conover Street, Statenville, Louisiana, PO6622', }, - attachments: _attachments + attachments: _attachments, }, { id : 'cfa07b7c-93d1-42e7-9592-493d9efc78ae', @@ -931,31 +1006,31 @@ export const contacts = [ emails : [ { email: 'tonyabowers@mail.com', - label: 'Personal' + label: 'Personal', }, { email: 'bowers.tonya@tourmania.name', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'tv', phoneNumber: '922 585 2914', - label : 'Mobile' + label : 'Mobile', }, { country : 'tv', phoneNumber: '913 538 2961', - label : 'Work' - } + label : 'Work', + }, ], title : 'Track Service Worker', company : 'Tourmania', birthday : '1976-06-14T12:00:00.000Z', - address : '197 Marconi Place, Welda, Delaware, PO6061' + address : '197 Marconi Place, Welda, Delaware, PO6061', }, - attachments: _attachments + attachments: _attachments, }, { id : '00feeb63-c83a-4655-a37e-a07da10cfa1c', @@ -966,32 +1041,32 @@ export const contacts = [ emails : [ { email: 'latonyacruz@mail.me', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'tm', phoneNumber: '981 508 2080', - label : 'Mobile' + label : 'Mobile', }, { country : 'tm', phoneNumber: '817 425 2052', - label : 'Work' + label : 'Work', }, { country : 'tm', phoneNumber: '939 434 3805', - label : 'Home' - } + label : 'Home', + }, ], title : 'Motor Winder', company : 'Zilch', birthday : '1967-11-28T12:00:00.000Z', - address : '775 Dahill Road, Iberia, California, PO2169' + address : '775 Dahill Road, Iberia, California, PO2169', }, - attachments: _attachments + attachments: _attachments, }, { id : '142abf21-e635-4a7d-9330-e57f66adcdbe', @@ -1002,32 +1077,32 @@ export const contacts = [ emails : [ { email: 'evangelinamcclain@mail.info', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'ck', phoneNumber: '992 583 3187', - label : 'Mobile' + label : 'Mobile', }, { country : 'ck', phoneNumber: '881 472 3297', - label : 'Work' + label : 'Work', }, { country : 'ck', phoneNumber: '846 477 3596', - label : 'Home' - } + label : 'Home', + }, ], title : 'Congressional Representative', company : 'Straloy', birthday : '1976-02-15T12:00:00.000Z', - address : '305 Columbia Street, Dupuyer, Puerto Rico, PO8744' + address : '305 Columbia Street, Dupuyer, Puerto Rico, PO8744', }, - attachments: _attachments + attachments: _attachments, }, { id : 'e4f255a3-b5dd-45a7-975f-c399604a399a', @@ -1038,27 +1113,27 @@ export const contacts = [ emails : [ { email: 'herringgonzales@mail.biz', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'ai', phoneNumber: '995 411 2513', - label : 'Mobile' + label : 'Mobile', }, { country : 'ai', phoneNumber: '839 492 2760', - label : 'Work' - } + label : 'Work', + }, ], title : 'Gas Meter Mechanic', company : 'Cubix', birthday : '1995-02-16T12:00:00.000Z', - address : '195 Brooklyn Road, Jeff, Marshall Islands, PO2943' + address : '195 Brooklyn Road, Jeff, Marshall Islands, PO2943', }, - attachments: _attachments + attachments: _attachments, }, { id : 'ab4f712d-d712-41a8-b567-be4c66c349a3', @@ -1069,27 +1144,27 @@ export const contacts = [ emails : [ { email: 'alycecash@mail.co.uk', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'ht', phoneNumber: '969 499 3077', - label : 'Mobile' + label : 'Mobile', }, { country : 'ht', phoneNumber: '907 513 2784', - label : 'Work' - } + label : 'Work', + }, ], title : 'Weather Analyst', company : 'Qnekt', birthday : '1973-12-19T12:00:00.000Z', - address : '964 Henry Street, Eureka, Indiana, PO1035' + address : '964 Henry Street, Eureka, Indiana, PO1035', }, - attachments: _attachments + attachments: _attachments, }, { id : '5d067800-c301-46c6-a7f7-28dc89d9a554', @@ -1100,26 +1175,26 @@ export const contacts = [ emails : [ { email: 'kristinepacheco@mail.net', - label: 'Personal' + label: 'Personal', }, { email: 'pacheco.kristine@vurbo.ca', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'mm', phoneNumber: '977 516 2492', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Short Story Writer', company : 'Vurbo', birthday : '1985-10-22T12:00:00.000Z', - address : '622 Dodworth Street, Rose, Arizona, PO9530' + address : '622 Dodworth Street, Rose, Arizona, PO9530', }, - attachments: _attachments + attachments: _attachments, }, { id : 'c500255a-1173-47d0-a0e4-4944d48fc12a', @@ -1130,22 +1205,22 @@ export const contacts = [ emails : [ { email: 'englishhaney@mail.org', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'lb', phoneNumber: '989 567 3834', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Meteorologist', company : 'Photobin', birthday : '1969-09-05T12:00:00.000Z', - address : '579 Pooles Lane, Belleview, Montana, PO4106' + address : '579 Pooles Lane, Belleview, Montana, PO4106', }, - attachments: _attachments + attachments: _attachments, }, { id : 'b62359fd-f2a8-46e6-904e-31052d1cd675', @@ -1156,26 +1231,26 @@ export const contacts = [ emails : [ { email: 'josephstrickland@mail.io', - label: 'Personal' + label: 'Personal', }, { email: 'strickland.joseph@bytrex.us', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'jo', phoneNumber: '990 450 2729', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Hotel Manager', company : 'Bytrex', birthday : '1991-09-08T12:00:00.000Z', - address : '844 Ellery Street, Hondah, Texas, PO1272' + address : '844 Ellery Street, Hondah, Texas, PO1272', }, - attachments: _attachments + attachments: _attachments, }, { id : '16b9e696-ea95-4dd8-86c4-3caf705a1dc6', @@ -1186,22 +1261,22 @@ export const contacts = [ emails : [ { email: 'nunezfaulkner@mail.tv', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'xk', phoneNumber: '909 552 3327', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Hotel Manager', company : 'Buzzopia', birthday : '1982-01-23T12:00:00.000Z', - address : '614 Herkimer Court, Darrtown, Nebraska, PO9308' + address : '614 Herkimer Court, Darrtown, Nebraska, PO9308', }, - attachments: _attachments + attachments: _attachments, }, { id : '19662ecf-0686-4aad-a46c-24b552eb2ff5', @@ -1212,22 +1287,22 @@ export const contacts = [ emails : [ { email: 'juanamorrow@mail.com', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'ee', phoneNumber: '868 438 3943', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Meteorologist', company : 'Lyria', birthday : '1992-03-29T12:00:00.000Z', - address : '663 Drew Street, Juntura, Georgia, PO9857' + address : '663 Drew Street, Juntura, Georgia, PO9857', }, - attachments: _attachments + attachments: _attachments, }, { id : '26dfe954-8bf3-45ee-b285-1d0a88c8d3ea', @@ -1238,22 +1313,22 @@ export const contacts = [ emails : [ { email: 'laragaines@mail.name', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'mr', phoneNumber: '891 498 2043', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Electromedical Equipment Technician', company : 'Acruex', birthday : '1961-06-07T12:00:00.000Z', - address : '762 Troutman Street, Drummond, Oregon, PO6973' + address : '762 Troutman Street, Drummond, Oregon, PO6973', }, - attachments: _attachments + attachments: _attachments, }, { id : 'd6462af2-c488-4de7-9b26-3845bd2983f9', @@ -1264,32 +1339,32 @@ export const contacts = [ emails : [ { email: 'johnstonriddle@mail.me', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'bt', phoneNumber: '979 541 2691', - label : 'Mobile' + label : 'Mobile', }, { country : 'bt', phoneNumber: '909 407 3887', - label : 'Work' + label : 'Work', }, { country : 'bt', phoneNumber: '864 557 3128', - label : 'Home' - } + label : 'Home', + }, ], title : 'Hotel Manager', company : 'Xleen', birthday : '1972-09-13T12:00:00.000Z', - address : '674 Bryant Street, Grahamtown, Federated States Of Micronesia, PO2757' + address : '674 Bryant Street, Grahamtown, Federated States Of Micronesia, PO2757', }, - attachments: _attachments + attachments: _attachments, }, { id : 'a1723c04-69fe-4573-a135-6645658afe76', @@ -1300,26 +1375,26 @@ export const contacts = [ emails : [ { email: 'vargasgardner@mail.info', - label: 'Personal' + label: 'Personal', }, { email: 'gardner.vargas@cosmosis.biz', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'bi', phoneNumber: '855 456 2754', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Bindery Machine Operator', company : 'Cosmosis', birthday : '1979-10-21T12:00:00.000Z', - address : '869 Seton Place, Chemung, Maine, PO8109' + address : '869 Seton Place, Chemung, Maine, PO8109', }, - attachments: _attachments + attachments: _attachments, }, { id : '823e6166-c0c8-4373-9270-8a0d17489a08', @@ -1330,32 +1405,32 @@ export const contacts = [ emails : [ { email: 'mccallday@mail.co.uk', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'se', phoneNumber: '993 504 3286', - label : 'Mobile' + label : 'Mobile', }, { country : 'se', phoneNumber: '924 434 2238', - label : 'Work' + label : 'Work', }, { country : 'se', phoneNumber: '816 466 2634', - label : 'Home' - } + label : 'Home', + }, ], title : 'Historiographer', company : 'Nipaz', birthday : '1964-03-05T12:00:00.000Z', - address : '854 Hanover Place, Harleigh, New Jersey, PO9459' + address : '854 Hanover Place, Harleigh, New Jersey, PO9459', }, - attachments: _attachments + attachments: _attachments, }, { id : '2c37ed00-427a-46d7-8f8f-d711c768d1ee', @@ -1366,27 +1441,27 @@ export const contacts = [ emails : [ { email: 'silvafoster@mail.net', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'bn', phoneNumber: '916 511 3837', - label : 'Mobile' + label : 'Mobile', }, { country : 'bn', phoneNumber: '949 564 3247', - label : 'Work' - } + label : 'Work', + }, ], title : 'Insurance Analyst', company : 'Extrawear', birthday : '1980-04-29T12:00:00.000Z', - address : '137 Bridge Street, Sisquoc, District Of Columbia, PO4105' + address : '137 Bridge Street, Sisquoc, District Of Columbia, PO4105', }, - attachments: _attachments + attachments: _attachments, }, { id : '944764c0-b261-4428-9188-bbd3022d66a8', @@ -1397,36 +1472,36 @@ export const contacts = [ emails : [ { email: 'cathrynsnider@mail.ca', - label: 'Personal' + label: 'Personal', }, { email: 'snider.cathryn@phormula.org', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'na', phoneNumber: '896 471 3036', - label : 'Mobile' + label : 'Mobile', }, { country : 'na', phoneNumber: '851 491 3567', - label : 'Work' + label : 'Work', }, { country : 'na', phoneNumber: '805 487 2016', - label : 'Home' - } + label : 'Home', + }, ], title : 'Short Story Writer', company : 'Phormula', birthday : '1981-06-09T12:00:00.000Z', - address : '528 Glenmore Avenue, Elrama, Illinois, PO2952' + address : '528 Glenmore Avenue, Elrama, Illinois, PO2952', }, - attachments: _attachments + attachments: _attachments, }, { id : 'f2b3c756-5ad2-4d4b-aee5-b32c91457128', @@ -1437,27 +1512,27 @@ export const contacts = [ emails : [ { email: 'mooneycantrell@mail.io', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'bh', phoneNumber: '915 577 3020', - label : 'Mobile' + label : 'Mobile', }, { country : 'bh', phoneNumber: '923 431 3594', - label : 'Work' - } + label : 'Work', + }, ], title : 'Fundraising Director', company : 'Crustatia', birthday : '1968-12-07T12:00:00.000Z', - address : '277 Coventry Road, Fairforest, Nevada, PO6031' + address : '277 Coventry Road, Fairforest, Nevada, PO6031', }, - attachments: _attachments + attachments: _attachments, }, { id : '54b1c201-4b2b-4be0-ad70-a6413e9628cd', @@ -1468,22 +1543,22 @@ export const contacts = [ emails : [ { email: 'saundramurphy@mail.us', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'mt', phoneNumber: '902 529 2999', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Dental Laboratory Worker', company : 'Zilencio', birthday : '1983-11-07T12:00:00.000Z', - address : '557 Monroe Street, Mayfair, Maryland, PO7200' + address : '557 Monroe Street, Mayfair, Maryland, PO7200', }, - attachments: _attachments + attachments: _attachments, }, { id : 'faf979c7-a13b-445a-b30a-08845f5fa90e', @@ -1494,27 +1569,27 @@ export const contacts = [ emails : [ { email: 'enidsparks@mail.tv', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'bh', phoneNumber: '813 410 3258', - label : 'Mobile' + label : 'Mobile', }, { country : 'bh', phoneNumber: '877 501 2767', - label : 'Work' - } + label : 'Work', + }, ], title : 'Historiographer', company : 'Skybold', birthday : '1984-05-04T12:00:00.000Z', - address : '219 Village Court, Keyport, Alabama, PO7776' + address : '219 Village Court, Keyport, Alabama, PO7776', }, - attachments: _attachments + attachments: _attachments, }, { id : '2bfa2be5-7688-48d5-b5ac-dc0d9ac97f14', @@ -1525,27 +1600,27 @@ export const contacts = [ emails : [ { email: 'nadiamcknight@mail.com', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'tk', phoneNumber: '943 511 2203', - label : 'Mobile' + label : 'Mobile', }, { country : 'tk', phoneNumber: '817 578 2993', - label : 'Work' - } + label : 'Work', + }, ], title : 'Legal Assistant', company : 'Pearlesex', birthday : '1973-10-06T12:00:00.000Z', - address : '448 Berriman Street, Reinerton, Washington, PO6704' + address : '448 Berriman Street, Reinerton, Washington, PO6704', }, - attachments: _attachments + attachments: _attachments, }, { id : '77a4383b-b5a5-4943-bc46-04c3431d1566', @@ -1556,26 +1631,26 @@ export const contacts = [ emails : [ { email: 'bestblackburn@mail.name', - label: 'Personal' + label: 'Personal', }, { email: 'blackburn.best@beadzza.me', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'gl', phoneNumber: '814 498 3701', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Hotel Manager', company : 'Beadzza', birthday : '1987-06-07T12:00:00.000Z', - address : '578 Tampa Court, Wescosville, Ohio, PO4108' + address : '578 Tampa Court, Wescosville, Ohio, PO4108', }, - attachments: _attachments + attachments: _attachments, }, { id : '8bb0f597-673a-47ca-8c77-2f83219cb9af', @@ -1586,32 +1661,32 @@ export const contacts = [ emails : [ { email: 'duncancarver@mail.info', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'jm', phoneNumber: '968 547 2111', - label : 'Mobile' + label : 'Mobile', }, { country : 'jm', phoneNumber: '968 433 3120', - label : 'Work' + label : 'Work', }, { country : 'jm', phoneNumber: '905 425 2777', - label : 'Home' - } + label : 'Home', + }, ], title : 'Historiographer', company : 'Hotcakes', birthday : '1980-09-15T12:00:00.000Z', - address : '931 Bristol Street, Why, South Carolina, PO9700' + address : '931 Bristol Street, Why, South Carolina, PO9700', }, - attachments: _attachments + attachments: _attachments, }, { id : 'c318e31f-1d74-49c5-8dae-2bc5805e2fdb', @@ -1622,32 +1697,32 @@ export const contacts = [ emails : [ { email: 'martinrichards@mail.biz', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'mg', phoneNumber: '902 500 2668', - label : 'Mobile' + label : 'Mobile', }, { country : 'mg', phoneNumber: '947 559 2919', - label : 'Work' + label : 'Work', }, { country : 'mg', phoneNumber: '934 434 3768', - label : 'Home' - } + label : 'Home', + }, ], title : 'Dental Laboratory Worker', company : 'Overfork', birthday : '1977-04-12T12:00:00.000Z', - address : '268 Hutchinson Court, Drytown, Florida, PO3041' + address : '268 Hutchinson Court, Drytown, Florida, PO3041', }, - attachments: _attachments + attachments: _attachments, }, { id : '0a8bc517-631a-4a93-aacc-000fa2e8294c', @@ -1658,22 +1733,22 @@ export const contacts = [ emails : [ { email: 'candicemunoz@mail.co.uk', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'fm', phoneNumber: '838 562 2769', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Legal Assistant', company : 'Eclipto', birthday : '1976-09-09T12:00:00.000Z', - address : '946 Remsen Street, Caroline, New Mexico, PO3247' + address : '946 Remsen Street, Caroline, New Mexico, PO3247', }, - attachments: _attachments + attachments: _attachments, }, { id : 'a4c9945a-757b-40b0-8942-d20e0543cabd', @@ -1684,27 +1759,27 @@ export const contacts = [ emails : [ { email: 'vickiemosley@mail.net', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'tr', phoneNumber: '939 555 3054', - label : 'Mobile' + label : 'Mobile', }, { country : 'tr', phoneNumber: '852 486 2053', - label : 'Work' - } + label : 'Work', + }, ], title : 'Bindery Machine Operator', company : 'Strozen', birthday : '1989-06-21T12:00:00.000Z', - address : '397 Vandalia Avenue, Rockingham, Michigan, PO8089' + address : '397 Vandalia Avenue, Rockingham, Michigan, PO8089', }, - attachments: _attachments + attachments: _attachments, }, { id : 'b8258ccf-48b5-46a2-9c95-e0bd7580c645', @@ -1715,27 +1790,27 @@ export const contacts = [ emails : [ { email: 'tinaharris@mail.ca', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'gp', phoneNumber: '933 464 2431', - label : 'Mobile' + label : 'Mobile', }, { country : 'gp', phoneNumber: '894 535 3609', - label : 'Work' - } + label : 'Work', + }, ], title : 'Short Story Writer', company : 'Gallaxia', birthday : '1976-09-10T12:00:00.000Z', - address : '821 Beverly Road, Tyro, Colorado, PO4248' + address : '821 Beverly Road, Tyro, Colorado, PO4248', }, - attachments: _attachments + attachments: _attachments, }, { id : 'f004ea79-98fc-436c-9ba5-6cfe32fe583d', @@ -1746,31 +1821,31 @@ export const contacts = [ emails : [ { email: 'holtmanning@mail.org', - label: 'Personal' + label: 'Personal', }, { email: 'manning.holt@idetica.io', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'nz', phoneNumber: '822 531 2600', - label : 'Mobile' + label : 'Mobile', }, { country : 'nz', phoneNumber: '922 549 2094', - label : 'Work' - } + label : 'Work', + }, ], title : 'Fundraising Director', company : 'Idetica', birthday : '1973-11-08T12:00:00.000Z', - address : '364 Porter Avenue, Delshire, Missouri, PO8911' + address : '364 Porter Avenue, Delshire, Missouri, PO8911', }, - attachments: _attachments + attachments: _attachments, }, { id : '8b69fe2d-d7cc-4a3d-983d-559173e37d37', @@ -1781,26 +1856,26 @@ export const contacts = [ emails : [ { email: 'mistyramsey@mail.us', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'kp', phoneNumber: '990 457 2106', - label : 'Mobile' + label : 'Mobile', }, { country : 'kp', phoneNumber: '918 550 2946', - label : 'Work' - } + label : 'Work', + }, ], company : 'Grupoli', birthday : '1969-08-10T12:00:00.000Z', - address : '101 Sackett Street, Naomi, Tennessee, PO6335' + address : '101 Sackett Street, Naomi, Tennessee, PO6335', }, - attachments: _attachments + attachments: _attachments, }, { id : 'cdcc62e4-1520-4ccc-803d-52868c7e01ba', @@ -1811,32 +1886,32 @@ export const contacts = [ emails : [ { email: 'deealvarado@mail.tv', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'nu', phoneNumber: '855 445 2483', - label : 'Mobile' + label : 'Mobile', }, { country : 'nu', phoneNumber: '858 415 2860', - label : 'Work' + label : 'Work', }, { country : 'nu', phoneNumber: '968 587 2752', - label : 'Home' - } + label : 'Home', + }, ], title : 'Dental Laboratory Worker', company : 'Tsunamia', birthday : '1996-06-17T12:00:00.000Z', - address : '956 Pierrepont Street, Crumpler, Hawaii, PO3299' + address : '956 Pierrepont Street, Crumpler, Hawaii, PO3299', }, - attachments: _attachments + attachments: _attachments, }, { id : 'e2946946-b4b5-4fd7-bab4-62c38cdff2f1', @@ -1847,22 +1922,22 @@ export const contacts = [ emails : [ { email: 'samanthajacobson@mail.com', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'es', phoneNumber: '879 591 3327', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Dental Laboratory Worker', company : 'Emoltra', birthday : '1972-02-04T12:00:00.000Z', - address : '384 Love Lane, Dyckesville, New York, PO4115' + address : '384 Love Lane, Dyckesville, New York, PO4115', }, - attachments: _attachments + attachments: _attachments, }, { id : 'fdc77706-6ba2-4397-b2f8-a9a0b6495153', @@ -1873,27 +1948,27 @@ export const contacts = [ emails : [ { email: 'rhealandry@mail.name', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'jp', phoneNumber: '906 579 3698', - label : 'Mobile' + label : 'Mobile', }, { country : 'jp', phoneNumber: '841 475 2681', - label : 'Work' - } + label : 'Work', + }, ], title : 'Electromedical Equipment Technician', company : 'Comtent', birthday : '1988-05-22T12:00:00.000Z', - address : '725 Arlington Avenue, Mathews, Wyoming, PO4562' + address : '725 Arlington Avenue, Mathews, Wyoming, PO4562', }, - attachments: _attachments + attachments: _attachments, }, { id : '12148fa2-e0a4-49fb-b3c5-daeecdb5180a', @@ -1904,36 +1979,36 @@ export const contacts = [ emails : [ { email: 'olgarhodes@mail.me', - label: 'Personal' + label: 'Personal', }, { email: 'rhodes.olga@moreganic.info', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'tl', phoneNumber: '971 514 3366', - label : 'Mobile' + label : 'Mobile', }, { country : 'tl', phoneNumber: '807 480 2033', - label : 'Work' + label : 'Work', }, { country : 'tl', phoneNumber: '810 528 3783', - label : 'Home' - } + label : 'Home', + }, ], title : 'Pastry Baker', company : 'Moreganic', birthday : '1971-08-13T12:00:00.000Z', - address : '253 Beard Street, Staples, Massachusetts, PO8089' + address : '253 Beard Street, Staples, Massachusetts, PO8089', }, - attachments: _attachments + attachments: _attachments, }, { id : '07dd64eb-8b8f-4765-a16c-8db083c45096', @@ -1944,32 +2019,32 @@ export const contacts = [ emails : [ { email: 'lorrainepennington@mail.biz', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'fm', phoneNumber: '932 404 3308', - label : 'Mobile' + label : 'Mobile', }, { country : 'fm', phoneNumber: '979 550 3200', - label : 'Work' + label : 'Work', }, { country : 'fm', phoneNumber: '868 557 3568', - label : 'Home' - } + label : 'Home', + }, ], title : 'Electromedical Equipment Technician', company : 'Marvane', birthday : '1967-06-10T12:00:00.000Z', - address : '962 Whitney Avenue, Sussex, North Dakota, PO5796' + address : '962 Whitney Avenue, Sussex, North Dakota, PO5796', }, - attachments: _attachments + attachments: _attachments, }, { id : '81fdc48c-5572-4123-8a73-71b7892120de', @@ -1980,26 +2055,26 @@ export const contacts = [ emails : [ { email: 'earlenerosales@mail.co.uk', - label: 'Personal' + label: 'Personal', }, { email: 'rosales.earlene@softmicro.net', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'ki', phoneNumber: '927 589 3619', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Historiographer', company : 'Softmicro', birthday : '1960-11-13T12:00:00.000Z', - address : '981 Kingston Avenue, Topaz, Connecticut, PO6866' + address : '981 Kingston Avenue, Topaz, Connecticut, PO6866', }, - attachments: _attachments + attachments: _attachments, }, { id : 'f8bbf6be-d49a-41a3-bb80-3d51df84c12b', @@ -2010,36 +2085,36 @@ export const contacts = [ emails : [ { email: 'marciahatfield@mail.ca', - label: 'Personal' + label: 'Personal', }, { email: 'hatfield.marcia@datagen.org', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'no', phoneNumber: '883 432 3718', - label : 'Mobile' + label : 'Mobile', }, { country : 'no', phoneNumber: '934 516 2135', - label : 'Work' + label : 'Work', }, { country : 'no', phoneNumber: '923 596 3843', - label : 'Home' - } + label : 'Home', + }, ], title : 'Track Service Worker', company : 'Datagen', birthday : '1980-02-26T12:00:00.000Z', - address : '802 Preston Court, Waikele, Pennsylvania, PO7421' + address : '802 Preston Court, Waikele, Pennsylvania, PO7421', }, - attachments: _attachments + attachments: _attachments, }, { id : 'cd482941-3eaf-4560-ac37-56a9296025df', @@ -2050,22 +2125,22 @@ export const contacts = [ emails : [ { email: 'lilianaayala@mail.io', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'bd', phoneNumber: '936 590 2412', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Insurance Analyst', company : 'Pharmex', birthday : '1988-04-27T12:00:00.000Z', - address : '935 Guider Avenue, Kipp, Wisconsin, PO5282' + address : '935 Guider Avenue, Kipp, Wisconsin, PO5282', }, - attachments: _attachments + attachments: _attachments, }, { id : '22f18d47-ff8d-440e-888d-a1747c093052', @@ -2076,32 +2151,32 @@ export const contacts = [ emails : [ { email: 'aliceharding@mail.us', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'sx', phoneNumber: '881 472 3113', - label : 'Mobile' + label : 'Mobile', }, { country : 'sx', phoneNumber: '974 548 3124', - label : 'Work' + label : 'Work', }, { country : 'sx', phoneNumber: '800 518 3615', - label : 'Home' - } + label : 'Home', + }, ], title : 'Track Service Worker', company : 'Futurity', birthday : '1985-09-17T12:00:00.000Z', - address : '387 Holt Court, Thomasville, Alaska, PO2867' + address : '387 Holt Court, Thomasville, Alaska, PO2867', }, - attachments: _attachments + attachments: _attachments, }, { id : 'a9a9f382-e4c3-42fb-9fe9-65aa534732b5', @@ -2112,31 +2187,31 @@ export const contacts = [ emails : [ { email: 'franciscaperkins@mail.tv', - label: 'Personal' + label: 'Personal', }, { email: 'perkins.francisca@overplex.com', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'au', phoneNumber: '830 430 3437', - label : 'Mobile' + label : 'Mobile', }, { country : 'au', phoneNumber: '868 538 2886', - label : 'Work' - } + label : 'Work', + }, ], title : 'Dental Laboratory Worker', company : 'Overplex', birthday : '1966-08-14T12:00:00.000Z', - address : '733 Delmonico Place, Belvoir, Virginia, PO7102' + address : '733 Delmonico Place, Belvoir, Virginia, PO7102', }, - attachments: _attachments + attachments: _attachments, }, { id : '0222b24b-c288-48d1-b356-0f087fa172f8', @@ -2147,36 +2222,36 @@ export const contacts = [ emails : [ { email: 'warrengates@mail.name', - label: 'Personal' + label: 'Personal', }, { email: 'gates.warren@qualitex.me', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'gt', phoneNumber: '847 513 2248', - label : 'Mobile' + label : 'Mobile', }, { country : 'gt', phoneNumber: '866 591 3665', - label : 'Work' + label : 'Work', }, { country : 'gt', phoneNumber: '877 539 3840', - label : 'Home' - } + label : 'Home', + }, ], title : 'Banker Mason', company : 'Qualitex', birthday : '1977-02-23T12:00:00.000Z', - address : '713 Fane Court, Lemoyne, Kentucky, PO3601' + address : '713 Fane Court, Lemoyne, Kentucky, PO3601', }, - attachments: _attachments + attachments: _attachments, }, { id : '0630f1ca-cdb9-405d-b134-68f733334089', @@ -2187,31 +2262,31 @@ export const contacts = [ emails : [ { email: 'maryannmcintyre@mail.info', - label: 'Personal' + label: 'Personal', }, { email: 'mcintyre.maryann@aquafire.biz', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'bf', phoneNumber: '861 419 2752', - label : 'Mobile' + label : 'Mobile', }, { country : 'bf', phoneNumber: '935 553 3031', - label : 'Work' - } + label : 'Work', + }, ], title : 'Fundraising Director', company : 'Aquafire', birthday : '1963-04-07T12:00:00.000Z', - address : '698 Brooklyn Avenue, Dixonville, Utah, PO2712' + address : '698 Brooklyn Avenue, Dixonville, Utah, PO2712', }, - attachments: _attachments + attachments: _attachments, }, { id : '999c24f3-7bb8-4a01-85ca-2fca7863c57e', @@ -2222,36 +2297,36 @@ export const contacts = [ emails : [ { email: 'sharonmarshall@mail.co.uk', - label: 'Personal' + label: 'Personal', }, { email: 'marshall.sharon@utara.net', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'fo', phoneNumber: '947 441 2999', - label : 'Mobile' + label : 'Mobile', }, { country : 'fo', phoneNumber: '984 441 2615', - label : 'Work' + label : 'Work', }, { country : 'fo', phoneNumber: '824 541 2714', - label : 'Home' - } + label : 'Home', + }, ], title : 'Legal Assistant', company : 'Utara', birthday : '1960-01-26T12:00:00.000Z', - address : '923 Ivan Court, Hatteras, Idaho, PO7573' + address : '923 Ivan Court, Hatteras, Idaho, PO7573', }, - attachments: _attachments + attachments: _attachments, }, { id : '7e8e1f1e-d19f-45c7-86bd-6fef599dae71', @@ -2262,36 +2337,36 @@ export const contacts = [ emails : [ { email: 'margowitt@mail.ca', - label: 'Personal' + label: 'Personal', }, { email: 'witt.margo@norsul.org', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'ao', phoneNumber: '992 596 3391', - label : 'Mobile' + label : 'Mobile', }, { country : 'ao', phoneNumber: '950 489 2505', - label : 'Work' + label : 'Work', }, { country : 'ao', phoneNumber: '891 540 2231', - label : 'Home' - } + label : 'Home', + }, ], title : 'Television News Producer', company : 'Norsul', birthday : '1975-08-31T12:00:00.000Z', - address : '539 Rockaway Avenue, Whitmer, Guam, PO4871' + address : '539 Rockaway Avenue, Whitmer, Guam, PO4871', }, - attachments: _attachments + attachments: _attachments, }, { id : 'bedcb6a2-da83-4631-866a-77d10d239477', @@ -2302,22 +2377,22 @@ export const contacts = [ emails : [ { email: 'alvaradoturner@mail.io', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'lv', phoneNumber: '961 537 3956', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Fundraising Director', company : 'Geologix', birthday : '1985-12-08T12:00:00.000Z', - address : '233 Willmohr Street, Cressey, Iowa, PO1962' + address : '233 Willmohr Street, Cressey, Iowa, PO1962', }, - attachments: _attachments + attachments: _attachments, }, { id : '66f9de1b-f842-4d4c-bb59-f97e91db0462', @@ -2328,36 +2403,36 @@ export const contacts = [ emails : [ { email: 'maldonadorodriquez@mail.us', - label: 'Personal' + label: 'Personal', }, { email: 'rodriquez.maldonado@zentility.tv', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'et', phoneNumber: '811 502 3398', - label : 'Mobile' + label : 'Mobile', }, { country : 'et', phoneNumber: '877 402 2443', - label : 'Work' + label : 'Work', }, { country : 'et', phoneNumber: '949 536 3451', - label : 'Home' - } + label : 'Home', + }, ], title : 'Dental Laboratory Worker', company : 'Zentility', birthday : '1993-06-01T12:00:00.000Z', - address : '916 Cobek Court, Morningside, South Dakota, PO2019' + address : '916 Cobek Court, Morningside, South Dakota, PO2019', }, - attachments: _attachments + attachments: _attachments, }, { id : '9cb0ea57-3461-4182-979b-593b0c1ec6c3', @@ -2368,36 +2443,36 @@ export const contacts = [ emails : [ { email: 'tranduke@mail.com', - label: 'Personal' + label: 'Personal', }, { email: 'duke.tran@splinx.name', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'si', phoneNumber: '837 503 2254', - label : 'Mobile' + label : 'Mobile', }, { country : 'si', phoneNumber: '893 405 3190', - label : 'Work' + label : 'Work', }, { country : 'si', phoneNumber: '931 402 3874', - label : 'Home' - } + label : 'Home', + }, ], title : 'Legal Assistant', company : 'Splinx', birthday : '1976-04-27T12:00:00.000Z', - address : '405 Canarsie Road, Richville, Virgin Islands, PO2744' + address : '405 Canarsie Road, Richville, Virgin Islands, PO2744', }, - attachments: _attachments + attachments: _attachments, }, { id : '2fb89a90-5622-4b5b-8df3-d49b85905392', @@ -2408,32 +2483,32 @@ export const contacts = [ emails : [ { email: 'estelalyons@mail.me', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'vg', phoneNumber: '864 459 3205', - label : 'Mobile' + label : 'Mobile', }, { country : 'vg', phoneNumber: '886 524 2880', - label : 'Work' + label : 'Work', }, { country : 'vg', phoneNumber: '815 484 3420', - label : 'Home' - } + label : 'Home', + }, ], title : 'Animal Sitter', company : 'Gonkle', birthday : '1968-03-11T12:00:00.000Z', - address : '540 Metrotech Courtr, Garfield, American Samoa, PO2290' + address : '540 Metrotech Courtr, Garfield, American Samoa, PO2290', }, - attachments: _attachments + attachments: _attachments, }, { id : '8141dd08-3a6e-4770-912c-59d0ed06dde6', @@ -2444,26 +2519,26 @@ export const contacts = [ emails : [ { email: 'madeleinefletcher@mail.info', - label: 'Personal' + label: 'Personal', }, { email: 'fletcher.madeleine@genmom.biz', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'uy', phoneNumber: '898 554 3354', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Fundraising Director', company : 'Genmom', birthday : '1970-07-15T12:00:00.000Z', - address : '825 Cherry Street, Foscoe, Minnesota, PO7290' + address : '825 Cherry Street, Foscoe, Minnesota, PO7290', }, - attachments: _attachments + attachments: _attachments, }, { id : '7585015c-ada2-4f88-998d-9646865d1ad2', @@ -2474,32 +2549,32 @@ export const contacts = [ emails : [ { email: 'meyerroach@mail.co.uk', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'uz', phoneNumber: '891 543 2053', - label : 'Mobile' + label : 'Mobile', }, { country : 'uz', phoneNumber: '842 564 3671', - label : 'Work' + label : 'Work', }, { country : 'uz', phoneNumber: '992 491 3514', - label : 'Home' - } + label : 'Home', + }, ], title : 'Electromedical Equipment Technician', company : 'Zentime', birthday : '1968-10-16T12:00:00.000Z', - address : '315 Albemarle Road, Allison, Arkansas, PO6008' + address : '315 Albemarle Road, Allison, Arkansas, PO6008', }, - attachments: _attachments + attachments: _attachments, }, { id : '32c73a6a-67f2-48a9-b2a1-b23da83187bb', @@ -2510,31 +2585,31 @@ export const contacts = [ emails : [ { email: 'boltonobrien@mail.net', - label: 'Personal' + label: 'Personal', }, { email: 'obrien.bolton@enersol.ca', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'tn', phoneNumber: '860 472 2458', - label : 'Mobile' + label : 'Mobile', }, { country : 'tn', phoneNumber: '887 499 3580', - label : 'Work' - } + label : 'Work', + }, ], title : 'Banker Mason', company : 'Enersol', birthday : '1968-09-08T12:00:00.000Z', - address : '818 Aviation Road, Geyserville, Palau, PO9655' + address : '818 Aviation Road, Geyserville, Palau, PO9655', }, - attachments: _attachments + attachments: _attachments, }, { id : '114642a2-ccb7-4cb1-ad2b-5e9b6a0c1d2e', @@ -2545,32 +2620,32 @@ export const contacts = [ emails : [ { email: 'barberjohnson@mail.org', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'az', phoneNumber: '928 567 2521', - label : 'Mobile' + label : 'Mobile', }, { country : 'az', phoneNumber: '898 515 2048', - label : 'Work' + label : 'Work', }, { country : 'az', phoneNumber: '935 495 3348', - label : 'Home' - } + label : 'Home', + }, ], title : 'Talent Manager', company : 'Zounds', birthday : '1967-03-02T12:00:00.000Z', - address : '386 Vernon Avenue, Dragoon, North Carolina, PO4559' + address : '386 Vernon Avenue, Dragoon, North Carolina, PO4559', }, - attachments: _attachments + attachments: _attachments, }, { id : '310ece7d-dbb0-45d6-9e69-14c24e50fe3d', @@ -2581,27 +2656,27 @@ export const contacts = [ emails : [ { email: 'cervanteskramer@mail.io', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'vg', phoneNumber: '998 498 2507', - label : 'Mobile' + label : 'Mobile', }, { country : 'vg', phoneNumber: '856 477 3445', - label : 'Work' - } + label : 'Work', + }, ], title : 'Motor Winder', company : 'Xeronk', birthday : '1992-09-04T12:00:00.000Z', - address : '238 Rochester Avenue, Lydia, Oklahoma, PO3914' + address : '238 Rochester Avenue, Lydia, Oklahoma, PO3914', }, - attachments: _attachments + attachments: _attachments, }, { id : 'dcc673f6-de59-4715-94ed-8f64663d449b', @@ -2612,32 +2687,32 @@ export const contacts = [ emails : [ { email: 'megansuarez@mail.us', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'bb', phoneNumber: '875 422 2053', - label : 'Mobile' + label : 'Mobile', }, { country : 'bb', phoneNumber: '861 487 2597', - label : 'Work' + label : 'Work', }, { country : 'bb', phoneNumber: '873 414 3953', - label : 'Home' - } + label : 'Home', + }, ], title : 'Bindery Machine Operator', company : 'Cemention', birthday : '1984-09-08T12:00:00.000Z', - address : '112 Tillary Street, Camptown, Vermont, PO8827' + address : '112 Tillary Street, Camptown, Vermont, PO8827', }, - attachments: _attachments + attachments: _attachments, }, { id : '3e4ca731-d39b-4ad9-b6e0-f84e67f4b74a', @@ -2648,31 +2723,31 @@ export const contacts = [ emails : [ { email: 'ofeliaratliff@mail.tv', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'vu', phoneNumber: '978 546 3699', - label : 'Mobile' + label : 'Mobile', }, { country : 'vu', phoneNumber: '892 551 2229', - label : 'Work' + label : 'Work', }, { country : 'vu', phoneNumber: '949 495 3479', - label : 'Home' - } + label : 'Home', + }, ], company : 'Buzzmaker', birthday : '1988-11-11T12:00:00.000Z', - address : '951 Hampton Avenue, Bartonsville, Mississippi, PO4232' + address : '951 Hampton Avenue, Bartonsville, Mississippi, PO4232', }, - attachments: _attachments + attachments: _attachments, }, { id : '2012d4a5-19e4-444d-aaff-1d8b1d853650', @@ -2683,32 +2758,32 @@ export const contacts = [ emails : [ { email: 'laurelparker@mail.com', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'lu', phoneNumber: '805 502 3677', - label : 'Mobile' + label : 'Mobile', }, { country : 'lu', phoneNumber: '925 527 2973', - label : 'Work' + label : 'Work', }, { country : 'lu', phoneNumber: '975 495 2977', - label : 'Home' - } + label : 'Home', + }, ], title : 'Fundraising Director', company : 'Omnigog', birthday : '1987-05-17T12:00:00.000Z', - address : '157 Woodhull Street, Rutherford, West Virginia, PO6646' + address : '157 Woodhull Street, Rutherford, West Virginia, PO6646', }, - attachments: _attachments + attachments: _attachments, }, { id : '012b8219-74bf-447c-af2c-66904d90a956', @@ -2719,26 +2794,26 @@ export const contacts = [ emails : [ { email: 'tracydelacruz@mail.name', - label: 'Personal' + label: 'Personal', }, { email: 'delacruz.tracy@shepard.me', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'co', phoneNumber: '974 428 2886', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Bindery Machine Operator', company : 'Shepard', birthday : '1963-08-10T12:00:00.000Z', - address : '604 Merit Court, Wyano, New Hampshire, PO1641' + address : '604 Merit Court, Wyano, New Hampshire, PO1641', }, - attachments: _attachments + attachments: _attachments, }, { id : '8b1befd2-66a7-4981-ae52-77f01b382d18', @@ -2749,36 +2824,36 @@ export const contacts = [ emails : [ { email: 'jeannettestanton@mail.info', - label: 'Personal' + label: 'Personal', }, { email: 'stanton.jeannette@zentury.biz', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'dz', phoneNumber: '947 561 3783', - label : 'Mobile' + label : 'Mobile', }, { country : 'dz', phoneNumber: '917 463 3737', - label : 'Work' + label : 'Work', }, { country : 'dz', phoneNumber: '835 510 2059', - label : 'Home' - } + label : 'Home', + }, ], title : 'Hotel Manager', company : 'Zentury', birthday : '1975-09-02T12:00:00.000Z', - address : '100 Menahan Street, Snyderville, Kansas, PO1006' + address : '100 Menahan Street, Snyderville, Kansas, PO1006', }, - attachments: _attachments + attachments: _attachments, }, { id : '844668c3-5e20-4fed-9e3a-7d274f696e61', @@ -2789,26 +2864,26 @@ export const contacts = [ emails : [ { email: 'johnniecleveland@mail.co.uk', - label: 'Personal' + label: 'Personal', }, { email: 'cleveland.johnnie@viasia.net', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'au', phoneNumber: '947 468 2942', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Fundraising Director', company : 'Viasia', birthday : '1986-03-15T12:00:00.000Z', - address : '283 Albany Avenue, Jennings, Rhode Island, PO1646' + address : '283 Albany Avenue, Jennings, Rhode Island, PO1646', }, - attachments: _attachments + attachments: _attachments, }, { id : '5a01e870-8be1-45a5-b58a-ec09c06e8f28', @@ -2819,27 +2894,27 @@ export const contacts = [ emails : [ { email: 'stacihyde@mail.ca', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'id', phoneNumber: '944 525 2944', - label : 'Mobile' + label : 'Mobile', }, { country : 'id', phoneNumber: '877 500 2506', - label : 'Work' - } + label : 'Work', + }, ], title : 'Banker Mason', company : 'Zilla', birthday : '1975-04-22T12:00:00.000Z', - address : '560 Dooley Street, Ellerslie, Louisiana, PO1005' + address : '560 Dooley Street, Ellerslie, Louisiana, PO1005', }, - attachments: _attachments + attachments: _attachments, }, { id : '5ac1f193-f150-45f9-bfe4-b7b4e1a83ff9', @@ -2850,32 +2925,32 @@ export const contacts = [ emails : [ { email: 'angelagallagher@mail.org', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'et', phoneNumber: '996 514 3856', - label : 'Mobile' + label : 'Mobile', }, { country : 'et', phoneNumber: '903 539 2049', - label : 'Work' + label : 'Work', }, { country : 'et', phoneNumber: '938 463 3685', - label : 'Home' - } + label : 'Home', + }, ], title : 'Electromedical Equipment Technician', company : 'Zenolux', birthday : '1965-08-02T12:00:00.000Z', - address : '445 Remsen Avenue, Ruckersville, Delaware, PO2712' + address : '445 Remsen Avenue, Ruckersville, Delaware, PO2712', }, - attachments: _attachments + attachments: _attachments, }, { id : '995df091-d78a-4bb7-840c-ba6a7d14a1bd', @@ -2886,27 +2961,27 @@ export const contacts = [ emails : [ { email: 'hutchinsonlevy@mail.io', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'et', phoneNumber: '970 546 3452', - label : 'Mobile' + label : 'Mobile', }, { country : 'et', phoneNumber: '894 438 2430', - label : 'Work' - } + label : 'Work', + }, ], title : 'Congressional Representative', company : 'Zytrek', birthday : '1978-03-22T12:00:00.000Z', - address : '911 Lois Avenue, Epworth, California, PO6557' + address : '911 Lois Avenue, Epworth, California, PO6557', }, - attachments: _attachments + attachments: _attachments, }, { id : '7184be71-a28f-4f2b-8c45-15f78cf2f825', @@ -2917,22 +2992,22 @@ export const contacts = [ emails : [ { email: 'alissanelson@mail.us', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'lu', phoneNumber: '893 600 2639', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Bindery Machine Operator', company : 'Emtrak', birthday : '1993-10-19T12:00:00.000Z', - address : '514 Sutter Avenue, Shindler, Puerto Rico, PO3862' + address : '514 Sutter Avenue, Shindler, Puerto Rico, PO3862', }, - attachments: _attachments + attachments: _attachments, }, { id : '325d508c-ca49-42bf-b0d5-c4a6b8da3d5c', @@ -2943,22 +3018,22 @@ export const contacts = [ emails : [ { email: 'oliverhead@mail.tv', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'bn', phoneNumber: '977 528 3294', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Meteorologist', company : 'Rameon', birthday : '1967-01-05T12:00:00.000Z', - address : '569 Clermont Avenue, Movico, Marshall Islands, PO7293' + address : '569 Clermont Avenue, Movico, Marshall Islands, PO7293', }, - attachments: _attachments + attachments: _attachments, }, { id : 'c674b6e1-b846-4bba-824b-0b4df0cdec48', @@ -2969,42 +3044,42 @@ export const contacts = [ emails : [ { email: 'duranbarr@mail.com', - label: 'Personal' + label: 'Personal', }, { email: 'barr.duran@hinway.name', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'sr', phoneNumber: '857 457 2508', - label : 'Mobile' + label : 'Mobile', }, { country : 'sr', phoneNumber: '887 522 2146', - label : 'Work' + label : 'Work', }, { country : 'sr', phoneNumber: '947 574 3174', - label : 'Home' - } + label : 'Home', + }, ], title : 'Insurance Analyst', company : 'Hinway', birthday : '1977-11-06T12:00:00.000Z', - address : '103 Chestnut Avenue, Glenbrook, Indiana, PO2578' + address : '103 Chestnut Avenue, Glenbrook, Indiana, PO2578', }, - attachments: _attachments - } + attachments: _attachments, + }, ]; export const profile: any = { id : 'cfaad35d-07a3-4447-a6c3-d8c3d54fd5df', name : 'Brian Hughes', email : 'hughes.brian@company.com', avatar: 'assets/images/avatars/brian-hughes.jpg', - about : 'Hi there! I\'m using FuseChat.' + about : 'Hi there! I\'m using FuseChat.', }; diff --git a/src/app/mock-api/apps/contacts/api.ts b/src/app/mock-api/apps/contacts/api.ts index 25508945..58c4f559 100644 --- a/src/app/mock-api/apps/contacts/api.ts +++ b/src/app/mock-api/apps/contacts/api.ts @@ -1,12 +1,10 @@ import { Injectable } from '@angular/core'; -import { from, map } from 'rxjs'; -import { assign, cloneDeep } from 'lodash-es'; import { FuseMockApiService, FuseMockApiUtils } from '@fuse/lib/mock-api'; import { contacts as contactsData, countries as countriesData, tags as tagsData } from 'app/mock-api/apps/contacts/data'; +import { assign, cloneDeep } from 'lodash-es'; +import { from, map } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class ContactsMockApi { private _contacts: any[] = contactsData; @@ -36,8 +34,8 @@ export class ContactsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/contacts/all') - .reply(() => { - + .reply(() => + { // Clone the contacts const contacts = cloneDeep(this._contacts); @@ -53,8 +51,8 @@ export class ContactsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/contacts/search') - .reply(({request}) => { - + .reply(({request}) => + { // Get the search query const query = request.params.get('query'); @@ -80,8 +78,8 @@ export class ContactsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/contacts/contact') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id from the params const id = request.params.get('id'); @@ -100,8 +98,8 @@ export class ContactsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/apps/contacts/contact') - .reply(() => { - + .reply(() => + { // Generate a new contact const newContact = { id : FuseMockApiUtils.guid(), @@ -111,12 +109,12 @@ export class ContactsMockApi phoneNumbers: [], job : { title : '', - company: '' + company: '', }, birthday : null, address : null, notes : null, - tags : [] + tags : [], }; // Unshift the new contact @@ -131,8 +129,8 @@ export class ContactsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/contacts/contact') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id and contact const id = request.body.id; const contact = cloneDeep(request.body.contact); @@ -141,8 +139,8 @@ export class ContactsMockApi let updatedContact = null; // Find the contact and update it - this._contacts.forEach((item, index, contacts) => { - + this._contacts.forEach((item, index, contacts) => + { if ( item.id === id ) { // Update the contact @@ -162,14 +160,14 @@ export class ContactsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onDelete('api/apps/contacts/contact') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id const id = request.params.get('id'); // Find the contact and delete it - this._contacts.forEach((item, index) => { - + this._contacts.forEach((item, index) => + { if ( item.id === id ) { this._contacts.splice(index, 1); @@ -199,8 +197,8 @@ export class ContactsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/apps/contacts/tag') - .reply(({request}) => { - + .reply(({request}) => + { // Get the tag const newTag = cloneDeep(request.body.tag); @@ -219,8 +217,8 @@ export class ContactsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/contacts/tag') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id and tag const id = request.body.id; const tag = cloneDeep(request.body.tag); @@ -229,8 +227,8 @@ export class ContactsMockApi let updatedTag = null; // Find the tag and update it - this._tags.forEach((item, index, tags) => { - + this._tags.forEach((item, index, tags) => + { if ( item.id === id ) { // Update the tag @@ -250,14 +248,14 @@ export class ContactsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onDelete('api/apps/contacts/tag') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id const id = request.params.get('id'); // Find the tag and delete it - this._tags.forEach((item, index) => { - + this._tags.forEach((item, index) => + { if ( item.id === id ) { this._tags.splice(index, 1); @@ -268,7 +266,8 @@ export class ContactsMockApi const contactsWithTag = this._contacts.filter(contact => contact.tags.indexOf(id) > -1); // Iterate through them and delete the tag - contactsWithTag.forEach((contact) => { + contactsWithTag.forEach((contact) => + { contact.tags.splice(contact.tags.indexOf(id), 1); }); @@ -288,18 +287,20 @@ export class ContactsMockApi const readAsDataURL = (file: File): Promise => // Return a new promise - new Promise((resolve, reject) => { - + new Promise((resolve, reject) => + { // Create a new reader const reader = new FileReader(); // Resolve the promise on success - reader.onload = (): void => { + reader.onload = (): void => + { resolve(reader.result); }; // Reject the promise on error - reader.onerror = (e): void => { + reader.onerror = (e): void => + { reject(e); }; @@ -310,8 +311,8 @@ export class ContactsMockApi this._fuseMockApiService .onPost('api/apps/contacts/avatar') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id and avatar const id = request.body.id; const avatar = request.body.avatar; @@ -326,11 +327,11 @@ export class ContactsMockApi // the src attribute of the img tag works with both image urls // and encoded images. return from(readAsDataURL(avatar)).pipe( - map((path) => { - + map((path) => + { // Find the contact and update it - this._contacts.forEach((item, index, contacts) => { - + this._contacts.forEach((item, index, contacts) => + { if ( item.id === id ) { // Update the avatar @@ -343,7 +344,7 @@ export class ContactsMockApi // Return the response return [200, updatedContact]; - }) + }), ); }); } diff --git a/src/app/mock-api/apps/contacts/data.ts b/src/app/mock-api/apps/contacts/data.ts index c1dbdcc6..e701922f 100644 --- a/src/app/mock-api/apps/contacts/data.ts +++ b/src/app/mock-api/apps/contacts/data.ts @@ -8,24 +8,24 @@ export const contacts = [ emails : [ { email: 'dejesusmichael@mail.org', - label: 'Personal' + label: 'Personal', }, { email: 'michael.dejesus@vitricomp.io', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'bs', phoneNumber: '984 531 2468', - label : 'Mobile' + label : 'Mobile', }, { country : 'bs', phoneNumber: '806 470 2693', - label : 'Work' - } + label : 'Work', + }, ], title : 'Track Service Worker', company : 'Vitricomp', @@ -33,8 +33,8 @@ export const contacts = [ address : '279 Independence Avenue, Calvary, Guam, PO4127', notes : '

Do incididunt cillum duis eu pariatur enim proident minim officia amet proident consequat consequat qui consequat magna magna occaecat aliquip culpa pariatur velit nisi nostrud irure eu ullamco exercitation sint.

Cillum deserunt laborum laborum quis nisi enim et aliquip labore excepteur in excepteur labore amet in ipsum ipsum nostrud deserunt lorem nisi voluptate dolor minim enim ut eu cupidatat enim.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : 'beec5287-ed50-4504-858a-5dc3f8ce6935', @@ -44,19 +44,19 @@ export const contacts = [ emails : [ { email: 'denamolina@mail.us', - label: 'Personal' + label: 'Personal', }, { email: 'molina.dena@envire.tv', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'io', phoneNumber: '934 537 3180', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Weather Analyst', company : 'Envire', @@ -64,8 +64,8 @@ export const contacts = [ address : '856 Woodside Avenue, Alfarata, Iowa, PO4992', notes : '

Consequat duis ullamco sint elit pariatur esse dolore nostrud consequat lorem duis sunt veniam ipsum exercitation eiusmod consequat nisi quis voluptate quis officia irure fugiat ex duis eu amet ex.

Irure est nisi dolor culpa sunt nulla irure lorem adipisicing non do consequat deserunt et ea eu non reprehenderit fugiat ex elit nulla sunt quis voluptate enim nulla aliquip veniam.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : '9d3f0e7f-dcbd-4e56-a5e8-87b8154e9edf', @@ -75,19 +75,19 @@ export const contacts = [ emails : [ { email: 'bernardlangley@mail.com', - label: 'Personal' + label: 'Personal', }, { email: 'langley.bernard@boilcat.name', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'md', phoneNumber: '893 548 2862', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Electromedical Equipment Technician', company : 'Boilcat', @@ -95,8 +95,8 @@ export const contacts = [ address : '943 Adler Place, Hamilton, South Dakota, PO5592', notes : '

Est amet in adipisicing ex excepteur ullamco est lorem adipisicing veniam reprehenderit elit commodo cillum commodo eu officia fugiat id reprehenderit sunt mollit eiusmod dolor fugiat ad do esse aliquip.

Mollit amet adipisicing enim est est commodo sint et eu nulla in laboris ipsum aliqua elit aliqua adipisicing ea nulla nulla consectetur velit laborum labore ullamco eu sit consectetur velit.

', tags : [ - 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309' - ] + 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309', + ], }, { id : '42a5da95-5e6d-42fd-a09d-de755d123a47', @@ -106,37 +106,37 @@ export const contacts = [ emails : [ { email: 'mclaughlinsteele@mail.me', - label: 'Personal' + label: 'Personal', }, { email: 'steele.mclaughlin@accel.info', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'va', phoneNumber: '830 484 3813', - label : 'Mobile' + label : 'Mobile', }, { country : 'va', phoneNumber: '999 475 2789', - label : 'Work' + label : 'Work', }, { country : 'va', phoneNumber: '933 406 3598', - label : 'Home' - } + label : 'Home', + }, ], company : 'Accel', birthday : '1968-08-13T12:00:00.000Z', address : '334 Sandford Street, Savage, Virgin Islands, PO1858', notes : '

Consequat eu aliquip dolor non consequat laborum ad non labore cillum consectetur quis dolore do ea nulla incididunt proident ea eiusmod in do qui eiusmod et irure dolor ea adipisicing.

Reprehenderit occaecat nostrud ad aliquip commodo amet velit id ut minim dolor mollit mollit in eiusmod voluptate lorem nisi labore culpa elit proident laborum ipsum occaecat esse sint nostrud esse.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : 'a7806ced-03f1-4197-8b30-00bdd463366b', @@ -146,20 +146,20 @@ export const contacts = [ emails : [ { email: 'marshcochran@mail.biz', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'tz', phoneNumber: '864 401 3980', - label : 'Mobile' + label : 'Mobile', }, { country : 'tz', phoneNumber: '956 546 2589', - label : 'Work' - } + label : 'Work', + }, ], title : 'Fundraising Director', company : 'Xsports', @@ -167,8 +167,8 @@ export const contacts = [ address : '487 Hamilton Walk, Bergoo, American Samoa, PO5616', notes : '

Id eiusmod deserunt amet lorem commodo consequat nostrud magna aliquip ex et pariatur labore non elit ad ad nulla culpa reprehenderit enim magna aliqua enim pariatur occaecat sint do lorem.

Adipisicing ut est nulla nisi cupidatat consequat aliqua et esse in voluptate amet eiusmod ut esse ea do irure commodo aute culpa amet consequat id adipisicing et incididunt ut duis.

', tags : [ - '2026ce08-d08f-4b4f-9506-b10cdb5b104f' - ] + '2026ce08-d08f-4b4f-9506-b10cdb5b104f', + ], }, { id : 'f4ad15d9-5a24-463a-88ea-6189d6bb3a53', @@ -178,29 +178,29 @@ export const contacts = [ emails : [ { email: 'parrishaustin@mail.co.uk', - label: 'Personal' + label: 'Personal', }, { email: 'austin.parrish@insource.net', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'lv', phoneNumber: '834 426 3574', - label : 'Mobile' + label : 'Mobile', }, { country : 'lv', phoneNumber: '816 573 3694', - label : 'Work' + label : 'Work', }, { country : 'lv', phoneNumber: '967 515 2009', - label : 'Home' - } + label : 'Home', + }, ], title : 'Motor Winder', company : 'Insource', @@ -208,8 +208,8 @@ export const contacts = [ address : '610 Harbor Lane, Cascades, Minnesota, PO8639', notes : '

Cillum enim eiusmod dolor aliqua ipsum exercitation sint aliqua lorem dolore id velit sint velit labore cupidatat minim cupidatat elit est magna eu proident eiusmod non pariatur est esse pariatur.

Sint do enim officia velit pariatur excepteur commodo adipisicing labore elit velit velit id exercitation excepteur veniam reprehenderit sint nulla duis ad incididunt cillum in in labore laboris magna esse.

', tags : [ - 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309' - ] + 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309', + ], }, { id : '780d0111-5e5c-4694-8d1d-0ea421971fbf', @@ -219,20 +219,20 @@ export const contacts = [ emails : [ { email: 'lavernedodson@mail.ca', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'ar', phoneNumber: '964 417 2318', - label : 'Mobile' + label : 'Mobile', }, { country : 'ar', phoneNumber: '830 410 2506', - label : 'Work' - } + label : 'Work', + }, ], title : 'Television News Producer', company : 'Lovepad', @@ -240,8 +240,8 @@ export const contacts = [ address : '428 Newport Street, Neahkahnie, Arkansas, PO8324', notes : '

Incididunt lorem proident est anim amet nulla do nulla ea anim ullamco ea amet voluptate laboris do elit elit consequat in esse in dolor enim irure ut irure ad commodo.

Aliqua dolore nulla sunt ad nostrud aute labore occaecat non amet nulla adipisicing sint eu lorem velit sint do sint adipisicing esse adipisicing anim culpa quis dolor non magna ea.

', tags : [ - 'a8991c76-2fda-4bbd-a718-df13d6478847' - ] + 'a8991c76-2fda-4bbd-a718-df13d6478847', + ], }, { id : 'bf172879-423a-4fd6-8df3-6d1938bbfe1f', @@ -251,29 +251,29 @@ export const contacts = [ emails : [ { email: 'edwardsmckenzie@mail.org', - label: 'Personal' + label: 'Personal', }, { email: 'mckenzie.edwards@bugsall.io', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'pe', phoneNumber: '934 519 2903', - label : 'Mobile' + label : 'Mobile', }, { country : 'pe', phoneNumber: '989 489 3662', - label : 'Work' + label : 'Work', }, { country : 'pe', phoneNumber: '813 461 2790', - label : 'Home' - } + label : 'Home', + }, ], title : 'Legal Assistant', company : 'Bugsall', @@ -281,8 +281,8 @@ export const contacts = [ address : '384 Polhemus Place, Dalton, Palau, PO6038', notes : '

Eu veniam consectetur eiusmod anim sint anim consectetur do consectetur aliqua cillum proident fugiat do in aliqua ipsum id consequat commodo qui officia adipisicing ullamco occaecat laboris proident incididunt exercitation.

Velit ullamco magna aute proident irure ut magna ullamco labore dolor deserunt deserunt tempor fugiat ex ullamco do sunt veniam reprehenderit officia elit duis sint ut proident pariatur est reprehenderit.

', tags : [ - '3eaab175-ec0d-4db7-bc3b-efc633c769be' - ] + '3eaab175-ec0d-4db7-bc3b-efc633c769be', + ], }, { id : '1eaa3213-ece2-4ba6-8e15-eb36ca388f50', @@ -292,19 +292,19 @@ export const contacts = [ emails : [ { email: 'trudyberg@mail.us', - label: 'Personal' + label: 'Personal', }, { email: 'berg.trudy@satiance.tv', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'ls', phoneNumber: '912 539 2770', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Meteorologist', company : 'Satiance', @@ -312,8 +312,8 @@ export const contacts = [ address : '945 Jerome Avenue, Riceville, North Carolina, PO1625', notes : '

Excepteur ullamco aute aliqua reprehenderit ullamco do anim ut ut veniam et ut et ut commodo aliqua consequat occaecat fugiat dolor labore proident ipsum ad culpa est cillum aliqua reprehenderit.

Amet aliqua sint laboris in aute nostrud voluptate tempor ea tempor laborum tempor culpa dolore aliqua nulla dolore ad enim id cupidatat nostrud nostrud amet non velit id fugiat lorem.

', tags : [ - '65930b5a-5d2a-4303-b11f-865d69e6fdb5' - ] + '65930b5a-5d2a-4303-b11f-865d69e6fdb5', + ], }, { id : 'abd9e78b-9e96-428f-b3ff-4d934c401bee', @@ -323,24 +323,24 @@ export const contacts = [ emails : [ { email: 'elsiemelendez@mail.com', - label: 'Personal' + label: 'Personal', }, { email: 'melendez.elsie@chillium.name', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'tg', phoneNumber: '907 515 3007', - label : 'Mobile' + label : 'Mobile', }, { country : 'tg', phoneNumber: '967 534 2803', - label : 'Work' - } + label : 'Work', + }, ], title : 'Fundraising Director', company : 'Chillium', @@ -348,8 +348,8 @@ export const contacts = [ address : '428 Varanda Place, Veyo, Oklahoma, PO6188', notes : '

Laboris commodo consequat duis dolor ullamco nisi sunt ipsum nisi elit dolore aute sint tempor qui ad sit aliqua laboris consequat dolore aliqua est deserunt irure cillum tempor ut veniam.

Eiusmod nulla ex esse in deserunt consectetur non qui cillum reprehenderit magna sit ipsum lorem aute consequat sint magna id laboris velit adipisicing non ipsum ipsum sint velit ex non.

', tags : [ - '3eaab175-ec0d-4db7-bc3b-efc633c769be' - ] + '3eaab175-ec0d-4db7-bc3b-efc633c769be', + ], }, { id : 'efae92cc-3bd1-4c6a-a395-b6760c69bd55', @@ -359,25 +359,25 @@ export const contacts = [ emails : [ { email: 'lambunderwood@mail.me', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'pf', phoneNumber: '855 517 2767', - label : 'Mobile' + label : 'Mobile', }, { country : 'pf', phoneNumber: '906 442 3593', - label : 'Work' + label : 'Work', }, { country : 'pf', phoneNumber: '905 402 2121', - label : 'Home' - } + label : 'Home', + }, ], title : 'Legal Assistant', company : 'Exotechno', @@ -385,8 +385,8 @@ export const contacts = [ address : '609 Greenpoint Avenue, Beason, Vermont, PO5229', notes : '

Exercitation tempor laboris dolor deserunt nulla et nisi ullamco minim duis sint nulla sint deserunt irure excepteur nostrud ipsum duis enim sit exercitation eiusmod tempor commodo excepteur mollit cupidatat fugiat.

Deserunt est dolore nulla laborum consequat veniam elit lorem do exercitation incididunt ea ad laboris lorem ipsum ex incididunt nostrud ipsum laborum et nostrud minim aute velit incididunt quis quis.

', tags : [ - '3eaab175-ec0d-4db7-bc3b-efc633c769be' - ] + '3eaab175-ec0d-4db7-bc3b-efc633c769be', + ], }, { id : 'bde636a7-c3d2-4bff-939a-aab11df1516b', @@ -396,25 +396,25 @@ export const contacts = [ emails : [ { email: 'tessavaldez@mail.info', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'dz', phoneNumber: '892 430 2631', - label : 'Mobile' + label : 'Mobile', }, { country : 'dz', phoneNumber: '997 525 2354', - label : 'Work' + label : 'Work', }, { country : 'dz', phoneNumber: '907 472 2857', - label : 'Home' - } + label : 'Home', + }, ], title : 'Banker Mason', company : 'Securia', @@ -422,8 +422,8 @@ export const contacts = [ address : '183 Crosby Avenue, Blanco, Mississippi, PO3463', notes : '

Mollit qui amet in esse ipsum nostrud cupidatat occaecat proident aliquip non mollit commodo ex labore enim culpa dolor aute occaecat cillum sit excepteur tempor culpa nostrud nulla qui commodo.

Labore nulla id excepteur non velit adipisicing tempor reprehenderit cillum sint do consectetur laboris ut proident pariatur quis aute ad dolor quis labore labore nostrud sunt elit proident enim aliqua.

', tags : [ - 'cbde2486-5033-4e09-838e-e901b108cd41' - ] + 'cbde2486-5033-4e09-838e-e901b108cd41', + ], }, { id : '6519600a-5eaa-45f8-8bed-c46fddb3b26a', @@ -433,33 +433,33 @@ export const contacts = [ emails : [ { email: 'mcleodwagner@mail.biz', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'at', phoneNumber: '977 590 2773', - label : 'Mobile' + label : 'Mobile', }, { country : 'at', phoneNumber: '828 496 3813', - label : 'Work' + label : 'Work', }, { country : 'at', phoneNumber: '831 432 2512', - label : 'Home' - } + label : 'Home', + }, ], company : 'Inrt', birthday : '1980-12-03T12:00:00.000Z', address : '736 Glen Street, Kaka, West Virginia, PO9350', notes : '

Laboris consequat est anim quis quis eiusmod ipsum non quis fugiat anim culpa non elit mollit pariatur veniam nisi irure velit dolore dolor proident nisi deserunt culpa nisi et laborum.

Eiusmod eu esse ipsum voluptate excepteur ipsum et proident cupidatat sint sunt aliquip lorem culpa esse et dolor fugiat sit est id consectetur sint et ea pariatur occaecat nulla irure.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : '6d80a6f6-2884-4ac4-9c73-06b82c220017', @@ -469,29 +469,29 @@ export const contacts = [ emails : [ { email: 'kristiehall@mail.co.uk', - label: 'Personal' + label: 'Personal', }, { email: 'hall.kristie@austech.net', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'tn', phoneNumber: '841 530 3641', - label : 'Mobile' + label : 'Mobile', }, { country : 'tn', phoneNumber: '941 410 3743', - label : 'Work' + label : 'Work', }, { country : 'tn', phoneNumber: '938 599 3850', - label : 'Home' - } + label : 'Home', + }, ], title : 'Electromedical Equipment Technician', company : 'Austech', @@ -499,8 +499,8 @@ export const contacts = [ address : '547 Revere Place, Hoehne, New Hampshire, PO2125', notes : '

Duis incididunt minim nisi sit qui dolor aliquip quis ipsum id amet occaecat sit ullamco minim velit est eiusmod anim proident consectetur non reprehenderit ea reprehenderit dolore in nisi eiusmod.

Ut commodo aliqua non ut proident velit et commodo voluptate eu mollit dolor veniam ipsum velit aute esse est adipisicing id aliqua nostrud nostrud nisi enim officia eiusmod in enim.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : '35190d23-036e-44ef-b545-cc744c626edd', @@ -510,25 +510,25 @@ export const contacts = [ emails : [ { email: 'shannonkennedy@mail.ca', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'gb', phoneNumber: '899 508 2992', - label : 'Mobile' + label : 'Mobile', }, { country : 'gb', phoneNumber: '834 499 3354', - label : 'Work' + label : 'Work', }, { country : 'gb', phoneNumber: '834 526 3388', - label : 'Home' - } + label : 'Home', + }, ], title : 'Gas Meter Mechanic', company : 'Eventix', @@ -536,8 +536,8 @@ export const contacts = [ address : '480 Chase Court, Edinburg, Kansas, PO5357', notes : '

Lorem ex amet anim anim qui consequat ullamco consectetur et voluptate in velit dolore culpa pariatur amet enim ut non magna duis qui excepteur esse ullamco velit fugiat aute dolor.

Reprehenderit ullamco veniam sit laborum nulla sunt excepteur eiusmod anim eu ullamco tempor est qui adipisicing sit fugiat voluptate minim non incididunt quis ipsum et exercitation officia laborum incididunt nostrud.

', tags : [ - 'a8991c76-2fda-4bbd-a718-df13d6478847' - ] + 'a8991c76-2fda-4bbd-a718-df13d6478847', + ], }, { id : 'b018c194-68ec-4915-ab56-e9f3bd2d98db', @@ -547,29 +547,29 @@ export const contacts = [ emails : [ { email: 'marthaswanson@mail.org', - label: 'Personal' + label: 'Personal', }, { email: 'swanson.martha@sequitur.io', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'gb', phoneNumber: '844 480 3309', - label : 'Mobile' + label : 'Mobile', }, { country : 'gb', phoneNumber: '981 591 3239', - label : 'Work' + label : 'Work', }, { country : 'gb', phoneNumber: '923 484 3147', - label : 'Home' - } + label : 'Home', + }, ], title : 'Short Story Writer', company : 'Sequitur', @@ -577,8 +577,8 @@ export const contacts = [ address : '595 Howard Place, Convent, Rhode Island, PO6993', notes : '

Lorem nostrud cillum non cillum nisi eu labore anim ipsum consequat consectetur sunt ipsum ipsum ad culpa laborum in ea exercitation quis voluptate velit id elit labore cillum cillum consectetur.

Ullamco ullamco nostrud aute pariatur nulla officia proident magna laborum dolor reprehenderit ullamco in reprehenderit veniam aliqua elit magna voluptate amet ut minim in labore irure culpa consequat sit pariatur.

', tags : [ - 'a8991c76-2fda-4bbd-a718-df13d6478847' - ] + 'a8991c76-2fda-4bbd-a718-df13d6478847', + ], }, { id : 'b7c355e9-e003-467e-82d2-4f6978c1a696', @@ -588,19 +588,19 @@ export const contacts = [ emails : [ { email: 'jacklynmorgan@mail.us', - label: 'Personal' + label: 'Personal', }, { email: 'morgan.jacklyn@shopabout.tv', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'so', phoneNumber: '974 542 2061', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Animal Sitter', company : 'Shopabout', @@ -608,8 +608,8 @@ export const contacts = [ address : '971 Conover Street, Statenville, Louisiana, PO6622', notes : '

Pariatur fugiat labore aliquip aute in adipisicing veniam et consequat magna nulla laboris eiusmod eu esse cupidatat ipsum amet sint est anim lorem consequat eiusmod sit aliquip consequat nisi duis.

Est esse excepteur non amet reprehenderit cillum ullamco ex excepteur laboris excepteur dolor magna enim consequat lorem commodo ipsum elit ea veniam non quis id nisi esse tempor enim ut.

', tags : [ - '3eaab175-ec0d-4db7-bc3b-efc633c769be' - ] + '3eaab175-ec0d-4db7-bc3b-efc633c769be', + ], }, { id : 'cfa07b7c-93d1-42e7-9592-493d9efc78ae', @@ -619,24 +619,24 @@ export const contacts = [ emails : [ { email: 'tonyabowers@mail.com', - label: 'Personal' + label: 'Personal', }, { email: 'bowers.tonya@tourmania.name', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'tv', phoneNumber: '922 585 2914', - label : 'Mobile' + label : 'Mobile', }, { country : 'tv', phoneNumber: '913 538 2961', - label : 'Work' - } + label : 'Work', + }, ], title : 'Track Service Worker', company : 'Tourmania', @@ -644,8 +644,8 @@ export const contacts = [ address : '197 Marconi Place, Welda, Delaware, PO6061', notes : '

Aliqua ea dolor est enim ipsum esse pariatur tempor nulla excepteur aliquip irure fugiat reprehenderit adipisicing ex tempor proident voluptate dolore ea dolore nostrud id incididunt culpa in do occaecat.

Aute fugiat magna velit enim in duis duis elit ipsum excepteur reprehenderit do ipsum qui cillum aliquip ut occaecat do ea et adipisicing cupidatat voluptate non elit ad aliqua ad.

', tags : [ - '2026ce08-d08f-4b4f-9506-b10cdb5b104f' - ] + '2026ce08-d08f-4b4f-9506-b10cdb5b104f', + ], }, { id : '00feeb63-c83a-4655-a37e-a07da10cfa1c', @@ -655,25 +655,25 @@ export const contacts = [ emails : [ { email: 'latonyacruz@mail.me', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'tm', phoneNumber: '981 508 2080', - label : 'Mobile' + label : 'Mobile', }, { country : 'tm', phoneNumber: '817 425 2052', - label : 'Work' + label : 'Work', }, { country : 'tm', phoneNumber: '939 434 3805', - label : 'Home' - } + label : 'Home', + }, ], title : 'Motor Winder', company : 'Zilch', @@ -681,8 +681,8 @@ export const contacts = [ address : '775 Dahill Road, Iberia, California, PO2169', notes : '

Ut occaecat tempor deserunt proident enim ex ullamco ex aliquip mollit aute reprehenderit in occaecat anim aliquip ea laboris anim laboris do non aute aute ea laboris magna sunt sit.

Ullamco in in minim culpa eiusmod amet consequat consequat magna nisi cillum occaecat irure officia voluptate et eu duis officia nostrud culpa non eiusmod anim sint et anim enim voluptate.

', tags : [ - 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309' - ] + 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309', + ], }, { id : '142abf21-e635-4a7d-9330-e57f66adcdbe', @@ -692,25 +692,25 @@ export const contacts = [ emails : [ { email: 'evangelinamcclain@mail.info', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'ck', phoneNumber: '992 583 3187', - label : 'Mobile' + label : 'Mobile', }, { country : 'ck', phoneNumber: '881 472 3297', - label : 'Work' + label : 'Work', }, { country : 'ck', phoneNumber: '846 477 3596', - label : 'Home' - } + label : 'Home', + }, ], title : 'Congressional Representative', company : 'Straloy', @@ -718,8 +718,8 @@ export const contacts = [ address : '305 Columbia Street, Dupuyer, Puerto Rico, PO8744', notes : '

Proident nulla culpa magna nostrud do aliqua ullamco sit culpa ullamco eu amet culpa laborum enim fugiat non ad quis esse pariatur exercitation lorem incididunt exercitation aliquip labore minim adipisicing.

Sint ea voluptate tempor irure consequat aute laboris exercitation id minim voluptate aliquip tempor occaecat elit incididunt laboris enim labore sit aute sunt cillum ipsum ad laboris nostrud dolor excepteur.

', tags : [ - '2026ce08-d08f-4b4f-9506-b10cdb5b104f' - ] + '2026ce08-d08f-4b4f-9506-b10cdb5b104f', + ], }, { id : 'e4f255a3-b5dd-45a7-975f-c399604a399a', @@ -729,20 +729,20 @@ export const contacts = [ emails : [ { email: 'herringgonzales@mail.biz', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'ai', phoneNumber: '995 411 2513', - label : 'Mobile' + label : 'Mobile', }, { country : 'ai', phoneNumber: '839 492 2760', - label : 'Work' - } + label : 'Work', + }, ], title : 'Gas Meter Mechanic', company : 'Cubix', @@ -750,8 +750,8 @@ export const contacts = [ address : '195 Brooklyn Road, Jeff, Marshall Islands, PO2943', notes : '

Ex nulla nisi do cillum consequat amet incididunt eu minim eu ut excepteur ad anim minim aliquip ullamco fugiat labore esse aliquip ea incididunt incididunt nisi officia consectetur dolore minim.

Et dolor consectetur anim deserunt laborum eu lorem et in nisi et officia nostrud fugiat deserunt aute irure ullamco officia fugiat voluptate exercitation ut deserunt officia nostrud tempor velit pariatur.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : 'ab4f712d-d712-41a8-b567-be4c66c349a3', @@ -761,20 +761,20 @@ export const contacts = [ emails : [ { email: 'alycecash@mail.co.uk', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'ht', phoneNumber: '969 499 3077', - label : 'Mobile' + label : 'Mobile', }, { country : 'ht', phoneNumber: '907 513 2784', - label : 'Work' - } + label : 'Work', + }, ], title : 'Weather Analyst', company : 'Qnekt', @@ -782,8 +782,8 @@ export const contacts = [ address : '964 Henry Street, Eureka, Indiana, PO1035', notes : '

Non proident pariatur nostrud dolor incididunt occaecat amet officia sunt magna anim dolor labore culpa ut laborum id incididunt officia amet mollit anim ea proident laboris non incididunt incididunt sint.

Nulla minim consectetur nostrud magna anim irure consectetur labore cupidatat laborum reprehenderit et et adipisicing in qui elit ipsum reprehenderit esse nisi non ipsum exercitation sunt eu elit velit fugiat.

', tags : [ - 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309' - ] + 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309', + ], }, { id : '5d067800-c301-46c6-a7f7-28dc89d9a554', @@ -793,19 +793,19 @@ export const contacts = [ emails : [ { email: 'kristinepacheco@mail.net', - label: 'Personal' + label: 'Personal', }, { email: 'pacheco.kristine@vurbo.ca', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'mm', phoneNumber: '977 516 2492', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Short Story Writer', company : 'Vurbo', @@ -813,8 +813,8 @@ export const contacts = [ address : '622 Dodworth Street, Rose, Arizona, PO9530', notes : '

Lorem laboris excepteur magna pariatur occaecat voluptate pariatur cillum exercitation anim enim elit laborum reprehenderit laboris ad velit ut ipsum irure id ullamco minim sint ipsum occaecat esse tempor ea.

Pariatur non labore cillum consectetur aute voluptate sint adipisicing nisi laborum culpa nisi elit et amet dolor incididunt velit ex laboris ea reprehenderit eiusmod qui esse veniam labore ea sit.

', tags : [ - '2026ce08-d08f-4b4f-9506-b10cdb5b104f' - ] + '2026ce08-d08f-4b4f-9506-b10cdb5b104f', + ], }, { id : 'c500255a-1173-47d0-a0e4-4944d48fc12a', @@ -824,15 +824,15 @@ export const contacts = [ emails : [ { email: 'englishhaney@mail.org', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'lb', phoneNumber: '989 567 3834', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Meteorologist', company : 'Photobin', @@ -840,8 +840,8 @@ export const contacts = [ address : '579 Pooles Lane, Belleview, Montana, PO4106', notes : '

Incididunt labore sunt ullamco in deserunt dolore labore voluptate adipisicing eu id duis eiusmod elit ea ad cillum culpa excepteur labore fugiat excepteur ea culpa labore sit id dolor ullamco.

Eu eu ex dolore proident nostrud et minim lorem nulla lorem nulla duis velit voluptate nisi cillum anim minim amet dolore officia id cillum in cupidatat ipsum veniam velit dolor.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : 'b62359fd-f2a8-46e6-904e-31052d1cd675', @@ -851,19 +851,19 @@ export const contacts = [ emails : [ { email: 'josephstrickland@mail.io', - label: 'Personal' + label: 'Personal', }, { email: 'strickland.joseph@bytrex.us', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'jo', phoneNumber: '990 450 2729', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Hotel Manager', company : 'Bytrex', @@ -871,8 +871,8 @@ export const contacts = [ address : '844 Ellery Street, Hondah, Texas, PO1272', notes : '

Excepteur consequat magna laborum dolore ut laborum ea excepteur ad officia mollit exercitation sunt tempor amet ex ipsum aliquip cillum mollit amet laborum voluptate ipsum sit esse duis eiusmod adipisicing.

Non tempor ad pariatur adipisicing excepteur est pariatur aute et velit lorem ut est eu voluptate pariatur ea consectetur excepteur sunt reprehenderit id irure aliqua tempor anim id voluptate culpa.

', tags : [ - '3eaab175-ec0d-4db7-bc3b-efc633c769be' - ] + '3eaab175-ec0d-4db7-bc3b-efc633c769be', + ], }, { id : '16b9e696-ea95-4dd8-86c4-3caf705a1dc6', @@ -882,15 +882,15 @@ export const contacts = [ emails : [ { email: 'nunezfaulkner@mail.tv', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'xk', phoneNumber: '909 552 3327', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Hotel Manager', company : 'Buzzopia', @@ -898,8 +898,8 @@ export const contacts = [ address : '614 Herkimer Court, Darrtown, Nebraska, PO9308', notes : '

Culpa labore ullamco veniam est ullamco ipsum culpa excepteur esse esse aliqua nulla ullamco nulla amet consequat tempor aute exercitation do eu do ullamco elit excepteur est anim nisi excepteur.

Cillum eiusmod cupidatat officia ipsum ullamco adipisicing cillum adipisicing sint exercitation non enim consectetur est esse tempor fugiat sit eiusmod in exercitation enim quis duis dolor amet consequat pariatur dolor.

', tags : [ - 'a8991c76-2fda-4bbd-a718-df13d6478847' - ] + 'a8991c76-2fda-4bbd-a718-df13d6478847', + ], }, { id : '19662ecf-0686-4aad-a46c-24b552eb2ff5', @@ -909,15 +909,15 @@ export const contacts = [ emails : [ { email: 'juanamorrow@mail.com', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'ee', phoneNumber: '868 438 3943', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Meteorologist', company : 'Lyria', @@ -925,8 +925,8 @@ export const contacts = [ address : '663 Drew Street, Juntura, Georgia, PO9857', notes : '

Mollit et amet qui incididunt officia anim est in consectetur qui anim qui labore ea mollit veniam adipisicing ex magna commodo mollit adipisicing sunt commodo laboris labore aliquip deserunt est.

Cupidatat ut cillum anim reprehenderit ea magna enim fugiat proident anim esse lorem lorem commodo cupidatat pariatur qui commodo nulla aliqua nisi labore in adipisicing minim excepteur do eu amet.

', tags : [ - 'cbde2486-5033-4e09-838e-e901b108cd41' - ] + 'cbde2486-5033-4e09-838e-e901b108cd41', + ], }, { id : '26dfe954-8bf3-45ee-b285-1d0a88c8d3ea', @@ -936,15 +936,15 @@ export const contacts = [ emails : [ { email: 'laragaines@mail.name', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'mr', phoneNumber: '891 498 2043', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Electromedical Equipment Technician', company : 'Acruex', @@ -952,8 +952,8 @@ export const contacts = [ address : '762 Troutman Street, Drummond, Oregon, PO6973', notes : '

Laboris dolor incididunt eiusmod deserunt officia labore eu est nulla velit id ex veniam qui fugiat velit irure reprehenderit dolor proident aliquip culpa nisi magna occaecat do nostrud cillum lorem.

Sit consequat laboris culpa quis laborum lorem ullamco occaecat labore duis ea et consequat pariatur reprehenderit excepteur excepteur exercitation sunt enim amet adipisicing laborum incididunt dolor aliquip culpa ea laboris.

', tags : [ - '65930b5a-5d2a-4303-b11f-865d69e6fdb5' - ] + '65930b5a-5d2a-4303-b11f-865d69e6fdb5', + ], }, { id : 'd6462af2-c488-4de7-9b26-3845bd2983f9', @@ -963,25 +963,25 @@ export const contacts = [ emails : [ { email: 'johnstonriddle@mail.me', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'bt', phoneNumber: '979 541 2691', - label : 'Mobile' + label : 'Mobile', }, { country : 'bt', phoneNumber: '909 407 3887', - label : 'Work' + label : 'Work', }, { country : 'bt', phoneNumber: '864 557 3128', - label : 'Home' - } + label : 'Home', + }, ], title : 'Hotel Manager', company : 'Xleen', @@ -989,8 +989,8 @@ export const contacts = [ address : '674 Bryant Street, Grahamtown, Federated States Of Micronesia, PO2757', notes : '

Velit consequat elit anim qui eu elit aliquip consectetur aliqua cupidatat lorem laboris dolor qui ad laborum adipisicing adipisicing consequat et nostrud ullamco consequat dolore deserunt irure do aliquip non.

Ipsum commodo voluptate qui ex ullamco amet do ex dolore quis cupidatat ut anim sunt dolore excepteur anim do dolor aliqua ex aute esse eiusmod sint laborum consequat laboris cillum.

', tags : [ - 'a8991c76-2fda-4bbd-a718-df13d6478847' - ] + 'a8991c76-2fda-4bbd-a718-df13d6478847', + ], }, { id : 'a1723c04-69fe-4573-a135-6645658afe76', @@ -1000,19 +1000,19 @@ export const contacts = [ emails : [ { email: 'vargasgardner@mail.info', - label: 'Personal' + label: 'Personal', }, { email: 'gardner.vargas@cosmosis.biz', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'bi', phoneNumber: '855 456 2754', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Bindery Machine Operator', company : 'Cosmosis', @@ -1020,8 +1020,8 @@ export const contacts = [ address : '869 Seton Place, Chemung, Maine, PO8109', notes : '

Amet non anim ex ullamco pariatur ullamco laboris eiusmod ut magna nisi amet incididunt sunt anim nisi qui ut ex sunt adipisicing consequat deserunt qui mollit duis anim quis veniam.

Magna ut id duis qui ea proident quis officia lorem commodo et et proident dolore qui quis incididunt nulla incididunt ut aliqua veniam est adipisicing adipisicing reprehenderit ad velit incididunt.

', tags : [ - 'cbde2486-5033-4e09-838e-e901b108cd41' - ] + 'cbde2486-5033-4e09-838e-e901b108cd41', + ], }, { id : '823e6166-c0c8-4373-9270-8a0d17489a08', @@ -1031,25 +1031,25 @@ export const contacts = [ emails : [ { email: 'mccallday@mail.co.uk', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'se', phoneNumber: '993 504 3286', - label : 'Mobile' + label : 'Mobile', }, { country : 'se', phoneNumber: '924 434 2238', - label : 'Work' + label : 'Work', }, { country : 'se', phoneNumber: '816 466 2634', - label : 'Home' - } + label : 'Home', + }, ], title : 'Historiographer', company : 'Nipaz', @@ -1057,8 +1057,8 @@ export const contacts = [ address : '854 Hanover Place, Harleigh, New Jersey, PO9459', notes : '

Ea occaecat nisi cillum officia in velit ipsum reprehenderit ex fugiat fugiat ad velit pariatur ullamco sint in elit quis aute id cupidatat nostrud quis culpa aliquip id officia excepteur.

Ea ut consequat sit ullamco do pariatur quis officia ad ipsum quis nisi in nulla incididunt esse pariatur amet qui ullamco consectetur dolor voluptate sit qui mollit reprehenderit reprehenderit amet.

', tags : [ - '65930b5a-5d2a-4303-b11f-865d69e6fdb5' - ] + '65930b5a-5d2a-4303-b11f-865d69e6fdb5', + ], }, { id : '2c37ed00-427a-46d7-8f8f-d711c768d1ee', @@ -1068,20 +1068,20 @@ export const contacts = [ emails : [ { email: 'silvafoster@mail.net', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'bn', phoneNumber: '916 511 3837', - label : 'Mobile' + label : 'Mobile', }, { country : 'bn', phoneNumber: '949 564 3247', - label : 'Work' - } + label : 'Work', + }, ], title : 'Insurance Analyst', company : 'Extrawear', @@ -1089,8 +1089,8 @@ export const contacts = [ address : '137 Bridge Street, Sisquoc, District Of Columbia, PO4105', notes : '

Ipsum velit est do velit do deserunt cupidatat officia duis laborum veniam sunt in ex reprehenderit esse ex ad aute anim duis ut sunt reprehenderit occaecat ut nostrud eu minim.

Aliqua consequat adipisicing adipisicing aliquip voluptate fugiat eu amet nostrud id proident non nisi fugiat velit nostrud ea officia non laboris magna cillum exercitation culpa eiusmod mollit fugiat et lorem.

', tags : [ - 'cbde2486-5033-4e09-838e-e901b108cd41' - ] + 'cbde2486-5033-4e09-838e-e901b108cd41', + ], }, { id : '944764c0-b261-4428-9188-bbd3022d66a8', @@ -1100,29 +1100,29 @@ export const contacts = [ emails : [ { email: 'cathrynsnider@mail.ca', - label: 'Personal' + label: 'Personal', }, { email: 'snider.cathryn@phormula.org', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'na', phoneNumber: '896 471 3036', - label : 'Mobile' + label : 'Mobile', }, { country : 'na', phoneNumber: '851 491 3567', - label : 'Work' + label : 'Work', }, { country : 'na', phoneNumber: '805 487 2016', - label : 'Home' - } + label : 'Home', + }, ], title : 'Short Story Writer', company : 'Phormula', @@ -1130,8 +1130,8 @@ export const contacts = [ address : '528 Glenmore Avenue, Elrama, Illinois, PO2952', notes : '

Ea enim exercitation lorem excepteur officia nulla culpa culpa nisi veniam quis non duis exercitation labore commodo et occaecat reprehenderit ex velit exercitation commodo cupidatat amet veniam mollit magna consectetur.

Voluptate consectetur eu id eiusmod anim reprehenderit incididunt duis veniam tempor cillum ea esse tempor do laborum dolore sint ea duis incididunt in do aliqua voluptate incididunt officia excepteur do.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : 'f2b3c756-5ad2-4d4b-aee5-b32c91457128', @@ -1141,20 +1141,20 @@ export const contacts = [ emails : [ { email: 'mooneycantrell@mail.io', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'bh', phoneNumber: '915 577 3020', - label : 'Mobile' + label : 'Mobile', }, { country : 'bh', phoneNumber: '923 431 3594', - label : 'Work' - } + label : 'Work', + }, ], title : 'Fundraising Director', company : 'Crustatia', @@ -1162,8 +1162,8 @@ export const contacts = [ address : '277 Coventry Road, Fairforest, Nevada, PO6031', notes : '

Lorem mollit dolore nostrud sunt id anim veniam labore duis eiusmod duis fugiat aliqua occaecat do labore culpa consectetur consectetur sunt amet tempor incididunt tempor esse sunt id elit non.

Laborum mollit ullamco quis ad culpa nisi sit nisi veniam minim adipisicing sint eiusmod velit amet minim aliquip nulla eiusmod nulla laboris quis proident in adipisicing aute et ea anim.

', tags : [ - '2026ce08-d08f-4b4f-9506-b10cdb5b104f' - ] + '2026ce08-d08f-4b4f-9506-b10cdb5b104f', + ], }, { id : '54b1c201-4b2b-4be0-ad70-a6413e9628cd', @@ -1173,15 +1173,15 @@ export const contacts = [ emails : [ { email: 'saundramurphy@mail.us', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'mt', phoneNumber: '902 529 2999', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Dental Laboratory Worker', company : 'Zilencio', @@ -1189,8 +1189,8 @@ export const contacts = [ address : '557 Monroe Street, Mayfair, Maryland, PO7200', notes : '

Fugiat mollit sunt aliquip consectetur ipsum ut aliqua id ex laboris labore id elit nulla irure id aute pariatur do officia proident eiusmod proident reprehenderit dolor non dolor laborum nulla.

Pariatur reprehenderit incididunt voluptate enim aliqua laborum anim veniam pariatur irure exercitation non dolore velit et ex culpa lorem ipsum mollit eu sint duis aliquip elit amet consectetur velit minim.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : 'faf979c7-a13b-445a-b30a-08845f5fa90e', @@ -1200,20 +1200,20 @@ export const contacts = [ emails : [ { email: 'enidsparks@mail.tv', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'bh', phoneNumber: '813 410 3258', - label : 'Mobile' + label : 'Mobile', }, { country : 'bh', phoneNumber: '877 501 2767', - label : 'Work' - } + label : 'Work', + }, ], title : 'Historiographer', company : 'Skybold', @@ -1221,8 +1221,8 @@ export const contacts = [ address : '219 Village Court, Keyport, Alabama, PO7776', notes : '

Velit enim anim est aliqua consequat exercitation velit quis magna est incididunt ipsum minim minim nulla adipisicing ad eiusmod id veniam eiusmod sit elit est pariatur velit ea laborum anim.

Ad lorem ea nisi irure id consequat ullamco nisi nostrud dolore officia ipsum veniam velit minim pariatur culpa culpa esse minim adipisicing sit labore commodo aute excepteur non do in.

', tags : [ - 'cbde2486-5033-4e09-838e-e901b108cd41' - ] + 'cbde2486-5033-4e09-838e-e901b108cd41', + ], }, { id : '2bfa2be5-7688-48d5-b5ac-dc0d9ac97f14', @@ -1232,20 +1232,20 @@ export const contacts = [ emails : [ { email: 'nadiamcknight@mail.com', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'tk', phoneNumber: '943 511 2203', - label : 'Mobile' + label : 'Mobile', }, { country : 'tk', phoneNumber: '817 578 2993', - label : 'Work' - } + label : 'Work', + }, ], title : 'Legal Assistant', company : 'Pearlesex', @@ -1253,8 +1253,8 @@ export const contacts = [ address : '448 Berriman Street, Reinerton, Washington, PO6704', notes : '

Esse sint lorem exercitation velit tempor tempor voluptate nulla proident excepteur magna tempor consectetur aliquip qui nisi mollit cupidatat est adipisicing ipsum sint et excepteur sit labore velit dolore labore.

Duis nisi adipisicing lorem do excepteur magna consequat labore magna ut consectetur eu enim occaecat id nulla laboris minim officia est id nisi mollit ullamco irure ut dolore esse aliqua.

', tags : [ - 'cbde2486-5033-4e09-838e-e901b108cd41' - ] + 'cbde2486-5033-4e09-838e-e901b108cd41', + ], }, { id : '77a4383b-b5a5-4943-bc46-04c3431d1566', @@ -1264,19 +1264,19 @@ export const contacts = [ emails : [ { email: 'bestblackburn@mail.name', - label: 'Personal' + label: 'Personal', }, { email: 'blackburn.best@beadzza.me', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'gl', phoneNumber: '814 498 3701', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Hotel Manager', company : 'Beadzza', @@ -1284,8 +1284,8 @@ export const contacts = [ address : '578 Tampa Court, Wescosville, Ohio, PO4108', notes : '

Lorem do deserunt nulla nostrud incididunt et laboris labore eu nisi ut ullamco veniam deserunt do non labore commodo amet aliquip exercitation ea occaecat amet non eiusmod ut minim fugiat.

Esse eu ex irure pariatur qui cillum labore nulla quis officia consequat commodo consequat fugiat culpa nostrud labore eu adipisicing magna irure aliquip est amet irure eiusmod esse reprehenderit mollit.

', tags : [ - '3eaab175-ec0d-4db7-bc3b-efc633c769be' - ] + '3eaab175-ec0d-4db7-bc3b-efc633c769be', + ], }, { id : '8bb0f597-673a-47ca-8c77-2f83219cb9af', @@ -1295,25 +1295,25 @@ export const contacts = [ emails : [ { email: 'duncancarver@mail.info', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'jm', phoneNumber: '968 547 2111', - label : 'Mobile' + label : 'Mobile', }, { country : 'jm', phoneNumber: '968 433 3120', - label : 'Work' + label : 'Work', }, { country : 'jm', phoneNumber: '905 425 2777', - label : 'Home' - } + label : 'Home', + }, ], title : 'Historiographer', company : 'Hotcakes', @@ -1321,8 +1321,8 @@ export const contacts = [ address : '931 Bristol Street, Why, South Carolina, PO9700', notes : '

Dolore laboris aute officia reprehenderit cupidatat aliquip duis labore aliquip officia est nostrud nisi voluptate eiusmod ad aute et ea cillum aliqua elit ipsum officia cillum laborum minim labore sit.

Exercitation labore ut pariatur occaecat ullamco non occaecat aliqua amet nostrud aliquip ipsum ad do ullamco enim laborum commodo minim elit ut quis laboris elit laborum proident sunt ullamco sit.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : 'c318e31f-1d74-49c5-8dae-2bc5805e2fdb', @@ -1332,25 +1332,25 @@ export const contacts = [ emails : [ { email: 'martinrichards@mail.biz', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'mg', phoneNumber: '902 500 2668', - label : 'Mobile' + label : 'Mobile', }, { country : 'mg', phoneNumber: '947 559 2919', - label : 'Work' + label : 'Work', }, { country : 'mg', phoneNumber: '934 434 3768', - label : 'Home' - } + label : 'Home', + }, ], title : 'Dental Laboratory Worker', company : 'Overfork', @@ -1358,8 +1358,8 @@ export const contacts = [ address : '268 Hutchinson Court, Drytown, Florida, PO3041', notes : '

Eu ipsum nisi eu lorem cupidatat mollit exercitation elit ea culpa enim qui culpa ad aliqua exercitation tempor nulla excepteur fugiat ipsum quis amet occaecat adipisicing ullamco duis dolore occaecat.

Non eu et elit ea labore lorem adipisicing voluptate incididunt ut officia aute minim incididunt lorem qui adipisicing mollit magna nisi consectetur cillum sit exercitation eiusmod qui eu nisi sunt.

', tags : [ - 'a8991c76-2fda-4bbd-a718-df13d6478847' - ] + 'a8991c76-2fda-4bbd-a718-df13d6478847', + ], }, { id : '0a8bc517-631a-4a93-aacc-000fa2e8294c', @@ -1369,15 +1369,15 @@ export const contacts = [ emails : [ { email: 'candicemunoz@mail.co.uk', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'fm', phoneNumber: '838 562 2769', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Legal Assistant', company : 'Eclipto', @@ -1385,8 +1385,8 @@ export const contacts = [ address : '946 Remsen Street, Caroline, New Mexico, PO3247', notes : '

Amet dolore elit irure in commodo in et eu eu nulla labore elit sunt et nisi quis officia nostrud et mollit dolor aute fugiat sunt reprehenderit quis sint minim ipsum.

Laboris ut sunt nisi aute incididunt reprehenderit mollit culpa velit exercitation reprehenderit irure id sunt officia magna est ea labore consectetur incididunt cillum qui tempor ea ullamco quis pariatur aliquip.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : 'a4c9945a-757b-40b0-8942-d20e0543cabd', @@ -1396,20 +1396,20 @@ export const contacts = [ emails : [ { email: 'vickiemosley@mail.net', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'tr', phoneNumber: '939 555 3054', - label : 'Mobile' + label : 'Mobile', }, { country : 'tr', phoneNumber: '852 486 2053', - label : 'Work' - } + label : 'Work', + }, ], title : 'Bindery Machine Operator', company : 'Strozen', @@ -1417,8 +1417,8 @@ export const contacts = [ address : '397 Vandalia Avenue, Rockingham, Michigan, PO8089', notes : '

Velit sunt sunt commodo ex amet laboris voluptate eu lorem aliqua minim occaecat cupidatat aliqua ipsum nisi velit id reprehenderit exercitation velit fugiat minim nisi deserunt voluptate anim cillum commodo.

Cillum velit nostrud cupidatat ex sit culpa deserunt cillum cupidatat cillum aute cupidatat exercitation ullamco sunt incididunt non magna sint lorem et incididunt laborum culpa qui sint sunt duis fugiat.

', tags : [ - 'cbde2486-5033-4e09-838e-e901b108cd41' - ] + 'cbde2486-5033-4e09-838e-e901b108cd41', + ], }, { id : 'b8258ccf-48b5-46a2-9c95-e0bd7580c645', @@ -1428,20 +1428,20 @@ export const contacts = [ emails : [ { email: 'tinaharris@mail.ca', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'gp', phoneNumber: '933 464 2431', - label : 'Mobile' + label : 'Mobile', }, { country : 'gp', phoneNumber: '894 535 3609', - label : 'Work' - } + label : 'Work', + }, ], title : 'Short Story Writer', company : 'Gallaxia', @@ -1449,8 +1449,8 @@ export const contacts = [ address : '821 Beverly Road, Tyro, Colorado, PO4248', notes : '

Incididunt non est consequat qui sit sunt aliquip sit quis minim laboris ullamco est culpa velit culpa cupidatat veniam incididunt non quis elit reprehenderit et officia cillum magna aliqua occaecat.

Cupidatat amet incididunt id pariatur minim veniam id dolor nisi labore cillum ea officia cupidatat do culpa aliqua consequat deserunt aliquip sit ea excepteur eiusmod labore tempor reprehenderit commodo exercitation.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : 'f004ea79-98fc-436c-9ba5-6cfe32fe583d', @@ -1460,24 +1460,24 @@ export const contacts = [ emails : [ { email: 'holtmanning@mail.org', - label: 'Personal' + label: 'Personal', }, { email: 'manning.holt@idetica.io', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'nz', phoneNumber: '822 531 2600', - label : 'Mobile' + label : 'Mobile', }, { country : 'nz', phoneNumber: '922 549 2094', - label : 'Work' - } + label : 'Work', + }, ], title : 'Fundraising Director', company : 'Idetica', @@ -1485,8 +1485,8 @@ export const contacts = [ address : '364 Porter Avenue, Delshire, Missouri, PO8911', notes : '

Velit fugiat minim sit nisi esse laboris ad velit proident non et cillum labore sint excepteur nisi eu amet voluptate duis duis id enim ea anim adipisicing consectetur id consectetur.

Ex eiusmod id magna in non lorem sunt sunt officia do adipisicing officia mollit occaecat sunt laborum aliquip adipisicing ullamco in sit proident et quis incididunt pariatur fugiat mollit anim.

', tags : [ - '65930b5a-5d2a-4303-b11f-865d69e6fdb5' - ] + '65930b5a-5d2a-4303-b11f-865d69e6fdb5', + ], }, { id : '8b69fe2d-d7cc-4a3d-983d-559173e37d37', @@ -1496,28 +1496,28 @@ export const contacts = [ emails : [ { email: 'mistyramsey@mail.us', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'kp', phoneNumber: '990 457 2106', - label : 'Mobile' + label : 'Mobile', }, { country : 'kp', phoneNumber: '918 550 2946', - label : 'Work' - } + label : 'Work', + }, ], company : 'Grupoli', birthday : '1969-08-10T12:00:00.000Z', address : '101 Sackett Street, Naomi, Tennessee, PO6335', notes : '

Ut cupidatat sint minim consectetur cupidatat aute ut anim consequat fugiat laboris quis sint sit nulla irure nulla officia eiusmod consequat ex quis ad ex ullamco et ut labore tempor.

Deserunt minim dolore voluptate aute aliqua est elit mollit ut ut consequat in esse est do ex officia nostrud aute id fugiat reprehenderit quis cillum fugiat id fugiat minim tempor.

', tags : [ - 'cbde2486-5033-4e09-838e-e901b108cd41' - ] + 'cbde2486-5033-4e09-838e-e901b108cd41', + ], }, { id : 'cdcc62e4-1520-4ccc-803d-52868c7e01ba', @@ -1527,25 +1527,25 @@ export const contacts = [ emails : [ { email: 'deealvarado@mail.tv', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'nu', phoneNumber: '855 445 2483', - label : 'Mobile' + label : 'Mobile', }, { country : 'nu', phoneNumber: '858 415 2860', - label : 'Work' + label : 'Work', }, { country : 'nu', phoneNumber: '968 587 2752', - label : 'Home' - } + label : 'Home', + }, ], title : 'Dental Laboratory Worker', company : 'Tsunamia', @@ -1553,8 +1553,8 @@ export const contacts = [ address : '956 Pierrepont Street, Crumpler, Hawaii, PO3299', notes : '

Esse excepteur ad aliquip amet elit reprehenderit ut nostrud magna ex esse dolore magna excepteur irure esse incididunt sunt enim laborum ex mollit magna elit quis ullamco aute minim veniam.

Duis id ullamco laboris elit ea ea dolore tempor est eu esse aliqua quis quis ut laborum mollit cillum proident deserunt fugiat ipsum elit exercitation quis mollit eiusmod officia non.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : 'e2946946-b4b5-4fd7-bab4-62c38cdff2f1', @@ -1564,15 +1564,15 @@ export const contacts = [ emails : [ { email: 'samanthajacobson@mail.com', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'es', phoneNumber: '879 591 3327', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Dental Laboratory Worker', company : 'Emoltra', @@ -1580,8 +1580,8 @@ export const contacts = [ address : '384 Love Lane, Dyckesville, New York, PO4115', notes : '

Consectetur eu et ea anim magna occaecat anim labore velit nulla non magna laboris duis sit adipisicing commodo laboris consequat id quis aliqua est culpa quis in ex est culpa.

Sunt qui excepteur reprehenderit nostrud voluptate eu laborum laborum id esse occaecat irure esse elit magna tempor ad est elit non labore tempor laborum deserunt voluptate cupidatat excepteur sunt sint.

', tags : [ - 'a8991c76-2fda-4bbd-a718-df13d6478847' - ] + 'a8991c76-2fda-4bbd-a718-df13d6478847', + ], }, { id : 'fdc77706-6ba2-4397-b2f8-a9a0b6495153', @@ -1591,20 +1591,20 @@ export const contacts = [ emails : [ { email: 'rhealandry@mail.name', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'jp', phoneNumber: '906 579 3698', - label : 'Mobile' + label : 'Mobile', }, { country : 'jp', phoneNumber: '841 475 2681', - label : 'Work' - } + label : 'Work', + }, ], title : 'Electromedical Equipment Technician', company : 'Comtent', @@ -1612,8 +1612,8 @@ export const contacts = [ address : '725 Arlington Avenue, Mathews, Wyoming, PO4562', notes : '

Eiusmod ullamco laboris tempor reprehenderit culpa non sunt ea consequat velit id ipsum commodo eiusmod exercitation laboris aliqua magna reprehenderit culpa tempor mollit pariatur consectetur amet aliqua cillum voluptate exercitation.

Qui cillum consectetur qui proident adipisicing id qui esse aute velit excepteur pariatur ea excepteur sunt velit nostrud esse mollit sint ex irure sunt aliquip velit consequat minim do officia.

', tags : [ - 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309' - ] + 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309', + ], }, { id : '12148fa2-e0a4-49fb-b3c5-daeecdb5180a', @@ -1623,29 +1623,29 @@ export const contacts = [ emails : [ { email: 'olgarhodes@mail.me', - label: 'Personal' + label: 'Personal', }, { email: 'rhodes.olga@moreganic.info', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'tl', phoneNumber: '971 514 3366', - label : 'Mobile' + label : 'Mobile', }, { country : 'tl', phoneNumber: '807 480 2033', - label : 'Work' + label : 'Work', }, { country : 'tl', phoneNumber: '810 528 3783', - label : 'Home' - } + label : 'Home', + }, ], title : 'Pastry Baker', company : 'Moreganic', @@ -1653,8 +1653,8 @@ export const contacts = [ address : '253 Beard Street, Staples, Massachusetts, PO8089', notes : '

Proident est est et in commodo incididunt anim fugiat laboris pariatur eu enim dolor eiusmod dolor voluptate officia eiusmod excepteur culpa aute do do anim pariatur irure incididunt incididunt est.

Sint duis mollit dolor laborum ex non esse consequat anim et qui est nostrud incididunt fugiat anim veniam sunt cupidatat ut voluptate commodo non ex tempor ullamco magna culpa culpa.

', tags : [ - '65930b5a-5d2a-4303-b11f-865d69e6fdb5' - ] + '65930b5a-5d2a-4303-b11f-865d69e6fdb5', + ], }, { id : '07dd64eb-8b8f-4765-a16c-8db083c45096', @@ -1664,25 +1664,25 @@ export const contacts = [ emails : [ { email: 'lorrainepennington@mail.biz', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'fm', phoneNumber: '932 404 3308', - label : 'Mobile' + label : 'Mobile', }, { country : 'fm', phoneNumber: '979 550 3200', - label : 'Work' + label : 'Work', }, { country : 'fm', phoneNumber: '868 557 3568', - label : 'Home' - } + label : 'Home', + }, ], title : 'Electromedical Equipment Technician', company : 'Marvane', @@ -1690,8 +1690,8 @@ export const contacts = [ address : '962 Whitney Avenue, Sussex, North Dakota, PO5796', notes : '

Nulla nisi officia quis aliquip voluptate mollit ut anim eu et quis tempor incididunt consectetur exercitation cupidatat in nisi exercitation est culpa nostrud sit elit sit sunt do ipsum eu.

Enim voluptate ad ullamco tempor voluptate culpa et ut ullamco eu consequat est esse excepteur est nostrud velit enim culpa dolore non quis occaecat eiusmod velit ex mollit tempor labore.

', tags : [ - 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309' - ] + 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309', + ], }, { id : '81fdc48c-5572-4123-8a73-71b7892120de', @@ -1701,19 +1701,19 @@ export const contacts = [ emails : [ { email: 'earlenerosales@mail.co.uk', - label: 'Personal' + label: 'Personal', }, { email: 'rosales.earlene@softmicro.net', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'ki', phoneNumber: '927 589 3619', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Historiographer', company : 'Softmicro', @@ -1721,8 +1721,8 @@ export const contacts = [ address : '981 Kingston Avenue, Topaz, Connecticut, PO6866', notes : '

Adipisicing fugiat magna eiusmod consectetur id commodo incididunt ullamco ut sint minim nulla in do aute in sit pariatur irure dolor magna pariatur ad officia excepteur duis ullamco dolor sunt.

Dolor laborum proident voluptate eu esse lorem adipisicing enim consectetur veniam nisi pariatur aliquip sit laborum sunt adipisicing anim labore eiusmod nostrud irure irure nisi ipsum dolor aliquip ex exercitation.

', tags : [ - '3eaab175-ec0d-4db7-bc3b-efc633c769be' - ] + '3eaab175-ec0d-4db7-bc3b-efc633c769be', + ], }, { id : 'f8bbf6be-d49a-41a3-bb80-3d51df84c12b', @@ -1732,29 +1732,29 @@ export const contacts = [ emails : [ { email: 'marciahatfield@mail.ca', - label: 'Personal' + label: 'Personal', }, { email: 'hatfield.marcia@datagen.org', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'no', phoneNumber: '883 432 3718', - label : 'Mobile' + label : 'Mobile', }, { country : 'no', phoneNumber: '934 516 2135', - label : 'Work' + label : 'Work', }, { country : 'no', phoneNumber: '923 596 3843', - label : 'Home' - } + label : 'Home', + }, ], title : 'Track Service Worker', company : 'Datagen', @@ -1762,8 +1762,8 @@ export const contacts = [ address : '802 Preston Court, Waikele, Pennsylvania, PO7421', notes : '

Aliqua sint aute in cillum deserunt enim fugiat tempor est pariatur irure commodo commodo deserunt eu nulla laboris enim occaecat incididunt voluptate enim est reprehenderit qui anim veniam sint adipisicing.

Commodo veniam occaecat ex et laborum minim fugiat sunt commodo velit dolor labore excepteur fugiat ipsum eiusmod in esse ex nulla deserunt minim consectetur in est sunt eu commodo fugiat.

', tags : [ - '65930b5a-5d2a-4303-b11f-865d69e6fdb5' - ] + '65930b5a-5d2a-4303-b11f-865d69e6fdb5', + ], }, { id : 'cd482941-3eaf-4560-ac37-56a9296025df', @@ -1773,15 +1773,15 @@ export const contacts = [ emails : [ { email: 'lilianaayala@mail.io', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'bd', phoneNumber: '936 590 2412', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Insurance Analyst', company : 'Pharmex', @@ -1789,8 +1789,8 @@ export const contacts = [ address : '935 Guider Avenue, Kipp, Wisconsin, PO5282', notes : '

Magna et culpa cillum sint labore consequat aute aliqua amet ea consequat ut ullamco nisi commodo lorem enim amet dolor sit nisi dolor do sit lorem cillum esse reprehenderit ut.

Quis veniam anim nulla adipisicing veniam fugiat elit duis pariatur anim irure adipisicing elit labore eu aute exercitation qui exercitation commodo exercitation ipsum tempor non et ex eu aute proident.

', tags : [ - 'a8991c76-2fda-4bbd-a718-df13d6478847' - ] + 'a8991c76-2fda-4bbd-a718-df13d6478847', + ], }, { id : '22f18d47-ff8d-440e-888d-a1747c093052', @@ -1800,25 +1800,25 @@ export const contacts = [ emails : [ { email: 'aliceharding@mail.us', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'sx', phoneNumber: '881 472 3113', - label : 'Mobile' + label : 'Mobile', }, { country : 'sx', phoneNumber: '974 548 3124', - label : 'Work' + label : 'Work', }, { country : 'sx', phoneNumber: '800 518 3615', - label : 'Home' - } + label : 'Home', + }, ], title : 'Track Service Worker', company : 'Futurity', @@ -1826,8 +1826,8 @@ export const contacts = [ address : '387 Holt Court, Thomasville, Alaska, PO2867', notes : '

Adipisicing exercitation dolor nisi ipsum nostrud anim dolore sint veniam consequat lorem sit ex commodo nostrud occaecat elit magna magna commodo incididunt laborum ad irure pariatur et sit ullamco adipisicing.

Ullamco in dolore amet est quis consectetur fugiat non nisi incididunt id laborum adipisicing dolor proident velit ut quis aliquip dolore id anim sit adipisicing nisi incididunt enim amet pariatur.

', tags : [ - 'cbde2486-5033-4e09-838e-e901b108cd41' - ] + 'cbde2486-5033-4e09-838e-e901b108cd41', + ], }, { id : 'a9a9f382-e4c3-42fb-9fe9-65aa534732b5', @@ -1837,24 +1837,24 @@ export const contacts = [ emails : [ { email: 'franciscaperkins@mail.tv', - label: 'Personal' + label: 'Personal', }, { email: 'perkins.francisca@overplex.com', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'au', phoneNumber: '830 430 3437', - label : 'Mobile' + label : 'Mobile', }, { country : 'au', phoneNumber: '868 538 2886', - label : 'Work' - } + label : 'Work', + }, ], title : 'Dental Laboratory Worker', company : 'Overplex', @@ -1862,8 +1862,8 @@ export const contacts = [ address : '733 Delmonico Place, Belvoir, Virginia, PO7102', notes : '

Voluptate nisi adipisicing ex magna mollit non cillum dolor in magna duis exercitation irure elit duis eiusmod deserunt lorem nulla sunt laboris quis voluptate ullamco labore adipisicing quis minim ipsum.

Id ut esse elit proident mollit nulla exercitation magna voluptate sit eiusmod labore velit commodo exercitation dolore anim est eiusmod occaecat et consequat eiusmod culpa ipsum deserunt lorem non incididunt.

', tags : [ - '2026ce08-d08f-4b4f-9506-b10cdb5b104f' - ] + '2026ce08-d08f-4b4f-9506-b10cdb5b104f', + ], }, { id : '0222b24b-c288-48d1-b356-0f087fa172f8', @@ -1873,29 +1873,29 @@ export const contacts = [ emails : [ { email: 'warrengates@mail.name', - label: 'Personal' + label: 'Personal', }, { email: 'gates.warren@qualitex.me', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'gt', phoneNumber: '847 513 2248', - label : 'Mobile' + label : 'Mobile', }, { country : 'gt', phoneNumber: '866 591 3665', - label : 'Work' + label : 'Work', }, { country : 'gt', phoneNumber: '877 539 3840', - label : 'Home' - } + label : 'Home', + }, ], title : 'Banker Mason', company : 'Qualitex', @@ -1903,8 +1903,8 @@ export const contacts = [ address : '713 Fane Court, Lemoyne, Kentucky, PO3601', notes : '

Sint tempor consectetur ullamco ullamco consequat exercitation ea occaecat eiusmod cupidatat anim pariatur nisi pariatur excepteur ut labore anim excepteur sit eu consequat do enim pariatur et dolore in irure.

Commodo ut non minim sunt nisi tempor culpa duis anim ipsum qui irure lorem est voluptate voluptate officia occaecat lorem labore elit officia laboris mollit et eiusmod esse laborum nisi.

', tags : [ - 'cbde2486-5033-4e09-838e-e901b108cd41' - ] + 'cbde2486-5033-4e09-838e-e901b108cd41', + ], }, { id : '0630f1ca-cdb9-405d-b134-68f733334089', @@ -1914,24 +1914,24 @@ export const contacts = [ emails : [ { email: 'maryannmcintyre@mail.info', - label: 'Personal' + label: 'Personal', }, { email: 'mcintyre.maryann@aquafire.biz', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'bf', phoneNumber: '861 419 2752', - label : 'Mobile' + label : 'Mobile', }, { country : 'bf', phoneNumber: '935 553 3031', - label : 'Work' - } + label : 'Work', + }, ], title : 'Fundraising Director', company : 'Aquafire', @@ -1939,8 +1939,8 @@ export const contacts = [ address : '698 Brooklyn Avenue, Dixonville, Utah, PO2712', notes : '

Pariatur velit ea ad quis elit pariatur consectetur eiusmod veniam non incididunt ex ex et nulla voluptate fugiat esse sit dolore voluptate in dolor nulla laborum irure consequat sit pariatur.

Dolore ex officia incididunt pariatur ea amet sunt enim aute labore cupidatat laboris eiusmod enim lorem labore nostrud ea consectetur et eu sunt exercitation dolore consequat fugiat anim in exercitation.

', tags : [ - 'a8991c76-2fda-4bbd-a718-df13d6478847' - ] + 'a8991c76-2fda-4bbd-a718-df13d6478847', + ], }, { id : '999c24f3-7bb8-4a01-85ca-2fca7863c57e', @@ -1950,29 +1950,29 @@ export const contacts = [ emails : [ { email: 'sharonmarshall@mail.co.uk', - label: 'Personal' + label: 'Personal', }, { email: 'marshall.sharon@utara.net', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'fo', phoneNumber: '947 441 2999', - label : 'Mobile' + label : 'Mobile', }, { country : 'fo', phoneNumber: '984 441 2615', - label : 'Work' + label : 'Work', }, { country : 'fo', phoneNumber: '824 541 2714', - label : 'Home' - } + label : 'Home', + }, ], title : 'Legal Assistant', company : 'Utara', @@ -1980,8 +1980,8 @@ export const contacts = [ address : '923 Ivan Court, Hatteras, Idaho, PO7573', notes : '

Est duis sint ullamco nulla do tempor do dolore laboris in sint ad duis est eu consequat nisi esse irure tempor sunt pariatur qui mollit ipsum quis esse ex ipsum.

Dolore anim irure quis ipsum adipisicing sint et incididunt aute nisi minim aliquip consectetur duis tempor laborum nostrud exercitation do mollit irure anim lorem non excepteur commodo laborum dolore dolor.

', tags : [ - '3eaab175-ec0d-4db7-bc3b-efc633c769be' - ] + '3eaab175-ec0d-4db7-bc3b-efc633c769be', + ], }, { id : '7e8e1f1e-d19f-45c7-86bd-6fef599dae71', @@ -1991,29 +1991,29 @@ export const contacts = [ emails : [ { email: 'margowitt@mail.ca', - label: 'Personal' + label: 'Personal', }, { email: 'witt.margo@norsul.org', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'ao', phoneNumber: '992 596 3391', - label : 'Mobile' + label : 'Mobile', }, { country : 'ao', phoneNumber: '950 489 2505', - label : 'Work' + label : 'Work', }, { country : 'ao', phoneNumber: '891 540 2231', - label : 'Home' - } + label : 'Home', + }, ], title : 'Television News Producer', company : 'Norsul', @@ -2021,8 +2021,8 @@ export const contacts = [ address : '539 Rockaway Avenue, Whitmer, Guam, PO4871', notes : '

Sunt quis officia elit laborum excepteur consequat amet cillum labore deserunt cillum cillum labore exercitation minim laboris anim incididunt voluptate minim duis enim eu duis veniam labore nisi culpa duis.

Pariatur irure sunt et commodo reprehenderit consectetur duis et ullamco fugiat occaecat culpa enim incididunt officia minim aliqua sit amet do dolore pariatur fugiat et adipisicing labore dolor id dolore.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : 'bedcb6a2-da83-4631-866a-77d10d239477', @@ -2032,15 +2032,15 @@ export const contacts = [ emails : [ { email: 'alvaradoturner@mail.io', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'lv', phoneNumber: '961 537 3956', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Fundraising Director', company : 'Geologix', @@ -2048,8 +2048,8 @@ export const contacts = [ address : '233 Willmohr Street, Cressey, Iowa, PO1962', notes : '

In amet voluptate ad eiusmod cupidatat nulla sunt eu amet occaecat qui cillum occaecat tempor minim nostrud ullamco amet elit aliquip est nisi officia lorem occaecat ea lorem officia veniam.

Nulla tempor id excepteur irure do do veniam eiusmod esse ipsum sint dolore commodo enim officia nulla nulla proident in dolor et aliquip sit nulla sit proident duis aute deserunt.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : '66f9de1b-f842-4d4c-bb59-f97e91db0462', @@ -2059,29 +2059,29 @@ export const contacts = [ emails : [ { email: 'maldonadorodriquez@mail.us', - label: 'Personal' + label: 'Personal', }, { email: 'rodriquez.maldonado@zentility.tv', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'et', phoneNumber: '811 502 3398', - label : 'Mobile' + label : 'Mobile', }, { country : 'et', phoneNumber: '877 402 2443', - label : 'Work' + label : 'Work', }, { country : 'et', phoneNumber: '949 536 3451', - label : 'Home' - } + label : 'Home', + }, ], title : 'Dental Laboratory Worker', company : 'Zentility', @@ -2089,8 +2089,8 @@ export const contacts = [ address : '916 Cobek Court, Morningside, South Dakota, PO2019', notes : '

Laboris consequat labore nisi aute voluptate minim amet nulla elit tempor dolor nulla do et consequat esse dolore fugiat laboris deserunt velit minim laboris voluptate enim ut non laboris nisi.

Magna pariatur voluptate veniam nostrud irure magna pariatur ut quis reprehenderit voluptate aute duis sunt laboris consequat lorem eu pariatur nulla incididunt quis lorem consectetur ex lorem commodo magna dolore.

', tags : [ - 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309' - ] + 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309', + ], }, { id : '9cb0ea57-3461-4182-979b-593b0c1ec6c3', @@ -2100,29 +2100,29 @@ export const contacts = [ emails : [ { email: 'tranduke@mail.com', - label: 'Personal' + label: 'Personal', }, { email: 'duke.tran@splinx.name', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'si', phoneNumber: '837 503 2254', - label : 'Mobile' + label : 'Mobile', }, { country : 'si', phoneNumber: '893 405 3190', - label : 'Work' + label : 'Work', }, { country : 'si', phoneNumber: '931 402 3874', - label : 'Home' - } + label : 'Home', + }, ], title : 'Legal Assistant', company : 'Splinx', @@ -2130,8 +2130,8 @@ export const contacts = [ address : '405 Canarsie Road, Richville, Virgin Islands, PO2744', notes : '

Occaecat do excepteur non ipsum labore consequat id eu sunt minim aliquip elit occaecat velit ut aute cupidatat irure ex eiusmod fugiat ea ea cupidatat nulla dolor labore consectetur amet.

Mollit enim dolore deserunt tempor aliqua velit nostrud nostrud id consectetur lorem in enim excepteur nisi laborum ex commodo sint ea et culpa lorem esse culpa ad officia do amet.

', tags : [ - '3eaab175-ec0d-4db7-bc3b-efc633c769be' - ] + '3eaab175-ec0d-4db7-bc3b-efc633c769be', + ], }, { id : '2fb89a90-5622-4b5b-8df3-d49b85905392', @@ -2141,25 +2141,25 @@ export const contacts = [ emails : [ { email: 'estelalyons@mail.me', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'vg', phoneNumber: '864 459 3205', - label : 'Mobile' + label : 'Mobile', }, { country : 'vg', phoneNumber: '886 524 2880', - label : 'Work' + label : 'Work', }, { country : 'vg', phoneNumber: '815 484 3420', - label : 'Home' - } + label : 'Home', + }, ], title : 'Animal Sitter', company : 'Gonkle', @@ -2167,8 +2167,8 @@ export const contacts = [ address : '540 Metrotech Courtr, Garfield, American Samoa, PO2290', notes : '

Ullamco dolore ipsum exercitation officia dolore sit consequat nisi consequat occaecat et ipsum veniam anim tempor pariatur sunt in adipisicing aliqua non dolor laborum veniam nisi dolore quis sunt incididunt.

Incididunt ullamco sunt magna reprehenderit velit dolor qui anim eiusmod nostrud commodo exercitation velit incididunt exercitation nulla ad aute eiusmod est amet exercitation est nostrud sit esse esse ad irure.

', tags : [ - '2026ce08-d08f-4b4f-9506-b10cdb5b104f' - ] + '2026ce08-d08f-4b4f-9506-b10cdb5b104f', + ], }, { id : '8141dd08-3a6e-4770-912c-59d0ed06dde6', @@ -2178,19 +2178,19 @@ export const contacts = [ emails : [ { email: 'madeleinefletcher@mail.info', - label: 'Personal' + label: 'Personal', }, { email: 'fletcher.madeleine@genmom.biz', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'uy', phoneNumber: '898 554 3354', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Fundraising Director', company : 'Genmom', @@ -2198,8 +2198,8 @@ export const contacts = [ address : '825 Cherry Street, Foscoe, Minnesota, PO7290', notes : '

Fugiat in exercitation nostrud labore labore irure ex magna ex aliquip veniam sit irure irure deserunt occaecat tempor cillum aliqua dolore ea tempor dolore laboris est amet quis consequat quis.

Esse officia velit consectetur ullamco ea pariatur mollit sit consectetur sint mollit commodo anim anim ea amet consectetur eiusmod aliqua excepteur elit laborum magna non fugiat nisi pariatur ut velit.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : '7585015c-ada2-4f88-998d-9646865d1ad2', @@ -2209,25 +2209,25 @@ export const contacts = [ emails : [ { email: 'meyerroach@mail.co.uk', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'uz', phoneNumber: '891 543 2053', - label : 'Mobile' + label : 'Mobile', }, { country : 'uz', phoneNumber: '842 564 3671', - label : 'Work' + label : 'Work', }, { country : 'uz', phoneNumber: '992 491 3514', - label : 'Home' - } + label : 'Home', + }, ], title : 'Electromedical Equipment Technician', company : 'Zentime', @@ -2235,8 +2235,8 @@ export const contacts = [ address : '315 Albemarle Road, Allison, Arkansas, PO6008', notes : '

Eiusmod deserunt aliqua dolore ipsum cillum veniam minim dolore nulla aute aliqua voluptate labore sint cillum excepteur nulla nostrud do cupidatat eu adipisicing reprehenderit deserunt elit qui mollit adipisicing eu.

Proident commodo magna eu voluptate eiusmod aliqua laborum eu ea elit quis ullamco ullamco magna minim enim amet dolore sit lorem aliqua officia amet officia non magna enim cillum sit.

', tags : [ - 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309' - ] + 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309', + ], }, { id : '32c73a6a-67f2-48a9-b2a1-b23da83187bb', @@ -2246,24 +2246,24 @@ export const contacts = [ emails : [ { email: 'boltonobrien@mail.net', - label: 'Personal' + label: 'Personal', }, { email: 'obrien.bolton@enersol.ca', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'tn', phoneNumber: '860 472 2458', - label : 'Mobile' + label : 'Mobile', }, { country : 'tn', phoneNumber: '887 499 3580', - label : 'Work' - } + label : 'Work', + }, ], title : 'Banker Mason', company : 'Enersol', @@ -2271,8 +2271,8 @@ export const contacts = [ address : '818 Aviation Road, Geyserville, Palau, PO9655', notes : '

Cupidatat lorem tempor commodo do eu ea dolor eiusmod do nisi occaecat fugiat labore non esse aliquip ullamco laboris adipisicing pariatur nostrud enim minim do fugiat culpa exercitation lorem duis.

Pariatur cupidatat tempor est et nostrud in amet aliquip sint nulla amet ea lorem irure sint sit ea aliquip voluptate id laboris fugiat cillum cillum dolore deserunt fugiat ad tempor.

', tags : [ - 'a8991c76-2fda-4bbd-a718-df13d6478847' - ] + 'a8991c76-2fda-4bbd-a718-df13d6478847', + ], }, { id : '114642a2-ccb7-4cb1-ad2b-5e9b6a0c1d2e', @@ -2282,25 +2282,25 @@ export const contacts = [ emails : [ { email: 'barberjohnson@mail.org', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'az', phoneNumber: '928 567 2521', - label : 'Mobile' + label : 'Mobile', }, { country : 'az', phoneNumber: '898 515 2048', - label : 'Work' + label : 'Work', }, { country : 'az', phoneNumber: '935 495 3348', - label : 'Home' - } + label : 'Home', + }, ], title : 'Talent Manager', company : 'Zounds', @@ -2308,8 +2308,8 @@ export const contacts = [ address : '386 Vernon Avenue, Dragoon, North Carolina, PO4559', notes : '

Esse amet ex duis esse aliqua non tempor ullamco dolore et aliquip nisi pariatur qui laborum id consequat tempor sint eiusmod exercitation velit aliquip occaecat tempor nisi aute magna sint.

Deserunt veniam voluptate dolore eiusmod eu consequat dolor sit pariatur laboris anim excepteur consequat nulla officia exercitation magna sint ea excepteur qui eu officia pariatur culpa sint elit nulla officia.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : '310ece7d-dbb0-45d6-9e69-14c24e50fe3d', @@ -2319,20 +2319,20 @@ export const contacts = [ emails : [ { email: 'cervanteskramer@mail.io', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'vg', phoneNumber: '998 498 2507', - label : 'Mobile' + label : 'Mobile', }, { country : 'vg', phoneNumber: '856 477 3445', - label : 'Work' - } + label : 'Work', + }, ], title : 'Motor Winder', company : 'Xeronk', @@ -2340,8 +2340,8 @@ export const contacts = [ address : '238 Rochester Avenue, Lydia, Oklahoma, PO3914', notes : '

Excepteur do ullamco voluptate deserunt tempor ullamco enim non incididunt adipisicing sunt sint sit qui occaecat occaecat id laboris et duis amet reprehenderit cupidatat aliquip dolore ea eu ea nulla.

Cillum nulla deserunt laboris eu sint dolor non laboris cupidatat aute nisi amet mollit ipsum cillum excepteur consequat tempor exercitation consequat nostrud ipsum qui excepteur eiusmod nostrud laboris pariatur sint.

', tags : [ - 'a8991c76-2fda-4bbd-a718-df13d6478847' - ] + 'a8991c76-2fda-4bbd-a718-df13d6478847', + ], }, { id : 'dcc673f6-de59-4715-94ed-8f64663d449b', @@ -2351,25 +2351,25 @@ export const contacts = [ emails : [ { email: 'megansuarez@mail.us', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'bb', phoneNumber: '875 422 2053', - label : 'Mobile' + label : 'Mobile', }, { country : 'bb', phoneNumber: '861 487 2597', - label : 'Work' + label : 'Work', }, { country : 'bb', phoneNumber: '873 414 3953', - label : 'Home' - } + label : 'Home', + }, ], title : 'Bindery Machine Operator', company : 'Cemention', @@ -2377,8 +2377,8 @@ export const contacts = [ address : '112 Tillary Street, Camptown, Vermont, PO8827', notes : '

Pariatur tempor laborum deserunt commodo eiusmod adipisicing amet anim irure fugiat laboris velit do velit elit aute deserunt officia fugiat nulla ullamco est elit veniam officia sit veniam velit commodo.

Laboris duis eu adipisicing esse fugiat voluptate enim sint in voluptate lorem laboris eiusmod commodo nostrud dolor qui incididunt non fugiat culpa aliquip minim voluptate lorem sint sunt velit eiusmod.

', tags : [ - '65930b5a-5d2a-4303-b11f-865d69e6fdb5' - ] + '65930b5a-5d2a-4303-b11f-865d69e6fdb5', + ], }, { id : '3e4ca731-d39b-4ad9-b6e0-f84e67f4b74a', @@ -2388,33 +2388,33 @@ export const contacts = [ emails : [ { email: 'ofeliaratliff@mail.tv', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'vu', phoneNumber: '978 546 3699', - label : 'Mobile' + label : 'Mobile', }, { country : 'vu', phoneNumber: '892 551 2229', - label : 'Work' + label : 'Work', }, { country : 'vu', phoneNumber: '949 495 3479', - label : 'Home' - } + label : 'Home', + }, ], company : 'Buzzmaker', birthday : '1988-11-11T12:00:00.000Z', address : '951 Hampton Avenue, Bartonsville, Mississippi, PO4232', notes : '

Ad lorem id irure aute ipsum ex occaecat commodo dolore eu dolor exercitation anim quis officia deserunt lorem sunt officia eu sit aliquip laborum id duis aliqua quis aute magna.

Do do lorem est amet aliqua ex excepteur nisi cupidatat esse consequat ipsum in ad eiusmod proident cupidatat dolore anim ut pariatur sint do elit incididunt officia adipisicing amet eu.

', tags : [ - 'a8991c76-2fda-4bbd-a718-df13d6478847' - ] + 'a8991c76-2fda-4bbd-a718-df13d6478847', + ], }, { id : '2012d4a5-19e4-444d-aaff-1d8b1d853650', @@ -2424,25 +2424,25 @@ export const contacts = [ emails : [ { email: 'laurelparker@mail.com', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'lu', phoneNumber: '805 502 3677', - label : 'Mobile' + label : 'Mobile', }, { country : 'lu', phoneNumber: '925 527 2973', - label : 'Work' + label : 'Work', }, { country : 'lu', phoneNumber: '975 495 2977', - label : 'Home' - } + label : 'Home', + }, ], title : 'Fundraising Director', company : 'Omnigog', @@ -2450,8 +2450,8 @@ export const contacts = [ address : '157 Woodhull Street, Rutherford, West Virginia, PO6646', notes : '

Duis laboris consectetur et anim eiusmod laborum aute mollit ut officia ipsum dolore eiusmod ex eu elit officia est amet aliquip ullamco veniam proident id aliquip duis qui voluptate fugiat.

Sunt aliquip nulla amet sint culpa laboris quis proident qui veniam excepteur ullamco irure non eu occaecat est enim ut velit dolore sit tempor cillum reprehenderit proident velit lorem ad.

', tags : [ - '2026ce08-d08f-4b4f-9506-b10cdb5b104f' - ] + '2026ce08-d08f-4b4f-9506-b10cdb5b104f', + ], }, { id : '012b8219-74bf-447c-af2c-66904d90a956', @@ -2461,19 +2461,19 @@ export const contacts = [ emails : [ { email: 'tracydelacruz@mail.name', - label: 'Personal' + label: 'Personal', }, { email: 'delacruz.tracy@shepard.me', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'co', phoneNumber: '974 428 2886', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Bindery Machine Operator', company : 'Shepard', @@ -2481,8 +2481,8 @@ export const contacts = [ address : '604 Merit Court, Wyano, New Hampshire, PO1641', notes : '

Dolor anim fugiat aliquip eiusmod lorem nisi adipisicing ea deserunt est quis non sit nulla voluptate deserunt magna eiusmod irure labore fugiat consectetur laboris velit voluptate exercitation aute magna sit.

Sunt ullamco quis qui ea ullamco quis sit ex nisi deserunt fugiat qui culpa minim proident dolor veniam lorem nulla amet do dolor proident sunt ex incididunt ipsum cillum non.

', tags : [ - 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309' - ] + 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309', + ], }, { id : '8b1befd2-66a7-4981-ae52-77f01b382d18', @@ -2492,29 +2492,29 @@ export const contacts = [ emails : [ { email: 'jeannettestanton@mail.info', - label: 'Personal' + label: 'Personal', }, { email: 'stanton.jeannette@zentury.biz', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'dz', phoneNumber: '947 561 3783', - label : 'Mobile' + label : 'Mobile', }, { country : 'dz', phoneNumber: '917 463 3737', - label : 'Work' + label : 'Work', }, { country : 'dz', phoneNumber: '835 510 2059', - label : 'Home' - } + label : 'Home', + }, ], title : 'Hotel Manager', company : 'Zentury', @@ -2522,8 +2522,8 @@ export const contacts = [ address : '100 Menahan Street, Snyderville, Kansas, PO1006', notes : '

Sint anim sint tempor proident irure proident exercitation dolor enim in sint non occaecat tempor mollit dolore ea labore ipsum sunt in incididunt proident excepteur id in velit et quis.

Amet mollit ut nostrud cupidatat ut culpa irure in ex occaecat aute aliqua tempor incididunt elit nulla irure aliqua ea do amet ex elit incididunt minim eu fugiat elit pariatur.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : '844668c3-5e20-4fed-9e3a-7d274f696e61', @@ -2533,19 +2533,19 @@ export const contacts = [ emails : [ { email: 'johnniecleveland@mail.co.uk', - label: 'Personal' + label: 'Personal', }, { email: 'cleveland.johnnie@viasia.net', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'au', phoneNumber: '947 468 2942', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Fundraising Director', company : 'Viasia', @@ -2553,8 +2553,8 @@ export const contacts = [ address : '283 Albany Avenue, Jennings, Rhode Island, PO1646', notes : '

Id est dolore nostrud consectetur ullamco aliquip dolore nisi consectetur cupidatat consectetur ut lorem exercitation laborum est culpa qui aliquip fugiat fugiat laborum minim sint sit laborum elit consectetur occaecat.

Cillum eu aliquip ex enim dolore enim ea pariatur elit voluptate in eu magna eu voluptate est cupidatat aliqua cupidatat ex eu dolor voluptate velit fugiat ipsum labore labore aliqua.

', tags : [ - '65930b5a-5d2a-4303-b11f-865d69e6fdb5' - ] + '65930b5a-5d2a-4303-b11f-865d69e6fdb5', + ], }, { id : '5a01e870-8be1-45a5-b58a-ec09c06e8f28', @@ -2564,20 +2564,20 @@ export const contacts = [ emails : [ { email: 'stacihyde@mail.ca', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'id', phoneNumber: '944 525 2944', - label : 'Mobile' + label : 'Mobile', }, { country : 'id', phoneNumber: '877 500 2506', - label : 'Work' - } + label : 'Work', + }, ], title : 'Banker Mason', company : 'Zilla', @@ -2585,8 +2585,8 @@ export const contacts = [ address : '560 Dooley Street, Ellerslie, Louisiana, PO1005', notes : '

Pariatur esse ex laborum ex dolor laborum proident enim consectetur occaecat magna adipisicing magna dolore officia aute et dolor aliquip enim adipisicing culpa reprehenderit aliqua officia qui pariatur aliquip occaecat.

Excepteur est nisi officia eiusmod et duis mollit labore minim duis officia lorem ipsum duis deserunt cupidatat excepteur nostrud incididunt non cillum fugiat adipisicing anim consectetur nostrud aliquip labore cupidatat.

', tags : [ - '56ddbd47-4078-4ddd-8448-73c5e88d5f59' - ] + '56ddbd47-4078-4ddd-8448-73c5e88d5f59', + ], }, { id : '5ac1f193-f150-45f9-bfe4-b7b4e1a83ff9', @@ -2596,25 +2596,25 @@ export const contacts = [ emails : [ { email: 'angelagallagher@mail.org', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'et', phoneNumber: '996 514 3856', - label : 'Mobile' + label : 'Mobile', }, { country : 'et', phoneNumber: '903 539 2049', - label : 'Work' + label : 'Work', }, { country : 'et', phoneNumber: '938 463 3685', - label : 'Home' - } + label : 'Home', + }, ], title : 'Electromedical Equipment Technician', company : 'Zenolux', @@ -2622,8 +2622,8 @@ export const contacts = [ address : '445 Remsen Avenue, Ruckersville, Delaware, PO2712', notes : '

Pariatur do nisi labore culpa minim aliquip excepteur voluptate id id aute eu aliquip adipisicing nulla laboris consectetur dolore ullamco ut exercitation fugiat excepteur veniam ex cillum cupidatat ad adipisicing.

Dolor culpa dolor magna incididunt voluptate sunt amet dolor cillum ut nostrud nisi quis ex pariatur enim dolore sunt sunt cupidatat id non lorem magna esse amet commodo minim id.

', tags : [ - 'cbde2486-5033-4e09-838e-e901b108cd41' - ] + 'cbde2486-5033-4e09-838e-e901b108cd41', + ], }, { id : '995df091-d78a-4bb7-840c-ba6a7d14a1bd', @@ -2633,20 +2633,20 @@ export const contacts = [ emails : [ { email: 'hutchinsonlevy@mail.io', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'et', phoneNumber: '970 546 3452', - label : 'Mobile' + label : 'Mobile', }, { country : 'et', phoneNumber: '894 438 2430', - label : 'Work' - } + label : 'Work', + }, ], title : 'Congressional Representative', company : 'Zytrek', @@ -2654,8 +2654,8 @@ export const contacts = [ address : '911 Lois Avenue, Epworth, California, PO6557', notes : '

Veniam deserunt aliquip culpa commodo et est ea cillum ea pariatur reprehenderit dolore adipisicing voluptate dolor eiusmod tempor exercitation reprehenderit nostrud labore nostrud do nulla commodo officia qui culpa ea.

Velit deserunt do ut esse tempor minim cupidatat amet qui consequat enim duis elit veniam sunt sit aliquip irure cillum irure sunt officia incididunt cupidatat commodo amet non qui anim.

', tags : [ - '65930b5a-5d2a-4303-b11f-865d69e6fdb5' - ] + '65930b5a-5d2a-4303-b11f-865d69e6fdb5', + ], }, { id : '7184be71-a28f-4f2b-8c45-15f78cf2f825', @@ -2665,15 +2665,15 @@ export const contacts = [ emails : [ { email: 'alissanelson@mail.us', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'lu', phoneNumber: '893 600 2639', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Bindery Machine Operator', company : 'Emtrak', @@ -2681,8 +2681,8 @@ export const contacts = [ address : '514 Sutter Avenue, Shindler, Puerto Rico, PO3862', notes : '

Ullamco ut aute reprehenderit velit incididunt veniam consequat ut ipsum sint laborum duis officia pariatur mollit enim nulla reprehenderit dolor aliquip labore ex aute in sunt dolor nulla reprehenderit dolor.

Ad enim ex non minim commodo culpa culpa ex est anim aute adipisicing proident ut ex et aliquip amet exercitation lorem tempor laborum quis reprehenderit veniam proident ullamco id eiusmod.

', tags : [ - '3eaab175-ec0d-4db7-bc3b-efc633c769be' - ] + '3eaab175-ec0d-4db7-bc3b-efc633c769be', + ], }, { id : '325d508c-ca49-42bf-b0d5-c4a6b8da3d5c', @@ -2692,15 +2692,15 @@ export const contacts = [ emails : [ { email: 'oliverhead@mail.tv', - label: 'Personal' - } + label: 'Personal', + }, ], phoneNumbers: [ { country : 'bn', phoneNumber: '977 528 3294', - label : 'Mobile' - } + label : 'Mobile', + }, ], title : 'Meteorologist', company : 'Rameon', @@ -2708,8 +2708,8 @@ export const contacts = [ address : '569 Clermont Avenue, Movico, Marshall Islands, PO7293', notes : '

Duis laborum magna ipsum officia cillum ea ut commodo anim exercitation incididunt id ipsum nisi consectetur aute officia culpa anim in veniam ad officia consequat qui ullamco ea laboris ad.

Ad ea excepteur ea veniam nostrud est labore ea consectetur laboris cupidatat aute pariatur aute mollit dolor do deserunt nisi mollit fugiat qui officia ullamco est officia est ullamco consequat.

', tags : [ - '65930b5a-5d2a-4303-b11f-865d69e6fdb5' - ] + '65930b5a-5d2a-4303-b11f-865d69e6fdb5', + ], }, { id : 'c674b6e1-b846-4bba-824b-0b4df0cdec48', @@ -2719,29 +2719,29 @@ export const contacts = [ emails : [ { email: 'duranbarr@mail.com', - label: 'Personal' + label: 'Personal', }, { email: 'barr.duran@hinway.name', - label: 'Work' - } + label: 'Work', + }, ], phoneNumbers: [ { country : 'sr', phoneNumber: '857 457 2508', - label : 'Mobile' + label : 'Mobile', }, { country : 'sr', phoneNumber: '887 522 2146', - label : 'Work' + label : 'Work', }, { country : 'sr', phoneNumber: '947 574 3174', - label : 'Home' - } + label : 'Home', + }, ], title : 'Insurance Analyst', company : 'Hinway', @@ -2749,9 +2749,9 @@ export const contacts = [ address : '103 Chestnut Avenue, Glenbrook, Indiana, PO2578', notes : '

Ad ipsum occaecat dolore ullamco labore ex sint est pariatur aliquip ea do esse do est dolore duis excepteur esse irure eiusmod pariatur elit nostrud laboris ad ex nostrud nostrud.

Occaecat proident magna elit ullamco ea incididunt fugiat est nulla reprehenderit in veniam esse qui minim aliqua tempor excepteur dolor et tempor occaecat in veniam esse qui exercitation laborum esse.

', tags : [ - 'a8991c76-2fda-4bbd-a718-df13d6478847' - ] - } + 'a8991c76-2fda-4bbd-a718-df13d6478847', + ], + }, ]; export const countries = [ { @@ -2759,1674 +2759,1674 @@ export const countries = [ iso : 'af', name : 'Afghanistan', code : '+93', - flagImagePos: '-1px -3180px' + flagImagePos: '-1px -3180px', }, { id : '6c6b5c5c-97d5-4881-b5e1-e05b8f739ee7', iso : 'al', name : 'Albania', code : '+355', - flagImagePos: '-1px -1310px' + flagImagePos: '-1px -1310px', }, { id : 'd1f3941f-075e-4777-a5fd-8b196d98cd5a', iso : 'dz', name : 'Algeria', code : '+213', - flagImagePos: '-1px -681px' + flagImagePos: '-1px -681px', }, { id : '0dc3d1b8-f7f3-4c3d-8493-0d8b5a679910', iso : 'as', name : 'American Samoa', code : '+1', - flagImagePos: '-1px -2058px' + flagImagePos: '-1px -2058px', }, { id : 'e2e88578-b410-499f-aa59-9bb8da13c781', iso : 'ad', name : 'Andorra', code : '+376', - flagImagePos: '-1px -766px' + flagImagePos: '-1px -766px', }, { id : '4446885b-b391-4b84-866f-2b36603053c4', iso : 'ao', name : 'Angola', code : '+244', - flagImagePos: '-1px -2636px' + flagImagePos: '-1px -2636px', }, { id : '07024099-a3db-4881-a628-24e8c0ba2508', iso : 'ai', name : 'Anguilla', code : '+1', - flagImagePos: '-1px -2687px' + flagImagePos: '-1px -2687px', }, { id : '26be08bc-d87a-4134-9fb0-73b6a5b47cea', iso : 'ag', name : 'Antigua & Barbuda', code : '+1', - flagImagePos: '-1px -1140px' + flagImagePos: '-1px -1140px', }, { id : '53c77399-494e-49df-9e3a-587b536c033e', iso : 'ar', name : 'Argentina', code : '+54', - flagImagePos: '-1px -3282px' + flagImagePos: '-1px -3282px', }, { id : '9f5753c4-e9e4-4975-86b4-9eb9f4f484de', iso : 'am', name : 'Armenia', code : '+374', - flagImagePos: '-1px -205px' + flagImagePos: '-1px -205px', }, { id : 'f1bbb833-5c47-4e17-b8c3-1d492107dc86', iso : 'aw', name : 'Aruba', code : '+297', - flagImagePos: '-1px -1021px' + flagImagePos: '-1px -1021px', }, { id : 'dc7e3322-8bd5-4c49-932d-a8e50bd1f9ad', iso : 'ac', name : 'Ascension Island', code : '+247', - flagImagePos: '-1px -86px' + flagImagePos: '-1px -86px', }, { id : '4505ba35-afa5-47ef-a6c7-9b57f1dcd187', iso : 'au', name : 'Australia', code : '+61', - flagImagePos: '-1px -2279px' + flagImagePos: '-1px -2279px', }, { id : '57b3cd1f-d5d6-403b-8137-fbeeacaf136a', iso : 'at', name : 'Austria', code : '+43', - flagImagePos: '-1px -1735px' + flagImagePos: '-1px -1735px', }, { id : '11cbde08-3c33-422c-bf4b-85561595ffb5', iso : 'az', name : 'Azerbaijan', code : '+994', - flagImagePos: '-1px -1599px' + flagImagePos: '-1px -1599px', }, { id : '48c1e060-e685-4e91-8de8-725f42576e6c', iso : 'bs', name : 'Bahamas', code : '+1', - flagImagePos: '-1px -460px' + flagImagePos: '-1px -460px', }, { id : 'ee23ffb8-9540-4630-948e-ceba52fa54ce', iso : 'bh', name : 'Bahrain', code : '+973', - flagImagePos: '-1px -1956px' + flagImagePos: '-1px -1956px', }, { id : 'b5f37cb6-7870-4ed9-8f92-3864bd870062', iso : 'bd', name : 'Bangladesh', code : '+880', - flagImagePos: '-1px -2364px' + flagImagePos: '-1px -2364px', }, { id : '92de9080-f709-493e-a9fa-d23b3d4093d4', iso : 'bb', name : 'Barbados', code : '+1', - flagImagePos: '-1px -2075px' + flagImagePos: '-1px -2075px', }, { id : 'a2f4ff04-86b8-4bc0-952f-686bfe99c07f', iso : 'by', name : 'Belarus', code : '+375', - flagImagePos: '-1px -1412px' + flagImagePos: '-1px -1412px', }, { id : '2025b6b3-1287-4b4c-8b13-36deb44e5751', iso : 'be', name : 'Belgium', code : '+32', - flagImagePos: '-1px -1px' + flagImagePos: '-1px -1px', }, { id : '70d82950-3eca-496f-866d-d99c136260e5', iso : 'bz', name : 'Belize', code : '+501', - flagImagePos: '-1px -613px' + flagImagePos: '-1px -613px', }, { id : 'dc0bedf5-e197-46b4-af21-c2e495b15768', iso : 'bj', name : 'Benin', code : '+229', - flagImagePos: '-1px -1684px' + flagImagePos: '-1px -1684px', }, { id : 'aeee4f9d-99a1-4c6b-826c-f3c0ff707dce', iso : 'bm', name : 'Bermuda', code : '+1', - flagImagePos: '-1px -2585px' + flagImagePos: '-1px -2585px', }, { id : '73b80fa7-50d0-4fd5-8d26-24baade525a2', iso : 'bt', name : 'Bhutan', code : '+975', - flagImagePos: '-1px -2483px' + flagImagePos: '-1px -2483px', }, { id : '571bf396-810b-4fc4-9ffc-c9e4db9d3bef', iso : 'bo', name : 'Bolivia', code : '+591', - flagImagePos: '-1px -2177px' + flagImagePos: '-1px -2177px', }, { id : 'cbfbf28b-b79b-4b7d-a2e9-37a2000aa15b', iso : 'ba', name : 'Bosnia & Herzegovina', code : '+387', - flagImagePos: '-1px -2092px' + flagImagePos: '-1px -2092px', }, { id : 'f929da82-915c-4ac8-ba13-aa1b44174c71', iso : 'bw', name : 'Botswana', code : '+267', - flagImagePos: '-1px -3724px' + flagImagePos: '-1px -3724px', }, { id : '2dea0689-0548-400c-a58f-ebcd6373cd07', iso : 'br', name : 'Brazil', code : '+55', - flagImagePos: '-1px -1004px' + flagImagePos: '-1px -1004px', }, { id : 'd2c2c16f-15f8-467b-8c42-a02babe5362b', iso : 'io', name : 'British Indian Ocean Territory', code : '+246', - flagImagePos: '-1px -86px' + flagImagePos: '-1px -86px', }, { id : '1d90db23-ca7c-4d23-a995-9b2a8021f4ad', iso : 'vg', name : 'British Virgin Islands', code : '+1', - flagImagePos: '-1px -1854px' + flagImagePos: '-1px -1854px', }, { id : 'f16aebb2-cdae-4af2-aba5-f66f34d6ac3a', iso : 'bn', name : 'Brunei', code : '+673', - flagImagePos: '-1px -2228px' + flagImagePos: '-1px -2228px', }, { id : '499d6ee6-8f8b-4a5b-bb92-9cce9d1c6546', iso : 'bg', name : 'Bulgaria', code : '+359', - flagImagePos: '-1px -3537px' + flagImagePos: '-1px -3537px', }, { id : '67e2986b-98d0-44c3-b08f-6cbba8b14ff8', iso : 'bf', name : 'Burkina Faso', code : '+226', - flagImagePos: '-1px -953px' + flagImagePos: '-1px -953px', }, { id : 'fea611f2-4aa3-427f-86e1-657e8aef24a8', iso : 'bi', name : 'Burundi', code : '+257', - flagImagePos: '-1px -2551px' + flagImagePos: '-1px -2551px', }, { id : '3b959360-3d04-4018-afdf-a392afa1881d', iso : 'kh', name : 'Cambodia', code : '+855', - flagImagePos: '-1px -290px' + flagImagePos: '-1px -290px', }, { id : '9336ba3b-01be-4b84-82b5-f02395856ac5', iso : 'cm', name : 'Cameroon', code : '+237', - flagImagePos: '-1px -2806px' + flagImagePos: '-1px -2806px', }, { id : '36a159b0-f33e-4481-85b0-751bdd9ea79d', iso : 'ca', name : 'Canada', code : '+1', - flagImagePos: '-1px -1803px' + flagImagePos: '-1px -1803px', }, { id : 'a3038010-382e-436e-b61d-e4b923aa1cb3', iso : 'cv', name : 'Cape Verde', code : '+238', - flagImagePos: '-1px -3639px' + flagImagePos: '-1px -3639px', }, { id : 'dd898165-12a9-4c90-a3e4-012149c0feac', iso : 'bq', name : 'Caribbean Netherlands', code : '+599', - flagImagePos: '-1px -3741px' + flagImagePos: '-1px -3741px', }, { id : 'a1f30091-26da-481a-a84f-2638b2d7c14d', iso : 'ky', name : 'Cayman Islands', code : '+1', - flagImagePos: '-1px -375px' + flagImagePos: '-1px -375px', }, { id : '469b4a79-8a1a-4428-b7bd-4665202b7292', iso : 'cf', name : 'Central African Republic', code : '+236', - flagImagePos: '-1px -2466px' + flagImagePos: '-1px -2466px', }, { id : 'a9c2fa4b-c22a-41bd-9735-b4adeadab7f7', iso : 'td', name : 'Chad', code : '+235', - flagImagePos: '-1px -1055px' + flagImagePos: '-1px -1055px', }, { id : 'f0825f0d-e086-49e0-846e-9e4784bf872c', iso : 'cl', name : 'Chile', code : '+56', - flagImagePos: '-1px -1752px' + flagImagePos: '-1px -1752px', }, { id : '89d3f07d-446e-459d-b168-595af96d708f', iso : 'cn', name : 'China', code : '+86', - flagImagePos: '-1px -1072px' + flagImagePos: '-1px -1072px', }, { id : '903801ce-2f83-4df8-a380-9dc6df6c35cf', iso : 'co', name : 'Colombia', code : '+57', - flagImagePos: '-1px -409px' + flagImagePos: '-1px -409px', }, { id : '55d7d2be-8273-4770-844c-1ef87524cd27', iso : 'km', name : 'Comoros', code : '+269', - flagImagePos: '-1px -1871px' + flagImagePos: '-1px -1871px', }, { id : 'a5b00b2f-01de-4c0d-914f-fe05c92c8f43', iso : 'cg', name : 'Congo - Brazzaville', code : '+242', - flagImagePos: '-1px -2398px' + flagImagePos: '-1px -2398px', }, { id : '58e07572-21b9-4630-a17c-a51c0ade4b8a', iso : 'cd', name : 'Congo - Kinshasa', code : '+243', - flagImagePos: '-1px -1990px' + flagImagePos: '-1px -1990px', }, { id : '5a09d08e-b6ab-4084-8350-1d97d504c222', iso : 'ck', name : 'Cook Islands', code : '+682', - flagImagePos: '-1px -3112px' + flagImagePos: '-1px -3112px', }, { id : '760f2b33-0822-4ad9-83cf-b497dcf273bb', iso : 'cr', name : 'Costa Rica', code : '+506', - flagImagePos: '-1px -2857px' + flagImagePos: '-1px -2857px', }, { id : '489db55f-6316-4f43-a1c7-a0921e16743a', iso : 'ci', name : 'Côte d’Ivoire', code : '+225', - flagImagePos: '-1px -2194px' + flagImagePos: '-1px -2194px', }, { id : '398c1d99-7ee4-44cd-9c2a-067acba2c8fb', iso : 'hr', name : 'Croatia', code : '+385', - flagImagePos: '-1px -1174px' + flagImagePos: '-1px -1174px', }, { id : '572da7dc-8463-4797-ad84-7fcf8f53bb80', iso : 'cu', name : 'Cuba', code : '+53', - flagImagePos: '-1px -987px' + flagImagePos: '-1px -987px', }, { id : '572674e5-b0d4-4206-8310-70f4656e65e2', iso : 'cw', name : 'Curaçao', code : '+599', - flagImagePos: '-1px -3758px' + flagImagePos: '-1px -3758px', }, { id : 'ac1e2a9d-a888-427e-9ad3-a0cbb27e603a', iso : 'cy', name : 'Cyprus', code : '+357', - flagImagePos: '-1px -732px' + flagImagePos: '-1px -732px', }, { id : '075ce3fd-83e7-472a-89cb-8b5e224102c4', iso : 'cz', name : 'Czechia', code : '+420', - flagImagePos: '-1px -3095px' + flagImagePos: '-1px -3095px', }, { id : '4cde631a-97e9-4fc2-9465-9d9a433ca5c1', iso : 'dk', name : 'Denmark', code : '+45', - flagImagePos: '-1px -1820px' + flagImagePos: '-1px -1820px', }, { id : '1b9c40a6-bf03-4759-b6ab-8edefafd8b44', iso : 'dj', name : 'Djibouti', code : '+253', - flagImagePos: '-1px -2874px' + flagImagePos: '-1px -2874px', }, { id : 'f5eec2ba-1a0b-465c-b3e5-9bd8458d0704', iso : 'dm', name : 'Dominica', code : '+1', - flagImagePos: '-1px -3350px' + flagImagePos: '-1px -3350px', }, { id : 'cb6921fc-df2a-4a97-8a34-4d901ac1e994', iso : 'do', name : 'Dominican Republic', code : '+1', - flagImagePos: '-1px -2007px' + flagImagePos: '-1px -2007px', }, { id : '7d6641f1-ef97-4bee-b1b8-0f54fea35aeb', iso : 'ec', name : 'Ecuador', code : '+593', - flagImagePos: '-1px -1531px' + flagImagePos: '-1px -1531px', }, { id : 'dfeb30b9-b4b8-4931-9334-c3961b7843a6', iso : 'eg', name : 'Egypt', code : '+20', - flagImagePos: '-1px -3027px' + flagImagePos: '-1px -3027px', }, { id : '7d9f7158-7206-491f-a614-6a3e7e6af354', iso : 'sv', name : 'El Salvador', code : '+503', - flagImagePos: '-1px -2160px' + flagImagePos: '-1px -2160px', }, { id : 'bcdbebc2-a51d-4891-93b0-52b463d0841d', iso : 'gq', name : 'Equatorial Guinea', code : '+240', - flagImagePos: '-1px -1973px' + flagImagePos: '-1px -1973px', }, { id : '53c2c225-f321-406f-b377-7c8b6720bcb4', iso : 'er', name : 'Eritrea', code : '+291', - flagImagePos: '-1px -936px' + flagImagePos: '-1px -936px', }, { id : 'ba0e995a-17a8-48ff-88e6-54ff8207b038', iso : 'ee', name : 'Estonia', code : '+372', - flagImagePos: '-1px -3333px' + flagImagePos: '-1px -3333px', }, { id : 'abe9af9b-91da-4bba-9adf-a496bf414719', iso : 'sz', name : 'Eswatini', code : '+268', - flagImagePos: '-1px -3129px' + flagImagePos: '-1px -3129px', }, { id : 'e993ecc8-732a-4446-8ab1-144c084f3192', iso : 'et', name : 'Ethiopia', code : '+251', - flagImagePos: '-1px -3367px' + flagImagePos: '-1px -3367px', }, { id : '6c7aae9d-e18d-4d09-8467-7bb99d925768', iso : 'fk', name : 'Falkland Islands (Islas Malvinas)', code : '+500', - flagImagePos: '-1px -3809px' + flagImagePos: '-1px -3809px', }, { id : '92e704eb-9573-4d91-b932-2b1eddaacb3e', iso : 'fo', name : 'Faroe Islands', code : '+298', - flagImagePos: '-1px -1429px' + flagImagePos: '-1px -1429px', }, { id : '561c079c-69c2-4e62-b947-5cd76783a67c', iso : 'fj', name : 'Fiji', code : '+679', - flagImagePos: '-1px -2500px' + flagImagePos: '-1px -2500px', }, { id : '3f31a88e-c7ed-47fa-9aae-2058be7cbe09', iso : 'fi', name : 'Finland', code : '+358', - flagImagePos: '-1px -2568px' + flagImagePos: '-1px -2568px', }, { id : '4c8ba1fc-0203-4a8f-8321-4dda4a0c6732', iso : 'fr', name : 'France', code : '+33', - flagImagePos: '-1px -324px' + flagImagePos: '-1px -324px', }, { id : '198074d5-67a2-4fd3-b13d-429a394b6371', iso : 'gf', name : 'French Guiana', code : '+594', - flagImagePos: '-1px -324px' + flagImagePos: '-1px -324px', }, { id : '2f5ff3d1-745e-48a1-b4e8-a377b22af812', iso : 'pf', name : 'French Polynesia', code : '+689', - flagImagePos: '-1px -2262px' + flagImagePos: '-1px -2262px', }, { id : 'a8b80121-5529-4cfe-83fb-6b1f6c81abcb', iso : 'ga', name : 'Gabon', code : '+241', - flagImagePos: '-1px -1157px' + flagImagePos: '-1px -1157px', }, { id : 'c9bc7d57-7883-4f63-bc6e-5dcc3db8612d', iso : 'gm', name : 'Gambia', code : '+220', - flagImagePos: '-1px -817px' + flagImagePos: '-1px -817px', }, { id : '1fc146d8-cebe-4ef1-bb0f-30bd0870ccf9', iso : 'ge', name : 'Georgia', code : '+995', - flagImagePos: '-1px -1123px' + flagImagePos: '-1px -1123px', }, { id : 'e74ac4b1-0b4b-4630-bac0-2e53e270b363', iso : 'de', name : 'Germany', code : '+49', - flagImagePos: '-1px -3452px' + flagImagePos: '-1px -3452px', }, { id : 'adda89c9-4b47-4552-85c4-668f2cef2dbd', iso : 'gh', name : 'Ghana', code : '+233', - flagImagePos: '-1px -2891px' + flagImagePos: '-1px -2891px', }, { id : '962a059b-a5ac-4e2f-9405-5c418cadb6b0', iso : 'gi', name : 'Gibraltar', code : '+350', - flagImagePos: '-1px -341px' + flagImagePos: '-1px -341px', }, { id : '0acd0dae-0f39-4c23-be1d-c0295539d8c4', iso : 'gr', name : 'Greece', code : '+30', - flagImagePos: '-1px -188px' + flagImagePos: '-1px -188px', }, { id : '7529a6e4-8a6a-4c27-885e-ff0c5e15e515', iso : 'gl', name : 'Greenland', code : '+299', - flagImagePos: '-1px -2347px' + flagImagePos: '-1px -2347px', }, { id : '416ba85d-f860-48dc-9c60-32602c07e266', iso : 'gd', name : 'Grenada', code : '+1', - flagImagePos: '-1px -3316px' + flagImagePos: '-1px -3316px', }, { id : 'f43f1f96-1fb1-4e5e-b818-71e60e501fd4', iso : 'gp', name : 'Guadeloupe', code : '+590', - flagImagePos: '-1px -511px' + flagImagePos: '-1px -511px', }, { id : 'e29122da-20cf-4d24-bc68-93f9c3296730', iso : 'gu', name : 'Guam', code : '+1', - flagImagePos: '-1px -3265px' + flagImagePos: '-1px -3265px', }, { id : '8a24ff28-dcae-4846-b0c1-18cfcb04de06', iso : 'gt', name : 'Guatemala', code : '+502', - flagImagePos: '-1px -1208px' + flagImagePos: '-1px -1208px', }, { id : 'b617a005-be15-49c8-9533-c0376681a564', iso : 'gn', name : 'Guinea', code : '+224', - flagImagePos: '-1px -3520px' + flagImagePos: '-1px -3520px', }, { id : 'd9913e74-e340-4a4f-bf4b-aaaf1747364b', iso : 'gw', name : 'Guinea-Bissau', code : '+245', - flagImagePos: '-1px -2602px' + flagImagePos: '-1px -2602px', }, { id : 'c8245da4-cd4f-4818-a41e-42afec6faa9a', iso : 'gy', name : 'Guyana', code : '+592', - flagImagePos: '-1px -1038px' + flagImagePos: '-1px -1038px', }, { id : 'c598961d-3040-4dbb-8934-6d8eb4b9be97', iso : 'ht', name : 'Haiti', code : '+509', - flagImagePos: '-1px -392px' + flagImagePos: '-1px -392px', }, { id : 'f51aadf1-3c7a-4d24-b8fb-69c7e05243e4', iso : 'hn', name : 'Honduras', code : '+504', - flagImagePos: '-1px -2959px' + flagImagePos: '-1px -2959px', }, { id : 'a621dbe5-fb11-4f7f-9a8d-2330bd20c563', iso : 'hk', name : 'Hong Kong', code : '+852', - flagImagePos: '-1px -3707px' + flagImagePos: '-1px -3707px', }, { id : 'a113fe26-d409-4ab7-b27c-0e8ac112071f', iso : 'hu', name : 'Hungary', code : '+36', - flagImagePos: '-1px -902px' + flagImagePos: '-1px -902px', }, { id : '6430b612-4071-4614-bfdb-408fbb0b8fa4', iso : 'is', name : 'Iceland', code : '+354', - flagImagePos: '-1px -2704px' + flagImagePos: '-1px -2704px', }, { id : '4cce1334-df1f-4b11-9f15-a4faaac3d0db', iso : 'in', name : 'India', code : '+91', - flagImagePos: '-1px -2245px' + flagImagePos: '-1px -2245px', }, { id : '54969b2f-6aa9-4a58-850d-b4779ef3038e', iso : 'id', name : 'Indonesia', code : '+62', - flagImagePos: '-1px -2653px' + flagImagePos: '-1px -2653px', }, { id : 'cb631628-5854-44d2-9dbc-47cdf9c9ea5e', iso : 'ir', name : 'Iran', code : '+98', - flagImagePos: '-1px -2738px' + flagImagePos: '-1px -2738px', }, { id : '21a50cc1-954c-49c2-8296-696f1f57b79e', iso : 'iq', name : 'Iraq', code : '+964', - flagImagePos: '-1px -851px' + flagImagePos: '-1px -851px', }, { id : '3e17cb8a-9c44-4c75-b417-556546ceebff', iso : 'ie', name : 'Ireland', code : '+353', - flagImagePos: '-1px -2670px' + flagImagePos: '-1px -2670px', }, { id : '0a15f5a3-7571-478a-9fcd-6cbd6563e08c', iso : 'il', name : 'Israel', code : '+972', - flagImagePos: '-1px -426px' + flagImagePos: '-1px -426px', }, { id : '2cbab786-d79b-4ea1-ab26-0553c5e423d3', iso : 'it', name : 'Italy', code : '+39', - flagImagePos: '-1px -154px' + flagImagePos: '-1px -154px', }, { id : '33a67cd8-0858-46c3-b833-4fd395d2daa4', iso : 'jm', name : 'Jamaica', code : '+1', - flagImagePos: '-1px -2296px' + flagImagePos: '-1px -2296px', }, { id : '5edf8bb6-6a29-44ee-b5f2-7d7cbf61f971', iso : 'jp', name : 'Japan', code : '+81', - flagImagePos: '-1px -528px' + flagImagePos: '-1px -528px', }, { id : '879b69bb-3f8f-484f-a767-7fdeef6bae15', iso : 'jo', name : 'Jordan', code : '+962', - flagImagePos: '-1px -1905px' + flagImagePos: '-1px -1905px', }, { id : '4217e52c-2835-4c7b-87d3-e290c4fa6074', iso : 'kz', name : 'Kazakhstan', code : '+7', - flagImagePos: '-1px -1565px' + flagImagePos: '-1px -1565px', }, { id : '934b172d-4427-47f6-8648-6411652be23d', iso : 'ke', name : 'Kenya', code : '+254', - flagImagePos: '-1px -3605px' + flagImagePos: '-1px -3605px', }, { id : '2358e177-3956-4bcf-a954-56275e90e28d', iso : 'ki', name : 'Kiribati', code : '+686', - flagImagePos: '-1px -477px' + flagImagePos: '-1px -477px', }, { id : '98e8fae8-cd1b-419f-813b-ee348b51d843', iso : 'xk', name : 'Kosovo', code : '+383', - flagImagePos: '-1px -3860px' + flagImagePos: '-1px -3860px', }, { id : '5376f774-4fcb-47dc-b118-e48d34b030ef', iso : 'kw', name : 'Kuwait', code : '+965', - flagImagePos: '-1px -3435px' + flagImagePos: '-1px -3435px', }, { id : '9bc380c4-5840-4d26-a615-310cd817ae94', iso : 'kg', name : 'Kyrgyzstan', code : '+996', - flagImagePos: '-1px -2143px' + flagImagePos: '-1px -2143px', }, { id : '3278e7f0-176b-4352-9e38-df59b052b91f', iso : 'la', name : 'Laos', code : '+856', - flagImagePos: '-1px -562px' + flagImagePos: '-1px -562px', }, { id : 'e2ba5fad-f531-467c-b195-a6cd90136e19', iso : 'lv', name : 'Latvia', code : '+371', - flagImagePos: '-1px -2619px' + flagImagePos: '-1px -2619px', }, { id : '49f74ca5-9ff1-44af-8e9c-59e1c4704e83', iso : 'lb', name : 'Lebanon', code : '+961', - flagImagePos: '-1px -1616px' + flagImagePos: '-1px -1616px', }, { id : 'd94b6d96-17c1-4de8-abc3-3e14873b62c0', iso : 'ls', name : 'Lesotho', code : '+266', - flagImagePos: '-1px -3010px' + flagImagePos: '-1px -3010px', }, { id : 'e35005f8-285e-4fe5-9cda-def721d9cc7b', iso : 'lr', name : 'Liberia', code : '+231', - flagImagePos: '-1px -2823px' + flagImagePos: '-1px -2823px', }, { id : '60788779-78f0-4b2b-8ad8-c7e4bbde10b5', iso : 'ly', name : 'Libya', code : '+218', - flagImagePos: '-1px -137px' + flagImagePos: '-1px -137px', }, { id : 'f24ad4ea-454a-4d40-a1f1-db188ec0b75e', iso : 'li', name : 'Liechtenstein', code : '+423', - flagImagePos: '-1px -1276px' + flagImagePos: '-1px -1276px', }, { id : 'f6709b72-4150-4cde-a37b-e6eb95f5bd1d', iso : 'lt', name : 'Lithuania', code : '+370', - flagImagePos: '-1px -1446px' + flagImagePos: '-1px -1446px', }, { id : '0d0c1a84-f645-4ffe-87d2-9a7bb4f88bbc', iso : 'lu', name : 'Luxembourg', code : '+352', - flagImagePos: '-1px -1922px' + flagImagePos: '-1px -1922px', }, { id : '5b3fdebe-a4ed-47c6-88c3-d867d3a79bf0', iso : 'mo', name : 'Macao', code : '+853', - flagImagePos: '-1px -3554px' + flagImagePos: '-1px -3554px', }, { id : '6a84f456-bc77-4b76-8651-e2a0994f3278', iso : 'mg', name : 'Madagascar', code : '+261', - flagImagePos: '-1px -1667px' + flagImagePos: '-1px -1667px', }, { id : '2a5d5baf-1db7-4606-a330-227834c77098', iso : 'mw', name : 'Malawi', code : '+265', - flagImagePos: '-1px -2942px' + flagImagePos: '-1px -2942px', }, { id : 'f2b32090-6d8d-40db-ba50-a63037926508', iso : 'my', name : 'Malaysia', code : '+60', - flagImagePos: '-1px -2517px' + flagImagePos: '-1px -2517px', }, { id : '51c7830c-0c76-44ed-bcdf-be75688e1d0c', iso : 'mv', name : 'Maldives', code : '+960', - flagImagePos: '-1px -800px' + flagImagePos: '-1px -800px', }, { id : 'ea7a2274-0542-4bbb-b629-aa63bef97442', iso : 'ml', name : 'Mali', code : '+223', - flagImagePos: '-1px -3469px' + flagImagePos: '-1px -3469px', }, { id : '6f70796e-8f64-4a1a-ac2a-990d7d502db3', iso : 'mt', name : 'Malta', code : '+356', - flagImagePos: '-1px -2041px' + flagImagePos: '-1px -2041px', }, { id : 'c60f429e-0d4f-42cf-96f9-e7dc4fdcd5ee', iso : 'mh', name : 'Marshall Islands', code : '+692', - flagImagePos: '-1px -1463px' + flagImagePos: '-1px -1463px', }, { id : 'e8afae89-e5b0-4551-bbd4-bbfcee50c8ad', iso : 'mq', name : 'Martinique', code : '+596', - flagImagePos: '-1px -239px' + flagImagePos: '-1px -239px', }, { id : '361afc7c-ee94-464b-b5cb-f059ecd79e99', iso : 'mr', name : 'Mauritania', code : '+222', - flagImagePos: '-1px -307px' + flagImagePos: '-1px -307px', }, { id : 'bce43b5e-d2f7-47ca-b5c9-9ae72ba67bda', iso : 'mu', name : 'Mauritius', code : '+230', - flagImagePos: '-1px -2993px' + flagImagePos: '-1px -2993px', }, { id : 'd153dc32-4821-4f05-a5c8-564d003da5e1', iso : 'mx', name : 'Mexico', code : '+52', - flagImagePos: '-1px -2755px' + flagImagePos: '-1px -2755px', }, { id : '80f9f386-231f-4d96-b950-5f6b6edbeb63', iso : 'fm', name : 'Micronesia', code : '+691', - flagImagePos: '-1px -2313px' + flagImagePos: '-1px -2313px', }, { id : 'a1d89e32-4b91-4519-b0d9-7d61299394ef', iso : 'md', name : 'Moldova', code : '+373', - flagImagePos: '-1px -3690px' + flagImagePos: '-1px -3690px', }, { id : '0afeb22c-c106-479b-af45-1380fb8b404c', iso : 'mc', name : 'Monaco', code : '+377', - flagImagePos: '-1px -1191px' + flagImagePos: '-1px -1191px', }, { id : 'a18d0204-7c4a-425c-a33e-cbfac01be162', iso : 'mn', name : 'Mongolia', code : '+976', - flagImagePos: '-1px -3503px' + flagImagePos: '-1px -3503px', }, { id : '260479fc-0410-4ccd-a963-e06c9f059bdb', iso : 'me', name : 'Montenegro', code : '+382', - flagImagePos: '-1px -2976px' + flagImagePos: '-1px -2976px', }, { id : 'a66872f1-ba90-420f-8f55-f0fbb10abce1', iso : 'ms', name : 'Montserrat', code : '+1', - flagImagePos: '-1px -749px' + flagImagePos: '-1px -749px', }, { id : '8fd1ba13-cb1a-488d-b715-01724d56d9dd', iso : 'ma', name : 'Morocco', code : '+212', - flagImagePos: '-1px -3214px' + flagImagePos: '-1px -3214px', }, { id : '5d26fba4-6d15-4cd4-a23f-9034d952e580', iso : 'mz', name : 'Mozambique', code : '+258', - flagImagePos: '-1px -834px' + flagImagePos: '-1px -834px', }, { id : 'f9c12031-14dc-495f-b150-28dddce17e3f', iso : 'mm', name : 'Myanmar (Burma)', code : '+95', - flagImagePos: '-1px -18px' + flagImagePos: '-1px -18px', }, { id : '6e21e956-2740-4058-a758-3b249f628a7b', iso : 'na', name : 'Namibia', code : '+264', - flagImagePos: '-1px -2534px' + flagImagePos: '-1px -2534px', }, { id : '4a07dd5a-9341-4b06-969f-4bcd9c32e2a0', iso : 'nr', name : 'Nauru', code : '+674', - flagImagePos: '-1px -2330px' + flagImagePos: '-1px -2330px', }, { id : '9d7121ce-1445-4c84-9401-ddc703d9dedb', iso : 'np', name : 'Nepal', code : '+977', - flagImagePos: '-1px -120px' + flagImagePos: '-1px -120px', }, { id : '31fbb24d-7c38-4ca8-b385-48d76a0685e3', iso : 'nl', name : 'Netherlands', code : '+31', - flagImagePos: '-1px -1888px' + flagImagePos: '-1px -1888px', }, { id : '18071cc2-c457-4b4f-9217-2519a0b52c25', iso : 'nc', name : 'New Caledonia', code : '+687', - flagImagePos: '-1px -1650px' + flagImagePos: '-1px -1650px', }, { id : 'c4b0e7d1-08b2-421b-8ff6-913020cbf271', iso : 'nz', name : 'New Zealand', code : '+64', - flagImagePos: '-1px -2024px' + flagImagePos: '-1px -2024px', }, { id : '25719230-2c64-4525-96c4-d4427dd2e40b', iso : 'ni', name : 'Nicaragua', code : '+505', - flagImagePos: '-1px -171px' + flagImagePos: '-1px -171px', }, { id : 'a1090a0b-7f89-4d75-8c92-e460da9103ab', iso : 'ne', name : 'Niger', code : '+227', - flagImagePos: '-1px -715px' + flagImagePos: '-1px -715px', }, { id : '6869e4bb-32b8-43ff-84d1-67d9ee832e1f', iso : 'ng', name : 'Nigeria', code : '+234', - flagImagePos: '-1px -3418px' + flagImagePos: '-1px -3418px', }, { id : '52b3ae35-196a-4e22-81e2-67b816a32d0e', iso : 'nu', name : 'Niue', code : '+683', - flagImagePos: '-1px -2840px' + flagImagePos: '-1px -2840px', }, { id : '9f4e45d4-c7e1-4ba9-84d0-e712e7213c95', iso : 'nf', name : 'Norfolk Island', code : '+672', - flagImagePos: '-1px -256px' + flagImagePos: '-1px -256px', }, { id : '2db1b02c-631e-40a0-94d8-f1e567b1f705', iso : 'kp', name : 'North Korea', code : '+850', - flagImagePos: '-1px -2415px' + flagImagePos: '-1px -2415px', }, { id : '92621b3f-55f5-42bb-8604-d0302e355e31', iso : 'mk', name : 'North Macedonia', code : '+389', - flagImagePos: '-1px -1769px' + flagImagePos: '-1px -1769px', }, { id : '3cee8ab2-5cb3-43ea-b8ab-7016187d33e9', iso : 'mp', name : 'Northern Mariana Islands', code : '+1', - flagImagePos: '-1px -919px' + flagImagePos: '-1px -919px', }, { id : '77683fad-f106-4a94-a629-9562650edb35', iso : 'no', name : 'Norway', code : '+47', - flagImagePos: '-1px -1089px' + flagImagePos: '-1px -1089px', }, { id : '09090411-ef9b-44f3-aeb9-65b5e338b8d6', iso : 'om', name : 'Oman', code : '+968', - flagImagePos: '-1px -3384px' + flagImagePos: '-1px -3384px', }, { id : '18d4f06b-233b-4398-a9f8-6b4a4eaf6c71', iso : 'pk', name : 'Pakistan', code : '+92', - flagImagePos: '-1px -2772px' + flagImagePos: '-1px -2772px', }, { id : 'b1da5023-aab9-431c-921c-4f3e12b1aa7a', iso : 'pw', name : 'Palau', code : '+680', - flagImagePos: '-1px -273px' + flagImagePos: '-1px -273px', }, { id : 'e6442ab2-ac99-4a02-9d7c-fd878e50de8a', iso : 'ps', name : 'Palestine', code : '+970', - flagImagePos: '-1px -1548px' + flagImagePos: '-1px -1548px', }, { id : '6bb10fb5-8b4a-4136-a82e-6be6c017ab76', iso : 'pa', name : 'Panama', code : '+507', - flagImagePos: '-1px -1106px' + flagImagePos: '-1px -1106px', }, { id : 'b070a014-2ce4-4939-a868-951bd1e70923', iso : 'pg', name : 'Papua New Guinea', code : '+675', - flagImagePos: '-1px -1939px' + flagImagePos: '-1px -1939px', }, { id : '5e23c743-ce7d-4abc-9dd4-44a700b29090', iso : 'py', name : 'Paraguay', code : '+595', - flagImagePos: '-1px -3231px' + flagImagePos: '-1px -3231px', }, { id : '1a83f99d-91b3-438d-a576-5bf0f05fdd12', iso : 'pe', name : 'Peru', code : '+51', - flagImagePos: '-1px -1225px' + flagImagePos: '-1px -1225px', }, { id : '667c9699-46b9-40f9-a41f-2c52826bb3cb', iso : 'ph', name : 'Philippines', code : '+63', - flagImagePos: '-1px -2432px' + flagImagePos: '-1px -2432px', }, { id : 'b84030ab-3193-4aa2-aef2-d4d21997e536', iso : 'pl', name : 'Poland', code : '+48', - flagImagePos: '-1px -1514px' + flagImagePos: '-1px -1514px', }, { id : 'e26d0064-6173-42ab-b761-bf8c639199fa', iso : 'pt', name : 'Portugal', code : '+351', - flagImagePos: '-1px -664px' + flagImagePos: '-1px -664px', }, { id : '0fd9770d-2a91-4b81-8633-f465bc151e16', iso : 'pr', name : 'Puerto Rico', code : '+1', - flagImagePos: '-1px -596px' + flagImagePos: '-1px -596px', }, { id : 'f866eeeb-e64f-4123-ab63-c16e0a00d029', iso : 'qa', name : 'Qatar', code : '+974', - flagImagePos: '-1px -579px' + flagImagePos: '-1px -579px', }, { id : 'c3a3fb54-5731-4a28-96bd-4190cfeeaff0', iso : 're', name : 'Réunion', code : '+262', - flagImagePos: '-1px -324px' + flagImagePos: '-1px -324px', }, { id : 'a6a48809-7e33-42c8-a25a-56ccdd7ccdfe', iso : 'ro', name : 'Romania', code : '+40', - flagImagePos: '-1px -885px' + flagImagePos: '-1px -885px', }, { id : '9556d1e9-3d02-4c5b-a0ce-97a2fd55c74a', iso : 'ru', name : 'Russia', code : '+7', - flagImagePos: '-1px -868px' + flagImagePos: '-1px -868px', }, { id : '6f7f0a97-e8b5-455d-bace-6953de7324eb', iso : 'rw', name : 'Rwanda', code : '+250', - flagImagePos: '-1px -3673px' + flagImagePos: '-1px -3673px', }, { id : 'e251cad5-7655-48f7-9892-6edf04a14fd7', iso : 'ws', name : 'Samoa', code : '+685', - flagImagePos: '-1px -3163px' + flagImagePos: '-1px -3163px', }, { id : 'f1cfec8c-a960-43b3-8e11-2cad72b4fff8', iso : 'sm', name : 'San Marino', code : '+378', - flagImagePos: '-1px -2908px' + flagImagePos: '-1px -2908px', }, { id : 'c5301260-13dc-4012-9678-2b57a5e409ae', iso : 'st', name : 'São Tomé & Príncipe', code : '+239', - flagImagePos: '-1px -3299px' + flagImagePos: '-1px -3299px', }, { id : '02599f80-225a-451b-8c25-03b8993f88ac', iso : 'sa', name : 'Saudi Arabia', code : '+966', - flagImagePos: '-1px -52px' + flagImagePos: '-1px -52px', }, { id : 'a54c3469-9668-4063-bfa0-04c450b43d3e', iso : 'sn', name : 'Senegal', code : '+221', - flagImagePos: '-1px -2925px' + flagImagePos: '-1px -2925px', }, { id : '687ea07b-a7df-4778-b802-b040676fa56c', iso : 'rs', name : 'Serbia', code : '+381', - flagImagePos: '-1px -3401px' + flagImagePos: '-1px -3401px', }, { id : 'd010fb25-7044-4055-9c60-25bc89d83f64', iso : 'sc', name : 'Seychelles', code : '+248', - flagImagePos: '-1px -1327px' + flagImagePos: '-1px -1327px', }, { id : '0c46a1e9-fcd8-4e7e-bbb1-ef3bfa83539b', iso : 'sl', name : 'Sierra Leone', code : '+232', - flagImagePos: '-1px -970px' + flagImagePos: '-1px -970px', }, { id : 'e724edb6-9df4-42fb-bc1e-417996aa3020', iso : 'sg', name : 'Singapore', code : '+65', - flagImagePos: '-1px -35px' + flagImagePos: '-1px -35px', }, { id : '7478814a-dc3f-41ff-9341-da7e07ba8499', iso : 'sx', name : 'Sint Maarten', code : '+1', - flagImagePos: '-1px -3826px' + flagImagePos: '-1px -3826px', }, { id : 'b1a34e32-38dd-4a38-b63a-7133baf1417a', iso : 'sk', name : 'Slovakia', code : '+421', - flagImagePos: '-1px -3044px' + flagImagePos: '-1px -3044px', }, { id : '1c1689a5-580b-411f-9283-b1e8333b351e', iso : 'si', name : 'Slovenia', code : '+386', - flagImagePos: '-1px -1582px' + flagImagePos: '-1px -1582px', }, { id : '4b1c6a42-90b0-49ea-b968-8c95b871f0ec', iso : 'sb', name : 'Solomon Islands', code : '+677', - flagImagePos: '-1px -1361px' + flagImagePos: '-1px -1361px', }, { id : '7ec9fdff-8ae6-4a14-b55e-6262d46bc3ef', iso : 'so', name : 'Somalia', code : '+252', - flagImagePos: '-1px -1786px' + flagImagePos: '-1px -1786px', }, { id : '5e62f404-3e2c-4d63-ad7b-ab0755903842', iso : 'za', name : 'South Africa', code : '+27', - flagImagePos: '-1px -3248px' + flagImagePos: '-1px -3248px', }, { id : '31966c2a-7d24-4ebc-8e02-392e4f04f12b', iso : 'kr', name : 'South Korea', code : '+82', - flagImagePos: '-1px -3078px' + flagImagePos: '-1px -3078px', }, { id : '1b7ba825-bf7d-42c0-bb73-81f10a4009bf', iso : 'ss', name : 'South Sudan', code : '+211', - flagImagePos: '-1px -3775px' + flagImagePos: '-1px -3775px', }, { id : '55c4137b-e437-4e80-bc8f-7857cd7c9364', iso : 'es', name : 'Spain', code : '+34', - flagImagePos: '-1px -1480px' + flagImagePos: '-1px -1480px', }, { id : 'fce4c284-e6a1-4e8c-96ca-6edf09e8a401', iso : 'lk', name : 'Sri Lanka', code : '+94', - flagImagePos: '-1px -3622px' + flagImagePos: '-1px -3622px', }, { id : '0ae719a5-ae43-45d0-b669-66976a050ef1', iso : 'bl', name : 'St. Barthélemy', code : '+590', - flagImagePos: '-1px -324px' + flagImagePos: '-1px -324px', }, { id : 'a588cc85-32a4-45ff-ba69-627105dab27a', iso : 'sh', name : 'St. Helena', code : '+290', - flagImagePos: '-1px -630px' + flagImagePos: '-1px -630px', }, { id : 'f065aa7c-8d9e-419c-bbf0-9a97011cf272', iso : 'kn', name : 'St. Kitts & Nevis', code : '+1', - flagImagePos: '-1px -103px' + flagImagePos: '-1px -103px', }, { id : '9ea73bcc-2bf5-4ad9-9b39-de33de125f98', iso : 'lc', name : 'St. Lucia', code : '+1', - flagImagePos: '-1px -1837px' + flagImagePos: '-1px -1837px', }, { id : '86a5a0e8-bfd4-480e-9bc0-7b88b2248a57', iso : 'mf', name : 'St. Martin', code : '+590', - flagImagePos: '-1px -86px' + flagImagePos: '-1px -86px', }, { id : '540857ba-923a-4656-a19f-cb3914825ecc', iso : 'pm', name : 'St. Pierre & Miquelon', code : '+508', - flagImagePos: '-1px -1378px' + flagImagePos: '-1px -1378px', }, { id : 'd381eb44-e77a-4dbd-abbb-224d7158e96d', iso : 'vc', name : 'St. Vincent & Grenadines', code : '+1', - flagImagePos: '-1px -3588px' + flagImagePos: '-1px -3588px', }, { id : '7015db62-072d-49a2-8320-7587ec8b952f', iso : 'sd', name : 'Sudan', code : '+249', - flagImagePos: '-1px -443px' + flagImagePos: '-1px -443px', }, { id : 'd7bbb285-aa4e-4a92-8613-8d2645c351ee', iso : 'sr', name : 'Suriname', code : '+597', - flagImagePos: '-1px -3656px' + flagImagePos: '-1px -3656px', }, { id : '78978092-7be3-4ec8-b201-068089035cff', iso : 'se', name : 'Sweden', code : '+46', - flagImagePos: '-1px -494px' + flagImagePos: '-1px -494px', }, { id : '9f3fbec3-b58a-4b5a-9c4b-3997398c4148', iso : 'ch', name : 'Switzerland', code : '+41', - flagImagePos: '-1px -1718px' + flagImagePos: '-1px -1718px', }, { id : '7ce0562c-fdc4-444c-bba3-02239c3c17da', iso : 'sy', name : 'Syria', code : '+963', - flagImagePos: '-1px -2449px' + flagImagePos: '-1px -2449px', }, { id : '2d57a4a1-3f5a-41a2-a320-74a8f0db92e5', iso : 'tw', name : 'Taiwan', code : '+886', - flagImagePos: '-1px -647px' + flagImagePos: '-1px -647px', }, { id : 'e1f747c5-4e91-487b-8265-8f70b3430849', iso : 'tj', name : 'Tajikistan', code : '+992', - flagImagePos: '-1px -222px' + flagImagePos: '-1px -222px', }, { id : 'f07e257c-e049-4046-b031-f4348fb1734a', iso : 'tz', name : 'Tanzania', code : '+255', - flagImagePos: '-1px -3146px' + flagImagePos: '-1px -3146px', }, { id : '684a0dde-5b5f-4072-98a4-46fc8de09556', iso : 'th', name : 'Thailand', code : '+66', - flagImagePos: '-1px -1242px' + flagImagePos: '-1px -1242px', }, { id : '0376e29f-d9dd-4449-aa4e-d47353c16873', iso : 'tl', name : 'Timor-Leste', code : '+670', - flagImagePos: '-1px -3843px' + flagImagePos: '-1px -3843px', }, { id : 'fd647814-fc64-4724-bba7-4cd4da26c11e', iso : 'tg', name : 'Togo', code : '+228', - flagImagePos: '-1px -783px' + flagImagePos: '-1px -783px', }, { id : 'ed271b14-39ee-4403-9be6-b54ac89b0ed3', iso : 'tk', name : 'Tokelau', code : '+690', - flagImagePos: '-1px -3792px' + flagImagePos: '-1px -3792px', }, { id : 'e2b83ecb-5a79-4ca0-9860-4baeae0380bb', iso : 'to', name : 'Tonga', code : '+676', - flagImagePos: '-1px -1395px' + flagImagePos: '-1px -1395px', }, { id : '33bca09c-cc33-4680-929b-191ccbbc959a', iso : 'tt', name : 'Trinidad & Tobago', code : '+1', - flagImagePos: '-1px -545px' + flagImagePos: '-1px -545px', }, { id : 'ab25c5da-7698-4b96-af34-5d20523915d9', iso : 'tn', name : 'Tunisia', code : '+216', - flagImagePos: '-1px -698px' + flagImagePos: '-1px -698px', }, { id : '784ac645-bc50-4b35-b5fb-effd72f99749', iso : 'tr', name : 'Turkey', code : '+90', - flagImagePos: '-1px -2126px' + flagImagePos: '-1px -2126px', }, { id : '9a3b8bd3-bc73-4251-a068-a4842365e91a', iso : 'tm', name : 'Turkmenistan', code : '+993', - flagImagePos: '-1px -3486px' + flagImagePos: '-1px -3486px', }, { id : '361bcad4-44d1-41fb-9bbf-39ea0fb87d49', iso : 'tc', name : 'Turks & Caicos Islands', code : '+1', - flagImagePos: '-1px -1701px' + flagImagePos: '-1px -1701px', }, { id : '26fb1484-c756-4592-8523-99af9c870bb5', iso : 'tv', name : 'Tuvalu', code : '+688', - flagImagePos: '-1px -358px' + flagImagePos: '-1px -358px', }, { id : 'cdb8455e-4eda-48f7-b30a-63c20838a364', iso : 'vi', name : 'U.S. Virgin Islands', code : '+1', - flagImagePos: '-1px -2381px' + flagImagePos: '-1px -2381px', }, { id : 'f47476cc-3da6-4377-83c9-33ab9f5293d1', iso : 'ug', name : 'Uganda', code : '+256', - flagImagePos: '-1px -1497px' + flagImagePos: '-1px -1497px', }, { id : '5fcb791a-91be-416a-895d-0502fc509838', iso : 'ua', name : 'Ukraine', code : '+380', - flagImagePos: '-1px -2721px' + flagImagePos: '-1px -2721px', }, { id : '7c8e1ced-0dd7-42b6-880b-19b3486d11e5', iso : 'ae', name : 'United Arab Emirates', code : '+971', - flagImagePos: '-1px -3061px' + flagImagePos: '-1px -3061px', }, { id : '9f1362e7-e87c-4123-ade8-e5cfa6e99c09', iso : 'gb', name : 'United Kingdom', code : '+44', - flagImagePos: '-1px -86px' + flagImagePos: '-1px -86px', }, { id : 'f9033267-9df0-46e4-9f79-c8b022e5c835', iso : 'us', name : 'United States', code : '+1', - flagImagePos: '-1px -69px' + flagImagePos: '-1px -69px', }, { id : '2cab7122-ec9a-48ac-8415-392b4f67ae51', iso : 'uy', name : 'Uruguay', code : '+598', - flagImagePos: '-1px -3571px' + flagImagePos: '-1px -3571px', }, { id : 'f442740c-94c3-4f2f-afb2-c7c279224b5f', iso : 'uz', name : 'Uzbekistan', code : '+998', - flagImagePos: '-1px -1293px' + flagImagePos: '-1px -1293px', }, { id : 'e6774547-6ab1-41a2-8107-201f913937b2', iso : 'vu', name : 'Vanuatu', code : '+678', - flagImagePos: '-1px -1633px' + flagImagePos: '-1px -1633px', }, { id : 'd600d6b0-e21f-4b6e-9036-0435a6ac2ea6', iso : 'va', name : 'Vatican City', code : '+39', - flagImagePos: '-1px -3197px' + flagImagePos: '-1px -3197px', }, { id : 'b8e0072d-498b-4bb4-a5b6-354d4200f882', iso : 've', name : 'Venezuela', code : '+58', - flagImagePos: '-1px -1344px' + flagImagePos: '-1px -1344px', }, { id : '15dc081a-4690-42e9-a40d-b3bcea3173fc', iso : 'vn', name : 'Vietnam', code : '+84', - flagImagePos: '-1px -1259px' + flagImagePos: '-1px -1259px', }, { id : '4452a787-5f31-4eb7-b14c-ae3175564ae5', iso : 'wf', name : 'Wallis & Futuna', code : '+681', - flagImagePos: '-1px -324px' + flagImagePos: '-1px -324px', }, { id : '237c9f8d-3b6c-4b70-af72-8a58a7154144', iso : 'ye', name : 'Yemen', code : '+967', - flagImagePos: '-1px -2211px' + flagImagePos: '-1px -2211px', }, { id : '02a76f62-3078-472a-bd42-edb759cf3079', iso : 'zm', name : 'Zambia', code : '+260', - flagImagePos: '-1px -2109px' + flagImagePos: '-1px -2109px', }, { id : '10e8e117-6832-4d3f-9b05-f66832c2f5ec', iso : 'zw', name : 'Zimbabwe', code : '+263', - flagImagePos: '-1px -2789px' - } + flagImagePos: '-1px -2789px', + }, ]; export const tags = [ { id : 'c31e9e5d-e0cb-4574-a13f-8a6ee5ff8309', - title: 'Work' + title: 'Work', }, { id : 'a8991c76-2fda-4bbd-a718-df13d6478847', - title: 'Friend' + title: 'Friend', }, { id : '56ddbd47-4078-4ddd-8448-73c5e88d5f59', - title: 'Family' + title: 'Family', }, { id : '2026ce08-d08f-4b4f-9506-b10cdb5b104f', - title: 'High School' + title: 'High School', }, { id : '65930b5a-5d2a-4303-b11f-865d69e6fdb5', - title: 'College' + title: 'College', }, { id : '3eaab175-ec0d-4db7-bc3b-efc633c769be', - title: 'Baseball Team' + title: 'Baseball Team', }, { id : 'cbde2486-5033-4e09-838e-e901b108cd41', - title: 'Band' - } + title: 'Band', + }, ]; diff --git a/src/app/mock-api/apps/ecommerce/inventory/api.ts b/src/app/mock-api/apps/ecommerce/inventory/api.ts index ff303ed9..475b3c3c 100644 --- a/src/app/mock-api/apps/ecommerce/inventory/api.ts +++ b/src/app/mock-api/apps/ecommerce/inventory/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { assign, cloneDeep } from 'lodash-es'; import { FuseMockApiService, FuseMockApiUtils } from '@fuse/lib/mock-api'; import { brands as brandsData, categories as categoriesData, products as productsData, tags as tagsData, vendors as vendorsData } from 'app/mock-api/apps/ecommerce/inventory/data'; +import { assign, cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class ECommerceInventoryMockApi { private _categories: any[] = categoriesData; @@ -51,8 +49,8 @@ export class ECommerceInventoryMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/ecommerce/inventory/products', 300) - .reply(({request}) => { - + .reply(({request}) => + { // Get available queries const search = request.params.get('search'); const sort = request.params.get('sort') || 'name'; @@ -66,7 +64,8 @@ export class ECommerceInventoryMockApi // Sort the products if ( sort === 'sku' || sort === 'name' || sort === 'active' ) { - products.sort((a, b) => { + products.sort((a, b) => + { const fieldA = a[sort].toString().toUpperCase(); const fieldB = b[sort].toString().toUpperCase(); return order === 'asc' ? fieldA.localeCompare(fieldB) : fieldB.localeCompare(fieldA); @@ -103,7 +102,7 @@ export class ECommerceInventoryMockApi { products = null; pagination = { - lastPage + lastPage, }; } else @@ -118,7 +117,7 @@ export class ECommerceInventoryMockApi page : page, lastPage : lastPage, startIndex: begin, - endIndex : end - 1 + endIndex : end - 1, }; } @@ -127,8 +126,8 @@ export class ECommerceInventoryMockApi 200, { products, - pagination - } + pagination, + }, ]; }); @@ -137,8 +136,8 @@ export class ECommerceInventoryMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/ecommerce/inventory/product') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id from the params const id = request.params.get('id'); @@ -157,8 +156,8 @@ export class ECommerceInventoryMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/apps/ecommerce/inventory/product') - .reply(() => { - + .reply(() => + { // Generate a new product const newProduct = { id : FuseMockApiUtils.guid(), @@ -179,7 +178,7 @@ export class ECommerceInventoryMockApi weight : '', thumbnail : '', images : [], - active : false + active : false, }; // Unshift the new product @@ -194,8 +193,8 @@ export class ECommerceInventoryMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/ecommerce/inventory/product') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id and product const id = request.body.id; const product = cloneDeep(request.body.product); @@ -204,8 +203,8 @@ export class ECommerceInventoryMockApi let updatedProduct = null; // Find the product and update it - this._products.forEach((item, index, products) => { - + this._products.forEach((item, index, products) => + { if ( item.id === id ) { // Update the product @@ -225,14 +224,14 @@ export class ECommerceInventoryMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onDelete('api/apps/ecommerce/inventory/product') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id const id = request.params.get('id'); // Find the product and delete it - this._products.forEach((item, index) => { - + this._products.forEach((item, index) => + { if ( item.id === id ) { this._products.splice(index, 1); @@ -255,8 +254,8 @@ export class ECommerceInventoryMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/apps/ecommerce/inventory/tag') - .reply(({request}) => { - + .reply(({request}) => + { // Get the tag const newTag = cloneDeep(request.body.tag); @@ -275,8 +274,8 @@ export class ECommerceInventoryMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/ecommerce/inventory/tag') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id and tag const id = request.body.id; const tag = cloneDeep(request.body.tag); @@ -285,8 +284,8 @@ export class ECommerceInventoryMockApi let updatedTag = null; // Find the tag and update it - this._tags.forEach((item, index, tags) => { - + this._tags.forEach((item, index, tags) => + { if ( item.id === id ) { // Update the tag @@ -306,14 +305,14 @@ export class ECommerceInventoryMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onDelete('api/apps/ecommerce/inventory/tag') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id const id = request.params.get('id'); // Find the tag and delete it - this._tags.forEach((item, index) => { - + this._tags.forEach((item, index) => + { if ( item.id === id ) { this._tags.splice(index, 1); @@ -324,7 +323,8 @@ export class ECommerceInventoryMockApi const productsWithTag = this._products.filter(product => product.tags.indexOf(id) > -1); // Iterate through them and delete the tag - productsWithTag.forEach((product) => { + productsWithTag.forEach((product) => + { product.tags.splice(product.tags.indexOf(id), 1); }); diff --git a/src/app/mock-api/apps/ecommerce/inventory/data.ts b/src/app/mock-api/apps/ecommerce/inventory/data.ts index 2863773c..8630790a 100644 --- a/src/app/mock-api/apps/ecommerce/inventory/data.ts +++ b/src/app/mock-api/apps/ecommerce/inventory/data.ts @@ -4,106 +4,106 @@ export const categories = [ id : 'b899ec30-b85a-40ab-bb1f-18a596d5c6de', parentId: null, name : 'Mens', - slug : 'mens' + slug : 'mens', }, { id : '07986d93-d4eb-4de1-9448-2538407f7254', parentId: null, name : 'Ladies', - slug : 'ladies' + slug : 'ladies', }, { id : 'ad12aa94-3863-47f8-acab-a638ef02a3e9', parentId: null, name : 'Unisex', - slug : 'unisex' - } + slug : 'unisex', + }, ]; export const brands = [ { id : 'e1789f32-9475-43e7-9256-451d2e3a2282', name: 'Benton', - slug: 'benton' + slug: 'benton', }, { id : '61d52c2a-8947-4a2c-8c35-f36baef45b96', name: 'Capmia', - slug: 'capmia' + slug: 'capmia', }, { id : 'f9987124-7ada-4b93-bef7-35280b3ddbd7', name: 'Lara', - slug: 'lara' + slug: 'lara', }, { id : '5913ee46-a497-41db-a118-ee506011529f', name: 'Premera', - slug: 'premera' + slug: 'premera', }, { id : '2c4d98d8-f334-4125-9596-862515f5526b', name: 'Zeon', - slug: 'zeon' - } + slug: 'zeon', + }, ]; export const tags = [ { id : '167190fa-51b4-45fc-a742-8ce1b33d24ea', - title: 'mens' + title: 'mens', }, { id : '3baea410-a7d6-4916-b79a-bdce50c37f95', - title: 'ladies' + title: 'ladies', }, { id : '8ec8f60d-552f-4216-9f11-462b95b1d306', - title: 'unisex' + title: 'unisex', }, { id : '8837b93f-388b-43cc-851d-4ca8f23f3a61', - title: '44mm' + title: '44mm', }, { id : '8f868ddb-d4a2-461d-bc3b-d7c8668687c3', - title: '40mm' + title: '40mm', }, { id : '2300ac48-f268-466a-b765-8b878b6e14a7', - title: '5 ATM' + title: '5 ATM', }, { id : '0b11b742-3125-4d75-9a6f-84af7fde1969', - title: '10 ATM' + title: '10 ATM', }, { id : '0fc39efd-f640-41f8-95a5-3f1d749df200', - title: 'automatic' + title: 'automatic', }, { id : '7d6dd47e-7472-4f8b-93d4-46c114c44533', - title: 'chronograph' + title: 'chronograph', }, { id : 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', - title: 'watch' - } + title: 'watch', + }, ]; export const vendors = [ { id : '987dd10a-43b1-49f9-bfd9-05bb2dbc7029', name: 'Evel', - slug: 'evel' + slug: 'evel', }, { id : '998b0c07-abfd-4ba3-8de1-7563ef3c4d57', name: 'Mivon', - slug: 'mivon' + slug: 'mivon', }, { id : '05ebb527-d733-46a9-acfb-a4e4ec960024', name: 'Neogen', - slug: 'neogen' - } + slug: 'neogen', + }, ]; export const products = [ { @@ -116,7 +116,7 @@ export const products = [ '7d6dd47e-7472-4f8b-93d4-46c114c44533', '8837b93f-388b-43cc-851d-4ca8f23f3a61', '2300ac48-f268-466a-b765-8b878b6e14a7', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'ETV-2425', barcode : '8346201275534', @@ -133,9 +133,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-01-01.jpg', 'assets/images/apps/ecommerce/products/watch-01-02.jpg', - 'assets/images/apps/ecommerce/products/watch-01-03.jpg' + 'assets/images/apps/ecommerce/products/watch-01-03.jpg', ], - active : true + active : true, }, { id : '00b0292f-3d50-4669-a0c4-7a9d85efc98d', @@ -147,7 +147,7 @@ export const products = [ '7d6dd47e-7472-4f8b-93d4-46c114c44533', '8f868ddb-d4a2-461d-bc3b-d7c8668687c3', '0b11b742-3125-4d75-9a6f-84af7fde1969', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'ATH-7573', barcode : '8278968055700', @@ -164,9 +164,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-02-01.jpg', 'assets/images/apps/ecommerce/products/watch-02-02.jpg', - 'assets/images/apps/ecommerce/products/watch-02-03.jpg' + 'assets/images/apps/ecommerce/products/watch-02-03.jpg', ], - active : true + active : true, }, { id : '3f34e2fb-95bf-4f61-be28-956d2c7e4eb2', @@ -178,7 +178,7 @@ export const products = [ '0fc39efd-f640-41f8-95a5-3f1d749df200', '8837b93f-388b-43cc-851d-4ca8f23f3a61', '2300ac48-f268-466a-b765-8b878b6e14a7', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'ADH-1921', barcode : '8808746892183', @@ -195,9 +195,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-03-01.jpg', 'assets/images/apps/ecommerce/products/watch-03-02.jpg', - 'assets/images/apps/ecommerce/products/watch-03-03.jpg' + 'assets/images/apps/ecommerce/products/watch-03-03.jpg', ], - active : false + active : false, }, { id : '8fcce528-d878-4cc8-99f7-bd3451ed5405', @@ -209,7 +209,7 @@ export const products = [ '7d6dd47e-7472-4f8b-93d4-46c114c44533', '8837b93f-388b-43cc-851d-4ca8f23f3a61', '0b11b742-3125-4d75-9a6f-84af7fde1969', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'EAP-7752', barcode : '8866355574164', @@ -226,9 +226,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-04-01.jpg', 'assets/images/apps/ecommerce/products/watch-04-02.jpg', - 'assets/images/apps/ecommerce/products/watch-04-03.jpg' + 'assets/images/apps/ecommerce/products/watch-04-03.jpg', ], - active : true + active : true, }, { id : '91d96e18-d3f5-4c32-a8bf-1fc525cb92c0', @@ -240,7 +240,7 @@ export const products = [ '0fc39efd-f640-41f8-95a5-3f1d749df200', '8f868ddb-d4a2-461d-bc3b-d7c8668687c3', '2300ac48-f268-466a-b765-8b878b6e14a7', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'ADP-5745', barcode : '8390590339828', @@ -257,9 +257,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-05-01.jpg', 'assets/images/apps/ecommerce/products/watch-05-02.jpg', - 'assets/images/apps/ecommerce/products/watch-05-03.jpg' + 'assets/images/apps/ecommerce/products/watch-05-03.jpg', ], - active : false + active : false, }, { id : 'd7a47d7c-4cdf-4319-bbaa-37ade38c622c', @@ -271,7 +271,7 @@ export const products = [ '7d6dd47e-7472-4f8b-93d4-46c114c44533', '8837b93f-388b-43cc-851d-4ca8f23f3a61', '0b11b742-3125-4d75-9a6f-84af7fde1969', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'ATV-2569', barcode : '8238990048137', @@ -288,9 +288,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-06-01.jpg', 'assets/images/apps/ecommerce/products/watch-06-02.jpg', - 'assets/images/apps/ecommerce/products/watch-06-03.jpg' + 'assets/images/apps/ecommerce/products/watch-06-03.jpg', ], - active : true + active : true, }, { id : 'ecf0b3df-38c3-45dc-972b-c509a3dc053e', @@ -302,7 +302,7 @@ export const products = [ '7d6dd47e-7472-4f8b-93d4-46c114c44533', '8837b93f-388b-43cc-851d-4ca8f23f3a61', '0b11b742-3125-4d75-9a6f-84af7fde1969', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'EAH-2563', barcode : '8638426908385', @@ -319,9 +319,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-07-01.jpg', 'assets/images/apps/ecommerce/products/watch-07-02.jpg', - 'assets/images/apps/ecommerce/products/watch-07-03.jpg' + 'assets/images/apps/ecommerce/products/watch-07-03.jpg', ], - active : false + active : false, }, { id : '5765080a-aaee-40b9-86be-c18b9d79c73c', @@ -333,7 +333,7 @@ export const products = [ '0fc39efd-f640-41f8-95a5-3f1d749df200', '8f868ddb-d4a2-461d-bc3b-d7c8668687c3', '0b11b742-3125-4d75-9a6f-84af7fde1969', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'ATH-6399', barcode : '8881883828441', @@ -350,9 +350,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-08-01.jpg', 'assets/images/apps/ecommerce/products/watch-08-02.jpg', - 'assets/images/apps/ecommerce/products/watch-08-03.jpg' + 'assets/images/apps/ecommerce/products/watch-08-03.jpg', ], - active : false + active : false, }, { id : '6e71be88-b225-474c-91e5-111ced7d6220', @@ -364,7 +364,7 @@ export const products = [ '7d6dd47e-7472-4f8b-93d4-46c114c44533', '8f868ddb-d4a2-461d-bc3b-d7c8668687c3', '2300ac48-f268-466a-b765-8b878b6e14a7', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'ELH-2495', barcode : '8268777127281', @@ -381,9 +381,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-09-01.jpg', 'assets/images/apps/ecommerce/products/watch-09-02.jpg', - 'assets/images/apps/ecommerce/products/watch-09-03.jpg' + 'assets/images/apps/ecommerce/products/watch-09-03.jpg', ], - active : false + active : false, }, { id : '51242500-6983-4a78-bff3-d278eb4e3a57', @@ -395,7 +395,7 @@ export const products = [ '0fc39efd-f640-41f8-95a5-3f1d749df200', '8837b93f-388b-43cc-851d-4ca8f23f3a61', '0b11b742-3125-4d75-9a6f-84af7fde1969', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'ATT-6019', barcode : '8452763551765', @@ -412,9 +412,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-10-01.jpg', 'assets/images/apps/ecommerce/products/watch-10-02.jpg', - 'assets/images/apps/ecommerce/products/watch-10-03.jpg' + 'assets/images/apps/ecommerce/products/watch-10-03.jpg', ], - active : true + active : true, }, { id : '844a4395-233f-4ffb-85bd-7baa0e490a88', @@ -426,7 +426,7 @@ export const products = [ '7d6dd47e-7472-4f8b-93d4-46c114c44533', '8837b93f-388b-43cc-851d-4ca8f23f3a61', '2300ac48-f268-466a-b765-8b878b6e14a7', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'ADH-2335', barcode : '8385907318041', @@ -443,9 +443,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-11-01.jpg', 'assets/images/apps/ecommerce/products/watch-11-02.jpg', - 'assets/images/apps/ecommerce/products/watch-11-03.jpg' + 'assets/images/apps/ecommerce/products/watch-11-03.jpg', ], - active : false + active : false, }, { id : '7520f1b6-3c45-46ef-a4d5-881971212d1e', @@ -457,7 +457,7 @@ export const products = [ '0fc39efd-f640-41f8-95a5-3f1d749df200', '8f868ddb-d4a2-461d-bc3b-d7c8668687c3', '0b11b742-3125-4d75-9a6f-84af7fde1969', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'ATH-3064', barcode : '8608510561856', @@ -474,9 +474,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-12-01.jpg', 'assets/images/apps/ecommerce/products/watch-12-02.jpg', - 'assets/images/apps/ecommerce/products/watch-12-03.jpg' + 'assets/images/apps/ecommerce/products/watch-12-03.jpg', ], - active : false + active : false, }, { id : '683e41d8-6ebc-4e6a-a7c1-9189ca52ef19', @@ -488,7 +488,7 @@ export const products = [ '7d6dd47e-7472-4f8b-93d4-46c114c44533', '8837b93f-388b-43cc-851d-4ca8f23f3a61', '0b11b742-3125-4d75-9a6f-84af7fde1969', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'ADV-3188', barcode : '8334758988643', @@ -505,9 +505,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-13-01.jpg', 'assets/images/apps/ecommerce/products/watch-13-02.jpg', - 'assets/images/apps/ecommerce/products/watch-13-03.jpg' + 'assets/images/apps/ecommerce/products/watch-13-03.jpg', ], - active : false + active : false, }, { id : 'd4e52238-292d-462b-b9bb-1751030132e2', @@ -519,7 +519,7 @@ export const products = [ '7d6dd47e-7472-4f8b-93d4-46c114c44533', '8f868ddb-d4a2-461d-bc3b-d7c8668687c3', '2300ac48-f268-466a-b765-8b878b6e14a7', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'ATT-7423', barcode : '8417153336369', @@ -536,9 +536,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-14-01.jpg', 'assets/images/apps/ecommerce/products/watch-14-02.jpg', - 'assets/images/apps/ecommerce/products/watch-14-03.jpg' + 'assets/images/apps/ecommerce/products/watch-14-03.jpg', ], - active : false + active : false, }, { id : '98861dfc-0d21-4fd5-81aa-49785d003d95', @@ -550,7 +550,7 @@ export const products = [ '0fc39efd-f640-41f8-95a5-3f1d749df200', '8837b93f-388b-43cc-851d-4ca8f23f3a61', '0b11b742-3125-4d75-9a6f-84af7fde1969', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'AAT-6453', barcode : '8501386761670', @@ -567,9 +567,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-15-01.jpg', 'assets/images/apps/ecommerce/products/watch-15-02.jpg', - 'assets/images/apps/ecommerce/products/watch-15-03.jpg' + 'assets/images/apps/ecommerce/products/watch-15-03.jpg', ], - active : false + active : false, }, { id : 'a71f9b10-e884-4aad-9810-29fe10ce6d42', @@ -581,7 +581,7 @@ export const products = [ '7d6dd47e-7472-4f8b-93d4-46c114c44533', '8f868ddb-d4a2-461d-bc3b-d7c8668687c3', '2300ac48-f268-466a-b765-8b878b6e14a7', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'AAP-4902', barcode : '8847387136582', @@ -598,9 +598,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-16-01.jpg', 'assets/images/apps/ecommerce/products/watch-16-02.jpg', - 'assets/images/apps/ecommerce/products/watch-16-03.jpg' + 'assets/images/apps/ecommerce/products/watch-16-03.jpg', ], - active : false + active : false, }, { id : '149e6db5-4ecc-4021-bc56-08b27514a746', @@ -612,7 +612,7 @@ export const products = [ '7d6dd47e-7472-4f8b-93d4-46c114c44533', '8f868ddb-d4a2-461d-bc3b-d7c8668687c3', '2300ac48-f268-466a-b765-8b878b6e14a7', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'ALV-194', barcode : '8860845382207', @@ -629,9 +629,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-17-01.jpg', 'assets/images/apps/ecommerce/products/watch-17-02.jpg', - 'assets/images/apps/ecommerce/products/watch-17-03.jpg' + 'assets/images/apps/ecommerce/products/watch-17-03.jpg', ], - active : false + active : false, }, { id : '655287de-2e24-41f3-a82f-8b08548ecc39', @@ -643,7 +643,7 @@ export const products = [ '0fc39efd-f640-41f8-95a5-3f1d749df200', '8837b93f-388b-43cc-851d-4ca8f23f3a61', '0b11b742-3125-4d75-9a6f-84af7fde1969', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'ADH-5492', barcode : '8611606513571', @@ -660,9 +660,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-18-01.jpg', 'assets/images/apps/ecommerce/products/watch-18-02.jpg', - 'assets/images/apps/ecommerce/products/watch-18-03.jpg' + 'assets/images/apps/ecommerce/products/watch-18-03.jpg', ], - active : true + active : true, }, { id : 'c215b427-d840-4537-aea1-a9bdfa49441b', @@ -674,7 +674,7 @@ export const products = [ '0fc39efd-f640-41f8-95a5-3f1d749df200', '8f868ddb-d4a2-461d-bc3b-d7c8668687c3', '0b11b742-3125-4d75-9a6f-84af7fde1969', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'AAT-6702', barcode : '8330223562386', @@ -691,9 +691,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-19-01.jpg', 'assets/images/apps/ecommerce/products/watch-19-02.jpg', - 'assets/images/apps/ecommerce/products/watch-19-03.jpg' + 'assets/images/apps/ecommerce/products/watch-19-03.jpg', ], - active : true + active : true, }, { id : '8b1d9366-891e-49cd-aafb-ac65ce2741e2', @@ -705,7 +705,7 @@ export const products = [ '0fc39efd-f640-41f8-95a5-3f1d749df200', '8f868ddb-d4a2-461d-bc3b-d7c8668687c3', '0b11b742-3125-4d75-9a6f-84af7fde1969', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'EDH-5599', barcode : '8309212335274', @@ -722,9 +722,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-20-01.jpg', 'assets/images/apps/ecommerce/products/watch-20-02.jpg', - 'assets/images/apps/ecommerce/products/watch-20-03.jpg' + 'assets/images/apps/ecommerce/products/watch-20-03.jpg', ], - active : false + active : false, }, { id : '54e29534-518b-4006-b72a-f21fac6c4d5e', @@ -736,7 +736,7 @@ export const products = [ '7d6dd47e-7472-4f8b-93d4-46c114c44533', '8837b93f-388b-43cc-851d-4ca8f23f3a61', '0b11b742-3125-4d75-9a6f-84af7fde1969', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'ADP-3719', barcode : '8879167838673', @@ -753,9 +753,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-21-01.jpg', 'assets/images/apps/ecommerce/products/watch-21-02.jpg', - 'assets/images/apps/ecommerce/products/watch-21-03.jpg' + 'assets/images/apps/ecommerce/products/watch-21-03.jpg', ], - active : false + active : false, }, { id : '6a5726e8-c467-45ea-92ab-d83235a06405', @@ -767,7 +767,7 @@ export const products = [ '7d6dd47e-7472-4f8b-93d4-46c114c44533', '8837b93f-388b-43cc-851d-4ca8f23f3a61', '0b11b742-3125-4d75-9a6f-84af7fde1969', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'ATH-3399', barcode : '8356410903599', @@ -784,9 +784,9 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-22-01.jpg', 'assets/images/apps/ecommerce/products/watch-22-02.jpg', - 'assets/images/apps/ecommerce/products/watch-22-03.jpg' + 'assets/images/apps/ecommerce/products/watch-22-03.jpg', ], - active : false + active : false, }, { id : 'd7d1d6df-e91f-4c53-982a-2720bc2b4cdd', @@ -798,7 +798,7 @@ export const products = [ '0fc39efd-f640-41f8-95a5-3f1d749df200', '8f868ddb-d4a2-461d-bc3b-d7c8668687c3', '0b11b742-3125-4d75-9a6f-84af7fde1969', - 'b1286f3a-e2d0-4237-882b-f0efc0819ec3' + 'b1286f3a-e2d0-4237-882b-f0efc0819ec3', ], sku : 'EAV-4030', barcode : '8545771786193', @@ -815,8 +815,8 @@ export const products = [ images : [ 'assets/images/apps/ecommerce/products/watch-23-01.jpg', 'assets/images/apps/ecommerce/products/watch-23-02.jpg', - 'assets/images/apps/ecommerce/products/watch-23-03.jpg' + 'assets/images/apps/ecommerce/products/watch-23-03.jpg', ], - active : true - } + active : true, + }, ]; diff --git a/src/app/mock-api/apps/file-manager/api.ts b/src/app/mock-api/apps/file-manager/api.ts index 02ca4074..dd456b14 100644 --- a/src/app/mock-api/apps/file-manager/api.ts +++ b/src/app/mock-api/apps/file-manager/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { cloneDeep } from 'lodash-es'; import { FuseMockApiService } from '@fuse/lib/mock-api/mock-api.service'; import { items as itemsData } from 'app/mock-api/apps/file-manager/data'; +import { cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class FileManagerMockApi { private _items: any[] = itemsData; @@ -33,8 +31,8 @@ export class FileManagerMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/file-manager') - .reply(({request}) => { - + .reply(({request}) => + { // Clone the items let items = cloneDeep(this._items); @@ -85,8 +83,8 @@ export class FileManagerMockApi { folders, files, - path - } + path, + }, ]; }); } diff --git a/src/app/mock-api/apps/file-manager/data.ts b/src/app/mock-api/apps/file-manager/data.ts index fa6184f6..6ffa0494 100644 --- a/src/app/mock-api/apps/file-manager/data.ts +++ b/src/app/mock-api/apps/file-manager/data.ts @@ -10,7 +10,7 @@ export const items = [ size : '87 MB', type : 'folder', contents : '57 files', - description: 'Personal documents such as insurance policies, tax papers and etc.' + description: 'Personal documents such as insurance policies, tax papers and etc.', }, { id : '6da8747f-b474-4c9a-9eba-5ef212285500', @@ -22,7 +22,7 @@ export const items = [ size : '3015 MB', type : 'folder', contents : '907 files', - description: 'Personal photos; selfies, family, vacation and etc.' + description: 'Personal photos; selfies, family, vacation and etc.', }, { id : 'ed58add1-45a7-41db-887d-3ca7ee7f2719', @@ -34,7 +34,7 @@ export const items = [ size : '14 MB', type : 'folder', contents : '24 files', - description: 'Work related files, mainly documents and paychecks.' + description: 'Work related files, mainly documents and paychecks.', }, { id : '5cb66e32-d1ac-4b9a-8c34-5991ce25add2', @@ -46,7 +46,7 @@ export const items = [ size : '1.2 MB', type : 'PDF', contents : null, - description: null + description: null, }, { id : '3ffc3d84-8f2d-4929-903a-ef6fc21657a7', @@ -58,7 +58,7 @@ export const items = [ size : '679 KB', type : 'XLS', contents : null, - description: null + description: null, }, { id : '157adb9a-14f8-4559-ac93-8be893c9f80a', @@ -70,7 +70,7 @@ export const items = [ size : '1.5 MB', type : 'DOC', contents : null, - description: null + description: null, }, { id : '4f64597a-df7e-461c-ad60-f33e5f7e0747', @@ -82,7 +82,7 @@ export const items = [ size : '17.8 MB', type : 'PDF', contents : null, - description: null + description: null, }, { id : 'e445c445-57b2-4476-8c62-b068e3774b8e', @@ -94,7 +94,7 @@ export const items = [ size : '11.3 MB', type : 'TXT', contents : null, - description: null + description: null, }, { id : 'b482f93e-7847-4614-ad48-b78b78309f81', @@ -106,7 +106,7 @@ export const items = [ size : '9.3 MB', type : 'TXT', contents : null, - description: null + description: null, }, { id : 'ec07a98d-2e5b-422c-a9b2-b5d1c0e263f5', @@ -118,7 +118,7 @@ export const items = [ size : '4.3 MB', type : 'DOC', contents : null, - description: null + description: null, }, { id : 'ae908d59-07da-4dd8-aba0-124e50289295', @@ -130,7 +130,7 @@ export const items = [ size : '4.5 MB', type : 'JPG', contents : null, - description: null + description: null, }, { id : '4038a5b6-5b1a-432d-907c-e037aeb817a8', @@ -142,7 +142,7 @@ export const items = [ size : '7.8 MB', type : 'JPG', contents : null, - description: null + description: null, }, { id : '630d2e9a-d110-47a0-ac03-256073a0f56d', @@ -154,7 +154,7 @@ export const items = [ size : '7.4 MB', type : 'JPG', contents : null, - description: null + description: null, }, { id : '1417d5ed-b616-4cff-bfab-286677b69d79', @@ -166,7 +166,7 @@ export const items = [ size : '2.6 MB', type : 'DOC', contents : null, - description: null + description: null, }, { id : 'bd2817c7-6751-40dc-b252-b6b5634c0689', @@ -178,7 +178,7 @@ export const items = [ size : '2.1 MB', type : 'DOC', contents : null, - description: null + description: null, }, { id : '14fb47c9-6eeb-4070-919c-07c8133285d1', @@ -190,7 +190,7 @@ export const items = [ size : '943 KB', type : 'XLS', contents : null, - description: null + description: null, }, { @@ -203,7 +203,7 @@ export const items = [ size : '943 KB', type : 'XLS', contents : null, - description: null + description: null, }, { id : '74010810-16cf-441d-a1aa-c9fb620fceea', @@ -215,7 +215,7 @@ export const items = [ size : '3015 MB', type : 'folder', contents : '907 files', - description: 'Personal photos; selfies, family, vacation and etc.' + description: 'Personal photos; selfies, family, vacation and etc.', }, { id : 'a8c73e5a-8114-436d-ab54-d900b50b3762', @@ -227,7 +227,7 @@ export const items = [ size : '943 KB', type : 'XLS', contents : null, - description: null + description: null, }, { @@ -240,7 +240,7 @@ export const items = [ size : '943 KB', type : 'XLS', contents : null, - description: null + description: null, }, { id : '2836766d-27e1-4f40-a31a-5a8419105e7e', @@ -252,6 +252,6 @@ export const items = [ size : '943 KB', type : 'XLS', contents : null, - description: null - } + description: null, + }, ]; diff --git a/src/app/mock-api/apps/help-center/api.ts b/src/app/mock-api/apps/help-center/api.ts index f51c4d5c..8fc9b73b 100644 --- a/src/app/mock-api/apps/help-center/api.ts +++ b/src/app/mock-api/apps/help-center/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { cloneDeep } from 'lodash-es'; import { FuseMockApiService } from '@fuse/lib/mock-api'; import { faqCategories as faqCategoriesData, faqs as faqsData, guideCategories as guideCategoriesData, guideContent as guideContentData, guides as guidesData } from 'app/mock-api/apps/help-center/data'; +import { cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class HelpCenterMockApi { private _faqCategories: any[] = faqCategoriesData; @@ -37,8 +35,8 @@ export class HelpCenterMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/help-center/faqs') - .reply(({request}) => { - + .reply(({request}) => + { // Get the category slug const slug = request.params.get('slug'); @@ -55,13 +53,13 @@ export class HelpCenterMockApi if ( !slug ) { // Go through each category and set the results - categories.forEach((category) => { - + categories.forEach((category) => + { results.push( { ...category, - faqs: faqs.filter(faq => faq.categoryId === category.id) - } + faqs: faqs.filter(faq => faq.categoryId === category.id), + }, ); }); } @@ -75,8 +73,8 @@ export class HelpCenterMockApi results.push( { ...category, - faqs: faqs.filter(faq => faq.categoryId === category.id) - } + faqs: faqs.filter(faq => faq.categoryId === category.id), + }, ); } @@ -89,8 +87,8 @@ export class HelpCenterMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/help-center/guides') - .reply(({request}) => { - + .reply(({request}) => + { // Get the slug & limit const slug = request.params.get('slug'); const limit = request.params.get('limit'); @@ -111,15 +109,15 @@ export class HelpCenterMockApi const limitNum = parseInt(limit ?? '5', 10); // Go through each category and set the results - categories.forEach((category) => { - + categories.forEach((category) => + { results.push( { ...category, visibleGuides: limitNum, totalGuides : guides.filter(guide => guide.categoryId === category.id).length, - guides : guides.filter(guide => guide.categoryId === category.id).slice(0, limitNum) - } + guides : guides.filter(guide => guide.categoryId === category.id).slice(0, limitNum), + }, ); }); } @@ -133,8 +131,8 @@ export class HelpCenterMockApi results.push( { ...category, - guides: guides.filter(guide => guide.categoryId === category.id) - } + guides: guides.filter(guide => guide.categoryId === category.id), + }, ); } @@ -147,8 +145,8 @@ export class HelpCenterMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/help-center/guide') - .reply(({request}) => { - + .reply(({request}) => + { // Get the slugs const categorySlug = request.params.get('categorySlug'); const guideSlug = request.params.get('guideSlug'); @@ -160,7 +158,7 @@ export class HelpCenterMockApi // Prepare the result const result = { ...categories.find(category => category.slug === categorySlug), - guides: [guides.find(guide => guide.slug === guideSlug)] + guides: [guides.find(guide => guide.slug === guideSlug)], }; // Add the content to the guide diff --git a/src/app/mock-api/apps/help-center/data.ts b/src/app/mock-api/apps/help-center/data.ts index b4737080..a77b28c0 100644 --- a/src/app/mock-api/apps/help-center/data.ts +++ b/src/app/mock-api/apps/help-center/data.ts @@ -3,28 +3,28 @@ export const faqCategories = [ { id : '28924eab-97cc-465a-ba21-f232bb95843f', slug : 'most-asked', - title: 'Most asked' + title: 'Most asked', }, { id : '395b0d41-b9a8-4cd6-8b5c-f07855e82d62', slug : 'general-inquiries', - title: 'General inquiries' + title: 'General inquiries', }, { id : 'b388a87f-bfbb-44d0-800c-0ddbce2a5d22', slug : 'licenses', - title: 'Licenses' + title: 'Licenses', }, { id : '71c34043-d89d-4aca-951d-8606c3943c43', slug : 'payments', - title: 'Payments' + title: 'Payments', }, { id : 'bea49ee0-26da-46ad-97be-116cd7ab416d', slug : 'support', - title: 'Support' - } + title: 'Support', + }, ]; export const faqs = [ // Most asked @@ -32,207 +32,207 @@ export const faqs = [ id : 'f65d517a-6f69-4c88-81f5-416f47405ce1', categoryId: '28924eab-97cc-465a-ba21-f232bb95843f', question : 'Is there a 14-days trial?', - answer : 'Magna consectetur culpa duis ad est tempor pariatur velit ullamco aute exercitation magna sunt commodo minim enim aliquip eiusmod ipsum adipisicing magna ipsum reprehenderit lorem magna voluptate magna aliqua culpa.\n\nSit nisi adipisicing pariatur enim enim sunt officia ad labore voluptate magna proident velit excepteur pariatur cillum sit excepteur elit veniam excepteur minim nisi cupidatat proident dolore irure veniam mollit.' + answer : 'Magna consectetur culpa duis ad est tempor pariatur velit ullamco aute exercitation magna sunt commodo minim enim aliquip eiusmod ipsum adipisicing magna ipsum reprehenderit lorem magna voluptate magna aliqua culpa.\n\nSit nisi adipisicing pariatur enim enim sunt officia ad labore voluptate magna proident velit excepteur pariatur cillum sit excepteur elit veniam excepteur minim nisi cupidatat proident dolore irure veniam mollit.', }, { id : '0fcece82-1691-4b98-a9b9-b63218f9deef', categoryId: '28924eab-97cc-465a-ba21-f232bb95843f', question : 'What’s the benefits of the Premium Membership?', - answer : 'Et in lorem qui ipsum deserunt duis exercitation lorem elit qui qui ipsum tempor nulla velit aliquip enim consequat incididunt pariatur duis excepteur elit irure nulla ipsum dolor dolore est.\n\nAute deserunt nostrud id non ipsum do adipisicing laboris in minim officia magna elit minim mollit elit velit veniam lorem pariatur veniam sit excepteur irure commodo excepteur duis quis in.' + answer : 'Et in lorem qui ipsum deserunt duis exercitation lorem elit qui qui ipsum tempor nulla velit aliquip enim consequat incididunt pariatur duis excepteur elit irure nulla ipsum dolor dolore est.\n\nAute deserunt nostrud id non ipsum do adipisicing laboris in minim officia magna elit minim mollit elit velit veniam lorem pariatur veniam sit excepteur irure commodo excepteur duis quis in.', }, { id : '2e6971cd-49d5-49f1-8cbd-fba5c71e6062', categoryId: '28924eab-97cc-465a-ba21-f232bb95843f', question : 'How much time I will need to learn this app?', - answer : 'Id fugiat et cupidatat magna nulla nulla eu cillum officia nostrud dolore in veniam ullamco nulla ex duis est enim nisi aute ipsum velit et laboris est pariatur est culpa.\n\nCulpa sunt ipsum esse quis excepteur enim culpa est voluptate reprehenderit consequat duis officia irure voluptate veniam dolore fugiat dolor est amet nostrud non velit irure do voluptate id sit.' + answer : 'Id fugiat et cupidatat magna nulla nulla eu cillum officia nostrud dolore in veniam ullamco nulla ex duis est enim nisi aute ipsum velit et laboris est pariatur est culpa.\n\nCulpa sunt ipsum esse quis excepteur enim culpa est voluptate reprehenderit consequat duis officia irure voluptate veniam dolore fugiat dolor est amet nostrud non velit irure do voluptate id sit.', }, { id : '974f93b8-336f-4eec-b011-9ddb412ee828', categoryId: '28924eab-97cc-465a-ba21-f232bb95843f', question : 'Are there any free tutorials available?', - answer : 'Excepteur deserunt tempor do lorem elit id magna pariatur irure ullamco elit dolor consectetur ad officia fugiat incididunt do elit aute esse eu voluptate adipisicing incididunt ea dolor aliqua dolor.\n\nConsequat est quis deserunt voluptate ipsum incididunt laboris occaecat irure laborum voluptate non sit labore voluptate sunt id sint ut laboris aute cupidatat occaecat eiusmod non magna aliquip deserunt nisi.' + answer : 'Excepteur deserunt tempor do lorem elit id magna pariatur irure ullamco elit dolor consectetur ad officia fugiat incididunt do elit aute esse eu voluptate adipisicing incididunt ea dolor aliqua dolor.\n\nConsequat est quis deserunt voluptate ipsum incididunt laboris occaecat irure laborum voluptate non sit labore voluptate sunt id sint ut laboris aute cupidatat occaecat eiusmod non magna aliquip deserunt nisi.', }, { id : '5d877fc7-b881-4527-a6aa-d39d642feb23', categoryId: '28924eab-97cc-465a-ba21-f232bb95843f', question : 'Is there a month-to-month payment option?', - answer : 'Labore mollit in aliqua exercitation aliquip elit nisi nisi voluptate reprehenderit et dolor incididunt cupidatat ullamco nulla consequat voluptate adipisicing dolor qui magna sint aute do excepteur in aliqua consectetur.\n\nElit laborum non duis irure ad ullamco aliqua enim exercitation quis fugiat aute esse esse magna et ad cupidatat voluptate sint nulla nulla lorem et enim deserunt proident deserunt consectetur.' + answer : 'Labore mollit in aliqua exercitation aliquip elit nisi nisi voluptate reprehenderit et dolor incididunt cupidatat ullamco nulla consequat voluptate adipisicing dolor qui magna sint aute do excepteur in aliqua consectetur.\n\nElit laborum non duis irure ad ullamco aliqua enim exercitation quis fugiat aute esse esse magna et ad cupidatat voluptate sint nulla nulla lorem et enim deserunt proident deserunt consectetur.', }, // General inquiries { id : '3d1c26c5-1e5e-4eb6-8006-ed6037ed9aca', categoryId: '395b0d41-b9a8-4cd6-8b5c-f07855e82d62', question : 'How to download your items', - answer : 'Sunt mollit irure dolor aliquip sit veniam amet ut sunt dolore cillum sint pariatur qui irure proident velit non excepteur quis ut et quis velit aliqua ea sunt cillum sit.\n\nReprehenderit est culpa ut incididunt sit dolore mollit in occaecat velit culpa consequat reprehenderit ex lorem cupidatat proident reprehenderit ad eu sunt sit ut sit culpa ea reprehenderit aliquip est.' + answer : 'Sunt mollit irure dolor aliquip sit veniam amet ut sunt dolore cillum sint pariatur qui irure proident velit non excepteur quis ut et quis velit aliqua ea sunt cillum sit.\n\nReprehenderit est culpa ut incididunt sit dolore mollit in occaecat velit culpa consequat reprehenderit ex lorem cupidatat proident reprehenderit ad eu sunt sit ut sit culpa ea reprehenderit aliquip est.', }, { id : '11bd2b9a-85b4-41c9-832c-bd600dfa3a52', categoryId: '395b0d41-b9a8-4cd6-8b5c-f07855e82d62', question : 'View and download invoices', - answer : 'Sint mollit consectetur voluptate fugiat sunt ipsum adipisicing labore exercitation eiusmod enim excepteur enim proident velit sint magna commodo dolor ex ipsum sit nisi deserunt labore eu irure amet ea.\n\nOccaecat ut velit et sint pariatur laboris voluptate duis aliqua aliqua exercitation et duis duis eu laboris excepteur occaecat quis esse enim ex dolore commodo fugiat excepteur adipisicing in fugiat.' + answer : 'Sint mollit consectetur voluptate fugiat sunt ipsum adipisicing labore exercitation eiusmod enim excepteur enim proident velit sint magna commodo dolor ex ipsum sit nisi deserunt labore eu irure amet ea.\n\nOccaecat ut velit et sint pariatur laboris voluptate duis aliqua aliqua exercitation et duis duis eu laboris excepteur occaecat quis esse enim ex dolore commodo fugiat excepteur adipisicing in fugiat.', }, { id : 'f55c023a-785e-4f0f-b5b7-47da75224deb', categoryId: '395b0d41-b9a8-4cd6-8b5c-f07855e82d62', question : 'I\'ve forgotten my username or password', - answer : 'In exercitation sunt ad anim commodo sunt do in sunt est officia amet ex ullamco do nisi consectetur lorem proident lorem adipisicing incididunt consequat fugiat voluptate sint est anim officia.\n\nVelit sint aliquip elit culpa amet eu mollit veniam esse deserunt ex occaecat quis lorem minim occaecat culpa esse veniam enim duis excepteur ipsum esse ut ut velit cillum adipisicing.' + answer : 'In exercitation sunt ad anim commodo sunt do in sunt est officia amet ex ullamco do nisi consectetur lorem proident lorem adipisicing incididunt consequat fugiat voluptate sint est anim officia.\n\nVelit sint aliquip elit culpa amet eu mollit veniam esse deserunt ex occaecat quis lorem minim occaecat culpa esse veniam enim duis excepteur ipsum esse ut ut velit cillum adipisicing.', }, { id : 'c577a67d-357a-4b88-96e8-a0ee1fe9162e', categoryId: '395b0d41-b9a8-4cd6-8b5c-f07855e82d62', question : 'Where is my license code?', - answer : 'Ad adipisicing duis consequat magna sunt consequat aliqua eiusmod qui et nostrud voluptate sit enim reprehenderit anim exercitation ipsum ipsum anim ipsum laboris aliqua ex lorem aute officia voluptate culpa.\n\nNostrud anim ex pariatur ipsum et nostrud esse veniam ipsum ipsum irure velit ad quis irure tempor nulla amet aute id esse reprehenderit ea consequat consequat ea minim magna magna.' + answer : 'Ad adipisicing duis consequat magna sunt consequat aliqua eiusmod qui et nostrud voluptate sit enim reprehenderit anim exercitation ipsum ipsum anim ipsum laboris aliqua ex lorem aute officia voluptate culpa.\n\nNostrud anim ex pariatur ipsum et nostrud esse veniam ipsum ipsum irure velit ad quis irure tempor nulla amet aute id esse reprehenderit ea consequat consequat ea minim magna magna.', }, { id : '1a680c29-7ece-4a80-9709-277ad4da8b4b', categoryId: '395b0d41-b9a8-4cd6-8b5c-f07855e82d62', question : 'How to contact an author', - answer : 'Magna laborum et amet magna fugiat officia deserunt in exercitation aliquip nulla magna velit ea labore quis deserunt ipsum occaecat id id consequat non eiusmod mollit est voluptate ea ex.\n\nReprehenderit mollit ut excepteur minim veniam fugiat enim id pariatur amet elit nostrud occaecat pariatur et esse aliquip irure quis officia reprehenderit voluptate voluptate est et voluptate sint esse dolor.' + answer : 'Magna laborum et amet magna fugiat officia deserunt in exercitation aliquip nulla magna velit ea labore quis deserunt ipsum occaecat id id consequat non eiusmod mollit est voluptate ea ex.\n\nReprehenderit mollit ut excepteur minim veniam fugiat enim id pariatur amet elit nostrud occaecat pariatur et esse aliquip irure quis officia reprehenderit voluptate voluptate est et voluptate sint esse dolor.', }, { id : 'c49c2216-8bdb-4df0-be25-d5ea1dbb5688', categoryId: '395b0d41-b9a8-4cd6-8b5c-f07855e82d62', question : 'How does the affiliate program work?', - answer : 'Adipisicing laboris ipsum fugiat et cupidatat aute esse ad labore et est cillum ipsum sunt duis do veniam minim officia deserunt in eiusmod eu duis dolore excepteur consectetur id elit.\n\nAnim excepteur occaecat laborum sunt in elit quis sit duis adipisicing laboris anim laborum et pariatur elit qui consectetur laborum reprehenderit occaecat nostrud pariatur aliqua elit nisi commodo eu excepteur.' + answer : 'Adipisicing laboris ipsum fugiat et cupidatat aute esse ad labore et est cillum ipsum sunt duis do veniam minim officia deserunt in eiusmod eu duis dolore excepteur consectetur id elit.\n\nAnim excepteur occaecat laborum sunt in elit quis sit duis adipisicing laboris anim laborum et pariatur elit qui consectetur laborum reprehenderit occaecat nostrud pariatur aliqua elit nisi commodo eu excepteur.', }, // Licenses { id : '3ef176fa-6cba-4536-9f43-540c686a4faa', categoryId: 'b388a87f-bfbb-44d0-800c-0ddbce2a5d22', question : 'How do licenses work for items I bought?', - answer : 'Culpa duis nostrud qui velit sint magna officia fugiat ipsum eiusmod enim laborum pariatur anim culpa elit ipsum lorem pariatur exercitation laborum do labore cillum exercitation nisi reprehenderit exercitation quis.\n\nMollit aute dolor non elit et incididunt eiusmod non in commodo occaecat id in excepteur aliqua ea anim pariatur sint elit voluptate dolor eu non laborum laboris voluptate qui duis.' + answer : 'Culpa duis nostrud qui velit sint magna officia fugiat ipsum eiusmod enim laborum pariatur anim culpa elit ipsum lorem pariatur exercitation laborum do labore cillum exercitation nisi reprehenderit exercitation quis.\n\nMollit aute dolor non elit et incididunt eiusmod non in commodo occaecat id in excepteur aliqua ea anim pariatur sint elit voluptate dolor eu non laborum laboris voluptate qui duis.', }, { id : '7bc6b7b4-7ad8-4cbe-af36-7301642d35fb', categoryId: 'b388a87f-bfbb-44d0-800c-0ddbce2a5d22', question : 'Do licenses have an expiry date?', - answer : 'Ea proident dolor tempor dolore incididunt velit incididunt ullamco quis proident consectetur magna excepteur cillum officia ex do aliqua reprehenderit est esse officia labore dolore aute laboris eu commodo aute.\n\nOfficia quis id ipsum adipisicing ipsum eu exercitation cillum ex elit pariatur adipisicing ullamco ullamco nulla dolore magna aliqua reprehenderit eu laborum voluptate reprehenderit non eiusmod deserunt velit magna do.' + answer : 'Ea proident dolor tempor dolore incididunt velit incididunt ullamco quis proident consectetur magna excepteur cillum officia ex do aliqua reprehenderit est esse officia labore dolore aute laboris eu commodo aute.\n\nOfficia quis id ipsum adipisicing ipsum eu exercitation cillum ex elit pariatur adipisicing ullamco ullamco nulla dolore magna aliqua reprehenderit eu laborum voluptate reprehenderit non eiusmod deserunt velit magna do.', }, { id : '56c9ed66-a1d2-4803-a160-fba29b826cb4', categoryId: 'b388a87f-bfbb-44d0-800c-0ddbce2a5d22', question : 'I want to make multiple end products with the same item', - answer : 'Elit cillum incididunt enim cupidatat ex elit cillum aute dolor consectetur proident non minim eu est deserunt proident mollit ullamco laborum anim ea labore anim ex enim ullamco consectetur enim.\n\nEx magna consectetur esse enim consequat non aliqua nulla labore mollit sit quis ex fugiat commodo eu cupidatat irure incididunt consequat enim ut deserunt consequat elit consequat sint adipisicing sunt.' + answer : 'Elit cillum incididunt enim cupidatat ex elit cillum aute dolor consectetur proident non minim eu est deserunt proident mollit ullamco laborum anim ea labore anim ex enim ullamco consectetur enim.\n\nEx magna consectetur esse enim consequat non aliqua nulla labore mollit sit quis ex fugiat commodo eu cupidatat irure incididunt consequat enim ut deserunt consequat elit consequat sint adipisicing sunt.', }, { id : '21c1b662-33c8-44d7-9530-91896afeeac7', categoryId: 'b388a87f-bfbb-44d0-800c-0ddbce2a5d22', question : 'How easy is it to change the license type?', - answer : 'Duis culpa ut veniam voluptate consequat proident magna eiusmod id est magna culpa nulla enim culpa mollit velit lorem mollit ut minim dolore in tempor reprehenderit cillum occaecat proident ea.\n\nVeniam fugiat ea duis qui et eu eiusmod voluptate id cillum eiusmod eu reprehenderit minim reprehenderit nisi cillum nostrud duis eu magna minim sunt voluptate eu pariatur nulla ullamco elit.' + answer : 'Duis culpa ut veniam voluptate consequat proident magna eiusmod id est magna culpa nulla enim culpa mollit velit lorem mollit ut minim dolore in tempor reprehenderit cillum occaecat proident ea.\n\nVeniam fugiat ea duis qui et eu eiusmod voluptate id cillum eiusmod eu reprehenderit minim reprehenderit nisi cillum nostrud duis eu magna minim sunt voluptate eu pariatur nulla ullamco elit.', }, { id : '5fa52c90-82be-41ae-96ec-5fc67cf054a4', categoryId: 'b388a87f-bfbb-44d0-800c-0ddbce2a5d22', question : 'Do I need a Regular License or an Extended License?', - answer : 'Mollit nostrud ea irure ex ipsum in cupidatat irure sit officia reprehenderit adipisicing et occaecat cupidatat exercitation mollit esse in excepteur qui elit exercitation velit fugiat exercitation est officia excepteur.\n\nQuis esse voluptate laborum non veniam duis est fugiat tempor culpa minim velit minim ut duis qui officia consectetur ex nostrud ut elit elit nulla in consectetur voluptate aliqua aliqua.' + answer : 'Mollit nostrud ea irure ex ipsum in cupidatat irure sit officia reprehenderit adipisicing et occaecat cupidatat exercitation mollit esse in excepteur qui elit exercitation velit fugiat exercitation est officia excepteur.\n\nQuis esse voluptate laborum non veniam duis est fugiat tempor culpa minim velit minim ut duis qui officia consectetur ex nostrud ut elit elit nulla in consectetur voluptate aliqua aliqua.', }, // Payments { id : '81ac908c-35a2-4705-8d75-539863c35c09', categoryId: '71c34043-d89d-4aca-951d-8606c3943c43', question : 'Common PayPal, Skrill, and credit card issues', - answer : 'Sit occaecat sint nulla in esse dolor occaecat in ea sit irure magna magna veniam fugiat consequat exercitation ipsum ex officia velit consectetur consequat voluptate lorem eu proident lorem incididunt.\n\nExcepteur exercitation et qui labore nisi eu voluptate ipsum deserunt deserunt eu est minim dolor ad proident nulla reprehenderit culpa minim voluptate dolor nostrud dolor anim labore aliqua officia nostrud.' + answer : 'Sit occaecat sint nulla in esse dolor occaecat in ea sit irure magna magna veniam fugiat consequat exercitation ipsum ex officia velit consectetur consequat voluptate lorem eu proident lorem incididunt.\n\nExcepteur exercitation et qui labore nisi eu voluptate ipsum deserunt deserunt eu est minim dolor ad proident nulla reprehenderit culpa minim voluptate dolor nostrud dolor anim labore aliqua officia nostrud.', }, { id : 'b6d8909f-f36d-4885-8848-46b8230d4476', categoryId: '71c34043-d89d-4aca-951d-8606c3943c43', question : 'How do I find my transaction ID?', - answer : 'Laboris ea nisi commodo nulla cillum consequat consectetur nisi velit adipisicing minim nulla culpa amet quis sit duis id id aliqua aute exercitation non reprehenderit aliquip enim eiusmod eu irure.\n\nNon irure consectetur sunt cillum do adipisicing excepteur labore proident ut officia dolor fugiat velit sint consectetur cillum qui amet enim anim mollit laboris consectetur non do laboris lorem aliqua.' + answer : 'Laboris ea nisi commodo nulla cillum consequat consectetur nisi velit adipisicing minim nulla culpa amet quis sit duis id id aliqua aute exercitation non reprehenderit aliquip enim eiusmod eu irure.\n\nNon irure consectetur sunt cillum do adipisicing excepteur labore proident ut officia dolor fugiat velit sint consectetur cillum qui amet enim anim mollit laboris consectetur non do laboris lorem aliqua.', }, { id : '9496235d-4d0c-430b-817e-1cba96404f95', categoryId: '71c34043-d89d-4aca-951d-8606c3943c43', question : 'PayPal disputes And chargebacks', - answer : 'Ullamco eiusmod do pariatur pariatur consectetur commodo proident ex voluptate ullamco culpa commodo deserunt pariatur incididunt nisi magna dolor est minim eu ex voluptate deserunt labore id magna excepteur et.\n\nReprehenderit dolore pariatur exercitation ad non fugiat quis proident fugiat incididunt ea magna pariatur et exercitation tempor cillum eu consequat adipisicing est laborum sit cillum ea fugiat mollit cupidatat est.' + answer : 'Ullamco eiusmod do pariatur pariatur consectetur commodo proident ex voluptate ullamco culpa commodo deserunt pariatur incididunt nisi magna dolor est minim eu ex voluptate deserunt labore id magna excepteur et.\n\nReprehenderit dolore pariatur exercitation ad non fugiat quis proident fugiat incididunt ea magna pariatur et exercitation tempor cillum eu consequat adipisicing est laborum sit cillum ea fugiat mollit cupidatat est.', }, { id : '7fde17e6-4ac1-47dd-a363-2f4f14dcf76a', categoryId: '71c34043-d89d-4aca-951d-8606c3943c43', question : 'Saving your credit card details', - answer : 'Qui quis nulla excepteur voluptate elit culpa occaecat id ex do adipisicing est mollit id anim nisi irure amet officia ut sint aliquip dolore labore cupidatat magna laborum esse ea.\n\nEnim magna duis sit incididunt amet anim et nostrud laborum eiusmod et ea fugiat aliquip velit sit fugiat consectetur ipsum anim do enim excepteur cupidatat consequat sunt irure tempor ut.' + answer : 'Qui quis nulla excepteur voluptate elit culpa occaecat id ex do adipisicing est mollit id anim nisi irure amet officia ut sint aliquip dolore labore cupidatat magna laborum esse ea.\n\nEnim magna duis sit incididunt amet anim et nostrud laborum eiusmod et ea fugiat aliquip velit sit fugiat consectetur ipsum anim do enim excepteur cupidatat consequat sunt irure tempor ut.', }, { id : '90a3ed58-e13b-40cf-9219-f933bf9c9b8f', categoryId: '71c34043-d89d-4aca-951d-8606c3943c43', question : 'Why do prepaid credits expire?', - answer : 'Consequat consectetur commodo deserunt sunt aliquip deserunt ex tempor esse nostrud sit dolore anim nostrud nulla dolore veniam minim laboris non dolor veniam lorem veniam deserunt laborum aute amet irure.\n\nEiusmod officia veniam reprehenderit ea aliquip velit anim aute minim aute nisi tempor qui sunt deserunt voluptate velit elit ut adipisicing ipsum et excepteur ipsum eu ullamco nisi esse dolor.' + answer : 'Consequat consectetur commodo deserunt sunt aliquip deserunt ex tempor esse nostrud sit dolore anim nostrud nulla dolore veniam minim laboris non dolor veniam lorem veniam deserunt laborum aute amet irure.\n\nEiusmod officia veniam reprehenderit ea aliquip velit anim aute minim aute nisi tempor qui sunt deserunt voluptate velit elit ut adipisicing ipsum et excepteur ipsum eu ullamco nisi esse dolor.', }, { id : '153376ed-691f-4dfd-ae99-e204a49edc44', categoryId: '71c34043-d89d-4aca-951d-8606c3943c43', question : 'Why is there a minimum $20 credit?', - answer : 'Duis sint velit incididunt exercitation eiusmod nisi sunt ex est fugiat ad cupidatat sunt nisi elit do duis amet voluptate ipsum aliquip lorem aliqua sint esse in magna irure officia.\n\nNon eu ex elit ut est voluptate tempor amet ut officia in duis deserunt cillum labore do culpa id dolore magna anim consectetur qui consectetur fugiat labore mollit magna irure.' + answer : 'Duis sint velit incididunt exercitation eiusmod nisi sunt ex est fugiat ad cupidatat sunt nisi elit do duis amet voluptate ipsum aliquip lorem aliqua sint esse in magna irure officia.\n\nNon eu ex elit ut est voluptate tempor amet ut officia in duis deserunt cillum labore do culpa id dolore magna anim consectetur qui consectetur fugiat labore mollit magna irure.', }, // Support { id : '4e7ce72f-863a-451f-9160-cbd4fbbc4c3d', categoryId: 'bea49ee0-26da-46ad-97be-116cd7ab416d', question : 'What is item support?', - answer : 'Exercitation sit eiusmod enim officia exercitation eiusmod sunt eiusmod excepteur ad commodo eiusmod qui proident quis aliquip excepteur sit cillum occaecat non dolore sit in labore ut duis esse duis.\n\nConsequat sunt voluptate consectetur dolor laborum enim nostrud deserunt incididunt sint veniam laboris sunt amet velit anim duis aliqua sunt aliqua aute qui nisi mollit qui irure ullamco aliquip laborum.' + answer : 'Exercitation sit eiusmod enim officia exercitation eiusmod sunt eiusmod excepteur ad commodo eiusmod qui proident quis aliquip excepteur sit cillum occaecat non dolore sit in labore ut duis esse duis.\n\nConsequat sunt voluptate consectetur dolor laborum enim nostrud deserunt incididunt sint veniam laboris sunt amet velit anim duis aliqua sunt aliqua aute qui nisi mollit qui irure ullamco aliquip laborum.', }, { id : '0795a74f-7a84-4edf-8d66-296cdef70003', categoryId: 'bea49ee0-26da-46ad-97be-116cd7ab416d', question : 'How to contact an author', - answer : 'Minim commodo cillum do id qui irure aliqua laboris excepteur laboris magna enim est lorem consectetur tempor laboris proident proident eu irure dolor eiusmod in officia lorem quis laborum ullamco.\n\nQui excepteur ex sit esse dolore deserunt ullamco occaecat laboris fugiat cupidatat excepteur laboris amet dolore enim velit ipsum velit sint cupidatat consectetur cupidatat deserunt sit eu do ullamco quis.' + answer : 'Minim commodo cillum do id qui irure aliqua laboris excepteur laboris magna enim est lorem consectetur tempor laboris proident proident eu irure dolor eiusmod in officia lorem quis laborum ullamco.\n\nQui excepteur ex sit esse dolore deserunt ullamco occaecat laboris fugiat cupidatat excepteur laboris amet dolore enim velit ipsum velit sint cupidatat consectetur cupidatat deserunt sit eu do ullamco quis.', }, { id : '05532574-c102-4228-89a8-55fff32ec6fc', categoryId: 'bea49ee0-26da-46ad-97be-116cd7ab416d', question : 'Extending and renewing item support', - answer : 'Reprehenderit anim consectetur anim dolor magna consequat excepteur tempor enim duis magna proident ullamco aute voluptate elit laborum mollit labore id ex lorem est mollit do qui ex labore nulla.\n\nUt proident elit proident adipisicing elit fugiat ex ullamco dolore excepteur excepteur labore laborum sunt ipsum proident magna ex voluptate laborum voluptate sint proident eu reprehenderit non excepteur quis eiusmod.' + answer : 'Reprehenderit anim consectetur anim dolor magna consequat excepteur tempor enim duis magna proident ullamco aute voluptate elit laborum mollit labore id ex lorem est mollit do qui ex labore nulla.\n\nUt proident elit proident adipisicing elit fugiat ex ullamco dolore excepteur excepteur labore laborum sunt ipsum proident magna ex voluptate laborum voluptate sint proident eu reprehenderit non excepteur quis eiusmod.', }, { id : 'b3917466-aa51-4293-9d5b-120b0ce6635c', categoryId: 'bea49ee0-26da-46ad-97be-116cd7ab416d', question : 'Rating or review removal policy', - answer : 'Ipsum officia mollit qui laboris sunt amet aliquip cupidatat minim non elit commodo eiusmod labore mollit pariatur aute reprehenderit ullamco occaecat enim pariatur aute amet occaecat incididunt irure ad ut.\n\nIncididunt cupidatat pariatur magna sint sit culpa ad cupidatat cillum exercitation consequat minim pariatur consectetur aliqua non adipisicing magna ad nulla ea do est nostrud eu aute id occaecat ut.' + answer : 'Ipsum officia mollit qui laboris sunt amet aliquip cupidatat minim non elit commodo eiusmod labore mollit pariatur aute reprehenderit ullamco occaecat enim pariatur aute amet occaecat incididunt irure ad ut.\n\nIncididunt cupidatat pariatur magna sint sit culpa ad cupidatat cillum exercitation consequat minim pariatur consectetur aliqua non adipisicing magna ad nulla ea do est nostrud eu aute id occaecat ut.', }, { id : '2f2fb472-24d4-4a00-aa80-d513fa6c059c', categoryId: 'bea49ee0-26da-46ad-97be-116cd7ab416d', question : 'Purchasing supported and unsupported items', - answer : 'Dolor cupidatat do qui in tempor dolor magna magna ut dolor est aute veniam consectetur enim sunt sunt duis magna magna aliquip id reprehenderit dolor in veniam ullamco incididunt occaecat.\n\nId duis pariatur anim cillum est sint non veniam voluptate deserunt anim nostrud duis voluptate occaecat elit ut veniam voluptate do qui est ad velit irure sint lorem ullamco aliqua.' + answer : 'Dolor cupidatat do qui in tempor dolor magna magna ut dolor est aute veniam consectetur enim sunt sunt duis magna magna aliquip id reprehenderit dolor in veniam ullamco incididunt occaecat.\n\nId duis pariatur anim cillum est sint non veniam voluptate deserunt anim nostrud duis voluptate occaecat elit ut veniam voluptate do qui est ad velit irure sint lorem ullamco aliqua.', }, { id : '2fffd148-7644-466d-8737-7dde88c54154', categoryId: 'bea49ee0-26da-46ad-97be-116cd7ab416d', question : 'I haven\'t received a response from the author', - answer : 'Velit commodo pariatur ullamco elit sunt dolor quis irure amet tempor laboris labore tempor nisi consectetur ea proident dolore culpa nostrud esse amet commodo do esse laboris laboris in magna.\n\nAute officia labore minim laborum irure cupidatat occaecat laborum ex labore ipsum aliqua cillum do exercitation esse et veniam excepteur mollit incididunt ut qui irure culpa qui deserunt nostrud tempor.' + answer : 'Velit commodo pariatur ullamco elit sunt dolor quis irure amet tempor laboris labore tempor nisi consectetur ea proident dolore culpa nostrud esse amet commodo do esse laboris laboris in magna.\n\nAute officia labore minim laborum irure cupidatat occaecat laborum ex labore ipsum aliqua cillum do exercitation esse et veniam excepteur mollit incididunt ut qui irure culpa qui deserunt nostrud tempor.', }, { id : '24a1034e-b4d6-4a86-a1ea-90516e87e810', categoryId: 'bea49ee0-26da-46ad-97be-116cd7ab416d', question : 'Responding to requests outside of support', - answer : 'Exercitation eu in officia lorem commodo pariatur pariatur nisi consectetur qui elit in aliquip et ullamco duis nostrud aute laborum laborum est dolor non qui amet deserunt ex et aliquip.\n\nProident consectetur eu amet minim labore anim ad non aute duis eiusmod sit ad elit magna do aliquip aliqua laborum dolor laboris ea irure duis mollit fugiat tempor eu est.' - } + answer : 'Exercitation eu in officia lorem commodo pariatur pariatur nisi consectetur qui elit in aliquip et ullamco duis nostrud aute laborum laborum est dolor non qui amet deserunt ex et aliquip.\n\nProident consectetur eu amet minim labore anim ad non aute duis eiusmod sit ad elit magna do aliquip aliqua laborum dolor laboris ea irure duis mollit fugiat tempor eu est.', + }, ]; export const guideCategories = [ { id : '0ee72de7-49c0-4880-9e89-b72a4edd6a81', slug : 'getting-started', - title: 'Getting Started' + title: 'Getting Started', }, { id : '07b8421f-20bf-45b6-90ee-169ebe3a5bcc', slug : 'projects', - title: 'Projects' + title: 'Projects', }, { id : 'c88a1f54-360a-4b9b-a54b-2f92b7a1f63b', slug : 'settings', - title: 'Settings' + title: 'Settings', }, { id : '7b25b38c-1ab3-4474-8569-65b3ea232add', slug : 'payments', - title: 'Payments' + title: 'Payments', }, { id : '41fdf071-aec4-49de-9dd4-b4f746596928', slug : 'your-account', - title: 'Your Account' - } + title: 'Your Account', + }, ]; export const guides = [ // Getting started @@ -241,28 +241,28 @@ export const guides = [ categoryId: '0ee72de7-49c0-4880-9e89-b72a4edd6a81', slug : 'what-is-this-app', title : 'What is this app?', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : '7643d388-12ab-4025-a2f1-5045ac7b1c4c', categoryId: '0ee72de7-49c0-4880-9e89-b72a4edd6a81', slug : 'start-using-the-app', title : 'Start using the app', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : '1fecee67-c4b4-413a-b0f2-949dcab73249', categoryId: '0ee72de7-49c0-4880-9e89-b72a4edd6a81', slug : 'signing-in-to-the-dashboard', title : 'Signing in to the dashboard', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : 'd2e2ea8f-5298-4ba2-898b-afc60c064bba', categoryId: '0ee72de7-49c0-4880-9e89-b72a4edd6a81', slug : 'navigating-within-the-app', title : 'Navigating within the app', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, // Projects { @@ -270,56 +270,56 @@ export const guides = [ categoryId: '07b8421f-20bf-45b6-90ee-169ebe3a5bcc', slug : 'creating-a-project', title : 'Creating a project', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : '9ec3f4b9-a355-4f57-9e93-efa8611cc1c9', categoryId: '07b8421f-20bf-45b6-90ee-169ebe3a5bcc', slug : 'renaming-a-project', title : 'Renaming a project', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : '1bc6e7f9-b046-4f4f-9b18-741c9d5429f6', categoryId: '07b8421f-20bf-45b6-90ee-169ebe3a5bcc', slug : 'displaying-a-project', title : 'Displaying a project', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : 'a005d5f1-938d-45c5-8ed4-d0cf8d02e533', categoryId: '07b8421f-20bf-45b6-90ee-169ebe3a5bcc', slug : 'deleting-a-project', title : 'Deleting a project', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : '43837279-dce2-4dc0-beac-30b5ba829f14', categoryId: '07b8421f-20bf-45b6-90ee-169ebe3a5bcc', slug : 'changing-the-visibility-of-a-project', title : 'Changing the visibility of a project', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : '4cf5a435-eaa0-463c-8d2b-efde193c7fb3', categoryId: '07b8421f-20bf-45b6-90ee-169ebe3a5bcc', slug : 'adding-media-to-a-project', title : 'Adding media to a project', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : 'cd3fb87e-e138-4721-9e29-a5c751bfd949', categoryId: '07b8421f-20bf-45b6-90ee-169ebe3a5bcc', slug : 'removing-a-media-from-a-project', title : 'Removing a media from a project', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : 'f26205c6-882e-4713-b067-c73758b45551', categoryId: '07b8421f-20bf-45b6-90ee-169ebe3a5bcc', slug : 'cropping-a-media', title : 'Cropping a media', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, // Settings { @@ -327,35 +327,35 @@ export const guides = [ categoryId: 'c88a1f54-360a-4b9b-a54b-2f92b7a1f63b', slug : 'general-settings', title : 'General settings', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : '98de7d4a-2ca2-4d47-bbe6-083ed26467db', categoryId: 'c88a1f54-360a-4b9b-a54b-2f92b7a1f63b', slug : 'project-settings', title : 'Project settings', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : '145f497c-1fdb-47b5-a6c1-31f856403571', categoryId: 'c88a1f54-360a-4b9b-a54b-2f92b7a1f63b', slug : 'media-settings', title : 'Media settings', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : '0a007f59-a5ea-4875-991d-f22d6fd69898', categoryId: 'c88a1f54-360a-4b9b-a54b-2f92b7a1f63b', slug : 'domain-settings', title : 'Domain settings', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : '4707c8eb-31f9-415c-bd07-86f226c75feb', categoryId: 'c88a1f54-360a-4b9b-a54b-2f92b7a1f63b', slug : 'privacy-settings', title : 'Privacy settings', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, // Payments { @@ -363,28 +363,28 @@ export const guides = [ categoryId: '7b25b38c-1ab3-4474-8569-65b3ea232add', slug : 'subscriptions', title : 'Subscriptions', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : '3d7150d2-feb3-4f20-bd3f-8e525cef77a4', categoryId: '7b25b38c-1ab3-4474-8569-65b3ea232add', slug : 'discounts', title : 'Discounts', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : '79239bc4-4fb5-428b-b30d-62c5289b061d', categoryId: '7b25b38c-1ab3-4474-8569-65b3ea232add', slug : 'payment-methods', title : 'Payment methods', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : '8d68c5e6-5404-450c-9d5f-d9800c164041', categoryId: '7b25b38c-1ab3-4474-8569-65b3ea232add', slug : 'overdue-payments', title : 'Overdue payments', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, // Your account { @@ -392,43 +392,43 @@ export const guides = [ categoryId: '41fdf071-aec4-49de-9dd4-b4f746596928', slug : 'changing-your-username', title : 'Changing your username', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : '0a9c3321-1db3-42bc-92b6-7e257368123e', categoryId: '41fdf071-aec4-49de-9dd4-b4f746596928', slug : 'changing-your-email', title : 'Changing your email', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : '80ba5106-5f9c-4ed7-b8f3-8544035e3095', categoryId: '41fdf071-aec4-49de-9dd4-b4f746596928', slug : 'changing-your-password', title : 'Changing your password', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : 'db2e97a6-d657-4e9d-9b6c-5f213ea3301c', categoryId: '41fdf071-aec4-49de-9dd4-b4f746596928', slug : 'closing-your-account', title : 'Closing your account', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : '3374c887-2fb7-4223-9f40-7f2cbbf76795', categoryId: '41fdf071-aec4-49de-9dd4-b4f746596928', slug : 'account-limits', title : 'Account limits', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', }, { id : 'cc65f92a-7d46-4557-b15b-6f8f59a60576', categoryId: '41fdf071-aec4-49de-9dd4-b4f746596928', slug : 'two-factor-authentication', title : 'Two factor authentication', - subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt' - } + subtitle : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt', + }, ]; // Since we only have one content for the demo, we will diff --git a/src/app/mock-api/apps/mailbox/api.ts b/src/app/mock-api/apps/mailbox/api.ts index 3e7e1eec..28eb9d2a 100644 --- a/src/app/mock-api/apps/mailbox/api.ts +++ b/src/app/mock-api/apps/mailbox/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { assign, cloneDeep } from 'lodash-es'; import { FuseMockApiService, FuseMockApiUtils } from '@fuse/lib/mock-api'; import { filters as filtersData, folders as foldersData, labels as labelsData, mails as mailsData, settings as settingsData } from 'app/mock-api/apps/mailbox/data'; +import { assign, cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class MailboxMockApi { private _filters: any[] = filtersData; @@ -44,8 +42,8 @@ export class MailboxMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/mailbox/settings') - .reply(({request}) => { - + .reply(({request}) => + { // Get the settings const settings = cloneDeep(request.body.settings); @@ -61,13 +59,13 @@ export class MailboxMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/mailbox/folders') - .reply(() => { - + .reply(() => + { let count = 0; // Iterate through the folders - this._folders.forEach((folder) => { - + this._folders.forEach((folder) => + { // Get the mails of this folder const mails = this._mails.filter(mail => mail.folder === folder.id); @@ -87,8 +85,8 @@ export class MailboxMockApi else { // Go through the mails and count the unread ones - mails.forEach((mail) => { - + mails.forEach((mail) => + { if ( mail.unread ) { count++; @@ -126,8 +124,8 @@ export class MailboxMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/apps/mailbox/label') - .reply(({request}) => { - + .reply(({request}) => + { // Get the label const label = cloneDeep(request.body.label); @@ -136,9 +134,9 @@ export class MailboxMockApi // Generate a slug label.slug = label.title.toLowerCase() - .replace(/ /g, '-') - .replace(/[-]+/g, '-') - .replace(/[^\w-]+/g, ''); + .replace(/ /g, '-') + .replace(/[-]+/g, '-') + .replace(/[^\w-]+/g, ''); // Check if the slug is being used and update it if necessary const originalSlug = label.slug; @@ -170,8 +168,8 @@ export class MailboxMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/mailbox/label') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id and label const id = request.body.id; const label = cloneDeep(request.body.label); @@ -180,15 +178,15 @@ export class MailboxMockApi let updatedLabel = null; // Find the label and update it - this._labels.forEach((item, index, labels) => { - + this._labels.forEach((item, index, labels) => + { if ( item.id === id ) { // Update the slug label.slug = label.title.toLowerCase() - .replace(/ /g, '-') - .replace(/[-]+/g, '-') - .replace(/[^\w-]+/g, ''); + .replace(/ /g, '-') + .replace(/[-]+/g, '-') + .replace(/[^\w-]+/g, ''); // Update the label labels[index] = assign({}, labels[index], label); @@ -207,8 +205,8 @@ export class MailboxMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onDelete('api/apps/mailbox/label') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id const id = request.params.get('id'); @@ -220,7 +218,8 @@ export class MailboxMockApi const mailsWithLabel = this._mails.filter(mail => mail.labels.indexOf(id) > -1); // Iterate through them and remove the label - mailsWithLabel.forEach((mail) => { + mailsWithLabel.forEach((mail) => + { mail.labels.splice(mail.labels.indexOf(id), 1); }); @@ -233,8 +232,8 @@ export class MailboxMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/mailbox/mails', 625) - .reply(({request}) => { - + .reply(({request}) => + { // First, decide if mails are requested by folder, filter or label const byFolder = request.params.get('folder'); const byFilter = request.params.get('filter'); @@ -244,8 +243,8 @@ export class MailboxMockApi let mails: any[] | null = cloneDeep(this._mails); // Filter the mails depending on the requested by type - mails = mails.filter((mail) => { - + mails = mails.filter((mail) => + { if ( byFolder ) { return mail.folder === this._folders.find(folder => folder.slug === byFolder).id; @@ -266,7 +265,8 @@ export class MailboxMockApi mails.sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime()); // Figure out the cc and bcc counts - mails.forEach((mail) => { + mails.forEach((mail) => + { mail.ccCount = mail.cc ? mail.cc.length : 0; mail.bccCount = mail.bcc ? mail.bcc.length : 0; }); @@ -294,7 +294,7 @@ export class MailboxMockApi { mails = null; pagination = { - lastPage + lastPage, }; } else @@ -309,7 +309,7 @@ export class MailboxMockApi currentPage : page, lastPage : lastPage, startIndex : begin, - endIndex : end - 1 + endIndex : end - 1, }; } @@ -318,8 +318,8 @@ export class MailboxMockApi 200, { mails, - pagination - } + pagination, + }, ]; }); @@ -328,8 +328,8 @@ export class MailboxMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/mailbox/mail') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id from the params const id = request.params.get('id'); @@ -341,7 +341,7 @@ export class MailboxMockApi return [ 200, - mail + mail, ]; }); @@ -350,8 +350,8 @@ export class MailboxMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/mailbox/mail') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id and mail const id = request.body.id; const mail = cloneDeep(request.body.mail); @@ -360,8 +360,8 @@ export class MailboxMockApi let updatedMail = null; // Find the mail and update it - this._mails.forEach((item, index, mails) => { - + this._mails.forEach((item, index, mails) => + { if ( item.id === id ) { // Update the mail diff --git a/src/app/mock-api/apps/mailbox/data.ts b/src/app/mock-api/apps/mailbox/data.ts index af58421a..7bcb9aad 100644 --- a/src/app/mock-api/apps/mailbox/data.ts +++ b/src/app/mock-api/apps/mailbox/data.ts @@ -9,87 +9,87 @@ export const folders = [ id : '7c004a19-4506-48ef-93ab-f16381302e3b', title: 'Inbox', slug : 'inbox', - icon : 'heroicons_outline:inbox' + icon : 'heroicons_outline:inbox', }, { id : '1ee2ea29-9a1f-4c27-b4d2-5e465703b6a0', title: 'Sent', slug : 'sent', - icon : 'heroicons_outline:paper-airplane' + icon : 'heroicons_outline:paper-airplane', }, { id : 'fbdc8e79-a0c4-4a27-bc98-9c81ee7a86e5', title: 'Drafts', slug : 'drafts', - icon : 'heroicons_outline:document' + icon : 'heroicons_outline:document', }, { id : '0197c436-2ef3-424d-b546-8b7f49186e15', title: 'Spam', slug : 'spam', - icon : 'heroicons_outline:exclamation' + icon : 'heroicons_outline:exclamation-triangle', }, { id : '2fa74637-d362-4fd2-9a88-f7195a88bdde', title: 'Trash', slug : 'trash', - icon : 'heroicons_outline:trash' - } + icon : 'heroicons_outline:trash', + }, ]; export const filters = [ { id : 'de1b41f6-6839-4f1b-9d2c-07e55f6f8f82', title: 'Starred', slug : 'starred', - icon : 'heroicons_outline:star' + icon : 'heroicons_outline:star', }, { id : '71bba1ec-a90e-4a71-9932-4bab0a99aa1c', title: 'Important', slug : 'important', - icon : 'heroicons_outline:exclamation-circle' - } + icon : 'heroicons_outline:exclamation-circle', + }, ]; export const labels = [ { id : 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', title: 'Personal', slug : 'personal', - color: 'blue' + color: 'blue', }, { id : '745cf30e-ca84-47a1-a553-b70eb630d8e7', title: 'Work', slug : 'work', - color: 'indigo' + color: 'indigo', }, { id : '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', title: 'Payments', slug : 'payments', - color: 'red' + color: 'red', }, { id : 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', title: 'Invoices', slug : 'invoices', - color: 'teal' + color: 'teal', }, { id : '184cd689-4ee4-47cf-9f8a-12233d614326', title: 'Accounts', slug : 'accounts', - color: 'purple' + color: 'purple', }, { id : 'b67fc437-6118-4ec8-a3c7-9320b828e3fc', title: 'Forums', slug : 'forums', - color: 'green' - } + color: 'green', + }, ]; export const settings = { - messageLayout: 'right' + messageLayout: 'right', }; export const mails = [ { @@ -97,16 +97,19 @@ export const mails = [ type : 'mail', from : { avatar : 'assets/images/avatars/female-01.jpg', - contact: 'Myra Dudley ' + contact: 'Myra Dudley ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], bcc : [ - 'Julie T. ' + 'Julie T. ', ], - date : now.set({hour: 20, minute: 13}).toISO(), // Today - 20:13 + date : now.set({ + hour : 20, + minute: 13, + }).toISO(), // Today - 20:13 subject : 'Please review and sign the attached agreement', content : 'Hi Brian,\n\nUllamco deserunt commodo esse deserunt deserunt quis eiusmod. Laborum sint excepteur non sit eiusmod sunt voluptate ipsum nisi ullamco magna. Lorem consectetur est dolor minim exercitation deserunt quis duis fugiat ipsum incididunt non. Anim aute ipsum cupidatat nisi occaecat quis sit nisi labore labore dolore do. Pariatur veniam culpa quis veniam nisi exercitation veniam ut. Quis do sint proident fugiat ad.\n\nNon id nisi commodo veniam. Veniam veniam minim ea laborum voluptate id duis deserunt. Anim ut ut amet et ullamco nulla fugiat id incididunt adipisicing excepteur amet. Ex amet eu cillum non fugiat velit dolore. Incididunt duis est eu et ex sunt consectetur cillum nisi aute proident.\n\nIncididunt excepteur laborum quis sit. Ex quis officia incididunt proident aliqua adipisicing. Irure ad in Lorem laborum deserunt nulla consequat. Pariatur excepteur exercitation cupidatat aute.\n\nCheers!\nMyra Dudley', attachments: [ @@ -115,22 +118,22 @@ export const mails = [ name : 'mystery-forest.jpg', size : 15539, preview : 'mystery-forest_preview.jpg', - downloadUrl: '' + downloadUrl: '', }, { type : 'application/pdf', name : 'montly-invoice.pdf', size : 243449, preview : 'pdf', - downloadUrl: '' + downloadUrl: '', }, { type : 'image/jpeg', name : 'birds-eye-sydney.jpg', size : 14294, preview : 'birds-eye-sydney_preview.jpg', - downloadUrl: '' - } + downloadUrl: '', + }, ], starred : true, important : true, @@ -139,18 +142,21 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : 'c531bc01-8a9e-481b-adf8-95303a6938c5', type : 'mail', from : { avatar : 'assets/images/avatars/male-01.jpg', - contact: 'Shaw Murray ' + contact: 'Shaw Murray ', }, to : 'me ', - date : now.set({hour: 18, minute: 56}).toISO(), // Today - 18:56 + date : now.set({ + hour : 18, + minute: 56, + }).toISO(), // Today - 18:56 subject : 'Delivery address confirmation', content : 'Dear Brian,\n\nDolore consectetur est cupidatat ipsum reprehenderit anim quis veniam anim ipsum incididunt exercitation. Velit exercitation culpa eiusmod dolore labore irure. Duis esse quis elit pariatur labore occaecat esse voluptate dolore deserunt cillum irure. Aute qui nulla est exercitation qui sunt anim aliquip. Ex ad est velit laboris exercitation ea ut pariatur. Amet reprehenderit ut est id sunt commodo anim et est voluptate et.\n\nMagna aliqua incididunt non ut voluptate nulla aliqua exercitation elit consectetur cupidatat. Proident in reprehenderit occaecat laborum non eu amet id aliqua nulla dolore. Eiusmod quis adipisicing quis cupidatat labore.\n\nReprehenderit nulla ullamco est dolore ex irure sunt nostrud reprehenderit quis dolor. Tempor nostrud elit elit aute ut ut eiusmod laboris excepteur consequat ex. Velit id ex ullamco in. Ea elit Lorem Lorem aliquip amet consequat irure nisi qui cillum incididunt. Commodo aute Lorem eiusmod veniam consectetur aute eu dolore. Ea magna incididunt laboris quis quis et tempor dolore dolore ut nisi.\n\nBest Regards,\nShaw Murray', attachments: [], @@ -159,21 +165,24 @@ export const mails = [ unread : true, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : 'ebc80fc3-6c56-4cae-a45a-771b15ced076', type : 'mail', from : { avatar : 'assets/images/avatars/male-02.jpg', - contact: 'Sanders Beck ' + contact: 'Sanders Beck ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], - date : now.set({hour: 14, minute: 35}).toISO(), // Today - 14:35 + date : now.set({ + hour : 14, + minute: 35, + }).toISO(), // Today - 14:35 subject : 'Insurance documents', content : 'Hi Brian,\n\nAliquip ipsum sunt sit sunt velit velit pariatur. Nisi incididunt eiusmod consequat ut cillum eu exercitation. Enim proident nostrud aute in. Non irure nisi duis aliquip commodo proident veniam adipisicing id velit. Enim magna Lorem fugiat tempor.\n\nCommodo non nulla incididunt irure voluptate. Fugiat culpa cillum aute quis. Voluptate veniam adipisicing dolor sint. Proident eiusmod quis duis ipsum sit eu.\n\nDeserunt reprehenderit adipisicing reprehenderit ipsum. Laborum in veniam amet occaecat tempor esse enim dolore elit sit quis adipisicing. Aute occaecat eiusmod enim cupidatat sunt.\n\nBest Regards,\nSanders Beck', attachments: [], @@ -181,17 +190,20 @@ export const mails = [ important : false, unread : false, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', - labels : [] + labels : [], }, { id : '981c5ffb-7c88-47a8-b60f-f16150eeae9d', type : 'mail', from : { avatar : 'assets/images/avatars/male-03.jpg', - contact: 'Zimmerman Gould ' + contact: 'Zimmerman Gould ', }, to : 'me ', - date : now.minus({day: 1}).set({hour: 22, minute: 26}).toISO(), // Yesterday - 22:26 + date : now.minus({day: 1}).set({ + hour : 22, + minute: 26, + }).toISO(), // Yesterday - 22:26 subject : 'Previous clients and their invoices', content : 'Dear Brian,\n\nDo aute eu dolore officia laborum id anim fugiat incididunt nulla esse proident. Veniam veniam nostrud ut nisi magna ipsum ea eiusmod esse velit id aliqua nisi irure. Amet laborum fugiat deserunt est. Quis amet veniam anim nostrud irure cillum voluptate consequat qui cupidatat minim occaecat elit enim. Ut ut incididunt cillum sit sit irure culpa. Culpa exercitation minim velit eu. Ipsum exercitation excepteur et ad do sit.\n\nVeniam cupidatat officia aliqua ad excepteur cillum laboris deserunt esse laboris adipisicing reprehenderit. Reprehenderit anim consectetur pariatur labore do in irure. Ad consequat commodo non pariatur occaecat. Eiusmod cillum non anim consequat culpa nisi. Est nulla ut sint qui deserunt anim. Excepteur qui occaecat dolore nulla occaecat cupidatat aute sit laborum magna.\n\nConsequat aliqua commodo officia excepteur. Ex consectetur elit dolor exercitation ullamco amet laboris. Deserunt nulla non proident est pariatur reprehenderit reprehenderit. Ea nisi id aliqua cillum velit tempor ipsum dolor proident cillum eiusmod et ipsum anim. Elit non quis mollit enim Lorem cupidatat et labore. Laboris cillum reprehenderit aute veniam aliqua esse officia proident deserunt. Eiusmod laboris ullamco amet consectetur amet.\n\nKind Regards,\nZimmerman Gould', attachments: [], @@ -199,20 +211,23 @@ export const mails = [ important : false, unread : true, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', - labels : [] + labels : [], }, { id : 'a8d0645d-ac30-4f1a-a163-06e949120289', type : 'mail', from : { avatar : 'assets/images/avatars/female-02.jpg', - contact: 'Karina Alford ' + contact: 'Karina Alford ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], - date : now.minus({day: 1}).set({hour: 20, minute: 5}).toISO(), // Yesterday - 20:05 + date : now.minus({day: 1}).set({ + hour : 20, + minute: 5, + }).toISO(), // Yesterday - 20:05 subject : 'Quote for a new web design project', content : 'Hey Brian,\n\nNisi officia aliqua ex non cupidatat sint ullamco. Irure pariatur ullamco consequat ut eu anim. Ut ad elit pariatur est non sunt. Tempor dolore quis commodo dolore duis officia laboris nostrud sint. Exercitation ullamco laboris eiusmod culpa ut.\n\nAute Lorem aute occaecat dolore tempor ipsum proident fugiat deserunt non incididunt velit nulla. Dolor pariatur tempor amet qui eu exercitation. Tempor minim culpa proident nisi esse ea. Enim est fugiat aliqua aliqua aute velit laborum cupidatat irure nisi dolor deserunt aliqua.\n\nFugiat ut dolor tempor sunt aliquip dolor nostrud. Consequat incididunt ullamco cillum dolore excepteur deserunt est dolor aliquip irure do mollit officia. Consectetur cillum et non minim nisi. Esse quis sunt deserunt elit sint velit tempor et ullamco laboris officia excepteur. Veniam ad ut aliqua sunt consequat reprehenderit nostrud non in duis aute quis pariatur. Occaecat mollit anim non pariatur. Ad do ad id fugiat et culpa laborum esse cupidatat voluptate elit ut magna voluptate.\n\nBest Regards,\nKarina Alford', attachments: [], @@ -220,20 +235,23 @@ export const mails = [ important : true, unread : true, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', - labels : [] + labels : [], }, { id : 'fd117ed9-1285-4aca-8c1c-5c96e732c558', type : 'mail', from : { avatar : 'assets/images/avatars/female-03.jpg', - contact: 'Carla Gray ' + contact: 'Carla Gray ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], - date : now.minus({day: 1}).set({hour: 16, minute: 43}).toISO(), // Yesterday - 16:43 + date : now.minus({day: 1}).set({ + hour : 16, + minute: 43, + }).toISO(), // Yesterday - 16:43 subject : 'Nulla culpa consectetur aute ex eu irure incididunt aliqua cupidatat sit cillum fugiat anim ea', content : 'Hey Brian,\n\nDo pariatur occaecat tempor duis. Aute occaecat non consequat ut occaecat sint. Cillum reprehenderit elit nisi incididunt in labore pariatur. Labore mollit pariatur nulla officia esse anim exercitation nisi commodo culpa laborum amet nisi.\n\nSunt culpa mollit nostrud excepteur adipisicing sit do. Cillum voluptate amet do sit quis aliquip ea est qui elit. Veniam exercitation sit reprehenderit labore officia in labore excepteur eiusmod exercitation.\n\nEnim nostrud est non esse reprehenderit in ea eiusmod. Duis incididunt amet aliquip dolor esse. Nostrud qui commodo in non nostrud proident enim cupidatat. Aute sunt aliqua excepteur qui occaecat nulla incididunt commodo adipisicing ipsum.\n\nKind Regards,\nCarla Gray', attachments: [], @@ -241,21 +259,24 @@ export const mails = [ important : false, unread : false, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', - labels : [] + labels : [], }, { id : 'a307d83b-d256-4af5-948a-148878a7eaad', type : 'mail', from : { avatar : 'assets/images/avatars/male-04.jpg', - contact: 'Rice Cash ' + contact: 'Rice Cash ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], - date : now.minus({day: 2}).set({hour: 11, minute: 28}).toISO(), // 2 days ago - 11:28 + date : now.minus({day: 2}).set({ + hour : 11, + minute: 28, + }).toISO(), // 2 days ago - 11:28 subject : 'Ipsum laborum minim aute labore in', content : 'Dear Brian,\n\nLaboris non ad et aute sint aliquip mollit voluptate velit dolore magna fugiat ex. Voluptate amet aute deserunt tempor non laboris cillum. Voluptate veniam magna sint magna proident exercitation adipisicing aute id ad tempor reprehenderit magna ullamco. Laborum Lorem anim elit aliquip ut aute minim fugiat aliquip. Eiusmod est et occaecat dolore anim laborum ullamco ipsum commodo.\n\nCommodo amet veniam nostrud mollit quis sint qui nulla elit esse excepteur ullamco esse magna. Nisi duis aute est in mollit irure enim tempor in. Mollit ipsum laboris et velit ex excepteur pariatur. Cillum veniam id ipsum magna. Laborum duis aliquip ut ipsum ad aliqua id sit pariatur consequat sit. Sit nulla nulla ullamco nulla eiusmod et in dolore sint reprehenderit cupidatat.\n\nIpsum mollit cupidatat magna occaecat labore est fugiat est fugiat fugiat nulla labore laboris. Eiusmod aute adipisicing pariatur aliquip sint enim anim in dolore enim aute culpa nulla. Minim magna enim officia ipsum elit quis do velit deserunt Lorem veniam excepteur.\n\nKind Regards,\nRice Cash', attachments: [ @@ -264,41 +285,44 @@ export const mails = [ name : 'lake-of-carezza.png', size : 13071, preview : 'lake-of-carrezza_preview.png', - downloadUrl: '' + downloadUrl: '', }, { type : 'image/jpeg', name : 'birds-eye-sydney.jpg', size : 14294, preview : 'birds-eye-sydney_preview.jpg', - downloadUrl: '' + downloadUrl: '', }, { type : 'image/png', name : 'yosemite-national-park.png', size : 14242, preview : 'yosemite-national-park_preview.png', - downloadUrl: '' - } + downloadUrl: '', + }, ], starred : true, important : true, unread : true, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', - labels : [] + labels : [], }, { id : '67664fa3-3a87-4ab8-8c2c-dfd2b1de4c14', type : 'mail', from : { avatar : 'assets/images/avatars/female-04.jpg', - contact: 'Elaine Ortiz ' + contact: 'Elaine Ortiz ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], - date : now.minus({day: 2}).set({hour: 7, minute: 12}).toISO(), // 2 days ago - 07:12 + date : now.minus({day: 2}).set({ + hour : 7, + minute: 12, + }).toISO(), // 2 days ago - 07:12 subject : 'Ipsum fugiat ad deserunt cillum sunt fugiat', content : 'Hello Brian,\n\nId Lorem laborum eiusmod eiusmod mollit magna dolore. Et commodo officia fugiat dolor aliqua proident mollit ut commodo ullamco. Sunt nulla eu dolor velit velit reprehenderit. Culpa esse veniam fugiat eiusmod id veniam sunt reprehenderit minim mollit. Esse qui ea irure pariatur eu ullamco pariatur ipsum reprehenderit proident mollit proident. Nisi fugiat ut est aliquip nulla in non dolore.\n\nCulpa irure cillum ex fugiat cupidatat eiusmod non. Qui irure velit consectetur minim eu excepteur eiusmod veniam irure ad culpa nisi. Nisi sit nostrud quis ullamco aliquip non consequat sunt reprehenderit velit dolor dolor laboris. Dolore in Lorem consectetur nostrud. Laborum cupidatat exercitation voluptate duis amet. Sunt sint minim do in commodo ipsum commodo ea qui velit deserunt qui anim fugiat.\n\nExercitation et qui consequat incididunt nisi incididunt cupidatat officia in. Sit eiusmod anim aliqua elit. Nisi mollit ut non pariatur enim fugiat sint labore velit nostrud eu. Eiusmod id laboris laboris duis enim aute ipsum in magna. Sit eiusmod amet duis commodo sint et anim ex sunt deserunt dolor incididunt. Eiusmod duis dolore dolor elit occaecat do adipisicing ullamco ex laboris aliqua adipisicing. Labore pariatur aute proident mollit elit commodo labore minim dolore non in cillum.\n\nCheers!\nElaine Ortiz', attachments: [], @@ -310,21 +334,24 @@ export const mails = [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', - 'b2d1e4e7-7cfd-4b51-ae59-217a093df754' - ] + 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', + ], }, { id : 'd5913a7e-25f8-4163-bbf0-81d034163ce7', type : 'mail', from : { avatar : 'assets/images/avatars/male-05.jpg', - contact: 'Fleming Stone ' + contact: 'Fleming Stone ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], - date : now.minus({day: 2}).set({hour: 6, minute: 1}).toISO(), // 2 days ago - 06:01 + date : now.minus({day: 2}).set({ + hour : 6, + minute: 1, + }).toISO(), // 2 days ago - 06:01 subject : 'Deserunt exercitation ut nulla elit Lorem', content : 'Hi Brian,\n\nEst labore sunt sunt Lorem dolore. In excepteur esse proident ut consectetur dolor voluptate laborum veniam pariatur. Excepteur ut veniam sit culpa exercitation qui nulla nulla magna ea in dolore et consequat. Irure minim ad cupidatat amet reprehenderit excepteur incididunt nulla eu et excepteur anim et aliqua.\n\nSint sint Lorem magna est irure sint ea cupidatat fugiat. Occaecat non adipisicing magna magna culpa sit commodo aute ex consequat amet minim esse ut. In nulla eiusmod veniam deserunt in.\n\nIn aute excepteur qui pariatur fugiat. Occaecat velit voluptate proident occaecat ut laboris occaecat pariatur aute dolore do. Ut commodo ipsum est non commodo ut ea qui labore veniam. Occaecat nostrud eu dolor tempor velit excepteur sint occaecat excepteur aliqua aliquip. Magna mollit ea aliquip exercitation do elit ex reprehenderit esse aliqua elit.\n\nKind Regards,\nFleming Stone', attachments: [], @@ -335,18 +362,21 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : 'b099a8e2-ffcc-4ae1-866d-8f8f6bd95ab3', type : 'mail', from : { avatar : 'assets/images/avatars/male-06.jpg', - contact: 'England Wiley ' + contact: 'England Wiley ', }, to : 'me ', - date : now.minus({day: 5}).set({hour: 15, minute: 36}).toISO(), // 5 days ago - 15:36 + date : now.minus({day: 5}).set({ + hour : 15, + minute: 36, + }).toISO(), // 5 days ago - 15:36 subject : 'Minim do reprehenderit dolor ipsum officia magna laborum est anim in fugiat', content : 'Dear Brian,\n\nAd do minim id ad ex sit reprehenderit labore do occaecat fugiat ut enim. Et sunt dolore sint non consequat ut. Esse deserunt nostrud pariatur nulla ullamco nulla sit aliquip culpa sunt ipsum. Ut ad minim qui anim amet aute cupidatat. Est ullamco duis laboris nulla labore incididunt consectetur. Cillum sunt mollit nulla laborum non tempor veniam consequat.\n\nAmet fugiat velit id deserunt pariatur velit laboris consectetur quis officia. Culpa nostrud deserunt nostrud esse labore esse consequat labore fugiat. Nostrud duis ex nulla et do.\n\nPariatur mollit ex adipisicing nostrud nostrud occaecat. Id tempor irure cupidatat duis cillum cupidatat nostrud enim anim. Esse nisi pariatur nisi elit elit sit quis ullamco dolor dolore pariatur est sint. Sint ex aliqua id sunt sunt magna amet ex sit anim. Irure aliquip fugiat ipsum tempor irure nisi Lorem anim sit ullamco. Exercitation nostrud mollit est non enim.\n\nBest Regards,\nEngland Wiley', attachments: [], @@ -357,15 +387,15 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : '7bd21940-3388-479c-b1bc-3ebceb0472d8', type : 'mail', from : { avatar : 'assets/images/avatars/male-07.jpg', - contact: 'Ingram Fowler ' + contact: 'Ingram Fowler ', }, to : 'me ', date : new Date('Sun Jan 07 2018 03:51:20 GMT+0000 (UTC)').toISOString(), @@ -376,14 +406,14 @@ export const mails = [ important : true, unread : true, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', - labels : [] + labels : [], }, { id : '2d105bae-b4e5-4ba3-a40e-e9e2b5cc671a', type : 'mail', from : { avatar : 'assets/images/avatars/female-05.jpg', - contact: 'Diana Walsh ' + contact: 'Diana Walsh ', }, to : 'me ', date : new Date('Fri Jun 29 2018 07:37:52 GMT+0000 (UTC)').toISOString(), @@ -395,22 +425,22 @@ export const mails = [ name : 'yosemite-national-park.png', size : 14242, preview : 'yosemite-national-park_preview.png', - downloadUrl: '' + downloadUrl: '', }, { type : 'application/pdf', name : 'montly-invoice.pdf', size : 243449, preview : 'pdf', - downloadUrl: '' + downloadUrl: '', }, { type : 'image/jpeg', name : 'mystery-forest.jpg', size : 15539, preview : 'mystery-forest_preview.jpg', - downloadUrl: '' - } + downloadUrl: '', + }, ], starred : true, important : false, @@ -420,15 +450,15 @@ export const mails = [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', - 'b2d1e4e7-7cfd-4b51-ae59-217a093df754' - ] + 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', + ], }, { id : '4c3bd79a-6429-466d-b962-8eb09c524969', type : 'mail', from : { avatar : 'assets/images/avatars/male-08.jpg', - contact: 'Mckinney Marsh ' + contact: 'Mckinney Marsh ', }, to : 'me ', date : new Date('Wed Jun 20 2018 15:24:03 GMT+0000 (UTC)').toISOString(), @@ -444,19 +474,19 @@ export const mails = [ '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', - '184cd689-4ee4-47cf-9f8a-12233d614326' - ] + '184cd689-4ee4-47cf-9f8a-12233d614326', + ], }, { id : '770d24d1-1b9b-49ec-bcb4-f6feffc305ff', type : 'mail', from : { avatar : 'assets/images/avatars/male-09.jpg', - contact: 'Meyer Fuller ' + contact: 'Meyer Fuller ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Wed Jan 31 2018 08:17:08 GMT+0000 (UTC)').toISOString(), subject : 'Excepteur sunt ut ipsum ad culpa aliqua quis', @@ -471,19 +501,19 @@ export const mails = [ '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', - '184cd689-4ee4-47cf-9f8a-12233d614326' - ] + '184cd689-4ee4-47cf-9f8a-12233d614326', + ], }, { id : '3e2100de-ca0a-4a8e-a1c5-6c13172333dc', type : 'mail', from : { avatar : 'assets/images/avatars/female-06.jpg', - contact: 'Carolina Wade ' + contact: 'Carolina Wade ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Sat Mar 24 2018 17:50:27 GMT+0000 (UTC)').toISOString(), subject : 'In sunt pariatur sunt sint exercitation', @@ -496,15 +526,15 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : 'e1291d1a-fba6-4b23-b259-dd7c9074e976', type : 'mail', from : { avatar : 'assets/images/avatars/male-10.jpg', - contact: 'Graves Huber ' + contact: 'Graves Huber ', }, to : 'me ', date : new Date('Sun Mar 25 2018 02:46:44 GMT+0000 (UTC)').toISOString(), @@ -516,15 +546,15 @@ export const mails = [ unread : false, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : '7cba834c-3011-4897-be7d-ee43bbe69114', type : 'mail', from : { avatar : 'assets/images/avatars/male-11.jpg', - contact: 'Tucker Santiago ' + contact: 'Tucker Santiago ', }, to : 'me ', date : new Date('Mon Sep 17 2018 14:41:42 GMT+0000 (UTC)').toISOString(), @@ -540,20 +570,20 @@ export const mails = [ '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', - '184cd689-4ee4-47cf-9f8a-12233d614326' - ] + '184cd689-4ee4-47cf-9f8a-12233d614326', + ], }, { id : 'd0de071d-2d72-4e0f-b903-79ca6ade9dbd', type : 'mail', from : { avatar : 'assets/images/avatars/female-07.jpg', - contact: 'Becky Cain ' + contact: 'Becky Cain ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Fri Nov 30 2018 09:14:15 GMT+0000 (UTC)').toISOString(), subject : 'Exercitation amet laborum officia nulla nulla adipisicing mollit culpa eiusmod irure deserunt voluptate laborum', @@ -564,42 +594,42 @@ export const mails = [ name : 'mystery-forest.jpg', size : 15539, preview : 'mystery-forest_preview.jpg', - downloadUrl: '' + downloadUrl: '', }, { type : 'image/png', name : 'lake-of-carezza.png', size : 13071, preview : 'lake-of-carrezza_preview.png', - downloadUrl: '' + downloadUrl: '', }, { type : 'image/png', name : 'yosemite-national-park.png', size : 14242, preview : 'yosemite-national-park_preview.png', - downloadUrl: '' - } + downloadUrl: '', + }, ], starred : false, important : false, unread : true, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : 'd39c93b9-10d3-426f-a205-0ee5b30cd983', type : 'mail', from : { avatar : 'assets/images/avatars/male-12.jpg', - contact: 'Miller Vazquez ' + contact: 'Miller Vazquez ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Sun May 06 2018 19:35:14 GMT+0000 (UTC)').toISOString(), subject : 'Ullamco eu nulla labore occaecat', @@ -612,19 +642,19 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : '4e881b4f-bf47-472f-a1fe-f787a66d37dd', type : 'mail', from : { avatar : 'assets/images/avatars/male-13.jpg', - contact: 'Delgado Stevens ' + contact: 'Delgado Stevens ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Wed Jan 17 2018 09:56:25 GMT+0000 (UTC)').toISOString(), subject : 'Ut velit occaecat nostrud ullamco non excepteur velit ipsum ut', @@ -638,15 +668,15 @@ export const mails = [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', - 'b2d1e4e7-7cfd-4b51-ae59-217a093df754' - ] + 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', + ], }, { id : '5dad8b60-8d98-4215-88b8-41158e167686', type : 'mail', from : { avatar : 'assets/images/avatars/female-08.jpg', - contact: 'Concepcion Cleveland ' + contact: 'Concepcion Cleveland ', }, to : 'me ', date : new Date('Fri Aug 17 2018 04:41:26 GMT+0000 (UTC)').toISOString(), @@ -660,19 +690,19 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : 'eeccc250-8952-47e1-adff-31847289b4dd', type : 'mail', from : { avatar : 'assets/images/avatars/female-09.jpg', - contact: 'Robin Berger ' + contact: 'Robin Berger ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Thu Apr 26 2018 20:55:18 GMT+0000 (UTC)').toISOString(), subject : 'Reprehenderit ipsum aute cupidatat qui exercitation dolore voluptate labore veniam consequat quis', @@ -683,19 +713,19 @@ export const mails = [ unread : true, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : 'e8b006ad-e140-4fea-bb32-cc346e66eb93', type : 'mail', from : { avatar : 'assets/images/avatars/female-10.jpg', - contact: 'Lynnette Burton ' + contact: 'Lynnette Burton ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Fri Nov 02 2018 16:15:50 GMT+0000 (UTC)').toISOString(), subject : 'Consectetur deserunt qui ex occaecat dolore officia cillum magna magna adipisicing elit magna velit', @@ -705,18 +735,18 @@ export const mails = [ important : true, unread : false, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', - labels : [] + labels : [], }, { id : 'c6fc1d86-4a1f-4071-9c75-618fe2d853aa', type : 'mail', from : { avatar : 'assets/images/avatars/female-11.jpg', - contact: 'Carmella Rios ' + contact: 'Carmella Rios ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Thu Jul 05 2018 14:26:57 GMT+0000 (UTC)').toISOString(), subject : 'Proident dolore minim deserunt commodo elit aute laborum ullamco laboris anim consequat', @@ -728,15 +758,15 @@ export const mails = [ folder : '7c004a19-4506-48ef-93ab-f16381302e3b', labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', - '745cf30e-ca84-47a1-a553-b70eb630d8e7' - ] + '745cf30e-ca84-47a1-a553-b70eb630d8e7', + ], }, { id : 'c062a90f-52e9-4102-8def-1f8f9813deb4', type : 'mail', from : { avatar : 'assets/images/avatars/male-14.jpg', - contact: 'Molina Pace ' + contact: 'Molina Pace ', }, to : 'me ', date : new Date('Mon Sep 17 2018 21:45:31 GMT+0000 (UTC)').toISOString(), @@ -748,35 +778,35 @@ export const mails = [ name : 'birds-eye-sydney.jpg', size : 14294, preview : 'birds-eye-sydney_preview.jpg', - downloadUrl: '' + downloadUrl: '', }, { type : 'image/png', name : 'yosemite-national-park.png', size : 14242, preview : 'yosemite-national-park_preview.png', - downloadUrl: '' - } + downloadUrl: '', + }, ], starred : true, important : false, unread : true, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : '545d12a6-e0f3-464d-af45-618163933a71', type : 'mail', from : { avatar : 'assets/images/avatars/female-12.jpg', - contact: 'Olga Osborn ' + contact: 'Olga Osborn ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Thu Sep 27 2018 13:45:14 GMT+0000 (UTC)').toISOString(), subject : 'Elit tempor enim nisi cillum cillum esse do magna exercitation minim', @@ -791,20 +821,20 @@ export const mails = [ '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', - '184cd689-4ee4-47cf-9f8a-12233d614326' - ] + '184cd689-4ee4-47cf-9f8a-12233d614326', + ], }, { id : '23456530-2cd4-4558-95d0-6311c2ee2ee8', type : 'mail', from : { avatar : 'assets/images/avatars/female-13.jpg', - contact: 'Brooke Petersen ' + contact: 'Brooke Petersen ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Sun Jul 22 2018 14:49:16 GMT+0000 (UTC)').toISOString(), subject : 'Anim laboris aliquip excepteur consectetur eu enim sunt velit qui deserunt', @@ -817,19 +847,19 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : 'affeecf6-e3c5-4377-8070-96f5ed9c6500', type : 'mail', from : { avatar : 'assets/images/avatars/male-15.jpg', - contact: 'Estes Walter ' + contact: 'Estes Walter ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Tue Jul 17 2018 03:52:54 GMT+0000 (UTC)').toISOString(), subject : 'Reprehenderit ad do quis ut fugiat proident labore', @@ -840,15 +870,15 @@ export const mails = [ unread : false, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : 'cb00d05c-6660-4dbb-a794-f22cff93f001', type : 'mail', from : { avatar : 'assets/images/avatars/male-16.jpg', - contact: 'Holman Oconnor ' + contact: 'Holman Oconnor ', }, to : 'me ', date : new Date('Sat Jan 13 2018 22:30:44 GMT+0000 (UTC)').toISOString(), @@ -860,20 +890,20 @@ export const mails = [ unread : false, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : '7bd27a67-df7c-4a2d-8042-1fb8a690d98e', type : 'mail', from : { avatar : 'assets/images/avatars/male-17.jpg', - contact: 'Oneill Irwin ' + contact: 'Oneill Irwin ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Sat Nov 17 2018 08:17:34 GMT+0000 (UTC)').toISOString(), subject : 'Eu in ut dolor amet consequat aute esse non fugiat minim cillum sunt aliquip cillum', @@ -888,19 +918,19 @@ export const mails = [ '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', - '184cd689-4ee4-47cf-9f8a-12233d614326' - ] + '184cd689-4ee4-47cf-9f8a-12233d614326', + ], }, { id : 'ccfb3a90-e18c-4645-8c00-4357d9bcd321', type : 'mail', from : { avatar : 'assets/images/avatars/female-14.jpg', - contact: 'Marcie Morgan ' + contact: 'Marcie Morgan ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Tue Nov 20 2018 05:55:32 GMT+0000 (UTC)').toISOString(), subject : 'Magna velit cillum dolor reprehenderit aliqua ut aute nisi in sunt Lorem laboris elit do', @@ -910,19 +940,19 @@ export const mails = [ important : false, unread : false, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', - labels : [] + labels : [], }, { id : 'a18b1961-ad32-4d00-984f-afef8ee0f4e9', type : 'mail', from : { avatar : 'assets/images/avatars/male-18.jpg', - contact: 'Crane Trevino ' + contact: 'Crane Trevino ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Sat Nov 03 2018 01:52:28 GMT+0000 (UTC)').toISOString(), subject : 'Tempor consectetur officia excepteur culpa', @@ -937,19 +967,19 @@ export const mails = [ '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', - '184cd689-4ee4-47cf-9f8a-12233d614326' - ] + '184cd689-4ee4-47cf-9f8a-12233d614326', + ], }, { id : '3aaa5e3f-b8b5-47fc-9967-5f65dd8c7251', type : 'mail', from : { avatar : 'assets/images/avatars/female-15.jpg', - contact: 'Kristine Wiggins ' + contact: 'Kristine Wiggins ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Tue Jan 09 2018 13:55:10 GMT+0000 (UTC)').toISOString(), subject : 'Magna aute enim magna aliqua aliquip enim elit eiusmod nulla nostrud', @@ -960,41 +990,41 @@ export const mails = [ name : 'account-details.pdf', size : 127844, preview : 'pdf', - downloadUrl: '' + downloadUrl: '', }, { type : 'image/jpeg', name : 'mystery-forest.jpg', size : 15539, preview : 'mystery-forest_preview.jpg', - downloadUrl: '' + downloadUrl: '', }, { type : 'image/jpeg', name : 'birds-eye-sydney.jpg', size : 14294, preview : 'birds-eye-sydney_preview.jpg', - downloadUrl: '' - } + downloadUrl: '', + }, ], starred : true, important : false, unread : false, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : '0f72d2d0-bea4-4c0f-ace0-0be9f14c37f1', type : 'mail', from : { avatar : 'assets/images/avatars/female-16.jpg', - contact: 'Terrie Carney ' + contact: 'Terrie Carney ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Tue Jan 23 2018 00:03:55 GMT+0000 (UTC)').toISOString(), subject : 'Laboris in incididunt labore labore deserunt deserunt nostrud mollit voluptate non ex', @@ -1004,19 +1034,19 @@ export const mails = [ important : false, unread : false, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', - labels : [] + labels : [], }, { id : 'f825c5a3-2be8-4d48-9c4e-da60ff0e63f3', type : 'mail', from : { avatar : 'assets/images/avatars/male-19.jpg', - contact: 'Goff Jennings ' + contact: 'Goff Jennings ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Tue Aug 07 2018 05:20:39 GMT+0000 (UTC)').toISOString(), subject : 'Labore sint dolor nulla nostrud commodo amet nisi mollit commodo eiusmod duis quis irure non', @@ -1030,19 +1060,19 @@ export const mails = [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', - 'b2d1e4e7-7cfd-4b51-ae59-217a093df754' - ] + 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', + ], }, { id : 'e6dc9600-a3ab-4571-b2f2-ed00ee08e163', type : 'mail', from : { avatar : 'assets/images/avatars/male-20.jpg', - contact: 'Browning Sanchez ' + contact: 'Browning Sanchez ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Fri Mar 16 2018 20:31:08 GMT+0000 (UTC)').toISOString(), subject : 'Mollit cupidatat commodo consectetur duis ea elit est sint sunt ea qui nostrud incididunt', @@ -1055,15 +1085,15 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : '0f22fedf-ea89-414e-91a4-0df0d9501ef2', type : 'mail', from : { avatar : 'assets/images/avatars/male-01.jpg', - contact: 'Carey Lyons ' + contact: 'Carey Lyons ', }, to : 'me ', date : new Date('Tue May 01 2018 07:56:59 GMT+0000 (UTC)').toISOString(), @@ -1075,15 +1105,15 @@ export const mails = [ unread : false, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : 'd942f99b-8925-49f0-b75b-2c48b714b1cf', type : 'mail', from : { avatar : 'assets/images/avatars/male-02.jpg', - contact: 'Hendrix Goodwin ' + contact: 'Hendrix Goodwin ', }, to : 'me ', date : new Date('Mon Jan 22 2018 19:04:29 GMT+0000 (UTC)').toISOString(), @@ -1098,19 +1128,19 @@ export const mails = [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', - 'b2d1e4e7-7cfd-4b51-ae59-217a093df754' - ] + 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', + ], }, { id : '036c24e8-d8bc-4f0e-9a72-6fa884d69bb3', type : 'mail', from : { avatar : 'assets/images/avatars/female-17.jpg', - contact: 'Leticia Fulton ' + contact: 'Leticia Fulton ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Sat Mar 31 2018 05:44:48 GMT+0000 (UTC)').toISOString(), subject : 'Est nostrud labore excepteur quis consectetur proident cupidatat', @@ -1121,20 +1151,20 @@ export const mails = [ unread : true, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : '3dac4463-73aa-4bd4-a3d8-662ce38635cc', type : 'mail', from : { avatar : 'assets/images/avatars/female-18.jpg', - contact: 'Carmen Shannon ' + contact: 'Carmen Shannon ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Fri Jun 15 2018 23:26:09 GMT+0000 (UTC)').toISOString(), subject : 'Aute est laboris laborum consectetur cupidatat', @@ -1145,20 +1175,20 @@ export const mails = [ unread : true, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : '6bb27e81-ee53-4db3-acc7-bd1267cd475d', type : 'mail', from : { avatar : 'assets/images/avatars/female-19.jpg', - contact: 'Hattie Snow ' + contact: 'Hattie Snow ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Fri Jun 08 2018 01:23:42 GMT+0000 (UTC)').toISOString(), subject : 'Officia exercitation exercitation ad exercitation ea ut ullamco', @@ -1172,15 +1202,15 @@ export const mails = [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', - 'b2d1e4e7-7cfd-4b51-ae59-217a093df754' - ] + 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', + ], }, { id : 'bfac8e5d-6487-4747-b827-67179ac5c206', type : 'mail', from : { avatar : 'assets/images/avatars/female-20.jpg', - contact: 'Brandi Bradley ' + contact: 'Brandi Bradley ', }, to : 'me ', date : new Date('Sat Nov 17 2018 10:51:44 GMT+0000 (UTC)').toISOString(), @@ -1192,15 +1222,15 @@ export const mails = [ name : 'yosemite-national-park.png', size : 14242, preview : 'yosemite-national-park_preview.png', - downloadUrl: '' + downloadUrl: '', }, { type : 'image/png', name : 'yosemite-national-park.png', size : 14242, preview : 'yosemite-national-park_preview.png', - downloadUrl: '' - } + downloadUrl: '', + }, ], starred : true, important : false, @@ -1208,19 +1238,19 @@ export const mails = [ folder : '7c004a19-4506-48ef-93ab-f16381302e3b', labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', - '745cf30e-ca84-47a1-a553-b70eb630d8e7' - ] + '745cf30e-ca84-47a1-a553-b70eb630d8e7', + ], }, { id : '81b49a0a-e934-422a-81a8-8506d6f24e0e', type : 'mail', from : { avatar : 'assets/images/avatars/female-01.jpg', - contact: 'Patsy Potter ' + contact: 'Patsy Potter ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Tue May 15 2018 15:37:38 GMT+0000 (UTC)').toISOString(), subject : 'Ullamco fugiat fugiat non occaecat proident exercitation proident Lorem adipisicing commodo fugiat', @@ -1230,18 +1260,18 @@ export const mails = [ important : false, unread : true, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', - labels : [] + labels : [], }, { id : '8355b50a-f347-4177-8cef-6410c0aa46d1', type : 'mail', from : { avatar : 'assets/images/avatars/female-02.jpg', - contact: 'Kathleen Cox ' + contact: 'Kathleen Cox ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Sun Aug 26 2018 04:47:12 GMT+0000 (UTC)').toISOString(), subject : 'Est fugiat reprehenderit cupidatat sunt velit aliquip reprehenderit exercitation', @@ -1251,14 +1281,14 @@ export const mails = [ important : false, unread : false, folder : '7c004a19-4506-48ef-93ab-f16381302e3b', - labels : [] + labels : [], }, { id : '6d2bfbce-465b-4e8f-a79e-cd13ab8571c6', type : 'mail', from : { avatar : 'assets/images/avatars/female-03.jpg', - contact: 'Kristina Ramirez ' + contact: 'Kristina Ramirez ', }, to : 'me ', date : new Date('Tue Mar 06 2018 16:13:56 GMT+0000 (UTC)').toISOString(), @@ -1273,15 +1303,15 @@ export const mails = [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', - 'b2d1e4e7-7cfd-4b51-ae59-217a093df754' - ] + 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', + ], }, { id : 'd8815854-8726-4280-a5bf-eafd40b3972a', type : 'mail', from : { avatar : 'assets/images/avatars/male-03.jpg', - contact: 'Mays Glass ' + contact: 'Mays Glass ', }, to : 'me ', date : new Date('Thu Jan 04 2018 11:10:36 GMT+0000 (UTC)').toISOString(), @@ -1295,19 +1325,19 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : 'bd7ac4df-77fa-45da-8eaf-31303ba794c4', type : 'mail', from : { avatar : 'assets/images/avatars/male-04.jpg', - contact: 'Barber Zimmerman ' + contact: 'Barber Zimmerman ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Thu Aug 09 2018 01:33:05 GMT+0000 (UTC)').toISOString(), subject : 'Sit elit aliquip sint ullamco tempor in duis Lorem laboris sunt laborum', @@ -1318,20 +1348,20 @@ export const mails = [ unread : false, folder : '1ee2ea29-9a1f-4c27-b4d2-5e465703b6a0', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : 'f5fe9764-70b0-407e-a015-96b04da948a7', type : 'mail', from : { avatar : 'assets/images/avatars/female-04.jpg', - contact: 'Ginger Fry ' + contact: 'Ginger Fry ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Fri Jan 12 2018 15:46:37 GMT+0000 (UTC)').toISOString(), subject : 'Fugiat voluptate Lorem id sint enim irure in velit nostrud commodo incididunt', @@ -1343,15 +1373,15 @@ export const mails = [ folder : '1ee2ea29-9a1f-4c27-b4d2-5e465703b6a0', labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', - '745cf30e-ca84-47a1-a553-b70eb630d8e7' - ] + '745cf30e-ca84-47a1-a553-b70eb630d8e7', + ], }, { id : '3de07c8c-e687-4138-9967-7fd1feea17ee', type : 'mail', from : { avatar : 'assets/images/avatars/male-05.jpg', - contact: 'Gardner Burnett ' + contact: 'Gardner Burnett ', }, to : 'me ', date : new Date('Mon Mar 19 2018 13:34:20 GMT+0000 (UTC)').toISOString(), @@ -1364,20 +1394,20 @@ export const mails = [ folder : '1ee2ea29-9a1f-4c27-b4d2-5e465703b6a0', labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', - '745cf30e-ca84-47a1-a553-b70eb630d8e7' - ] + '745cf30e-ca84-47a1-a553-b70eb630d8e7', + ], }, { id : 'd2bbcbbb-aa31-48ee-bbe4-2976b7043e78', type : 'mail', from : { avatar : 'assets/images/avatars/female-05.jpg', - contact: 'Lula Lucas ' + contact: 'Lula Lucas ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Mon Nov 26 2018 16:08:25 GMT+0000 (UTC)').toISOString(), subject : 'Quis anim labore esse proident', @@ -1392,15 +1422,15 @@ export const mails = [ '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', - '184cd689-4ee4-47cf-9f8a-12233d614326' - ] + '184cd689-4ee4-47cf-9f8a-12233d614326', + ], }, { id : '1a166107-cc66-42dd-96a2-91b1a40f8c62', type : 'mail', from : { avatar : 'assets/images/avatars/male-06.jpg', - contact: 'Mcguire Crosby ' + contact: 'Mcguire Crosby ', }, to : 'me ', date : new Date('Fri Mar 09 2018 04:54:41 GMT+0000 (UTC)').toISOString(), @@ -1413,19 +1443,19 @@ export const mails = [ folder : '1ee2ea29-9a1f-4c27-b4d2-5e465703b6a0', labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', - '745cf30e-ca84-47a1-a553-b70eb630d8e7' - ] + '745cf30e-ca84-47a1-a553-b70eb630d8e7', + ], }, { id : '3fbf66d3-cc2d-4256-a276-ad73da93b7fd', type : 'mail', from : { avatar : 'assets/images/avatars/male-07.jpg', - contact: 'Walsh Bender ' + contact: 'Walsh Bender ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Thu Nov 22 2018 20:26:17 GMT+0000 (UTC)').toISOString(), subject : 'Mollit voluptate eu excepteur nisi labore dolor aliquip magna incididunt ipsum quis ex irure', @@ -1436,15 +1466,15 @@ export const mails = [ name : 'mystery-forest.jpg', size : 15539, preview : 'mystery-forest_preview.jpg', - downloadUrl: '' + downloadUrl: '', }, { type : 'application/pdf', name : 'montly-invoice.pdf', size : 243449, preview : 'pdf', - downloadUrl: '' - } + downloadUrl: '', + }, ], starred : false, important : false, @@ -1453,19 +1483,19 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : 'b460fff2-8530-4464-8c44-744cd3de3bf8', type : 'mail', from : { avatar : 'assets/images/avatars/male-08.jpg', - contact: 'Baker Guthrie ' + contact: 'Baker Guthrie ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Sat Jul 21 2018 07:51:09 GMT+0000 (UTC)').toISOString(), subject : 'In ipsum elit esse laboris qui', @@ -1478,20 +1508,20 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : '16c18231-82ea-403d-895a-2a4bc27b61ca', type : 'mail', from : { avatar : 'assets/images/avatars/female-06.jpg', - contact: 'Olivia Ratliff ' + contact: 'Olivia Ratliff ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Mon Feb 19 2018 13:18:23 GMT+0000 (UTC)').toISOString(), subject : 'Mollit ex magna non Lorem id', @@ -1502,20 +1532,20 @@ export const mails = [ unread : false, folder : '1ee2ea29-9a1f-4c27-b4d2-5e465703b6a0', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : 'dfa4d802-b833-49c1-afdc-02116d73e35a', type : 'mail', from : { avatar : 'assets/images/avatars/male-09.jpg', - contact: 'Schneider Kirby ' + contact: 'Schneider Kirby ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Mon Nov 12 2018 09:55:21 GMT+0000 (UTC)').toISOString(), subject : 'Occaecat eiusmod cillum nostrud dolore et proident est esse magna mollit enim', @@ -1530,15 +1560,15 @@ export const mails = [ '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', - '184cd689-4ee4-47cf-9f8a-12233d614326' - ] + '184cd689-4ee4-47cf-9f8a-12233d614326', + ], }, { id : '84c4ef35-da0d-4d1f-a966-f7f413545b04', type : 'mail', from : { avatar : 'assets/images/avatars/male-10.jpg', - contact: 'Griffith Keith ' + contact: 'Griffith Keith ', }, to : 'me ', date : new Date('Tue Dec 11 2018 06:27:01 GMT+0000 (UTC)').toISOString(), @@ -1553,19 +1583,19 @@ export const mails = [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', - 'b2d1e4e7-7cfd-4b51-ae59-217a093df754' - ] + 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', + ], }, { id : '0c78627f-5cbe-4d21-8491-455e98bf6f69', type : 'mail', from : { avatar : 'assets/images/avatars/female-07.jpg', - contact: 'Beverly Pugh ' + contact: 'Beverly Pugh ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Sun Oct 21 2018 14:36:41 GMT+0000 (UTC)').toISOString(), subject : 'Mollit irure adipisicing in consectetur aliqua labore pariatur minim', @@ -1579,15 +1609,15 @@ export const mails = [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', - 'b2d1e4e7-7cfd-4b51-ae59-217a093df754' - ] + 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', + ], }, { id : '3d382fb3-b5f5-43e3-b0bc-f2a6f29a5ee6', type : 'mail', from : { avatar : 'assets/images/avatars/female-08.jpg', - contact: 'Ila Mclaughlin ' + contact: 'Ila Mclaughlin ', }, to : 'me ', date : new Date('Wed Aug 01 2018 13:55:15 GMT+0000 (UTC)').toISOString(), @@ -1603,20 +1633,20 @@ export const mails = [ '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', - '184cd689-4ee4-47cf-9f8a-12233d614326' - ] + '184cd689-4ee4-47cf-9f8a-12233d614326', + ], }, { id : '7fd27d57-ccca-432d-af26-c3b609448fb7', type : 'mail', from : { avatar : 'assets/images/avatars/female-09.jpg', - contact: 'Jenna Manning ' + contact: 'Jenna Manning ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Sat Dec 08 2018 20:09:08 GMT+0000 (UTC)').toISOString(), subject : 'Quis deserunt excepteur eiusmod reprehenderit enim exercitation voluptate anim', @@ -1629,19 +1659,19 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : '18ba20d3-d7bc-4fc7-85dd-2db4db3196fe', type : 'mail', from : { avatar : 'assets/images/avatars/female-10.jpg', - contact: 'Deann Hansen ' + contact: 'Deann Hansen ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Thu Jan 10 2019 12:13:47 GMT+0000 (UTC)').toISOString(), subject : 'Duis minim quis in labore voluptate laboris do consequat eu anim sit deserunt incididunt', @@ -1652,15 +1682,15 @@ export const mails = [ unread : false, folder : '1ee2ea29-9a1f-4c27-b4d2-5e465703b6a0', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : '476cb471-b3c1-4235-b5ef-3066b028483d', type : 'mail', from : { avatar : 'assets/images/avatars/female-11.jpg', - contact: 'Tisha Moore ' + contact: 'Tisha Moore ', }, to : 'me ', date : new Date('Wed Mar 07 2018 05:58:09 GMT+0000 (UTC)').toISOString(), @@ -1675,20 +1705,20 @@ export const mails = [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', - 'b2d1e4e7-7cfd-4b51-ae59-217a093df754' - ] + 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', + ], }, { id : 'a8aea501-17e9-4e40-b3a9-04f33b13cb8a', type : 'mail', from : { avatar : 'assets/images/avatars/female-12.jpg', - contact: 'Janette Elliott ' + contact: 'Janette Elliott ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Mon May 07 2018 20:07:15 GMT+0000 (UTC)').toISOString(), subject : 'Veniam amet voluptate Lorem qui ut id culpa mollit reprehenderit est', @@ -1699,15 +1729,15 @@ export const mails = [ unread : true, folder : '1ee2ea29-9a1f-4c27-b4d2-5e465703b6a0', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : 'cb55f824-40ed-4696-afaa-f3f8d3fb8614', type : 'mail', from : { avatar : 'assets/images/avatars/female-13.jpg', - contact: 'Bettie Wyatt ' + contact: 'Bettie Wyatt ', }, to : 'me ', date : new Date('Mon Dec 03 2018 17:07:32 GMT+0000 (UTC)').toISOString(), @@ -1720,20 +1750,20 @@ export const mails = [ folder : 'fbdc8e79-a0c4-4a27-bc98-9c81ee7a86e5', labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', - '745cf30e-ca84-47a1-a553-b70eb630d8e7' - ] + '745cf30e-ca84-47a1-a553-b70eb630d8e7', + ], }, { id : '92dddecc-4758-4c48-8ef4-a59de4ab0705', type : 'mail', from : { avatar : 'assets/images/avatars/male-11.jpg', - contact: 'Hardy Dale ' + contact: 'Hardy Dale ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Fri Nov 16 2018 21:53:34 GMT+0000 (UTC)').toISOString(), subject : 'Aute commodo nostrud nisi quis sunt ex', @@ -1744,15 +1774,15 @@ export const mails = [ unread : false, folder : 'fbdc8e79-a0c4-4a27-bc98-9c81ee7a86e5', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : '3f3f6154-a8ff-40d6-8b57-4c0f73d2cd8b', type : 'mail', from : { avatar : 'assets/images/avatars/female-14.jpg', - contact: 'Eileen Bush ' + contact: 'Eileen Bush ', }, to : 'me ', date : new Date('Sat Feb 24 2018 12:22:13 GMT+0000 (UTC)').toISOString(), @@ -1764,19 +1794,19 @@ export const mails = [ unread : false, folder : 'fbdc8e79-a0c4-4a27-bc98-9c81ee7a86e5', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : '2c80bcbe-c9cd-4eec-83fa-b9994713a784', type : 'mail', from : { avatar : 'assets/images/avatars/female-15.jpg', - contact: 'Melody Mcintosh ' + contact: 'Melody Mcintosh ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Fri Jul 27 2018 07:20:48 GMT+0000 (UTC)').toISOString(), subject : 'Reprehenderit consequat aliquip duis incididunt excepteur aliquip excepteur velit labore laboris', @@ -1787,20 +1817,20 @@ export const mails = [ unread : false, folder : 'fbdc8e79-a0c4-4a27-bc98-9c81ee7a86e5', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : '2a44e5b7-e01c-43db-b586-540390f46f95', type : 'mail', from : { avatar : 'assets/images/avatars/male-12.jpg', - contact: 'Dale Talley ' + contact: 'Dale Talley ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Tue Jan 02 2018 07:20:01 GMT+0000 (UTC)').toISOString(), subject : 'Aute occaecat est amet adipisicing aute voluptate incididunt adipisicing pariatur esse anim ipsum labore', @@ -1813,19 +1843,19 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : 'be1e969d-d52f-4824-83e5-c184b042b601', type : 'mail', from : { avatar : 'assets/images/avatars/male-13.jpg', - contact: 'Britt Massey ' + contact: 'Britt Massey ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Tue Oct 09 2018 00:12:17 GMT+0000 (UTC)').toISOString(), subject : 'Cillum tempor cillum ex esse eu Lorem', @@ -1840,20 +1870,20 @@ export const mails = [ '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', - '184cd689-4ee4-47cf-9f8a-12233d614326' - ] + '184cd689-4ee4-47cf-9f8a-12233d614326', + ], }, { id : '8c7c9bff-6ca6-47ba-9242-cd9b1715eac7', type : 'mail', from : { avatar : 'assets/images/avatars/female-16.jpg', - contact: 'Madelyn Haynes ' + contact: 'Madelyn Haynes ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Sat Mar 03 2018 18:08:05 GMT+0000 (UTC)').toISOString(), subject : 'Irure enim minim dolore et', @@ -1867,20 +1897,20 @@ export const mails = [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', - 'b2d1e4e7-7cfd-4b51-ae59-217a093df754' - ] + 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', + ], }, { id : 'afd52898-82e9-4fd4-8d6a-2391ec817e2a', type : 'mail', from : { avatar : 'assets/images/avatars/male-14.jpg', - contact: 'Rowland Sweet ' + contact: 'Rowland Sweet ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Fri Jun 22 2018 14:39:18 GMT+0000 (UTC)').toISOString(), subject : 'Sunt et proident ullamco qui id irure occaecat anim aute elit amet', @@ -1890,18 +1920,18 @@ export const mails = [ important : true, unread : true, folder : '0197c436-2ef3-424d-b546-8b7f49186e15', - labels : [] + labels : [], }, { id : 'e43d83f0-51ea-4da9-b18f-0de380b5156a', type : 'mail', from : { avatar : 'assets/images/avatars/female-17.jpg', - contact: 'Fern Shaw ' + contact: 'Fern Shaw ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Wed Feb 21 2018 06:23:12 GMT+0000 (UTC)').toISOString(), subject : 'Nisi esse incididunt nisi aliqua aliqua laborum occaecat quis duis minim', @@ -1911,18 +1941,18 @@ export const mails = [ important : false, unread : true, folder : '0197c436-2ef3-424d-b546-8b7f49186e15', - labels : [] + labels : [], }, { id : '4e1d4820-e907-405a-990a-4a5772f482ad', type : 'mail', from : { avatar : 'assets/images/avatars/female-18.jpg', - contact: 'Lorraine Ballard ' + contact: 'Lorraine Ballard ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Sun Jun 24 2018 13:46:02 GMT+0000 (UTC)').toISOString(), subject : 'Velit nisi ut laboris id et do aliquip', @@ -1935,20 +1965,20 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : 'f0f2d069-50a0-484f-a4a2-3a272fcb433b', type : 'mail', from : { avatar : 'assets/images/avatars/male-15.jpg', - contact: 'Jennings Franklin ' + contact: 'Jennings Franklin ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Thu Apr 26 2018 06:34:54 GMT+0000 (UTC)').toISOString(), subject : 'Enim esse aliqua elit incididunt aliqua mollit amet quis occaecat veniam occaecat proident', @@ -1958,14 +1988,14 @@ export const mails = [ important : false, unread : true, folder : '0197c436-2ef3-424d-b546-8b7f49186e15', - labels : [] + labels : [], }, { id : '7c93dbde-8b56-43a3-ade1-b132906679c4', type : 'mail', from : { avatar : 'assets/images/avatars/female-19.jpg', - contact: 'Colette Cole ' + contact: 'Colette Cole ', }, to : 'me ', date : new Date('Fri Sep 21 2018 08:37:21 GMT+0000 (UTC)').toISOString(), @@ -1979,19 +2009,19 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : '7335d11d-04b1-4250-817a-6fdf3e099239', type : 'mail', from : { avatar : 'assets/images/avatars/female-20.jpg', - contact: 'Kim Carlson ' + contact: 'Kim Carlson ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Wed Nov 28 2018 07:57:15 GMT+0000 (UTC)').toISOString(), subject : 'Ullamco ad consectetur ut esse', @@ -2004,19 +2034,19 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : 'e9dd17ec-4fc3-424e-89e5-c58d9d235764', type : 'mail', from : { avatar : 'assets/images/avatars/female-01.jpg', - contact: 'Rena Park ' + contact: 'Rena Park ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Sat Oct 13 2018 12:57:58 GMT+0000 (UTC)').toISOString(), subject : 'Nulla qui anim ullamco officia elit', @@ -2026,19 +2056,19 @@ export const mails = [ important : false, unread : false, folder : '0197c436-2ef3-424d-b546-8b7f49186e15', - labels : [] + labels : [], }, { id : '5fb8f4b5-fad4-4a82-8519-a732e68a48be', type : 'mail', from : { avatar : 'assets/images/avatars/male-16.jpg', - contact: 'Haney Gibson ' + contact: 'Haney Gibson ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Tue Oct 23 2018 00:16:47 GMT+0000 (UTC)').toISOString(), subject : 'Veniam consequat ipsum occaecat ipsum', @@ -2048,18 +2078,18 @@ export const mails = [ important : true, unread : true, folder : '0197c436-2ef3-424d-b546-8b7f49186e15', - labels : [] + labels : [], }, { id : 'e766ddd9-e9ea-499c-bb10-72fa57a03059', type : 'mail', from : { avatar : 'assets/images/avatars/female-02.jpg', - contact: 'Freda Frank ' + contact: 'Freda Frank ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Wed Nov 21 2018 01:26:11 GMT+0000 (UTC)').toISOString(), subject : 'Magna sint dolor sit laborum enim', @@ -2070,19 +2100,19 @@ export const mails = [ unread : false, folder : '0197c436-2ef3-424d-b546-8b7f49186e15', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : '03693a62-d6bd-47c8-8f8e-112f21042722', type : 'mail', from : { avatar : 'assets/images/avatars/male-17.jpg', - contact: 'Burns White ' + contact: 'Burns White ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Mon May 14 2018 20:06:57 GMT+0000 (UTC)').toISOString(), subject : 'Veniam cillum ad proident incididunt nisi exercitation est', @@ -2092,14 +2122,14 @@ export const mails = [ important : false, unread : false, folder : '0197c436-2ef3-424d-b546-8b7f49186e15', - labels : [] + labels : [], }, { id : 'c59f5ea4-4f5d-4b9e-9c3c-a996b18fd98c', type : 'mail', from : { avatar : 'assets/images/avatars/male-18.jpg', - contact: 'Fischer Cervantes ' + contact: 'Fischer Cervantes ', }, to : 'me ', date : new Date('Thu Dec 13 2018 03:52:15 GMT+0000 (UTC)').toISOString(), @@ -2112,19 +2142,19 @@ export const mails = [ folder : '0197c436-2ef3-424d-b546-8b7f49186e15', labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', - '745cf30e-ca84-47a1-a553-b70eb630d8e7' - ] + '745cf30e-ca84-47a1-a553-b70eb630d8e7', + ], }, { id : '9ed5d4c1-819a-4719-88d7-cd7b08b2228d', type : 'mail', from : { avatar : 'assets/images/avatars/male-19.jpg', - contact: 'Cervantes Reyes ' + contact: 'Cervantes Reyes ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Tue Oct 16 2018 11:06:27 GMT+0000 (UTC)').toISOString(), subject : 'Et eu adipisicing aliqua nisi minim commodo anim aliqua aliquip', @@ -2137,15 +2167,15 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : 'a769720b-0c64-483c-925c-5d747c61bff4', type : 'mail', from : { avatar : 'assets/images/avatars/male-20.jpg', - contact: 'Cooke Whitney ' + contact: 'Cooke Whitney ', }, to : 'me ', date : new Date('Sat Jul 28 2018 14:16:37 GMT+0000 (UTC)').toISOString(), @@ -2156,19 +2186,19 @@ export const mails = [ important : false, unread : true, folder : '0197c436-2ef3-424d-b546-8b7f49186e15', - labels : [] + labels : [], }, { id : 'e6b83f13-c25e-4355-913f-54d93d8393f6', type : 'mail', from : { avatar : 'assets/images/avatars/female-03.jpg', - contact: 'Lee Lloyd ' + contact: 'Lee Lloyd ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Thu Oct 18 2018 02:56:36 GMT+0000 (UTC)').toISOString(), subject : 'Culpa incididunt amet sunt ipsum ad nostrud exercitation ea', @@ -2181,20 +2211,20 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : '5c5c4ba7-542b-46b0-b0ce-976f5189d72c', type : 'mail', from : { avatar : 'assets/images/avatars/male-01.jpg', - contact: 'Benson Shields ' + contact: 'Benson Shields ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Sun Apr 01 2018 20:39:05 GMT+0000 (UTC)').toISOString(), subject : 'Sit incididunt ad tempor veniam duis', @@ -2204,19 +2234,19 @@ export const mails = [ important : true, unread : true, folder : '2fa74637-d362-4fd2-9a88-f7195a88bdde', - labels : [] + labels : [], }, { id : '36abfef2-f86a-4c9e-99de-1869f0b3e71b', type : 'mail', from : { avatar : 'assets/images/avatars/male-02.jpg', - contact: 'Emerson Whitehead ' + contact: 'Emerson Whitehead ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Sun Jun 24 2018 11:19:49 GMT+0000 (UTC)').toISOString(), subject : 'Esse ea ut est excepteur', @@ -2230,19 +2260,19 @@ export const mails = [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', - 'b2d1e4e7-7cfd-4b51-ae59-217a093df754' - ] + 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', + ], }, { id : 'b1a0ab26-6c86-4888-b2f1-69928b3ca718', type : 'mail', from : { avatar : 'assets/images/avatars/female-04.jpg', - contact: 'Annabelle Greene ' + contact: 'Annabelle Greene ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Thu Aug 30 2018 03:24:13 GMT+0000 (UTC)').toISOString(), subject : 'Commodo reprehenderit laborum nostrud culpa et aliquip', @@ -2253,15 +2283,15 @@ export const mails = [ unread : false, folder : '2fa74637-d362-4fd2-9a88-f7195a88bdde', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : '87cf5188-34dc-4947-b780-48c7fb6b6b23', type : 'mail', from : { avatar : 'assets/images/avatars/male-03.jpg', - contact: 'Dawson Lewis ' + contact: 'Dawson Lewis ', }, to : 'me ', date : new Date('Fri Aug 03 2018 03:03:12 GMT+0000 (UTC)').toISOString(), @@ -2276,20 +2306,20 @@ export const mails = [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', - 'b2d1e4e7-7cfd-4b51-ae59-217a093df754' - ] + 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', + ], }, { id : '8749e3bc-24b3-43f3-997b-ee0b5bd7a442', type : 'mail', from : { avatar : 'assets/images/avatars/male-04.jpg', - contact: 'Cole Dotson ' + contact: 'Cole Dotson ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Tue Sep 04 2018 09:09:08 GMT+0000 (UTC)').toISOString(), subject : 'Sint quis veniam tempor sint', @@ -2303,15 +2333,15 @@ export const mails = [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', - 'b2d1e4e7-7cfd-4b51-ae59-217a093df754' - ] + 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', + ], }, { id : '108ca3fa-a4dd-4988-a7ea-659ab4446050', type : 'mail', from : { avatar : 'assets/images/avatars/male-05.jpg', - contact: 'Bernard Cunningham ' + contact: 'Bernard Cunningham ', }, to : 'me ', date : new Date('Tue Aug 21 2018 08:51:03 GMT+0000 (UTC)').toISOString(), @@ -2326,20 +2356,20 @@ export const mails = [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', - 'b2d1e4e7-7cfd-4b51-ae59-217a093df754' - ] + 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', + ], }, { id : '63a362be-4ea7-4cc1-985f-5202db9c1370', type : 'mail', from : { avatar : 'assets/images/avatars/male-06.jpg', - contact: 'Edwards Mcconnell ' + contact: 'Edwards Mcconnell ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Fri Jul 20 2018 05:22:32 GMT+0000 (UTC)').toISOString(), subject : 'Amet ipsum voluptate voluptate dolore proident voluptate officia cillum adipisicing tempor tempor ad anim', @@ -2351,19 +2381,19 @@ export const mails = [ folder : '2fa74637-d362-4fd2-9a88-f7195a88bdde', labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', - '745cf30e-ca84-47a1-a553-b70eb630d8e7' - ] + '745cf30e-ca84-47a1-a553-b70eb630d8e7', + ], }, { id : 'ce206b7e-bbd0-4cd1-b69a-a8d4ef5b10bf', type : 'mail', from : { avatar : 'assets/images/avatars/female-05.jpg', - contact: 'Lizzie Sanders ' + contact: 'Lizzie Sanders ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Fri Sep 07 2018 01:29:31 GMT+0000 (UTC)').toISOString(), subject : 'Sint enim elit Lorem laboris', @@ -2378,20 +2408,20 @@ export const mails = [ '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', - '184cd689-4ee4-47cf-9f8a-12233d614326' - ] + '184cd689-4ee4-47cf-9f8a-12233d614326', + ], }, { id : 'f7c2e821-b2e2-4103-bb20-ddcd3a42dc7c', type : 'mail', from : { avatar : 'assets/images/avatars/female-06.jpg', - contact: 'Elise Hicks ' + contact: 'Elise Hicks ', }, to : 'me ', cc : [ 'Graham Belltower ', - 'Julie T. ' + 'Julie T. ', ], date : new Date('Sun Mar 04 2018 15:45:07 GMT+0000 (UTC)').toISOString(), subject : 'Cillum proident non officia mollit nulla dolor eiusmod et aliquip laboris ut adipisicing dolor deserunt', @@ -2402,19 +2432,19 @@ export const mails = [ unread : false, folder : '2fa74637-d362-4fd2-9a88-f7195a88bdde', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : 'd8ca28a0-7fb7-4cd4-9058-3a867f841f76', type : 'mail', from : { avatar : 'assets/images/avatars/female-07.jpg', - contact: 'Sherri Roth ' + contact: 'Sherri Roth ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Thu Dec 20 2018 09:37:24 GMT+0000 (UTC)').toISOString(), subject : 'Ex laboris et sunt ex aute aute nisi', @@ -2427,19 +2457,19 @@ export const mails = [ labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', - '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3' - ] + '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', + ], }, { id : 'b48be636-410c-485a-9442-7de7ce807dc2', type : 'mail', from : { avatar : 'assets/images/avatars/male-07.jpg', - contact: 'Skinner Hawkins ' + contact: 'Skinner Hawkins ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Sun Jun 10 2018 07:50:01 GMT+0000 (UTC)').toISOString(), subject : 'Eu cillum amet dolore labore voluptate qui mollit ad anim ipsum laborum eiusmod aliquip', @@ -2451,15 +2481,15 @@ export const mails = [ folder : '2fa74637-d362-4fd2-9a88-f7195a88bdde', labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', - '745cf30e-ca84-47a1-a553-b70eb630d8e7' - ] + '745cf30e-ca84-47a1-a553-b70eb630d8e7', + ], }, { id : 'efe990eb-6559-48a6-a909-320c465de739', type : 'mail', from : { avatar : 'assets/images/avatars/female-08.jpg', - contact: 'Velma Ellison ' + contact: 'Velma Ellison ', }, to : 'me ', date : new Date('Thu Nov 01 2018 10:59:46 GMT+0000 (UTC)').toISOString(), @@ -2472,15 +2502,15 @@ export const mails = [ folder : '2fa74637-d362-4fd2-9a88-f7195a88bdde', labels : [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', - '745cf30e-ca84-47a1-a553-b70eb630d8e7' - ] + '745cf30e-ca84-47a1-a553-b70eb630d8e7', + ], }, { id : 'd2bc3670-63f7-47c3-9d3d-4998c716f04a', type : 'mail', from : { avatar : 'assets/images/avatars/female-09.jpg', - contact: 'Tamara Fitzgerald ' + contact: 'Tamara Fitzgerald ', }, to : 'me ', date : new Date('Sat Feb 24 2018 15:37:16 GMT+0000 (UTC)').toISOString(), @@ -2492,15 +2522,15 @@ export const mails = [ unread : true, folder : '2fa74637-d362-4fd2-9a88-f7195a88bdde', labels : [ - 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e' - ] + 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', + ], }, { id : '07b4d696-7657-4535-9838-3efb42355cbb', type : 'mail', from : { avatar : 'assets/images/avatars/male-08.jpg', - contact: 'Duncan Gilmore ' + contact: 'Duncan Gilmore ', }, to : 'me ', date : new Date('Mon Dec 31 2018 08:15:40 GMT+0000 (UTC)').toISOString(), @@ -2511,14 +2541,14 @@ export const mails = [ important : false, unread : true, folder : '2fa74637-d362-4fd2-9a88-f7195a88bdde', - labels : [] + labels : [], }, { id : 'b8424db5-c607-4b9a-b88f-78c54343a342', type : 'mail', from : { avatar : 'assets/images/avatars/female-10.jpg', - contact: 'Betty Dean ' + contact: 'Betty Dean ', }, to : 'me ', date : new Date('Thu Aug 16 2018 06:17:15 GMT+0000 (UTC)').toISOString(), @@ -2533,15 +2563,15 @@ export const mails = [ 'b167d3c4-f6ed-4ea6-9579-a12f95a9d76e', '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', - 'b2d1e4e7-7cfd-4b51-ae59-217a093df754' - ] + 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', + ], }, { id : 'edf1399f-e829-4bde-ae5b-e03d18ad2f76', type : 'mail', from : { avatar : 'assets/images/avatars/male-09.jpg', - contact: 'Pate Gardner ' + contact: 'Pate Gardner ', }, to : 'me ', date : new Date('Sat May 26 2018 10:36:30 GMT+0000 (UTC)').toISOString(), @@ -2552,18 +2582,18 @@ export const mails = [ important : false, unread : true, folder : '2fa74637-d362-4fd2-9a88-f7195a88bdde', - labels : [] + labels : [], }, { id : 'bcc422a2-8a39-416e-8205-a5ce354ea622', type : 'mail', from : { avatar : 'assets/images/avatars/male-10.jpg', - contact: 'Lawson Kidd ' + contact: 'Lawson Kidd ', }, to : 'me ', cc : [ - 'Graham Belltower ' + 'Graham Belltower ', ], date : new Date('Sun Mar 18 2018 02:18:44 GMT+0000 (UTC)').toISOString(), subject : 'Proident non proident dolore non dolor reprehenderit', @@ -2578,7 +2608,7 @@ export const mails = [ '745cf30e-ca84-47a1-a553-b70eb630d8e7', '8b035cb5-65c0-4ab1-bb4c-43b0e442d1f3', 'b2d1e4e7-7cfd-4b51-ae59-217a093df754', - '184cd689-4ee4-47cf-9f8a-12233d614326' - ] - } + '184cd689-4ee4-47cf-9f8a-12233d614326', + ], + }, ]; diff --git a/src/app/mock-api/apps/notes/api.ts b/src/app/mock-api/apps/notes/api.ts index bd8b874b..1fb17d8f 100644 --- a/src/app/mock-api/apps/notes/api.ts +++ b/src/app/mock-api/apps/notes/api.ts @@ -1,12 +1,10 @@ import { Injectable } from '@angular/core'; -import { cloneDeep } from 'lodash-es'; +import { FuseMockApiUtils } from '@fuse/lib/mock-api'; import { FuseMockApiService } from '@fuse/lib/mock-api/mock-api.service'; import { labels as labelsData, notes as notesData } from 'app/mock-api/apps/notes/data'; -import { FuseMockApiUtils } from '@fuse/lib/mock-api'; +import { cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class NotesMockApi { private _labels: any[] = labelsData; @@ -37,7 +35,7 @@ export class NotesMockApi .onGet('api/apps/notes/labels') .reply(() => [ 200, - cloneDeep(this._labels) + cloneDeep(this._labels), ]); // ----------------------------------------------------------------------------------------------------- @@ -45,12 +43,12 @@ export class NotesMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/apps/notes/labels') - .reply(({request}) => { - + .reply(({request}) => + { // Create a new label const label = { id : FuseMockApiUtils.guid(), - title: request.body.title + title: request.body.title, }; // Update the labels @@ -58,7 +56,7 @@ export class NotesMockApi return [ 200, - cloneDeep(this._labels) + cloneDeep(this._labels), ]; }); @@ -67,18 +65,19 @@ export class NotesMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/notes/labels') - .reply(({request}) => { - + .reply(({request}) => + { // Get label const updatedLabel = request.body.label; // Update the label - this._labels = this._labels.map((label) => { + this._labels = this._labels.map((label) => + { if ( label.id === updatedLabel.id ) { return { ...label, - title: updatedLabel.title + title: updatedLabel.title, }; } @@ -87,7 +86,7 @@ export class NotesMockApi return [ 200, - cloneDeep(this._labels) + cloneDeep(this._labels), ]; }); @@ -96,8 +95,8 @@ export class NotesMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onDelete('api/apps/notes/labels') - .reply(({request}) => { - + .reply(({request}) => + { // Get label id const id = request.params.get('id'); @@ -107,12 +106,12 @@ export class NotesMockApi // Go through notes and delete the label this._notes = this._notes.map(note => ({ ...note, - labels: note.labels.filter(item => item !== id) + labels: note.labels.filter(item => item !== id), })); return [ 200, - cloneDeep(this._labels) + cloneDeep(this._labels), ]; }); @@ -121,14 +120,15 @@ export class NotesMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/apps/notes/tasks') - .reply(({request}) => { - + .reply(({request}) => + { // Get note and task let updatedNote = request.body.note; const task = request.body.task; // Update the note - this._notes = this._notes.map((note) => { + this._notes = this._notes.map((note) => + { if ( note.id === updatedNote.id ) { // Update the tasks @@ -140,14 +140,14 @@ export class NotesMockApi note.tasks.push({ id : FuseMockApiUtils.guid(), content : task, - completed: false + completed: false, }); // Update the updatedNote with the new task updatedNote = cloneDeep(note); return { - ...note + ...note, }; } @@ -156,7 +156,7 @@ export class NotesMockApi return [ 200, - updatedNote + updatedNote, ]; }); @@ -165,8 +165,8 @@ export class NotesMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/notes/all') - .reply(() => { - + .reply(() => + { // Clone the labels and notes const labels = cloneDeep(this._labels); let notes = cloneDeep(this._notes); @@ -175,13 +175,13 @@ export class NotesMockApi notes = notes.map(note => ( { ...note, - labels: note.labels.map(labelId => labels.find(label => label.id === labelId)) + labels: note.labels.map(labelId => labels.find(label => label.id === labelId)), } )); return [ 200, - notes + notes, ]; }); @@ -190,8 +190,8 @@ export class NotesMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/apps/notes') - .reply(({request}) => { - + .reply(({request}) => + { // Get note const note = request.body.note; @@ -203,7 +203,7 @@ export class NotesMockApi return [ 200, - note + note, ]; }); @@ -212,17 +212,18 @@ export class NotesMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/notes') - .reply(({request}) => { - + .reply(({request}) => + { // Get note const updatedNote = request.body.updatedNote; // Update the note - this._notes = this._notes.map((note) => { + this._notes = this._notes.map((note) => + { if ( note.id === updatedNote.id ) { return { - ...updatedNote + ...updatedNote, }; } @@ -231,7 +232,7 @@ export class NotesMockApi return [ 200, - updatedNote + updatedNote, ]; }); @@ -240,14 +241,14 @@ export class NotesMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onDelete('api/apps/notes') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id const id = request.params.get('id'); // Find the note and delete it - this._notes.forEach((item, index) => { - + this._notes.forEach((item, index) => + { if ( item.id === id ) { this._notes.splice(index, 1); diff --git a/src/app/mock-api/apps/notes/data.ts b/src/app/mock-api/apps/notes/data.ts index 9b685472..8eee730c 100644 --- a/src/app/mock-api/apps/notes/data.ts +++ b/src/app/mock-api/apps/notes/data.ts @@ -7,28 +7,28 @@ const now = DateTime.now(); export const labels = [ { id : 'f47c92e5-20b9-44d9-917f-9ff4ad25dfd0', - title: 'Family' + title: 'Family', }, { id : 'e2f749f5-41ed-49d0-a92a-1c83d879e371', - title: 'Work' + title: 'Work', }, { id : 'b1cde9ee-e54d-4142-ad8b-cf55dafc9528', - title: 'Tasks' + title: 'Tasks', }, { id : '6c288794-47eb-4605-8bdf-785b61a449d3', - title: 'Priority' + title: 'Priority', }, { id : 'bbc73458-940b-421c-8d5f-8dcd23a9b0d6', - title: 'Personal' + title: 'Personal', }, { id : '2dc11344-3507-48e0-83d6-1c047107f052', - title: 'Friends' - } + title: 'Friends', + }, ]; export const notes = [ @@ -41,8 +41,11 @@ export const notes = [ reminder : null, labels : ['e2f749f5-41ed-49d0-a92a-1c83d879e371'], archived : false, - createdAt: now.set({hour: 10, minute: 19}).minus({day: 98}).toISO(), - updatedAt: null + createdAt: now.set({ + hour : 10, + minute: 19, + }).minus({day: 98}).toISO(), + updatedAt: null, }, { id : 'ced0a1ce-051d-41a3-b080-e2161e4ae621', @@ -53,11 +56,14 @@ export const notes = [ reminder : null, labels : [ 'bbc73458-940b-421c-8d5f-8dcd23a9b0d6', - 'b1cde9ee-e54d-4142-ad8b-cf55dafc9528' + 'b1cde9ee-e54d-4142-ad8b-cf55dafc9528', ], archived : false, - createdAt: now.set({hour: 15, minute: 37}).minus({day: 80}).toISO(), - updatedAt: null + createdAt: now.set({ + hour : 15, + minute: 37, + }).minus({day: 80}).toISO(), + updatedAt: null, }, { id : 'd3ac02a9-86e4-4187-bbd7-2c965518b3a3', @@ -68,8 +74,14 @@ export const notes = [ reminder : null, labels : ['6c288794-47eb-4605-8bdf-785b61a449d3'], archived : false, - createdAt: now.set({hour: 19, minute: 27}).minus({day: 74}).toISO(), - updatedAt: now.set({hour: 15, minute: 36}).minus({day: 50}).toISO(), + createdAt: now.set({ + hour : 19, + minute: 27, + }).minus({day: 74}).toISO(), + updatedAt: now.set({ + hour : 15, + minute: 36, + }).minus({day: 50}).toISO(), }, { id : '89861bd4-0144-4bb4-8b39-332ca10371d5', @@ -77,11 +89,17 @@ export const notes = [ content : 'Theming support for all apps', tasks : null, image : null, - reminder: now.set({hour: 12, minute: 34}).plus({day: 50}).toISO(), + reminder : now.set({ + hour : 12, + minute: 34, + }).plus({day: 50}).toISO(), labels : ['e2f749f5-41ed-49d0-a92a-1c83d879e371'], archived : false, - createdAt: now.set({hour: 12, minute: 34}).minus({day: 59}).toISO(), - updatedAt: null + createdAt: now.set({ + hour : 12, + minute: 34, + }).minus({day: 59}).toISO(), + updatedAt: null, }, { id : 'ffd20f3c-2d43-4c6b-8021-278032fc9e92', @@ -91,30 +109,33 @@ export const notes = [ { id : '330a924f-fb51-48f6-a374-1532b1dd353d', content : 'Scarf', - completed: false + completed: false, }, { id : '781855a6-2ad2-4df4-b0af-c3cb5f302b40', content : 'A new bike helmet', - completed: true + completed: true, }, { id : 'bcb8923b-33cd-42c2-9203-170994fa24f5', content : 'Necklace', - completed: false + completed: false, }, { id : '726bdf6e-5cd7-408a-9a4f-0d7bb98c1c4b', content : 'Flowers', - completed: false - } + completed: false, + }, ], image : null, reminder : null, labels : ['f47c92e5-20b9-44d9-917f-9ff4ad25dfd0'], archived : false, - createdAt: now.set({hour: 16, minute: 4}).minus({day: 47}).toISO(), - updatedAt: null + createdAt: now.set({ + hour : 16, + minute: 4, + }).minus({day: 47}).toISO(), + updatedAt: null, }, { id : '71d223bb-abab-4183-8919-cd3600a950b4', @@ -124,35 +145,41 @@ export const notes = [ { id : 'e3cbc986-641c-4448-bc26-7ecfa0549c22', content : 'Bread', - completed: true + completed: true, }, { id : '34013111-ab2c-4b2f-9352-d2ae282f57d3', content : 'Milk', - completed: false + completed: false, }, { id : '0fbdea82-cc79-4433-8ee4-54fd542c380d', content : 'Onions', - completed: false + completed: false, }, { id : '66490222-743e-4262-ac91-773fcd98a237', content : 'Coffee', - completed: true + completed: true, }, { id : 'ab367215-d06a-48b0-a7b8-e161a63b07bd', content : 'Toilet Paper', - completed: true - } + completed: true, + }, ], image : null, - reminder : now.set({hour: 10, minute: 44}).minus({day: 35}).toISO(), + reminder : now.set({ + hour : 10, + minute: 44, + }).minus({day: 35}).toISO(), labels : ['b1cde9ee-e54d-4142-ad8b-cf55dafc9528'], archived : false, - createdAt: now.set({hour: 10, minute: 44}).minus({day: 35}).toISO(), - updatedAt: null + createdAt: now.set({ + hour : 10, + minute: 44, + }).minus({day: 35}).toISO(), + updatedAt: null, }, { id : '11fbeb98-ae5e-41ad-bed6-330886fd7906', @@ -162,38 +189,44 @@ export const notes = [ { id : '2711bac1-7d8a-443a-a4fe-506ef51d3fcb', content : 'Breakfast', - completed: true + completed: true, }, { id : 'e3a2d675-a3e5-4cef-9205-feeccaf949d7', content : 'Opening ceremony', - completed: true + completed: true, }, { id : '7a721b6d-9d85-48e0-b6c3-f927079af582', content : 'Talk 1: How we did it!', - completed: true + completed: true, }, { id : 'bdb4d5cd-5bb8-45e2-9186-abfd8307e429', content : 'Talk 2: How can you do it!', - completed: false + completed: false, }, { id : 'c8293bb4-8ab4-4310-bbc2-52ecf8ec0c54', content : 'Lunch break', - completed: false - } + completed: false, + }, ], image : null, - reminder : now.set({hour: 11, minute: 27}).minus({day: 14}).toISO(), + reminder : now.set({ + hour : 11, + minute: 27, + }).minus({day: 14}).toISO(), labels : [ 'b1cde9ee-e54d-4142-ad8b-cf55dafc9528', - 'e2f749f5-41ed-49d0-a92a-1c83d879e371' + 'e2f749f5-41ed-49d0-a92a-1c83d879e371', ], archived : false, - createdAt: now.set({hour: 11, minute: 27}).minus({day: 24}).toISO(), - updatedAt: null + createdAt: now.set({ + hour : 11, + minute: 27, + }).minus({day: 24}).toISO(), + updatedAt: null, }, { id : 'd46dee8b-8761-4b6d-a1df-449d6e6feb6a', @@ -201,11 +234,17 @@ export const notes = [ content : 'Organize the dad\'s surprise retirement party', tasks : null, image : null, - reminder : now.set({hour: 14, minute: 56}).minus({day: 25}).toISO(), + reminder : now.set({ + hour : 14, + minute: 56, + }).minus({day: 25}).toISO(), labels : ['f47c92e5-20b9-44d9-917f-9ff4ad25dfd0'], archived : false, - createdAt: now.set({hour: 14, minute: 56}).minus({day: 20}).toISO(), - updatedAt: null + createdAt: now.set({ + hour : 14, + minute: 56, + }).minus({day: 20}).toISO(), + updatedAt: null, }, { id : '6bc9f002-1675-417c-93c4-308fba39023e', @@ -216,11 +255,17 @@ export const notes = [ reminder : null, labels : [ '2dc11344-3507-48e0-83d6-1c047107f052', - 'b1cde9ee-e54d-4142-ad8b-cf55dafc9528' + 'b1cde9ee-e54d-4142-ad8b-cf55dafc9528', ], archived : false, - createdAt: now.set({hour: 9, minute: 32}).minus({day: 15}).toISO(), - updatedAt: now.set({hour: 17, minute: 6}).minus({day: 12}).toISO(), + createdAt: now.set({ + hour : 9, + minute: 32, + }).minus({day: 15}).toISO(), + updatedAt: now.set({ + hour : 17, + minute: 6, + }).minus({day: 12}).toISO(), }, { id : '15188348-78aa-4ed6-b5c2-028a214ba987', @@ -231,8 +276,11 @@ export const notes = [ reminder : null, labels : ['e2f749f5-41ed-49d0-a92a-1c83d879e371'], archived : false, - createdAt: now.set({hour: 20, minute: 5}).minus({day: 12}).toISO(), - updatedAt: null + createdAt: now.set({ + hour : 20, + minute: 5, + }).minus({day: 12}).toISO(), + updatedAt: null, }, { id : '1dbfc685-1a0a-4070-9ca7-ed896c523037', @@ -242,20 +290,26 @@ export const notes = [ { id : '004638bf-3ee6-47a5-891c-3be7b9f3df09', content : 'Wash the dishes', - completed: true + completed: true, }, { id : '86e6820b-1ae3-4c14-a13e-35605a0d654b', content : 'Walk the dog', - completed: false - } + completed: false, + }, ], image : null, - reminder : now.set({hour: 13, minute: 43}).minus({day: 2}).toISO(), + reminder : now.set({ + hour : 13, + minute: 43, + }).minus({day: 2}).toISO(), labels : ['bbc73458-940b-421c-8d5f-8dcd23a9b0d6'], archived : false, - createdAt: now.set({hour: 13, minute: 43}).minus({day: 7}).toISO(), - updatedAt: null + createdAt: now.set({ + hour : 13, + minute: 43, + }).minus({day: 7}).toISO(), + updatedAt: null, }, { id : '49548409-90a3-44d4-9a9a-f5af75aa9a66', @@ -266,11 +320,14 @@ export const notes = [ reminder : null, labels : [ 'f47c92e5-20b9-44d9-917f-9ff4ad25dfd0', - '6c288794-47eb-4605-8bdf-785b61a449d3' + '6c288794-47eb-4605-8bdf-785b61a449d3', ], archived : false, - createdAt: now.set({hour: 7, minute: 12}).minus({day: 2}).toISO(), - updatedAt: null + createdAt: now.set({ + hour : 7, + minute: 12, + }).minus({day: 2}).toISO(), + updatedAt: null, }, { id : 'c6d13a35-500d-4491-a3f3-6ca05d6632d3', @@ -281,11 +338,14 @@ export const notes = [ reminder : null, labels : [ 'bbc73458-940b-421c-8d5f-8dcd23a9b0d6', - '6c288794-47eb-4605-8bdf-785b61a449d3' + '6c288794-47eb-4605-8bdf-785b61a449d3', ], archived : true, - createdAt: now.set({hour: 17, minute: 14}).minus({day: 100}).toISO(), - updatedAt: null + createdAt: now.set({ + hour : 17, + minute: 14, + }).minus({day: 100}).toISO(), + updatedAt: null, }, { id : 'c6d13a35-500d-4491-a3f3-6ca05d6632d3', @@ -296,8 +356,11 @@ export const notes = [ reminder : null, labels : ['e2f749f5-41ed-49d0-a92a-1c83d879e371'], archived : true, - createdAt: now.set({hour: 10, minute: 29}).minus({day: 85}).toISO(), - updatedAt: null + createdAt: now.set({ + hour : 10, + minute: 29, + }).minus({day: 85}).toISO(), + updatedAt: null, }, { id : '46214383-f8e7-44da-aa2e-0b685e0c5027', @@ -308,10 +371,13 @@ export const notes = [ reminder : null, labels : [ 'e2f749f5-41ed-49d0-a92a-1c83d879e371', - 'b1cde9ee-e54d-4142-ad8b-cf55dafc9528' + 'b1cde9ee-e54d-4142-ad8b-cf55dafc9528', ], archived : true, - createdAt: now.set({hour: 15, minute: 30}).minus({day: 69}).toISO(), - updatedAt: null - } + createdAt: now.set({ + hour : 15, + minute: 30, + }).minus({day: 69}).toISO(), + updatedAt: null, + }, ]; diff --git a/src/app/mock-api/apps/scrumboard/api.ts b/src/app/mock-api/apps/scrumboard/api.ts index 4e7f246d..7225803d 100644 --- a/src/app/mock-api/apps/scrumboard/api.ts +++ b/src/app/mock-api/apps/scrumboard/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { assign, cloneDeep } from 'lodash-es'; import { FuseMockApiService, FuseMockApiUtils } from '@fuse/lib/mock-api'; import { boards as boardsData, cards as cardsData, labels as labelsData, lists as listsData, members as membersData } from 'app/mock-api/apps/scrumboard/data'; +import { assign, cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class ScrumboardMockApi { // Private @@ -38,20 +36,20 @@ export class ScrumboardMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/scrumboard/boards') - .reply(({request}) => { - + .reply(({request}) => + { // Clone the boards let boards = cloneDeep(this._boards); // Go through the boards and inject the members boards = boards.map(board => ({ ...board, - members: board.members.map(boardMember => this._members.find(member => boardMember === member.id)) + members: board.members.map(boardMember => this._members.find(member => boardMember === member.id)), })); return [ 200, - boards + boards, ]; }); @@ -60,8 +58,8 @@ export class ScrumboardMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/scrumboard/board') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id const id = request.params.get('id'); @@ -76,12 +74,13 @@ export class ScrumboardMockApi cards = cards.map(card => ( { ...card, - labels: card.labels.map(cardLabelId => this._labels.find(label => label.id === cardLabelId)) + labels: card.labels.map(cardLabelId => this._labels.find(label => label.id === cardLabelId)), } )); // Attach the board cards into corresponding lists - board.lists.forEach((list, index, array) => { + board.lists.forEach((list, index, array) => + { array[index].cards = cards.filter(item => item.boardId === id && item.listId === list.id).sort((a, b) => a.position - b.position); }); @@ -90,7 +89,7 @@ export class ScrumboardMockApi return [ 200, - cloneDeep(board) + cloneDeep(board), ]; }); @@ -99,8 +98,8 @@ export class ScrumboardMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/apps/scrumboard/board/list') - .reply(({request}) => { - + .reply(({request}) => + { // Get the list const newList = cloneDeep(request.body.list); @@ -112,7 +111,7 @@ export class ScrumboardMockApi return [ 200, - newList + newList, ]; }); @@ -121,8 +120,8 @@ export class ScrumboardMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/scrumboard/board/list') - .reply(({request}) => { - + .reply(({request}) => + { // Get the list const list = cloneDeep(request.body.list); @@ -130,8 +129,8 @@ export class ScrumboardMockApi let updatedList = null; // Find the list and update it - this._lists.forEach((item, index, lists) => { - + this._lists.forEach((item, index, lists) => + { if ( item.id === list.id ) { // Update the list @@ -144,7 +143,7 @@ export class ScrumboardMockApi return [ 200, - updatedList + updatedList, ]; }); @@ -153,8 +152,8 @@ export class ScrumboardMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/scrumboard/board/lists') - .reply(({request}) => { - + .reply(({request}) => + { // Get the lists const lists = cloneDeep(request.body.lists); @@ -162,8 +161,8 @@ export class ScrumboardMockApi const updatedLists = []; // Go through the lists - lists.forEach((item) => { - + lists.forEach((item) => + { // Find the list const index = this._lists.findIndex(list => item.id === list.id); @@ -176,7 +175,7 @@ export class ScrumboardMockApi return [ 200, - updatedLists + updatedLists, ]; }); @@ -185,8 +184,8 @@ export class ScrumboardMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onDelete('api/apps/scrumboard/board/list') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id const id = request.params.get('id'); @@ -199,7 +198,7 @@ export class ScrumboardMockApi return [ 200, - true + true, ]; }); @@ -208,8 +207,8 @@ export class ScrumboardMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPut('api/apps/scrumboard/board/card') - .reply(({request}) => { - + .reply(({request}) => + { // Get the card const newCard = cloneDeep(request.body.card); @@ -221,7 +220,7 @@ export class ScrumboardMockApi return [ 200, - newCard + newCard, ]; }); @@ -230,8 +229,8 @@ export class ScrumboardMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/scrumboard/board/card') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id and card const id = request.body.id; const card = cloneDeep(request.body.card); @@ -243,8 +242,8 @@ export class ScrumboardMockApi card.labels = card.labels.map(itemLabel => itemLabel.id); // Find the card and update it - this._cards.forEach((item, index, cards) => { - + this._cards.forEach((item, index, cards) => + { if ( item.id === id ) { // Update the card @@ -260,7 +259,7 @@ export class ScrumboardMockApi return [ 200, - updatedCard + updatedCard, ]; }); @@ -269,8 +268,8 @@ export class ScrumboardMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/scrumboard/board/cards') - .reply(({request}) => { - + .reply(({request}) => + { // Get the cards const cards = cloneDeep(request.body.cards); @@ -278,8 +277,8 @@ export class ScrumboardMockApi const updatedCards = []; // Go through the cards - cards.forEach((item) => { - + cards.forEach((item) => + { // Find the card const index = this._cards.findIndex(card => item.id === card.id); @@ -298,7 +297,7 @@ export class ScrumboardMockApi return [ 200, - updatedCards + updatedCards, ]; }); @@ -307,8 +306,8 @@ export class ScrumboardMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onDelete('api/apps/scrumboard/board/card') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id const id = request.params.get('id'); @@ -318,7 +317,7 @@ export class ScrumboardMockApi return [ 200, - true + true, ]; }); @@ -327,14 +326,14 @@ export class ScrumboardMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/scrumboard/board/card/positions') - .reply(({request}) => { - + .reply(({request}) => + { // Get the cards const cards = request.body.cards; // Go through the cards - this._cards.forEach((card) => { - + this._cards.forEach((card) => + { // Find this card's index within the cards array that comes with the request // and assign that index as the new position number for the card card.position = cards.findIndex(item => item.id === card.id && item.listId === card.listId && item.boardId === card.boardId); @@ -345,7 +344,7 @@ export class ScrumboardMockApi return [ 200, - updatedCards + updatedCards, ]; }); @@ -354,8 +353,8 @@ export class ScrumboardMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/scrumboard/board/labels') - .reply(({request}) => { - + .reply(({request}) => + { // Get the board id const boardId = request.params.get('boardId'); @@ -364,7 +363,7 @@ export class ScrumboardMockApi return [ 200, - cloneDeep(labels) + cloneDeep(labels), ]; }); @@ -373,8 +372,8 @@ export class ScrumboardMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPut('api/apps/scrumboard/board/label') - .reply(({request}) => { - + .reply(({request}) => + { // Get the label const newLabel = cloneDeep(request.body.label); @@ -386,7 +385,7 @@ export class ScrumboardMockApi return [ 200, - newLabel + newLabel, ]; }); @@ -395,8 +394,8 @@ export class ScrumboardMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/scrumboard/board/label') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id and label const id = request.body.id; const label = cloneDeep(request.body.label); @@ -405,8 +404,8 @@ export class ScrumboardMockApi let updatedLabel = null; // Find the label and update it - this._labels.forEach((item, index, labels) => { - + this._labels.forEach((item, index, labels) => + { if ( item.id === id ) { // Update the label @@ -419,7 +418,7 @@ export class ScrumboardMockApi return [ 200, - updatedLabel + updatedLabel, ]; }); @@ -428,8 +427,8 @@ export class ScrumboardMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onDelete('api/apps/scrumboard/board/label') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id const id = request.params.get('id'); @@ -441,13 +440,14 @@ export class ScrumboardMockApi const cardsWithLabel = this._cards.filter(card => card.labels.indexOf(id) > -1); // Iterate through them and remove the label - cardsWithLabel.forEach((card) => { + cardsWithLabel.forEach((card) => + { card.tags.splice(card.tags.indexOf(id), 1); }); return [ 200, - true + true, ]; }); } diff --git a/src/app/mock-api/apps/scrumboard/data.ts b/src/app/mock-api/apps/scrumboard/data.ts index d7510172..2bcaa883 100644 --- a/src/app/mock-api/apps/scrumboard/data.ts +++ b/src/app/mock-api/apps/scrumboard/data.ts @@ -9,13 +9,13 @@ export const boards = [ id : '2c82225f-2a6c-45d3-b18a-1132712a4234', title : 'Admin Dashboard', description : 'Roadmap for the new project', - icon : 'heroicons_outline:template', + icon : 'heroicons_outline:rectangle-group', lastActivity: now.startOf('day').minus({day: 1}).toISO(), members : [ '9c510cf3-460d-4a8c-b3be-bcc3db578c08', 'baa88231-0ee6-4028-96d5-7f187e0f4cd5', - '18bb18f3-ea7d-4465-8913-e8c9adf6f568' - ] + '18bb18f3-ea7d-4465-8913-e8c9adf6f568', + ], }, { id : '0168b519-3dab-4b46-b2ea-0e678e38a583', @@ -31,8 +31,8 @@ export const boards = [ 'fe0fec0d-002b-406f-87ab-47eb87ba577c', '23a47d2c-c6cb-40cc-af87-e946a9df5028', '6726643d-e8dc-42fa-83a6-b4ec06921a6b', - '0d1eb062-13d5-4286-b8d4-e0bea15f3d56' - ] + '0d1eb062-13d5-4286-b8d4-e0bea15f3d56', + ], }, { id : 'bc7db965-3c4f-4233-abf5-69bd70c3c175', @@ -41,35 +41,35 @@ export const boards = [ icon : 'heroicons_outline:home', lastActivity: now.startOf('day').minus({week: 1}).toISO(), members : [ - '6f6a1c34-390b-4b2e-97c8-ff0e0d787839' - ] - } + '6f6a1c34-390b-4b2e-97c8-ff0e0d787839', + ], + }, ]; export const lists = [ { id : 'a2df7786-519c-485a-a85f-c09a61cc5f37', boardId : '2c82225f-2a6c-45d3-b18a-1132712a4234', position: 65536, - title : 'To do' + title : 'To do', }, { id : '83ca2a34-65af-49c0-a42e-94a34003fcf2', boardId : '2c82225f-2a6c-45d3-b18a-1132712a4234', position: 131072, - title : 'In progress' + title : 'In progress', }, { id : 'a85ea483-f8f7-42d9-a314-3fed6aac22ab', boardId : '2c82225f-2a6c-45d3-b18a-1132712a4234', position: 196608, - title : 'In review' + title : 'In review', }, { id : '34cbef38-5687-4813-bd66-141a6df6d832', boardId : '2c82225f-2a6c-45d3-b18a-1132712a4234', position: 262144, - title : 'Completed' - } + title : 'Completed', + }, ]; export const cards = [ { @@ -84,9 +84,9 @@ export const cards = [ '51779701-818a-4a53-bc16-137c3bd7a564', 'e8364d69-9595-46ce-a0f9-ce428632a0ac', 'caff9c9b-a198-4564-b1f4-8b3df1d345bb', - 'f9eeb436-13a3-4208-a239-0d555960a567' + 'f9eeb436-13a3-4208-a239-0d555960a567', ], - dueDate : now.startOf('day').minus({day: 10}).toISO() + dueDate : now.startOf('day').minus({day: 10}).toISO(), }, { id : 'ed58add1-45a7-41db-887d-3ca7ee7f2719', @@ -95,9 +95,9 @@ export const cards = [ position: 131072, title : 'Do a research about most needed admin applications', labels : [ - 'e0175175-2784-48f1-a519-a1d2e397c9b3' + 'e0175175-2784-48f1-a519-a1d2e397c9b3', ], - dueDate : null + dueDate : null, }, { id : 'cd6897cb-acfd-4016-8b53-3f66a5b5fc68', @@ -106,9 +106,9 @@ export const cards = [ position: 196608, title : 'Implement the Project dashboard', labels : [ - 'caff9c9b-a198-4564-b1f4-8b3df1d345bb' + 'caff9c9b-a198-4564-b1f4-8b3df1d345bb', ], - dueDate : now.startOf('day').toISO() + dueDate : now.startOf('day').toISO(), }, { id : '6da8747f-b474-4c9a-9eba-5ef212285500', @@ -117,9 +117,9 @@ export const cards = [ position: 262144, title : 'Implement the Analytics dashboard', labels : [ - 'caff9c9b-a198-4564-b1f4-8b3df1d345bb' + 'caff9c9b-a198-4564-b1f4-8b3df1d345bb', ], - dueDate : now.startOf('day').minus({day: 1}).toISO() + dueDate : now.startOf('day').minus({day: 1}).toISO(), }, { id : '94fb1dee-dd83-4cca-acdd-02e96d3cc4f1', @@ -128,9 +128,9 @@ export const cards = [ position: 65536, title : 'Analytics dashboard design', labels : [ - 'e8364d69-9595-46ce-a0f9-ce428632a0ac' + 'e8364d69-9595-46ce-a0f9-ce428632a0ac', ], - dueDate : null + dueDate : null, }, { id : 'fc16f7d8-957d-43ed-ba85-20f99b5ce011', @@ -139,9 +139,9 @@ export const cards = [ position: 131072, title : 'Project dashboard design', labels : [ - 'e8364d69-9595-46ce-a0f9-ce428632a0ac' + 'e8364d69-9595-46ce-a0f9-ce428632a0ac', ], - dueDate : null + dueDate : null, }, { id : 'c0b32f1f-64ec-4f8d-8b11-a8dc809df331', @@ -150,9 +150,9 @@ export const cards = [ position: 65536, title : 'JWT Auth implementation', labels : [ - 'caff9c9b-a198-4564-b1f4-8b3df1d345bb' + 'caff9c9b-a198-4564-b1f4-8b3df1d345bb', ], - dueDate : null + dueDate : null, }, { id : '532c2747-be79-464a-9897-6a682bf22b64', @@ -161,7 +161,7 @@ export const cards = [ position: 65536, title : 'Create low fidelity wireframes', labels : [], - dueDate : null + dueDate : null, }, { id : '1d908efe-c830-476e-9e87-d06e30d89bc2', @@ -170,7 +170,7 @@ export const cards = [ position: 131072, title : 'Create high fidelity wireframes', labels : [], - dueDate : now.startOf('day').minus({day: 10}).toISO() + dueDate : now.startOf('day').minus({day: 10}).toISO(), }, { id : 'b1da11ed-7896-4826-962d-4b7b718896d4', @@ -179,9 +179,9 @@ export const cards = [ position: 196608, title : 'Collect information about most used admin layouts', labels : [ - 'e0175175-2784-48f1-a519-a1d2e397c9b3' + 'e0175175-2784-48f1-a519-a1d2e397c9b3', ], - dueDate : null + dueDate : null, }, { id : '3b7f3ceb-107f-42bc-a204-c268c9a56cb4', @@ -190,9 +190,9 @@ export const cards = [ position: 262144, title : 'Do a research about latest UI trends', labels : [ - 'e0175175-2784-48f1-a519-a1d2e397c9b3' + 'e0175175-2784-48f1-a519-a1d2e397c9b3', ], - dueDate : null + dueDate : null, }, { id : 'cd7f01c5-a941-4076-8cef-37da0354e643', @@ -201,137 +201,137 @@ export const cards = [ position: 327680, title : 'Learn more about UX', labels : [ - 'e0175175-2784-48f1-a519-a1d2e397c9b3' + 'e0175175-2784-48f1-a519-a1d2e397c9b3', ], - dueDate : null - } + dueDate : null, + }, ]; export const labels = [ { id : 'e0175175-2784-48f1-a519-a1d2e397c9b3', boardId: '2c82225f-2a6c-45d3-b18a-1132712a4234', - title : 'Research' + title : 'Research', }, { id : '51779701-818a-4a53-bc16-137c3bd7a564', boardId: '2c82225f-2a6c-45d3-b18a-1132712a4234', - title : 'Wireframing' + title : 'Wireframing', }, { id : 'e8364d69-9595-46ce-a0f9-ce428632a0ac', boardId: '2c82225f-2a6c-45d3-b18a-1132712a4234', - title : 'Design' + title : 'Design', }, { id : 'caff9c9b-a198-4564-b1f4-8b3df1d345bb', boardId: '2c82225f-2a6c-45d3-b18a-1132712a4234', - title : 'Development' + title : 'Development', }, { id : 'f9eeb436-13a3-4208-a239-0d555960a567', boardId: '2c82225f-2a6c-45d3-b18a-1132712a4234', - title : 'Bug' - } + title : 'Bug', + }, ]; export const members = [ { id : '6f6a1c34-390b-4b2e-97c8-ff0e0d787839', name : 'Angeline Vinson', - avatar: 'assets/images/avatars/female-01.jpg' + avatar: 'assets/images/avatars/female-01.jpg', }, { id : '4ce4be48-c8c0-468d-9df8-ddfda14cdb37', name : 'Roseann Greer', - avatar: 'assets/images/avatars/female-02.jpg' + avatar: 'assets/images/avatars/female-02.jpg', }, { id : '9c510cf3-460d-4a8c-b3be-bcc3db578c08', name : 'Lorraine Barnett', - avatar: 'assets/images/avatars/female-03.jpg' + avatar: 'assets/images/avatars/female-03.jpg', }, { id : '7ec887d9-b01a-4057-b5dc-aaed18637cc1', name : 'Middleton Bradford', - avatar: 'assets/images/avatars/male-01.jpg' + avatar: 'assets/images/avatars/male-01.jpg', }, { id : '74975a82-addb-427b-9b43-4d2e03331b68', name : 'Sue Hays', - avatar: 'assets/images/avatars/female-04.jpg' + avatar: 'assets/images/avatars/female-04.jpg', }, { id : '18bb18f3-ea7d-4465-8913-e8c9adf6f568', name : 'Keith Neal', - avatar: 'assets/images/avatars/male-02.jpg' + avatar: 'assets/images/avatars/male-02.jpg', }, { id : 'baa88231-0ee6-4028-96d5-7f187e0f4cd5', name : 'Wilkins Gilmore', - avatar: 'assets/images/avatars/male-03.jpg' + avatar: 'assets/images/avatars/male-03.jpg', }, { id : '0d1eb062-13d5-4286-b8d4-e0bea15f3d56', name : 'Baldwin Stein', - avatar: 'assets/images/avatars/male-04.jpg' + avatar: 'assets/images/avatars/male-04.jpg', }, { id : '5bf7ed5b-8b04-46b7-b364-005958b7d82e', name : 'Bobbie Cohen', - avatar: 'assets/images/avatars/female-05.jpg' + avatar: 'assets/images/avatars/female-05.jpg', }, { id : '93b1a72b-e2db-4f77-82d6-272047433508', name : 'Melody Peters', - avatar: 'assets/images/avatars/female-06.jpg' + avatar: 'assets/images/avatars/female-06.jpg', }, { id : 'd1f612e6-3e3b-481f-a8a9-f917e243b06e', name : 'Marquez Ryan', - avatar: 'assets/images/avatars/male-05.jpg' + avatar: 'assets/images/avatars/male-05.jpg', }, { id : '79ebb9ee-1e57-4706-810c-03edaec8f56d', name : 'Roberta Briggs', - avatar: 'assets/images/avatars/female-07.jpg' + avatar: 'assets/images/avatars/female-07.jpg', }, { id : '6726643d-e8dc-42fa-83a6-b4ec06921a6b', name : 'Robbie Buckley', - avatar: 'assets/images/avatars/female-08.jpg' + avatar: 'assets/images/avatars/female-08.jpg', }, { id : '8af617d7-898e-4992-beda-d5ac1d7ceda4', name : 'Garcia Whitney', - avatar: 'assets/images/avatars/male-06.jpg' + avatar: 'assets/images/avatars/male-06.jpg', }, { id : 'bcff44c4-9943-4adc-9049-08b1d922a658', name : 'Spencer Pate', - avatar: 'assets/images/avatars/male-07.jpg' + avatar: 'assets/images/avatars/male-07.jpg', }, { id : '54160ca2-29c9-4475-88a1-31a9307ad913', name : 'Monica Mcdaniel', - avatar: 'assets/images/avatars/female-09.jpg' + avatar: 'assets/images/avatars/female-09.jpg', }, { id : '51286603-3a43-444e-9242-f51fe57d5363', name : 'Mcmillan Durham', - avatar: 'assets/images/avatars/male-08.jpg' + avatar: 'assets/images/avatars/male-08.jpg', }, { id : '319ecb5b-f99c-4ee4-81b2-3aeffd1d4735', name : 'Jeoine Hebert', - avatar: 'assets/images/avatars/female-10.jpg' + avatar: 'assets/images/avatars/female-10.jpg', }, { id : 'fe0fec0d-002b-406f-87ab-47eb87ba577c', name : 'Susanna Kline', - avatar: 'assets/images/avatars/female-11.jpg' + avatar: 'assets/images/avatars/female-11.jpg', }, { id : '23a47d2c-c6cb-40cc-af87-e946a9df5028', name : 'Suzette Singleton', - avatar: 'assets/images/avatars/female-12.jpg' - } + avatar: 'assets/images/avatars/female-12.jpg', + }, ]; diff --git a/src/app/mock-api/apps/tasks/api.ts b/src/app/mock-api/apps/tasks/api.ts index 015a5d59..1b0bd3f0 100644 --- a/src/app/mock-api/apps/tasks/api.ts +++ b/src/app/mock-api/apps/tasks/api.ts @@ -1,12 +1,10 @@ import { Injectable } from '@angular/core'; -import { assign, cloneDeep } from 'lodash-es'; -import { FuseMockApiUtils } from '@fuse/lib/mock-api/mock-api.utils'; import { FuseMockApiService } from '@fuse/lib/mock-api/mock-api.service'; +import { FuseMockApiUtils } from '@fuse/lib/mock-api/mock-api.utils'; import { tags as tagsData, tasks as tasksData } from 'app/mock-api/apps/tasks/data'; +import { assign, cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class TasksMockApi { private _tags: any[] = tagsData; @@ -37,7 +35,7 @@ export class TasksMockApi .onGet('api/apps/tasks/tags') .reply(() => [ 200, - cloneDeep(this._tags) + cloneDeep(this._tags), ]); // ----------------------------------------------------------------------------------------------------- @@ -45,8 +43,8 @@ export class TasksMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/apps/tasks/tag') - .reply(({request}) => { - + .reply(({request}) => + { // Get the tag const newTag = cloneDeep(request.body.tag); @@ -58,7 +56,7 @@ export class TasksMockApi return [ 200, - newTag + newTag, ]; }); @@ -67,8 +65,8 @@ export class TasksMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/tasks/tag') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id and tag const id = request.body.id; const tag = cloneDeep(request.body.tag); @@ -77,8 +75,8 @@ export class TasksMockApi let updatedTag = null; // Find the tag and update it - this._tags.forEach((item, index, tags) => { - + this._tags.forEach((item, index, tags) => + { if ( item.id === id ) { // Update the tag @@ -91,7 +89,7 @@ export class TasksMockApi return [ 200, - updatedTag + updatedTag, ]; }); @@ -100,8 +98,8 @@ export class TasksMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onDelete('api/apps/tasks/tag') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id const id = request.params.get('id'); @@ -113,13 +111,14 @@ export class TasksMockApi const tasksWithTag = this._tasks.filter(task => task.tags.indexOf(id) > -1); // Iterate through them and remove the tag - tasksWithTag.forEach((task) => { + tasksWithTag.forEach((task) => + { task.tags.splice(task.tags.indexOf(id), 1); }); return [ 200, - true + true, ]; }); @@ -128,8 +127,8 @@ export class TasksMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/tasks/all') - .reply(() => { - + .reply(() => + { // Clone the tasks const tasks = cloneDeep(this._tasks); @@ -138,7 +137,7 @@ export class TasksMockApi return [ 200, - tasks + tasks, ]; }); @@ -147,8 +146,8 @@ export class TasksMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/tasks/search') - .reply(({request}) => { - + .reply(({request}) => + { // Get the search query const query = request.params.get('query'); @@ -163,10 +162,11 @@ export class TasksMockApi // Filter the tasks tasks = tasks.filter(task => task.title && task.title.toLowerCase().includes(query.toLowerCase()) || task.notes && task.notes.toLowerCase() - .includes(query.toLowerCase())); + .includes(query.toLowerCase())); // Mark the found chars - tasks.forEach((task) => { + tasks.forEach((task) => + { const re = new RegExp('(' + query.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') + ')', 'ig'); task.title = task.title.replace(re, '$1'); }); @@ -182,7 +182,7 @@ export class TasksMockApi return [ 200, - results + results, ]; }); @@ -191,14 +191,14 @@ export class TasksMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/tasks/order') - .reply(({request}) => { - + .reply(({request}) => + { // Get the tasks const tasks = request.body.tasks; // Go through the tasks - this._tasks.forEach((task) => { - + this._tasks.forEach((task) => + { // Find this task's index within the tasks array that comes with the request // and assign that index as the new order number for the task task.order = tasks.findIndex((item: any) => item.id === task.id); @@ -209,7 +209,7 @@ export class TasksMockApi return [ 200, - updatedTasks + updatedTasks, ]; }); @@ -218,8 +218,8 @@ export class TasksMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/apps/tasks/task') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id from the params const id = request.params.get('id'); @@ -231,7 +231,7 @@ export class TasksMockApi return [ 200, - task + task, ]; }); @@ -240,8 +240,8 @@ export class TasksMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/apps/tasks/task') - .reply(({request}) => { - + .reply(({request}) => + { // Generate a new task const newTask = { id : FuseMockApiUtils.guid(), @@ -252,20 +252,21 @@ export class TasksMockApi dueDate : null, priority : 1, tags : [], - order : 0 + order : 0, }; // Unshift the new task this._tasks.unshift(newTask); // Go through the tasks and update their order numbers - this._tasks.forEach((task, index) => { + this._tasks.forEach((task, index) => + { task.order = index; }); return [ 200, - newTask + newTask, ]; }); @@ -274,8 +275,8 @@ export class TasksMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/apps/tasks/task') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id and task const id = request.body.id; const task = cloneDeep(request.body.task); @@ -284,8 +285,8 @@ export class TasksMockApi let updatedTask = null; // Find the task and update it - this._tasks.forEach((item, index, tasks) => { - + this._tasks.forEach((item, index, tasks) => + { if ( item.id === id ) { // Update the task @@ -298,7 +299,7 @@ export class TasksMockApi return [ 200, - updatedTask + updatedTask, ]; }); @@ -307,8 +308,8 @@ export class TasksMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onDelete('api/apps/tasks/task') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id const id = request.params.get('id'); @@ -318,7 +319,7 @@ export class TasksMockApi return [ 200, - true + true, ]; }); } diff --git a/src/app/mock-api/apps/tasks/data.ts b/src/app/mock-api/apps/tasks/data.ts index 44ddf93d..14915298 100644 --- a/src/app/mock-api/apps/tasks/data.ts +++ b/src/app/mock-api/apps/tasks/data.ts @@ -2,130 +2,130 @@ export const tags = [ { id : 'a0bf42ca-c3a5-47be-8341-b9c0bb8ef270', - title: 'Api' + title: 'Api', }, { id : 'c6058d0d-a4b0-4453-986a-9d249ec230b1', - title: 'Frontend' + title: 'Frontend', }, { id : 'd3ef4226-ef2c-43b0-a986-3e3e07f32799', - title: 'Bug' + title: 'Bug', }, { id : '51483dd3-cb98-4400-9128-4bd66b455807', - title: 'Backend' + title: 'Backend', }, { id : '91658b8a-f382-4b0c-a53f-e9390351c2c5', - title: 'Urgent' + title: 'Urgent', }, { id : '2b884143-419a-45ca-a7f6-48f99f4e7798', - title: 'Discuss' - } + title: 'Discuss', + }, ]; export const members = [ { id : '65f1c421-83c5-4cdf-99da-d97794328679', name : 'Angeline Vinson', - avatar: 'assets/images/avatars/female-01.jpg' + avatar: 'assets/images/avatars/female-01.jpg', }, { id : '88a2a76c-0e6f-49da-b617-46d7c3b6e64d', name : 'Roseann Greer', - avatar: 'assets/images/avatars/female-02.jpg' + avatar: 'assets/images/avatars/female-02.jpg', }, { id : '6ab7751e-6579-40af-9171-231c0fd6a993', name : 'Lorraine Barnett', - avatar: 'assets/images/avatars/female-03.jpg' + avatar: 'assets/images/avatars/female-03.jpg', }, { id : '3e353312-6a9b-46af-adda-5061b06e806b', name : 'Middleton Bradford', - avatar: 'assets/images/avatars/male-01.jpg' + avatar: 'assets/images/avatars/male-01.jpg', }, { id : '3a23baf7-2db8-4ef5-8d49-86d3e708dff5', name : 'Sue Hays', - avatar: 'assets/images/avatars/female-04.jpg' + avatar: 'assets/images/avatars/female-04.jpg', }, { id : 'e62ab50e-90d3-4ed7-a911-093bb44d0c50', name : 'Keith Neal', - avatar: 'assets/images/avatars/male-02.jpg' + avatar: 'assets/images/avatars/male-02.jpg', }, { id : '368aab1e-ebce-43ba-8925-4cf13937867b', name : 'Wilkins Gilmore', - avatar: 'assets/images/avatars/male-03.jpg' + avatar: 'assets/images/avatars/male-03.jpg', }, { id : 'ef44b39b-3272-45f5-a15e-264c3b2d118e', name : 'Baldwin Stein', - avatar: 'assets/images/avatars/male-04.jpg' + avatar: 'assets/images/avatars/male-04.jpg', }, { id : '7f5db993-ec36-412f-9db3-16d076a98807', name : 'Bobbie Cohen', - avatar: 'assets/images/avatars/female-05.jpg' + avatar: 'assets/images/avatars/female-05.jpg', }, { id : 'e2c81627-a8a1-4bbc-9adc-ac4281e040d4', name : 'Melody Peters', - avatar: 'assets/images/avatars/female-06.jpg' + avatar: 'assets/images/avatars/female-06.jpg', }, { id : 'a21ec32e-54ba-480b-afdc-d1cbe18a96fd', name : 'Marquez Ryan', - avatar: 'assets/images/avatars/male-05.jpg' + avatar: 'assets/images/avatars/male-05.jpg', }, { id : '45e09584-1a54-40e6-8210-1de4d1c05593', name : 'Roberta Briggs', - avatar: 'assets/images/avatars/female-07.jpg' + avatar: 'assets/images/avatars/female-07.jpg', }, { id : '6617b0a3-0ccd-44ea-af78-c6633115d683', name : 'Robbie Buckley', - avatar: 'assets/images/avatars/female-08.jpg' + avatar: 'assets/images/avatars/female-08.jpg', }, { id : '271e6a06-0d37-433d-bc8d-607b12bcbed9', name : 'Garcia Whitney', - avatar: 'assets/images/avatars/male-06.jpg' + avatar: 'assets/images/avatars/male-06.jpg', }, { id : '65e15136-5168-4655-8bbc-e3ad8a94bf67', name : 'Spencer Pate', - avatar: 'assets/images/avatars/male-07.jpg' + avatar: 'assets/images/avatars/male-07.jpg', }, { id : '28dcda24-812d-4086-9638-b28bd85beecc', name : 'Monica Mcdaniel', - avatar: 'assets/images/avatars/female-09.jpg' + avatar: 'assets/images/avatars/female-09.jpg', }, { id : '56a3e7ce-01da-43fc-ab9f-a8a39fa980de', name : 'Mcmillan Durham', - avatar: 'assets/images/avatars/male-08.jpg' + avatar: 'assets/images/avatars/male-08.jpg', }, { id : '4d24cf48-a322-4d53-89cb-9140dfd5c6ba', name : 'Jfuseine Hebert', - avatar: 'assets/images/avatars/female-10.jpg' + avatar: 'assets/images/avatars/female-10.jpg', }, { id : 'b2e97a96-2f15-4e3d-aff5-4ddf2af924d4', name : 'Susanna Kline', - avatar: 'assets/images/avatars/female-11.jpg' + avatar: 'assets/images/avatars/female-11.jpg', }, { id : '4678ad07-e057-48a9-a5d1-3cf98e722eeb', name : 'Suzette Singleton', - avatar: 'assets/images/avatars/female-12.jpg' - } + avatar: 'assets/images/avatars/female-12.jpg', + }, ]; export const tasks = [ { @@ -138,22 +138,22 @@ export const tasks = [ priority : 1, tags : [ '91658b8a-f382-4b0c-a53f-e9390351c2c5', - '51483dd3-cb98-4400-9128-4bd66b455807' + '51483dd3-cb98-4400-9128-4bd66b455807', ], assignedTo: null, subTasks : [ { id : '2768a969-a316-449b-bf82-93cff4252cbf', title : 'Minim irure fugiat ullamco irure', - completed: false + completed: false, }, { id : '6cc5ac8f-3a02-47e6-ad4b-0bd0222e2717', title : 'Sint velit ex in adipisicing fugiat', - completed: false - } + completed: false, + }, ], - order : 0 + order : 0, }, { id : '0fcece82-1691-4b98-a9b9-b63218f9deef', @@ -166,7 +166,7 @@ export const tasks = [ tags : [], assignedTo: 'e2c81627-a8a1-4bbc-9adc-ac4281e040d4', subTasks : [], - order : 1 + order : 1, }, { id : '2e6971cd-49d5-49f1-8cbd-fba5c71e6062', @@ -179,22 +179,22 @@ export const tasks = [ tags : [ 'c6058d0d-a4b0-4453-986a-9d249ec230b1', '2b884143-419a-45ca-a7f6-48f99f4e7798', - '91658b8a-f382-4b0c-a53f-e9390351c2c5' + '91658b8a-f382-4b0c-a53f-e9390351c2c5', ], assignedTo: '88a2a76c-0e6f-49da-b617-46d7c3b6e64d', subTasks : [ { id : 'b9566b52-82cd-4d2a-b9b6-240c6b44e52b', title : 'Nulla officia elit adipisicing', - completed: false + completed: false, }, { id : '76f4dc8d-4803-4d98-b461-367a1d3746a8', title : 'Magna nisi ut aliquip aliquip amet deserunt', - completed: false - } + completed: false, + }, ], - order : 2 + order : 2, }, { id : '974f93b8-336f-4eec-b011-9ddb412ee828', @@ -205,32 +205,32 @@ export const tasks = [ dueDate : null, priority : 2, tags : [ - 'a0bf42ca-c3a5-47be-8341-b9c0bb8ef270' + 'a0bf42ca-c3a5-47be-8341-b9c0bb8ef270', ], assignedTo: null, subTasks : [ { id : '8e9644dc-0815-4258-8a08-4ce8d9912ec0', title : 'Adipisicing aliquip voluptate veniam', - completed: false + completed: false, }, { id : 'fc0f2283-3802-4ebe-b164-774bc2b84549', title : 'Magna amet adipisicing velit nisi est', - completed: false + completed: false, }, { id : '8a74b56f-14c0-4700-b737-8ccfa912f4b6', title : 'Eiusmod dolore voluptate excepteur ipsum nostrud', - completed: false + completed: false, }, { id : '439ed5b7-156d-414a-ba20-ce779e3ec037', title : 'Laborum adipisicing quis culpa amet', - completed: true - } + completed: true, + }, ], - order : 3 + order : 3, }, { id : '5d877fc7-b881-4527-a6aa-d39d642feb23', @@ -241,22 +241,22 @@ export const tasks = [ dueDate : null, priority : 1, tags : [ - '51483dd3-cb98-4400-9128-4bd66b455807' + '51483dd3-cb98-4400-9128-4bd66b455807', ], assignedTo: '4678ad07-e057-48a9-a5d1-3cf98e722eeb', subTasks : [ { id : 'b076c673-7d76-43b5-aaca-d0c496f397e5', title : 'Esse dolore nostrud lorem consectetur', - completed: false + completed: false, }, { id : 'a01522ff-07fa-4fbd-a168-47802446b705', title : 'Lorem velit voluptate laborum ad', - completed: false - } + completed: false, + }, ], - order : 4 + order : 4, }, { id : '3d1c26c5-1e5e-4eb6-8006-ed6037ed9aca', @@ -267,11 +267,11 @@ export const tasks = [ dueDate : '2018-09-29T19:30:45.325Z', priority : 1, tags : [ - 'c6058d0d-a4b0-4453-986a-9d249ec230b1' + 'c6058d0d-a4b0-4453-986a-9d249ec230b1', ], assignedTo: '6617b0a3-0ccd-44ea-af78-c6633115d683', subTasks : [], - order : 5 + order : 5, }, { id : '11bd2b9a-85b4-41c9-832c-bd600dfa3a52', @@ -287,10 +287,10 @@ export const tasks = [ { id : '9cd8eba8-7c41-4230-9d80-f71f7ed1cfe9', title : 'Eu exercitation proident dolore velit', - completed: true - } + completed: true, + }, ], - order : 6 + order : 6, }, { id : 'f55c023a-785e-4f0f-b5b7-47da75224deb', @@ -306,25 +306,25 @@ export const tasks = [ { id : 'cdb08aa2-980d-48c6-b15c-7970775b7b5a', title : 'Veniam magna minim duis', - completed: true + completed: true, }, { id : 'dc19e213-687e-4391-8b61-9aabed2fb288', title : 'Eu dolore et adipisicing commodo adipisicing consequat', - completed: false + completed: false, }, { id : '7e365400-59b9-4ec9-b397-8bf40de56ec4', title : 'Do culpa quis consequat cupidatat', - completed: true + completed: true, }, { id : '1a0f98b0-dfc4-4ac9-b8f5-ce322da2a849', title : 'Est duis do sunt esse magna ex', - completed: true - } + completed: true, + }, ], - order : 7 + order : 7, }, { id : 'c577a67d-357a-4b88-96e8-a0ee1fe9162e', @@ -336,22 +336,22 @@ export const tasks = [ priority : 1, tags : [ 'c6058d0d-a4b0-4453-986a-9d249ec230b1', - 'a0bf42ca-c3a5-47be-8341-b9c0bb8ef270' + 'a0bf42ca-c3a5-47be-8341-b9c0bb8ef270', ], assignedTo: 'a21ec32e-54ba-480b-afdc-d1cbe18a96fd', subTasks : [ { id : 'b1849778-a69c-46ad-8373-99aa6a655965', title : 'Ipsum ipsum occaecat nulla', - completed: true + completed: true, }, { id : '8325f17a-2af0-4f64-b043-8ffdaaa62408', title : 'Quis proident amet id non nulla', - completed: true - } + completed: true, + }, ], - order : 8 + order : 8, }, { id : '1a680c29-7ece-4a80-9709-277ad4da8b4b', @@ -363,11 +363,11 @@ export const tasks = [ priority : 2, tags : [ 'a0bf42ca-c3a5-47be-8341-b9c0bb8ef270', - '2b884143-419a-45ca-a7f6-48f99f4e7798' + '2b884143-419a-45ca-a7f6-48f99f4e7798', ], assignedTo: '3e353312-6a9b-46af-adda-5061b06e806b', subTasks : [], - order : 9 + order : 9, }, { id : 'c49c2216-8bdb-4df0-be25-d5ea1dbb5688', @@ -378,17 +378,17 @@ export const tasks = [ dueDate : '2019-08-10T06:18:17.785Z', priority : 1, tags : [ - 'a0bf42ca-c3a5-47be-8341-b9c0bb8ef270' + 'a0bf42ca-c3a5-47be-8341-b9c0bb8ef270', ], assignedTo: '368aab1e-ebce-43ba-8925-4cf13937867b', subTasks : [ { id : '756ceee7-a9b2-45b6-9f22-5be974da7cf5', title : 'Irure incididunt adipisicing consectetur enim', - completed: false - } + completed: false, + }, ], - order : 10 + order : 10, }, { id : '3ef176fa-6cba-4536-9f43-540c686a4faa', @@ -399,37 +399,37 @@ export const tasks = [ dueDate : '2024-08-23T14:33:06.227Z', priority : 2, tags : [ - '91658b8a-f382-4b0c-a53f-e9390351c2c5' + '91658b8a-f382-4b0c-a53f-e9390351c2c5', ], assignedTo: '271e6a06-0d37-433d-bc8d-607b12bcbed9', subTasks : [ { id : '35b06803-2019-4025-b642-841e44de7571', title : 'Reprehenderit et eiusmod do consectetur ipsum', - completed: false + completed: false, }, { id : '7ec47bbc-e644-45ae-84e3-de36ee35a22b', title : 'Officia lorem tempor occaecat fugiat elit elit', - completed: false + completed: false, }, { id : 'b4560302-7bed-412c-8e43-a5ce0bce5eed', title : 'Incididunt commodo amet fugiat nulla et', - completed: false + completed: false, }, { id : '494bfcac-44ee-46db-add2-0e5dbc3952c4', title : 'Enim ipsum fugiat ipsum aute quis', - completed: true + completed: true, }, { id : 'ffa45bc0-4466-4584-891a-0f75e39766c1', title : 'Esse excepteur commodo ullamco', - completed: true - } + completed: true, + }, ], - order : 11 + order : 11, }, { id : '7bc6b7b4-7ad8-4cbe-af36-7301642d35fb', @@ -442,37 +442,37 @@ export const tasks = [ tags : [ '51483dd3-cb98-4400-9128-4bd66b455807', 'd3ef4226-ef2c-43b0-a986-3e3e07f32799', - 'a0bf42ca-c3a5-47be-8341-b9c0bb8ef270' + 'a0bf42ca-c3a5-47be-8341-b9c0bb8ef270', ], assignedTo: '4d24cf48-a322-4d53-89cb-9140dfd5c6ba', subTasks : [ { id : 'a72f756b-e1db-4492-96b9-93785400e8bb', title : 'Amet eiusmod consequat non culpa', - completed: false + completed: false, }, { id : '07fb282a-141a-4014-96d2-030894a6e211', title : 'Nulla laboris veniam qui et nostrud enim', - completed: false + completed: false, }, { id : '40629855-8ba8-4590-9ebe-2e2ff3f20820', title : 'Est est nulla cillum aliquip duis ipsum', - completed: true + completed: true, }, { id : '96e283b2-cd3e-4ab9-9770-07247691304b', title : 'Non elit tempor commodo enim laboris', - completed: true + completed: true, }, { id : '95c6a48a-4e42-4909-8c25-0fafd62aeefa', title : 'Proident est anim do laborum nostrud', - completed: false - } + completed: false, + }, ], - order : 12 + order : 12, }, { id : '56c9ed66-a1d2-4803-a160-fba29b826cb4', @@ -483,37 +483,37 @@ export const tasks = [ dueDate : '2023-09-15T15:12:36.910Z', priority : 0, tags : [ - '2b884143-419a-45ca-a7f6-48f99f4e7798' + '2b884143-419a-45ca-a7f6-48f99f4e7798', ], assignedTo: '3a23baf7-2db8-4ef5-8d49-86d3e708dff5', subTasks : [ { id : 'f1890ef6-89ed-47ca-a124-8305d7fe71fd', title : 'Sit eu aliqua et et', - completed: true + completed: true, }, { id : '647f63b9-27b8-4d65-8e09-874ef5a48573', title : 'Voluptate esse cillum commodo', - completed: true + completed: true, }, { id : '2934f015-1fd1-41c0-8b5a-d7adb5c50553', title : 'Qui commodo fugiat eiusmod sint anim', - completed: true + completed: true, }, { id : 'f964fc8d-662c-4586-a39f-dab6674f2760', title : 'Consequat nulla anim velit reprehenderit', - completed: false + completed: false, }, { id : 'ab3dd1a9-a9fb-4864-8630-da270cf71ee5', title : 'Adipisicing officia ex laboris', - completed: true - } + completed: true, + }, ], - order : 13 + order : 13, }, { id : '21c1b662-33c8-44d7-9530-91896afeeac7', @@ -529,25 +529,25 @@ export const tasks = [ { id : 'e5fece14-cc26-40df-9319-23568cf89662', title : 'Tempor qui eiusmod et', - completed: false + completed: false, }, { id : '30e6117d-e2a2-4f97-a674-19a554a94829', title : 'Tempor magna eu dolore aliquip', - completed: false + completed: false, }, { id : 'a5dd7270-1bc7-4b2b-abf0-9366eaca972d', title : 'Lorem duis esse commodo', - completed: false + completed: false, }, { id : '40ffd839-046f-4272-9232-5391d62477f7', title : 'Minim aute eu ut id', - completed: false - } + completed: false, + }, ], - order : 14 + order : 14, }, { id : '5fa52c90-82be-41ae-96ec-5fc67cf054a4', @@ -558,27 +558,27 @@ export const tasks = [ dueDate : '2019-10-13T08:25:17.064Z', priority : 0, tags : [ - '2b884143-419a-45ca-a7f6-48f99f4e7798' + '2b884143-419a-45ca-a7f6-48f99f4e7798', ], assignedTo: 'b2e97a96-2f15-4e3d-aff5-4ddf2af924d4', subTasks : [ { id : '2ef107fb-3c21-4801-861f-abaf4fd6def0', title : 'Voluptate qui excepteur id in', - completed: true + completed: true, }, { id : '0afb4ebf-fcc7-47dc-8351-a88cb47c39ee', title : 'Laborum ipsum aute nisi anim', - completed: false + completed: false, }, { id : '2f22bff2-72be-4ff5-b037-c3bf0f1d5637', title : 'Amet duis velit sunt non', - completed: false - } + completed: false, + }, ], - order : 15 + order : 15, }, { id : 'b6d8909f-f36d-4885-8848-46b8230d4476', @@ -589,11 +589,11 @@ export const tasks = [ dueDate : '2020-02-03T05:39:30.880Z', priority : 1, tags : [ - '2b884143-419a-45ca-a7f6-48f99f4e7798' + '2b884143-419a-45ca-a7f6-48f99f4e7798', ], assignedTo: '65e15136-5168-4655-8bbc-e3ad8a94bf67', subTasks : [], - order : 16 + order : 16, }, { id : '9496235d-4d0c-430b-817e-1cba96404f95', @@ -609,20 +609,20 @@ export const tasks = [ { id : '9e710568-306f-47f9-b397-5634dc7a1a52', title : 'Lorem excepteur non anim non exercitation fugiat', - completed: true + completed: true, }, { id : 'bd10d3d5-22d1-467d-aa6b-431d23203f51', title : 'Nulla non in occaecat nulla', - completed: false + completed: false, }, { id : '0a768b47-7248-4000-a201-e51f86401317', title : 'Dolor qui deserunt duis enim do veniam', - completed: true - } + completed: true, + }, ], - order : 17 + order : 17, }, { id : '7fde17e6-4ac1-47dd-a363-2f4f14dcf76a', @@ -636,27 +636,27 @@ export const tasks = [ '2b884143-419a-45ca-a7f6-48f99f4e7798', '91658b8a-f382-4b0c-a53f-e9390351c2c5', 'c6058d0d-a4b0-4453-986a-9d249ec230b1', - 'a0bf42ca-c3a5-47be-8341-b9c0bb8ef270' + 'a0bf42ca-c3a5-47be-8341-b9c0bb8ef270', ], assignedTo: '88a2a76c-0e6f-49da-b617-46d7c3b6e64d', subTasks : [ { id : 'f82708c3-2b58-4ac0-b58c-164c0804c631', title : 'Mollit laborum tempor lorem cupidatat dolore nostrud', - completed: true + completed: true, }, { id : '0017121e-79fc-403c-bb1c-84dc28f79e06', title : 'Nisi sint sint et et ad', - completed: true + completed: true, }, { id : '9073242a-5be6-487a-9e50-ea298700af79', title : 'Duis nulla ad magna', - completed: false - } + completed: false, + }, ], - order : 18 + order : 18, }, { id : '90a3ed58-e13b-40cf-9219-f933bf9c9b8f', @@ -667,22 +667,22 @@ export const tasks = [ dueDate : '2023-10-04T15:48:16.507Z', priority : 1, tags : [ - 'd3ef4226-ef2c-43b0-a986-3e3e07f32799' + 'd3ef4226-ef2c-43b0-a986-3e3e07f32799', ], assignedTo: null, subTasks : [ { id : 'eaab24ed-cf9e-4ee7-b7ff-acd8f62f617a', title : 'Eiusmod nulla enim laborum deserunt in', - completed: false + completed: false, }, { id : '700d067c-c5be-4532-95e3-ba575effae7c', title : 'Sunt sint ea est commodo id', - completed: false - } + completed: false, + }, ], - order : 19 + order : 19, }, { id : '81ac908c-35a2-4705-8d75-539863c35c09', @@ -693,17 +693,17 @@ export const tasks = [ dueDate : '2024-02-01T10:02:52.745Z', priority : 1, tags : [ - 'a0bf42ca-c3a5-47be-8341-b9c0bb8ef270' + 'a0bf42ca-c3a5-47be-8341-b9c0bb8ef270', ], assignedTo: '368aab1e-ebce-43ba-8925-4cf13937867b', subTasks : [ { id : '651a87c6-4376-42c4-9dfd-fad7525e7eb3', title : 'Aliqua est excepteur excepteur deserunt id', - completed: true - } + completed: true, + }, ], - order : 20 + order : 20, }, { id : '153376ed-691f-4dfd-ae99-e204a49edc44', @@ -716,7 +716,7 @@ export const tasks = [ tags : [], assignedTo: '65f1c421-83c5-4cdf-99da-d97794328679', subTasks : [], - order : 21 + order : 21, }, { id : '1ebde495-1bcd-4e8f-b6f6-cf63b521ad06', @@ -732,15 +732,15 @@ export const tasks = [ { id : 'c5a8b915-0b0f-4dd3-a1a3-e538fa191747', title : 'Adipisicing do minim voluptate', - completed: true + completed: true, }, { id : '52b50615-0d80-42b6-97cb-1b71eaec1632', title : 'Et eiusmod est adipisicing officia', - completed: true - } + completed: true, + }, ], - order : 22 + order : 22, }, { id : '4e7ce72f-863a-451f-9160-cbd4fbbc4c3d', @@ -756,25 +756,25 @@ export const tasks = [ { id : '654c9b65-6f94-4ae7-bf11-27f979cc670e', title : 'Esse exercitation cillum ex', - completed: false + completed: false, }, { id : '3c49aba9-1e83-471f-b8b8-21cc7d20292e', title : 'Duis sunt commodo fugiat irure minim', - completed: false + completed: false, }, { id : '4fcb2e0b-677c-4915-978d-70e82b16745a', title : 'Anim in qui ut', - completed: false + completed: false, }, { id : 'dd864dea-61d2-4fb0-b433-286993b6ad08', title : 'Reprehenderit irure exercitation occaecat', - completed: true - } + completed: true, + }, ], - order : 23 + order : 23, }, { id : '0795a74f-7a84-4edf-8d66-296cdef70003', @@ -786,32 +786,32 @@ export const tasks = [ priority : 2, tags : [ 'c6058d0d-a4b0-4453-986a-9d249ec230b1', - 'd3ef4226-ef2c-43b0-a986-3e3e07f32799' + 'd3ef4226-ef2c-43b0-a986-3e3e07f32799', ], assignedTo: '6617b0a3-0ccd-44ea-af78-c6633115d683', subTasks : [ { id : '56f3dccb-a72b-485c-94e7-fe68477023e2', title : 'Velit velit voluptate in occaecat nostrud', - completed: true + completed: true, }, { id : '70cb77a9-82fa-407b-a63e-55aedc241495', title : 'Minim anim velit eiusmod qui', - completed: true + completed: true, }, { id : '08a31dbc-6be4-469b-9ff4-0ed5342082bd', title : 'Laboris commodo laborum irure', - completed: false + completed: false, }, { id : '34d6c603-6f5a-4bc4-9f94-12bfd940c3c7', title : 'Mollit mollit nostrud mollit id velit ullamco', - completed: true - } + completed: true, + }, ], - order : 24 + order : 24, }, { id : '05532574-c102-4228-89a8-55fff32ec6fc', @@ -822,11 +822,11 @@ export const tasks = [ dueDate : '2023-12-08T23:20:50.910Z', priority : 2, tags : [ - 'a0bf42ca-c3a5-47be-8341-b9c0bb8ef270' + 'a0bf42ca-c3a5-47be-8341-b9c0bb8ef270', ], assignedTo: null, subTasks : [], - order : 25 + order : 25, }, { id : 'b3917466-aa51-4293-9d5b-120b0ce6635c', @@ -842,30 +842,30 @@ export const tasks = [ { id : '3a4c4013-27f1-4164-8a64-e7bb4f1a63a9', title : 'Adipisicing excepteur mollit non sunt amet laboris', - completed: false + completed: false, }, { id : '103bf29e-06a1-4d30-89b9-b67aa442d605', title : 'Consectetur voluptate anim labore aliqua elit', - completed: false + completed: false, }, { id : 'b77729f1-9ed1-4d9e-95d0-347f4cd0943c', title : 'Laboris occaecat aliquip esse magna nulla', - completed: true + completed: true, }, { id : '695aace7-8679-4b35-96c7-cf23737cd9f1', title : 'Exercitation eu aliquip cillum ipsum', - completed: false + completed: false, }, { id : 'ffd45f31-7f0a-4c6a-b62c-18148f6841db', title : 'Minim aute ad et esse officia nostrud', - completed: true - } + completed: true, + }, ], - order : 26 + order : 26, }, { id : '2f2fb472-24d4-4a00-aa80-d513fa6c059c', @@ -876,32 +876,32 @@ export const tasks = [ dueDate : '2020-06-08T00:23:24.051Z', priority : 1, tags : [ - '91658b8a-f382-4b0c-a53f-e9390351c2c5' + '91658b8a-f382-4b0c-a53f-e9390351c2c5', ], assignedTo: '65f1c421-83c5-4cdf-99da-d97794328679', subTasks : [ { id : '4028671b-ef75-4b76-a03f-9f2bddadc618', title : 'Commodo excepteur proident ipsum reprehenderit', - completed: true + completed: true, }, { id : 'b122168f-8327-408f-8b9c-498dd6ba6c81', title : 'Mollit ullamco eiusmod exercitation deserunt', - completed: false + completed: false, }, { id : 'f233d812-be56-4d8a-ab14-a083f7d7cd70', title : 'Mollit nostrud ea deserunt mollit aliquip', - completed: false + completed: false, }, { id : '0833be70-82b2-46cb-ad84-f11120ea634a', title : 'Labore occaecat proident ullamco', - completed: false - } + completed: false, + }, ], - order : 27 + order : 27, }, { id : '2fffd148-7644-466d-8737-7dde88c54154', @@ -912,17 +912,17 @@ export const tasks = [ dueDate : '2024-01-27T11:17:52.198Z', priority : 1, tags : [ - 'd3ef4226-ef2c-43b0-a986-3e3e07f32799' + 'd3ef4226-ef2c-43b0-a986-3e3e07f32799', ], assignedTo: 'b2e97a96-2f15-4e3d-aff5-4ddf2af924d4', subTasks : [ { id : 'd2ffe439-2f80-4dce-84a7-d4ac5e17bbf3', title : 'Occaecat anim sunt dolor proident', - completed: false - } + completed: false, + }, ], - order : 28 + order : 28, }, { id : '24a1034e-b4d6-4a86-a1ea-90516e87e810', @@ -933,21 +933,21 @@ export const tasks = [ dueDate : '2024-06-24T04:38:28.087Z', priority : 1, tags : [ - '51483dd3-cb98-4400-9128-4bd66b455807' + '51483dd3-cb98-4400-9128-4bd66b455807', ], assignedTo: '7f5db993-ec36-412f-9db3-16d076a98807', subTasks : [ { id : '75f55d75-c835-4a6c-a2ae-7a42ae3a7c9d', title : 'Et laboris quis lorem est laboris', - completed: true + completed: true, }, { id : 'c7c91a52-b060-45af-b1b1-a4cff26bf11e', title : 'Reprehenderit elit dolore exercitation pariatur', - completed: true - } + completed: true, + }, ], - order : 29 - } + order : 29, + }, ]; diff --git a/src/app/mock-api/common/auth/api.ts b/src/app/mock-api/common/auth/api.ts index 5b0dfa4e..cec5d6a8 100644 --- a/src/app/mock-api/common/auth/api.ts +++ b/src/app/mock-api/common/auth/api.ts @@ -1,14 +1,12 @@ import { Injectable } from '@angular/core'; -import Base64 from 'crypto-js/enc-base64'; -import HmacSHA256 from 'crypto-js/hmac-sha256'; -import Utf8 from 'crypto-js/enc-utf8'; -import { cloneDeep } from 'lodash-es'; import { FuseMockApiService } from '@fuse/lib/mock-api'; import { user as userData } from 'app/mock-api/common/user/data'; +import Base64 from 'crypto-js/enc-base64'; +import Utf8 from 'crypto-js/enc-utf8'; +import HmacSHA256 from 'crypto-js/hmac-sha256'; +import { cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class AuthMockApi { private readonly _secret: any; @@ -43,8 +41,8 @@ export class AuthMockApi .reply(() => [ 200, - true - ] + true, + ], ); // ----------------------------------------------------------------------------------------------------- @@ -55,8 +53,8 @@ export class AuthMockApi .reply(() => [ 200, - true - ] + true, + ], ); // ----------------------------------------------------------------------------------------------------- @@ -64,8 +62,8 @@ export class AuthMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/auth/sign-in', 1500) - .reply(({request}) => { - + .reply(({request}) => + { // Sign in successful if ( request.body.email === 'hughes.brian@company.com' && request.body.password === 'admin' ) { @@ -74,15 +72,15 @@ export class AuthMockApi { user : cloneDeep(this._user), accessToken: this._generateJWTToken(), - tokenType : 'bearer' - } + tokenType : 'bearer', + }, ]; } // Invalid credentials return [ 404, - false + false, ]; }); @@ -91,8 +89,8 @@ export class AuthMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/auth/sign-in-with-token') - .reply(({request}) => { - + .reply(({request}) => + { // Get the access token const accessToken = request.body.accessToken; @@ -104,8 +102,8 @@ export class AuthMockApi { user : cloneDeep(this._user), accessToken: this._generateJWTToken(), - tokenType : 'bearer' - } + tokenType : 'bearer', + }, ]; } @@ -113,8 +111,8 @@ export class AuthMockApi return [ 401, { - error: 'Invalid token' - } + error: 'Invalid token', + }, ]; }); @@ -128,8 +126,8 @@ export class AuthMockApi // Simply return true [ 200, - true - ] + true, + ], ); // ----------------------------------------------------------------------------------------------------- @@ -137,8 +135,8 @@ export class AuthMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/auth/unlock-session', 1500) - .reply(({request}) => { - + .reply(({request}) => + { // Sign in successful if ( request.body.email === 'hughes.brian@company.com' && request.body.password === 'admin' ) { @@ -147,15 +145,15 @@ export class AuthMockApi { user : cloneDeep(this._user), accessToken: this._generateJWTToken(), - tokenType : 'bearer' - } + tokenType : 'bearer', + }, ]; } // Invalid credentials return [ 404, - false + false, ]; }); } @@ -199,7 +197,7 @@ export class AuthMockApi // Define token header const header = { alg: 'HS256', - typ: 'JWT' + typ: 'JWT', }; // Calculate the issued at and expiration dates @@ -211,7 +209,7 @@ export class AuthMockApi const payload = { iat: iat, iss: 'Fuse', - exp: exp + exp: exp, }; // Stringify and encode the header diff --git a/src/app/mock-api/common/messages/api.ts b/src/app/mock-api/common/messages/api.ts index 9dbb573d..30d2670c 100644 --- a/src/app/mock-api/common/messages/api.ts +++ b/src/app/mock-api/common/messages/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { assign, cloneDeep } from 'lodash-es'; import { FuseMockApiService, FuseMockApiUtils } from '@fuse/lib/mock-api'; import { messages as messagesData } from 'app/mock-api/common/messages/data'; +import { assign, cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class MessagesMockApi { private _messages: any = messagesData; @@ -40,8 +38,8 @@ export class MessagesMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/common/messages') - .reply(({request}) => { - + .reply(({request}) => + { // Get the message const newMessage = cloneDeep(request.body.message); @@ -60,8 +58,8 @@ export class MessagesMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/common/messages') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id and message const id = request.body.id; const message = cloneDeep(request.body.message); @@ -70,8 +68,8 @@ export class MessagesMockApi let updatedMessage = null; // Find the message and update it - this._messages.forEach((item: any, index: number, messages: any[]) => { - + this._messages.forEach((item: any, index: number, messages: any[]) => + { if ( item.id === id ) { // Update the message @@ -91,8 +89,8 @@ export class MessagesMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onDelete('api/common/messages') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id const id = request.params.get('id'); @@ -117,11 +115,11 @@ export class MessagesMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/common/messages/mark-all-as-read') - .reply(() => { - + .reply(() => + { // Go through all messages - this._messages.forEach((item: any, index: number, messages: any[]) => { - + this._messages.forEach((item: any, index: number, messages: any[]) => + { // Mark it as read messages[index].read = true; messages[index].seen = true; @@ -136,8 +134,8 @@ export class MessagesMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/common/messages/toggle-read-status') - .reply(({request}) => { - + .reply(({request}) => + { // Get the message const message = cloneDeep(request.body.message); @@ -145,8 +143,8 @@ export class MessagesMockApi let updatedMessage = null; // Find the message and update it - this._messages.forEach((item: any, index: number, messages: any[]) => { - + this._messages.forEach((item: any, index: number, messages: any[]) => + { if ( item.id === message.id ) { // Update the message diff --git a/src/app/mock-api/common/messages/data.ts b/src/app/mock-api/common/messages/data.ts index 878701d4..bc2fff2e 100644 --- a/src/app/mock-api/common/messages/data.ts +++ b/src/app/mock-api/common/messages/data.ts @@ -11,7 +11,7 @@ export const messages = [ title : 'Gary Peters', description: 'We should talk about that at lunch!', time : now.minus({minutes: 25}).toISO(), // 25 minutes ago - read : false + read : false, }, { id : '608b4479-a3ac-4e26-8675-3609c52aca58', @@ -19,7 +19,7 @@ export const messages = [ title : 'Leo Gill (Client #8817)', description: 'You can download the latest invoices now. Please check and let me know.', time : now.minus({minutes: 50}).toISO(), // 50 minutes ago - read : false + read : false, }, { id : '22148c0c-d788-4d49-9467-447677d11b76', @@ -29,7 +29,7 @@ export const messages = [ time : now.minus({hours: 3}).toISO(), // 3 hours ago read : true, link : '/dashboards/project', - useRouter : true + useRouter : true, }, { id : '492e2917-760c-4921-aa5a-3201a857cd48', @@ -39,7 +39,7 @@ export const messages = [ time : now.minus({hours: 5}).toISO(), // 5 hours ago read : true, link : '/dashboards/project', - useRouter : true + useRouter : true, }, { id : '214a46e5-cae7-4b18-9869-eabde7c7ea52', @@ -49,7 +49,7 @@ export const messages = [ time : now.minus({hours: 7}).toISO(), // 7 hours ago read : false, link : '/dashboards/project', - useRouter : true + useRouter : true, }, { id : '95930319-61cc-4c7e-9324-f1091865330c', @@ -59,7 +59,7 @@ export const messages = [ time : now.minus({hours: 9}).toISO(), // 9 hours ago read : false, link : '/dashboards/project', - useRouter : true + useRouter : true, }, { id : '802935e9-9577-48bc-98d1-308a4872afd7', @@ -69,7 +69,7 @@ export const messages = [ time : now.minus({day: 1}).toISO(), // 1 day ago read : true, link : 'https://www.google.com', - useRouter : false + useRouter : false, }, { id : '059f3738-633b-48ea-ad83-19016ce24c62', @@ -79,7 +79,7 @@ export const messages = [ time : now.minus({day: 3}).toISO(), // 3 days ago read : false, link : '/dashboards/project', - useRouter : true + useRouter : true, }, { id : '5c2bb44d-5ca7-42ff-ad7e-46ced9f49a24', @@ -89,6 +89,6 @@ export const messages = [ time : now.minus({day: 4}).toISO(), // 4 days ago read : true, link : '/dashboards/project', - useRouter : true - } + useRouter : true, + }, ]; diff --git a/src/app/mock-api/common/navigation/api.ts b/src/app/mock-api/common/navigation/api.ts index e82ebe9c..2790534e 100644 --- a/src/app/mock-api/common/navigation/api.ts +++ b/src/app/mock-api/common/navigation/api.ts @@ -1,12 +1,10 @@ import { Injectable } from '@angular/core'; -import { cloneDeep } from 'lodash-es'; import { FuseNavigationItem } from '@fuse/components/navigation'; import { FuseMockApiService } from '@fuse/lib/mock-api'; import { compactNavigation, defaultNavigation, futuristicNavigation, horizontalNavigation } from 'app/mock-api/common/navigation/data'; +import { cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class NavigationMockApi { private readonly _compactNavigation: FuseNavigationItem[] = compactNavigation; @@ -37,11 +35,13 @@ export class NavigationMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/common/navigation') - .reply(() => { - + .reply(() => + { // Fill compact navigation children using the default navigation - this._compactNavigation.forEach((compactNavItem) => { - this._defaultNavigation.forEach((defaultNavItem) => { + this._compactNavigation.forEach((compactNavItem) => + { + this._defaultNavigation.forEach((defaultNavItem) => + { if ( defaultNavItem.id === compactNavItem.id ) { compactNavItem.children = cloneDeep(defaultNavItem.children); @@ -50,8 +50,10 @@ export class NavigationMockApi }); // Fill futuristic navigation children using the default navigation - this._futuristicNavigation.forEach((futuristicNavItem) => { - this._defaultNavigation.forEach((defaultNavItem) => { + this._futuristicNavigation.forEach((futuristicNavItem) => + { + this._defaultNavigation.forEach((defaultNavItem) => + { if ( defaultNavItem.id === futuristicNavItem.id ) { futuristicNavItem.children = cloneDeep(defaultNavItem.children); @@ -60,8 +62,10 @@ export class NavigationMockApi }); // Fill horizontal navigation children using the default navigation - this._horizontalNavigation.forEach((horizontalNavItem) => { - this._defaultNavigation.forEach((defaultNavItem) => { + this._horizontalNavigation.forEach((horizontalNavItem) => + { + this._defaultNavigation.forEach((defaultNavItem) => + { if ( defaultNavItem.id === horizontalNavItem.id ) { horizontalNavItem.children = cloneDeep(defaultNavItem.children); @@ -76,8 +80,8 @@ export class NavigationMockApi compact : cloneDeep(this._compactNavigation), default : cloneDeep(this._defaultNavigation), futuristic: cloneDeep(this._futuristicNavigation), - horizontal: cloneDeep(this._horizontalNavigation) - } + horizontal: cloneDeep(this._horizontalNavigation), + }, ]; }); } diff --git a/src/app/mock-api/common/navigation/data.ts b/src/app/mock-api/common/navigation/data.ts index f81180af..74d05b9a 100644 --- a/src/app/mock-api/common/navigation/data.ts +++ b/src/app/mock-api/common/navigation/data.ts @@ -13,31 +13,31 @@ export const defaultNavigation: FuseNavigationItem[] = [ id : 'dashboards.project', title: 'Project', type : 'basic', - icon : 'heroicons_outline:clipboard-check', - link : '/dashboards/project' + icon : 'heroicons_outline:clipboard-document-check', + link : '/dashboards/project', }, { id : 'dashboards.analytics', title: 'Analytics', type : 'basic', icon : 'heroicons_outline:chart-pie', - link : '/dashboards/analytics' + link : '/dashboards/analytics', }, { id : 'dashboards.finance', title: 'Finance', type : 'basic', - icon : 'heroicons_outline:cash', - link : '/dashboards/finance' + icon : 'heroicons_outline:banknotes', + link : '/dashboards/finance', }, { id : 'dashboards.crypto', title: 'Crypto', type : 'basic', icon : 'heroicons_outline:currency-dollar', - link : '/dashboards/crypto' - } - ] + link : '/dashboards/crypto', + }, + ], }, { id : 'apps', @@ -51,21 +51,21 @@ export const defaultNavigation: FuseNavigationItem[] = [ title: 'Academy', type : 'basic', icon : 'heroicons_outline:academic-cap', - link : '/apps/academy' + link : '/apps/academy', }, { id : 'apps.chat', title: 'Chat', type : 'basic', - icon : 'heroicons_outline:chat-alt', - link : '/apps/chat' + icon : 'heroicons_outline:chat-bubble-bottom-center-text', + link : '/apps/chat', }, { id : 'apps.contacts', title: 'Contacts', type : 'basic', icon : 'heroicons_outline:user-group', - link : '/apps/contacts' + link : '/apps/contacts', }, { id : 'apps.ecommerce', @@ -77,22 +77,22 @@ export const defaultNavigation: FuseNavigationItem[] = [ id : 'apps.ecommerce.inventory', title: 'Inventory', type : 'basic', - link : '/apps/ecommerce/inventory' - } - ] + link : '/apps/ecommerce/inventory', + }, + ], }, { id : 'apps.file-manager', title: 'File Manager', type : 'basic', icon : 'heroicons_outline:cloud', - link : '/apps/file-manager' + link : '/apps/file-manager', }, { id : 'apps.help-center', title : 'Help Center', type : 'collapsable', - icon : 'heroicons_outline:support', + icon : 'heroicons_outline:information-circle', link : '/apps/help-center', children: [ { @@ -100,61 +100,61 @@ export const defaultNavigation: FuseNavigationItem[] = [ title : 'Home', type : 'basic', link : '/apps/help-center', - exactMatch: true + exactMatch: true, }, { id : 'apps.help-center.faqs', title: 'FAQs', type : 'basic', - link : '/apps/help-center/faqs' + link : '/apps/help-center/faqs', }, { id : 'apps.help-center.guides', title: 'Guides', type : 'basic', - link : '/apps/help-center/guides' + link : '/apps/help-center/guides', }, { id : 'apps.help-center.support', title: 'Support', type : 'basic', - link : '/apps/help-center/support' - } - ] + link : '/apps/help-center/support', + }, + ], }, { id : 'apps.mailbox', title: 'Mailbox', type : 'basic', - icon : 'heroicons_outline:mail', + icon : 'heroicons_outline:envelope', link : '/apps/mailbox', badge: { title : '27', - classes: 'px-2 bg-pink-600 text-white rounded-full' - } + classes: 'px-2 bg-pink-600 text-white rounded-full', + }, }, { id : 'apps.notes', title: 'Notes', type : 'basic', - icon : 'heroicons_outline:pencil-alt', - link : '/apps/notes' + icon : 'heroicons_outline:pencil-square', + link : '/apps/notes', }, { id : 'apps.scrumboard', title: 'Scrumboard', type : 'basic', - icon : 'heroicons_outline:view-boards', - link : '/apps/scrumboard' + icon : 'heroicons_outline:view-columns', + link : '/apps/scrumboard', }, { id : 'apps.tasks', title: 'Tasks', type : 'basic', icon : 'heroicons_outline:check-circle', - link : '/apps/tasks' - } - ] + link : '/apps/tasks', + }, + ], }, { id : 'pages', @@ -167,8 +167,8 @@ export const defaultNavigation: FuseNavigationItem[] = [ id : 'pages.activities', title: 'Activities', type : 'basic', - icon : 'heroicons_outline:menu-alt-2', - link : '/pages/activities' + icon : 'heroicons_outline:bars-3-bottom-left', + link : '/pages/activities', }, { id : 'pages.authentication', @@ -185,45 +185,45 @@ export const defaultNavigation: FuseNavigationItem[] = [ id : 'pages.authentication.sign-in.classic', title: 'Classic', type : 'basic', - link : '/pages/authentication/sign-in/classic' + link : '/pages/authentication/sign-in/classic', }, { id : 'pages.authentication.sign-in.modern', title: 'Modern', type : 'basic', - link : '/pages/authentication/sign-in/modern' + link : '/pages/authentication/sign-in/modern', }, { id : 'pages.authentication.sign-in.modern-reversed', title: 'Modern Reversed', type : 'basic', - link : '/pages/authentication/sign-in/modern-reversed' + link : '/pages/authentication/sign-in/modern-reversed', }, { id : 'pages.authentication.sign-in.split-screen', title: 'Split Screen', type : 'basic', - link : '/pages/authentication/sign-in/split-screen' + link : '/pages/authentication/sign-in/split-screen', }, { id : 'pages.authentication.sign-in.split-screen-reversed', title: 'Split Screen Reversed', type : 'basic', - link : '/pages/authentication/sign-in/split-screen-reversed' + link : '/pages/authentication/sign-in/split-screen-reversed', }, { id : 'pages.authentication.sign-in.fullscreen', title: 'Fullscreen', type : 'basic', - link : '/pages/authentication/sign-in/fullscreen' + link : '/pages/authentication/sign-in/fullscreen', }, { id : 'pages.authentication.sign-in.fullscreen-reversed', title: 'Fullscreen Reversed', type : 'basic', - link : '/pages/authentication/sign-in/fullscreen-reversed' - } - ] + link : '/pages/authentication/sign-in/fullscreen-reversed', + }, + ], }, { id : 'pages.authentication.sign-up', @@ -235,45 +235,45 @@ export const defaultNavigation: FuseNavigationItem[] = [ id : 'pages.authentication.sign-up.classic', title: 'Classic', type : 'basic', - link : '/pages/authentication/sign-up/classic' + link : '/pages/authentication/sign-up/classic', }, { id : 'pages.authentication.sign-up.modern', title: 'Modern', type : 'basic', - link : '/pages/authentication/sign-up/modern' + link : '/pages/authentication/sign-up/modern', }, { id : 'pages.authentication.sign-up.modern-reversed', title: 'Modern Reversed', type : 'basic', - link : '/pages/authentication/sign-up/modern-reversed' + link : '/pages/authentication/sign-up/modern-reversed', }, { id : 'pages.authentication.sign-up.split-screen', title: 'Split Screen', type : 'basic', - link : '/pages/authentication/sign-up/split-screen' + link : '/pages/authentication/sign-up/split-screen', }, { id : 'pages.authentication.sign-up.split-screen-reversed', title: 'Split Screen Reversed', type : 'basic', - link : '/pages/authentication/sign-up/split-screen-reversed' + link : '/pages/authentication/sign-up/split-screen-reversed', }, { id : 'pages.authentication.sign-up.fullscreen', title: 'Fullscreen', type : 'basic', - link : '/pages/authentication/sign-up/fullscreen' + link : '/pages/authentication/sign-up/fullscreen', }, { id : 'pages.authentication.sign-up.fullscreen-reversed', title: 'Fullscreen Reversed', type : 'basic', - link : '/pages/authentication/sign-up/fullscreen-reversed' - } - ] + link : '/pages/authentication/sign-up/fullscreen-reversed', + }, + ], }, { id : 'pages.authentication.sign-out', @@ -285,45 +285,45 @@ export const defaultNavigation: FuseNavigationItem[] = [ id : 'pages.authentication.sign-out.classic', title: 'Classic', type : 'basic', - link : '/pages/authentication/sign-out/classic' + link : '/pages/authentication/sign-out/classic', }, { id : 'pages.authentication.sign-out.modern', title: 'Modern', type : 'basic', - link : '/pages/authentication/sign-out/modern' + link : '/pages/authentication/sign-out/modern', }, { id : 'pages.authentication.sign-out.modern-reversed', title: 'Modern Reversed', type : 'basic', - link : '/pages/authentication/sign-out/modern-reversed' + link : '/pages/authentication/sign-out/modern-reversed', }, { id : 'pages.authentication.sign-out.split-screen', title: 'Split Screen', type : 'basic', - link : '/pages/authentication/sign-out/split-screen' + link : '/pages/authentication/sign-out/split-screen', }, { id : 'pages.authentication.sign-out.split-screen-reversed', title: 'Split Screen Reversed', type : 'basic', - link : '/pages/authentication/sign-out/split-screen-reversed' + link : '/pages/authentication/sign-out/split-screen-reversed', }, { id : 'pages.authentication.sign-out.fullscreen', title: 'Fullscreen', type : 'basic', - link : '/pages/authentication/sign-out/fullscreen' + link : '/pages/authentication/sign-out/fullscreen', }, { id : 'pages.authentication.sign-out.fullscreen-reversed', title: 'Fullscreen Reversed', type : 'basic', - link : '/pages/authentication/sign-out/fullscreen-reversed' - } - ] + link : '/pages/authentication/sign-out/fullscreen-reversed', + }, + ], }, { id : 'pages.authentication.forgot-password', @@ -335,45 +335,45 @@ export const defaultNavigation: FuseNavigationItem[] = [ id : 'pages.authentication.forgot-password.classic', title: 'Classic', type : 'basic', - link : '/pages/authentication/forgot-password/classic' + link : '/pages/authentication/forgot-password/classic', }, { id : 'pages.authentication.forgot-password.modern', title: 'Modern', type : 'basic', - link : '/pages/authentication/forgot-password/modern' + link : '/pages/authentication/forgot-password/modern', }, { id : 'pages.authentication.forgot-password.modern-reversed', title: 'Modern Reversed', type : 'basic', - link : '/pages/authentication/forgot-password/modern-reversed' + link : '/pages/authentication/forgot-password/modern-reversed', }, { id : 'pages.authentication.forgot-password.split-screen', title: 'Split Screen', type : 'basic', - link : '/pages/authentication/forgot-password/split-screen' + link : '/pages/authentication/forgot-password/split-screen', }, { id : 'pages.authentication.forgot-password.split-screen-reversed', title: 'Split Screen Reversed', type : 'basic', - link : '/pages/authentication/forgot-password/split-screen-reversed' + link : '/pages/authentication/forgot-password/split-screen-reversed', }, { id : 'pages.authentication.forgot-password.fullscreen', title: 'Fullscreen', type : 'basic', - link : '/pages/authentication/forgot-password/fullscreen' + link : '/pages/authentication/forgot-password/fullscreen', }, { id : 'pages.authentication.forgot-password.fullscreen-reversed', title: 'Fullscreen Reversed', type : 'basic', - link : '/pages/authentication/forgot-password/fullscreen-reversed' - } - ] + link : '/pages/authentication/forgot-password/fullscreen-reversed', + }, + ], }, { id : 'pages.authentication.reset-password', @@ -385,45 +385,45 @@ export const defaultNavigation: FuseNavigationItem[] = [ id : 'pages.authentication.reset-password.classic', title: 'Classic', type : 'basic', - link : '/pages/authentication/reset-password/classic' + link : '/pages/authentication/reset-password/classic', }, { id : 'pages.authentication.reset-password.modern', title: 'Modern', type : 'basic', - link : '/pages/authentication/reset-password/modern' + link : '/pages/authentication/reset-password/modern', }, { id : 'pages.authentication.reset-password.modern-reversed', title: 'Modern Reversed', type : 'basic', - link : '/pages/authentication/reset-password/modern-reversed' + link : '/pages/authentication/reset-password/modern-reversed', }, { id : 'pages.authentication.reset-password.split-screen', title: 'Split Screen', type : 'basic', - link : '/pages/authentication/reset-password/split-screen' + link : '/pages/authentication/reset-password/split-screen', }, { id : 'pages.authentication.reset-password.split-screen-reversed', title: 'Split Screen Reversed', type : 'basic', - link : '/pages/authentication/reset-password/split-screen-reversed' + link : '/pages/authentication/reset-password/split-screen-reversed', }, { id : 'pages.authentication.reset-password.fullscreen', title: 'Fullscreen', type : 'basic', - link : '/pages/authentication/reset-password/fullscreen' + link : '/pages/authentication/reset-password/fullscreen', }, { id : 'pages.authentication.reset-password.fullscreen-reversed', title: 'Fullscreen Reversed', type : 'basic', - link : '/pages/authentication/reset-password/fullscreen-reversed' - } - ] + link : '/pages/authentication/reset-password/fullscreen-reversed', + }, + ], }, { id : 'pages.authentication.unlock-session', @@ -435,45 +435,45 @@ export const defaultNavigation: FuseNavigationItem[] = [ id : 'pages.authentication.unlock-session.classic', title: 'Classic', type : 'basic', - link : '/pages/authentication/unlock-session/classic' + link : '/pages/authentication/unlock-session/classic', }, { id : 'pages.authentication.unlock-session.modern', title: 'Modern', type : 'basic', - link : '/pages/authentication/unlock-session/modern' + link : '/pages/authentication/unlock-session/modern', }, { id : 'pages.authentication.unlock-session.modern-reversed', title: 'Modern Reversed', type : 'basic', - link : '/pages/authentication/unlock-session/modern-reversed' + link : '/pages/authentication/unlock-session/modern-reversed', }, { id : 'pages.authentication.unlock-session.split-screen', title: 'Split Screen', type : 'basic', - link : '/pages/authentication/unlock-session/split-screen' + link : '/pages/authentication/unlock-session/split-screen', }, { id : 'pages.authentication.unlock-session.split-screen-reversed', title: 'Split Screen Reversed', type : 'basic', - link : '/pages/authentication/unlock-session/split-screen-reversed' + link : '/pages/authentication/unlock-session/split-screen-reversed', }, { id : 'pages.authentication.unlock-session.fullscreen', title: 'Fullscreen', type : 'basic', - link : '/pages/authentication/unlock-session/fullscreen' + link : '/pages/authentication/unlock-session/fullscreen', }, { id : 'pages.authentication.unlock-session.fullscreen-reversed', title: 'Fullscreen Reversed', type : 'basic', - link : '/pages/authentication/unlock-session/fullscreen-reversed' - } - ] + link : '/pages/authentication/unlock-session/fullscreen-reversed', + }, + ], }, { id : 'pages.authentication.confirmation-required', @@ -485,47 +485,47 @@ export const defaultNavigation: FuseNavigationItem[] = [ id : 'pages.authentication.confirmation-required.classic', title: 'Classic', type : 'basic', - link : '/pages/authentication/confirmation-required/classic' + link : '/pages/authentication/confirmation-required/classic', }, { id : 'pages.authentication.confirmation-required.modern', title: 'Modern', type : 'basic', - link : '/pages/authentication/confirmation-required/modern' + link : '/pages/authentication/confirmation-required/modern', }, { id : 'pages.authentication.confirmation-required.modern-reversed', title: 'Modern Reversed', type : 'basic', - link : '/pages/authentication/confirmation-required/modern-reversed' + link : '/pages/authentication/confirmation-required/modern-reversed', }, { id : 'pages.authentication.confirmation-required.split-screen', title: 'Split Screen', type : 'basic', - link : '/pages/authentication/confirmation-required/split-screen' + link : '/pages/authentication/confirmation-required/split-screen', }, { id : 'pages.authentication.confirmation-required.split-screen-reversed', title: 'Split Screen Reversed', type : 'basic', - link : '/pages/authentication/confirmation-required/split-screen-reversed' + link : '/pages/authentication/confirmation-required/split-screen-reversed', }, { id : 'pages.authentication.confirmation-required.fullscreen', title: 'Fullscreen', type : 'basic', - link : '/pages/authentication/confirmation-required/fullscreen' + link : '/pages/authentication/confirmation-required/fullscreen', }, { id : 'pages.authentication.confirmation-required.fullscreen-reversed', title: 'Fullscreen Reversed', type : 'basic', - link : '/pages/authentication/confirmation-required/fullscreen-reversed' - } - ] - } - ] + link : '/pages/authentication/confirmation-required/fullscreen-reversed', + }, + ], + }, + ], }, { id : 'pages.coming-soon', @@ -538,45 +538,45 @@ export const defaultNavigation: FuseNavigationItem[] = [ id : 'pages.coming-soon.classic', title: 'Classic', type : 'basic', - link : '/pages/coming-soon/classic' + link : '/pages/coming-soon/classic', }, { id : 'pages.coming-soon.modern', title: 'Modern', type : 'basic', - link : '/pages/coming-soon/modern' + link : '/pages/coming-soon/modern', }, { id : 'pages.coming-soon.modern-reversed', title: 'Modern Reversed', type : 'basic', - link : '/pages/coming-soon/modern-reversed' + link : '/pages/coming-soon/modern-reversed', }, { id : 'pages.coming-soon.split-screen', title: 'Split Screen', type : 'basic', - link : '/pages/coming-soon/split-screen' + link : '/pages/coming-soon/split-screen', }, { id : 'pages.coming-soon.split-screen-reversed', title: 'Split Screen Reversed', type : 'basic', - link : '/pages/coming-soon/split-screen-reversed' + link : '/pages/coming-soon/split-screen-reversed', }, { id : 'pages.coming-soon.fullscreen', title: 'Fullscreen', type : 'basic', - link : '/pages/coming-soon/fullscreen' + link : '/pages/coming-soon/fullscreen', }, { id : 'pages.coming-soon.fullscreen-reversed', title: 'Fullscreen Reversed', type : 'basic', - link : '/pages/coming-soon/fullscreen-reversed' - } - ] + link : '/pages/coming-soon/fullscreen-reversed', + }, + ], }, { id : 'pages.error', @@ -588,15 +588,15 @@ export const defaultNavigation: FuseNavigationItem[] = [ id : 'pages.error.404', title: '404', type : 'basic', - link : '/pages/error/404' + link : '/pages/error/404', }, { id : 'pages.error.500', title: '500', type : 'basic', - link : '/pages/error/500' - } - ] + link : '/pages/error/500', + }, + ], }, { id : 'pages.invoice', @@ -613,237 +613,243 @@ export const defaultNavigation: FuseNavigationItem[] = [ id : 'pages.invoice.printable.compact', title: 'Compact', type : 'basic', - link : '/pages/invoice/printable/compact' + link : '/pages/invoice/printable/compact', }, { id : 'pages.invoice.printable.modern', title: 'Modern', type : 'basic', - link : '/pages/invoice/printable/modern' - } - ] - } - ] + link : '/pages/invoice/printable/modern', + }, + ], + }, + ], }, { id : 'pages.maintenance', title: 'Maintenance', type : 'basic', - icon : 'heroicons_outline:exclamation', - link : '/pages/maintenance' + icon : 'heroicons_outline:exclamation-triangle', + link : '/pages/maintenance', }, { id : 'pages.pricing', title : 'Pricing', type : 'collapsable', - icon : 'heroicons_outline:cash', + icon : 'heroicons_outline:banknotes', children: [ { id : 'pages.pricing.modern', title: 'Modern', type : 'basic', - link : '/pages/pricing/modern' + link : '/pages/pricing/modern', }, { id : 'pages.pricing.simple', title: 'Simple', type : 'basic', - link : '/pages/pricing/simple' + link : '/pages/pricing/simple', }, { id : 'pages.pricing.single', title: 'Single', type : 'basic', - link : '/pages/pricing/single' + link : '/pages/pricing/single', }, { id : 'pages.pricing.table', title: 'Table', type : 'basic', - link : '/pages/pricing/table' - } - ] + link : '/pages/pricing/table', + }, + ], }, { id : 'pages.profile', title: 'Profile', type : 'basic', icon : 'heroicons_outline:user-circle', - link : '/pages/profile' + link : '/pages/profile', }, { id : 'pages.settings', title: 'Settings', type : 'basic', - icon : 'heroicons_outline:cog', - link : '/pages/settings' - } - ] + icon : 'heroicons_outline:cog-8-tooth', + link : '/pages/settings', + }, + ], }, { id : 'user-interface', title : 'User Interface', subtitle: 'Building blocks of the UI & UX', type : 'group', - icon : 'heroicons_outline:collection', + icon : 'heroicons_outline:rectangle-stack', children: [ { id : 'user-interface.material-components', title: 'Material Components', type : 'basic', - icon : 'heroicons_outline:chip', - link : '/ui/material-components' + icon : 'heroicons_outline:square-3-stack-3d', + link : '/ui/material-components', }, { id : 'user-interface.fuse-components', title: 'Fuse Components', type : 'basic', - icon : 'heroicons_outline:chip', - link : '/ui/fuse-components' + icon : 'heroicons_outline:square-3-stack-3d', + link : '/ui/fuse-components', }, { id : 'user-interface.other-components', title: 'Other Components', type : 'basic', - icon : 'heroicons_outline:chip', - link : '/ui/other-components' + icon : 'heroicons_outline:square-3-stack-3d', + link : '/ui/other-components', }, { id : 'user-interface.tailwindcss', title: 'TailwindCSS', type : 'basic', icon : 'heroicons_outline:sparkles', - link : '/ui/tailwindcss' + link : '/ui/tailwindcss', }, { id : 'user-interface.advanced-search', title: 'Advanced Search', type : 'basic', - icon : 'heroicons_outline:search-circle', - link : '/ui/advanced-search' + icon : 'heroicons_outline:magnifying-glass-circle', + link : '/ui/advanced-search', }, { id : 'user-interface.animations', title: 'Animations', type : 'basic', icon : 'heroicons_outline:play', - link : '/ui/animations' + link : '/ui/animations', }, { id : 'user-interface.cards', title: 'Cards', type : 'basic', - icon : 'heroicons_outline:duplicate', - link : '/ui/cards' + icon : 'heroicons_outline:square-2-stack', + link : '/ui/cards', }, { id : 'user-interface.colors', title: 'Colors', type : 'basic', - icon : 'heroicons_outline:color-swatch', - link : '/ui/colors' + icon : 'heroicons_outline:swatch', + link : '/ui/colors', }, { id : 'user-interface.confirmation-dialog', title: 'Confirmation Dialog', type : 'basic', icon : 'heroicons_outline:question-mark-circle', - link : '/ui/confirmation-dialog' + link : '/ui/confirmation-dialog', }, { id : 'user-interface.datatable', title: 'Datatable', type : 'basic', - icon : 'heroicons_outline:view-list', - link : '/ui/datatable' + icon : 'heroicons_outline:table-cells', + link : '/ui/datatable', }, { id : 'user-interface.forms', title : 'Forms', type : 'collapsable', - icon : 'heroicons_outline:pencil-alt', + icon : 'heroicons_outline:pencil-square', children: [ { id : 'user-interface.forms.fields', title: 'Fields', type : 'basic', - link : '/ui/forms/fields' + link : '/ui/forms/fields', }, { id : 'user-interface.forms.layouts', title: 'Layouts', type : 'basic', - link : '/ui/forms/layouts' + link : '/ui/forms/layouts', }, { id : 'user-interface.forms.wizards', title: 'Wizards', type : 'basic', - link : '/ui/forms/wizards' - } - ] + link : '/ui/forms/wizards', + }, + ], }, { id : 'user-interface.icons', title : 'Icons', type : 'collapsable', - icon : 'heroicons_outline:lightning-bolt', + icon : 'heroicons_outline:bolt', children: [ { id : 'user-interface.icons.heroicons-outline', title: 'Heroicons Outline', type : 'basic', - link : '/ui/icons/heroicons-outline' + link : '/ui/icons/heroicons-outline', }, { id : 'user-interface.icons.heroicons-solid', title: 'Heroicons Solid', type : 'basic', - link : '/ui/icons/heroicons-solid' + link : '/ui/icons/heroicons-solid', + }, + { + id : 'user-interface.icons.heroicons-mini', + title: 'Heroicons Mini', + type : 'basic', + link : '/ui/icons/heroicons-mini', }, { id : 'user-interface.icons.material-twotone', title: 'Material Twotone', type : 'basic', - link : '/ui/icons/material-twotone' + link : '/ui/icons/material-twotone', }, { id : 'user-interface.icons.material-outline', title: 'Material Outline', type : 'basic', - link : '/ui/icons/material-outline' + link : '/ui/icons/material-outline', }, { id : 'user-interface.icons.material-solid', title: 'Material Solid', type : 'basic', - link : '/ui/icons/material-solid' + link : '/ui/icons/material-solid', }, { id : 'user-interface.icons.feather', title: 'Feather', type : 'basic', - link : '/ui/icons/feather' - } - ] + link : '/ui/icons/feather', + }, + ], }, { id : 'user-interface.page-layouts', title : 'Page Layouts', type : 'collapsable', - icon : 'heroicons_outline:template', + icon : 'heroicons_outline:rectangle-group', children: [ { id : 'user-interface.page-layouts.overview', title: 'Overview', type : 'basic', - link : '/ui/page-layouts/overview' + link : '/ui/page-layouts/overview', }, { id : 'user-interface.page-layouts.empty', title: 'Empty', type : 'basic', - link : '/ui/page-layouts/empty' + link : '/ui/page-layouts/empty', }, { id: 'user-interface.page-layouts.carded', @@ -855,33 +861,33 @@ export const defaultNavigation: FuseNavigationItem[] = [ id : 'user-interface.page-layouts.carded.fullwidth', title: 'Fullwidth', type : 'basic', - link : '/ui/page-layouts/carded/fullwidth' + link : '/ui/page-layouts/carded/fullwidth', }, { id : 'user-interface.page-layouts.carded.left-sidebar-1', title: 'Left Sidebar #1', type : 'basic', - link : '/ui/page-layouts/carded/left-sidebar-1' + link : '/ui/page-layouts/carded/left-sidebar-1', }, { id : 'user-interface.page-layouts.carded.left-sidebar-2', title: 'Left Sidebar #2', type : 'basic', - link : '/ui/page-layouts/carded/left-sidebar-2' + link : '/ui/page-layouts/carded/left-sidebar-2', }, { id : 'user-interface.page-layouts.carded.right-sidebar-1', title: 'Right Sidebar #1', type : 'basic', - link : '/ui/page-layouts/carded/right-sidebar-1' + link : '/ui/page-layouts/carded/right-sidebar-1', }, { id : 'user-interface.page-layouts.carded.right-sidebar-2', title: 'Right Sidebar #2', type : 'basic', - link : '/ui/page-layouts/carded/right-sidebar-2' - } - ] + link : '/ui/page-layouts/carded/right-sidebar-2', + }, + ], }, { id : 'user-interface.page-layouts.simple', @@ -892,104 +898,125 @@ export const defaultNavigation: FuseNavigationItem[] = [ id : 'user-interface.page-layouts.simple.fullwidth-1', title: 'Fullwidth #1', type : 'basic', - link : '/ui/page-layouts/simple/fullwidth-1' + link : '/ui/page-layouts/simple/fullwidth-1', }, { id : 'user-interface.page-layouts.simple.fullwidth-2', title: 'Fullwidth #2', type : 'basic', - link : '/ui/page-layouts/simple/fullwidth-2' + link : '/ui/page-layouts/simple/fullwidth-2', }, { id : 'user-interface.page-layouts.simple.left-sidebar-1', title: 'Left Sidebar #1', type : 'basic', - link : '/ui/page-layouts/simple/left-sidebar-1' + link : '/ui/page-layouts/simple/left-sidebar-1', }, { id : 'user-interface.page-layouts.simple.left-sidebar-2', title: 'Left Sidebar #2', type : 'basic', - link : '/ui/page-layouts/simple/left-sidebar-2' + link : '/ui/page-layouts/simple/left-sidebar-2', }, { id : 'user-interface.page-layouts.simple.left-sidebar-3', title: 'Left Sidebar #3', type : 'basic', - link : '/ui/page-layouts/simple/left-sidebar-3' + link : '/ui/page-layouts/simple/left-sidebar-3', }, { id : 'user-interface.page-layouts.simple.right-sidebar-1', title: 'Right Sidebar #1', type : 'basic', - link : '/ui/page-layouts/simple/right-sidebar-1' + link : '/ui/page-layouts/simple/right-sidebar-1', }, { id : 'user-interface.page-layouts.simple.right-sidebar-2', title: 'Right Sidebar #2', type : 'basic', - link : '/ui/page-layouts/simple/right-sidebar-2' + link : '/ui/page-layouts/simple/right-sidebar-2', }, { id : 'user-interface.page-layouts.simple.right-sidebar-3', title: 'Right Sidebar #3', type : 'basic', - link : '/ui/page-layouts/simple/right-sidebar-3' - } - ] - } - ] + link : '/ui/page-layouts/simple/right-sidebar-3', + }, + ], + }, + ], }, { id : 'user-interface.typography', title: 'Typography', type : 'basic', icon : 'heroicons_outline:pencil', - link : '/ui/typography' - } - ] + link : '/ui/typography', + }, + ], }, { id : 'divider-1', - type: 'divider' + type: 'divider', }, { id : 'documentation', title : 'Documentation', subtitle: 'Everything you need to know about Fuse', type : 'group', - icon : 'heroicons_outline:support', + icon : 'heroicons_outline:information-circle', children: [ { id : 'documentation.changelog', title: 'Changelog', type : 'basic', - icon : 'heroicons_outline:speakerphone', + icon : 'heroicons_outline:megaphone', link : '/docs/changelog', badge: { - title : '17.2.0', - classes: 'px-2 bg-yellow-300 text-black rounded-full' - } + title : '18.0.0', + classes: 'px-2 bg-yellow-300 text-black rounded-full', + }, }, { id : 'documentation.guides', title: 'Guides', type : 'basic', icon : 'heroicons_outline:book-open', - link : '/docs/guides' - } - ] + link : '/docs/guides', + }, + { + id : 'user-interface.material-components', + title: 'Material Components', + type : 'basic', + icon : 'heroicons_outline:square-3-stack-3d', + link : '/ui/material-components', + }, + { + id : 'user-interface.fuse-components', + title: 'Fuse Components', + type : 'basic', + icon : 'heroicons_outline:square-3-stack-3d', + link : '/ui/fuse-components', + }, + { + id : 'user-interface.other-components', + title: 'Other Components', + type : 'basic', + icon : 'heroicons_outline:square-3-stack-3d', + link : '/ui/other-components', + }, + ], }, { id : 'divider-2', - type: 'divider' + type: 'divider', }, { id : 'navigation-features', title : 'Navigation features', subtitle: 'Collapsable levels & badge styles', type : 'group', - icon : 'heroicons_outline:menu', + icon : 'heroicons_outline:bars-3', children: [ { id : 'navigation-features.level.0', @@ -1025,19 +1052,19 @@ export const defaultNavigation: FuseNavigationItem[] = [ { id : 'navigation-features.level.0.1.2.3.4.5.6', title: 'Level 6', - type : 'basic' - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] + type : 'basic', + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], }, { id : 'navigation-features.level.0', @@ -1049,14 +1076,14 @@ export const defaultNavigation: FuseNavigationItem[] = [ { id : 'navigation-features.level.0.1-1', title: 'Level 1.1', - type : 'basic' + type : 'basic', }, { id : 'navigation-features.level.0.1-2', title: 'Level 1.2', - type : 'basic' - } - ] + type : 'basic', + }, + ], }, { id : 'navigation-features.active', @@ -1064,7 +1091,7 @@ export const defaultNavigation: FuseNavigationItem[] = [ subtitle: 'Manually marked as active', icon : 'heroicons_outline:check-circle', type : 'basic', - active : true + active : true, }, { id : 'navigation-features.disabled-collapsable', @@ -1077,9 +1104,9 @@ export const defaultNavigation: FuseNavigationItem[] = [ { id : 'navigation-features.disabled-collapsable.child', title: 'You shouldn\'t be able to see this child', - type : 'basic' - } - ] + type : 'basic', + }, + ], }, { id : 'navigation-features.disabled-basic', @@ -1087,7 +1114,7 @@ export const defaultNavigation: FuseNavigationItem[] = [ subtitle: 'Some subtitle', icon : 'heroicons_outline:check-circle', type : 'basic', - disabled: true + disabled: true, }, { id : 'navigation-features.badge-style-oval', @@ -1096,8 +1123,8 @@ export const defaultNavigation: FuseNavigationItem[] = [ type : 'basic', badge: { title : '8', - classes: 'w-5 h-5 bg-teal-400 text-black rounded-full' - } + classes: 'w-5 h-5 bg-teal-400 text-black rounded-full', + }, }, { id : 'navigation-features.badge-style-rectangle', @@ -1106,8 +1133,8 @@ export const defaultNavigation: FuseNavigationItem[] = [ type : 'basic', badge: { title : 'Updated!', - classes: 'px-2 bg-teal-400 text-black rounded' - } + classes: 'px-2 bg-teal-400 text-black rounded', + }, }, { id : 'navigation-features.badge-style-rounded', @@ -1116,8 +1143,8 @@ export const defaultNavigation: FuseNavigationItem[] = [ type : 'basic', badge: { title : 'NEW', - classes: 'px-2.5 bg-teal-400 text-black rounded-full' - } + classes: 'px-2.5 bg-teal-400 text-black rounded-full', + }, }, { id : 'navigation-features.badge-style-simple', @@ -1126,17 +1153,17 @@ export const defaultNavigation: FuseNavigationItem[] = [ type : 'basic', badge: { title : '87 Unread', - classes: 'text-teal-500' - } + classes: 'text-teal-500', + }, }, { id : 'navigation-features.multi-line', title: 'A multi line navigation item title example which works just fine', icon : 'heroicons_outline:check-circle', - type : 'basic' - } - ] - } + type : 'basic', + }, + ], + }, ]; export const compactNavigation: FuseNavigationItem[] = [ { @@ -1145,7 +1172,7 @@ export const compactNavigation: FuseNavigationItem[] = [ tooltip : 'Dashboards', type : 'aside', icon : 'heroicons_outline:home', - children: [] // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation + children: [], // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation }, { id : 'apps', @@ -1153,7 +1180,7 @@ export const compactNavigation: FuseNavigationItem[] = [ tooltip : 'Apps', type : 'aside', icon : 'heroicons_outline:qrcode', - children: [] // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation + children: [], // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation }, { id : 'pages', @@ -1161,64 +1188,64 @@ export const compactNavigation: FuseNavigationItem[] = [ tooltip : 'Pages', type : 'aside', icon : 'heroicons_outline:document-duplicate', - children: [] // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation + children: [], // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation }, { id : 'user-interface', title : 'UI', tooltip : 'UI', type : 'aside', - icon : 'heroicons_outline:collection', - children: [] // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation + icon : 'heroicons_outline:rectangle-stack', + children: [], // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation }, { id : 'navigation-features', title : 'Navigation', tooltip : 'Navigation', type : 'aside', - icon : 'heroicons_outline:menu', - children: [] // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation - } + icon : 'heroicons_outline:bars-3', + children: [], // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation + }, ]; export const futuristicNavigation: FuseNavigationItem[] = [ { id : 'dashboards', title : 'DASHBOARDS', type : 'group', - children: [] // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation + children: [], // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation }, { id : 'apps', title : 'APPS', type : 'group', - children: [] // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation + children: [], // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation }, { id : 'others', title: 'OTHERS', - type : 'group' + type : 'group', }, { id : 'pages', title : 'Pages', type : 'aside', icon : 'heroicons_outline:document-duplicate', - children: [] // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation + children: [], // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation }, { id : 'user-interface', title : 'User Interface', type : 'aside', - icon : 'heroicons_outline:collection', - children: [] // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation + icon : 'heroicons_outline:rectangle-stack', + children: [], // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation }, { id : 'navigation-features', title : 'Navigation Features', type : 'aside', - icon : 'heroicons_outline:menu', - children: [] // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation - } + icon : 'heroicons_outline:bars-3', + children: [], // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation + }, ]; export const horizontalNavigation: FuseNavigationItem[] = [ { @@ -1226,34 +1253,34 @@ export const horizontalNavigation: FuseNavigationItem[] = [ title : 'Dashboards', type : 'group', icon : 'heroicons_outline:home', - children: [] // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation + children: [], // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation }, { id : 'apps', title : 'Apps', type : 'group', icon : 'heroicons_outline:qrcode', - children: [] // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation + children: [], // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation }, { id : 'pages', title : 'Pages', type : 'group', icon : 'heroicons_outline:document-duplicate', - children: [] // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation + children: [], // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation }, { id : 'user-interface', title : 'UI', type : 'group', - icon : 'heroicons_outline:collection', - children: [] // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation + icon : 'heroicons_outline:rectangle-stack', + children: [], // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation }, { id : 'navigation-features', title : 'Misc', type : 'group', - icon : 'heroicons_outline:menu', - children: [] // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation - } + icon : 'heroicons_outline:bars-3', + children: [], // This will be filled from defaultNavigation so we don't have to manage multiple sets of the same navigation + }, ]; diff --git a/src/app/mock-api/common/notifications/api.ts b/src/app/mock-api/common/notifications/api.ts index b4856ba9..b2c78c55 100644 --- a/src/app/mock-api/common/notifications/api.ts +++ b/src/app/mock-api/common/notifications/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { assign, cloneDeep } from 'lodash-es'; import { FuseMockApiService, FuseMockApiUtils } from '@fuse/lib/mock-api'; import { notifications as notificationsData } from 'app/mock-api/common/notifications/data'; +import { assign, cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class NotificationsMockApi { private _notifications: any = notificationsData; @@ -40,8 +38,8 @@ export class NotificationsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/common/notifications') - .reply(({request}) => { - + .reply(({request}) => + { // Get the notification const newNotification = cloneDeep(request.body.notification); @@ -60,8 +58,8 @@ export class NotificationsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/common/notifications') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id and notification const id = request.body.id; const notification = cloneDeep(request.body.notification); @@ -70,8 +68,8 @@ export class NotificationsMockApi let updatedNotification = null; // Find the notification and update it - this._notifications.forEach((item: any, index: number, notifications: any[]) => { - + this._notifications.forEach((item: any, index: number, notifications: any[]) => + { if ( item.id === id ) { // Update the notification @@ -91,8 +89,8 @@ export class NotificationsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onDelete('api/common/notifications') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id const id = request.params.get('id'); @@ -117,11 +115,11 @@ export class NotificationsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onGet('api/common/notifications/mark-all-as-read') - .reply(() => { - + .reply(() => + { // Go through all notifications - this._notifications.forEach((item: any, index: number, notifications: any[]) => { - + this._notifications.forEach((item: any, index: number, notifications: any[]) => + { // Mark it as read notifications[index].read = true; notifications[index].seen = true; @@ -136,8 +134,8 @@ export class NotificationsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/common/notifications/toggle-read-status') - .reply(({request}) => { - + .reply(({request}) => + { // Get the notification const notification = cloneDeep(request.body.notification); @@ -145,8 +143,8 @@ export class NotificationsMockApi let updatedNotification = null; // Find the notification and update it - this._notifications.forEach((item: any, index: number, notifications: any[]) => { - + this._notifications.forEach((item: any, index: number, notifications: any[]) => + { if ( item.id === notification.id ) { // Update the notification diff --git a/src/app/mock-api/common/notifications/data.ts b/src/app/mock-api/common/notifications/data.ts index 67c77a61..5aa5797b 100644 --- a/src/app/mock-api/common/notifications/data.ts +++ b/src/app/mock-api/common/notifications/data.ts @@ -7,11 +7,11 @@ const now = DateTime.now(); export const notifications = [ { id : '493190c9-5b61-4912-afe5-78c21f1044d7', - icon : 'heroicons_solid:star', + icon : 'heroicons_mini:star', title : 'Daily challenges', description: 'Your submission has been accepted', time : now.minus({minute: 25}).toISO(), // 25 minutes ago - read : false + read : false, }, { id : '6e3e97e5-effc-4fb7-b730-52a151f0b641', @@ -20,27 +20,27 @@ export const notifications = [ time : now.minus({minute: 50}).toISO(), // 50 minutes ago read : true, link : '/dashboards/project', - useRouter : true + useRouter : true, }, { id : 'b91ccb58-b06c-413b-b389-87010e03a120', - icon : 'heroicons_solid:mail', + icon : 'heroicons_mini:envelope', title : 'Mailbox', description: 'You have 15 unread mails across 3 mailboxes', time : now.minus({hour: 3}).toISO(), // 3 hours ago read : false, link : '/dashboards/project', - useRouter : true + useRouter : true, }, { id : '541416c9-84a7-408a-8d74-27a43c38d797', - icon : 'heroicons_solid:refresh', + icon : 'heroicons_mini:arrow-path', title : 'Cron jobs', description: 'Your Docker container is ready to publish', time : now.minus({hour: 5}).toISO(), // 5 hours ago read : false, link : '/dashboards/project', - useRouter : true + useRouter : true, }, { id : 'ef7b95a7-8e8b-4616-9619-130d9533add9', @@ -49,7 +49,7 @@ export const notifications = [ time : now.minus({hour: 7}).toISO(), // 7 hours ago read : true, link : '/dashboards/project', - useRouter : true + useRouter : true, }, { id : 'eb8aa470-635e-461d-88e1-23d9ea2a5665', @@ -58,36 +58,36 @@ export const notifications = [ time : now.minus({hour: 9}).toISO(), // 9 hours ago read : true, link : '/dashboards/project', - useRouter : true + useRouter : true, }, { id : 'b85c2338-cc98-4140-bbf8-c226ce4e395e', - icon : 'heroicons_solid:mail', + icon : 'heroicons_mini:envelope', title : 'Mailbox', description: 'You have 3 new mails', time : now.minus({day: 1}).toISO(), // 1 day ago read : true, link : '/dashboards/project', - useRouter : true + useRouter : true, }, { id : '8f8e1bf9-4661-4939-9e43-390957b60f42', - icon : 'heroicons_solid:star', + icon : 'heroicons_mini:star', title : 'Daily challenges', description: 'Your submission has been accepted and you are ready to sign-up for the final assigment which will be ready in 2 days', time : now.minus({day: 3}).toISO(), // 3 days ago read : true, link : '/dashboards/project', - useRouter : true + useRouter : true, }, { id : '30af917b-7a6a-45d1-822f-9e7ad7f8bf69', - icon : 'heroicons_solid:refresh', + icon : 'heroicons_mini:arrow-path', title : 'Cron jobs', description: 'Your Vagrant container is ready to download', time : now.minus({day: 4}).toISO(), // 4 days ago read : true, link : '/dashboards/project', - useRouter : true - } + useRouter : true, + }, ]; diff --git a/src/app/mock-api/common/search/api.ts b/src/app/mock-api/common/search/api.ts index 7b164100..49960f7b 100644 --- a/src/app/mock-api/common/search/api.ts +++ b/src/app/mock-api/common/search/api.ts @@ -1,14 +1,12 @@ import { Injectable } from '@angular/core'; -import { cloneDeep } from 'lodash-es'; import { FuseNavigationItem, FuseNavigationService } from '@fuse/components/navigation'; import { FuseMockApiService } from '@fuse/lib/mock-api'; -import { defaultNavigation } from 'app/mock-api/common/navigation/data'; import { contacts } from 'app/mock-api/apps/contacts/data'; import { tasks } from 'app/mock-api/apps/tasks/data'; +import { defaultNavigation } from 'app/mock-api/common/navigation/data'; +import { cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class SearchMockApi { private readonly _defaultNavigation: FuseNavigationItem[] = defaultNavigation; @@ -20,7 +18,7 @@ export class SearchMockApi */ constructor( private _fuseMockApiService: FuseMockApiService, - private _fuseNavigationService: FuseNavigationService + private _fuseNavigationService: FuseNavigationService, ) { // Register Mock API handlers @@ -44,8 +42,8 @@ export class SearchMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/common/search') - .reply(({request}) => { - + .reply(({request}) => + { // Get the search query const query = cloneDeep(request.body.query.toLowerCase()); @@ -75,8 +73,8 @@ export class SearchMockApi if ( contactsResults.length > 0 ) { // Normalize the results - contactsResults.forEach((result) => { - + contactsResults.forEach((result) => + { // Add a link result.link = '/apps/contacts/' + result.id; @@ -88,7 +86,7 @@ export class SearchMockApi results.push({ id : 'contacts', label : 'Contacts', - results: contactsResults + results: contactsResults, }); } @@ -96,8 +94,8 @@ export class SearchMockApi if ( pagesResults.length > 0 ) { // Normalize the results - pagesResults.forEach((result: any) => { - + pagesResults.forEach((result: any) => + { // Add the page title as the value result.value = result.title; }); @@ -106,7 +104,7 @@ export class SearchMockApi results.push({ id : 'pages', label : 'Pages', - results: pagesResults + results: pagesResults, }); } @@ -114,8 +112,8 @@ export class SearchMockApi if ( tasksResults.length > 0 ) { // Normalize the results - tasksResults.forEach((result) => { - + tasksResults.forEach((result) => + { // Add a link result.link = '/apps/tasks/' + result.id; @@ -127,7 +125,7 @@ export class SearchMockApi results.push({ id : 'tasks', label : 'Tasks', - results: tasksResults + results: tasksResults, }); } diff --git a/src/app/mock-api/common/shortcuts/api.ts b/src/app/mock-api/common/shortcuts/api.ts index 7d1ad06e..f324bc53 100644 --- a/src/app/mock-api/common/shortcuts/api.ts +++ b/src/app/mock-api/common/shortcuts/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { assign, cloneDeep } from 'lodash-es'; import { FuseMockApiService, FuseMockApiUtils } from '@fuse/lib/mock-api'; import { shortcuts as shortcutsData } from 'app/mock-api/common/shortcuts/data'; +import { assign, cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class ShortcutsMockApi { private _shortcuts: any = shortcutsData; @@ -40,8 +38,8 @@ export class ShortcutsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPost('api/common/shortcuts') - .reply(({request}) => { - + .reply(({request}) => + { // Get the shortcut const newShortcut = cloneDeep(request.body.shortcut); @@ -60,8 +58,8 @@ export class ShortcutsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/common/shortcuts') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id and shortcut const id = request.body.id; const shortcut = cloneDeep(request.body.shortcut); @@ -70,8 +68,8 @@ export class ShortcutsMockApi let updatedShortcut = null; // Find the shortcut and update it - this._shortcuts.forEach((item: any, index: number, shortcuts: any[]) => { - + this._shortcuts.forEach((item: any, index: number, shortcuts: any[]) => + { if ( item.id === id ) { // Update the shortcut @@ -91,8 +89,8 @@ export class ShortcutsMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onDelete('api/common/shortcuts') - .reply(({request}) => { - + .reply(({request}) => + { // Get the id const id = request.params.get('id'); diff --git a/src/app/mock-api/common/shortcuts/data.ts b/src/app/mock-api/common/shortcuts/data.ts index 70396543..1d17294a 100644 --- a/src/app/mock-api/common/shortcuts/data.ts +++ b/src/app/mock-api/common/shortcuts/data.ts @@ -4,9 +4,9 @@ export const shortcuts = [ id : 'a1ae91d3-e2cb-459b-9be9-a184694f548b', label : 'Changelog', description: 'List of changes', - icon : 'heroicons_outline:clipboard-list', + icon : 'heroicons_outline:clipboard-document-list', link : '/docs/changelog', - useRouter : true + useRouter : true, }, { id : '989ce876-c177-4d71-a749-1953c477f825', @@ -14,15 +14,15 @@ export const shortcuts = [ description: 'Getting started', icon : 'heroicons_outline:book-open', link : '/docs/guides/getting-started/introduction', - useRouter : true + useRouter : true, }, { id : '2496f42e-2f25-4e34-83d5-3ff9568fd984', label : 'Help center', description: 'FAQs and guides', - icon : 'heroicons_outline:support', + icon : 'heroicons_outline:information-circle', link : '/apps/help-center', - useRouter : true + useRouter : true, }, { id : '3c48e75e-2ae7-4b73-938a-12dc655be28b', @@ -30,15 +30,15 @@ export const shortcuts = [ description: 'User analytics', icon : 'heroicons_outline:chart-pie', link : '/dashboards/analytics', - useRouter : true + useRouter : true, }, { id : '2daac375-a2f7-4393-b4d7-ce6061628b66', label : 'Mailbox', description: '5 new e-mails', - icon : 'heroicons_outline:mail', + icon : 'heroicons_outline:envelope', link : 'apps/mailbox', - useRouter : true + useRouter : true, }, { id : '56a0a561-17e7-40b3-bd75-0b6cef230b7e', @@ -46,7 +46,7 @@ export const shortcuts = [ description: '12 unfinished tasks', icon : 'heroicons_outline:check-circle', link : '/apps/tasks', - useRouter : true + useRouter : true, }, { id : 'f5daf93e-b6f3-4199-8a0c-b951e92a6cb8', @@ -54,14 +54,14 @@ export const shortcuts = [ description: 'List all contacts', icon : 'heroicons_outline:user-group', link : '/apps/contacts', - useRouter : true + useRouter : true, }, { id : '0a240ab8-e19d-4503-bf68-20013030d526', label : 'Reload', description: 'Reload the app', - icon : 'heroicons_outline:refresh', + icon : 'heroicons_outline:arrow-path', link : '/dashboards/project', - useRouter : false - } + useRouter : false, + }, ]; diff --git a/src/app/mock-api/common/user/api.ts b/src/app/mock-api/common/user/api.ts index f73d3671..5073dec8 100644 --- a/src/app/mock-api/common/user/api.ts +++ b/src/app/mock-api/common/user/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { assign, cloneDeep } from 'lodash-es'; import { FuseMockApiService } from '@fuse/lib/mock-api'; import { user as userData } from 'app/mock-api/common/user/data'; +import { assign, cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class UserMockApi { private _user: any = userData; @@ -40,8 +38,8 @@ export class UserMockApi // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService .onPatch('api/common/user') - .reply(({request}) => { - + .reply(({request}) => + { // Get the user mock-api const user = cloneDeep(request.body.user); diff --git a/src/app/mock-api/common/user/data.ts b/src/app/mock-api/common/user/data.ts index 9a51752a..107dfc74 100644 --- a/src/app/mock-api/common/user/data.ts +++ b/src/app/mock-api/common/user/data.ts @@ -4,5 +4,5 @@ export const user = { name : 'Brian Hughes', email : 'hughes.brian@company.com', avatar: 'assets/images/avatars/brian-hughes.jpg', - status: 'online' + status: 'online', }; diff --git a/src/app/mock-api/dashboards/analytics/api.ts b/src/app/mock-api/dashboards/analytics/api.ts index 891be01e..817dc911 100644 --- a/src/app/mock-api/dashboards/analytics/api.ts +++ b/src/app/mock-api/dashboards/analytics/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { cloneDeep } from 'lodash-es'; import { FuseMockApiService } from '@fuse/lib/mock-api'; import { analytics as analyticsData } from 'app/mock-api/dashboards/analytics/data'; +import { cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class AnalyticsMockApi { private _analytics: any = analyticsData; diff --git a/src/app/mock-api/dashboards/analytics/data.ts b/src/app/mock-api/dashboards/analytics/data.ts index 012fdefa..5f8ab484 100644 --- a/src/app/mock-api/dashboards/analytics/data.ts +++ b/src/app/mock-api/dashboards/analytics/data.ts @@ -13,486 +13,486 @@ export const analytics = { data: [ { x: now.minus({months: 12}).plus({day: 1}).toJSDate(), - y: 4884 + y: 4884, }, { x: now.minus({months: 12}).plus({day: 4}).toJSDate(), - y: 5351 + y: 5351, }, { x: now.minus({months: 12}).plus({day: 7}).toJSDate(), - y: 5293 + y: 5293, }, { x: now.minus({months: 12}).plus({day: 10}).toJSDate(), - y: 4908 + y: 4908, }, { x: now.minus({months: 12}).plus({day: 13}).toJSDate(), - y: 5027 + y: 5027, }, { x: now.minus({months: 12}).plus({day: 16}).toJSDate(), - y: 4837 + y: 4837, }, { x: now.minus({months: 12}).plus({day: 19}).toJSDate(), - y: 4484 + y: 4484, }, { x: now.minus({months: 12}).plus({day: 22}).toJSDate(), - y: 4071 + y: 4071, }, { x: now.minus({months: 12}).plus({day: 25}).toJSDate(), - y: 4124 + y: 4124, }, { x: now.minus({months: 12}).plus({day: 28}).toJSDate(), - y: 4563 + y: 4563, }, { x: now.minus({months: 11}).plus({day: 1}).toJSDate(), - y: 3820 + y: 3820, }, { x: now.minus({months: 11}).plus({day: 4}).toJSDate(), - y: 3968 + y: 3968, }, { x: now.minus({months: 11}).plus({day: 7}).toJSDate(), - y: 4102 + y: 4102, }, { x: now.minus({months: 11}).plus({day: 10}).toJSDate(), - y: 3941 + y: 3941, }, { x: now.minus({months: 11}).plus({day: 13}).toJSDate(), - y: 3566 + y: 3566, }, { x: now.minus({months: 11}).plus({day: 16}).toJSDate(), - y: 3853 + y: 3853, }, { x: now.minus({months: 11}).plus({day: 19}).toJSDate(), - y: 3853 + y: 3853, }, { x: now.minus({months: 11}).plus({day: 22}).toJSDate(), - y: 4069 + y: 4069, }, { x: now.minus({months: 11}).plus({day: 25}).toJSDate(), - y: 3879 + y: 3879, }, { x: now.minus({months: 11}).plus({day: 28}).toJSDate(), - y: 4298 + y: 4298, }, { x: now.minus({months: 10}).plus({day: 1}).toJSDate(), - y: 4355 + y: 4355, }, { x: now.minus({months: 10}).plus({day: 4}).toJSDate(), - y: 4065 + y: 4065, }, { x: now.minus({months: 10}).plus({day: 7}).toJSDate(), - y: 3650 + y: 3650, }, { x: now.minus({months: 10}).plus({day: 10}).toJSDate(), - y: 3379 + y: 3379, }, { x: now.minus({months: 10}).plus({day: 13}).toJSDate(), - y: 3191 + y: 3191, }, { x: now.minus({months: 10}).plus({day: 16}).toJSDate(), - y: 2968 + y: 2968, }, { x: now.minus({months: 10}).plus({day: 19}).toJSDate(), - y: 2957 + y: 2957, }, { x: now.minus({months: 10}).plus({day: 22}).toJSDate(), - y: 3313 + y: 3313, }, { x: now.minus({months: 10}).plus({day: 25}).toJSDate(), - y: 3708 + y: 3708, }, { x: now.minus({months: 10}).plus({day: 28}).toJSDate(), - y: 3586 + y: 3586, }, { x: now.minus({months: 9}).plus({day: 1}).toJSDate(), - y: 3965 + y: 3965, }, { x: now.minus({months: 9}).plus({day: 4}).toJSDate(), - y: 3901 + y: 3901, }, { x: now.minus({months: 9}).plus({day: 7}).toJSDate(), - y: 3410 + y: 3410, }, { x: now.minus({months: 9}).plus({day: 10}).toJSDate(), - y: 3748 + y: 3748, }, { x: now.minus({months: 9}).plus({day: 13}).toJSDate(), - y: 3929 + y: 3929, }, { x: now.minus({months: 9}).plus({day: 16}).toJSDate(), - y: 3846 + y: 3846, }, { x: now.minus({months: 9}).plus({day: 19}).toJSDate(), - y: 3771 + y: 3771, }, { x: now.minus({months: 9}).plus({day: 22}).toJSDate(), - y: 4015 + y: 4015, }, { x: now.minus({months: 9}).plus({day: 25}).toJSDate(), - y: 3589 + y: 3589, }, { x: now.minus({months: 9}).plus({day: 28}).toJSDate(), - y: 3150 + y: 3150, }, { x: now.minus({months: 8}).plus({day: 1}).toJSDate(), - y: 3050 + y: 3050, }, { x: now.minus({months: 8}).plus({day: 4}).toJSDate(), - y: 2574 + y: 2574, }, { x: now.minus({months: 8}).plus({day: 7}).toJSDate(), - y: 2823 + y: 2823, }, { x: now.minus({months: 8}).plus({day: 10}).toJSDate(), - y: 2848 + y: 2848, }, { x: now.minus({months: 8}).plus({day: 13}).toJSDate(), - y: 3000 + y: 3000, }, { x: now.minus({months: 8}).plus({day: 16}).toJSDate(), - y: 3216 + y: 3216, }, { x: now.minus({months: 8}).plus({day: 19}).toJSDate(), - y: 3299 + y: 3299, }, { x: now.minus({months: 8}).plus({day: 22}).toJSDate(), - y: 3768 + y: 3768, }, { x: now.minus({months: 8}).plus({day: 25}).toJSDate(), - y: 3524 + y: 3524, }, { x: now.minus({months: 8}).plus({day: 28}).toJSDate(), - y: 3918 + y: 3918, }, { x: now.minus({months: 7}).plus({day: 1}).toJSDate(), - y: 4145 + y: 4145, }, { x: now.minus({months: 7}).plus({day: 4}).toJSDate(), - y: 4378 + y: 4378, }, { x: now.minus({months: 7}).plus({day: 7}).toJSDate(), - y: 3941 + y: 3941, }, { x: now.minus({months: 7}).plus({day: 10}).toJSDate(), - y: 3932 + y: 3932, }, { x: now.minus({months: 7}).plus({day: 13}).toJSDate(), - y: 4380 + y: 4380, }, { x: now.minus({months: 7}).plus({day: 16}).toJSDate(), - y: 4243 + y: 4243, }, { x: now.minus({months: 7}).plus({day: 19}).toJSDate(), - y: 4367 + y: 4367, }, { x: now.minus({months: 7}).plus({day: 22}).toJSDate(), - y: 3879 + y: 3879, }, { x: now.minus({months: 7}).plus({day: 25}).toJSDate(), - y: 4357 + y: 4357, }, { x: now.minus({months: 7}).plus({day: 28}).toJSDate(), - y: 4181 + y: 4181, }, { x: now.minus({months: 6}).plus({day: 1}).toJSDate(), - y: 4619 + y: 4619, }, { x: now.minus({months: 6}).plus({day: 4}).toJSDate(), - y: 4769 + y: 4769, }, { x: now.minus({months: 6}).plus({day: 7}).toJSDate(), - y: 4901 + y: 4901, }, { x: now.minus({months: 6}).plus({day: 10}).toJSDate(), - y: 4640 + y: 4640, }, { x: now.minus({months: 6}).plus({day: 13}).toJSDate(), - y: 5128 + y: 5128, }, { x: now.minus({months: 6}).plus({day: 16}).toJSDate(), - y: 5015 + y: 5015, }, { x: now.minus({months: 6}).plus({day: 19}).toJSDate(), - y: 5360 + y: 5360, }, { x: now.minus({months: 6}).plus({day: 22}).toJSDate(), - y: 5608 + y: 5608, }, { x: now.minus({months: 6}).plus({day: 25}).toJSDate(), - y: 5272 + y: 5272, }, { x: now.minus({months: 6}).plus({day: 28}).toJSDate(), - y: 5660 + y: 5660, }, { x: now.minus({months: 5}).plus({day: 1}).toJSDate(), - y: 5836 + y: 5836, }, { x: now.minus({months: 5}).plus({day: 4}).toJSDate(), - y: 5659 + y: 5659, }, { x: now.minus({months: 5}).plus({day: 7}).toJSDate(), - y: 5575 + y: 5575, }, { x: now.minus({months: 5}).plus({day: 10}).toJSDate(), - y: 5474 + y: 5474, }, { x: now.minus({months: 5}).plus({day: 13}).toJSDate(), - y: 5427 + y: 5427, }, { x: now.minus({months: 5}).plus({day: 16}).toJSDate(), - y: 5865 + y: 5865, }, { x: now.minus({months: 5}).plus({day: 19}).toJSDate(), - y: 5700 + y: 5700, }, { x: now.minus({months: 5}).plus({day: 22}).toJSDate(), - y: 6052 + y: 6052, }, { x: now.minus({months: 5}).plus({day: 25}).toJSDate(), - y: 5760 + y: 5760, }, { x: now.minus({months: 5}).plus({day: 28}).toJSDate(), - y: 5648 + y: 5648, }, { x: now.minus({months: 4}).plus({day: 1}).toJSDate(), - y: 5435 + y: 5435, }, { x: now.minus({months: 4}).plus({day: 4}).toJSDate(), - y: 5239 + y: 5239, }, { x: now.minus({months: 4}).plus({day: 7}).toJSDate(), - y: 5452 + y: 5452, }, { x: now.minus({months: 4}).plus({day: 10}).toJSDate(), - y: 5416 + y: 5416, }, { x: now.minus({months: 4}).plus({day: 13}).toJSDate(), - y: 5195 + y: 5195, }, { x: now.minus({months: 4}).plus({day: 16}).toJSDate(), - y: 5119 + y: 5119, }, { x: now.minus({months: 4}).plus({day: 19}).toJSDate(), - y: 4635 + y: 4635, }, { x: now.minus({months: 4}).plus({day: 22}).toJSDate(), - y: 4833 + y: 4833, }, { x: now.minus({months: 4}).plus({day: 25}).toJSDate(), - y: 4584 + y: 4584, }, { x: now.minus({months: 4}).plus({day: 28}).toJSDate(), - y: 4822 + y: 4822, }, { x: now.minus({months: 3}).plus({day: 1}).toJSDate(), - y: 4582 + y: 4582, }, { x: now.minus({months: 3}).plus({day: 4}).toJSDate(), - y: 4348 + y: 4348, }, { x: now.minus({months: 3}).plus({day: 7}).toJSDate(), - y: 4132 + y: 4132, }, { x: now.minus({months: 3}).plus({day: 10}).toJSDate(), - y: 4099 + y: 4099, }, { x: now.minus({months: 3}).plus({day: 13}).toJSDate(), - y: 3849 + y: 3849, }, { x: now.minus({months: 3}).plus({day: 16}).toJSDate(), - y: 4010 + y: 4010, }, { x: now.minus({months: 3}).plus({day: 19}).toJSDate(), - y: 4486 + y: 4486, }, { x: now.minus({months: 3}).plus({day: 22}).toJSDate(), - y: 4403 + y: 4403, }, { x: now.minus({months: 3}).plus({day: 25}).toJSDate(), - y: 4141 + y: 4141, }, { x: now.minus({months: 3}).plus({day: 28}).toJSDate(), - y: 3780 + y: 3780, }, { x: now.minus({months: 2}).plus({day: 1}).toJSDate(), - y: 3524 + y: 3524, }, { x: now.minus({months: 2}).plus({day: 4}).toJSDate(), - y: 3212 + y: 3212, }, { x: now.minus({months: 2}).plus({day: 7}).toJSDate(), - y: 3568 + y: 3568, }, { x: now.minus({months: 2}).plus({day: 10}).toJSDate(), - y: 3800 + y: 3800, }, { x: now.minus({months: 2}).plus({day: 13}).toJSDate(), - y: 3796 + y: 3796, }, { x: now.minus({months: 2}).plus({day: 16}).toJSDate(), - y: 3870 + y: 3870, }, { x: now.minus({months: 2}).plus({day: 19}).toJSDate(), - y: 3745 + y: 3745, }, { x: now.minus({months: 2}).plus({day: 22}).toJSDate(), - y: 3751 + y: 3751, }, { x: now.minus({months: 2}).plus({day: 25}).toJSDate(), - y: 3310 + y: 3310, }, { x: now.minus({months: 2}).plus({day: 28}).toJSDate(), - y: 3509 + y: 3509, }, { x: now.minus({months: 1}).plus({day: 1}).toJSDate(), - y: 3187 + y: 3187, }, { x: now.minus({months: 1}).plus({day: 4}).toJSDate(), - y: 2918 + y: 2918, }, { x: now.minus({months: 1}).plus({day: 7}).toJSDate(), - y: 3191 + y: 3191, }, { x: now.minus({months: 1}).plus({day: 10}).toJSDate(), - y: 3437 + y: 3437, }, { x: now.minus({months: 1}).plus({day: 13}).toJSDate(), - y: 3291 + y: 3291, }, { x: now.minus({months: 1}).plus({day: 16}).toJSDate(), - y: 3317 + y: 3317, }, { x: now.minus({months: 1}).plus({day: 19}).toJSDate(), - y: 3716 + y: 3716, }, { x: now.minus({months: 1}).plus({day: 22}).toJSDate(), - y: 3260 + y: 3260, }, { x: now.minus({months: 1}).plus({day: 25}).toJSDate(), - y: 3694 + y: 3694, }, { x: now.minus({months: 1}).plus({day: 28}).toJSDate(), - y: 3598 - } - ] - } + y: 3598, + }, + ], + }, ], 'last-year': [ { @@ -500,488 +500,488 @@ export const analytics = { data: [ { x: now.minus({months: 24}).plus({day: 1}).toJSDate(), - y: 2021 + y: 2021, }, { x: now.minus({months: 24}).plus({day: 4}).toJSDate(), - y: 1749 + y: 1749, }, { x: now.minus({months: 24}).plus({day: 7}).toJSDate(), - y: 1654 + y: 1654, }, { x: now.minus({months: 24}).plus({day: 10}).toJSDate(), - y: 1900 + y: 1900, }, { x: now.minus({months: 24}).plus({day: 13}).toJSDate(), - y: 1647 + y: 1647, }, { x: now.minus({months: 24}).plus({day: 16}).toJSDate(), - y: 1315 + y: 1315, }, { x: now.minus({months: 24}).plus({day: 19}).toJSDate(), - y: 1807 + y: 1807, }, { x: now.minus({months: 24}).plus({day: 22}).toJSDate(), - y: 1793 + y: 1793, }, { x: now.minus({months: 24}).plus({day: 25}).toJSDate(), - y: 1892 + y: 1892, }, { x: now.minus({months: 24}).plus({day: 28}).toJSDate(), - y: 1846 + y: 1846, }, { x: now.minus({months: 23}).plus({day: 1}).toJSDate(), - y: 1804 + y: 1804, }, { x: now.minus({months: 23}).plus({day: 4}).toJSDate(), - y: 1778 + y: 1778, }, { x: now.minus({months: 23}).plus({day: 7}).toJSDate(), - y: 2015 + y: 2015, }, { x: now.minus({months: 23}).plus({day: 10}).toJSDate(), - y: 1892 + y: 1892, }, { x: now.minus({months: 23}).plus({day: 13}).toJSDate(), - y: 1708 + y: 1708, }, { x: now.minus({months: 23}).plus({day: 16}).toJSDate(), - y: 1711 + y: 1711, }, { x: now.minus({months: 23}).plus({day: 19}).toJSDate(), - y: 1570 + y: 1570, }, { x: now.minus({months: 23}).plus({day: 22}).toJSDate(), - y: 1507 + y: 1507, }, { x: now.minus({months: 23}).plus({day: 25}).toJSDate(), - y: 1451 + y: 1451, }, { x: now.minus({months: 23}).plus({day: 28}).toJSDate(), - y: 1522 + y: 1522, }, { x: now.minus({months: 22}).plus({day: 1}).toJSDate(), - y: 1977 + y: 1977, }, { x: now.minus({months: 22}).plus({day: 4}).toJSDate(), - y: 2367 + y: 2367, }, { x: now.minus({months: 22}).plus({day: 7}).toJSDate(), - y: 2798 + y: 2798, }, { x: now.minus({months: 22}).plus({day: 10}).toJSDate(), - y: 3080 + y: 3080, }, { x: now.minus({months: 22}).plus({day: 13}).toJSDate(), - y: 2856 + y: 2856, }, { x: now.minus({months: 22}).plus({day: 16}).toJSDate(), - y: 2745 + y: 2745, }, { x: now.minus({months: 22}).plus({day: 19}).toJSDate(), - y: 2750 + y: 2750, }, { x: now.minus({months: 22}).plus({day: 22}).toJSDate(), - y: 2728 + y: 2728, }, { x: now.minus({months: 22}).plus({day: 25}).toJSDate(), - y: 2436 + y: 2436, }, { x: now.minus({months: 22}).plus({day: 28}).toJSDate(), - y: 2289 + y: 2289, }, { x: now.minus({months: 21}).plus({day: 1}).toJSDate(), - y: 2804 + y: 2804, }, { x: now.minus({months: 21}).plus({day: 4}).toJSDate(), - y: 2777 + y: 2777, }, { x: now.minus({months: 21}).plus({day: 7}).toJSDate(), - y: 3024 + y: 3024, }, { x: now.minus({months: 21}).plus({day: 10}).toJSDate(), - y: 2657 + y: 2657, }, { x: now.minus({months: 21}).plus({day: 13}).toJSDate(), - y: 2218 + y: 2218, }, { x: now.minus({months: 21}).plus({day: 16}).toJSDate(), - y: 1964 + y: 1964, }, { x: now.minus({months: 21}).plus({day: 19}).toJSDate(), - y: 1674 + y: 1674, }, { x: now.minus({months: 21}).plus({day: 22}).toJSDate(), - y: 1721 + y: 1721, }, { x: now.minus({months: 21}).plus({day: 25}).toJSDate(), - y: 2005 + y: 2005, }, { x: now.minus({months: 21}).plus({day: 28}).toJSDate(), - y: 1613 + y: 1613, }, { x: now.minus({months: 20}).plus({day: 1}).toJSDate(), - y: 1071 + y: 1071, }, { x: now.minus({months: 20}).plus({day: 4}).toJSDate(), - y: 1079 + y: 1079, }, { x: now.minus({months: 20}).plus({day: 7}).toJSDate(), - y: 1133 + y: 1133, }, { x: now.minus({months: 20}).plus({day: 10}).toJSDate(), - y: 1536 + y: 1536, }, { x: now.minus({months: 20}).plus({day: 13}).toJSDate(), - y: 2016 + y: 2016, }, { x: now.minus({months: 20}).plus({day: 16}).toJSDate(), - y: 2256 + y: 2256, }, { x: now.minus({months: 20}).plus({day: 19}).toJSDate(), - y: 1934 + y: 1934, }, { x: now.minus({months: 20}).plus({day: 22}).toJSDate(), - y: 1832 + y: 1832, }, { x: now.minus({months: 20}).plus({day: 25}).toJSDate(), - y: 2075 + y: 2075, }, { x: now.minus({months: 20}).plus({day: 28}).toJSDate(), - y: 1709 + y: 1709, }, { x: now.minus({months: 19}).plus({day: 1}).toJSDate(), - y: 1831 + y: 1831, }, { x: now.minus({months: 19}).plus({day: 4}).toJSDate(), - y: 1434 + y: 1434, }, { x: now.minus({months: 19}).plus({day: 7}).toJSDate(), - y: 1293 + y: 1293, }, { x: now.minus({months: 19}).plus({day: 10}).toJSDate(), - y: 1064 + y: 1064, }, { x: now.minus({months: 19}).plus({day: 13}).toJSDate(), - y: 1080 + y: 1080, }, { x: now.minus({months: 19}).plus({day: 16}).toJSDate(), - y: 1032 + y: 1032, }, { x: now.minus({months: 19}).plus({day: 19}).toJSDate(), - y: 1280 + y: 1280, }, { x: now.minus({months: 19}).plus({day: 22}).toJSDate(), - y: 1344 + y: 1344, }, { x: now.minus({months: 19}).plus({day: 25}).toJSDate(), - y: 1835 + y: 1835, }, { x: now.minus({months: 19}).plus({day: 28}).toJSDate(), - y: 2287 + y: 2287, }, { x: now.minus({months: 18}).plus({day: 1}).toJSDate(), - y: 2692 + y: 2692, }, { x: now.minus({months: 18}).plus({day: 4}).toJSDate(), - y: 2250 + y: 2250, }, { x: now.minus({months: 18}).plus({day: 7}).toJSDate(), - y: 1814 + y: 1814, }, { x: now.minus({months: 18}).plus({day: 10}).toJSDate(), - y: 1906 + y: 1906, }, { x: now.minus({months: 18}).plus({day: 13}).toJSDate(), - y: 1973 + y: 1973, }, { x: now.minus({months: 18}).plus({day: 16}).toJSDate(), - y: 1882 + y: 1882, }, { x: now.minus({months: 18}).plus({day: 19}).toJSDate(), - y: 2333 + y: 2333, }, { x: now.minus({months: 18}).plus({day: 22}).toJSDate(), - y: 2048 + y: 2048, }, { x: now.minus({months: 18}).plus({day: 25}).toJSDate(), - y: 2547 + y: 2547, }, { x: now.minus({months: 18}).plus({day: 28}).toJSDate(), - y: 2884 + y: 2884, }, { x: now.minus({months: 17}).plus({day: 1}).toJSDate(), - y: 2771 + y: 2771, }, { x: now.minus({months: 17}).plus({day: 4}).toJSDate(), - y: 2522 + y: 2522, }, { x: now.minus({months: 17}).plus({day: 7}).toJSDate(), - y: 2543 + y: 2543, }, { x: now.minus({months: 17}).plus({day: 10}).toJSDate(), - y: 2413 + y: 2413, }, { x: now.minus({months: 17}).plus({day: 13}).toJSDate(), - y: 2002 + y: 2002, }, { x: now.minus({months: 17}).plus({day: 16}).toJSDate(), - y: 1838 + y: 1838, }, { x: now.minus({months: 17}).plus({day: 19}).toJSDate(), - y: 1830 + y: 1830, }, { x: now.minus({months: 17}).plus({day: 22}).toJSDate(), - y: 1872 + y: 1872, }, { x: now.minus({months: 17}).plus({day: 25}).toJSDate(), - y: 2246 + y: 2246, }, { x: now.minus({months: 17}).plus({day: 28}).toJSDate(), - y: 2171 + y: 2171, }, { x: now.minus({months: 16}).plus({day: 1}).toJSDate(), - y: 2988 + y: 2988, }, { x: now.minus({months: 16}).plus({day: 4}).toJSDate(), - y: 2694 + y: 2694, }, { x: now.minus({months: 16}).plus({day: 7}).toJSDate(), - y: 2806 + y: 2806, }, { x: now.minus({months: 16}).plus({day: 10}).toJSDate(), - y: 3040 + y: 3040, }, { x: now.minus({months: 16}).plus({day: 13}).toJSDate(), - y: 2898 + y: 2898, }, { x: now.minus({months: 16}).plus({day: 16}).toJSDate(), - y: 3013 + y: 3013, }, { x: now.minus({months: 16}).plus({day: 19}).toJSDate(), - y: 2760 + y: 2760, }, { x: now.minus({months: 16}).plus({day: 22}).toJSDate(), - y: 3021 + y: 3021, }, { x: now.minus({months: 16}).plus({day: 25}).toJSDate(), - y: 2688 + y: 2688, }, { x: now.minus({months: 16}).plus({day: 28}).toJSDate(), - y: 2572 + y: 2572, }, { x: now.minus({months: 15}).plus({day: 1}).toJSDate(), - y: 2789 + y: 2789, }, { x: now.minus({months: 15}).plus({day: 4}).toJSDate(), - y: 3069 + y: 3069, }, { x: now.minus({months: 15}).plus({day: 7}).toJSDate(), - y: 3142 + y: 3142, }, { x: now.minus({months: 15}).plus({day: 10}).toJSDate(), - y: 3614 + y: 3614, }, { x: now.minus({months: 15}).plus({day: 13}).toJSDate(), - y: 3202 + y: 3202, }, { x: now.minus({months: 15}).plus({day: 16}).toJSDate(), - y: 2730 + y: 2730, }, { x: now.minus({months: 15}).plus({day: 19}).toJSDate(), - y: 2951 + y: 2951, }, { x: now.minus({months: 15}).plus({day: 22}).toJSDate(), - y: 3267 + y: 3267, }, { x: now.minus({months: 15}).plus({day: 25}).toJSDate(), - y: 2882 + y: 2882, }, { x: now.minus({months: 15}).plus({day: 28}).toJSDate(), - y: 2885 + y: 2885, }, { x: now.minus({months: 14}).plus({day: 1}).toJSDate(), - y: 2915 + y: 2915, }, { x: now.minus({months: 14}).plus({day: 4}).toJSDate(), - y: 2790 + y: 2790, }, { x: now.minus({months: 14}).plus({day: 7}).toJSDate(), - y: 3071 + y: 3071, }, { x: now.minus({months: 14}).plus({day: 10}).toJSDate(), - y: 2802 + y: 2802, }, { x: now.minus({months: 14}).plus({day: 13}).toJSDate(), - y: 2382 + y: 2382, }, { x: now.minus({months: 14}).plus({day: 16}).toJSDate(), - y: 1883 + y: 1883, }, { x: now.minus({months: 14}).plus({day: 19}).toJSDate(), - y: 1448 + y: 1448, }, { x: now.minus({months: 14}).plus({day: 22}).toJSDate(), - y: 1176 + y: 1176, }, { x: now.minus({months: 14}).plus({day: 25}).toJSDate(), - y: 1275 + y: 1275, }, { x: now.minus({months: 14}).plus({day: 28}).toJSDate(), - y: 1136 + y: 1136, }, { x: now.minus({months: 13}).plus({day: 1}).toJSDate(), - y: 1160 + y: 1160, }, { x: now.minus({months: 13}).plus({day: 4}).toJSDate(), - y: 1524 + y: 1524, }, { x: now.minus({months: 13}).plus({day: 7}).toJSDate(), - y: 1305 + y: 1305, }, { x: now.minus({months: 13}).plus({day: 10}).toJSDate(), - y: 1725 + y: 1725, }, { x: now.minus({months: 13}).plus({day: 13}).toJSDate(), - y: 1850 + y: 1850, }, { x: now.minus({months: 13}).plus({day: 16}).toJSDate(), - y: 2304 + y: 2304, }, { x: now.minus({months: 13}).plus({day: 19}).toJSDate(), - y: 2187 + y: 2187, }, { x: now.minus({months: 13}).plus({day: 22}).toJSDate(), - y: 2597 + y: 2597, }, { x: now.minus({months: 13}).plus({day: 25}).toJSDate(), - y: 2246 + y: 2246, }, { x: now.minus({months: 13}).plus({day: 28}).toJSDate(), - y: 1767 - } - ] - } - ] - } + y: 1767, + }, + ], + }, + ], + }, }, conversions : { amount: 4123, @@ -991,14 +991,14 @@ export const analytics = { now.minus({days: 31}).toFormat('dd MMM') + ' - ' + now.minus({days: 24}).toFormat('dd MMM'), now.minus({days: 23}).toFormat('dd MMM') + ' - ' + now.minus({days: 16}).toFormat('dd MMM'), now.minus({days: 15}).toFormat('dd MMM') + ' - ' + now.minus({days: 8}).toFormat('dd MMM'), - now.minus({days: 7}).toFormat('dd MMM') + ' - ' + now.toFormat('dd MMM') + now.minus({days: 7}).toFormat('dd MMM') + ' - ' + now.toFormat('dd MMM'), ], series: [ { name: 'Conversions', - data: [4412, 4345, 4541, 4677, 4322, 4123] - } - ] + data: [4412, 4345, 4541, 4677, 4322, 4123], + }, + ], }, impressions : { amount: 46085, @@ -1006,14 +1006,14 @@ export const analytics = { now.minus({days: 31}).toFormat('dd MMM') + ' - ' + now.minus({days: 24}).toFormat('dd MMM'), now.minus({days: 23}).toFormat('dd MMM') + ' - ' + now.minus({days: 16}).toFormat('dd MMM'), now.minus({days: 15}).toFormat('dd MMM') + ' - ' + now.minus({days: 8}).toFormat('dd MMM'), - now.minus({days: 7}).toFormat('dd MMM') + ' - ' + now.toFormat('dd MMM') + now.minus({days: 7}).toFormat('dd MMM') + ' - ' + now.toFormat('dd MMM'), ], series: [ { name: 'Impressions', - data: [11577, 11441, 11544, 11523] - } - ] + data: [11577, 11441, 11544, 11523], + }, + ], }, visits : { amount: 62083, @@ -1021,14 +1021,14 @@ export const analytics = { now.minus({days: 31}).toFormat('dd MMM') + ' - ' + now.minus({days: 24}).toFormat('dd MMM'), now.minus({days: 23}).toFormat('dd MMM') + ' - ' + now.minus({days: 16}).toFormat('dd MMM'), now.minus({days: 15}).toFormat('dd MMM') + ' - ' + now.minus({days: 8}).toFormat('dd MMM'), - now.minus({days: 7}).toFormat('dd MMM') + ' - ' + now.toFormat('dd MMM') + now.minus({days: 7}).toFormat('dd MMM') + ' - ' + now.toFormat('dd MMM'), ], series: [ { name: 'Visits', - data: [15521, 15519, 15522, 15521] - } - ] + data: [15521, 15519, 15522, 15521], + }, + ], }, visitorsVsPageViews: { overallScore : 472, @@ -1040,563 +1040,563 @@ export const analytics = { data: [ { x: now.minus({days: 65}).toJSDate(), - y: 4769 + y: 4769, }, { x: now.minus({days: 64}).toJSDate(), - y: 4901 + y: 4901, }, { x: now.minus({days: 63}).toJSDate(), - y: 4640 + y: 4640, }, { x: now.minus({days: 62}).toJSDate(), - y: 5128 + y: 5128, }, { x: now.minus({days: 61}).toJSDate(), - y: 5015 + y: 5015, }, { x: now.minus({days: 60}).toJSDate(), - y: 5360 + y: 5360, }, { x: now.minus({days: 59}).toJSDate(), - y: 5608 + y: 5608, }, { x: now.minus({days: 58}).toJSDate(), - y: 5272 + y: 5272, }, { x: now.minus({days: 57}).toJSDate(), - y: 5660 + y: 5660, }, { x: now.minus({days: 56}).toJSDate(), - y: 6026 + y: 6026, }, { x: now.minus({days: 55}).toJSDate(), - y: 5836 + y: 5836, }, { x: now.minus({days: 54}).toJSDate(), - y: 5659 + y: 5659, }, { x: now.minus({days: 53}).toJSDate(), - y: 5575 + y: 5575, }, { x: now.minus({days: 52}).toJSDate(), - y: 5474 + y: 5474, }, { x: now.minus({days: 51}).toJSDate(), - y: 5427 + y: 5427, }, { x: now.minus({days: 50}).toJSDate(), - y: 5865 + y: 5865, }, { x: now.minus({days: 49}).toJSDate(), - y: 5700 + y: 5700, }, { x: now.minus({days: 48}).toJSDate(), - y: 6052 + y: 6052, }, { x: now.minus({days: 47}).toJSDate(), - y: 5760 + y: 5760, }, { x: now.minus({days: 46}).toJSDate(), - y: 5648 + y: 5648, }, { x: now.minus({days: 45}).toJSDate(), - y: 5510 + y: 5510, }, { x: now.minus({days: 44}).toJSDate(), - y: 5435 + y: 5435, }, { x: now.minus({days: 43}).toJSDate(), - y: 5239 + y: 5239, }, { x: now.minus({days: 42}).toJSDate(), - y: 5452 + y: 5452, }, { x: now.minus({days: 41}).toJSDate(), - y: 5416 + y: 5416, }, { x: now.minus({days: 40}).toJSDate(), - y: 5195 + y: 5195, }, { x: now.minus({days: 39}).toJSDate(), - y: 5119 + y: 5119, }, { x: now.minus({days: 38}).toJSDate(), - y: 4635 + y: 4635, }, { x: now.minus({days: 37}).toJSDate(), - y: 4833 + y: 4833, }, { x: now.minus({days: 36}).toJSDate(), - y: 4584 + y: 4584, }, { x: now.minus({days: 35}).toJSDate(), - y: 4822 + y: 4822, }, { x: now.minus({days: 34}).toJSDate(), - y: 4330 + y: 4330, }, { x: now.minus({days: 33}).toJSDate(), - y: 4582 + y: 4582, }, { x: now.minus({days: 32}).toJSDate(), - y: 4348 + y: 4348, }, { x: now.minus({days: 31}).toJSDate(), - y: 4132 + y: 4132, }, { x: now.minus({days: 30}).toJSDate(), - y: 4099 + y: 4099, }, { x: now.minus({days: 29}).toJSDate(), - y: 3849 + y: 3849, }, { x: now.minus({days: 28}).toJSDate(), - y: 4010 + y: 4010, }, { x: now.minus({days: 27}).toJSDate(), - y: 4486 + y: 4486, }, { x: now.minus({days: 26}).toJSDate(), - y: 4403 + y: 4403, }, { x: now.minus({days: 25}).toJSDate(), - y: 4141 + y: 4141, }, { x: now.minus({days: 24}).toJSDate(), - y: 3780 + y: 3780, }, { x: now.minus({days: 23}).toJSDate(), - y: 3929 + y: 3929, }, { x: now.minus({days: 22}).toJSDate(), - y: 3524 + y: 3524, }, { x: now.minus({days: 21}).toJSDate(), - y: 3212 + y: 3212, }, { x: now.minus({days: 20}).toJSDate(), - y: 3568 + y: 3568, }, { x: now.minus({days: 19}).toJSDate(), - y: 3800 + y: 3800, }, { x: now.minus({days: 18}).toJSDate(), - y: 3796 + y: 3796, }, { x: now.minus({days: 17}).toJSDate(), - y: 3870 + y: 3870, }, { x: now.minus({days: 16}).toJSDate(), - y: 3745 + y: 3745, }, { x: now.minus({days: 15}).toJSDate(), - y: 3751 + y: 3751, }, { x: now.minus({days: 14}).toJSDate(), - y: 3310 + y: 3310, }, { x: now.minus({days: 13}).toJSDate(), - y: 3509 + y: 3509, }, { x: now.minus({days: 12}).toJSDate(), - y: 3311 + y: 3311, }, { x: now.minus({days: 11}).toJSDate(), - y: 3187 + y: 3187, }, { x: now.minus({days: 10}).toJSDate(), - y: 2918 + y: 2918, }, { x: now.minus({days: 9}).toJSDate(), - y: 3191 + y: 3191, }, { x: now.minus({days: 8}).toJSDate(), - y: 3437 + y: 3437, }, { x: now.minus({days: 7}).toJSDate(), - y: 3291 + y: 3291, }, { x: now.minus({days: 6}).toJSDate(), - y: 3317 + y: 3317, }, { x: now.minus({days: 5}).toJSDate(), - y: 3716 + y: 3716, }, { x: now.minus({days: 4}).toJSDate(), - y: 3260 + y: 3260, }, { x: now.minus({days: 3}).toJSDate(), - y: 3694 + y: 3694, }, { x: now.minus({days: 2}).toJSDate(), - y: 3598 + y: 3598, }, { x: now.minus({days: 1}).toJSDate(), - y: 3812 - } - ] + y: 3812, + }, + ], }, { name: 'Visitors', data: [ { x: now.minus({days: 65}).toJSDate(), - y: 1654 + y: 1654, }, { x: now.minus({days: 64}).toJSDate(), - y: 1900 + y: 1900, }, { x: now.minus({days: 63}).toJSDate(), - y: 1647 + y: 1647, }, { x: now.minus({days: 62}).toJSDate(), - y: 1315 + y: 1315, }, { x: now.minus({days: 61}).toJSDate(), - y: 1807 + y: 1807, }, { x: now.minus({days: 60}).toJSDate(), - y: 1793 + y: 1793, }, { x: now.minus({days: 59}).toJSDate(), - y: 1892 + y: 1892, }, { x: now.minus({days: 58}).toJSDate(), - y: 1846 + y: 1846, }, { x: now.minus({days: 57}).toJSDate(), - y: 1966 + y: 1966, }, { x: now.minus({days: 56}).toJSDate(), - y: 1804 + y: 1804, }, { x: now.minus({days: 55}).toJSDate(), - y: 1778 + y: 1778, }, { x: now.minus({days: 54}).toJSDate(), - y: 2015 + y: 2015, }, { x: now.minus({days: 53}).toJSDate(), - y: 1892 + y: 1892, }, { x: now.minus({days: 52}).toJSDate(), - y: 1708 + y: 1708, }, { x: now.minus({days: 51}).toJSDate(), - y: 1711 + y: 1711, }, { x: now.minus({days: 50}).toJSDate(), - y: 1570 + y: 1570, }, { x: now.minus({days: 49}).toJSDate(), - y: 1507 + y: 1507, }, { x: now.minus({days: 48}).toJSDate(), - y: 1451 + y: 1451, }, { x: now.minus({days: 47}).toJSDate(), - y: 1522 + y: 1522, }, { x: now.minus({days: 46}).toJSDate(), - y: 1801 + y: 1801, }, { x: now.minus({days: 45}).toJSDate(), - y: 1977 + y: 1977, }, { x: now.minus({days: 44}).toJSDate(), - y: 2367 + y: 2367, }, { x: now.minus({days: 43}).toJSDate(), - y: 2798 + y: 2798, }, { x: now.minus({days: 42}).toJSDate(), - y: 3080 + y: 3080, }, { x: now.minus({days: 41}).toJSDate(), - y: 2856 + y: 2856, }, { x: now.minus({days: 40}).toJSDate(), - y: 2745 + y: 2745, }, { x: now.minus({days: 39}).toJSDate(), - y: 2750 + y: 2750, }, { x: now.minus({days: 38}).toJSDate(), - y: 2728 + y: 2728, }, { x: now.minus({days: 37}).toJSDate(), - y: 2436 + y: 2436, }, { x: now.minus({days: 36}).toJSDate(), - y: 2289 + y: 2289, }, { x: now.minus({days: 35}).toJSDate(), - y: 2657 + y: 2657, }, { x: now.minus({days: 34}).toJSDate(), - y: 2804 + y: 2804, }, { x: now.minus({days: 33}).toJSDate(), - y: 2777 + y: 2777, }, { x: now.minus({days: 32}).toJSDate(), - y: 3024 + y: 3024, }, { x: now.minus({days: 31}).toJSDate(), - y: 2657 + y: 2657, }, { x: now.minus({days: 30}).toJSDate(), - y: 2218 + y: 2218, }, { x: now.minus({days: 29}).toJSDate(), - y: 1964 + y: 1964, }, { x: now.minus({days: 28}).toJSDate(), - y: 1674 + y: 1674, }, { x: now.minus({days: 27}).toJSDate(), - y: 1721 + y: 1721, }, { x: now.minus({days: 26}).toJSDate(), - y: 2005 + y: 2005, }, { x: now.minus({days: 25}).toJSDate(), - y: 1613 + y: 1613, }, { x: now.minus({days: 24}).toJSDate(), - y: 1295 + y: 1295, }, { x: now.minus({days: 23}).toJSDate(), - y: 1071 + y: 1071, }, { x: now.minus({days: 22}).toJSDate(), - y: 799 + y: 799, }, { x: now.minus({days: 21}).toJSDate(), - y: 1133 + y: 1133, }, { x: now.minus({days: 20}).toJSDate(), - y: 1536 + y: 1536, }, { x: now.minus({days: 19}).toJSDate(), - y: 2016 + y: 2016, }, { x: now.minus({days: 18}).toJSDate(), - y: 2256 + y: 2256, }, { x: now.minus({days: 17}).toJSDate(), - y: 1934 + y: 1934, }, { x: now.minus({days: 16}).toJSDate(), - y: 1832 + y: 1832, }, { x: now.minus({days: 15}).toJSDate(), - y: 2075 + y: 2075, }, { x: now.minus({days: 14}).toJSDate(), - y: 1709 + y: 1709, }, { x: now.minus({days: 13}).toJSDate(), - y: 1932 + y: 1932, }, { x: now.minus({days: 12}).toJSDate(), - y: 1831 + y: 1831, }, { x: now.minus({days: 11}).toJSDate(), - y: 1434 + y: 1434, }, { x: now.minus({days: 10}).toJSDate(), - y: 993 + y: 993, }, { x: now.minus({days: 9}).toJSDate(), - y: 1064 + y: 1064, }, { x: now.minus({days: 8}).toJSDate(), - y: 618 + y: 618, }, { x: now.minus({days: 7}).toJSDate(), - y: 1032 + y: 1032, }, { x: now.minus({days: 6}).toJSDate(), - y: 1280 + y: 1280, }, { x: now.minus({days: 5}).toJSDate(), - y: 1344 + y: 1344, }, { x: now.minus({days: 4}).toJSDate(), - y: 1835 + y: 1835, }, { x: now.minus({days: 3}).toJSDate(), - y: 2287 + y: 2287, }, { x: now.minus({days: 2}).toJSDate(), - y: 2226 + y: 2226, }, { x: now.minus({days: 1}).toJSDate(), - y: 2692 - } - ] - } - ] + y: 2692, + }, + ], + }, + ], }, newVsReturning : { uniqueVisitors: 46085, series : [80, 20], labels : [ 'New', - 'Returning' - ] + 'Returning', + ], }, gender : { uniqueVisitors: 46085, series : [55, 45], labels : [ 'Male', - 'Female' - ] + 'Female', + ], }, age : { uniqueVisitors: 46085, series : [35, 65], labels : [ 'Under 30', - 'Over 30' - ] + 'Over 30', + ], }, language : { uniqueVisitors: 46085, series : [25, 75], labels : [ 'English', - 'Other' - ] - } + 'Other', + ], + }, }; diff --git a/src/app/mock-api/dashboards/crypto/api.ts b/src/app/mock-api/dashboards/crypto/api.ts index e59c7b04..c9cd927a 100644 --- a/src/app/mock-api/dashboards/crypto/api.ts +++ b/src/app/mock-api/dashboards/crypto/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { cloneDeep } from 'lodash-es'; import { FuseMockApiService } from '@fuse/lib/mock-api'; import { crypto as cryptoData } from 'app/mock-api/dashboards/crypto/data'; +import { cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class CryptoMockApi { private _crypto: any = cryptoData; diff --git a/src/app/mock-api/dashboards/crypto/data.ts b/src/app/mock-api/dashboards/crypto/data.ts index 60af2d5e..bf0eb356 100644 --- a/src/app/mock-api/dashboards/crypto/data.ts +++ b/src/app/mock-api/dashboards/crypto/data.ts @@ -9,7 +9,7 @@ export const crypto = { amount : 8878.48, trend : { dir : 'up', - amount: 0.17 + amount: 0.17, }, marketCap : 148752956966, volume : 22903438381, @@ -22,600 +22,600 @@ export const crypto = { data: [ { x: -145, - y: 6554.36 + y: 6554.36, }, { x: -144, - y: 6554.36 + y: 6554.36, }, { x: -143, - y: 6546.94 + y: 6546.94, }, { x: -142, - y: 6546.96 + y: 6546.96, }, { x: -141, - y: 6546.11 + y: 6546.11, }, { x: -140, - y: 6550.26 + y: 6550.26, }, { x: -139, - y: 6546.11 + y: 6546.11, }, { x: -138, - y: 6550.79 + y: 6550.79, }, { x: -137, - y: 6545.36 + y: 6545.36, }, { x: -136, - y: 6541.06 + y: 6541.06, }, { x: -135, - y: 6540.10 + y: 6540.10, }, { x: -134, - y: 6538.31 + y: 6538.31, }, { x: -133, - y: 6538.42 + y: 6538.42, }, { x: -132, - y: 6538.48 + y: 6538.48, }, { x: -131, - y: 6538.71 + y: 6538.71, }, { x: -130, - y: 6548.42 + y: 6548.42, }, { x: -129, - y: 6546.87 + y: 6546.87, }, { x: -128, - y: 6547.07 + y: 6547.07, }, { x: -127, - y: 6535.07 + y: 6535.07, }, { x: -126, - y: 6535.01 + y: 6535.01, }, { x: -125, - y: 6539.02 + y: 6539.02, }, { x: -124, - y: 6547.96 + y: 6547.96, }, { x: -123, - y: 6547.92 + y: 6547.92, }, { x: -122, - y: 6546.56 + y: 6546.56, }, { x: -121, - y: 6546.56 + y: 6546.56, }, { x: -120, - y: 6564.16 + y: 6564.16, }, { x: -119, - y: 6560.83 + y: 6560.83, }, { x: -118, - y: 6559.08 + y: 6559.08, }, { x: -117, - y: 6553.02 + y: 6553.02, }, { x: -116, - y: 6564.99 + y: 6564.99, }, { x: -115, - y: 6558.70 + y: 6558.70, }, { x: -114, - y: 6568.73 + y: 6568.73, }, { x: -113, - y: 6568.80 + y: 6568.80, }, { x: -112, - y: 6568.80 + y: 6568.80, }, { x: -111, - y: 6568.80 + y: 6568.80, }, { x: -110, - y: 6571.83 + y: 6571.83, }, { x: -109, - y: 6562.64 + y: 6562.64, }, { x: -108, - y: 6561.28 + y: 6561.28, }, { x: -107, - y: 6561.28 + y: 6561.28, }, { x: -106, - y: 6560.40 + y: 6560.40, }, { x: -105, - y: 6564.41 + y: 6564.41, }, { x: -104, - y: 6562.44 + y: 6562.44, }, { x: -103, - y: 6565.13 + y: 6565.13, }, { x: -102, - y: 6553.30 + y: 6553.30, }, { x: -101, - y: 6552.68 + y: 6552.68, }, { x: -100, - y: 6551.92 + y: 6551.92, }, { x: -99, - y: 6553.85 + y: 6553.85, }, { x: -98, - y: 6560.00 + y: 6560.00, }, { x: -97, - y: 6560.00 + y: 6560.00, }, { x: -96, - y: 6565.01 + y: 6565.01, }, { x: -95, - y: 6583.19 + y: 6583.19, }, { x: -94, - y: 6555.79 + y: 6555.79, }, { x: -93, - y: 6556.04 + y: 6556.04, }, { x: -92, - y: 6558.85 + y: 6558.85, }, { x: -91, - y: 6564.75 + y: 6564.75, }, { x: -90, - y: 6564.88 + y: 6564.88, }, { x: -89, - y: 6565.10 + y: 6565.10, }, { x: -88, - y: 6565.72 + y: 6565.72, }, { x: -87, - y: 6565.72 + y: 6565.72, }, { x: -86, - y: 6565.95 + y: 6565.95, }, { x: -85, - y: 6561.82 + y: 6561.82, }, { x: -84, - y: 6566.26 + y: 6566.26, }, { x: -83, - y: 6568.81 + y: 6568.81, }, { x: -82, - y: 6588.57 + y: 6588.57, }, { x: -81, - y: 6587.11 + y: 6587.11, }, { x: -80, - y: 6577.86 + y: 6577.86, }, { x: -79, - y: 6586.51 + y: 6586.51, }, { x: -78, - y: 6581.14 + y: 6581.14, }, { x: -77, - y: 6581.45 + y: 6581.45, }, { x: -76, - y: 6589.54 + y: 6589.54, }, { x: -75, - y: 6580.91 + y: 6580.91, }, { x: -74, - y: 6581.67 + y: 6581.67, }, { x: -73, - y: 6579.06 + y: 6579.06, }, { x: -72, - y: 6578.73 + y: 6578.73, }, { x: -71, - y: 6578.64 + y: 6578.64, }, { x: -70, - y: 6579.08 + y: 6579.08, }, { x: -69, - y: 6577.43 + y: 6577.43, }, { x: -68, - y: 6582.12 + y: 6582.12, }, { x: -67, - y: 6572.42 + y: 6572.42, }, { x: -66, - y: 6578.72 + y: 6578.72, }, { x: -65, - y: 6572.43 + y: 6572.43, }, { x: -64, - y: 6570.64 + y: 6570.64, }, { x: -63, - y: 6561.64 + y: 6561.64, }, { x: -62, - y: 6550.84 + y: 6550.84, }, { x: -61, - y: 6561.83 + y: 6561.83, }, { x: -60, - y: 6561.84 + y: 6561.84, }, { x: -59, - y: 6552.44 + y: 6552.44, }, { x: -58, - y: 6552.47 + y: 6552.47, }, { x: -57, - y: 6562.31 + y: 6562.31, }, { x: -56, - y: 6562.10 + y: 6562.10, }, { x: -55, - y: 6561.65 + y: 6561.65, }, { x: -54, - y: 6547.96 + y: 6547.96, }, { x: -53, - y: 6559.95 + y: 6559.95, }, { x: -52, - y: 6562.08 + y: 6562.08, }, { x: -51, - y: 6557.71 + y: 6557.71, }, { x: -50, - y: 6559.05 + y: 6559.05, }, { x: -49, - y: 6562.69 + y: 6562.69, }, { x: -48, - y: 6578.18 + y: 6578.18, }, { x: -47, - y: 6580.15 + y: 6580.15, }, { x: -46, - y: 6584.26 + y: 6584.26, }, { x: -45, - y: 6574.75 + y: 6574.75, }, { x: -44, - y: 6574.85 + y: 6574.85, }, { x: -43, - y: 6582.63 + y: 6582.63, }, { x: -42, - y: 6569.70 + y: 6569.70, }, { x: -41, - y: 6570.10 + y: 6570.10, }, { x: -40, - y: 6570.11 + y: 6570.11, }, { x: -39, - y: 6569.71 + y: 6569.71, }, { x: -38, - y: 6578.03 + y: 6578.03, }, { x: -37, - y: 6579.92 + y: 6579.92, }, { x: -36, - y: 6571.03 + y: 6571.03, }, { x: -35, - y: 6571.48 + y: 6571.48, }, { x: -34, - y: 6576.67 + y: 6576.67, }, { x: -33, - y: 6576.67 + y: 6576.67, }, { x: -32, - y: 6576.63 + y: 6576.63, }, { x: -31, - y: 6576.68 + y: 6576.68, }, { x: -30, - y: 6573.29 + y: 6573.29, }, { x: -29, - y: 6577.28 + y: 6577.28, }, { x: -28, - y: 6577.73 + y: 6577.73, }, { x: -27, - y: 6577.70 + y: 6577.70, }, { x: -26, - y: 6578.36 + y: 6578.36, }, { x: -25, - y: 6578.24 + y: 6578.24, }, { x: -24, - y: 6581.30 + y: 6581.30, }, { x: -23, - y: 6582.59 + y: 6582.59, }, { x: -22, - y: 6602.51 + y: 6602.51, }, { x: -21, - y: 6582.65 + y: 6582.65, }, { x: -20, - y: 6574.77 + y: 6574.77, }, { x: -19, - y: 6574.41 + y: 6574.41, }, { x: -18, - y: 6575.08 + y: 6575.08, }, { x: -17, - y: 6575.08 + y: 6575.08, }, { x: -16, - y: 6574.09 + y: 6574.09, }, { x: -15, - y: 6568.84 + y: 6568.84, }, { x: -14, - y: 6567.49 + y: 6567.49, }, { x: -13, - y: 6559.75 + y: 6559.75, }, { x: -12, - y: 6566.65 + y: 6566.65, }, { x: -11, - y: 6567.52 + y: 6567.52, }, { x: -10, - y: 6567.59 + y: 6567.59, }, { x: -9, - y: 6564.18 + y: 6564.18, }, { x: -8, - y: 6570.11 + y: 6570.11, }, { x: -7, - y: 6562.70 + y: 6562.70, }, { x: -6, - y: 6562.70 + y: 6562.70, }, { x: -5, - y: 6562.77 + y: 6562.77, }, { x: -4, - y: 6569.46 + y: 6569.46, }, { x: -3, - y: 6571.04 + y: 6571.04, }, { x: -2, - y: 6571.48 + y: 6571.48, }, { x: -1, - y: 6571.30 - } - ] - } - ] - } + y: 6571.30, + }, + ], + }, + ], + }, }, prices : { btc: 8878.48, eth: 170.46, bch: 359.93, - xrp: 0.23512 + xrp: 0.23512, }, wallets : { btc: 24.97311243, eth: 126.3212, bch: 78.454412, - xrp: 11278.771123 + xrp: 11278.771123, }, watchlist: [ { @@ -624,7 +624,7 @@ export const crypto = { amount: 170.46, trend : { dir : 'up', - amount: 2.35 + amount: 2.35, }, series: [ { @@ -632,87 +632,87 @@ export const crypto = { data: [ { x: now.minus({minutes: 20}).toFormat('HH:mm'), - y: 154.36 + y: 154.36, }, { x: now.minus({minutes: 19}).toFormat('HH:mm'), - y: 154.36 + y: 154.36, }, { x: now.minus({minutes: 18}).toFormat('HH:mm'), - y: 146.94 + y: 146.94, }, { x: now.minus({minutes: 17}).toFormat('HH:mm'), - y: 146.96 + y: 146.96, }, { x: now.minus({minutes: 16}).toFormat('HH:mm'), - y: 146.11 + y: 146.11, }, { x: now.minus({minutes: 15}).toFormat('HH:mm'), - y: 150.26 + y: 150.26, }, { x: now.minus({minutes: 14}).toFormat('HH:mm'), - y: 146.11 + y: 146.11, }, { x: now.minus({minutes: 13}).toFormat('HH:mm'), - y: 150.79 + y: 150.79, }, { x: now.minus({minutes: 12}).toFormat('HH:mm'), - y: 145.36 + y: 145.36, }, { x: now.minus({minutes: 11}).toFormat('HH:mm'), - y: 141.06 + y: 141.06, }, { x: now.minus({minutes: 10}).toFormat('HH:mm'), - y: 140.10 + y: 140.10, }, { x: now.minus({minutes: 9}).toFormat('HH:mm'), - y: 138.31 + y: 138.31, }, { x: now.minus({minutes: 8}).toFormat('HH:mm'), - y: 138.42 + y: 138.42, }, { x: now.minus({minutes: 7}).toFormat('HH:mm'), - y: 138.48 + y: 138.48, }, { x: now.minus({minutes: 6}).toFormat('HH:mm'), - y: 138.71 + y: 138.71, }, { x: now.minus({minutes: 5}).toFormat('HH:mm'), - y: 148.42 + y: 148.42, }, { x: now.minus({minutes: 4}).toFormat('HH:mm'), - y: 146.87 + y: 146.87, }, { x: now.minus({minutes: 3}).toFormat('HH:mm'), - y: 147.07 + y: 147.07, }, { x: now.minus({minutes: 2}).toFormat('HH:mm'), - y: 135.07 + y: 135.07, }, { x: now.minus({minutes: 1}).toFormat('HH:mm'), - y: 135.01 - } - ] - } - ] + y: 135.01, + }, + ], + }, + ], }, { title : 'Bitcoin Cash', @@ -720,7 +720,7 @@ export const crypto = { amount: 359.93, trend : { dir : 'up', - amount: 9.94 + amount: 9.94, }, series: [ { @@ -728,87 +728,87 @@ export const crypto = { data: [ { x: now.minus({minutes: 20}).toFormat('HH:mm'), - y: 374.77 + y: 374.77, }, { x: now.minus({minutes: 19}).toFormat('HH:mm'), - y: 374.41 + y: 374.41, }, { x: now.minus({minutes: 18}).toFormat('HH:mm'), - y: 375.08 + y: 375.08, }, { x: now.minus({minutes: 17}).toFormat('HH:mm'), - y: 375.08 + y: 375.08, }, { x: now.minus({minutes: 16}).toFormat('HH:mm'), - y: 374.09 + y: 374.09, }, { x: now.minus({minutes: 15}).toFormat('HH:mm'), - y: 368.84 + y: 368.84, }, { x: now.minus({minutes: 14}).toFormat('HH:mm'), - y: 367.49 + y: 367.49, }, { x: now.minus({minutes: 13}).toFormat('HH:mm'), - y: 359.75 + y: 359.75, }, { x: now.minus({minutes: 12}).toFormat('HH:mm'), - y: 366.65 + y: 366.65, }, { x: now.minus({minutes: 11}).toFormat('HH:mm'), - y: 367.52 + y: 367.52, }, { x: now.minus({minutes: 10}).toFormat('HH:mm'), - y: 367.59 + y: 367.59, }, { x: now.minus({minutes: 9}).toFormat('HH:mm'), - y: 364.18 + y: 364.18, }, { x: now.minus({minutes: 8}).toFormat('HH:mm'), - y: 370.11 + y: 370.11, }, { x: now.minus({minutes: 7}).toFormat('HH:mm'), - y: 362.70 + y: 362.70, }, { x: now.minus({minutes: 6}).toFormat('HH:mm'), - y: 362.70 + y: 362.70, }, { x: now.minus({minutes: 5}).toFormat('HH:mm'), - y: 362.77 + y: 362.77, }, { x: now.minus({minutes: 4}).toFormat('HH:mm'), - y: 369.46 + y: 369.46, }, { x: now.minus({minutes: 3}).toFormat('HH:mm'), - y: 371.04 + y: 371.04, }, { x: now.minus({minutes: 2}).toFormat('HH:mm'), - y: 371.48 + y: 371.48, }, { x: now.minus({minutes: 1}).toFormat('HH:mm'), - y: 371.30 - } - ] - } - ] + y: 371.30, + }, + ], + }, + ], }, { title : 'XRP', @@ -816,7 +816,7 @@ export const crypto = { amount: 0.23512, trend : { dir : 'down', - amount: 0.35 + amount: 0.35, }, series: [ { @@ -824,87 +824,87 @@ export const crypto = { data: [ { x: now.minus({minutes: 20}).toFormat('HH:mm'), - y: 0.258 + y: 0.258, }, { x: now.minus({minutes: 19}).toFormat('HH:mm'), - y: 0.256 + y: 0.256, }, { x: now.minus({minutes: 18}).toFormat('HH:mm'), - y: 0.255 + y: 0.255, }, { x: now.minus({minutes: 17}).toFormat('HH:mm'), - y: 0.255 + y: 0.255, }, { x: now.minus({minutes: 16}).toFormat('HH:mm'), - y: 0.254 + y: 0.254, }, { x: now.minus({minutes: 15}).toFormat('HH:mm'), - y: 0.248 + y: 0.248, }, { x: now.minus({minutes: 14}).toFormat('HH:mm'), - y: 0.247 + y: 0.247, }, { x: now.minus({minutes: 13}).toFormat('HH:mm'), - y: 0.249 + y: 0.249, }, { x: now.minus({minutes: 12}).toFormat('HH:mm'), - y: 0.246 + y: 0.246, }, { x: now.minus({minutes: 11}).toFormat('HH:mm'), - y: 0.247 + y: 0.247, }, { x: now.minus({minutes: 10}).toFormat('HH:mm'), - y: 0.247 + y: 0.247, }, { x: now.minus({minutes: 9}).toFormat('HH:mm'), - y: 0.244 + y: 0.244, }, { x: now.minus({minutes: 8}).toFormat('HH:mm'), - y: 0.250 + y: 0.250, }, { x: now.minus({minutes: 7}).toFormat('HH:mm'), - y: 0.242 + y: 0.242, }, { x: now.minus({minutes: 6}).toFormat('HH:mm'), - y: 0.251 + y: 0.251, }, { x: now.minus({minutes: 5}).toFormat('HH:mm'), - y: 0.251 + y: 0.251, }, { x: now.minus({minutes: 4}).toFormat('HH:mm'), - y: 0.251 + y: 0.251, }, { x: now.minus({minutes: 3}).toFormat('HH:mm'), - y: 0.249 + y: 0.249, }, { x: now.minus({minutes: 2}).toFormat('HH:mm'), - y: 0.242 + y: 0.242, }, { x: now.minus({minutes: 1}).toFormat('HH:mm'), - y: 0.240 - } - ] - } - ] + y: 0.240, + }, + ], + }, + ], }, { title : 'Litecoin', @@ -912,7 +912,7 @@ export const crypto = { amount: 60.15, trend : { dir : 'up', - amount: 0.99 + amount: 0.99, }, series: [ { @@ -920,87 +920,87 @@ export const crypto = { data: [ { x: now.minus({minutes: 20}).toFormat('HH:mm'), - y: 62.54 + y: 62.54, }, { x: now.minus({minutes: 19}).toFormat('HH:mm'), - y: 61.54 + y: 61.54, }, { x: now.minus({minutes: 18}).toFormat('HH:mm'), - y: 62.55 + y: 62.55, }, { x: now.minus({minutes: 17}).toFormat('HH:mm'), - y: 60.55 + y: 60.55, }, { x: now.minus({minutes: 16}).toFormat('HH:mm'), - y: 59.54 + y: 59.54, }, { x: now.minus({minutes: 15}).toFormat('HH:mm'), - y: 58.48 + y: 58.48, }, { x: now.minus({minutes: 14}).toFormat('HH:mm'), - y: 54.47 + y: 54.47, }, { x: now.minus({minutes: 13}).toFormat('HH:mm'), - y: 51.49 + y: 51.49, }, { x: now.minus({minutes: 12}).toFormat('HH:mm'), - y: 51.46 + y: 51.46, }, { x: now.minus({minutes: 11}).toFormat('HH:mm'), - y: 53.47 + y: 53.47, }, { x: now.minus({minutes: 10}).toFormat('HH:mm'), - y: 52.47 + y: 52.47, }, { x: now.minus({minutes: 9}).toFormat('HH:mm'), - y: 54.44 + y: 54.44, }, { x: now.minus({minutes: 8}).toFormat('HH:mm'), - y: 59.50 + y: 59.50, }, { x: now.minus({minutes: 7}).toFormat('HH:mm'), - y: 62.42 + y: 62.42, }, { x: now.minus({minutes: 6}).toFormat('HH:mm'), - y: 61.42 + y: 61.42, }, { x: now.minus({minutes: 5}).toFormat('HH:mm'), - y: 60.42 + y: 60.42, }, { x: now.minus({minutes: 4}).toFormat('HH:mm'), - y: 58.49 + y: 58.49, }, { x: now.minus({minutes: 3}).toFormat('HH:mm'), - y: 57.51 + y: 57.51, }, { x: now.minus({minutes: 2}).toFormat('HH:mm'), - y: 54.51 + y: 54.51, }, { x: now.minus({minutes: 1}).toFormat('HH:mm'), - y: 51.25 - } - ] - } - ] + y: 51.25, + }, + ], + }, + ], }, { title : 'Zcash', @@ -1008,7 +1008,7 @@ export const crypto = { amount: 58.41, trend : { dir : 'down', - amount: 8.79 + amount: 8.79, }, series: [ { @@ -1016,87 +1016,87 @@ export const crypto = { data: [ { x: now.minus({minutes: 20}).toFormat('HH:mm'), - y: 53.54 + y: 53.54, }, { x: now.minus({minutes: 19}).toFormat('HH:mm'), - y: 52.54 + y: 52.54, }, { x: now.minus({minutes: 18}).toFormat('HH:mm'), - y: 52.55 + y: 52.55, }, { x: now.minus({minutes: 17}).toFormat('HH:mm'), - y: 46.44 + y: 46.44, }, { x: now.minus({minutes: 16}).toFormat('HH:mm'), - y: 49.50 + y: 49.50, }, { x: now.minus({minutes: 15}).toFormat('HH:mm'), - y: 55.42 + y: 55.42, }, { x: now.minus({minutes: 14}).toFormat('HH:mm'), - y: 54.42 + y: 54.42, }, { x: now.minus({minutes: 13}).toFormat('HH:mm'), - y: 43.49 + y: 43.49, }, { x: now.minus({minutes: 12}).toFormat('HH:mm'), - y: 43.46 + y: 43.46, }, { x: now.minus({minutes: 11}).toFormat('HH:mm'), - y: 41.47 + y: 41.47, }, { x: now.minus({minutes: 10}).toFormat('HH:mm'), - y: 41.47 + y: 41.47, }, { x: now.minus({minutes: 9}).toFormat('HH:mm'), - y: 51.55 + y: 51.55, }, { x: now.minus({minutes: 8}).toFormat('HH:mm'), - y: 48.54 + y: 48.54, }, { x: now.minus({minutes: 7}).toFormat('HH:mm'), - y: 49.48 + y: 49.48, }, { x: now.minus({minutes: 6}).toFormat('HH:mm'), - y: 45.47 + y: 45.47, }, { x: now.minus({minutes: 5}).toFormat('HH:mm'), - y: 51.42 + y: 51.42, }, { x: now.minus({minutes: 4}).toFormat('HH:mm'), - y: 49.49 + y: 49.49, }, { x: now.minus({minutes: 3}).toFormat('HH:mm'), - y: 46.51 + y: 46.51, }, { x: now.minus({minutes: 2}).toFormat('HH:mm'), - y: 41.51 + y: 41.51, }, { x: now.minus({minutes: 1}).toFormat('HH:mm'), - y: 44.25 - } - ] - } - ] + y: 44.25, + }, + ], + }, + ], }, { title : 'Bitcoin Gold', @@ -1104,7 +1104,7 @@ export const crypto = { amount: 12.23, trend : { dir : 'down', - amount: 4.42 + amount: 4.42, }, series: [ { @@ -1112,88 +1112,88 @@ export const crypto = { data: [ { x: now.minus({minutes: 20}).toFormat('HH:mm'), - y: 14.77 + y: 14.77, }, { x: now.minus({minutes: 19}).toFormat('HH:mm'), - y: 14.41 + y: 14.41, }, { x: now.minus({minutes: 18}).toFormat('HH:mm'), - y: 15.08 + y: 15.08, }, { x: now.minus({minutes: 17}).toFormat('HH:mm'), - y: 15.08 + y: 15.08, }, { x: now.minus({minutes: 16}).toFormat('HH:mm'), - y: 14.09 + y: 14.09, }, { x: now.minus({minutes: 15}).toFormat('HH:mm'), - y: 18.84 + y: 18.84, }, { x: now.minus({minutes: 14}).toFormat('HH:mm'), - y: 17.49 + y: 17.49, }, { x: now.minus({minutes: 13}).toFormat('HH:mm'), - y: 19.75 + y: 19.75, }, { x: now.minus({minutes: 12}).toFormat('HH:mm'), - y: 16.65 + y: 16.65, }, { x: now.minus({minutes: 11}).toFormat('HH:mm'), - y: 17.52 + y: 17.52, }, { x: now.minus({minutes: 10}).toFormat('HH:mm'), - y: 17.59 + y: 17.59, }, { x: now.minus({minutes: 9}).toFormat('HH:mm'), - y: 14.18 + y: 14.18, }, { x: now.minus({minutes: 8}).toFormat('HH:mm'), - y: 10.11 + y: 10.11, }, { x: now.minus({minutes: 7}).toFormat('HH:mm'), - y: 12.70 + y: 12.70, }, { x: now.minus({minutes: 6}).toFormat('HH:mm'), - y: 12.70 + y: 12.70, }, { x: now.minus({minutes: 5}).toFormat('HH:mm'), - y: 12.77 + y: 12.77, }, { x: now.minus({minutes: 4}).toFormat('HH:mm'), - y: 19.46 + y: 19.46, }, { x: now.minus({minutes: 3}).toFormat('HH:mm'), - y: 11.04 + y: 11.04, }, { x: now.minus({minutes: 2}).toFormat('HH:mm'), - y: 11.48 + y: 11.48, }, { x: now.minus({minutes: 1}).toFormat('HH:mm'), - y: 11.30 - } - ] - } - ] - } - ] + y: 11.30, + }, + ], + }, + ], + }, + ], }; diff --git a/src/app/mock-api/dashboards/finance/api.ts b/src/app/mock-api/dashboards/finance/api.ts index cc9bede7..bc300e30 100644 --- a/src/app/mock-api/dashboards/finance/api.ts +++ b/src/app/mock-api/dashboards/finance/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { cloneDeep } from 'lodash-es'; import { FuseMockApiService } from '@fuse/lib/mock-api'; import { finance as financeData } from 'app/mock-api/dashboards/finance/data'; +import { cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class FinanceMockApi { private _finance: any = financeData; diff --git a/src/app/mock-api/dashboards/finance/data.ts b/src/app/mock-api/dashboards/finance/data.ts index 75bfb2ed..48238d06 100644 --- a/src/app/mock-api/dashboards/finance/data.ts +++ b/src/app/mock-api/dashboards/finance/data.ts @@ -14,972 +14,972 @@ export const finance = { data: [ { x: now.minus({months: 12}).plus({day: 1}).toJSDate(), - y: 48.84 + y: 48.84, }, { x: now.minus({months: 12}).plus({day: 4}).toJSDate(), - y: 53.51 + y: 53.51, }, { x: now.minus({months: 12}).plus({day: 7}).toJSDate(), - y: 52.93 + y: 52.93, }, { x: now.minus({months: 12}).plus({day: 10}).toJSDate(), - y: 49.08 + y: 49.08, }, { x: now.minus({months: 12}).plus({day: 13}).toJSDate(), - y: 50.27 + y: 50.27, }, { x: now.minus({months: 12}).plus({day: 16}).toJSDate(), - y: 48.37 + y: 48.37, }, { x: now.minus({months: 12}).plus({day: 19}).toJSDate(), - y: 44.84 + y: 44.84, }, { x: now.minus({months: 12}).plus({day: 22}).toJSDate(), - y: 40.71 + y: 40.71, }, { x: now.minus({months: 12}).plus({day: 25}).toJSDate(), - y: 41.24 + y: 41.24, }, { x: now.minus({months: 12}).plus({day: 28}).toJSDate(), - y: 45.63 + y: 45.63, }, { x: now.minus({months: 11}).plus({day: 1}).toJSDate(), - y: 38.20 + y: 38.20, }, { x: now.minus({months: 11}).plus({day: 4}).toJSDate(), - y: 39.68 + y: 39.68, }, { x: now.minus({months: 11}).plus({day: 7}).toJSDate(), - y: 41.02 + y: 41.02, }, { x: now.minus({months: 11}).plus({day: 10}).toJSDate(), - y: 39.41 + y: 39.41, }, { x: now.minus({months: 11}).plus({day: 13}).toJSDate(), - y: 35.66 + y: 35.66, }, { x: now.minus({months: 11}).plus({day: 16}).toJSDate(), - y: 38.53 + y: 38.53, }, { x: now.minus({months: 11}).plus({day: 19}).toJSDate(), - y: 38.53 + y: 38.53, }, { x: now.minus({months: 11}).plus({day: 22}).toJSDate(), - y: 40.69 + y: 40.69, }, { x: now.minus({months: 11}).plus({day: 25}).toJSDate(), - y: 38.79 + y: 38.79, }, { x: now.minus({months: 11}).plus({day: 28}).toJSDate(), - y: 42.98 + y: 42.98, }, { x: now.minus({months: 10}).plus({day: 1}).toJSDate(), - y: 43.55 + y: 43.55, }, { x: now.minus({months: 10}).plus({day: 4}).toJSDate(), - y: 40.65 + y: 40.65, }, { x: now.minus({months: 10}).plus({day: 7}).toJSDate(), - y: 36.50 + y: 36.50, }, { x: now.minus({months: 10}).plus({day: 10}).toJSDate(), - y: 33.79 + y: 33.79, }, { x: now.minus({months: 10}).plus({day: 13}).toJSDate(), - y: 31.91 + y: 31.91, }, { x: now.minus({months: 10}).plus({day: 16}).toJSDate(), - y: 29.68 + y: 29.68, }, { x: now.minus({months: 10}).plus({day: 19}).toJSDate(), - y: 29.57 + y: 29.57, }, { x: now.minus({months: 10}).plus({day: 22}).toJSDate(), - y: 33.13 + y: 33.13, }, { x: now.minus({months: 10}).plus({day: 25}).toJSDate(), - y: 37.08 + y: 37.08, }, { x: now.minus({months: 10}).plus({day: 28}).toJSDate(), - y: 35.86 + y: 35.86, }, { x: now.minus({months: 9}).plus({day: 1}).toJSDate(), - y: 39.65 + y: 39.65, }, { x: now.minus({months: 9}).plus({day: 4}).toJSDate(), - y: 39.01 + y: 39.01, }, { x: now.minus({months: 9}).plus({day: 7}).toJSDate(), - y: 34.10 + y: 34.10, }, { x: now.minus({months: 9}).plus({day: 10}).toJSDate(), - y: 37.48 + y: 37.48, }, { x: now.minus({months: 9}).plus({day: 13}).toJSDate(), - y: 39.29 + y: 39.29, }, { x: now.minus({months: 9}).plus({day: 16}).toJSDate(), - y: 38.46 + y: 38.46, }, { x: now.minus({months: 9}).plus({day: 19}).toJSDate(), - y: 37.71 + y: 37.71, }, { x: now.minus({months: 9}).plus({day: 22}).toJSDate(), - y: 40.15 + y: 40.15, }, { x: now.minus({months: 9}).plus({day: 25}).toJSDate(), - y: 35.89 + y: 35.89, }, { x: now.minus({months: 9}).plus({day: 28}).toJSDate(), - y: 31.50 + y: 31.50, }, { x: now.minus({months: 8}).plus({day: 1}).toJSDate(), - y: 30.50 + y: 30.50, }, { x: now.minus({months: 8}).plus({day: 4}).toJSDate(), - y: 25.74 + y: 25.74, }, { x: now.minus({months: 8}).plus({day: 7}).toJSDate(), - y: 28.23 + y: 28.23, }, { x: now.minus({months: 8}).plus({day: 10}).toJSDate(), - y: 28.48 + y: 28.48, }, { x: now.minus({months: 8}).plus({day: 13}).toJSDate(), - y: 30.00 + y: 30.00, }, { x: now.minus({months: 8}).plus({day: 16}).toJSDate(), - y: 32.16 + y: 32.16, }, { x: now.minus({months: 8}).plus({day: 19}).toJSDate(), - y: 32.99 + y: 32.99, }, { x: now.minus({months: 8}).plus({day: 22}).toJSDate(), - y: 37.68 + y: 37.68, }, { x: now.minus({months: 8}).plus({day: 25}).toJSDate(), - y: 35.24 + y: 35.24, }, { x: now.minus({months: 8}).plus({day: 28}).toJSDate(), - y: 39.18 + y: 39.18, }, { x: now.minus({months: 7}).plus({day: 1}).toJSDate(), - y: 41.45 + y: 41.45, }, { x: now.minus({months: 7}).plus({day: 4}).toJSDate(), - y: 43.78 + y: 43.78, }, { x: now.minus({months: 7}).plus({day: 7}).toJSDate(), - y: 39.41 + y: 39.41, }, { x: now.minus({months: 7}).plus({day: 10}).toJSDate(), - y: 39.32 + y: 39.32, }, { x: now.minus({months: 7}).plus({day: 13}).toJSDate(), - y: 43.80 + y: 43.80, }, { x: now.minus({months: 7}).plus({day: 16}).toJSDate(), - y: 42.43 + y: 42.43, }, { x: now.minus({months: 7}).plus({day: 19}).toJSDate(), - y: 43.67 + y: 43.67, }, { x: now.minus({months: 7}).plus({day: 22}).toJSDate(), - y: 38.79 + y: 38.79, }, { x: now.minus({months: 7}).plus({day: 25}).toJSDate(), - y: 43.57 + y: 43.57, }, { x: now.minus({months: 7}).plus({day: 28}).toJSDate(), - y: 41.81 + y: 41.81, }, { x: now.minus({months: 6}).plus({day: 1}).toJSDate(), - y: 46.19 + y: 46.19, }, { x: now.minus({months: 6}).plus({day: 4}).toJSDate(), - y: 47.69 + y: 47.69, }, { x: now.minus({months: 6}).plus({day: 7}).toJSDate(), - y: 49.01 + y: 49.01, }, { x: now.minus({months: 6}).plus({day: 10}).toJSDate(), - y: 46.40 + y: 46.40, }, { x: now.minus({months: 6}).plus({day: 13}).toJSDate(), - y: 51.28 + y: 51.28, }, { x: now.minus({months: 6}).plus({day: 16}).toJSDate(), - y: 50.15 + y: 50.15, }, { x: now.minus({months: 6}).plus({day: 19}).toJSDate(), - y: 53.60 + y: 53.60, }, { x: now.minus({months: 6}).plus({day: 22}).toJSDate(), - y: 56.08 + y: 56.08, }, { x: now.minus({months: 6}).plus({day: 25}).toJSDate(), - y: 52.72 + y: 52.72, }, { x: now.minus({months: 6}).plus({day: 28}).toJSDate(), - y: 56.60 + y: 56.60, }, { x: now.minus({months: 5}).plus({day: 1}).toJSDate(), - y: 58.36 + y: 58.36, }, { x: now.minus({months: 5}).plus({day: 4}).toJSDate(), - y: 56.59 + y: 56.59, }, { x: now.minus({months: 5}).plus({day: 7}).toJSDate(), - y: 55.75 + y: 55.75, }, { x: now.minus({months: 5}).plus({day: 10}).toJSDate(), - y: 54.74 + y: 54.74, }, { x: now.minus({months: 5}).plus({day: 13}).toJSDate(), - y: 54.27 + y: 54.27, }, { x: now.minus({months: 5}).plus({day: 16}).toJSDate(), - y: 58.65 + y: 58.65, }, { x: now.minus({months: 5}).plus({day: 19}).toJSDate(), - y: 57.00 + y: 57.00, }, { x: now.minus({months: 5}).plus({day: 22}).toJSDate(), - y: 60.52 + y: 60.52, }, { x: now.minus({months: 5}).plus({day: 25}).toJSDate(), - y: 57.60 + y: 57.60, }, { x: now.minus({months: 5}).plus({day: 28}).toJSDate(), - y: 56.48 + y: 56.48, }, { x: now.minus({months: 4}).plus({day: 1}).toJSDate(), - y: 54.35 + y: 54.35, }, { x: now.minus({months: 4}).plus({day: 4}).toJSDate(), - y: 52.39 + y: 52.39, }, { x: now.minus({months: 4}).plus({day: 7}).toJSDate(), - y: 54.52 + y: 54.52, }, { x: now.minus({months: 4}).plus({day: 10}).toJSDate(), - y: 54.16 + y: 54.16, }, { x: now.minus({months: 4}).plus({day: 13}).toJSDate(), - y: 51.95 + y: 51.95, }, { x: now.minus({months: 4}).plus({day: 16}).toJSDate(), - y: 51.19 + y: 51.19, }, { x: now.minus({months: 4}).plus({day: 19}).toJSDate(), - y: 46.35 + y: 46.35, }, { x: now.minus({months: 4}).plus({day: 22}).toJSDate(), - y: 48.33 + y: 48.33, }, { x: now.minus({months: 4}).plus({day: 25}).toJSDate(), - y: 45.84 + y: 45.84, }, { x: now.minus({months: 4}).plus({day: 28}).toJSDate(), - y: 48.22 + y: 48.22, }, { x: now.minus({months: 3}).plus({day: 1}).toJSDate(), - y: 45.82 + y: 45.82, }, { x: now.minus({months: 3}).plus({day: 4}).toJSDate(), - y: 43.48 + y: 43.48, }, { x: now.minus({months: 3}).plus({day: 7}).toJSDate(), - y: 41.32 + y: 41.32, }, { x: now.minus({months: 3}).plus({day: 10}).toJSDate(), - y: 40.99 + y: 40.99, }, { x: now.minus({months: 3}).plus({day: 13}).toJSDate(), - y: 38.49 + y: 38.49, }, { x: now.minus({months: 3}).plus({day: 16}).toJSDate(), - y: 40.10 + y: 40.10, }, { x: now.minus({months: 3}).plus({day: 19}).toJSDate(), - y: 44.86 + y: 44.86, }, { x: now.minus({months: 3}).plus({day: 22}).toJSDate(), - y: 44.03 + y: 44.03, }, { x: now.minus({months: 3}).plus({day: 25}).toJSDate(), - y: 41.41 + y: 41.41, }, { x: now.minus({months: 3}).plus({day: 28}).toJSDate(), - y: 37.80 + y: 37.80, }, { x: now.minus({months: 2}).plus({day: 1}).toJSDate(), - y: 35.24 + y: 35.24, }, { x: now.minus({months: 2}).plus({day: 4}).toJSDate(), - y: 32.12 + y: 32.12, }, { x: now.minus({months: 2}).plus({day: 7}).toJSDate(), - y: 35.68 + y: 35.68, }, { x: now.minus({months: 2}).plus({day: 10}).toJSDate(), - y: 38.00 + y: 38.00, }, { x: now.minus({months: 2}).plus({day: 13}).toJSDate(), - y: 37.96 + y: 37.96, }, { x: now.minus({months: 2}).plus({day: 16}).toJSDate(), - y: 38.70 + y: 38.70, }, { x: now.minus({months: 2}).plus({day: 19}).toJSDate(), - y: 37.45 + y: 37.45, }, { x: now.minus({months: 2}).plus({day: 22}).toJSDate(), - y: 37.51 + y: 37.51, }, { x: now.minus({months: 2}).plus({day: 25}).toJSDate(), - y: 33.10 + y: 33.10, }, { x: now.minus({months: 2}).plus({day: 28}).toJSDate(), - y: 35.09 + y: 35.09, }, { x: now.minus({months: 1}).plus({day: 1}).toJSDate(), - y: 31.87 + y: 31.87, }, { x: now.minus({months: 1}).plus({day: 4}).toJSDate(), - y: 29.18 + y: 29.18, }, { x: now.minus({months: 1}).plus({day: 7}).toJSDate(), - y: 31.91 + y: 31.91, }, { x: now.minus({months: 1}).plus({day: 10}).toJSDate(), - y: 34.37 + y: 34.37, }, { x: now.minus({months: 1}).plus({day: 13}).toJSDate(), - y: 32.91 + y: 32.91, }, { x: now.minus({months: 1}).plus({day: 16}).toJSDate(), - y: 33.17 + y: 33.17, }, { x: now.minus({months: 1}).plus({day: 19}).toJSDate(), - y: 37.16 + y: 37.16, }, { x: now.minus({months: 1}).plus({day: 22}).toJSDate(), - y: 32.60 + y: 32.60, }, { x: now.minus({months: 1}).plus({day: 25}).toJSDate(), - y: 36.94 + y: 36.94, }, { x: now.minus({months: 1}).plus({day: 28}).toJSDate(), - y: 35.98 - } - ] + y: 35.98, + }, + ], }, { name: 'Actual', data: [ { x: now.minus({months: 12}).plus({day: 1}).toJSDate(), - y: 20.21 + y: 20.21, }, { x: now.minus({months: 12}).plus({day: 4}).toJSDate(), - y: 17.49 + y: 17.49, }, { x: now.minus({months: 12}).plus({day: 7}).toJSDate(), - y: 16.54 + y: 16.54, }, { x: now.minus({months: 12}).plus({day: 10}).toJSDate(), - y: 19.00 + y: 19.00, }, { x: now.minus({months: 12}).plus({day: 13}).toJSDate(), - y: 16.47 + y: 16.47, }, { x: now.minus({months: 12}).plus({day: 16}).toJSDate(), - y: 13.15 + y: 13.15, }, { x: now.minus({months: 12}).plus({day: 19}).toJSDate(), - y: 18.07 + y: 18.07, }, { x: now.minus({months: 12}).plus({day: 22}).toJSDate(), - y: 17.93 + y: 17.93, }, { x: now.minus({months: 12}).plus({day: 25}).toJSDate(), - y: 18.92 + y: 18.92, }, { x: now.minus({months: 12}).plus({day: 28}).toJSDate(), - y: 18.46 + y: 18.46, }, { x: now.minus({months: 11}).plus({day: 1}).toJSDate(), - y: 18.04 + y: 18.04, }, { x: now.minus({months: 11}).plus({day: 4}).toJSDate(), - y: 17.78 + y: 17.78, }, { x: now.minus({months: 11}).plus({day: 7}).toJSDate(), - y: 20.15 + y: 20.15, }, { x: now.minus({months: 11}).plus({day: 10}).toJSDate(), - y: 18.92 + y: 18.92, }, { x: now.minus({months: 11}).plus({day: 13}).toJSDate(), - y: 17.08 + y: 17.08, }, { x: now.minus({months: 11}).plus({day: 16}).toJSDate(), - y: 17.11 + y: 17.11, }, { x: now.minus({months: 11}).plus({day: 19}).toJSDate(), - y: 15.70 + y: 15.70, }, { x: now.minus({months: 11}).plus({day: 22}).toJSDate(), - y: 15.07 + y: 15.07, }, { x: now.minus({months: 11}).plus({day: 25}).toJSDate(), - y: 14.51 + y: 14.51, }, { x: now.minus({months: 11}).plus({day: 28}).toJSDate(), - y: 15.22 + y: 15.22, }, { x: now.minus({months: 10}).plus({day: 1}).toJSDate(), - y: 19.77 + y: 19.77, }, { x: now.minus({months: 10}).plus({day: 4}).toJSDate(), - y: 23.67 + y: 23.67, }, { x: now.minus({months: 10}).plus({day: 7}).toJSDate(), - y: 27.98 + y: 27.98, }, { x: now.minus({months: 10}).plus({day: 10}).toJSDate(), - y: 30.80 + y: 30.80, }, { x: now.minus({months: 10}).plus({day: 13}).toJSDate(), - y: 28.56 + y: 28.56, }, { x: now.minus({months: 10}).plus({day: 16}).toJSDate(), - y: 27.45 + y: 27.45, }, { x: now.minus({months: 10}).plus({day: 19}).toJSDate(), - y: 27.50 + y: 27.50, }, { x: now.minus({months: 10}).plus({day: 22}).toJSDate(), - y: 27.28 + y: 27.28, }, { x: now.minus({months: 10}).plus({day: 25}).toJSDate(), - y: 24.36 + y: 24.36, }, { x: now.minus({months: 10}).plus({day: 28}).toJSDate(), - y: 22.89 + y: 22.89, }, { x: now.minus({months: 9}).plus({day: 1}).toJSDate(), - y: 28.04 + y: 28.04, }, { x: now.minus({months: 9}).plus({day: 4}).toJSDate(), - y: 27.77 + y: 27.77, }, { x: now.minus({months: 9}).plus({day: 7}).toJSDate(), - y: 30.24 + y: 30.24, }, { x: now.minus({months: 9}).plus({day: 10}).toJSDate(), - y: 26.57 + y: 26.57, }, { x: now.minus({months: 9}).plus({day: 13}).toJSDate(), - y: 22.18 + y: 22.18, }, { x: now.minus({months: 9}).plus({day: 16}).toJSDate(), - y: 19.64 + y: 19.64, }, { x: now.minus({months: 9}).plus({day: 19}).toJSDate(), - y: 16.74 + y: 16.74, }, { x: now.minus({months: 9}).plus({day: 22}).toJSDate(), - y: 17.21 + y: 17.21, }, { x: now.minus({months: 9}).plus({day: 25}).toJSDate(), - y: 20.05 + y: 20.05, }, { x: now.minus({months: 9}).plus({day: 28}).toJSDate(), - y: 16.13 + y: 16.13, }, { x: now.minus({months: 8}).plus({day: 1}).toJSDate(), - y: 10.71 + y: 10.71, }, { x: now.minus({months: 8}).plus({day: 4}).toJSDate(), - y: 7.99 + y: 7.99, }, { x: now.minus({months: 8}).plus({day: 7}).toJSDate(), - y: 11.33 + y: 11.33, }, { x: now.minus({months: 8}).plus({day: 10}).toJSDate(), - y: 15.36 + y: 15.36, }, { x: now.minus({months: 8}).plus({day: 13}).toJSDate(), - y: 20.16 + y: 20.16, }, { x: now.minus({months: 8}).plus({day: 16}).toJSDate(), - y: 22.56 + y: 22.56, }, { x: now.minus({months: 8}).plus({day: 19}).toJSDate(), - y: 19.34 + y: 19.34, }, { x: now.minus({months: 8}).plus({day: 22}).toJSDate(), - y: 18.32 + y: 18.32, }, { x: now.minus({months: 8}).plus({day: 25}).toJSDate(), - y: 20.75 + y: 20.75, }, { x: now.minus({months: 8}).plus({day: 28}).toJSDate(), - y: 17.09 + y: 17.09, }, { x: now.minus({months: 7}).plus({day: 1}).toJSDate(), - y: 18.31 + y: 18.31, }, { x: now.minus({months: 7}).plus({day: 4}).toJSDate(), - y: 14.34 + y: 14.34, }, { x: now.minus({months: 7}).plus({day: 7}).toJSDate(), - y: 9.93 + y: 9.93, }, { x: now.minus({months: 7}).plus({day: 10}).toJSDate(), - y: 10.64 + y: 10.64, }, { x: now.minus({months: 7}).plus({day: 13}).toJSDate(), - y: 6.18 + y: 6.18, }, { x: now.minus({months: 7}).plus({day: 16}).toJSDate(), - y: 10.32 + y: 10.32, }, { x: now.minus({months: 7}).plus({day: 19}).toJSDate(), - y: 12.80 + y: 12.80, }, { x: now.minus({months: 7}).plus({day: 22}).toJSDate(), - y: 13.44 + y: 13.44, }, { x: now.minus({months: 7}).plus({day: 25}).toJSDate(), - y: 18.35 + y: 18.35, }, { x: now.minus({months: 7}).plus({day: 28}).toJSDate(), - y: 22.87 + y: 22.87, }, { x: now.minus({months: 6}).plus({day: 1}).toJSDate(), - y: 26.92 + y: 26.92, }, { x: now.minus({months: 6}).plus({day: 4}).toJSDate(), - y: 22.50 + y: 22.50, }, { x: now.minus({months: 6}).plus({day: 7}).toJSDate(), - y: 18.14 + y: 18.14, }, { x: now.minus({months: 6}).plus({day: 10}).toJSDate(), - y: 19.06 + y: 19.06, }, { x: now.minus({months: 6}).plus({day: 13}).toJSDate(), - y: 19.73 + y: 19.73, }, { x: now.minus({months: 6}).plus({day: 16}).toJSDate(), - y: 18.82 + y: 18.82, }, { x: now.minus({months: 6}).plus({day: 19}).toJSDate(), - y: 23.33 + y: 23.33, }, { x: now.minus({months: 6}).plus({day: 22}).toJSDate(), - y: 20.48 + y: 20.48, }, { x: now.minus({months: 6}).plus({day: 25}).toJSDate(), - y: 25.47 + y: 25.47, }, { x: now.minus({months: 6}).plus({day: 28}).toJSDate(), - y: 28.84 + y: 28.84, }, { x: now.minus({months: 5}).plus({day: 1}).toJSDate(), - y: 27.71 + y: 27.71, }, { x: now.minus({months: 5}).plus({day: 4}).toJSDate(), - y: 25.22 + y: 25.22, }, { x: now.minus({months: 5}).plus({day: 7}).toJSDate(), - y: 25.43 + y: 25.43, }, { x: now.minus({months: 5}).plus({day: 10}).toJSDate(), - y: 24.13 + y: 24.13, }, { x: now.minus({months: 5}).plus({day: 13}).toJSDate(), - y: 20.02 + y: 20.02, }, { x: now.minus({months: 5}).plus({day: 16}).toJSDate(), - y: 18.38 + y: 18.38, }, { x: now.minus({months: 5}).plus({day: 19}).toJSDate(), - y: 18.30 + y: 18.30, }, { x: now.minus({months: 5}).plus({day: 22}).toJSDate(), - y: 18.72 + y: 18.72, }, { x: now.minus({months: 5}).plus({day: 25}).toJSDate(), - y: 22.46 + y: 22.46, }, { x: now.minus({months: 5}).plus({day: 28}).toJSDate(), - y: 21.71 + y: 21.71, }, { x: now.minus({months: 4}).plus({day: 1}).toJSDate(), - y: 29.88 + y: 29.88, }, { x: now.minus({months: 4}).plus({day: 4}).toJSDate(), - y: 26.94 + y: 26.94, }, { x: now.minus({months: 4}).plus({day: 7}).toJSDate(), - y: 28.06 + y: 28.06, }, { x: now.minus({months: 4}).plus({day: 10}).toJSDate(), - y: 30.40 + y: 30.40, }, { x: now.minus({months: 4}).plus({day: 13}).toJSDate(), - y: 28.98 + y: 28.98, }, { x: now.minus({months: 4}).plus({day: 16}).toJSDate(), - y: 30.13 + y: 30.13, }, { x: now.minus({months: 4}).plus({day: 19}).toJSDate(), - y: 27.60 + y: 27.60, }, { x: now.minus({months: 4}).plus({day: 22}).toJSDate(), - y: 30.21 + y: 30.21, }, { x: now.minus({months: 4}).plus({day: 25}).toJSDate(), - y: 26.88 + y: 26.88, }, { x: now.minus({months: 4}).plus({day: 28}).toJSDate(), - y: 25.72 + y: 25.72, }, { x: now.minus({months: 3}).plus({day: 1}).toJSDate(), - y: 27.89 + y: 27.89, }, { x: now.minus({months: 3}).plus({day: 4}).toJSDate(), - y: 30.69 + y: 30.69, }, { x: now.minus({months: 3}).plus({day: 7}).toJSDate(), - y: 31.42 + y: 31.42, }, { x: now.minus({months: 3}).plus({day: 10}).toJSDate(), - y: 36.14 + y: 36.14, }, { x: now.minus({months: 3}).plus({day: 13}).toJSDate(), - y: 32.02 + y: 32.02, }, { x: now.minus({months: 3}).plus({day: 16}).toJSDate(), - y: 27.30 + y: 27.30, }, { x: now.minus({months: 3}).plus({day: 19}).toJSDate(), - y: 29.51 + y: 29.51, }, { x: now.minus({months: 3}).plus({day: 22}).toJSDate(), - y: 32.67 + y: 32.67, }, { x: now.minus({months: 3}).plus({day: 25}).toJSDate(), - y: 28.82 + y: 28.82, }, { x: now.minus({months: 3}).plus({day: 28}).toJSDate(), - y: 28.85 + y: 28.85, }, { x: now.minus({months: 2}).plus({day: 1}).toJSDate(), - y: 29.15 + y: 29.15, }, { x: now.minus({months: 2}).plus({day: 4}).toJSDate(), - y: 27.90 + y: 27.90, }, { x: now.minus({months: 2}).plus({day: 7}).toJSDate(), - y: 30.71 + y: 30.71, }, { x: now.minus({months: 2}).plus({day: 10}).toJSDate(), - y: 28.02 + y: 28.02, }, { x: now.minus({months: 2}).plus({day: 13}).toJSDate(), - y: 23.82 + y: 23.82, }, { x: now.minus({months: 2}).plus({day: 16}).toJSDate(), - y: 18.83 + y: 18.83, }, { x: now.minus({months: 2}).plus({day: 19}).toJSDate(), - y: 14.48 + y: 14.48, }, { x: now.minus({months: 2}).plus({day: 22}).toJSDate(), - y: 11.76 + y: 11.76, }, { x: now.minus({months: 2}).plus({day: 25}).toJSDate(), - y: 12.75 + y: 12.75, }, { x: now.minus({months: 2}).plus({day: 28}).toJSDate(), - y: 11.36 + y: 11.36, }, { x: now.minus({months: 1}).plus({day: 1}).toJSDate(), - y: 11.60 + y: 11.60, }, { x: now.minus({months: 1}).plus({day: 4}).toJSDate(), - y: 15.24 + y: 15.24, }, { x: now.minus({months: 1}).plus({day: 7}).toJSDate(), - y: 13.05 + y: 13.05, }, { x: now.minus({months: 1}).plus({day: 10}).toJSDate(), - y: 17.25 + y: 17.25, }, { x: now.minus({months: 1}).plus({day: 13}).toJSDate(), - y: 18.50 + y: 18.50, }, { x: now.minus({months: 1}).plus({day: 16}).toJSDate(), - y: 23.04 + y: 23.04, }, { x: now.minus({months: 1}).plus({day: 19}).toJSDate(), - y: 21.87 + y: 21.87, }, { x: now.minus({months: 1}).plus({day: 22}).toJSDate(), - y: 25.97 + y: 25.97, }, { x: now.minus({months: 1}).plus({day: 25}).toJSDate(), - y: 22.46 + y: 22.46, }, { x: now.minus({months: 1}).plus({day: 28}).toJSDate(), - y: 17.67 - } - ] - } - ] + y: 17.67, + }, + ], + }, + ], }, budget : { expenses : 11763.34, @@ -987,21 +987,21 @@ export const finance = { savings : 10974.12, savingsGoal : 250000, bills : 1789.22, - billsLimit : 1000 + billsLimit : 1000, }, previousStatement : { status : 'paid', date : now.startOf('day').minus({days: 15}).toFormat('DDD'), limit : 34500, spent : 27221.21, - minimum: 7331.94 + minimum: 7331.94, }, currentStatement : { status : 'pending', date : now.startOf('day').minus({days: 15}).plus({month: 1}).toFormat('DDD'), limit : 34500, spent : 39819.41, - minimum: 9112.51 + minimum: 9112.51, }, recentTransactions: [ { @@ -1010,7 +1010,7 @@ export const finance = { name : 'Morgan Page', amount : +1358.75, status : 'completed', - date : '2019-10-07T22:22:37.274Z' + date : '2019-10-07T22:22:37.274Z', }, { id : '2dec6074-98bd-4623-9526-6480e4776569', @@ -1018,7 +1018,7 @@ export const finance = { name : 'Nita Hebert', amount : -1042.82, status : 'completed', - date : '2019-12-18T14:51:24.461Z' + date : '2019-12-18T14:51:24.461Z', }, { id : 'ae7c065f-4197-4021-a799-7a221822ad1d', @@ -1026,7 +1026,7 @@ export const finance = { name : 'Marsha Chambers', amount : +1828.16, status : 'pending', - date : '2019-12-25T17:52:14.304Z' + date : '2019-12-25T17:52:14.304Z', }, { id : '0c43dd40-74f6-49d5-848a-57a4a45772ab', @@ -1034,7 +1034,7 @@ export const finance = { name : 'Charmaine Jackson', amount : +1647.55, status : 'completed', - date : '2019-11-29T06:32:16.111Z' + date : '2019-11-29T06:32:16.111Z', }, { id : 'e5c9f0ed-a64c-4bfe-a113-29f80b4e162c', @@ -1042,7 +1042,7 @@ export const finance = { name : 'Maura Carey', amount : -927.43, status : 'completed', - date : '2019-11-24T12:13:23.064Z' - } - ] + date : '2019-11-24T12:13:23.064Z', + }, + ], }; diff --git a/src/app/mock-api/dashboards/project/api.ts b/src/app/mock-api/dashboards/project/api.ts index b5e9b393..2cbaa0ce 100644 --- a/src/app/mock-api/dashboards/project/api.ts +++ b/src/app/mock-api/dashboards/project/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { cloneDeep } from 'lodash-es'; import { FuseMockApiService } from '@fuse/lib/mock-api'; import { project as projectData } from 'app/mock-api/dashboards/project/data'; +import { cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class ProjectMockApi { private _project: any = projectData; diff --git a/src/app/mock-api/dashboards/project/data.ts b/src/app/mock-api/dashboards/project/data.ts index f005acc6..9b988e31 100644 --- a/src/app/mock-api/dashboards/project/data.ts +++ b/src/app/mock-api/dashboards/project/data.ts @@ -13,7 +13,7 @@ export const project = { 'fixed' : 3, 'wont-fix' : 4, 're-opened' : 8, - 'needs-triage' : 6 + 'needs-triage' : 6, }, 'last-week': { 'new-issues' : 197, @@ -21,8 +21,8 @@ export const project = { 'fixed' : 6, 'wont-fix' : 11, 're-opened' : 6, - 'needs-triage' : 5 - } + 'needs-triage' : 5, + }, }, labels : ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], series : { @@ -30,123 +30,123 @@ export const project = { { name: 'New issues', type: 'line', - data: [42, 28, 43, 34, 20, 25, 22] + data: [42, 28, 43, 34, 20, 25, 22], }, { name: 'Closed issues', type: 'column', - data: [11, 10, 8, 11, 8, 10, 17] - } + data: [11, 10, 8, 11, 8, 10, 17], + }, ], 'last-week': [ { name: 'New issues', type: 'line', - data: [37, 32, 39, 27, 18, 24, 20] + data: [37, 32, 39, 27, 18, 24, 20], }, { name: 'Closed issues', type: 'column', - data: [9, 8, 10, 12, 7, 11, 15] - } - ] - } + data: [9, 8, 10, 12, 7, 11, 15], + }, + ], + }, }, taskDistribution : { overview: { 'this-week': { 'new' : 594, - 'completed': 287 + 'completed': 287, }, 'last-week': { 'new' : 526, - 'completed': 260 - } + 'completed': 260, + }, }, labels : ['API', 'Backend', 'Frontend', 'Issues'], series : { 'this-week': [15, 20, 38, 27], - 'last-week': [19, 16, 42, 23] - } + 'last-week': [19, 16, 42, 23], + }, }, schedule : { today : [ { title : 'Group Meeting', time : 'in 32 minutes', - location: 'Conference room 1B' + location: 'Conference room 1B', }, { title: 'Coffee Break', - time : '10:30 AM' + time : '10:30 AM', }, { title: 'Public Beta Release', - time : '11:00 AM' + time : '11:00 AM', }, { title: 'Lunch', - time : '12:10 PM' + time : '12:10 PM', }, { title : 'Dinner with David', time : '05:30 PM', - location: 'Magnolia' + location: 'Magnolia', }, { title : 'Jane\'s Birthday Party', time : '07:30 PM', - location: 'Home' + location: 'Home', }, { title : 'Overseer\'s Retirement Party', time : '09:30 PM', - location: 'Overseer\'s room' - } + location: 'Overseer\'s room', + }, ], tomorrow: [ { title : 'Marketing Meeting', time : '09:00 AM', - location: 'Conference room 1A' + location: 'Conference room 1A', }, { title: 'Public Announcement', - time : '11:00 AM' + time : '11:00 AM', }, { title: 'Lunch', - time : '12:10 PM' + time : '12:10 PM', }, { title : 'Meeting with Beta Testers', time : '03:00 PM', - location: 'Conference room 2C' + location: 'Conference room 2C', }, { title: 'Live Stream', - time : '05:30 PM' + time : '05:30 PM', }, { title : 'Release Party', time : '07:30 PM', - location: 'CEO\'s house' + location: 'CEO\'s house', }, { title : 'CEO\'s Private Party', time : '09:30 PM', - location: 'CEO\'s Penthouse' - } - ] + location: 'CEO\'s Penthouse', + }, + ], }, budgetDistribution: { categories: ['Concept', 'Design', 'Development', 'Extras', 'Marketing'], series : [ { name: 'Budget', - data: [12, 20, 28, 15, 25] - } - ] + data: [12, 20, 28, 15, 25], + }, + ], }, weeklyExpenses : { amount: 17663, @@ -156,14 +156,14 @@ export const project = { now.minus({days: 31}).toFormat('dd MMM') + ' - ' + now.minus({days: 24}).toFormat('dd MMM'), now.minus({days: 23}).toFormat('dd MMM') + ' - ' + now.minus({days: 16}).toFormat('dd MMM'), now.minus({days: 15}).toFormat('dd MMM') + ' - ' + now.minus({days: 8}).toFormat('dd MMM'), - now.minus({days: 7}).toFormat('dd MMM') + ' - ' + now.toFormat('dd MMM') + now.minus({days: 7}).toFormat('dd MMM') + ' - ' + now.toFormat('dd MMM'), ], series: [ { name: 'Expenses', - data: [4412, 4345, 4541, 4677, 4322, 4123] - } - ] + data: [4412, 4345, 4541, 4677, 4322, 4123], + }, + ], }, monthlyExpenses : { amount: 54663, @@ -171,14 +171,14 @@ export const project = { now.minus({days: 31}).toFormat('dd MMM') + ' - ' + now.minus({days: 24}).toFormat('dd MMM'), now.minus({days: 23}).toFormat('dd MMM') + ' - ' + now.minus({days: 16}).toFormat('dd MMM'), now.minus({days: 15}).toFormat('dd MMM') + ' - ' + now.minus({days: 8}).toFormat('dd MMM'), - now.minus({days: 7}).toFormat('dd MMM') + ' - ' + now.toFormat('dd MMM') + now.minus({days: 7}).toFormat('dd MMM') + ' - ' + now.toFormat('dd MMM'), ], series: [ { name: 'Expenses', - data: [15521, 15519, 15522, 15521] - } - ] + data: [15521, 15519, 15522, 15521], + }, + ], }, yearlyExpenses : { amount: 648813, @@ -192,14 +192,14 @@ export const project = { now.minus({days: 31}).toFormat('dd MMM') + ' - ' + now.minus({days: 24}).toFormat('dd MMM'), now.minus({days: 23}).toFormat('dd MMM') + ' - ' + now.minus({days: 16}).toFormat('dd MMM'), now.minus({days: 15}).toFormat('dd MMM') + ' - ' + now.minus({days: 8}).toFormat('dd MMM'), - now.minus({days: 7}).toFormat('dd MMM') + ' - ' + now.toFormat('dd MMM') + now.minus({days: 7}).toFormat('dd MMM') + ' - ' + now.toFormat('dd MMM'), ], series: [ { name: 'Expenses', - data: [45891, 45801, 45834, 45843, 45800, 45900, 45814, 45856, 45910, 45849] - } - ] + data: [45891, 45801, 45834, 45843, 45800, 45900, 45814, 45856, 45910, 45849], + }, + ], }, budgetDetails : { columns: ['type', 'total', 'expensesAmount', 'expensesPercentage', 'remainingAmount', 'remainingPercentage'], @@ -211,7 +211,7 @@ export const project = { expensesAmount : 14000, expensesPercentage : 94.08, remainingAmount : 880, - remainingPercentage: 5.92 + remainingPercentage: 5.92, }, { id : 2, @@ -220,7 +220,7 @@ export const project = { expensesAmount : 17240.34, expensesPercentage : 81.78, remainingAmount : 3839.66, - remainingPercentage: 18.22 + remainingPercentage: 18.22, }, { id : 3, @@ -229,7 +229,7 @@ export const project = { expensesAmount : 3518, expensesPercentage : 10.13, remainingAmount : 31202, - remainingPercentage: 89.87 + remainingPercentage: 89.87, }, { id : 4, @@ -238,7 +238,7 @@ export const project = { expensesAmount : 0, expensesPercentage : 0, remainingAmount : 18600, - remainingPercentage: 100 + remainingPercentage: 100, }, { id : 5, @@ -247,9 +247,9 @@ export const project = { expensesAmount : 19859.84, expensesPercentage : 57.2, remainingAmount : 14860.16, - remainingPercentage: 42.8 - } - ] + remainingPercentage: 42.8, + }, + ], }, teamMembers : [ { @@ -258,7 +258,7 @@ export const project = { name : 'Nadia Mcknight', email : 'nadiamcknight@mail.com', phone : '+1-943-511-2203', - title : 'Project Director' + title : 'Project Director', }, { id : '77a4383b-b5a5-4943-bc46-04c3431d1566', @@ -266,7 +266,7 @@ export const project = { name : 'Best Blackburn', email : 'blackburn.best@beadzza.me', phone : '+1-814-498-3701', - title : 'Senior Developer' + title : 'Senior Developer', }, { id : '8bb0f597-673a-47ca-8c77-2f83219cb9af', @@ -274,7 +274,7 @@ export const project = { name : 'Duncan Carver', email : 'duncancarver@mail.info', phone : '+1-968-547-2111', - title : 'Senior Developer' + title : 'Senior Developer', }, { id : 'c318e31f-1d74-49c5-8dae-2bc5805e2fdb', @@ -282,7 +282,7 @@ export const project = { name : 'Martin Richards', email : 'martinrichards@mail.biz', phone : '+1-902-500-2668', - title : 'Junior Developer' + title : 'Junior Developer', }, { id : '0a8bc517-631a-4a93-aacc-000fa2e8294c', @@ -290,7 +290,7 @@ export const project = { name : 'Candice Munoz', email : 'candicemunoz@mail.co.uk', phone : '+1-838-562-2769', - title : 'Lead Designer' + title : 'Lead Designer', }, { id : 'a4c9945a-757b-40b0-8942-d20e0543cabd', @@ -298,7 +298,7 @@ export const project = { name : 'Vickie Mosley', email : 'vickiemosley@mail.net', phone : '+1-939-555-3054', - title : 'Designer' + title : 'Designer', }, { id : 'b8258ccf-48b5-46a2-9c95-e0bd7580c645', @@ -306,7 +306,7 @@ export const project = { name : 'Tina Harris', email : 'tinaharris@mail.ca', phone : '+1-933-464-2431', - title : 'Designer' + title : 'Designer', }, { id : 'f004ea79-98fc-436c-9ba5-6cfe32fe583d', @@ -314,7 +314,7 @@ export const project = { name : 'Holt Manning', email : 'holtmanning@mail.org', phone : '+1-822-531-2600', - title : 'Marketing Manager' + title : 'Marketing Manager', }, { id : '8b69fe2d-d7cc-4a3d-983d-559173e37d37', @@ -322,7 +322,7 @@ export const project = { name : 'Misty Ramsey', email : 'mistyramsey@mail.us', phone : '+1-990-457-2106', - title : 'Consultant' - } - ] + title : 'Consultant', + }, + ], }; diff --git a/src/app/mock-api/index.ts b/src/app/mock-api/index.ts index 4ff5d6d9..b01faead 100644 --- a/src/app/mock-api/index.ts +++ b/src/app/mock-api/index.ts @@ -1,26 +1,26 @@ import { AcademyMockApi } from 'app/mock-api/apps/academy/api'; -import { ActivitiesMockApi } from 'app/mock-api/pages/activities/api'; -import { AnalyticsMockApi } from 'app/mock-api/dashboards/analytics/api'; -import { AuthMockApi } from 'app/mock-api/common/auth/api'; import { ChatMockApi } from 'app/mock-api/apps/chat/api'; import { ContactsMockApi } from 'app/mock-api/apps/contacts/api'; -import { CryptoMockApi } from 'app/mock-api/dashboards/crypto/api'; import { ECommerceInventoryMockApi } from 'app/mock-api/apps/ecommerce/inventory/api'; import { FileManagerMockApi } from 'app/mock-api/apps/file-manager/api'; -import { FinanceMockApi } from 'app/mock-api/dashboards/finance/api'; import { HelpCenterMockApi } from 'app/mock-api/apps/help-center/api'; -import { IconsMockApi } from 'app/mock-api/ui/icons/api'; import { MailboxMockApi } from 'app/mock-api/apps/mailbox/api'; +import { NotesMockApi } from 'app/mock-api/apps/notes/api'; +import { ScrumboardMockApi } from 'app/mock-api/apps/scrumboard/api'; +import { TasksMockApi } from 'app/mock-api/apps/tasks/api'; +import { AuthMockApi } from 'app/mock-api/common/auth/api'; import { MessagesMockApi } from 'app/mock-api/common/messages/api'; import { NavigationMockApi } from 'app/mock-api/common/navigation/api'; -import { NotesMockApi } from 'app/mock-api/apps/notes/api'; import { NotificationsMockApi } from 'app/mock-api/common/notifications/api'; -import { ProjectMockApi } from 'app/mock-api/dashboards/project/api'; import { SearchMockApi } from 'app/mock-api/common/search/api'; -import { ScrumboardMockApi } from 'app/mock-api/apps/scrumboard/api'; import { ShortcutsMockApi } from 'app/mock-api/common/shortcuts/api'; -import { TasksMockApi } from 'app/mock-api/apps/tasks/api'; import { UserMockApi } from 'app/mock-api/common/user/api'; +import { AnalyticsMockApi } from 'app/mock-api/dashboards/analytics/api'; +import { CryptoMockApi } from 'app/mock-api/dashboards/crypto/api'; +import { FinanceMockApi } from 'app/mock-api/dashboards/finance/api'; +import { ProjectMockApi } from 'app/mock-api/dashboards/project/api'; +import { ActivitiesMockApi } from 'app/mock-api/pages/activities/api'; +import { IconsMockApi } from 'app/mock-api/ui/icons/api'; export const mockApiServices = [ AcademyMockApi, @@ -45,5 +45,5 @@ export const mockApiServices = [ ScrumboardMockApi, ShortcutsMockApi, TasksMockApi, - UserMockApi + UserMockApi, ]; diff --git a/src/app/mock-api/pages/activities/api.ts b/src/app/mock-api/pages/activities/api.ts index c9b7997e..b692d1b6 100644 --- a/src/app/mock-api/pages/activities/api.ts +++ b/src/app/mock-api/pages/activities/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { cloneDeep } from 'lodash-es'; import { FuseMockApiService } from '@fuse/lib/mock-api'; import { activities as activitiesData } from 'app/mock-api/pages/activities/data'; +import { cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class ActivitiesMockApi { private _activities: any = activitiesData; diff --git a/src/app/mock-api/pages/activities/data.ts b/src/app/mock-api/pages/activities/data.ts index 6171e0a3..abceba43 100644 --- a/src/app/mock-api/pages/activities/data.ts +++ b/src/app/mock-api/pages/activities/data.ts @@ -11,7 +11,7 @@ export const activities = [ description : 'Your submission has been accepted', date : now.minus({minutes: 25}).toISO(), // 25 minutes ago extraContent: `
Congratulations for your acceptance!

-
Hi Brian,
Your submission has been accepted and you are ready to move into the next phase. Once you are ready, reach out to me and we will ...
` +
Hi Brian,
Your submission has been accepted and you are ready to move into the next phase. Once you are ready, reach out to me and we will ...
`, }, { id : '6e3e97e5-effc-4fb7-b730-52a151f0b641', @@ -20,42 +20,42 @@ export const activities = [ date : now.minus({minutes: 50}).toISO(), // 50 minutes ago linkedContent: 'Top Secret Project', link : '/dashboards/project', - useRouter : true + useRouter : true, }, { id : 'b91ccb58-b06c-413b-b389-87010e03a120', - icon : 'heroicons_solid:mail', + icon : 'heroicons_solid:envelope', description : 'You have 15 unread mails across 3 mailboxes', date : now.minus({hours: 3}).toISO(), // 3 hours ago linkedContent: 'Mailbox', link : '/apps/mailbox', - useRouter : true + useRouter : true, }, { id : '541416c9-84a7-408a-8d74-27a43c38d797', - icon : 'heroicons_solid:refresh', + icon : 'heroicons_solid:arrow-path', description : 'Your Docker container is ready to publish', date : now.minus({hours: 5}).toISO(), // 5 hours ago linkedContent: 'Download the container', link : '.', - useRouter : true + useRouter : true, }, { id : 'ef7b95a7-8e8b-4616-9619-130d9533add9', image : 'assets/images/avatars/male-06.jpg', description : 'Roger Murray accepted your friend request', date : now.minus({hours: 7}).toISO(), // 7 hours ago - extraContent: `You have 8 mutual friends.` + extraContent: `You have 8 mutual friends.`, }, { id : 'eb8aa470-635e-461d-88e1-23d9ea2a5665', image : 'assets/images/avatars/female-04.jpg', description: 'Sophie Stone sent you a direct message', - date : now.minus({hours: 9}).toISO() // 9 hours ago + date : now.minus({hours: 9}).toISO(), // 9 hours ago }, { id : 'b85c2338-cc98-4140-bbf8-c226ce4e395e', - icon : 'heroicons_solid:mail', + icon : 'heroicons_solid:envelope', description : 'You have 3 new mails', date : now.minus({day: 1}).toISO(), // 1 day ago extraContent : `
    @@ -65,7 +65,7 @@ export const activities = [
`, linkedContent: 'Mailbox', link : '/apps/mailbox', - useRouter : true + useRouter : true, }, { id : 'fd0f01b4-f3de-4333-add5-cd86850279f8', @@ -74,18 +74,18 @@ export const activities = [ date : now.minus({day: 1}).toISO(), // 1 day ago, linkedContent: 'Go to Chat (Tina Harris)', link : '/apps/chat/5636c0ba-fa47-42ca-9160-27340583041e', - useRouter : true + useRouter : true, }, { id : '8f8e1bf9-4661-4939-9e43-390957b60f42', icon : 'heroicons_solid:star', description: 'Your submission has been accepted and you are ready to sign-up for the final assigment which will be ready in 2 days', - date : now.minus({days: 3}).toISO() // 3 days ago + date : now.minus({days: 3}).toISO(), // 3 days ago }, { id : '30af917b-7a6a-45d1-822f-9e7ad7f8bf69', - icon : 'heroicons_solid:refresh', + icon : 'heroicons_solid:arrow-path', description: 'Your Vagrant container is ready to download', - date : now.minus({day: 4}).toISO() // 4 days ago - } + date : now.minus({day: 4}).toISO(), // 4 days ago + }, ]; diff --git a/src/app/mock-api/ui/icons/api.ts b/src/app/mock-api/ui/icons/api.ts index 1090bf2e..cb38f1f5 100644 --- a/src/app/mock-api/ui/icons/api.ts +++ b/src/app/mock-api/ui/icons/api.ts @@ -1,11 +1,9 @@ import { Injectable } from '@angular/core'; -import { cloneDeep } from 'lodash-es'; import { FuseMockApiService } from '@fuse/lib/mock-api'; import { feather, heroicons, material } from 'app/mock-api/ui/icons/data'; +import { cloneDeep } from 'lodash-es'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class IconsMockApi { private readonly _feather: any = feather; @@ -41,8 +39,8 @@ export class IconsMockApi namespace: 'feather', name : 'Feather', grid : 'icon-size-6', - list : cloneDeep(this._feather) - } + list : cloneDeep(this._feather), + }, ]); // ----------------------------------------------------------------------------------------------------- @@ -56,8 +54,8 @@ export class IconsMockApi namespace: 'heroicons_outline', name : 'Heroicons Outline', grid : 'icon-size-6', - list : cloneDeep(this._heroicons) - } + list : cloneDeep(this._heroicons), + }, ]); // ----------------------------------------------------------------------------------------------------- @@ -70,9 +68,24 @@ export class IconsMockApi { namespace: 'heroicons_solid', name : 'Heroicons Solid', + grid : 'icon-size-6', + list : cloneDeep(this._heroicons), + }, + ]); + + // ----------------------------------------------------------------------------------------------------- + // @ Heroicons mini icons - GET + // ----------------------------------------------------------------------------------------------------- + this._fuseMockApiService + .onGet('api/ui/icons/heroicons-mini') + .reply(() => [ + 200, + { + namespace: 'heroicons_mini', + name : 'Heroicons Mini', grid : 'icon-size-5', - list : cloneDeep(this._heroicons) - } + list : cloneDeep(this._heroicons), + }, ]); // ----------------------------------------------------------------------------------------------------- @@ -86,8 +99,8 @@ export class IconsMockApi namespace: 'mat_solid', name : 'Material Solid', grid : 'icon-size-6', - list : cloneDeep(this._material) - } + list : cloneDeep(this._material), + }, ]); // ----------------------------------------------------------------------------------------------------- @@ -101,8 +114,8 @@ export class IconsMockApi namespace: 'mat_outline', name : 'Material Outline', grid : 'icon-size-6', - list : cloneDeep(this._material) - } + list : cloneDeep(this._material), + }, ]); // ----------------------------------------------------------------------------------------------------- @@ -116,8 +129,8 @@ export class IconsMockApi namespace: '', name : 'Material Twotone', grid : 'icon-size-6', - list : cloneDeep(this._material) - } + list : cloneDeep(this._material), + }, ]); } } diff --git a/src/app/mock-api/ui/icons/data.ts b/src/app/mock-api/ui/icons/data.ts index f535d66b..3fa2a728 100644 --- a/src/app/mock-api/ui/icons/data.ts +++ b/src/app/mock-api/ui/icons/data.ts @@ -1793,7 +1793,7 @@ export const material = [ 'youtube_searched_for', 'zoom_in', 'zoom_out', - 'zoom_out_map' + 'zoom_out_map', ]; export const feather = [ 'activity', @@ -2077,238 +2077,300 @@ export const feather = [ 'zap-off', 'zap', 'zoom-in', - 'zoom-out' + 'zoom-out', ]; -// heroicons v1.0.1 - 230 icons +// heroicons v2.0.18 - 292 icons export const heroicons = [ 'academic-cap', - 'annotation', - 'adjustments', - 'archive', - 'arrow-circle-down', - 'arrow-circle-left', - 'arrow-circle-right', - 'arrow-circle-up', + 'archive-box-arrow-down', + 'adjustments-vertical', + 'archive-box', + 'arrow-down-circle', + 'archive-box-x-mark', + 'adjustments-horizontal', + 'arrow-down-left', + 'arrow-down-on-square', + 'arrow-down-on-square-stack', 'arrow-down', + 'arrow-down-right', 'arrow-left', - 'arrow-narrow-down', - 'arrow-narrow-left', - 'arrow-narrow-right', - 'arrow-narrow-up', + 'arrow-left-circle', + 'arrow-down-tray', + 'arrow-long-right', + 'arrow-long-down', + 'arrow-left-on-rectangle', + 'arrow-path', + 'arrow-long-up', + 'arrow-right-circle', + 'arrow-right-on-rectangle', 'arrow-right', - 'arrow-sm-left', - 'arrow-sm-down', - 'arrow-sm-right', - 'arrow-sm-up', + 'arrow-small-down', + 'arrow-path-rounded-square', + 'arrow-long-left', + 'arrow-small-left', + 'arrow-trending-down', + 'arrow-small-up', + 'arrow-up-left', + 'arrow-trending-up', + 'arrow-up-circle', + 'arrow-up-on-square-stack', + 'arrow-up-on-square', + 'arrow-up-right', + 'arrow-up-tray', 'arrow-up', - 'arrows-expand', + 'arrow-uturn-right', + 'arrow-uturn-up', + 'arrow-top-right-on-square', + 'arrow-uturn-down', + 'arrows-pointing-out', + 'arrow-uturn-left', + 'arrows-pointing-in', + 'arrows-up-down', 'at-symbol', - 'badge-check', 'backspace', - 'ban', + 'backward', + 'banknotes', + 'arrows-right-left', + 'bars-2', + 'bars-3-bottom-left', + 'bars-3-center-left', + 'bars-3', + 'bars-arrow-down', + 'bars-4', + 'bars-arrow-up', + 'battery-0', + 'bars-3-bottom-right', + 'battery-100', + 'bell-alert', + 'bell-slash', + 'battery-50', + 'arrow-small-right', 'beaker', 'bell', + 'bolt', + 'bookmark-slash', 'book-open', - 'bookmark-alt', + 'bookmark-square', + 'bolt-slash', 'bookmark', 'briefcase', - 'cake', + 'building-library', + 'bell-snooze', + 'building-office-2', + 'building-storefront', + 'building-office', 'calculator', - 'calendar', - 'camera', - 'cash', + 'cake', + 'calendar-days', + 'chart-bar-square', 'chart-bar', + 'camera', + 'bug-ant', + 'calendar', + 'chat-bubble-bottom-center', 'chart-pie', - 'chart-square-bar', - 'chat-alt-2', - 'chat-alt', - 'chat', + 'chat-bubble-left-right', + 'chat-bubble-left-ellipsis', + 'chat-bubble-bottom-center-text', 'check-circle', + 'check-badge', + 'chat-bubble-oval-left', + 'chat-bubble-left', 'check', - 'chevron-double-down', - 'chevron-double-left', - 'chevron-double-up', + 'chat-bubble-oval-left-ellipsis', 'chevron-double-right', 'chevron-down', - 'chevron-left', - 'chevron-right', + 'chevron-double-down', + 'chevron-double-up', + 'circle-stack', + 'chevron-up-down', 'chevron-up', - 'chip', - 'clipboard-check', - 'clipboard-copy', - 'clipboard-list', - 'clipboard', - 'clock', - 'cloud-download', - 'cloud-upload', + 'clipboard-document-list', + 'chevron-double-left', + 'chevron-right', + 'chevron-left', + 'cloud-arrow-down', + 'cloud-arrow-up', 'cloud', - 'code', + 'code-bracket-square', + 'code-bracket', + 'cog-6-tooth', + 'clipboard-document', + 'clock', + 'clipboard-document-check', + 'cog-8-tooth', 'cog', - 'collection', - 'credit-card', - 'color-swatch', + 'command-line', + 'computer-desktop', 'cube-transparent', + 'cpu-chip', + 'credit-card', 'cube', - 'currency-bangladeshi', 'currency-dollar', + 'currency-bangladeshi', 'currency-euro', 'currency-pound', - 'currency-rupee', 'currency-yen', - 'cursor-click', - 'database', - 'desktop-computer', - 'device-mobile', + 'currency-rupee', + 'cursor-arrow-ripple', + 'device-phone-mobile', 'device-tablet', - 'document-add', - 'document-download', + 'document-arrow-down', + 'cursor-arrow-rays', + 'document-check', + 'document-chart-bar', 'document-duplicate', - 'document-remove', - 'document-report', - 'document-search', - 'document-text', + 'document-minus', + 'clipboard', + 'document-magnifying-glass', + 'document-plus', 'document', - 'dots-circle-horizontal', - 'dots-horizontal', - 'dots-vertical', - 'download', - 'duplicate', - 'emoji-happy', - 'emoji-sad', - 'exclamation-circle', - 'exclamation', - 'external-link', - 'eye-off', + 'document-text', + 'ellipsis-horizontal-circle', + 'document-arrow-up', + 'ellipsis-horizontal', + 'ellipsis-vertical', + 'eye-dropper', + 'exclamation-triangle', + 'eye-slash', 'eye', - 'fast-forward', + 'exclamation-circle', + 'envelope-open', + 'face-smile', 'film', - 'filter', - 'finger-print', - 'fire', 'flag', - 'folder-add', - 'folder-download', + 'folder-arrow-down', + 'envelope', + 'fire', + 'folder-minus', 'folder-open', - 'folder-remove', + 'face-frown', + 'folder-plus', + 'forward', + 'funnel', + 'gift-top', 'folder', - 'gift', + 'gif', 'globe-alt', - 'globe', - 'hand', - 'hashtag', - 'heart', + 'finger-print', + 'globe-asia-australia', + 'globe-europe-africa', + 'hand-raised', + 'gift', 'home', 'identification', - 'inbox-in', - 'inbox', + 'globe-americas', + 'hashtag', + 'inbox-arrow-down', + 'inbox-stack', 'information-circle', + 'inbox', 'key', - 'library', + 'lifebuoy', + 'hand-thumb-down', + 'language', + 'hand-thumb-up', + 'heart', + 'home-modern', 'light-bulb', - 'lightning-bolt', - 'link', - 'location-marker', 'lock-closed', + 'magnifying-glass-plus', + 'magnifying-glass', 'lock-open', - 'login', - 'logout', - 'mail-open', - 'mail', + 'magnifying-glass-circle', + 'link', + 'list-bullet', 'map', - 'menu-alt-1', - 'menu-alt-2', - 'menu-alt-3', - 'menu-alt-4', - 'menu', - 'microphone', + 'map-pin', + 'megaphone', + 'magnifying-glass-minus', 'minus-circle', - 'minus-sm', - 'minus', - 'moon', - 'music-note', + 'musical-note', + 'paint-brush', 'newspaper', - 'office-building', + 'no-symbol', + 'minus-small', 'paper-airplane', + 'minus', + 'microphone', + 'moon', 'paper-clip', 'pause', - 'pencil-alt', - 'pencil', - 'phone-incoming', - 'phone-missed-call', - 'phone-outgoing', - 'photograph', + 'phone-arrow-up-right', + 'phone-arrow-down-left', + 'phone-x-mark', 'phone', + 'pencil', + 'play-pause', + 'photo', + 'pencil-square', 'play', - 'plus-circle', - 'plus-sm', + 'plus-small', 'plus', - 'presentation-chart-bar', + 'power', + 'play-circle', 'presentation-chart-line', + 'pause-circle', + 'presentation-chart-bar', 'printer', - 'qrcode', - 'puzzle', 'question-mark-circle', + 'qr-code', + 'queue-list', + 'receipt-percent', + 'radio', 'receipt-refund', - 'receipt-tax', - 'refresh', - 'reply', - 'rewind', - 'rss', - 'save-as', - 'save', - 'scale', - 'scissors', - 'search-circle', - 'search', - 'selector', + 'plus-circle', + 'rectangle-group', + 'puzzle-piece', + 'rocket-launch', + 'rectangle-stack', 'server', + 'rss', + 'scale', + 'server-stack', 'share', - 'shield-check', 'shield-exclamation', - 'shopping-bag', 'shopping-cart', - 'sort-ascending', - 'sort-descending', - 'speakerphone', - 'sparkles', + 'shopping-bag', + 'signal-slash', + 'signal', + 'scissors', + 'shield-check', + 'speaker-wave', + 'speaker-x-mark', + 'squares-plus', 'star', - 'status-online', - 'status-offline', - 'stop', + 'stop-circle', 'sun', - 'support', - 'switch-vertical', - 'switch-horizontal', - 'table', - 'tag', - 'template', - 'terminal', - 'thumb-up', - 'thumb-down', + 'sparkles', + 'squares-2x2', + 'square-2-stack', + 'square-3-stack-3d', + 'table-cells', 'ticket', - 'translate', - 'trash', - 'trending-down', - 'trending-up', - 'truck', - 'upload', - 'user-add', - 'user-group', - 'user-circle', - 'user-remove', + 'swatch', + 'tag', + 'tv', + 'user-plus', + 'user-minus', + 'stop', 'user', + 'truck', 'users', - 'variable', + 'video-camera-slash', + 'user-circle', 'video-camera', - 'view-boards', - 'view-grid-add', - 'view-grid', - 'view-list', - 'volume-up', - 'volume-off', - 'x-circle', - 'zoom-in', + 'user-group', + 'trophy', + 'viewfinder-circle', + 'variable', + 'trash', + 'view-columns', 'wifi', - 'zoom-out', - 'x' + 'window', + 'wrench-screwdriver', + 'wrench', + 'x-mark', + 'wallet', + 'x-circle', ]; diff --git a/src/app/modules/admin/apps/academy/academy.component.ts b/src/app/modules/admin/apps/academy/academy.component.ts index 6134aa35..d5499077 100644 --- a/src/app/modules/admin/apps/academy/academy.component.ts +++ b/src/app/modules/admin/apps/academy/academy.component.ts @@ -1,10 +1,13 @@ import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core'; +import { RouterOutlet } from '@angular/router'; @Component({ selector : 'academy', templateUrl : './academy.component.html', encapsulation : ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [RouterOutlet], }) export class AcademyComponent { diff --git a/src/app/modules/admin/apps/academy/academy.module.ts b/src/app/modules/admin/apps/academy/academy.module.ts deleted file mode 100644 index a6a84729..00000000 --- a/src/app/modules/admin/apps/academy/academy.module.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatIconModule } from '@angular/material/icon'; -import { MatInputModule } from '@angular/material/input'; -import { MatProgressBarModule } from '@angular/material/progress-bar'; -import { MatSelectModule } from '@angular/material/select'; -import { MatSidenavModule } from '@angular/material/sidenav'; -import { MatSlideToggleModule } from '@angular/material/slide-toggle'; -import { MatTooltipModule } from '@angular/material/tooltip'; -import { FuseFindByKeyPipeModule } from '@fuse/pipes/find-by-key'; -import { SharedModule } from 'app/shared/shared.module'; -import { academyRoutes } from 'app/modules/admin/apps/academy/academy.routing'; -import { AcademyComponent } from 'app/modules/admin/apps/academy/academy.component'; -import { AcademyDetailsComponent } from 'app/modules/admin/apps/academy/details/details.component'; -import { AcademyListComponent } from 'app/modules/admin/apps/academy/list/list.component'; -import { MatTabsModule } from '@angular/material/tabs'; - -@NgModule({ - declarations: [ - AcademyComponent, - AcademyDetailsComponent, - AcademyListComponent - ], - imports : [ - RouterModule.forChild(academyRoutes), - MatButtonModule, - MatFormFieldModule, - MatIconModule, - MatInputModule, - MatProgressBarModule, - MatSelectModule, - MatSidenavModule, - MatSlideToggleModule, - MatTooltipModule, - FuseFindByKeyPipeModule, - SharedModule, - MatTabsModule - ] -}) -export class AcademyModule -{ -} diff --git a/src/app/modules/admin/apps/academy/academy.resolvers.ts b/src/app/modules/admin/apps/academy/academy.resolvers.ts deleted file mode 100644 index 3dfbbbbf..00000000 --- a/src/app/modules/admin/apps/academy/academy.resolvers.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { Injectable } from '@angular/core'; -import { ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot } from '@angular/router'; -import { catchError, Observable, throwError } from 'rxjs'; -import { Category, Course } from 'app/modules/admin/apps/academy/academy.types'; -import { AcademyService } from 'app/modules/admin/apps/academy/academy.service'; - -@Injectable({ - providedIn: 'root' -}) -export class AcademyCategoriesResolver implements Resolve -{ - /** - * Constructor - */ - constructor(private _academyService: AcademyService) - { - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable - { - return this._academyService.getCategories(); - } -} - -@Injectable({ - providedIn: 'root' -}) -export class AcademyCoursesResolver implements Resolve -{ - /** - * Constructor - */ - constructor(private _academyService: AcademyService) - { - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable - { - return this._academyService.getCourses(); - } -} - -@Injectable({ - providedIn: 'root' -}) -export class AcademyCourseResolver implements Resolve -{ - /** - * Constructor - */ - constructor( - private _router: Router, - private _academyService: AcademyService - ) - { - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable - { - return this._academyService.getCourseById(route.paramMap.get('id')) - .pipe( - // Error here means the requested task is not available - catchError((error) => { - - // Log the error - console.error(error); - - // Get the parent url - const parentUrl = state.url.split('/').slice(0, -1).join('/'); - - // Navigate to there - this._router.navigateByUrl(parentUrl); - - // Throw an error - return throwError(error); - }) - ); - } -} diff --git a/src/app/modules/admin/apps/academy/academy.routes.ts b/src/app/modules/admin/apps/academy/academy.routes.ts new file mode 100644 index 00000000..284a75df --- /dev/null +++ b/src/app/modules/admin/apps/academy/academy.routes.ts @@ -0,0 +1,64 @@ +import { inject } from '@angular/core'; +import { ActivatedRouteSnapshot, Router, RouterStateSnapshot, Routes } from '@angular/router'; +import { AcademyComponent } from 'app/modules/admin/apps/academy/academy.component'; +import { AcademyService } from 'app/modules/admin/apps/academy/academy.service'; +import { AcademyDetailsComponent } from 'app/modules/admin/apps/academy/details/details.component'; +import { AcademyListComponent } from 'app/modules/admin/apps/academy/list/list.component'; +import { catchError, throwError } from 'rxjs'; + +/** + * Course resolver + * + * @param route + * @param state + */ +const courseResolver = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => +{ + const academyService = inject(AcademyService); + const router = inject(Router); + + return academyService.getCourseById(route.paramMap.get('id')).pipe( + // Error here means the requested course is not available + catchError((error) => + { + // Log the error + console.error(error); + + // Get the parent url + const parentUrl = state.url.split('/').slice(0, -1).join('/'); + + // Navigate to there + router.navigateByUrl(parentUrl); + + // Throw an error + return throwError(error); + }), + ); +}; + +export default [ + { + path : '', + component: AcademyComponent, + resolve : { + categories: () => inject(AcademyService).getCategories(), + }, + children : [ + { + path : '', + pathMatch: 'full', + component: AcademyListComponent, + resolve : { + courses: () => inject(AcademyService).getCourses(), + }, + }, + { + path : ':id', + component: AcademyDetailsComponent, + resolve : { + course: courseResolver, + }, + }, + ], + }, +] as Routes; diff --git a/src/app/modules/admin/apps/academy/academy.routing.ts b/src/app/modules/admin/apps/academy/academy.routing.ts deleted file mode 100644 index 4e5af973..00000000 --- a/src/app/modules/admin/apps/academy/academy.routing.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Route } from '@angular/router'; -import { AcademyComponent } from 'app/modules/admin/apps/academy/academy.component'; -import { AcademyListComponent } from 'app/modules/admin/apps/academy/list/list.component'; -import { AcademyDetailsComponent } from 'app/modules/admin/apps/academy/details/details.component'; -import { AcademyCategoriesResolver, AcademyCourseResolver, AcademyCoursesResolver } from 'app/modules/admin/apps/academy/academy.resolvers'; - -export const academyRoutes: Route[] = [ - { - path : '', - component: AcademyComponent, - resolve : { - categories: AcademyCategoriesResolver - }, - children : [ - { - path : '', - pathMatch: 'full', - component: AcademyListComponent, - resolve : { - courses: AcademyCoursesResolver - } - }, - { - path : ':id', - component: AcademyDetailsComponent, - resolve : { - course: AcademyCourseResolver - } - } - ] - } -]; diff --git a/src/app/modules/admin/apps/academy/academy.service.ts b/src/app/modules/admin/apps/academy/academy.service.ts index e263e6d3..6c12caaa 100644 --- a/src/app/modules/admin/apps/academy/academy.service.ts +++ b/src/app/modules/admin/apps/academy/academy.service.ts @@ -1,11 +1,9 @@ -import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; -import { BehaviorSubject, map, Observable, of, switchMap, tap, throwError } from 'rxjs'; +import { Injectable } from '@angular/core'; import { Category, Course } from 'app/modules/admin/apps/academy/academy.types'; +import { BehaviorSubject, map, Observable, of, switchMap, tap, throwError } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class AcademyService { // Private @@ -58,9 +56,10 @@ export class AcademyService getCategories(): Observable { return this._httpClient.get('api/apps/academy/categories').pipe( - tap((response: any) => { + tap((response: any) => + { this._categories.next(response); - }) + }), ); } @@ -70,9 +69,10 @@ export class AcademyService getCourses(): Observable { return this._httpClient.get('api/apps/academy/courses').pipe( - tap((response: any) => { + tap((response: any) => + { this._courses.next(response); - }) + }), ); } @@ -82,23 +82,23 @@ export class AcademyService getCourseById(id: string): Observable { return this._httpClient.get('api/apps/academy/courses/course', {params: {id}}).pipe( - map((course) => { - + map((course) => + { // Update the course this._course.next(course); // Return the course return course; }), - switchMap((course) => { - + switchMap((course) => + { if ( !course ) { return throwError('Could not found course with id of ' + id + '!'); } return of(course); - }) + }), ); } } diff --git a/src/app/modules/admin/apps/academy/details/details.component.html b/src/app/modules/admin/apps/academy/details/details.component.html index 43cc5db9..42017130 100644 --- a/src/app/modules/admin/apps/academy/details/details.component.html +++ b/src/app/modules/admin/apps/academy/details/details.component.html @@ -17,7 +17,7 @@ + [svgIcon]="'heroicons_solid:arrow-small-left'"> Back to courses @@ -101,7 +101,7 @@ - +

{{course.title}} @@ -143,7 +143,7 @@ + [svgIcon]="'heroicons_outline:arrow-long-left'"> Prev @@ -161,7 +161,7 @@ Next + [svgIcon]="'heroicons_outline:arrow-long-right'"> @@ -174,7 +174,7 @@
{{currentStep + 1}} @@ -188,13 +188,13 @@ class="ml-4" mat-icon-button (click)="goToPreviousStep()"> - +
diff --git a/src/app/modules/admin/apps/academy/details/details.component.ts b/src/app/modules/admin/apps/academy/details/details.component.ts index da461549..576a0d50 100644 --- a/src/app/modules/admin/apps/academy/details/details.component.ts +++ b/src/app/modules/admin/apps/academy/details/details.component.ts @@ -1,16 +1,25 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; +import { DOCUMENT, NgClass, NgFor, NgIf } from '@angular/common'; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inject, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; -import { DOCUMENT } from '@angular/common'; -import { MatTabGroup } from '@angular/material/tabs'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatProgressBarModule } from '@angular/material/progress-bar'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { MatTabGroup, MatTabsModule } from '@angular/material/tabs'; +import { RouterLink } from '@angular/router'; +import { FuseFindByKeyPipe } from '@fuse/pipes/find-by-key/find-by-key.pipe'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; -import { Category, Course } from 'app/modules/admin/apps/academy/academy.types'; import { AcademyService } from 'app/modules/admin/apps/academy/academy.service'; +import { Category, Course } from 'app/modules/admin/apps/academy/academy.types'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'academy-details', templateUrl : './details.component.html', encapsulation : ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [MatSidenavModule, RouterLink, MatIconModule, NgIf, NgClass, NgFor, MatButtonModule, MatProgressBarModule, CdkScrollable, MatTabsModule, FuseFindByKeyPipe], }) export class AcademyDetailsComponent implements OnInit, OnDestroy { @@ -30,7 +39,7 @@ export class AcademyDetailsComponent implements OnInit, OnDestroy private _academyService: AcademyService, private _changeDetectorRef: ChangeDetectorRef, private _elementRef: ElementRef, - private _fuseMediaWatcherService: FuseMediaWatcherService + private _fuseMediaWatcherService: FuseMediaWatcherService, ) { } @@ -47,8 +56,8 @@ export class AcademyDetailsComponent implements OnInit, OnDestroy // Get the categories this._academyService.categories$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((categories: Category[]) => { - + .subscribe((categories: Category[]) => + { // Get the categories this.categories = categories; @@ -59,8 +68,8 @@ export class AcademyDetailsComponent implements OnInit, OnDestroy // Get the course this._academyService.course$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((course: Course) => { - + .subscribe((course: Course) => + { // Get the course this.course = course; @@ -74,8 +83,8 @@ export class AcademyDetailsComponent implements OnInit, OnDestroy // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if ( matchingAliases.includes('lg') ) { @@ -187,15 +196,15 @@ export class AcademyDetailsComponent implements OnInit, OnDestroy private _scrollCurrentStepElementIntoView(): void { // Wrap everything into setTimeout so we can make sure that the 'current-step' class points to correct element - setTimeout(() => { - + setTimeout(() => + { // Get the current step element and scroll it into view const currentStepElement = this._document.getElementsByClassName('current-step')[0]; if ( currentStepElement ) { currentStepElement.scrollIntoView({ behavior: 'smooth', - block : 'start' + block : 'start', }); } }); diff --git a/src/app/modules/admin/apps/academy/list/list.component.html b/src/app/modules/admin/apps/academy/list/list.component.html index b875c50e..347783ad 100644 --- a/src/app/modules/admin/apps/academy/list/list.component.html +++ b/src/app/modules/admin/apps/academy/list/list.component.html @@ -49,7 +49,7 @@ + [svgIcon]="'heroicons_solid:magnifying-glass'"> @@ -172,7 +172,7 @@ + [svgIcon]="'heroicons_solid:arrow-small-right'"> diff --git a/src/app/modules/admin/apps/academy/list/list.component.ts b/src/app/modules/admin/apps/academy/list/list.component.ts index 35626ca3..e0dbc6c4 100644 --- a/src/app/modules/admin/apps/academy/list/list.component.ts +++ b/src/app/modules/admin/apps/academy/list/list.component.ts @@ -1,16 +1,28 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; +import { I18nPluralPipe, NgClass, NgFor, NgIf, PercentPipe } from '@angular/common'; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { MatSelectChange } from '@angular/material/select'; -import { MatSlideToggleChange } from '@angular/material/slide-toggle'; -import { BehaviorSubject, combineLatest, Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatOptionModule } from '@angular/material/core'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatProgressBarModule } from '@angular/material/progress-bar'; +import { MatSelectChange, MatSelectModule } from '@angular/material/select'; +import { MatSlideToggleChange, MatSlideToggleModule } from '@angular/material/slide-toggle'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { ActivatedRoute, Router, RouterLink } from '@angular/router'; +import { FuseFindByKeyPipe } from '@fuse/pipes/find-by-key/find-by-key.pipe'; import { AcademyService } from 'app/modules/admin/apps/academy/academy.service'; import { Category, Course } from 'app/modules/admin/apps/academy/academy.types'; +import { BehaviorSubject, combineLatest, Subject, takeUntil } from 'rxjs'; @Component({ selector : 'academy-list', templateUrl : './list.component.html', encapsulation : ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [CdkScrollable, MatFormFieldModule, MatSelectModule, MatOptionModule, NgFor, MatIconModule, MatInputModule, MatSlideToggleModule, NgIf, NgClass, MatTooltipModule, MatProgressBarModule, MatButtonModule, RouterLink, FuseFindByKeyPipe, PercentPipe, I18nPluralPipe], }) export class AcademyListComponent implements OnInit, OnDestroy { @@ -24,7 +36,7 @@ export class AcademyListComponent implements OnInit, OnDestroy } = { categorySlug$ : new BehaviorSubject('all'), query$ : new BehaviorSubject(''), - hideCompleted$: new BehaviorSubject(false) + hideCompleted$: new BehaviorSubject(false), }; private _unsubscribeAll: Subject = new Subject(); @@ -36,7 +48,7 @@ export class AcademyListComponent implements OnInit, OnDestroy private _activatedRoute: ActivatedRoute, private _changeDetectorRef: ChangeDetectorRef, private _router: Router, - private _academyService: AcademyService + private _academyService: AcademyService, ) { } @@ -53,7 +65,8 @@ export class AcademyListComponent implements OnInit, OnDestroy // Get the categories this._academyService.categories$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((categories: Category[]) => { + .subscribe((categories: Category[]) => + { this.categories = categories; // Mark for check @@ -63,7 +76,8 @@ export class AcademyListComponent implements OnInit, OnDestroy // Get the courses this._academyService.courses$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((courses: Course[]) => { + .subscribe((courses: Course[]) => + { this.courses = this.filteredCourses = courses; // Mark for check @@ -72,8 +86,8 @@ export class AcademyListComponent implements OnInit, OnDestroy // Filter the courses combineLatest([this.filters.categorySlug$, this.filters.query$, this.filters.hideCompleted$]) - .subscribe(([categorySlug, query, hideCompleted]) => { - + .subscribe(([categorySlug, query, hideCompleted]) => + { // Reset the filtered courses this.filteredCourses = this.courses; diff --git a/src/app/modules/admin/apps/chat/chat.component.ts b/src/app/modules/admin/apps/chat/chat.component.ts index 15583229..27006ad6 100644 --- a/src/app/modules/admin/apps/chat/chat.component.ts +++ b/src/app/modules/admin/apps/chat/chat.component.ts @@ -1,10 +1,13 @@ import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core'; +import { RouterOutlet } from '@angular/router'; @Component({ selector : 'chat', templateUrl : './chat.component.html', encapsulation : ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [RouterOutlet], }) export class ChatComponent { diff --git a/src/app/modules/admin/apps/chat/chat.module.ts b/src/app/modules/admin/apps/chat/chat.module.ts deleted file mode 100644 index 615841fa..00000000 --- a/src/app/modules/admin/apps/chat/chat.module.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatCheckboxModule } from '@angular/material/checkbox'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatIconModule } from '@angular/material/icon'; -import { MatInputModule } from '@angular/material/input'; -import { MatMenuModule } from '@angular/material/menu'; -import { MatSidenavModule } from '@angular/material/sidenav'; -import { SharedModule } from 'app/shared/shared.module'; -import { chatRoutes } from 'app/modules/admin/apps/chat/chat.routing'; -import { ChatComponent } from 'app/modules/admin/apps/chat/chat.component'; -import { ChatsComponent } from 'app/modules/admin/apps/chat/chats/chats.component'; -import { ContactInfoComponent } from 'app/modules/admin/apps/chat/contact-info/contact-info.component'; -import { EmptyConversationComponent } from 'app/modules/admin/apps/chat/empty-conversation/empty-conversation.component'; -import { ConversationComponent } from 'app/modules/admin/apps/chat/conversation/conversation.component'; -import { NewChatComponent } from 'app/modules/admin/apps/chat/new-chat/new-chat.component'; -import { ProfileComponent } from 'app/modules/admin/apps/chat/profile/profile.component'; - -@NgModule({ - declarations: [ - ChatComponent, - ChatsComponent, - ContactInfoComponent, - ConversationComponent, - EmptyConversationComponent, - NewChatComponent, - ProfileComponent - ], - imports : [ - RouterModule.forChild(chatRoutes), - MatButtonModule, - MatCheckboxModule, - MatFormFieldModule, - MatIconModule, - MatInputModule, - MatMenuModule, - MatSidenavModule, - SharedModule - ] -}) -export class ChatModule -{ -} diff --git a/src/app/modules/admin/apps/chat/chat.resolvers.ts b/src/app/modules/admin/apps/chat/chat.resolvers.ts deleted file mode 100644 index e7216a52..00000000 --- a/src/app/modules/admin/apps/chat/chat.resolvers.ts +++ /dev/null @@ -1,146 +0,0 @@ -import { Injectable } from '@angular/core'; -import { ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot } from '@angular/router'; -import { catchError, Observable, throwError } from 'rxjs'; -import { ChatService } from 'app/modules/admin/apps/chat/chat.service'; -import { Chat, Contact, Profile } from 'app/modules/admin/apps/chat/chat.types'; - -@Injectable({ - providedIn: 'root' -}) -export class ChatChatsResolver implements Resolve -{ - /** - * Constructor - */ - constructor( - private _chatService: ChatService, - private _router: Router - ) - { - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | any - { - return this._chatService.getChats(); - } -} - -@Injectable({ - providedIn: 'root' -}) -export class ChatChatResolver implements Resolve -{ - /** - * Constructor - */ - constructor( - private _chatService: ChatService, - private _router: Router - ) - { - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable - { - return this._chatService.getChatById(route.paramMap.get('id')) - .pipe( - // Error here means the requested chat is not available - catchError((error) => { - - // Log the error - console.error(error); - - // Get the parent url - const parentUrl = state.url.split('/').slice(0, -1).join('/'); - - // Navigate to there - this._router.navigateByUrl(parentUrl); - - // Throw an error - return throwError(error); - }) - ); - } -} - -@Injectable({ - providedIn: 'root' -}) -export class ChatContactsResolver implements Resolve -{ - /** - * Constructor - */ - constructor( - private _chatService: ChatService, - private _router: Router - ) - { - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | any - { - return this._chatService.getContacts(); - } -} - -@Injectable({ - providedIn: 'root' -}) -export class ChatProfileResolver implements Resolve -{ - /** - * Constructor - */ - constructor( - private _chatService: ChatService, - private _router: Router - ) - { - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | any - { - return this._chatService.getProfile(); - } -} diff --git a/src/app/modules/admin/apps/chat/chat.routes.ts b/src/app/modules/admin/apps/chat/chat.routes.ts new file mode 100644 index 00000000..7ec76775 --- /dev/null +++ b/src/app/modules/admin/apps/chat/chat.routes.ts @@ -0,0 +1,70 @@ +import { inject } from '@angular/core'; +import { ActivatedRouteSnapshot, Router, RouterStateSnapshot, Routes } from '@angular/router'; +import { ChatComponent } from 'app/modules/admin/apps/chat/chat.component'; +import { ChatService } from 'app/modules/admin/apps/chat/chat.service'; +import { ChatsComponent } from 'app/modules/admin/apps/chat/chats/chats.component'; +import { ConversationComponent } from 'app/modules/admin/apps/chat/conversation/conversation.component'; +import { EmptyConversationComponent } from 'app/modules/admin/apps/chat/empty-conversation/empty-conversation.component'; +import { catchError, throwError } from 'rxjs'; + +/** + * Conversation resolver + * + * @param route + * @param state + */ +const conversationResolver = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => +{ + const chatService = inject(ChatService); + const router = inject(Router); + + return chatService.getChatById(route.paramMap.get('id')).pipe( + // Error here means the requested chat is not available + catchError((error) => + { + // Log the error + console.error(error); + + // Get the parent url + const parentUrl = state.url.split('/').slice(0, -1).join('/'); + + // Navigate to there + router.navigateByUrl(parentUrl); + + // Throw an error + return throwError(error); + }), + ); +}; + +export default [ + { + path : '', + component: ChatComponent, + resolve : { + chats : () => inject(ChatService).getChats(), + contacts: () => inject(ChatService).getContacts(), + profile : () => inject(ChatService).getProfile(), + }, + children : [ + { + path : '', + component: ChatsComponent, + children : [ + { + path : '', + pathMatch: 'full', + component: EmptyConversationComponent, + }, + { + path : ':id', + component: ConversationComponent, + resolve : { + conversation: conversationResolver, + }, + }, + ], + }, + ], + }, +] as Routes; diff --git a/src/app/modules/admin/apps/chat/chat.routing.ts b/src/app/modules/admin/apps/chat/chat.routing.ts deleted file mode 100644 index f6895cdc..00000000 --- a/src/app/modules/admin/apps/chat/chat.routing.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Route } from '@angular/router'; -import { ChatChatResolver, ChatChatsResolver, ChatContactsResolver, ChatProfileResolver } from 'app/modules/admin/apps/chat/chat.resolvers'; -import { ChatComponent } from 'app/modules/admin/apps/chat/chat.component'; -import { ChatsComponent } from 'app/modules/admin/apps/chat/chats/chats.component'; -import { ConversationComponent } from 'app/modules/admin/apps/chat/conversation/conversation.component'; -import { EmptyConversationComponent } from 'app/modules/admin/apps/chat/empty-conversation/empty-conversation.component'; - -export const chatRoutes: Route[] = [ - { - path : '', - component: ChatComponent, - resolve : { - chats : ChatChatsResolver, - contacts: ChatContactsResolver, - profile : ChatProfileResolver - }, - children : [ - { - path : '', - component: ChatsComponent, - children : [ - { - path : '', - pathMatch: 'full', - component: EmptyConversationComponent - }, - { - path : ':id', - component: ConversationComponent, - resolve : { - conversation: ChatChatResolver - } - } - ] - } - ] - } -]; diff --git a/src/app/modules/admin/apps/chat/chat.service.ts b/src/app/modules/admin/apps/chat/chat.service.ts index d274d8dd..e68f2e5c 100644 --- a/src/app/modules/admin/apps/chat/chat.service.ts +++ b/src/app/modules/admin/apps/chat/chat.service.ts @@ -1,11 +1,9 @@ -import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; -import { BehaviorSubject, filter, map, Observable, of, switchMap, take, tap, throwError } from 'rxjs'; +import { Injectable } from '@angular/core'; import { Chat, Contact, Profile } from 'app/modules/admin/apps/chat/chat.types'; +import { BehaviorSubject, filter, map, Observable, of, switchMap, take, tap, throwError } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class ChatService { private _chat: BehaviorSubject = new BehaviorSubject(null); @@ -75,9 +73,10 @@ export class ChatService getChats(): Observable { return this._httpClient.get('api/apps/chat/chats').pipe( - tap((response: Chat[]) => { + tap((response: Chat[]) => + { this._chats.next(response); - }) + }), ); } @@ -89,9 +88,10 @@ export class ChatService getContact(id: string): Observable { return this._httpClient.get('api/apps/chat/contacts', {params: {id}}).pipe( - tap((response: Contact) => { + tap((response: Contact) => + { this._contact.next(response); - }) + }), ); } @@ -101,9 +101,10 @@ export class ChatService getContacts(): Observable { return this._httpClient.get('api/apps/chat/contacts').pipe( - tap((response: Contact[]) => { + tap((response: Contact[]) => + { this._contacts.next(response); - }) + }), ); } @@ -113,9 +114,10 @@ export class ChatService getProfile(): Observable { return this._httpClient.get('api/apps/chat/profile').pipe( - tap((response: Profile) => { + tap((response: Profile) => + { this._profile.next(response); - }) + }), ); } @@ -127,23 +129,23 @@ export class ChatService getChatById(id: string): Observable { return this._httpClient.get('api/apps/chat/chat', {params: {id}}).pipe( - map((chat) => { - + map((chat) => + { // Update the chat this._chat.next(chat); // Return the chat return chat; }), - switchMap((chat) => { - + switchMap((chat) => + { if ( !chat ) { return throwError('Could not found chat with id of ' + id + '!'); } return of(chat); - }) + }), ); } @@ -159,10 +161,10 @@ export class ChatService take(1), switchMap(chats => this._httpClient.patch('api/apps/chat/chat', { id, - chat + chat, }).pipe( - map((updatedChat) => { - + map((updatedChat) => + { // Find the index of the updated chat const index = chats.findIndex(item => item.id === id); @@ -178,16 +180,16 @@ export class ChatService switchMap(updatedChat => this.chat$.pipe( take(1), filter(item => item && item.id === id), - tap(() => { - + tap(() => + { // Update the chat if it's selected this._chat.next(updatedChat); // Return the updated chat return updatedChat; - }) - )) - )) + }), + )), + )), ); } diff --git a/src/app/modules/admin/apps/chat/chats/chats.component.html b/src/app/modules/admin/apps/chat/chats/chats.component.html index 4d25083e..333477a2 100644 --- a/src/app/modules/admin/apps/chat/chats/chats.component.html +++ b/src/app/modules/admin/apps/chat/chats/chats.component.html @@ -61,14 +61,14 @@ class="ml-1 -mr-4" mat-icon-button [matMenuTriggerFor]="chatsHeaderMenu"> - + @@ -100,7 +100,7 @@ + [svgIcon]="'heroicons_solid:magnifying-glass'"> + [svgIcon]="'heroicons_solid:speaker-x-mark'"> @@ -169,7 +169,7 @@
+ [svgIcon]="'heroicons_outline:chat-bubble-oval-left-ellipsis'">
No chats
diff --git a/src/app/modules/admin/apps/chat/chats/chats.component.ts b/src/app/modules/admin/apps/chat/chats/chats.component.ts index 11125dc0..76cbee94 100644 --- a/src/app/modules/admin/apps/chat/chats/chats.component.ts +++ b/src/app/modules/admin/apps/chat/chats/chats.component.ts @@ -1,13 +1,25 @@ +import { NgClass, NgFor, NgIf } from '@angular/common'; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; -import { Chat, Profile } from 'app/modules/admin/apps/chat/chat.types'; +import { MatButtonModule } from '@angular/material/button'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatMenuModule } from '@angular/material/menu'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink, RouterOutlet } from '@angular/router'; import { ChatService } from 'app/modules/admin/apps/chat/chat.service'; +import { Chat, Profile } from 'app/modules/admin/apps/chat/chat.types'; +import { NewChatComponent } from 'app/modules/admin/apps/chat/new-chat/new-chat.component'; +import { ProfileComponent } from 'app/modules/admin/apps/chat/profile/profile.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'chat-chats', templateUrl : './chats.component.html', encapsulation : ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [MatSidenavModule, NgIf, NewChatComponent, ProfileComponent, MatButtonModule, MatIconModule, MatMenuModule, MatFormFieldModule, MatInputModule, NgFor, NgClass, RouterLink, RouterOutlet], }) export class ChatsComponent implements OnInit, OnDestroy { @@ -24,7 +36,7 @@ export class ChatsComponent implements OnInit, OnDestroy */ constructor( private _chatService: ChatService, - private _changeDetectorRef: ChangeDetectorRef + private _changeDetectorRef: ChangeDetectorRef, ) { } @@ -41,7 +53,8 @@ export class ChatsComponent implements OnInit, OnDestroy // Chats this._chatService.chats$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((chats: Chat[]) => { + .subscribe((chats: Chat[]) => + { this.chats = this.filteredChats = chats; // Mark for check @@ -51,7 +64,8 @@ export class ChatsComponent implements OnInit, OnDestroy // Profile this._chatService.profile$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((profile: Profile) => { + .subscribe((profile: Profile) => + { this.profile = profile; // Mark for check @@ -61,7 +75,8 @@ export class ChatsComponent implements OnInit, OnDestroy // Selected chat this._chatService.chat$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((chat: Chat) => { + .subscribe((chat: Chat) => + { this.selectedChat = chat; // Mark for check diff --git a/src/app/modules/admin/apps/chat/contact-info/contact-info.component.html b/src/app/modules/admin/apps/chat/contact-info/contact-info.component.html index d050ccda..fac2f0c0 100644 --- a/src/app/modules/admin/apps/chat/contact-info/contact-info.component.html +++ b/src/app/modules/admin/apps/chat/contact-info/contact-info.component.html @@ -5,7 +5,7 @@
Contact info
diff --git a/src/app/modules/admin/apps/chat/contact-info/contact-info.component.ts b/src/app/modules/admin/apps/chat/contact-info/contact-info.component.ts index 5ca89897..2e4ceec4 100644 --- a/src/app/modules/admin/apps/chat/contact-info/contact-info.component.ts +++ b/src/app/modules/admin/apps/chat/contact-info/contact-info.component.ts @@ -1,4 +1,7 @@ +import { NgFor, NgIf } from '@angular/common'; import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; import { MatDrawer } from '@angular/material/sidenav'; import { Chat } from 'app/modules/admin/apps/chat/chat.types'; @@ -6,7 +9,9 @@ import { Chat } from 'app/modules/admin/apps/chat/chat.types'; selector : 'chat-contact-info', templateUrl : './contact-info.component.html', encapsulation : ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [MatButtonModule, MatIconModule, NgIf, NgFor], }) export class ContactInfoComponent { diff --git a/src/app/modules/admin/apps/chat/conversation/conversation.component.html b/src/app/modules/admin/apps/chat/conversation/conversation.component.html index da041324..e666aa66 100644 --- a/src/app/modules/admin/apps/chat/conversation/conversation.component.html +++ b/src/app/modules/admin/apps/chat/conversation/conversation.component.html @@ -33,7 +33,7 @@ mat-icon-button [routerLink]="['./']" (click)="resetChat()"> - + @@ -60,7 +60,7 @@ class="ml-auto" mat-icon-button [matMenuTriggerFor]="conversationHeaderMenu"> - +
New chat
diff --git a/src/app/modules/admin/apps/chat/new-chat/new-chat.component.ts b/src/app/modules/admin/apps/chat/new-chat/new-chat.component.ts index 3a204385..0f0264c3 100644 --- a/src/app/modules/admin/apps/chat/new-chat/new-chat.component.ts +++ b/src/app/modules/admin/apps/chat/new-chat/new-chat.component.ts @@ -1,14 +1,19 @@ +import { NgFor, NgIf } from '@angular/common'; import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; import { MatDrawer } from '@angular/material/sidenav'; -import { Subject, takeUntil } from 'rxjs'; -import { Contact } from 'app/modules/admin/apps/chat/chat.types'; import { ChatService } from 'app/modules/admin/apps/chat/chat.service'; +import { Contact } from 'app/modules/admin/apps/chat/chat.types'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'chat-new-chat', templateUrl : './new-chat.component.html', encapsulation : ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [MatButtonModule, MatIconModule, NgIf, NgFor], }) export class NewChatComponent implements OnInit, OnDestroy { @@ -35,7 +40,8 @@ export class NewChatComponent implements OnInit, OnDestroy // Contacts this._chatService.contacts$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((contacts: Contact[]) => { + .subscribe((contacts: Contact[]) => + { this.contacts = contacts; }); } diff --git a/src/app/modules/admin/apps/chat/profile/profile.component.html b/src/app/modules/admin/apps/chat/profile/profile.component.html index 017ce60c..978648a3 100644 --- a/src/app/modules/admin/apps/chat/profile/profile.component.html +++ b/src/app/modules/admin/apps/chat/profile/profile.component.html @@ -5,7 +5,7 @@
Profile
@@ -49,7 +49,7 @@ + [svgIcon]="'heroicons_solid:envelope'"> diff --git a/src/app/modules/admin/apps/chat/profile/profile.component.ts b/src/app/modules/admin/apps/chat/profile/profile.component.ts index 4f90184a..82e27b3c 100644 --- a/src/app/modules/admin/apps/chat/profile/profile.component.ts +++ b/src/app/modules/admin/apps/chat/profile/profile.component.ts @@ -1,14 +1,22 @@ +import { NgIf } from '@angular/common'; import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; import { MatDrawer } from '@angular/material/sidenav'; -import { Subject, takeUntil } from 'rxjs'; -import { Profile } from 'app/modules/admin/apps/chat/chat.types'; import { ChatService } from 'app/modules/admin/apps/chat/chat.service'; +import { Profile } from 'app/modules/admin/apps/chat/chat.types'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'chat-profile', templateUrl : './profile.component.html', encapsulation : ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [MatButtonModule, MatIconModule, NgIf, MatFormFieldModule, MatInputModule, FormsModule], }) export class ProfileComponent implements OnInit, OnDestroy { @@ -35,7 +43,8 @@ export class ProfileComponent implements OnInit, OnDestroy // Profile this._chatService.profile$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((profile: Profile) => { + .subscribe((profile: Profile) => + { this.profile = profile; }); } diff --git a/src/app/modules/admin/apps/contacts/contacts.component.ts b/src/app/modules/admin/apps/contacts/contacts.component.ts index 52bd4292..554d0d37 100644 --- a/src/app/modules/admin/apps/contacts/contacts.component.ts +++ b/src/app/modules/admin/apps/contacts/contacts.component.ts @@ -1,10 +1,13 @@ import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core'; +import { RouterOutlet } from '@angular/router'; @Component({ selector : 'contacts', templateUrl : './contacts.component.html', encapsulation : ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [RouterOutlet], }) export class ContactsComponent { diff --git a/src/app/modules/admin/apps/contacts/contacts.guards.ts b/src/app/modules/admin/apps/contacts/contacts.guards.ts deleted file mode 100644 index b5af26ac..00000000 --- a/src/app/modules/admin/apps/contacts/contacts.guards.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Injectable } from '@angular/core'; -import { ActivatedRouteSnapshot, CanDeactivate, RouterStateSnapshot, UrlTree } from '@angular/router'; -import { Observable } from 'rxjs'; -import { ContactsDetailsComponent } from 'app/modules/admin/apps/contacts/details/details.component'; - -@Injectable({ - providedIn: 'root' -}) -export class CanDeactivateContactsDetails implements CanDeactivate -{ - canDeactivate( - component: ContactsDetailsComponent, - currentRoute: ActivatedRouteSnapshot, - currentState: RouterStateSnapshot, - nextState: RouterStateSnapshot - ): Observable | Promise | boolean | UrlTree - { - // Get the next route - let nextRoute: ActivatedRouteSnapshot = nextState.root; - while ( nextRoute.firstChild ) - { - nextRoute = nextRoute.firstChild; - } - - // If the next state doesn't contain '/contacts' - // it means we are navigating away from the - // contacts app - if ( !nextState.url.includes('/contacts') ) - { - // Let it navigate - return true; - } - - // If we are navigating to another contact... - if ( nextRoute.paramMap.get('id') ) - { - // Just navigate - return true; - } - // Otherwise... - else - { - // Close the drawer first, and then navigate - return component.closeDrawer().then(() => true); - } - } -} diff --git a/src/app/modules/admin/apps/contacts/contacts.module.ts b/src/app/modules/admin/apps/contacts/contacts.module.ts deleted file mode 100644 index eb319d49..00000000 --- a/src/app/modules/admin/apps/contacts/contacts.module.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatCheckboxModule } from '@angular/material/checkbox'; -import { MAT_DATE_FORMATS, MatRippleModule } from '@angular/material/core'; -import { MatDatepickerModule } from '@angular/material/datepicker'; -import { MatDividerModule } from '@angular/material/divider'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatIconModule } from '@angular/material/icon'; -import { MatInputModule } from '@angular/material/input'; -import { MatLuxonDateModule } from '@angular/material-luxon-adapter'; -import { MatMenuModule } from '@angular/material/menu'; -import { MatProgressBarModule } from '@angular/material/progress-bar'; -import { MatRadioModule } from '@angular/material/radio'; -import { MatSelectModule } from '@angular/material/select'; -import { MatSidenavModule } from '@angular/material/sidenav'; -import { MatTableModule } from '@angular/material/table'; -import { MatTooltipModule } from '@angular/material/tooltip'; -import { FuseFindByKeyPipeModule } from '@fuse/pipes/find-by-key'; -import { SharedModule } from 'app/shared/shared.module'; -import { contactsRoutes } from 'app/modules/admin/apps/contacts/contacts.routing'; -import { ContactsComponent } from 'app/modules/admin/apps/contacts/contacts.component'; -import { ContactsDetailsComponent } from 'app/modules/admin/apps/contacts/details/details.component'; -import { ContactsListComponent } from 'app/modules/admin/apps/contacts/list/list.component'; - -@NgModule({ - declarations: [ - ContactsComponent, - ContactsListComponent, - ContactsDetailsComponent - ], - imports : [ - RouterModule.forChild(contactsRoutes), - MatButtonModule, - MatCheckboxModule, - MatDatepickerModule, - MatDividerModule, - MatFormFieldModule, - MatIconModule, - MatInputModule, - MatLuxonDateModule, - MatMenuModule, - MatProgressBarModule, - MatRadioModule, - MatRippleModule, - MatSelectModule, - MatSidenavModule, - MatTableModule, - MatTooltipModule, - FuseFindByKeyPipeModule, - SharedModule - ], - providers : [ - { - provide : MAT_DATE_FORMATS, - useValue: { - parse : { - dateInput: 'D' - }, - display: { - dateInput : 'DDD', - monthYearLabel : 'LLL yyyy', - dateA11yLabel : 'DD', - monthYearA11yLabel: 'LLLL yyyy' - } - } - } - ] -}) -export class ContactsModule -{ -} diff --git a/src/app/modules/admin/apps/contacts/contacts.resolvers.ts b/src/app/modules/admin/apps/contacts/contacts.resolvers.ts deleted file mode 100644 index 99f32aae..00000000 --- a/src/app/modules/admin/apps/contacts/contacts.resolvers.ts +++ /dev/null @@ -1,137 +0,0 @@ -import { Injectable } from '@angular/core'; -import { ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot } from '@angular/router'; -import { catchError, Observable, throwError } from 'rxjs'; -import { ContactsService } from 'app/modules/admin/apps/contacts/contacts.service'; -import { Contact, Country, Tag } from 'app/modules/admin/apps/contacts/contacts.types'; - -@Injectable({ - providedIn: 'root' -}) -export class ContactsResolver implements Resolve -{ - /** - * Constructor - */ - constructor(private _contactsService: ContactsService) - { - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable - { - return this._contactsService.getContacts(); - } -} - -@Injectable({ - providedIn: 'root' -}) -export class ContactsContactResolver implements Resolve -{ - /** - * Constructor - */ - constructor( - private _contactsService: ContactsService, - private _router: Router - ) - { - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable - { - return this._contactsService.getContactById(route.paramMap.get('id')) - .pipe( - // Error here means the requested contact is not available - catchError((error) => { - - // Log the error - console.error(error); - - // Get the parent url - const parentUrl = state.url.split('/').slice(0, -1).join('/'); - - // Navigate to there - this._router.navigateByUrl(parentUrl); - - // Throw an error - return throwError(error); - }) - ); - } -} - -@Injectable({ - providedIn: 'root' -}) -export class ContactsCountriesResolver implements Resolve -{ - /** - * Constructor - */ - constructor(private _contactsService: ContactsService) - { - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable - { - return this._contactsService.getCountries(); - } -} - -@Injectable({ - providedIn: 'root' -}) -export class ContactsTagsResolver implements Resolve -{ - /** - * Constructor - */ - constructor(private _contactsService: ContactsService) - { - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable - { - return this._contactsService.getTags(); - } -} diff --git a/src/app/modules/admin/apps/contacts/contacts.routes.ts b/src/app/modules/admin/apps/contacts/contacts.routes.ts new file mode 100644 index 00000000..bf90bfab --- /dev/null +++ b/src/app/modules/admin/apps/contacts/contacts.routes.ts @@ -0,0 +1,110 @@ +import { inject } from '@angular/core'; +import { ActivatedRouteSnapshot, Router, RouterStateSnapshot, Routes } from '@angular/router'; +import { ContactsComponent } from 'app/modules/admin/apps/contacts/contacts.component'; +import { ContactsService } from 'app/modules/admin/apps/contacts/contacts.service'; +import { ContactsDetailsComponent } from 'app/modules/admin/apps/contacts/details/details.component'; +import { ContactsListComponent } from 'app/modules/admin/apps/contacts/list/list.component'; +import { catchError, throwError } from 'rxjs'; + +/** + * Contact resolver + * + * @param route + * @param state + */ +const contactResolver = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => +{ + const contactsService = inject(ContactsService); + const router = inject(Router); + + return contactsService.getContactById(route.paramMap.get('id')) + .pipe( + // Error here means the requested contact is not available + catchError((error) => + { + // Log the error + console.error(error); + + // Get the parent url + const parentUrl = state.url.split('/').slice(0, -1).join('/'); + + // Navigate to there + router.navigateByUrl(parentUrl); + + // Throw an error + return throwError(error); + }), + ); +}; + +/** + * Can deactivate contacts details + * + * @param component + * @param currentRoute + * @param currentState + * @param nextState + */ +const canDeactivateContactsDetails = ( + component: ContactsDetailsComponent, + currentRoute: ActivatedRouteSnapshot, + currentState: RouterStateSnapshot, + nextState: RouterStateSnapshot) => +{ + // Get the next route + let nextRoute: ActivatedRouteSnapshot = nextState.root; + while ( nextRoute.firstChild ) + { + nextRoute = nextRoute.firstChild; + } + + // If the next state doesn't contain '/contacts' + // it means we are navigating away from the + // contacts app + if ( !nextState.url.includes('/contacts') ) + { + // Let it navigate + return true; + } + + // If we are navigating to another contact... + if ( nextRoute.paramMap.get('id') ) + { + // Just navigate + return true; + } + + // Otherwise, close the drawer first, and then navigate + return component.closeDrawer().then(() => true); +}; + +export default [ + { + path : '', + component: ContactsComponent, + resolve : { + tags: () => inject(ContactsService).getTags(), + }, + children : [ + { + path : '', + component: ContactsListComponent, + resolve : { + contacts : () => inject(ContactsService).getContacts(), + countries: () => inject(ContactsService).getCountries(), + }, + children : [ + { + path : ':id', + component : ContactsDetailsComponent, + resolve : { + contact : contactResolver, + countries: () => inject(ContactsService).getCountries(), + }, + canDeactivate: [canDeactivateContactsDetails], + }, + ], + }, + ], + }, +] as Routes; diff --git a/src/app/modules/admin/apps/contacts/contacts.routing.ts b/src/app/modules/admin/apps/contacts/contacts.routing.ts deleted file mode 100644 index 0ba630b6..00000000 --- a/src/app/modules/admin/apps/contacts/contacts.routing.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Route } from '@angular/router'; -import { CanDeactivateContactsDetails } from 'app/modules/admin/apps/contacts/contacts.guards'; -import { ContactsContactResolver, ContactsCountriesResolver, ContactsResolver, ContactsTagsResolver } from 'app/modules/admin/apps/contacts/contacts.resolvers'; -import { ContactsComponent } from 'app/modules/admin/apps/contacts/contacts.component'; -import { ContactsListComponent } from 'app/modules/admin/apps/contacts/list/list.component'; -import { ContactsDetailsComponent } from 'app/modules/admin/apps/contacts/details/details.component'; - -export const contactsRoutes: Route[] = [ - { - path : '', - component: ContactsComponent, - resolve : { - tags: ContactsTagsResolver - }, - children : [ - { - path : '', - component: ContactsListComponent, - resolve : { - contacts : ContactsResolver, - countries: ContactsCountriesResolver - }, - children : [ - { - path : ':id', - component : ContactsDetailsComponent, - resolve : { - contact : ContactsContactResolver, - countries: ContactsCountriesResolver - }, - canDeactivate: [CanDeactivateContactsDetails] - } - ] - } - ] - } -]; diff --git a/src/app/modules/admin/apps/contacts/contacts.service.ts b/src/app/modules/admin/apps/contacts/contacts.service.ts index 78fba43e..de1eb353 100644 --- a/src/app/modules/admin/apps/contacts/contacts.service.ts +++ b/src/app/modules/admin/apps/contacts/contacts.service.ts @@ -1,11 +1,9 @@ -import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; -import { BehaviorSubject, filter, map, Observable, of, switchMap, take, tap, throwError } from 'rxjs'; +import { Injectable } from '@angular/core'; import { Contact, Country, Tag } from 'app/modules/admin/apps/contacts/contacts.types'; +import { BehaviorSubject, filter, map, Observable, of, switchMap, take, tap, throwError } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class ContactsService { // Private @@ -67,9 +65,10 @@ export class ContactsService getContacts(): Observable { return this._httpClient.get('api/apps/contacts/all').pipe( - tap((contacts) => { + tap((contacts) => + { this._contacts.next(contacts); - }) + }), ); } @@ -81,11 +80,12 @@ export class ContactsService searchContacts(query: string): Observable { return this._httpClient.get('api/apps/contacts/search', { - params: {query} + params: {query}, }).pipe( - tap((contacts) => { + tap((contacts) => + { this._contacts.next(contacts); - }) + }), ); } @@ -96,8 +96,8 @@ export class ContactsService { return this._contacts.pipe( take(1), - map((contacts) => { - + map((contacts) => + { // Find the contact const contact = contacts.find(item => item.id === id) || null; @@ -107,15 +107,15 @@ export class ContactsService // Return the contact return contact; }), - switchMap((contact) => { - + switchMap((contact) => + { if ( !contact ) { return throwError('Could not found contact with id of ' + id + '!'); } return of(contact); - }) + }), ); } @@ -127,15 +127,15 @@ export class ContactsService return this.contacts$.pipe( take(1), switchMap(contacts => this._httpClient.post('api/apps/contacts/contact', {}).pipe( - map((newContact) => { - + map((newContact) => + { // Update the contacts with the new contact this._contacts.next([newContact, ...contacts]); // Return the new contact return newContact; - }) - )) + }), + )), ); } @@ -151,10 +151,10 @@ export class ContactsService take(1), switchMap(contacts => this._httpClient.patch('api/apps/contacts/contact', { id, - contact + contact, }).pipe( - map((updatedContact) => { - + map((updatedContact) => + { // Find the index of the updated contact const index = contacts.findIndex(item => item.id === id); @@ -170,16 +170,16 @@ export class ContactsService switchMap(updatedContact => this.contact$.pipe( take(1), filter(item => item && item.id === id), - tap(() => { - + tap(() => + { // Update the contact if it's selected this._contact.next(updatedContact); // Return the updated contact return updatedContact; - }) - )) - )) + }), + )), + )), ); } @@ -193,8 +193,8 @@ export class ContactsService return this.contacts$.pipe( take(1), switchMap(contacts => this._httpClient.delete('api/apps/contacts/contact', {params: {id}}).pipe( - map((isDeleted: boolean) => { - + map((isDeleted: boolean) => + { // Find the index of the deleted contact const index = contacts.findIndex(item => item.id === id); @@ -206,8 +206,8 @@ export class ContactsService // Return the deleted status return isDeleted; - }) - )) + }), + )), ); } @@ -217,9 +217,10 @@ export class ContactsService getCountries(): Observable { return this._httpClient.get('api/apps/contacts/countries').pipe( - tap((countries) => { + tap((countries) => + { this._countries.next(countries); - }) + }), ); } @@ -229,9 +230,10 @@ export class ContactsService getTags(): Observable { return this._httpClient.get('api/apps/contacts/tags').pipe( - tap((tags) => { + tap((tags) => + { this._tags.next(tags); - }) + }), ); } @@ -245,15 +247,15 @@ export class ContactsService return this.tags$.pipe( take(1), switchMap(tags => this._httpClient.post('api/apps/contacts/tag', {tag}).pipe( - map((newTag) => { - + map((newTag) => + { // Update the tags with the new tag this._tags.next([...tags, newTag]); // Return new tag from observable return newTag; - }) - )) + }), + )), ); } @@ -269,10 +271,10 @@ export class ContactsService take(1), switchMap(tags => this._httpClient.patch('api/apps/contacts/tag', { id, - tag + tag, }).pipe( - map((updatedTag) => { - + map((updatedTag) => + { // Find the index of the updated tag const index = tags.findIndex(item => item.id === id); @@ -284,8 +286,8 @@ export class ContactsService // Return the updated tag return updatedTag; - }) - )) + }), + )), ); } @@ -299,8 +301,8 @@ export class ContactsService return this.tags$.pipe( take(1), switchMap(tags => this._httpClient.delete('api/apps/contacts/tag', {params: {id}}).pipe( - map((isDeleted: boolean) => { - + map((isDeleted: boolean) => + { // Find the index of the deleted tag const index = tags.findIndex(item => item.id === id); @@ -316,11 +318,11 @@ export class ContactsService filter(isDeleted => isDeleted), switchMap(isDeleted => this.contacts$.pipe( take(1), - map((contacts) => { - + map((contacts) => + { // Iterate through the contacts - contacts.forEach((contact) => { - + contacts.forEach((contact) => + { const tagIndex = contact.tags.findIndex(tag => tag === id); // If the contact has the tag, remove it @@ -332,9 +334,9 @@ export class ContactsService // Return the deleted status return isDeleted; - }) - )) - )) + }), + )), + )), ); } @@ -350,15 +352,15 @@ export class ContactsService take(1), switchMap(contacts => this._httpClient.post('api/apps/contacts/avatar', { id, - avatar + avatar, }, { headers: { // eslint-disable-next-line @typescript-eslint/naming-convention - 'Content-Type': avatar.type - } + 'Content-Type': avatar.type, + }, }).pipe( - map((updatedContact) => { - + map((updatedContact) => + { // Find the index of the updated contact const index = contacts.findIndex(item => item.id === id); @@ -374,16 +376,16 @@ export class ContactsService switchMap(updatedContact => this.contact$.pipe( take(1), filter(item => item && item.id === id), - tap(() => { - + tap(() => + { // Update the contact if it's selected this._contact.next(updatedContact); // Return the updated contact return updatedContact; - }) - )) - )) + }), + )), + )), ); } } diff --git a/src/app/modules/admin/apps/contacts/details/details.component.html b/src/app/modules/admin/apps/contacts/details/details.component.html index c12e1b54..053be723 100644 --- a/src/app/modules/admin/apps/contacts/details/details.component.html +++ b/src/app/modules/admin/apps/contacts/details/details.component.html @@ -19,7 +19,7 @@ [routerLink]="['../']"> + [svgIcon]="'heroicons_outline:x-mark'"> @@ -49,7 +49,7 @@ (click)="toggleEditMode(true)"> + [svgIcon]="'heroicons_solid:pencil-square'"> Edit @@ -82,7 +82,7 @@
- +
{{contact.company}}
@@ -90,7 +90,7 @@
- +
@@ -142,7 +142,7 @@
- +
{{contact.address}}
@@ -158,7 +158,7 @@
- +
@@ -189,7 +189,7 @@ [routerLink]="['../']"> + [svgIcon]="'heroicons_outline:x-mark'">
@@ -283,7 +283,7 @@ + [svgIcon]="'heroicons_solid:pencil-square'"> Edit @@ -302,7 +302,7 @@
+ [svgIcon]="'heroicons_solid:magnifying-glass'">
+ [svgIcon]="'heroicons_solid:pencil-square'"> + [svgIcon]="'heroicons_solid:building-office-2'"> + [svgIcon]="'heroicons_solid:envelope'"> + [svgIcon]="'heroicons_solid:map-pin'"> + [svgIcon]="'heroicons_solid:bars-3-bottom-left'"> -

5. Create a barrel file and import FuseMockApiModule

+

5. Create a barrel file

Navigate back to the root of your mock data directory, by default it's the src/app/mock-api/ directory, and create an index.ts file.

@@ -420,25 +420,20 @@

- After that, head to the app.module.ts file, import the FuseMockApiModule and supply the array of services you have exported: + After that, head to the app.config.ts file, provide the array of services you have exported:

@@ -452,19 +447,15 @@ diff --git a/src/app/modules/admin/ui/fuse-components/libraries/mock-api/mock-api.component.ts b/src/app/modules/admin/ui/fuse-components/libraries/mock-api/mock-api.component.ts index eb8ac20f..751f60e2 100644 --- a/src/app/modules/admin/ui/fuse-components/libraries/mock-api/mock-api.component.ts +++ b/src/app/modules/admin/ui/fuse-components/libraries/mock-api/mock-api.component.ts @@ -1,9 +1,15 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { FuseAlertComponent } from '@fuse/components/alert'; +import { FuseHighlightComponent } from '@fuse/components/highlight'; import { FuseComponentsComponent } from 'app/modules/admin/ui/fuse-components/fuse-components.component'; @Component({ selector : 'mock-api', - templateUrl: './mock-api.component.html' + templateUrl: './mock-api.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule, FuseAlertComponent, FuseHighlightComponent], }) export class MockApiComponent { diff --git a/src/app/modules/admin/ui/fuse-components/pipes/find-by-key/find-by-key.component.html b/src/app/modules/admin/ui/fuse-components/pipes/find-by-key/find-by-key.component.html index 258c4d39..8f898be7 100644 --- a/src/app/modules/admin/ui/fuse-components/pipes/find-by-key/find-by-key.component.html +++ b/src/app/modules/admin/ui/fuse-components/pipes/find-by-key/find-by-key.component.html @@ -11,13 +11,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Fuse Components
+ [svgIcon]="'heroicons_mini:chevron-right'"> Pipes
@@ -32,7 +32,7 @@ class="-ml-3 sm:ml-0 mb-2 sm:mb-0 order-first sm:order-last" mat-icon-button (click)="toggleDrawer()"> - +
diff --git a/src/app/modules/admin/ui/fuse-components/pipes/find-by-key/find-by-key.component.ts b/src/app/modules/admin/ui/fuse-components/pipes/find-by-key/find-by-key.component.ts index f04c2750..07445f19 100644 --- a/src/app/modules/admin/ui/fuse-components/pipes/find-by-key/find-by-key.component.ts +++ b/src/app/modules/admin/ui/fuse-components/pipes/find-by-key/find-by-key.component.ts @@ -1,9 +1,14 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { FuseHighlightComponent } from '@fuse/components/highlight'; import { FuseComponentsComponent } from 'app/modules/admin/ui/fuse-components/fuse-components.component'; @Component({ selector : 'find-by-key', - templateUrl: './find-by-key.component.html' + templateUrl: './find-by-key.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule, FuseHighlightComponent], }) export class FindByKeyComponent { diff --git a/src/app/modules/admin/ui/fuse-components/services/config/config.component.html b/src/app/modules/admin/ui/fuse-components/services/config/config.component.html index afd528c7..bb8aaf29 100644 --- a/src/app/modules/admin/ui/fuse-components/services/config/config.component.html +++ b/src/app/modules/admin/ui/fuse-components/services/config/config.component.html @@ -11,13 +11,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Fuse Components
+ [svgIcon]="'heroicons_mini:chevron-right'"> Services
@@ -32,7 +32,7 @@ class="-ml-3 sm:ml-0 mb-2 sm:mb-0 order-first sm:order-last" mat-icon-button (click)="toggleDrawer()"> - +
diff --git a/src/app/modules/admin/ui/fuse-components/services/config/config.component.ts b/src/app/modules/admin/ui/fuse-components/services/config/config.component.ts index 8c5adb85..82559981 100644 --- a/src/app/modules/admin/ui/fuse-components/services/config/config.component.ts +++ b/src/app/modules/admin/ui/fuse-components/services/config/config.component.ts @@ -1,9 +1,14 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { FuseHighlightComponent } from '@fuse/components/highlight'; import { FuseComponentsComponent } from 'app/modules/admin/ui/fuse-components/fuse-components.component'; @Component({ selector : 'config', - templateUrl: './config.component.html' + templateUrl: './config.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule, FuseHighlightComponent], }) export class ConfigComponent { diff --git a/src/app/modules/admin/ui/fuse-components/services/confirmation/confirmation.component.html b/src/app/modules/admin/ui/fuse-components/services/confirmation/confirmation.component.html index f52a1d7b..de487ddf 100644 --- a/src/app/modules/admin/ui/fuse-components/services/confirmation/confirmation.component.html +++ b/src/app/modules/admin/ui/fuse-components/services/confirmation/confirmation.component.html @@ -11,13 +11,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Fuse Components
+ [svgIcon]="'heroicons_mini:chevron-right'"> Services
@@ -32,7 +32,7 @@ class="-ml-3 sm:ml-0 mb-2 sm:mb-0 order-first sm:order-last" mat-icon-button (click)="toggleDrawer()"> - + diff --git a/src/app/modules/admin/ui/fuse-components/services/confirmation/confirmation.component.ts b/src/app/modules/admin/ui/fuse-components/services/confirmation/confirmation.component.ts index 13d1b510..12055acf 100644 --- a/src/app/modules/admin/ui/fuse-components/services/confirmation/confirmation.component.ts +++ b/src/app/modules/admin/ui/fuse-components/services/confirmation/confirmation.component.ts @@ -1,9 +1,14 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { FuseHighlightComponent } from '@fuse/components/highlight'; import { FuseComponentsComponent } from 'app/modules/admin/ui/fuse-components/fuse-components.component'; @Component({ selector : 'confirmation', - templateUrl: './confirmation.component.html' + templateUrl: './confirmation.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule, FuseHighlightComponent], }) export class ConfirmationComponent { @@ -11,7 +16,7 @@ export class ConfirmationComponent * Constructor */ constructor( - private _fuseComponentsComponent: FuseComponentsComponent + private _fuseComponentsComponent: FuseComponentsComponent, ) { } diff --git a/src/app/modules/admin/ui/fuse-components/services/media-watcher/media-watcher.component.html b/src/app/modules/admin/ui/fuse-components/services/media-watcher/media-watcher.component.html index f7b90cdf..ee653d89 100644 --- a/src/app/modules/admin/ui/fuse-components/services/media-watcher/media-watcher.component.html +++ b/src/app/modules/admin/ui/fuse-components/services/media-watcher/media-watcher.component.html @@ -11,13 +11,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Fuse Components
+ [svgIcon]="'heroicons_mini:chevron-right'"> Services
@@ -32,7 +32,7 @@ class="-ml-3 sm:ml-0 mb-2 sm:mb-0 order-first sm:order-last" mat-icon-button (click)="toggleDrawer()"> - + diff --git a/src/app/modules/admin/ui/fuse-components/services/media-watcher/media-watcher.component.ts b/src/app/modules/admin/ui/fuse-components/services/media-watcher/media-watcher.component.ts index 1e1eb2cc..37229358 100644 --- a/src/app/modules/admin/ui/fuse-components/services/media-watcher/media-watcher.component.ts +++ b/src/app/modules/admin/ui/fuse-components/services/media-watcher/media-watcher.component.ts @@ -1,9 +1,14 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { FuseHighlightComponent } from '@fuse/components/highlight'; import { FuseComponentsComponent } from 'app/modules/admin/ui/fuse-components/fuse-components.component'; @Component({ selector : 'media-watcher', - templateUrl: './media-watcher.component.html' + templateUrl: './media-watcher.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule, FuseHighlightComponent], }) export class MediaWatcherComponent { diff --git a/src/app/modules/admin/ui/fuse-components/services/splash-screen/splash-screen.component.html b/src/app/modules/admin/ui/fuse-components/services/splash-screen/splash-screen.component.html index c3a0fd59..73bc7e17 100644 --- a/src/app/modules/admin/ui/fuse-components/services/splash-screen/splash-screen.component.html +++ b/src/app/modules/admin/ui/fuse-components/services/splash-screen/splash-screen.component.html @@ -11,13 +11,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Fuse Components
+ [svgIcon]="'heroicons_mini:chevron-right'"> Services
@@ -32,7 +32,7 @@ class="-ml-3 sm:ml-0 mb-2 sm:mb-0 order-first sm:order-last" mat-icon-button (click)="toggleDrawer()"> - + diff --git a/src/app/modules/admin/ui/fuse-components/services/splash-screen/splash-screen.component.ts b/src/app/modules/admin/ui/fuse-components/services/splash-screen/splash-screen.component.ts index 553549e8..a1a8dd0f 100644 --- a/src/app/modules/admin/ui/fuse-components/services/splash-screen/splash-screen.component.ts +++ b/src/app/modules/admin/ui/fuse-components/services/splash-screen/splash-screen.component.ts @@ -1,9 +1,14 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { FuseHighlightComponent } from '@fuse/components/highlight'; import { FuseComponentsComponent } from 'app/modules/admin/ui/fuse-components/fuse-components.component'; @Component({ selector : 'splash-screen', - templateUrl: './splash-screen.component.html' + templateUrl: './splash-screen.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule, FuseHighlightComponent], }) export class SplashScreenComponent { diff --git a/src/app/modules/admin/ui/fuse-components/validators/must-match/must-match.component.html b/src/app/modules/admin/ui/fuse-components/validators/must-match/must-match.component.html index 2c7b3a99..3c21bd7d 100644 --- a/src/app/modules/admin/ui/fuse-components/validators/must-match/must-match.component.html +++ b/src/app/modules/admin/ui/fuse-components/validators/must-match/must-match.component.html @@ -11,13 +11,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Fuse Components
+ [svgIcon]="'heroicons_mini:chevron-right'"> Validators
@@ -32,7 +32,7 @@ class="-ml-3 sm:ml-0 mb-2 sm:mb-0 order-first sm:order-last" mat-icon-button (click)="toggleDrawer()"> - + diff --git a/src/app/modules/admin/ui/fuse-components/validators/must-match/must-match.component.ts b/src/app/modules/admin/ui/fuse-components/validators/must-match/must-match.component.ts index f08170d6..f057fa61 100644 --- a/src/app/modules/admin/ui/fuse-components/validators/must-match/must-match.component.ts +++ b/src/app/modules/admin/ui/fuse-components/validators/must-match/must-match.component.ts @@ -1,9 +1,14 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { FuseHighlightComponent } from '@fuse/components/highlight'; import { FuseComponentsComponent } from 'app/modules/admin/ui/fuse-components/fuse-components.component'; @Component({ selector : 'must-match', - templateUrl: './must-match.component.html' + templateUrl: './must-match.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule, FuseHighlightComponent], }) export class MustMatchComponent { diff --git a/src/app/modules/admin/ui/icons/icons.component.html b/src/app/modules/admin/ui/icons/icons.component.html index bee94b82..ece0800c 100644 --- a/src/app/modules/admin/ui/icons/icons.component.html +++ b/src/app/modules/admin/ui/icons/icons.component.html @@ -11,7 +11,7 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Icons
diff --git a/src/app/modules/admin/ui/icons/icons.component.ts b/src/app/modules/admin/ui/icons/icons.component.ts index d16f2d19..54ab7aed 100644 --- a/src/app/modules/admin/ui/icons/icons.component.ts +++ b/src/app/modules/admin/ui/icons/icons.component.ts @@ -1,12 +1,22 @@ +import { AsyncPipe, NgClass, NgFor, NgIf } from '@angular/common'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { BehaviorSubject, combineLatest, map, Observable, Subject, takeUntil } from 'rxjs'; +import { FormsModule } from '@angular/forms'; +import { MatOptionModule } from '@angular/material/core'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatSelectModule } from '@angular/material/select'; +import { FuseHighlightComponent } from '@fuse/components/highlight'; import { IconsService } from 'app/modules/admin/ui/icons/icons.service'; import { Icon } from 'app/modules/admin/ui/icons/icons.types'; +import { BehaviorSubject, combineLatest, map, Observable, Subject, takeUntil } from 'rxjs'; @Component({ selector : 'icons', templateUrl : './icons.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatIconModule, NgIf, FuseHighlightComponent, MatFormFieldModule, MatInputModule, MatSelectModule, FormsModule, MatOptionModule, NgFor, NgClass, AsyncPipe], }) export class IconsComponent implements OnInit, OnDestroy { @@ -40,8 +50,8 @@ export class IconsComponent implements OnInit, OnDestroy // Subscribe to icons this._iconsService.icons .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((icons) => { - + .subscribe((icons) => + { // Set the icon size in case the icon set // has a special base grid size this.iconSize = icons.grid; @@ -53,17 +63,17 @@ export class IconsComponent implements OnInit, OnDestroy // Create filtered icons this.filteredIcons$ = combineLatest([this.icons$, this.filterValue$]) .pipe( - map(([icons, filterValue]) => { - + map(([icons, filterValue]) => + { // Filter the icons const filteredIcons = icons.list.filter(icon => icon.toLowerCase().includes(filterValue.toLowerCase())); // Update the list with the filtered icons return { ...icons, - list: filteredIcons + list: filteredIcons, }; - }) + }), ); } @@ -102,7 +112,7 @@ export class IconsComponent implements OnInit, OnDestroy { this.selectedIcon = [ namespace, - icon + icon, ]; } diff --git a/src/app/modules/admin/ui/icons/icons.module.ts b/src/app/modules/admin/ui/icons/icons.module.ts deleted file mode 100644 index c34a40f6..00000000 --- a/src/app/modules/admin/ui/icons/icons.module.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { NgModule } from '@angular/core'; -import { ReactiveFormsModule } from '@angular/forms'; -import { Route, RouterModule } from '@angular/router'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatIconModule } from '@angular/material/icon'; -import { MatInputModule } from '@angular/material/input'; -import { MatSelectModule } from '@angular/material/select'; -import { FuseHighlightModule } from '@fuse/components/highlight'; -import { SharedModule } from 'app/shared/shared.module'; -import { IconsComponent } from 'app/modules/admin/ui/icons/icons.component'; -import { IconsResolver } from 'app/modules/admin/ui/icons/icons.resolvers'; - -export const routes: Route[] = [ - { - // Redirect /icons to /icons/material-twotone - path : '', - pathMatch : 'full', - redirectTo: 'material-twotone' - }, - { - path : '**', - component: IconsComponent, - resolve : { - icons: IconsResolver - } - } -]; - -@NgModule({ - declarations: [ - IconsComponent - ], - imports : [ - ReactiveFormsModule, - RouterModule.forChild(routes), - MatFormFieldModule, - MatIconModule, - MatInputModule, - MatSelectModule, - FuseHighlightModule, - SharedModule - ] -}) -export class IconsModule -{ -} diff --git a/src/app/modules/admin/ui/icons/icons.resolvers.ts b/src/app/modules/admin/ui/icons/icons.resolvers.ts index 5038ff59..7f90ee44 100644 --- a/src/app/modules/admin/ui/icons/icons.resolvers.ts +++ b/src/app/modules/admin/ui/icons/icons.resolvers.ts @@ -1,12 +1,10 @@ import { Injectable } from '@angular/core'; -import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router'; -import { Observable } from 'rxjs'; +import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; import { IconsService } from 'app/modules/admin/ui/icons/icons.service'; +import { Observable } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) -export class IconsResolver implements Resolve +@Injectable({providedIn: 'root'}) +export class IconsResolver { /** * Constructor diff --git a/src/app/modules/admin/ui/icons/icons.routes.ts b/src/app/modules/admin/ui/icons/icons.routes.ts new file mode 100644 index 00000000..94a3df61 --- /dev/null +++ b/src/app/modules/admin/ui/icons/icons.routes.ts @@ -0,0 +1,20 @@ +import { inject } from '@angular/core'; +import { ActivatedRouteSnapshot, RouterStateSnapshot, Routes } from '@angular/router'; +import { IconsComponent } from 'app/modules/admin/ui/icons/icons.component'; +import { IconsService } from 'app/modules/admin/ui/icons/icons.service'; + +export default [ + { + // Redirect /icons to /icons/material-twotone + path : '', + pathMatch : 'full', + redirectTo: 'material-twotone', + }, + { + path : '**', + component: IconsComponent, + resolve : { + icons: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => inject(IconsService).getIcons(state.url), + }, + }, +] as Routes; diff --git a/src/app/modules/admin/ui/icons/icons.service.ts b/src/app/modules/admin/ui/icons/icons.service.ts index 1bd59364..8f057710 100644 --- a/src/app/modules/admin/ui/icons/icons.service.ts +++ b/src/app/modules/admin/ui/icons/icons.service.ts @@ -1,10 +1,8 @@ -import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; import { BehaviorSubject, Observable, tap } from 'rxjs'; -@Injectable({ - providedIn: 'root' -}) +@Injectable({providedIn: 'root'}) export class IconsService { // Private @@ -44,9 +42,10 @@ export class IconsService url = 'api' + url; return this._httpClient.get(url).pipe( - tap((response: any) => { + tap((response: any) => + { this._icons.next(response); - }) + }), ); } } diff --git a/src/app/modules/admin/ui/material-components/material-components.component.html b/src/app/modules/admin/ui/material-components/material-components.component.html index 7e8d81f3..91c3a719 100644 --- a/src/app/modules/admin/ui/material-components/material-components.component.html +++ b/src/app/modules/admin/ui/material-components/material-components.component.html @@ -25,9 +25,9 @@ rel="noreferrer" [color]="'primary'"> - Official docs + class="icon-size-4" + [svgIcon]="'heroicons_mini:arrow-top-right-on-square'"> + Official docs diff --git a/src/app/modules/admin/ui/material-components/material-components.component.ts b/src/app/modules/admin/ui/material-components/material-components.component.ts index 886afec7..46165a57 100644 --- a/src/app/modules/admin/ui/material-components/material-components.component.ts +++ b/src/app/modules/admin/ui/material-components/material-components.component.ts @@ -1,9 +1,14 @@ +import { NgFor } from '@angular/common'; import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; @Component({ selector : 'material-components', templateUrl : './material-components.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatButtonModule, MatIconModule, NgFor], }) export class MaterialComponentsComponent { @@ -20,42 +25,42 @@ export class MaterialComponentsComponent name : 'Autocomplete', summary : 'Suggests relevant options as the user types.', exampleSpecs : { - prefix: 'autocomplete-' + prefix: 'autocomplete-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-autocomplete-testing.html' - } - ] + path: 'material-autocomplete-testing.html', + }, + ], }, { id : 'badge', name : 'Badge', summary : 'A small value indicator that can be overlaid on another object.', exampleSpecs : { - prefix: 'badge-' + prefix: 'badge-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-badge-testing.html' - } - ] + path: 'material-badge-testing.html', + }, + ], }, { id : 'bottom-sheet', name : 'Bottom Sheet', summary : 'A large interactive panel primarily for mobile devices.', exampleSpecs : { - prefix: 'bottom-sheet-' + prefix: 'bottom-sheet-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-bottom-sheet-testing.html' - } - ] + path: 'material-bottom-sheet-testing.html', + }, + ], }, { id : 'button', @@ -63,281 +68,281 @@ export class MaterialComponentsComponent summary : 'An interactive button with a range of presentation options.', exampleSpecs : { prefix : 'button-', - exclude: ['button-toggle-'] + exclude: ['button-toggle-'], }, additionalApiDocs: [ { name: 'Testing', - path: 'material-button-testing.html' - } - ] + path: 'material-button-testing.html', + }, + ], }, { id : 'button-toggle', name : 'Button toggle', summary : 'A groupable on/off toggle for enabling and disabling options.', exampleSpecs : { - prefix: 'button-toggle-' + prefix: 'button-toggle-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-button-toggle-testing.html' - } - ] + path: 'material-button-toggle-testing.html', + }, + ], }, { id : 'card', name : 'Card', summary : 'A styled container for pieces of itemized content.', exampleSpecs : { - prefix: 'card-' + prefix: 'card-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-card-testing.html' - } - ] + path: 'material-card-testing.html', + }, + ], }, { id : 'checkbox', name : 'Checkbox', summary : 'Captures boolean input with an optional indeterminate mode.', exampleSpecs : { - prefix: 'checkbox-' + prefix: 'checkbox-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-checkbox-testing.html' - } - ] + path: 'material-checkbox-testing.html', + }, + ], }, { id : 'chips', name : 'Chips', summary : 'Presents a list of items as a set of small, tactile entities.', exampleSpecs : { - prefix: 'chips-' + prefix: 'chips-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-chips-testing.html' - } - ] + path: 'material-chips-testing.html', + }, + ], }, { id : 'core', name : 'Core', summary : 'Reusable parts used by other components in the library.', exampleSpecs : { - prefix: 'core-' + prefix: 'core-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-core-testing.html' - } - ] + path: 'material-core-testing.html', + }, + ], }, { id : 'datepicker', name : 'Datepicker', summary : 'Captures dates, agnostic about their internal representation.', exampleSpecs : { - prefix: 'date' + prefix: 'date', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-datepicker-testing.html' - } - ] + path: 'material-datepicker-testing.html', + }, + ], }, { id : 'dialog', name : 'Dialog', summary : 'A configurable modal that displays dynamic content.', exampleSpecs : { - prefix: 'dialog-' + prefix: 'dialog-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-dialog-testing.html' - } - ] + path: 'material-dialog-testing.html', + }, + ], }, { id : 'divider', name : 'Divider', summary : 'A vertical or horizontal visual divider.', exampleSpecs : { - prefix: 'divider-' + prefix: 'divider-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-divider-testing.html' - } - ] + path: 'material-divider-testing.html', + }, + ], }, { id : 'expansion', name : 'Expansion Panel', summary : 'A container which can be expanded to reveal more content.', exampleSpecs : { - prefix: 'expansion-' + prefix: 'expansion-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-expansion-testing.html' - } - ] + path: 'material-expansion-testing.html', + }, + ], }, { id : 'form-field', name : 'Form field', summary : 'Wraps input fields so they are displayed consistently.', exampleSpecs : { - prefix: 'form-field-' + prefix: 'form-field-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-form-field-testing.html' - } - ] + path: 'material-form-field-testing.html', + }, + ], }, { id : 'grid-list', name : 'Grid list', summary : 'A flexible structure for presenting content items in a grid.', exampleSpecs : { - prefix: 'grid-list-' + prefix: 'grid-list-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-grid-list-testing.html' - } - ] + path: 'material-grid-list-testing.html', + }, + ], }, { id : 'icon', name : 'Icon', summary : 'Renders a specified icon.', exampleSpecs : { - prefix: 'icon-' + prefix: 'icon-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-icon-testing.html' - } - ] + path: 'material-icon-testing.html', + }, + ], }, { id : 'input', name : 'Input', summary : 'Enables native inputs to be used within a Form field.', exampleSpecs : { - prefix: 'input-' + prefix: 'input-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-input-testing.html' - } - ] + path: 'material-input-testing.html', + }, + ], }, { id : 'list', name : 'List', summary : 'Presents conventional lists of items.', exampleSpecs : { - prefix: 'list-' + prefix: 'list-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-list-testing.html' - } - ] + path: 'material-list-testing.html', + }, + ], }, { id : 'menu', name : 'Menu', summary : 'A floating panel of nestable options.', exampleSpecs : { - prefix: 'menu-' + prefix: 'menu-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-menu-testing.html' - } - ] + path: 'material-menu-testing.html', + }, + ], }, { id : 'paginator', name : 'Paginator', summary : 'Controls for displaying paged data.', exampleSpecs : { - prefix: 'paginator-' + prefix: 'paginator-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-paginator-testing.html' - } - ] + path: 'material-paginator-testing.html', + }, + ], }, { id : 'progress-bar', name : 'Progress bar', summary : 'A linear progress indicator.', exampleSpecs : { - prefix: 'progress-bar-' + prefix: 'progress-bar-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-progress-bar-testing.html' - } - ] + path: 'material-progress-bar-testing.html', + }, + ], }, { id : 'progress-spinner', name : 'Progress spinner', summary : 'A circular progress indicator.', exampleSpecs : { - prefix: 'progress-spinner-' + prefix: 'progress-spinner-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-progress-spinner-testing.html' - } - ] + path: 'material-progress-spinner-testing.html', + }, + ], }, { id : 'radio', name : 'Radio button', summary : 'Allows the user to select one option from a group.', exampleSpecs : { - prefix: 'radio-' + prefix: 'radio-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-radio-testing.html' - } - ] + path: 'material-radio-testing.html', + }, + ], }, { id : 'ripple', @@ -345,171 +350,171 @@ export class MaterialComponentsComponent overviewPath: 'material/core/ripple/ripple.html', summary : 'Directive for adding Material Design ripple effects', exampleSpecs: { - prefix: 'ripple-' - } + prefix: 'ripple-', + }, }, { id : 'select', name : 'Select', summary : 'Allows the user to select one or more options using a dropdown.', exampleSpecs : { - prefix: 'select-' + prefix: 'select-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-select-testing.html' - } - ] + path: 'material-select-testing.html', + }, + ], }, { id : 'sidenav', name : 'Sidenav', summary : 'A container for content that is fixed to one side of the screen.', exampleSpecs : { - prefix: 'sidenav-' + prefix: 'sidenav-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-sidenav-testing.html' - } - ] + path: 'material-sidenav-testing.html', + }, + ], }, { id : 'slide-toggle', name : 'Slide toggle', summary : 'Captures boolean values as a clickable and draggable switch.', exampleSpecs : { - prefix: 'slide-toggle-' + prefix: 'slide-toggle-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-slide-toggle-testing.html' - } - ] + path: 'material-slide-toggle-testing.html', + }, + ], }, { id : 'slider', name : 'Slider', summary : 'Allows the user to input a value by dragging along a slider.', exampleSpecs : { - prefix: 'slider-' + prefix: 'slider-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-slider-testing.html' - } - ] + path: 'material-slider-testing.html', + }, + ], }, { id : 'snack-bar', name : 'Snackbar', summary : 'Displays short actionable messages as an uninvasive alert.', exampleSpecs : { - prefix: 'snack-bar-' + prefix: 'snack-bar-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-snack-bar-testing.html' - } - ] + path: 'material-snack-bar-testing.html', + }, + ], }, { id : 'sort', name : 'Sort header', summary : 'Allows the user to configure how tabular data is sorted.', exampleSpecs : { - prefix: 'sort-' + prefix: 'sort-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-sort-testing.html' - } - ] + path: 'material-sort-testing.html', + }, + ], }, { id : 'stepper', name : 'Stepper', summary : 'Presents content as steps through which to progress.', exampleSpecs : { - prefix: 'stepper-' + prefix: 'stepper-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-stepper-testing.html' - } - ] + path: 'material-stepper-testing.html', + }, + ], }, { id : 'table', name : 'Table', summary : 'A configurable component for displaying tabular data.', exampleSpecs : { - prefix: 'table-' + prefix: 'table-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-table-testing.html' - } - ] + path: 'material-table-testing.html', + }, + ], }, { id : 'tabs', name : 'Tabs', summary : 'Only presents one view at a time from a provided set of views.', exampleSpecs : { - prefix: 'tab-' + prefix: 'tab-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-tabs-testing.html' - } - ] + path: 'material-tabs-testing.html', + }, + ], }, { id : 'toolbar', name : 'Toolbar', summary : 'A container for top-level titles and controls.', exampleSpecs : { - prefix: 'toolbar-' + prefix: 'toolbar-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-toolbar-testing.html' - } - ] + path: 'material-toolbar-testing.html', + }, + ], }, { id : 'tooltip', name : 'Tooltip', summary : 'Displays floating content when an object is hovered.', exampleSpecs : { - prefix: 'tooltip-' + prefix: 'tooltip-', }, additionalApiDocs: [ { name: 'Testing', - path: 'material-tooltip-testing.html' - } - ] + path: 'material-tooltip-testing.html', + }, + ], }, { id : 'tree', name : 'Tree', summary : 'Presents hierarchical content as an expandable tree.', exampleSpecs: { - prefix: 'tree-' - } - } + prefix: 'tree-', + }, + }, ]; } } diff --git a/src/app/modules/admin/ui/material-components/material-components.module.ts b/src/app/modules/admin/ui/material-components/material-components.module.ts deleted file mode 100644 index d0776a5c..00000000 --- a/src/app/modules/admin/ui/material-components/material-components.module.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { NgModule } from '@angular/core'; -import { Route, RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatIconModule } from '@angular/material/icon'; -import { SharedModule } from 'app/shared/shared.module'; -import { MaterialComponentsComponent } from 'app/modules/admin/ui/material-components/material-components.component'; - -export const routes: Route[] = [ - { - path : '', - component: MaterialComponentsComponent - } -]; - -@NgModule({ - declarations: [ - MaterialComponentsComponent - ], - imports : [ - RouterModule.forChild(routes), - MatButtonModule, - MatIconModule, - SharedModule - ] -}) -export class MaterialComponentsModule -{ -} diff --git a/src/app/modules/admin/ui/material-components/material-components.routes.ts b/src/app/modules/admin/ui/material-components/material-components.routes.ts new file mode 100644 index 00000000..6fa19374 --- /dev/null +++ b/src/app/modules/admin/ui/material-components/material-components.routes.ts @@ -0,0 +1,9 @@ +import { Routes } from '@angular/router'; +import { MaterialComponentsComponent } from 'app/modules/admin/ui/material-components/material-components.component'; + +export default [ + { + path : '', + component: MaterialComponentsComponent, + }, +] as Routes; diff --git a/src/app/modules/admin/ui/other-components/common/languages/languages.component.html b/src/app/modules/admin/ui/other-components/common/languages/languages.component.html index 38adc435..1c30f100 100644 --- a/src/app/modules/admin/ui/other-components/common/languages/languages.component.html +++ b/src/app/modules/admin/ui/other-components/common/languages/languages.component.html @@ -11,13 +11,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Other Components
+ [svgIcon]="'heroicons_mini:chevron-right'"> Common
@@ -32,7 +32,7 @@ class="-ml-3 sm:ml-0 mb-2 sm:mb-0 order-first sm:order-last" mat-icon-button (click)="toggleDrawer()"> - + diff --git a/src/app/modules/admin/ui/other-components/common/languages/languages.component.ts b/src/app/modules/admin/ui/other-components/common/languages/languages.component.ts index 8fd9a8db..70d74f2a 100644 --- a/src/app/modules/admin/ui/other-components/common/languages/languages.component.ts +++ b/src/app/modules/admin/ui/other-components/common/languages/languages.component.ts @@ -1,9 +1,14 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { FuseHighlightComponent } from '@fuse/components/highlight'; import { OtherComponentsComponent } from 'app/modules/admin/ui/other-components/other-components.component'; @Component({ selector : 'languages', - templateUrl: './languages.component.html' + templateUrl: './languages.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule, FuseHighlightComponent], }) export class LanguagesComponent { diff --git a/src/app/modules/admin/ui/other-components/common/messages/messages.component.html b/src/app/modules/admin/ui/other-components/common/messages/messages.component.html index 2e1d98ac..43488d15 100644 --- a/src/app/modules/admin/ui/other-components/common/messages/messages.component.html +++ b/src/app/modules/admin/ui/other-components/common/messages/messages.component.html @@ -11,13 +11,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Other Components
+ [svgIcon]="'heroicons_mini:chevron-right'"> Common
@@ -32,7 +32,7 @@ class="-ml-3 sm:ml-0 mb-2 sm:mb-0 order-first sm:order-last" mat-icon-button (click)="toggleDrawer()"> - + diff --git a/src/app/modules/admin/ui/other-components/common/messages/messages.component.ts b/src/app/modules/admin/ui/other-components/common/messages/messages.component.ts index a3a79bc7..c45ee99d 100644 --- a/src/app/modules/admin/ui/other-components/common/messages/messages.component.ts +++ b/src/app/modules/admin/ui/other-components/common/messages/messages.component.ts @@ -1,9 +1,14 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { FuseHighlightComponent } from '@fuse/components/highlight'; import { OtherComponentsComponent } from 'app/modules/admin/ui/other-components/other-components.component'; @Component({ selector : 'messages', - templateUrl: './messages.component.html' + templateUrl: './messages.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule, FuseHighlightComponent], }) export class MessagesComponent { diff --git a/src/app/modules/admin/ui/other-components/common/notifications/notifications.component.html b/src/app/modules/admin/ui/other-components/common/notifications/notifications.component.html index 37f792c6..0e5217b8 100644 --- a/src/app/modules/admin/ui/other-components/common/notifications/notifications.component.html +++ b/src/app/modules/admin/ui/other-components/common/notifications/notifications.component.html @@ -11,13 +11,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Other Components
+ [svgIcon]="'heroicons_mini:chevron-right'"> Common
@@ -32,7 +32,7 @@ class="-ml-3 sm:ml-0 mb-2 sm:mb-0 order-first sm:order-last" mat-icon-button (click)="toggleDrawer()"> - + diff --git a/src/app/modules/admin/ui/other-components/common/notifications/notifications.component.ts b/src/app/modules/admin/ui/other-components/common/notifications/notifications.component.ts index 9495df8e..6732362e 100644 --- a/src/app/modules/admin/ui/other-components/common/notifications/notifications.component.ts +++ b/src/app/modules/admin/ui/other-components/common/notifications/notifications.component.ts @@ -1,9 +1,14 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { FuseHighlightComponent } from '@fuse/components/highlight'; import { OtherComponentsComponent } from 'app/modules/admin/ui/other-components/other-components.component'; @Component({ selector : 'notifications', - templateUrl: './notifications.component.html' + templateUrl: './notifications.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule, FuseHighlightComponent], }) export class NotificationsComponent { diff --git a/src/app/modules/admin/ui/other-components/common/overview/overview.component.html b/src/app/modules/admin/ui/other-components/common/overview/overview.component.html index ca591b5e..a90564cd 100644 --- a/src/app/modules/admin/ui/other-components/common/overview/overview.component.html +++ b/src/app/modules/admin/ui/other-components/common/overview/overview.component.html @@ -11,13 +11,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Other Components
+ [svgIcon]="'heroicons_mini:chevron-right'"> Common
@@ -32,7 +32,7 @@ class="-ml-3 sm:ml-0 mb-2 sm:mb-0 order-first sm:order-last" mat-icon-button (click)="toggleDrawer()"> - + diff --git a/src/app/modules/admin/ui/other-components/common/overview/overview.component.ts b/src/app/modules/admin/ui/other-components/common/overview/overview.component.ts index 6085d725..1cf7621f 100644 --- a/src/app/modules/admin/ui/other-components/common/overview/overview.component.ts +++ b/src/app/modules/admin/ui/other-components/common/overview/overview.component.ts @@ -1,9 +1,14 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { FuseAlertComponent } from '@fuse/components/alert'; import { OtherComponentsComponent } from 'app/modules/admin/ui/other-components/other-components.component'; @Component({ selector : 'overview', - templateUrl: './overview.component.html' + templateUrl: './overview.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule, FuseAlertComponent], }) export class OverviewComponent { diff --git a/src/app/modules/admin/ui/other-components/common/quick-chat/quick-chat.component.html b/src/app/modules/admin/ui/other-components/common/quick-chat/quick-chat.component.html index 764d05f0..30b29e1f 100644 --- a/src/app/modules/admin/ui/other-components/common/quick-chat/quick-chat.component.html +++ b/src/app/modules/admin/ui/other-components/common/quick-chat/quick-chat.component.html @@ -11,13 +11,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Other Components
+ [svgIcon]="'heroicons_mini:chevron-right'"> Common
@@ -32,7 +32,7 @@ class="-ml-3 sm:ml-0 mb-2 sm:mb-0 order-first sm:order-last" mat-icon-button (click)="toggleDrawer()"> - + diff --git a/src/app/modules/admin/ui/other-components/common/quick-chat/quick-chat.component.ts b/src/app/modules/admin/ui/other-components/common/quick-chat/quick-chat.component.ts index 4ec5c25b..e7d92cce 100644 --- a/src/app/modules/admin/ui/other-components/common/quick-chat/quick-chat.component.ts +++ b/src/app/modules/admin/ui/other-components/common/quick-chat/quick-chat.component.ts @@ -1,9 +1,14 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { FuseHighlightComponent } from '@fuse/components/highlight'; import { OtherComponentsComponent } from 'app/modules/admin/ui/other-components/other-components.component'; @Component({ selector : 'quick-chat', - templateUrl: './quick-chat.component.html' + templateUrl: './quick-chat.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule, FuseHighlightComponent], }) export class QuickChatComponent { diff --git a/src/app/modules/admin/ui/other-components/common/search/search.component.html b/src/app/modules/admin/ui/other-components/common/search/search.component.html index 56a79ec7..a12761f4 100644 --- a/src/app/modules/admin/ui/other-components/common/search/search.component.html +++ b/src/app/modules/admin/ui/other-components/common/search/search.component.html @@ -11,13 +11,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Other Components
+ [svgIcon]="'heroicons_mini:chevron-right'"> Common
@@ -32,7 +32,7 @@ class="-ml-3 sm:ml-0 mb-2 sm:mb-0 order-first sm:order-last" mat-icon-button (click)="toggleDrawer()"> - + diff --git a/src/app/modules/admin/ui/other-components/common/search/search.component.ts b/src/app/modules/admin/ui/other-components/common/search/search.component.ts index 167b1301..7a8f3e24 100644 --- a/src/app/modules/admin/ui/other-components/common/search/search.component.ts +++ b/src/app/modules/admin/ui/other-components/common/search/search.component.ts @@ -1,9 +1,14 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { FuseHighlightComponent } from '@fuse/components/highlight'; import { OtherComponentsComponent } from 'app/modules/admin/ui/other-components/other-components.component'; @Component({ selector : 'search', - templateUrl: './search.component.html' + templateUrl: './search.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule, FuseHighlightComponent], }) export class SearchComponent { diff --git a/src/app/modules/admin/ui/other-components/common/shortcuts/shortcuts.component.html b/src/app/modules/admin/ui/other-components/common/shortcuts/shortcuts.component.html index 2f227e64..0a7e40c3 100644 --- a/src/app/modules/admin/ui/other-components/common/shortcuts/shortcuts.component.html +++ b/src/app/modules/admin/ui/other-components/common/shortcuts/shortcuts.component.html @@ -11,13 +11,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Other Components
+ [svgIcon]="'heroicons_mini:chevron-right'"> Common
@@ -32,7 +32,7 @@ class="-ml-3 sm:ml-0 mb-2 sm:mb-0 order-first sm:order-last" mat-icon-button (click)="toggleDrawer()"> - + diff --git a/src/app/modules/admin/ui/other-components/common/shortcuts/shortcuts.component.ts b/src/app/modules/admin/ui/other-components/common/shortcuts/shortcuts.component.ts index e2695373..37d519e3 100644 --- a/src/app/modules/admin/ui/other-components/common/shortcuts/shortcuts.component.ts +++ b/src/app/modules/admin/ui/other-components/common/shortcuts/shortcuts.component.ts @@ -1,9 +1,14 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { FuseHighlightComponent } from '@fuse/components/highlight'; import { OtherComponentsComponent } from 'app/modules/admin/ui/other-components/other-components.component'; @Component({ selector : 'shortcuts', - templateUrl: './shortcuts.component.html' + templateUrl: './shortcuts.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule, FuseHighlightComponent], }) export class ShortcutsComponent { diff --git a/src/app/modules/admin/ui/other-components/common/user/user.component.html b/src/app/modules/admin/ui/other-components/common/user/user.component.html index fc2470bf..7d83490f 100644 --- a/src/app/modules/admin/ui/other-components/common/user/user.component.html +++ b/src/app/modules/admin/ui/other-components/common/user/user.component.html @@ -11,13 +11,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Other Components
+ [svgIcon]="'heroicons_mini:chevron-right'"> Common
@@ -32,7 +32,7 @@ class="-ml-3 sm:ml-0 mb-2 sm:mb-0 order-first sm:order-last" mat-icon-button (click)="toggleDrawer()"> - + diff --git a/src/app/modules/admin/ui/other-components/common/user/user.component.ts b/src/app/modules/admin/ui/other-components/common/user/user.component.ts index d130215f..4918f7cd 100644 --- a/src/app/modules/admin/ui/other-components/common/user/user.component.ts +++ b/src/app/modules/admin/ui/other-components/common/user/user.component.ts @@ -1,9 +1,14 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { FuseHighlightComponent } from '@fuse/components/highlight'; import { OtherComponentsComponent } from 'app/modules/admin/ui/other-components/other-components.component'; @Component({ selector : 'user', - templateUrl: './user.component.html' + templateUrl: './user.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule, FuseHighlightComponent], }) export class UserComponent { diff --git a/src/app/modules/admin/ui/other-components/other-components.component.ts b/src/app/modules/admin/ui/other-components/other-components.component.ts index b80d8b0e..b5e6ef9e 100644 --- a/src/app/modules/admin/ui/other-components/other-components.component.ts +++ b/src/app/modules/admin/ui/other-components/other-components.component.ts @@ -1,15 +1,19 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; -import { MatDrawer } from '@angular/material/sidenav'; -import { Subject, takeUntil } from 'rxjs'; -import { FuseNavigationItem } from '@fuse/components/navigation'; +import { MatDrawer, MatSidenavModule } from '@angular/material/sidenav'; +import { RouterOutlet } from '@angular/router'; +import { FuseNavigationItem, FuseVerticalNavigationComponent } from '@fuse/components/navigation'; +import { FuseScrollResetDirective } from '@fuse/directives/scroll-reset'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'other-components', templateUrl : './other-components.component.html', styleUrls : ['./other-components.component.scss'], encapsulation : ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone : true, + imports : [MatSidenavModule, FuseVerticalNavigationComponent, FuseScrollResetDirective, RouterOutlet], }) export class OtherComponentsComponent implements OnInit, OnDestroy { @@ -24,7 +28,7 @@ export class OtherComponentsComponent implements OnInit, OnDestroy */ constructor( private _changeDetectorRef: ChangeDetectorRef, - private _fuseMediaWatcherService: FuseMediaWatcherService + private _fuseMediaWatcherService: FuseMediaWatcherService, ) { this.menuData = [ @@ -38,55 +42,55 @@ export class OtherComponentsComponent implements OnInit, OnDestroy id : 'other-components.common.overview', title: 'Overview', type : 'basic', - link : '/ui/other-components/common/overview' + link : '/ui/other-components/common/overview', }, { id : 'other-components.common.languages', title: 'Languages', type : 'basic', - link : '/ui/other-components/common/languages' + link : '/ui/other-components/common/languages', }, { id : 'other-components.common.messages', title: 'Messages', type : 'basic', - link : '/ui/other-components/common/messages' + link : '/ui/other-components/common/messages', }, { id : 'other-components.common.notifications', title: 'Notifications', type : 'basic', - link : '/ui/other-components/common/notifications' + link : '/ui/other-components/common/notifications', }, { id : 'other-components.common.quick-chat', title: 'Quick chat', type : 'basic', - link : '/ui/other-components/common/quick-chat' + link : '/ui/other-components/common/quick-chat', }, { id : 'other-components.common.search', title: 'Search', type : 'basic', - link : '/ui/other-components/common/search' + link : '/ui/other-components/common/search', }, { id : 'other-components.common.shortcuts', title: 'Shortcuts', type : 'basic', - link : '/ui/other-components/common/shortcuts' + link : '/ui/other-components/common/shortcuts', }, { id : 'other-components.common.user', title: 'User', type : 'basic', - link : '/ui/other-components/common/user' - } - ] + link : '/ui/other-components/common/user', + }, + ], }, { id : 'other-components.divider-1', - type: 'divider' + type: 'divider', }, { id : 'other-components.third-party', @@ -98,16 +102,16 @@ export class OtherComponentsComponent implements OnInit, OnDestroy id : 'other-components.third-party.apex-charts', title: 'ApexCharts', type : 'basic', - link : '/ui/other-components/third-party/apex-charts' + link : '/ui/other-components/third-party/apex-charts', }, { id : 'other-components.third-party.quill-editor', title: 'Quill editor', type : 'basic', - link : '/ui/other-components/third-party/quill-editor' - } - ] - } + link : '/ui/other-components/third-party/quill-editor', + }, + ], + }, ]; } @@ -123,8 +127,8 @@ export class OtherComponentsComponent implements OnInit, OnDestroy // Subscribe to media query change this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if ( matchingAliases.includes('md') ) { diff --git a/src/app/modules/admin/ui/other-components/other-components.module.ts b/src/app/modules/admin/ui/other-components/other-components.module.ts deleted file mode 100644 index 6c4024d3..00000000 --- a/src/app/modules/admin/ui/other-components/other-components.module.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatIconModule } from '@angular/material/icon'; -import { MatSidenavModule } from '@angular/material/sidenav'; -import { FuseHighlightModule } from '@fuse/components/highlight'; -import { FuseAlertModule } from '@fuse/components/alert'; -import { FuseNavigationModule } from '@fuse/components/navigation'; -import { FuseScrollResetModule } from '@fuse/directives/scroll-reset'; -import { SharedModule } from 'app/shared/shared.module'; -import { OtherComponentsComponent } from 'app/modules/admin/ui/other-components/other-components.component'; -import { OverviewComponent } from 'app/modules/admin/ui/other-components/common/overview/overview.component'; -import { LanguagesComponent } from 'app/modules/admin/ui/other-components/common/languages/languages.component'; -import { MessagesComponent } from 'app/modules/admin/ui/other-components/common/messages/messages.component'; -import { NotificationsComponent } from 'app/modules/admin/ui/other-components/common/notifications/notifications.component'; -import { QuickChatComponent } from 'app/modules/admin/ui/other-components/common/quick-chat/quick-chat.component'; -import { SearchComponent } from 'app/modules/admin/ui/other-components/common/search/search.component'; -import { ShortcutsComponent } from 'app/modules/admin/ui/other-components/common/shortcuts/shortcuts.component'; -import { UserComponent } from 'app/modules/admin/ui/other-components/common/user/user.component'; -import { ApexChartsComponent } from 'app/modules/admin/ui/other-components/third-party/apex-charts/apex-charts.component'; -import { QuillEditorComponent } from 'app/modules/admin/ui/other-components/third-party/quill-editor/quill-editor.component'; -import { otherComponentsRoutes } from 'app/modules/admin/ui/other-components/other-components.routing'; - -@NgModule({ - declarations: [ - OtherComponentsComponent, - OverviewComponent, - LanguagesComponent, - MessagesComponent, - NotificationsComponent, - QuickChatComponent, - SearchComponent, - ShortcutsComponent, - UserComponent, - ApexChartsComponent, - QuillEditorComponent - ], - imports : [ - RouterModule.forChild(otherComponentsRoutes), - MatButtonModule, - MatIconModule, - MatSidenavModule, - FuseHighlightModule, - FuseAlertModule, - FuseNavigationModule, - FuseScrollResetModule, - SharedModule - ] -}) -export class OtherComponentsModule -{ -} diff --git a/src/app/modules/admin/ui/other-components/other-components.routing.ts b/src/app/modules/admin/ui/other-components/other-components.routes.ts similarity index 75% rename from src/app/modules/admin/ui/other-components/other-components.routing.ts rename to src/app/modules/admin/ui/other-components/other-components.routes.ts index 8f61c033..efb19eeb 100644 --- a/src/app/modules/admin/ui/other-components/other-components.routing.ts +++ b/src/app/modules/admin/ui/other-components/other-components.routes.ts @@ -1,17 +1,17 @@ -import { Route } from '@angular/router'; -import { OtherComponentsComponent } from 'app/modules/admin/ui/other-components/other-components.component'; -import { OverviewComponent } from 'app/modules/admin/ui/other-components/common/overview/overview.component'; +import { Routes } from '@angular/router'; import { LanguagesComponent } from 'app/modules/admin/ui/other-components/common/languages/languages.component'; import { MessagesComponent } from 'app/modules/admin/ui/other-components/common/messages/messages.component'; import { NotificationsComponent } from 'app/modules/admin/ui/other-components/common/notifications/notifications.component'; +import { OverviewComponent } from 'app/modules/admin/ui/other-components/common/overview/overview.component'; import { QuickChatComponent } from 'app/modules/admin/ui/other-components/common/quick-chat/quick-chat.component'; import { SearchComponent } from 'app/modules/admin/ui/other-components/common/search/search.component'; import { ShortcutsComponent } from 'app/modules/admin/ui/other-components/common/shortcuts/shortcuts.component'; import { UserComponent } from 'app/modules/admin/ui/other-components/common/user/user.component'; +import { OtherComponentsComponent } from 'app/modules/admin/ui/other-components/other-components.component'; import { ApexChartsComponent } from 'app/modules/admin/ui/other-components/third-party/apex-charts/apex-charts.component'; import { QuillEditorComponent } from 'app/modules/admin/ui/other-components/third-party/quill-editor/quill-editor.component'; -export const otherComponentsRoutes: Route[] = [ +export default [ { path : '', component: OtherComponentsComponent, @@ -19,7 +19,7 @@ export const otherComponentsRoutes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'common/overview' + redirectTo: 'common/overview', }, { path : 'common', @@ -27,41 +27,41 @@ export const otherComponentsRoutes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'overview' + redirectTo: 'overview', }, { path : 'overview', - component: OverviewComponent + component: OverviewComponent, }, { path : 'languages', - component: LanguagesComponent + component: LanguagesComponent, }, { path : 'messages', - component: MessagesComponent + component: MessagesComponent, }, { path : 'notifications', - component: NotificationsComponent + component: NotificationsComponent, }, { path : 'search', - component: SearchComponent + component: SearchComponent, }, { path : 'quick-chat', - component: QuickChatComponent + component: QuickChatComponent, }, { path : 'shortcuts', - component: ShortcutsComponent + component: ShortcutsComponent, }, { path : 'user', - component: UserComponent - } - ] + component: UserComponent, + }, + ], }, { path : 'third-party', @@ -69,18 +69,18 @@ export const otherComponentsRoutes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'apex-charts' + redirectTo: 'apex-charts', }, { path : 'apex-charts', - component: ApexChartsComponent + component: ApexChartsComponent, }, { path : 'quill-editor', - component: QuillEditorComponent - } - ] - } - ] - } -]; + component: QuillEditorComponent, + }, + ], + }, + ], + }, +] as Routes; diff --git a/src/app/modules/admin/ui/other-components/third-party/apex-charts/apex-charts.component.html b/src/app/modules/admin/ui/other-components/third-party/apex-charts/apex-charts.component.html index 3ac33298..a640e93e 100644 --- a/src/app/modules/admin/ui/other-components/third-party/apex-charts/apex-charts.component.html +++ b/src/app/modules/admin/ui/other-components/third-party/apex-charts/apex-charts.component.html @@ -11,13 +11,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Other Components
+ [svgIcon]="'heroicons_mini:chevron-right'"> Third Party
@@ -32,7 +32,7 @@ class="-ml-3 sm:ml-0 mb-2 sm:mb-0 order-first sm:order-last" mat-icon-button (click)="toggleDrawer()"> - + diff --git a/src/app/modules/admin/ui/other-components/third-party/apex-charts/apex-charts.component.ts b/src/app/modules/admin/ui/other-components/third-party/apex-charts/apex-charts.component.ts index a2778afa..13b8dd58 100644 --- a/src/app/modules/admin/ui/other-components/third-party/apex-charts/apex-charts.component.ts +++ b/src/app/modules/admin/ui/other-components/third-party/apex-charts/apex-charts.component.ts @@ -1,9 +1,13 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; import { OtherComponentsComponent } from 'app/modules/admin/ui/other-components/other-components.component'; @Component({ selector : 'apex-charts', - templateUrl: './apex-charts.component.html' + templateUrl: './apex-charts.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule], }) export class ApexChartsComponent { diff --git a/src/app/modules/admin/ui/other-components/third-party/quill-editor/quill-editor.component.html b/src/app/modules/admin/ui/other-components/third-party/quill-editor/quill-editor.component.html index df7bf6b2..18edf3a8 100644 --- a/src/app/modules/admin/ui/other-components/third-party/quill-editor/quill-editor.component.html +++ b/src/app/modules/admin/ui/other-components/third-party/quill-editor/quill-editor.component.html @@ -11,13 +11,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Other Components
+ [svgIcon]="'heroicons_mini:chevron-right'"> Third Party
@@ -32,7 +32,7 @@ class="-ml-3 sm:ml-0 mb-2 sm:mb-0 order-first sm:order-last" mat-icon-button (click)="toggleDrawer()"> - + diff --git a/src/app/modules/admin/ui/other-components/third-party/quill-editor/quill-editor.component.ts b/src/app/modules/admin/ui/other-components/third-party/quill-editor/quill-editor.component.ts index 01301401..041e15d6 100644 --- a/src/app/modules/admin/ui/other-components/third-party/quill-editor/quill-editor.component.ts +++ b/src/app/modules/admin/ui/other-components/third-party/quill-editor/quill-editor.component.ts @@ -1,9 +1,13 @@ import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; import { OtherComponentsComponent } from 'app/modules/admin/ui/other-components/other-components.component'; @Component({ selector : 'quill-editor', - templateUrl: './quill-editor.component.html' + templateUrl: './quill-editor.component.html', + standalone : true, + imports : [MatIconModule, MatButtonModule], }) export class QuillEditorComponent { diff --git a/src/app/modules/admin/ui/page-layouts/carded/fullwidth/content-scroll/fullwidth.component.html b/src/app/modules/admin/ui/page-layouts/carded/fullwidth/content-scroll/fullwidth.component.html index 23463f11..e010378d 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/fullwidth/content-scroll/fullwidth.component.html +++ b/src/app/modules/admin/ui/page-layouts/carded/fullwidth/content-scroll/fullwidth.component.html @@ -12,13 +12,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -44,18 +44,18 @@
diff --git a/src/app/modules/admin/ui/page-layouts/carded/fullwidth/content-scroll/fullwidth.component.ts b/src/app/modules/admin/ui/page-layouts/carded/fullwidth/content-scroll/fullwidth.component.ts index d55fcd6c..58e0e802 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/fullwidth/content-scroll/fullwidth.component.ts +++ b/src/app/modules/admin/ui/page-layouts/carded/fullwidth/content-scroll/fullwidth.component.ts @@ -1,9 +1,15 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { RouterLink } from '@angular/router'; @Component({ selector : 'carded-fullwidth-content-scroll', templateUrl : './fullwidth.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatIconModule, RouterLink, MatButtonModule, CdkScrollable], }) export class CardedFullwidthContentScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/carded/fullwidth/normal-scroll/fullwidth.component.html b/src/app/modules/admin/ui/page-layouts/carded/fullwidth/normal-scroll/fullwidth.component.html index 5fa7a45f..087e37dc 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/fullwidth/normal-scroll/fullwidth.component.html +++ b/src/app/modules/admin/ui/page-layouts/carded/fullwidth/normal-scroll/fullwidth.component.html @@ -12,13 +12,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -44,18 +44,18 @@
diff --git a/src/app/modules/admin/ui/page-layouts/carded/fullwidth/normal-scroll/fullwidth.component.ts b/src/app/modules/admin/ui/page-layouts/carded/fullwidth/normal-scroll/fullwidth.component.ts index 88378183..42db5bb5 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/fullwidth/normal-scroll/fullwidth.component.ts +++ b/src/app/modules/admin/ui/page-layouts/carded/fullwidth/normal-scroll/fullwidth.component.ts @@ -1,9 +1,14 @@ import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { RouterLink } from '@angular/router'; @Component({ selector : 'carded-fullwidth-normal-scroll', templateUrl : './fullwidth.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatIconModule, RouterLink, MatButtonModule], }) export class CardedFullwidthNormalScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/carded/fullwidth/page-scroll/fullwidth.component.html b/src/app/modules/admin/ui/page-layouts/carded/fullwidth/page-scroll/fullwidth.component.html index beb38053..ef8254e8 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/fullwidth/page-scroll/fullwidth.component.html +++ b/src/app/modules/admin/ui/page-layouts/carded/fullwidth/page-scroll/fullwidth.component.html @@ -14,13 +14,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -46,18 +46,18 @@
diff --git a/src/app/modules/admin/ui/page-layouts/carded/fullwidth/page-scroll/fullwidth.component.ts b/src/app/modules/admin/ui/page-layouts/carded/fullwidth/page-scroll/fullwidth.component.ts index d5ddc0b7..6e08814b 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/fullwidth/page-scroll/fullwidth.component.ts +++ b/src/app/modules/admin/ui/page-layouts/carded/fullwidth/page-scroll/fullwidth.component.ts @@ -1,9 +1,15 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { RouterLink } from '@angular/router'; @Component({ selector : 'carded-fullwidth-page-scroll', templateUrl : './fullwidth.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [CdkScrollable, MatIconModule, RouterLink, MatButtonModule], }) export class CardedFullwidthPageScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/content-scroll/left-sidebar-1.component.html b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/content-scroll/left-sidebar-1.component.html index 2eed327b..d671f306 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/content-scroll/left-sidebar-1.component.html +++ b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/content-scroll/left-sidebar-1.component.html @@ -27,13 +27,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -60,7 +60,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/content-scroll/left-sidebar-1.component.ts b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/content-scroll/left-sidebar-1.component.ts index 91883fcb..5f8dedf5 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/content-scroll/left-sidebar-1.component.ts +++ b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/content-scroll/left-sidebar-1.component.ts @@ -1,9 +1,17 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; @Component({ selector : 'carded-left-sidebar-1-content-scroll', templateUrl : './left-sidebar-1.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatSidenavModule, DemoSidebarComponent, MatIconModule, RouterLink, MatButtonModule, CdkScrollable], }) export class CardedLeftSidebar1ContentScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/normal-scroll/left-sidebar-1.component.html b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/normal-scroll/left-sidebar-1.component.html index ca4d9b2f..b3bc2510 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/normal-scroll/left-sidebar-1.component.html +++ b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/normal-scroll/left-sidebar-1.component.html @@ -27,13 +27,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -60,7 +60,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/normal-scroll/left-sidebar-1.component.ts b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/normal-scroll/left-sidebar-1.component.ts index 21c3b592..4b908e29 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/normal-scroll/left-sidebar-1.component.ts +++ b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/normal-scroll/left-sidebar-1.component.ts @@ -1,9 +1,16 @@ import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; @Component({ selector : 'carded-left-sidebar-1-normal-scroll', templateUrl : './left-sidebar-1.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatSidenavModule, DemoSidebarComponent, MatIconModule, RouterLink, MatButtonModule], }) export class CardedLeftSidebar1NormalScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/page-scroll/left-sidebar-1.component.html b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/page-scroll/left-sidebar-1.component.html index 3542307a..6f8d3315 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/page-scroll/left-sidebar-1.component.html +++ b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/page-scroll/left-sidebar-1.component.html @@ -29,13 +29,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -62,7 +62,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/page-scroll/left-sidebar-1.component.ts b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/page-scroll/left-sidebar-1.component.ts index 2ba0cd81..dcb740d0 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/page-scroll/left-sidebar-1.component.ts +++ b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-1/page-scroll/left-sidebar-1.component.ts @@ -1,9 +1,17 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; @Component({ selector : 'carded-left-sidebar-1-page-scroll', templateUrl : './left-sidebar-1.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [CdkScrollable, MatSidenavModule, DemoSidebarComponent, MatIconModule, RouterLink, MatButtonModule], }) export class CardedLeftSidebar1PageScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/content-scroll/left-sidebar-2.component.html b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/content-scroll/left-sidebar-2.component.html index 76a4e6a1..52b75648 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/content-scroll/left-sidebar-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/content-scroll/left-sidebar-2.component.html @@ -12,13 +12,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -45,7 +45,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/content-scroll/left-sidebar-2.component.ts b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/content-scroll/left-sidebar-2.component.ts index b7278124..e37f1005 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/content-scroll/left-sidebar-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/content-scroll/left-sidebar-2.component.ts @@ -1,11 +1,19 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'carded-left-sidebar-2-content-scroll', templateUrl : './left-sidebar-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatIconModule, RouterLink, MatButtonModule, MatSidenavModule, DemoSidebarComponent, CdkScrollable], }) export class CardedLeftSidebar2ContentScrollComponent implements OnInit, OnDestroy { @@ -32,8 +40,8 @@ export class CardedLeftSidebar2ContentScrollComponent implements OnInit, OnDestr // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/normal-scroll/left-sidebar-2.component.html b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/normal-scroll/left-sidebar-2.component.html index ff66269d..7f699f3b 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/normal-scroll/left-sidebar-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/normal-scroll/left-sidebar-2.component.html @@ -12,13 +12,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -45,7 +45,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/normal-scroll/left-sidebar-2.component.ts b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/normal-scroll/left-sidebar-2.component.ts index f842bc11..20975b32 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/normal-scroll/left-sidebar-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/normal-scroll/left-sidebar-2.component.ts @@ -1,11 +1,18 @@ import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'carded-left-sidebar-2-normal-scroll', templateUrl : './left-sidebar-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatIconModule, RouterLink, MatButtonModule, MatSidenavModule, DemoSidebarComponent], }) export class CardedLeftSidebar2NormalScrollComponent implements OnInit, OnDestroy { @@ -32,8 +39,8 @@ export class CardedLeftSidebar2NormalScrollComponent implements OnInit, OnDestro // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/page-scroll/left-sidebar-2.component.html b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/page-scroll/left-sidebar-2.component.html index 65120905..e2288148 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/page-scroll/left-sidebar-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/page-scroll/left-sidebar-2.component.html @@ -14,13 +14,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -47,7 +47,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/page-scroll/left-sidebar-2.component.ts b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/page-scroll/left-sidebar-2.component.ts index 206ffe89..9207f2af 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/page-scroll/left-sidebar-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/carded/left-sidebar-2/page-scroll/left-sidebar-2.component.ts @@ -1,11 +1,19 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'carded-left-sidebar-2-page-scroll', templateUrl : './left-sidebar-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [CdkScrollable, MatIconModule, RouterLink, MatButtonModule, MatSidenavModule, DemoSidebarComponent], }) export class CardedLeftSidebar2PageScrollComponent implements OnInit, OnDestroy { @@ -32,8 +40,8 @@ export class CardedLeftSidebar2PageScrollComponent implements OnInit, OnDestroy // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/content-scroll/right-sidebar-1.component.html b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/content-scroll/right-sidebar-1.component.html index 2a5dcf4b..ff7a8518 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/content-scroll/right-sidebar-1.component.html +++ b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/content-scroll/right-sidebar-1.component.html @@ -28,13 +28,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -61,7 +61,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/content-scroll/right-sidebar-1.component.ts b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/content-scroll/right-sidebar-1.component.ts index a160ce05..7d6a1810 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/content-scroll/right-sidebar-1.component.ts +++ b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/content-scroll/right-sidebar-1.component.ts @@ -1,9 +1,17 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; @Component({ selector : 'carded-right-sidebar-1-content-scroll', templateUrl : './right-sidebar-1.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatSidenavModule, DemoSidebarComponent, MatIconModule, RouterLink, MatButtonModule, CdkScrollable], }) export class CardedRightSidebar1ContentScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/normal-scroll/right-sidebar-1.component.html b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/normal-scroll/right-sidebar-1.component.html index e2ae28f1..2c0e905c 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/normal-scroll/right-sidebar-1.component.html +++ b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/normal-scroll/right-sidebar-1.component.html @@ -28,13 +28,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -61,7 +61,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/normal-scroll/right-sidebar-1.component.ts b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/normal-scroll/right-sidebar-1.component.ts index 7ef99e95..b1bf792d 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/normal-scroll/right-sidebar-1.component.ts +++ b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/normal-scroll/right-sidebar-1.component.ts @@ -1,9 +1,16 @@ import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; @Component({ selector : 'carded-right-sidebar-1-normal-scroll', templateUrl : './right-sidebar-1.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatSidenavModule, DemoSidebarComponent, MatIconModule, RouterLink, MatButtonModule], }) export class CardedRightSidebar1NormalScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/page-scroll/right-sidebar-1.component.html b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/page-scroll/right-sidebar-1.component.html index 2b0a04db..dfd278d0 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/page-scroll/right-sidebar-1.component.html +++ b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/page-scroll/right-sidebar-1.component.html @@ -30,13 +30,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -63,7 +63,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/page-scroll/right-sidebar-1.component.ts b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/page-scroll/right-sidebar-1.component.ts index 920dcba8..29a9e8da 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/page-scroll/right-sidebar-1.component.ts +++ b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-1/page-scroll/right-sidebar-1.component.ts @@ -1,9 +1,17 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; @Component({ selector : 'carded-right-sidebar-1-page-scroll', templateUrl : './right-sidebar-1.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [CdkScrollable, MatSidenavModule, DemoSidebarComponent, MatIconModule, RouterLink, MatButtonModule], }) export class CardedRightSidebar1PageScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/content-scroll/right-sidebar-2.component.html b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/content-scroll/right-sidebar-2.component.html index 2be46f14..3e063d2c 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/content-scroll/right-sidebar-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/content-scroll/right-sidebar-2.component.html @@ -12,13 +12,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -45,7 +45,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/content-scroll/right-sidebar-2.component.ts b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/content-scroll/right-sidebar-2.component.ts index e6fd829e..da81bb7e 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/content-scroll/right-sidebar-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/content-scroll/right-sidebar-2.component.ts @@ -1,11 +1,19 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'carded-right-sidebar-2-content-scroll', templateUrl : './right-sidebar-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatIconModule, RouterLink, MatButtonModule, MatSidenavModule, DemoSidebarComponent, CdkScrollable], }) export class CardedRightSidebar2ContentScrollComponent implements OnInit, OnDestroy { @@ -32,8 +40,8 @@ export class CardedRightSidebar2ContentScrollComponent implements OnInit, OnDest // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/normal-scroll/right-sidebar-2.component.html b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/normal-scroll/right-sidebar-2.component.html index de5492fe..a5f65bbc 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/normal-scroll/right-sidebar-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/normal-scroll/right-sidebar-2.component.html @@ -12,13 +12,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -45,7 +45,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/normal-scroll/right-sidebar-2.component.ts b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/normal-scroll/right-sidebar-2.component.ts index 73907975..3e0cfcfa 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/normal-scroll/right-sidebar-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/normal-scroll/right-sidebar-2.component.ts @@ -1,11 +1,18 @@ import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'carded-right-sidebar-2-normal-scroll', templateUrl : './right-sidebar-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatIconModule, RouterLink, MatButtonModule, MatSidenavModule, DemoSidebarComponent], }) export class CardedRightSidebar2NormalScrollComponent implements OnInit, OnDestroy { @@ -32,8 +39,8 @@ export class CardedRightSidebar2NormalScrollComponent implements OnInit, OnDestr // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/page-scroll/right-sidebar-2.component.html b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/page-scroll/right-sidebar-2.component.html index c038f94c..190adee4 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/page-scroll/right-sidebar-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/page-scroll/right-sidebar-2.component.html @@ -14,13 +14,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -47,7 +47,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/page-scroll/right-sidebar-2.component.ts b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/page-scroll/right-sidebar-2.component.ts index cd8da04a..b2aecf67 100644 --- a/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/page-scroll/right-sidebar-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/carded/right-sidebar-2/page-scroll/right-sidebar-2.component.ts @@ -1,11 +1,19 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'carded-right-sidebar-2-page-scroll', templateUrl : './right-sidebar-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [CdkScrollable, MatIconModule, RouterLink, MatButtonModule, MatSidenavModule, DemoSidebarComponent], }) export class CardedRightSidebar2PageScrollComponent implements OnInit, OnDestroy { @@ -32,8 +40,8 @@ export class CardedRightSidebar2PageScrollComponent implements OnInit, OnDestroy // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/common/demo-placeholder/demo-placeholder.component.ts b/src/app/modules/admin/ui/page-layouts/common/demo-placeholder/demo-placeholder.component.ts index 4dd4f8dd..9164a61b 100644 --- a/src/app/modules/admin/ui/page-layouts/common/demo-placeholder/demo-placeholder.component.ts +++ b/src/app/modules/admin/ui/page-layouts/common/demo-placeholder/demo-placeholder.component.ts @@ -5,7 +5,8 @@ import { Component, ViewEncapsulation } from '@angular/core'; template : `
`, - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, }) export class DemoPlaceholderComponent { diff --git a/src/app/modules/admin/ui/page-layouts/common/demo-placeholder/demo-placeholder.module.ts b/src/app/modules/admin/ui/page-layouts/common/demo-placeholder/demo-placeholder.module.ts deleted file mode 100644 index 42373157..00000000 --- a/src/app/modules/admin/ui/page-layouts/common/demo-placeholder/demo-placeholder.module.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { NgModule } from '@angular/core'; -import { DemoPlaceholderComponent } from 'app/modules/admin/ui/page-layouts/common/demo-placeholder/demo-placeholder.component'; - -@NgModule({ - declarations: [ - DemoPlaceholderComponent - ], - exports : [ - DemoPlaceholderComponent - ] -}) -export class DemoPlaceholderModule -{ -} diff --git a/src/app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component.ts b/src/app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component.ts index b2149237..df8fb254 100644 --- a/src/app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component.ts +++ b/src/app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component.ts @@ -1,4 +1,7 @@ import { Component, ViewEncapsulation } from '@angular/core'; +import { MatIconModule } from '@angular/material/icon'; +import { MatProgressBarModule } from '@angular/material/progress-bar'; +import { FuseVerticalNavigationComponent } from '@fuse/components/navigation'; import { FuseNavigationItem } from '@fuse/components/navigation/navigation.types'; @Component({ @@ -25,7 +28,7 @@ import { FuseNavigationItem } from '@fuse/components/navigation/navigation.types
+ [svgIcon]="'heroicons_solid:circle-stack'">
Storage
@@ -60,9 +63,11 @@ import { FuseNavigationItem } from '@fuse/components/navigation/navigation.types demo-sidebar fuse-vertical-navigation .fuse-vertical-navigation-wrapper { box-shadow: none !important; } - ` + `, ], - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [FuseVerticalNavigationComponent, MatIconModule, MatProgressBarModule], }) export class DemoSidebarComponent { @@ -82,30 +87,30 @@ export class DemoSidebarComponent { title: 'Create task', type : 'basic', - icon : 'heroicons_outline:plus-circle' + icon : 'heroicons_outline:plus-circle', }, { title: 'Create team', type : 'basic', - icon : 'heroicons_outline:user-group' + icon : 'heroicons_outline:user-group', }, { title: 'Create project', type : 'basic', - icon : 'heroicons_outline:briefcase' + icon : 'heroicons_outline:briefcase', }, { title: 'Create user', type : 'basic', - icon : 'heroicons_outline:user-add' + icon : 'heroicons_outline:user-plus', }, { title : 'Assign user or team', subtitle: 'Assign to a task or a project', type : 'basic', - icon : 'heroicons_outline:badge-check' - } - ] + icon : 'heroicons_outline:check-badge', + }, + ], }, { title : 'Tasks', @@ -114,38 +119,38 @@ export class DemoSidebarComponent { title: 'All tasks', type : 'basic', - icon : 'heroicons_outline:clipboard-list', + icon : 'heroicons_outline:clipboard-document-list', badge: { title : '49', - classes: 'px-2 bg-primary text-on-primary rounded-full' - } + classes: 'px-2 bg-primary text-on-primary rounded-full', + }, }, { title: 'Ongoing tasks', type : 'basic', - icon : 'heroicons_outline:clipboard-copy' + icon : 'heroicons_outline:clipboard-document-check', }, { title: 'Completed tasks', type : 'basic', - icon : 'heroicons_outline:clipboard-check' + icon : 'heroicons_outline:clipboard-document-check', }, { title: 'Abandoned tasks', type : 'basic', - icon : 'heroicons_outline:clipboard' + icon : 'heroicons_outline:clipboard', }, { title: 'Assigned to me', type : 'basic', - icon : 'heroicons_outline:user' + icon : 'heroicons_outline:user', }, { title: 'Assigned to my team', type : 'basic', - icon : 'heroicons_outline:users' - } - ] + icon : 'heroicons_outline:users', + }, + ], }, { title : 'Settings', @@ -154,21 +159,21 @@ export class DemoSidebarComponent { title : 'General', type : 'collapsable', - icon : 'heroicons_outline:cog', + icon : 'heroicons_outline:cog-8-tooth', children: [ { title: 'Tasks', - type : 'basic' + type : 'basic', }, { title: 'Users', - type : 'basic' + type : 'basic', }, { title: 'Teams', - type : 'basic' - } - ] + type : 'basic', + }, + ], }, { title : 'Account', @@ -177,23 +182,23 @@ export class DemoSidebarComponent children: [ { title: 'Personal', - type : 'basic' + type : 'basic', }, { title: 'Payment', - type : 'basic' + type : 'basic', }, { title: 'Security', - type : 'basic' - } - ] - } - ] + type : 'basic', + }, + ], + }, + ], }, { - type: 'divider' - } + type: 'divider', + }, ]; } } diff --git a/src/app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.module.ts b/src/app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.module.ts deleted file mode 100644 index 66a457c6..00000000 --- a/src/app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.module.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { MatIconModule } from '@angular/material/icon'; -import { MatProgressBarModule } from '@angular/material/progress-bar'; -import { FuseNavigationModule } from '@fuse/components/navigation/navigation.module'; -import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; - -@NgModule({ - declarations: [ - DemoSidebarComponent - ], - imports : [ - RouterModule.forChild([]), - MatIconModule, - MatProgressBarModule, - FuseNavigationModule - ], - exports : [ - DemoSidebarComponent - ] -}) -export class DemoSidebarModule -{ -} diff --git a/src/app/modules/admin/ui/page-layouts/common/layout-overview/layout-overview.component.ts b/src/app/modules/admin/ui/page-layouts/common/layout-overview/layout-overview.component.ts index 29049c1d..bb9838be 100644 --- a/src/app/modules/admin/ui/page-layouts/common/layout-overview/layout-overview.component.ts +++ b/src/app/modules/admin/ui/page-layouts/common/layout-overview/layout-overview.component.ts @@ -1,5 +1,10 @@ +import { NgClass, NgComponentOutlet, NgFor, NgIf } from '@angular/common'; import { Component, OnInit, ViewEncapsulation } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; +import { FormsModule } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MatButtonToggleModule } from '@angular/material/button-toggle'; +import { MatIconModule } from '@angular/material/icon'; +import { ActivatedRoute, RouterLink } from '@angular/router'; export interface PageLayoutsOverviewData { @@ -35,8 +40,11 @@ export interface PageLayoutsOverviewData [(ngModel)]="overview.selectedOption"> {{option.title}} @@ -93,9 +101,9 @@ export interface PageLayoutsOverviewData [color]="'primary'" [routerLink]="selectedOption.link"> - View + class="icon-size-4" + [svgIcon]="'heroicons_mini:arrow-top-right-on-square'"> + View
@@ -112,9 +120,11 @@ export interface PageLayoutsOverviewData flex-direction: column; flex: 1 1 auto; } - ` + `, ], - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatButtonToggleModule, FormsModule, NgFor, NgClass, NgIf, NgComponentOutlet, MatButtonModule, RouterLink, MatIconModule], }) export class LayoutOverviewComponent implements OnInit { diff --git a/src/app/modules/admin/ui/page-layouts/common/layout-overview/layout-overview.module.ts b/src/app/modules/admin/ui/page-layouts/common/layout-overview/layout-overview.module.ts deleted file mode 100644 index e1c1c6a8..00000000 --- a/src/app/modules/admin/ui/page-layouts/common/layout-overview/layout-overview.module.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatButtonToggleModule } from '@angular/material/button-toggle'; -import { MatIconModule } from '@angular/material/icon'; -import { MatTabsModule } from '@angular/material/tabs'; -import { SharedModule } from 'app/shared/shared.module'; -import { LayoutOverviewComponent } from 'app/modules/admin/ui/page-layouts/common/layout-overview/layout-overview.component'; - -@NgModule({ - declarations: [ - LayoutOverviewComponent - ], - imports : [ - SharedModule, - RouterModule.forChild([]), - MatButtonModule, - MatButtonToggleModule, - MatIconModule, - MatTabsModule - ], - exports : [ - LayoutOverviewComponent - ] -}) -export class LayoutOverviewModule -{ -} diff --git a/src/app/modules/admin/ui/page-layouts/empty/normal-scroll/empty.component.ts b/src/app/modules/admin/ui/page-layouts/empty/normal-scroll/empty.component.ts index 1bfd34be..20df7b37 100644 --- a/src/app/modules/admin/ui/page-layouts/empty/normal-scroll/empty.component.ts +++ b/src/app/modules/admin/ui/page-layouts/empty/normal-scroll/empty.component.ts @@ -3,7 +3,8 @@ import { Component, ViewEncapsulation } from '@angular/core'; @Component({ selector : 'empty-normal-scroll', templateUrl : './empty.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, }) export class EmptyNormalScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/empty/page-scroll/empty.component.ts b/src/app/modules/admin/ui/page-layouts/empty/page-scroll/empty.component.ts index d35289dc..222d780b 100644 --- a/src/app/modules/admin/ui/page-layouts/empty/page-scroll/empty.component.ts +++ b/src/app/modules/admin/ui/page-layouts/empty/page-scroll/empty.component.ts @@ -1,9 +1,12 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, ViewEncapsulation } from '@angular/core'; @Component({ selector : 'empty-page-scroll', templateUrl : './empty.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [CdkScrollable], }) export class EmptyPageScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/overview/overview.component.html b/src/app/modules/admin/ui/page-layouts/overview/overview.component.html index 64f314e0..fdf78d66 100644 --- a/src/app/modules/admin/ui/page-layouts/overview/overview.component.html +++ b/src/app/modules/admin/ui/page-layouts/overview/overview.component.html @@ -9,7 +9,7 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Page Layouts
diff --git a/src/app/modules/admin/ui/page-layouts/overview/overview.component.ts b/src/app/modules/admin/ui/page-layouts/overview/overview.component.ts index 3565970b..6203b830 100644 --- a/src/app/modules/admin/ui/page-layouts/overview/overview.component.ts +++ b/src/app/modules/admin/ui/page-layouts/overview/overview.component.ts @@ -1,9 +1,12 @@ import { Component, ViewEncapsulation } from '@angular/core'; +import { MatIconModule } from '@angular/material/icon'; @Component({ selector : 'overview', templateUrl : './overview.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatIconModule], }) export class OverviewComponent { diff --git a/src/app/modules/admin/ui/page-layouts/page-layouts.module.ts b/src/app/modules/admin/ui/page-layouts/page-layouts.routes.ts similarity index 82% rename from src/app/modules/admin/ui/page-layouts/page-layouts.module.ts rename to src/app/modules/admin/ui/page-layouts/page-layouts.routes.ts index ca53d351..770aac20 100644 --- a/src/app/modules/admin/ui/page-layouts/page-layouts.module.ts +++ b/src/app/modules/admin/ui/page-layouts/page-layouts.routes.ts @@ -1,74 +1,64 @@ -import { NgModule } from '@angular/core'; -import { Route, RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatIconModule } from '@angular/material/icon'; -import { MatMenuModule } from '@angular/material/menu'; -import { MatSidenavModule } from '@angular/material/sidenav'; -import { MatTabsModule } from '@angular/material/tabs'; -import { SharedModule } from 'app/shared/shared.module'; -import { DemoPlaceholderModule } from 'app/modules/admin/ui/page-layouts/common/demo-placeholder/demo-placeholder.module'; -import { DemoSidebarModule } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.module'; -import { LayoutOverviewModule } from 'app/modules/admin/ui/page-layouts/common/layout-overview/layout-overview.module'; -import { LayoutOverviewComponent } from 'app/modules/admin/ui/page-layouts/common/layout-overview/layout-overview.component'; - -import { OverviewComponent } from 'app/modules/admin/ui/page-layouts/overview/overview.component'; - -import { EmptyNormalScrollComponent } from 'app/modules/admin/ui/page-layouts/empty/normal-scroll/empty.component'; -import { EmptyPageScrollComponent } from 'app/modules/admin/ui/page-layouts/empty/page-scroll/empty.component'; +import { Routes } from '@angular/router'; +import { CardedFullwidthContentScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/fullwidth/content-scroll/fullwidth.component'; +import { CardedFullwidthNormalScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/fullwidth/normal-scroll/fullwidth.component'; import { CardedFullwidthPageScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/fullwidth/page-scroll/fullwidth.component'; -import { CardedFullwidthNormalScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/fullwidth/normal-scroll/fullwidth.component'; -import { CardedFullwidthContentScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/fullwidth/content-scroll/fullwidth.component'; +import { CardedLeftSidebar1ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/left-sidebar-1/content-scroll/left-sidebar-1.component'; import { CardedLeftSidebar1NormalScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/left-sidebar-1/normal-scroll/left-sidebar-1.component'; import { CardedLeftSidebar1PageScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/left-sidebar-1/page-scroll/left-sidebar-1.component'; -import { CardedLeftSidebar1ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/left-sidebar-1/content-scroll/left-sidebar-1.component'; import { CardedLeftSidebar2ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/left-sidebar-2/content-scroll/left-sidebar-2.component'; import { CardedLeftSidebar2NormalScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/left-sidebar-2/normal-scroll/left-sidebar-2.component'; import { CardedLeftSidebar2PageScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/left-sidebar-2/page-scroll/left-sidebar-2.component'; - -import { CardedRightSidebar2PageScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/right-sidebar-2/page-scroll/right-sidebar-2.component'; +import { CardedRightSidebar1ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/right-sidebar-1/content-scroll/right-sidebar-1.component'; import { CardedRightSidebar1NormalScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/right-sidebar-1/normal-scroll/right-sidebar-1.component'; -import { CardedRightSidebar2ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/right-sidebar-2/content-scroll/right-sidebar-2.component'; import { CardedRightSidebar1PageScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/right-sidebar-1/page-scroll/right-sidebar-1.component'; -import { CardedRightSidebar1ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/right-sidebar-1/content-scroll/right-sidebar-1.component'; +import { CardedRightSidebar2ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/right-sidebar-2/content-scroll/right-sidebar-2.component'; import { CardedRightSidebar2NormalScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/right-sidebar-2/normal-scroll/right-sidebar-2.component'; +import { CardedRightSidebar2PageScrollComponent } from 'app/modules/admin/ui/page-layouts/carded/right-sidebar-2/page-scroll/right-sidebar-2.component'; +import { LayoutOverviewComponent } from 'app/modules/admin/ui/page-layouts/common/layout-overview/layout-overview.component'; + +import { EmptyNormalScrollComponent } from 'app/modules/admin/ui/page-layouts/empty/normal-scroll/empty.component'; +import { EmptyPageScrollComponent } from 'app/modules/admin/ui/page-layouts/empty/page-scroll/empty.component'; + +import { OverviewComponent } from 'app/modules/admin/ui/page-layouts/overview/overview.component'; +import { SimpleFullwidth1ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/fullwidth-1/content-scroll/fullwidth-1.component'; + import { SimpleFullwidth1NormalScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/fullwidth-1/normal-scroll/fullwidth-1.component'; import { SimpleFullwidth1PageScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/fullwidth-1/page-scroll/fullwidth-1.component'; -import { SimpleFullwidth1ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/fullwidth-1/content-scroll/fullwidth-1.component'; +import { SimpleFullwidth2ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/fullwidth-2/content-scroll/fullwidth-2.component'; import { SimpleFullwidth2NormalScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/fullwidth-2/normal-scroll/fullwidth-2.component'; import { SimpleFullwidth2PageScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/fullwidth-2/page-scroll/fullwidth-2.component'; -import { SimpleFullwidth2ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/fullwidth-2/content-scroll/fullwidth-2.component'; +import { SimpleLeftSidebar1ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/left-sidebar-1/content-scroll/left-sidebar-1.component'; import { SimpleLeftSidebar1NormalScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/left-sidebar-1/normal-scroll/left-sidebar-1.component'; import { SimpleLeftSidebar1PageScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/left-sidebar-1/page-scroll/left-sidebar-1.component'; -import { SimpleLeftSidebar1ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/left-sidebar-1/content-scroll/left-sidebar-1.component'; - -import { SimpleLeftSidebar2NormalScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/left-sidebar-2/normal-scroll/left-sidebar-2.component'; -import { SimpleLeftSidebar2PageScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/left-sidebar-2/page-scroll/left-sidebar-2.component'; import { SimpleLeftSidebar2ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/left-sidebar-2/content-scroll/left-sidebar-2.component'; import { SimpleLeftSidebar2InnerScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/left-sidebar-2/inner-scroll/left-sidebar-2.component'; +import { SimpleLeftSidebar2NormalScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/left-sidebar-2/normal-scroll/left-sidebar-2.component'; +import { SimpleLeftSidebar2PageScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/left-sidebar-2/page-scroll/left-sidebar-2.component'; +import { SimpleLeftSidebar3ScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/left-sidebar-3/content-scroll/left-sidebar-3.component'; + import { SimpleLeftSidebar3NormalScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/left-sidebar-3/normal-scroll/left-sidebar-3.component'; import { SimpleLeftSidebar3PageScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/left-sidebar-3/page-scroll/left-sidebar-3.component'; -import { SimpleLeftSidebar3ScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/left-sidebar-3/content-scroll/left-sidebar-3.component'; +import { SimpleRightSidebar1ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/right-sidebar-1/content-scroll/right-sidebar-1.component'; import { SimpleRightSidebar1NormalScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/right-sidebar-1/normal-scroll/right-sidebar-1.component'; import { SimpleRightSidebar1PageScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/right-sidebar-1/page-scroll/right-sidebar-1.component'; -import { SimpleRightSidebar1ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/right-sidebar-1/content-scroll/right-sidebar-1.component'; - -import { SimpleRightSidebar2NormalScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/right-sidebar-2/normal-scroll/right-sidebar-2.component'; -import { SimpleRightSidebar2PageScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/right-sidebar-2/page-scroll/right-sidebar-2.component'; import { SimpleRightSidebar2ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/right-sidebar-2/content-scroll/right-sidebar-2.component'; import { SimpleRightSidebar2InnerScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/right-sidebar-2/inner-scroll/right-sidebar-2.component'; +import { SimpleRightSidebar2NormalScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/right-sidebar-2/normal-scroll/right-sidebar-2.component'; +import { SimpleRightSidebar2PageScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/right-sidebar-2/page-scroll/right-sidebar-2.component'; +import { SimpleRightSidebar3ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/right-sidebar-3/content-scroll/right-sidebar-3.component'; + import { SimpleRightSidebar3NormalScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/right-sidebar-3/normal-scroll/right-sidebar-3.component'; import { SimpleRightSidebar3PageScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/right-sidebar-3/page-scroll/right-sidebar-3.component'; -import { SimpleRightSidebar3ContentScrollComponent } from 'app/modules/admin/ui/page-layouts/simple/right-sidebar-3/content-scroll/right-sidebar-3.component'; export const overviews = { empty : { @@ -77,26 +67,26 @@ export const overviews = { availableOptions: [ { value: 'normalScroll', - title: 'Normal Scroll' + title: 'Normal Scroll', }, { value: 'pageScroll', - title: 'Page Scroll' - } + title: 'Page Scroll', + }, ], selectedOption : 'normalScroll', options : { normalScroll: { description: 'No scrolling area manipulations, entire viewport scrolls (body scroll).', link : '/ui/page-layouts/empty/normal-scroll', - component : EmptyNormalScrollComponent + component : EmptyNormalScrollComponent, }, pageScroll : { description: 'Only the page area scrolls making the main toolbar and footer to stick to the top and bottom of the viewport respectively.', link : '/ui/page-layouts/empty/page-scroll', - component : EmptyPageScrollComponent - } - } + component : EmptyPageScrollComponent, + }, + }, }, carded: { fullwidth : { @@ -105,35 +95,35 @@ export const overviews = { availableOptions: [ { value: 'normalScroll', - title: 'Normal Scroll' + title: 'Normal Scroll', }, { value: 'pageScroll', - title: 'Page Scroll' + title: 'Page Scroll', }, { value: 'contentScroll', - title: 'Content Scroll' - } + title: 'Content Scroll', + }, ], selectedOption : 'normalScroll', options : { normalScroll : { description: 'No scrolling area manipulations, entire viewport scrolls (body scroll).', link : '/ui/page-layouts/carded/fullwidth/normal-scroll', - component : CardedFullwidthNormalScrollComponent + component : CardedFullwidthNormalScrollComponent, }, pageScroll : { description: 'Only the page area scrolls making the main toolbar and footer to stick to the top and bottom of the viewport respectively.', link : '/ui/page-layouts/carded/fullwidth/page-scroll', - component : CardedFullwidthPageScrollComponent + component : CardedFullwidthPageScrollComponent, }, contentScroll: { description: 'Only the content area of the page scrolls making everything else to stick into their positions.', link : '/ui/page-layouts/carded/fullwidth/content-scroll', - component : CardedFullwidthContentScrollComponent - } - } + component : CardedFullwidthContentScrollComponent, + }, + }, }, leftSidebar1 : { title : 'Carded Left Sidebar #1', @@ -141,35 +131,35 @@ export const overviews = { availableOptions: [ { value: 'normalScroll', - title: 'Normal Scroll' + title: 'Normal Scroll', }, { value: 'pageScroll', - title: 'Page Scroll' + title: 'Page Scroll', }, { value: 'contentScroll', - title: 'Content Scroll' - } + title: 'Content Scroll', + }, ], selectedOption : 'normalScroll', options : { normalScroll : { description: 'No scrolling area manipulations, entire viewport scrolls (body scroll).', link : '/ui/page-layouts/carded/left-sidebar-1/normal-scroll', - component : CardedLeftSidebar1NormalScrollComponent + component : CardedLeftSidebar1NormalScrollComponent, }, pageScroll : { description: 'Only the page area scrolls making the main toolbar and footer to stick to the top and bottom of the viewport respectively.', link : '/ui/page-layouts/carded/left-sidebar-1/page-scroll', - component : CardedLeftSidebar1PageScrollComponent + component : CardedLeftSidebar1PageScrollComponent, }, contentScroll: { description: 'Only the content area of the page scrolls making everything else to stick into their positions.', link : '/ui/page-layouts/carded/left-sidebar-1/content-scroll', - component : CardedLeftSidebar1ContentScrollComponent - } - } + component : CardedLeftSidebar1ContentScrollComponent, + }, + }, }, leftSidebar2 : { title : 'Carded Left Sidebar #2', @@ -177,35 +167,35 @@ export const overviews = { availableOptions: [ { value: 'normalScroll', - title: 'Normal Scroll' + title: 'Normal Scroll', }, { value: 'pageScroll', - title: 'Page Scroll' + title: 'Page Scroll', }, { value: 'contentScroll', - title: 'Content Scroll' - } + title: 'Content Scroll', + }, ], selectedOption : 'normalScroll', options : { normalScroll : { description: 'No scrolling area manipulations, entire viewport scrolls (body scroll).', link : '/ui/page-layouts/carded/left-sidebar-2/normal-scroll', - component : CardedLeftSidebar2NormalScrollComponent + component : CardedLeftSidebar2NormalScrollComponent, }, pageScroll : { description: 'Only the page area scrolls making the main toolbar and footer to stick to the top and bottom of the viewport respectively.', link : '/ui/page-layouts/carded/left-sidebar-2/page-scroll', - component : CardedLeftSidebar2PageScrollComponent + component : CardedLeftSidebar2PageScrollComponent, }, contentScroll: { description: 'Only the content area of the page scrolls making everything else to stick into their positions.', link : '/ui/page-layouts/carded/left-sidebar-2/content-scroll', - component : CardedLeftSidebar2ContentScrollComponent - } - } + component : CardedLeftSidebar2ContentScrollComponent, + }, + }, }, rightSidebar1: { title : 'Carded Right Sidebar #1', @@ -213,35 +203,35 @@ export const overviews = { availableOptions: [ { value: 'normalScroll', - title: 'Normal Scroll' + title: 'Normal Scroll', }, { value: 'pageScroll', - title: 'Page Scroll' + title: 'Page Scroll', }, { value: 'contentScroll', - title: 'Content Scroll' - } + title: 'Content Scroll', + }, ], selectedOption : 'normalScroll', options : { normalScroll : { description: 'No scrolling area manipulations, entire viewport scrolls (body scroll).', link : '/ui/page-layouts/carded/right-sidebar-1/normal-scroll', - component : CardedRightSidebar1NormalScrollComponent + component : CardedRightSidebar1NormalScrollComponent, }, pageScroll : { description: 'Only the page area scrolls making the main toolbar and footer to stick to the top and bottom of the viewport respectively.', link : '/ui/page-layouts/carded/right-sidebar-1/page-scroll', - component : CardedRightSidebar1PageScrollComponent + component : CardedRightSidebar1PageScrollComponent, }, contentScroll: { description: 'Only the content area of the page scrolls making everything else to stick into their positions.', link : '/ui/page-layouts/carded/right-sidebar-1/content-scroll', - component : CardedRightSidebar1ContentScrollComponent - } - } + component : CardedRightSidebar1ContentScrollComponent, + }, + }, }, rightSidebar2: { title : 'Carded Right Sidebar #2', @@ -249,36 +239,36 @@ export const overviews = { availableOptions: [ { value: 'normalScroll', - title: 'Normal Scroll' + title: 'Normal Scroll', }, { value: 'pageScroll', - title: 'Page Scroll' + title: 'Page Scroll', }, { value: 'contentScroll', - title: 'Content Scroll' - } + title: 'Content Scroll', + }, ], selectedOption : 'normalScroll', options : { normalScroll : { description: 'No scrolling area manipulations, entire viewport scrolls (body scroll).', link : '/ui/page-layouts/carded/right-sidebar-2/normal-scroll', - component : CardedRightSidebar2NormalScrollComponent + component : CardedRightSidebar2NormalScrollComponent, }, pageScroll : { description: 'Only the page area scrolls making the main toolbar and footer to stick to the top and bottom of the viewport respectively.', link : '/ui/page-layouts/carded/right-sidebar-2/page-scroll', - component : CardedRightSidebar2PageScrollComponent + component : CardedRightSidebar2PageScrollComponent, }, contentScroll: { description: 'Only the content area of the page scrolls making everything else to stick into their positions.', link : '/ui/page-layouts/carded/right-sidebar-2/content-scroll', - component : CardedRightSidebar2ContentScrollComponent - } - } - } + component : CardedRightSidebar2ContentScrollComponent, + }, + }, + }, }, simple: { fullwidth1 : { @@ -287,35 +277,35 @@ export const overviews = { availableOptions: [ { value: 'normalScroll', - title: 'Normal Scroll' + title: 'Normal Scroll', }, { value: 'pageScroll', - title: 'Page Scroll' + title: 'Page Scroll', }, { value: 'contentScroll', - title: 'Content Scroll' - } + title: 'Content Scroll', + }, ], selectedOption : 'normalScroll', options : { normalScroll : { description: 'No scrolling area manipulations, entire viewport scrolls (body scroll).', link : '/ui/page-layouts/simple/fullwidth-1/normal-scroll', - component : SimpleFullwidth1NormalScrollComponent + component : SimpleFullwidth1NormalScrollComponent, }, pageScroll : { description: 'Only the page area scrolls making the main toolbar and footer to stick to the top and bottom of the viewport respectively.', link : '/ui/page-layouts/simple/fullwidth-1/page-scroll', - component : SimpleFullwidth1PageScrollComponent + component : SimpleFullwidth1PageScrollComponent, }, contentScroll: { description: 'Only the content area of the page scrolls making everything else to stick into their positions.', link : '/ui/page-layouts/simple/fullwidth-1/content-scroll', - component : SimpleFullwidth1ContentScrollComponent - } - } + component : SimpleFullwidth1ContentScrollComponent, + }, + }, }, fullwidth2 : { title : 'Fullwidth #2', @@ -323,35 +313,35 @@ export const overviews = { availableOptions: [ { value: 'normalScroll', - title: 'Normal Scroll' + title: 'Normal Scroll', }, { value: 'pageScroll', - title: 'Page Scroll' + title: 'Page Scroll', }, { value: 'contentScroll', - title: 'Content Scroll' - } + title: 'Content Scroll', + }, ], selectedOption : 'normalScroll', options : { normalScroll : { description: 'No scrolling area manipulations, entire viewport scrolls (body scroll).', link : '/ui/page-layouts/simple/fullwidth-2/normal-scroll', - component : SimpleFullwidth2NormalScrollComponent + component : SimpleFullwidth2NormalScrollComponent, }, pageScroll : { description: 'Only the page area scrolls making the main toolbar and footer to stick to the top and bottom of the viewport respectively.', link : '/ui/page-layouts/simple/fullwidth-2/page-scroll', - component : SimpleFullwidth2PageScrollComponent + component : SimpleFullwidth2PageScrollComponent, }, contentScroll: { description: 'Only the content area of the page scrolls making everything else to stick into their positions.', link : '/ui/page-layouts/simple/fullwidth-2/content-scroll', - component : SimpleFullwidth2ContentScrollComponent - } - } + component : SimpleFullwidth2ContentScrollComponent, + }, + }, }, leftSidebar1 : { title : 'Left Sidebar #1', @@ -359,35 +349,35 @@ export const overviews = { availableOptions: [ { value: 'normalScroll', - title: 'Normal Scroll' + title: 'Normal Scroll', }, { value: 'pageScroll', - title: 'Page Scroll' + title: 'Page Scroll', }, { value: 'contentScroll', - title: 'Content Scroll' - } + title: 'Content Scroll', + }, ], selectedOption : 'normalScroll', options : { normalScroll : { description: 'No scrolling area manipulations, entire viewport scrolls (body scroll).', link : '/ui/page-layouts/simple/left-sidebar-1/normal-scroll', - component : SimpleLeftSidebar1NormalScrollComponent + component : SimpleLeftSidebar1NormalScrollComponent, }, pageScroll : { description: 'Only the page area scrolls making the main toolbar and footer to stick to the top and bottom of the viewport respectively.', link : '/ui/page-layouts/simple/left-sidebar-1/page-scroll', - component : SimpleLeftSidebar1PageScrollComponent + component : SimpleLeftSidebar1PageScrollComponent, }, contentScroll: { description: 'Only the content area of the page scrolls making everything else to stick into their positions.', link : '/ui/page-layouts/simple/left-sidebar-1/content-scroll', - component : SimpleLeftSidebar1ContentScrollComponent - } - } + component : SimpleLeftSidebar1ContentScrollComponent, + }, + }, }, leftSidebar2 : { title : 'Left Sidebar #2', @@ -395,44 +385,44 @@ export const overviews = { availableOptions: [ { value: 'normalScroll', - title: 'Normal Scroll' + title: 'Normal Scroll', }, { value: 'pageScroll', - title: 'Page Scroll' + title: 'Page Scroll', }, { value: 'contentScroll', - title: 'Content Scroll' + title: 'Content Scroll', }, { value: 'innerScroll', - title: 'Inner Scroll' - } + title: 'Inner Scroll', + }, ], selectedOption : 'normalScroll', options : { normalScroll : { description: 'No scrolling area manipulations, entire viewport scrolls (body scroll).', link : '/ui/page-layouts/simple/left-sidebar-2/normal-scroll', - component : SimpleLeftSidebar2NormalScrollComponent + component : SimpleLeftSidebar2NormalScrollComponent, }, pageScroll : { description: 'Only the page area scrolls making the main toolbar and footer to stick to the top and bottom of the viewport respectively.', link : '/ui/page-layouts/simple/left-sidebar-2/page-scroll', - component : SimpleLeftSidebar2PageScrollComponent + component : SimpleLeftSidebar2PageScrollComponent, }, contentScroll: { description: 'Only the content area of the page scrolls making everything else to stick into their positions.', link : '/ui/page-layouts/simple/left-sidebar-2/content-scroll', - component : SimpleLeftSidebar2ContentScrollComponent + component : SimpleLeftSidebar2ContentScrollComponent, }, innerScroll : { description: 'Only the inner content area of the page scrolls making sidebar and everything else to stick into their positions.', link : '/ui/page-layouts/simple/left-sidebar-2/inner-scroll', - component : SimpleLeftSidebar2InnerScrollComponent - } - } + component : SimpleLeftSidebar2InnerScrollComponent, + }, + }, }, leftSidebar3 : { title : 'Left Sidebar #3', @@ -440,35 +430,35 @@ export const overviews = { availableOptions: [ { value: 'normalScroll', - title: 'Normal Scroll' + title: 'Normal Scroll', }, { value: 'pageScroll', - title: 'Page Scroll' + title: 'Page Scroll', }, { value: 'contentScroll', - title: 'Content Scroll' - } + title: 'Content Scroll', + }, ], selectedOption : 'normalScroll', options : { normalScroll : { description: 'No scrolling area manipulations, entire viewport scrolls (body scroll).', link : '/ui/page-layouts/simple/left-sidebar-3/normal-scroll', - component : SimpleLeftSidebar3NormalScrollComponent + component : SimpleLeftSidebar3NormalScrollComponent, }, pageScroll : { description: 'Only the page area scrolls making the main toolbar and footer to stick to the top and bottom of the viewport respectively.', link : '/ui/page-layouts/simple/left-sidebar-3/page-scroll', - component : SimpleLeftSidebar3PageScrollComponent + component : SimpleLeftSidebar3PageScrollComponent, }, contentScroll: { description: 'Only the content area of the page scrolls making everything else to stick into their positions.', link : '/ui/page-layouts/simple/left-sidebar-3/content-scroll', - component : SimpleLeftSidebar3ScrollComponent - } - } + component : SimpleLeftSidebar3ScrollComponent, + }, + }, }, rightSidebar1: { title : 'Right Sidebar #1', @@ -476,35 +466,35 @@ export const overviews = { availableOptions: [ { value: 'normalScroll', - title: 'Normal Scroll' + title: 'Normal Scroll', }, { value: 'pageScroll', - title: 'Page Scroll' + title: 'Page Scroll', }, { value: 'contentScroll', - title: 'Content Scroll' - } + title: 'Content Scroll', + }, ], selectedOption : 'normalScroll', options : { normalScroll : { description: 'No scrolling area manipulations, entire viewport scrolls (body scroll).', link : '/ui/page-layouts/simple/right-sidebar-1/normal-scroll', - component : SimpleRightSidebar1NormalScrollComponent + component : SimpleRightSidebar1NormalScrollComponent, }, pageScroll : { description: 'Only the page area scrolls making the main toolbar and footer to stick to the top and bottom of the viewport respectively.', link : '/ui/page-layouts/simple/right-sidebar-1/page-scroll', - component : SimpleRightSidebar1PageScrollComponent + component : SimpleRightSidebar1PageScrollComponent, }, contentScroll: { description: 'Only the content area of the page scrolls making everything else to stick into their positions.', link : '/ui/page-layouts/simple/right-sidebar-1/content-scroll', - component : SimpleRightSidebar1ContentScrollComponent - } - } + component : SimpleRightSidebar1ContentScrollComponent, + }, + }, }, rightSidebar2: { title : 'Right Sidebar #2', @@ -512,44 +502,44 @@ export const overviews = { availableOptions: [ { value: 'normalScroll', - title: 'Normal Scroll' + title: 'Normal Scroll', }, { value: 'pageScroll', - title: 'Page Scroll' + title: 'Page Scroll', }, { value: 'contentScroll', - title: 'Content Scroll' + title: 'Content Scroll', }, { value: 'innerScroll', - title: 'Inner Scroll' - } + title: 'Inner Scroll', + }, ], selectedOption : 'normalScroll', options : { normalScroll : { description: 'No scrolling area manipulations, entire viewport scrolls (body scroll).', link : '/ui/page-layouts/simple/right-sidebar-2/normal-scroll', - component : SimpleRightSidebar2NormalScrollComponent + component : SimpleRightSidebar2NormalScrollComponent, }, pageScroll : { description: 'Only the page area scrolls making the main toolbar and footer to stick to the top and bottom of the viewport respectively.', link : '/ui/page-layouts/simple/right-sidebar-2/page-scroll', - component : SimpleRightSidebar2PageScrollComponent + component : SimpleRightSidebar2PageScrollComponent, }, contentScroll: { description: 'Only the content area of the page scrolls making everything else to stick into their positions.', link : '/ui/page-layouts/simple/right-sidebar-2/content-scroll', - component : SimpleRightSidebar2ContentScrollComponent + component : SimpleRightSidebar2ContentScrollComponent, }, innerScroll : { description: 'Only the inner content area of the page scrolls making sidebar and everything else to stick into their positions.', link : '/ui/page-layouts/simple/right-sidebar-2/inner-scroll', - component : SimpleRightSidebar2InnerScrollComponent - } - } + component : SimpleRightSidebar2InnerScrollComponent, + }, + }, }, rightSidebar3: { title : 'Right Sidebar #3', @@ -557,44 +547,44 @@ export const overviews = { availableOptions: [ { value: 'normalScroll', - title: 'Normal Scroll' + title: 'Normal Scroll', }, { value: 'pageScroll', - title: 'Page Scroll' + title: 'Page Scroll', }, { value: 'contentScroll', - title: 'Content Scroll' - } + title: 'Content Scroll', + }, ], selectedOption : 'normalScroll', options : { normalScroll : { description: 'No scrolling area manipulations, entire viewport scrolls (body scroll).', link : '/ui/page-layouts/simple/right-sidebar-3/normal-scroll', - component : SimpleRightSidebar3NormalScrollComponent + component : SimpleRightSidebar3NormalScrollComponent, }, pageScroll : { description: 'Only the page area scrolls making the main toolbar and footer to stick to the top and bottom of the viewport respectively.', link : '/ui/page-layouts/simple/right-sidebar-3/page-scroll', - component : SimpleRightSidebar3PageScrollComponent + component : SimpleRightSidebar3PageScrollComponent, }, contentScroll: { description: 'Only the content area of the page scrolls making everything else to stick into their positions.', link : '/ui/page-layouts/simple/right-sidebar-3/content-scroll', - component : SimpleRightSidebar3ContentScrollComponent - } - } - } - } + component : SimpleRightSidebar3ContentScrollComponent, + }, + }, + }, + }, }; -export const routes: Route[] = [ +export default [ // Overview { path : 'overview', - component: OverviewComponent + component: OverviewComponent, }, // Empty @@ -604,24 +594,24 @@ export const routes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'overview' + redirectTo: 'overview', }, { path : 'overview', component: LayoutOverviewComponent, data : { - overview: overviews.empty - } + overview: overviews.empty, + }, }, { path : 'normal-scroll', - component: EmptyNormalScrollComponent + component: EmptyNormalScrollComponent, }, { path : 'page-scroll', - component: EmptyPageScrollComponent - } - ] + component: EmptyPageScrollComponent, + }, + ], }, // Carded @@ -634,28 +624,28 @@ export const routes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'overview' + redirectTo: 'overview', }, { path : 'overview', component: LayoutOverviewComponent, data : { - overview: overviews.carded.fullwidth - } + overview: overviews.carded.fullwidth, + }, }, { path : 'normal-scroll', - component: CardedFullwidthNormalScrollComponent + component: CardedFullwidthNormalScrollComponent, }, { path : 'page-scroll', - component: CardedFullwidthPageScrollComponent + component: CardedFullwidthPageScrollComponent, }, { path : 'content-scroll', - component: CardedFullwidthContentScrollComponent - } - ] + component: CardedFullwidthContentScrollComponent, + }, + ], }, { path : 'left-sidebar-1', @@ -663,28 +653,28 @@ export const routes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'overview' + redirectTo: 'overview', }, { path : 'overview', component: LayoutOverviewComponent, data : { - overview: overviews.carded.leftSidebar1 - } + overview: overviews.carded.leftSidebar1, + }, }, { path : 'normal-scroll', - component: CardedLeftSidebar1NormalScrollComponent + component: CardedLeftSidebar1NormalScrollComponent, }, { path : 'page-scroll', - component: CardedLeftSidebar1PageScrollComponent + component: CardedLeftSidebar1PageScrollComponent, }, { path : 'content-scroll', - component: CardedLeftSidebar1ContentScrollComponent - } - ] + component: CardedLeftSidebar1ContentScrollComponent, + }, + ], }, { path : 'left-sidebar-2', @@ -692,28 +682,28 @@ export const routes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'overview' + redirectTo: 'overview', }, { path : 'overview', component: LayoutOverviewComponent, data : { - overview: overviews.carded.leftSidebar2 - } + overview: overviews.carded.leftSidebar2, + }, }, { path : 'normal-scroll', - component: CardedLeftSidebar2NormalScrollComponent + component: CardedLeftSidebar2NormalScrollComponent, }, { path : 'page-scroll', - component: CardedLeftSidebar2PageScrollComponent + component: CardedLeftSidebar2PageScrollComponent, }, { path : 'content-scroll', - component: CardedLeftSidebar2ContentScrollComponent - } - ] + component: CardedLeftSidebar2ContentScrollComponent, + }, + ], }, { path : 'right-sidebar-1', @@ -721,28 +711,28 @@ export const routes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'overview' + redirectTo: 'overview', }, { path : 'overview', component: LayoutOverviewComponent, data : { - overview: overviews.carded.rightSidebar1 - } + overview: overviews.carded.rightSidebar1, + }, }, { path : 'normal-scroll', - component: CardedRightSidebar1NormalScrollComponent + component: CardedRightSidebar1NormalScrollComponent, }, { path : 'page-scroll', - component: CardedRightSidebar1PageScrollComponent + component: CardedRightSidebar1PageScrollComponent, }, { path : 'content-scroll', - component: CardedRightSidebar1ContentScrollComponent - } - ] + component: CardedRightSidebar1ContentScrollComponent, + }, + ], }, { path : 'right-sidebar-2', @@ -750,30 +740,30 @@ export const routes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'overview' + redirectTo: 'overview', }, { path : 'overview', component: LayoutOverviewComponent, data : { - overview: overviews.carded.rightSidebar2 - } + overview: overviews.carded.rightSidebar2, + }, }, { path : 'normal-scroll', - component: CardedRightSidebar2NormalScrollComponent + component: CardedRightSidebar2NormalScrollComponent, }, { path : 'page-scroll', - component: CardedRightSidebar2PageScrollComponent + component: CardedRightSidebar2PageScrollComponent, }, { path : 'content-scroll', - component: CardedRightSidebar2ContentScrollComponent - } - ] - } - ] + component: CardedRightSidebar2ContentScrollComponent, + }, + ], + }, + ], }, // Simple @@ -786,28 +776,28 @@ export const routes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'overview' + redirectTo: 'overview', }, { path : 'overview', component: LayoutOverviewComponent, data : { - overview: overviews.simple.fullwidth1 - } + overview: overviews.simple.fullwidth1, + }, }, { path : 'normal-scroll', - component: SimpleFullwidth1NormalScrollComponent + component: SimpleFullwidth1NormalScrollComponent, }, { path : 'page-scroll', - component: SimpleFullwidth1PageScrollComponent + component: SimpleFullwidth1PageScrollComponent, }, { path : 'content-scroll', - component: SimpleFullwidth1ContentScrollComponent - } - ] + component: SimpleFullwidth1ContentScrollComponent, + }, + ], }, { path : 'fullwidth-2', @@ -815,28 +805,28 @@ export const routes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'overview' + redirectTo: 'overview', }, { path : 'overview', component: LayoutOverviewComponent, data : { - overview: overviews.simple.fullwidth2 - } + overview: overviews.simple.fullwidth2, + }, }, { path : 'normal-scroll', - component: SimpleFullwidth2NormalScrollComponent + component: SimpleFullwidth2NormalScrollComponent, }, { path : 'page-scroll', - component: SimpleFullwidth2PageScrollComponent + component: SimpleFullwidth2PageScrollComponent, }, { path : 'content-scroll', - component: SimpleFullwidth2ContentScrollComponent - } - ] + component: SimpleFullwidth2ContentScrollComponent, + }, + ], }, { path : 'left-sidebar-1', @@ -844,28 +834,28 @@ export const routes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'overview' + redirectTo: 'overview', }, { path : 'overview', component: LayoutOverviewComponent, data : { - overview: overviews.simple.leftSidebar1 - } + overview: overviews.simple.leftSidebar1, + }, }, { path : 'normal-scroll', - component: SimpleLeftSidebar1NormalScrollComponent + component: SimpleLeftSidebar1NormalScrollComponent, }, { path : 'page-scroll', - component: SimpleLeftSidebar1PageScrollComponent + component: SimpleLeftSidebar1PageScrollComponent, }, { path : 'content-scroll', - component: SimpleLeftSidebar1ContentScrollComponent - } - ] + component: SimpleLeftSidebar1ContentScrollComponent, + }, + ], }, { path : 'left-sidebar-2', @@ -873,32 +863,32 @@ export const routes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'overview' + redirectTo: 'overview', }, { path : 'overview', component: LayoutOverviewComponent, data : { - overview: overviews.simple.leftSidebar2 - } + overview: overviews.simple.leftSidebar2, + }, }, { path : 'normal-scroll', - component: SimpleLeftSidebar2NormalScrollComponent + component: SimpleLeftSidebar2NormalScrollComponent, }, { path : 'page-scroll', - component: SimpleLeftSidebar2PageScrollComponent + component: SimpleLeftSidebar2PageScrollComponent, }, { path : 'content-scroll', - component: SimpleLeftSidebar2ContentScrollComponent + component: SimpleLeftSidebar2ContentScrollComponent, }, { path : 'inner-scroll', - component: SimpleLeftSidebar2InnerScrollComponent - } - ] + component: SimpleLeftSidebar2InnerScrollComponent, + }, + ], }, { path : 'left-sidebar-3', @@ -906,28 +896,28 @@ export const routes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'overview' + redirectTo: 'overview', }, { path : 'overview', component: LayoutOverviewComponent, data : { - overview: overviews.simple.leftSidebar3 - } + overview: overviews.simple.leftSidebar3, + }, }, { path : 'normal-scroll', - component: SimpleLeftSidebar3NormalScrollComponent + component: SimpleLeftSidebar3NormalScrollComponent, }, { path : 'page-scroll', - component: SimpleLeftSidebar3PageScrollComponent + component: SimpleLeftSidebar3PageScrollComponent, }, { path : 'content-scroll', - component: SimpleLeftSidebar3ScrollComponent - } - ] + component: SimpleLeftSidebar3ScrollComponent, + }, + ], }, { path : 'right-sidebar-1', @@ -935,28 +925,28 @@ export const routes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'overview' + redirectTo: 'overview', }, { path : 'overview', component: LayoutOverviewComponent, data : { - overview: overviews.simple.rightSidebar1 - } + overview: overviews.simple.rightSidebar1, + }, }, { path : 'normal-scroll', - component: SimpleRightSidebar1NormalScrollComponent + component: SimpleRightSidebar1NormalScrollComponent, }, { path : 'page-scroll', - component: SimpleRightSidebar1PageScrollComponent + component: SimpleRightSidebar1PageScrollComponent, }, { path : 'content-scroll', - component: SimpleRightSidebar1ContentScrollComponent - } - ] + component: SimpleRightSidebar1ContentScrollComponent, + }, + ], }, { path : 'right-sidebar-2', @@ -964,32 +954,32 @@ export const routes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'overview' + redirectTo: 'overview', }, { path : 'overview', component: LayoutOverviewComponent, data : { - overview: overviews.simple.rightSidebar2 - } + overview: overviews.simple.rightSidebar2, + }, }, { path : 'normal-scroll', - component: SimpleRightSidebar2NormalScrollComponent + component: SimpleRightSidebar2NormalScrollComponent, }, { path : 'page-scroll', - component: SimpleRightSidebar2PageScrollComponent + component: SimpleRightSidebar2PageScrollComponent, }, { path : 'content-scroll', - component: SimpleRightSidebar2ContentScrollComponent + component: SimpleRightSidebar2ContentScrollComponent, }, { path : 'inner-scroll', - component: SimpleRightSidebar2InnerScrollComponent - } - ] + component: SimpleRightSidebar2InnerScrollComponent, + }, + ], }, { path : 'right-sidebar-3', @@ -997,114 +987,29 @@ export const routes: Route[] = [ { path : '', pathMatch : 'full', - redirectTo: 'overview' + redirectTo: 'overview', }, { path : 'overview', component: LayoutOverviewComponent, data : { - overview: overviews.simple.rightSidebar3 - } + overview: overviews.simple.rightSidebar3, + }, }, { path : 'normal-scroll', - component: SimpleRightSidebar3NormalScrollComponent + component: SimpleRightSidebar3NormalScrollComponent, }, { path : 'page-scroll', - component: SimpleRightSidebar3PageScrollComponent + component: SimpleRightSidebar3PageScrollComponent, }, { path : 'content-scroll', - component: SimpleRightSidebar3ContentScrollComponent - } - ] - } - ] - } -]; - -@NgModule({ - declarations: [ - OverviewComponent, - - // Empty - EmptyNormalScrollComponent, - EmptyPageScrollComponent, - - // Carded - Fullwidth - CardedFullwidthNormalScrollComponent, - CardedFullwidthPageScrollComponent, - CardedFullwidthContentScrollComponent, - - // Carded - Left sidebar - CardedLeftSidebar1NormalScrollComponent, - CardedLeftSidebar1PageScrollComponent, - CardedLeftSidebar1ContentScrollComponent, - - CardedLeftSidebar2NormalScrollComponent, - CardedLeftSidebar2PageScrollComponent, - CardedLeftSidebar2ContentScrollComponent, - - // Carded - Right sidebar - CardedRightSidebar1NormalScrollComponent, - CardedRightSidebar1PageScrollComponent, - CardedRightSidebar1ContentScrollComponent, - - CardedRightSidebar2NormalScrollComponent, - CardedRightSidebar2PageScrollComponent, - CardedRightSidebar2ContentScrollComponent, - - // Simple - Fullwidth - SimpleFullwidth1NormalScrollComponent, - SimpleFullwidth1PageScrollComponent, - SimpleFullwidth1ContentScrollComponent, - - SimpleFullwidth2NormalScrollComponent, - SimpleFullwidth2PageScrollComponent, - SimpleFullwidth2ContentScrollComponent, - - // Simple - Left sidebar - SimpleLeftSidebar1NormalScrollComponent, - SimpleLeftSidebar1PageScrollComponent, - SimpleLeftSidebar1ContentScrollComponent, - - SimpleLeftSidebar2NormalScrollComponent, - SimpleLeftSidebar2PageScrollComponent, - SimpleLeftSidebar2ContentScrollComponent, - SimpleLeftSidebar2InnerScrollComponent, - - SimpleLeftSidebar3NormalScrollComponent, - SimpleLeftSidebar3PageScrollComponent, - SimpleLeftSidebar3ScrollComponent, - - // Simple - Right sidebar - SimpleRightSidebar1NormalScrollComponent, - SimpleRightSidebar1PageScrollComponent, - SimpleRightSidebar1ContentScrollComponent, - - SimpleRightSidebar2NormalScrollComponent, - SimpleRightSidebar2PageScrollComponent, - SimpleRightSidebar2ContentScrollComponent, - SimpleRightSidebar2InnerScrollComponent, - - SimpleRightSidebar3NormalScrollComponent, - SimpleRightSidebar3PageScrollComponent, - SimpleRightSidebar3ContentScrollComponent - ], - imports : [ - RouterModule.forChild(routes), - MatButtonModule, - MatIconModule, - MatMenuModule, - MatSidenavModule, - MatTabsModule, - SharedModule, - DemoPlaceholderModule, - DemoSidebarModule, - LayoutOverviewModule - ] -}) -export class PageLayoutsModule -{ -} + component: SimpleRightSidebar3ContentScrollComponent, + }, + ], + }, + ], + }, +] as Routes; diff --git a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/content-scroll/fullwidth-1.component.html b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/content-scroll/fullwidth-1.component.html index 094ab427..df6d38f0 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/content-scroll/fullwidth-1.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/content-scroll/fullwidth-1.component.html @@ -12,13 +12,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -44,18 +44,18 @@
diff --git a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/content-scroll/fullwidth-1.component.ts b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/content-scroll/fullwidth-1.component.ts index 285ec653..32a594b1 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/content-scroll/fullwidth-1.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/content-scroll/fullwidth-1.component.ts @@ -1,9 +1,15 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { RouterLink } from '@angular/router'; @Component({ selector : 'simple-fullwidth-1-content-scroll', templateUrl : './fullwidth-1.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatIconModule, RouterLink, MatButtonModule, CdkScrollable], }) export class SimpleFullwidth1ContentScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/normal-scroll/fullwidth-1.component.html b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/normal-scroll/fullwidth-1.component.html index 32bca279..f02df10c 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/normal-scroll/fullwidth-1.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/normal-scroll/fullwidth-1.component.html @@ -12,13 +12,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -44,18 +44,18 @@
diff --git a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/normal-scroll/fullwidth-1.component.ts b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/normal-scroll/fullwidth-1.component.ts index a14945ba..ca7cddd0 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/normal-scroll/fullwidth-1.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/normal-scroll/fullwidth-1.component.ts @@ -1,9 +1,14 @@ import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { RouterLink } from '@angular/router'; @Component({ selector : 'simple-fullwidth-1-normal-scroll', templateUrl : './fullwidth-1.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatIconModule, RouterLink, MatButtonModule], }) export class SimpleFullwidth1NormalScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/page-scroll/fullwidth-1.component.html b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/page-scroll/fullwidth-1.component.html index 0b99e2a6..19bfd742 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/page-scroll/fullwidth-1.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/page-scroll/fullwidth-1.component.html @@ -14,13 +14,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -46,18 +46,18 @@
diff --git a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/page-scroll/fullwidth-1.component.ts b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/page-scroll/fullwidth-1.component.ts index 311a8347..74f3d262 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/page-scroll/fullwidth-1.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-1/page-scroll/fullwidth-1.component.ts @@ -1,9 +1,15 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { RouterLink } from '@angular/router'; @Component({ selector : 'simple-fullwidth-1-page-scroll', templateUrl : './fullwidth-1.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [CdkScrollable, MatIconModule, RouterLink, MatButtonModule], }) export class SimpleFullwidth1PageScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/content-scroll/fullwidth-2.component.html b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/content-scroll/fullwidth-2.component.html index a6facce6..23c87cda 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/content-scroll/fullwidth-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/content-scroll/fullwidth-2.component.html @@ -12,13 +12,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -44,18 +44,18 @@
diff --git a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/content-scroll/fullwidth-2.component.ts b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/content-scroll/fullwidth-2.component.ts index fe2868c9..8372f941 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/content-scroll/fullwidth-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/content-scroll/fullwidth-2.component.ts @@ -1,9 +1,16 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatTabsModule } from '@angular/material/tabs'; +import { RouterLink } from '@angular/router'; @Component({ selector : 'simple-fullwidth-2-content-scroll', templateUrl : './fullwidth-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatIconModule, RouterLink, MatButtonModule, CdkScrollable, MatTabsModule], }) export class SimpleFullwidth2ContentScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/normal-scroll/fullwidth-2.component.html b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/normal-scroll/fullwidth-2.component.html index 874c9b34..a2506e77 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/normal-scroll/fullwidth-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/normal-scroll/fullwidth-2.component.html @@ -12,13 +12,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -44,18 +44,18 @@
diff --git a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/normal-scroll/fullwidth-2.component.ts b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/normal-scroll/fullwidth-2.component.ts index ab0cab96..412f14e2 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/normal-scroll/fullwidth-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/normal-scroll/fullwidth-2.component.ts @@ -1,9 +1,15 @@ import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatTabsModule } from '@angular/material/tabs'; +import { RouterLink } from '@angular/router'; @Component({ selector : 'simple-fullwidth-2-normal-scroll', templateUrl : './fullwidth-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatIconModule, RouterLink, MatButtonModule, MatTabsModule], }) export class SimpleFullwidth2NormalScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/page-scroll/fullwidth-2.component.html b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/page-scroll/fullwidth-2.component.html index 8364f8ac..e9ba6852 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/page-scroll/fullwidth-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/page-scroll/fullwidth-2.component.html @@ -14,13 +14,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -46,18 +46,18 @@
diff --git a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/page-scroll/fullwidth-2.component.ts b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/page-scroll/fullwidth-2.component.ts index ed972ea1..d39d3707 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/page-scroll/fullwidth-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/fullwidth-2/page-scroll/fullwidth-2.component.ts @@ -1,9 +1,16 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatTabsModule } from '@angular/material/tabs'; +import { RouterLink } from '@angular/router'; @Component({ selector : 'simple-fullwidth-2-page-scroll', templateUrl : './fullwidth-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [CdkScrollable, MatIconModule, RouterLink, MatButtonModule, MatTabsModule], }) export class SimpleFullwidth2PageScrollComponent { diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/content-scroll/left-sidebar-1.component.html b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/content-scroll/left-sidebar-1.component.html index ec5ca7a5..b10ab786 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/content-scroll/left-sidebar-1.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/content-scroll/left-sidebar-1.component.html @@ -24,7 +24,7 @@ class="mb-4" mat-icon-button (click)="matDrawer.toggle()"> - + diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/content-scroll/left-sidebar-1.component.ts b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/content-scroll/left-sidebar-1.component.ts index e5986637..aa6fb838 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/content-scroll/left-sidebar-1.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/content-scroll/left-sidebar-1.component.ts @@ -1,11 +1,17 @@ import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-left-sidebar-1-content-scroll', templateUrl : './left-sidebar-1.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatSidenavModule, DemoSidebarComponent, MatButtonModule, MatIconModule], }) export class SimpleLeftSidebar1ContentScrollComponent implements OnInit, OnDestroy { @@ -32,8 +38,8 @@ export class SimpleLeftSidebar1ContentScrollComponent implements OnInit, OnDestr // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/normal-scroll/left-sidebar-1.component.html b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/normal-scroll/left-sidebar-1.component.html index fc20b501..3d0eb01e 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/normal-scroll/left-sidebar-1.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/normal-scroll/left-sidebar-1.component.html @@ -24,7 +24,7 @@ class="mb-4" mat-icon-button (click)="matDrawer.toggle()"> - + diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/normal-scroll/left-sidebar-1.component.ts b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/normal-scroll/left-sidebar-1.component.ts index 5a2135cf..70ded9b6 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/normal-scroll/left-sidebar-1.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/normal-scroll/left-sidebar-1.component.ts @@ -1,11 +1,17 @@ import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-left-sidebar-1-normal-scroll', templateUrl : './left-sidebar-1.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatSidenavModule, DemoSidebarComponent, MatButtonModule, MatIconModule], }) export class SimpleLeftSidebar1NormalScrollComponent implements OnInit, OnDestroy { @@ -32,8 +38,8 @@ export class SimpleLeftSidebar1NormalScrollComponent implements OnInit, OnDestro // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/page-scroll/left-sidebar-1.component.html b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/page-scroll/left-sidebar-1.component.html index e507d507..9b39effb 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/page-scroll/left-sidebar-1.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/page-scroll/left-sidebar-1.component.html @@ -26,7 +26,7 @@ class="mb-4" mat-icon-button (click)="matDrawer.toggle()"> - + diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/page-scroll/left-sidebar-1.component.ts b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/page-scroll/left-sidebar-1.component.ts index 44a6d8ec..51a63670 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/page-scroll/left-sidebar-1.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-1/page-scroll/left-sidebar-1.component.ts @@ -1,11 +1,18 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-left-sidebar-1-page-scroll', templateUrl : './left-sidebar-1.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [CdkScrollable, MatSidenavModule, DemoSidebarComponent, MatButtonModule, MatIconModule], }) export class SimpleLeftSidebar1PageScrollComponent implements OnInit, OnDestroy { @@ -32,8 +39,8 @@ export class SimpleLeftSidebar1PageScrollComponent implements OnInit, OnDestroy // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/content-scroll/left-sidebar-2.component.html b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/content-scroll/left-sidebar-2.component.html index 3e137b71..a51f8346 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/content-scroll/left-sidebar-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/content-scroll/left-sidebar-2.component.html @@ -28,13 +28,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -61,7 +61,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/content-scroll/left-sidebar-2.component.ts b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/content-scroll/left-sidebar-2.component.ts index 883fbadf..375d88f6 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/content-scroll/left-sidebar-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/content-scroll/left-sidebar-2.component.ts @@ -1,11 +1,18 @@ import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-left-sidebar-2-content-scroll', templateUrl : './left-sidebar-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatSidenavModule, DemoSidebarComponent, MatIconModule, RouterLink, MatButtonModule], }) export class SimpleLeftSidebar2ContentScrollComponent implements OnInit, OnDestroy { @@ -32,8 +39,8 @@ export class SimpleLeftSidebar2ContentScrollComponent implements OnInit, OnDestr // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/inner-scroll/left-sidebar-2.component.html b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/inner-scroll/left-sidebar-2.component.html index ffe8f266..9af9fc8f 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/inner-scroll/left-sidebar-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/inner-scroll/left-sidebar-2.component.html @@ -28,13 +28,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -61,7 +61,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/inner-scroll/left-sidebar-2.component.ts b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/inner-scroll/left-sidebar-2.component.ts index 04664fcd..3cdc9ba1 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/inner-scroll/left-sidebar-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/inner-scroll/left-sidebar-2.component.ts @@ -1,11 +1,19 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-left-sidebar-2-inner-scroll', templateUrl : './left-sidebar-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatSidenavModule, DemoSidebarComponent, MatIconModule, RouterLink, MatButtonModule, CdkScrollable], }) export class SimpleLeftSidebar2InnerScrollComponent implements OnInit, OnDestroy { @@ -32,8 +40,8 @@ export class SimpleLeftSidebar2InnerScrollComponent implements OnInit, OnDestroy // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/normal-scroll/left-sidebar-2.component.html b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/normal-scroll/left-sidebar-2.component.html index da73fd24..212cc672 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/normal-scroll/left-sidebar-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/normal-scroll/left-sidebar-2.component.html @@ -28,13 +28,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -61,7 +61,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/normal-scroll/left-sidebar-2.component.ts b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/normal-scroll/left-sidebar-2.component.ts index 1dfbe669..20a2e05b 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/normal-scroll/left-sidebar-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/normal-scroll/left-sidebar-2.component.ts @@ -1,11 +1,18 @@ import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-left-sidebar-2-normal-scroll', templateUrl : './left-sidebar-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatSidenavModule, DemoSidebarComponent, MatIconModule, RouterLink, MatButtonModule], }) export class SimpleLeftSidebar2NormalScrollComponent implements OnInit, OnDestroy { @@ -32,8 +39,8 @@ export class SimpleLeftSidebar2NormalScrollComponent implements OnInit, OnDestro // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/page-scroll/left-sidebar-2.component.html b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/page-scroll/left-sidebar-2.component.html index d18d5361..9cdf392a 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/page-scroll/left-sidebar-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/page-scroll/left-sidebar-2.component.html @@ -30,13 +30,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -63,7 +63,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/page-scroll/left-sidebar-2.component.ts b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/page-scroll/left-sidebar-2.component.ts index cc8a2f1b..772a24f9 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/page-scroll/left-sidebar-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-2/page-scroll/left-sidebar-2.component.ts @@ -1,11 +1,19 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-left-sidebar-2-page-scroll', templateUrl : './left-sidebar-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [CdkScrollable, MatSidenavModule, DemoSidebarComponent, MatIconModule, RouterLink, MatButtonModule], }) export class SimpleLeftSidebar2PageScrollComponent implements OnInit, OnDestroy { @@ -32,8 +40,8 @@ export class SimpleLeftSidebar2PageScrollComponent implements OnInit, OnDestroy // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/content-scroll/left-sidebar-3.component.html b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/content-scroll/left-sidebar-3.component.html index 9c2b6040..8c4242cd 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/content-scroll/left-sidebar-3.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/content-scroll/left-sidebar-3.component.html @@ -12,13 +12,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -45,7 +45,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/content-scroll/left-sidebar-3.component.ts b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/content-scroll/left-sidebar-3.component.ts index 6b5dfbab..3033a1a1 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/content-scroll/left-sidebar-3.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/content-scroll/left-sidebar-3.component.ts @@ -1,11 +1,18 @@ import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-left-sidebar-3-content-scroll', templateUrl : './left-sidebar-3.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatIconModule, RouterLink, MatButtonModule, MatSidenavModule, DemoSidebarComponent], }) export class SimpleLeftSidebar3ScrollComponent implements OnInit, OnDestroy { @@ -32,8 +39,8 @@ export class SimpleLeftSidebar3ScrollComponent implements OnInit, OnDestroy // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/normal-scroll/left-sidebar-3.component.html b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/normal-scroll/left-sidebar-3.component.html index 541e7a63..c595280a 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/normal-scroll/left-sidebar-3.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/normal-scroll/left-sidebar-3.component.html @@ -12,13 +12,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -45,7 +45,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/normal-scroll/left-sidebar-3.component.ts b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/normal-scroll/left-sidebar-3.component.ts index bf46e3e6..f60a98d1 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/normal-scroll/left-sidebar-3.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/normal-scroll/left-sidebar-3.component.ts @@ -1,11 +1,18 @@ import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-left-sidebar-3-normal-scroll', templateUrl : './left-sidebar-3.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatIconModule, RouterLink, MatButtonModule, MatSidenavModule, DemoSidebarComponent], }) export class SimpleLeftSidebar3NormalScrollComponent implements OnInit, OnDestroy { @@ -32,8 +39,8 @@ export class SimpleLeftSidebar3NormalScrollComponent implements OnInit, OnDestro // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/page-scroll/left-sidebar-3.component.html b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/page-scroll/left-sidebar-3.component.html index 2387863a..8e922e30 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/page-scroll/left-sidebar-3.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/page-scroll/left-sidebar-3.component.html @@ -14,13 +14,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -47,7 +47,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/page-scroll/left-sidebar-3.component.ts b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/page-scroll/left-sidebar-3.component.ts index 808b0c99..013707f8 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/page-scroll/left-sidebar-3.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/left-sidebar-3/page-scroll/left-sidebar-3.component.ts @@ -1,11 +1,19 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-left-sidebar-3-page-scroll', templateUrl : './left-sidebar-3.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [CdkScrollable, MatIconModule, RouterLink, MatButtonModule, MatSidenavModule, DemoSidebarComponent], }) export class SimpleLeftSidebar3PageScrollComponent implements OnInit, OnDestroy { @@ -32,8 +40,8 @@ export class SimpleLeftSidebar3PageScrollComponent implements OnInit, OnDestroy // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/content-scroll/right-sidebar-1.component.html b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/content-scroll/right-sidebar-1.component.html index b489149c..2fe59e05 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/content-scroll/right-sidebar-1.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/content-scroll/right-sidebar-1.component.html @@ -25,7 +25,7 @@ class="mb-4" mat-icon-button (click)="matDrawer.toggle()"> - + diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/content-scroll/right-sidebar-1.component.ts b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/content-scroll/right-sidebar-1.component.ts index 82072126..5bf0ac1f 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/content-scroll/right-sidebar-1.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/content-scroll/right-sidebar-1.component.ts @@ -1,11 +1,17 @@ import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-right-sidebar-1-content-scroll', templateUrl : './right-sidebar-1.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatSidenavModule, DemoSidebarComponent, MatButtonModule, MatIconModule], }) export class SimpleRightSidebar1ContentScrollComponent implements OnInit, OnDestroy { @@ -32,8 +38,8 @@ export class SimpleRightSidebar1ContentScrollComponent implements OnInit, OnDest // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/normal-scroll/right-sidebar-1.component.html b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/normal-scroll/right-sidebar-1.component.html index 7d06881d..fe03e9f6 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/normal-scroll/right-sidebar-1.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/normal-scroll/right-sidebar-1.component.html @@ -25,7 +25,7 @@ class="mb-4" mat-icon-button (click)="matDrawer.toggle()"> - + diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/normal-scroll/right-sidebar-1.component.ts b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/normal-scroll/right-sidebar-1.component.ts index 9cf2774a..99c91793 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/normal-scroll/right-sidebar-1.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/normal-scroll/right-sidebar-1.component.ts @@ -1,11 +1,17 @@ import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-right-sidebar-1-normal-scroll', templateUrl : './right-sidebar-1.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatSidenavModule, DemoSidebarComponent, MatButtonModule, MatIconModule], }) export class SimpleRightSidebar1NormalScrollComponent implements OnInit, OnDestroy { @@ -32,8 +38,8 @@ export class SimpleRightSidebar1NormalScrollComponent implements OnInit, OnDestr // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/page-scroll/right-sidebar-1.component.html b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/page-scroll/right-sidebar-1.component.html index be98cd72..83d7c5ad 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/page-scroll/right-sidebar-1.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/page-scroll/right-sidebar-1.component.html @@ -27,7 +27,7 @@ class="mb-4" mat-icon-button (click)="matDrawer.toggle()"> - + diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/page-scroll/right-sidebar-1.component.ts b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/page-scroll/right-sidebar-1.component.ts index dc1934b4..b4e275b3 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/page-scroll/right-sidebar-1.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-1/page-scroll/right-sidebar-1.component.ts @@ -1,11 +1,18 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-right-sidebar-1-page-scroll', templateUrl : './right-sidebar-1.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [CdkScrollable, MatSidenavModule, DemoSidebarComponent, MatButtonModule, MatIconModule], }) export class SimpleRightSidebar1PageScrollComponent implements OnInit, OnDestroy { @@ -32,8 +39,8 @@ export class SimpleRightSidebar1PageScrollComponent implements OnInit, OnDestroy // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/content-scroll/right-sidebar-2.component.html b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/content-scroll/right-sidebar-2.component.html index 3fac5fe0..63323acf 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/content-scroll/right-sidebar-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/content-scroll/right-sidebar-2.component.html @@ -29,13 +29,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -62,7 +62,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/content-scroll/right-sidebar-2.component.ts b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/content-scroll/right-sidebar-2.component.ts index e4eef937..014122f2 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/content-scroll/right-sidebar-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/content-scroll/right-sidebar-2.component.ts @@ -1,11 +1,18 @@ import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-right-sidebar-2-content-scroll', templateUrl : './right-sidebar-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatSidenavModule, DemoSidebarComponent, MatIconModule, RouterLink, MatButtonModule], }) export class SimpleRightSidebar2ContentScrollComponent implements OnInit, OnDestroy { @@ -32,8 +39,8 @@ export class SimpleRightSidebar2ContentScrollComponent implements OnInit, OnDest // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/inner-scroll/right-sidebar-2.component.html b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/inner-scroll/right-sidebar-2.component.html index 6dfa9786..2d88bb76 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/inner-scroll/right-sidebar-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/inner-scroll/right-sidebar-2.component.html @@ -29,13 +29,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -62,7 +62,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/inner-scroll/right-sidebar-2.component.ts b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/inner-scroll/right-sidebar-2.component.ts index a8939a23..e1d6214e 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/inner-scroll/right-sidebar-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/inner-scroll/right-sidebar-2.component.ts @@ -1,11 +1,19 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-right-sidebar-2-inner-scroll', templateUrl : './right-sidebar-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatSidenavModule, DemoSidebarComponent, MatIconModule, RouterLink, MatButtonModule, CdkScrollable], }) export class SimpleRightSidebar2InnerScrollComponent implements OnInit, OnDestroy { @@ -32,8 +40,8 @@ export class SimpleRightSidebar2InnerScrollComponent implements OnInit, OnDestro // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/normal-scroll/right-sidebar-2.component.html b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/normal-scroll/right-sidebar-2.component.html index 8933706c..c5c558d0 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/normal-scroll/right-sidebar-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/normal-scroll/right-sidebar-2.component.html @@ -29,13 +29,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -62,7 +62,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/normal-scroll/right-sidebar-2.component.ts b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/normal-scroll/right-sidebar-2.component.ts index 6e191c45..a1b0fc75 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/normal-scroll/right-sidebar-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/normal-scroll/right-sidebar-2.component.ts @@ -1,11 +1,18 @@ import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-right-sidebar-2-normal-scroll', templateUrl : './right-sidebar-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatSidenavModule, DemoSidebarComponent, MatIconModule, RouterLink, MatButtonModule], }) export class SimpleRightSidebar2NormalScrollComponent implements OnInit, OnDestroy { @@ -32,8 +39,8 @@ export class SimpleRightSidebar2NormalScrollComponent implements OnInit, OnDestr // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/page-scroll/right-sidebar-2.component.html b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/page-scroll/right-sidebar-2.component.html index 8e00c83b..c89706ba 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/page-scroll/right-sidebar-2.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/page-scroll/right-sidebar-2.component.html @@ -31,13 +31,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -64,7 +64,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/page-scroll/right-sidebar-2.component.ts b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/page-scroll/right-sidebar-2.component.ts index df40c7a2..7fa1111a 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/page-scroll/right-sidebar-2.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-2/page-scroll/right-sidebar-2.component.ts @@ -1,11 +1,19 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-right-sidebar-2-page-scroll', templateUrl : './right-sidebar-2.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [CdkScrollable, MatSidenavModule, DemoSidebarComponent, MatIconModule, RouterLink, MatButtonModule], }) export class SimpleRightSidebar2PageScrollComponent implements OnInit, OnDestroy { @@ -32,8 +40,8 @@ export class SimpleRightSidebar2PageScrollComponent implements OnInit, OnDestroy // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/content-scroll/right-sidebar-3.component.html b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/content-scroll/right-sidebar-3.component.html index c2b2a6ad..5a2ad16e 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/content-scroll/right-sidebar-3.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/content-scroll/right-sidebar-3.component.html @@ -12,13 +12,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -45,7 +45,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/content-scroll/right-sidebar-3.component.ts b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/content-scroll/right-sidebar-3.component.ts index d33c836c..e31a8539 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/content-scroll/right-sidebar-3.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/content-scroll/right-sidebar-3.component.ts @@ -1,11 +1,18 @@ import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-right-sidebar-3-content-scroll', templateUrl : './right-sidebar-3.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatIconModule, RouterLink, MatButtonModule, MatSidenavModule, DemoSidebarComponent], }) export class SimpleRightSidebar3ContentScrollComponent implements OnInit, OnDestroy { @@ -32,8 +39,8 @@ export class SimpleRightSidebar3ContentScrollComponent implements OnInit, OnDest // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/normal-scroll/right-sidebar-3.component.html b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/normal-scroll/right-sidebar-3.component.html index 73e8d601..809b404e 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/normal-scroll/right-sidebar-3.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/normal-scroll/right-sidebar-3.component.html @@ -12,13 +12,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -45,7 +45,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/normal-scroll/right-sidebar-3.component.ts b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/normal-scroll/right-sidebar-3.component.ts index 9ded2c01..b8d20c59 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/normal-scroll/right-sidebar-3.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/normal-scroll/right-sidebar-3.component.ts @@ -1,11 +1,18 @@ import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-right-sidebar-3-normal-scroll', templateUrl : './right-sidebar-3.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatIconModule, RouterLink, MatButtonModule, MatSidenavModule, DemoSidebarComponent], }) export class SimpleRightSidebar3NormalScrollComponent implements OnInit, OnDestroy { @@ -32,8 +39,8 @@ export class SimpleRightSidebar3NormalScrollComponent implements OnInit, OnDestr // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/page-scroll/right-sidebar-3.component.html b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/page-scroll/right-sidebar-3.component.html index 8a43feba..2165ccc6 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/page-scroll/right-sidebar-3.component.html +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/page-scroll/right-sidebar-3.component.html @@ -14,13 +14,13 @@
+ [svgIcon]="'heroicons_mini:chevron-right'"> Weekend Project
+ [svgIcon]="'heroicons_mini:chevron-right'"> Overview
@@ -47,7 +47,7 @@ diff --git a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/page-scroll/right-sidebar-3.component.ts b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/page-scroll/right-sidebar-3.component.ts index afc23892..47ff9020 100644 --- a/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/page-scroll/right-sidebar-3.component.ts +++ b/src/app/modules/admin/ui/page-layouts/simple/right-sidebar-3/page-scroll/right-sidebar-3.component.ts @@ -1,11 +1,19 @@ +import { CdkScrollable } from '@angular/cdk/scrolling'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Subject, takeUntil } from 'rxjs'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterLink } from '@angular/router'; import { FuseMediaWatcherService } from '@fuse/services/media-watcher'; +import { DemoSidebarComponent } from 'app/modules/admin/ui/page-layouts/common/demo-sidebar/demo-sidebar.component'; +import { Subject, takeUntil } from 'rxjs'; @Component({ selector : 'simple-right-sidebar-3-page-scroll', templateUrl : './right-sidebar-3.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [CdkScrollable, MatIconModule, RouterLink, MatButtonModule, MatSidenavModule, DemoSidebarComponent], }) export class SimpleRightSidebar3PageScrollComponent implements OnInit, OnDestroy { @@ -32,8 +40,8 @@ export class SimpleRightSidebar3PageScrollComponent implements OnInit, OnDestroy // Subscribe to media changes this._fuseMediaWatcherService.onMediaChange$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(({matchingAliases}) => { - + .subscribe(({matchingAliases}) => + { // Set the drawerMode and drawerOpened if if ( matchingAliases.includes('lg') ) { diff --git a/src/app/modules/admin/ui/tailwindcss/tailwindcss.component.ts b/src/app/modules/admin/ui/tailwindcss/tailwindcss.component.ts index c1e16d8c..d4d994e0 100644 --- a/src/app/modules/admin/ui/tailwindcss/tailwindcss.component.ts +++ b/src/app/modules/admin/ui/tailwindcss/tailwindcss.component.ts @@ -3,7 +3,8 @@ import { Component, ViewEncapsulation } from '@angular/core'; @Component({ selector : 'tailwindcss', templateUrl : './tailwindcss.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, }) export class TailwindCSSComponent { diff --git a/src/app/modules/admin/ui/tailwindcss/tailwindcss.module.ts b/src/app/modules/admin/ui/tailwindcss/tailwindcss.module.ts deleted file mode 100644 index 418edbec..00000000 --- a/src/app/modules/admin/ui/tailwindcss/tailwindcss.module.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { NgModule } from '@angular/core'; -import { Route, RouterModule } from '@angular/router'; -import { SharedModule } from 'app/shared/shared.module'; -import { TailwindCSSComponent } from 'app/modules/admin/ui/tailwindcss/tailwindcss.component'; - -export const routes: Route[] = [ - { - path : '', - component: TailwindCSSComponent - } -]; - -@NgModule({ - declarations: [ - TailwindCSSComponent - ], - imports : [ - RouterModule.forChild(routes), - SharedModule - ] -}) -export class TailwindCSSModule -{ -} diff --git a/src/app/modules/admin/ui/tailwindcss/tailwindcss.routes.ts b/src/app/modules/admin/ui/tailwindcss/tailwindcss.routes.ts new file mode 100644 index 00000000..0a2a3217 --- /dev/null +++ b/src/app/modules/admin/ui/tailwindcss/tailwindcss.routes.ts @@ -0,0 +1,9 @@ +import { Routes } from '@angular/router'; +import { TailwindCSSComponent } from 'app/modules/admin/ui/tailwindcss/tailwindcss.component'; + +export default [ + { + path : '', + component: TailwindCSSComponent, + }, +] as Routes; diff --git a/src/app/modules/admin/ui/typography/typography.component.ts b/src/app/modules/admin/ui/typography/typography.component.ts index b98de741..a206818b 100644 --- a/src/app/modules/admin/ui/typography/typography.component.ts +++ b/src/app/modules/admin/ui/typography/typography.component.ts @@ -1,9 +1,13 @@ import { Component, ViewEncapsulation } from '@angular/core'; +import { RouterLink } from '@angular/router'; +import { FuseHighlightComponent } from '@fuse/components/highlight'; @Component({ selector : 'typography', templateUrl : './typography.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [FuseHighlightComponent, RouterLink], }) export class TypographyComponent { diff --git a/src/app/modules/admin/ui/typography/typography.module.ts b/src/app/modules/admin/ui/typography/typography.module.ts deleted file mode 100644 index 086c1163..00000000 --- a/src/app/modules/admin/ui/typography/typography.module.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { NgModule } from '@angular/core'; -import { Route, RouterModule } from '@angular/router'; -import { MatTabsModule } from '@angular/material/tabs'; -import { FuseHighlightModule } from '@fuse/components/highlight'; -import { SharedModule } from 'app/shared/shared.module'; -import { TypographyComponent } from 'app/modules/admin/ui/typography/typography.component'; - -export const routes: Route[] = [ - { - path : '', - component: TypographyComponent - } -]; - -@NgModule({ - declarations: [ - TypographyComponent - ], - imports : [ - RouterModule.forChild(routes), - MatTabsModule, - FuseHighlightModule, - SharedModule - ] -}) -export class TypographyModule -{ -} diff --git a/src/app/modules/admin/ui/typography/typography.routes.ts b/src/app/modules/admin/ui/typography/typography.routes.ts new file mode 100644 index 00000000..38ec9389 --- /dev/null +++ b/src/app/modules/admin/ui/typography/typography.routes.ts @@ -0,0 +1,9 @@ +import { Routes } from '@angular/router'; +import { TypographyComponent } from 'app/modules/admin/ui/typography/typography.component'; + +export default [ + { + path : '', + component: TypographyComponent, + }, +] as Routes; diff --git a/src/app/modules/auth/confirmation-required/confirmation-required.component.ts b/src/app/modules/auth/confirmation-required/confirmation-required.component.ts index f906579b..baff05bf 100644 --- a/src/app/modules/auth/confirmation-required/confirmation-required.component.ts +++ b/src/app/modules/auth/confirmation-required/confirmation-required.component.ts @@ -1,11 +1,14 @@ import { Component, ViewEncapsulation } from '@angular/core'; +import { RouterLink } from '@angular/router'; import { fuseAnimations } from '@fuse/animations'; @Component({ selector : 'auth-confirmation-required', templateUrl : './confirmation-required.component.html', encapsulation: ViewEncapsulation.None, - animations : fuseAnimations + animations : fuseAnimations, + standalone : true, + imports : [RouterLink], }) export class AuthConfirmationRequiredComponent { diff --git a/src/app/modules/auth/confirmation-required/confirmation-required.module.ts b/src/app/modules/auth/confirmation-required/confirmation-required.module.ts deleted file mode 100644 index 7ca1cd28..00000000 --- a/src/app/modules/auth/confirmation-required/confirmation-required.module.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { FuseCardModule } from '@fuse/components/card'; -import { SharedModule } from 'app/shared/shared.module'; -import { AuthConfirmationRequiredComponent } from 'app/modules/auth/confirmation-required/confirmation-required.component'; -import { authConfirmationRequiredRoutes } from 'app/modules/auth/confirmation-required/confirmation-required.routing'; - -@NgModule({ - declarations: [ - AuthConfirmationRequiredComponent - ], - imports : [ - RouterModule.forChild(authConfirmationRequiredRoutes), - MatButtonModule, - FuseCardModule, - SharedModule - ] -}) -export class AuthConfirmationRequiredModule -{ -} diff --git a/src/app/modules/auth/confirmation-required/confirmation-required.routes.ts b/src/app/modules/auth/confirmation-required/confirmation-required.routes.ts new file mode 100644 index 00000000..18e1b25d --- /dev/null +++ b/src/app/modules/auth/confirmation-required/confirmation-required.routes.ts @@ -0,0 +1,9 @@ +import { Routes } from '@angular/router'; +import { AuthConfirmationRequiredComponent } from 'app/modules/auth/confirmation-required/confirmation-required.component'; + +export default [ + { + path : '', + component: AuthConfirmationRequiredComponent, + }, +] as Routes; diff --git a/src/app/modules/auth/confirmation-required/confirmation-required.routing.ts b/src/app/modules/auth/confirmation-required/confirmation-required.routing.ts deleted file mode 100644 index 05b94a9b..00000000 --- a/src/app/modules/auth/confirmation-required/confirmation-required.routing.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Route } from '@angular/router'; -import { AuthConfirmationRequiredComponent } from 'app/modules/auth/confirmation-required/confirmation-required.component'; - -export const authConfirmationRequiredRoutes: Route[] = [ - { - path : '', - component: AuthConfirmationRequiredComponent - } -]; diff --git a/src/app/modules/auth/forgot-password/forgot-password.component.ts b/src/app/modules/auth/forgot-password/forgot-password.component.ts index 16b586db..6e0dc4c3 100644 --- a/src/app/modules/auth/forgot-password/forgot-password.component.ts +++ b/src/app/modules/auth/forgot-password/forgot-password.component.ts @@ -1,15 +1,23 @@ +import { NgIf } from '@angular/common'; import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormGroup, NgForm, Validators } from '@angular/forms'; -import { finalize } from 'rxjs'; +import { FormsModule, NgForm, ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatInputModule } from '@angular/material/input'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { RouterLink } from '@angular/router'; import { fuseAnimations } from '@fuse/animations'; -import { FuseAlertType } from '@fuse/components/alert'; +import { FuseAlertComponent, FuseAlertType } from '@fuse/components/alert'; import { AuthService } from 'app/core/auth/auth.service'; +import { finalize } from 'rxjs'; @Component({ selector : 'auth-forgot-password', templateUrl : './forgot-password.component.html', encapsulation: ViewEncapsulation.None, - animations : fuseAnimations + animations : fuseAnimations, + standalone : true, + imports : [NgIf, FuseAlertComponent, FormsModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatProgressSpinnerModule, RouterLink], }) export class AuthForgotPasswordComponent implements OnInit { @@ -17,7 +25,7 @@ export class AuthForgotPasswordComponent implements OnInit alert: { type: FuseAlertType; message: string } = { type : 'success', - message: '' + message: '', }; forgotPasswordForm: UntypedFormGroup; showAlert: boolean = false; @@ -27,7 +35,7 @@ export class AuthForgotPasswordComponent implements OnInit */ constructor( private _authService: AuthService, - private _formBuilder: UntypedFormBuilder + private _formBuilder: UntypedFormBuilder, ) { } @@ -43,7 +51,7 @@ export class AuthForgotPasswordComponent implements OnInit { // Create the form this.forgotPasswordForm = this._formBuilder.group({ - email: ['', [Validators.required, Validators.email]] + email: ['', [Validators.required, Validators.email]], }); } @@ -71,8 +79,8 @@ export class AuthForgotPasswordComponent implements OnInit // Forgot password this._authService.forgotPassword(this.forgotPasswordForm.get('email').value) .pipe( - finalize(() => { - + finalize(() => + { // Re-enable the form this.forgotPasswordForm.enable(); @@ -81,25 +89,25 @@ export class AuthForgotPasswordComponent implements OnInit // Show the alert this.showAlert = true; - }) + }), ) .subscribe( - (response) => { - + (response) => + { // Set the alert this.alert = { type : 'success', - message: 'Password reset sent! You\'ll receive an email if you are registered on our system.' + message: 'Password reset sent! You\'ll receive an email if you are registered on our system.', }; }, - (response) => { - + (response) => + { // Set the alert this.alert = { type : 'error', - message: 'Email does not found! Are you sure you are already a member?' + message: 'Email does not found! Are you sure you are already a member?', }; - } + }, ); } } diff --git a/src/app/modules/auth/forgot-password/forgot-password.module.ts b/src/app/modules/auth/forgot-password/forgot-password.module.ts deleted file mode 100644 index 4b978053..00000000 --- a/src/app/modules/auth/forgot-password/forgot-password.module.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatIconModule } from '@angular/material/icon'; -import { MatInputModule } from '@angular/material/input'; -import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; -import { FuseCardModule } from '@fuse/components/card'; -import { FuseAlertModule } from '@fuse/components/alert'; -import { SharedModule } from 'app/shared/shared.module'; -import { AuthForgotPasswordComponent } from 'app/modules/auth/forgot-password/forgot-password.component'; -import { authForgotPasswordRoutes } from 'app/modules/auth/forgot-password/forgot-password.routing'; - -@NgModule({ - declarations: [ - AuthForgotPasswordComponent - ], - imports : [ - RouterModule.forChild(authForgotPasswordRoutes), - MatButtonModule, - MatFormFieldModule, - MatIconModule, - MatInputModule, - MatProgressSpinnerModule, - FuseCardModule, - FuseAlertModule, - SharedModule - ] -}) -export class AuthForgotPasswordModule -{ -} diff --git a/src/app/modules/auth/forgot-password/forgot-password.routes.ts b/src/app/modules/auth/forgot-password/forgot-password.routes.ts new file mode 100644 index 00000000..229f0edb --- /dev/null +++ b/src/app/modules/auth/forgot-password/forgot-password.routes.ts @@ -0,0 +1,9 @@ +import { Routes } from '@angular/router'; +import { AuthForgotPasswordComponent } from 'app/modules/auth/forgot-password/forgot-password.component'; + +export default [ + { + path : '', + component: AuthForgotPasswordComponent, + }, +] as Routes; diff --git a/src/app/modules/auth/forgot-password/forgot-password.routing.ts b/src/app/modules/auth/forgot-password/forgot-password.routing.ts deleted file mode 100644 index 5d26e86c..00000000 --- a/src/app/modules/auth/forgot-password/forgot-password.routing.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Route } from '@angular/router'; -import { AuthForgotPasswordComponent } from 'app/modules/auth/forgot-password/forgot-password.component'; - -export const authForgotPasswordRoutes: Route[] = [ - { - path : '', - component: AuthForgotPasswordComponent - } -]; diff --git a/src/app/modules/auth/reset-password/reset-password.component.html b/src/app/modules/auth/reset-password/reset-password.component.html index e86b01e9..fbcea922 100644 --- a/src/app/modules/auth/reset-password/reset-password.component.html +++ b/src/app/modules/auth/reset-password/reset-password.component.html @@ -48,7 +48,7 @@ + [svgIcon]="'heroicons_solid:eye-slash'"> Password is required @@ -76,7 +76,7 @@ + [svgIcon]="'heroicons_solid:eye-slash'"> Password confirmation is required diff --git a/src/app/modules/auth/reset-password/reset-password.component.ts b/src/app/modules/auth/reset-password/reset-password.component.ts index f259f58e..06e637f4 100644 --- a/src/app/modules/auth/reset-password/reset-password.component.ts +++ b/src/app/modules/auth/reset-password/reset-password.component.ts @@ -1,16 +1,25 @@ +import { NgIf } from '@angular/common'; import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormGroup, NgForm, Validators } from '@angular/forms'; -import { finalize } from 'rxjs'; +import { FormsModule, NgForm, ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { RouterLink } from '@angular/router'; import { fuseAnimations } from '@fuse/animations'; +import { FuseAlertComponent, FuseAlertType } from '@fuse/components/alert'; import { FuseValidators } from '@fuse/validators'; -import { FuseAlertType } from '@fuse/components/alert'; import { AuthService } from 'app/core/auth/auth.service'; +import { finalize } from 'rxjs'; @Component({ selector : 'auth-reset-password', templateUrl : './reset-password.component.html', encapsulation: ViewEncapsulation.None, - animations : fuseAnimations + animations : fuseAnimations, + standalone : true, + imports : [NgIf, FuseAlertComponent, FormsModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule, MatProgressSpinnerModule, RouterLink], }) export class AuthResetPasswordComponent implements OnInit { @@ -18,7 +27,7 @@ export class AuthResetPasswordComponent implements OnInit alert: { type: FuseAlertType; message: string } = { type : 'success', - message: '' + message: '', }; resetPasswordForm: UntypedFormGroup; showAlert: boolean = false; @@ -28,7 +37,7 @@ export class AuthResetPasswordComponent implements OnInit */ constructor( private _authService: AuthService, - private _formBuilder: UntypedFormBuilder + private _formBuilder: UntypedFormBuilder, ) { } @@ -45,11 +54,11 @@ export class AuthResetPasswordComponent implements OnInit // Create the form this.resetPasswordForm = this._formBuilder.group({ password : ['', Validators.required], - passwordConfirm: ['', Validators.required] + passwordConfirm: ['', Validators.required], }, { - validators: FuseValidators.mustMatch('password', 'passwordConfirm') - } + validators: FuseValidators.mustMatch('password', 'passwordConfirm'), + }, ); } @@ -77,8 +86,8 @@ export class AuthResetPasswordComponent implements OnInit // Send the request to the server this._authService.resetPassword(this.resetPasswordForm.get('password').value) .pipe( - finalize(() => { - + finalize(() => + { // Re-enable the form this.resetPasswordForm.enable(); @@ -87,25 +96,25 @@ export class AuthResetPasswordComponent implements OnInit // Show the alert this.showAlert = true; - }) + }), ) .subscribe( - (response) => { - + (response) => + { // Set the alert this.alert = { type : 'success', - message: 'Your password has been reset.' + message: 'Your password has been reset.', }; }, - (response) => { - + (response) => + { // Set the alert this.alert = { type : 'error', - message: 'Something went wrong, please try again.' + message: 'Something went wrong, please try again.', }; - } + }, ); } } diff --git a/src/app/modules/auth/reset-password/reset-password.module.ts b/src/app/modules/auth/reset-password/reset-password.module.ts deleted file mode 100644 index b2f225b9..00000000 --- a/src/app/modules/auth/reset-password/reset-password.module.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatIconModule } from '@angular/material/icon'; -import { MatInputModule } from '@angular/material/input'; -import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; -import { FuseCardModule } from '@fuse/components/card'; -import { FuseAlertModule } from '@fuse/components/alert'; -import { SharedModule } from 'app/shared/shared.module'; -import { AuthResetPasswordComponent } from 'app/modules/auth/reset-password/reset-password.component'; -import { authResetPasswordRoutes } from 'app/modules/auth/reset-password/reset-password.routing'; - -@NgModule({ - declarations: [ - AuthResetPasswordComponent - ], - imports : [ - RouterModule.forChild(authResetPasswordRoutes), - MatButtonModule, - MatFormFieldModule, - MatIconModule, - MatInputModule, - MatProgressSpinnerModule, - FuseCardModule, - FuseAlertModule, - SharedModule - ] -}) -export class AuthResetPasswordModule -{ -} diff --git a/src/app/modules/auth/reset-password/reset-password.routes.ts b/src/app/modules/auth/reset-password/reset-password.routes.ts new file mode 100644 index 00000000..6e1794c6 --- /dev/null +++ b/src/app/modules/auth/reset-password/reset-password.routes.ts @@ -0,0 +1,9 @@ +import { Routes } from '@angular/router'; +import { AuthResetPasswordComponent } from 'app/modules/auth/reset-password/reset-password.component'; + +export default [ + { + path : '', + component: AuthResetPasswordComponent, + }, +] as Routes; diff --git a/src/app/modules/auth/reset-password/reset-password.routing.ts b/src/app/modules/auth/reset-password/reset-password.routing.ts deleted file mode 100644 index d82eff4b..00000000 --- a/src/app/modules/auth/reset-password/reset-password.routing.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Route } from '@angular/router'; -import { AuthResetPasswordComponent } from 'app/modules/auth/reset-password/reset-password.component'; - -export const authResetPasswordRoutes: Route[] = [ - { - path : '', - component: AuthResetPasswordComponent - } -]; diff --git a/src/app/modules/auth/sign-in/sign-in.component.html b/src/app/modules/auth/sign-in/sign-in.component.html index 7704c6d8..78563aa8 100644 --- a/src/app/modules/auth/sign-in/sign-in.component.html +++ b/src/app/modules/auth/sign-in/sign-in.component.html @@ -78,7 +78,7 @@ + [svgIcon]="'heroicons_solid:eye-slash'"> Password is required diff --git a/src/app/modules/auth/sign-in/sign-in.component.ts b/src/app/modules/auth/sign-in/sign-in.component.ts index 925ab639..1f5ec536 100644 --- a/src/app/modules/auth/sign-in/sign-in.component.ts +++ b/src/app/modules/auth/sign-in/sign-in.component.ts @@ -1,15 +1,24 @@ +import { NgIf } from '@angular/common'; import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormGroup, NgForm, Validators } from '@angular/forms'; -import { ActivatedRoute, Router } from '@angular/router'; +import { FormsModule, NgForm, ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { ActivatedRoute, Router, RouterLink } from '@angular/router'; import { fuseAnimations } from '@fuse/animations'; -import { FuseAlertType } from '@fuse/components/alert'; +import { FuseAlertComponent, FuseAlertType } from '@fuse/components/alert'; import { AuthService } from 'app/core/auth/auth.service'; @Component({ selector : 'auth-sign-in', templateUrl : './sign-in.component.html', encapsulation: ViewEncapsulation.None, - animations : fuseAnimations + animations : fuseAnimations, + standalone : true, + imports : [RouterLink, FuseAlertComponent, NgIf, FormsModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule, MatCheckboxModule, MatProgressSpinnerModule], }) export class AuthSignInComponent implements OnInit { @@ -17,7 +26,7 @@ export class AuthSignInComponent implements OnInit alert: { type: FuseAlertType; message: string } = { type : 'success', - message: '' + message: '', }; signInForm: UntypedFormGroup; showAlert: boolean = false; @@ -29,7 +38,7 @@ export class AuthSignInComponent implements OnInit private _activatedRoute: ActivatedRoute, private _authService: AuthService, private _formBuilder: UntypedFormBuilder, - private _router: Router + private _router: Router, ) { } @@ -47,7 +56,7 @@ export class AuthSignInComponent implements OnInit this.signInForm = this._formBuilder.group({ email : ['hughes.brian@company.com', [Validators.required, Validators.email]], password : ['admin', Validators.required], - rememberMe: [''] + rememberMe: [''], }); } @@ -75,8 +84,8 @@ export class AuthSignInComponent implements OnInit // Sign in this._authService.signIn(this.signInForm.value) .subscribe( - () => { - + () => + { // Set the redirect url. // The '/signed-in-redirect' is a dummy url to catch the request and redirect the user // to the correct page after a successful sign in. This way, that url can be set via @@ -87,8 +96,8 @@ export class AuthSignInComponent implements OnInit this._router.navigateByUrl(redirectURL); }, - (response) => { - + (response) => + { // Re-enable the form this.signInForm.enable(); @@ -98,12 +107,12 @@ export class AuthSignInComponent implements OnInit // Set the alert this.alert = { type : 'error', - message: 'Wrong email or password' + message: 'Wrong email or password', }; // Show the alert this.showAlert = true; - } + }, ); } } diff --git a/src/app/modules/auth/sign-in/sign-in.module.ts b/src/app/modules/auth/sign-in/sign-in.module.ts deleted file mode 100644 index d562b642..00000000 --- a/src/app/modules/auth/sign-in/sign-in.module.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatCheckboxModule } from '@angular/material/checkbox'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatIconModule } from '@angular/material/icon'; -import { MatInputModule } from '@angular/material/input'; -import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; -import { FuseCardModule } from '@fuse/components/card'; -import { FuseAlertModule } from '@fuse/components/alert'; -import { SharedModule } from 'app/shared/shared.module'; -import { AuthSignInComponent } from 'app/modules/auth/sign-in/sign-in.component'; -import { authSignInRoutes } from 'app/modules/auth/sign-in/sign-in.routing'; - -@NgModule({ - declarations: [ - AuthSignInComponent - ], - imports : [ - RouterModule.forChild(authSignInRoutes), - MatButtonModule, - MatCheckboxModule, - MatFormFieldModule, - MatIconModule, - MatInputModule, - MatProgressSpinnerModule, - FuseCardModule, - FuseAlertModule, - SharedModule - ] -}) -export class AuthSignInModule -{ -} diff --git a/src/app/modules/auth/sign-in/sign-in.routes.ts b/src/app/modules/auth/sign-in/sign-in.routes.ts new file mode 100644 index 00000000..20b9c13d --- /dev/null +++ b/src/app/modules/auth/sign-in/sign-in.routes.ts @@ -0,0 +1,9 @@ +import { Routes } from '@angular/router'; +import { AuthSignInComponent } from 'app/modules/auth/sign-in/sign-in.component'; + +export default [ + { + path : '', + component: AuthSignInComponent, + }, +] as Routes; diff --git a/src/app/modules/auth/sign-in/sign-in.routing.ts b/src/app/modules/auth/sign-in/sign-in.routing.ts deleted file mode 100644 index 6f23cf82..00000000 --- a/src/app/modules/auth/sign-in/sign-in.routing.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Route } from '@angular/router'; -import { AuthSignInComponent } from 'app/modules/auth/sign-in/sign-in.component'; - -export const authSignInRoutes: Route[] = [ - { - path : '', - component: AuthSignInComponent - } -]; diff --git a/src/app/modules/auth/sign-out/sign-out.component.ts b/src/app/modules/auth/sign-out/sign-out.component.ts index dcc81851..bc6297f3 100644 --- a/src/app/modules/auth/sign-out/sign-out.component.ts +++ b/src/app/modules/auth/sign-out/sign-out.component.ts @@ -1,19 +1,22 @@ +import { I18nPluralPipe, NgIf } from '@angular/common'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { Router } from '@angular/router'; -import { finalize, Subject, takeUntil, takeWhile, tap, timer } from 'rxjs'; +import { Router, RouterLink } from '@angular/router'; import { AuthService } from 'app/core/auth/auth.service'; +import { finalize, Subject, takeUntil, takeWhile, tap, timer } from 'rxjs'; @Component({ selector : 'auth-sign-out', templateUrl : './sign-out.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [NgIf, RouterLink, I18nPluralPipe], }) export class AuthSignOutComponent implements OnInit, OnDestroy { countdown: number = 5; countdownMapping: any = { '=1' : '# second', - 'other': '# seconds' + 'other': '# seconds', }; private _unsubscribeAll: Subject = new Subject(); @@ -22,7 +25,7 @@ export class AuthSignOutComponent implements OnInit, OnDestroy */ constructor( private _authService: AuthService, - private _router: Router + private _router: Router, ) { } @@ -42,12 +45,13 @@ export class AuthSignOutComponent implements OnInit, OnDestroy // Redirect after the countdown timer(1000, 1000) .pipe( - finalize(() => { + finalize(() => + { this._router.navigate(['sign-in']); }), takeWhile(() => this.countdown > 0), takeUntil(this._unsubscribeAll), - tap(() => this.countdown--) + tap(() => this.countdown--), ) .subscribe(); } diff --git a/src/app/modules/auth/sign-out/sign-out.module.ts b/src/app/modules/auth/sign-out/sign-out.module.ts deleted file mode 100644 index cab1b635..00000000 --- a/src/app/modules/auth/sign-out/sign-out.module.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { FuseCardModule } from '@fuse/components/card'; -import { SharedModule } from 'app/shared/shared.module'; -import { AuthSignOutComponent } from 'app/modules/auth/sign-out/sign-out.component'; -import { authSignOutRoutes } from 'app/modules/auth/sign-out/sign-out.routing'; - -@NgModule({ - declarations: [ - AuthSignOutComponent - ], - imports : [ - RouterModule.forChild(authSignOutRoutes), - MatButtonModule, - FuseCardModule, - SharedModule - ] -}) -export class AuthSignOutModule -{ -} diff --git a/src/app/modules/auth/sign-out/sign-out.routes.ts b/src/app/modules/auth/sign-out/sign-out.routes.ts new file mode 100644 index 00000000..25cc807f --- /dev/null +++ b/src/app/modules/auth/sign-out/sign-out.routes.ts @@ -0,0 +1,9 @@ +import { Routes } from '@angular/router'; +import { AuthSignOutComponent } from 'app/modules/auth/sign-out/sign-out.component'; + +export default [ + { + path : '', + component: AuthSignOutComponent, + }, +] as Routes; diff --git a/src/app/modules/auth/sign-out/sign-out.routing.ts b/src/app/modules/auth/sign-out/sign-out.routing.ts deleted file mode 100644 index 2e3ebe2f..00000000 --- a/src/app/modules/auth/sign-out/sign-out.routing.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Route } from '@angular/router'; -import { AuthSignOutComponent } from 'app/modules/auth/sign-out/sign-out.component'; - -export const authSignOutRoutes: Route[] = [ - { - path : '', - component: AuthSignOutComponent - } -]; diff --git a/src/app/modules/auth/sign-up/sign-up.component.html b/src/app/modules/auth/sign-up/sign-up.component.html index 8d5d625b..62da1d87 100644 --- a/src/app/modules/auth/sign-up/sign-up.component.html +++ b/src/app/modules/auth/sign-up/sign-up.component.html @@ -81,7 +81,7 @@ + [svgIcon]="'heroicons_solid:eye-slash'"> Password is required diff --git a/src/app/modules/auth/sign-up/sign-up.component.ts b/src/app/modules/auth/sign-up/sign-up.component.ts index 847e7e59..aecd1f21 100644 --- a/src/app/modules/auth/sign-up/sign-up.component.ts +++ b/src/app/modules/auth/sign-up/sign-up.component.ts @@ -1,15 +1,24 @@ +import { NgIf } from '@angular/common'; import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormGroup, NgForm, Validators } from '@angular/forms'; -import { Router } from '@angular/router'; +import { FormsModule, NgForm, ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { Router, RouterLink } from '@angular/router'; import { fuseAnimations } from '@fuse/animations'; -import { FuseAlertType } from '@fuse/components/alert'; +import { FuseAlertComponent, FuseAlertType } from '@fuse/components/alert'; import { AuthService } from 'app/core/auth/auth.service'; @Component({ selector : 'auth-sign-up', templateUrl : './sign-up.component.html', encapsulation: ViewEncapsulation.None, - animations : fuseAnimations + animations : fuseAnimations, + standalone : true, + imports : [RouterLink, NgIf, FuseAlertComponent, FormsModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule, MatCheckboxModule, MatProgressSpinnerModule], }) export class AuthSignUpComponent implements OnInit { @@ -17,7 +26,7 @@ export class AuthSignUpComponent implements OnInit alert: { type: FuseAlertType; message: string } = { type : 'success', - message: '' + message: '', }; signUpForm: UntypedFormGroup; showAlert: boolean = false; @@ -28,7 +37,7 @@ export class AuthSignUpComponent implements OnInit constructor( private _authService: AuthService, private _formBuilder: UntypedFormBuilder, - private _router: Router + private _router: Router, ) { } @@ -48,8 +57,8 @@ export class AuthSignUpComponent implements OnInit email : ['', [Validators.required, Validators.email]], password : ['', Validators.required], company : [''], - agreements: ['', Validators.requiredTrue] - } + agreements: ['', Validators.requiredTrue], + }, ); } @@ -77,13 +86,13 @@ export class AuthSignUpComponent implements OnInit // Sign up this._authService.signUp(this.signUpForm.value) .subscribe( - (response) => { - + (response) => + { // Navigate to the confirmation required page this._router.navigateByUrl('/confirmation-required'); }, - (response) => { - + (response) => + { // Re-enable the form this.signUpForm.enable(); @@ -93,12 +102,12 @@ export class AuthSignUpComponent implements OnInit // Set the alert this.alert = { type : 'error', - message: 'Something went wrong, please try again.' + message: 'Something went wrong, please try again.', }; // Show the alert this.showAlert = true; - } + }, ); } } diff --git a/src/app/modules/auth/sign-up/sign-up.module.ts b/src/app/modules/auth/sign-up/sign-up.module.ts deleted file mode 100644 index 03696386..00000000 --- a/src/app/modules/auth/sign-up/sign-up.module.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatCheckboxModule } from '@angular/material/checkbox'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatIconModule } from '@angular/material/icon'; -import { MatInputModule } from '@angular/material/input'; -import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; -import { FuseCardModule } from '@fuse/components/card'; -import { FuseAlertModule } from '@fuse/components/alert'; -import { SharedModule } from 'app/shared/shared.module'; -import { AuthSignUpComponent } from 'app/modules/auth/sign-up/sign-up.component'; -import { authSignupRoutes } from 'app/modules/auth/sign-up/sign-up.routing'; - -@NgModule({ - declarations: [ - AuthSignUpComponent - ], - imports : [ - RouterModule.forChild(authSignupRoutes), - MatButtonModule, - MatCheckboxModule, - MatFormFieldModule, - MatIconModule, - MatInputModule, - MatProgressSpinnerModule, - FuseCardModule, - FuseAlertModule, - SharedModule - ] -}) -export class AuthSignUpModule -{ -} diff --git a/src/app/modules/auth/sign-up/sign-up.routes.ts b/src/app/modules/auth/sign-up/sign-up.routes.ts new file mode 100644 index 00000000..4589a52d --- /dev/null +++ b/src/app/modules/auth/sign-up/sign-up.routes.ts @@ -0,0 +1,9 @@ +import { Routes } from '@angular/router'; +import { AuthSignUpComponent } from 'app/modules/auth/sign-up/sign-up.component'; + +export default [ + { + path : '', + component: AuthSignUpComponent, + }, +] as Routes; diff --git a/src/app/modules/auth/sign-up/sign-up.routing.ts b/src/app/modules/auth/sign-up/sign-up.routing.ts deleted file mode 100644 index f0c533c6..00000000 --- a/src/app/modules/auth/sign-up/sign-up.routing.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Route } from '@angular/router'; -import { AuthSignUpComponent } from 'app/modules/auth/sign-up/sign-up.component'; - -export const authSignupRoutes: Route[] = [ - { - path : '', - component: AuthSignUpComponent - } -]; diff --git a/src/app/modules/auth/unlock-session/unlock-session.component.html b/src/app/modules/auth/unlock-session/unlock-session.component.html index 7b175305..7644a979 100644 --- a/src/app/modules/auth/unlock-session/unlock-session.component.html +++ b/src/app/modules/auth/unlock-session/unlock-session.component.html @@ -57,7 +57,7 @@ + [svgIcon]="'heroicons_solid:eye-slash'"> Password is required diff --git a/src/app/modules/auth/unlock-session/unlock-session.component.ts b/src/app/modules/auth/unlock-session/unlock-session.component.ts index 2b5fb939..4938af2d 100644 --- a/src/app/modules/auth/unlock-session/unlock-session.component.ts +++ b/src/app/modules/auth/unlock-session/unlock-session.component.ts @@ -1,16 +1,24 @@ +import { NgIf } from '@angular/common'; import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormGroup, NgForm, Validators } from '@angular/forms'; -import { ActivatedRoute, Router } from '@angular/router'; +import { FormsModule, NgForm, ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { ActivatedRoute, Router, RouterLink } from '@angular/router'; import { fuseAnimations } from '@fuse/animations'; +import { FuseAlertComponent, FuseAlertType } from '@fuse/components/alert'; import { AuthService } from 'app/core/auth/auth.service'; import { UserService } from 'app/core/user/user.service'; -import { FuseAlertType } from '@fuse/components/alert'; @Component({ selector : 'auth-unlock-session', templateUrl : './unlock-session.component.html', encapsulation: ViewEncapsulation.None, - animations : fuseAnimations + animations : fuseAnimations, + standalone : true, + imports : [NgIf, FuseAlertComponent, FormsModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule, MatProgressSpinnerModule, RouterLink], }) export class AuthUnlockSessionComponent implements OnInit { @@ -18,7 +26,7 @@ export class AuthUnlockSessionComponent implements OnInit alert: { type: FuseAlertType; message: string } = { type : 'success', - message: '' + message: '', }; name: string; showAlert: boolean = false; @@ -33,7 +41,7 @@ export class AuthUnlockSessionComponent implements OnInit private _authService: AuthService, private _formBuilder: UntypedFormBuilder, private _router: Router, - private _userService: UserService + private _userService: UserService, ) { } @@ -48,7 +56,8 @@ export class AuthUnlockSessionComponent implements OnInit ngOnInit(): void { // Get the user's name - this._userService.user$.subscribe((user) => { + this._userService.user$.subscribe((user) => + { this.name = user.name; this._email = user.email; }); @@ -58,10 +67,10 @@ export class AuthUnlockSessionComponent implements OnInit name : [ { value : this.name, - disabled: true - } + disabled: true, + }, ], - password: ['', Validators.required] + password: ['', Validators.required], }); } @@ -88,10 +97,10 @@ export class AuthUnlockSessionComponent implements OnInit this._authService.unlockSession({ email : this._email ?? '', - password: this.unlockSessionForm.get('password').value + password: this.unlockSessionForm.get('password').value, }).subscribe( - () => { - + () => + { // Set the redirect url. // The '/signed-in-redirect' is a dummy url to catch the request and redirect the user // to the correct page after a successful sign in. This way, that url can be set via @@ -102,8 +111,8 @@ export class AuthUnlockSessionComponent implements OnInit this._router.navigateByUrl(redirectURL); }, - (response) => { - + (response) => + { // Re-enable the form this.unlockSessionForm.enable(); @@ -111,19 +120,19 @@ export class AuthUnlockSessionComponent implements OnInit this.unlockSessionNgForm.resetForm({ name: { value : this.name, - disabled: true - } + disabled: true, + }, }); // Set the alert this.alert = { type : 'error', - message: 'Invalid password' + message: 'Invalid password', }; // Show the alert this.showAlert = true; - } + }, ); } } diff --git a/src/app/modules/auth/unlock-session/unlock-session.module.ts b/src/app/modules/auth/unlock-session/unlock-session.module.ts deleted file mode 100644 index c3dff915..00000000 --- a/src/app/modules/auth/unlock-session/unlock-session.module.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatIconModule } from '@angular/material/icon'; -import { MatInputModule } from '@angular/material/input'; -import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; -import { FuseCardModule } from '@fuse/components/card'; -import { FuseAlertModule } from '@fuse/components/alert'; -import { SharedModule } from 'app/shared/shared.module'; -import { AuthUnlockSessionComponent } from 'app/modules/auth/unlock-session/unlock-session.component'; -import { authUnlockSessionRoutes } from 'app/modules/auth/unlock-session/unlock-session.routing'; - -@NgModule({ - declarations: [ - AuthUnlockSessionComponent - ], - imports : [ - RouterModule.forChild(authUnlockSessionRoutes), - MatButtonModule, - MatFormFieldModule, - MatIconModule, - MatInputModule, - MatProgressSpinnerModule, - FuseCardModule, - FuseAlertModule, - SharedModule - ] -}) -export class AuthUnlockSessionModule -{ -} diff --git a/src/app/modules/auth/unlock-session/unlock-session.routes.ts b/src/app/modules/auth/unlock-session/unlock-session.routes.ts new file mode 100644 index 00000000..8c09106b --- /dev/null +++ b/src/app/modules/auth/unlock-session/unlock-session.routes.ts @@ -0,0 +1,9 @@ +import { Routes } from '@angular/router'; +import { AuthUnlockSessionComponent } from 'app/modules/auth/unlock-session/unlock-session.component'; + +export default [ + { + path : '', + component: AuthUnlockSessionComponent, + }, +] as Routes; diff --git a/src/app/modules/auth/unlock-session/unlock-session.routing.ts b/src/app/modules/auth/unlock-session/unlock-session.routing.ts deleted file mode 100644 index 863aaffb..00000000 --- a/src/app/modules/auth/unlock-session/unlock-session.routing.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Route } from '@angular/router'; -import { AuthUnlockSessionComponent } from 'app/modules/auth/unlock-session/unlock-session.component'; - -export const authUnlockSessionRoutes: Route[] = [ - { - path : '', - component: AuthUnlockSessionComponent - } -]; diff --git a/src/app/modules/landing/home/home.component.html b/src/app/modules/landing/home/home.component.html index 0e33d847..63868a4d 100644 --- a/src/app/modules/landing/home/home.component.html +++ b/src/app/modules/landing/home/home.component.html @@ -24,7 +24,7 @@ Launch the App + [svgIcon]="'heroicons_mini:arrow-long-right'"> diff --git a/src/app/modules/landing/home/home.component.ts b/src/app/modules/landing/home/home.component.ts index bbbd5990..35b9f436 100644 --- a/src/app/modules/landing/home/home.component.ts +++ b/src/app/modules/landing/home/home.component.ts @@ -1,9 +1,14 @@ import { Component, ViewEncapsulation } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { RouterLink } from '@angular/router'; @Component({ selector : 'landing-home', templateUrl : './home.component.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone : true, + imports : [MatButtonModule, RouterLink, MatIconModule], }) export class LandingHomeComponent { diff --git a/src/app/modules/landing/home/home.module.ts b/src/app/modules/landing/home/home.module.ts deleted file mode 100644 index 770412b1..00000000 --- a/src/app/modules/landing/home/home.module.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { MatButtonModule } from '@angular/material/button'; -import { MatIconModule } from '@angular/material/icon'; -import { SharedModule } from 'app/shared/shared.module'; -import { LandingHomeComponent } from 'app/modules/landing/home/home.component'; -import { landingHomeRoutes } from 'app/modules/landing/home/home.routing'; - -@NgModule({ - declarations: [ - LandingHomeComponent - ], - imports : [ - RouterModule.forChild(landingHomeRoutes), - MatButtonModule, - MatIconModule, - SharedModule - ] -}) -export class LandingHomeModule -{ -} diff --git a/src/app/modules/landing/home/home.routes.ts b/src/app/modules/landing/home/home.routes.ts new file mode 100644 index 00000000..6142db02 --- /dev/null +++ b/src/app/modules/landing/home/home.routes.ts @@ -0,0 +1,9 @@ +import { Routes } from '@angular/router'; +import { LandingHomeComponent } from 'app/modules/landing/home/home.component'; + +export default [ + { + path : '', + component: LandingHomeComponent, + }, +] as Routes; diff --git a/src/app/modules/landing/home/home.routing.ts b/src/app/modules/landing/home/home.routing.ts deleted file mode 100644 index b172676c..00000000 --- a/src/app/modules/landing/home/home.routing.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Route } from '@angular/router'; -import { LandingHomeComponent } from 'app/modules/landing/home/home.component'; - -export const landingHomeRoutes: Route[] = [ - { - path : '', - component: LandingHomeComponent - } -]; diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts deleted file mode 100644 index 9c22bbd1..00000000 --- a/src/app/shared/shared.module.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; - -@NgModule({ - imports: [ - CommonModule, - FormsModule, - ReactiveFormsModule - ], - exports: [ - CommonModule, - FormsModule, - ReactiveFormsModule - ] -}) -export class SharedModule -{ -} diff --git a/src/assets/icons/feather.svg b/src/assets/icons/feather.svg index 33e28af1..e74e1624 100644 --- a/src/assets/icons/feather.svg +++ b/src/assets/icons/feather.svg @@ -1,6 +1,5 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/icons/heroicons-outline.svg b/src/assets/icons/heroicons-outline.svg index ffcb0f43..7f337e32 100644 --- a/src/assets/icons/heroicons-outline.svg +++ b/src/assets/icons/heroicons-outline.svg @@ -1,707 +1,893 @@ - + - - - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/icons/heroicons-solid.svg b/src/assets/icons/heroicons-solid.svg index 0b9c1adb..c669d9b7 100644 --- a/src/assets/icons/heroicons-solid.svg +++ b/src/assets/icons/heroicons-solid.svg @@ -1,738 +1,958 @@ - + - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - - + - - - + - - - + - - - + - - - + - - + - - + - - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - - + - - - + - - - + - - + - - + - - + - - - - + - - + - - + - - - + - - - + - - - + - - - + - - + - - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - - + - - + - - - + - - - + - - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - - + - - + - - + - - - + - - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - - + - - + - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main.ts b/src/main.ts index 3cc98652..49742337 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,5 +1,6 @@ -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { AppModule } from 'app/app.module'; +import { bootstrapApplication } from '@angular/platform-browser'; +import { AppComponent } from 'app/app.component'; +import { appConfig } from 'app/app.config'; -platformBrowserDynamic().bootstrapModule(AppModule) - .catch(err => console.error(err)); +bootstrapApplication(AppComponent, appConfig) + .catch(err => console.error(err)); diff --git a/tailwind.config.js b/tailwind.config.js index 6bf4cece..cbcce319 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -287,8 +287,7 @@ const config = { require(path.resolve(__dirname, ('src/@fuse/tailwind/plugins/theming')))({themes}), // Other third party and/or custom plugins - require('@tailwindcss/typography')({modifiers: ['sm', 'lg']}), - require('@tailwindcss/line-clamp') + require('@tailwindcss/typography')({modifiers: ['sm', 'lg']}) ] };