@coreui/icons-angular 4.7.17 → 4.7.19

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,13 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, NgModule, Optional, SkipSelf, afterNextRender, AfterRenderPhase, Directive, Input, HostBinding, ElementRef, Component, ViewChild } from '@angular/core';
3
- import * as i1 from '@angular/platform-browser';
4
- import { NgClass, NgIf } from '@angular/common';
5
-
6
- function toCamelCase(str) {
7
- return str.replace(/([-_][a-z0-9])/ig, ($1) => {
8
- return $1.toUpperCase().replace('-', '');
9
- });
10
- }
2
+ import { Injectable, NgModule, Optional, SkipSelf, inject, ElementRef, signal, computed, afterNextRender, AfterRenderPhase, Directive, Input, HostBinding, Renderer2, Component, ViewChild } from '@angular/core';
3
+ import { DomSanitizer } from '@angular/platform-browser';
4
+ import { NgClass } from '@angular/common';
11
5
 
12
6
  class IconSetService {
13
7
  constructor() {
@@ -33,10 +27,10 @@ class IconSetService {
33
27
  }
34
28
  return this.icons[name];
35
29
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IconSetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
37
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IconSetService, providedIn: 'root' }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IconSetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
31
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IconSetService, providedIn: 'root' }); }
38
32
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IconSetService, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IconSetService, decorators: [{
40
34
  type: Injectable,
41
35
  args: [{
42
36
  providedIn: 'root'
@@ -57,11 +51,11 @@ class IconSetModule {
57
51
  ]
58
52
  };
59
53
  }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IconSetModule, deps: [{ token: IconSetModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
61
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: IconSetModule }); }
62
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IconSetModule, providers: [IconSetService] }); }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IconSetModule, deps: [{ token: IconSetModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
55
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: IconSetModule }); }
56
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IconSetModule, providers: [IconSetService] }); }
63
57
  }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IconSetModule, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IconSetModule, decorators: [{
65
59
  type: NgModule,
66
60
  args: [{
67
61
  providers: [IconSetService]
@@ -72,59 +66,84 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
72
66
  type: SkipSelf
73
67
  }] }] });
74
68
 
