@coreui/icons-angular 5.0.1 → 5.0.2
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.
- package/esm2022/lib/icon/icon.component.mjs +73 -58
- package/esm2022/lib/icon/icon.directive.mjs +75 -60
- package/esm2022/lib/icon/icon.module.mjs +4 -4
- package/esm2022/lib/icon/icon.utils.mjs +6 -3
- package/esm2022/lib/icon-set/icon-set.module.mjs +4 -4
- package/esm2022/lib/icon-set/icon-set.service.mjs +3 -3
- package/esm2022/lib/shared/html-attr.directive.mjs +3 -3
- package/fesm2022/coreui-icons-angular.mjs +163 -130
- package/fesm2022/coreui-icons-angular.mjs.map +1 -1
- package/lib/icon/icon.component.d.ts +14 -19
- package/lib/icon/icon.directive.d.ts +13 -18
- package/lib/icon/icon.utils.d.ts +2 -1
- package/package.json +1 -1
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, NgModule, Optional, SkipSelf, afterNextRender, AfterRenderPhase, Directive, Input, HostBinding,
|
|
3
|
-
import
|
|
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.
|
|
37
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.
|
|
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.
|
|
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.
|
|
61
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.
|
|
62
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.
|
|
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.
|
|
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,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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
|
116
|
+
this.#elementRef.nativeElement.innerHTML = this.innerHtml();
|
|
108
117
|
}, { phase: AfterRenderPhase.Write });
|
|
109
118
|
}
|
|
110
|
-
|
|
111
|
-
|
|
119
|
+
set content(value) {
|
|
120
|
+
this.#content.set(value);
|
|
112
121
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
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
|
|
127
|
-
return
|
|
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
|
|
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.
|
|
144
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.
|
|
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 }); }
|
|
145
160
|
}
|
|
146
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
161
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", 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: () => [
|
|
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
|
-
}],
|
|
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:
|
|
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.
|
|
236
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.
|
|
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 }); }
|
|
237
255
|
}
|
|
238
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
256
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", 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
|
|
275
|
-
this
|
|
326
|
+
this.#elementRef.nativeElement.classList.forEach((item) => {
|
|
327
|
+
this.#renderer.addClass(this.svgElementRef.nativeElement, item);
|
|
276
328
|
});
|
|
277
|
-
const parentElement = this
|
|
329
|
+
const parentElement = this.#renderer.parentNode(this.#elementRef.nativeElement);
|
|
278
330
|
const svgElement = this.svgElementRef.nativeElement;
|
|
279
|
-
this
|
|
280
|
-
this
|
|
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
|
|
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.
|
|
316
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.
|
|
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"] }] }); }
|
|
317
350
|
}
|
|
318
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
351
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IconComponent, decorators: [{
|
|
319
352
|
type: Component,
|
|
320
|
-
args: [{
|
|
321
|
-
}], ctorParameters: () => [
|
|
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
|
-
}],
|
|
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
|
-
}],
|
|
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:
|
|
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.
|
|
349
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.
|
|
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,
|
|
350
383
|
IconDirective], exports: [IconComponent,
|
|
351
384
|
IconDirective] }); }
|
|
352
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.
|
|
385
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IconModule }); }
|
|
353
386
|
}
|
|
354
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
387
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", 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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"}
|