@coreui/icons-angular 5.2.21 → 5.2.23
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 +65 -86
- package/esm2022/lib/icon/icon.directive.mjs +60 -115
- package/esm2022/lib/icon/icon.interface.mjs +1 -1
- package/esm2022/lib/icon/icon.module.mjs +4 -4
- package/esm2022/lib/icon-set/icon-set.module.mjs +4 -4
- package/esm2022/lib/icon-set/icon-set.service.mjs +10 -12
- package/esm2022/lib/shared/html-attr.directive.mjs +29 -28
- package/fesm2022/coreui-icons-angular.mjs +166 -243
- package/fesm2022/coreui-icons-angular.mjs.map +1 -1
- package/lib/icon/icon.component.d.ts +19 -27
- package/lib/icon/icon.directive.d.ts +16 -30
- package/lib/icon/icon.interface.d.ts +15 -12
- package/lib/icon-set/icon-set.service.d.ts +2 -5
- package/lib/shared/html-attr.directive.d.ts +5 -10
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NgClass } from '@angular/common';
|
|
2
|
-
import { Component, computed, ElementRef, inject,
|
|
2
|
+
import { afterNextRender, Component, computed, effect, ElementRef, inject, input, Renderer2, signal, viewChild } from '@angular/core';
|
|
3
3
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
4
|
import { HtmlAttributesDirective } from '../shared/html-attr.directive';
|
|
5
5
|
import { IconSetService } from '../icon-set';
|
|
@@ -10,109 +10,88 @@ export class IconComponent {
|
|
|
10
10
|
#elementRef;
|
|
11
11
|
#sanitizer;
|
|
12
12
|
#iconSet;
|
|
13
|
+
#hostElement;
|
|
13
14
|
constructor() {
|
|
14
15
|
this.#renderer = inject(Renderer2);
|
|
15
16
|
this.#elementRef = inject(ElementRef);
|
|
16
17
|
this.#sanitizer = inject(DomSanitizer);
|
|
17
18
|
this.#iconSet = inject(IconSetService);
|
|
18
|
-
this.#
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
this
|
|
19
|
+
this.#hostElement = signal(undefined);
|
|
20
|
+
this.content = input();
|
|
21
|
+
this.attributes = input({ role: 'img' });
|
|
22
|
+
this.customClasses = input();
|
|
23
|
+
this.size = input('');
|
|
24
|
+
this.title = input();
|
|
25
|
+
this.use = input('');
|
|
26
|
+
this.height = input();
|
|
27
|
+
this.width = input();
|
|
28
|
+
this.name = input('', { transform: transformName });
|
|
29
|
+
this.viewBoxInput = input(undefined, { alias: 'viewBox' });
|
|
30
|
+
this.svgElementRef = viewChild('svgElement');
|
|
31
|
+
this.svgElementEffect = effect(() => {
|
|
32
|
+
const svgElementRef = this.svgElementRef();
|
|
33
|
+
const hostElement = this.#hostElement()?.nativeElement;
|
|
34
|
+
if (svgElementRef && hostElement) {
|
|
35
|
+
const svgElement = svgElementRef.nativeElement;
|
|
36
|
+
hostElement.classList?.values()?.forEach((item) => {
|
|
37
|
+
this.#renderer.addClass(svgElement, item);
|
|
38
|
+
});
|
|
39
|
+
const parentElement = this.#renderer.parentNode(hostElement);
|
|
40
|
+
this.#renderer.insertBefore(parentElement, svgElement, hostElement);
|
|
41
|
+
this.#renderer.removeChild(parentElement, hostElement);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
this.viewBox = computed(() => {
|
|
45
|
+
return this.viewBoxInput() ?? this.scale();
|
|
46
|
+
});
|
|
23
47
|
this.innerHtml = computed(() => {
|
|
24
|
-
const
|
|
48
|
+
const codeVal = this.code();
|
|
49
|
+
const code = Array.isArray(codeVal) ? (codeVal?.[1] ?? codeVal?.[0] ?? '') : codeVal || '';
|
|
25
50
|
// todo proper sanitize
|
|
26
51
|
// const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);
|
|
27
|
-
return this.#sanitizer.bypassSecurityTrustHtml(this
|
|
52
|
+
return this.#sanitizer.bypassSecurityTrustHtml(this.#titleCode() + code || '');
|
|
53
|
+
});
|
|
54
|
+
this.#titleCode = computed(() => {
|
|
55
|
+
return this.title() ? `<title>${this.title()}</title>` : '';
|
|
28
56
|
});
|
|
29
57
|
this.code = computed(() => {
|
|
30
|
-
|
|
31
|
-
|
|
58
|
+
const content = this.content();
|
|
59
|
+
if (content) {
|
|
60
|
+
return content;
|
|
32
61
|
}
|
|
33
|
-
|
|
34
|
-
|
|
62
|
+
const name = this.name();
|
|
63
|
+
if (this.#iconSet && name) {
|
|
64
|
+
return this.#iconSet.getIcon(name);
|
|
35
65
|
}
|
|
36
|
-
if (
|
|
37
|
-
console.warn(`c-icon component:
|
|
38
|
-
`To use icon by 'name' prop you need to add it to IconSet service. \n`, this.#name());
|
|
66
|
+
if (name && !this.#iconSet?.icons[name]) {
|
|
67
|
+
console.warn(`c-icon component: The '${name}' icon not found. Add it to the IconSet service for use with the 'name' property. \n`, name);
|
|
39
68
|
}
|
|
40
69
|
return '';
|
|
41
70
|
});
|
|
42
71
|
this.scale = computed(() => {
|
|
43
|
-
return Array.isArray(this.code()) && this.code()
|
|
72
|
+
return Array.isArray(this.code()) && (this.code()?.length ?? 0) > 1 ? `0 0 ${this.code()?.[0]}` : '0 0 64 64';
|
|
44
73
|
});
|
|
45
|
-
this
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
set viewBox(viewBox) {
|
|
59
|
-
this._viewBox = viewBox;
|
|
60
|
-
}
|
|
61
|
-
get viewBox() {
|
|
62
|
-
return this._viewBox ?? this.scale();
|
|
63
|
-
}
|
|
64
|
-
ngAfterViewInit() {
|
|
65
|
-
this.#elementRef.nativeElement.classList.forEach((item) => {
|
|
66
|
-
this.#renderer.addClass(this.svgElementRef.nativeElement, item);
|
|
74
|
+
this.computedSize = computed(() => {
|
|
75
|
+
const addCustom = !this.size() && (this.width() || this.height());
|
|
76
|
+
return this.size() === 'custom' || addCustom ? 'custom-size' : this.size();
|
|
77
|
+
});
|
|
78
|
+
this.computedClasses = computed(() => {
|
|
79
|
+
const classes = {
|
|
80
|
+
icon: true,
|
|
81
|
+
[`icon-${this.computedSize()}`]: !!this.computedSize()
|
|
82
|
+
};
|
|
83
|
+
return this.customClasses() ?? classes;
|
|
84
|
+
});
|
|
85
|
+
afterNextRender(() => {
|
|
86
|
+
this.#hostElement.set(this.#elementRef);
|
|
67
87
|
});
|
|
68
|
-
const parentElement = this.#renderer.parentNode(this.#elementRef.nativeElement);
|
|
69
|
-
const svgElement = this.svgElementRef.nativeElement;
|
|
70
|
-
this.#renderer.insertBefore(parentElement, svgElement, this.#elementRef.nativeElement);
|
|
71
|
-
this.#renderer.removeChild(parentElement, this.#elementRef.nativeElement);
|
|
72
|
-
}
|
|
73
|
-
get titleCode() {
|
|
74
|
-
return this.title ? `<title>${this.title}</title>` : '';
|
|
75
|
-
}
|
|
76
|
-
get computedSize() {
|
|
77
|
-
const addCustom = !this.size && (this.width || this.height);
|
|
78
|
-
return this.size === 'custom' || addCustom ? 'custom-size' : this.size;
|
|
79
|
-
}
|
|
80
|
-
get computedClasses() {
|
|
81
|
-
const classes = {
|
|
82
|
-
icon: true,
|
|
83
|
-
[`icon-${this.computedSize}`]: !!this.computedSize
|
|
84
|
-
};
|
|
85
|
-
return this.customClasses ?? classes;
|
|
86
88
|
}
|
|
87
|
-
|
|
88
|
-
static { this.ɵ
|
|
89
|
+
#titleCode;
|
|
90
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IconComponent, isStandalone: true, selector: "c-icon", inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, attributes: { classPropertyName: "attributes", publicName: "attributes", isSignal: true, isRequired: false, transformFunction: null }, customClasses: { classPropertyName: "customClasses", publicName: "customClasses", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, use: { classPropertyName: "use", publicName: "use", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, viewBoxInput: { classPropertyName: "viewBoxInput", publicName: "viewBox", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "ngSkipHydration": "true" }, styleAttribute: "display: none" }, viewQueries: [{ propertyName: "svgElementRef", first: true, predicate: ["svgElement"], descendants: true, isSignal: true }], 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() ?? scale()\"\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"] }] }); }
|
|
89
92
|
}
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconComponent, decorators: [{
|
|
91
94
|
type: Component,
|
|
92
|
-
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"] }]
|
|
93
|
-
}], ctorParameters: () => []
|
|
94
|
-
type: Input
|
|
95
|
-
}], attributes: [{
|
|
96
|
-
type: Input
|
|
97
|
-
}], customClasses: [{
|
|
98
|
-
type: Input
|
|
99
|
-
}], size: [{
|
|
100
|
-
type: Input
|
|
101
|
-
}], title: [{
|
|
102
|
-
type: Input
|
|
103
|
-
}], use: [{
|
|
104
|
-
type: Input
|
|
105
|
-
}], height: [{
|
|
106
|
-
type: Input
|
|
107
|
-
}], width: [{
|
|
108
|
-
type: Input
|
|
109
|
-
}], name: [{
|
|
110
|
-
type: Input,
|
|
111
|
-
args: [{ transform: transformName }]
|
|
112
|
-
}], viewBox: [{
|
|
113
|
-
type: Input
|
|
114
|
-
}], svgElementRef: [{
|
|
115
|
-
type: ViewChild,
|
|
116
|
-
args: ['svgElement', { read: ElementRef }]
|
|
117
|
-
}] } });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktaWNvbnMtYW5ndWxhci9zcmMvbGliL2ljb24vaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktaWNvbnMtYW5ndWxhci9zcmMvbGliL2ljb24vaWNvbi5jb21wb25lbnQuc3ZnIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBRUwsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQVc3QyxNQUFNLE9BQU8sYUFBYTtJQUNmLFNBQVMsQ0FBcUI7SUFDOUIsV0FBVyxDQUFzQjtJQUNqQyxVQUFVLENBQXdCO0lBQ2xDLFFBQVEsQ0FBMEI7SUFFM0M7UUFMUyxjQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLGVBQVUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQVdsQyxhQUFRLEdBQUcsTUFBTSxDQUE0QixFQUFFLENBQUMsQ0FBQztRQUVqRCxlQUFVLEdBQVEsRUFBRSxJQUFJLEVB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QUUsSUFBSTtZQUNWLENBQUMsUUFBUSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVk7U0FDbkQsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUM7SUFDdkMsQ0FBQzs4R0F0R1UsYUFBYTtrR0FBYixhQUFhLHFPQXlCSixhQUFhLDhMQXNCQSxVQUFVLDJEQzNFN0MseXRCQThCQSxpdkNEVFksT0FBTyxvRkFBRSx1QkFBdUI7OzJGQU8vQixhQUFhO2tCQVR6QixTQUFTOytCQUNFLGdCQUFnQixXQUNqQixDQUFDLE9BQU8sRUFBRSx1QkFBdUIsQ0FBQyxZQUNqQyxRQUFRLGNBQ04sSUFBSSxRQUdWLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRTt3REFhN0IsT0FBTztzQkFEVixLQUFLO2dCQU9HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUdGLElBQUk7c0JBRFAsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUU7Z0JBWS9CLE9BQU87c0JBRFYsS0FBSztnQkFXeUMsYUFBYTtzQkFBM0QsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBSZW5kZXJlcjIsXG4gIHNpZ25hbCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7IEh0bWxBdHRyaWJ1dGVzRGlyZWN0aXZlIH0gZnJvbSAnLi4vc2hhcmVkL2h0bWwtYXR0ci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWNvblNldFNlcnZpY2UgfSBmcm9tICcuLi9pY29uLXNldCc7XG5pbXBvcnQgeyBJY29uU2l6ZSwgSUljb24gfSBmcm9tICcuL2ljb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IHRyYW5zZm9ybU5hbWUgfSBmcm9tICcuL2ljb24udXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgZXhwb3J0QXM6ICdjSWNvbkNvbXBvbmVudCcsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBIdG1sQXR0cmlidXRlc0RpcmVjdGl2ZV0sXG4gIHNlbGVjdG9yOiAnYy1pY29uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc3R5bGVVcmxzOiBbJy4vaWNvbi5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi5jb21wb25lbnQuc3ZnJyxcbiAgaG9zdDogeyBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyB9XG59KVxuZXhwb3J0IGNsYXNzIEljb25Db21wb25lbnQgaW1wbGVtZW50cyBJSWNvbiwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHJlYWRvbmx5ICNyZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICByZWFkb25seSAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcmVhZG9ubHkgI3Nhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuICByZWFkb25seSAjaWNvblNldCA9IGluamVjdChJY29uU2V0U2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy4jcmVuZGVyZXIuc2V0U3R5bGUodGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsICdub25lJyk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgY29udGVudCh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10gfCBhbnlbXSkge1xuICAgIHRoaXMuI2NvbnRlbnQuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIHJlYWRvbmx5ICNjb250ZW50ID0gc2lnbmFsPHN0cmluZyB8IHN0cmluZ1tdIHwgYW55W10+KCcnKTtcblxuICBASW5wdXQoKSBhdHRyaWJ1dGVzOiBhbnkgPSB7IHJvbGU6ICdpbWcnIH07XG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzZXM/OiBzdHJpbmcgfCBzdHJpbmdbXSB8IFNldDxzdHJpbmc+IHwgeyBba2xhc3M6IHN0cmluZ106IGFueSB9O1xuICBASW5wdXQoKSBzaXplOiBJY29uU2l6ZSA9ICcnO1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgdXNlID0gJyc7XG4gIEBJbnB1dCgpIGhlaWdodD86IHN0cmluZztcbiAgQElucHV0KCkgd2lkdGg/OiBzdHJpbmc7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiB0cmFuc2Zvcm1OYW1lIH0pXG4gIHNldCBuYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLiNuYW1lLnNldCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy4jbmFtZSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgI25hbWUgPSBzaWduYWwoJycpO1xuXG4gIEBJbnB1dCgpXG4gIHNldCB2aWV3Qm94KHZpZXdCb3g6IHN0cmluZykge1xuICAgIHRoaXMuX3ZpZXdCb3ggPSB2aWV3Qm94O1xuICB9XG5cbiAgZ2V0IHZpZXdCb3goKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld0JveCA/PyB0aGlzLnNjYWxlKCk7XG4gIH1cblxuICBwcml2YXRlIF92aWV3Qm94ITogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoJ3N2Z0VsZW1lbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgc3ZnRWxlbWVudFJlZiE6IEVsZW1lbnRSZWY7XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuZm9yRWFjaCgoaXRlbTogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLiNyZW5kZXJlci5hZGRDbGFzcyh0aGlzLnN2Z0VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgaXRlbSk7XG4gICAgfSk7XG4gICAgY29uc3QgcGFyZW50RWxlbWVudCA9IHRoaXMuI3JlbmRlcmVyLnBhcmVudE5vZGUodGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICBjb25zdCBzdmdFbGVtZW50ID0gdGhpcy5zdmdFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy4jcmVuZGVyZXIuaW5zZXJ0QmVmb3JlKHBhcmVudEVsZW1lbnQsIHN2Z0VsZW1lbnQsIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlQ2hpbGQocGFyZW50RWxlbWVudCwgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHJlYWRvbmx5IGlubmVySHRtbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb2RlID0gQXJyYXkuaXNBcnJheSh0aGlzLmNvZGUoKSkgPyAodGhpcy5jb2RlKClbMV0gPz8gdGhpcy5jb2RlKClbMF0gPz8gJycpIDogdGhpcy5jb2RlKCkgfHwgJyc7XG4gICAgLy8gdG9kbyBwcm9wZXIgc2FuaXRpemVcbiAgICAvLyBjb25zdCBzYW5pdGl6ZWQgPSB0aGlzLnNhbml0aXplci5zYW5pdGl6ZShTZWN1cml0eUNvbnRleHQuSFRNTCwgY29kZSk7XG4gICAgcmV0dXJuIHRoaXMuI3Nhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLnRpdGxlQ29kZSArIGNvZGUgfHwgJycpO1xuICB9KTtcblxuICBnZXQgdGl0bGVDb2RlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudGl0bGUgPyBgPHRpdGxlPiR7dGhpcy50aXRsZX08L3RpdGxlPmAgOiAnJztcbiAgfVxuXG4gIHJlYWRvbmx5IGNvZGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuI2NvbnRlbnQoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuI2NvbnRlbnQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuI2ljb25TZXQgJiYgdGhpcy4jbmFtZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy4jaWNvblNldC5nZXRJY29uKHRoaXMuI25hbWUoKSk7XG4gICAgfVxuICAgIGlmICh0aGlzLiNuYW1lKCkgJiYgIXRoaXMuI2ljb25TZXQ/Lmljb25zW3RoaXMuI25hbWUoKV0pIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYGMtaWNvbiBjb21wb25lbnQ6IGljb24gbmFtZSAnJHt0aGlzLiNuYW1lKCl9JyBkb2VzIG5vdCBleGlzdCBmb3IgSWNvblNldCBzZXJ2aWNlLiBgICtcbiAgICAgICAgICBgVG8gdXNlIGljb24gYnkgJ25hbWUnIHByb3AgeW91IG5lZWQgdG8gYWRkIGl0IHRvIEljb25TZXQgc2VydmljZS4gXFxuYCxcbiAgICAgICAgdGhpcy4jbmFtZSgpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHNjYWxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMuY29kZSgpKSAmJiB0aGlzLmNvZGUoKS5sZW5ndGggPiAxID8gYDAgMCAke3RoaXMuY29kZSgpWzBdfWAgOiAnMCAwIDY0IDY0JztcbiAgfSk7XG5cbiAgZ2V0IGNvbXB1dGVkU2l6ZSgpOiBFeGNsdWRlPEljb25TaXplLCAnY3VzdG9tJz4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGFkZEN1c3RvbSA9ICF0aGlzLnNpemUgJiYgKHRoaXMud2lkdGggfHwgdGhpcy5oZWlnaHQpO1xuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdjdXN0b20nIHx8IGFkZEN1c3RvbSA/ICdjdXN0b20tc2l6ZScgOiB0aGlzLnNpemU7XG4gIH1cblxuICBnZXQgY29tcHV0ZWRDbGFzc2VzKCkge1xuICAgIGNvbnN0IGNsYXNzZXMgPSB7XG4gICAgICBpY29uOiB0cnVlLFxuICAgICAgW2BpY29uLSR7dGhpcy5jb21wdXRlZFNpemV9YF06ICEhdGhpcy5jb21wdXRlZFNpemVcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUNsYXNzZXMgPz8gY2xhc3NlcztcbiAgfVxufVxuIiwiQGlmICghdXNlICYmICEhY29kZSkge1xuICA8c3ZnXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgW2F0dHIud2lkdGhdPVwid2lkdGhcIlxuICAgIFthdHRyLmhlaWdodF09XCJoZWlnaHQgfHwgd2lkdGhcIlxuICAgIFthdHRyLnZpZXdCb3hdPVwidmlld0JveFwiXG4gICAgW2lubmVySHRtbF09XCJpbm5lckh0bWwoKVwiXG4gICAgW25nQ2xhc3NdPVwiY29tcHV0ZWRDbGFzc2VzXCJcbiAgICBbY0h0bWxBdHRyXT1cImF0dHJpYnV0ZXNcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgcG9pbnRlci1ldmVudHM9XCJub25lXCJcbiAgICByb2xlPVwiaW1nXCJcbiAgICAjc3ZnRWxlbWVudFxuICA+XG4gIDwvc3ZnPlxufSBAZWxzZSBpZiAodXNlKSB7XG4gIDxzdmdcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICBbYXR0ci53aWR0aF09XCJ3aWR0aFwiXG4gICAgW2F0dHIuaGVpZ2h0XT1cImhlaWdodCB8fCB3aWR0aFwiXG4gICAgW25nQ2xhc3NdPVwiY29tcHV0ZWRDbGFzc2VzXCJcbiAgICBbY0h0bWxBdHRyXT1cImF0dHJpYnV0ZXNcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgcG9pbnRlci1ldmVudHM9XCJub25lXCJcbiAgICByb2xlPVwiaW1nXCJcbiAgICAjc3ZnRWxlbWVudFxuICA+XG4gICAgPHVzZSBbYXR0ci5ocmVmXT1cInVzZVwiPjwvdXNlPlxuICA8L3N2Zz5cbn1cbiJdfQ==
|
|
95
|
+
args: [{ exportAs: 'cIconComponent', imports: [NgClass, HtmlAttributesDirective], selector: 'c-icon', standalone: true, host: { ngSkipHydration: 'true', style: 'display: none' }, 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() ?? scale()\"\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"] }]
|
|
96
|
+
}], ctorParameters: () => [] });
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktaWNvbnMtYW5ndWxhci9zcmMvbGliL2ljb24vaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktaWNvbnMtYW5ndWxhci9zcmMvbGliL2ljb24vaWNvbi5jb21wb25lbnQuc3ZnIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsZUFBZSxFQUNmLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBVzdDLE1BQU0sT0FBTyxhQUFhO0lBQ2YsU0FBUyxDQUFxQjtJQUM5QixXQUFXLENBQXNCO0lBQ2pDLFVBQVUsQ0FBd0I7SUFDbEMsUUFBUSxDQUEwQjtJQUNsQyxZQUFZLENBQWtEO0lBRXZFO1FBTlMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxlQUFVLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xDLGFBQVEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEMsaUJBQVksR0FBRyxNQUFNLENBQThCLFNBQVMs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QUksRUFBRSxLQUFLLFFBQVEsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdFLENBQUMsQ0FBQyxDQUFDO1FBRU0sb0JBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3ZDLE1BQU0sT0FBTyxHQUFHO2dCQUNkLElBQUksRUFBRSxJQUFJO2dCQUNWLENBQUMsUUFBUSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO2FBQ3ZELENBQUM7WUFDRixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxPQUFPLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFsRkQsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBMENRLFVBQVUsQ0FFaEI7OEdBdkRRLGFBQWE7a0dBQWIsYUFBYSxtaURDN0IxQixrd0JBOEJBLGl2Q0RSWSxPQUFPLG9GQUFFLHVCQUF1Qjs7MkZBTy9CLGFBQWE7a0JBVHpCLFNBQVM7K0JBQ0UsZ0JBQWdCLFdBQ2pCLENBQUMsT0FBTyxFQUFFLHVCQUF1QixDQUFDLFlBQ2pDLFFBQVEsY0FDTixJQUFJLFFBR1YsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBSZW5kZXJlcjIsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7IEh0bWxBdHRyaWJ1dGVzRGlyZWN0aXZlIH0gZnJvbSAnLi4vc2hhcmVkL2h0bWwtYXR0ci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWNvblNldFNlcnZpY2UgfSBmcm9tICcuLi9pY29uLXNldCc7XG5pbXBvcnQgeyBJY29uU2l6ZSwgSUljb24sIE5nQ3NzQ2xhc3MgfSBmcm9tICcuL2ljb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IHRyYW5zZm9ybU5hbWUgfSBmcm9tICcuL2ljb24udXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgZXhwb3J0QXM6ICdjSWNvbkNvbXBvbmVudCcsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBIdG1sQXR0cmlidXRlc0RpcmVjdGl2ZV0sXG4gIHNlbGVjdG9yOiAnYy1pY29uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc3R5bGVVcmxzOiBbJy4vaWNvbi5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi5jb21wb25lbnQuc3ZnJyxcbiAgaG9zdDogeyBuZ1NraXBIeWRyYXRpb246ICd0cnVlJywgc3R5bGU6ICdkaXNwbGF5OiBub25lJyB9XG59KVxuZXhwb3J0IGNsYXNzIEljb25Db21wb25lbnQgaW1wbGVtZW50cyBJSWNvbiB7XG4gIHJlYWRvbmx5ICNyZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICByZWFkb25seSAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcmVhZG9ubHkgI3Nhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuICByZWFkb25seSAjaWNvblNldCA9IGluamVjdChJY29uU2V0U2VydmljZSk7XG4gIHJlYWRvbmx5ICNob3N0RWxlbWVudCA9IHNpZ25hbDxFbGVtZW50UmVmPGFueT4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgIHRoaXMuI2hvc3RFbGVtZW50LnNldCh0aGlzLiNlbGVtZW50UmVmKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRvbmx5IGNvbnRlbnQgPSBpbnB1dDxzdHJpbmcgfCBzdHJpbmdbXSB8IGFueVtdPigpO1xuXG4gIHJlYWRvbmx5IGF0dHJpYnV0ZXMgPSBpbnB1dDxSZWNvcmQ8c3RyaW5nLCBhbnk+Pih7IHJvbGU6ICdpbWcnIH0pO1xuICByZWFkb25seSBjdXN0b21DbGFzc2VzID0gaW5wdXQ8TmdDc3NDbGFzcz4oKTtcbiAgcmVhZG9ubHkgc2l6ZSA9IGlucHV0PEljb25TaXplPignJyk7XG4gIHJlYWRvbmx5IHRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSB1c2UgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgaGVpZ2h0ID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSB3aWR0aCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgbmFtZSA9IGlucHV0KCcnLCB7IHRyYW5zZm9ybTogdHJhbnNmb3JtTmFtZSB9KTtcbiAgcmVhZG9ubHkgdmlld0JveElucHV0ID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQsIHsgYWxpYXM6ICd2aWV3Qm94JyB9KTtcblxuICByZWFkb25seSBzdmdFbGVtZW50UmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdzdmdFbGVtZW50Jyk7XG5cbiAgcmVhZG9ubHkgc3ZnRWxlbWVudEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc3ZnRWxlbWVudFJlZiA9IHRoaXMuc3ZnRWxlbWVudFJlZigpO1xuICAgIGNvbnN0IGhvc3RFbGVtZW50ID0gdGhpcy4jaG9zdEVsZW1lbnQoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoc3ZnRWxlbWVudFJlZiAmJiBob3N0RWxlbWVudCkge1xuICAgICAgY29uc3Qgc3ZnRWxlbWVudCA9IHN2Z0VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgIGhvc3RFbGVtZW50LmNsYXNzTGlzdD8udmFsdWVzKCk/LmZvckVhY2goKGl0ZW06IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLiNyZW5kZXJlci5hZGRDbGFzcyhzdmdFbGVtZW50LCBpdGVtKTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgcGFyZW50RWxlbWVudCA9IHRoaXMuI3JlbmRlcmVyLnBhcmVudE5vZGUoaG9zdEVsZW1lbnQpO1xuICAgICAgdGhpcy4jcmVuZGVyZXIuaW5zZXJ0QmVmb3JlKHBhcmVudEVsZW1lbnQsIHN2Z0VsZW1lbnQsIGhvc3RFbGVtZW50KTtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNoaWxkKHBhcmVudEVsZW1lbnQsIGhvc3RFbGVtZW50KTtcbiAgICB9XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHZpZXdCb3ggPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudmlld0JveElucHV0KCkgPz8gdGhpcy5zY2FsZSgpO1xuICB9KTtcblxuICByZWFkb25seSBpbm5lckh0bWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29kZVZhbCA9IHRoaXMuY29kZSgpO1xuICAgIGNvbnN0IGNvZGUgPSBBcnJheS5pc0FycmF5KGNvZGVWYWwpID8gKGNvZGVWYWw/LlsxXSA/PyBjb2RlVmFsPy5bMF0gPz8gJycpIDogY29kZVZhbCB8fCAnJztcbiAgICAvLyB0b2RvIHByb3BlciBzYW5pdGl6ZVxuICAgIC8vIGNvbnN0IHNhbml0aXplZCA9IHRoaXMuc2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5IVE1MLCBjb2RlKTtcbiAgICByZXR1cm4gdGhpcy4jc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRoaXMuI3RpdGxlQ29kZSgpICsgY29kZSB8fCAnJyk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5ICN0aXRsZUNvZGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudGl0bGUoKSA/IGA8dGl0bGU+JHt0aGlzLnRpdGxlKCl9PC90aXRsZT5gIDogJyc7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGNvZGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuY29udGVudCgpO1xuICAgIGlmIChjb250ZW50KSB7XG4gICAgICByZXR1cm4gY29udGVudDtcbiAgICB9XG4gICAgY29uc3QgbmFtZSA9IHRoaXMubmFtZSgpO1xuICAgIGlmICh0aGlzLiNpY29uU2V0ICYmIG5hbWUpIHtcbiAgICAgIHJldHVybiB0aGlzLiNpY29uU2V0LmdldEljb24obmFtZSk7XG4gICAgfVxuICAgIGlmIChuYW1lICYmICF0aGlzLiNpY29uU2V0Py5pY29uc1tuYW1lXSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgYy1pY29uIGNvbXBvbmVudDogVGhlICcke25hbWV9JyBpY29uIG5vdCBmb3VuZC4gQWRkIGl0IHRvIHRoZSBJY29uU2V0IHNlcnZpY2UgZm9yIHVzZSB3aXRoIHRoZSAnbmFtZScgcHJvcGVydHkuIFxcbmAsXG4gICAgICAgIG5hbWVcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc2NhbGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5jb2RlKCkpICYmICh0aGlzLmNvZGUoKT8ubGVuZ3RoID8/IDApID4gMSA/IGAwIDAgJHt0aGlzLmNvZGUoKT8uWzBdfWAgOiAnMCAwIDY0IDY0JztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgY29tcHV0ZWRTaXplID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGFkZEN1c3RvbSA9ICF0aGlzLnNpemUoKSAmJiAodGhpcy53aWR0aCgpIHx8IHRoaXMuaGVpZ2h0KCkpO1xuICAgIHJldHVybiB0aGlzLnNpemUoKSA9PT0gJ2N1c3RvbScgfHwgYWRkQ3VzdG9tID8gJ2N1c3RvbS1zaXplJyA6IHRoaXMuc2l6ZSgpO1xuICB9KTtcblxuICByZWFkb25seSBjb21wdXRlZENsYXNzZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY2xhc3NlcyA9IHtcbiAgICAgIGljb246IHRydWUsXG4gICAgICBbYGljb24tJHt0aGlzLmNvbXB1dGVkU2l6ZSgpfWBdOiAhIXRoaXMuY29tcHV0ZWRTaXplKClcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUNsYXNzZXMoKSA/PyBjbGFzc2VzO1xuICB9KTtcbn1cbiIsIkBpZiAoIXVzZSgpICYmICEhY29kZSgpKSB7XG4gIDxzdmdcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICBbYXR0ci53aWR0aF09XCJ3aWR0aCgpXCJcbiAgICBbYXR0ci5oZWlnaHRdPVwiaGVpZ2h0KCkgfHwgd2lkdGgoKVwiXG4gICAgW2F0dHIudmlld0JveF09XCJ2aWV3Qm94KCkgPz8gc2NhbGUoKVwiXG4gICAgW2lubmVySHRtbF09XCJpbm5lckh0bWwoKVwiXG4gICAgW25nQ2xhc3NdPVwiY29tcHV0ZWRDbGFzc2VzKClcIlxuICAgIFtjSHRtbEF0dHJdPVwiYXR0cmlidXRlcygpXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIHBvaW50ZXItZXZlbnRzPVwibm9uZVwiXG4gICAgcm9sZT1cImltZ1wiXG4gICAgI3N2Z0VsZW1lbnRcbiAgPlxuICA8L3N2Zz5cbn0gQGVsc2UgaWYgKHVzZSgpKSB7XG4gIDxzdmdcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICBbYXR0ci53aWR0aF09XCJ3aWR0aCgpXCJcbiAgICBbYXR0ci5oZWlnaHRdPVwiaGVpZ2h0KCkgfHwgd2lkdGgoKVwiXG4gICAgW25nQ2xhc3NdPVwiY29tcHV0ZWRDbGFzc2VzKClcIlxuICAgIFtjSHRtbEF0dHJdPVwiYXR0cmlidXRlcygpXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIHBvaW50ZXItZXZlbnRzPVwibm9uZVwiXG4gICAgcm9sZT1cImltZ1wiXG4gICAgI3N2Z0VsZW1lbnRcbiAgPlxuICAgIDx1c2UgW2F0dHIuaHJlZl09XCJ1c2UoKVwiPjwvdXNlPlxuICA8L3N2Zz5cbn1cbiJdfQ==
|
|
@@ -1,143 +1,88 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { computed, Directive, inject, input } from '@angular/core';
|
|
2
2
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
3
|
import { IconSetService } from '../icon-set';
|
|
4
4
|
import { transformName } from './icon.utils';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class IconDirective {
|
|
7
|
-
#elementRef;
|
|
8
|
-
#sanitizer;
|
|
9
|
-
#iconSet;
|
|
10
7
|
constructor() {
|
|
11
|
-
this.#elementRef = inject(ElementRef);
|
|
12
8
|
this.#sanitizer = inject(DomSanitizer);
|
|
13
9
|
this.#iconSet = inject(IconSetService);
|
|
14
|
-
this
|
|
15
|
-
this.
|
|
16
|
-
this
|
|
17
|
-
this.
|
|
18
|
-
this.
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
10
|
+
this.content = input(undefined, { alias: 'cIcon' });
|
|
11
|
+
this.customClasses = input();
|
|
12
|
+
this.size = input('');
|
|
13
|
+
this.title = input();
|
|
14
|
+
this.height = input();
|
|
15
|
+
this.width = input();
|
|
16
|
+
this.name = input('', { transform: transformName });
|
|
17
|
+
this.viewBoxInput = input(undefined, { alias: 'viewBox' });
|
|
18
|
+
this.xmlns = input('http://www.w3.org/2000/svg');
|
|
19
|
+
this.pointerEvents = input('none', { alias: 'pointer-events' });
|
|
20
|
+
this.role = input('img');
|
|
21
|
+
this.hostClasses = computed(() => {
|
|
22
|
+
const computedSize = this.computedSize();
|
|
23
|
+
const classes = {
|
|
24
|
+
icon: true,
|
|
25
|
+
[`icon-${computedSize}`]: !!computedSize
|
|
26
|
+
};
|
|
27
|
+
return this.customClasses() ?? classes;
|
|
28
|
+
});
|
|
29
|
+
this.viewBox = computed(() => {
|
|
30
|
+
return this.viewBoxInput() ?? this.scale();
|
|
31
|
+
});
|
|
21
32
|
this.innerHtml = computed(() => {
|
|
22
|
-
const
|
|
33
|
+
const codeVal = this.code();
|
|
34
|
+
const code = Array.isArray(codeVal) ? (codeVal?.[1] ?? codeVal?.[0] ?? '') : codeVal || '';
|
|
23
35
|
// todo proper sanitize
|
|
24
36
|
// const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, code);
|
|
25
|
-
return this.#sanitizer.bypassSecurityTrustHtml(this
|
|
37
|
+
return this.#sanitizer.bypassSecurityTrustHtml(this.#titleCode() + code || '');
|
|
38
|
+
});
|
|
39
|
+
this.#titleCode = computed(() => {
|
|
40
|
+
return this.title() ? `<title>${this.title()}</title>` : '';
|
|
26
41
|
});
|
|
27
42
|
this.code = computed(() => {
|
|
28
|
-
|
|
29
|
-
|
|
43
|
+
const content = this.content();
|
|
44
|
+
if (content) {
|
|
45
|
+
return content;
|
|
30
46
|
}
|
|
31
|
-
|
|
32
|
-
|
|
47
|
+
const name = this.name();
|
|
48
|
+
if (this.#iconSet && name) {
|
|
49
|
+
return this.#iconSet.getIcon(name);
|
|
33
50
|
}
|
|
34
|
-
if (
|
|
35
|
-
console.warn(`
|
|
36
|
-
`To use icon by 'name' prop you need to add it to IconSet service. \n`, this.#name());
|
|
51
|
+
if (name && !this.#iconSet?.icons[name]) {
|
|
52
|
+
console.warn(`cIcon directive: The '${name}' icon not found. Add it to the IconSet service for use with the 'name' property. \n`, name);
|
|
37
53
|
}
|
|
38
54
|
return '';
|
|
39
55
|
});
|
|
40
56
|
this.scale = computed(() => {
|
|
41
|
-
return Array.isArray(this.code()) && this.code()
|
|
57
|
+
return Array.isArray(this.code()) && (this.code()?.length ?? 0) > 1 ? `0 0 ${this.code()?.[0]}` : '0 0 64 64';
|
|
42
58
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
59
|
+
this.computedSize = computed(() => {
|
|
60
|
+
const addCustom = !this.size() && (this.width() || this.height());
|
|
61
|
+
return this.size() === 'custom' || addCustom ? 'custom-size' : this.size();
|
|
47
62
|
});
|
|
48
63
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
this.#name.set(value);
|
|
55
|
-
}
|
|
56
|
-
get name() {
|
|
57
|
-
return this.#name();
|
|
58
|
-
}
|
|
59
|
-
#name;
|
|
60
|
-
set viewBox(viewBox) {
|
|
61
|
-
this._viewBox = viewBox;
|
|
62
|
-
}
|
|
63
|
-
get viewBox() {
|
|
64
|
-
return this._viewBox ?? this.scale();
|
|
65
|
-
}
|
|
66
|
-
get hostClasses() {
|
|
67
|
-
return this.computedClasses;
|
|
68
|
-
}
|
|
69
|
-
get bindInnerHtml() {
|
|
70
|
-
return this.innerHtml();
|
|
71
|
-
}
|
|
72
|
-
get titleCode() {
|
|
73
|
-
return this.title ? `<title>${this.title}</title>` : '';
|
|
74
|
-
}
|
|
75
|
-
get computedSize() {
|
|
76
|
-
const addCustom = !this.size && (this.width || this.height);
|
|
77
|
-
return this.size === 'custom' || addCustom ? 'custom-size' : this.size;
|
|
78
|
-
}
|
|
79
|
-
get computedClasses() {
|
|
80
|
-
const classes = {
|
|
81
|
-
icon: true,
|
|
82
|
-
[`icon-${this.computedSize}`]: !!this.computedSize
|
|
83
|
-
};
|
|
84
|
-
return this.customClasses ?? classes;
|
|
85
|
-
}
|
|
86
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: IconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
87
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.8", 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 }); }
|
|
64
|
+
#sanitizer;
|
|
65
|
+
#iconSet;
|
|
66
|
+
#titleCode;
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
68
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.9", type: IconDirective, isStandalone: true, selector: "svg[cIcon]", inputs: { content: { classPropertyName: "content", publicName: "cIcon", isSignal: true, isRequired: false, transformFunction: null }, customClasses: { classPropertyName: "customClasses", publicName: "customClasses", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, viewBoxInput: { classPropertyName: "viewBoxInput", publicName: "viewBox", isSignal: true, isRequired: false, transformFunction: null }, xmlns: { classPropertyName: "xmlns", publicName: "xmlns", isSignal: true, isRequired: false, transformFunction: null }, pointerEvents: { classPropertyName: "pointerEvents", publicName: "pointer-events", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "ngSkipHydration": "true" }, properties: { "innerHtml": "innerHtml()", "class": "hostClasses()", "attr.viewBox": "viewBox()", "attr.xmlns": "xmlns()", "attr.pointer-events": "pointerEvents()", "attr.role": "role()", "attr.aria-hidden": "true" } }, exportAs: ["cIcon"], ngImport: i0 }); }
|
|
88
69
|
}
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconDirective, decorators: [{
|
|
90
71
|
type: Directive,
|
|
91
72
|
args: [{
|
|
92
73
|
exportAs: 'cIcon',
|
|
93
74
|
selector: 'svg[cIcon]',
|
|
94
|
-
standalone: true
|
|
75
|
+
standalone: true,
|
|
76
|
+
host: {
|
|
77
|
+
ngSkipHydration: 'true',
|
|
78
|
+
'[innerHtml]': 'innerHtml()',
|
|
79
|
+
'[class]': 'hostClasses()',
|
|
80
|
+
'[attr.viewBox]': 'viewBox()',
|
|
81
|
+
'[attr.xmlns]': 'xmlns()',
|
|
82
|
+
'[attr.pointer-events]': 'pointerEvents()',
|
|
83
|
+
'[attr.role]': 'role()',
|
|
84
|
+
'[attr.aria-hidden]': 'true'
|
|
85
|
+
}
|
|
95
86
|
}]
|
|
96
|
-
}]
|
|
97
|
-
|
|
98
|
-
args: ['cIcon']
|
|
99
|
-
}], customClasses: [{
|
|
100
|
-
type: Input
|
|
101
|
-
}], size: [{
|
|
102
|
-
type: Input
|
|
103
|
-
}], title: [{
|
|
104
|
-
type: Input
|
|
105
|
-
}], height: [{
|
|
106
|
-
type: Input
|
|
107
|
-
}], width: [{
|
|
108
|
-
type: Input
|
|
109
|
-
}], name: [{
|
|
110
|
-
type: Input,
|
|
111
|
-
args: [{ transform: transformName }]
|
|
112
|
-
}], viewBox: [{
|
|
113
|
-
type: HostBinding,
|
|
114
|
-
args: ['attr.viewBox']
|
|
115
|
-
}, {
|
|
116
|
-
type: Input
|
|
117
|
-
}], ariaHidden: [{
|
|
118
|
-
type: HostBinding,
|
|
119
|
-
args: ['attr.aria-hidden']
|
|
120
|
-
}], xmlns: [{
|
|
121
|
-
type: HostBinding,
|
|
122
|
-
args: ['attr.xmlns']
|
|
123
|
-
}, {
|
|
124
|
-
type: Input
|
|
125
|
-
}], pointerEvents: [{
|
|
126
|
-
type: HostBinding,
|
|
127
|
-
args: ['attr.pointer-events']
|
|
128
|
-
}, {
|
|
129
|
-
type: Input,
|
|
130
|
-
args: ['pointer-events']
|
|
131
|
-
}], role: [{
|
|
132
|
-
type: HostBinding,
|
|
133
|
-
args: ['attr.role']
|
|
134
|
-
}, {
|
|
135
|
-
type: Input
|
|
136
|
-
}], hostClasses: [{
|
|
137
|
-
type: HostBinding,
|
|
138
|
-
args: ['class']
|
|
139
|
-
}], bindInnerHtml: [{
|
|
140
|
-
type: HostBinding,
|
|
141
|
-
args: ['innerHtml']
|
|
142
|
-
}] } });
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktaWNvbnMtYW5ndWxhci9zcmMvbGliL2ljb24vaWNvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFPN0MsTUFBTSxPQUFPLGFBQWE7SUFDZixXQUFXLENBQXNCO0lBQ2pDLFVBQVUsQ0FBd0I7SUFDbEMsUUFBUSxDQUEwQjtJQUUzQztRQUpTLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLGVBQVUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQWVsQyxhQUFRLEdBQUcsTUFBTSxDQUE0QixFQUFFLENBQUMsQ0FBQztRQUdqRCxTQUFJLEdBQWEsRUFBRSxDQUFDO1FBY3BCLFVBQUssR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFjSyxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBSW5ELFVBQUssR0FBRyw0QkFBNEIsQ0FBQztRQUlyQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQztRQUl2QixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBWUosY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDakMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDckcsdUJBQXVCO1lBQ3ZCLHlFQUF5RTtZQUN6RSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7UUFDOUUsQ0FBQyxDQUFDLENBQUM7UUFNTSxTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM1QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO2dCQUNwQixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN6QixDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUNsQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hELE9BQU8sQ0FBQyxJQUFJLENBQ1YsZ0NBQWdDLElBQUksQ0FBQyxLQUFLLEVBQUUsd0NBQXdDO29CQUNsRixzRUFBc0UsRUFDeEUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUNiLENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQztRQUVNLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzdCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQ3RHLENBQUMsQ0FBQyxDQUFDO1FBakdELGVBQWUsQ0FBQztZQUNkLEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM5RCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQ0ksT0FBTyxDQUFDLEtBQWdDO1FBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFUSxRQUFRLENBQXlDO0lBUTFELElBQ0ksSUFBSSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFUSxLQUFLLENBQWM7SUFFNUIsSUFFSSxPQUFPLENBQUMsT0FBZTtRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBa0JELElBQ0ksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFDSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQVNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBdUJELElBQUksWUFBWTtRQUNkLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDekUsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixNQUFNLE9BQU8sR0FBRztZQUNkLElBQUksRUFBRSxJQUFJO1lBQ1YsQ0FBQyxRQUFRLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWTtTQUNuRCxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQztJQUN2QyxDQUFDOzhHQXBIVSxhQUFhO2tHQUFiLGFBQWEsOE1BMEJKLGFBQWE7OzJGQTFCdEIsYUFBYTtrQkFMekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsT0FBTztvQkFDakIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjt3REFlSyxPQUFPO3NCQURWLEtBQUs7dUJBQUMsT0FBTztnQkFPTCxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHRixJQUFJO3NCQURQLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFO2dCQWEvQixPQUFPO3NCQUZWLFdBQVc7dUJBQUMsY0FBYzs7c0JBQzFCLEtBQUs7Z0JBVzJCLFVBQVU7c0JBQTFDLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUkvQixLQUFLO3NCQUZKLFdBQVc7dUJBQUMsWUFBWTs7c0JBQ3hCLEtBQUs7Z0JBS04sYUFBYTtzQkFGWixXQUFXO3VCQUFDLHFCQUFxQjs7c0JBQ2pDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUt2QixJQUFJO3NCQUZILFdBQVc7dUJBQUMsV0FBVzs7c0JBQ3ZCLEtBQUs7Z0JBSUYsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU87Z0JBTWhCLGFBQWE7c0JBRGhCLFdBQVc7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgY29tcHV0ZWQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIGluamVjdCwgSW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7IEljb25TZXRTZXJ2aWNlIH0gZnJvbSAnLi4vaWNvbi1zZXQnO1xuaW1wb3J0IHsgSWNvblNpemUsIElJY29uIH0gZnJvbSAnLi9pY29uLmludGVyZmFjZSc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1OYW1lIH0gZnJvbSAnLi9pY29uLnV0aWxzJztcblxuQERpcmVjdGl2ZSh7XG4gIGV4cG9ydEFzOiAnY0ljb24nLFxuICBzZWxlY3RvcjogJ3N2Z1tjSWNvbl0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEljb25EaXJlY3RpdmUgaW1wbGVtZW50cyBJSWNvbiB7XG4gIHJlYWRvbmx5ICNlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICByZWFkb25seSAjc2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG4gIHJlYWRvbmx5ICNpY29uU2V0ID0gaW5qZWN0KEljb25TZXRTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZnRlck5leHRSZW5kZXIoe1xuICAgICAgd3JpdGU6ICgpID0+IHtcbiAgICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IHRoaXMuaW5uZXJIdG1sKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBASW5wdXQoJ2NJY29uJylcbiAgc2V0IGNvbnRlbnQodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdIHwgYW55W10pIHtcbiAgICB0aGlzLiNjb250ZW50LnNldCh2YWx1ZSk7XG4gIH1cblxuICByZWFkb25seSAjY29udGVudCA9IHNpZ25hbDxzdHJpbmcgfCBzdHJpbmdbXSB8IGFueVtdPignJyk7XG5cbiAgQElucHV0KCkgY3VzdG9tQ2xhc3Nlcz86IHN0cmluZyB8IHN0cmluZ1tdIHwgU2V0PHN0cmluZz4gfCB7IFtrbGFzczogc3RyaW5nXTogYW55IH07XG4gIEBJbnB1dCgpIHNpemU6IEljb25TaXplID0gJyc7XG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSBoZWlnaHQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHdpZHRoPzogc3RyaW5nO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogdHJhbnNmb3JtTmFtZSB9KVxuICBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy4jbmFtZS5zZXQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuI25hbWUoKTtcbiAgfVxuXG4gIHJlYWRvbmx5ICNuYW1lID0gc2lnbmFsKCcnKTtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIudmlld0JveCcpXG4gIEBJbnB1dCgpXG4gIHNldCB2aWV3Qm94KHZpZXdCb3g6IHN0cmluZykge1xuICAgIHRoaXMuX3ZpZXdCb3ggPSB2aWV3Qm94O1xuICB9XG5cbiAgZ2V0IHZpZXdCb3goKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld0JveCA/PyB0aGlzLnNjYWxlKCk7XG4gIH1cblxuICBwcml2YXRlIF92aWV3Qm94ITogc3RyaW5nO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhpZGRlbicpIGFyaWFIaWRkZW4gPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci54bWxucycpXG4gIEBJbnB1dCgpXG4gIHhtbG5zID0gJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJztcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIucG9pbnRlci1ldmVudHMnKVxuICBASW5wdXQoJ3BvaW50ZXItZXZlbnRzJylcbiAgcG9pbnRlckV2ZW50cyA9ICdub25lJztcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gIEBJbnB1dCgpXG4gIHJvbGUgPSAnaW1nJztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCkge1xuICAgIHJldHVybiB0aGlzLmNvbXB1dGVkQ2xhc3NlcztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnaW5uZXJIdG1sJylcbiAgZ2V0IGJpbmRJbm5lckh0bWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJIdG1sKCk7XG4gIH1cblxuICByZWFkb25seSBpbm5lckh0bWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29kZSA9IEFycmF5LmlzQXJyYXkodGhpcy5jb2RlKCkpID8gdGhpcy5jb2RlKClbMV0gPz8gdGhpcy5jb2RlKClbMF0gPz8gJycgOiB0aGlzLmNvZGUoKSB8fCAnJztcbiAgICAvLyB0b2RvIHByb3BlciBzYW5pdGl6ZVxuICAgIC8vIGNvbnN0IHNhbml0aXplZCA9IHRoaXMuc2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5IVE1MLCBjb2RlKTtcbiAgICByZXR1cm4gdGhpcy4jc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRoaXMudGl0bGVDb2RlICsgY29kZSB8fCAnJyk7XG4gIH0pO1xuXG4gIGdldCB0aXRsZUNvZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50aXRsZSA/IGA8dGl0bGU+JHt0aGlzLnRpdGxlfTwvdGl0bGU+YCA6ICcnO1xuICB9XG5cbiAgcmVhZG9ubHkgY29kZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy4jY29udGVudCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy4jY29udGVudCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy4jaWNvblNldCAmJiB0aGlzLiNuYW1lKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLiNpY29uU2V0LmdldEljb24odGhpcy4jbmFtZSgpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuI25hbWUoKSAmJiAhdGhpcy4jaWNvblNldD8uaWNvbnNbdGhpcy4jbmFtZSgpXSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgYy1pY29uIGNvbXBvbmVudDogaWNvbiBuYW1lICcke3RoaXMuI25hbWUoKX0nIGRvZXMgbm90IGV4aXN0IGZvciBJY29uU2V0IHNlcnZpY2UuIGAgK1xuICAgICAgICAgIGBUbyB1c2UgaWNvbiBieSAnbmFtZScgcHJvcCB5b3UgbmVlZCB0byBhZGQgaXQgdG8gSWNvblNldCBzZXJ2aWNlLiBcXG5gLFxuICAgICAgICB0aGlzLiNuYW1lKClcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc2NhbGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5jb2RlKCkpICYmIHRoaXMuY29kZSgpLmxlbmd0aCA+IDEgPyBgMCAwICR7dGhpcy5jb2RlKClbMF19YCA6ICcwIDAgNjQgNjQnO1xuICB9KTtcblxuICBnZXQgY29tcHV0ZWRTaXplKCk6IEV4Y2x1ZGU8SWNvblNpemUsICdjdXN0b20nPiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYWRkQ3VzdG9tID0gIXRoaXMuc2l6ZSAmJiAodGhpcy53aWR0aCB8fCB0aGlzLmhlaWdodCk7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ2N1c3RvbScgfHwgYWRkQ3VzdG9tID8gJ2N1c3RvbS1zaXplJyA6IHRoaXMuc2l6ZTtcbiAgfVxuXG4gIGdldCBjb21wdXRlZENsYXNzZXMoKSB7XG4gICAgY29uc3QgY2xhc3NlcyA9IHtcbiAgICAgIGljb246IHRydWUsXG4gICAgICBbYGljb24tJHt0aGlzLmNvbXB1dGVkU2l6ZX1gXTogISF0aGlzLmNvbXB1dGVkU2l6ZVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tQ2xhc3NlcyA/PyBjbGFzc2VzO1xuICB9XG59XG4iXX0=
|
|
87
|
+
}] });
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktaWNvbnMtYW5ndWxhci9zcmMvbGliL2ljb24vaWNvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQWlCN0MsTUFBTSxPQUFPLGFBQWE7SUFmMUI7UUFnQlcsZUFBVSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsQyxhQUFRLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWxDLFlBQU8sR0FBRyxLQUFLLENBQXdDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRXRGLGtCQUFhLEdBQUcsS0FBSyxFQUFjLENBQUM7UUFDcEMsU0FBSSxHQUFHLEtBQUssQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUMzQixVQUFLLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDeEIsV0FBTSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3pCLFVBQUssR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUN4QixTQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLGlCQUFZLEdBQUcsS0FBSyxDQUFxQixTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxRSxVQUFLLEdBQUcsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7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TSxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDbEUsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssUUFBUSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0UsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQW5FVSxVQUFVLENBQXdCO0lBQ2xDLFFBQVEsQ0FBMEI7SUFvQ2xDLFVBQVUsQ0FFaEI7OEdBeENRLGFBQWE7a0dBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFmekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsT0FBTztvQkFDakIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0osZUFBZSxFQUFFLE1BQU07d0JBQ3ZCLGFBQWEsRUFBRSxhQUFhO3dCQUM1QixTQUFTLEVBQUUsZUFBZTt3QkFDMUIsZ0JBQWdCLEVBQUUsV0FBVzt3QkFDN0IsY0FBYyxFQUFFLFNBQVM7d0JBQ3pCLHVCQUF1QixFQUFFLGlCQUFpQjt3QkFDMUMsYUFBYSxFQUFFLFFBQVE7d0JBQ3ZCLG9CQUFvQixFQUFFLE1BQU07cUJBQzdCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7IEljb25TZXRTZXJ2aWNlIH0gZnJvbSAnLi4vaWNvbi1zZXQnO1xuaW1wb3J0IHsgSWNvblNpemUsIElJY29uLCBJUG9pbnRlckV2ZW50cywgTmdDc3NDbGFzcyB9IGZyb20gJy4vaWNvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdHJhbnNmb3JtTmFtZSB9IGZyb20gJy4vaWNvbi51dGlscyc7XG5cbkBEaXJlY3RpdmUoe1xuICBleHBvcnRBczogJ2NJY29uJyxcbiAgc2VsZWN0b3I6ICdzdmdbY0ljb25dJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgIG5nU2tpcEh5ZHJhdGlvbjogJ3RydWUnLFxuICAgICdbaW5uZXJIdG1sXSc6ICdpbm5lckh0bWwoKScsXG4gICAgJ1tjbGFzc10nOiAnaG9zdENsYXNzZXMoKScsXG4gICAgJ1thdHRyLnZpZXdCb3hdJzogJ3ZpZXdCb3goKScsXG4gICAgJ1thdHRyLnhtbG5zXSc6ICd4bWxucygpJyxcbiAgICAnW2F0dHIucG9pbnRlci1ldmVudHNdJzogJ3BvaW50ZXJFdmVudHMoKScsXG4gICAgJ1thdHRyLnJvbGVdJzogJ3JvbGUoKScsXG4gICAgJ1thdHRyLmFyaWEtaGlkZGVuXSc6ICd0cnVlJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIEljb25EaXJlY3RpdmUgaW1wbGVtZW50cyBJSWNvbiB7XG4gIHJlYWRvbmx5ICNzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcbiAgcmVhZG9ubHkgI2ljb25TZXQgPSBpbmplY3QoSWNvblNldFNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGNvbnRlbnQgPSBpbnB1dDxzdHJpbmcgfCBzdHJpbmdbXSB8IGFueVtdIHwgdW5kZWZpbmVkPih1bmRlZmluZWQsIHsgYWxpYXM6ICdjSWNvbicgfSk7XG5cbiAgcmVhZG9ubHkgY3VzdG9tQ2xhc3NlcyA9IGlucHV0PE5nQ3NzQ2xhc3M+KCk7XG4gIHJlYWRvbmx5IHNpemUgPSBpbnB1dDxJY29uU2l6ZT4oJycpO1xuICByZWFkb25seSB0aXRsZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgaGVpZ2h0ID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSB3aWR0aCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgbmFtZSA9IGlucHV0KCcnLCB7IHRyYW5zZm9ybTogdHJhbnNmb3JtTmFtZSB9KTtcbiAgcmVhZG9ubHkgdmlld0JveElucHV0ID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQsIHsgYWxpYXM6ICd2aWV3Qm94JyB9KTtcbiAgcmVhZG9ubHkgeG1sbnMgPSBpbnB1dCgnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnKTtcbiAgcmVhZG9ubHkgcG9pbnRlckV2ZW50cyA9IGlucHV0PElQb2ludGVyRXZlbnRzPignbm9uZScsIHsgYWxpYXM6ICdwb2ludGVyLWV2ZW50cycgfSk7XG4gIHJlYWRvbmx5IHJvbGUgPSBpbnB1dCgnaW1nJyk7XG5cbiAgcmVhZG9ubHkgaG9zdENsYXNzZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29tcHV0ZWRTaXplID0gdGhpcy5jb21wdXRlZFNpemUoKTtcbiAgICBjb25zdCBjbGFzc2VzID0ge1xuICAgICAgaWNvbjogdHJ1ZSxcbiAgICAgIFtgaWNvbi0ke2NvbXB1dGVkU2l6ZX1gXTogISFjb21wdXRlZFNpemVcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUNsYXNzZXMoKSA/PyBjbGFzc2VzO1xuICB9KTtcblxuICByZWFkb25seSB2aWV3Qm94ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnZpZXdCb3hJbnB1dCgpID8/IHRoaXMuc2NhbGUoKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaW5uZXJIdG1sID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvZGVWYWwgPSB0aGlzLmNvZGUoKTtcbiAgICBjb25zdCBjb2RlID0gQXJyYXkuaXNBcnJheShjb2RlVmFsKSA/IChjb2RlVmFsPy5bMV0gPz8gY29kZVZhbD8uWzBdID8/ICcnKSA6IGNvZGVWYWwgfHwgJyc7XG4gICAgLy8gdG9kbyBwcm9wZXIgc2FuaXRpemVcbiAgICAvLyBjb25zdCBzYW5pdGl6ZWQgPSB0aGlzLnNhbml0aXplci5zYW5pdGl6ZShTZWN1cml0eUNvbnRleHQuSFRNTCwgY29kZSk7XG4gICAgcmV0dXJuIHRoaXMuI3Nhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLiN0aXRsZUNvZGUoKSArIGNvZGUgfHwgJycpO1xuICB9KTtcblxuICByZWFkb25seSAjdGl0bGVDb2RlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnRpdGxlKCkgPyBgPHRpdGxlPiR7dGhpcy50aXRsZSgpfTwvdGl0bGU+YCA6ICcnO1xuICB9KTtcblxuICByZWFkb25seSBjb2RlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNvbnRlbnQoKTtcbiAgICBpZiAoY29udGVudCkge1xuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfVxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLm5hbWUoKTtcbiAgICBpZiAodGhpcy4jaWNvblNldCAmJiBuYW1lKSB7XG4gICAgICByZXR1cm4gdGhpcy4jaWNvblNldC5nZXRJY29uKG5hbWUpO1xuICAgIH1cbiAgICBpZiAobmFtZSAmJiAhdGhpcy4jaWNvblNldD8uaWNvbnNbbmFtZV0pIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYGNJY29uIGRpcmVjdGl2ZTogVGhlICcke25hbWV9JyBpY29uIG5vdCBmb3VuZC4gQWRkIGl0IHRvIHRoZSBJY29uU2V0IHNlcnZpY2UgZm9yIHVzZSB3aXRoIHRoZSAnbmFtZScgcHJvcGVydHkuIFxcbmAsXG4gICAgICAgIG5hbWVcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc2NhbGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5jb2RlKCkpICYmICh0aGlzLmNvZGUoKT8ubGVuZ3RoID8/IDApID4gMSA/IGAwIDAgJHt0aGlzLmNvZGUoKT8uWzBdfWAgOiAnMCAwIDY0IDY0JztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgY29tcHV0ZWRTaXplID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGFkZEN1c3RvbSA9ICF0aGlzLnNpemUoKSAmJiAodGhpcy53aWR0aCgpIHx8IHRoaXMuaGVpZ2h0KCkpO1xuICAgIHJldHVybiB0aGlzLnNpemUoKSA9PT0gJ2N1c3RvbScgfHwgYWRkQ3VzdG9tID8gJ2N1c3RvbS1zaXplJyA6IHRoaXMuc2l6ZSgpO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktaWNvbnMtYW5ndWxhci9zcmMvbGliL2ljb24vaWNvbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0U2lnbmFsLCBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBJSWNvbiB7XG4gIGNvbnRlbnQ/OiBJbnB1dFNpZ25hbDxzdHJpbmcgfCBzdHJpbmdbXSB8IGFueVtdIHwgdW5kZWZpbmVkPjtcbiAgY3VzdG9tQ2xhc3Nlcz86IElucHV0U2lnbmFsPE5nQ3NzQ2xhc3MgfCB1bmRlZmluZWQ+O1xuICBoZWlnaHQ/OiBJbnB1dFNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBuYW1lPzogSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtPHN0cmluZywgc3RyaW5nPjtcbiAgcG9pbnRlckV2ZW50cz86IElucHV0U2lnbmFsPElQb2ludGVyRXZlbnRzPjtcbiAgc2l6ZT86IElucHV0U2lnbmFsPEljb25TaXplPjtcbiAgdGl0bGU/OiBJbnB1dFNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICB2aWV3Qm94SW5wdXQ/OiBJbnB1dFNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICB3aWR0aDogSW5wdXRTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgeG1sbnM/OiBJbnB1dFNpZ25hbDxzdHJpbmc+O1xufVxuXG5leHBvcnQgdHlwZSBJY29uU2l6ZSA9XG4gIHwgJ2N1c3RvbSdcbiAgfCAnY3VzdG9tLXNpemUnXG4gIHwgJ3NtJ1xuICB8ICdsZydcbiAgfCAneGwnXG4gIHwgJ3h4bCdcbiAgfCAnM3hsJ1xuICB8ICc0eGwnXG4gIHwgJzV4bCdcbiAgfCAnNnhsJ1xuICB8ICc3eGwnXG4gIHwgJzh4bCdcbiAgfCAnOXhsJ1xuICB8IHN0cmluZztcblxuZXhwb3J0IHR5cGUgSVBvaW50ZXJFdmVudHMgPVxuICB8ICdhdXRvJ1xuICB8ICdib3VuZGluZy1ib3gnXG4gIHwgJ3Zpc2libGVQYWludGVkJ1xuICB8ICd2aXNpYmxlRmlsbCdcbiAgfCAndmlzaWJsZVN0cm9rZSdcbiAgfCAndmlzaWJsZSdcbiAgfCAncGFpbnRlZCdcbiAgfCAnZmlsbCdcbiAgfCAnc3Ryb2tlJ1xuICB8ICdhbGwnXG4gIHwgJ25vbmUnO1xuXG5leHBvcnQgdHlwZSBOZ0Nzc0NsYXNzID0gc3RyaW5nIHwgc3RyaW5nW10gfCBTZXQ8c3RyaW5nPiB8IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfTtcbiJdfQ==
|
|
@@ -3,13 +3,13 @@ import { IconComponent } from './icon.component';
|
|
|
3
3
|
import { IconDirective } from './icon.directive';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class IconModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: IconModule, imports: [IconComponent,
|
|
8
8
|
IconDirective], exports: [IconComponent,
|
|
9
9
|
IconDirective] }); }
|
|
10
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
10
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconModule }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconModule, decorators: [{
|
|
13
13
|
type: NgModule,
|
|
14
14
|
args: [{
|
|
15
15
|
imports: [
|
|
@@ -15,11 +15,11 @@ export class IconSetModule {
|
|
|
15
15
|
]
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
19
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
20
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconSetModule, deps: [{ token: IconSetModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
19
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: IconSetModule }); }
|
|
20
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconSetModule, providers: [IconSetService] }); }
|
|
21
21
|
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconSetModule, decorators: [{
|
|
23
23
|
type: NgModule,
|
|
24
24
|
args: [{
|
|
25
25
|
providers: [IconSetService]
|
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class IconSetService {
|
|
4
|
-
constructor() {
|
|
5
|
-
this._iconNames = {};
|
|
6
|
-
this._icons = {};
|
|
7
|
-
}
|
|
8
4
|
get iconNames() {
|
|
9
|
-
return this
|
|
5
|
+
return this.#iconNames;
|
|
10
6
|
}
|
|
7
|
+
#iconNames = {};
|
|
11
8
|
get icons() {
|
|
12
|
-
return this
|
|
9
|
+
return this.#icons;
|
|
13
10
|
}
|
|
14
11
|
set icons(iconSet) {
|
|
15
12
|
for (const iconsKey in iconSet) {
|
|
16
|
-
this
|
|
13
|
+
this.#iconNames[iconsKey] = iconsKey;
|
|
17
14
|
}
|
|
18
|
-
this
|
|
15
|
+
this.#icons = iconSet;
|
|
19
16
|
}
|
|
17
|
+
#icons = {};
|
|
20
18
|
getIcon(name) {
|
|
21
19
|
const icon = this.icons[name];
|
|
22
20
|
if (!icon) {
|
|
@@ -24,13 +22,13 @@ export class IconSetService {
|
|
|
24
22
|
}
|
|
25
23
|
return this.icons[name];
|
|
26
24
|
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
28
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconSetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
26
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconSetService, providedIn: 'root' }); }
|
|
29
27
|
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IconSetService, decorators: [{
|
|
31
29
|
type: Injectable,
|
|
32
30
|
args: [{
|
|
33
31
|
providedIn: 'root'
|
|
34
32
|
}]
|
|
35
33
|
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1zZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1pY29ucy1hbmd1bGFyL3NyYy9saWIvaWNvbi1zZXQvaWNvbi1zZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMzQyxNQUFNLE9BQU8sY0FBYztJQUN6QixJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxVQUFVLEdBQTJCLEVBQUUsQ0FBQztJQUV4QyxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLE9BQU87UUFDZixLQUFLLE1BQU0sUUFBUSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUVmLE9BQU8sQ0FBQyxJQUFZO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxtQ0FBbUMsQ0FBQyxDQUFDO1FBQzdFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQzs4R0ExQlUsY0FBYztrSEFBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUljb25TZXQge1xuICBbaWNvbk5hbWU6IHN0cmluZ106IHN0cmluZ1tdO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBJY29uU2V0U2VydmljZSB7XG4gIHB1YmxpYyBnZXQgaWNvbk5hbWVzKCkge1xuICAgIHJldHVybiB0aGlzLiNpY29uTmFtZXM7XG4gIH1cblxuICAjaWNvbk5hbWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgZ2V0IGljb25zKCk6IElJY29uU2V0IHtcbiAgICByZXR1cm4gdGhpcy4jaWNvbnM7XG4gIH1cblxuICBzZXQgaWNvbnMoaWNvblNldCkge1xuICAgIGZvciAoY29uc3QgaWNvbnNLZXkgaW4gaWNvblNldCkge1xuICAgICAgdGhpcy4jaWNvbk5hbWVzW2ljb25zS2V5XSA9IGljb25zS2V5O1xuICAgIH1cbiAgICB0aGlzLiNpY29ucyA9IGljb25TZXQ7XG4gIH1cblxuICAjaWNvbnM6IElJY29uU2V0ID0ge307XG5cbiAgcHVibGljIGdldEljb24obmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGljb24gPSB0aGlzLmljb25zW25hbWVdO1xuICAgIGlmICghaWNvbikge1xuICAgICAgY29uc29sZS53YXJuKGBDb3JlVUkgV0FSTjogSWNvbiAke25hbWV9IGlzIG5vdCByZWdpc3RlcmVkIGluIEljb25TZXJ2aWNlYCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmljb25zW25hbWVdO1xuICB9XG59XG4iXX0=
|