diff --git a/CHANGELOG.md b/CHANGELOG.md
index 01ee1c94..fa42ff2b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,18 @@
---
+#### `5.2.16`
+
+- refactor(footer): input signals, host bindings
+- refactor(placeholder): input signals, host bindings
+- chore(dependencies): update `eslint` to `^9.9.1`
+- chore(dependencies): update `typescript-eslint` to `~8.3.0`
+- chore(dependencies): update `tslib` to `^2.7.0`
+- chore(dependencies): update `micromatch` to `4.0.8`
+ - see vulnerability [Regular Expression Denial of Service (ReDoS) in micromatch](https://github.com/advisories/GHSA-952p-6rrq-rcjv)
+
+---
+
#### `5.2.15`
- refactor(button): input signals, host bindings
diff --git a/package-lock.json b/package-lock.json
index 9c56b0f8..23b72863 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "coreui-angular-dev",
- "version": "5.2.15",
+ "version": "5.2.16",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "coreui-angular-dev",
- "version": "5.2.15",
+ "version": "5.2.16",
"license": "MIT",
"dependencies": {
"@angular/animations": "^18.2.1",
@@ -25,7 +25,7 @@
"chart.js": "^4.4.4",
"lodash-es": "^4.17.21",
"rxjs": "~7.8.1",
- "tslib": "^2.6.3",
+ "tslib": "^2.7.0",
"zone.js": "~0.14.10"
},
"devDependencies": {
@@ -39,7 +39,7 @@
"@types/node": "^20.16.1",
"angular-eslint": "~18.3.0",
"copyfiles": "^2.4.1",
- "eslint": "^9.9.0",
+ "eslint": "^9.9.1",
"jasmine-core": "^5.2.0",
"karma": "^6.4.4",
"karma-chrome-launcher": "^3.2.0",
@@ -49,7 +49,7 @@
"ng-packagr": "^18.2.1",
"prettier": "^3.3.3",
"typescript": "~5.5.4",
- "typescript-eslint": "~8.2.0"
+ "typescript-eslint": "~8.3.0"
},
"engines": {
"node": "^20.11.1 || >=22.0.0",
@@ -214,6 +214,13 @@
}
}
},
+ "node_modules/@angular-devkit/build-angular/node_modules/tslib": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
+ "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
+ "dev": true,
+ "license": "0BSD"
+ },
"node_modules/@angular-devkit/build-webpack": {
"version": "0.1802.1",
"resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1802.1.tgz",
@@ -3051,9 +3058,9 @@
}
},
"node_modules/@eslint/config-array": {
- "version": "0.17.1",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz",
- "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==",
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz",
+ "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -3175,9 +3182,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "9.9.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz",
- "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==",
+ "version": "9.9.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.1.tgz",
+ "integrity": "sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5001,17 +5008,17 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.2.0.tgz",
- "integrity": "sha512-02tJIs655em7fvt9gps/+4k4OsKULYGtLBPJfOsmOq1+3cdClYiF0+d6mHu6qDnTcg88wJBkcPLpQhq7FyDz0A==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.3.0.tgz",
+ "integrity": "sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.2.0",
- "@typescript-eslint/type-utils": "8.2.0",
- "@typescript-eslint/utils": "8.2.0",
- "@typescript-eslint/visitor-keys": "8.2.0",
+ "@typescript-eslint/scope-manager": "8.3.0",
+ "@typescript-eslint/type-utils": "8.3.0",
+ "@typescript-eslint/utils": "8.3.0",
+ "@typescript-eslint/visitor-keys": "8.3.0",
"graphemer": "^1.4.0",
"ignore": "^5.3.1",
"natural-compare": "^1.4.0",
@@ -5035,16 +5042,16 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.2.0.tgz",
- "integrity": "sha512-j3Di+o0lHgPrb7FxL3fdEy6LJ/j2NE8u+AP/5cQ9SKb+JLH6V6UHDqJ+e0hXBkHP1wn1YDFjYCS9LBQsZDlDEg==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.3.0.tgz",
+ "integrity": "sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
- "@typescript-eslint/scope-manager": "8.2.0",
- "@typescript-eslint/types": "8.2.0",
- "@typescript-eslint/typescript-estree": "8.2.0",
- "@typescript-eslint/visitor-keys": "8.2.0",
+ "@typescript-eslint/scope-manager": "8.3.0",
+ "@typescript-eslint/types": "8.3.0",
+ "@typescript-eslint/typescript-estree": "8.3.0",
+ "@typescript-eslint/visitor-keys": "8.3.0",
"debug": "^4.3.4"
},
"engines": {
@@ -5064,14 +5071,14 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.2.0.tgz",
- "integrity": "sha512-OFn80B38yD6WwpoHU2Tz/fTz7CgFqInllBoC3WP+/jLbTb4gGPTy9HBSTsbDWkMdN55XlVU0mMDYAtgvlUspGw==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.3.0.tgz",
+ "integrity": "sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.2.0",
- "@typescript-eslint/visitor-keys": "8.2.0"
+ "@typescript-eslint/types": "8.3.0",
+ "@typescript-eslint/visitor-keys": "8.3.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -5082,14 +5089,14 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.2.0.tgz",
- "integrity": "sha512-g1CfXGFMQdT5S+0PSO0fvGXUaiSkl73U1n9LTK5aRAFnPlJ8dLKkXr4AaLFvPedW8lVDoMgLLE3JN98ZZfsj0w==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.3.0.tgz",
+ "integrity": "sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.2.0",
- "@typescript-eslint/utils": "8.2.0",
+ "@typescript-eslint/typescript-estree": "8.3.0",
+ "@typescript-eslint/utils": "8.3.0",
"debug": "^4.3.4",
"ts-api-utils": "^1.3.0"
},
@@ -5107,9 +5114,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.2.0.tgz",
- "integrity": "sha512-6a9QSK396YqmiBKPkJtxsgZZZVjYQ6wQ/TlI0C65z7vInaETuC6HAHD98AGLC8DyIPqHytvNuS8bBVvNLKyqvQ==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.3.0.tgz",
+ "integrity": "sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5121,16 +5128,16 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.2.0.tgz",
- "integrity": "sha512-kiG4EDUT4dImplOsbh47B1QnNmXSoUqOjWDvCJw/o8LgfD0yr7k2uy54D5Wm0j4t71Ge1NkynGhpWdS0dEIAUA==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.3.0.tgz",
+ "integrity": "sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
- "@typescript-eslint/types": "8.2.0",
- "@typescript-eslint/visitor-keys": "8.2.0",
+ "@typescript-eslint/types": "8.3.0",
+ "@typescript-eslint/visitor-keys": "8.3.0",
"debug": "^4.3.4",
- "globby": "^11.1.0",
+ "fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
"minimatch": "^9.0.4",
"semver": "^7.6.0",
@@ -5150,16 +5157,16 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.2.0.tgz",
- "integrity": "sha512-O46eaYKDlV3TvAVDNcoDzd5N550ckSe8G4phko++OCSC1dYIb9LTc3HDGYdWqWIAT5qDUKphO6sd9RrpIJJPfg==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.3.0.tgz",
+ "integrity": "sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "8.2.0",
- "@typescript-eslint/types": "8.2.0",
- "@typescript-eslint/typescript-estree": "8.2.0"
+ "@typescript-eslint/scope-manager": "8.3.0",
+ "@typescript-eslint/types": "8.3.0",
+ "@typescript-eslint/typescript-estree": "8.3.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -5173,13 +5180,13 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.2.0.tgz",
- "integrity": "sha512-sbgsPMW9yLvS7IhCi8IpuK1oBmtbWUNP+hBdwl/I9nzqVsszGnNGti5r9dUtF5RLivHUFFIdRvLiTsPhzSyJ3Q==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.3.0.tgz",
+ "integrity": "sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.2.0",
+ "@typescript-eslint/types": "8.3.0",
"eslint-visitor-keys": "^3.4.3"
},
"engines": {
@@ -5674,16 +5681,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/autoprefixer": {
"version": "10.4.20",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
@@ -7382,19 +7379,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "path-type": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/dns-packet": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz",
@@ -7787,17 +7771,17 @@
}
},
"node_modules/eslint": {
- "version": "9.9.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.0.tgz",
- "integrity": "sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==",
+ "version": "9.9.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.1.tgz",
+ "integrity": "sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.11.0",
- "@eslint/config-array": "^0.17.1",
+ "@eslint/config-array": "^0.18.0",
"@eslint/eslintrc": "^3.1.0",
- "@eslint/js": "9.9.0",
+ "@eslint/js": "9.9.1",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.3.0",
"@nodelib/fs.walk": "^1.2.8",
@@ -8799,27 +8783,6 @@
"node": ">=4"
}
},
- "node_modules/globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
@@ -10997,9 +10960,9 @@
}
},
"node_modules/micromatch": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
- "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"license": "MIT",
"dependencies": {
"braces": "^3.0.3",
@@ -12551,16 +12514,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/picocolors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
@@ -13868,16 +13821,6 @@
"node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/slice-ansi": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
@@ -14737,9 +14680,9 @@
}
},
"node_modules/tslib": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
- "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
+ "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
"license": "0BSD"
},
"node_modules/tuf-js": {
@@ -14818,15 +14761,15 @@
}
},
"node_modules/typescript-eslint": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.2.0.tgz",
- "integrity": "sha512-DmnqaPcML0xYwUzgNbM1XaKXpEb7BShYf2P1tkUmmcl8hyeG7Pj08Er7R9bNy6AufabywzJcOybQAtnD/c9DGw==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.3.0.tgz",
+ "integrity": "sha512-EvWjwWLwwKDIJuBjk2I6UkV8KEQcwZ0VM10nR1rIunRDIP67QJTZAHBXTX0HW/oI1H10YESF8yWie8fRQxjvFA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/eslint-plugin": "8.2.0",
- "@typescript-eslint/parser": "8.2.0",
- "@typescript-eslint/utils": "8.2.0"
+ "@typescript-eslint/eslint-plugin": "8.3.0",
+ "@typescript-eslint/parser": "8.3.0",
+ "@typescript-eslint/utils": "8.3.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
diff --git a/package.json b/package.json
index 81179845..c2734ed5 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "coreui-angular-dev",
- "version": "5.2.15",
+ "version": "5.2.16",
"description": "CoreUI Components Library for Angular",
"copyright": "Copyright 2024 creativeLabs Łukasz Holeczek",
"license": "MIT",
@@ -55,7 +55,7 @@
"chart.js": "^4.4.4",
"lodash-es": "^4.17.21",
"rxjs": "~7.8.1",
- "tslib": "^2.6.3",
+ "tslib": "^2.7.0",
"zone.js": "~0.14.10"
},
"devDependencies": {
@@ -69,7 +69,7 @@
"@types/node": "^20.16.1",
"angular-eslint": "~18.3.0",
"copyfiles": "^2.4.1",
- "eslint": "^9.9.0",
+ "eslint": "^9.9.1",
"jasmine-core": "^5.2.0",
"karma": "^6.4.4",
"karma-chrome-launcher": "^3.2.0",
@@ -79,7 +79,7 @@
"ng-packagr": "^18.2.1",
"prettier": "^3.3.3",
"typescript": "~5.5.4",
- "typescript-eslint": "~8.2.0"
+ "typescript-eslint": "~8.3.0"
},
"keywords": [
"angular",
diff --git a/projects/coreui-angular-chartjs/package.json b/projects/coreui-angular-chartjs/package.json
index 707f4e7d..e81c99b9 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.15",
+ "version": "5.2.16",
"description": "Angular wrapper component for Chart.js",
"copyright": "Copyright 2024 creativeLabs Łukasz Holeczek",
"license": "MIT",
@@ -27,7 +27,7 @@
"peerDependencies": {
"@angular/core": "^18.2.0",
"@coreui/chartjs": "^4.0.0",
- "chart.js": "^4.4.3"
+ "chart.js": "^4.4.4"
},
"dependencies": {
"lodash-es": "^4.17.21",
diff --git a/projects/coreui-angular/package.json b/projects/coreui-angular/package.json
index 0eb6aba4..2eaa3f55 100644
--- a/projects/coreui-angular/package.json
+++ b/projects/coreui-angular/package.json
@@ -1,6 +1,6 @@
{
"name": "@coreui/angular",
- "version": "5.2.15",
+ "version": "5.2.16",
"description": "CoreUI Components Library for Angular",
"copyright": "Copyright 2024 creativeLabs Łukasz Holeczek",
"license": "MIT",
@@ -29,7 +29,7 @@
"@angular/core": "^18.2.0",
"@angular/router": "^18.2.0",
"@coreui/coreui": "^5.1.2",
- "@coreui/icons-angular": "~5.2.15",
+ "@coreui/icons-angular": "~5.2.16",
"rxjs": "^7.8.1"
},
"repository": {
diff --git a/projects/coreui-angular/src/lib/footer/footer.component.ts b/projects/coreui-angular/src/lib/footer/footer.component.ts
index 95995cb8..4f7edbab 100644
--- a/projects/coreui-angular/src/lib/footer/footer.component.ts
+++ b/projects/coreui-angular/src/lib/footer/footer.component.ts
@@ -1,4 +1,4 @@
-import { Component, HostBinding, Input } from '@angular/core';
+import { Component, computed, input, InputSignal } from '@angular/core';
import { Positions } from '../coreui.types';
@@ -6,29 +6,30 @@ import { Positions } from '../coreui.types';
selector: 'c-footer, [cFooter]',
template: '',
standalone: true,
- host: { class: 'footer' }
+ host: {
+ class: 'footer',
+ '[class]': 'hostClasses()',
+ '[attr.role]': 'role()'
+ }
})
export class FooterComponent {
/**
* Place footer in non-static positions. [docs]
* @type Positions
*/
- @Input() position?: Positions;
+ readonly position: InputSignal = input();
/**
* Default role for footer. [docs]
* @type string
* @default 'contentinfo'
*/
- @HostBinding('attr.role')
- @Input()
- role = 'contentinfo';
+ readonly role: InputSignal = input('contentinfo');
- @HostBinding('class')
- get getClasses(): any {
+ readonly hostClasses = computed(() => {
return {
footer: true,
- [`footer-${this.position}`]: !!this.position
- };
- }
+ [`footer-${this.position()}`]: !!this.position()
+ } as Record;
+ });
}
diff --git a/projects/coreui-angular/src/lib/placeholder/placeholder-animation.directive.spec.ts b/projects/coreui-angular/src/lib/placeholder/placeholder-animation.directive.spec.ts
index f3c40cc3..0488fac2 100644
--- a/projects/coreui-angular/src/lib/placeholder/placeholder-animation.directive.spec.ts
+++ b/projects/coreui-angular/src/lib/placeholder/placeholder-animation.directive.spec.ts
@@ -1,8 +1,11 @@
+import { TestBed } from '@angular/core/testing';
import { PlaceholderAnimationDirective } from './placeholder-animation.directive';
describe('PlaceholderAnimationDirective', () => {
it('should create an instance', () => {
- const directive = new PlaceholderAnimationDirective();
- expect(directive).toBeTruthy();
+ TestBed.runInInjectionContext(() => {
+ const directive = new PlaceholderAnimationDirective();
+ expect(directive).toBeTruthy();
+ });
});
});
diff --git a/projects/coreui-angular/src/lib/placeholder/placeholder-animation.directive.ts b/projects/coreui-angular/src/lib/placeholder/placeholder-animation.directive.ts
index 1979e3e5..68aab7da 100644
--- a/projects/coreui-angular/src/lib/placeholder/placeholder-animation.directive.ts
+++ b/projects/coreui-angular/src/lib/placeholder/placeholder-animation.directive.ts
@@ -1,31 +1,28 @@
-import { AfterContentInit, ContentChild, Directive, HostBinding, Input } from '@angular/core';
+import { computed, contentChild, Directive, input, InputSignal } from '@angular/core';
import { PlaceholderDirective } from './placeholder.directive';
@Directive({
selector: '[cPlaceholderAnimation]',
- standalone: true
+ standalone: true,
+ host: {
+ '[class]': 'hostClasses()'
+ }
})
-export class PlaceholderAnimationDirective implements AfterContentInit {
-
+export class PlaceholderAnimationDirective {
/**
* Animation type for placeholder
* @type 'glow' | 'wave'
* @default undefined
*/
- @Input('cPlaceholderAnimation') animation?: 'glow' | 'wave';
-
- @ContentChild(PlaceholderDirective) placeholder!: PlaceholderDirective;
+ readonly animation: InputSignal<'glow' | 'wave' | undefined> = input<'glow' | 'wave' | undefined>(undefined, {
+ alias: 'cPlaceholderAnimation'
+ });
- #animate: boolean = false;
+ readonly placeholder = contentChild(PlaceholderDirective);
- @HostBinding('class')
- get hostClasses(): any {
+ readonly hostClasses = computed(() => {
return {
- [`placeholder-${this.animation}`]: this.#animate && !!this.animation
+ [`placeholder-${this.animation()}`]: this.placeholder()?.visible() && !!this.animation()
};
- }
-
- ngAfterContentInit() {
- this.#animate = this.placeholder?.visible;
- }
+ });
}
diff --git a/projects/coreui-angular/src/lib/placeholder/placeholder.directive.spec.ts b/projects/coreui-angular/src/lib/placeholder/placeholder.directive.spec.ts
index 9a7578ed..15b97e31 100644
--- a/projects/coreui-angular/src/lib/placeholder/placeholder.directive.spec.ts
+++ b/projects/coreui-angular/src/lib/placeholder/placeholder.directive.spec.ts
@@ -1,8 +1,11 @@
+import { TestBed } from '@angular/core/testing';
import { PlaceholderDirective } from './placeholder.directive';
describe('PlaceholderDirective', () => {
it('should create an instance', () => {
- const directive = new PlaceholderDirective();
- expect(directive).toBeTruthy();
+ TestBed.runInInjectionContext(() => {
+ const directive = new PlaceholderDirective();
+ expect(directive).toBeTruthy();
+ });
});
});
diff --git a/projects/coreui-angular/src/lib/placeholder/placeholder.directive.ts b/projects/coreui-angular/src/lib/placeholder/placeholder.directive.ts
index 740459c0..61ba21d1 100644
--- a/projects/coreui-angular/src/lib/placeholder/placeholder.directive.ts
+++ b/projects/coreui-angular/src/lib/placeholder/placeholder.directive.ts
@@ -1,34 +1,38 @@
-import { booleanAttribute, Directive, HostBinding, Input } from '@angular/core';
+import { booleanAttribute, computed, Directive, input, InputSignalWithTransform } from '@angular/core';
@Directive({
selector: '[cPlaceholder]',
exportAs: 'cPlaceholder',
- standalone: true
+ standalone: true,
+ host: {
+ '[class]': 'hostClasses()',
+ '[attr.aria-hidden]': 'ariaHidden()'
+ }
})
export class PlaceholderDirective {
-
/**
* placeholder toggler
* @type boolean
* @default false
*/
- @Input({ alias: 'cPlaceholder', transform: booleanAttribute }) visible: boolean = false;
+ readonly visible: InputSignalWithTransform = input(false, {
+ transform: booleanAttribute,
+ alias: 'cPlaceholder'
+ });
/**
* Size the placeholder xs, small, large.
*/
- @Input('cPlaceholderSize') size?: 'xs' | 'sm' | 'lg';
+ readonly size = input<'xs' | 'sm' | 'lg' | undefined>(undefined, { alias: 'cPlaceholderSize' });
- @HostBinding('attr.aria-hidden')
- get ariaHidden(): boolean | null {
- return this.visible ? null : true;
- };
+ readonly ariaHidden = computed(() => {
+ return this.visible() ? null : true;
+ });
- @HostBinding('class')
- get hostClasses(): any {
+ readonly hostClasses = computed(() => {
return {
- 'placeholder': this.visible,
- [`placeholder-${this.size}`]: !!this.size
+ placeholder: this.visible(),
+ [`placeholder-${this.size()}`]: !!this.size()
};
- }
+ });
}
diff --git a/projects/coreui-icons-angular/package.json b/projects/coreui-icons-angular/package.json
index d371edc7..95d9f643 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.15",
+ "version": "5.2.16",
"description": "CoreUI Icons Angular component and service",
"copyright": "Copyright 2024 creativeLabs Łukasz Holeczek",
"license": "MIT",