@ng-icons/core 29.10.0 → 30.1.0
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 +11 -9
- package/fesm2022/ng-icons-core.mjs +13 -13
- package/fesm2022/ng-icons-core.mjs.map +1 -1
- package/lib/components/icon/icon-name.d.ts +1 -1
- package/package.json +1 -3
- package/esm2022/index.mjs +0 -15
- package/esm2022/lib/components/glyph/glyph.component.mjs +0 -80
- package/esm2022/lib/components/icon/icon-name.mjs +0 -2
- package/esm2022/lib/components/icon/icon.component.mjs +0 -166
- package/esm2022/lib/components/icon-stack/icon-stack.component.mjs +0 -17
- package/esm2022/lib/icon.module.mjs +0 -34
- package/esm2022/lib/providers/features/csp.mjs +0 -37
- package/esm2022/lib/providers/features/features.mjs +0 -7
- package/esm2022/lib/providers/features/logger.mjs +0 -43
- package/esm2022/lib/providers/glyph-config.provider.mjs +0 -29
- package/esm2022/lib/providers/glyph.provider.mjs +0 -21
- package/esm2022/lib/providers/icon-config.provider.mjs +0 -24
- package/esm2022/lib/providers/icon-loader.provider.mjs +0 -42
- package/esm2022/lib/providers/icon.provider.mjs +0 -30
- package/esm2022/lib/utils/async.mjs +0 -17
- package/esm2022/lib/utils/coercion.mjs +0 -4
- package/esm2022/lib/utils/format.mjs +0 -10
- package/esm2022/ng-icons-core.mjs +0 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ng-icons/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "30.1.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -24,8 +24,6 @@
|
|
|
24
24
|
},
|
|
25
25
|
".": {
|
|
26
26
|
"types": "./index.d.ts",
|
|
27
|
-
"esm2022": "./esm2022/ng-icons-core.mjs",
|
|
28
|
-
"esm": "./esm2022/ng-icons-core.mjs",
|
|
29
27
|
"default": "./fesm2022/ng-icons-core.mjs"
|
|
30
28
|
}
|
|
31
29
|
},
|
package/esm2022/index.mjs
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export * from './lib/components/glyph/glyph.component';
|
|
2
|
-
export * from './lib/components/icon/icon-name';
|
|
3
|
-
export * from './lib/components/icon/icon.component';
|
|
4
|
-
export * from './lib/icon.module';
|
|
5
|
-
export { withContentSecurityPolicy } from './lib/providers/features/csp';
|
|
6
|
-
export { withExceptionLogger } from './lib/providers/features/logger';
|
|
7
|
-
export * from './lib/providers/glyph-config.provider';
|
|
8
|
-
export { provideNgGlyphs, } from './lib/providers/glyph.provider';
|
|
9
|
-
export * from './lib/providers/icon-config.provider';
|
|
10
|
-
export * from './lib/providers/icon-loader.provider';
|
|
11
|
-
export * from './lib/providers/icon.provider';
|
|
12
|
-
// re-export the component as NgIconComponent to prevent breaking changes
|
|
13
|
-
export { NgIcon as NgIconComponent } from './lib/components/icon/icon.component';
|
|
14
|
-
export * from './lib/components/icon-stack/icon-stack.component';
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsT0FBTyxFQUdMLGVBQWUsR0FDaEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywrQkFBK0IsQ0FBQztBQUU5Qyx5RUFBeUU7QUFDekUsT0FBTyxFQUFFLE1BQU0sSUFBSSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVqRixjQUFjLGtEQUFrRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9nbHlwaC9nbHlwaC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pY29uL2ljb24tbmFtZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaWNvbi5tb2R1bGUnO1xuZXhwb3J0IHsgd2l0aENvbnRlbnRTZWN1cml0eVBvbGljeSB9IGZyb20gJy4vbGliL3Byb3ZpZGVycy9mZWF0dXJlcy9jc3AnO1xuZXhwb3J0IHsgd2l0aEV4Y2VwdGlvbkxvZ2dlciB9IGZyb20gJy4vbGliL3Byb3ZpZGVycy9mZWF0dXJlcy9sb2dnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvdmlkZXJzL2dseXBoLWNvbmZpZy5wcm92aWRlcic7XG5leHBvcnQge1xuICBOZ0dseXBocyxcbiAgTmdHbHlwaHNldCxcbiAgcHJvdmlkZU5nR2x5cGhzLFxufSBmcm9tICcuL2xpYi9wcm92aWRlcnMvZ2x5cGgucHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvdmlkZXJzL2ljb24tY29uZmlnLnByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb3ZpZGVycy9pY29uLWxvYWRlci5wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm92aWRlcnMvaWNvbi5wcm92aWRlcic7XG5cbi8vIHJlLWV4cG9ydCB0aGUgY29tcG9uZW50IGFzIE5nSWNvbkNvbXBvbmVudCB0byBwcmV2ZW50IGJyZWFraW5nIGNoYW5nZXNcbmV4cG9ydCB7IE5nSWNvbiBhcyBOZ0ljb25Db21wb25lbnQgfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ljb24tc3RhY2svaWNvbi1zdGFjay5jb21wb25lbnQnO1xuIl19
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, booleanAttribute, computed, input, numberAttribute, } from '@angular/core';
|
|
2
|
-
import { injectNgGlyphsConfig } from '../../providers/glyph-config.provider';
|
|
3
|
-
import { injectNgGlyphs } from '../../providers/glyph.provider';
|
|
4
|
-
import { coerceCssPixelValue } from '../../utils/coercion';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class NgGlyph {
|
|
7
|
-
constructor() {
|
|
8
|
-
/**
|
|
9
|
-
* Access the available glyphsets
|
|
10
|
-
*/
|
|
11
|
-
this.glyphsets = injectNgGlyphs();
|
|
12
|
-
/**
|
|
13
|
-
* Access the default configuration
|
|
14
|
-
*/
|
|
15
|
-
this.config = injectNgGlyphsConfig();
|
|
16
|
-
/**
|
|
17
|
-
* Define the name of the glyph to display
|
|
18
|
-
*/
|
|
19
|
-
this.name = input.required();
|
|
20
|
-
/**
|
|
21
|
-
* Define the glyphset to use
|
|
22
|
-
*/
|
|
23
|
-
this.glyphset = input(this.glyphsets.defaultGlyphset);
|
|
24
|
-
/**
|
|
25
|
-
* Define the optical size of the glyph
|
|
26
|
-
*/
|
|
27
|
-
this.opticalSize = input(this.config.opticalSize, {
|
|
28
|
-
transform: numberAttribute,
|
|
29
|
-
});
|
|
30
|
-
/**
|
|
31
|
-
* Define the weight of the glyph
|
|
32
|
-
*/
|
|
33
|
-
this.weight = input(this.config.weight, { transform: numberAttribute });
|
|
34
|
-
/**
|
|
35
|
-
* Define the grade of the glyph
|
|
36
|
-
*/
|
|
37
|
-
this.grade = input(this.config.grade, { transform: numberAttribute });
|
|
38
|
-
/**
|
|
39
|
-
* Define the fill of the glyph
|
|
40
|
-
*/
|
|
41
|
-
this.fill = input(this.config.fill, { transform: booleanAttribute });
|
|
42
|
-
/**
|
|
43
|
-
* Define the size of the glyph
|
|
44
|
-
*/
|
|
45
|
-
this.size = input(this.config.size, { transform: coerceCssPixelValue });
|
|
46
|
-
/**
|
|
47
|
-
* Define the color of the glyph
|
|
48
|
-
*/
|
|
49
|
-
this.color = input(this.config.color);
|
|
50
|
-
/**
|
|
51
|
-
* Derive the glyphset class from the glyphset name
|
|
52
|
-
*/
|
|
53
|
-
this.glyphsetClass = computed(() => {
|
|
54
|
-
const glyphset = this.glyphsets.glyphsets.find(glyphset => glyphset.name === this.glyphset());
|
|
55
|
-
if (!glyphset) {
|
|
56
|
-
throw new Error(`The glyphset "${this.glyphset()}" does not exist. Please provide a valid glyphset.`);
|
|
57
|
-
}
|
|
58
|
-
return glyphset.baseClass;
|
|
59
|
-
});
|
|
60
|
-
/**
|
|
61
|
-
* Define the font variation settings of the glyph
|
|
62
|
-
*/
|
|
63
|
-
this.fontVariationSettings = computed(() => {
|
|
64
|
-
return `'FILL' ${this.fill() ? 1 : 0}, 'wght' ${this.weight()}, 'GRAD' ${this.grade()}, 'opsz' ${this.opticalSize()}`;
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgGlyph, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: NgGlyph, isStandalone: true, selector: "ng-glyph", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, glyphset: { classPropertyName: "glyphset", publicName: "glyphset", isSignal: true, isRequired: false, transformFunction: null }, opticalSize: { classPropertyName: "opticalSize", publicName: "opticalSize", isSignal: true, isRequired: false, transformFunction: null }, weight: { classPropertyName: "weight", publicName: "weight", isSignal: true, isRequired: false, transformFunction: null }, grade: { classPropertyName: "grade", publicName: "grade", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "glyphsetClass()", "textContent": "name()", "style.--ng-glyph__size": "size()", "style.color": "color()", "style.font-variation-settings": "fontVariationSettings()" } }, ngImport: i0, template: ``, isInline: true, styles: [":host{display:inline-block;width:var(--ng-glyph__size);height:var(--ng-glyph__size);font-size:var(--ng-glyph__size);overflow:hidden}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
69
|
-
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgGlyph, decorators: [{
|
|
71
|
-
type: Component,
|
|
72
|
-
args: [{ selector: 'ng-glyph', standalone: true, template: ``, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
73
|
-
'[class]': 'glyphsetClass()',
|
|
74
|
-
'[textContent]': 'name()',
|
|
75
|
-
'[style.--ng-glyph__size]': 'size()',
|
|
76
|
-
'[style.color]': 'color()',
|
|
77
|
-
'[style.font-variation-settings]': 'fontVariationSettings()',
|
|
78
|
-
}, styles: [":host{display:inline-block;width:var(--ng-glyph__size);height:var(--ng-glyph__size);font-size:var(--ng-glyph__size);overflow:hidden}\n"] }]
|
|
79
|
-
}] });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x5cGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvZ2x5cGgvZ2x5cGguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsS0FBSyxFQUNMLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQWdCM0QsTUFBTSxPQUFPLE9BQU87SUFkcEI7UUFlRTs7V0FFRztRQUNjLGNBQVMsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUU5Qzs7V0FFRztRQUNjLFdBQU0sR0FBRyxvQkFBb0IsRUFBRSxDQUFDO1FBRWpEOztXQUVHO1FBQ00sU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUV6Qzs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUUxRDs7V0FFRztRQUNNLGdCQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQ3BELFNBQVMsRUFBRSxlQUFlO1NBQzNCLENBQUMsQ0FBQztRQUVIOztXQUVHO1FBQ00sV0FBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRTVFOztXQUVHO1FBQ00sVUFBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRTFFOztXQUVHO1FBQ00sU0FBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFFekU7O1dBRUc7UUFDTSxTQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztRQUU1RTs7V0FFRztRQUNNLFVBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQzs7V0FFRztRQUNnQixrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUM1QyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUM5QyxDQUFDO1lBRUYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNkLE1BQU0sSUFBSSxLQUFLLENBQ2IsaUJBQWlCLElBQUksQ0FBQyxRQUFRLEVBQUUsb0RBQW9ELENBQ3JGLENBQUM7WUFDSixDQUFDO1lBRUQsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBRUg7O1dBRUc7UUFDZ0IsMEJBQXFCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN2RCxPQUFPLFVBQ0wsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3BCLFlBQVksSUFBSSxDQUFDLE1BQU0sRUFBRSxZQUFZLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUNwRixDQUFDLENBQUMsQ0FBQztLQUNKOzhHQTlFWSxPQUFPO2tHQUFQLE9BQU8sNnVDQVhSLEVBQUU7OzJGQVdELE9BQU87a0JBZG5CLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksWUFDTixFQUFFLG1CQUVLLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osU0FBUyxFQUFFLGlCQUFpQjt3QkFDNUIsZUFBZSxFQUFFLFFBQVE7d0JBQ3pCLDBCQUEwQixFQUFFLFFBQVE7d0JBQ3BDLGVBQWUsRUFBRSxTQUFTO3dCQUMxQixpQ0FBaUMsRUFBRSx5QkFBeUI7cUJBQzdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgY29tcHV0ZWQsXG4gIGlucHV0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0TmdHbHlwaHNDb25maWcgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvZ2x5cGgtY29uZmlnLnByb3ZpZGVyJztcbmltcG9ydCB7IGluamVjdE5nR2x5cGhzIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2dseXBoLnByb3ZpZGVyJztcbmltcG9ydCB7IGNvZXJjZUNzc1BpeGVsVmFsdWUgfSBmcm9tICcuLi8uLi91dGlscy9jb2VyY2lvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLWdseXBoJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6IGBgLFxuICBzdHlsZVVybDogJy4vZ2x5cGguY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3NdJzogJ2dseXBoc2V0Q2xhc3MoKScsXG4gICAgJ1t0ZXh0Q29udGVudF0nOiAnbmFtZSgpJyxcbiAgICAnW3N0eWxlLi0tbmctZ2x5cGhfX3NpemVdJzogJ3NpemUoKScsXG4gICAgJ1tzdHlsZS5jb2xvcl0nOiAnY29sb3IoKScsXG4gICAgJ1tzdHlsZS5mb250LXZhcmlhdGlvbi1zZXR0aW5nc10nOiAnZm9udFZhcmlhdGlvblNldHRpbmdzKCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBOZ0dseXBoIHtcbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgYXZhaWxhYmxlIGdseXBoc2V0c1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBnbHlwaHNldHMgPSBpbmplY3ROZ0dseXBocygpO1xuXG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3ROZ0dseXBoc0NvbmZpZygpO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIG5hbWUgb2YgdGhlIGdseXBoIHRvIGRpc3BsYXlcbiAgICovXG4gIHJlYWRvbmx5IG5hbWUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgZ2x5cGhzZXQgdG8gdXNlXG4gICAqL1xuICByZWFkb25seSBnbHlwaHNldCA9IGlucHV0KHRoaXMuZ2x5cGhzZXRzLmRlZmF1bHRHbHlwaHNldCk7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgb3B0aWNhbCBzaXplIG9mIHRoZSBnbHlwaFxuICAgKi9cbiAgcmVhZG9ubHkgb3B0aWNhbFNpemUgPSBpbnB1dCh0aGlzLmNvbmZpZy5vcHRpY2FsU2l6ZSwge1xuICAgIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlLFxuICB9KTtcblxuICAvKipcbiAgICogRGVmaW5lIHRoZSB3ZWlnaHQgb2YgdGhlIGdseXBoXG4gICAqL1xuICByZWFkb25seSB3ZWlnaHQgPSBpbnB1dCh0aGlzLmNvbmZpZy53ZWlnaHQsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgZ3JhZGUgb2YgdGhlIGdseXBoXG4gICAqL1xuICByZWFkb25seSBncmFkZSA9IGlucHV0KHRoaXMuY29uZmlnLmdyYWRlLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIGZpbGwgb2YgdGhlIGdseXBoXG4gICAqL1xuICByZWFkb25seSBmaWxsID0gaW5wdXQodGhpcy5jb25maWcuZmlsbCwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgc2l6ZSBvZiB0aGUgZ2x5cGhcbiAgICovXG4gIHJlYWRvbmx5IHNpemUgPSBpbnB1dCh0aGlzLmNvbmZpZy5zaXplLCB7IHRyYW5zZm9ybTogY29lcmNlQ3NzUGl4ZWxWYWx1ZSB9KTtcblxuICAvKipcbiAgICogRGVmaW5lIHRoZSBjb2xvciBvZiB0aGUgZ2x5cGhcbiAgICovXG4gIHJlYWRvbmx5IGNvbG9yID0gaW5wdXQodGhpcy5jb25maWcuY29sb3IpO1xuXG4gIC8qKlxuICAgKiBEZXJpdmUgdGhlIGdseXBoc2V0IGNsYXNzIGZyb20gdGhlIGdseXBoc2V0IG5hbWVcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBnbHlwaHNldENsYXNzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGdseXBoc2V0ID0gdGhpcy5nbHlwaHNldHMuZ2x5cGhzZXRzLmZpbmQoXG4gICAgICBnbHlwaHNldCA9PiBnbHlwaHNldC5uYW1lID09PSB0aGlzLmdseXBoc2V0KCksXG4gICAgKTtcblxuICAgIGlmICghZ2x5cGhzZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRoZSBnbHlwaHNldCBcIiR7dGhpcy5nbHlwaHNldCgpfVwiIGRvZXMgbm90IGV4aXN0LiBQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIGdseXBoc2V0LmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBnbHlwaHNldC5iYXNlQ2xhc3M7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIGZvbnQgdmFyaWF0aW9uIHNldHRpbmdzIG9mIHRoZSBnbHlwaFxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvbnRWYXJpYXRpb25TZXR0aW5ncyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gYCdGSUxMJyAke1xuICAgICAgdGhpcy5maWxsKCkgPyAxIDogMFxuICAgIH0sICd3Z2h0JyAke3RoaXMud2VpZ2h0KCl9LCAnR1JBRCcgJHt0aGlzLmdyYWRlKCl9LCAnb3BzeicgJHt0aGlzLm9wdGljYWxTaXplKCl9YDtcbiAgfSk7XG59XG4iXX0=
|