@coreui/icons-angular 5.0.1 → 5.0.3

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,14 +1,8 @@
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';
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
4
  import { NgClass } from '@angular/common';
5
5
 
6
- function toCamelCase(str) {
7
- return str.replace(/([-_][a-z0-9])/ig, ($1) => {
8
- return $1.toUpperCase().replace('-', '');
9
- });
10
- }
11
-
12
6
  class IconSetService {
13
7
  constructor() {
14
8
  this._iconNames = {};
@@ -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.2", ngImport: i0, type: IconSetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
37
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconSetService, providedIn: 'root' }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: IconSetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
31
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: IconSetService, providedIn: 'root' }); }
38
32
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconSetService, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", 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.2", 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.2", ngImport: i0, type: IconSetModule }); }
62
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconSetModule, providers: [IconSetService] }); }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", 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.5", ngImport: i0, type: IconSetModule }); }
56
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: IconSetModule, providers: [IconSetService] }); }
63
57
  }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconSetModule, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: IconSetModule, decorators: [{
65
59
  type: NgModule,
66
60
  args: [{
67
61
  providers: [IconSetService]
@@ -72,59 +66,83 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", 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 {
76
- set viewBox(viewBox) {
77
- this._viewBox = viewBox;
78
- }
79
- get viewBox() {
80
- return this._viewBox ?? this.scale;
81
- }
82
- 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) ?? '');
95
- }
96
- constructor(renderer, elementRef, sanitizer, iconSet) {
97
- this.renderer = renderer;
98
- this.elementRef = elementRef;
99
- this.sanitizer = sanitizer;
100
- this.iconSet = iconSet;
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('');
101
87
  this.size = '';
88
+ this.#name = signal('');
102
89
  this.ariaHidden = true;
103
90
  this.xmlns = 'http://www.w3.org/2000/svg';
104
91
  this.pointerEvents = 'none';
105
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
+ });
106
115
  afterNextRender(() => {
107
- this.elementRef.nativeElement.innerHTML = this.innerHtml;
116
+ this.#elementRef.nativeElement.innerHTML = this.innerHtml();
108
117
  }, { phase: AfterRenderPhase.Write });
109
118
  }
110
- get titleCode() {
111
- return this.title ? `<title>${this.title}</title>` : '';
119
+ set content(value) {
120
+ this.#content.set(value);
112
121
  }
113
- get code() {
114
- if (this.content) {
115
- return this.content;
116
- }
117
- if (this.iconSet && this.name) {
118
- return this.iconSet.getIcon(this.name);
119
- }
120
- if (this.name && !this.iconSet?.icons[this.name]) {
121
- console.warn(`c-icon component: icon name '${this.name}' does not exist for IconSet service. ` +
122
- `To use icon by 'name' prop you need to add it to IconSet service. \n`, this.name);
123
- }
124
- return undefined;
122
+ ;
123
+ #content;
124
+ set name(value) {
125
+ this.#name.set(value);
126
+ }
127
+ ;
128
+ get name() {
129
+ return this.#name();
130
+ }
131
+ #name;
132
+ set viewBox(viewBox) {
133
+ this._viewBox = viewBox;
125
134
  }
126
- get scale() {
127
- return Array.isArray(this.code) && this.code.length > 1 ? `0 0 ${this.code[0]}` : '0 0 64 64';
135
+ get viewBox() {
136
+ return this._viewBox ?? this.scale();
137
+ }
138
+ get hostClasses() {
139
+ return this.computedClasses;
140
+ }
141
+ get bindInnerHtml() {
142
+ return this.innerHtml();
143
+ }
144
+ get titleCode() {
145
+ return this.title ? `<title>${this.title}</title>` : '';
128
146
  }
129
147
  get computedSize() {
130
148
  const addCustom = !this.size && (this.width || this.height);
@@ -135,37 +153,34 @@ class IconDirective {
135
153
  icon: true,
136
154
  [`icon-${this.computedSize}`]: !!this.computedSize
137
155
  };
138
- return !this.customClasses ? classes : this.customClasses;
139
- }
140
- toCamelCase(str) {
141
- return toCamelCase(str);
156
+ return this.customClasses ?? classes;
142
157
  }
143
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.DomSanitizer }, { token: IconSetService }], target: i0.ɵɵFactoryTarget.Directive }); }
144
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.2", 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.aria-hidden": "this.ariaHidden", "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.5", ngImport: i0, type: IconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
159
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.5", 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 }); }
145
160
  }