69
+ function toCamelCase(value) {
70
+ return value.replace(/([-_][a-z0-9])/ig, ($1) => {
71
+ return $1.toUpperCase().replace('-', '');
72
+ });
73
+ }
74
+ function transformName(value) {
75
+ return value && value.includes('-') ? toCamelCase(value) : value;
76
+ }
77
+
75
78
  class IconDirective {
79
+ #elementRef;
80
+ #sanitizer;
81
+ #iconSet;
82
+ constructor() {
83
+ this.#elementRef = inject(ElementRef);
84
+ this.#sanitizer = inject(DomSanitizer);
85
+ 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';
93
+ this.innerHtml = computed(() => {
94
+ const code = Array.isArray(this.code()) ? (this.code()[1] ?? this.code()[0] ?? '') : this.code() || '';
95
+ // todo proper sanitize
96
+ // const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);
97
+ return this.#sanitizer.bypassSecurityTrustHtml((this.titleCode + code) || '');
98
+ });
99
+ this.code = computed(() => {
100
+ if (this.#content()) {
101
+ return this.#content();
102
+ }
103
+ if (this.#iconSet && this.#name()) {
104
+ return this.#iconSet.getIcon(this.#name());
105
+ }
106
+ if (this.#name() && !this.#iconSet?.icons[this.#name()]) {
107
+ console.warn(`c-icon component: icon name '${this.#name()}' does not exist for IconSet service. ` +
108
+ `To use icon by 'name' prop you need to add it to IconSet service. \n`, this.#name());
109
+ }
110
+ return '';
111
+ });
112
+ this.scale = computed(() => {
113
+ return Array.isArray(this.code()) && this.code().length > 1 ? `0 0 ${this.code()[0]}` : '0 0 64 64';
114
+ });
115
+ afterNextRender(() => {
116
+ this.#elementRef.nativeElement.innerHTML = this.innerHtml();
117
+ }, { phase: AfterRenderPhase.Write });
118
+ }
119
+ set content(value) {
120
+ this.#content.set(value);
121
+ }
122
+ ;
123
+ #content;
124
+ set name(value) {
125
+ this.#name.set(value);
126
+ }
127
+ ;
128
+ get name() {
129
+ return this.#name();
130
+ }
131
+ #name;
76
132
  set viewBox(viewBox) {
77
133
  this._viewBox = viewBox;
78
134
  }
79
135
  get viewBox() {
80
- return this._viewBox ?? this.scale;
136
+ return this._viewBox ?? this.scale();
81
137
  }
82
138
  get hostClasses() {
83
- const classes = {
84
- icon: true,
85
- [`icon-${this.computedSize}`]: !!this.computedSize
86
- };
87
- return this.customClasses ?? classes;
88
- }
89
- // @HostBinding('innerHtml')
90
- get innerHtml() {
91
- const code = Array.isArray(this.code) ? this.code[1] || this.code[0] : this.code ?? '';
92
- // todo proper sanitize
93
- // const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);
94
- return this.sanitizer.bypassSecurityTrustHtml((this.titleCode + code) ?? '');
139
+ return this.computedClasses;
95
140
  }
96
- constructor(renderer, elementRef, sanitizer, iconSet) {
97
- this.renderer = renderer;
98
- this.elementRef = elementRef;
99
- this.sanitizer = sanitizer;
100
- this.iconSet = iconSet;
101
- this.size = '';
102
- this.xmlns = 'http://www.w3.org/2000/svg';
103
- this.pointerEvents = 'none';
104
- this.role = 'img';
105
- afterNextRender(() => {
106
- this.elementRef.nativeElement.innerHTML = this.innerHtml;
107
- }, { phase: AfterRenderPhase.Write });
141
+ get bindInnerHtml() {
142
+ return this.innerHtml();
108
143
  }
109
144
  get titleCode() {
110
145
  return this.title ? `<title>${this.title}</title>` : '';
111
146
  }
112
- get code() {
113
- if (this.content) {
114
- return this.content;
115
- }
116
- if (this.iconSet && this.name) {
117
- return this.iconSet.getIcon(this.name);
118
- }
119
- if (this.name && !this.iconSet?.icons[this.name]) {
120
- console.warn(`c-icon component: icon name '${this.name}' does not exist for IconSet service. ` +
121
- `To use icon by 'name' prop you need to add it to IconSet service. \n`, this.name);
122
- }
123
- return undefined;
124
- }
125
- get scale() {
126
- return Array.isArray(this.code) && this.code.length > 1 ? `0 0 ${this.code[0]}` : '0 0 64 64';
127
- }
128
147
  get computedSize() {
129
148
  const addCustom = !this.size && (this.width || this.height);
130
149
  return this.size === 'custom' || addCustom ? 'custom-size' : this.size;
@@ -134,42 +153,42 @@ class IconDirective {
134
153
  icon: true,
135
154
  [`icon-${this.computedSize}`]: !!this.computedSize
136
155
  };
137
- return !this.customClasses ? classes : this.customClasses;
138
- }
139
- toCamelCase(str) {
140
- return toCamelCase(str);
156
+ return this.customClasses ?? classes;
141
157
  }
142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IconDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.DomSanitizer }, { token: IconSetService }], target: i0.ɵɵFactoryTarget.Directive }); }
143
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.0", type: IconDirective, isStandalone: true, selector: "svg[cIcon]", inputs: { content: ["cIcon", "content"], size: "size", title: "title", customClasses: "customClasses", width: "width", height: "height", name: ["name", "name", (value) => value && value.includes('-') ? toCamelCase(value) : value], viewBox: "viewBox", xmlns: "xmlns", pointerEvents: ["pointer-events", "pointerEvents"], role: "role" }, host: { properties: { "attr.viewBox": "this.viewBox", "attr.xmlns": "this.xmlns", "attr.pointer-events": "this.pointerEvents", "attr.role": "this.role", "class": "this.hostClasses" } }, exportAs: ["cIcon"], ngImport: i0 }); }
158
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
159
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.4", 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: { properties: { "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", "innerHtml": "this.bindInnerHtml" } }, exportAs: ["cIcon"], ngImport: i0 }); }
144
160
  }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IconDirective, decorators: [{
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IconDirective, decorators: [{
146
162
  type: Directive,
147
163
  args: [{
148
- selector: 'svg[cIcon]',
149
164
  exportAs: 'cIcon',
165
+ selector: 'svg[cIcon]',
150
166
  standalone: true
151
167
  }]
152
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.DomSanitizer }, { type: IconSetService }], propDecorators: { content: [{
168
+ }], ctorParameters: () => [], propDecorators: { content: [{
153
169
  type: Input,
154
170
  args: ['cIcon']
171
+ }], customClasses: [{
172
+ type: Input
155
173
  }], size: [{
156
174
  type: Input
157
175
  }], title: [{
158
176
  type: Input
159
- }], customClasses: [{
177
+ }], height: [{
160
178
  type: Input
161
179
  }], width: [{
162
180
  type: Input
163
- }], height: [{
164
- type: Input
165
181
  }], name: [{
166
182
  type: Input,
167
- args: [{ transform: (value) => value && value.includes('-') ? toCamelCase(value) : value }]
183
+ args: [{ transform: transformName }]
168
184
  }], viewBox: [{
169
185
  type: HostBinding,
170
186
  args: ['attr.viewBox']
171
187
  }, {
172
188
  type: Input
189
+ }], ariaHidden: [{
190
+ type: HostBinding,
191
+ args: ['attr.aria-hidden']
173
192
  }], xmlns: [{
174
193
  type: HostBinding,
175
194
  args: ['attr.xmlns']
@@ -189,6 +208,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
189
208
  }], hostClasses: [{
190
209
  type: HostBinding,
191
210
  args: ['class']
211
+ }], bindInnerHtml: [{
212
+ type: HostBinding,
213
+ args: ['innerHtml']
192
214
  }] } });
193
215
 
194
216
  class HtmlAttributesDirective {
@@ -228,10 +250,10 @@ class HtmlAttributesDirective {
228
250
  this.renderer.setAttribute(this.el.nativeElement, key, value) :
229
251
  this.renderer.removeAttribute(this.el.nativeElement, key);
230
252
  }
231
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: HtmlAttributesDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
232
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.0", type: HtmlAttributesDirective, isStandalone: true, selector: "[cHtmlAttr]", inputs: { cHtmlAttr: "cHtmlAttr" }, exportAs: ["cHtmlAttr"], ngImport: i0 }); }
253
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HtmlAttributesDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
254
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: HtmlAttributesDirective, isStandalone: true, selector: "[cHtmlAttr]", inputs: { cHtmlAttr: "cHtmlAttr" }, exportAs: ["cHtmlAttr"], ngImport: i0 }); }
233
255
  }
