diff --git a/CHANGELOG.md b/CHANGELOG.md index 12575eea..5210dba0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,20 @@ --- +#### `5.2.3` + +- chore(dependencies): update +- refactor(accordion): minor cleanup, add host class metadata +- refactor(avatar): template default ng-content, host class metadata, input signals +- refactor(badge): host class metadata, input signals +- refactor(card): host class metadata, input signals +- refactor(text-bg-color): input signals +- refactor(text-color): input signals +- refactor(widget-stat-b): input signals +- refactor(modal): minor syntax cleanup + +--- + #### `5.2.2` - chore(dependencies): update @@ -12,7 +26,7 @@ #### `5.2.1` -- chore(dependencies): update +- chore(dependencies): update --- diff --git a/package-lock.json b/package-lock.json index 9ee4935a..9d41b836 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,24 +1,24 @@ { "name": "coreui-angular-dev", - "version": "5.2.2", + "version": "5.2.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "coreui-angular-dev", - "version": "5.2.2", - "license": "MIT", - "dependencies": { - "@angular/animations": "^18.0.4", - "@angular/cdk": "^18.0.4", - "@angular/common": "^18.0.4", - "@angular/compiler": "^18.0.4", - "@angular/core": "^18.0.4", - "@angular/forms": "^18.0.4", - "@angular/localize": "^18.0.4", - "@angular/platform-browser": "^18.0.4", - "@angular/platform-browser-dynamic": "^18.0.4", - "@angular/router": "^18.0.4", + "version": "5.2.3", + "license": "MIT", + "dependencies": { + "@angular/animations": "^18.0.6", + "@angular/cdk": "^18.0.6", + "@angular/common": "^18.0.6", + "@angular/compiler": "^18.0.6", + "@angular/core": "^18.0.6", + "@angular/forms": "^18.0.6", + "@angular/localize": "^18.0.6", + "@angular/platform-browser": "^18.0.6", + "@angular/platform-browser-dynamic": "^18.0.6", + "@angular/router": "^18.0.6", "@coreui/chartjs": "^4.0.0", "@coreui/icons": "^3.0.1", "@popperjs/core": "~2.11.8", @@ -29,20 +29,20 @@ "zone.js": "~0.14.7" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.0.5", - "@angular-eslint/builder": "^18.0.1", - "@angular-eslint/eslint-plugin": "^18.0.1", - "@angular-eslint/eslint-plugin-template": "^18.0.1", - "@angular-eslint/schematics": "^18.0.1", - "@angular-eslint/template-parser": "^18.0.1", - "@angular/cli": "^18.0.5", - "@angular/compiler-cli": "^18.0.4", - "@angular/language-service": "^18.0.4", + "@angular-devkit/build-angular": "^18.0.7", + "@angular-eslint/builder": "18.1.0", + "@angular-eslint/eslint-plugin": "18.1.0", + "@angular-eslint/eslint-plugin-template": "18.1.0", + "@angular-eslint/schematics": "18.1.0", + "@angular-eslint/template-parser": "18.1.0", + "@angular/cli": "^18.0.7", + "@angular/compiler-cli": "^18.0.6", + "@angular/language-service": "^18.0.6", "@types/jasmine": "^5.1.4", "@types/lodash-es": "^4.17.12", "@types/node": "^20.14.7", - "@typescript-eslint/eslint-plugin": "^7.13.1", - "@typescript-eslint/parser": "^7.13.1", + "@typescript-eslint/eslint-plugin": "^7.15.0", + "@typescript-eslint/parser": "^7.15.0", "eslint": "^8.57.0", "jasmine-core": "^5.1.2", "karma": "^6.4.3", @@ -73,13 +73,13 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1800.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1800.5.tgz", - "integrity": "sha512-KliFJTqwAIyRvW10JnJLlpXK86yx683unTgwgvkg9V4gUc/7cNCmWJiOCmYh1+gATpFq+3d3o36EdTzb4QS03g==", + "version": "0.1800.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1800.7.tgz", + "integrity": "sha512-ZYIjdngUOjY6G2XJGHtATLr+HhJWdo7Z3ATlzQTGI9D1a02kW3UFlELQBhFIn+1o78FU6W0STZgyfBH8M7wD2w==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.0.5", + "@angular-devkit/core": "18.0.7", "rxjs": "7.8.1" }, "engines": { @@ -89,17 +89,17 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "18.0.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-18.0.5.tgz", - "integrity": "sha512-itZN5tAZ+66bHZ4JNxIiPxfbSvQP6Gk4hcCzfGzcs3G0VsahR0rpX0Rg+1CRX1bpDzan3z8AVfwIxlLPKSOBbg==", + "version": "18.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-18.0.7.tgz", + "integrity": "sha512-64wCCqPA7ZpawqSopnGQ9USJBt0EiejrtD7iJLA9xgIlpJhoIetxGnglPxfiBNs5RmXXTQDY+8yrUwEPA2l6cQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1800.5", - "@angular-devkit/build-webpack": "0.1800.5", - "@angular-devkit/core": "18.0.5", - "@angular/build": "18.0.5", + "@angular-devkit/architect": "0.1800.7", + "@angular-devkit/build-webpack": "0.1800.7", + "@angular-devkit/core": "18.0.7", + "@angular/build": "18.0.7", "@babel/core": "7.24.5", "@babel/generator": "7.24.5", "@babel/helper-annotate-as-pure": "7.22.5", @@ -110,7 +110,7 @@ "@babel/preset-env": "7.24.5", "@babel/runtime": "7.24.5", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "18.0.5", + "@ngtools/webpack": "18.0.7", "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.19", @@ -148,7 +148,7 @@ "semver": "7.6.2", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.31.0", + "terser": "5.29.2", "tree-kill": "1.2.2", "tslib": "2.6.2", "undici": "6.18.0", @@ -227,13 +227,13 @@ "license": "0BSD" }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1800.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1800.5.tgz", - "integrity": "sha512-/eiIwlQJBZlCWLsfaoSOsSGFY24cLKCCY4fs/fvcBXxG5/g1FFx24Zt73j0qRoNeK3soUg9+lmCAiRvO6cGpJg==", + "version": "0.1800.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1800.7.tgz", + "integrity": "sha512-UQN0VFincuhuIHch8y9rfaDbVJ8RMwIJ084geJnJNMLEbzpiRdo1t4rrcuXLN0+Fp5U0bHdHl/OGyLI9GTynWg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1800.5", + "@angular-devkit/architect": "0.1800.7", "rxjs": "7.8.1" }, "engines": { @@ -247,9 +247,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "18.0.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.0.5.tgz", - "integrity": "sha512-sGtrS0SqkcBvyuv0QkIfyadwPgDhMroz1r51lMh1hwzJaJ0LNuVMLviEeYIybeBnvAdp9YvYC8I1WgB/FUEFBw==", + "version": "18.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.0.7.tgz", + "integrity": "sha512-pVmuE37DNuTe3S4Lh1jg6U4dyHljiZiqI99u3gtS7PF765P4AeGlugHIYE7ztC74fYd9gy04sWnbeV+RQuBTVw==", "dev": true, "license": "MIT", "dependencies": { @@ -275,13 +275,13 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "18.0.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.0.5.tgz", - "integrity": "sha512-hZwAq3hwuJzCuh7uqO/7T9IMERhYVxz+ganJlEykpyr58o0IjUM1Q4ZSH5UOYlGRPdBCZJbfiafZ0Sg5w5xBww==", + "version": "18.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.0.7.tgz", + "integrity": "sha512-U0lYPjhOaxdw+0UwVsv5y+wJdZ6DD+0ASiommB7j9kEmrPp53MhSvYNYWvwbIWwJceDa3eNq3fAmQOlVXvFCVg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.0.5", + "@angular-devkit/core": "18.0.7", "jsonc-parser": "3.2.1", "magic-string": "0.30.10", "ora": "5.4.1", @@ -294,9 +294,9 @@ } }, "node_modules/@angular-eslint/builder": { - "version": "18.0.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-18.0.1.tgz", - "integrity": "sha512-b/VUeTQznAmGdwP4OyPWyegqSRWub7E8/WXBqojrSFyLkFhpTiHpk/3/5G3LsgTb0zBfyAsqkA0yaadsHu9pjA==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-18.1.0.tgz", + "integrity": "sha512-ttcp+M3XDqt4lpj4C9XWO/JJY5iC1kNWmK1FUtd1YR0+1mLhrZTbakFYFe06qoiRqb4MX0WW2oUvonh52y5/NQ==", "dev": true, "license": "MIT", "dependencies": { @@ -309,55 +309,55 @@ } }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "18.0.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.0.1.tgz", - "integrity": "sha512-lr4Ysoo28FBOKcJFQUGTMpbWDcak+gyuYvyggp37ERvazE6EDomPFxzEHNqVT9EI9sZ+GDBOoPR+EdFh0ALGNw==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.1.0.tgz", + "integrity": "sha512-2JNlMEnCvLz8q1Qa4sWR9BddtpDWMKYguMzHJKm5zUDwH90CgWHolQlXumtpqbL8r78xd57t35IkbEFLF3UsQw==", "dev": true, "license": "MIT" }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "18.0.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-18.0.1.tgz", - "integrity": "sha512-pS3SYLa9DA+ENklGxEUlcw6/xCxgDk9fgjyaheuSjDxL3TIh1pTa4V2TptODdcPh7XCYXiVmy+e/w79mXlGzOw==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-18.1.0.tgz", + "integrity": "sha512-rV1RLhcg9TTNE5hB7pMddkJvnH0+q3FnhhWVE+IJNkzlGxEktDwVx7hG17sy8YkRS2CxR0P6Dr5C6wMBdEwAsw==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.0.1", - "@angular-eslint/utils": "18.0.1" + "@angular-eslint/bundled-angular-compiler": "18.1.0", + "@angular-eslint/utils": "18.1.0" }, "peerDependencies": { - "@typescript-eslint/utils": "^7.11.0 || ^8.0.0-alpha.20", + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0-alpha.37", "eslint": "^8.57.0 || ^9.0.0", "typescript": "*" } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "18.0.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.0.1.tgz", - "integrity": "sha512-u/eov/CFBb8l35D8dW78Dx5fBLd8FZFibKN9XQknhzXnDMpISuUOMny5g5/wvYYjqLgqEySXMiHKEAxEup7xtA==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.1.0.tgz", + "integrity": "sha512-k7Zq2JRd4jjg6PB0M24UnnmdhCeRFQ7Q4GlMGmeJLQGan+HFKDBu973yN2/Vmk4RYi+rTVuin0gy4HBeiGiiaw==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.0.1", - "@angular-eslint/utils": "18.0.1", + "@angular-eslint/bundled-angular-compiler": "18.1.0", + "@angular-eslint/utils": "18.1.0", "aria-query": "5.3.0", "axobject-query": "4.0.0" }, "peerDependencies": { - "@typescript-eslint/utils": "^7.11.0 || ^8.0.0-alpha.20", + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0-alpha.37", "eslint": "^8.57.0 || ^9.0.0", "typescript": "*" } }, "node_modules/@angular-eslint/schematics": { - "version": "18.0.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-18.0.1.tgz", - "integrity": "sha512-G9PgFrjyvBaQR8enMnP2scnQDLk99GMpifh3voiOmdEkxaQHRWqhCWncV7GATwpXDzeyj9J9XT9iHGJjnZTpJQ==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-18.1.0.tgz", + "integrity": "sha512-wZll/9/RSER1Vl6m9fXA/866OAUz2DSWYufvHEpJUoDPug/uZ+l9jOMZwlSk4PeMrF+/fNXoWx5HK2ZEwTv2qw==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/eslint-plugin": "18.0.1", - "@angular-eslint/eslint-plugin-template": "18.0.1", + "@angular-eslint/eslint-plugin": "18.1.0", + "@angular-eslint/eslint-plugin-template": "18.1.0", "@nx/devkit": "^19.0.6", "ignore": "5.3.1", "nx": "^19.0.6", @@ -370,13 +370,13 @@ } }, "node_modules/@angular-eslint/template-parser": { - "version": "18.0.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-18.0.1.tgz", - "integrity": "sha512-22fKzkWo9Ts8aY/WHL1A6seS2tpltgRRXVfnZnnqvQRyRiuPnx1FC0ly7+QPZkThh8vdLwxU+BvtLq9Uiqh9OQ==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-18.1.0.tgz", + "integrity": "sha512-YqBNusbt3vWbm8eo2dICytU8hP8/ez4uETkwKpMvB+H1E0rYaD2F17D47YO9BBFUHCNzAGIBlA8BWDN1kLEMlw==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.0.1", + "@angular-eslint/bundled-angular-compiler": "18.1.0", "eslint-scope": "^8.0.0" }, "peerDependencies": { @@ -385,24 +385,24 @@ } }, "node_modules/@angular-eslint/utils": { - "version": "18.0.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-18.0.1.tgz", - "integrity": "sha512-Q9lCySqg+9h2cz08+SoWj48cY1i04tL1k3bsQJmF2TsylAw2mSsNGX2X3h9WkdxY7sUoY0mP7MVW1iU54Gobcg==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-18.1.0.tgz", + "integrity": "sha512-pTCwbm9TPU1B0fxwhJg5qnJA2ILUJR0cT+rc7kejV0Xwl6RBXpMrzbuMzB9CucEY1au8hAR55I+Sc9znwSwuIw==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.0.1" + "@angular-eslint/bundled-angular-compiler": "18.1.0" }, "peerDependencies": { - "@typescript-eslint/utils": "^7.11.0 || ^8.0.0-alpha.20", + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0-alpha.37", "eslint": "^8.57.0 || ^9.0.0", "typescript": "*" } }, "node_modules/@angular/animations": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.0.4.tgz", - "integrity": "sha512-xbdtBUvpTGEmVQkCoOad26LBMRy9ddM9pvCidMZBWXiM7NEuc3dfVT99a1cU4MZFiJeiQEvOWQn03iXskbBMGQ==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.0.6.tgz", + "integrity": "sha512-43FOKRB0+ElHWNt6AGFoBKtYf8YqIc5mUP8jS4R7ff+M5c9KrDbRp1M+lzL3uARcncwfQjttyedKTz4IHRzi0g==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -411,18 +411,18 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.0.4" + "@angular/core": "18.0.6" } }, "node_modules/@angular/build": { - "version": "18.0.5", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.0.5.tgz", - "integrity": "sha512-6C+azPDYqPWX9/+53OTyvzmAKxrGwgQcDnueC/Sc6NZJOAs2VsOIn5ULPtcRDlrf/Rbo0dGM4OvKCM2q1BRuBg==", + "version": "18.0.7", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.0.7.tgz", + "integrity": "sha512-6XfLx8VHDIB6o0cAyOqX4sUok0tB24/AupAxTtQpt+fbwVOv6fj+M1dzGj+3bdopM6WzZUPiBxjk+o/3QRCEbA==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1800.5", + "@angular-devkit/architect": "0.1800.7", "@babel/core": "7.24.5", "@babel/helper-annotate-as-pure": "7.22.5", "@babel/helper-split-export-declaration": "7.24.5", @@ -484,9 +484,9 @@ } }, "node_modules/@angular/cdk": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.0.4.tgz", - "integrity": "sha512-OCG1EGv/nyZYGcSu7y6IAuarC5gZcZYhhvEQsgMUDrf1TGRSa+0dBN5W2HxRWKs6NsGgDjW1VcK+AC85PYLXPA==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.0.6.tgz", + "integrity": "sha512-9CmlQ8uZ0cHuj+1jDdabbFw90QpjrJzh1/cgeHN/8vAGE4ranxX3l6cqpVxuoWRLkB2ykTHt2xeoTM8y0d9ERA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -501,16 +501,16 @@ } }, "node_modules/@angular/cli": { - "version": "18.0.5", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.0.5.tgz", - "integrity": "sha512-w3NOdj6T7QhBmFleavc+AEhcAMyPkt7RsyWW2saufD6x55gzynGQZb9UBZwKDUAR6UtqchBX/HEBWCLNnjbiHg==", + "version": "18.0.7", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.0.7.tgz", + "integrity": "sha512-CHnpI6d6MpXFsx3750jN4IX3oeieIMKzUPVZUMvPgDbhGFfChHKdxdJStDjYsH47pORb2pMHULw0RJCAPvtB9A==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1800.5", - "@angular-devkit/core": "18.0.5", - "@angular-devkit/schematics": "18.0.5", - "@schematics/angular": "18.0.5", + "@angular-devkit/architect": "0.1800.7", + "@angular-devkit/core": "18.0.7", + "@angular-devkit/schematics": "18.0.7", + "@schematics/angular": "18.0.7", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.1.2", @@ -535,9 +535,9 @@ } }, "node_modules/@angular/common": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.0.4.tgz", - "integrity": "sha512-7WxZKLzSu5QtyLGrtlZrtUQlP3WfDR++yHr5jF9DJZ3IY35UutwiPCegCcq4Qh5X2xWqnRKGm20TLlKVoj0t5Q==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.0.6.tgz", + "integrity": "sha512-ARwNte/POelohW6DaNJQ56rZbEJMCvGSdhvaJNpJ0UlFxvKmK+6QmAcgLb5WwNoCqQcjtjUKavekhfNlpg5NBg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -546,14 +546,14 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.0.4", + "@angular/core": "18.0.6", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.0.4.tgz", - "integrity": "sha512-OVPXtJo5SkGQUCioCVxKcRfEw48tz8xCtJGDXjVKWtyOkXnmWl8Y/e54mteiJd1KybXHvPLW0LPtWZYB06Qy7g==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.0.6.tgz", + "integrity": "sha512-n0MuxGdKrzFfO/UWDf8FzXiPoGIyMXJ7bT+KHuctg1tIQWzTe3zsB7/6De/MGUz1oLkU9TuigF4KWdkSKf5Amg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -562,7 +562,7 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.0.4" + "@angular/core": "18.0.6" }, "peerDependenciesMeta": { "@angular/core": { @@ -571,9 +571,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.0.4.tgz", - "integrity": "sha512-pUv664JCZHKHsLDvO8iNjWXVHOB2ggKxVoxiowOMNpR4dqxrK/oOLGkPGltYUW/xF6Eajc7Zs0lK/R5uljoYQg==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.0.6.tgz", + "integrity": "sha512-D5UUcSB0JywnwsPg6svHjh+uZVhvJ9iHDFbj3sBGYSQ4NWu0P7tk9g43s8eOF53goYRkPeyCI1QkRGMLZLE8Vg==", "license": "MIT", "dependencies": { "@babel/core": "7.24.7", @@ -594,7 +594,7 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "18.0.4", + "@angular/compiler": "18.0.6", "typescript": ">=5.4 <5.5" } }, @@ -659,9 +659,9 @@ } }, "node_modules/@angular/core": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.0.4.tgz", - "integrity": "sha512-k0AUZbJc0eyzRexvKlR1sR0qNhe54Om9ln6lRn7y1+gAsg+OwFDyF427fFuzqpZVe/MmpvX3CXWdl0twZAYEiA==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.0.6.tgz", + "integrity": "sha512-a5ucQqCNI/6MzJl+r+NGvPqR/z44aVB1WttmZ/AbKIh2VIkEFp9VqOg+0HQnEItoMI8BnRbrsYHGp+D5Mtw8Jg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -675,9 +675,9 @@ } }, "node_modules/@angular/forms": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.0.4.tgz", - "integrity": "sha512-LM2rVIuJa2fGxP0oCy0uFSGY6h9tyL64gtGp02QqKaVszG4oJ8wue0/VSbBtKyH0xEN4eOXDzOXbiahbtFhRZA==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.0.6.tgz", + "integrity": "sha512-hwF/H5tVhMLC5qmGEaCCJI2yQ58o5rBY6dGTQhfWQn3+bntISQfZ+4mk1kT2iQeuiQCkI78KNhBV2bbLA9kGUw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -686,16 +686,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.0.4", - "@angular/core": "18.0.4", - "@angular/platform-browser": "18.0.4", + "@angular/common": "18.0.6", + "@angular/core": "18.0.6", + "@angular/platform-browser": "18.0.6", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-18.0.4.tgz", - "integrity": "sha512-KRManun2mRN3tSz2xfBfHwj8i2ZP/s2ovc04lkXSpQDeJZPpmE8C9wNJmpSQQZmPQuPm6BNA+iyoVJWj2TEBAw==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-18.0.6.tgz", + "integrity": "sha512-+CXqNHFW5D0JWF4IGNT4VUcZuBsxjCdVO+ou0f4CFl+QHgOwMy29xhm5pPmciDO4TdseUqy0+PvluBob9MzqkQ==", "dev": true, "license": "MIT", "engines": { @@ -703,9 +703,9 @@ } }, "node_modules/@angular/localize": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-18.0.4.tgz", - "integrity": "sha512-zHhBXdvovjCXkxWA/542DfRd1dc4xbXQWkI8TYQARd1SwuuCNHMVUY3Cll4TWGFQthywRMxyP70BTHIm4XBVgg==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-18.0.6.tgz", + "integrity": "sha512-Ks6PXmrhV4J01Ib2pyfoMMYdnRhkfMROVObr47XEZIlvbUpeDQ0oBdiSqD91AaSpGCQddVWcJda1geLFaVGugA==", "license": "MIT", "dependencies": { "@babel/core": "7.24.7", @@ -722,8 +722,8 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "18.0.4", - "@angular/compiler-cli": "18.0.4" + "@angular/compiler": "18.0.6", + "@angular/compiler-cli": "18.0.6" } }, "node_modules/@angular/localize/node_modules/@babel/core": { @@ -787,9 +787,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.0.4.tgz", - "integrity": "sha512-8TJEPzIRV89s1ZP9T+7g9K7PFNfec+4Xyw5BLaTRBOqjXHmMzk+miRx0L18Lr66rp5r2vbNEE9vojMVHQRwhVA==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.0.6.tgz", + "integrity": "sha512-ihEni4hIIwOPaWIY+elF7UjWLEpNwYPCql9xhcSA3/SpB8zdaqwV/JgEPnBd5+exwcGr07TGcZ3hLfM7xR6N/w==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -798,9 +798,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "18.0.4", - "@angular/common": "18.0.4", - "@angular/core": "18.0.4" + "@angular/animations": "18.0.6", + "@angular/common": "18.0.6", + "@angular/core": "18.0.6" }, "peerDependenciesMeta": { "@angular/animations": { @@ -809,9 +809,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.0.4.tgz", - "integrity": "sha512-K36/gamqs8etGlmWew7IwZ/bDJdI5ZeUqvOUmkKjJ9F2I/g5P/zZrB1qExwN/zsxzxd9idkvEhwY+YDeiZEEJg==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.0.6.tgz", + "integrity": "sha512-GTf8ZpUxvNT42z5Ia7qkqNXkdO4y0OR31gfJ8ZDHYFJoMtbkFExX/8rQdGSvDckkfws/DGTk+XcYZg+Vveal6Q==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -820,16 +820,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.0.4", - "@angular/compiler": "18.0.4", - "@angular/core": "18.0.4", - "@angular/platform-browser": "18.0.4" + "@angular/common": "18.0.6", + "@angular/compiler": "18.0.6", + "@angular/core": "18.0.6", + "@angular/platform-browser": "18.0.6" } }, "node_modules/@angular/router": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.0.4.tgz", - "integrity": "sha512-nr1ZI3lynKBtr3a75APuVkIaiXRG5mEnW/RIyxwzxbKBB14901mby46o0jm9Y/CPb2rH5UpuwZhTKRE6QS/xLw==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.0.6.tgz", + "integrity": "sha512-0hPs0ZVIEuf7MZd6quRCBsXEBMQvh0QHCjlj/WrRB3LSHs616mi+olApQ1DvwNZBYXfI7/qW7TQyUyNbm+xkfg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -838,9 +838,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.0.4", - "@angular/core": "18.0.4", - "@angular/platform-browser": "18.0.4", + "@angular/common": "18.0.6", + "@angular/core": "18.0.6", + "@angular/platform-browser": "18.0.6", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -3285,9 +3285,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz", - "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, "license": "MIT", "engines": { @@ -3914,9 +3914,9 @@ ] }, "node_modules/@ngtools/webpack": { - "version": "18.0.5", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-18.0.5.tgz", - "integrity": "sha512-Dx386WZZn0RwUaBHQYhDW8oi254SxEu8Ty5LHnStqBP6xXdcnsdGel+h9qvJ67He9iu8Rj0PB64EFE4PiklMdQ==", + "version": "18.0.7", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-18.0.7.tgz", + "integrity": "sha512-lXTy+SpLpoO5verX7TGTxV3sbD9MGWxMwJGdXA7DwZcVtDe5t38ZntzJUm7OpxWjRZ/OJn6JLmURNLcVNHzp9g==", "dev": true, "license": "MIT", "engines": { @@ -3983,9 +3983,9 @@ } }, "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz", + "integrity": "sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==", "dev": true, "license": "ISC", "engines": { @@ -4036,9 +4036,9 @@ } }, "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz", + "integrity": "sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==", "dev": true, "license": "ISC", "engines": { @@ -4132,9 +4132,9 @@ } }, "node_modules/@npmcli/package-json/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -4241,23 +4241,23 @@ } }, "node_modules/@nrwl/devkit": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-19.3.0.tgz", - "integrity": "sha512-WRcph/7U37HkTLIRzQ2oburZVfEFkPHJUn7vmo46gCq+N2cAKy3qwONO0RbthhjFIsG94YPXqFWFlV6k4nXpxA==", + "version": "19.4.0", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-19.4.0.tgz", + "integrity": "sha512-YlyxuGLP8ejDGPysGmZhIuXuuMts1yrFdcfuYp00jSND0B8ywWZ7U1v1SK+1AofPOKWl8CsGd4tpCcoZZL4/Ew==", "dev": true, "license": "MIT", "dependencies": { - "@nx/devkit": "19.3.0" + "@nx/devkit": "19.4.0" } }, "node_modules/@nrwl/tao": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-19.3.0.tgz", - "integrity": "sha512-MyGYeHbh9O4Tv9xmz3Du+/leY5sKUHaPy4ancfNyShHgYi21hemX0/YYjzzoYHi44D8GzSc1XG2rAuwba7Kilw==", + "version": "19.4.0", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-19.4.0.tgz", + "integrity": "sha512-0nfSmOM9YVNTvOCCR4OiStao96YynHBOlrDdo8zdwVbKUuppD1ZwvrCZmC0xzCcsgYcQVEAgs7G/CTuFNi7Wyg==", "dev": true, "license": "MIT", "dependencies": { - "nx": "19.3.0", + "nx": "19.4.0", "tslib": "^2.3.0" }, "bin": { @@ -4265,13 +4265,13 @@ } }, "node_modules/@nx/devkit": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-19.3.0.tgz", - "integrity": "sha512-Natya5nzvHH0qTOIL1w/EZtwMgDx87Dgz0LgeY7te2fULaNFcj5fVrP+mUKEJZR+NccO7GPumT2RPhuEl9rPnQ==", + "version": "19.4.0", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-19.4.0.tgz", + "integrity": "sha512-oQaFMky1c9QxRtynhIrajo60uSWjHU8DP0zHz1jSmQxiypDFzFwr6iJ03UYVbV72fqKIVzgN0nyp1oqYQ8UcOw==", "dev": true, "license": "MIT", "dependencies": { - "@nrwl/devkit": "19.3.0", + "@nrwl/devkit": "19.4.0", "ejs": "^3.1.7", "enquirer": "~2.3.6", "ignore": "^5.0.4", @@ -4286,9 +4286,9 @@ } }, "node_modules/@nx/nx-darwin-arm64": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.3.0.tgz", - "integrity": "sha512-TMTxjrN7Y/UsKFjmz0YfhVItLTGWqvud8cmQchw5NEjdNakfjXk0mREufO5/5PwoiRIsen6MbThoTprLpjOUiQ==", + "version": "19.4.0", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.4.0.tgz", + "integrity": "sha512-7QY/4cdLMi9+Paw5XUBNUUiAmDUBNLq2fp0TGmQvmSmgj3gQNLREjMpkfqHxYji15Z5BqV41mc67+aCSBh0B7w==", "cpu": [ "arm64" ], @@ -4303,9 +4303,9 @@ } }, "node_modules/@nx/nx-darwin-x64": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-19.3.0.tgz", - "integrity": "sha512-GH2L6ftnzdIs7JEdv7ZPCdbpAdB5sW6NijK07riYZSONzq5fEruD1yDWDkyZbYBb8RTxsparUWJnq8q1qxEPHQ==", + "version": "19.4.0", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-19.4.0.tgz", + "integrity": "sha512-urddRcndmMhZUeqQlc4y3iHe/fb91J+JA6zGZleV1a08XS1XeEHcnIMpDfpsadlarcq5fsItSZISCKC0hFPM2g==", "cpu": [ "x64" ], @@ -4320,9 +4320,9 @@ } }, "node_modules/@nx/nx-freebsd-x64": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.3.0.tgz", - "integrity": "sha512-1ow7Xku1yyjHviCKsWiuHCAnTd3fD+5O5c+e4DXHVthT8wnadKSotvBIWf38DMbMthl7na82e72OzxcdSbrVqQ==", + "version": "19.4.0", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.4.0.tgz", + "integrity": "sha512-TvV0SISYfWSu6/fTQStFj67rTSh80NNvF4SZ4tsnde0DdVsnKmWJruySXk7XeZN2Gx8tDwDwmLnBFNLdBb5x4w==", "cpu": [ "x64" ], @@ -4337,9 +4337,9 @@ } }, "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.3.0.tgz", - "integrity": "sha512-mYQMIUvNr2gww8vbg766uk/C1RxoC1fwioeP87bmV5NRUKSzJ8WEJVxAsqc9RGhAOUaNXOgEuKYrMcVhKyIKJQ==", + "version": "19.4.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.4.0.tgz", + "integrity": "sha512-vAOAnRe+ncSv9gSawstvla5+cOknr+ZrhtIc7kHtpmIakcczTl8TWQ/9sAgX45yHYl8wLYYUCokWogNwn9r7iA==", "cpu": [ "arm" ], @@ -4354,9 +4354,9 @@ } }, "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.3.0.tgz", - "integrity": "sha512-rHL3eQ0RHkeAXnhHHu/NIyouN/ykiXvgyNU3TuCd50+2MZcAbjB+Xq3mwL0MwiP+BQuptiE+snTuxFUJp4ZH6A==", + "version": "19.4.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.4.0.tgz", + "integrity": "sha512-x1+BQRt45ewrOF0YTHSb0u97shGA+eP0opye8AGo0aZALnaXSlJNSCgnMgP/TtPIqtZMFUJPvGUvDJ6vWJDmDQ==", "cpu": [ "arm64" ], @@ -4371,9 +4371,9 @@ } }, "node_modules/@nx/nx-linux-arm64-musl": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.3.0.tgz", - "integrity": "sha512-im0+OgOD6ShpTkI9ZRz7BjzxhQ/Lk3xjYmmCu+PFGmaybEnkNNDFwsgS0iEVKMdWZ/EQoQvJrqOYsX125iIBuQ==", + "version": "19.4.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.4.0.tgz", + "integrity": "sha512-0mgadMfETyVJJXmxma5hHfhR3o8NbjHmz0+ZLE7wUJSnd9rh9b/Kc6xxuXnXHrm/bNVC+UOFyc/iWv04A5Z5nw==", "cpu": [ "arm64" ], @@ -4388,9 +4388,9 @@ } }, "node_modules/@nx/nx-linux-x64-gnu": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.3.0.tgz", - "integrity": "sha512-k8q/d6WBSXOeUpBq6Mw69yMKL4n9LaX3o4LBNwBkVCEZ8p6s0njwKefLtjwnKlai0g/k5f0NcilU2zTwP/Ex8g==", + "version": "19.4.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.4.0.tgz", + "integrity": "sha512-7kBM0TCxO6IcwgGFCdkFPb2E+rkfpZZd97xtcQAfJi2mvzlQQtekIbM3J8uNcWveTbqDkVDJaJbpvrekloQfzw==", "cpu": [ "x64" ], @@ -4405,9 +4405,9 @@ } }, "node_modules/@nx/nx-linux-x64-musl": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.3.0.tgz", - "integrity": "sha512-sahEV99glBlpGKG1TIQ5PkJ0QvpHp69wWsBFK2DKtCETxOtsWqwvIjemxTCXRirTqeHiP7BiR6VWsf2YqqqBdw==", + "version": "19.4.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.4.0.tgz", + "integrity": "sha512-AwKsL3HAQVNoa0umEDKdNZEjOaq3H4QlJv3vDRNPk//jKFeswlpr3NCjK34RVCPDfzmtD07OM8DAaIys2MqeNw==", "cpu": [ "x64" ], @@ -4422,9 +4422,9 @@ } }, "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.3.0.tgz", - "integrity": "sha512-w03gFwLijStmhUji70QJHYo/U16ovybNczxGO7+5TT330X8/y+ihw9FCGHiIcujAjTAE88h0DKGn05WlNqRmfg==", + "version": "19.4.0", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.4.0.tgz", + "integrity": "sha512-/Cj2JaK3rwZSs1N3w3bi9WvITN4QnUU2yeb/9sGZm+UzJz3qi5gifvegzVDqWS+cZ6eiaekvfDwUlp1qX4MqxA==", "cpu": [ "arm64" ], @@ -4439,9 +4439,9 @@ } }, "node_modules/@nx/nx-win32-x64-msvc": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.3.0.tgz", - "integrity": "sha512-M7e2zXGfTjH8NLiwqKLdWC9VlfMSQDYlI4/SM4OSpPqhUTfPlRPa+wNKNTG7perKfDXxE9ei8yjocujknXJk/A==", + "version": "19.4.0", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.4.0.tgz", + "integrity": "sha512-vU7/+j+8QDSclhaPKZy0qm5W9Jjo8nXJxmgUYbrI+rF9ytfoiL/9e8j0FL9ZYoQ7DScMnEK4JrcrgdtsGLsSRA==", "cpu": [ "x64" ], @@ -4804,14 +4804,14 @@ } }, "node_modules/@schematics/angular": { - "version": "18.0.5", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.0.5.tgz", - "integrity": "sha512-dV50GIEGl6S5wE6xtAhmHWdLhsOlnNUpAx/v3BPR2AOr90zJvIM03TqAQTzAlnPatxK2WLelRgqVMbPfAVvLAg==", + "version": "18.0.7", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.0.7.tgz", + "integrity": "sha512-46jcRDnMYfnwN5CAXimbptbrBdLrNhG3NFGNT1B2O9DzmlXwLclK/z7lz/v70RcBNWMnOcnsYMFB4IbLhN/Fog==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.0.5", - "@angular-devkit/schematics": "18.0.5", + "@angular-devkit/core": "18.0.7", + "@angular-devkit/schematics": "18.0.7", "jsonc-parser": "3.2.1" }, "engines": { @@ -4939,9 +4939,9 @@ } }, "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -5141,9 +5141,9 @@ "license": "MIT" }, "node_modules/@types/lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw==", + "version": "4.17.6", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.6.tgz", + "integrity": "sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA==", "dev": true, "license": "MIT" }, @@ -5165,9 +5165,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.14.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.7.tgz", - "integrity": "sha512-uTr2m2IbJJucF3KUxgnGOZvYbN0QgkGyWxG6973HCpMYFy2KfcgYuIwkJQMQkt1VbBMlvWRbpshFTLxnxCZjKQ==", + "version": "20.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz", + "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", "dev": true, "license": "MIT", "dependencies": { @@ -5266,17 +5266,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.1.tgz", - "integrity": "sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.15.0.tgz", + "integrity": "sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.13.1", - "@typescript-eslint/type-utils": "7.13.1", - "@typescript-eslint/utils": "7.13.1", - "@typescript-eslint/visitor-keys": "7.13.1", + "@typescript-eslint/scope-manager": "7.15.0", + "@typescript-eslint/type-utils": "7.15.0", + "@typescript-eslint/utils": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -5299,17 +5299,135 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.15.0.tgz", + "integrity": "sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", + "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.15.0.tgz", + "integrity": "sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.15.0.tgz", + "integrity": "sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.15.0", + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/typescript-estree": "7.15.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", + "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.15.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/parser": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.13.1.tgz", - "integrity": "sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.15.0.tgz", + "integrity": "sha512-k9fYuQNnypLFcqORNClRykkGOMOj+pV6V91R4GO/l1FDGwpqmSwoOQrOHo3cGaH63e+D3ZiCAOsuS/D2c99j/A==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "7.13.1", - "@typescript-eslint/types": "7.13.1", - "@typescript-eslint/typescript-estree": "7.13.1", - "@typescript-eslint/visitor-keys": "7.13.1", + "@typescript-eslint/scope-manager": "7.15.0", + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/typescript-estree": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", "debug": "^4.3.4" }, "engines": { @@ -5328,15 +5446,15 @@ } } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.1.tgz", - "integrity": "sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg==", + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.15.0.tgz", + "integrity": "sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.13.1", - "@typescript-eslint/visitor-keys": "7.13.1" + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -5346,15 +5464,111 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", + "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.15.0.tgz", + "integrity": "sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", + "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.15.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.0.0-alpha.40", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.0.0-alpha.40.tgz", + "integrity": "sha512-KQL502sCGZW+dYvxIzF6rEozbgppN0mBkYV6kT8ciY5OtFIRlLDTP7NdVAMMDk7q35T7Ad8negaQ9AGpZ8+Y5w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@typescript-eslint/types": "8.0.0-alpha.40", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.40" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.13.1.tgz", - "integrity": "sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.15.0.tgz", + "integrity": "sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "7.13.1", - "@typescript-eslint/utils": "7.13.1", + "@typescript-eslint/typescript-estree": "7.15.0", + "@typescript-eslint/utils": "7.15.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -5374,12 +5588,16 @@ } } }, - "node_modules/@typescript-eslint/types": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.1.tgz", - "integrity": "sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw==", + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.15.0.tgz", + "integrity": "sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==", "dev": true, "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0" + }, "engines": { "node": "^18.18.0 || >=20.0.0" }, @@ -5388,15 +5606,29 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.1.tgz", - "integrity": "sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw==", + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", + "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.15.0.tgz", + "integrity": "sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "7.13.1", - "@typescript-eslint/visitor-keys": "7.13.1", + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -5417,12 +5649,115 @@ } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.15.0.tgz", + "integrity": "sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.15.0", + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/typescript-estree": "7.15.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", + "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.15.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.0.0-alpha.40", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.0.0-alpha.40.tgz", + "integrity": "sha512-44mUq4VZVydxNlOM8Xtp/BXDkyfuvvjgPIBf7vRQDutrLDeNS0pJ9pcSloSbop5MwKLfJjBU+PbwnJPQM+DWNg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.0.0-alpha.40", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.0.0-alpha.40.tgz", + "integrity": "sha512-bz1rX5GXvGdx686FghDxPqGwgntlseZCQSRrVGDDOZlLSoWJnbfkzxXGOWch9c3ttcGkdFy/DiCyKKga3hrq0g==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "@typescript-eslint/types": "8.0.0-alpha.40", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.40", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5434,40 +5769,42 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.13.1.tgz", - "integrity": "sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==", + "version": "8.0.0-alpha.40", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.0.0-alpha.40.tgz", + "integrity": "sha512-ijxO1Hs3YWveuWK+Vbt25D05Q41UeK08JwEJbWTzV38LmkdCBktQd7X1sTw4W9Qku692HWuHgesZf6OhC8t3aA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.13.1", - "@typescript-eslint/types": "7.13.1", - "@typescript-eslint/typescript-estree": "7.13.1" + "@typescript-eslint/scope-manager": "8.0.0-alpha.40", + "@typescript-eslint/types": "8.0.0-alpha.40", + "@typescript-eslint/typescript-estree": "8.0.0-alpha.40" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.1.tgz", - "integrity": "sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA==", + "version": "8.0.0-alpha.40", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.0.0-alpha.40.tgz", + "integrity": "sha512-y1stojSPb5D3M8VlGGpaiBU5XxGLe+sPuW0YbLe09Lxvo4AwKGvhAr5lhqJZo4z6qHNz385+6+BS63+qIQdYLw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "@typescript-eslint/types": "7.13.1", + "@typescript-eslint/types": "8.0.0-alpha.40", "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -5759,9 +6096,9 @@ } }, "node_modules/acorn": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", - "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, "license": "MIT", "bin": { @@ -6471,9 +6808,9 @@ } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz", + "integrity": "sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==", "dev": true, "license": "ISC", "engines": { @@ -6481,9 +6818,9 @@ } }, "node_modules/cacache/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -6527,9 +6864,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001636", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz", - "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==", + "version": "1.0.30001640", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz", + "integrity": "sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==", "funding": [ { "type": "opencollective", @@ -7643,26 +7980,32 @@ } }, "node_modules/dotenv": { - "version": "16.3.2", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.2.tgz", - "integrity": "sha512-HTlk5nmhkm8F6JcdXvHIzaorzCoziNQT9mGxLPVXW8wJF1TiGSL60ZGB4gHWabHOaMmWmhvk2/lPHfnBiT78AQ==", + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" + "url": "https://dotenvx.com" } }, "node_modules/dotenv-expand": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", - "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", + "version": "11.0.6", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.6.tgz", + "integrity": "sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==", "dev": true, "license": "BSD-2-Clause", + "dependencies": { + "dotenv": "^16.4.4" + }, "engines": { "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" } }, "node_modules/duplexer": { @@ -7703,9 +8046,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.808", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.808.tgz", - "integrity": "sha512-0ItWyhPYnww2VOuCGF4s1LTfbrdAV2ajy/TN+ZTuhR23AHI6rWHCrBXJ/uxoXOvRRqw8qjYVrG81HFI7x/2wdQ==", + "version": "1.4.816", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz", + "integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -7919,9 +8262,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.3.tgz", - "integrity": "sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", "dev": true, "license": "MIT" }, @@ -9261,9 +9604,9 @@ } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz", + "integrity": "sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==", "dev": true, "license": "ISC", "engines": { @@ -12110,9 +12453,9 @@ } }, "node_modules/node-gyp/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -12181,14 +12524,13 @@ } }, "node_modules/normalize-package-data": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.1.tgz", - "integrity": "sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", "dev": true, "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, @@ -12343,14 +12685,14 @@ } }, "node_modules/nx": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/nx/-/nx-19.3.0.tgz", - "integrity": "sha512-WILWiROUkZWwuPJ12tP24Z0NULPEhxFN9i55/fECuVXYaFtkg6FvEne9C4d4bRqhZPcbrz6WhHnzE3NhdjH7XQ==", + "version": "19.4.0", + "resolved": "https://registry.npmjs.org/nx/-/nx-19.4.0.tgz", + "integrity": "sha512-tTdKqJ7e9imww6fyx3KrLcMz7oAFIcHFeXTZtdXbyDjIQJaN0HK4hicGVc1t1d1iB81KFfUVpX8/QztdB58Q9A==", "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { - "@nrwl/tao": "19.3.0", + "@nrwl/tao": "19.4.0", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "3.0.0-rc.46", "@zkochan/js-yaml": "0.0.7", @@ -12359,8 +12701,8 @@ "cli-cursor": "3.1.0", "cli-spinners": "2.6.1", "cliui": "^8.0.1", - "dotenv": "~16.3.1", - "dotenv-expand": "~10.0.0", + "dotenv": "~16.4.5", + "dotenv-expand": "~11.0.6", "enquirer": "~2.3.6", "figures": "3.2.0", "flat": "^5.0.2", @@ -12390,16 +12732,16 @@ "nx-cloud": "bin/nx-cloud.js" }, "optionalDependencies": { - "@nx/nx-darwin-arm64": "19.3.0", - "@nx/nx-darwin-x64": "19.3.0", - "@nx/nx-freebsd-x64": "19.3.0", - "@nx/nx-linux-arm-gnueabihf": "19.3.0", - "@nx/nx-linux-arm64-gnu": "19.3.0", - "@nx/nx-linux-arm64-musl": "19.3.0", - "@nx/nx-linux-x64-gnu": "19.3.0", - "@nx/nx-linux-x64-musl": "19.3.0", - "@nx/nx-win32-arm64-msvc": "19.3.0", - "@nx/nx-win32-x64-msvc": "19.3.0" + "@nx/nx-darwin-arm64": "19.4.0", + "@nx/nx-darwin-x64": "19.4.0", + "@nx/nx-freebsd-x64": "19.4.0", + "@nx/nx-linux-arm-gnueabihf": "19.4.0", + "@nx/nx-linux-arm64-gnu": "19.4.0", + "@nx/nx-linux-arm64-musl": "19.4.0", + "@nx/nx-linux-x64-gnu": "19.4.0", + "@nx/nx-linux-x64-musl": "19.4.0", + "@nx/nx-win32-arm64-msvc": "19.4.0", + "@nx/nx-win32-x64-msvc": "19.4.0" }, "peerDependencies": { "@swc-node/register": "^1.8.0", @@ -12531,11 +12873,14 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", "dev": true, "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -13036,9 +13381,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz", + "integrity": "sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==", "dev": true, "license": "ISC", "engines": { @@ -13194,9 +13539,9 @@ } }, "node_modules/pkg-dir/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", "dev": true, "license": "MIT", "engines": { @@ -14507,15 +14852,15 @@ } }, "node_modules/socks-proxy-agent": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", - "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", "dev": true, "license": "MIT", "dependencies": { "agent-base": "^7.1.1", "debug": "^4.3.4", - "socks": "^2.7.1" + "socks": "^2.8.3" }, "engines": { "node": ">= 14" @@ -14998,9 +15343,9 @@ "license": "ISC" }, "node_modules/terser": { - "version": "5.31.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz", - "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", + "version": "5.29.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.2.tgz", + "integrity": "sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -15187,10 +15532,11 @@ } }, "node_modules/tree-dump": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.1.tgz", - "integrity": "sha512-WCkcRBVPSlHHq1dc/px9iOfqklvzCbdRwvlNfxGZsrHqf6aZttfPrd7DJTt6oR10dwUfpFFQeVTkPbBIZxX/YA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", + "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.0" }, @@ -15453,9 +15799,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "funding": [ { "type": "opencollective", @@ -16314,9 +16660,9 @@ } }, "node_modules/webpack-dev-server/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index c247ebc4..14ddae4e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coreui-angular-dev", - "version": "5.2.2", + "version": "5.2.3", "description": "CoreUI Components Library for Angular", "copyright": "Copyright 2024 creativeLabs Łukasz Holeczek", "license": "MIT", @@ -36,16 +36,16 @@ }, "private": true, "dependencies": { - "@angular/animations": "^18.0.4", - "@angular/cdk": "^18.0.4", - "@angular/common": "^18.0.4", - "@angular/compiler": "^18.0.4", - "@angular/core": "^18.0.4", - "@angular/forms": "^18.0.4", - "@angular/localize": "^18.0.4", - "@angular/platform-browser": "^18.0.4", - "@angular/platform-browser-dynamic": "^18.0.4", - "@angular/router": "^18.0.4", + "@angular/animations": "^18.0.6", + "@angular/cdk": "^18.0.6", + "@angular/common": "^18.0.6", + "@angular/compiler": "^18.0.6", + "@angular/core": "^18.0.6", + "@angular/forms": "^18.0.6", + "@angular/localize": "^18.0.6", + "@angular/platform-browser": "^18.0.6", + "@angular/platform-browser-dynamic": "^18.0.6", + "@angular/router": "^18.0.6", "@coreui/chartjs": "^4.0.0", "@coreui/icons": "^3.0.1", "@popperjs/core": "~2.11.8", @@ -56,20 +56,20 @@ "zone.js": "~0.14.7" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.0.5", - "@angular-eslint/builder": "^18.0.1", - "@angular-eslint/eslint-plugin": "^18.0.1", - "@angular-eslint/eslint-plugin-template": "^18.0.1", - "@angular-eslint/schematics": "^18.0.1", - "@angular-eslint/template-parser": "^18.0.1", - "@angular/cli": "^18.0.5", - "@angular/compiler-cli": "^18.0.4", - "@angular/language-service": "^18.0.4", + "@angular-devkit/build-angular": "^18.0.7", + "@angular-eslint/builder": "18.1.0", + "@angular-eslint/eslint-plugin": "18.1.0", + "@angular-eslint/eslint-plugin-template": "18.1.0", + "@angular-eslint/schematics": "18.1.0", + "@angular-eslint/template-parser": "18.1.0", + "@angular/cli": "^18.0.7", + "@angular/compiler-cli": "^18.0.6", + "@angular/language-service": "^18.0.6", "@types/jasmine": "^5.1.4", "@types/lodash-es": "^4.17.12", "@types/node": "^20.14.7", - "@typescript-eslint/eslint-plugin": "^7.13.1", - "@typescript-eslint/parser": "^7.13.1", + "@typescript-eslint/eslint-plugin": "^7.15.0", + "@typescript-eslint/parser": "^7.15.0", "eslint": "^8.57.0", "jasmine-core": "^5.1.2", "karma": "^6.4.3", diff --git a/projects/coreui-angular-chartjs/package.json b/projects/coreui-angular-chartjs/package.json index 010d91e4..ebe38cc7 100644 --- a/projects/coreui-angular-chartjs/package.json +++ b/projects/coreui-angular-chartjs/package.json @@ -1,6 +1,6 @@ { "name": "@coreui/angular-chartjs", - "version": "5.2.2", + "version": "5.2.3", "description": "Angular wrapper component for Chart.js", "copyright": "Copyright 2024 creativeLabs Łukasz Holeczek", "license": "MIT", diff --git a/projects/coreui-angular/package.json b/projects/coreui-angular/package.json index da9d97fc..dcba6855 100644 --- a/projects/coreui-angular/package.json +++ b/projects/coreui-angular/package.json @@ -1,6 +1,6 @@ { "name": "@coreui/angular", - "version": "5.2.2", + "version": "5.2.3", "description": "CoreUI Components Library for Angular", "copyright": "Copyright 2024 creativeLabs Łukasz Holeczek", "license": "MIT", @@ -29,7 +29,7 @@ "@angular/core": "^18.0.0", "@angular/router": "^18.0.0", "@coreui/coreui": "^5.0.0", - "@coreui/icons-angular": "~5.2.0-0 || ~5.2.0", + "@coreui/icons-angular": "~5.2.0", "rxjs": "^7.8.1" }, "repository": { diff --git a/projects/coreui-angular/src/lib/accordion/accordion-button/accordion-button.directive.ts b/projects/coreui-angular/src/lib/accordion/accordion-button/accordion-button.directive.ts index eea91558..096f0b9c 100644 --- a/projects/coreui-angular/src/lib/accordion/accordion-button/accordion-button.directive.ts +++ b/projects/coreui-angular/src/lib/accordion/accordion-button/accordion-button.directive.ts @@ -2,10 +2,10 @@ import { Directive, HostBinding, Input } from '@angular/core'; @Directive({ selector: '[cAccordionButton]', - standalone: true + standalone: true, + host: { class: 'accordion-button' } }) export class AccordionButtonDirective { - /** * Toggles an accordion button collapsed state. Use in accordionHeaderTemplate. [docs] * @type boolean @@ -13,12 +13,13 @@ export class AccordionButtonDirective { @Input() collapsed!: boolean; /** - * Default type for cAccordionButton. [docs] + * Default type for cAccordionButton. [docs] * @type string * @default 'button' */ @HostBinding('attr.type') - @Input() type = 'button'; + @Input() + type: string = 'button'; @HostBinding('class') get hostClasses(): any { diff --git a/projects/coreui-angular/src/lib/accordion/accordion-item/accordion-item.component.ts b/projects/coreui-angular/src/lib/accordion/accordion-item/accordion-item.component.ts index 09059cda..ee58d4f6 100644 --- a/projects/coreui-angular/src/lib/accordion/accordion-item/accordion-item.component.ts +++ b/projects/coreui-angular/src/lib/accordion/accordion-item/accordion-item.component.ts @@ -24,13 +24,11 @@ let nextId = 0; styleUrls: ['./accordion-item.component.scss'], exportAs: 'cAccordionItem', standalone: true, - imports: [AccordionButtonDirective, NgTemplateOutlet, CollapseDirective] + imports: [AccordionButtonDirective, NgTemplateOutlet, CollapseDirective], + host: { class: 'accordion-item' } }) export class AccordionItemComponent implements OnInit, OnDestroy, AfterContentInit { - - constructor( - private accordionService: AccordionService - ) { } + constructor(private accordionService: AccordionService) {} /** * Toggle an accordion item programmatically @@ -79,4 +77,3 @@ export class AccordionItemComponent implements OnInit, OnDestroy, AfterContentIn }); } } - diff --git a/projects/coreui-angular/src/lib/accordion/accordion/accordion.component.ts b/projects/coreui-angular/src/lib/accordion/accordion/accordion.component.ts index a30c7df5..1461bed0 100644 --- a/projects/coreui-angular/src/lib/accordion/accordion/accordion.component.ts +++ b/projects/coreui-angular/src/lib/accordion/accordion/accordion.component.ts @@ -4,15 +4,15 @@ import { AccordionService } from '../accordion.service'; @Component({ selector: 'c-accordion', - template: '', + template: '', styleUrls: ['./accordion.component.scss'], exportAs: 'cAccordionItem', providers: [AccordionService], - standalone: true + standalone: true, + host: { class: 'accordion' } }) export class AccordionComponent { - - #accordionService = inject(AccordionService); + #accordionService = inject(AccordionService); /** * Removes the default background-color, some borders, and some rounded corners to render accordions edge-to-edge with their parent container. @@ -40,5 +40,4 @@ export class AccordionComponent { 'accordion-flush': this.flush }; } - } diff --git a/projects/coreui-angular/src/lib/avatar/avatar.component.html b/projects/coreui-angular/src/lib/avatar/avatar.component.html index 4d44eda9..f759f162 100644 --- a/projects/coreui-angular/src/lib/avatar/avatar.component.html +++ b/projects/coreui-angular/src/lib/avatar/avatar.component.html @@ -1,14 +1,9 @@ - - - @if (!!status) { - + + @if (src()) { + {{alt()}} } - + +@if (!!status()) { + +} - - @if (!!src) { - {{alt}} - } @else { - - } - diff --git a/projects/coreui-angular/src/lib/avatar/avatar.component.ts b/projects/coreui-angular/src/lib/avatar/avatar.component.ts index 75134da6..8c1923a2 100644 --- a/projects/coreui-angular/src/lib/avatar/avatar.component.ts +++ b/projects/coreui-angular/src/lib/avatar/avatar.component.ts @@ -1,5 +1,5 @@ -import { Component, HostBinding, Input } from '@angular/core'; -import { NgClass, NgOptimizedImage, NgTemplateOutlet } from '@angular/common'; +import { Component, computed, HostBinding, input, InputSignal } from '@angular/core'; +import { NgClass, NgOptimizedImage } from '@angular/common'; import { Colors, Shapes, Sizes, TextColors } from '../coreui.types'; import { TextColorDirective } from '../utilities'; @@ -8,72 +8,73 @@ import { TextColorDirective } from '../utilities'; selector: 'c-avatar', templateUrl: './avatar.component.html', standalone: true, - imports: [NgTemplateOutlet, NgClass, NgOptimizedImage], + imports: [NgClass, NgOptimizedImage], hostDirectives: [ { directive: TextColorDirective, inputs: ['cTextColor: textColor'] } - ] + ], + host: { class: 'avatar' } }) export class AvatarComponent { /** * Sets the background color context of the component to one of CoreUI’s themed colors. * @type Colors */ - @Input() color?: Colors; + readonly color: InputSignal = input(); /** * Select the shape of the component. * @type Shapes */ - @Input() shape?: Shapes; + readonly shape: InputSignal = input(); /** * Size the component small, large, or extra large. * @default 'md' */ - @Input() size?: Omit = 'md'; + readonly size: InputSignal> = input>('md'); /** * The alt attribute for the img element alternate text. * @type string */ - @Input() alt: string = ''; + readonly alt: InputSignal = input(''); /** * The src attribute for the img element. * @type string */ - @Input() src?: string; + readonly src: InputSignal = input(); /** * Sets the color context of the status indicator to one of CoreUI’s themed colors. * @type Colors */ - @Input() status?: Colors; + readonly status: InputSignal = input(); /** * Sets the text color of the component to one of CoreUI’s themed colors. * via TextColorDirective * @type TextColors */ - @Input() textColor?: TextColors; + readonly textColor: InputSignal = input(); - get statusClass(): any { + readonly statusClass = computed(() => { return { 'avatar-status': true, - [`bg-${this.status}`]: !!this.status + [`bg-${this.status()}`]: !!this.status() }; - } + }); @HostBinding('class') get hostClasses(): any { return { avatar: true, - [`avatar-${this.size}`]: !!this.size, - [`bg-${this.color}`]: !!this.color, - [`${this.shape}`]: !!this.shape + [`avatar-${this.size()}`]: !!this.size(), + [`bg-${this.color()}`]: !!this.color(), + [`${this.shape()}`]: !!this.shape() }; } } diff --git a/projects/coreui-angular/src/lib/badge/badge.component.ts b/projects/coreui-angular/src/lib/badge/badge.component.ts index da4831f0..0c7a1ad6 100644 --- a/projects/coreui-angular/src/lib/badge/badge.component.ts +++ b/projects/coreui-angular/src/lib/badge/badge.component.ts @@ -1,4 +1,4 @@ -import { Component, HostBinding, Input } from '@angular/core'; +import { Component, HostBinding, input, InputSignal } from '@angular/core'; import { BadgePositions, Colors, Shapes, TextColors } from '../coreui.types'; import { TextBgColorDirective, TextColorDirective } from '../utilities'; @@ -9,35 +9,40 @@ import { TextBgColorDirective, TextColorDirective } from '../utilities'; hostDirectives: [ { directive: TextColorDirective, inputs: ['cTextColor: textColor'] }, { directive: TextBgColorDirective, inputs: ['cTextBgColor: textBgColor'] } - ] + ], + host: { + class: 'badge' + } }) export class BadgeComponent { /** * Sets the color context of the component to one of CoreUI’s themed colors. * @type Colors */ - @Input() color?: Colors; + readonly color: InputSignal = input(); /** * Position badge in one of the corners of a link or button. * @type BadgePositions */ - @Input() position?: BadgePositions; + readonly position: InputSignal = input(); + /** * Select the shape of the component. * @type Shapes */ - @Input() shape?: Shapes; + readonly shape: InputSignal = input(); + /** * Size the component small. */ - @Input() size?: 'sm'; + readonly size: InputSignal<'sm' | undefined> = input(); /** * Sets the text color of the component to one of CoreUI’s themed colors. * via TextColorDirective * @type TextColors */ - @Input() textColor?: TextColors; + readonly textColor: InputSignal = input(); /** * Sets the component's color scheme to one of CoreUI's themed colors, ensuring the text color contrast adheres to the WCAG 4.5:1 contrast ratio standard for accessibility. @@ -45,25 +50,28 @@ export class BadgeComponent { * @type Colors * @since 5.0.0 */ - @Input() textBgColor?: Colors; + readonly textBgColor: InputSignal = input(); @HostBinding('class') get hostClasses(): any { + const position = this.position(); const positionClasses = { - 'position-absolute': !!this.position, - 'translate-middle': !!this.position, - 'top-0': this.position?.includes('top'), - 'top-100': this.position?.includes('bottom'), - 'start-100': this.position?.includes('end'), - 'start-0': this.position?.includes('start') + 'position-absolute': !!position, + 'translate-middle': !!position, + 'top-0': position?.includes('top'), + 'top-100': position?.includes('bottom'), + 'start-100': position?.includes('end'), + 'start-0': position?.includes('start') }; - return Object.assign({ + return Object.assign( + { badge: true, - [`bg-${this.color}`]: !!this.color, - [`badge-${this.size}`]: !!this.size, - [`${this.shape}`]: !!this.shape - }, !!this.position ? positionClasses : {} + [`bg-${this.color()}`]: !!this.color(), + [`badge-${this.size()}`]: !!this.size(), + [`${this.shape()}`]: !!this.shape() + }, + !!position ? positionClasses : {} ); } } diff --git a/projects/coreui-angular/src/lib/card/card.component.ts b/projects/coreui-angular/src/lib/card/card.component.ts index e6e10716..13dc36be 100644 --- a/projects/coreui-angular/src/lib/card/card.component.ts +++ b/projects/coreui-angular/src/lib/card/card.component.ts @@ -1,4 +1,4 @@ -import { Component, HostBinding, Input } from '@angular/core'; +import { Component, HostBinding, input, InputSignal } from '@angular/core'; import { Colors, TextColors } from '../coreui.types'; import { TextBgColorDirective, TextColorDirective } from '../utilities'; @@ -9,36 +9,38 @@ import { TextBgColorDirective, TextColorDirective } from '../utilities'; hostDirectives: [ { directive: TextColorDirective, inputs: ['cTextColor: textColor'] }, { directive: TextBgColorDirective, inputs: ['cTextBgColor: textBgColor'] } - ] + ], + host: { + class: 'card' + } }) export class CardComponent { - /** * Sets the color context of the component to one of CoreUI’s themed colors. * @type Colors */ - @Input() color?: Colors; + readonly color: InputSignal = input(); /** * Sets the text color context of the component to one of CoreUI’s themed colors. * via TextColorDirective * @type TextColors */ - @Input() textColor?: TextColors; + readonly textColor: InputSignal = input(); /** - * Sets the component's color scheme to one of CoreUI's themed colors, ensuring the text color contrast adheres to the WCAG 4.5:1 contrast ratio standard for accessibility. + * Sets the component's color scheme to one of CoreUI themed colors, ensuring the text color contrast adheres to the WCAG 4.5:1 contrast ratio standard for accessibility. * via TextBgColorDirective * @type Colors * @since 5.0.0 */ - @Input() textBgColor?: Colors; + readonly textBgColor: InputSignal = input(); @HostBinding('class') get hostClasses(): any { return { card: true, - [`bg-${this.color}`]: !!this.color + [`bg-${this.color()}`]: !!this.color() }; } } diff --git a/projects/coreui-angular/src/lib/modal/modal/modal.component.ts b/projects/coreui-angular/src/lib/modal/modal/modal.component.ts index 4ef8e491..138b2b14 100644 --- a/projects/coreui-angular/src/lib/modal/modal/modal.component.ts +++ b/projects/coreui-angular/src/lib/modal/modal/modal.component.ts @@ -54,7 +54,6 @@ import { ModalDialogComponent } from '../modal-dialog/modal-dialog.component'; imports: [ModalDialogComponent, ModalContentComponent, A11yModule] }) export class ModalComponent implements OnInit, OnDestroy, AfterViewInit { - #destroyRef = inject(DestroyRef); #focusMonitor = inject(FocusMonitor); @@ -64,7 +63,7 @@ export class ModalComponent implements OnInit, OnDestroy, AfterViewInit { private hostElement: ElementRef, private modalService: ModalService, private backdropService: BackdropService - ) { } + ) {} /** * Align the modal in the center or top of the screen. @@ -90,34 +89,40 @@ export class ModalComponent implements OnInit, OnDestroy, AfterViewInit { * @default true */ @Input({ transform: booleanAttribute }) keyboard: boolean = true; + @Input() id?: string; + /** * Size the component small, large, or extra large. */ @Input() size?: 'sm' | 'lg' | 'xl'; + /** * Remove animation to create modal that simply appear rather than fade in to view. */ @Input({ transform: booleanAttribute }) transition = true; + /** * Default role for modal. [docs] * @type string * @default 'dialog' */ @Input() @HostBinding('attr.role') role: string = 'dialog'; + /** * Set aria-modal html attr for modal. [docs] * @type boolean * @default null */ - @Input() @HostBinding('attr.aria-modal') + @Input() + @HostBinding('attr.aria-modal') set ariaModal(value: boolean | null) { this.#ariaModal = value; } get ariaModal(): boolean | null { return this.visible || this.#ariaModal ? true : null; - }; + } #ariaModal: boolean | null = null; @@ -154,8 +159,12 @@ export class ModalComponent implements OnInit, OnDestroy, AfterViewInit { this.#activeElement = this.document.activeElement as HTMLElement; // this.#activeElement?.blur(); setTimeout(() => { - const focusable = this.modalContentRef.nativeElement.querySelectorAll('[tabindex]:not([tabindex="-1"]), button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled])'); - this.#focusMonitor.focusVia(focusable[0], 'keyboard'); + const focusable = this.modalContentRef.nativeElement.querySelectorAll( + '[tabindex]:not([tabindex="-1"]), button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled])' + ); + if (focusable.length) { + this.#focusMonitor.focusVia(focusable[0], 'keyboard'); + } }); } else { if (this.document.contains(this.#activeElement)) { @@ -191,7 +200,7 @@ export class ModalComponent implements OnInit, OnDestroy, AfterViewInit { @HostBinding('attr.aria-hidden') get ariaHidden(): boolean | null { return this.visible ? null : true; - }; + } @HostBinding('attr.tabindex') get tabIndex(): string | null { @@ -255,7 +264,6 @@ export class ModalComponent implements OnInit, OnDestroy, AfterViewInit { @HostListener('click', ['$event']) public onClickHandler($event: MouseEvent): void { - if (this.mouseDownTarget !== $event.target) { this.mouseDownTarget = null; return; @@ -263,7 +271,6 @@ export class ModalComponent implements OnInit, OnDestroy, AfterViewInit { const targetElement = $event.target; if (targetElement === this.hostElement.nativeElement) { - if (this.backdrop === 'static') { this.setStaticBackdrop(); return; @@ -289,27 +296,23 @@ export class ModalComponent implements OnInit, OnDestroy, AfterViewInit { } private stateToggleSubscribe(): void { - this.modalService.modalState$ - .pipe( - takeUntilDestroyed(this.#destroyRef) - ) - .subscribe( - (action) => { - if (this === action.modal || this.id === action.id) { - if ('show' in action) { - this.visible = action?.show === 'toggle' ? !this.visible : action.show; - } - } else { - if (this.visible) { - this.visible = false; - } - } + this.modalService.modalState$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((action) => { + if (this === action.modal || this.id === action.id) { + if ('show' in action) { + this.visible = action?.show === 'toggle' ? !this.visible : action.show; } - ); + } else { + if (this.visible) { + this.visible = false; + } + } + }); } private setBackdrop(setBackdrop: boolean): void { - this.#activeBackdrop = setBackdrop ? this.backdropService.setBackdrop('modal') : this.backdropService.clearBackdrop(this.#activeBackdrop); + this.#activeBackdrop = setBackdrop + ? this.backdropService.setBackdrop('modal') + : this.backdropService.clearBackdrop(this.#activeBackdrop); } private setBodyStyles(open: boolean): void { diff --git a/projects/coreui-angular/src/lib/utilities/text-bg-color.directive.spec.ts b/projects/coreui-angular/src/lib/utilities/text-bg-color.directive.spec.ts index bdde3ec7..fc70b7d8 100644 --- a/projects/coreui-angular/src/lib/utilities/text-bg-color.directive.spec.ts +++ b/projects/coreui-angular/src/lib/utilities/text-bg-color.directive.spec.ts @@ -1,8 +1,11 @@ +import { TestBed } from '@angular/core/testing'; import { TextBgColorDirective } from './text-bg-color.directive'; describe('TextBgColorDirective', () => { it('should create an instance', () => { - const directive = new TextBgColorDirective(); - expect(directive).toBeTruthy(); + TestBed.runInInjectionContext(() => { + const directive = new TextBgColorDirective(); + expect(directive).toBeTruthy(); + }); }); }); diff --git a/projects/coreui-angular/src/lib/utilities/text-bg-color.directive.ts b/projects/coreui-angular/src/lib/utilities/text-bg-color.directive.ts index 8a12f712..27c4388c 100644 --- a/projects/coreui-angular/src/lib/utilities/text-bg-color.directive.ts +++ b/projects/coreui-angular/src/lib/utilities/text-bg-color.directive.ts @@ -1,4 +1,4 @@ -import { Directive, HostBinding, Input } from '@angular/core'; +import { Directive, HostBinding, input, InputSignal } from '@angular/core'; import { Colors } from '../coreui.types'; @Directive({ @@ -6,16 +6,15 @@ import { Colors } from '../coreui.types'; standalone: true }) export class TextBgColorDirective { - /** * Set text-bg-color of element * @type Colors */ - @Input('cTextBgColor') textBgColor: Colors = ''; + readonly textBgColor: InputSignal = input('', { alias: 'cTextBgColor' }); @HostBinding('class') get hostClasses(): any { - const color = this.textBgColor; + const color = this.textBgColor(); return { [`text-bg-${color}`]: !!color }; diff --git a/projects/coreui-angular/src/lib/utilities/text-color.directive.spec.ts b/projects/coreui-angular/src/lib/utilities/text-color.directive.spec.ts index 9aa55a61..f2bf2015 100644 --- a/projects/coreui-angular/src/lib/utilities/text-color.directive.spec.ts +++ b/projects/coreui-angular/src/lib/utilities/text-color.directive.spec.ts @@ -1,8 +1,11 @@ +import { TestBed } from '@angular/core/testing'; import { TextColorDirective } from './text-color.directive'; describe('TextColorDirective', () => { it('should create an instance', () => { - const directive = new TextColorDirective(); - expect(directive).toBeTruthy(); + TestBed.runInInjectionContext(() => { + const directive = new TextColorDirective(); + expect(directive).toBeTruthy(); + }); }); }); diff --git a/projects/coreui-angular/src/lib/utilities/text-color.directive.ts b/projects/coreui-angular/src/lib/utilities/text-color.directive.ts index 6cade779..801137fd 100644 --- a/projects/coreui-angular/src/lib/utilities/text-color.directive.ts +++ b/projects/coreui-angular/src/lib/utilities/text-color.directive.ts @@ -1,4 +1,4 @@ -import { Directive, HostBinding, Input } from '@angular/core'; +import { Directive, HostBinding, input, InputSignal } from '@angular/core'; import { TextColors } from '../coreui.types'; @Directive({ @@ -6,19 +6,17 @@ import { TextColors } from '../coreui.types'; standalone: true }) export class TextColorDirective { - /** * Set text-color of element * @type TextColors */ - @Input('cTextColor') color: TextColors = ''; + readonly color: InputSignal = input('', { alias: 'cTextColor' }); @HostBinding('class') get hostClasses(): any { - const color = this.color; + const color = this.color(); return { [`text-${color}`]: !!color }; } - } diff --git a/projects/coreui-angular/src/lib/widget/widget-stat-b/widget-stat-b.component.html b/projects/coreui-angular/src/lib/widget/widget-stat-b/widget-stat-b.component.html index 9c98eb11..452b6d4e 100644 --- a/projects/coreui-angular/src/lib/widget/widget-stat-b/widget-stat-b.component.html +++ b/projects/coreui-angular/src/lib/widget/widget-stat-b/widget-stat-b.component.html @@ -1,14 +1,14 @@ - @if (!!value) { -
{{ value }}
+ @if (!!value()) { +
{{ value() }}
} - @if (!!title) { -
{{ title }}
+ @if (!!title()) { +
{{ title() }}
} - @if (text) { - - {{ text }} + @if (text()) { + + {{ text() }} }
diff --git a/projects/coreui-angular/src/lib/widget/widget-stat-b/widget-stat-b.component.ts b/projects/coreui-angular/src/lib/widget/widget-stat-b/widget-stat-b.component.ts index 33bb3c75..6eb78bbd 100644 --- a/projects/coreui-angular/src/lib/widget/widget-stat-b/widget-stat-b.component.ts +++ b/projects/coreui-angular/src/lib/widget/widget-stat-b/widget-stat-b.component.ts @@ -1,7 +1,6 @@ -import { booleanAttribute, Component, HostBinding, Input } from '@angular/core'; +import { booleanAttribute, Component, HostBinding, input, InputSignal, InputSignalWithTransform } from '@angular/core'; import { NgClass } from '@angular/common'; -import { Colors, TextColors } from '../../coreui.types'; import { CardBodyComponent, CardComponent } from '../../card'; @Component({ @@ -12,51 +11,54 @@ import { CardBodyComponent, CardComponent } from '../../card'; imports: [CardBodyComponent, NgClass] }) export class WidgetStatBComponent extends CardComponent { - constructor() { super(); } /** - * Sets the color context of the component to one of CoreUI’s themed colors. + * Sets the color context of the component to one of CoreUI themed colors. * @type Colors */ - @Input() override color?: Colors; + // override readonly color: InputSignal = input(); + /** - * Sets the text-color context of the component to one of CoreUI’s themed colors. - * @type Colors + * Sets the text-color context of the component to one of CoreUI themed colors. + * via TextColorDirective + * @type TextColors */ - @Input() override textColor?: TextColors; + // override readonly textColor: InputSignal = input(); + /** * Title of the widget to display * @type string */ - @Input() title?: string; + readonly title: InputSignal = input(); + /** * Helper text for your widget. * @type string */ - @Input() text?: string; + readonly text: InputSignal = input(); + /** * Value for your widget to display * @type string */ - @Input() value?: string; + readonly value: InputSignal = input(); /** * Invert colors from their default dark shade. * @type boolean */ - @Input({ transform: booleanAttribute }) inverse: string | boolean = false; + readonly inverse: InputSignalWithTransform = input(false, { transform: booleanAttribute }); @HostBinding('class') override get hostClasses() { return { - 'card': true, - [`bg-${this.color}`]: !!this.color, - [`text-${this.textColor}`]: !!this.textColor, - 'text-white': !!this.inverse + card: true, + [`bg-${this.color()}`]: !!this.color(), + [`text-${this.textColor()}`]: !!this.textColor(), + 'text-white': this.inverse() }; } - } diff --git a/projects/coreui-angular/src/test.ts b/projects/coreui-angular/src/test.ts index e163527b..16a90bfc 100644 --- a/projects/coreui-angular/src/test.ts +++ b/projects/coreui-angular/src/test.ts @@ -5,9 +5,12 @@ import 'zone.js/testing'; import { getTestBed } from '@angular/core/testing'; import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing'; +// make the warning to fail +// console.warn = (message) => { +// throw new Error(message); +// }; + // First, initialize the Angular testing environment. -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting(), - { teardown: { destroyAfterEach: true }}, -); +getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: { destroyAfterEach: true } +}); diff --git a/projects/coreui-icons-angular/package.json b/projects/coreui-icons-angular/package.json index 3708c1c6..01b798ef 100644 --- a/projects/coreui-icons-angular/package.json +++ b/projects/coreui-icons-angular/package.json @@ -1,6 +1,6 @@ { "name": "@coreui/icons-angular", - "version": "5.2.2", + "version": "5.2.3", "description": "CoreUI Icons Angular component and service", "copyright": "Copyright 2024 creativeLabs Łukasz Holeczek", "license": "MIT",