@ecodev/natural 61.1.1 → 61.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/modules/hierarchic-selector/classes/hierarchic-configuration.mjs +1 -1
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +3 -3
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +12 -20
- package/esm2022/lib/modules/select/abstract-select.component.mjs +7 -13
- package/esm2022/lib/modules/select/select-enum/select-enum.component.mjs +5 -9
- package/esm2022/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +4 -8
- package/fesm2022/ecodev-natural.mjs +22 -43
- package/fesm2022/ecodev-natural.mjs.map +1 -1
- package/lib/modules/hierarchic-selector/classes/hierarchic-configuration.d.ts +0 -4
- package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.d.ts +0 -1
- package/lib/modules/select/abstract-select.component.d.ts +3 -3
- package/lib/modules/select/select-enum/select-enum.component.d.ts +0 -1
- package/lib/modules/select/select-hierarchic/select-hierarchic.component.d.ts +0 -1
- package/package.json +1 -1
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
2
|
-
import { Directive, EventEmitter,
|
|
3
|
-
import { FormControl, FormControlDirective, FormControlName, Validators, } from '@angular/forms';
|
|
2
|
+
import { Directive, EventEmitter, inject, Input, Output } from '@angular/core';
|
|
3
|
+
import { FormControl, FormControlDirective, FormControlName, NgControl, Validators, } from '@angular/forms';
|
|
4
4
|
import { ErrorStateMatcher } from '@angular/material/core';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/forms";
|
|
7
6
|
/**
|
|
8
7
|
* This will completely ignore internal formControl and instead use the one from the component
|
|
9
8
|
* which comes from outside of this component. This basically allows us to **not** depend on
|
|
@@ -25,7 +24,6 @@ class ExternalFormControlMatcher extends ErrorStateMatcher {
|
|
|
25
24
|
}
|
|
26
25
|
}
|
|
27
26
|
export class AbstractSelect {
|
|
28
|
-
ngControl;
|
|
29
27
|
placeholder;
|
|
30
28
|
/**
|
|
31
29
|
* Mat-hint
|
|
@@ -97,8 +95,8 @@ export class AbstractSelect {
|
|
|
97
95
|
*/
|
|
98
96
|
onTouched;
|
|
99
97
|
matcher;
|
|
100
|
-
|
|
101
|
-
|
|
98
|
+
ngControl = inject(NgControl, { optional: true, self: true });
|
|
99
|
+
constructor() {
|
|
102
100
|
if (this.ngControl) {
|
|
103
101
|
this.ngControl.valueAccessor = this;
|
|
104
102
|
}
|
|
@@ -193,17 +191,13 @@ export class AbstractSelect {
|
|
|
193
191
|
}
|
|
194
192
|
this.internalCtrl.updateValueAndValidity();
|
|
195
193
|
}
|
|
196
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: AbstractSelect, deps: [
|
|
194
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: AbstractSelect, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
197
195
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.3", type: AbstractSelect, isStandalone: true, inputs: { placeholder: "placeholder", hint: "hint", required: "required", navigateTo: "navigateTo", clearLabel: "clearLabel", showIcon: "showIcon", icon: "icon", displayWith: "displayWith", disabled: "disabled" }, outputs: { selectionChange: "selectionChange", blur: "blur" }, ngImport: i0 });
|
|
198
196
|
}
|
|
199
197
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: AbstractSelect, decorators: [{
|
|
200
198
|
type: Directive,
|
|
201
199
|
args: [{ standalone: true }]
|
|
202
|
-
}], ctorParameters: () => [
|
|
203
|
-
type: Optional
|
|
204
|
-
}, {
|
|
205
|
-
type: Self
|
|
206
|
-
}] }], propDecorators: { placeholder: [{
|
|
200
|
+
}], ctorParameters: () => [], propDecorators: { placeholder: [{
|
|
207
201
|
type: Input
|
|
208
202
|
}], hint: [{
|
|
209
203
|
type: Input
|
|
@@ -226,4 +220,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
|
|
|
226
220
|
}], disabled: [{
|
|
227
221
|
type: Input
|
|
228
222
|
}] } });
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlbGVjdC9hYnN0cmFjdC1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBQyxTQUFTLEVBQVcsWUFBWSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBR0gsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixlQUFlLEVBRWYsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7OztBQUV6RDs7Ozs7R0FLRztBQUNILE1BQU0sMEJBQWlDLFNBQVEsaUJBQWlCO0lBQ3hCO0lBQXBDLFlBQW9DLFNBQStCO1FBQy9ELEtBQUssRUFBRSxDQUFDO1FBRHdCLGNBQVMsR0FBVCxTQUFTLENBQXNCO0lBRW5FLENBQUM7SUFFZSxZQUFZO1FBQ3hCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztRQUN0RixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKO0FBR0QsTUFBTSxPQUFnQixjQUFjO0lBeUZ1QjtJQXhGdkMsV0FBVyxDQUFVO0lBRXJD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QixDQUFDO1FBRXZHLG9DQUFvQztRQUNwQyxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBcUIsQ0FBQyxFQUFFLFFBQVEsQ0FBQztRQUU5RixnRUFBZ0U7UUFDaEUsSUFBSSxxQkFBcUIsS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1lBQzlDLE9BQU87UUFDWCxDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekQsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hDLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDL0MsQ0FBQzt1R0EvTWlCLGNBQWM7MkZBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEbkMsU0FBUzttQkFBQyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUM7OzBCQTBGTCxRQUFROzswQkFBSSxJQUFJO3lDQXhGcEIsV0FBVztzQkFBMUIsS0FBSztnQkFLVSxJQUFJO3NCQUFuQixLQUFLO2dCQU1LLFFBQVE7c0JBRGxCLEtBQUs7Z0JBZVUsVUFBVTtzQkFBekIsS0FBSztnQkFLVSxVQUFVO3NCQUF6QixLQUFLO2dCQUtVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBS1UsSUFBSTtzQkFBbkIsS0FBSztnQkFLVSxXQUFXO3NCQUExQixLQUFLO2dCQUtvQixlQUFlO3NCQUF4QyxNQUFNO2dCQU1tQixJQUFJO3NCQUE3QixNQUFNO2dCQTZESSxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge0RpcmVjdGl2ZSwgRG9DaGVjaywgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBTZWxmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIEZvcm1Db250cm9sLFxuICAgIEZvcm1Db250cm9sRGlyZWN0aXZlLFxuICAgIEZvcm1Db250cm9sTmFtZSxcbiAgICBOZ0NvbnRyb2wsXG4gICAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtFcnJvclN0YXRlTWF0Y2hlcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbi8qKlxuICogVGhpcyB3aWxsIGNvbXBsZXRlbHkgaWdub3JlIGludGVybmFsIGZvcm1Db250cm9sIGFuZCBpbnN0ZWFkIHVzZSB0aGUgb25lIGZyb20gdGhlIGNvbXBvbmVudFxuICogd2hpY2ggY29tZXMgZnJvbSBvdXRzaWRlIG9mIHRoaXMgY29tcG9uZW50LiBUaGlzIGJhc2ljYWxseSBhbGxvd3MgdXMgdG8gKipub3QqKiBkZXBlbmQgb25cbiAqIHRvdWNoZWQgc3RhdHVzIHByb3BhZ2F0aW9uIGJldHdlZW4gb3V0c2lkZSBhbmQgaW5zaWRlIHdvcmxkLCBhbmQgdGh1cyBnZXQgcmlkIG9mIG91ciBsZWdhY3lcbiAqIGN1c3RvbSBGb3JtQ29udHJvbCBjbGFzcyAoXCJOYXR1cmFsRm9ybUNvbnRyb2xcIikuXG4gKi9cbmNsYXNzIEV4dGVybmFsRm9ybUNvbnRyb2xNYXRjaGVyPFQsIEk+IGV4dGVuZHMgRXJyb3JTdGF0ZU1hdGNoZXIge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudDogQWJzdHJhY3RTZWxlY3Q8VCwgST4pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgaXNFcnJvclN0YXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBleHRlcm5hbEN0cmwgPSB0aGlzLmNvbXBvbmVudC5uZ0NvbnRyb2w/LmNvbnRyb2wgfHwgdGhpcy5jb21wb25lbnQuaW50ZXJuYWxDdHJsO1xuICAgICAgICBpZiAoZXh0ZXJuYWxDdHJsKSB7XG4gICAgICAgICAgICByZXR1cm4gISEoZXh0ZXJuYWxDdHJsLmVycm9ycyAmJiAoZXh0ZXJuYWxDdHJsLnRvdWNoZWQgfHwgZXh0ZXJuYWxDdHJsLmRpcnR5KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtzdGFuZGFsb25lOiB0cnVlfSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFNlbGVjdDxWLCBJPiBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIERvQ2hlY2sge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIE1hdC1oaW50XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGhpbnQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogSWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgdGhpcy5hcHBseVJlcXVpcmVkKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fcmVxdWlyZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBBZGQgYSBzdWZmaXggYnV0dG9uIHRoYXQgaXMgYSBsaW5rIHRvIGdpdmVuIGRlc3RpbmF0aW9uXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIG5hdmlnYXRlVG8/OiBhbnlbXSB8IHN0cmluZyB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBJZiBwcm92aWRlZCBjYXVzZSBhIG5ldyBjbGVhciBidXR0b24gdG8gYXBwZWFyXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGNsZWFyTGFiZWw/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIHNob3cgdGhlIHNlYXJjaCBpY29uXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHNob3dJY29uID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEljb24gbmFtZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpY29uID0gJ3NlYXJjaCc7XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB0byBjdXN0b21pemUgdGhlIHJlbmRlcmluZyBvZiB0aGUgc2VsZWN0ZWQgaXRlbSBhcyB0ZXh0IGluIGlucHV0XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGRpc3BsYXlXaXRoPzogKGl0ZW06IFYgfCBudWxsKSA9PiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0IHRoZSBzZWxlY3RlZCB2YWx1ZSB3aGVuZXZlciBpdCBjaGFuZ2VzXG4gICAgICovXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFYgfCBudWxsPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBpbnRlcm5hbCBpbnB1dCBpcyBibHVycmVkXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogQ29udGFpbnMgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gZm9yIGN1cnJlbnQgc2VsZWN0aW9uIEFORCBzZWFyY2hlZCB0ZXh0IChmb3IgYXV0b2NvbXBsZXRlKVxuICAgICAqXG4gICAgICogSXQgaXMgKipub3QqKiBuZWNlc3NhcmlseSBgViB8IG51bGxgLlxuICAgICAqXG4gICAgICogLSBOYXR1cmFsU2VsZWN0Q29tcG9uZW50OiBgc3RyaW5nIHwgViB8IG51bGxgLiBXZSBhbGxvdyBgc3RyaW5nYFxuICAgICAqICAgb25seSB3aGVuIGBvcHRpb25SZXF1aXJlZGAgaXMgZmFsc2UsIHNvIG1vc3Qgb2YgdGhlIHRpbWUgaXQgaXMgYFYgfCBudWxsYC5cbiAgICAgKiAtIE5hdHVyYWxTZWxlY3RIaWVyYXJjaGljQ29tcG9uZW50OiBgc3RyaW5nIHwgbnVsbGAuXG4gICAgICogLSBOYXR1cmFsU2VsZWN0RW51bUNvbXBvbmVudDogYFYgfCBudWxsYC5cbiAgICAgKlxuICAgICAqIEluIG5hdHVyYWwtc2VsZWN0IGNvbnRleHQsIHdlIHVzZSBwcmlzdGluZSBhbmQgZGlydHkgdG8gaWRlbnRpZnkgaWYgdGhlIGRpc3BsYXllZCB2YWx1ZSBpcyBzZWFyY2ggb3IgY29tbWl0dGVkIG1vZGVsIDpcbiAgICAgKiAgLSBQcmlzdGluZSBzdGF0dXMgKHVuY2hhbmdlZCB2YWx1ZSkgbWVhbnMgdGhlIG1vZGVsIGlzIGRpc3BsYXllZCBhbmQgcHJvcGFnYXRlZCA9IHRoZSBzZWxlY3Rpb24gaXMgY29tbWl0dGVkXG4gICAgICogIC0gRGlydHkgc3RhdHVzIChjaGFuZ2VkIHZhbHVlKSBtZWFucyB3ZSBhcmUgaW4gc2VhcmNoL2F1dG9jb21wbGV0ZSBtb2RlXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGludGVybmFsQ3RybCA9IG5ldyBGb3JtQ29udHJvbDxJIHwgbnVsbD4obnVsbCk7XG5cbiAgICAvKipcbiAgICAgKiBJbnRlcmZhY2Ugd2l0aCBDb250cm9sVmFsdWVBY2Nlc3NvclxuICAgICAqIE5vdGlmaWVzIHBhcmVudCBtb2RlbCAvIGZvcm0gY29udHJvbGxlclxuICAgICAqL1xuICAgIHB1YmxpYyBvbkNoYW5nZT86IChpdGVtOiBWIHwgbnVsbCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEludGVyZmFjZSB3aXRoIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gICAgICogTm90aWZpZXMgcGFyZW50IG1vZGVsIC8gZm9ybSBjb250cm9sbGVyXG4gICAgICovXG4gICAgcHVibGljIG9uVG91Y2hlZD86ICgpID0+IHZvaWQ7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgbWF0Y2hlcjogRXh0ZXJuYWxGb3JtQ29udHJvbE1hdGNoZXI8ViwgST47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsKSB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1hdGNoZXIgPSBuZXcgRXh0ZXJuYWxGb3JtQ29udHJvbE1hdGNoZXIodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5UmVxdWlyZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBJIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmludGVybmFsQ3RybC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpc1JlYWN0aXZlID0gdGhpcy5uZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbERpcmVjdGl2ZSB8fCB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sTmFtZTtcbiAgICAgICAgaWYgKGlzUmVhY3RpdmUgJiYgdHlwZW9mIHRoaXMuX3JlcXVpcmVkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCc8bmF0dXJhbC1zZWxlY3QtKj4gc2hvdWxkIG5vdCBiZSB1c2VkIGFzIFJlYWN0aXZlRm9ybSBhbmQgd2l0aCB0aGUgW3JlcXVpcmVkXSBhdHRyaWJ1dGUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHZhbHVlIGNhbiBiZSBjaGFuZ2VkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGRpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIGRpc2FibGVkID8gdGhpcy5pbnRlcm5hbEN0cmwuZGlzYWJsZSgpIDogdGhpcy5pbnRlcm5hbEN0cmwuZW5hYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChpdGVtOiBWIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIGFic3RyYWN0IGdldERpc3BsYXlGbigpOiAoaXRlbTogViB8IG51bGwpID0+IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIENvbW1pdCB0aGUgbW9kZWwgdG8gbnVsbFxuICAgICAqIEVtaXQgYW5kIGV2ZW50IHRvIHVwZGF0ZSB0aGUgbW9kZWxcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxDdHJsLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZVZhbHVlKG51bGwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIGlucHV0IGlzIGRpcnR5IChzZWFyY2ggcnVubmluZykgcmVzdG9yZSB0byBtb2RlbCB2YWx1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBvbkJsdXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudG91Y2goKTtcbiAgICAgICAgdGhpcy5ibHVyLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21taXQgdGhlIG1vZGVsIGNoYW5nZVxuICAgICAqL1xuICAgIHB1YmxpYyBwcm9wYWdhdGVWYWx1ZSh2YWx1ZTogViB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgLy8gYmVmb3JlIHNlbGVjdGlvbkNoYW5nZSB0byBhbGxvdyBmb3JtQ29udHJvbCB0byB1cGRhdGUgYmVmb3JlIGNoYW5nZSBpcyBlZmZlY3RpdmVseSBlbWl0dGVkXG4gICAgICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dDbGVhckJ1dHRvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxDdHJsPy5lbmFibGVkICYmICEhdGhpcy5jbGVhckxhYmVsICYmICEhdGhpcy5pbnRlcm5hbEN0cmwudmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHRvdWNoKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5vblRvdWNoZWQpIHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzUmVxdWlyZWRFcnJvcigpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMubmdDb250cm9sPy5jb250cm9sID8gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wgOiB0aGlzLmludGVybmFsQ3RybDtcblxuICAgICAgICByZXR1cm4gY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcHBseSBWYWxpZGF0b3JzLnJlcXVpcmVkIG9uIHRoZSBpbnRlcm5hbCBmb3JtLCBiYXNlZCBvbiBuZ0NvbnRyb2wgb3IgW3JlcXVpcmVkXSBhdHRyaWJ1dGUsIGdpdmluZyBwcmlvcml0eSB0byBhdHRyaWJ1dGUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBhcHBseVJlcXVpcmVkKCk6IHZvaWQge1xuICAgICAgICAvLyBSZXF1aXJlZCBzdGF0dXMgb24gcGFyZW50IHZhbGlkYXRvclxuICAgICAgICBjb25zdCBvdXRlclJlcXVpcmVkU3RhdHVzID0gdGhpcz8ubmdDb250cm9sPy5jb250cm9sPy52YWxpZGF0b3I/Lih7fSBhcyBBYnN0cmFjdENvbnRyb2wpPy5yZXF1aXJlZDtcblxuICAgICAgICAvLyBXYW50ZWQgcmVxdWlyZWQgc3RhdHVzLCBnaXZpbmcgcHJpb3JpdHkgdG8gdGVtcGxhdGVcbiAgICAgICAgY29uc3QgbmV3UmVxdWlyZWRTdGF0dXMgPSB0eXBlb2YgdGhpcy5fcmVxdWlyZWQgIT09ICd1bmRlZmluZWQnID8gdGhpcy5fcmVxdWlyZWQgOiBvdXRlclJlcXVpcmVkU3RhdHVzO1xuXG4gICAgICAgIC8vIEFjdHVhbCBpbnRlcm5hbCB2YWxpZGF0aW9uIHN0YXR1c1xuICAgICAgICBjb25zdCBjdXJyZW50UmVxdWlyZWRTdGF0dXMgPSB0aGlzLmludGVybmFsQ3RybD8udmFsaWRhdG9yPy4oe30gYXMgQWJzdHJhY3RDb250cm9sKT8ucmVxdWlyZWQ7XG5cbiAgICAgICAgLy8gSWYgd2FudGVkIHN0YXR1cyBpcyBzaW1pbGFyIHRvIGFjdHVhbCBzdGF0dXMsIHN0b3AgZXZlcnl0aGluZ1xuICAgICAgICBpZiAoY3VycmVudFJlcXVpcmVkU3RhdHVzID09PSBuZXdSZXF1aXJlZFN0YXR1cykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQXBwbHkgb25seSBpZiBjaGFuZ2VkXG4gICAgICAgIGlmIChuZXdSZXF1aXJlZFN0YXR1cykge1xuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbEN0cmwuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxDdHJsLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbnRlcm5hbEN0cmwudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlbGVjdC9hYnN0cmFjdC1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBQyxTQUFTLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFHSCxXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7O0FBRXpEOzs7OztHQUtHO0FBQ0gsTUFBTSwwQkFBaUMsU0FBUSxpQkFBaUI7SUFDeEI7SUFBcEMsWUFBb0MsU0FBK0I7UUFDL0QsS0FBSyxFQUFFLENBQUM7UUFEd0IsY0FBUyxHQUFULFNBQVMsQ0FBc0I7SUFFbkUsQ0FBQztJQUVlLFlBQVk7UUFDeEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ3RGLElBQUksWUFBWSxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0o7QUFHRCxNQUFNLE9BQWdCLGNBQWM7SUFDaEIsV0FBVyxDQUFVO0lBRXJDOztPQUVHO0lB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QyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1FBRXZHLG9DQUFvQztRQUNwQyxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBcUIsQ0FBQyxFQUFFLFFBQVEsQ0FBQztRQUU5RixnRUFBZ0U7UUFDaEUsSUFBSSxxQkFBcUIsS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1lBQzlDLE9BQU87UUFDWCxDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekQsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hDLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDL0MsQ0FBQzt1R0FoTmlCLGNBQWM7MkZBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEbkMsU0FBUzttQkFBQyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUM7d0RBRVQsV0FBVztzQkFBMUIsS0FBSztnQkFLVSxJQUFJO3NCQUFuQixLQUFLO2dCQU1LLFFBQVE7c0JBRGxCLEtBQUs7Z0JBZVUsVUFBVTtzQkFBekIsS0FBSztnQkFLVSxVQUFVO3NCQUF6QixLQUFLO2dCQUtVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBS1UsSUFBSTtzQkFBbkIsS0FBSztnQkFLVSxXQUFXO3NCQUExQixLQUFLO2dCQUtvQixlQUFlO3NCQUF4QyxNQUFNO2dCQU1tQixJQUFJO3NCQUE3QixNQUFNO2dCQThESSxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge0RpcmVjdGl2ZSwgRG9DaGVjaywgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBGb3JtQ29udHJvbCxcbiAgICBGb3JtQ29udHJvbERpcmVjdGl2ZSxcbiAgICBGb3JtQ29udHJvbE5hbWUsXG4gICAgTmdDb250cm9sLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7RXJyb3JTdGF0ZU1hdGNoZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG4vKipcbiAqIFRoaXMgd2lsbCBjb21wbGV0ZWx5IGlnbm9yZSBpbnRlcm5hbCBmb3JtQ29udHJvbCBhbmQgaW5zdGVhZCB1c2UgdGhlIG9uZSBmcm9tIHRoZSBjb21wb25lbnRcbiAqIHdoaWNoIGNvbWVzIGZyb20gb3V0c2lkZSBvZiB0aGlzIGNvbXBvbmVudC4gVGhpcyBiYXNpY2FsbHkgYWxsb3dzIHVzIHRvICoqbm90KiogZGVwZW5kIG9uXG4gKiB0b3VjaGVkIHN0YXR1cyBwcm9wYWdhdGlvbiBiZXR3ZWVuIG91dHNpZGUgYW5kIGluc2lkZSB3b3JsZCwgYW5kIHRodXMgZ2V0IHJpZCBvZiBvdXIgbGVnYWN5XG4gKiBjdXN0b20gRm9ybUNvbnRyb2wgY2xhc3MgKFwiTmF0dXJhbEZvcm1Db250cm9sXCIpLlxuICovXG5jbGFzcyBFeHRlcm5hbEZvcm1Db250cm9sTWF0Y2hlcjxULCBJPiBleHRlbmRzIEVycm9yU3RhdGVNYXRjaGVyIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb21wb25lbnQ6IEFic3RyYWN0U2VsZWN0PFQsIEk+KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGlzRXJyb3JTdGF0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZXh0ZXJuYWxDdHJsID0gdGhpcy5jb21wb25lbnQubmdDb250cm9sPy5jb250cm9sIHx8IHRoaXMuY29tcG9uZW50LmludGVybmFsQ3RybDtcbiAgICAgICAgaWYgKGV4dGVybmFsQ3RybCkge1xuICAgICAgICAgICAgcmV0dXJuICEhKGV4dGVybmFsQ3RybC5lcnJvcnMgJiYgKGV4dGVybmFsQ3RybC50b3VjaGVkIHx8IGV4dGVybmFsQ3RybC5kaXJ0eSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7c3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RTZWxlY3Q8ViwgST4gaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBEb0NoZWNrIHtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBNYXQtaGludFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoaW50OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIElmIHRoZSBmaWVsZCBpcyByZXF1aXJlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuYXBwbHlSZXF1aXJlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX3JlcXVpcmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQWRkIGEgc3VmZml4IGJ1dHRvbiB0aGF0IGlzIGEgbGluayB0byBnaXZlbiBkZXN0aW5hdGlvblxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBuYXZpZ2F0ZVRvPzogYW55W10gfCBzdHJpbmcgfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogSWYgcHJvdmlkZWQgY2F1c2UgYSBuZXcgY2xlYXIgYnV0dG9uIHRvIGFwcGVhclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjbGVhckxhYmVsPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBzaG93IHRoZSBzZWFyY2ggaWNvblxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93SWNvbiA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBJY29uIG5hbWVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaWNvbiA9ICdzZWFyY2gnO1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdG8gY3VzdG9taXplIHRoZSByZW5kZXJpbmcgb2YgdGhlIHNlbGVjdGVkIGl0ZW0gYXMgdGV4dCBpbiBpbnB1dFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5V2l0aD86IChpdGVtOiBWIHwgbnVsbCkgPT4gc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRW1pdCB0aGUgc2VsZWN0ZWQgdmFsdWUgd2hlbmV2ZXIgaXQgY2hhbmdlc1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxWIHwgbnVsbD4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gaW50ZXJuYWwgaW5wdXQgaXMgYmx1cnJlZFxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIENvbnRhaW5zIGludGVybmFsIHJlcHJlc2VudGF0aW9uIGZvciBjdXJyZW50IHNlbGVjdGlvbiBBTkQgc2VhcmNoZWQgdGV4dCAoZm9yIGF1dG9jb21wbGV0ZSlcbiAgICAgKlxuICAgICAqIEl0IGlzICoqbm90KiogbmVjZXNzYXJpbHkgYFYgfCBudWxsYC5cbiAgICAgKlxuICAgICAqIC0gTmF0dXJhbFNlbGVjdENvbXBvbmVudDogYHN0cmluZyB8IFYgfCBudWxsYC4gV2UgYWxsb3cgYHN0cmluZ2BcbiAgICAgKiAgIG9ubHkgd2hlbiBgb3B0aW9uUmVxdWlyZWRgIGlzIGZhbHNlLCBzbyBtb3N0IG9mIHRoZSB0aW1lIGl0IGlzIGBWIHwgbnVsbGAuXG4gICAgICogLSBOYXR1cmFsU2VsZWN0SGllcmFyY2hpY0NvbXBvbmVudDogYHN0cmluZyB8IG51bGxgLlxuICAgICAqIC0gTmF0dXJhbFNlbGVjdEVudW1Db21wb25lbnQ6IGBWIHwgbnVsbGAuXG4gICAgICpcbiAgICAgKiBJbiBuYXR1cmFsLXNlbGVjdCBjb250ZXh0LCB3ZSB1c2UgcHJpc3RpbmUgYW5kIGRpcnR5IHRvIGlkZW50aWZ5IGlmIHRoZSBkaXNwbGF5ZWQgdmFsdWUgaXMgc2VhcmNoIG9yIGNvbW1pdHRlZCBtb2RlbCA6XG4gICAgICogIC0gUHJpc3RpbmUgc3RhdHVzICh1bmNoYW5nZWQgdmFsdWUpIG1lYW5zIHRoZSBtb2RlbCBpcyBkaXNwbGF5ZWQgYW5kIHByb3BhZ2F0ZWQgPSB0aGUgc2VsZWN0aW9uIGlzIGNvbW1pdHRlZFxuICAgICAqICAtIERpcnR5IHN0YXR1cyAoY2hhbmdlZCB2YWx1ZSkgbWVhbnMgd2UgYXJlIGluIHNlYXJjaC9hdXRvY29tcGxldGUgbW9kZVxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpbnRlcm5hbEN0cmwgPSBuZXcgRm9ybUNvbnRyb2w8SSB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqXG4gICAgICogSW50ZXJmYWNlIHdpdGggQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgICAgKiBOb3RpZmllcyBwYXJlbnQgbW9kZWwgLyBmb3JtIGNvbnRyb2xsZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgb25DaGFuZ2U/OiAoaXRlbTogViB8IG51bGwpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBJbnRlcmZhY2Ugd2l0aCBDb250cm9sVmFsdWVBY2Nlc3NvclxuICAgICAqIE5vdGlmaWVzIHBhcmVudCBtb2RlbCAvIGZvcm0gY29udHJvbGxlclxuICAgICAqL1xuICAgIHB1YmxpYyBvblRvdWNoZWQ/OiAoKSA9PiB2b2lkO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IG1hdGNoZXI6IEV4dGVybmFsRm9ybUNvbnRyb2xNYXRjaGVyPFYsIEk+O1xuICAgIHB1YmxpYyByZWFkb25seSBuZ0NvbnRyb2wgPSBpbmplY3QoTmdDb250cm9sLCB7b3B0aW9uYWw6IHRydWUsIHNlbGY6IHRydWV9KTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubWF0Y2hlciA9IG5ldyBFeHRlcm5hbEZvcm1Db250cm9sTWF0Y2hlcih0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlSZXF1aXJlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IEkgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxDdHJsLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlzUmVhY3RpdmUgPSB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sRGlyZWN0aXZlIHx8IHRoaXMubmdDb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2xOYW1lO1xuICAgICAgICBpZiAoaXNSZWFjdGl2ZSAmJiB0eXBlb2YgdGhpcy5fcmVxdWlyZWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJzxuYXR1cmFsLXNlbGVjdC0qPiBzaG91bGQgbm90IGJlIHVzZWQgYXMgUmVhY3RpdmVGb3JtIGFuZCB3aXRoIHRoZSBbcmVxdWlyZWRdIGF0dHJpYnV0ZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgdmFsdWUgY2FuIGJlIGNoYW5nZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgZGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgZGlzYWJsZWQgPyB0aGlzLmludGVybmFsQ3RybC5kaXNhYmxlKCkgOiB0aGlzLmludGVybmFsQ3RybC5lbmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGl0ZW06IFYgfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGlzcGxheUZuKCk6IChpdGVtOiBWIHwgbnVsbCkgPT4gc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQ29tbWl0IHRoZSBtb2RlbCB0byBudWxsXG4gICAgICogRW1pdCBhbmQgZXZlbnQgdG8gdXBkYXRlIHRoZSBtb2RlbFxuICAgICAqL1xuICAgIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbEN0cmwuc2V0VmFsdWUobnVsbCk7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVmFsdWUobnVsbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWYgaW5wdXQgaXMgZGlydHkgKHNlYXJjaCBydW5uaW5nKSByZXN0b3JlIHRvIG1vZGVsIHZhbHVlXG4gICAgICovXG4gICAgcHVibGljIG9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b3VjaCgpO1xuICAgICAgICB0aGlzLmJsdXIuZW1pdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbW1pdCB0aGUgbW9kZWwgY2hhbmdlXG4gICAgICovXG4gICAgcHVibGljIHByb3BhZ2F0ZVZhbHVlKHZhbHVlOiBWIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICAvLyBiZWZvcmUgc2VsZWN0aW9uQ2hhbmdlIHRvIGFsbG93IGZvcm1Db250cm9sIHRvIHVwZGF0ZSBiZWZvcmUgY2hhbmdlIGlzIGVmZmVjdGl2ZWx5IGVtaXR0ZWRcbiAgICAgICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvd0NsZWFyQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbEN0cmw/LmVuYWJsZWQgJiYgISF0aGlzLmNsZWFyTGFiZWwgJiYgISF0aGlzLmludGVybmFsQ3RybC52YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG91Y2goKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYXNSZXF1aXJlZEVycm9yKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wgPyB0aGlzLm5nQ29udHJvbD8uY29udHJvbCA6IHRoaXMuaW50ZXJuYWxDdHJsO1xuXG4gICAgICAgIHJldHVybiBjb250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwcGx5IFZhbGlkYXRvcnMucmVxdWlyZWQgb24gdGhlIGludGVybmFsIGZvcm0sIGJhc2VkIG9uIG5nQ29udHJvbCBvciBbcmVxdWlyZWRdIGF0dHJpYnV0ZSwgZ2l2aW5nIHByaW9yaXR5IHRvIGF0dHJpYnV0ZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGFwcGx5UmVxdWlyZWQoKTogdm9pZCB7XG4gICAgICAgIC8vIFJlcXVpcmVkIHN0YXR1cyBvbiBwYXJlbnQgdmFsaWRhdG9yXG4gICAgICAgIGNvbnN0IG91dGVyUmVxdWlyZWRTdGF0dXMgPSB0aGlzPy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbGlkYXRvcj8uKHt9IGFzIEFic3RyYWN0Q29udHJvbCk/LnJlcXVpcmVkO1xuXG4gICAgICAgIC8vIFdhbnRlZCByZXF1aXJlZCBzdGF0dXMsIGdpdmluZyBwcmlvcml0eSB0byB0ZW1wbGF0ZVxuICAgICAgICBjb25zdCBuZXdSZXF1aXJlZFN0YXR1cyA9IHR5cGVvZiB0aGlzLl9yZXF1aXJlZCAhPT0gJ3VuZGVmaW5lZCcgPyB0aGlzLl9yZXF1aXJlZCA6IG91dGVyUmVxdWlyZWRTdGF0dXM7XG5cbiAgICAgICAgLy8gQWN0dWFsIGludGVybmFsIHZhbGlkYXRpb24gc3RhdHVzXG4gICAgICAgIGNvbnN0IGN1cnJlbnRSZXF1aXJlZFN0YXR1cyA9IHRoaXMuaW50ZXJuYWxDdHJsPy52YWxpZGF0b3I/Lih7fSBhcyBBYnN0cmFjdENvbnRyb2wpPy5yZXF1aXJlZDtcblxuICAgICAgICAvLyBJZiB3YW50ZWQgc3RhdHVzIGlzIHNpbWlsYXIgdG8gYWN0dWFsIHN0YXR1cywgc3RvcCBldmVyeXRoaW5nXG4gICAgICAgIGlmIChjdXJyZW50UmVxdWlyZWRTdGF0dXMgPT09IG5ld1JlcXVpcmVkU3RhdHVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBcHBseSBvbmx5IGlmIGNoYW5nZWRcbiAgICAgICAgaWYgKG5ld1JlcXVpcmVkU3RhdHVzKSB7XG4gICAgICAgICAgICB0aGlzLmludGVybmFsQ3RybC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbEN0cmwuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmludGVybmFsQ3RybC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Component,
|
|
2
|
-
import { FormsModule,
|
|
1
|
+
import { Component, inject, Input } from '@angular/core';
|
|
2
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
3
|
import { NaturalEnumService } from '../../../services/enum.service';
|
|
4
4
|
import { AbstractSelect } from '../abstract-select.component';
|
|
5
5
|
import { MatOptionModule } from '@angular/material/core';
|
|
@@ -31,10 +31,6 @@ export class NaturalSelectEnumComponent extends AbstractSelect {
|
|
|
31
31
|
*/
|
|
32
32
|
multiple = false;
|
|
33
33
|
items;
|
|
34
|
-
constructor() {
|
|
35
|
-
const ngControl = inject(NgControl, { optional: true, self: true });
|
|
36
|
-
super(ngControl);
|
|
37
|
-
}
|
|
38
34
|
ngOnInit() {
|
|
39
35
|
super.ngOnInit();
|
|
40
36
|
this.items = this.enumService.get(this.enumName);
|
|
@@ -42,13 +38,13 @@ export class NaturalSelectEnumComponent extends AbstractSelect {
|
|
|
42
38
|
getDisplayFn() {
|
|
43
39
|
throw new Error('This should never be called');
|
|
44
40
|
}
|
|
45
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSelectEnumComponent, deps:
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSelectEnumComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
46
42
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: NaturalSelectEnumComponent, isStandalone: true, selector: "natural-select-enum", inputs: { enumName: "enumName", nullLabel: "nullLabel", optionDisabled: "optionDisabled", multiple: "multiple" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n <mat-select\n (selectionChange)=\"propagateValue($event.value)\"\n [formControl]=\"internalCtrl\"\n (blur)=\"onBlur()\"\n [errorStateMatcher]=\"matcher\"\n [multiple]=\"multiple\"\n >\n @if (nullLabel) {\n <mat-option [value]=\"null\">{{ nullLabel }}</mat-option>\n }\n @for (item of items | async; track item.value) {\n <mat-option [value]=\"item.value\" [disabled]=\"optionDisabled ? optionDisabled(item) : false\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n\n @if (hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n @if (hasRequiredError()) {\n <mat-error i18n>Ce champ est requis</mat-error>\n }\n</mat-form-field>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatOptionModule }] });
|
|
47
43
|
}
|
|
48
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSelectEnumComponent, decorators: [{
|
|
49
45
|
type: Component,
|
|
50
46
|
args: [{ selector: 'natural-select-enum', standalone: true, imports: [MatFormFieldModule, MatSelectModule, FormsModule, ReactiveFormsModule, CommonModule, MatOptionModule], template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n <mat-select\n (selectionChange)=\"propagateValue($event.value)\"\n [formControl]=\"internalCtrl\"\n (blur)=\"onBlur()\"\n [errorStateMatcher]=\"matcher\"\n [multiple]=\"multiple\"\n >\n @if (nullLabel) {\n <mat-option [value]=\"null\">{{ nullLabel }}</mat-option>\n }\n @for (item of items | async; track item.value) {\n <mat-option [value]=\"item.value\" [disabled]=\"optionDisabled ? optionDisabled(item) : false\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n\n @if (hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n @if (hasRequiredError()) {\n <mat-error i18n>Ce champ est requis</mat-error>\n }\n</mat-form-field>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
|
|
51
|
-
}],
|
|
47
|
+
}], propDecorators: { enumName: [{
|
|
52
48
|
type: Input,
|
|
53
49
|
args: [{ required: true }]
|
|
54
50
|
}], nullLabel: [{
|
|
@@ -58,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
|
|
|
58
54
|
}], multiple: [{
|
|
59
55
|
type: Input
|
|
60
56
|
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWVudW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2VsZWN0L3NlbGVjdC1lbnVtL3NlbGVjdC1lbnVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlbGVjdC9zZWxlY3QtZW51bS9zZWxlY3QtZW51bS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUF1QixXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RixPQUFPLEVBQVEsa0JBQWtCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7QUFXaEUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGNBQW9CO0lBQy9DLFdBQVcsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUUxRDs7T0FFRztJQUM2QixRQUFRLENBQVU7SUFFbEQ7O09BRUc7SUFDYSxTQUFTLENBQVU7SUFFbkM7O09BRUc7SUFDYSxjQUFjLENBQTRCO0lBRTFEOztPQUVHO0lBQ2EsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUUxQixLQUFLLENBQXVCO0lBRW5CLFFBQVE7UUFDcEIsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTSxZQUFZO1FBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ25ELENBQUM7dUdBaENRLDBCQUEwQjsyRkFBMUIsMEJBQTBCLHdOQ25CdkMsNjBCQTJCQSxvR0RWYyxrQkFBa0IsK2RBQUUsZUFBZSxtckJBQUUsV0FBVyxzSUFBRSxtQkFBbUIsaU5BQUUsWUFBWSxtRkFBRSxlQUFlOzsyRkFFckcsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNJLHFCQUFxQixjQUduQixJQUFJLFdBQ1AsQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxlQUFlLENBQUM7OEJBUS9FLFFBQVE7c0JBQXZDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUtQLFNBQVM7c0JBQXhCLEtBQUs7Z0JBS1UsY0FBYztzQkFBN0IsS0FBSztnQkFLVSxRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SUVudW0sIE5hdHVyYWxFbnVtU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZW51bS5zZXJ2aWNlJztcbmltcG9ydCB7QWJzdHJhY3RTZWxlY3R9IGZyb20gJy4uL2Fic3RyYWN0LXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtNYXRPcHRpb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge01hdFNlbGVjdE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcblxudHlwZSBWID0gSUVudW1bJ3ZhbHVlJ10gfCBJRW51bVsndmFsdWUnXVtdO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdHVyYWwtc2VsZWN0LWVudW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtZW51bS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3NlbGVjdC1lbnVtLmNvbXBvbmVudC5zY3NzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtNYXRGb3JtRmllbGRNb2R1bGUsIE1hdFNlbGVjdE1vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIENvbW1vbk1vZHVsZSwgTWF0T3B0aW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFNlbGVjdEVudW1Db21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFNlbGVjdDxWLCBWPiBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZW51bVNlcnZpY2UgPSBpbmplY3QoTmF0dXJhbEVudW1TZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBlbnVtIHR5cGUsIGVnOiBgXCJBY3Rpb25TdGF0dXNcImBcbiAgICAgKi9cbiAgICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgcHVibGljIGVudW1OYW1lITogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSWYgZ2l2ZW4gYW4gZXh0cmEgb3B0aW9uIGlzIGFkZGVkIHRvIHNlbGVjdCBgbnVsbGAgd2l0aCBnaXZlbiBsYWJlbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBudWxsTGFiZWw/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbnMgdGhhdCByZWNlaXZlcyBhbiBlbnVtIHZhbHVlIGFuZCByZXR1cm5zIHdoZXRoZXIgdGhhdCB2YWx1ZSBpcyBkaXNhYmxlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBvcHRpb25EaXNhYmxlZD86IChpdGVtOiBJRW51bSkgPT4gYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHVzZXIgc2hvdWxkIGJlIGFsbG93ZWQgdG8gc2VsZWN0IG11bHRpcGxlIG9wdGlvbnNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBpdGVtcz86IE9ic2VydmFibGU8SUVudW1bXT47XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLmVudW1TZXJ2aWNlLmdldCh0aGlzLmVudW1OYW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGlzcGxheUZuKCk6IChpdGVtOiBWIHwgbnVsbCkgPT4gc3RyaW5nIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGlzIHNob3VsZCBuZXZlciBiZSBjYWxsZWQnKTtcbiAgICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1sYWJlbD57eyBwbGFjZWhvbGRlciB9fTwvbWF0LWxhYmVsPlxuICAgIDxtYXQtc2VsZWN0XG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwicHJvcGFnYXRlVmFsdWUoJGV2ZW50LnZhbHVlKVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJpbnRlcm5hbEN0cmxcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJtYXRjaGVyXCJcbiAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICA+XG4gICAgICAgIEBpZiAobnVsbExhYmVsKSB7XG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibnVsbFwiPnt7IG51bGxMYWJlbCB9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgfVxuICAgICAgICBAZm9yIChpdGVtIG9mIGl0ZW1zIHwgYXN5bmM7IHRyYWNrIGl0ZW0udmFsdWUpIHtcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCIgW2Rpc2FibGVkXT1cIm9wdGlvbkRpc2FibGVkID8gb3B0aW9uRGlzYWJsZWQoaXRlbSkgOiBmYWxzZVwiPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICB9XG4gICAgPC9tYXQtc2VsZWN0PlxuXG4gICAgQGlmIChoaW50KSB7XG4gICAgICAgIDxtYXQtaGludD57eyBoaW50IH19PC9tYXQtaGludD5cbiAgICB9XG5cbiAgICBAaWYgKGhhc1JlcXVpcmVkRXJyb3IoKSkge1xuICAgICAgICA8bWF0LWVycm9yIGkxOG4+Q2UgY2hhbXAgZXN0IHJlcXVpczwvbWF0LWVycm9yPlxuICAgIH1cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, inject, Input } from '@angular/core';
|
|
2
|
-
import { FormsModule,
|
|
2
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
3
|
import { NaturalHierarchicSelectorDialogService, } from '../../hierarchic-selector/public-api';
|
|
4
4
|
import { AbstractSelect } from '../abstract-select.component';
|
|
5
5
|
import { RouterLink } from '@angular/router';
|
|
@@ -66,10 +66,6 @@ export class NaturalSelectHierarchicComponent extends AbstractSelect {
|
|
|
66
66
|
* times This prevents it.
|
|
67
67
|
*/
|
|
68
68
|
lockOpenDialog = false;
|
|
69
|
-
constructor() {
|
|
70
|
-
const ngControl = inject(NgControl, { optional: true, self: true });
|
|
71
|
-
super(ngControl);
|
|
72
|
-
}
|
|
73
69
|
/**
|
|
74
70
|
* Very important to return something, above all if [select]='displayedValue' attribute value is used
|
|
75
71
|
*/
|
|
@@ -133,7 +129,7 @@ export class NaturalSelectHierarchicComponent extends AbstractSelect {
|
|
|
133
129
|
getSelectKey() {
|
|
134
130
|
return this.config?.find(c => !!c.selectableAtKey)?.selectableAtKey;
|
|
135
131
|
}
|
|
136
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSelectHierarchicComponent, deps:
|
|
132
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSelectHierarchicComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
137
133
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: NaturalSelectHierarchicComponent, isStandalone: true, selector: "natural-select-hierarchic", inputs: { selectLabel: "selectLabel", config: "config", filters: "filters" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n\n <!-- Input for hierarchical selector -->\n <input\n (blur)=\"blur.emit()\"\n (focus)=\"openDialog()\"\n [formControl]=\"internalCtrl\"\n [errorStateMatcher]=\"matcher\"\n aria-label=\"Recherche et s\u00E9lection\"\n i18n-aria-label\n matInput\n />\n\n <!-- Meta data -->\n @if (showIcon) {\n <mat-icon [naturalIcon]=\"icon\" matIconPrefix />\n }\n\n @if (hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n <!-- Clear button -->\n <div matIconSuffix>\n @if (internalCtrl.value && internalCtrl.enabled && !clearLabel) {\n <button\n (click)=\"clear(); $event.stopPropagation()\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"D\u00E9s\u00E9lectionner\"\n >\n <mat-icon naturalIcon=\"close\" />\n </button>\n }\n @if (internalCtrl.value && navigateTo) {\n <button\n [routerLink]=\"navigateTo\"\n (click)=\"$event.stopPropagation()\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"Naviguer vers\"\n >\n <mat-icon naturalIcon=\"open_in_browser\" />\n </button>\n }\n </div>\n\n @if (hasRequiredError()) {\n <mat-error i18n>Ce champ est requis</mat-error>\n }\n</mat-form-field>\n\n<!-- Additional (un)select/(un)link buttons for more visual cohesion with natural-relations --><!-- [clearLabel] and/or [selectLabel] has to be given as attribute input -->\n@if (showSelectButton() || showClearButton()) {\n <div class=\"external-buttons\">\n @if (showSelectButton()) {\n <button (click)=\"openDialog()\" color=\"primary\" mat-flat-button>{{ selectLabel }}</button>\n }\n @if (showClearButton()) {\n <button (click)=\"clear()\" color=\"warn\" mat-button>{{ clearLabel }}</button>\n }\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}:host>*:not(:last-child){margin-bottom:20px}:host .external-buttons{display:flex;flex-direction:row}:host .external-buttons>*:not(:last-child){margin-right:10px}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
|
|
138
134
|
}
|
|
139
135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSelectHierarchicComponent, decorators: [{
|
|
@@ -149,11 +145,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
|
|
|
149
145
|
MatTooltipModule,
|
|
150
146
|
RouterLink,
|
|
151
147
|
], template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n\n <!-- Input for hierarchical selector -->\n <input\n (blur)=\"blur.emit()\"\n (focus)=\"openDialog()\"\n [formControl]=\"internalCtrl\"\n [errorStateMatcher]=\"matcher\"\n aria-label=\"Recherche et s\u00E9lection\"\n i18n-aria-label\n matInput\n />\n\n <!-- Meta data -->\n @if (showIcon) {\n <mat-icon [naturalIcon]=\"icon\" matIconPrefix />\n }\n\n @if (hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n <!-- Clear button -->\n <div matIconSuffix>\n @if (internalCtrl.value && internalCtrl.enabled && !clearLabel) {\n <button\n (click)=\"clear(); $event.stopPropagation()\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"D\u00E9s\u00E9lectionner\"\n >\n <mat-icon naturalIcon=\"close\" />\n </button>\n }\n @if (internalCtrl.value && navigateTo) {\n <button\n [routerLink]=\"navigateTo\"\n (click)=\"$event.stopPropagation()\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"Naviguer vers\"\n >\n <mat-icon naturalIcon=\"open_in_browser\" />\n </button>\n }\n </div>\n\n @if (hasRequiredError()) {\n <mat-error i18n>Ce champ est requis</mat-error>\n }\n</mat-form-field>\n\n<!-- Additional (un)select/(un)link buttons for more visual cohesion with natural-relations --><!-- [clearLabel] and/or [selectLabel] has to be given as attribute input -->\n@if (showSelectButton() || showClearButton()) {\n <div class=\"external-buttons\">\n @if (showSelectButton()) {\n <button (click)=\"openDialog()\" color=\"primary\" mat-flat-button>{{ selectLabel }}</button>\n }\n @if (showClearButton()) {\n <button (click)=\"clear()\" color=\"warn\" mat-button>{{ clearLabel }}</button>\n }\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}:host>*:not(:last-child){margin-bottom:20px}:host .external-buttons{display:flex;flex-direction:row}:host .external-buttons>*:not(:last-child){margin-right:10px}\n"] }]
|
|
152
|
-
}],
|
|
148
|
+
}], propDecorators: { selectLabel: [{
|
|
153
149
|
type: Input
|
|
154
150
|
}], config: [{
|
|
155
151
|
type: Input
|
|
156
152
|
}], filters: [{
|
|
157
153
|
type: Input
|
|
158
154
|
}] } });
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWhpZXJhcmNoaWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2VsZWN0L3NlbGVjdC1oaWVyYXJjaGljL3NlbGVjdC1oaWVyYXJjaGljLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlbGVjdC9zZWxlY3QtaGllcmFyY2hpYy9zZWxlY3QtaGllcmFyY2hpYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUF1QixXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFJakcsT0FBTyxFQUdILHNDQUFzQyxHQUV6QyxNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7O0FBRWhFLFNBQVMsZ0JBQWdCLENBQUMsSUFBb0I7SUFDMUMsSUFBSSxD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O3dCQUNYLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixVQUFVO3FCQUNiO3dEQVdlLFdBQVc7c0JBQTFCLEtBQUs7Z0JBT1UsTUFBTTtzQkFBckIsS0FBSztnQkFLVSxPQUFPO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTmdDb250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01hdERpYWxvZ0NvbmZpZ30gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7TGl0ZXJhbH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHtIaWVyYXJjaGljRmlsdGVyc0NvbmZpZ3VyYXRpb259IGZyb20gJy4uLy4uL2hpZXJhcmNoaWMtc2VsZWN0b3IvY2xhc3Nlcy9oaWVyYXJjaGljLWZpbHRlcnMtY29uZmlndXJhdGlvbic7XG5pbXBvcnQge1xuICAgIEhpZXJhcmNoaWNEaWFsb2dDb25maWcsXG4gICAgTmF0dXJhbEhpZXJhcmNoaWNDb25maWd1cmF0aW9uLFxuICAgIE5hdHVyYWxIaWVyYXJjaGljU2VsZWN0b3JEaWFsb2dTZXJ2aWNlLFxuICAgIE9yZ2FuaXplZE1vZGVsU2VsZWN0aW9uLFxufSBmcm9tICcuLi8uLi9oaWVyYXJjaGljLXNlbGVjdG9yL3B1YmxpYy1hcGknO1xuaW1wb3J0IHtBYnN0cmFjdFNlbGVjdH0gZnJvbSAnLi4vYWJzdHJhY3Qtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQge1JvdXRlckxpbmt9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge01hdFRvb2x0aXBNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge05hdHVyYWxJY29uRGlyZWN0aXZlfSBmcm9tICcuLi8uLi9pY29uL2ljb24uZGlyZWN0aXZlJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01hdElucHV0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge01hdEZvcm1GaWVsZE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5cbmZ1bmN0aW9uIGRlZmF1bHREaXNwbGF5Rm4oaXRlbTogTGl0ZXJhbCB8IG51bGwpOiBzdHJpbmcge1xuICAgIGlmICghaXRlbSkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW0uZnVsbE5hbWUgfHwgaXRlbS5uYW1lIHx8IGl0ZW0uaWJhbiB8fCBpdGVtLmlkIHx8IGl0ZW07XG59XG5cbi8qKlxuICogRGVmYXVsdCB1c2FnZTpcbiAqXG4gKiBgYGBodG1sXG4gKiA8bmF0dXJhbC1zZWxlY3RcbiAqICAgICBbY29uZmlnXT1cIm15Q29uZmlnXCJcbiAqICAgICBbKG5nTW9kZWwpXT1cImFtYXppbmdNb2RlbFwiXG4gKiAgICAgKG5nTW9kZWxDaGFuZ2UpPWFtYXppbmdDaGFuZ2VGbigkZXZlbnQpXG4gKiAvPlxuICogYGBgXG4gKlxuICogYFsobmdNb2RlbCldYCBhbmQgYChuZ01vZGVsQ2hhbmdlKWAgYXJlIG9wdGlvbmFsLlxuICpcbiAqIFBsYWNlaG9sZGVyIDpcbiAqXG4gKiBgYGBodG1sXG4gKiA8bmF0dXJhbC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJhbWF6aW5nIHBsYWNlaG9sZGVyXCIgLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdHVyYWwtc2VsZWN0LWhpZXJhcmNoaWMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtaGllcmFyY2hpYy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3NlbGVjdC1oaWVyYXJjaGljLmNvbXBvbmVudC5zY3NzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIE5hdHVyYWxJY29uRGlyZWN0aXZlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgICAgIFJvdXRlckxpbmssXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFNlbGVjdEhpZXJhcmNoaWNDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0U2VsZWN0PExpdGVyYWwsIHN0cmluZz5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhpZXJhcmNoaWNTZWxlY3RvckRpYWxvZ1NlcnZpY2UgPSBpbmplY3QoTmF0dXJhbEhpZXJhcmNoaWNTZWxlY3RvckRpYWxvZ1NlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICogSWYgcHJvdmlkZWQgY2F1c2UgYSBuZXcgc2VsZWN0IGJ1dHRvbiB0byBhcHBlYXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0TGFiZWw/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBoaWVyYXJjaGljIHJlbGF0aW9uc1xuICAgICAqXG4gICAgICogSXQgc2hvdWxkIGJlIGFuIGFycmF5IHdpdGggYXQgbGVhc3Qgb25lIGVsZW1lbnQgd2l0aCBgc2VsZWN0YWJsZUF0S2V5YCBjb25maWd1cmVkLCBvdGhlcndpc2UgdGhlIHNlbGVjdG9yIHdpbGwgbmV2ZXIgb3Blbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgY29uZmlnOiBOYXR1cmFsSGllcmFyY2hpY0NvbmZpZ3VyYXRpb25bXSB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogRmlsdGVycyBmb3JtYXR0ZWQgZm9yIGhpZXJhcmNoaWMgc2VsZWN0b3JcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgZmlsdGVycz86IEhpZXJhcmNoaWNGaWx0ZXJzQ29uZmlndXJhdGlvbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzZWxlY3RlZCB2YWx1ZSBhcyBhbiBvYmplY3QuIFRoZSBpbnRlcm5hbCB2YWx1ZSBpcyBgaW50ZXJuYWxDdHJsLnZhbHVlYCwgYW5kIHRoYXQgaXMgYSBzdHJpbmcuXG4gICAgICovXG4gICAgcHJpdmF0ZSB2YWx1ZTogTGl0ZXJhbCB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogT24gRmlyZWZveCwgdGhlIGNvbWJpbmF0aW9uIG9mIDxpbnB1dCAoZm9jdXMpPiBldmVudCBhbmQgZGlhbG9nIG9wZW5pbmcgY2F1c2Ugc29tZSBzdHJhbmdlIGJ1ZyB3aGVyZSBmb2N1cyBldmVudCBpcyBjYWxsZWQgbXVsdGlwbGVcbiAgICAgKiB0aW1lcyBUaGlzIHByZXZlbnRzIGl0LlxuICAgICAqL1xuICAgIHByaXZhdGUgbG9ja09wZW5EaWFsb2cgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgY29uc3QgbmdDb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwge29wdGlvbmFsOiB0cnVlLCBzZWxmOiB0cnVlfSk7XG5cbiAgICAgICAgc3VwZXIobmdDb250cm9sKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWZXJ5IGltcG9ydGFudCB0byByZXR1cm4gc29tZXRoaW5nLCBhYm92ZSBhbGwgaWYgW3NlbGVjdF09J2Rpc3BsYXllZFZhbHVlJyBhdHRyaWJ1dGUgdmFsdWUgaXMgdXNlZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXREaXNwbGF5Rm4oKTogKGl0ZW06IExpdGVyYWwgfCBudWxsKSA9PiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5V2l0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheVdpdGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGVmYXVsdERpc3BsYXlGbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPdmVycmlkZSBwYXJlbnQgYmVjYXVzZSBvdXIgaW50ZXJuYWxDdHJsIHN0b3JlIHRoZSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIGFzIHN0cmluZyBpbnN0ZWFkIG9mIHJhdyBMaXRlcmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IExpdGVyYWwgfCBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZSBhcyBMaXRlcmFsO1xuICAgICAgICB0aGlzLmludGVybmFsQ3RybC5zZXRWYWx1ZSh0aGlzLmdldERpc3BsYXlGbigpKHRoaXMudmFsdWUpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbkRpYWxvZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJuYWxDdHJsLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5sb2NrT3BlbkRpYWxvZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0QXRLZXkgPSB0aGlzLmdldFNlbGVjdEtleSgpO1xuICAgICAgICBpZiAoIXNlbGVjdEF0S2V5IHx8ICF0aGlzLmNvbmZpZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sb2NrT3BlbkRpYWxvZyA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMub25Ub3VjaGVkKSB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQ6IE9yZ2FuaXplZE1vZGVsU2VsZWN0aW9uID0ge307XG5cbiAgICAgICAgaWYgKHRoaXMuaW50ZXJuYWxDdHJsLnZhbHVlKSB7XG4gICAgICAgICAgICBzZWxlY3RlZFtzZWxlY3RBdEtleV0gPSBbdGhpcy52YWx1ZV07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBoaWVyYXJjaGljQ29uZmlnOiBIaWVyYXJjaGljRGlhbG9nQ29uZmlnID0ge1xuICAgICAgICAgICAgaGllcmFyY2hpY0NvbmZpZzogdGhpcy5jb25maWcsXG4gICAgICAgICAgICBoaWVyYXJjaGljU2VsZWN0aW9uOiBzZWxlY3RlZCxcbiAgICAgICAgICAgIGhpZXJhcmNoaWNGaWx0ZXJzOiB0aGlzLmZpbHRlcnMsXG4gICAgICAgICAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZGlhbG9nRm9jdXM6IE1hdERpYWxvZ0NvbmZpZyA9IHtyZXN0b3JlRm9jdXM6IGZhbHNlfTtcblxuICAgICAgICB0aGlzLmhpZXJhcmNoaWNTZWxlY3RvckRpYWxvZ1NlcnZpY2VcbiAgICAgICAgICAgIC5vcGVuKGhpZXJhcmNoaWNDb25maWcsIGRpYWxvZ0ZvY3VzKVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2tPcGVuRGlhbG9nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdD8uaGllcmFyY2hpY1NlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSByZXN1bHQuaGllcmFyY2hpY1NlbGVjdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgLy8gRmluZCB0aGUgb25seSBzZWxlY3Rpb24gYW1vbmdzdCBhbGwgcG9zc2libGUga2V5c1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXlXaXRoU2VsZWN0aW9uID0gT2JqZWN0LmtleXMoc2VsZWN0aW9uKS5maW5kKGtleSA9PiBzZWxlY3Rpb25ba2V5XVswXSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpbmdsZVNlbGVjdGlvbiA9IGtleVdpdGhTZWxlY3Rpb24gPyBzZWxlY3Rpb25ba2V5V2l0aFNlbGVjdGlvbl1bMF0gOiBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShzaW5nbGVTZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BhZ2F0ZVZhbHVlKHNpbmdsZVNlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dTZWxlY3RCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhISh0aGlzLmludGVybmFsQ3RybD8uZW5hYmxlZCAmJiB0aGlzLnNlbGVjdExhYmVsICYmIHRoaXMuZ2V0U2VsZWN0S2V5KCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0S2V5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZz8uZmluZChjID0+ICEhYy5zZWxlY3RhYmxlQXRLZXkpPy5zZWxlY3RhYmxlQXRLZXk7XG4gICAgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+e3sgcGxhY2Vob2xkZXIgfX08L21hdC1sYWJlbD5cblxuICAgIDwhLS0gSW5wdXQgZm9yIGhpZXJhcmNoaWNhbCBzZWxlY3RvciAtLT5cbiAgICA8aW5wdXRcbiAgICAgICAgKGJsdXIpPVwiYmx1ci5lbWl0KClcIlxuICAgICAgICAoZm9jdXMpPVwib3BlbkRpYWxvZygpXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImludGVybmFsQ3RybFwiXG4gICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJtYXRjaGVyXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIlJlY2hlcmNoZSBldCBzw6lsZWN0aW9uXCJcbiAgICAgICAgaTE4bi1hcmlhLWxhYmVsXG4gICAgICAgIG1hdElucHV0XG4gICAgLz5cblxuICAgIDwhLS0gTWV0YSBkYXRhIC0tPlxuICAgIEBpZiAoc2hvd0ljb24pIHtcbiAgICAgICAgPG1hdC1pY29uIFtuYXR1cmFsSWNvbl09XCJpY29uXCIgbWF0SWNvblByZWZpeCAvPlxuICAgIH1cblxuICAgIEBpZiAoaGludCkge1xuICAgICAgICA8bWF0LWhpbnQ+e3sgaGludCB9fTwvbWF0LWhpbnQ+XG4gICAgfVxuXG4gICAgPCEtLSBDbGVhciBidXR0b24gLS0+XG4gICAgPGRpdiBtYXRJY29uU3VmZml4PlxuICAgICAgICBAaWYgKGludGVybmFsQ3RybC52YWx1ZSAmJiBpbnRlcm5hbEN0cmwuZW5hYmxlZCAmJiAhY2xlYXJMYWJlbCkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhcigpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIGkxOG4tbWF0VG9vbHRpcFxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJEw6lzw6lsZWN0aW9ubmVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gbmF0dXJhbEljb249XCJjbG9zZVwiIC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGludGVybmFsQ3RybC52YWx1ZSAmJiBuYXZpZ2F0ZVRvKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwibmF2aWdhdGVUb1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgaTE4bi1tYXRUb29sdGlwXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIk5hdmlndWVyIHZlcnNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBuYXR1cmFsSWNvbj1cIm9wZW5faW5fYnJvd3NlclwiIC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChoYXNSZXF1aXJlZEVycm9yKCkpIHtcbiAgICAgICAgPG1hdC1lcnJvciBpMThuPkNlIGNoYW1wIGVzdCByZXF1aXM8L21hdC1lcnJvcj5cbiAgICB9XG48L21hdC1mb3JtLWZpZWxkPlxuXG48IS0tICAgIEFkZGl0aW9uYWwgKHVuKXNlbGVjdC8odW4pbGluayBidXR0b25zIGZvciBtb3JlIHZpc3VhbCBjb2hlc2lvbiB3aXRoIG5hdHVyYWwtcmVsYXRpb25zIC0tPjwhLS0gW2NsZWFyTGFiZWxdIGFuZC9vciBbc2VsZWN0TGFiZWxdIGhhcyB0byBiZSBnaXZlbiBhcyBhdHRyaWJ1dGUgaW5wdXQgLS0+XG5AaWYgKHNob3dTZWxlY3RCdXR0b24oKSB8fCBzaG93Q2xlYXJCdXR0b24oKSkge1xuICAgIDxkaXYgY2xhc3M9XCJleHRlcm5hbC1idXR0b25zXCI+XG4gICAgICAgIEBpZiAoc2hvd1NlbGVjdEJ1dHRvbigpKSB7XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJvcGVuRGlhbG9nKClcIiBjb2xvcj1cInByaW1hcnlcIiBtYXQtZmxhdC1idXR0b24+e3sgc2VsZWN0TGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHNob3dDbGVhckJ1dHRvbigpKSB7XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjbGVhcigpXCIgY29sb3I9XCJ3YXJuXCIgbWF0LWJ1dHRvbj57eyBjbGVhckxhYmVsIH19PC9idXR0b24+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWhpZXJhcmNoaWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2VsZWN0L3NlbGVjdC1oaWVyYXJjaGljL3NlbGVjdC1oaWVyYXJjaGljLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlbGVjdC9zZWxlY3QtaGllcmFyY2hpYy9zZWxlY3QtaGllcmFyY2hpYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUF1QixXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUl0RixPQUFPLEVBR0gsc0NBQXNDLEdBRXpDLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7QUFFaEUsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFvQjtJQUMxQyxJQUFJLENBQUMsSUFBSSxF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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0RGlhbG9nQ29uZmlnfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtMaXRlcmFsfSBmcm9tICcuLi8uLi8uLi90eXBlcy90eXBlcyc7XG5pbXBvcnQge0hpZXJhcmNoaWNGaWx0ZXJzQ29uZmlndXJhdGlvbn0gZnJvbSAnLi4vLi4vaGllcmFyY2hpYy1zZWxlY3Rvci9jbGFzc2VzL2hpZXJhcmNoaWMtZmlsdGVycy1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7XG4gICAgSGllcmFyY2hpY0RpYWxvZ0NvbmZpZyxcbiAgICBOYXR1cmFsSGllcmFyY2hpY0NvbmZpZ3VyYXRpb24sXG4gICAgTmF0dXJhbEhpZXJhcmNoaWNTZWxlY3RvckRpYWxvZ1NlcnZpY2UsXG4gICAgT3JnYW5pemVkTW9kZWxTZWxlY3Rpb24sXG59IGZyb20gJy4uLy4uL2hpZXJhcmNoaWMtc2VsZWN0b3IvcHVibGljLWFwaSc7XG5pbXBvcnQge0Fic3RyYWN0U2VsZWN0fSBmcm9tICcuLi9hYnN0cmFjdC1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7Um91dGVyTGlua30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7TWF0VG9vbHRpcE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQge01hdEJ1dHRvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7TmF0dXJhbEljb25EaXJlY3RpdmV9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtNYXRJY29uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TWF0SW5wdXRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcblxuZnVuY3Rpb24gZGVmYXVsdERpc3BsYXlGbihpdGVtOiBMaXRlcmFsIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbS5mdWxsTmFtZSB8fCBpdGVtLm5hbWUgfHwgaXRlbS5pYmFuIHx8IGl0ZW0uaWQgfHwgaXRlbTtcbn1cblxuLyoqXG4gKiBEZWZhdWx0IHVzYWdlOlxuICpcbiAqIGBgYGh0bWxcbiAqIDxuYXR1cmFsLXNlbGVjdFxuICogICAgIFtjb25maWddPVwibXlDb25maWdcIlxuICogICAgIFsobmdNb2RlbCldPVwiYW1hemluZ01vZGVsXCJcbiAqICAgICAobmdNb2RlbENoYW5nZSk9YW1hemluZ0NoYW5nZUZuKCRldmVudClcbiAqIC8+XG4gKiBgYGBcbiAqXG4gKiBgWyhuZ01vZGVsKV1gIGFuZCBgKG5nTW9kZWxDaGFuZ2UpYCBhcmUgb3B0aW9uYWwuXG4gKlxuICogUGxhY2Vob2xkZXIgOlxuICpcbiAqIGBgYGh0bWxcbiAqIDxuYXR1cmFsLXNlbGVjdCBwbGFjZWhvbGRlcj1cImFtYXppbmcgcGxhY2Vob2xkZXJcIiAvPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1zZWxlY3QtaGllcmFyY2hpYycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1oaWVyYXJjaGljLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vc2VsZWN0LWhpZXJhcmNoaWMuY29tcG9uZW50LnNjc3MnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTmF0dXJhbEljb25EaXJlY3RpdmUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICAgICAgUm91dGVyTGluayxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsU2VsZWN0SGllcmFyY2hpY0NvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RTZWxlY3Q8TGl0ZXJhbCwgc3RyaW5nPlxuICAgIGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3Nvclxue1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaGllcmFyY2hpY1NlbGVjdG9yRGlhbG9nU2VydmljZSA9IGluamVjdChOYXR1cmFsSGllcmFyY2hpY1NlbGVjdG9yRGlhbG9nU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiBJZiBwcm92aWRlZCBjYXVzZSBhIG5ldyBzZWxlY3QgYnV0dG9uIHRvIGFwcGVhclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RMYWJlbD86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGhpZXJhcmNoaWMgcmVsYXRpb25zXG4gICAgICpcbiAgICAgKiBJdCBzaG91bGQgYmUgYW4gYXJyYXkgd2l0aCBhdCBsZWFzdCBvbmUgZWxlbWVudCB3aXRoIGBzZWxlY3RhYmxlQXRLZXlgIGNvbmZpZ3VyZWQsIG90aGVyd2lzZSB0aGUgc2VsZWN0b3Igd2lsbCBuZXZlciBvcGVuLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb25maWc6IE5hdHVyYWxIaWVyYXJjaGljQ29uZmlndXJhdGlvbltdIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXJzIGZvcm1hdHRlZCBmb3IgaGllcmFyY2hpYyBzZWxlY3RvclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXJzPzogSGllcmFyY2hpY0ZpbHRlcnNDb25maWd1cmF0aW9uO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHNlbGVjdGVkIHZhbHVlIGFzIGFuIG9iamVjdC4gVGhlIGludGVybmFsIHZhbHVlIGlzIGBpbnRlcm5hbEN0cmwudmFsdWVgLCBhbmQgdGhhdCBpcyBhIHN0cmluZy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHZhbHVlOiBMaXRlcmFsIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBPbiBGaXJlZm94LCB0aGUgY29tYmluYXRpb24gb2YgPGlucHV0IChmb2N1cyk+IGV2ZW50IGFuZCBkaWFsb2cgb3BlbmluZyBjYXVzZSBzb21lIHN0cmFuZ2UgYnVnIHdoZXJlIGZvY3VzIGV2ZW50IGlzIGNhbGxlZCBtdWx0aXBsZVxuICAgICAqIHRpbWVzIFRoaXMgcHJldmVudHMgaXQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBsb2NrT3BlbkRpYWxvZyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVmVyeSBpbXBvcnRhbnQgdG8gcmV0dXJuIHNvbWV0aGluZywgYWJvdmUgYWxsIGlmIFtzZWxlY3RdPSdkaXNwbGF5ZWRWYWx1ZScgYXR0cmlidXRlIHZhbHVlIGlzIHVzZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RGlzcGxheUZuKCk6IChpdGVtOiBMaXRlcmFsIHwgbnVsbCkgPT4gc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheVdpdGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRpc3BsYXlXaXRoO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRlZmF1bHREaXNwbGF5Rm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT3ZlcnJpZGUgcGFyZW50IGJlY2F1c2Ugb3VyIGludGVybmFsQ3RybCBzdG9yZSB0aGUgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBhcyBzdHJpbmcgaW5zdGVhZCBvZiByYXcgTGl0ZXJhbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBMaXRlcmFsIHwgc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWUgYXMgTGl0ZXJhbDtcbiAgICAgICAgdGhpcy5pbnRlcm5hbEN0cmwuc2V0VmFsdWUodGhpcy5nZXREaXNwbGF5Rm4oKSh0aGlzLnZhbHVlKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5EaWFsb2coKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmludGVybmFsQ3RybC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubG9ja09wZW5EaWFsb2cpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlbGVjdEF0S2V5ID0gdGhpcy5nZXRTZWxlY3RLZXkoKTtcbiAgICAgICAgaWYgKCFzZWxlY3RBdEtleSB8fCAhdGhpcy5jb25maWcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubG9ja09wZW5EaWFsb2cgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkOiBPcmdhbml6ZWRNb2RlbFNlbGVjdGlvbiA9IHt9O1xuXG4gICAgICAgIGlmICh0aGlzLmludGVybmFsQ3RybC52YWx1ZSkge1xuICAgICAgICAgICAgc2VsZWN0ZWRbc2VsZWN0QXRLZXldID0gW3RoaXMudmFsdWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaGllcmFyY2hpY0NvbmZpZzogSGllcmFyY2hpY0RpYWxvZ0NvbmZpZyA9IHtcbiAgICAgICAgICAgIGhpZXJhcmNoaWNDb25maWc6IHRoaXMuY29uZmlnLFxuICAgICAgICAgICAgaGllcmFyY2hpY1NlbGVjdGlvbjogc2VsZWN0ZWQsXG4gICAgICAgICAgICBoaWVyYXJjaGljRmlsdGVyczogdGhpcy5maWx0ZXJzLFxuICAgICAgICAgICAgbXVsdGlwbGU6IGZhbHNlLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGRpYWxvZ0ZvY3VzOiBNYXREaWFsb2dDb25maWcgPSB7cmVzdG9yZUZvY3VzOiBmYWxzZX07XG5cbiAgICAgICAgdGhpcy5oaWVyYXJjaGljU2VsZWN0b3JEaWFsb2dTZXJ2aWNlXG4gICAgICAgICAgICAub3BlbihoaWVyYXJjaGljQ29uZmlnLCBkaWFsb2dGb2N1cylcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NrT3BlbkRpYWxvZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ/LmhpZXJhcmNoaWNTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gcmVzdWx0LmhpZXJhcmNoaWNTZWxlY3Rpb247XG4gICAgICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIG9ubHkgc2VsZWN0aW9uIGFtb25nc3QgYWxsIHBvc3NpYmxlIGtleXNcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5V2l0aFNlbGVjdGlvbiA9IE9iamVjdC5rZXlzKHNlbGVjdGlvbikuZmluZChrZXkgPT4gc2VsZWN0aW9uW2tleV1bMF0pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaW5nbGVTZWxlY3Rpb24gPSBrZXlXaXRoU2VsZWN0aW9uID8gc2VsZWN0aW9uW2tleVdpdGhTZWxlY3Rpb25dWzBdIDogbnVsbDtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoc2luZ2xlU2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVWYWx1ZShzaW5nbGVTZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93U2VsZWN0QnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISEodGhpcy5pbnRlcm5hbEN0cmw/LmVuYWJsZWQgJiYgdGhpcy5zZWxlY3RMYWJlbCAmJiB0aGlzLmdldFNlbGVjdEtleSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdEtleSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWc/LmZpbmQoYyA9PiAhIWMuc2VsZWN0YWJsZUF0S2V5KT8uc2VsZWN0YWJsZUF0S2V5O1xuICAgIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWxhYmVsPnt7IHBsYWNlaG9sZGVyIH19PC9tYXQtbGFiZWw+XG5cbiAgICA8IS0tIElucHV0IGZvciBoaWVyYXJjaGljYWwgc2VsZWN0b3IgLS0+XG4gICAgPGlucHV0XG4gICAgICAgIChibHVyKT1cImJsdXIuZW1pdCgpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9wZW5EaWFsb2coKVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJpbnRlcm5hbEN0cmxcIlxuICAgICAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwibWF0Y2hlclwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJSZWNoZXJjaGUgZXQgc8OpbGVjdGlvblwiXG4gICAgICAgIGkxOG4tYXJpYS1sYWJlbFxuICAgICAgICBtYXRJbnB1dFxuICAgIC8+XG5cbiAgICA8IS0tIE1ldGEgZGF0YSAtLT5cbiAgICBAaWYgKHNob3dJY29uKSB7XG4gICAgICAgIDxtYXQtaWNvbiBbbmF0dXJhbEljb25dPVwiaWNvblwiIG1hdEljb25QcmVmaXggLz5cbiAgICB9XG5cbiAgICBAaWYgKGhpbnQpIHtcbiAgICAgICAgPG1hdC1oaW50Pnt7IGhpbnQgfX08L21hdC1oaW50PlxuICAgIH1cblxuICAgIDwhLS0gQ2xlYXIgYnV0dG9uIC0tPlxuICAgIDxkaXYgbWF0SWNvblN1ZmZpeD5cbiAgICAgICAgQGlmIChpbnRlcm5hbEN0cmwudmFsdWUgJiYgaW50ZXJuYWxDdHJsLmVuYWJsZWQgJiYgIWNsZWFyTGFiZWwpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXIoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICBpMThuLW1hdFRvb2x0aXBcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRMOpc8OpbGVjdGlvbm5lclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIG5hdHVyYWxJY29uPVwiY2xvc2VcIiAvPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChpbnRlcm5hbEN0cmwudmFsdWUgJiYgbmF2aWdhdGVUbykge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIm5hdmlnYXRlVG9cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIGkxOG4tbWF0VG9vbHRpcFxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJOYXZpZ3VlciB2ZXJzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gbmF0dXJhbEljb249XCJvcGVuX2luX2Jyb3dzZXJcIiAvPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoaGFzUmVxdWlyZWRFcnJvcigpKSB7XG4gICAgICAgIDxtYXQtZXJyb3IgaTE4bj5DZSBjaGFtcCBlc3QgcmVxdWlzPC9tYXQtZXJyb3I+XG4gICAgfVxuPC9tYXQtZm9ybS1maWVsZD5cblxuPCEtLSAgICBBZGRpdGlvbmFsICh1bilzZWxlY3QvKHVuKWxpbmsgYnV0dG9ucyBmb3IgbW9yZSB2aXN1YWwgY29oZXNpb24gd2l0aCBuYXR1cmFsLXJlbGF0aW9ucyAtLT48IS0tIFtjbGVhckxhYmVsXSBhbmQvb3IgW3NlbGVjdExhYmVsXSBoYXMgdG8gYmUgZ2l2ZW4gYXMgYXR0cmlidXRlIGlucHV0IC0tPlxuQGlmIChzaG93U2VsZWN0QnV0dG9uKCkgfHwgc2hvd0NsZWFyQnV0dG9uKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZXh0ZXJuYWwtYnV0dG9uc1wiPlxuICAgICAgICBAaWYgKHNob3dTZWxlY3RCdXR0b24oKSkge1xuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwib3BlbkRpYWxvZygpXCIgY29sb3I9XCJwcmltYXJ5XCIgbWF0LWZsYXQtYnV0dG9uPnt7IHNlbGVjdExhYmVsIH19PC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChzaG93Q2xlYXJCdXR0b24oKSkge1xuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xlYXIoKVwiIGNvbG9yPVwid2FyblwiIG1hdC1idXR0b24+e3sgY2xlYXJMYWJlbCB9fTwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG4iXX0=
|