146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconDirective, decorators: [{
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: IconDirective, decorators: [{
147
162
  type: Directive,
148
163
  args: [{
149
- selector: 'svg[cIcon]',
150
164
  exportAs: 'cIcon',
165
+ selector: 'svg[cIcon]',
151
166
  standalone: true
152
167
  }]
153
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.DomSanitizer }, { type: IconSetService }], propDecorators: { content: [{
168
+ }], ctorParameters: () => [], propDecorators: { content: [{
154
169
  type: Input,
155
170
  args: ['cIcon']
171
+ }], customClasses: [{
172
+ type: Input
156
173
  }], size: [{
157
174
  type: Input
158
175
  }], title: [{
159
176
  type: Input
160
- }], customClasses: [{
177
+ }], height: [{
161
178
  type: Input
162
179
  }], width: [{
163
180
  type: Input
164
- }], height: [{
165
- type: Input
166
181
  }], name: [{
167
182
  type: Input,
168
- args: [{ transform: (value) => value && value.includes('-') ? toCamelCase(value) : value }]
183
+ args: [{ transform: transformName }]
169
184
  }], viewBox: [{
170
185
  type: HostBinding,
171
186
  args: ['attr.viewBox']
@@ -193,6 +208,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
193
208
  }], hostClasses: [{
194
209
  type: HostBinding,
195
210
  args: ['class']
211
+ }], bindInnerHtml: [{
212
+ type: HostBinding,
213
+ args: ['innerHtml']
196
214
  }] } });
197
215
 
198
216
  class HtmlAttributesDirective {
@@ -232,10 +250,10 @@ class HtmlAttributesDirective {
232
250
  this.renderer.setAttribute(this.el.nativeElement, key, value) :
233
251
  this.renderer.removeAttribute(this.el.nativeElement, key);
234
252
  }
235
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: HtmlAttributesDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
236
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.2", 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.5", 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.5", type: HtmlAttributesDirective, isStandalone: true, selector: "[cHtmlAttr]", inputs: { cHtmlAttr: "cHtmlAttr" }, exportAs: ["cHtmlAttr"], ngImport: i0 }); }
237
255
  }
238
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: HtmlAttributesDirective, decorators: [{
256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HtmlAttributesDirective, decorators: [{
239
257
  type: Directive,
240
258
  args: [{
241
259
  selector: '[cHtmlAttr]',
@@ -247,57 +265,75 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
247
265
  }] } });
248
266
 
249
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;
250
319
  set viewBox(viewBox) {
251
320
  this._viewBox = viewBox;
252
321
  }
253
322
  get viewBox() {
254
- return this._viewBox ?? this.scale;
255
- }
256
- get innerHtml() {
257
- const code = Array.isArray(this.code) ? this.code[1] || this.code[0] : this.code ?? '';
258
- // todo proper sanitize
259
- // const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);
260
- return this.sanitizer.bypassSecurityTrustHtml((this.titleCode + code) ?? '');
261
- }
262
- constructor(renderer, elementRef, sanitizer, iconSet) {
263
- this.renderer = renderer;
264
- this.elementRef = elementRef;
265
- this.sanitizer = sanitizer;
266
- this.iconSet = iconSet;
267
- this.attributes = { role: 'img' };
268
- this.size = '';
269
- this.use = '';
270
- this.customClasses = '';
271
- this.renderer.setStyle(this.elementRef.nativeElement, 'display', 'none');
323
+ return this._viewBox ?? this.scale();
272
324
  }
273
325
  ngAfterViewInit() {
274
- this.elementRef.nativeElement.classList.forEach((item) => {
275
- this.renderer.addClass(this.svgElementRef.nativeElement, item);
326
+ this.#elementRef.nativeElement.classList.forEach((item) => {
327
+ this.#renderer.addClass(this.svgElementRef.nativeElement, item);
276
328
  });
277
- const parentElement = this.renderer.parentNode(this.elementRef.nativeElement);
329
+ const parentElement = this.#renderer.parentNode(this.#elementRef.nativeElement);
278
330
  const svgElement = this.svgElementRef.nativeElement;
279
- this.renderer.insertBefore(parentElement, svgElement, this.elementRef.nativeElement);
280
- this.renderer.removeChild(parentElement, this.elementRef.nativeElement);
331
+ this.#renderer.insertBefore(parentElement, svgElement, this.#elementRef.nativeElement);
332
+ this.#renderer.removeChild(parentElement, this.#elementRef.nativeElement);
281
333
  }
282
334
  get titleCode() {
283
335
  return this.title ? `<title>${this.title}</title>` : '';
284
336
  }
285
- get code() {
286
- if (this.content) {
287
- return this.content;
288
- }
289
- if (this.iconSet && this.name) {
290
- return this.iconSet.getIcon(this.name);
291
- }
292
- if (this.name && !this.iconSet?.icons[this.name]) {
293
- console.warn(`c-icon component: icon name '${this.name}' does not exist for IconSet service. ` +
294
- `To use icon by 'name' prop you need to add it to IconSet service. \n`, this.name);
295
- }
296
- return undefined;
297
- }
298
- get scale() {
299
- return Array.isArray(this.code) && this.code.length > 1 ? `0 0 ${this.code[0]}` : '0 0 64 64';
300
- }
301
337
  get computedSize() {
302
338
  const addCustom = !this.size && (this.width || this.height);
303
339
  return this.size === 'custom' || addCustom ? 'custom-size' : this.size;
@@ -307,20 +343,19 @@ class IconComponent {
307
343
  icon: true,
308
344
  [`icon-${this.computedSize}`]: !!this.computedSize
309
345
  };
310
- return !this.customClasses ? classes : this.customClasses;
311
- }
312
- toCamelCase(str) {
313
- return toCamelCase(str);
346
+ return this.customClasses ?? classes;
314
347
  }
315
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.DomSanitizer }, { token: IconSetService }], target: i0.ɵɵFactoryTarget.Component }); }
316
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", 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: "@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"] }] }); }
348
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
349
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", 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"] }] }); }
317
350
  }
