diff --git a/CHANGELOG.md b/CHANGELOG.md index e90b844f..2ca55e32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,24 @@ --- +#### `5.5.25` + +- fix(backdrop): modal backdrop not removed on zoneless - close #240 - thanks @anyplin +- chore(dependencies): update to `Angular 20.3.14` + - `@angular/compiler-cli` @ "20.3.14" (was "20.3.13") + - `@angular/language-service` @ "20.3.14" (was "20.3.13") + - `@angular/animations` @ "20.3.14" (was "20.3.13") + - `@angular/common` @ "20.3.14" (was "20.3.13") + - `@angular/compiler` @ "20.3.14" (was "20.3.13") + - `@angular/core` @ "20.3.14" (was "20.3.13") + - `@angular/forms` @ "20.3.14" (was "20.3.13") + - `@angular/localize` @ "20.3.14" (was "20.3.13") + - `@angular/platform-browser` @ "20.3.14" (was "20.3.13") + - `@angular/platform-browser-dynamic` @ "20.3.14" (was "20.3.13") + - `@angular/router` @ "20.3.14" (was "20.3.13") + +--- + #### `5.5.24` - refactor(modal): visible signal, cleanup diff --git a/package-lock.json b/package-lock.json index 53361b42..b3facf96 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,24 +1,24 @@ { "name": "coreui-angular-dev", - "version": "5.5.24", + "version": "5.5.25", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "coreui-angular-dev", - "version": "5.5.24", + "version": "5.5.25", "license": "MIT", "dependencies": { - "@angular/animations": "^20.3.13", + "@angular/animations": "^20.3.14", "@angular/cdk": "^20.2.14", - "@angular/common": "^20.3.13", - "@angular/compiler": "^20.3.13", - "@angular/core": "^20.3.13", - "@angular/forms": "^20.3.13", - "@angular/localize": "^20.3.13", - "@angular/platform-browser": "^20.3.13", - "@angular/platform-browser-dynamic": "^20.3.13", - "@angular/router": "^20.3.13", + "@angular/common": "^20.3.14", + "@angular/compiler": "^20.3.14", + "@angular/core": "^20.3.14", + "@angular/forms": "^20.3.14", + "@angular/localize": "^20.3.14", + "@angular/platform-browser": "^20.3.14", + "@angular/platform-browser-dynamic": "^20.3.14", + "@angular/router": "^20.3.14", "@coreui/chartjs": "~4.1.0", "@coreui/icons": "^3.0.1", "@popperjs/core": "~2.11.8", @@ -32,8 +32,8 @@ "@angular-devkit/schematics": "^20.3.12", "@angular/build": "^20.3.12", "@angular/cli": "^20.3.12", - "@angular/compiler-cli": "^20.3.13", - "@angular/language-service": "^20.3.13", + "@angular/compiler-cli": "^20.3.14", + "@angular/language-service": "^20.3.14", "@types/jasmine": "^5.1.13", "@types/lodash-es": "^4.17.12", "@types/node": "^22.19.1", @@ -460,9 +460,9 @@ } }, "node_modules/@angular/animations": { - "version": "20.3.13", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.3.13.tgz", - "integrity": "sha512-IOiZlb+GK3p70J4vRe3PQ+NHCkoVYaq7fz9Pg2FcQ9Ar3EobVtHyFJFGzdStMFbiYR0B66STBNyZcz+V0AwC0A==", + "version": "20.3.14", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.3.14.tgz", + "integrity": "sha512-Sx3/XNu2rR+R8T8JkJEaIpZDZPk0IecS0Ayt6HTanNUZXuw0HVou3vkjR5B2St5nM4MXs0gh+S6aLNuArtqJTQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -471,7 +471,7 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/core": "20.3.13" + "@angular/core": "20.3.14" } }, "node_modules/@angular/build": { @@ -624,9 +624,9 @@ } }, "node_modules/@angular/common": { - "version": "20.3.13", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.3.13.tgz", - "integrity": "sha512-Jy+Qu6760TZyiDJX0+fNzkc70+lwF9ojdkIyCso/Lvbx1v3Fki0+9Wui7Vge56hknkr05xXg1aEUeqMN0966Lg==", + "version": "20.3.14", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.3.14.tgz", + "integrity": "sha512-OOUvjTtnpktJLsNupA+GFT2q5zNocPdpOENA8aSrXvAheNybLjgi+otO3U3sQsvB1VwaoEZ9GT5O3lZlstnA/A==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -635,14 +635,14 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/core": "20.3.13", + "@angular/core": "20.3.14", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "20.3.13", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.3.13.tgz", - "integrity": "sha512-YEjzHxz9laEcC2YPBA7L09Ys8UIuPrRiBZcGCrOXzXmPATHGYuxqYuhZ8iKmKV0PG/4pP2fxD3Mv5wN0cBaOWg==", + "version": "20.3.14", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.3.14.tgz", + "integrity": "sha512-KFbfPPAbclzGDujCVruflCD9j4Zwwxvrg7Y4C9GJYs3LZ85t+BfIMDDnvpBUM07ZLnfY4TO4gQdHmJAcaGGXDQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -652,9 +652,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "20.3.13", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.3.13.tgz", - "integrity": "sha512-Cou3G8C60eKpD93SKBJRG5pa/xpmMHe6sc2aanWjneGWjZq1kR4v5eQwwr8LUByIsafcqxHGT7+q1bYXT2p2DQ==", + "version": "20.3.14", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.3.14.tgz", + "integrity": "sha512-lFg9ikwRClzDPjdFiwynbVFIi1RJZf/0i+OHa3Ns2gzXxJeHNKMJrHHjWZ2DU4N2UpxH0YAPe22N9Bie28IuQQ==", "license": "MIT", "dependencies": { "@babel/core": "7.28.3", @@ -674,7 +674,7 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/compiler": "20.3.13", + "@angular/compiler": "20.3.14", "typescript": ">=5.8 <6.0" }, "peerDependenciesMeta": { @@ -684,9 +684,9 @@ } }, "node_modules/@angular/core": { - "version": "20.3.13", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.3.13.tgz", - "integrity": "sha512-12Kou+WAIjAUSG5TkDbypV2kreJ105VylAjlQ09bCvsGNTHjezGgahFa/tLz7iyrozhuivtGiQtiDaYsc79ysw==", + "version": "20.3.14", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.3.14.tgz", + "integrity": "sha512-rpyEbhWF6Fj/xI9IvNLZh5QBUYnoXuF7vX54CCtyQ2MHALxRR/aa1WRxjRM96cF2OqodQ/Gj3oYW8ei8hlBh4w==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -695,7 +695,7 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/compiler": "20.3.13", + "@angular/compiler": "20.3.14", "rxjs": "^6.5.3 || ^7.4.0", "zone.js": "~0.15.0" }, @@ -709,9 +709,9 @@ } }, "node_modules/@angular/forms": { - "version": "20.3.13", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.3.13.tgz", - "integrity": "sha512-9vu9MCHJtgXvgPH+ZgXN46N3gpBBAckcmG62P7U+9BKivWvv3rEvkgX+4HvO+Pm2D6x/Jy1xbiQuVq9EDGPSNA==", + "version": "20.3.14", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.3.14.tgz", + "integrity": "sha512-fGrJ589tU+AKoxf+kaRrEw7wlSfVr1/z/Fz625ggFCc6ySQEityKW3JsnLfNkh5qGrdxib4BOfF78f9J7Pyk+w==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -720,16 +720,16 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "20.3.13", - "@angular/core": "20.3.13", - "@angular/platform-browser": "20.3.13", + "@angular/common": "20.3.14", + "@angular/core": "20.3.14", + "@angular/platform-browser": "20.3.14", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "20.3.13", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-20.3.13.tgz", - "integrity": "sha512-IfHYjVufV2jcG+AqQN/2VzIHwKSzokoKax0o+sHOQCk1gjkryc9JYkHHJIBQisQfG0IWbUQy1gDHuWQ3VmtzFg==", + "version": "20.3.14", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-20.3.14.tgz", + "integrity": "sha512-3Jvi60WzLUe6jQJEw1xi/35uW7ynzxOS7iyZlwYfl2v8RljeLyyQsm0WNVpq6tXt80ppDeD59JvYTguEQ283Og==", "dev": true, "license": "MIT", "engines": { @@ -737,9 +737,9 @@ } }, "node_modules/@angular/localize": { - "version": "20.3.13", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-20.3.13.tgz", - "integrity": "sha512-giMBZifKP4nNEm3+dRIi8/mro3I2Adi82LVU6GFqB3ugKnLFt9cWR9JnQdYsAv+xrofbPzxlH8UjhVXShNGA0g==", + "version": "20.3.14", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-20.3.14.tgz", + "integrity": "sha512-tSYZmFhjCHwifWE+R1VHg3zaemUX2tNjpQd9Ha6BvISyzyGWw/sQirIAxC4uoa2RVZ3jexos5sbw8rFT6iIEYg==", "license": "MIT", "dependencies": { "@babel/core": "7.28.3", @@ -756,14 +756,14 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/compiler": "20.3.13", - "@angular/compiler-cli": "20.3.13" + "@angular/compiler": "20.3.14", + "@angular/compiler-cli": "20.3.14" } }, "node_modules/@angular/platform-browser": { - "version": "20.3.13", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.3.13.tgz", - "integrity": "sha512-KyJzzpD4jMPGotDgVHF0cz9psjlVg6wYQrhuWcLeE97VUvp+CdwdOJ9tlxDlGE5tYZ0JrQxAT0l5qdcr6K9iNQ==", + "version": "20.3.14", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.3.14.tgz", + "integrity": "sha512-Lviz9GfsIyOIBDal8QhIBKU8OMH29A0RhFw2opTC50sqKadXLN9CD7iSaAwQbNLc4mc3JAF4zth0AzKdHLbz7Q==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -772,9 +772,9 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/animations": "20.3.13", - "@angular/common": "20.3.13", - "@angular/core": "20.3.13" + "@angular/animations": "20.3.14", + "@angular/common": "20.3.14", + "@angular/core": "20.3.14" }, "peerDependenciesMeta": { "@angular/animations": { @@ -783,9 +783,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "20.3.13", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.3.13.tgz", - "integrity": "sha512-/kBhzn/TewEPuoUeTh3+uJmviBoaey9g2qegwKj0rrr5XGqoEWurOY6yl8DqZCVHVimLZJdx8bBN7TEi7KlsLg==", + "version": "20.3.14", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.3.14.tgz", + "integrity": "sha512-g9z/g8gIOrBCX1SQ/GWwB0+JXBC6CKe0+yRyy9GGeBLm/YXWZHxTkmnDmueXXfPtUl8TOAInE22wlLcfunWTrg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -794,16 +794,16 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "20.3.13", - "@angular/compiler": "20.3.13", - "@angular/core": "20.3.13", - "@angular/platform-browser": "20.3.13" + "@angular/common": "20.3.14", + "@angular/compiler": "20.3.14", + "@angular/core": "20.3.14", + "@angular/platform-browser": "20.3.14" } }, "node_modules/@angular/router": { - "version": "20.3.13", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-20.3.13.tgz", - "integrity": "sha512-TpNnqmcCFsAnf3tzdtWeGSSmHb9VTKCI6/1NRBgvpiiNSZ4ehQ/rPTy7D4q5uhu50vB0VECUSGkUAygQI8YHdw==", + "version": "20.3.14", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-20.3.14.tgz", + "integrity": "sha512-gi7/NuHRS9n9RCwh03VuVFizVMa2lKL/s+7yP3Ecq2nQ5uSeTMWb/91OmGEBwncI3wKPkYdQ9g3n6PvK/O8uDQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -812,9 +812,9 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "20.3.13", - "@angular/core": "20.3.13", - "@angular/platform-browser": "20.3.13", + "@angular/common": "20.3.14", + "@angular/core": "20.3.14", + "@angular/platform-browser": "20.3.14", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -5756,9 +5756,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.260", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.260.tgz", - "integrity": "sha512-ov8rBoOBhVawpzdre+Cmz4FB+y66Eqrk6Gwqd8NGxuhv99GQ8XqMAr351KEkOt7gukXWDg6gJWEMKgL2RLMPtA==", + "version": "1.5.261", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.261.tgz", + "integrity": "sha512-cmyHEWFqEt3ICUNF93ShneOF47DHoSDbLb7E/AonsWcbzg95N+kPXeLNfkdzgTT/vEUcoW76fxbLBkeYtfoM8A==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -9330,9 +9330,9 @@ } }, "node_modules/npm-packlist/node_modules/proc-log": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.0.0.tgz", - "integrity": "sha512-KG/XsTDN901PNfPfAMmj6N/Ywg9tM+bHK8pAz+27fS4N4Pcr+4zoYBOcGSBu6ceXYNPxkLpa4ohtfxV1XcLAfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -10301,13 +10301,13 @@ } }, "node_modules/rollup-plugin-dts": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-6.2.3.tgz", - "integrity": "sha512-UgnEsfciXSPpASuOelix7m4DrmyQgiaWBnvI0TM4GxuDh5FkqW8E5hu57bCxXB90VvR1WNfLV80yEDN18UogSA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-6.3.0.tgz", + "integrity": "sha512-d0UrqxYd8KyZ6i3M2Nx7WOMy708qsV/7fTHMHxCMCBOAe3V/U7OMPu5GkX8hC+cmkHhzGnfeYongl1IgiooddA==", "dev": true, "license": "LGPL-3.0-only", "dependencies": { - "magic-string": "^0.30.17" + "magic-string": "^0.30.21" }, "engines": { "node": ">=16" @@ -10323,6 +10323,16 @@ "typescript": "^4.5 || ^5.0" } }, + "node_modules/rollup-plugin-dts/node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, "node_modules/router": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", diff --git a/package.json b/package.json index 62a7fbef..1441a1dd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coreui-angular-dev", - "version": "5.5.24", + "version": "5.5.25", "description": "CoreUI Components Library for Angular", "copyright": "Copyright 2025 creativeLabs Łukasz Holeczek", "license": "MIT", @@ -40,16 +40,16 @@ }, "private": true, "dependencies": { - "@angular/animations": "^20.3.13", + "@angular/animations": "^20.3.14", "@angular/cdk": "^20.2.14", - "@angular/common": "^20.3.13", - "@angular/compiler": "^20.3.13", - "@angular/core": "^20.3.13", - "@angular/forms": "^20.3.13", - "@angular/localize": "^20.3.13", - "@angular/platform-browser": "^20.3.13", - "@angular/platform-browser-dynamic": "^20.3.13", - "@angular/router": "^20.3.13", + "@angular/common": "^20.3.14", + "@angular/compiler": "^20.3.14", + "@angular/core": "^20.3.14", + "@angular/forms": "^20.3.14", + "@angular/localize": "^20.3.14", + "@angular/platform-browser": "^20.3.14", + "@angular/platform-browser-dynamic": "^20.3.14", + "@angular/router": "^20.3.14", "@coreui/chartjs": "~4.1.0", "@coreui/icons": "^3.0.1", "@popperjs/core": "~2.11.8", @@ -63,8 +63,8 @@ "@angular-devkit/schematics": "^20.3.12", "@angular/build": "^20.3.12", "@angular/cli": "^20.3.12", - "@angular/compiler-cli": "^20.3.13", - "@angular/language-service": "^20.3.13", + "@angular/compiler-cli": "^20.3.14", + "@angular/language-service": "^20.3.14", "@types/jasmine": "^5.1.13", "@types/lodash-es": "^4.17.12", "@types/node": "^22.19.1", diff --git a/projects/coreui-angular-chartjs/package.json b/projects/coreui-angular-chartjs/package.json index 649b363f..3f9d1570 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.5.24", + "version": "5.5.25", "description": "Angular wrapper component for Chart.js", "copyright": "Copyright 2025 creativeLabs Łukasz Holeczek", "license": "MIT", @@ -25,7 +25,7 @@ "url": "https://github.com/coreui/coreui-angular/issues" }, "peerDependencies": { - "@angular/core": "^20.3.0", + "@angular/core": "^20.3.14", "@coreui/chartjs": "^4.1.0", "chart.js": "^4.5.0" }, diff --git a/projects/coreui-angular/package.json b/projects/coreui-angular/package.json index ff3c3639..9246d2e1 100644 --- a/projects/coreui-angular/package.json +++ b/projects/coreui-angular/package.json @@ -1,6 +1,6 @@ { "name": "@coreui/angular", - "version": "5.5.24", + "version": "5.5.25", "description": "CoreUI Components Library for Angular", "copyright": "Copyright 2025 creativeLabs Łukasz Holeczek", "license": "MIT", @@ -23,13 +23,13 @@ }, "sideEffects": false, "peerDependencies": { - "@angular/animations": "^20.3.0", - "@angular/cdk": "^20.2.12", - "@angular/common": "^20.3.0", - "@angular/core": "^20.3.0", - "@angular/router": "^20.3.0", + "@angular/animations": "^20.3.14", + "@angular/cdk": "^20.2.14", + "@angular/common": "^20.3.14", + "@angular/core": "^20.3.14", + "@angular/router": "^20.3.14", "@coreui/coreui": "^5.4.3", - "@coreui/icons-angular": "~5.5.24", + "@coreui/icons-angular": "~5.5.25", "rxjs": "^7.8.2" }, "repository": { diff --git a/projects/coreui-angular/src/lib/backdrop/backdrop.service.ts b/projects/coreui-angular/src/lib/backdrop/backdrop.service.ts index 5cf73f06..552563ee 100644 --- a/projects/coreui-angular/src/lib/backdrop/backdrop.service.ts +++ b/projects/coreui-angular/src/lib/backdrop/backdrop.service.ts @@ -1,4 +1,4 @@ -import { inject, Injectable, RendererFactory2, DOCUMENT } from '@angular/core'; +import { DOCUMENT, inject, Injectable } from '@angular/core'; import { Subject } from 'rxjs'; @@ -9,10 +9,7 @@ export class BackdropService { readonly #backdropClick = new Subject(); readonly backdropClick$ = this.#backdropClick.asObservable(); - #document = inject(DOCUMENT); - #rendererFactory = inject(RendererFactory2); - #renderer = this.#rendererFactory.createRenderer(null, null); - #unListen!: () => void; + readonly #document = inject(DOCUMENT); activeBackdrop: any; @@ -25,33 +22,40 @@ export class BackdropService { scrollbarWidth = this.#scrollbarWidth; - setBackdrop(type: string = 'modal'): any { - const backdropElement = this.#renderer.createElement('div'); - this.#renderer.addClass(backdropElement, `${type}-backdrop`); - this.#renderer.addClass(backdropElement, 'fade'); - this.#renderer.appendChild(this.#document.body, backdropElement); - this.#unListen = this.#renderer.listen(backdropElement, 'click', (e): void => { + setBackdrop(type: string = 'modal'): HTMLDivElement { + const backdropElement = this.#document.createElement('div'); + backdropElement.classList.add(`${type}-backdrop`); + backdropElement.classList.add('fade'); + this.#document.body.appendChild(backdropElement); + + const clickHandler = () => { this.onClickHandler(); - }); + }; + (backdropElement as any).__backdropClickHandler = clickHandler; + backdropElement.addEventListener('click', clickHandler); + this.scrollbarWidth = this.#scrollbarWidth; setTimeout(() => { - this.#renderer.addClass(backdropElement, 'show'); + backdropElement.classList.add('show'); // this.hideScrollbar(); }); this.activeBackdrop = backdropElement; return backdropElement; } - clearBackdrop(backdropElement: any): any { + clearBackdrop(backdropElement: HTMLElement): any { if (backdropElement) { - this.#unListen(); - this.#renderer.removeClass(backdropElement, 'show'); + const storedHandler = (backdropElement as any).__backdropClickHandler; + if (storedHandler) { + backdropElement.removeEventListener('click', storedHandler); + delete (backdropElement as any).__backdropClickHandler; + } + backdropElement.classList.remove('show'); setTimeout(() => { if (this.activeBackdrop === backdropElement) { this.resetScrollbar(); } - this.#renderer.removeChild(this.#document.body, backdropElement); - backdropElement = undefined; + this.#document.body.removeChild(backdropElement); }, 300); } return undefined; @@ -61,19 +65,23 @@ export class BackdropService { return [this.#document.documentElement.dir, this.#document.body.dir].includes('rtl'); } + get #padding() { + return `padding-${this.#isRTL ? 'left' : 'right'}`; + } + #scrollBarVisible = true; hideScrollbar(): void { if (this.#scrollBarVisible) { - this.#renderer.setStyle(this.#document.body, 'overflow', 'hidden'); - this.#renderer.setStyle(this.#document.body, `padding-${this.#isRTL ? 'left' : 'right'}`, this.scrollbarWidth); + this.#document.body.style.setProperty('overflow', 'hidden'); + this.#document.body.style.setProperty(this.#padding, this.scrollbarWidth); this.#scrollBarVisible = false; } } resetScrollbar(): void { - this.#renderer.removeStyle(this.#document.body, 'overflow'); - this.#renderer.removeStyle(this.#document.body, `padding-${this.#isRTL ? 'left' : 'right'}`); + this.#document.body.style.removeProperty('overflow'); + this.#document.body.style.removeProperty(this.#padding); this.#scrollBarVisible = true; } diff --git a/projects/coreui-icons-angular/package.json b/projects/coreui-icons-angular/package.json index a664c12e..0a7cecd2 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.5.24", + "version": "5.5.25", "description": "CoreUI Icons Angular component and service", "copyright": "Copyright 2025 creativeLabs Łukasz Holeczek", "license": "MIT", @@ -25,9 +25,9 @@ "url": "https://github.com/coreui/coreui-angular/issues" }, "peerDependencies": { - "@angular/common": "^20.3.0", - "@angular/core": "^20.3.0", - "@angular/platform-browser": "^20.3.0" + "@angular/common": "^20.3.14", + "@angular/core": "^20.3.14", + "@angular/platform-browser": "^20.3.14" }, "dependencies": { "tslib": "^2.3.0"