@coreui/icons-angular 5.2.22 → 5.2.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,28 +1,31 @@
1
- import { Directive, Input } from '@angular/core';
1
+ import { Directive, effect, ElementRef, inject, input, Renderer2 } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class HtmlAttributesDirective {
4
- constructor(renderer, el) {
5
- this.renderer = renderer;
6
- this.el = el;
7
- }
8
- ngOnInit() {
9
- const attribs = this.cHtmlAttr;
10
- for (const attr in attribs) {
11
- if (attr === 'style' && typeof attribs[attr] === 'object') {
12
- this.setStyle(attribs[attr]);
13
- }
14
- else if (attr === 'class') {
15
- this.addClass(attribs[attr]);
16
- }
17
- else {
18
- this.setAttrib(attr, attribs[attr]);
4
+ constructor() {
5
+ this.cHtmlAttr = input();
6
+ this.#renderer = inject(Renderer2);
7
+ this.#elementRef = inject(ElementRef);
8
+ this.attrEffect = effect(() => {
9
+ const attribs = this.cHtmlAttr();
10
+ for (const attr in attribs) {
11
+ if (attr === 'style' && typeof attribs[attr] === 'object') {
12
+ this.setStyle(attribs[attr]);
13
+ }
14
+ else if (attr === 'class') {
15
+ this.addClass(attribs[attr]);
16
+ }
17
+ else {
18
+ this.setAttrib(attr, attribs[attr]);
19
+ }
19
20
  }
20
- }
21
+ });
21
22
  }
23
+ #renderer;
24
+ #elementRef;
22
25
  setStyle(styles) {
23
26
  for (const style in styles) {
24
27
  if (style) {
25
- this.renderer.setStyle(this.el.nativeElement, style, styles[style]);
28
+ this.#renderer.setStyle(this.#elementRef.nativeElement, style, styles[style]);
26
29
  }
27
30
  }
28
31
  }
@@ -31,16 +34,16 @@ export class HtmlAttributesDirective {
31
34
  classArray
32
35
  .filter((element) => element.length > 0)
33
36
  .forEach((element) => {
34
- this.renderer.addClass(this.el.nativeElement, element);
37
+ this.#renderer.addClass(this.#elementRef.nativeElement, element);
35
38
  });
36
39
  }
37
40
  setAttrib(key, value) {
38
41
  value !== null
39
- ? this.renderer.setAttribute(this.el.nativeElement, key, value)
40
- : this.renderer.removeAttribute(this.el.nativeElement, key);
42
+ ? this.#renderer.setAttribute(this.#elementRef.nativeElement, key, value)
43
+ : this.#renderer.removeAttribute(this.#elementRef.nativeElement, key);
41
44
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: HtmlAttributesDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
43
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.9", type: HtmlAttributesDirective, isStandalone: true, selector: "[cHtmlAttr]", inputs: { cHtmlAttr: "cHtmlAttr" }, exportAs: ["cHtmlAttr"], ngImport: i0 }); }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: HtmlAttributesDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
46
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.9", type: HtmlAttributesDirective, isStandalone: true, selector: "[cHtmlAttr]", inputs: { cHtmlAttr: { classPropertyName: "cHtmlAttr", publicName: "cHtmlAttr", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["cHtmlAttr"], ngImport: i0 }); }
44
47
  }
45
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: HtmlAttributesDirective, decorators: [{
46
49
  type: Directive,
@@ -49,7 +52,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
49
52
  exportAs: 'cHtmlAttr',
50
53
  standalone: true
51
54
  }]
52
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { cHtmlAttr: [{
53
- type: Input
54
- }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC1hdHRyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1pY29ucy1hbmd1bGFyL3NyYy9saWIvc2hhcmVkL2h0bWwtYXR0ci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDOztBQU9oRixNQUFNLE9BQU8sdUJBQXVCO0lBR2xDLFlBQ1UsUUFBbUIsRUFDbkIsRUFBYztRQURkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtJQUNyQixDQUFDO0lBRUosUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDL0IsS0FBSyxNQUFNLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUMzQixJQUFJLElBQUksS0FBSyxPQUFPLElBQUksT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDL0IsQ0FBQztpQkFBTSxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMvQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sUUFBUSxDQUFDLE1BQTRCO1FBQzNDLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDM0IsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdEUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sUUFBUSxDQUFDLE9BQTBCO1FBQ3pDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6RSxVQUFVO2FBQ1AsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzthQUN2QyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxTQUFTLENBQUMsR0FBVyxFQUFFLEtBQW9CO1FBQ2pELEtBQUssS0FBSyxJQUFJO1lBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUM7WUFDL0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7OEdBMUNVLHVCQUF1QjtrR0FBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO3VHQUVVLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY0h0bWxBdHRyXScsXG4gIGV4cG9ydEFzOiAnY0h0bWxBdHRyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBIdG1sQXR0cmlidXRlc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGNIdG1sQXR0cj86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGF0dHJpYnMgPSB0aGlzLmNIdG1sQXR0cjtcbiAgICBmb3IgKGNvbnN0IGF0dHIgaW4gYXR0cmlicykge1xuICAgICAgaWYgKGF0dHIgPT09ICdzdHlsZScgJiYgdHlwZW9mIGF0dHJpYnNbYXR0cl0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHRoaXMuc2V0U3R5bGUoYXR0cmlic1thdHRyXSk7XG4gICAgICB9IGVsc2UgaWYgKGF0dHIgPT09ICdjbGFzcycpIHtcbiAgICAgICAgdGhpcy5hZGRDbGFzcyhhdHRyaWJzW2F0dHJdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmliKGF0dHIsIGF0dHJpYnNbYXR0cl0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0U3R5bGUoc3R5bGVzOiB7IFt4OiBzdHJpbmddOiBhbnkgfSk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgc3R5bGUgaW4gc3R5bGVzKSB7XG4gICAgICBpZiAoc3R5bGUpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHN0eWxlLCBzdHlsZXNbc3R5bGVdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZENsYXNzKGNsYXNzZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY29uc3QgY2xhc3NBcnJheSA9IEFycmF5LmlzQXJyYXkoY2xhc3NlcykgPyBjbGFzc2VzIDogY2xhc3Nlcy5zcGxpdCgnICcpO1xuICAgIGNsYXNzQXJyYXlcbiAgICAgIC5maWx0ZXIoKGVsZW1lbnQpID0+IGVsZW1lbnQubGVuZ3RoID4gMClcbiAgICAgIC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCBlbGVtZW50KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBdHRyaWIoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgdmFsdWUgIT09IG51bGxcbiAgICAgID8gdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCBrZXksIHZhbHVlKVxuICAgICAgOiB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIGtleSk7XG4gIH1cbn1cbiJdfQ==
55
+ }] });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC1hdHRyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1pY29ucy1hbmd1bGFyL3NyYy9saWIvc2hhcmVkL2h0bWwtYXR0ci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU94RixNQUFNLE9BQU8sdUJBQXVCO0lBTHBDO1FBTVcsY0FBUyxHQUFHLEtBQUssRUFBdUIsQ0FBQztRQUV6QyxjQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWpDLGVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQyxLQUFLLE1BQU0sSUFBSSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUMzQixJQUFJLElBQUksS0FBSyxPQUFPLElBQUksT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQy9CLENBQUM7cUJBQU0sSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7b0JBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQy9CLENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDdEMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztLQXdCSjtJQXRDVSxTQUFTLENBQXFCO0lBQzlCLFdBQVcsQ0FBc0I7SUFlbEMsUUFBUSxDQUFDLE1BQTJCO1FBQzFDLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDM0IsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDaEYsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sUUFBUSxDQUFDLE9BQTBCO1FBQ3pDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6RSxVQUFVO2FBQ1AsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzthQUN2QyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxTQUFTLENBQUMsR0FBVyxFQUFFLEtBQW9CO1FBQ2pELEtBQUssS0FBSyxJQUFJO1lBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUM7WUFDekUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFFLENBQUM7OEdBeENVLHVCQUF1QjtrR0FBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY0h0bWxBdHRyXScsXG4gIGV4cG9ydEFzOiAnY0h0bWxBdHRyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBIdG1sQXR0cmlidXRlc0RpcmVjdGl2ZSB7XG4gIHJlYWRvbmx5IGNIdG1sQXR0ciA9IGlucHV0PFJlY29yZDxzdHJpbmcsIGFueT4+KCk7XG5cbiAgcmVhZG9ubHkgI3JlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHJlYWRvbmx5ICNlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIHJlYWRvbmx5IGF0dHJFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGF0dHJpYnMgPSB0aGlzLmNIdG1sQXR0cigpO1xuICAgIGZvciAoY29uc3QgYXR0ciBpbiBhdHRyaWJzKSB7XG4gICAgICBpZiAoYXR0ciA9PT0gJ3N0eWxlJyAmJiB0eXBlb2YgYXR0cmlic1thdHRyXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhpcy5zZXRTdHlsZShhdHRyaWJzW2F0dHJdKTtcbiAgICAgIH0gZWxzZSBpZiAoYXR0ciA9PT0gJ2NsYXNzJykge1xuICAgICAgICB0aGlzLmFkZENsYXNzKGF0dHJpYnNbYXR0cl0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWIoYXR0ciwgYXR0cmlic1thdHRyXSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBwcml2YXRlIHNldFN0eWxlKHN0eWxlczogUmVjb3JkPHN0cmluZywgYW55Pik6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgc3R5bGUgaW4gc3R5bGVzKSB7XG4gICAgICBpZiAoc3R5bGUpIHtcbiAgICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0U3R5bGUodGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBzdHlsZSwgc3R5bGVzW3N0eWxlXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRDbGFzcyhjbGFzc2VzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGNvbnN0IGNsYXNzQXJyYXkgPSBBcnJheS5pc0FycmF5KGNsYXNzZXMpID8gY2xhc3NlcyA6IGNsYXNzZXMuc3BsaXQoJyAnKTtcbiAgICBjbGFzc0FycmF5XG4gICAgICAuZmlsdGVyKChlbGVtZW50KSA9PiBlbGVtZW50Lmxlbmd0aCA+IDApXG4gICAgICAuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICB0aGlzLiNyZW5kZXJlci5hZGRDbGFzcyh0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGVsZW1lbnQpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEF0dHJpYihrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICB2YWx1ZSAhPT0gbnVsbFxuICAgICAgPyB0aGlzLiNyZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBrZXksIHZhbHVlKVxuICAgICAgOiB0aGlzLiNyZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBrZXkpO1xuICB9XG59XG4iXX0=
@@ -1,25 +1,23 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, NgModule, Optional, SkipSelf, inject, ElementRef, signal, computed, afterNextRender, Directive, Input, HostBinding, Renderer2, Component, ViewChild } from '@angular/core';
2
+ import { Injectable, NgModule, Optional, SkipSelf, inject, input, computed, Directive, Renderer2, ElementRef, effect, signal, viewChild, afterNextRender, Component } from '@angular/core';
3
3
  import { DomSanitizer } from '@angular/platform-browser';