234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: HtmlAttributesDirective, decorators: [{
256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HtmlAttributesDirective, decorators: [{
235
257
  type: Directive,
236
258
  args: [{
237
259
  selector: '[cHtmlAttr]',
@@ -243,57 +265,75 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
243
265
  }] } });
244
266
 
245
267
  class IconComponent {
268
+ #renderer;
269
+ #elementRef;
270
+ #sanitizer;
271
+ #iconSet;
272
+ constructor() {
273
+ this.#renderer = inject(Renderer2);
274
+ this.#elementRef = inject(ElementRef);
275
+ this.#sanitizer = inject(DomSanitizer);
276
+ this.#iconSet = inject(IconSetService);
277
+ this.#content = signal('');
278
+ this.attributes = { role: 'img' };
279
+ this.size = '';
280
+ this.use = '';
281
+ this.#name = signal('');
282
+ this.innerHtml = computed(() => {
283
+ const code = Array.isArray(this.code()) ? (this.code()[1] ?? this.code()[0] ?? '') : this.code() || '';
284
+ // todo proper sanitize
285
+ // const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);
286
+ return this.#sanitizer.bypassSecurityTrustHtml((this.titleCode + code) || '');
287
+ });
288
+ this.code = computed(() => {
289
+ if (this.#content()) {
290
+ return this.#content();
291
+ }
292
+ if (this.#iconSet && this.#name()) {
293
+ return this.#iconSet.getIcon(this.#name());
294
+ }
295
+ if (this.#name() && !this.#iconSet?.icons[this.#name()]) {
296
+ console.warn(`c-icon component: icon name '${this.#name()}' does not exist for IconSet service. ` +
297
+ `To use icon by 'name' prop you need to add it to IconSet service. \n`, this.#name());
298
+ }
299
+ return '';
300
+ });
301
+ this.scale = computed(() => {
302
+ return Array.isArray(this.code()) && this.code().length > 1 ? `0 0 ${this.code()[0]}` : '0 0 64 64';
303
+ });
304
+ this.#renderer.setStyle(this.#elementRef.nativeElement, 'display', 'none');
305
+ }
306
+ set content(value) {
307
+ this.#content.set(value);
308
+ }
309
+ ;
310
+ #content;
311
+ set name(value) {
312
+ this.#name.set(value);
313
+ }
314
+ ;
315
+ get name() {
316
+ return this.#name();
317
+ }
318
+ #name;
246
319
  set viewBox(viewBox) {
247
320
  this._viewBox = viewBox;
248
321
  }
249
322
  get viewBox() {
250
- return this._viewBox ?? this.scale;
251
- }
252
- get innerHtml() {
253
- const code = Array.isArray(this.code) ? this.code[1] || this.code[0] : this.code ?? '';
254
- // todo proper sanitize
255
- // const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);
256
- return this.sanitizer.bypassSecurityTrustHtml((this.titleCode + code) ?? '');
257
- }
258
- constructor(renderer, elementRef, sanitizer, iconSet) {
259
- this.renderer = renderer;
260
- this.elementRef = elementRef;
261
- this.sanitizer = sanitizer;
262
- this.iconSet = iconSet;
263
- this.attributes = { role: 'img' };
264
- this.size = '';
265
- this.use = '';
266
- this.customClasses = '';
267
- this.renderer.setStyle(this.elementRef.nativeElement, 'display', 'none');
323
+ return this._viewBox ?? this.scale();
268
324
  }
269
325
  ngAfterViewInit() {
270
- this.elementRef.nativeElement.classList.forEach((item) => {
271
- this.renderer.addClass(this.svgElementRef.nativeElement, item);
326
+ this.#elementRef.nativeElement.classList.forEach((item) => {
327
+ this.#renderer.addClass(this.svgElementRef.nativeElement, item);
272
328
  });
273
- const parentElement = this.renderer.parentNode(this.elementRef.nativeElement);
329
+ const parentElement = this.#renderer.parentNode(this.#elementRef.nativeElement);
274
330
  const svgElement = this.svgElementRef.nativeElement;
275
- this.renderer.insertBefore(parentElement, svgElement, this.elementRef.nativeElement);
276
- this.renderer.removeChild(parentElement, this.elementRef.nativeElement);
331
+ this.#renderer.insertBefore(parentElement, svgElement, this.#elementRef.nativeElement);
332
+ this.#renderer.removeChild(parentElement, this.#elementRef.nativeElement);
277
333
  }
278
334
  get titleCode() {
279
335
  return this.title ? `<title>${this.title}</title>` : '';
280
336
  }
281
- get code() {
282
- if (this.content) {
283
- return this.content;
284
- }
285
- if (this.iconSet && this.name) {
286
- return this.iconSet.getIcon(this.name);
287
- }
288
- if (this.name && !this.iconSet?.icons[this.name]) {
289
- console.warn(`c-icon component: icon name '${this.name}' does not exist for IconSet service. ` +
290
- `To use icon by 'name' prop you need to add it to IconSet service. \n`, this.name);
291
- }
292
- return undefined;
293
- }
294
- get scale() {
295
- return Array.isArray(this.code) && this.code.length > 1 ? `0 0 ${this.code[0]}` : '0 0 64 64';
296
- }
297
337
  get computedSize() {
298
338
  const addCustom = !this.size && (this.width || this.height);
299
339
  return this.size === 'custom' || addCustom ? 'custom-size' : this.size;
@@ -303,20 +343,19 @@ class IconComponent {
303
343
  icon: true,
304
344
  [`icon-${this.computedSize}`]: !!this.computedSize
305
345
  };
306
- return !this.customClasses ? classes : this.customClasses;
307
- }
308
- toCamelCase(str) {
309
- return toCamelCase(str);
346
+ return this.customClasses ?? classes;
310
347
  }
311
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IconComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.DomSanitizer }, { token: IconSetService }], target: i0.ɵɵFactoryTarget.Component }); }
312
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.0", type: IconComponent, isStandalone: true, selector: "c-icon", inputs: { attributes: "attributes", content: "content", size: "size", title: "title", use: "use", customClasses: "customClasses", width: "width", height: "height", name: ["name", "name", (value) => value && value.includes('-') ? toCamelCase(value) : value], viewBox: "viewBox" }, host: { attributes: { "ngSkipHydration": "true" } }, viewQueries: [{ propertyName: "svgElementRef", first: true, predicate: ["svgElement"], descendants: true, read: ElementRef }], ngImport: i0, template: "<svg *ngIf=\"(!use) && (!!code)\"\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 role=\"img\"\n pointer-events=\"none\"\n #svgElement\n>\n</svg>\n\n<svg *ngIf=\"use\"\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"width\"\n [attr.height]=\"height || width\"\n [ngClass]=\"computedClasses\"\n [cHtmlAttr]=\"attributes\"\n role=\"img\"\n pointer-events=\"none\"\n>\n <use [attr.href]=\"use\"></use>\n</svg>\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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: HtmlAttributesDirective, selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }] }); }
348
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
349
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", 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"] }] }); }
313
350
  }
