@ethlete/cdk 3.19.0 → 3.19.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/CHANGELOG.md +14 -0
- package/esm2022/lib/components/button/directives/button/button.directive.mjs +10 -25
- package/esm2022/lib/components/button/directives/query-button/query-button.directive.mjs +8 -17
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.mjs +7 -11
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.mjs +17 -14
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.mjs +6 -13
- package/esm2022/lib/components/forms/components/error/components/error/error.component.mjs +7 -9
- package/esm2022/lib/components/forms/components/radio/directives/radio/radio.directive.mjs +6 -8
- package/esm2022/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.mjs +14 -18
- package/esm2022/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.mjs +5 -11
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.mjs +6 -8
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.mjs +14 -18
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.mjs +6 -11
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +17 -25
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +20 -24
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +11 -23
- package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +29 -22
- package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.mjs +7 -15
- package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +13 -14
- package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.mjs +9 -3
- package/esm2022/lib/components/forms/components/select/directives/select-field/select-field.directive.mjs +3 -4
- package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.mjs +6 -8
- package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +18 -41
- package/esm2022/lib/components/forms/directives/input/input.directive.mjs +4 -1
- package/esm2022/lib/components/forms/directives/writeable-input/writeable-input.directive.mjs +10 -23
- package/esm2022/lib/components/forms/services/input-state.service.mjs +21 -4
- package/esm2022/lib/components/forms/utils/decorated-form-field.base.mjs +5 -8
- package/esm2022/lib/components/forms/utils/decorated-input.base.mjs +26 -23
- package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +6 -8
- package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.mjs +11 -4
- package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.mjs +9 -3
- package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +4 -1
- package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.mjs +9 -3
- package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs +4 -1
- package/esm2022/lib/components/picture/picture.component.mjs +7 -4
- package/fesm2022/ethlete-cdk.mjs +255 -356
- package/fesm2022/ethlete-cdk.mjs.map +1 -1
- package/lib/components/button/directives/button/button.directive.d.ts +4 -1
- package/lib/components/button/directives/query-button/query-button.directive.d.ts +4 -1
- package/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.d.ts +4 -1
- package/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.d.ts +11 -6
- package/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.d.ts +6 -4
- package/lib/components/forms/components/error/components/error/error.component.d.ts +4 -1
- package/lib/components/forms/components/radio/directives/radio/radio.directive.d.ts +4 -1
- package/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.d.ts +12 -6
- package/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.d.ts +4 -1
- package/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.d.ts +4 -1
- package/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.d.ts +12 -7
- package/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.d.ts +4 -1
- package/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.d.ts +10 -1
- package/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.d.ts +13 -2
- package/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.d.ts +8 -1
- package/lib/components/forms/components/select/components/select/directives/select/select.directive.d.ts +15 -3
- package/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.d.ts +4 -1
- package/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.d.ts +10 -1
- package/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.d.ts +5 -1
- package/lib/components/forms/components/select/directives/select-field/select-field.directive.d.ts +2 -2
- package/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.d.ts +4 -1
- package/lib/components/forms/components/slider/components/slider/slider.component.d.ts +8 -1
- package/lib/components/forms/directives/input/input.directive.d.ts +21 -19
- package/lib/components/forms/directives/writeable-input/writeable-input.directive.d.ts +4 -1
- package/lib/components/forms/services/input-state.service.d.ts +13 -6
- package/lib/components/forms/utils/decorated-form-field.base.d.ts +4 -1
- package/lib/components/forms/utils/decorated-input.base.d.ts +13 -6
- package/lib/components/masonry/components/masonry/masonry.component.d.ts +4 -1
- package/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.d.ts +4 -1
- package/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.d.ts +5 -1
- package/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.d.ts +1 -0
- package/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.d.ts +5 -1
- package/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.d.ts +1 -0
- package/package.json +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { BehaviorSubject, combineLatest, filter, map, Subject } from 'rxjs';
|
|
3
|
+
import { BehaviorSubject, combineLatest, filter, map, Observable, of, Subject, switchMap } from 'rxjs';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class InputStateService {
|
|
6
6
|
constructor() {
|
|
@@ -27,8 +27,25 @@ export class InputStateService {
|
|
|
27
27
|
this.valueIsTruthy = toSignal(this.valueIsTruthy$, { requireSync: true });
|
|
28
28
|
this.valueIsFalsy$ = this.value$.pipe(map((value) => !value));
|
|
29
29
|
this.valueIsFalsy = toSignal(this.valueIsFalsy$, { requireSync: true });
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Selects might have a option that is "null".
|
|
32
|
+
* This helper can be used to enhance the detection of empty values.
|
|
33
|
+
* The input is empty if the helper returns a falsy value and the value itself is falsy or an empty array.
|
|
34
|
+
*/
|
|
35
|
+
this.isEmptyHelper$ = new BehaviorSubject(undefined);
|
|
36
|
+
this.isEmptyHelper = toSignal(this.isEmptyHelper$, { requireSync: true });
|
|
37
|
+
this.valueIsEmpty$ = combineLatest([
|
|
38
|
+
this.value$,
|
|
39
|
+
this.autofilled$,
|
|
40
|
+
this.isEmptyHelper$.pipe(switchMap((isEmptyHelper) => (isEmptyHelper instanceof Observable ? isEmptyHelper : of(isEmptyHelper)))),
|
|
41
|
+
]).pipe(map(([value, autofilled, isEmptyHelper]) => {
|
|
42
|
+
const defaultIsEmpty = (value === null || value === undefined || value === '' || (Array.isArray(value) && !value.length)) &&
|
|
43
|
+
!autofilled;
|
|
44
|
+
if (isEmptyHelper !== undefined) {
|
|
45
|
+
return !isEmptyHelper && defaultIsEmpty;
|
|
46
|
+
}
|
|
47
|
+
return defaultIsEmpty;
|
|
48
|
+
}));
|
|
32
49
|
this.valueIsEmpty = toSignal(this.valueIsEmpty$, { requireSync: true });
|
|
33
50
|
this.errors$ = new BehaviorSubject(null);
|
|
34
51
|
this.errors = toSignal(this.errors$, { requireSync: true });
|
|
@@ -50,4 +67,4 @@ export class InputStateService {
|
|
|
50
67
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: InputStateService, decorators: [{
|
|
51
68
|
type: Injectable
|
|
52
69
|
}] });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9zZXJ2aWNlcy9pbnB1dC1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUs1RSxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBS1csb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBOEIsSUFBSSxDQUFDLENBQUM7UUFDekUsbUJBQWMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXZFLHNCQUFpQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckYsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztRQUVyRixXQUFNLEdBQUcsSUFBSSxlQUFlLENBQVcsSUFBSSxDQUFDLENBQUM7UUFDN0MsVUFBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFckQsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUss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QUMsQ0FBQztRQUM5RCxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFNUUsNkRBQTZEO1FBQzdELGlCQUFZLEdBQTBCLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDOUMsT0FBTztRQUNULENBQUMsQ0FBQztRQUNGLGFBQVEsR0FBbUIsR0FBRyxFQUFFO1lBQzlCLE9BQU87UUFDVCxDQUFDLENBQUM7S0FDSDs4R0EvRFksaUJBQWlCO2tIQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmF0aXZlSW5wdXRSZWZEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IElucHV0VG91Y2hlZEZuLCBJbnB1dFZhbHVlQ2hhbmdlRm4sIElucHV0VmFsdWVVcGRhdGVUeXBlLCBWYWxpZGF0b3JFcnJvcnMgfSBmcm9tICcuLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJbnB1dFN0YXRlU2VydmljZTxcbiAgVCA9IHVua25vd24sXG4gIEogZXh0ZW5kcyBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFNlbGVjdEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50IHwgSFRNTEJ1dHRvbkVsZW1lbnQgPSBIVE1MSW5wdXRFbGVtZW50LFxuPiB7XG4gIHJlYWRvbmx5IGxhc3RVcGRhdGVUeXBlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SW5wdXRWYWx1ZVVwZGF0ZVR5cGUgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgbGFzdFVwZGF0ZVR5cGUgPSB0b1NpZ25hbCh0aGlzLmxhc3RVcGRhdGVUeXBlJCwgeyByZXF1aXJlU3luYzogdHJ1ZSB9KTtcblxuICByZWFkb25seSBvbkludGVybmFsVXBkYXRlJCA9IHRoaXMubGFzdFVwZGF0ZVR5cGUkLnBpcGUoZmlsdGVyKCh0eXBlKSA9PiB0eXBlID09PSAnaW50ZXJuYWwnKSk7XG4gIHJlYWRvbmx5IG9uRXh0ZXJuYWxVcGRhdGUkID0gdGhpcy5sYXN0VXBkYXRlVHlwZSQucGlwZShmaWx0ZXIoKHR5cGUpID0+IHR5cGUgPT09ICdleHRlcm5hbCcpKTtcblxuICByZWFkb25seSB2YWx1ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFQgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgdmFsdWUgPSB0b1NpZ25hbCh0aGlzLnZhbHVlJCwgeyByZXF1aXJlU3luYzogdHJ1ZSB9KTtcblxuICByZWFkb25seSBkaXNhYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgZGlzYWJsZWQgPSB0b1NpZ25hbCh0aGlzLmRpc2FibGVkJCwgeyByZXF1aXJlU3luYzogdHJ1ZSB9KTtcblxuICByZWFkb25seSByZXF1aXJlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgcmVxdWlyZWQgPSB0b1NpZ25hbCh0aGlzLnJlcXVpcmVkJCwgeyByZXF1aXJlU3luYzogdHJ1ZSB9KTtcblxuICByZWFkb25seSB2YWx1ZUNoYW5nZSQgPSBuZXcgU3ViamVjdDxUPigpO1xuICByZWFkb25seSBkaXNhYmxlZENoYW5nZSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICByZWFkb25seSByZXF1aXJlZENoYW5nZSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IHVzZXNJbXBsaWNpdENvbnRyb2wkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHVzZXNJbXBsaWNpdENvbnRyb2wgPSB0b1NpZ25hbCh0aGlzLnVzZXNJbXBsaWNpdENvbnRyb2wkLCB7IHJlcXVpcmVTeW5jOiB0cnVlIH0pO1xuXG4gIHJlYWRvbmx5IG5hdGl2ZUlucHV0UmVmJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TmF0aXZlSW5wdXRSZWZEaXJlY3RpdmU8Sj4gfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgbmF0aXZlSW5wdXRSZWYgPSB0b1NpZ25hbCh0aGlzLm5hdGl2ZUlucHV0UmVmJCwgeyByZXF1aXJlU3luYzogdHJ1ZSB9KTtcblxuICByZWFkb25seSBhdXRvZmlsbGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBhdXRvZmlsbGVkID0gdG9TaWduYWwodGhpcy5hdXRvZmlsbGVkJCwgeyByZXF1aXJlU3luYzogdHJ1ZSB9KTtcblxuICByZWFkb25seSB2YWx1ZUlzVHJ1dGh5JCA9IHRoaXMudmFsdWUkLnBpcGUobWFwKCh2YWx1ZSkgPT4gISF2YWx1ZSkpO1xuICByZWFkb25seSB2YWx1ZUlzVHJ1dGh5ID0gdG9TaWduYWwodGhpcy52YWx1ZUlzVHJ1dGh5JCwgeyByZXF1aXJlU3luYzogdHJ1ZSB9KTtcblxuICByZWFkb25seSB2YWx1ZUlzRmFsc3kkID0gdGhpcy52YWx1ZSQucGlwZShtYXAoKHZhbHVlKSA9PiAhdmFsdWUpKTtcbiAgcmVhZG9ubHkgdmFsdWVJc0ZhbHN5ID0gdG9TaWduYWwodGhpcy52YWx1ZUlzRmFsc3kkLCB7IHJlcXVpcmVTeW5jOiB0cnVlIH0pO1xuXG4gIHJlYWRvbmx5IHZhbHVlSXNFbXB0eSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnZhbHVlJCwgdGhpcy5hdXRvZmlsbGVkJF0pLnBpcGUoXG4gICAgbWFwKFxuICAgICAgKFt2YWx1ZSwgYXV0b2ZpbGxlZF0pID0+XG4gICAgICAgICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJyB8fCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgIXZhbHVlLmxlbmd0aCkpICYmXG4gICAgICAgICFhdXRvZmlsbGVkLFxuICAgICksXG4gICk7XG4gIHJlYWRvbmx5IHZhbHVlSXNFbXB0eSA9IHRvU2lnbmFsKHRoaXMudmFsdWVJc0VtcHR5JCwgeyByZXF1aXJlU3luYzogdHJ1ZSB9KTtcblxuICByZWFkb25seSBlcnJvcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxWYWxpZGF0b3JFcnJvcnMgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgZXJyb3JzID0gdG9TaWduYWwodGhpcy5lcnJvcnMkLCB7IHJlcXVpcmVTeW5jOiB0cnVlIH0pO1xuXG4gIHJlYWRvbmx5IHNob3VsZERpc3BsYXlFcnJvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgc2hvdWxkRGlzcGxheUVycm9yID0gdG9TaWduYWwodGhpcy5zaG91bGREaXNwbGF5RXJyb3IkLCB7IHJlcXVpcmVTeW5jOiB0cnVlIH0pO1xuXG4gIHJlYWRvbmx5IGlzRm9jdXNlZFZpYSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvY3VzT3JpZ2luIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGlzRm9jdXNlZFZpYSA9IHRvU2lnbmFsKHRoaXMuaXNGb2N1c2VkVmlhJCwgeyByZXF1aXJlU3luYzogdHJ1ZSB9KTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIF92YWx1ZUNoYW5nZTogSW5wdXRWYWx1ZUNoYW5nZUZuPFQ+ID0gKHZhbHVlKSA9PiB7XG4gICAgLy8gc3R1YlxuICB9O1xuICBfdG91Y2hlZDogSW5wdXRUb3VjaGVkRm4gPSAoKSA9PiB7XG4gICAgLy8gc3R1YlxuICB9O1xufVxuIl19
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9zZXJ2aWNlcy9pbnB1dC1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUt2RyxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBS1csb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBOEIsSUFBSSxDQUFDLENBQUM7UUFDekUsbUJBQWMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXZFLHNCQUFpQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckYsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztRQUVyRixXQUFNLEdBQUcsSUFBSSxlQUFlLENBQVcsSUFBSSxDQUFDLENBQUM7UUFDN0MsVUFBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFckQs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O2dCQUMvQixPQUFPLENBQUMsYUFBYSxJQUFJLGNBQWMsQ0FBQzthQUN6QztZQUVELE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDTyxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFbkUsWUFBTyxHQUFHLElBQUksZUFBZSxDQUF5QixJQUFJLENBQUMsQ0FBQztRQUM1RCxXQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV2RCx3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMxRCx1QkFBa0IsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFL0Usa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBcUIsSUFBSSxDQUFDLENBQUM7UUFDOUQsaUJBQVksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTVFLDZEQUE2RDtRQUM3RCxpQkFBWSxHQUEwQixDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzlDLE9BQU87UUFDVCxDQUFDLENBQUM7UUFDRixhQUFRLEdBQW1CLEdBQUcsRUFBRTtZQUM5QixPQUFPO1FBQ1QsQ0FBQyxDQUFDO0tBQ0g7OEdBbkZZLGlCQUFpQjtrSEFBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5hdGl2ZUlucHV0UmVmRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBJbnB1dFRvdWNoZWRGbiwgSW5wdXRWYWx1ZUNoYW5nZUZuLCBJbnB1dFZhbHVlVXBkYXRlVHlwZSwgVmFsaWRhdG9yRXJyb3JzIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSW5wdXRTdGF0ZVNlcnZpY2U8XG4gIFQgPSB1bmtub3duLFxuICBKIGV4dGVuZHMgSFRNTElucHV0RWxlbWVudCB8IEhUTUxTZWxlY3RFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudCB8IEhUTUxCdXR0b25FbGVtZW50ID0gSFRNTElucHV0RWxlbWVudCxcbj4ge1xuICByZWFkb25seSBsYXN0VXBkYXRlVHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElucHV0VmFsdWVVcGRhdGVUeXBlIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGxhc3RVcGRhdGVUeXBlID0gdG9TaWduYWwodGhpcy5sYXN0VXBkYXRlVHlwZSQsIHsgcmVxdWlyZVN5bmM6IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgb25JbnRlcm5hbFVwZGF0ZSQgPSB0aGlzLmxhc3RVcGRhdGVUeXBlJC5waXBlKGZpbHRlcigodHlwZSkgPT4gdHlwZSA9PT0gJ2ludGVybmFsJykpO1xuICByZWFkb25seSBvbkV4dGVybmFsVXBkYXRlJCA9IHRoaXMubGFzdFVwZGF0ZVR5cGUkLnBpcGUoZmlsdGVyKCh0eXBlKSA9PiB0eXBlID09PSAnZXh0ZXJuYWwnKSk7XG5cbiAgcmVhZG9ubHkgdmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IHZhbHVlID0gdG9TaWduYWwodGhpcy52YWx1ZSQsIHsgcmVxdWlyZVN5bmM6IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgZGlzYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGRpc2FibGVkID0gdG9TaWduYWwodGhpcy5kaXNhYmxlZCQsIHsgcmVxdWlyZVN5bmM6IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgcmVxdWlyZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHJlcXVpcmVkID0gdG9TaWduYWwodGhpcy5yZXF1aXJlZCQsIHsgcmVxdWlyZVN5bmM6IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgdmFsdWVDaGFuZ2UkID0gbmV3IFN1YmplY3Q8VD4oKTtcbiAgcmVhZG9ubHkgZGlzYWJsZWRDaGFuZ2UkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgcmVxdWlyZWRDaGFuZ2UkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICByZWFkb25seSB1c2VzSW1wbGljaXRDb250cm9sJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB1c2VzSW1wbGljaXRDb250cm9sID0gdG9TaWduYWwodGhpcy51c2VzSW1wbGljaXRDb250cm9sJCwgeyByZXF1aXJlU3luYzogdHJ1ZSB9KTtcblxuICByZWFkb25seSBuYXRpdmVJbnB1dFJlZiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE5hdGl2ZUlucHV0UmVmRGlyZWN0aXZlPEo+IHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IG5hdGl2ZUlucHV0UmVmID0gdG9TaWduYWwodGhpcy5uYXRpdmVJbnB1dFJlZiQsIHsgcmVxdWlyZVN5bmM6IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgYXV0b2ZpbGxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgYXV0b2ZpbGxlZCA9IHRvU2lnbmFsKHRoaXMuYXV0b2ZpbGxlZCQsIHsgcmVxdWlyZVN5bmM6IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgdmFsdWVJc1RydXRoeSQgPSB0aGlzLnZhbHVlJC5waXBlKG1hcCgodmFsdWUpID0+ICEhdmFsdWUpKTtcbiAgcmVhZG9ubHkgdmFsdWVJc1RydXRoeSA9IHRvU2lnbmFsKHRoaXMudmFsdWVJc1RydXRoeSQsIHsgcmVxdWlyZVN5bmM6IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgdmFsdWVJc0ZhbHN5JCA9IHRoaXMudmFsdWUkLnBpcGUobWFwKCh2YWx1ZSkgPT4gIXZhbHVlKSk7XG4gIHJlYWRvbmx5IHZhbHVlSXNGYWxzeSA9IHRvU2lnbmFsKHRoaXMudmFsdWVJc0ZhbHN5JCwgeyByZXF1aXJlU3luYzogdHJ1ZSB9KTtcblxuICAvKipcbiAgICogU2VsZWN0cyBtaWdodCBoYXZlIGEgb3B0aW9uIHRoYXQgaXMgXCJudWxsXCIuXG4gICAqIFRoaXMgaGVscGVyIGNhbiBiZSB1c2VkIHRvIGVuaGFuY2UgdGhlIGRldGVjdGlvbiBvZiBlbXB0eSB2YWx1ZXMuXG4gICAqIFRoZSBpbnB1dCBpcyBlbXB0eSBpZiB0aGUgaGVscGVyIHJldHVybnMgYSBmYWxzeSB2YWx1ZSBhbmQgdGhlIHZhbHVlIGl0c2VsZiBpcyBmYWxzeSBvciBhbiBlbXB0eSBhcnJheS5cbiAgICovXG4gIHJlYWRvbmx5IGlzRW1wdHlIZWxwZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx1bmtub3duIHwgT2JzZXJ2YWJsZTx1bmtub3duPj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaXNFbXB0eUhlbHBlciA9IHRvU2lnbmFsKHRoaXMuaXNFbXB0eUhlbHBlciQsIHsgcmVxdWlyZVN5bmM6IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgdmFsdWVJc0VtcHR5JCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMudmFsdWUkLFxuICAgIHRoaXMuYXV0b2ZpbGxlZCQsXG4gICAgdGhpcy5pc0VtcHR5SGVscGVyJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKChpc0VtcHR5SGVscGVyKSA9PiAoaXNFbXB0eUhlbHBlciBpbnN0YW5jZW9mIE9ic2VydmFibGUgPyBpc0VtcHR5SGVscGVyIDogb2YoaXNFbXB0eUhlbHBlcikpKSxcbiAgICApLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW3ZhbHVlLCBhdXRvZmlsbGVkLCBpc0VtcHR5SGVscGVyXSkgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdElzRW1wdHkgPVxuICAgICAgICAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycgfHwgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmICF2YWx1ZS5sZW5ndGgpKSAmJlxuICAgICAgICAhYXV0b2ZpbGxlZDtcblxuICAgICAgaWYgKGlzRW1wdHlIZWxwZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gIWlzRW1wdHlIZWxwZXIgJiYgZGVmYXVsdElzRW1wdHk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZWZhdWx0SXNFbXB0eTtcbiAgICB9KSxcbiAgKTtcbiAgcmVhZG9ubHkgdmFsdWVJc0VtcHR5ID0gdG9TaWduYWwodGhpcy52YWx1ZUlzRW1wdHkkLCB7IHJlcXVpcmVTeW5jOiB0cnVlIH0pO1xuXG4gIHJlYWRvbmx5IGVycm9ycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFZhbGlkYXRvckVycm9ycyB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBlcnJvcnMgPSB0b1NpZ25hbCh0aGlzLmVycm9ycyQsIHsgcmVxdWlyZVN5bmM6IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgc2hvdWxkRGlzcGxheUVycm9yJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG91bGREaXNwbGF5RXJyb3IgPSB0b1NpZ25hbCh0aGlzLnNob3VsZERpc3BsYXlFcnJvciQsIHsgcmVxdWlyZVN5bmM6IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgaXNGb2N1c2VkVmlhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9jdXNPcmlnaW4gfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgaXNGb2N1c2VkVmlhID0gdG9TaWduYWwodGhpcy5pc0ZvY3VzZWRWaWEkLCB7IHJlcXVpcmVTeW5jOiB0cnVlIH0pO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgX3ZhbHVlQ2hhbmdlOiBJbnB1dFZhbHVlQ2hhbmdlRm48VD4gPSAodmFsdWUpID0+IHtcbiAgICAvLyBzdHViXG4gIH07XG4gIF90b3VjaGVkOiBJbnB1dFRvdWNoZWRGbiA9ICgpID0+IHtcbiAgICAvLyBzdHViXG4gIH07XG59XG4iXX0=
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import { Directive, inject } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { signalHostClasses } from '@ethlete/core';
|
|
3
3
|
import { FormFieldStateService } from '../services';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class DecoratedFormFieldBase {
|
|
6
6
|
constructor() {
|
|
7
7
|
this._formFieldStateService = inject(FormFieldStateService);
|
|
8
|
-
this.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}, {
|
|
12
|
-
attribute: 'class.et-form-field--has-suffix',
|
|
13
|
-
observable: this._formFieldStateService.hasSuffix$,
|
|
8
|
+
this.hostClassBindings = signalHostClasses({
|
|
9
|
+
'et-form-field--has-prefix': this._formFieldStateService.hasPrefix,
|
|
10
|
+
'et-form-field--has-suffix': this._formFieldStateService.hasSuffix,
|
|
14
11
|
});
|
|
15
12
|
}
|
|
16
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DecoratedFormFieldBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -19,4 +16,4 @@ export class DecoratedFormFieldBase {
|
|
|
19
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DecoratedFormFieldBase, decorators: [{
|
|
20
17
|
type: Directive
|
|
21
18
|
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdGVkLWZvcm0tZmllbGQuYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy91dGlscy9kZWNvcmF0ZWQtZm9ybS1maWVsZC5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3BELE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFFbUIsMkJBQXNCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFL0Qsc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7WUFDN0MsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVM7WUFDbEUsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVM7U0FDbkUsQ0FBQyxDQUFDO0tBQ0o7OEdBUFksc0JBQXNCO2tHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2lnbmFsSG9zdENsYXNzZXMgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IEZvcm1GaWVsZFN0YXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgRGVjb3JhdGVkRm9ybUZpZWxkQmFzZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm1GaWVsZFN0YXRlU2VydmljZSA9IGluamVjdChGb3JtRmllbGRTdGF0ZVNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGhvc3RDbGFzc0JpbmRpbmdzID0gc2lnbmFsSG9zdENsYXNzZXMoe1xuICAgICdldC1mb3JtLWZpZWxkLS1oYXMtcHJlZml4JzogdGhpcy5fZm9ybUZpZWxkU3RhdGVTZXJ2aWNlLmhhc1ByZWZpeCxcbiAgICAnZXQtZm9ybS1maWVsZC0taGFzLXN1ZmZpeCc6IHRoaXMuX2Zvcm1GaWVsZFN0YXRlU2VydmljZS5oYXNTdWZmaXgsXG4gIH0pO1xufVxuIl19
|
|
@@ -1,44 +1,47 @@
|
|
|
1
1
|
import { ContentChildren, Directive, inject } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { TypedQueryList, createDestroy, signalHostClasses, switchQueryListChanges } from '@ethlete/core';
|
|
4
|
+
import { BehaviorSubject, map, tap } from 'rxjs';
|
|
4
5
|
import { INPUT_PREFIX_TOKEN, INPUT_SUFFIX_TOKEN } from '../directives';
|
|
5
6
|
import { FormFieldStateService } from '../services';
|
|
6
7
|
import { InputBase } from './input.base';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
export class DecoratedInputBase extends InputBase {
|
|
10
|
+
set inputPrefix(inputPrefix) {
|
|
11
|
+
this.inputPrefix$.next(inputPrefix);
|
|
12
|
+
}
|
|
13
|
+
set inputSuffix(inputSuffix) {
|
|
14
|
+
this.inputSuffix$.next(inputSuffix);
|
|
15
|
+
}
|
|
9
16
|
constructor() {
|
|
10
|
-
super(
|
|
17
|
+
super();
|
|
11
18
|
this._formFieldStateService = inject(FormFieldStateService);
|
|
12
19
|
this._destroy$ = createDestroy();
|
|
13
|
-
this.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
this.inputPrefix$ = new BehaviorSubject(null);
|
|
21
|
+
this.inputSuffix$ = new BehaviorSubject(null);
|
|
22
|
+
this.hasPrefix$ = this.inputPrefix$.pipe(switchQueryListChanges(), map((list) => !!list && list?.length > 0));
|
|
23
|
+
this.hasSuffix$ = this.inputSuffix$.pipe(switchQueryListChanges(), map((list) => !!list && list?.length > 0));
|
|
24
|
+
this.hostClassBindings = signalHostClasses({
|
|
25
|
+
'et-input--has-prefix': toSignal(this.hasPrefix$),
|
|
26
|
+
'et-input--has-suffix': toSignal(this.hasSuffix$),
|
|
19
27
|
});
|
|
28
|
+
this.hasPrefix$
|
|
29
|
+
.pipe(takeUntilDestroyed(), tap((hasPrefix) => this._formFieldStateService.hasPrefix$.next(hasPrefix)))
|
|
30
|
+
.subscribe();
|
|
31
|
+
this.hasSuffix$
|
|
32
|
+
.pipe(takeUntilDestroyed(), tap((hasSuffix) => this._formFieldStateService.hasSuffix$.next(hasSuffix)))
|
|
33
|
+
.subscribe();
|
|
20
34
|
}
|
|
21
|
-
|
|
22
|
-
if (!this.inputPrefix || !this.inputSuffix) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
this.inputPrefix.changes
|
|
26
|
-
.pipe(takeUntil(this._destroy$), startWith(this.inputPrefix), map((list) => list.length > 0))
|
|
27
|
-
.subscribe(this._formFieldStateService.hasPrefix$);
|
|
28
|
-
this.inputSuffix.changes
|
|
29
|
-
.pipe(takeUntil(this._destroy$), startWith(this.inputSuffix), map((list) => list.length > 0))
|
|
30
|
-
.subscribe(this._formFieldStateService.hasSuffix$);
|
|
31
|
-
}
|
|
32
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DecoratedInputBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DecoratedInputBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
33
36
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: DecoratedInputBase, queries: [{ propertyName: "inputPrefix", predicate: INPUT_PREFIX_TOKEN }, { propertyName: "inputSuffix", predicate: INPUT_SUFFIX_TOKEN }], usesInheritance: true, ngImport: i0 }); }
|
|
34
37
|
}
|
|
35
38
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DecoratedInputBase, decorators: [{
|
|
36
39
|
type: Directive
|
|
37
|
-
}], propDecorators: { inputPrefix: [{
|
|
40
|
+
}], ctorParameters: function () { return []; }, propDecorators: { inputPrefix: [{
|
|
38
41
|
type: ContentChildren,
|
|
39
42
|
args: [INPUT_PREFIX_TOKEN]
|
|
40
43
|
}], inputSuffix: [{
|
|
41
44
|
type: ContentChildren,
|
|
42
45
|
args: [INPUT_SUFFIX_TOKEN]
|
|
43
46
|
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdGVkLWlucHV0LmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvdXRpbHMvZGVjb3JhdGVkLWlucHV0LmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUE4QyxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFHekMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFNBQVM7SUFJL0MsSUFDSSxXQUFXLENBQUMsV0FBaUQ7UUFDL0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUdELElBQ0ksV0FBVyxDQUFDLFdBQWlEO1FBQy9ELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFpQkQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQTlCTywyQkFBc0IsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMvRCxjQUFTLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFNbEIsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBOEMsSUFBSSxDQUFDLENBQUM7UUFNdEYsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBOEMsSUFBSSxDQUFDLENBQUM7UUFFaEcsZUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUMxQyxzQkFBc0IsRUFBRSxFQUN4QixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FDMUMsQ0FBQztRQUNPLGVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDMUMsc0JBQXNCLEVBQUUsRUFDeEIsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQzFDLENBQUM7UUFFTyxzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztZQUM3QyxzQkFBc0IsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNqRCxzQkFBc0IsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUNsRCxDQUFDLENBQUM7UUFLRCxJQUFJLENBQUMsVUFBVTthQUNaLElBQUksQ0FDSCxrQkFBa0IsRUFBRSxFQUNwQixHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQzNFO2FBQ0EsU0FBUyxFQUFFLENBQUM7UUFFZixJQUFJLENBQUMsVUFBVTthQUNaLElBQUksQ0FDSCxrQkFBa0IsRUFBRSxFQUNwQixHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQzNFO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzs4R0E5Q1Usa0JBQWtCO2tHQUFsQixrQkFBa0Isc0RBSVosa0JBQWtCLDhDQU1sQixrQkFBa0I7OzJGQVZ4QixrQkFBa0I7a0JBRDlCLFNBQVM7MEVBTUosV0FBVztzQkFEZCxlQUFlO3VCQUFDLGtCQUFrQjtnQkFPL0IsV0FBVztzQkFEZCxlQUFlO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBUeXBlZFF1ZXJ5TGlzdCwgY3JlYXRlRGVzdHJveSwgc2lnbmFsSG9zdENsYXNzZXMsIHN3aXRjaFF1ZXJ5TGlzdENoYW5nZXMgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElOUFVUX1BSRUZJWF9UT0tFTiwgSU5QVVRfU1VGRklYX1RPS0VOLCBJbnB1dFByZWZpeERpcmVjdGl2ZSwgSW5wdXRTdWZmaXhEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IEZvcm1GaWVsZFN0YXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IElucHV0QmFzZSB9IGZyb20gJy4vaW5wdXQuYmFzZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIERlY29yYXRlZElucHV0QmFzZSBleHRlbmRzIElucHV0QmFzZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm1GaWVsZFN0YXRlU2VydmljZSA9IGluamVjdChGb3JtRmllbGRTdGF0ZVNlcnZpY2UpO1xuICByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihJTlBVVF9QUkVGSVhfVE9LRU4pXG4gIHNldCBpbnB1dFByZWZpeChpbnB1dFByZWZpeDogVHlwZWRRdWVyeUxpc3Q8SW5wdXRQcmVmaXhEaXJlY3RpdmU+KSB7XG4gICAgdGhpcy5pbnB1dFByZWZpeCQubmV4dChpbnB1dFByZWZpeCk7XG4gIH1cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlucHV0UHJlZml4JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHlwZWRRdWVyeUxpc3Q8SW5wdXRQcmVmaXhEaXJlY3RpdmU+IHwgbnVsbD4obnVsbCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihJTlBVVF9TVUZGSVhfVE9LRU4pXG4gIHNldCBpbnB1dFN1ZmZpeChpbnB1dFN1ZmZpeDogVHlwZWRRdWVyeUxpc3Q8SW5wdXRTdWZmaXhEaXJlY3RpdmU+KSB7XG4gICAgdGhpcy5pbnB1dFN1ZmZpeCQubmV4dChpbnB1dFN1ZmZpeCk7XG4gIH1cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlucHV0U3VmZml4JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHlwZWRRdWVyeUxpc3Q8SW5wdXRTdWZmaXhEaXJlY3RpdmU+IHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgaGFzUHJlZml4JCA9IHRoaXMuaW5wdXRQcmVmaXgkLnBpcGUoXG4gICAgc3dpdGNoUXVlcnlMaXN0Q2hhbmdlcygpLFxuICAgIG1hcCgobGlzdCkgPT4gISFsaXN0ICYmIGxpc3Q/Lmxlbmd0aCA+IDApLFxuICApO1xuICByZWFkb25seSBoYXNTdWZmaXgkID0gdGhpcy5pbnB1dFN1ZmZpeCQucGlwZShcbiAgICBzd2l0Y2hRdWVyeUxpc3RDaGFuZ2VzKCksXG4gICAgbWFwKChsaXN0KSA9PiAhIWxpc3QgJiYgbGlzdD8ubGVuZ3RoID4gMCksXG4gICk7XG5cbiAgcmVhZG9ubHkgaG9zdENsYXNzQmluZGluZ3MgPSBzaWduYWxIb3N0Q2xhc3Nlcyh7XG4gICAgJ2V0LWlucHV0LS1oYXMtcHJlZml4JzogdG9TaWduYWwodGhpcy5oYXNQcmVmaXgkKSxcbiAgICAnZXQtaW5wdXQtLWhhcy1zdWZmaXgnOiB0b1NpZ25hbCh0aGlzLmhhc1N1ZmZpeCQpLFxuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5oYXNQcmVmaXgkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgIHRhcCgoaGFzUHJlZml4KSA9PiB0aGlzLl9mb3JtRmllbGRTdGF0ZVNlcnZpY2UuaGFzUHJlZml4JC5uZXh0KGhhc1ByZWZpeCkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5oYXNTdWZmaXgkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgIHRhcCgoaGFzU3VmZml4KSA9PiB0aGlzLl9mb3JtRmllbGRTdGF0ZVNlcnZpY2UuaGFzU3VmZml4JC5uZXh0KGhhc1N1ZmZpeCkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, ContentChildren, ElementRef, EventEmitter, forwardRef, inject, Input, numberAttribute, Output, ViewEncapsulation, } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { createDestroy, DELAYABLE_TOKEN, ObserveResizeDirective, signalHostClasses, TypedQueryList, } from '@ethlete/core';
|
|
3
4
|
import { BehaviorSubject, combineLatest, debounceTime, of, startWith, switchMap, takeUntil, tap, timer } from 'rxjs';
|
|
4
5
|
import { MASONRY_ITEM_TOKEN } from '../../partials';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
@@ -15,12 +16,9 @@ export class MasonryComponent {
|
|
|
15
16
|
this._didResize$ = new BehaviorSubject(false);
|
|
16
17
|
this._didInitialize$ = new BehaviorSubject(false);
|
|
17
18
|
this._hideOverflow$ = new BehaviorSubject(false);
|
|
18
|
-
this.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}, {
|
|
22
|
-
attribute: 'class.et-masonry--hide-overflow',
|
|
23
|
-
observable: this._hideOverflow$,
|
|
19
|
+
this.hostClassBindings = signalHostClasses({
|
|
20
|
+
'et-masonry--initialized': toSignal(this._didInitialize$),
|
|
21
|
+
'et-masonry--hide-overflow': toSignal(this._hideOverflow$),
|
|
24
22
|
});
|
|
25
23
|
this._state = {
|
|
26
24
|
preferredColumnWidth: 0,
|
|
@@ -203,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
203
201
|
}], initialized: [{
|
|
204
202
|
type: Output
|
|
205
203
|
}] } });
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzb25yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvbWFzb25yeS9jb21wb25lbnRzL21hc29ucnkvbWFzb25yeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGFBQWEsRUFDYixzQkFBc0IsRUFDdEIsZUFBZSxFQUNmLHNCQUFzQixFQUN0QixjQUFjLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxrQkFBa0IsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQzs7QUE2QjFFLE1BQU0sT0FBTyxnQkFBZ0I7SUFmN0I7UUFnQm1CLGNBQVMsR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUM1QixnQkFBVyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDMUQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQVlsRSxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFTLEdBQUcsQ0FBQyxDQUFDO1FBU2hELFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUd2QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHbEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXpCLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBELGNBQVMsR0FBRyxzQkFBc0IsQ0FDekM7WUFDRSxTQUFTLEVBQUUsK0JBQStCO1lBQzFDLFVBQVUsRUFBRSxJQUFJLENBQUMsZUFBZTtTQUNqQyxFQUNEO1lBQ0UsU0FBUyxFQUFFLGlDQUFpQztZQUM1QyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDaEMsQ0FDRixDQUFDO1FBRWUsV0FBTSxHQUFpQjtZQUN0QyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3ZCLFdBQVcsRUFBRSxDQUFDO1lBQ2QsT0FBTyxFQUFFLENBQUM7WUFDVixnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BCLFVBQVUsRUFBRSxDQUFDO1lBQ2IsY0FBYyxFQUFFLElBQUk7WUFDcEIsR0FBRyxFQUFFLENBQUM7WUFDTixTQUFTLEVBQUUsQ0FBQztZQUNaLGFBQWEsRUFBRSxLQUFLO1NBQ3JCLENBQUM7UUFrS00scUJBQWdCLEdBQUcsQ0FBQyxhQUF5QixFQUFFLEVBQUU7WUFDdkQsSUFBSSxrQkFBa0IsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEQsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7WUFFMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzdDLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUUzQyxJQUFJLFlBQVksS0FBSyxTQUFTLElBQUksWUFBWSxHQUFHLGtCQUFrQixFQUFFO29CQUNuRSxrQkFBa0IsR0FBRyxZQUFZLENBQUM7b0JBQ2xDLGlCQUFpQixHQUFHLENBQUMsQ0FBQztpQkFDdkI7YUFDRjtZQUVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO1FBQ25ELENBQUMsQ0FBQztRQUVNLHNCQUFpQixHQUFHLENBQUMsYUFBeUIsRUFBRSxFQUFFO1lBQ3hELElBQUksbUJBQW1CLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JELElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1lBRTNCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUM3QyxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFM0MsSUFBSSxZQUFZLEtBQUssU0FBUyxJQUFJLFlBQVksSUFBSSxtQkFBbUIsRUFBRTtvQkFDckUsbUJBQW1CLEdBQUcsWUFBWSxDQUFDO29CQUNuQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7aUJBQ3hCO2FBQ0Y7WUFFRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztRQUNyRCxDQUFDLENBQUM7S0FDSDtJQWxQQyxJQUNJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLElBQUksR0FBRyxDQUFDO0lBQzdDLENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQyxLQUFjO1FBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBR0QsSUFDSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxHQUFHLENBQUMsS0FBYztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQW9DRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsQ0FBQztRQUVqQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDL0csSUFBSSxDQUNILFlBQVksQ0FBQyxDQUFDLENBQUMsRUFDZixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksU0FBUyxFQUFFO2dCQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlCO1lBRUQsTUFBTSxpQkFBaUIsR0FDckIsU0FBUyxJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUV4RixJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxFQUFFLENBQUM7UUFFZixJQUFJLENBQUMsV0FBVzthQUNiLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDekMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUMzQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDMUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7YUFDQSxTQUFTLEVBQUUsQ0FBQztRQUVmLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTzthQUNoQixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFDdEIsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDbEIsS0FBSyxDQUFDLE1BQU07WUFDVixDQUFDLENBQUMsYUFBYSxDQUNYLEtBQUs7aUJBQ0YsT0FBTyxFQUFFO2lCQUNULE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBNkIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzdDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUMvQjtZQUNILENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQ1gsRUFDRCxTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN2QixNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVqRCxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsQ0FBQztnQkFDakMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDakI7WUFFRCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ3BCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUE4QjtRQUN2QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFMUIsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE9BQU87U0FDUjtRQUVELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQTZCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFO1lBQzVDLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQzdDLEtBQUssQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDakQsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN6RSxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDckIsS0FBSyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQy9CLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDbkcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFeEM7Ozs7OztlQU1HO1lBQ0gsS0FBSyxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUU5RSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUU3QixLQUFLLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUM1QjthQUFNO1lBQ0wsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFaEUsK0RBQStEO1lBQy9ELElBQUksU0FBUyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFO2dCQUNuQyxLQUFLLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUVyQyxPQUFPO2FBQ1I7WUFFRCxpRUFBaUU7WUFDakUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVPLGFBQWEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEtBQTZCO1FBQ2hFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFMUIsS0FBSyxJQUFJLFNBQVMsR0FBRyxTQUFTLEVBQUUsU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDckUsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRTlCLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1QsU0FBUzthQUNWO1lBRUQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDckQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBRTFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUNoRCxTQUFTO2FBQ1Y7WUFFRCxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFFaEcsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLFdBQVcsR0FBRyxpQkFBaUIsR0FBRyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBRWhGLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRWxFLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUN2RjtRQUVELEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFFbEcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRVMsY0FBYztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQWE7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDOUYsQ0FBQzs4R0F6TlUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsaVNBS08sa0JBQWtCLG9EQWxCMUM7OztHQUdULCtUQVFTLHNCQUFzQjs7MkZBRXJCLGdCQUFnQjtrQkFmNUIsU0FBUzsrQkFDRSxZQUFZLFlBQ1o7OztHQUdULGNBRVcsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxZQUFZO3FCQUNwQixXQUNRLENBQUMsc0JBQXNCLENBQUM7OEJBUWhCLE1BQU07c0JBRHRCLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUl4RSxVQUFVO3NCQURiLEtBQUs7Z0JBVUYsR0FBRztzQkFETixLQUFLO2dCQVVHLFlBQVk7c0JBRHBCLE1BQU07Z0JBSUUsV0FBVztzQkFEbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgY3JlYXRlRGVzdHJveSxcbiAgY3JlYXRlUmVhY3RpdmVCaW5kaW5ncyxcbiAgREVMQVlBQkxFX1RPS0VOLFxuICBPYnNlcnZlUmVzaXplRGlyZWN0aXZlLFxuICBUeXBlZFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgb2YsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1BU09OUllfSVRFTV9UT0tFTiwgTWFzb25yeUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9wYXJ0aWFscyc7XG5cbnR5cGUgTWFzb25yeVN0YXRlID0ge1xuICBwcmVmZXJyZWRDb2x1bW5XaWR0aDogbnVtYmVyO1xuICBjb2x1bW5XaWR0aDogbnVtYmVyO1xuICBjb2x1bW5zOiBudW1iZXI7XG4gIGdyaWRSb3dFbEhlaWdodHM6IG51bWJlcltdW107XG4gIGhvc3RIZWlnaHQ6IG51bWJlcjtcbiAgaG9zdERpbWVuc2lvbnM6IERPTVJlY3QgfCBudWxsO1xuICBnYXA6IG51bWJlcjtcbiAgaXNJbml0aWFsaXplZDogYm9vbGVhbjtcbiAgaXRlbUNvdW50OiBudW1iZXI7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC1tYXNvbnJ5JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IChldE9ic2VydmVSZXNpemUpPVwic2V0UmVzaXplRXZlbnQoKVwiPjwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltldE1hc29ucnlJdGVtXSwgZXQtbWFzb25yeS1pdGVtLCBuZy1jb250YWluZXJcIiAvPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9tYXNvbnJ5LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC1tYXNvbnJ5JyxcbiAgfSxcbiAgaW1wb3J0czogW09ic2VydmVSZXNpemVEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBNYXNvbnJ5Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVsYXlhYmxlID0gaW5qZWN0KERFTEFZQUJMRV9UT0tFTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gTUFTT05SWV9JVEVNX1RPS0VOKSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwcml2YXRlIHJlYWRvbmx5IF9pdGVtcz86IFR5cGVkUXVlcnlMaXN0PE1hc29ucnlJdGVtQ29tcG9uZW50PjtcblxuICBASW5wdXQoKVxuICBnZXQgY29sdW1XaWR0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bVdpZHRoJC5nZXRWYWx1ZSgpIHx8IDI1MDtcbiAgfVxuICBzZXQgY29sdW1XaWR0aCh2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX2NvbHVtV2lkdGgkLm5leHQobnVtYmVyQXR0cmlidXRlKHZhbHVlLCAyNTApKTtcbiAgfVxuICBwcml2YXRlIF9jb2x1bVdpZHRoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigyNTApO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBnYXAoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZ2FwJC5nZXRWYWx1ZSgpIHx8IDA7XG4gIH1cbiAgc2V0IGdhcCh2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX2dhcCQubmV4dChudW1iZXJBdHRyaWJ1dGUodmFsdWUsIDE2KSk7XG4gIH1cbiAgcHJpdmF0ZSBfZ2FwJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxNik7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGluaXRpYWxpemluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgaW5pdGlhbGl6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZGlkUmVzaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kaWRJbml0aWFsaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9oaWRlT3ZlcmZsb3ckID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgX2JpbmRpbmdzID0gY3JlYXRlUmVhY3RpdmVCaW5kaW5ncyhcbiAgICB7XG4gICAgICBhdHRyaWJ1dGU6ICdjbGFzcy5ldC1tYXNvbnJ5LS1pbml0aWFsaXplZCcsXG4gICAgICBvYnNlcnZhYmxlOiB0aGlzLl9kaWRJbml0aWFsaXplJCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGF0dHJpYnV0ZTogJ2NsYXNzLmV0LW1hc29ucnktLWhpZGUtb3ZlcmZsb3cnLFxuICAgICAgb2JzZXJ2YWJsZTogdGhpcy5faGlkZU92ZXJmbG93JCxcbiAgICB9LFxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXRlOiBNYXNvbnJ5U3RhdGUgPSB7XG4gICAgcHJlZmVycmVkQ29sdW1uV2lkdGg6IDAsXG4gICAgY29sdW1uV2lkdGg6IDAsXG4gICAgY29sdW1uczogMCxcbiAgICBncmlkUm93RWxIZWlnaHRzOiBbXSxcbiAgICBob3N0SGVpZ2h0OiAwLFxuICAgIGhvc3REaW1lbnNpb25zOiBudWxsLFxuICAgIGdhcDogMCxcbiAgICBpdGVtQ291bnQ6IDAsXG4gICAgaXNJbml0aWFsaXplZDogZmFsc2UsXG4gIH07XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXRlbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9kZWxheWFibGU/LmVuYWJsZURlbGF5ZWQoKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX2l0ZW1zLmNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5faXRlbXMpKSwgdGhpcy5fZGlkUmVzaXplJCwgdGhpcy5fY29sdW1XaWR0aCQsIHRoaXMuX2dhcCRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgxKSxcbiAgICAgICAgdGFwKChbLCBkaWRSZXNpemUsIGNvbFdpZHRoLCBnYXBdKSA9PiB7XG4gICAgICAgICAgaWYgKGRpZFJlc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5fZGlkUmVzaXplJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBpc0NvbXBsZXRlSW52YWxpZCA9XG4gICAgICAgICAgICBkaWRSZXNpemUgfHwgY29sV2lkdGggIT09IHRoaXMuX3N0YXRlLnByZWZlcnJlZENvbHVtbldpZHRoIHx8IGdhcCAhPT0gdGhpcy5fc3RhdGUuZ2FwO1xuXG4gICAgICAgICAgdGhpcy5pbnZhbGlkYXRlKHsgcGFydGlhbDogIWlzQ29tcGxldGVJbnZhbGlkIH0pO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX2RpZFJlc2l6ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5faGlkZU92ZXJmbG93JC5uZXh0KHRydWUpKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRpbWVyKDE1MCkpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5faGlkZU92ZXJmbG93JC5uZXh0KGZhbHNlKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLl9pdGVtcy5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMuX2l0ZW1zKSxcbiAgICAgICAgc3dpdGNoTWFwKChpdGVtcykgPT5cbiAgICAgICAgICBpdGVtcy5sZW5ndGhcbiAgICAgICAgICAgID8gY29tYmluZUxhdGVzdChcbiAgICAgICAgICAgICAgICBpdGVtc1xuICAgICAgICAgICAgICAgICAgLnRvQXJyYXkoKVxuICAgICAgICAgICAgICAgICAgLmZpbHRlcigoaSk6IGkgaXMgTWFzb25yeUl0ZW1Db21wb25lbnQgPT4gISFpKVxuICAgICAgICAgICAgICAgICAgLm1hcCgoaSkgPT4gaS5pc1Bvc2l0aW9uZWQkKSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBvZihbXSksXG4gICAgICAgICksXG4gICAgICAgIHN3aXRjaE1hcCgocG9zaXRpb25lZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFsbFBvc2l0aW9uZWQgPSBwb3NpdGlvbmVkLmV2ZXJ5KChpKSA9PiBpKTtcblxuICAgICAgICAgIGlmICghYWxsUG9zaXRpb25lZCkge1xuICAgICAgICAgICAgdGhpcy5fZGlkSW5pdGlhbGl6ZSQubmV4dChhbGxQb3NpdGlvbmVkKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6aW5nLmVtaXQoKTtcbiAgICAgICAgICAgIHRoaXMuX2RlbGF5YWJsZT8uZW5hYmxlRGVsYXllZCgpO1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aW1lcigxMDApLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9kaWRJbml0aWFsaXplJC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICB0aGlzLl9kZWxheWFibGU/LmRpc2FibGVEZWxheWVkKCk7XG4gICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQuZW1pdCgpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBpbnZhbGlkYXRlKGNvbmZpZz86IHsgcGFydGlhbD86IGJvb2xlYW4gfSkge1xuICAgIGNvbnN0IGl0ZW1MaXN0ID0gdGhpcy5faXRlbXM7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9zdGF0ZTtcblxuICAgIGlmICghaXRlbUxpc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtcyA9IGl0ZW1MaXN0LnRvQXJyYXkoKS5maWx0ZXIoKGkpOiBpIGlzIE1hc29ucnlJdGVtQ29tcG9uZW50ID0+ICEhaSk7XG5cbiAgICBpZiAoIWNvbmZpZz8ucGFydGlhbCB8fCAhc3RhdGUuaXNJbml0aWFsaXplZCkge1xuICAgICAgc3RhdGUucHJlZmVycmVkQ29sdW1uV2lkdGggPSB0aGlzLmNvbHVtV2lkdGg7XG4gICAgICBzdGF0ZS5ob3N0RGltZW5zaW9ucyA9IHRoaXMuX2dldEhvc3REaW1lbnNpb25zKCk7XG4gICAgICBzdGF0ZS5jb2x1bW5zID0gTWF0aC5mbG9vcihzdGF0ZS5ob3N0RGltZW5zaW9ucy53aWR0aCAvIHRoaXMuY29sdW1XaWR0aCk7XG4gICAgICBzdGF0ZS5nYXAgPSB0aGlzLmdhcDtcbiAgICAgIHN0YXRlLml0ZW1Db3VudCA9IGl0ZW1zLmxlbmd0aDtcbiAgICAgIHN0YXRlLmNvbHVtbldpZHRoID0gKHN0YXRlLmhvc3REaW1lbnNpb25zLndpZHRoIC0gKHN0YXRlLmNvbHVtbnMgLSAxKSAqIHN0YXRlLmdhcCkgLyBzdGF0ZS5jb2x1bW5zO1xuICAgICAgdGhpcy5fc2V0Q29sdW1uV2lkdGgoc3RhdGUuY29sdW1uV2lkdGgpO1xuXG4gICAgICAvKipcbiAgICAgICAqIERhdGEgc3RydWN0dXJlOlxuICAgICAgICogW1xuICAgICAgICogIFtjdXJyZW50VG90YWxIZWlnaHRPZkNvbCwgaXRlbUhlaWdodCwgaXRlbUhlaWdodCwgaXRlbUhlaWdodF0sXG4gICAgICAgKiAgW2N1cnJlbnRUb3RhbEhlaWdodE9mQ29sLCBpdGVtSGVpZ2h0LCBpdGVtSGVpZ2h0LCBpdGVtSGVpZ2h0XSxcbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgc3RhdGUuZ3JpZFJvd0VsSGVpZ2h0cyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IHN0YXRlLmNvbHVtbnMgfSkubWFwKCgpID0+IFswXSk7XG5cbiAgICAgIHRoaXMuX3BhaW50TWFzb25yeSgwLCBpdGVtcyk7XG5cbiAgICAgIHN0YXRlLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBmcm9tSW5kZXggPSBpdGVtcy5maW5kSW5kZXgoKGl0ZW0pID0+ICFpdGVtLmlzUG9zaXRpb25lZCk7XG5cbiAgICAgIC8vIGl0ZW0gY291bnQgMjAgZnJvbUluZGV4IDIwICsgMSAtPiAyMSA9PiBwYXJ0aWFsIGludmFsaWRhdGlvblxuICAgICAgaWYgKGZyb21JbmRleCArIDEgPiBzdGF0ZS5pdGVtQ291bnQpIHtcbiAgICAgICAgc3RhdGUuaXRlbUNvdW50ID0gaXRlbXMubGVuZ3RoO1xuICAgICAgICB0aGlzLl9wYWludE1hc29ucnkoZnJvbUluZGV4LCBpdGVtcyk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBkbyBhIGZ1bGwgaW52YWxpZGF0aW9uIHRoZSBmcm9tSW5kZXggaXMgbm90IHRoZSBmaXJzdCBuZXcgaXRlbVxuICAgICAgdGhpcy5pbnZhbGlkYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcGFpbnRNYXNvbnJ5KGZyb21JbmRleCA9IDAsIGl0ZW1zOiBNYXNvbnJ5SXRlbUNvbXBvbmVudFtdKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9zdGF0ZTtcblxuICAgIGZvciAobGV0IGl0ZW1JbmRleCA9IGZyb21JbmRleDsgaXRlbUluZGV4IDwgaXRlbXMubGVuZ3RoOyBpdGVtSW5kZXgrKykge1xuICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zW2l0ZW1JbmRleF07XG5cbiAgICAgIGlmICghaXRlbSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaW5pdGlhbEl0ZW1EaW1lbnNpb25zID0gaXRlbS5pbml0aWFsRGltZW5zaW9ucztcbiAgICAgIGNvbnN0IHVwZGF0ZWREaW1lbnNpb25zID0gaXRlbS5kaW1lbnNpb25zO1xuXG4gICAgICBpZiAoIWluaXRpYWxJdGVtRGltZW5zaW9ucyB8fCAhdXBkYXRlZERpbWVuc2lvbnMpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgbG93ZXN0Q29sdW1uSGVpZ2h0LCBsb3dlc3RDb2x1bW5JbmRleCB9ID0gdGhpcy5fZ2V0TG93ZXN0Q29sdW1uKHN0YXRlLmdyaWRSb3dFbEhlaWdodHMpO1xuXG4gICAgICBjb25zdCB4ID0gc3RhdGUuY29sdW1uV2lkdGggKiBsb3dlc3RDb2x1bW5JbmRleCArIGxvd2VzdENvbHVtbkluZGV4ICogc3RhdGUuZ2FwO1xuXG4gICAgICBpdGVtLnNldFBvc2l0aW9uKHgsIGxvd2VzdENvbHVtbkhlaWdodCwgdXBkYXRlZERpbWVuc2lvbnMuaGVpZ2h0KTtcblxuICAgICAgc3RhdGUuZ3JpZFJvd0VsSGVpZ2h0c1tsb3dlc3RDb2x1bW5JbmRleF0hLnB1c2godXBkYXRlZERpbWVuc2lvbnMuaGVpZ2h0KTtcbiAgICAgIHN0YXRlLmdyaWRSb3dFbEhlaWdodHNbbG93ZXN0Q29sdW1uSW5kZXhdIVswXSArPSB1cGRhdGVkRGltZW5zaW9ucy5oZWlnaHQgKyBzdGF0ZS5nYXA7XG4gICAgfVxuXG4gICAgc3RhdGUuaG9zdEhlaWdodCA9IHRoaXMuX2dldEhpZ2hlc3RDb2x1bW4oc3RhdGUuZ3JpZFJvd0VsSGVpZ2h0cykuaGlnaGVzdENvbHVtbkhlaWdodCAtIHN0YXRlLmdhcDtcblxuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnaGVpZ2h0JywgYCR7c3RhdGUuaG9zdEhlaWdodH1weGApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFJlc2l6ZUV2ZW50KCkge1xuICAgIHRoaXMuX2RpZFJlc2l6ZSQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEhvc3REaW1lbnNpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRDb2x1bW5XaWR0aCh3aWR0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWV0LW1hc29ucnktY29sdW1uLXdpZHRoJywgYCR7d2lkdGh9cHhgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldExvd2VzdENvbHVtbiA9IChjb2x1bW5IZWlnaHRzOiBudW1iZXJbXVtdKSA9PiB7XG4gICAgbGV0IGxvd2VzdENvbHVtbkhlaWdodCA9IGNvbHVtbkhlaWdodHNbMF0/LlswXSA/PyAwO1xuICAgIGxldCBsb3dlc3RDb2x1bW5JbmRleCA9IDA7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbHVtbkhlaWdodHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvbHVtbkhlaWdodCA9IGNvbHVtbkhlaWdodHNbaV0/LlswXTtcblxuICAgICAgaWYgKGNvbHVtbkhlaWdodCAhPT0gdW5kZWZpbmVkICYmIGNvbHVtbkhlaWdodCA8IGxvd2VzdENvbHVtbkhlaWdodCkge1xuICAgICAgICBsb3dlc3RDb2x1bW5IZWlnaHQgPSBjb2x1bW5IZWlnaHQ7XG4gICAgICAgIGxvd2VzdENvbHVtbkluZGV4ID0gaTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBsb3dlc3RDb2x1bW5IZWlnaHQsIGxvd2VzdENvbHVtbkluZGV4IH07XG4gIH07XG5cbiAgcHJpdmF0ZSBfZ2V0SGlnaGVzdENvbHVtbiA9IChjb2x1bW5IZWlnaHRzOiBudW1iZXJbXVtdKSA9PiB7XG4gICAgbGV0IGhpZ2hlc3RDb2x1bW5IZWlnaHQgPSBjb2x1bW5IZWlnaHRzWzBdPy5bMF0gPz8gMDtcbiAgICBsZXQgaGlnaGVzdENvbHVtbkluZGV4ID0gMDtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sdW1uSGVpZ2h0cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY29sdW1uSGVpZ2h0ID0gY29sdW1uSGVpZ2h0c1tpXT8uWzBdO1xuXG4gICAgICBpZiAoY29sdW1uSGVpZ2h0ICE9PSB1bmRlZmluZWQgJiYgY29sdW1uSGVpZ2h0ID49IGhpZ2hlc3RDb2x1bW5IZWlnaHQpIHtcbiAgICAgICAgaGlnaGVzdENvbHVtbkhlaWdodCA9IGNvbHVtbkhlaWdodDtcbiAgICAgICAgaGlnaGVzdENvbHVtbkluZGV4ID0gaTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBoaWdoZXN0Q29sdW1uSGVpZ2h0LCBoaWdoZXN0Q29sdW1uSW5kZXggfTtcbiAgfTtcbn1cbiJdfQ==
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzb25yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvbWFzb25yeS9jb21wb25lbnRzL21hc29ucnkvbWFzb25yeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFDTCxhQUFhLEVBQ2IsZUFBZSxFQUNmLHNCQUFzQixFQUN0QixpQkFBaUIsRUFDakIsY0FBYyxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNySCxPQUFPLEVBQUUsa0JBQWtCLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7O0FBNkIxRSxNQUFNLE9BQU8sZ0JBQWdCO0lBZjdCO1FBZ0JtQixjQUFTLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDNUIsZ0JBQVcsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBQzFELGVBQVUsR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFZbEUsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBUyxHQUFHLENBQUMsQ0FBQztRQVNoRCxVQUFLLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFB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QUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFUyxjQUFjO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2hFLENBQUM7SUFFTyxlQUFlLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLDJCQUEyQixFQUFFLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUM5RixDQUFDOzhHQW5OVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixpU0FLTyxrQkFBa0Isb0RBbEIxQzs7O0dBR1QsK1RBUVMsc0JBQXNCOzsyRkFFckIsZ0JBQWdCO2tCQWY1QixTQUFTOytCQUNFLFlBQVksWUFDWjs7O0dBR1QsY0FFVyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osS0FBSyxFQUFFLFlBQVk7cUJBQ3BCLFdBQ1EsQ0FBQyxzQkFBc0IsQ0FBQzs4QkFRaEIsTUFBTTtzQkFEdEIsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSXhFLFVBQVU7c0JBRGIsS0FBSztnQkFVRixHQUFHO3NCQUROLEtBQUs7Z0JBVUcsWUFBWTtzQkFEcEIsTUFBTTtnQkFJRSxXQUFXO3NCQURuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIGNyZWF0ZURlc3Ryb3ksXG4gIERFTEFZQUJMRV9UT0tFTixcbiAgT2JzZXJ2ZVJlc2l6ZURpcmVjdGl2ZSxcbiAgc2lnbmFsSG9zdENsYXNzZXMsXG4gIFR5cGVkUXVlcnlMaXN0LFxufSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBvZiwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTUFTT05SWV9JVEVNX1RPS0VOLCBNYXNvbnJ5SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BhcnRpYWxzJztcblxudHlwZSBNYXNvbnJ5U3RhdGUgPSB7XG4gIHByZWZlcnJlZENvbHVtbldpZHRoOiBudW1iZXI7XG4gIGNvbHVtbldpZHRoOiBudW1iZXI7XG4gIGNvbHVtbnM6IG51bWJlcjtcbiAgZ3JpZFJvd0VsSGVpZ2h0czogbnVtYmVyW11bXTtcbiAgaG9zdEhlaWdodDogbnVtYmVyO1xuICBob3N0RGltZW5zaW9uczogRE9NUmVjdCB8IG51bGw7XG4gIGdhcDogbnVtYmVyO1xuICBpc0luaXRpYWxpemVkOiBib29sZWFuO1xuICBpdGVtQ291bnQ6IG51bWJlcjtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LW1hc29ucnknLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgKGV0T2JzZXJ2ZVJlc2l6ZSk9XCJzZXRSZXNpemVFdmVudCgpXCI+PC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2V0TWFzb25yeUl0ZW1dLCBldC1tYXNvbnJ5LWl0ZW0sIG5nLWNvbnRhaW5lclwiIC8+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL21hc29ucnkuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LW1hc29ucnknLFxuICB9LFxuICBpbXBvcnRzOiBbT2JzZXJ2ZVJlc2l6ZURpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE1hc29ucnlDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZWxheWFibGUgPSBpbmplY3QoREVMQVlBQkxFX1RPS0VOLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBNQVNPTlJZX0lURU1fVE9LRU4pLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgcmVhZG9ubHkgX2l0ZW1zPzogVHlwZWRRdWVyeUxpc3Q8TWFzb25yeUl0ZW1Db21wb25lbnQ+O1xuXG4gIEBJbnB1dCgpXG4gIGdldCBjb2x1bVdpZHRoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtV2lkdGgkLmdldFZhbHVlKCkgfHwgMjUwO1xuICB9XG4gIHNldCBjb2x1bVdpZHRoKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fY29sdW1XaWR0aCQubmV4dChudW1iZXJBdHRyaWJ1dGUodmFsdWUsIDI1MCkpO1xuICB9XG4gIHByaXZhdGUgX2NvbHVtV2lkdGgkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDI1MCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IGdhcCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9nYXAkLmdldFZhbHVlKCkgfHwgMDtcbiAgfVxuICBzZXQgZ2FwKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fZ2FwJC5uZXh0KG51bWJlckF0dHJpYnV0ZSh2YWx1ZSwgMTYpKTtcbiAgfVxuICBwcml2YXRlIF9nYXAkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDE2KTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgaW5pdGlhbGl6aW5nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBpbml0aWFsaXplZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kaWRSZXNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RpZEluaXRpYWxpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2hpZGVPdmVyZmxvdyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICByZWFkb25seSBob3N0Q2xhc3NCaW5kaW5ncyA9IHNpZ25hbEhvc3RDbGFzc2VzKHtcbiAgICAnZXQtbWFzb25yeS0taW5pdGlhbGl6ZWQnOiB0b1NpZ25hbCh0aGlzLl9kaWRJbml0aWFsaXplJCksXG4gICAgJ2V0LW1hc29ucnktLWhpZGUtb3ZlcmZsb3cnOiB0b1NpZ25hbCh0aGlzLl9oaWRlT3ZlcmZsb3ckKSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdGU6IE1hc29ucnlTdGF0ZSA9IHtcbiAgICBwcmVmZXJyZWRDb2x1bW5XaWR0aDogMCxcbiAgICBjb2x1bW5XaWR0aDogMCxcbiAgICBjb2x1bW5zOiAwLFxuICAgIGdyaWRSb3dFbEhlaWdodHM6IFtdLFxuICAgIGhvc3RIZWlnaHQ6IDAsXG4gICAgaG9zdERpbWVuc2lvbnM6IG51bGwsXG4gICAgZ2FwOiAwLFxuICAgIGl0ZW1Db3VudDogMCxcbiAgICBpc0luaXRpYWxpemVkOiBmYWxzZSxcbiAgfTtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pdGVtcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2RlbGF5YWJsZT8uZW5hYmxlRGVsYXllZCgpO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5faXRlbXMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLl9pdGVtcykpLCB0aGlzLl9kaWRSZXNpemUkLCB0aGlzLl9jb2x1bVdpZHRoJCwgdGhpcy5fZ2FwJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDEpLFxuICAgICAgICB0YXAoKFssIGRpZFJlc2l6ZSwgY29sV2lkdGgsIGdhcF0pID0+IHtcbiAgICAgICAgICBpZiAoZGlkUmVzaXplKSB7XG4gICAgICAgICAgICB0aGlzLl9kaWRSZXNpemUkLm5leHQoZmFsc2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGlzQ29tcGxldGVJbnZhbGlkID1cbiAgICAgICAgICAgIGRpZFJlc2l6ZSB8fCBjb2xXaWR0aCAhPT0gdGhpcy5fc3RhdGUucHJlZmVycmVkQ29sdW1uV2lkdGggfHwgZ2FwICE9PSB0aGlzLl9zdGF0ZS5nYXA7XG5cbiAgICAgICAgICB0aGlzLmludmFsaWRhdGUoeyBwYXJ0aWFsOiAhaXNDb21wbGV0ZUludmFsaWQgfSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fZGlkUmVzaXplJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLl9oaWRlT3ZlcmZsb3ckLm5leHQodHJ1ZSkpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGltZXIoMTUwKSksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLl9oaWRlT3ZlcmZsb3ckLm5leHQoZmFsc2UpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX2l0ZW1zLmNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGgodGhpcy5faXRlbXMpLFxuICAgICAgICBzd2l0Y2hNYXAoKGl0ZW1zKSA9PlxuICAgICAgICAgIGl0ZW1zLmxlbmd0aFxuICAgICAgICAgICAgPyBjb21iaW5lTGF0ZXN0KFxuICAgICAgICAgICAgICAgIGl0ZW1zXG4gICAgICAgICAgICAgICAgICAudG9BcnJheSgpXG4gICAgICAgICAgICAgICAgICAuZmlsdGVyKChpKTogaSBpcyBNYXNvbnJ5SXRlbUNvbXBvbmVudCA9PiAhIWkpXG4gICAgICAgICAgICAgICAgICAubWFwKChpKSA9PiBpLmlzUG9zaXRpb25lZCQpLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IG9mKFtdKSxcbiAgICAgICAgKSxcbiAgICAgICAgc3dpdGNoTWFwKChwb3NpdGlvbmVkKSA9PiB7XG4gICAgICAgICAgY29uc3QgYWxsUG9zaXRpb25lZCA9IHBvc2l0aW9uZWQuZXZlcnkoKGkpID0+IGkpO1xuXG4gICAgICAgICAgaWYgKCFhbGxQb3NpdGlvbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9kaWRJbml0aWFsaXplJC5uZXh0KGFsbFBvc2l0aW9uZWQpO1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXppbmcuZW1pdCgpO1xuICAgICAgICAgICAgdGhpcy5fZGVsYXlhYmxlPy5lbmFibGVEZWxheWVkKCk7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRpbWVyKDEwMCkucGlwZShcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuX2RpZEluaXRpYWxpemUkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgIHRoaXMuX2RlbGF5YWJsZT8uZGlzYWJsZURlbGF5ZWQoKTtcbiAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZC5lbWl0KCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGludmFsaWRhdGUoY29uZmlnPzogeyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gICAgY29uc3QgaXRlbUxpc3QgPSB0aGlzLl9pdGVtcztcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX3N0YXRlO1xuXG4gICAgaWYgKCFpdGVtTGlzdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1zID0gaXRlbUxpc3QudG9BcnJheSgpLmZpbHRlcigoaSk6IGkgaXMgTWFzb25yeUl0ZW1Db21wb25lbnQgPT4gISFpKTtcblxuICAgIGlmICghY29uZmlnPy5wYXJ0aWFsIHx8ICFzdGF0ZS5pc0luaXRpYWxpemVkKSB7XG4gICAgICBzdGF0ZS5wcmVmZXJyZWRDb2x1bW5XaWR0aCA9IHRoaXMuY29sdW1XaWR0aDtcbiAgICAgIHN0YXRlLmhvc3REaW1lbnNpb25zID0gdGhpcy5fZ2V0SG9zdERpbWVuc2lvbnMoKTtcbiAgICAgIHN0YXRlLmNvbHVtbnMgPSBNYXRoLmZsb29yKHN0YXRlLmhvc3REaW1lbnNpb25zLndpZHRoIC8gdGhpcy5jb2x1bVdpZHRoKTtcbiAgICAgIHN0YXRlLmdhcCA9IHRoaXMuZ2FwO1xuICAgICAgc3RhdGUuaXRlbUNvdW50ID0gaXRlbXMubGVuZ3RoO1xuICAgICAgc3RhdGUuY29sdW1uV2lkdGggPSAoc3RhdGUuaG9zdERpbWVuc2lvbnMud2lkdGggLSAoc3RhdGUuY29sdW1ucyAtIDEpICogc3RhdGUuZ2FwKSAvIHN0YXRlLmNvbHVtbnM7XG4gICAgICB0aGlzLl9zZXRDb2x1bW5XaWR0aChzdGF0ZS5jb2x1bW5XaWR0aCk7XG5cbiAgICAgIC8qKlxuICAgICAgICogRGF0YSBzdHJ1Y3R1cmU6XG4gICAgICAgKiBbXG4gICAgICAgKiAgW2N1cnJlbnRUb3RhbEhlaWdodE9mQ29sLCBpdGVtSGVpZ2h0LCBpdGVtSGVpZ2h0LCBpdGVtSGVpZ2h0XSxcbiAgICAgICAqICBbY3VycmVudFRvdGFsSGVpZ2h0T2ZDb2wsIGl0ZW1IZWlnaHQsIGl0ZW1IZWlnaHQsIGl0ZW1IZWlnaHRdLFxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBzdGF0ZS5ncmlkUm93RWxIZWlnaHRzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogc3RhdGUuY29sdW1ucyB9KS5tYXAoKCkgPT4gWzBdKTtcblxuICAgICAgdGhpcy5fcGFpbnRNYXNvbnJ5KDAsIGl0ZW1zKTtcblxuICAgICAgc3RhdGUuaXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZyb21JbmRleCA9IGl0ZW1zLmZpbmRJbmRleCgoaXRlbSkgPT4gIWl0ZW0uaXNQb3NpdGlvbmVkKTtcblxuICAgICAgLy8gaXRlbSBjb3VudCAyMCBmcm9tSW5kZXggMjAgKyAxIC0+IDIxID0+IHBhcnRpYWwgaW52YWxpZGF0aW9uXG4gICAgICBpZiAoZnJvbUluZGV4ICsgMSA+IHN0YXRlLml0ZW1Db3VudCkge1xuICAgICAgICBzdGF0ZS5pdGVtQ291bnQgPSBpdGVtcy5sZW5ndGg7XG4gICAgICAgIHRoaXMuX3BhaW50TWFzb25yeShmcm9tSW5kZXgsIGl0ZW1zKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGRvIGEgZnVsbCBpbnZhbGlkYXRpb24gdGhlIGZyb21JbmRleCBpcyBub3QgdGhlIGZpcnN0IG5ldyBpdGVtXG4gICAgICB0aGlzLmludmFsaWRhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9wYWludE1hc29ucnkoZnJvbUluZGV4ID0gMCwgaXRlbXM6IE1hc29ucnlJdGVtQ29tcG9uZW50W10pIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX3N0YXRlO1xuXG4gICAgZm9yIChsZXQgaXRlbUluZGV4ID0gZnJvbUluZGV4OyBpdGVtSW5kZXggPCBpdGVtcy5sZW5ndGg7IGl0ZW1JbmRleCsrKSB7XG4gICAgICBjb25zdCBpdGVtID0gaXRlbXNbaXRlbUluZGV4XTtcblxuICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpbml0aWFsSXRlbURpbWVuc2lvbnMgPSBpdGVtLmluaXRpYWxEaW1lbnNpb25zO1xuICAgICAgY29uc3QgdXBkYXRlZERpbWVuc2lvbnMgPSBpdGVtLmRpbWVuc2lvbnM7XG5cbiAgICAgIGlmICghaW5pdGlhbEl0ZW1EaW1lbnNpb25zIHx8ICF1cGRhdGVkRGltZW5zaW9ucykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBsb3dlc3RDb2x1bW5IZWlnaHQsIGxvd2VzdENvbHVtbkluZGV4IH0gPSB0aGlzLl9nZXRMb3dlc3RDb2x1bW4oc3RhdGUuZ3JpZFJvd0VsSGVpZ2h0cyk7XG5cbiAgICAgIGNvbnN0IHggPSBzdGF0ZS5jb2x1bW5XaWR0aCAqIGxvd2VzdENvbHVtbkluZGV4ICsgbG93ZXN0Q29sdW1uSW5kZXggKiBzdGF0ZS5nYXA7XG5cbiAgICAgIGl0ZW0uc2V0UG9zaXRpb24oeCwgbG93ZXN0Q29sdW1uSGVpZ2h0LCB1cGRhdGVkRGltZW5zaW9ucy5oZWlnaHQpO1xuXG4gICAgICBzdGF0ZS5ncmlkUm93RWxIZWlnaHRzW2xvd2VzdENvbHVtbkluZGV4XSEucHVzaCh1cGRhdGVkRGltZW5zaW9ucy5oZWlnaHQpO1xuICAgICAgc3RhdGUuZ3JpZFJvd0VsSGVpZ2h0c1tsb3dlc3RDb2x1bW5JbmRleF0hWzBdICs9IHVwZGF0ZWREaW1lbnNpb25zLmhlaWdodCArIHN0YXRlLmdhcDtcbiAgICB9XG5cbiAgICBzdGF0ZS5ob3N0SGVpZ2h0ID0gdGhpcy5fZ2V0SGlnaGVzdENvbHVtbihzdGF0ZS5ncmlkUm93RWxIZWlnaHRzKS5oaWdoZXN0Q29sdW1uSGVpZ2h0IC0gc3RhdGUuZ2FwO1xuXG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdoZWlnaHQnLCBgJHtzdGF0ZS5ob3N0SGVpZ2h0fXB4YCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0UmVzaXplRXZlbnQoKSB7XG4gICAgdGhpcy5fZGlkUmVzaXplJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0SG9zdERpbWVuc2lvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldENvbHVtbldpZHRoKHdpZHRoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZXQtbWFzb25yeS1jb2x1bW4td2lkdGgnLCBgJHt3aWR0aH1weGApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0TG93ZXN0Q29sdW1uID0gKGNvbHVtbkhlaWdodHM6IG51bWJlcltdW10pID0+IHtcbiAgICBsZXQgbG93ZXN0Q29sdW1uSGVpZ2h0ID0gY29sdW1uSGVpZ2h0c1swXT8uWzBdID8/IDA7XG4gICAgbGV0IGxvd2VzdENvbHVtbkluZGV4ID0gMDtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sdW1uSGVpZ2h0cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY29sdW1uSGVpZ2h0ID0gY29sdW1uSGVpZ2h0c1tpXT8uWzBdO1xuXG4gICAgICBpZiAoY29sdW1uSGVpZ2h0ICE9PSB1bmRlZmluZWQgJiYgY29sdW1uSGVpZ2h0IDwgbG93ZXN0Q29sdW1uSGVpZ2h0KSB7XG4gICAgICAgIGxvd2VzdENvbHVtbkhlaWdodCA9IGNvbHVtbkhlaWdodDtcbiAgICAgICAgbG93ZXN0Q29sdW1uSW5kZXggPSBpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IGxvd2VzdENvbHVtbkhlaWdodCwgbG93ZXN0Q29sdW1uSW5kZXggfTtcbiAgfTtcblxuICBwcml2YXRlIF9nZXRIaWdoZXN0Q29sdW1uID0gKGNvbHVtbkhlaWdodHM6IG51bWJlcltdW10pID0+IHtcbiAgICBsZXQgaGlnaGVzdENvbHVtbkhlaWdodCA9IGNvbHVtbkhlaWdodHNbMF0/LlswXSA/PyAwO1xuICAgIGxldCBoaWdoZXN0Q29sdW1uSW5kZXggPSAwO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2x1bW5IZWlnaHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjb2x1bW5IZWlnaHQgPSBjb2x1bW5IZWlnaHRzW2ldPy5bMF07XG5cbiAgICAgIGlmIChjb2x1bW5IZWlnaHQgIT09IHVuZGVmaW5lZCAmJiBjb2x1bW5IZWlnaHQgPj0gaGlnaGVzdENvbHVtbkhlaWdodCkge1xuICAgICAgICBoaWdoZXN0Q29sdW1uSGVpZ2h0ID0gY29sdW1uSGVpZ2h0O1xuICAgICAgICBoaWdoZXN0Q29sdW1uSW5kZXggPSBpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IGhpZ2hlc3RDb2x1bW5IZWlnaHQsIGhpZ2hlc3RDb2x1bW5JbmRleCB9O1xuICB9O1xufVxuIl19
|
|
@@ -5,12 +5,14 @@ import { PortalModule } from '@angular/cdk/portal';
|
|
|
5
5
|
import { DOCUMENT } from '@angular/common';
|
|
6
6
|
import { ChangeDetectionStrategy, Component, ElementRef, NgZone, ViewEncapsulation, inject } from '@angular/core';
|
|
7
7
|
import { ANIMATED_LIFECYCLE_TOKEN, AnimatedLifecycleDirective, elementCanScroll, nextFrame } from '@ethlete/core';
|
|
8
|
+
import { ProvideThemeDirective, THEME_PROVIDER } from '@ethlete/theming';
|
|
8
9
|
import { Subject, fromEvent, merge, takeUntil, tap } from 'rxjs';
|
|
9
10
|
import { SwipeHandlerService } from '../../../../../../services';
|
|
10
11
|
import { OVERLAY_CONFIG } from '../../constants';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
import * as i1 from "@ethlete/core";
|
|
13
|
-
import * as i2 from "@
|
|
14
|
+
import * as i2 from "@ethlete/theming";
|
|
15
|
+
import * as i3 from "@angular/cdk/portal";
|
|
14
16
|
const isTouchEvent = (event) => {
|
|
15
17
|
return event.type[0] === 't';
|
|
16
18
|
};
|
|
@@ -19,10 +21,15 @@ export class OverlayContainerComponent extends CdkDialogContainer {
|
|
|
19
21
|
super(inject(ElementRef), inject(FocusTrapFactory), inject(DOCUMENT), inject(OVERLAY_CONFIG), inject(InteractivityChecker), inject(NgZone), inject(CdkOverlayRef), inject(FocusMonitor));
|
|
20
22
|
this._swipeHandlerService = inject(SwipeHandlerService);
|
|
21
23
|
this._dragToDismissStop$ = new Subject();
|
|
24
|
+
this._themeProvider = inject(THEME_PROVIDER);
|
|
25
|
+
this._parentThemeProvider = inject(THEME_PROVIDER, { optional: true, skipSelf: true });
|
|
22
26
|
this._animatedLifecycle = inject(ANIMATED_LIFECYCLE_TOKEN);
|
|
23
27
|
this.cdkOverlayRef = inject(CdkOverlayRef);
|
|
24
28
|
this.overlayRef = null;
|
|
25
29
|
this.elementRef = this._elementRef;
|
|
30
|
+
if (this._parentThemeProvider) {
|
|
31
|
+
this._themeProvider.syncWithProvider(this._parentThemeProvider);
|
|
32
|
+
}
|
|
26
33
|
}
|
|
27
34
|
_contentAttached() {
|
|
28
35
|
super._contentAttached();
|
|
@@ -253,7 +260,7 @@ export class OverlayContainerComponent extends CdkDialogContainer {
|
|
|
253
260
|
}
|
|
254
261
|
}
|
|
255
262
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
256
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: OverlayContainerComponent, isStandalone: true, selector: "et-overlay-container", host: { attributes: { "tabindex": "-1" }, properties: { "attr.aria-modal": "_config.ariaModal", "id": "_config.id", "attr.role": "_config.role", "attr.aria-labelledby": "_config.ariaLabel ? null : _ariaLabelledBy", "attr.aria-label": "_config.ariaLabel", "attr.aria-describedby": "_config.ariaDescribedBy || null", "class.et-with-default-animation": "!_config.customAnimated" }, classAttribute: "et-overlay" }, usesInheritance: true, hostDirectives: [{ directive: i1.AnimatedLifecycleDirective }], ngImport: i0, template: `<ng-template cdkPortalOutlet></ng-template>`, isInline: true, styles: [".et-overlay{position:relative;display:grid;overflow:hidden;pointer-events:all;outline:none}.et-overlay>*{overflow:auto}.et-overlay-pane{pointer-events:none}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-to{transform:scale(0)!important;border-radius:250px}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),border-radius .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-1),border-radius .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-active{transition:transform .15s var(--ease-in-5),border-radius .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet{bottom:-50px;padding-bottom:50px}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-to{transform:translateY(100%)!important}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--top-sheet{top:-50px;padding-top:50px}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-to{transform:translateY(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--left-sheet{left:-50px;padding-left:50px}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-to{transform:translate(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--right-sheet{right:-50px;padding-right:50px}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-to{transform:translate(100%)!important}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-from{opacity:0!important;transform:scale(.85)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-to{opacity:0!important;transform:scale(.7)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),opacity .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-2),opacity .3s var(--ease-out-5)}}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-active{transition:transform .15s var(--ease-out-5),opacity .15s var(--ease-out-5)}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type:
|
|
263
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: OverlayContainerComponent, isStandalone: true, selector: "et-overlay-container", host: { attributes: { "tabindex": "-1" }, properties: { "attr.aria-modal": "_config.ariaModal", "id": "_config.id", "attr.role": "_config.role", "attr.aria-labelledby": "_config.ariaLabel ? null : _ariaLabelledBy", "attr.aria-label": "_config.ariaLabel", "attr.aria-describedby": "_config.ariaDescribedBy || null", "class.et-with-default-animation": "!_config.customAnimated" }, classAttribute: "et-overlay" }, usesInheritance: true, hostDirectives: [{ directive: i1.AnimatedLifecycleDirective }, { directive: i2.ProvideThemeDirective }], ngImport: i0, template: `<ng-template cdkPortalOutlet></ng-template>`, isInline: true, styles: [".et-overlay{position:relative;display:grid;overflow:hidden;pointer-events:all;outline:none}.et-overlay>*{overflow:auto}.et-overlay-pane{pointer-events:none}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-to{transform:scale(0)!important;border-radius:250px}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),border-radius .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-1),border-radius .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-active{transition:transform .15s var(--ease-in-5),border-radius .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet{bottom:-50px;padding-bottom:50px}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-to{transform:translateY(100%)!important}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--top-sheet{top:-50px;padding-top:50px}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-to{transform:translateY(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--left-sheet{left:-50px;padding-left:50px}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-to{transform:translate(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--right-sheet{right:-50px;padding-right:50px}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-to{transform:translate(100%)!important}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-from{opacity:0!important;transform:scale(.85)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-to{opacity:0!important;transform:scale(.7)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),opacity .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-2),opacity .3s var(--ease-out-5)}}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-active{transition:transform .15s var(--ease-out-5),opacity .15s var(--ease-out-5)}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
257
264
|
}
|
|
258
265
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayContainerComponent, decorators: [{
|
|
259
266
|
type: Component,
|
|
@@ -267,6 +274,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
267
274
|
'[attr.aria-label]': '_config.ariaLabel',
|
|
268
275
|
'[attr.aria-describedby]': '_config.ariaDescribedBy || null',
|
|
269
276
|
'[class.et-with-default-animation]': '!_config.customAnimated',
|
|
270
|
-
}, standalone: true, imports: [PortalModule], hostDirectives: [AnimatedLifecycleDirective], styles: [".et-overlay{position:relative;display:grid;overflow:hidden;pointer-events:all;outline:none}.et-overlay>*{overflow:auto}.et-overlay-pane{pointer-events:none}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-to{transform:scale(0)!important;border-radius:250px}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),border-radius .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-1),border-radius .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-active{transition:transform .15s var(--ease-in-5),border-radius .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet{bottom:-50px;padding-bottom:50px}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-to{transform:translateY(100%)!important}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--top-sheet{top:-50px;padding-top:50px}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-to{transform:translateY(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--left-sheet{left:-50px;padding-left:50px}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-to{transform:translate(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--right-sheet{right:-50px;padding-right:50px}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-to{transform:translate(100%)!important}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-from{opacity:0!important;transform:scale(.85)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-to{opacity:0!important;transform:scale(.7)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),opacity .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-2),opacity .3s var(--ease-out-5)}}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-active{transition:transform .15s var(--ease-out-5),opacity .15s var(--ease-out-5)}\n"] }]
|
|
277
|
+
}, standalone: true, imports: [PortalModule], hostDirectives: [AnimatedLifecycleDirective, ProvideThemeDirective], styles: [".et-overlay{position:relative;display:grid;overflow:hidden;pointer-events:all;outline:none}.et-overlay>*{overflow:auto}.et-overlay-pane{pointer-events:none}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-to{transform:scale(0)!important;border-radius:250px}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),border-radius .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-1),border-radius .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-active{transition:transform .15s var(--ease-in-5),border-radius .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet{bottom:-50px;padding-bottom:50px}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-to{transform:translateY(100%)!important}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--top-sheet{top:-50px;padding-top:50px}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-to{transform:translateY(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--left-sheet{left:-50px;padding-left:50px}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-to{transform:translate(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--right-sheet{right:-50px;padding-right:50px}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-to{transform:translate(100%)!important}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-from{opacity:0!important;transform:scale(.85)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-to{opacity:0!important;transform:scale(.7)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),opacity .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-2),opacity .3s var(--ease-out-5)}}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-active{transition:transform .15s var(--ease-out-5),opacity .15s var(--ease-out-5)}\n"] }]
|
|
271
278
|
}], ctorParameters: function () { return []; } });
|
|
272
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvb3ZlcmxheS1jb250YWluZXIvb3ZlcmxheS1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxJQUFJLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsMEJBQTBCLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUlqRCxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQVksRUFBdUIsRUFBRTtJQUN6RCxPQUFP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YXBGYWN0b3J5LCBJbnRlcmFjdGl2aXR5Q2hlY2tlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENka0RpYWxvZ0NvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xuaW1wb3J0IHsgT3ZlcmxheVJlZiBhcyBDZGtPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBOZ1pvbmUsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFOSU1BVEVEX0xJRkVDWUNMRV9UT0tFTiwgQW5pbWF0ZWRMaWZlY3ljbGVEaXJlY3RpdmUsIGVsZW1lbnRDYW5TY3JvbGwsIG5leHRGcmFtZSB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCBtZXJnZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN3aXBlSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBTd2lwZUVuZEV2ZW50LCBTd2lwZVVwZGF0ZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgT1ZFUkxBWV9DT05GSUcgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgT3ZlcmxheUNvbmZpZywgT3ZlcmxheURyYWdUb0Rpc21pc3NDb25maWcgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBPdmVybGF5UmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5jb25zdCBpc1RvdWNoRXZlbnQgPSAoZXZlbnQ6IEV2ZW50KTogZXZlbnQgaXMgVG91Y2hFdmVudCA9PiB7XG4gIHJldHVybiBldmVudC50eXBlWzBdID09PSAndCc7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC1vdmVybGF5LWNvbnRhaW5lcicsXG4gIHN0eWxlVXJsczogWycuL292ZXJsYXktY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlOiBgPG5nLXRlbXBsYXRlIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPmAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC1vdmVybGF5JyxcbiAgICB0YWJpbmRleDogJy0xJyxcbiAgICAnW2F0dHIuYXJpYS1tb2RhbF0nOiAnX2NvbmZpZy5hcmlhTW9kYWwnLFxuICAgICdbaWRdJzogJ19jb25maWcuaWQnLFxuICAgICdbYXR0ci5yb2xlXSc6ICdfY29uZmlnLnJvbGUnLFxuICAgICdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogJ19jb25maWcuYXJpYUxhYmVsID8gbnVsbCA6IF9hcmlhTGFiZWxsZWRCeScsXG4gICAgJ1thdHRyLmFyaWEtbGFiZWxdJzogJ19jb25maWcuYXJpYUxhYmVsJyxcbiAgICAnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnX2NvbmZpZy5hcmlhRGVzY3JpYmVkQnkgfHwgbnVsbCcsXG4gICAgJ1tjbGFzcy5ldC13aXRoLWRlZmF1bHQtYW5pbWF0aW9uXSc6ICchX2NvbmZpZy5jdXN0b21BbmltYXRlZCcsXG4gIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtQb3J0YWxNb2R1bGVdLFxuICBob3N0RGlyZWN0aXZlczogW0FuaW1hdGVkTGlmZWN5Y2xlRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcmxheUNvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIENka0RpYWxvZ0NvbnRhaW5lcjxPdmVybGF5Q29uZmlnPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N3aXBlSGFuZGxlclNlcnZpY2UgPSBpbmplY3QoU3dpcGVIYW5kbGVyU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RyYWdUb0Rpc21pc3NTdG9wJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgX2FuaW1hdGVkTGlmZWN5Y2xlID0gaW5qZWN0KEFOSU1BVEVEX0xJRkVDWUNMRV9UT0tFTik7XG4gIHJlYWRvbmx5IGNka092ZXJsYXlSZWYgPSBpbmplY3QoQ2RrT3ZlcmxheVJlZik7XG5cbiAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsO1xuXG4gIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSB0aGlzLl9lbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFxuICAgICAgaW5qZWN0KEVsZW1lbnRSZWYpLFxuICAgICAgaW5qZWN0KEZvY3VzVHJhcEZhY3RvcnkpLFxuICAgICAgaW5qZWN0KERPQ1VNRU5UKSxcbiAgICAgIGluamVjdChPVkVSTEFZX0NPTkZJRyksXG4gICAgICBpbmplY3QoSW50ZXJhY3Rpdml0eUNoZWNrZXIpLFxuICAgICAgaW5qZWN0KE5nWm9uZSksXG4gICAgICBpbmplY3QoQ2RrT3ZlcmxheVJlZiksXG4gICAgICBpbmplY3QoRm9jdXNNb25pdG9yKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIF9jb250ZW50QXR0YWNoZWQoKTogdm9pZCB7XG4gICAgc3VwZXIuX2NvbnRlbnRBdHRhY2hlZCgpO1xuXG4gICAgbmV4dEZyYW1lKCgpID0+IHtcbiAgICAgIHRoaXMuX2FuaW1hdGVkTGlmZWN5Y2xlLmVudGVyKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX2NhcHR1cmVJbml0aWFsRm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9jb25maWcuZGVsYXlGb2N1c1RyYXApIHtcbiAgICAgIHRoaXMuX3RyYXBGb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfb3BlbkFuaW1hdGlvbkRvbmUoKSB7XG4gICAgaWYgKHRoaXMuX2NvbmZpZy5kZWxheUZvY3VzVHJhcCkge1xuICAgICAgdGhpcy5fdHJhcEZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgX2VuYWJsZURyYWdUb0Rpc21pc3MoY29uZmlnOiBPdmVybGF5RHJhZ1RvRGlzbWlzc0NvbmZpZykge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmKSByZXR1cm47XG5cbiAgICB0aGlzLl9kcmFnVG9EaXNtaXNzU3RvcCQubmV4dCgpO1xuXG4gICAgY29uc3QgZWwgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgbGV0IHN3aXBlSWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIGxldCBpc1NlbGVjdGlvbkFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgY29uc3QgY2FuY2VsRHJhZyA9ICgpID0+IHtcbiAgICAgIGVsLnN0eWxlLnNldFByb3BlcnR5KCd0cmFuc2l0aW9uJywgJ3RyYW5zZm9ybSAxMDBtcyB2YXIoLS1lYXNlLW91dC0xKScpO1xuICAgICAgZWwuc3R5bGUudHJhbnNmb3JtID1cbiAgICAgICAgY29uZmlnLmRpcmVjdGlvbiA9PT0gJ3RvLWJvdHRvbScgfHwgY29uZmlnLmRpcmVjdGlvbiA9PT0gJ3RvLXRvcCcgPyAndHJhbnNsYXRlWSgwKScgOiAndHJhbnNsYXRlWCgwKSc7XG4gICAgICBzd2lwZUlkID0gbnVsbDtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KCd0cmFuc2l0aW9uJyk7XG4gICAgICAgIGVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KCd0cmFuc2Zvcm0nKTtcbiAgICAgIH0sIDEwMCk7XG4gICAgfTtcblxuICAgIG1lcmdlKGZyb21FdmVudDxUb3VjaEV2ZW50PihlbCwgJ3RvdWNoc3RhcnQnKSwgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGVsLCAnbW91c2Vkb3duJykpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2RyYWdUb0Rpc21pc3NTdG9wJCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm92ZXJsYXlSZWYuYWZ0ZXJDbG9zZWQoKSksXG4gICAgICAgIHRhcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoaXNTZWxlY3Rpb25BY3RpdmUpIHJldHVybjtcblxuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICBjb25zdCB0YWcgPSB0YXJnZXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgICAgaWYgKHRhZyA9PT0gJ2lucHV0JyB8fCB0YWcgPT09ICd0ZXh0YXJlYScgfHwgdGFnID09PSAnc2VsZWN0JyB8fCB0YWcgPT09ICdidXR0b24nIHx8IHRhZyA9PT0gJ2EnKSByZXR1cm47XG5cbiAgICAgICAgICBzd2lwZUlkID0gdGhpcy5fc3dpcGVIYW5kbGVyU2VydmljZS5zdGFydFN3aXBlKGV2ZW50KTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICBmcm9tRXZlbnQ8RXZlbnQ+KGRvY3VtZW50LCAnc2VsZWN0aW9uY2hhbmdlJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kcmFnVG9EaXNtaXNzU3RvcCQpLCB0YWtlVW50aWwodGhpcy5vdmVybGF5UmVmLmFmdGVyQ2xvc2VkKCkpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IGRvY3VtZW50LmdldFNlbGVjdGlvbigpO1xuXG4gICAgICAgIGlmICghc2VsZWN0aW9uIHx8ICFzZWxlY3Rpb24udG9TdHJpbmcoKS5sZW5ndGgpIHtcbiAgICAgICAgICBpc1NlbGVjdGlvbkFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlzU2VsZWN0aW9uQWN0aXZlID0gdHJ1ZTtcblxuICAgICAgICBjYW5jZWxEcmFnKCk7XG4gICAgICB9KTtcblxuICAgIG1lcmdlKGZyb21FdmVudDxUb3VjaEV2ZW50PihlbCwgJ3RvdWNobW92ZScpLCBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZWwsICdtb3VzZW1vdmUnKSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZHJhZ1RvRGlzbWlzc1N0b3AkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub3ZlcmxheVJlZi5hZnRlckNsb3NlZCgpKSxcbiAgICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChzd2lwZUlkID09PSBudWxsIHx8IGlzU2VsZWN0aW9uQWN0aXZlKSByZXR1cm47XG5cbiAgICAgICAgICBpZiAoaXNUb3VjaEV2ZW50KGV2ZW50KSkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgICAgICBjb25zdCByZWN1cnNpdmVGaW5kU2Nyb2xsYWJsZVBhcmVudCA9IChlbDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB8IG51bGwgPT4ge1xuICAgICAgICAgICAgICBpZiAoIWVsKSByZXR1cm4gbnVsbDtcblxuICAgICAgICAgICAgICBpZiAoY29uZmlnLmRpcmVjdGlvbiA9PT0gJ3RvLWJvdHRvbScgfHwgY29uZmlnLmRpcmVjdGlvbiA9PT0gJ3RvLXRvcCcpIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudENhblNjcm9sbChlbCwgJ3knKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudENhblNjcm9sbChlbCwgJ3gnKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICghZWwucGFyZW50RWxlbWVudCB8fCBlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdldC1vdmVybGF5LWNvbnRhaW5lcicpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAgIHJldHVybiByZWN1cnNpdmVGaW5kU2Nyb2xsYWJsZVBhcmVudChlbC5wYXJlbnRFbGVtZW50KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbGFibGVFbGVtZW50ID0gcmVjdXJzaXZlRmluZFNjcm9sbGFibGVQYXJlbnQodGFyZ2V0KTtcblxuICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVFbGVtZW50KSB7XG4gICAgICAgICAgICAgIGxldCBjYW5jZWwgPSBmYWxzZTtcbiAgICAgICAgICAgICAgaWYgKGNvbmZpZy5kaXJlY3Rpb24gPT09ICd0by1ib3R0b20nKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVFbGVtZW50LnNjcm9sbFRvcCAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29uZmlnLmRpcmVjdGlvbiA9PT0gJ3RvLXRvcCcpIHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKHNjcm9sbGFibGVFbGVtZW50LnNjcm9sbFRvcCkgIT09XG4gICAgICAgICAgICAgICAgICBzY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxIZWlnaHQgLSBzY3JvbGxhYmxlRWxlbWVudC5jbGllbnRIZWlnaHRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbmZpZy5kaXJlY3Rpb24gPT09ICd0by1yaWdodCcpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsTGVmdCAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZChzY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxMZWZ0KSAhPT1cbiAgICAgICAgICAgICAgICAgIHNjcm9sbGFibGVFbGVtZW50LnNjcm9sbFdpZHRoIC0gc2Nyb2xsYWJsZUVsZW1lbnQuY2xpZW50V2lkdGhcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKGNhbmNlbCkge1xuICAgICAgICAgICAgICAgIGNhbmNlbERyYWcoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHN3aXBlRGF0YSA9IHRoaXMuX3N3aXBlSGFuZGxlclNlcnZpY2UudXBkYXRlU3dpcGUoc3dpcGVJZCwgZXZlbnQpO1xuXG4gICAgICAgICAgaWYgKCFzd2lwZURhdGEpIHJldHVybjtcblxuICAgICAgICAgIGNvbnN0IGNzcyA9IHRoaXMuX2RlZmF1bHRTd2lwZU1vdmVTdHlsZUludGVycG9sYXRvcihzd2lwZURhdGEsIGNvbmZpZyk7XG5cbiAgICAgICAgICBPYmplY3QuZW50cmllcyhjc3MpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgZWwuc3R5bGUuc2V0UHJvcGVydHkoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgbWVyZ2UoZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KGVsLCAndG91Y2hlbmQnKSwgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGVsLCAnbW91c2V1cCcpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kcmFnVG9EaXNtaXNzU3RvcCQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vdmVybGF5UmVmLmFmdGVyQ2xvc2VkKCkpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIGlmIChzd2lwZUlkID09PSBudWxsIHx8IGlzU2VsZWN0aW9uQWN0aXZlKSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCBzd2lwZURhdGEgPSB0aGlzLl9zd2lwZUhhbmRsZXJTZXJ2aWNlLmVuZFN3aXBlKHN3aXBlSWQpO1xuICAgICAgICAgIHN3aXBlSWQgPSBudWxsO1xuXG4gICAgICAgICAgaWYgKCFzd2lwZURhdGEpIHJldHVybjtcblxuICAgICAgICAgIGNvbnN0IGNzcyA9IHRoaXMuX2RlZmF1bHRTd2lwZUVuZFN0eWxlSW50ZXJwb2xhdG9yKHN3aXBlRGF0YSwgY29uZmlnKTtcblxuICAgICAgICAgIGlmICghY3NzKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWY/Ll9jbG9zZU92ZXJsYXlWaWEoJ3RvdWNoJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoY3NzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdjbGVhblVwJykge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCAhdmFsdWUpIHJldHVybjtcblxuICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB2YWx1ZS5mbihlbCk7XG4gICAgICAgICAgICAgIH0sIHZhbHVlLmRlbGF5KTtcblxuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGVsLnN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFsdWUgYXMgc3RyaW5nKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBfZGlzYWJsZURyYWdUb0Rpc21pc3MoKSB7XG4gICAgdGhpcy5fZHJhZ1RvRGlzbWlzc1N0b3AkLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RlZmF1bHRTd2lwZU1vdmVTdHlsZUludGVycG9sYXRvcihldmVudDogU3dpcGVVcGRhdGVFdmVudCwgY29uZmlnOiBPdmVybGF5RHJhZ1RvRGlzbWlzc0NvbmZpZykge1xuICAgIGNvbnN0IHsgZGlyZWN0aW9uIH0gPSBjb25maWc7XG4gICAgY29uc3QgeyBtb3ZlbWVudFgsIG1vdmVtZW50WSB9ID0gZXZlbnQ7XG5cbiAgICBpZiAoZGlyZWN0aW9uID09PSAndG8tYm90dG9tJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWSgke21vdmVtZW50WSA8IDAgPyAwIDogbW92ZW1lbnRZfXB4KWAsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAndG8tdG9wJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWSgke21vdmVtZW50WSA+IDAgPyAwIDogbW92ZW1lbnRZfXB4KWAsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAndG8tbGVmdCcpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVgoJHttb3ZlbWVudFggPiAwID8gMCA6IG1vdmVtZW50WH1weClgLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWCgke21vdmVtZW50WCA8IDAgPyAwIDogbW92ZW1lbnRYfXB4KWAsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2RlZmF1bHRTd2lwZUVuZFN0eWxlSW50ZXJwb2xhdG9yKGV2ZW50OiBTd2lwZUVuZEV2ZW50LCBjb25maWc6IE92ZXJsYXlEcmFnVG9EaXNtaXNzQ29uZmlnKSB7XG4gICAgY29uc3QgeyBkaXJlY3Rpb24sIG1pbkRpc3RhbmNlVG9EaXNtaXNzID0gMTUwLCBtaW5WZWxvY2l0eVRvRGlzbWlzcyA9IDE1MCB9ID0gY29uZmlnO1xuICAgIGNvbnN0IHsgbW92ZW1lbnRYLCBtb3ZlbWVudFksIHBpeGVsUGVyU2Vjb25kWCwgcGl4ZWxQZXJTZWNvbmRZIH0gPSBldmVudDtcblxuICAgIGNvbnN0IGNsZWFuVXAgPSB7XG4gICAgICBkZWxheTogMTAwLFxuICAgICAgZm46IChlbDogSFRNTEVsZW1lbnQpID0+IGVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KCd0cmFuc2l0aW9uJyksXG4gICAgfTtcblxuICAgIGlmIChkaXJlY3Rpb24gPT09ICd0by1ib3R0b20nKSB7XG4gICAgICBpZiAobW92ZW1lbnRZIDwgbWluRGlzdGFuY2VUb0Rpc21pc3MgJiYgcGl4ZWxQZXJTZWNvbmRZIDwgbWluVmVsb2NpdHlUb0Rpc21pc3MpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKDApYCxcbiAgICAgICAgICB0cmFuc2l0aW9uOiAndHJhbnNmb3JtIDEwMG1zIHZhcigtLWVhc2Utb3V0LTEpJyxcbiAgICAgICAgICBjbGVhblVwOiBtb3ZlbWVudFkgPyBjbGVhblVwIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkaXJlY3Rpb24gPT09ICd0by10b3AnKSB7XG4gICAgICBpZiAobW92ZW1lbnRZID4gLW1pbkRpc3RhbmNlVG9EaXNtaXNzICYmIHBpeGVsUGVyU2Vjb25kWSA+IC1taW5WZWxvY2l0eVRvRGlzbWlzcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoMClgLFxuICAgICAgICAgIHRyYW5zaXRpb246ICd0cmFuc2Zvcm0gMTAwbXMgdmFyKC0tZWFzZS1vdXQtMSknLFxuICAgICAgICAgIGNsZWFuVXA6IG1vdmVtZW50WSA/IGNsZWFuVXAgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ3RvLWxlZnQnKSB7XG4gICAgICBpZiAobW92ZW1lbnRYID4gLW1pbkRpc3RhbmNlVG9EaXNtaXNzICYmIHBpeGVsUGVyU2Vjb25kWCA+IC1taW5WZWxvY2l0eVRvRGlzbWlzcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVgoMClgLFxuICAgICAgICAgIHRyYW5zaXRpb246ICd0cmFuc2Zvcm0gMTAwbXMgdmFyKC0tZWFzZS1vdXQtMSknLFxuICAgICAgICAgIGNsZWFuVXA6IG1vdmVtZW50WCA/IGNsZWFuVXAgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG1vdmVtZW50WCA8IG1pbkRpc3RhbmNlVG9EaXNtaXNzICYmIHBpeGVsUGVyU2Vjb25kWCA8IG1pblZlbG9jaXR5VG9EaXNtaXNzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWCgwKWAsXG4gICAgICAgICAgdHJhbnNpdGlvbjogJ3RyYW5zZm9ybSAxMDBtcyB2YXIoLS1lYXNlLW91dC0xKScsXG4gICAgICAgICAgY2xlYW5VcDogbW92ZW1lbnRYID8gY2xlYW5VcCA6IHVuZGVmaW5lZCxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvb3ZlcmxheS1jb250YWluZXIvb3ZlcmxheS1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxJQUFJLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsMEJBQTBCLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7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LEVBQUUsSUFBSTt3QkFDZCxtQkFBbUIsRUFBRSxtQkFBbUI7d0JBQ3hDLE1BQU0sRUFBRSxZQUFZO3dCQUNwQixhQUFhLEVBQUUsY0FBYzt3QkFDN0Isd0JBQXdCLEVBQUUsNENBQTRDO3dCQUN0RSxtQkFBbUIsRUFBRSxtQkFBbUI7d0JBQ3hDLHlCQUF5QixFQUFFLGlDQUFpQzt3QkFDNUQsbUNBQW1DLEVBQUUseUJBQXlCO3FCQUMvRCxjQUNXLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxrQkFDUCxDQUFDLDBCQUEwQixFQUFFLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yLCBGb2N1c1RyYXBGYWN0b3J5LCBJbnRlcmFjdGl2aXR5Q2hlY2tlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENka0RpYWxvZ0NvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xuaW1wb3J0IHsgT3ZlcmxheVJlZiBhcyBDZGtPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBOZ1pvbmUsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFOSU1BVEVEX0xJRkVDWUNMRV9UT0tFTiwgQW5pbWF0ZWRMaWZlY3ljbGVEaXJlY3RpdmUsIGVsZW1lbnRDYW5TY3JvbGwsIG5leHRGcmFtZSB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgUHJvdmlkZVRoZW1lRGlyZWN0aXZlLCBUSEVNRV9QUk9WSURFUiB9IGZyb20gJ0BldGhsZXRlL3RoZW1pbmcnO1xuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCBtZXJnZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN3aXBlSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBTd2lwZUVuZEV2ZW50LCBTd2lwZVVwZGF0ZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgT1ZFUkxBWV9DT05GSUcgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgT3ZlcmxheUNvbmZpZywgT3ZlcmxheURyYWdUb0Rpc21pc3NDb25maWcgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBPdmVybGF5UmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5jb25zdCBpc1RvdWNoRXZlbnQgPSAoZXZlbnQ6IEV2ZW50KTogZXZlbnQgaXMgVG91Y2hFdmVudCA9PiB7XG4gIHJldHVybiBldmVudC50eXBlWzBdID09PSAndCc7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC1vdmVybGF5LWNvbnRhaW5lcicsXG4gIHN0eWxlVXJsczogWycuL292ZXJsYXktY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlOiBgPG5nLXRlbXBsYXRlIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPmAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC1vdmVybGF5JyxcbiAgICB0YWJpbmRleDogJy0xJyxcbiAgICAnW2F0dHIuYXJpYS1tb2RhbF0nOiAnX2NvbmZpZy5hcmlhTW9kYWwnLFxuICAgICdbaWRdJzogJ19jb25maWcuaWQnLFxuICAgICdbYXR0ci5yb2xlXSc6ICdfY29uZmlnLnJvbGUnLFxuICAgICdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogJ19jb25maWcuYXJpYUxhYmVsID8gbnVsbCA6IF9hcmlhTGFiZWxsZWRCeScsXG4gICAgJ1thdHRyLmFyaWEtbGFiZWxdJzogJ19jb25maWcuYXJpYUxhYmVsJyxcbiAgICAnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnX2NvbmZpZy5hcmlhRGVzY3JpYmVkQnkgfHwgbnVsbCcsXG4gICAgJ1tjbGFzcy5ldC13aXRoLWRlZmF1bHQtYW5pbWF0aW9uXSc6ICchX2NvbmZpZy5jdXN0b21BbmltYXRlZCcsXG4gIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtQb3J0YWxNb2R1bGVdLFxuICBob3N0RGlyZWN0aXZlczogW0FuaW1hdGVkTGlmZWN5Y2xlRGlyZWN0aXZlLCBQcm92aWRlVGhlbWVEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBPdmVybGF5Q29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgQ2RrRGlhbG9nQ29udGFpbmVyPE92ZXJsYXlDb25maWc+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3dpcGVIYW5kbGVyU2VydmljZSA9IGluamVjdChTd2lwZUhhbmRsZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZHJhZ1RvRGlzbWlzc1N0b3AkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdGhlbWVQcm92aWRlciA9IGluamVjdChUSEVNRV9QUk9WSURFUik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudFRoZW1lUHJvdmlkZXIgPSBpbmplY3QoVEhFTUVfUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUsIHNraXBTZWxmOiB0cnVlIH0pO1xuXG4gIHJlYWRvbmx5IF9hbmltYXRlZExpZmVjeWNsZSA9IGluamVjdChBTklNQVRFRF9MSUZFQ1lDTEVfVE9LRU4pO1xuICByZWFkb25seSBjZGtPdmVybGF5UmVmID0gaW5qZWN0KENka092ZXJsYXlSZWYpO1xuXG4gIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcblxuICByZWFkb25seSBlbGVtZW50UmVmID0gdGhpcy5fZWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcbiAgICAgIGluamVjdChFbGVtZW50UmVmKSxcbiAgICAgIGluamVjdChGb2N1c1RyYXBGYWN0b3J5KSxcbiAgICAgIGluamVjdChET0NVTUVOVCksXG4gICAgICBpbmplY3QoT1ZFUkxBWV9DT05GSUcpLFxuICAgICAgaW5qZWN0KEludGVyYWN0aXZpdHlDaGVja2VyKSxcbiAgICAgIGluamVjdChOZ1pvbmUpLFxuICAgICAgaW5qZWN0KENka092ZXJsYXlSZWYpLFxuICAgICAgaW5qZWN0KEZvY3VzTW9uaXRvciksXG4gICAgKTtcblxuICAgIGlmICh0aGlzLl9wYXJlbnRUaGVtZVByb3ZpZGVyKSB7XG4gICAgICB0aGlzLl90aGVtZVByb3ZpZGVyLnN5bmNXaXRoUHJvdmlkZXIodGhpcy5fcGFyZW50VGhlbWVQcm92aWRlcik7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIF9jb250ZW50QXR0YWNoZWQoKTogdm9pZCB7XG4gICAgc3VwZXIuX2NvbnRlbnRBdHRhY2hlZCgpO1xuXG4gICAgbmV4dEZyYW1lKCgpID0+IHtcbiAgICAgIHRoaXMuX2FuaW1hdGVkTGlmZWN5Y2xlLmVudGVyKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX2NhcHR1cmVJbml0aWFsRm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9jb25maWcuZGVsYXlGb2N1c1RyYXApIHtcbiAgICAgIHRoaXMuX3RyYXBGb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfb3BlbkFuaW1hdGlvbkRvbmUoKSB7XG4gICAgaWYgKHRoaXMuX2NvbmZpZy5kZWxheUZvY3VzVHJhcCkge1xuICAgICAgdGhpcy5fdHJhcEZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgX2VuYWJsZURyYWdUb0Rpc21pc3MoY29uZmlnOiBPdmVybGF5RHJhZ1RvRGlzbWlzc0NvbmZpZykge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmKSByZXR1cm47XG5cbiAgICB0aGlzLl9kcmFnVG9EaXNtaXNzU3RvcCQubmV4dCgpO1xuXG4gICAgY29uc3QgZWwgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgbGV0IHN3aXBlSWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIGxldCBpc1NlbGVjdGlvbkFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgY29uc3QgY2FuY2VsRHJhZyA9ICgpID0+IHtcbiAgICAgIGVsLnN0eWxlLnNldFByb3BlcnR5KCd0cmFuc2l0aW9uJywgJ3RyYW5zZm9ybSAxMDBtcyB2YXIoLS1lYXNlLW91dC0xKScpO1xuICAgICAgZWwuc3R5bGUudHJhbnNmb3JtID1cbiAgICAgICAgY29uZmlnLmRpcmVjdGlvbiA9PT0gJ3RvLWJvdHRvbScgfHwgY29uZmlnLmRpcmVjdGlvbiA9PT0gJ3RvLXRvcCcgPyAndHJhbnNsYXRlWSgwKScgOiAndHJhbnNsYXRlWCgwKSc7XG4gICAgICBzd2lwZUlkID0gbnVsbDtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KCd0cmFuc2l0aW9uJyk7XG4gICAgICAgIGVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KCd0cmFuc2Zvcm0nKTtcbiAgICAgIH0sIDEwMCk7XG4gICAgfTtcblxuICAgIG1lcmdlKGZyb21FdmVudDxUb3VjaEV2ZW50PihlbCwgJ3RvdWNoc3RhcnQnKSwgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGVsLCAnbW91c2Vkb3duJykpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2RyYWdUb0Rpc21pc3NTdG9wJCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm92ZXJsYXlSZWYuYWZ0ZXJDbG9zZWQoKSksXG4gICAgICAgIHRhcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoaXNTZWxlY3Rpb25BY3RpdmUpIHJldHVybjtcblxuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICBjb25zdCB0YWcgPSB0YXJnZXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgICAgaWYgKHRhZyA9PT0gJ2lucHV0JyB8fCB0YWcgPT09ICd0ZXh0YXJlYScgfHwgdGFnID09PSAnc2VsZWN0JyB8fCB0YWcgPT09ICdidXR0b24nIHx8IHRhZyA9PT0gJ2EnKSByZXR1cm47XG5cbiAgICAgICAgICBzd2lwZUlkID0gdGhpcy5fc3dpcGVIYW5kbGVyU2VydmljZS5zdGFydFN3aXBlKGV2ZW50KTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICBmcm9tRXZlbnQ8RXZlbnQ+KGRvY3VtZW50LCAnc2VsZWN0aW9uY2hhbmdlJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kcmFnVG9EaXNtaXNzU3RvcCQpLCB0YWtlVW50aWwodGhpcy5vdmVybGF5UmVmLmFmdGVyQ2xvc2VkKCkpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IGRvY3VtZW50LmdldFNlbGVjdGlvbigpO1xuXG4gICAgICAgIGlmICghc2VsZWN0aW9uIHx8ICFzZWxlY3Rpb24udG9TdHJpbmcoKS5sZW5ndGgpIHtcbiAgICAgICAgICBpc1NlbGVjdGlvbkFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlzU2VsZWN0aW9uQWN0aXZlID0gdHJ1ZTtcblxuICAgICAgICBjYW5jZWxEcmFnKCk7XG4gICAgICB9KTtcblxuICAgIG1lcmdlKGZyb21FdmVudDxUb3VjaEV2ZW50PihlbCwgJ3RvdWNobW92ZScpLCBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZWwsICdtb3VzZW1vdmUnKSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZHJhZ1RvRGlzbWlzc1N0b3AkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub3ZlcmxheVJlZi5hZnRlckNsb3NlZCgpKSxcbiAgICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChzd2lwZUlkID09PSBudWxsIHx8IGlzU2VsZWN0aW9uQWN0aXZlKSByZXR1cm47XG5cbiAgICAgICAgICBpZiAoaXNUb3VjaEV2ZW50KGV2ZW50KSkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgICAgICBjb25zdCByZWN1cnNpdmVGaW5kU2Nyb2xsYWJsZVBhcmVudCA9IChlbDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB8IG51bGwgPT4ge1xuICAgICAgICAgICAgICBpZiAoIWVsKSByZXR1cm4gbnVsbDtcblxuICAgICAgICAgICAgICBpZiAoY29uZmlnLmRpcmVjdGlvbiA9PT0gJ3RvLWJvdHRvbScgfHwgY29uZmlnLmRpcmVjdGlvbiA9PT0gJ3RvLXRvcCcpIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudENhblNjcm9sbChlbCwgJ3knKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudENhblNjcm9sbChlbCwgJ3gnKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICghZWwucGFyZW50RWxlbWVudCB8fCBlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdldC1vdmVybGF5LWNvbnRhaW5lcicpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAgIHJldHVybiByZWN1cnNpdmVGaW5kU2Nyb2xsYWJsZVBhcmVudChlbC5wYXJlbnRFbGVtZW50KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbGFibGVFbGVtZW50ID0gcmVjdXJzaXZlRmluZFNjcm9sbGFibGVQYXJlbnQodGFyZ2V0KTtcblxuICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVFbGVtZW50KSB7XG4gICAgICAgICAgICAgIGxldCBjYW5jZWwgPSBmYWxzZTtcbiAgICAgICAgICAgICAgaWYgKGNvbmZpZy5kaXJlY3Rpb24gPT09ICd0by1ib3R0b20nKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVFbGVtZW50LnNjcm9sbFRvcCAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29uZmlnLmRpcmVjdGlvbiA9PT0gJ3RvLXRvcCcpIHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKHNjcm9sbGFibGVFbGVtZW50LnNjcm9sbFRvcCkgIT09XG4gICAgICAgICAgICAgICAgICBzY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxIZWlnaHQgLSBzY3JvbGxhYmxlRWxlbWVudC5jbGllbnRIZWlnaHRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbmZpZy5kaXJlY3Rpb24gPT09ICd0by1yaWdodCcpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsTGVmdCAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZChzY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxMZWZ0KSAhPT1cbiAgICAgICAgICAgICAgICAgIHNjcm9sbGFibGVFbGVtZW50LnNjcm9sbFdpZHRoIC0gc2Nyb2xsYWJsZUVsZW1lbnQuY2xpZW50V2lkdGhcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKGNhbmNlbCkge1xuICAgICAgICAgICAgICAgIGNhbmNlbERyYWcoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHN3aXBlRGF0YSA9IHRoaXMuX3N3aXBlSGFuZGxlclNlcnZpY2UudXBkYXRlU3dpcGUoc3dpcGVJZCwgZXZlbnQpO1xuXG4gICAgICAgICAgaWYgKCFzd2lwZURhdGEpIHJldHVybjtcblxuICAgICAgICAgIGNvbnN0IGNzcyA9IHRoaXMuX2RlZmF1bHRTd2lwZU1vdmVTdHlsZUludGVycG9sYXRvcihzd2lwZURhdGEsIGNvbmZpZyk7XG5cbiAgICAgICAgICBPYmplY3QuZW50cmllcyhjc3MpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgZWwuc3R5bGUuc2V0UHJvcGVydHkoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgbWVyZ2UoZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KGVsLCAndG91Y2hlbmQnKSwgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGVsLCAnbW91c2V1cCcpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kcmFnVG9EaXNtaXNzU3RvcCQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vdmVybGF5UmVmLmFmdGVyQ2xvc2VkKCkpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIGlmIChzd2lwZUlkID09PSBudWxsIHx8IGlzU2VsZWN0aW9uQWN0aXZlKSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCBzd2lwZURhdGEgPSB0aGlzLl9zd2lwZUhhbmRsZXJTZXJ2aWNlLmVuZFN3aXBlKHN3aXBlSWQpO1xuICAgICAgICAgIHN3aXBlSWQgPSBudWxsO1xuXG4gICAgICAgICAgaWYgKCFzd2lwZURhdGEpIHJldHVybjtcblxuICAgICAgICAgIGNvbnN0IGNzcyA9IHRoaXMuX2RlZmF1bHRTd2lwZUVuZFN0eWxlSW50ZXJwb2xhdG9yKHN3aXBlRGF0YSwgY29uZmlnKTtcblxuICAgICAgICAgIGlmICghY3NzKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWY/Ll9jbG9zZU92ZXJsYXlWaWEoJ3RvdWNoJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoY3NzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdjbGVhblVwJykge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCAhdmFsdWUpIHJldHVybjtcblxuICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB2YWx1ZS5mbihlbCk7XG4gICAgICAgICAgICAgIH0sIHZhbHVlLmRlbGF5KTtcblxuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGVsLnN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFsdWUgYXMgc3RyaW5nKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBfZGlzYWJsZURyYWdUb0Rpc21pc3MoKSB7XG4gICAgdGhpcy5fZHJhZ1RvRGlzbWlzc1N0b3AkLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RlZmF1bHRTd2lwZU1vdmVTdHlsZUludGVycG9sYXRvcihldmVudDogU3dpcGVVcGRhdGVFdmVudCwgY29uZmlnOiBPdmVybGF5RHJhZ1RvRGlzbWlzc0NvbmZpZykge1xuICAgIGNvbnN0IHsgZGlyZWN0aW9uIH0gPSBjb25maWc7XG4gICAgY29uc3QgeyBtb3ZlbWVudFgsIG1vdmVtZW50WSB9ID0gZXZlbnQ7XG5cbiAgICBpZiAoZGlyZWN0aW9uID09PSAndG8tYm90dG9tJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWSgke21vdmVtZW50WSA8IDAgPyAwIDogbW92ZW1lbnRZfXB4KWAsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAndG8tdG9wJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWSgke21vdmVtZW50WSA+IDAgPyAwIDogbW92ZW1lbnRZfXB4KWAsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAndG8tbGVmdCcpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVgoJHttb3ZlbWVudFggPiAwID8gMCA6IG1vdmVtZW50WH1weClgLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWCgke21vdmVtZW50WCA8IDAgPyAwIDogbW92ZW1lbnRYfXB4KWAsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2RlZmF1bHRTd2lwZUVuZFN0eWxlSW50ZXJwb2xhdG9yKGV2ZW50OiBTd2lwZUVuZEV2ZW50LCBjb25maWc6IE92ZXJsYXlEcmFnVG9EaXNtaXNzQ29uZmlnKSB7XG4gICAgY29uc3QgeyBkaXJlY3Rpb24sIG1pbkRpc3RhbmNlVG9EaXNtaXNzID0gMTUwLCBtaW5WZWxvY2l0eVRvRGlzbWlzcyA9IDE1MCB9ID0gY29uZmlnO1xuICAgIGNvbnN0IHsgbW92ZW1lbnRYLCBtb3ZlbWVudFksIHBpeGVsUGVyU2Vjb25kWCwgcGl4ZWxQZXJTZWNvbmRZIH0gPSBldmVudDtcblxuICAgIGNvbnN0IGNsZWFuVXAgPSB7XG4gICAgICBkZWxheTogMTAwLFxuICAgICAgZm46IChlbDogSFRNTEVsZW1lbnQpID0+IGVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KCd0cmFuc2l0aW9uJyksXG4gICAgfTtcblxuICAgIGlmIChkaXJlY3Rpb24gPT09ICd0by1ib3R0b20nKSB7XG4gICAgICBpZiAobW92ZW1lbnRZIDwgbWluRGlzdGFuY2VUb0Rpc21pc3MgJiYgcGl4ZWxQZXJTZWNvbmRZIDwgbWluVmVsb2NpdHlUb0Rpc21pc3MpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKDApYCxcbiAgICAgICAgICB0cmFuc2l0aW9uOiAndHJhbnNmb3JtIDEwMG1zIHZhcigtLWVhc2Utb3V0LTEpJyxcbiAgICAgICAgICBjbGVhblVwOiBtb3ZlbWVudFkgPyBjbGVhblVwIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkaXJlY3Rpb24gPT09ICd0by10b3AnKSB7XG4gICAgICBpZiAobW92ZW1lbnRZID4gLW1pbkRpc3RhbmNlVG9EaXNtaXNzICYmIHBpeGVsUGVyU2Vjb25kWSA+IC1taW5WZWxvY2l0eVRvRGlzbWlzcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoMClgLFxuICAgICAgICAgIHRyYW5zaXRpb246ICd0cmFuc2Zvcm0gMTAwbXMgdmFyKC0tZWFzZS1vdXQtMSknLFxuICAgICAgICAgIGNsZWFuVXA6IG1vdmVtZW50WSA/IGNsZWFuVXAgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ3RvLWxlZnQnKSB7XG4gICAgICBpZiAobW92ZW1lbnRYID4gLW1pbkRpc3RhbmNlVG9EaXNtaXNzICYmIHBpeGVsUGVyU2Vjb25kWCA+IC1taW5WZWxvY2l0eVRvRGlzbWlzcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVgoMClgLFxuICAgICAgICAgIHRyYW5zaXRpb246ICd0cmFuc2Zvcm0gMTAwbXMgdmFyKC0tZWFzZS1vdXQtMSknLFxuICAgICAgICAgIGNsZWFuVXA6IG1vdmVtZW50WCA/IGNsZWFuVXAgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG1vdmVtZW50WCA8IG1pbkRpc3RhbmNlVG9EaXNtaXNzICYmIHBpeGVsUGVyU2Vjb25kWCA8IG1pblZlbG9jaXR5VG9EaXNtaXNzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWCgwKWAsXG4gICAgICAgICAgdHJhbnNpdGlvbjogJ3RyYW5zZm9ybSAxMDBtcyB2YXIoLS1lYXNlLW91dC0xKScsXG4gICAgICAgICAgY2xlYW5VcDogbW92ZW1lbnRYID8gY2xlYW5VcCA6IHVuZGVmaW5lZCxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|