4
4
  import { NgClass } from '@angular/common';
5
5
 
6
6
  class IconSetService {
7
- constructor() {
8
- this._iconNames = {};
9
- this._icons = {};
10
- }
11
7
  get iconNames() {
12
- return this._iconNames;
8
+ return this.#iconNames;
13
9
  }
10
+ #iconNames = {};
14
11
  get icons() {
15
- return this._icons;
12
+ return this.#icons;
16
13
  }
17
14
  set icons(iconSet) {
18
15
  for (const iconsKey in iconSet) {
19
- this._iconNames[iconsKey] = iconsKey;
16
+ this.#iconNames[iconsKey] = iconsKey;
20
17
  }
21
- this._icons = iconSet;
18
+ this.#icons = iconSet;
22
19
  }
20
+ #icons = {};
23
21
  getIcon(name) {
24
22
  const icon = this.icons[name];
25
23
  if (!icon) {
@@ -76,83 +74,68 @@ function transformName(value) {
76
74
  }
77
75
 
78
76
  class IconDirective {
79
- #elementRef;
80
- #sanitizer;
81
- #iconSet;
82
77
  constructor() {
83
- this.#elementRef = inject(ElementRef);
84
78
  this.#sanitizer = inject(DomSanitizer);
85
79
  this.#iconSet = inject(IconSetService);
86
- this.#content = signal('');
87
- this.size = '';
88
- this.#name = signal('');
89
- this.ariaHidden = true;
90
- this.xmlns = 'http://www.w3.org/2000/svg';
91
- this.pointerEvents = 'none';
92
- this.role = 'img';
80
+ this.content = input(undefined, { alias: 'cIcon' });
81
+ this.customClasses = input();
82
+ this.size = input('');
83
+ this.title = input();
84
+ this.height = input();
85
+ this.width = input();
86
+ this.name = input('', { transform: transformName });
87
+ this.viewBoxInput = input(undefined, { alias: 'viewBox' });
88
+ this.xmlns = input('http://www.w3.org/2000/svg');
89
+ this.pointerEvents = input('none', { alias: 'pointer-events' });
90
+ this.role = input('img');
91
+ this.hostClasses = computed(() => {
92
+ const computedSize = this.computedSize();
93
+ const classes = {
94
+ icon: true,
95
+ [`icon-${computedSize}`]: !!computedSize
96
+ };
97
+ return this.customClasses() ?? classes;
98
+ });
99
+ this.viewBox = computed(() => {
100
+ return this.viewBoxInput() ?? this.scale();
101
+ });
93
102
  this.innerHtml = computed(() => {
94
- const code = Array.isArray(this.code()) ? (this.code()[1] ?? this.code()[0] ?? '') : this.code() || '';
103
+ const codeVal = this.code();
104
+ const code = Array.isArray(codeVal) ? (codeVal?.[1] ?? codeVal?.[0] ?? '') : codeVal || '';
95
105
  // todo proper sanitize
96
106
  // const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);
97
- return this.#sanitizer.bypassSecurityTrustHtml(this.titleCode + code || '');
107
+ return this.#sanitizer.bypassSecurityTrustHtml(this.#titleCode() + code || '');
108
+ });
109
+ this.#titleCode = computed(() => {
110
+ return this.title() ? `<title>${this.title()}</title>` : '';
98
111
  });
99
112
  this.code = computed(() => {
100
- if (this.#content()) {
101
- return this.#content();
113
+ const content = this.content();
114
+ if (content) {
115
+ return content;
102
116
  }
103
- if (this.#iconSet && this.#name()) {
104
- return this.#iconSet.getIcon(this.#name());
117
+ const name = this.name();
118
+ if (this.#iconSet && name) {
119
+ return this.#iconSet.getIcon(name);
105
120
  }
106
- if (this.#name() && !this.#iconSet?.icons[this.#name()]) {
107
- console.warn(`cIcon directive: The '${this.#name()}' icon not found. Add it to the IconSet service for use with the 'name' property. \n`, this.#name());
121
+ if (name && !this.#iconSet?.icons[name]) {
122
+ console.warn(`cIcon directive: The '${name}' icon not found. Add it to the IconSet service for use with the 'name' property. \n`, name);
108
123
  }
109
124
  return '';
110
125
  });
111
126
  this.scale = computed(() => {
112
127
  return Array.isArray(this.code()) && (this.code()?.length ?? 0) > 1 ? `0 0 ${this.code()?.[0]}` : '0 0 64 64';
113
128
  });
114
- afterNextRender({
115
- write: () => {
116
- this.#elementRef.nativeElement.innerHTML = this.innerHtml();
117
- }
129
+ this.computedSize = computed(() => {
130
+ const addCustom = !this.size() && (this.width() || this.height());
131
+ return this.size() === 'custom' || addCustom ? 'custom-size' : this.size();
118
132
  });
119
133
  }
120
- set content(value) {
121
- this.#content.set(value);
122
- }
123
- #content;
124
- set name(value) {
125
- this.#name.set(value);
126
- }
127
- get name() {
128
- return this.#name();
129
- }
130
- #name;
131
- set viewBox(viewBox) {
132
- this._viewBox = viewBox;
133
- }
134
- get viewBox() {
135
- return this._viewBox ?? this.scale();
136
- }
137
- get hostClasses() {
138
- return this.computedClasses;
139
- }
140
- get titleCode() {
141
- return this.title ? `<title>${this.title}</title>` : '';
142
- }
143
- get computedSize() {
144
- const addCustom = !this.size && (this.width || this.height);
145
- return this.size === 'custom' || addCustom ? 'custom-size' : this.size;
146
- }
147
- get computedClasses() {
148
- const classes = {
149
- icon: true,
150
- [`icon-${this.computedSize}`]: !!this.computedSize
151
- };
152
- return this.customClasses ?? classes;
153
- }
134
+ #sanitizer;
135
+ #iconSet;
136
+ #titleCode;
154
137
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
155
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.9", type: IconDirective, isStandalone: true, selector: "svg[cIcon]", inputs: { content: ["cIcon", "content"], customClasses: "customClasses", size: "size", title: "title", height: "height", width: "width", name: ["name", "name", transformName], viewBox: "viewBox", xmlns: "xmlns", pointerEvents: ["pointer-events", "pointerEvents"], role: "role" }, host: { attributes: { "ngSkipHydration": "true" }, properties: { "innerHtml": "innerHtml()", "attr.viewBox": "this.viewBox", "attr.aria-hidden": "this.ariaHidden", "attr.xmlns": "this.xmlns", "attr.pointer-events": "this.pointerEvents", "attr.role": "this.role", "class": "this.hostClasses" } }, exportAs: ["cIcon"], ngImport: i0 }); }
138
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.9", type: IconDirective, isStandalone: true, selector: "svg[cIcon]", inputs: { content: { classPropertyName: "content", publicName: "cIcon", isSignal: true, isRequired: false, transformFunction: null }, customClasses: { classPropertyName: "customClasses", publicName: "customClasses", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, viewBoxInput: { classPropertyName: "viewBoxInput", publicName: "viewBox", isSignal: true, isRequired: false, transformFunction: null }, xmlns: { classPropertyName: "xmlns", publicName: "xmlns", isSignal: true, isRequired: false, transformFunction: null }, pointerEvents: { classPropertyName: "pointerEvents", publicName: "pointer-events", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "ngSkipHydration": "true" }, properties: { "innerHtml": "innerHtml()", "class": "hostClasses()", "attr.viewBox": "viewBox()", "attr.xmlns": "xmlns()", "attr.pointer-events": "pointerEvents()", "attr.role": "role()", "attr.aria-hidden": "true" } }, exportAs: ["cIcon"], ngImport: i0 }); }
156
139
  }
157
140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconDirective, decorators: [{
158
141
  type: Directive,
@@ -160,76 +143,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
160
143
  exportAs: 'cIcon',
161
144
  selector: 'svg[cIcon]',
162
145
  standalone: true,
163
- host: { ngSkipHydration: 'true', '[innerHtml]': 'innerHtml()' }
146
+ host: {
147
+ ngSkipHydration: 'true',
148
+ '[innerHtml]': 'innerHtml()',
149
+ '[class]': 'hostClasses()',
150
+ '[attr.viewBox]': 'viewBox()',
151
+ '[attr.xmlns]': 'xmlns()',
152
+ '[attr.pointer-events]': 'pointerEvents()',
153
+ '[attr.role]': 'role()',
154
+ '[attr.aria-hidden]': 'true'
155
+ }
164
156
  }]
165
- }], ctorParameters: () => [], propDecorators: { content: [{
166
- type: Input,
167
- args: ['cIcon']
168
- }], customClasses: [{
169
- type: Input
170
- }], size: [{
171
- type: Input
172
- }], title: [{
173
- type: Input
174
- }], height: [{
175
- type: Input
176
- }], width: [{
177
- type: Input
178
- }], name: [{
179
- type: Input,
180
- args: [{ transform: transformName }]
181
- }], viewBox: [{
182
- type: HostBinding,
183
- args: ['attr.viewBox']
184
- }, {
185
- type: Input
186
- }], ariaHidden: [{
187
- type: HostBinding,
188
- args: ['attr.aria-hidden']
189
- }], xmlns: [{
190
- type: HostBinding,
191
- args: ['attr.xmlns']
192
- }, {
193
- type: Input
194
- }], pointerEvents: [{
195
- type: HostBinding,
196
- args: ['attr.pointer-events']
197
- }, {
198
- type: Input,
199
- args: ['pointer-events']
200
- }], role: [{
201
- type: HostBinding,
202
- args: ['attr.role']
203
- }, {
204
- type: Input
205
- }], hostClasses: [{
206
- type: HostBinding,
207
- args: ['class']
208
- }] } });
157
+ }] });
209
158
 