314
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IconComponent, decorators: [{
351
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IconComponent, decorators: [{
315
352
  type: Component,
316
- args: [{ selector: 'c-icon', standalone: true, imports: [NgClass, NgIf, HtmlAttributesDirective], host: { ngSkipHydration: 'true' }, template: "<svg *ngIf=\"(!use) && (!!code)\"\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 role=\"img\"\n pointer-events=\"none\"\n #svgElement\n>\n</svg>\n\n<svg *ngIf=\"use\"\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"width\"\n [attr.height]=\"height || width\"\n [ngClass]=\"computedClasses\"\n [cHtmlAttr]=\"attributes\"\n role=\"img\"\n pointer-events=\"none\"\n>\n <use [attr.href]=\"use\"></use>\n</svg>\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"] }]
317
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.DomSanitizer }, { type: IconSetService }], propDecorators: { attributes: [{
353
+ 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"] }]
354
+ }], ctorParameters: () => [], propDecorators: { content: [{
318
355
  type: Input
319
- }], content: [{
356
+ }], attributes: [{
357
+ type: Input
358
+ }], customClasses: [{
320
359
  type: Input
321
360
  }], size: [{
322
361
  type: Input
@@ -324,15 +363,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
324
363
  type: Input
325
364
  }], use: [{
326
365
  type: Input
327
- }], customClasses: [{
366
+ }], height: [{
328
367
  type: Input
329
368
  }], width: [{
330
369
  type: Input
331
- }], height: [{
332
- type: Input
333
370
  }], name: [{
334
371
  type: Input,
335
- args: [{ transform: (value) => value && value.includes('-') ? toCamelCase(value) : value }]
372
+ args: [{ transform: transformName }]
336
373
  }], viewBox: [{
337
374
  type: Input
338
375
  }], svgElementRef: [{
@@ -341,13 +378,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
341
378
  }] } });
342
379
 
343
380
  class IconModule {
344
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
345
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: IconModule, imports: [IconComponent,
381
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
382
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: IconModule, imports: [IconComponent,
346
383
  IconDirective], exports: [IconComponent,
347
384
  IconDirective] }); }
348
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IconModule }); }
385
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IconModule }); }
349
386
  }
