@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.
- package/README.md +59 -24
- package/{esm2015/coreui-icons-angular.js → esm2020/coreui-icons-angular.mjs} +0 -0
- package/esm2020/lib/icon/icon.component.mjs +110 -0
- package/esm2020/lib/icon/icon.directive.mjs +127 -0
- package/esm2020/lib/icon/icon.interface.mjs +2 -0
- package/esm2020/lib/icon/icon.module.mjs +34 -0
- package/{esm2015/lib/icon-set/icon-set.module.js → esm2020/lib/icon-set/icon-set.module.mjs} +4 -4
- package/esm2020/lib/icon-set/icon-set.service.mjs +37 -0
- package/esm2020/lib/icon-set/index.mjs +2 -0
- package/esm2020/lib/icon-set/public_api.mjs +3 -0
- package/{esm2015/lib/shared/html-attr.directive.js → esm2020/lib/shared/html-attr.directive.mjs} +3 -3
- package/esm2020/public-api.mjs +9 -0
- package/fesm2015/coreui-icons-angular.mjs +402 -0
- package/fesm2015/coreui-icons-angular.mjs.map +1 -0
- package/fesm2020/coreui-icons-angular.mjs +393 -0
- package/fesm2020/coreui-icons-angular.mjs.map +1 -0
- package/lib/icon/icon.component.d.ts +19 -14
- package/lib/icon/icon.directive.d.ts +41 -0
- package/lib/icon/icon.interface.d.ts +15 -0
- package/lib/icon/icon.module.d.ts +3 -2
- package/lib/icon-set/icon-set.service.d.ts +5 -1
- package/lib/icon-set/index.d.ts +1 -0
- package/lib/icon-set/public_api.d.ts +2 -0
- package/package.json +21 -8
- package/public-api.d.ts +1 -0
- package/bundles/coreui-icons-angular.umd.js +0 -328
- package/bundles/coreui-icons-angular.umd.js.map +0 -1
- package/esm2015/lib/icon/icon.component.js +0 -100
- package/esm2015/lib/icon/icon.module.js +0 -29
- package/esm2015/lib/icon-set/icon-set.service.js +0 -30
- package/esm2015/public-api.js +0 -8
- package/fesm2015/coreui-icons-angular.js +0 -249
- 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;;;;;;"}
|