210
159
  class HtmlAttributesDirective {
211
- constructor(renderer, el) {
212
- this.renderer = renderer;
213
- this.el = el;
214
- }
215
- ngOnInit() {
216
- const attribs = this.cHtmlAttr;
217
- for (const attr in attribs) {
218
- if (attr === 'style' && typeof attribs[attr] === 'object') {
219
- this.setStyle(attribs[attr]);
220
- }
221
- else if (attr === 'class') {
222
- this.addClass(attribs[attr]);
223
- }
224
- else {
225
- this.setAttrib(attr, attribs[attr]);
160
+ constructor() {
161
+ this.cHtmlAttr = input();
162
+ this.#renderer = inject(Renderer2);
163
+ this.#elementRef = inject(ElementRef);
164
+ this.attrEffect = effect(() => {
165
+ const attribs = this.cHtmlAttr();
166
+ for (const attr in attribs) {
167
+ if (attr === 'style' && typeof attribs[attr] === 'object') {
168
+ this.setStyle(attribs[attr]);
169
+ }
170
+ else if (attr === 'class') {
171
+ this.addClass(attribs[attr]);
172
+ }
173
+ else {
174
+ this.setAttrib(attr, attribs[attr]);
175
+ }
226
176
  }
227
- }
177
+ });
228
178
  }
179
+ #renderer;
180
+ #elementRef;
229
181
  setStyle(styles) {
230
182
  for (const style in styles) {
231
183
  if (style) {
232
- this.renderer.setStyle(this.el.nativeElement, style, styles[style]);
184
+ this.#renderer.setStyle(this.#elementRef.nativeElement, style, styles[style]);
233
185
  }
234
186
  }
235
187
  }
@@ -238,16 +190,16 @@ class HtmlAttributesDirective {
238
190
  classArray
239
191
  .filter((element) => element.length > 0)
240
192
  .forEach((element) => {
241
- this.renderer.addClass(this.el.nativeElement, element);
193
+ this.#renderer.addClass(this.#elementRef.nativeElement, element);
242
194
  });
243
195
  }
244
196
  setAttrib(key, value) {
245
197
  value !== null
246
- ? this.renderer.setAttribute(this.el.nativeElement, key, value)
247
- : this.renderer.removeAttribute(this.el.nativeElement, key);
198
+ ? this.#renderer.setAttribute(this.#elementRef.nativeElement, key, value)
199
+ : this.#renderer.removeAttribute(this.#elementRef.nativeElement, key);
248
200
  }
249
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: HtmlAttributesDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
250
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.9", type: HtmlAttributesDirective, isStandalone: true, selector: "[cHtmlAttr]", inputs: { cHtmlAttr: "cHtmlAttr" }, exportAs: ["cHtmlAttr"], ngImport: i0 }); }
201
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: HtmlAttributesDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
202
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.9", type: HtmlAttributesDirective, isStandalone: true, selector: "[cHtmlAttr]", inputs: { cHtmlAttr: { classPropertyName: "cHtmlAttr", publicName: "cHtmlAttr", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["cHtmlAttr"], ngImport: i0 }); }
251
203
  }
252
204
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: HtmlAttributesDirective, decorators: [{
253
205
  type: Directive,
@@ -256,120 +208,97 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
256
208
  exportAs: 'cHtmlAttr',
257
209
  standalone: true
258
210
  }]
259
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { cHtmlAttr: [{
260
- type: Input
261
- }] } });
211
+ }] });
262
212
 