350
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: IconModule, decorators: [{
387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IconModule, decorators: [{
351
388
  type: NgModule,
352
389
  args: [{
353
390
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"coreui-icons-angular.mjs","sources":["../../../projects/coreui-icons-angular/src/lib/icon/icon.utils.ts","../../../projects/coreui-icons-angular/src/lib/icon-set/icon-set.service.ts","../../../projects/coreui-icons-angular/src/lib/icon-set/icon-set.module.ts","../../../projects/coreui-icons-angular/src/lib/icon/icon.directive.ts","../../../projects/coreui-icons-angular/src/lib/shared/html-attr.directive.ts","../../../projects/coreui-icons-angular/src/lib/icon/icon.component.ts","../../../projects/coreui-icons-angular/src/lib/icon/icon.component.svg","../../../projects/coreui-icons-angular/src/lib/icon/icon.module.ts","../../../projects/coreui-icons-angular/src/public-api.ts","../../../projects/coreui-icons-angular/src/coreui-icons-angular.ts"],"sourcesContent":["export function toCamelCase(str: string) {\n return str.replace(/([-_][a-z0-9])/ig, ($1: string) => {\n return $1.toUpperCase().replace('-', '');\n });\n}\n","import { Injectable } from '@angular/core';\n\nexport interface IIconSet {\n [iconName: string]: string[];\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IconSetService {\n\n constructor() {}\n\n public get iconNames() {\n return this._iconNames;\n }\n\n private _iconNames: { [key: string]: string } = {};\n\n get icons(): IIconSet {\n return this._icons;\n }\n set icons(iconSet) {\n for (const iconsKey in iconSet) {\n this._iconNames[iconsKey] = iconsKey;\n }\n this._icons = iconSet;\n }\n private _icons: IIconSet = {};\n\n public getIcon(name: string): string[] {\n const icon = this.icons[name];\n if (!icon) {\n console.warn(`CoreUI WARN: Icon ${name} is not registered in IconService`);\n }\n return this.icons[name];\n }\n}\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\n\nimport { IconSetService } from './icon-set.service';\n\n@NgModule({\n providers: [IconSetService]\n})\nexport class IconSetModule {\n constructor(@Optional() @SkipSelf() parentModule?: IconSetModule) {\n if (parentModule) {\n throw new Error(\n 'CoreUI IconSetModule is already loaded. Import it in the AppModule only');\n }\n }\n\n static forRoot(): ModuleWithProviders<IconSetModule> {\n return {\n ngModule: IconSetModule,\n providers: [\n { provide: IconSetService }\n ]\n };\n }\n}\n","import { afterNextRender, AfterRenderPhase, Directive, ElementRef, HostBinding, Input, Renderer2 } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { IconSetService } from '../icon-set';\nimport { IconSize, IIcon } from './icon.interface';\nimport { toCamelCase } from './icon.utils';\n\n@Directive({\n selector: 'svg[cIcon]',\n exportAs: 'cIcon',\n standalone: true\n})\nexport class IconDirective implements IIcon {\n\n @Input('cIcon') content?: string | string[] | any[];\n @Input() size: IconSize = '';\n @Input() title?: string;\n @Input() customClasses?: string | string[] | Set<string> | { [klass: string]: any };\n @Input() width?: string;\n @Input() height?: string;\n\n @Input({ transform: (value: string) => value && value.includes('-') ? toCamelCase(value) : value }) name!: string;\n\n @HostBinding('attr.viewBox')\n @Input()\n set viewBox(viewBox: string) {\n this._viewBox = viewBox;\n }\n\n get viewBox(): string {\n return this._viewBox ?? this.scale;\n }\n\n private _viewBox!: string;\n\n @HostBinding('attr.xmlns')\n @Input() xmlns = 'http://www.w3.org/2000/svg';\n\n @HostBinding('attr.pointer-events')\n @Input('pointer-events') pointerEvents = 'none';\n\n @HostBinding('attr.role')\n @Input() role = 'img';\n\n @HostBinding('class')\n get hostClasses() {\n const classes = {\n icon: true,\n [`icon-${this.computedSize}`]: !!this.computedSize\n };\n return this.customClasses ?? classes;\n }\n\n // @HostBinding('innerHtml')\n get innerHtml() {\n const code = Array.isArray(this.code) ? this.code[1] || this.code[0] : this.code ?? '';\n // todo proper sanitize\n // const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);\n return this.sanitizer.bypassSecurityTrustHtml((this.titleCode + code) ?? '');\n }\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef,\n private sanitizer: DomSanitizer,\n private iconSet: IconSetService\n ) {\n afterNextRender(() => {\n this.elementRef.nativeElement.innerHTML = this.innerHtml;\n }, { phase: AfterRenderPhase.Write });\n }\n\n get titleCode(): string {\n return this.title ? `<title>${this.title}</title>` : '';\n }\n\n get code(): string | string[] | undefined {\n if (this.content) {\n return this.content;\n }\n if (this.iconSet && this.name) {\n return this.iconSet.getIcon(this.name);\n }\n if (this.name && !this.iconSet?.icons[this.name]) {\n console.warn(`c-icon component: icon name '${this.name}' does not exist for IconSet service. ` +\n `To use icon by 'name' prop you need to add it to IconSet service. \\n`,\n this.name\n );\n }\n return undefined;\n }\n\n get scale(): string {\n return Array.isArray(this.code) && this.code.length > 1 ? `0 0 ${this.code[0]}` : '0 0 64 64';\n }\n\n get computedSize(): Exclude<IconSize, 'custom'> | undefined {\n const addCustom = !this.size && (this.width || this.height);\n return this.size === 'custom' || addCustom ? 'custom-size' : this.size;\n }\n\n get computedClasses() {\n const classes = {\n icon: true,\n [`icon-${this.computedSize}`]: !!this.computedSize\n };\n return !this.customClasses ? classes : this.customClasses;\n }\n\n toCamelCase(str: string): string {\n return toCamelCase(str);\n }\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[cHtmlAttr]',\n exportAs: 'cHtmlAttr',\n standalone: true\n})\nexport class HtmlAttributesDirective implements OnInit {\n\n @Input() cHtmlAttr?: { [key: string]: any };\n\n constructor(\n private renderer: Renderer2,\n private el: ElementRef\n ) {}\n\n ngOnInit(): void {\n const attribs = this.cHtmlAttr;\n for (const attr in attribs) {\n if (attr === 'style' && typeof (attribs[attr]) === 'object') {\n this.setStyle(attribs[attr]);\n } else if (attr === 'class') {\n this.addClass(attribs[attr]);\n } else {\n this.setAttrib(attr, attribs[attr]);\n }\n }\n }\n\n private setStyle(styles: { [x: string]: any; }): void {\n for (const style in styles) {\n if (style) {\n this.renderer.setStyle(this.el.nativeElement, style, styles[style]);\n }\n }\n }\n\n private addClass(classes: string | string[]): void {\n const classArray = (Array.isArray(classes) ? classes : classes.split(' '));\n classArray.filter((element) => element.length > 0).forEach(element => {\n this.renderer.addClass(this.el.nativeElement, element);\n });\n }\n\n private setAttrib(key: string, value: string | null): void {\n value !== null ?\n this.renderer.setAttribute(this.el.nativeElement, key, value) :\n this.renderer.removeAttribute(this.el.nativeElement, key);\n }\n}\n","import { NgClass, NgIf } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, Input, Renderer2, ViewChild } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { HtmlAttributesDirective } from '../shared/html-attr.directive';\nimport { IconSetService } from '../icon-set';\nimport { IconSize, IIcon } from './icon.interface';\nimport { toCamelCase } from './icon.utils';\n\n@Component({\n selector: 'c-icon',\n templateUrl: './icon.component.svg',\n styleUrls: ['./icon.component.scss'],\n standalone: true,\n imports: [NgClass, NgIf, HtmlAttributesDirective],\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: { ngSkipHydration: 'true' }\n})\nexport class IconComponent implements IIcon, AfterViewInit {\n\n @Input() attributes: any = { role: 'img' };\n @Input() content?: string | string[] | any[];\n @Input() size: IconSize = '';\n @Input() title?: string;\n @Input() use = '';\n @Input() customClasses?: string | string[] | Set<string> | { [klass: string]: any } = '';\n @Input() width?: string;\n @Input() height?: string;\n\n @Input({ transform: (value: string) => value && value.includes('-') ? toCamelCase(value) : value }) name!: string;\n\n @Input()\n set viewBox(viewBox: string) {\n this._viewBox = viewBox;\n }\n\n get viewBox(): string {\n return this._viewBox ?? this.scale;\n }\n\n private _viewBox!: string;\n\n @ViewChild('svgElement', { read: ElementRef }) svgElementRef!: ElementRef;\n\n get innerHtml(): SafeHtml {\n const code = Array.isArray(this.code) ? this.code[1] || this.code[0] : this.code ?? '';\n // todo proper sanitize\n // const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);\n return this.sanitizer.bypassSecurityTrustHtml((this.titleCode + code) ?? '');\n }\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef,\n private sanitizer: DomSanitizer,\n private iconSet: IconSetService\n ) {\n this.renderer.setStyle(this.elementRef.nativeElement, 'display', 'none');\n }\n\n ngAfterViewInit(): void {\n this.elementRef.nativeElement.classList.forEach((item: string) => {\n this.renderer.addClass(this.svgElementRef.nativeElement, item);\n });\n const parentElement = this.renderer.parentNode(this.elementRef.nativeElement);\n const svgElement = this.svgElementRef.nativeElement;\n this.renderer.insertBefore(parentElement, svgElement, this.elementRef.nativeElement);\n this.renderer.removeChild(parentElement, this.elementRef.nativeElement);\n }\n\n get titleCode(): string {\n return this.title ? `<title>${this.title}</title>` : '';\n }\n\n get code(): string | string[] | undefined {\n if (this.content) {\n return this.content;\n }\n if (this.iconSet && this.name) {\n return this.iconSet.getIcon(this.name);\n }\n if (this.name && !this.iconSet?.icons[this.name]) {\n console.warn(`c-icon component: icon name '${this.name}' does not exist for IconSet service. ` +\n `To use icon by 'name' prop you need to add it to IconSet service. \\n`,\n this.name\n );\n }\n return undefined;\n }\n\n get scale(): string {\n return Array.isArray(this.code) && this.code.length > 1 ? `0 0 ${this.code[0]}` : '0 0 64 64';\n }\n\n get computedSize(): Exclude<IconSize, 'custom'> | undefined {\n const addCustom = !this.size && (this.width || this.height);\n return this.size === 'custom' || addCustom ? 'custom-size' : this.size;\n }\n\n get computedClasses() {\n const classes = {\n icon: true,\n [`icon-${this.computedSize}`]: !!this.computedSize\n };\n return !this.customClasses ? classes : this.customClasses;\n }\n\n toCamelCase(str: string): string {\n return toCamelCase(str);\n }\n}\n","<svg *ngIf=\"(!use) && (!!code)\"\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 role=\"img\"\n pointer-events=\"none\"\n #svgElement\n>\n</svg>\n\n<svg *ngIf=\"use\"\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"width\"\n [attr.height]=\"height || width\"\n [ngClass]=\"computedClasses\"\n [cHtmlAttr]=\"attributes\"\n role=\"img\"\n pointer-events=\"none\"\n>\n <use [attr.href]=\"use\"></use>\n</svg>\n","import { NgModule } from '@angular/core';\nimport { IconComponent } from './icon.component';\nimport { IconDirective } from './icon.directive';\n\n@NgModule({\n imports: [\n IconComponent,\n IconDirective\n ],\n exports: [\n IconComponent,\n IconDirective\n ]\n})\nexport class IconModule {}\n","/*\n * Public API Surface of @coreui/icons-angular\n */\nexport { IconDirective } from './lib/icon/icon.directive';\nexport { IconComponent } from './lib/icon/icon.component';\nexport { IconModule } from './lib/icon/icon.module';\nexport { IconSetService, IIconSet } from './lib/icon-set/icon-set.service';\nexport { IconSetModule } from './lib/icon-set/icon-set.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.IconSetService"],"mappings":"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"}
1
+ {"version":3,"file":"coreui-icons-angular.mjs","sources":["../../../projects/coreui-icons-angular/src/lib/icon-set/icon-set.service.ts","../../../projects/coreui-icons-angular/src/lib/icon-set/icon-set.module.ts","../../../projects/coreui-icons-angular/src/lib/icon/icon.utils.ts","../../../projects/coreui-icons-angular/src/lib/icon/icon.directive.ts","../../../projects/coreui-icons-angular/src/lib/shared/html-attr.directive.ts","../../../projects/coreui-icons-angular/src/lib/icon/icon.component.ts","../../../projects/coreui-icons-angular/src/lib/icon/icon.component.svg","../../../projects/coreui-icons-angular/src/lib/icon/icon.module.ts","../../../projects/coreui-icons-angular/src/public-api.ts","../../../projects/coreui-icons-angular/src/coreui-icons-angular.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nexport interface IIconSet {\n [iconName: string]: string[];\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IconSetService {\n\n constructor() {}\n\n public get iconNames() {\n return this._iconNames;\n }\n\n private _iconNames: { [key: string]: string } = {};\n\n get icons(): IIconSet {\n return this._icons;\n }\n set icons(iconSet) {\n for (const iconsKey in iconSet) {\n this._iconNames[iconsKey] = iconsKey;\n }\n this._icons = iconSet;\n }\n private _icons: IIconSet = {};\n\n public getIcon(name: string): string[] {\n const icon = this.icons[name];\n if (!icon) {\n console.warn(`CoreUI WARN: Icon ${name} is not registered in IconService`);\n }\n return this.icons[name];\n }\n}\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\n\nimport { IconSetService } from './icon-set.service';\n\n@NgModule({\n providers: [IconSetService]\n})\nexport class IconSetModule {\n constructor(@Optional() @SkipSelf() parentModule?: IconSetModule) {\n if (parentModule) {\n throw new Error(\n 'CoreUI IconSetModule is already loaded. Import it in the AppModule only');\n }\n }\n\n static forRoot(): ModuleWithProviders<IconSetModule> {\n return {\n ngModule: IconSetModule,\n providers: [\n { provide: IconSetService }\n ]\n };\n }\n}\n","export function toCamelCase(value: string) {\n return value.replace(/([-_][a-z0-9])/ig, ($1: string) => {\n return $1.toUpperCase().replace('-', '');\n });\n}\n\nexport function transformName(value: string) {\n return value && value.includes('-') ? toCamelCase(value) : value;\n}\n","import {\n afterNextRender,\n AfterRenderPhase,\n computed,\n Directive,\n ElementRef,\n HostBinding,\n inject,\n Input,\n signal\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { IconSetService } from '../icon-set';\nimport { IconSize, IIcon } from './icon.interface';\nimport { transformName } from './icon.utils';\n\n@Directive({\n exportAs: 'cIcon',\n selector: 'svg[cIcon]',\n standalone: true\n})\nexport class IconDirective implements IIcon {\n\n readonly #elementRef = inject(ElementRef);\n readonly #sanitizer = inject(DomSanitizer);\n readonly #iconSet = inject(IconSetService);\n\n constructor() {\n afterNextRender(() => {\n this.#elementRef.nativeElement.innerHTML = this.innerHtml();\n }, { phase: AfterRenderPhase.Write });\n }\n\n @Input('cIcon')\n set content(value: string | string[] | any[]) {\n this.#content.set(value);\n };\n\n readonly #content = signal<string | string[] | any[]>('');\n\n @Input() customClasses?: string | string[] | Set<string> | { [klass: string]: any };\n @Input() size: IconSize = '';\n @Input() title?: string;\n @Input() height?: string;\n @Input() width?: string;\n\n @Input({ transform: transformName })\n set name(value: string) {\n this.#name.set(value);\n };\n\n get name() {\n return this.#name();\n }\n\n readonly #name = signal('');\n\n @HostBinding('attr.viewBox')\n @Input()\n set viewBox(viewBox: string) {\n this._viewBox = viewBox;\n }\n\n get viewBox(): string {\n return this._viewBox ?? this.scale();\n }\n\n private _viewBox!: string;\n\n @HostBinding('attr.aria-hidden') ariaHidden = true;\n\n @HostBinding('attr.xmlns')\n @Input() xmlns = 'http://www.w3.org/2000/svg';\n\n @HostBinding('attr.pointer-events')\n @Input('pointer-events') pointerEvents = 'none';\n\n @HostBinding('attr.role')\n @Input() role = 'img';\n\n @HostBinding('class')\n get hostClasses() {\n return this.computedClasses;\n }\n\n @HostBinding('innerHtml')\n get bindInnerHtml() {\n return this.innerHtml();\n }\n\n readonly innerHtml = computed(() => {\n const code = Array.isArray(this.code()) ? (this.code()[1] ?? this.code()[0] ?? '') : this.code() || '';\n // todo proper sanitize\n // const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);\n return this.#sanitizer.bypassSecurityTrustHtml((this.titleCode + code) || '');\n });\n\n get titleCode(): string {\n return this.title ? `<title>${this.title}</title>` : '';\n }\n\n readonly code = computed(() => {\n if (this.#content()) {\n return this.#content();\n }\n if (this.#iconSet && this.#name()) {\n return this.#iconSet.getIcon(this.#name());\n }\n if (this.#name() && !this.#iconSet?.icons[this.#name()]) {\n console.warn(`c-icon component: icon name '${this.#name()}' does not exist for IconSet service. ` +\n `To use icon by 'name' prop you need to add it to IconSet service. \\n`,\n this.#name()\n );\n }\n return '';\n });\n\n readonly scale = computed(() => {\n return Array.isArray(this.code()) && this.code().length > 1 ? `0 0 ${this.code()[0]}` : '0 0 64 64';\n });\n\n get computedSize(): Exclude<IconSize, 'custom'> | undefined {\n const addCustom = !this.size && (this.width || this.height);\n return this.size === 'custom' || addCustom ? 'custom-size' : this.size;\n }\n\n get computedClasses() {\n const classes = {\n icon: true,\n [`icon-${this.computedSize}`]: !!this.computedSize\n };\n return this.customClasses ?? classes;\n }\n\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[cHtmlAttr]',\n exportAs: 'cHtmlAttr',\n standalone: true\n})\nexport class HtmlAttributesDirective implements OnInit {\n\n @Input() cHtmlAttr?: { [key: string]: any };\n\n constructor(\n private renderer: Renderer2,\n private el: ElementRef\n ) {}\n\n ngOnInit(): void {\n const attribs = this.cHtmlAttr;\n for (const attr in attribs) {\n if (attr === 'style' && typeof (attribs[attr]) === 'object') {\n this.setStyle(attribs[attr]);\n } else if (attr === 'class') {\n this.addClass(attribs[attr]);\n } else {\n this.setAttrib(attr, attribs[attr]);\n }\n }\n }\n\n private setStyle(styles: { [x: string]: any; }): void {\n for (const style in styles) {\n if (style) {\n this.renderer.setStyle(this.el.nativeElement, style, styles[style]);\n }\n }\n }\n\n private addClass(classes: string | string[]): void {\n const classArray = (Array.isArray(classes) ? classes : classes.split(' '));\n classArray.filter((element) => element.length > 0).forEach(element => {\n this.renderer.addClass(this.el.nativeElement, element);\n });\n }\n\n private setAttrib(key: string, value: string | null): void {\n value !== null ?\n this.renderer.setAttribute(this.el.nativeElement, key, value) :\n this.renderer.removeAttribute(this.el.nativeElement, key);\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n computed,\n ElementRef,\n inject,\n Input,\n Renderer2,\n signal,\n ViewChild\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { HtmlAttributesDirective } from '../shared/html-attr.directive';\nimport { IconSetService } from '../icon-set';\nimport { IconSize, IIcon } from './icon.interface';\nimport { transformName } from './icon.utils';\n\n@Component({\n exportAs: 'cIconComponent',\n imports: [NgClass, HtmlAttributesDirective],\n selector: 'c-icon',\n standalone: true,\n styleUrls: ['./icon.component.scss'],\n templateUrl: './icon.component.svg',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: { ngSkipHydration: 'true' }\n})\nexport class IconComponent implements IIcon, AfterViewInit {\n\n readonly #renderer = inject(Renderer2);\n readonly #elementRef = inject(ElementRef);\n readonly #sanitizer = inject(DomSanitizer);\n readonly #iconSet = inject(IconSetService);\n\n constructor() {\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'display', 'none');\n }\n\n @Input()\n set content(value: string | string[] | any[]) {\n this.#content.set(value);\n };\n\n readonly #content = signal<string | string[] | any[]>('');\n\n @Input() attributes: any = { role: 'img' };\n @Input() customClasses?: string | string[] | Set<string> | { [klass: string]: any };\n @Input() size: IconSize = '';\n @Input() title?: string;\n @Input() use = '';\n @Input() height?: string;\n @Input() width?: string;\n\n @Input({ transform: transformName })\n set name(value: string) {\n this.#name.set(value);\n };\n\n get name() {\n return this.#name();\n }\n\n readonly #name = signal('');\n\n @Input()\n set viewBox(viewBox: string) {\n this._viewBox = viewBox;\n }\n\n get viewBox(): string {\n return this._viewBox ?? this.scale();\n }\n\n private _viewBox!: string;\n\n @ViewChild('svgElement', { read: ElementRef }) svgElementRef!: ElementRef;\n\n ngAfterViewInit(): void {\n this.#elementRef.nativeElement.classList.forEach((item: string) => {\n this.#renderer.addClass(this.svgElementRef.nativeElement, item);\n });\n const parentElement = this.#renderer.parentNode(this.#elementRef.nativeElement);\n const svgElement = this.svgElementRef.nativeElement;\n this.#renderer.insertBefore(parentElement, svgElement, this.#elementRef.nativeElement);\n this.#renderer.removeChild(parentElement, this.#elementRef.nativeElement);\n }\n\n readonly innerHtml = computed(() => {\n const code = Array.isArray(this.code()) ? (this.code()[1] ?? this.code()[0] ?? '') : this.code() || '';\n // todo proper sanitize\n // const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);\n return this.#sanitizer.bypassSecurityTrustHtml((this.titleCode + code) || '');\n });\n\n get titleCode(): string {\n return this.title ? `<title>${this.title}</title>` : '';\n }\n\n readonly code = computed(() => {\n if (this.#content()) {\n return this.#content();\n }\n if (this.#iconSet && this.#name()) {\n return this.#iconSet.getIcon(this.#name());\n }\n if (this.#name() && !this.#iconSet?.icons[this.#name()]) {\n console.warn(`c-icon component: icon name '${this.#name()}' does not exist for IconSet service. ` +\n `To use icon by 'name' prop you need to add it to IconSet service. \\n`,\n this.#name()\n );\n }\n return '';\n });\n\n readonly scale = computed(() => {\n return Array.isArray(this.code()) && this.code().length > 1 ? `0 0 ${this.code()[0]}` : '0 0 64 64';\n });\n\n get computedSize(): Exclude<IconSize, 'custom'> | undefined {\n const addCustom = !this.size && (this.width || this.height);\n return this.size === 'custom' || addCustom ? 'custom-size' : this.size;\n }\n\n get computedClasses() {\n const classes = {\n icon: true,\n [`icon-${this.computedSize}`]: !!this.computedSize\n };\n return this.customClasses ?? classes;\n }\n\n}\n","@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","import { NgModule } from '@angular/core';\nimport { IconComponent } from './icon.component';\nimport { IconDirective } from './icon.directive';\n\n@NgModule({\n imports: [\n IconComponent,\n IconDirective\n ],\n exports: [\n IconComponent,\n IconDirective\n ]\n})\nexport class IconModule {}\n","/*\n * Public API Surface of @coreui/icons-angular\n */\nexport { IconDirective } from './lib/icon/icon.directive';\nexport { IconComponent } from './lib/icon/icon.component';\nexport { IconModule } from './lib/icon/icon.module';\nexport { IconSetService, IIconSet } from './lib/icon-set/icon-set.service';\nexport { IconSetModule } from './lib/icon-set/icon-set.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}