@coreui/icons-angular 3.0.0-alpha.0 → 3.0.0-alpha.4

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.
Files changed (33) hide show
  1. package/README.md +59 -24
  2. package/{esm2015/coreui-icons-angular.js → esm2020/coreui-icons-angular.mjs} +0 -0
  3. package/esm2020/lib/icon/icon.component.mjs +110 -0
  4. package/esm2020/lib/icon/icon.directive.mjs +127 -0
  5. package/esm2020/lib/icon/icon.interface.mjs +2 -0
  6. package/esm2020/lib/icon/icon.module.mjs +34 -0
  7. package/{esm2015/lib/icon-set/icon-set.module.js → esm2020/lib/icon-set/icon-set.module.mjs} +4 -4
  8. package/esm2020/lib/icon-set/icon-set.service.mjs +37 -0
  9. package/esm2020/lib/icon-set/index.mjs +2 -0
  10. package/esm2020/lib/icon-set/public_api.mjs +3 -0
  11. package/{esm2015/lib/shared/html-attr.directive.js → esm2020/lib/shared/html-attr.directive.mjs} +3 -3
  12. package/esm2020/public-api.mjs +9 -0
  13. package/fesm2015/coreui-icons-angular.mjs +402 -0
  14. package/fesm2015/coreui-icons-angular.mjs.map +1 -0
  15. package/fesm2020/coreui-icons-angular.mjs +393 -0
  16. package/fesm2020/coreui-icons-angular.mjs.map +1 -0
  17. package/lib/icon/icon.component.d.ts +19 -14
  18. package/lib/icon/icon.directive.d.ts +41 -0
  19. package/lib/icon/icon.interface.d.ts +15 -0
  20. package/lib/icon/icon.module.d.ts +3 -2
  21. package/lib/icon-set/icon-set.service.d.ts +5 -1
  22. package/lib/icon-set/index.d.ts +1 -0
  23. package/lib/icon-set/public_api.d.ts +2 -0
  24. package/package.json +21 -8
  25. package/public-api.d.ts +1 -0
  26. package/bundles/coreui-icons-angular.umd.js +0 -328
  27. package/bundles/coreui-icons-angular.umd.js.map +0 -1
  28. package/esm2015/lib/icon/icon.component.js +0 -100
  29. package/esm2015/lib/icon/icon.module.js +0 -29
  30. package/esm2015/lib/icon-set/icon-set.service.js +0 -30
  31. package/esm2015/public-api.js +0 -8
  32. package/fesm2015/coreui-icons-angular.js +0 -249
  33. package/fesm2015/coreui-icons-angular.js.map +0 -1