318
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconComponent, decorators: [{
351
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: IconComponent, decorators: [{
319
352
  type: Component,
320
- args: [{ selector: 'c-icon', standalone: true, imports: [NgClass, HtmlAttributesDirective], 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"] }]
321
- }], 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: [{
322
355
  type: Input
323
- }], content: [{
356
+ }], attributes: [{
357
+ type: Input
358
+ }], customClasses: [{
324
359
  type: Input
325
360
  }], size: [{
326
361
  type: Input
@@ -328,15 +363,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
328
363
  type: Input
329
364
  }], use: [{
330
365
  type: Input
331
- }], customClasses: [{
366
+ }], height: [{
332
367
  type: Input
333
368
  }], width: [{
334
369
  type: Input
335
- }], height: [{
336
- type: Input
337
370
  }], name: [{
338
371
  type: Input,
339
- args: [{ transform: (value) => value && value.includes('-') ? toCamelCase(value) : value }]
372
+ args: [{ transform: transformName }]
340
373
  }], viewBox: [{
341
374
  type: Input
342
375
  }], svgElementRef: [{
@@ -345,13 +378,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
345
378
  }] } });
346
379
 
347
380
  class IconModule {
348
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
349
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: IconModule, imports: [IconComponent,
381
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
382
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: IconModule, imports: [IconComponent,
350
383
  IconDirective], exports: [IconComponent,
351
384
  IconDirective] }); }
352
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconModule }); }
385
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: IconModule }); }
353
386
  }
354
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconModule, decorators: [{
387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: IconModule, decorators: [{
355
388
  type: NgModule,
356
389
  args: [{
357
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.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 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 } 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, 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","@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":["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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"}