263
213
  class IconComponent {
264
214
  #renderer;
265
215
  #elementRef;
266
216
  #sanitizer;
267
217
  #iconSet;
218
+ #hostElement;
268
219
  constructor() {
269
220
  this.#renderer = inject(Renderer2);
270
221
  this.#elementRef = inject(ElementRef);
271
222
  this.#sanitizer = inject(DomSanitizer);
272
223
  this.#iconSet = inject(IconSetService);
273
- this.#content = signal('');
274
- this.attributes = { role: 'img' };
275
- this.size = '';
276
- this.use = '';
277
- this.#name = signal('');
224
+ this.#hostElement = signal(undefined);
225
+ this.content = input();
226
+ this.attributes = input({ role: 'img' });
227
+ this.customClasses = input();
228
+ this.size = input('');
229
+ this.title = input();
230
+ this.use = input('');
231
+ this.height = input();
232
+ this.width = input();
233
+ this.name = input('', { transform: transformName });
234
+ this.viewBoxInput = input(undefined, { alias: 'viewBox' });
235
+ this.svgElementRef = viewChild('svgElement');
236
+ this.svgElementEffect = effect(() => {
237
+ const svgElementRef = this.svgElementRef();
238
+ const hostElement = this.#hostElement()?.nativeElement;
239
+ if (svgElementRef && hostElement) {
240
+ const svgElement = svgElementRef.nativeElement;
241
+ hostElement.classList?.values()?.forEach((item) => {
242
+ this.#renderer.addClass(svgElement, item);
243
+ });
244
+ const parentElement = this.#renderer.parentNode(hostElement);
245
+ this.#renderer.insertBefore(parentElement, svgElement, hostElement);
246
+ this.#renderer.removeChild(parentElement, hostElement);
247
+ }
248
+ });
249
+ this.viewBox = computed(() => {
250
+ return this.viewBoxInput() ?? this.scale();
251
+ });
278
252
  this.innerHtml = computed(() => {
279
- const code = Array.isArray(this.code()) ? (this.code()[1] ?? this.code()[0] ?? '') : this.code() || '';
253
+ const codeVal = this.code();
254
+ const code = Array.isArray(codeVal) ? (codeVal?.[1] ?? codeVal?.[0] ?? '') : codeVal || '';
280
255
  // todo proper sanitize
281
256
  // const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);
282
- return this.#sanitizer.bypassSecurityTrustHtml(this.titleCode + code || '');
257
+ return this.#sanitizer.bypassSecurityTrustHtml(this.#titleCode() + code || '');
258
+ });
259
+ this.#titleCode = computed(() => {
260
+ return this.title() ? `<title>${this.title()}</title>` : '';
283
261
  });