@@ -0,0 +1,402 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, NgModule, Optional, SkipSelf, Directive, Input, HostBinding, ElementRef, Component, ViewChild } from '@angular/core';
3
+ import * as i1 from '@angular/platform-browser';
4
+ import * as i3 from '@angular/common';
5
+ import { CommonModule } from '@angular/common';
6
+
7
+ class IconSetService {
8
+ constructor() {
9
+ this._iconNames = {};
10
+ this._icons = {};
11
+ }
12
+ get iconNames() {
13
+ return this._iconNames;
14
+ }
15
+ ;
16
+ get icons() {
17
+ return this._icons;
18
+ }
19
+ set icons(iconSet) {
20
+ for (const iconsKey in iconSet) {
21
+ this._iconNames[iconsKey] = iconsKey;
22
+ }
23
+ this._icons = iconSet;
24
+ }
25
+ getIcon(name) {
26
+ const icon = this.icons[name];
27
+ if (!icon) {
28
+ console.warn(`CoreUI WARN: Icon ${name} is not registered in IconService`);
29
+ }
30
+ return this.icons[name];
31
+ }
32
+ }
33
+ IconSetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: IconSetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
34
+ IconSetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: IconSetService, providedIn: 'root' });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: IconSetService, decorators: [{
36
+ type: Injectable,
37
+ args: [{
38
+ providedIn: 'root'
39
+ }]
40
+ }], ctorParameters: function () { return []; } });
41
+
42
+ class IconSetModule {
43
+ constructor(parentModule) {
44
+ if (parentModule) {
45
+ throw new Error('CoreUI IconSetModule is already loaded. Import it in the AppModule only');
46
+ }
47
+ }
48
+ static forRoot() {
49
+ return {
50
+ ngModule: IconSetModule,
51
+ providers: [
52
+ { provide: IconSetService }
53
+ ]
54
+ };
55
+ }
56
+ }
57
+ IconSetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: IconSetModule, deps: [{ token: IconSetModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
58
+ IconSetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: IconSetModule, imports: [CommonModule] });
59
+ IconSetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: IconSetModule, providers: [
60
+ IconSetService
61
+ ], imports: [[
62
+ CommonModule
63
+ ]] });
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: IconSetModule, decorators: [{
65
+ type: NgModule,
66
+ args: [{
67
+ imports: [
68
+ CommonModule
69
+ ],
70
+ providers: [
71
+ IconSetService
72
+ ]
73
+ }]
74
+ }], ctorParameters: function () {
75
+ return [{ type: IconSetModule, decorators: [{
76
+ type: Optional
77
+ }, {
78
+ type: SkipSelf
79
+ }] }];
80
+ } });
81
+
82
+ class IconDirective {
83
+ constructor(renderer, elementRef, sanitizer, iconSet) {
84
+ this.renderer = renderer;
85
+ this.elementRef = elementRef;
86
+ this.sanitizer = sanitizer;
87
+ this.iconSet = iconSet;
88
+ this.size = '';
89
+ this.xmlns = 'http://www.w3.org/2000/svg';
90
+ this.pointerEvents = 'none';
91
+ this.role = 'img';
92
+ }
93
+ set name(name) {
94
+ this._name = (name === null || name === void 0 ? void 0 : name.includes('-')) ? this.toCamelCase(name) : name;
95
+ }
96
+ get name() {
97
+ return this._name;
98
+ }
99
+ set viewBox(viewBox) {
100
+ this._viewBox = viewBox;
101
+ }
102
+ get viewBox() {
103
+ var _a;
104
+ return (_a = this._viewBox) !== null && _a !== void 0 ? _a : this.scale;
105
+ }
106
+ get hostClasses() {
107
+ var _a;
108
+ const classes = {
109
+ icon: true,
110
+ [`icon-${this.computedSize}`]: !!this.computedSize
111
+ };
112
+ return (_a = this.customClasses) !== null && _a !== void 0 ? _a : classes;
113
+ }
114
+ get innerHtml() {
115
+ var _a, _b;
116
+ const code = Array.isArray(this.code) ? this.code[1] || this.code[0] : (_a = this.code) !== null && _a !== void 0 ? _a : '';
117
+ // todo proper sanitize
118
+ // const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);
119
+ return this.sanitizer.bypassSecurityTrustHtml((_b = (this.titleCode + code)) !== null && _b !== void 0 ? _b : '');
120
+ }
121
+ get titleCode() {
122
+ return this.title ? `<title>${this.title}</title>` : '';
123
+ }
124
+ get code() {
125
+ var _a;
126
+ if (this.content) {
127
+ return this.content;
128
+ }
129
+ if (this.iconSet && this.name) {
130
+ return this.iconSet.getIcon(this.name);
131
+ }
132
+ if (this.name && !((_a = this.iconSet) === null || _a === void 0 ? void 0 : _a.icons[this.name]))
133
+ console.warn(`c-icon component: icon name '${this.name}' does not exist for IconSet service. ` +
134
+ `To use icon by 'name' prop you need to add it to IconSet service. \n`, this.name);
135
+ return undefined;
136
+ }
137
+ get scale() {
138
+ return Array.isArray(this.code) && this.code.length > 1 ? `0 0 ${this.code[0]}` : '0 0 64 64';
139
+ }
140
+ get computedSize() {
141
+ const addCustom = !this.size && (this.width || this.height);
142
+ return this.size === 'custom' || addCustom ? 'custom-size' : this.size;
143
+ }
144
+ get computedClasses() {
145
+ const classes = {
146
+ icon: true,
147
+ [`icon-${this.computedSize}`]: !!this.computedSize
148
+ };
149
+ return !!this.customClasses ? this.customClasses : classes;
150
+ }
151
+ toCamelCase(str) {
152
+ return str.replace(/([-_][a-z0-9])/ig, ($1) => {
153
+ return $1.toUpperCase().replace('-', '');
154
+ });
155
+ }
156
+ }
157
+ IconDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: IconDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.DomSanitizer }, { token: IconSetService }], target: i0.ɵɵFactoryTarget.Directive });
158
+ IconDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: IconDirective, selector: "svg[cIcon]", inputs: { content: ["cIcon", "content"], size: "size", title: "title", customClasses: "customClasses", width: "width", height: "height", name: "name", viewBox: "viewBox", xmlns: "xmlns", pointerEvents: ["pointer-events", "pointerEvents"], role: "role" }, host: { properties: { "attr.viewBox": "this.viewBox", "attr.xmlns": "this.xmlns", "attr.pointer-events": "this.pointerEvents", "attr.role": "this.role", "class": "this.hostClasses", "innerHtml": "this.innerHtml" } }, exportAs: ["cIcon"], ngImport: i0 });
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: IconDirective, decorators: [{
160
+ type: Directive,
161
+ args: [{
162
+ selector: 'svg[cIcon]',
163
+ exportAs: 'cIcon'
164
+ }]
165
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.DomSanitizer }, { type: IconSetService }]; }, propDecorators: { content: [{
166
+ type: Input,
167
+ args: ['cIcon']
168
+ }], size: [{
169
+ type: Input
170
+ }], title: [{
171
+ type: Input
172
+ }], customClasses: [{
173
+ type: Input
174
+ }], width: [{
175
+ type: Input
176
+ }], height: [{
177
+ type: Input
178
+ }], name: [{
179
+ type: Input
180
+ }], viewBox: [{
181
+ type: HostBinding,
182
+ args: ['attr.viewBox']
183
+ }, {
184
+ type: Input
185
+ }], xmlns: [{
186
+ type: HostBinding,
187
+ args: ['attr.xmlns']
188
+ }, {
189
+ type: Input
190
+ }], pointerEvents: [{
191
+ type: HostBinding,
192
+ args: ['attr.pointer-events']
193
+ }, {
194
+ type: Input,
195
+ args: ['pointer-events']
196
+ }], role: [{
197
+ type: HostBinding,
198
+ args: ['attr.role']
199
+ }, {
200
+ type: Input
201
+ }], hostClasses: [{
202
+ type: HostBinding,
203
+ args: ['class']
204
+ }], innerHtml: [{
205
+ type: HostBinding,
206
+ args: ['innerHtml']
207
+ }] } });
208
+
209
+ class HtmlAttributesDirective {
210
+ constructor(renderer, el) {
211
+ this.renderer = renderer;
212
+ this.el = el;
213
+ }
214
+ ngOnInit() {
215
+ const attribs = this.cHtmlAttr;
216
+ for (const attr in attribs) {
217
+ if (attr === 'style' && typeof (attribs[attr]) === 'object') {
218
+ this.setStyle(attribs[attr]);
219
+ }
220
+ else if (attr === 'class') {
221
+ this.addClass(attribs[attr]);
222
+ }
223
+ else {
224
+ this.setAttrib(attr, attribs[attr]);
225
+ }
226
+ }
227
+ }
228
+ setStyle(styles) {
229
+ // tslint:disable-next-line:forin
230
+ for (const style in styles) {
231
+ this.renderer.setStyle(this.el.nativeElement, style, styles[style]);
232
+ }
233
+ }
234
+ addClass(classes) {
235
+ const classArray = (Array.isArray(classes) ? classes : classes.split(' '));
236
+ classArray.filter((element) => element.length > 0).forEach(element => {
237
+ this.renderer.addClass(this.el.nativeElement, element);
238
+ });
239
+ }
240
+ setAttrib(key, value) {
241
+ value !== null ?
242
+ this.renderer.setAttribute(this.el.nativeElement, key, value) :
243
+ this.renderer.removeAttribute(this.el.nativeElement, key);
244
+ }
245
+ }
246
+ HtmlAttributesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: HtmlAttributesDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
247
+ HtmlAttributesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: HtmlAttributesDirective, selector: "[cHtmlAttr]", inputs: { cHtmlAttr: "cHtmlAttr" }, exportAs: ["cHtmlAttr"], ngImport: i0 });
248
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: HtmlAttributesDirective, decorators: [{
249
+ type: Directive,
250
+ args: [{
251
+ selector: '[cHtmlAttr]',
252
+ exportAs: 'cHtmlAttr'
253
+ }]
254
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { cHtmlAttr: [{
255
+ type: Input
256
+ }] } });
257
+
258
+ class IconComponent {
259
+ constructor(renderer, elementRef, sanitizer, iconSet) {
260
+ this.renderer = renderer;
261
+ this.elementRef = elementRef;
262
+ this.sanitizer = sanitizer;
263
+ this.iconSet = iconSet;
264
+ this.attributes = { role: 'img' };
265
+ this.size = '';
266
+ this.use = '';
267
+ this.customClasses = '';
268
+ this.renderer.setStyle(this.elementRef.nativeElement, 'display', 'none');
269
+ }
270
+ set name(name) {
271
+ this._name = name.includes('-') ? this.toCamelCase(name) : name;
272
+ }
273
+ get name() {
274
+ return this._name;
275
+ }
276
+ set viewBox(viewBox) {
277
+ this._viewBox = viewBox;
278
+ }
279
+ get viewBox() {
280
+ var _a;
281
+ return (_a = this._viewBox) !== null && _a !== void 0 ? _a : this.scale;
282
+ }
283
+ get innerHtml() {
284
+ var _a, _b;
285
+ const code = Array.isArray(this.code) ? this.code[1] || this.code[0] : (_a = this.code) !== null && _a !== void 0 ? _a : '';
286
+ // todo proper sanitize
287
+ // const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);
288
+ return this.sanitizer.bypassSecurityTrustHtml((_b = (this.titleCode + code)) !== null && _b !== void 0 ? _b : '');
289
+ }
290
+ ngAfterViewInit() {
291
+ this.elementRef.nativeElement.classList.forEach((item) => {
292
+ this.renderer.addClass(this.svgElementRef.nativeElement, item);
293
+ });
294
+ const parentElement = this.renderer.parentNode(this.elementRef.nativeElement);
295
+ const svgElement = this.svgElementRef.nativeElement;
296
+ this.renderer.insertBefore(parentElement, svgElement, this.elementRef.nativeElement);
297
+ this.renderer.removeChild(parentElement, this.elementRef.nativeElement);
298
+ }
299
+ get titleCode() {
300
+ return this.title ? `<title>${this.title}</title>` : '';
301
+ }
302
+ get code() {
303
+ var _a;
304
+ if (this.content) {
305
+ return this.content;
306
+ }
307
+ if (this.iconSet && this.name) {
308
+ return this.iconSet.getIcon(this.name);
309
+ }
310
+ if (this.name && !((_a = this.iconSet) === null || _a === void 0 ? void 0 : _a.icons[this.name]))
311
+ console.warn(`c-icon component: icon name '${this.name}' does not exist for IconSet service. ` +
312
+ `To use icon by 'name' prop you need to add it to IconSet service. \n`, this.name);
313
+ return undefined;
314
+ }
315
+ get scale() {
316
+ return Array.isArray(this.code) && this.code.length > 1 ? `0 0 ${this.code[0]}` : '0 0 64 64';
317
+ }
318
+ get computedSize() {
319
+ const addCustom = !this.size && (this.width || this.height);
320
+ return this.size === 'custom' || addCustom ? 'custom-size' : this.size;
321
+ }
322
+ get computedClasses() {
323
+ const classes = {
324
+ icon: true,
325
+ [`icon-${this.computedSize}`]: !!this.computedSize
326
+ };
327
+ return !!this.customClasses ? this.customClasses : classes;
328
+ }
329
+ toCamelCase(str) {
330
+ return str.replace(/([-_][a-z0-9])/ig, ($1) => {
331
+ return $1.toUpperCase().replace('-', '');
332
+ });
333
+ }
334
+ }
335
+ IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: IconComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.DomSanitizer }, { token: IconSetService }], target: i0.ɵɵFactoryTarget.Component });
336
+ IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: IconComponent, selector: "c-icon", inputs: { attributes: "attributes", content: "content", size: "size", title: "title", use: "use", customClasses: "customClasses", width: "width", height: "height", name: "name", viewBox: "viewBox" }, viewQueries: [{ propertyName: "svgElementRef", first: true, predicate: ["svgElement"], descendants: true, read: ElementRef }], ngImport: i0, template: "<svg *ngIf=\"(!use) && (!!code)\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n [attr.width]=\"width\"\r\n [attr.height]=\"height || width\"\r\n [attr.viewBox]=\"viewBox\"\r\n [innerHtml]=\"innerHtml\"\r\n [ngClass]=\"computedClasses\"\r\n [cHtmlAttr]=\"attributes\"\r\n role=\"img\"\r\n pointer-events=\"none\"\r\n #svgElement\r\n>\r\n</svg>\r\n\r\n<svg *ngIf=\"use\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n [attr.width]=\"width\"\r\n [attr.height]=\"height || width\"\r\n [ngClass]=\"computedClasses\"\r\n [cHtmlAttr]=\"attributes\"\r\n role=\"img\"\r\n pointer-events=\"none\"\r\n>\r\n <use [attr.href]=\"use\"></use>\r\n</svg>\r\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"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: HtmlAttributesDirective, selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }] });
337
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: IconComponent, decorators: [{
338
+ type: Component,
339
+ args: [{ selector: 'c-icon', template: "<svg *ngIf=\"(!use) && (!!code)\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n [attr.width]=\"width\"\r\n [attr.height]=\"height || width\"\r\n [attr.viewBox]=\"viewBox\"\r\n [innerHtml]=\"innerHtml\"\r\n [ngClass]=\"computedClasses\"\r\n [cHtmlAttr]=\"attributes\"\r\n role=\"img\"\r\n pointer-events=\"none\"\r\n #svgElement\r\n>\r\n</svg>\r\n\r\n<svg *ngIf=\"use\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n [attr.width]=\"width\"\r\n [attr.height]=\"height || width\"\r\n [ngClass]=\"computedClasses\"\r\n [cHtmlAttr]=\"attributes\"\r\n role=\"img\"\r\n pointer-events=\"none\"\r\n>\r\n <use [attr.href]=\"use\"></use>\r\n</svg>\r\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"] }]
340
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.DomSanitizer }, { type: IconSetService }]; }, propDecorators: { attributes: [{
341
+ type: Input
342
+ }], content: [{
343
+ type: Input
344
+ }], size: [{
345
+ type: Input
346
+ }], title: [{
347
+ type: Input
348
+ }], use: [{
349
+ type: Input
350
+ }], customClasses: [{
351
+ type: Input
352
+ }], width: [{
353
+ type: Input
354
+ }], height: [{
355
+ type: Input
356
+ }], name: [{
357
+ type: Input
358
+ }], viewBox: [{
359
+ type: Input
360
+ }], svgElementRef: [{
361
+ type: ViewChild,
362
+ args: ['svgElement', { read: ElementRef }]
363
+ }] } });
364
+
365
+ class IconModule {
366
+ }
367
+ IconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
368
+ IconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: IconModule, declarations: [IconComponent,
369
+ HtmlAttributesDirective,
370
+ IconDirective], imports: [CommonModule], exports: [IconComponent,
371
+ IconDirective] });
372
+ IconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: IconModule, imports: [[
373
+ CommonModule,
374
+ ]] });
375
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: IconModule, decorators: [{
376
+ type: NgModule,
377
+ args: [{
378
+ declarations: [
379
+ IconComponent,
380
+ HtmlAttributesDirective,
381
+ IconDirective
382
+ ],
383
+ imports: [
384
+ CommonModule,
385
+ ],
386
+ exports: [
387
+ IconComponent,
388
+ IconDirective
389
+ ],
390
+ }]
391
+ }] });
392
+
393
+ /*
394
+ * Public API Surface of @coreui/icons-angular
395
+ */
396
+
397
+ /**
398
+ * Generated bundle index. Do not edit.
399
+ */
400
+
401
+ export { IconComponent, IconDirective, IconModule, IconSetModule, IconSetService };
402
+ //# sourceMappingURL=coreui-icons-angular.mjs.map
@@ -0,0 +1 @@
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.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';\r\n\r\nexport interface IIconSet {\r\n [iconName: string]: string[];\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IconSetService {\r\n\r\n constructor() {}\r\n\r\n public get iconNames() {\r\n return this._iconNames;\r\n };\r\n private _iconNames: { [key: string]: string } = {};\r\n\r\n get icons(): IIconSet {\r\n return this._icons;\r\n }\r\n set icons(iconSet) {\r\n for (const iconsKey in iconSet) {\r\n this._iconNames[iconsKey] = iconsKey;\r\n }\r\n this._icons = iconSet;\r\n }\r\n private _icons: IIconSet = {};\r\n\r\n public getIcon(name: string): string[] {\r\n const icon = this.icons[name];\r\n if (!icon) {\r\n console.warn(`CoreUI WARN: Icon ${name} is not registered in IconService`);\r\n }\r\n return this.icons[name];\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { IconSetService } from './icon-set.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n providers: [\r\n IconSetService\r\n ]\r\n})\r\nexport class IconSetModule {\r\n constructor(@Optional() @SkipSelf() parentModule?: IconSetModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'CoreUI IconSetModule is already loaded. Import it in the AppModule only');\r\n }\r\n }\r\n\r\n static forRoot(): ModuleWithProviders<IconSetModule> {\r\n return {\r\n ngModule: IconSetModule,\r\n providers: [\r\n { provide: IconSetService }\r\n ]\r\n };\r\n }\r\n}\r\n","import { Directive, ElementRef, HostBinding, Input, Renderer2 } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IconSetService } from '../icon-set';\n\nimport { IconSize, IIcon } from './icon.interface';\n\n@Directive({\n selector: 'svg[cIcon]',\n exportAs: 'cIcon'\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()\n set name(name: string) {\n this._name = name?.includes('-') ? this.toCamelCase(name) : name;\n }\n get name(): string {\n return this._name;\n }\n private _name!: string;\n\n @HostBinding('attr.viewBox')\n @Input()\n set viewBox(viewBox: string) {\n this._viewBox = viewBox;\n }\n get viewBox(): string {\n return this._viewBox ?? this.scale;\n }\n private _viewBox!: string;\n\n @HostBinding('attr.xmlns')\n @Input() xmlns = 'http://www.w3.org/2000/svg';\n\n @HostBinding('attr.pointer-events')\n @Input('pointer-events') pointerEvents = 'none';\n\n @HostBinding('attr.role')\n @Input() role = 'img';\n\n @HostBinding('class')\n get hostClasses() {\n const classes = {\n icon: true,\n [`icon-${this.computedSize}`]: !!this.computedSize\n };\n return this.customClasses ?? classes;\n }\n\n @HostBinding('innerHtml')\n get innerHtml() {\n const code = Array.isArray(this.code) ? this.code[1] || this.code[0] : this.code ?? '';\n // todo proper sanitize\n // const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);\n return this.sanitizer.bypassSecurityTrustHtml((this.titleCode + code) ?? '');\n }\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef,\n private sanitizer: DomSanitizer,\n private iconSet: IconSetService\n ) { }\n\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 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(): any {\n const classes = {\n icon: true,\n [`icon-${this.computedSize}`]: !!this.computedSize\n };\n return !!this.customClasses ? this.customClasses : classes;\n }\n\n toCamelCase(str: string): any {\n return str.replace(/([-_][a-z0-9])/ig, ($1: string) => {\n return $1.toUpperCase().replace('-', '');\n });\n }\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cHtmlAttr]',\r\n exportAs: 'cHtmlAttr'\r\n})\r\nexport class HtmlAttributesDirective implements OnInit {\r\n\r\n @Input() cHtmlAttr?: { [key: string]: any };\r\n\r\n constructor(\r\n private renderer: Renderer2,\r\n private el: ElementRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const attribs = this.cHtmlAttr;\r\n for (const attr in attribs) {\r\n if (attr === 'style' && typeof (attribs[attr]) === 'object') {\r\n this.setStyle(attribs[attr]);\r\n } else if (attr === 'class') {\r\n this.addClass(attribs[attr]);\r\n } else {\r\n this.setAttrib(attr, attribs[attr]);\r\n }\r\n }\r\n }\r\n\r\n private setStyle(styles: any): void {\r\n // tslint:disable-next-line:forin\r\n for (const style in styles) {\r\n this.renderer.setStyle(this.el.nativeElement, style, styles[style]);\r\n }\r\n }\r\n\r\n private addClass(classes: string | string[]): void {\r\n const classArray = (Array.isArray(classes) ? classes : classes.split(' '));\r\n classArray.filter((element) => element.length > 0).forEach(element => {\r\n this.renderer.addClass(this.el.nativeElement, element);\r\n });\r\n }\r\n\r\n private setAttrib(key: string, value: string | null): void {\r\n value !== null ?\r\n this.renderer.setAttribute(this.el.nativeElement, key, value) :\r\n this.renderer.removeAttribute(this.el.nativeElement, key);\r\n }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, Input, Renderer2, ViewChild } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { IconSetService } from '../icon-set/icon-set.service';\r\nimport { IconSize, IIcon } from './icon.interface';\r\n\r\n@Component({\r\n selector: 'c-icon',\r\n templateUrl: './icon.component.svg',\r\n styleUrls: ['./icon.component.scss']\r\n})\r\nexport class IconComponent implements IIcon, AfterViewInit {\r\n\r\n @Input() attributes: any = {role: 'img'};\r\n @Input() content?: string | string[] | any[];\r\n @Input() size: IconSize = '';\r\n @Input() title?: string;\r\n @Input() use = '';\r\n @Input() customClasses?: string | string[] | Set<string> | { [klass: string]: any } = '';\r\n @Input() width?: string;\r\n @Input() height?: string;\r\n\r\n @Input()\r\n set name(name: string) {\r\n this._name = name.includes('-') ? this.toCamelCase(name) : name;\r\n }\r\n get name(): string {\r\n return this._name;\r\n }\r\n private _name!: string;\r\n\r\n @Input()\r\n set viewBox(viewBox: string) {\r\n this._viewBox = viewBox;\r\n }\r\n get viewBox(): string {\r\n return this._viewBox ?? this.scale;\r\n }\r\n private _viewBox!: string;\r\n\r\n @ViewChild('svgElement', {read: ElementRef}) svgElementRef!: ElementRef;\r\n\r\n get innerHtml(): SafeHtml {\r\n const code = Array.isArray(this.code) ? this.code[1] || this.code[0] : this.code ?? '';\r\n // todo proper sanitize\r\n // const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);\r\n return this.sanitizer.bypassSecurityTrustHtml((this.titleCode + code) ?? '');\r\n }\r\n\r\n constructor(\r\n private renderer: Renderer2,\r\n private elementRef: ElementRef,\r\n private sanitizer: DomSanitizer,\r\n private iconSet: IconSetService\r\n ) {\r\n this.renderer.setStyle(this.elementRef.nativeElement, 'display', 'none');\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.elementRef.nativeElement.classList.forEach((item: string) => {\r\n this.renderer.addClass(this.svgElementRef.nativeElement, item);\r\n });\r\n const parentElement = this.renderer.parentNode(this.elementRef.nativeElement);\r\n const svgElement = this.svgElementRef.nativeElement;\r\n this.renderer.insertBefore(parentElement, svgElement, this.elementRef.nativeElement);\r\n this.renderer.removeChild(parentElement, this.elementRef.nativeElement);\r\n }\r\n\r\n get titleCode(): string {\r\n return this.title ? `<title>${this.title}</title>` : '';\r\n }\r\n\r\n get code(): string | string[] | undefined {\r\n if (this.content) {\r\n return this.content;\r\n }\r\n if (this.iconSet && this.name) {\r\n return this.iconSet.getIcon(this.name);\r\n }\r\n if (this.name && !this.iconSet?.icons[this.name])\r\n console.warn(`c-icon component: icon name '${this.name}' does not exist for IconSet service. ` +\r\n `To use icon by 'name' prop you need to add it to IconSet service. \\n`,\r\n this.name\r\n );\r\n return undefined;\r\n }\r\n\r\n get scale(): string {\r\n return Array.isArray(this.code) && this.code.length > 1 ? `0 0 ${this.code[0]}` : '0 0 64 64';\r\n }\r\n\r\n get computedSize(): Exclude<IconSize, 'custom'> | undefined {\r\n const addCustom = !this.size && (this.width || this.height);\r\n return this.size === 'custom' || addCustom ? 'custom-size' : this.size;\r\n }\r\n\r\n get computedClasses(): any {\r\n const classes = {\r\n icon: true,\r\n [`icon-${this.computedSize}`]: !!this.computedSize\r\n };\r\n return !!this.customClasses ? this.customClasses : classes;\r\n }\r\n\r\n toCamelCase(str: string): any {\r\n return str.replace(/([-_][a-z0-9])/ig, ($1: string) => {\r\n return $1.toUpperCase().replace('-', '');\r\n });\r\n }\r\n}\r\n","<svg *ngIf=\"(!use) && (!!code)\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n [attr.width]=\"width\"\r\n [attr.height]=\"height || width\"\r\n [attr.viewBox]=\"viewBox\"\r\n [innerHtml]=\"innerHtml\"\r\n [ngClass]=\"computedClasses\"\r\n [cHtmlAttr]=\"attributes\"\r\n role=\"img\"\r\n pointer-events=\"none\"\r\n #svgElement\r\n>\r\n</svg>\r\n\r\n<svg *ngIf=\"use\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n [attr.width]=\"width\"\r\n [attr.height]=\"height || width\"\r\n [ngClass]=\"computedClasses\"\r\n [cHtmlAttr]=\"attributes\"\r\n role=\"img\"\r\n pointer-events=\"none\"\r\n>\r\n <use [attr.href]=\"use\"></use>\r\n</svg>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { IconComponent } from './icon.component';\r\nimport { IconDirective } from './icon.directive';\r\nimport { HtmlAttributesDirective } from '../shared/html-attr.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n IconComponent,\r\n HtmlAttributesDirective,\r\n IconDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n ],\r\n exports: [\r\n IconComponent,\r\n IconDirective\r\n ],\r\n})\r\nexport class IconModule {\r\n}\r\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":";;;;;;MASa,cAAc;IAEzB;QAKQ,eAAU,GAA8B,EAAE,CAAC;QAW3C,WAAM,GAAa,EAAE,CAAC;KAhBd;IAEhB,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;;IAGD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IACD,IAAI,KAAK,CAAC,OAAO;QACf,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE;YAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;SACtC;QACD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;KACvB;IAGM,OAAO,CAAC,IAAY;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,CAAC,IAAI,CAAC,qBAAqB,IAAI,mCAAmC,CAAC,CAAC;SAC5E;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACzB;;2GA1BU,cAAc;+GAAd,cAAc,cAFb,MAAM;2FAEP,cAAc;kBAH1B,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCKY,aAAa;IACxB,YAAoC,YAA4B;QAC9D,IAAI,YAAY,EAAE;YAChB,MAAM,IAAI,KAAK,CACb,yEAAyE,CAAC,CAAC;SAC9E;KACF;IAED,OAAO,OAAO;QACZ,OAAO;YACL,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,cAAc,EAAE;aAC5B;SACF,CAAC;KACH;;0GAfU,aAAa,kBAC2B,aAAa;2GADrD,aAAa,YANtB,YAAY;2GAMH,aAAa,aAJb;QACT,cAAc;KACf,YALQ;YACP,YAAY;SACb;2FAKU,aAAa;kBARzB,QAAQ;mBAAC;oBACR,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,SAAS,EAAE;wBACT,cAAc;qBACf;iBACF;;wBAEoD,aAAa;8BAAnD,QAAQ;;8BAAI,QAAQ;;;;MCJtB,aAAa;IAsDxB,YACU,QAAmB,EACnB,UAAsB,EACtB,SAAuB,EACvB,OAAuB;QAHvB,aAAQ,GAAR,QAAQ,CAAW;QACnB,eAAU,GAAV,UAAU,CAAY;QACtB,cAAS,GAAT,SAAS,CAAc;QACvB,YAAO,GAAP,OAAO,CAAgB;QAvDxB,SAAI,GAAa,EAAE,CAAC;QA0BpB,UAAK,GAAG,4BAA4B,CAAC;QAGrB,kBAAa,GAAG,MAAM,CAAC;QAGvC,SAAI,GAAG,KAAK,CAAC;KAwBjB;IAlDL,IACI,IAAI,CAAC,IAAY;QACnB,IAAI,CAAC,KAAK,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,GAAG,CAAC,IAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KAClE;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;IAGD,IAEI,OAAO,CAAC,OAAe;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;KACzB;IACD,IAAI,OAAO;;QACT,OAAO,MAAA,IAAI,CAAC,QAAQ,mCAAI,IAAI,CAAC,KAAK,CAAC;KACpC;IAYD,IACI,WAAW;;QACb,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,IAAI;YACV,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY;SACnD,CAAC;QACF,OAAO,MAAA,IAAI,CAAC,aAAa,mCAAI,OAAO,CAAC;KACtC;IAED,IACI,SAAS;;QACX,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAC;;;QAGvF,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,OAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,mCAAI,EAAE,CAAC,CAAC;KAC9E;IASD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,GAAG,UAAU,IAAI,CAAC,KAAK,UAAU,GAAG,EAAE,CAAC;KACzD;IAED,IAAI,IAAI;;QACN,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,IAAI,CAAC,OAAO,CAAC;SACrB;QACD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;YAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxC;QACD,IAAI,IAAI,CAAC,IAAI,IAAI,EAAC,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9C,OAAO,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,IAAI,wCAAwC;gBAC5F,sEAAsE,EACtE,IAAI,CAAC,IAAI,CACV,CAAC;QACJ,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,KAAK;QACP,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC;KAC/F;IAED,IAAI,YAAY;QACd,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,GAAG,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC;KACxE;IAED,IAAI,eAAe;QACjB,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,IAAI;YACV,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY;SACnD,CAAC;QACF,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;KAC5D;IAED,WAAW,CAAC,GAAW;QACrB,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,EAAU;YAChD,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;SAC1C,CAAC,CAAC;KACJ;;0GArGU,aAAa;8FAAb,aAAa;2FAAb,aAAa;kBAJzB,SAAS;mBAAC;oBACT,QAAQ,EAAE,YAAY;oBACtB,QAAQ,EAAE,OAAO;iBAClB;8KAGiB,OAAO;sBAAtB,KAAK;uBAAC,OAAO;gBACL,IAAI;sBAAZ,KAAK;gBACG,KAAK;sBAAb,KAAK;gBACG,aAAa;sBAArB,KAAK;gBACG,KAAK;sBAAb,KAAK;gBACG,MAAM;sBAAd,KAAK;gBAGF,IAAI;sBADP,KAAK;gBAWF,OAAO;sBAFV,WAAW;uBAAC,cAAc;;sBAC1B,KAAK;gBAUG,KAAK;sBADb,WAAW;uBAAC,YAAY;;sBACxB,KAAK;gBAGmB,aAAa;sBADrC,WAAW;uBAAC,qBAAqB;;sBACjC,KAAK;uBAAC,gBAAgB;gBAGd,IAAI;sBADZ,WAAW;uBAAC,WAAW;;sBACvB,KAAK;gBAGF,WAAW;sBADd,WAAW;uBAAC,OAAO;gBAUhB,SAAS;sBADZ,WAAW;uBAAC,WAAW;;;MClDb,uBAAuB;IAIlC,YACU,QAAmB,EACnB,EAAc;QADd,aAAQ,GAAR,QAAQ,CAAW;QACnB,OAAE,GAAF,EAAE,CAAY;KACpB;IAEJ,QAAQ;QACN,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;YAC1B,IAAI,IAAI,KAAK,OAAO,IAAI,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,QAAQ,EAAE;gBAC3D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;aAC9B;iBAAM,IAAI,IAAI,KAAK,OAAO,EAAE;gBAC3B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;aAC9B;iBAAM;gBACL,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;aACrC;SACF;KACF;IAEO,QAAQ,CAAC,MAAW;;QAE1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACrE;KACF;IAEO,QAAQ,CAAC,OAA0B;QACzC,MAAM,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;YAChE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;SACxD,CAAC,CAAC;KACJ;IAEO,SAAS,CAAC,GAAW,EAAE,KAAoB;QACjD,KAAK,KAAK,IAAI;YACZ,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC;YAC7D,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;KAC7D;;oHAxCU,uBAAuB;wGAAvB,uBAAuB;2FAAvB,uBAAuB;kBAJnC,SAAS;mBAAC;oBACT,QAAQ,EAAE,aAAa;oBACvB,QAAQ,EAAE,WAAW;iBACtB;yHAGU,SAAS;sBAAjB,KAAK;;;MCEK,aAAa;IAsCxB,YACU,QAAmB,EACnB,UAAsB,EACtB,SAAuB,EACvB,OAAuB;QAHvB,aAAQ,GAAR,QAAQ,CAAW;QACnB,eAAU,GAAV,UAAU,CAAY;QACtB,cAAS,GAAT,SAAS,CAAc;QACvB,YAAO,GAAP,OAAO,CAAgB;QAxCxB,eAAU,GAAQ,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC;QAEhC,SAAI,GAAa,EAAE,CAAC;QAEpB,QAAG,GAAG,EAAE,CAAC;QACT,kBAAa,GAAgE,EAAE,CAAC;QAqCvF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;KAC1E;IAlCD,IACI,IAAI,CAAC,IAAY;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KACjE;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;IAGD,IACI,OAAO,CAAC,OAAe;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;KACzB;IACD,IAAI,OAAO;;QACT,OAAO,MAAA,IAAI,CAAC,QAAQ,mCAAI,IAAI,CAAC,KAAK,CAAC;KACpC;IAKD,IAAI,SAAS;;QACX,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAC;;;QAGvF,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,OAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,mCAAI,EAAE,CAAC,CAAC;KAC9E;IAWD,eAAe;QACb,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAY;YAC3D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;SAChE,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACrF,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;KACzE;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,GAAG,UAAU,IAAI,CAAC,KAAK,UAAU,GAAG,EAAE,CAAC;KACzD;IAED,IAAI,IAAI;;QACN,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,IAAI,CAAC,OAAO,CAAC;SACrB;QACD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;YAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxC;QACD,IAAI,IAAI,CAAC,IAAI,IAAI,EAAC,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAChD,OAAO,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,IAAI,wCAAwC;gBAC5F,sEAAsE,EACtE,IAAI,CAAC,IAAI,CACV,CAAC;QACF,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,KAAK;QACP,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC;KAC/F;IAED,IAAI,YAAY;QACd,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,GAAG,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC;KACxE;IAED,IAAI,eAAe;QACjB,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,IAAI;YACV,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY;SACnD,CAAC;QACF,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;KAC5D;IAED,WAAW,CAAC,GAAW;QACrB,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,EAAU;YAChD,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;SAC1C,CAAC,CAAC;KACJ;;0GAjGU,aAAa;8FAAb,aAAa,8UA6BQ,UAAU,6BCvC5C,qsBAyBA;2FDfa,aAAa;kBALzB,SAAS;+BACE,QAAQ;8KAMT,UAAU;sBAAlB,KAAK;gBACG,OAAO;sBAAf,KAAK;gBACG,IAAI;sBAAZ,KAAK;gBACG,KAAK;sBAAb,KAAK;gBACG,GAAG;sBAAX,KAAK;gBACG,aAAa;sBAArB,KAAK;gBACG,KAAK;sBAAb,KAAK;gBACG,MAAM;sBAAd,KAAK;gBAGF,IAAI;sBADP,KAAK;gBAUF,OAAO;sBADV,KAAK;gBASuC,aAAa;sBAAzD,SAAS;uBAAC,YAAY,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC;;;MElBhC,UAAU;;uGAAV,UAAU;wGAAV,UAAU,iBAZnB,aAAa;QACb,uBAAuB;QACvB,aAAa,aAGb,YAAY,aAGZ,aAAa;QACb,aAAa;wGAGJ,UAAU,YARZ;YACP,YAAY;SACb;2FAMU,UAAU;kBAdtB,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,aAAa;wBACb,uBAAuB;wBACvB,aAAa;qBACd;oBACD,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,OAAO,EAAE;wBACP,aAAa;wBACb,aAAa;qBACd;iBACF;;;ACpBD;;;;ACAA;;;;;;"}