284
262
  this.code = computed(() => {
285
- if (this.#content()) {
286
- return this.#content();
263
+ const content = this.content();
264
+ if (content) {
265
+ return content;
287
266
  }
288
- if (this.#iconSet && this.#name()) {
289
- return this.#iconSet.getIcon(this.#name());
267
+ const name = this.name();
268
+ if (this.#iconSet && name) {
269
+ return this.#iconSet.getIcon(name);
290
270
  }
291
- if (this.#name() && !this.#iconSet?.icons[this.#name()]) {
292
- console.warn(`c-icon component: icon name '${this.#name()}' does not exist for IconSet service. ` +
293
- `To use icon by 'name' prop you need to add it to IconSet service. \n`, this.#name());
271
+ if (name && !this.#iconSet?.icons[name]) {
272
+ console.warn(`c-icon component: The '${name}' icon not found. Add it to the IconSet service for use with the 'name' property. \n`, name);
294
273
  }
295
274
  return '';
296
275
  });
297
276
  this.scale = computed(() => {
298
- return Array.isArray(this.code()) && this.code().length > 1 ? `0 0 ${this.code()[0]}` : '0 0 64 64';
277
+ return Array.isArray(this.code()) && (this.code()?.length ?? 0) > 1 ? `0 0 ${this.code()?.[0]}` : '0 0 64 64';
299
278
  });
300
- this.#renderer.setStyle(this.#elementRef.nativeElement, 'display', 'none');
301
- }
302
- set content(value) {
303
- this.#content.set(value);
304
- }
305
- #content;
306
- set name(value) {
307
- this.#name.set(value);
308
- }
309
- get name() {
310
- return this.#name();
311
- }
312
- #name;
313
- set viewBox(viewBox) {
314
- this._viewBox = viewBox;
315
- }
316
- get viewBox() {
317
- return this._viewBox ?? this.scale();
318
- }
319
- ngAfterViewInit() {
320
- this.#elementRef.nativeElement.classList.forEach((item) => {
321
- this.#renderer.addClass(this.svgElementRef.nativeElement, item);
279
+ this.computedSize = computed(() => {
280
+ const addCustom = !this.size() && (this.width() || this.height());
281
+ return this.size() === 'custom' || addCustom ? 'custom-size' : this.size();
282
+ });
283
+ this.computedClasses = computed(() => {
284
+ const classes = {
285
+ icon: true,
286
+ [`icon-${this.computedSize()}`]: !!this.computedSize()
287
+ };
288
+ return this.customClasses() ?? classes;
289
+ });
290
+ afterNextRender(() => {
291
+ this.#hostElement.set(this.#elementRef);
322
292
  });
323
- const parentElement = this.#renderer.parentNode(this.#elementRef.nativeElement);
324
- const svgElement = this.svgElementRef.nativeElement;
325
- this.#renderer.insertBefore(parentElement, svgElement, this.#elementRef.nativeElement);
326
- this.#renderer.removeChild(parentElement, this.#elementRef.nativeElement);
327
- }
328
- get titleCode() {
329
- return this.title ? `<title>${this.title}</title>` : '';
330
- }
331
- get computedSize() {
332
- const addCustom = !this.size && (this.width || this.height);
333
- return this.size === 'custom' || addCustom ? 'custom-size' : this.size;
334
- }
335
- get computedClasses() {
336
- const classes = {
337
- icon: true,
338
- [`icon-${this.computedSize}`]: !!this.computedSize
339
- };
340
- return this.customClasses ?? classes;
341
293
  }
294
+ #titleCode;
342
295
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
343
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IconComponent, isStandalone: true, selector: "c-icon", inputs: { content: "content", attributes: "attributes", customClasses: "customClasses", size: "size", title: "title", use: "use", height: "height", width: "width", name: ["name", "name", transformName], viewBox: "viewBox" }, host: { attributes: { "ngSkipHydration": "true" } }, viewQueries: [{ propertyName: "svgElementRef", first: true, predicate: ["svgElement"], descendants: true, read: ElementRef }], exportAs: ["cIconComponent"], ngImport: i0, template: "@if (!use && !!code) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"width\"\n [attr.height]=\"height || width\"\n [attr.viewBox]=\"viewBox\"\n [innerHtml]=\"innerHtml()\"\n [ngClass]=\"computedClasses\"\n [cHtmlAttr]=\"attributes\"\n aria-hidden=\"true\"\n pointer-events=\"none\"\n role=\"img\"\n #svgElement\n >\n </svg>\n} @else if (use) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"width\"\n [attr.height]=\"height || width\"\n [ngClass]=\"computedClasses\"\n [cHtmlAttr]=\"attributes\"\n aria-hidden=\"true\"\n pointer-events=\"none\"\n role=\"img\"\n #svgElement\n >\n <use [attr.href]=\"use\"></use>\n </svg>\n}\n", styles: [".icon{display:inline-block;color:inherit;text-align:center;vertical-align:-.125rem;fill:currentColor}.icon:not(.icon-c-s):not(.icon-custom-size){width:1rem;height:1rem;font-size:1rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-xxl{width:2rem;height:2rem;font-size:2rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-xl{width:1.5rem;height:1.5rem;font-size:1.5rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-lg{width:1.25rem;height:1.25rem;font-size:1.25rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-sm{width:.875rem;height:.875rem;font-size:.875rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-3xl{width:3rem;height:3rem;font-size:3rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-4xl{width:4rem;height:4rem;font-size:4rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-5xl{width:5rem;height:5rem;font-size:5rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-6xl{width:6rem;height:6rem;font-size:6rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-7xl{width:7rem;height:7rem;font-size:7rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-8xl{width:8rem;height:8rem;font-size:8rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-9xl{width:9rem;height:9rem;font-size:9rem}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: HtmlAttributesDirective, selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }] }); }
296
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IconComponent, isStandalone: true, selector: "c-icon", inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, attributes: { classPropertyName: "attributes", publicName: "attributes", isSignal: true, isRequired: false, transformFunction: null }, customClasses: { classPropertyName: "customClasses", publicName: "customClasses", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, use: { classPropertyName: "use", publicName: "use", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, viewBoxInput: { classPropertyName: "viewBoxInput", publicName: "viewBox", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "ngSkipHydration": "true" }, styleAttribute: "display: none" }, viewQueries: [{ propertyName: "svgElementRef", first: true, predicate: ["svgElement"], descendants: true, isSignal: true }], exportAs: ["cIconComponent"], ngImport: i0, template: "@if (!use() && !!code()) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"width()\"\n [attr.height]=\"height() || width()\"\n [attr.viewBox]=\"viewBox() ?? scale()\"\n [innerHtml]=\"innerHtml()\"\n [ngClass]=\"computedClasses()\"\n [cHtmlAttr]=\"attributes()\"\n aria-hidden=\"true\"\n pointer-events=\"none\"\n role=\"img\"\n #svgElement\n >\n </svg>\n} @else if (use()) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"width()\"\n [attr.height]=\"height() || width()\"\n [ngClass]=\"computedClasses()\"\n [cHtmlAttr]=\"attributes()\"\n aria-hidden=\"true\"\n pointer-events=\"none\"\n role=\"img\"\n #svgElement\n >\n <use [attr.href]=\"use()\"></use>\n </svg>\n}\n", styles: [".icon{display:inline-block;color:inherit;text-align:center;vertical-align:-.125rem;fill:currentColor}.icon:not(.icon-c-s):not(.icon-custom-size){width:1rem;height:1rem;font-size:1rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-xxl{width:2rem;height:2rem;font-size:2rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-xl{width:1.5rem;height:1.5rem;font-size:1.5rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-lg{width:1.25rem;height:1.25rem;font-size:1.25rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-sm{width:.875rem;height:.875rem;font-size:.875rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-3xl{width:3rem;height:3rem;font-size:3rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-4xl{width:4rem;height:4rem;font-size:4rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-5xl{width:5rem;height:5rem;font-size:5rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-6xl{width:6rem;height:6rem;font-size:6rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-7xl{width:7rem;height:7rem;font-size:7rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-8xl{width:8rem;height:8rem;font-size:8rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-9xl{width:9rem;height:9rem;font-size:9rem}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: HtmlAttributesDirective, selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }] }); }
344
297
  }
345
298
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconComponent, decorators: [{
346
299
  type: Component,
347
- args: [{ exportAs: 'cIconComponent', imports: [NgClass, HtmlAttributesDirective], selector: 'c-icon', standalone: true, host: { ngSkipHydration: 'true' }, template: "@if (!use && !!code) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"width\"\n [attr.height]=\"height || width\"\n [attr.viewBox]=\"viewBox\"\n [innerHtml]=\"innerHtml()\"\n [ngClass]=\"computedClasses\"\n [cHtmlAttr]=\"attributes\"\n aria-hidden=\"true\"\n pointer-events=\"none\"\n role=\"img\"\n #svgElement\n >\n </svg>\n} @else if (use) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"width\"\n [attr.height]=\"height || width\"\n [ngClass]=\"computedClasses\"\n [cHtmlAttr]=\"attributes\"\n aria-hidden=\"true\"\n pointer-events=\"none\"\n role=\"img\"\n #svgElement\n >\n <use [attr.href]=\"use\"></use>\n </svg>\n}\n", styles: [".icon{display:inline-block;color:inherit;text-align:center;vertical-align:-.125rem;fill:currentColor}.icon:not(.icon-c-s):not(.icon-custom-size){width:1rem;height:1rem;font-size:1rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-xxl{width:2rem;height:2rem;font-size:2rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-xl{width:1.5rem;height:1.5rem;font-size:1.5rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-lg{width:1.25rem;height:1.25rem;font-size:1.25rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-sm{width:.875rem;height:.875rem;font-size:.875rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-3xl{width:3rem;height:3rem;font-size:3rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-4xl{width:4rem;height:4rem;font-size:4rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-5xl{width:5rem;height:5rem;font-size:5rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-6xl{width:6rem;height:6rem;font-size:6rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-7xl{width:7rem;height:7rem;font-size:7rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-8xl{width:8rem;height:8rem;font-size:8rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-9xl{width:9rem;height:9rem;font-size:9rem}\n"] }]
348
- }], ctorParameters: () => [], propDecorators: { content: [{
349
- type: Input
350
- }], attributes: [{
351
- type: Input
352
- }], customClasses: [{
353
- type: Input
354
- }], size: [{
355
- type: Input
356
- }], title: [{
357
- type: Input
358
- }], use: [{
359
- type: Input
360
- }], height: [{
361
- type: Input
362
- }], width: [{
363
- type: Input
364
- }], name: [{
365
- type: Input,
366
- args: [{ transform: transformName }]
367
- }], viewBox: [{
368
- type: Input
369
- }], svgElementRef: [{
370
- type: ViewChild,
371
- args: ['svgElement', { read: ElementRef }]
372
- }] } });
300
+ args: [{ exportAs: 'cIconComponent', imports: [NgClass, HtmlAttributesDirective], selector: 'c-icon', standalone: true, host: { ngSkipHydration: 'true', style: 'display: none' }, template: "@if (!use() && !!code()) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"width()\"\n [attr.height]=\"height() || width()\"\n [attr.viewBox]=\"viewBox() ?? scale()\"\n [innerHtml]=\"innerHtml()\"\n [ngClass]=\"computedClasses()\"\n [cHtmlAttr]=\"attributes()\"\n aria-hidden=\"true\"\n pointer-events=\"none\"\n role=\"img\"\n #svgElement\n >\n </svg>\n} @else if (use()) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"width()\"\n [attr.height]=\"height() || width()\"\n [ngClass]=\"computedClasses()\"\n [cHtmlAttr]=\"attributes()\"\n aria-hidden=\"true\"\n pointer-events=\"none\"\n role=\"img\"\n #svgElement\n >\n <use [attr.href]=\"use()\"></use>\n </svg>\n}\n", styles: [".icon{display:inline-block;color:inherit;text-align:center;vertical-align:-.125rem;fill:currentColor}.icon:not(.icon-c-s):not(.icon-custom-size){width:1rem;height:1rem;font-size:1rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-xxl{width:2rem;height:2rem;font-size:2rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-xl{width:1.5rem;height:1.5rem;font-size:1.5rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-lg{width:1.25rem;height:1.25rem;font-size:1.25rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-sm{width:.875rem;height:.875rem;font-size:.875rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-3xl{width:3rem;height:3rem;font-size:3rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-4xl{width:4rem;height:4rem;font-size:4rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-5xl{width:5rem;height:5rem;font-size:5rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-6xl{width:6rem;height:6rem;font-size:6rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-7xl{width:7rem;height:7rem;font-size:7rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-8xl{width:8rem;height:8rem;font-size:8rem}.icon:not(.icon-c-s):not(.icon-custom-size).icon-9xl{width:9rem;height:9rem;font-size:9rem}\n"] }]
301
+ }], ctorParameters: () => [] });
373
302
 
374
303
  class IconModule {
375
304
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }