@acorex/components 7.4.4 → 7.4.7
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/alert/lib/alert.component.d.ts +1 -3
- package/avatar/lib/avatar-group.component.d.ts +1 -4
- package/avatar/lib/avatar.component.d.ts +6 -7
- package/badge/lib/badge.component.d.ts +1 -3
- package/calendar/lib/calendar.class.d.ts +1 -3
- package/chips/lib/chips.component.d.ts +2 -4
- package/common/index.d.ts +2 -0
- package/common/lib/classes/styles.class.d.ts +1 -0
- package/common/lib/components/appearance-component.class.d.ts +12 -0
- package/common/lib/components/base-component.class.d.ts +1 -4
- package/common/lib/components/color-component.class.d.ts +0 -1
- package/common/lib/components/colorlook-component.class.d.ts +0 -1
- package/common/lib/components/interactive-component.class.d.ts +0 -1
- package/common/lib/components/look-component.class.d.ts +0 -1
- package/common/lib/components/selection-base.component.class.d.ts +45 -0
- package/common/lib/components/value-component.class.d.ts +0 -1
- package/data-pager/lib/data-pager-base.component.d.ts +3 -3
- package/data-pager/lib/data-pager.component.d.ts +2 -2
- package/datetime-box/lib/datetime-box.component.d.ts +9 -9
- package/datetime-input/lib/datetime-input.component.d.ts +1 -1
- package/datetime-picker/index.d.ts +1 -0
- package/datetime-picker/lib/datetime-picker.component.d.ts +5 -4
- package/datetime-picker/lib/datetime-picker.config.d.ts +8 -0
- package/dropdown/lib/dropdown-box.component.d.ts +6 -4
- package/esm2022/action-sheet/lib/action-sheet.component.mjs +4 -3
- package/esm2022/alert/lib/alert.component.mjs +3 -3
- package/esm2022/avatar/lib/avatar-group.component.mjs +2 -4
- package/esm2022/avatar/lib/avatar.component.mjs +21 -15
- package/esm2022/avatar/lib/avatar.module.mjs +3 -3
- package/esm2022/badge/lib/badge.component.mjs +2 -3
- package/esm2022/button/lib/button.component.mjs +2 -2
- package/esm2022/calendar/lib/calendar.class.mjs +2 -3
- package/esm2022/calendar/lib/calendar.component.mjs +2 -1
- package/esm2022/chips/lib/chips.component.mjs +3 -4
- package/esm2022/color-box/lib/color-box.component.mjs +1 -1
- package/esm2022/color-palette/lib/color-palette-input.component.mjs +1 -1
- package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +2 -1
- package/esm2022/common/index.mjs +3 -1
- package/esm2022/common/lib/classes/styles.class.mjs +1 -1
- package/esm2022/common/lib/components/appearance-component.class.mjs +25 -0
- package/esm2022/common/lib/components/base-component.class.mjs +15 -16
- package/esm2022/common/lib/components/color-component.class.mjs +2 -2
- package/esm2022/common/lib/components/colorlook-component.class.mjs +1 -4
- package/esm2022/common/lib/components/interactive-component.class.mjs +24 -24
- package/esm2022/common/lib/components/look-component.class.mjs +2 -2
- package/esm2022/common/lib/components/selection-base.component.class.mjs +176 -0
- package/esm2022/common/lib/components/value-component.class.mjs +8 -7
- package/esm2022/data-pager/lib/data-pager-base.component.mjs +4 -10
- package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +4 -4
- package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +59 -16
- package/esm2022/data-pager/lib/data-pager.component.mjs +8 -8
- package/esm2022/datetime-box/lib/datetime-box.component.mjs +15 -12
- package/esm2022/datetime-input/lib/datetime-input.component.mjs +4 -4
- package/esm2022/datetime-picker/index.mjs +2 -1
- package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +23 -11
- package/esm2022/datetime-picker/lib/datetime-picker.config.mjs +22 -0
- package/esm2022/decorators/lib/components/generic-content.component.mjs +26 -3
- package/esm2022/dialog/lib/dialog.component.mjs +2 -1
- package/esm2022/dropdown/lib/dropdown-box.component.mjs +11 -9
- package/esm2022/dropdown/lib/dropdown-panel.component.mjs +3 -2
- package/esm2022/form/lib/form-field.component.mjs +2 -2
- package/esm2022/form/lib/form.component.mjs +7 -6
- package/esm2022/form/lib/validation-rule.widget.mjs +2 -1
- package/esm2022/image/lib/image.component.mjs +2 -1
- package/esm2022/loading/lib/loading.component.mjs +2 -1
- package/esm2022/notification/lib/notification.component.mjs +2 -1
- package/esm2022/number-box/lib/number-box.component.mjs +15 -8
- package/esm2022/otp/lib/otp.component.mjs +8 -7
- package/esm2022/password-box/lib/password-box.component.mjs +25 -19
- package/esm2022/picker/lib/picker.component.mjs +16 -20
- package/esm2022/popover/lib/popover.component.mjs +11 -4
- package/esm2022/popup/lib/popup.component.mjs +8 -6
- package/esm2022/popup/lib/popup.service.mjs +5 -3
- package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +2 -1
- package/esm2022/scheduler/lib/scheduler.component.mjs +2 -2
- package/esm2022/select-box/lib/select-box.component.mjs +15 -12
- package/esm2022/selection-list/lib/selection-list.component.mjs +52 -26
- package/esm2022/switch/lib/switch-content.component.mjs +9 -7
- package/esm2022/tabs/lib/tabs.component.mjs +2 -2
- package/esm2022/text-box/lib/text-box.component.mjs +28 -12
- package/esm2022/toast/lib/toast.component.mjs +2 -1
- package/esm2022/tooltip/lib/tooltip.directive.mjs +30 -2
- package/fesm2022/acorex-components-action-sheet.mjs +3 -2
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +2 -2
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +22 -18
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +1 -2
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +2 -2
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +2 -1
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +2 -3
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +1 -1
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +2 -1
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-common.mjs +241 -49
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +70 -33
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +16 -13
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +3 -3
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +45 -13
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +24 -1
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +1 -0
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +11 -8
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +8 -6
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +1 -0
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +1 -0
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +1 -0
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +14 -7
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +7 -6
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +24 -18
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +13 -17
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +10 -3
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +9 -5
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +2 -1
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +14 -11
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +51 -26
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +8 -7
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +2 -2
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-text-box.mjs +26 -10
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +1 -0
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +29 -1
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/form/lib/form.component.d.ts +2 -2
- package/mixin/lib/base-components.class.d.ts +2 -2
- package/mixin/lib/base-menu-mixin.class.d.ts +5 -5
- package/mixin/lib/button-mixin.class.d.ts +2 -2
- package/mixin/lib/clickable-mixin.class.d.ts +2 -2
- package/mixin/lib/color-look-mixing.class.d.ts +2 -2
- package/mixin/lib/datalist-component.class.d.ts +10 -10
- package/mixin/lib/dropdown-mixin.class.d.ts +2 -2
- package/mixin/lib/interactive-mixin.class.d.ts +4 -4
- package/mixin/lib/mixin.class.d.ts +61 -61
- package/mixin/lib/page-component.class.d.ts +2 -2
- package/mixin/lib/selection-component.class.d.ts +2 -2
- package/mixin/lib/sizable-mixin.class.d.ts +2 -2
- package/mixin/lib/textbox-mixin.class.d.ts +2 -2
- package/mixin/lib/value-mixin.class.d.ts +8 -8
- package/number-box/lib/number-box.component.d.ts +12 -5
- package/otp/lib/otp.component.d.ts +9 -3
- package/package.json +1 -1
- package/password-box/lib/password-box.component.d.ts +10 -3
- package/picker/lib/picker.component.d.ts +2 -2
- package/popover/lib/popover.component.d.ts +3 -1
- package/popup/lib/popup.service.d.ts +1 -1
- package/select-box/lib/select-box.component.d.ts +2 -1
- package/selection-list/lib/selection-list.component.d.ts +10 -15
- package/switch/lib/switch-content.component.d.ts +2 -2
- package/text-box/lib/text-box.component.d.ts +11 -3
- package/tooltip/lib/tooltip.directive.d.ts +7 -1
@@ -2,6 +2,14 @@ import { ChangeDetectorRef, ElementRef, EventEmitter, Injectable, ViewContainerR
|
|
2
2
|
import { AXDomService } from '../services/dom.service';
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
export class MXBaseComponent {
|
5
|
+
constructor() {
|
6
|
+
this._cdr = inject(ChangeDetectorRef);
|
7
|
+
this._elementRef = inject(ElementRef);
|
8
|
+
this._viewRef = inject(ViewContainerRef);
|
9
|
+
this._domService = inject(AXDomService);
|
10
|
+
this._id = this._domService.generateElementId();
|
11
|
+
this.onOptionChanged = new EventEmitter();
|
12
|
+
}
|
5
13
|
get id() {
|
6
14
|
return this._id;
|
7
15
|
}
|
@@ -20,18 +28,8 @@ export class MXBaseComponent {
|
|
20
28
|
internalOptionChanging(option) {
|
21
29
|
return option?.value;
|
22
30
|
}
|
23
|
-
internalOptionChanged(option) {
|
24
|
-
|
25
|
-
/**
|
26
|
-
* @ignore
|
27
|
-
*/
|
28
|
-
constructor() {
|
29
|
-
this._cdr = inject(ChangeDetectorRef);
|
30
|
-
this._elementRef = inject(ElementRef);
|
31
|
-
this._viewRef = inject(ViewContainerRef);
|
32
|
-
this._domService = inject(AXDomService);
|
33
|
-
this._id = this._domService.generateElementId();
|
34
|
-
this.onOptionChanged = new EventEmitter();
|
31
|
+
internalOptionChanged(option) { }
|
32
|
+
ngOnInit() {
|
35
33
|
this.getHostElement().__axContext__ = this;
|
36
34
|
}
|
37
35
|
setOption(option) {
|
@@ -60,8 +58,9 @@ export class MXBaseComponent {
|
|
60
58
|
option.afterCallback(oldValue, newValue);
|
61
59
|
}
|
62
60
|
_detectLayout() {
|
63
|
-
this.rtl =
|
64
|
-
|
61
|
+
this.rtl =
|
62
|
+
this.getHostElement().classList.contains('ax-rtl') ||
|
63
|
+
window.getComputedStyle(this.getHostElement(), null).getPropertyValue('direction') === 'rtl';
|
65
64
|
}
|
66
65
|
get rtl() {
|
67
66
|
return this._rtl;
|
@@ -74,5 +73,5 @@ export class MXBaseComponent {
|
|
74
73
|
}
|
75
74
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: MXBaseComponent, decorators: [{
|
76
75
|
type: Injectable
|
77
|
-
}]
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
76
|
+
}] });
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLGdCQUFnQixFQUNoQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQWV2RCxNQUFNLE9BQWdCLGVBQWU7SUFEckM7UUFFVSxTQUFJLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BELGdCQUFXLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLGFBQVEsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdEQsZ0JBQVcsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbkMsUUFBRyxHQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQThCcEQsb0JBQWUsR0FBdUMsSUFBSSxZQUFZLEVBQXdCLENBQUM7S0EwQ3ZHO0lBdkVDLElBQVcsRUFBRTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBQ0QsSUFBVyxFQUFFLENBQUMsQ0FBUztRQUNyQixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFjLEdBQUc7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWtCLENBQUM7SUFDN0MsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVTLHNCQUFzQixDQUFDLE1BQWlDO1FBQ2hFLE9BQU8sTUFBTSxFQUFFLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRVMscUJBQXFCLENBQUMsTUFBZ0MsSUFBUyxDQUFDO0lBRWhFLFFBQVE7UUFDZixJQUFJLENBQUMsY0FBYyxFQUFVLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUN0RCxDQUFDO0lBSU0sU0FBUyxDQUFVLE1BQStCO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1lBQ3pDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsMkJBQTJCO1FBQzNCLElBQUksTUFBTSxDQUFDLGNBQWMsRUFBRTtZQUN6QixRQUFRLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDdEQ7UUFDRCxJQUFJLFFBQVEsSUFBSSxRQUFRLEVBQUU7WUFDeEIsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztnQkFDeEIsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNqQixRQUFRO2dCQUNSLFFBQVE7YUFDVCxDQUFDLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxRQUFRLENBQXNCLENBQUM7WUFDbEUsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNwRTtRQUNELElBQUksTUFBTSxDQUFDLGFBQWE7WUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsR0FBRztZQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztnQkFDbEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLENBQUM7SUFDakcsQ0FBQztJQUlELElBQVcsR0FBRztRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBVyxHQUFHLENBQUMsS0FBYztRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OEdBN0VtQixlQUFlO2tIQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RhYmxlLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhPcHRpb25DaGFuZ2VkRXZlbnQgfSBmcm9tICcuLi9jbGFzc2VzL2V2ZW50cy5jbGFzcyc7XG5pbXBvcnQgeyBBWERvbVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9kb20uc2VydmljZSc7XG5cbmV4cG9ydCB0eXBlIE1YQ29tcG9uZW50T3B0aW9uQ2hhbmdpbmc8VCA9IGFueT4gPSB7IG5hbWU6IHN0cmluZzsgdmFsdWU/OiBUIH07XG5leHBvcnQgdHlwZSBNWENvbXBvbmVudE9wdGlvbkNoYW5nZWQ8VCA9IGFueT4gPSBNWENvbXBvbmVudE9wdGlvbkNoYW5naW5nPFQ+O1xuXG5leHBvcnQgdHlwZSBNWENvbXBvbmVudFNldE9wdGlvbjxUPiA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZT86IFQ7XG4gIGFmdGVyQ2FsbGJhY2s/OiAob2xkVmFsdWU/OiBULCBuZXdWYWx1ZT86IFQpID0+IHZvaWQ7XG4gIGJlZm9yZUNhbGxiYWNrPzogKG9sZFZhbHVlPzogVCwgbmV3VmFsdWU/OiBUKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgQVhDb21wb25lbnRTdGF0ZSA9ICdjbGVhcicgfCAnc3VjY2VzcycgfCAnZXJyb3InO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTVhCYXNlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgX3ZpZXdSZWY6IFZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHByaXZhdGUgX2RvbVNlcnZpY2UgPSBpbmplY3QoQVhEb21TZXJ2aWNlKTtcblxuICBwcml2YXRlIF9pZDogc3RyaW5nID0gdGhpcy5fZG9tU2VydmljZS5nZW5lcmF0ZUVsZW1lbnRJZCgpO1xuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG4gIHB1YmxpYyBzZXQgaWQodjogc3RyaW5nKSB7XG4gICAgdGhpcy5faWQgPSB2O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBjZHIoKTogQ2hhbmdlRGV0ZWN0b3JSZWYge1xuICAgIHJldHVybiB0aGlzLl9jZHI7XG4gIH1cblxuICBwdWJsaWMgZ2V0SG9zdEVsZW1lbnQ8VCA9IEhUTUxFbGVtZW50PigpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIFQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Vmlld0NvbnRhaW5lcigpOiBWaWV3Q29udGFpbmVyUmVmIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld1JlZjtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnRlcm5hbE9wdGlvbkNoYW5naW5nKG9wdGlvbjogTVhDb21wb25lbnRPcHRpb25DaGFuZ2luZyk6IGFueSB7XG4gICAgcmV0dXJuIG9wdGlvbj8udmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW50ZXJuYWxPcHRpb25DaGFuZ2VkKG9wdGlvbjogTVhDb21wb25lbnRPcHRpb25DaGFuZ2VkKTogdm9pZCB7fVxuXG4gIHByb3RlY3RlZCBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAodGhpcy5nZXRIb3N0RWxlbWVudCgpIGFzIGFueSkuX19heENvbnRleHRfXyA9IHRoaXM7XG4gIH1cblxuICBwdWJsaWMgb25PcHRpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhPcHRpb25DaGFuZ2VkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWE9wdGlvbkNoYW5nZWRFdmVudD4oKTtcblxuICBwdWJsaWMgc2V0T3B0aW9uPFQgPSBhbnk+KG9wdGlvbjogTVhDb21wb25lbnRTZXRPcHRpb248VD4pIHtcbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXNbb3B0aW9uLm5hbWVdO1xuICAgIGxldCBuZXdWYWx1ZSA9IHRoaXMuaW50ZXJuYWxPcHRpb25DaGFuZ2luZyh7XG4gICAgICBuYW1lOiBvcHRpb24ubmFtZSxcbiAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgfSk7XG4gICAgLy9UT0RPIDogY2hlY2sgcmVhbCBjaGFuZ2VzXG4gICAgaWYgKG9wdGlvbi5iZWZvcmVDYWxsYmFjaykge1xuICAgICAgbmV3VmFsdWUgPSBvcHRpb24uYmVmb3JlQ2FsbGJhY2sob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgICB9XG4gICAgaWYgKG9sZFZhbHVlICE9IG5ld1ZhbHVlKSB7XG4gICAgICB0aGlzW2BfJHtvcHRpb24ubmFtZX1gXSA9IG9wdGlvbi52YWx1ZTtcbiAgICAgIHRoaXMub25PcHRpb25DaGFuZ2VkLmVtaXQoe1xuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgIG5hbWU6IG9wdGlvbi5uYW1lLFxuICAgICAgICBuZXdWYWx1ZSxcbiAgICAgICAgb2xkVmFsdWUsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGVtaXR0ZXIgPSB0aGlzW2Ake29wdGlvbi5uYW1lfUNoYW5nZWBdIGFzIEV2ZW50RW1pdHRlcjxhbnk+O1xuICAgICAgZW1pdHRlcj8uZW1pdChuZXdWYWx1ZSk7XG4gICAgICB0aGlzLmludGVybmFsT3B0aW9uQ2hhbmdlZCh7IG5hbWU6IG9wdGlvbi5uYW1lLCB2YWx1ZTogbmV3VmFsdWUgfSk7XG4gICAgfVxuICAgIGlmIChvcHRpb24uYWZ0ZXJDYWxsYmFjaykgb3B0aW9uLmFmdGVyQ2FsbGJhY2sob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RldGVjdExheW91dCgpIHtcbiAgICB0aGlzLnJ0bCA9XG4gICAgICB0aGlzLmdldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LmNvbnRhaW5zKCdheC1ydGwnKSB8fFxuICAgICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5nZXRIb3N0RWxlbWVudCgpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdkaXJlY3Rpb24nKSA9PT0gJ3J0bCc7XG4gIH1cblxuICBwcml2YXRlIF9ydGw6IGJvb2xlYW47XG5cbiAgcHVibGljIGdldCBydGwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3J0bDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgcnRsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oeyBuYW1lOiAncnRsJywgdmFsdWUgfSk7XG4gIH1cbn1cbiJdfQ==
|
@@ -2,7 +2,7 @@ import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { MXBaseComponent } from './base-component.class';
|
3
3
|
export class MXColorComponent extends MXBaseComponent {
|
4
4
|
constructor() {
|
5
|
-
super();
|
5
|
+
super(...arguments);
|
6
6
|
this.colorChange = new EventEmitter();
|
7
7
|
this._color = 'default';
|
8
8
|
}
|
@@ -22,4 +22,4 @@ export class MXColorComponent extends MXBaseComponent {
|
|
22
22
|
});
|
23
23
|
}
|
24
24
|
}
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItY29tcG9uZW50LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvY29sb3ItY29tcG9uZW50LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxlQUFlO0lBQXJEOztRQUVFLGdCQUFXLEdBQW1DLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekQsV0FBTSxHQUFxQixTQUFTLENBQUM7SUFnQi9DLENBQUM7SUFmQzs7T0FFRztJQUNILElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBdUI7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNiLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSztZQUNMLGFBQWEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDMUIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhTdHlsZUNvbG9yVHlwZSB9IGZyb20gJy4uL2NsYXNzZXMvc3R5bGVzLmNsYXNzJztcbmltcG9ydCB7IE1YQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1jb21wb25lbnQuY2xhc3MnO1xuXG5leHBvcnQgY2xhc3MgTVhDb2xvckNvbXBvbmVudCBleHRlbmRzIE1YQmFzZUNvbXBvbmVudCB7XG5cbiAgY29sb3JDaGFuZ2U6IEV2ZW50RW1pdHRlcjxBWFN0eWxlQ29sb3JUeXBlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcHJpdmF0ZSBfY29sb3I6IEFYU3R5bGVDb2xvclR5cGUgPSAnZGVmYXVsdCc7XG4gIC8qKlxuICAgKiAgUHJlZGVmaW5lZCBjb2xvciBzY2hlbWVzXG4gICAqL1xuICBnZXQgY29sb3IoKTogQVhTdHlsZUNvbG9yVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xuICB9XG4gIHNldCBjb2xvcih2YWx1ZTogQVhTdHlsZUNvbG9yVHlwZSkge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdjb2xvcicsXG4gICAgICB2YWx1ZSxcbiAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
@@ -2,8 +2,5 @@ import { classes } from "polytype";
|
|
2
2
|
import { MXColorComponent } from "./color-component.class";
|
3
3
|
import { MXLookComponent } from "./look-component.class";
|
4
4
|
export class MXColorLookComponent extends classes(MXColorComponent, MXLookComponent) {
|
5
|
-
constructor() {
|
6
|
-
super();
|
7
|
-
}
|
8
5
|
}
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3Jsb29rLWNvbXBvbmVudC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb21tb24vc3JjL2xpYi9jb21wb25lbnRzL2NvbG9ybG9vay1jb21wb25lbnQuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHekQsTUFBTSxPQUFPLG9CQUNULFNBQ0EsT0FBTyxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FBQztDQUc3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsYXNzZXMgfSBmcm9tIFwicG9seXR5cGVcIjtcbmltcG9ydCB7IE1YQ29sb3JDb21wb25lbnQgfSBmcm9tIFwiLi9jb2xvci1jb21wb25lbnQuY2xhc3NcIjtcbmltcG9ydCB7IE1YTG9va0NvbXBvbmVudCB9IGZyb20gXCIuL2xvb2stY29tcG9uZW50LmNsYXNzXCI7XG5cblxuZXhwb3J0IGNsYXNzIE1YQ29sb3JMb29rQ29tcG9uZW50XG4gICAgZXh0ZW5kc1xuICAgIGNsYXNzZXMoTVhDb2xvckNvbXBvbmVudCwgTVhMb29rQ29tcG9uZW50KVxue1xuXG59XG4iXX0=
|
@@ -4,6 +4,29 @@ import { EventEmitter } from '@angular/core';
|
|
4
4
|
import { noop } from 'rxjs';
|
5
5
|
import { MXBaseComponent } from './base-component.class';
|
6
6
|
export class MXInteractiveComponent extends MXBaseComponent {
|
7
|
+
constructor() {
|
8
|
+
super(...arguments);
|
9
|
+
this.onTouchedCallback = noop;
|
10
|
+
this._touched = false;
|
11
|
+
this.disabledChange = new EventEmitter();
|
12
|
+
// TODO: we should remove it or rename it
|
13
|
+
this._tabIndex = 0;
|
14
|
+
/**
|
15
|
+
* Fires each time the component gets focused.
|
16
|
+
* @event
|
17
|
+
*/
|
18
|
+
this.onFocus = new EventEmitter();
|
19
|
+
/**
|
20
|
+
* Fires each time the component gets blurred.
|
21
|
+
* @event
|
22
|
+
*/
|
23
|
+
this.onBlur = new EventEmitter();
|
24
|
+
/**
|
25
|
+
* Fires each time the user clicks the button.
|
26
|
+
* @event
|
27
|
+
*/
|
28
|
+
this.onClick = new EventEmitter();
|
29
|
+
}
|
7
30
|
registerOnTouched(fn) {
|
8
31
|
this.onTouchedCallback = fn;
|
9
32
|
}
|
@@ -66,29 +89,6 @@ export class MXInteractiveComponent extends MXBaseComponent {
|
|
66
89
|
nativeEvent: e,
|
67
90
|
});
|
68
91
|
}
|
69
|
-
constructor() {
|
70
|
-
super();
|
71
|
-
this.onTouchedCallback = noop;
|
72
|
-
this._touched = false;
|
73
|
-
this.disabledChange = new EventEmitter();
|
74
|
-
// TODO: we should remove it or rename it
|
75
|
-
this._tabIndex = 0;
|
76
|
-
/**
|
77
|
-
* Fires each time the component gets focused.
|
78
|
-
* @event
|
79
|
-
*/
|
80
|
-
this.onFocus = new EventEmitter();
|
81
|
-
/**
|
82
|
-
* Fires each time the component gets blurred.
|
83
|
-
* @event
|
84
|
-
*/
|
85
|
-
this.onBlur = new EventEmitter();
|
86
|
-
/**
|
87
|
-
* Fires each time the user clicks the button.
|
88
|
-
* @event
|
89
|
-
*/
|
90
|
-
this.onClick = new EventEmitter();
|
91
|
-
}
|
92
92
|
focus() {
|
93
93
|
AXHtmlUtil.focusElement(this.getHostElement());
|
94
94
|
}
|
@@ -102,4 +102,4 @@ export class MXInteractiveComponent extends MXBaseComponent {
|
|
102
102
|
return AXHtmlUtil.hasFocus(this.getHostElement());
|
103
103
|
}
|
104
104
|
}
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtY29tcG9uZW50LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvaW50ZXJhY3RpdmUtY29tcG9uZW50LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxlQUFlO0lBQTNEOztRQUVZLHNCQUFpQixHQUFlLElBQUksQ0FBQztRQU12QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBWXpCLG1CQUFjLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUF1QnBFLHlDQUF5QztRQUN6QyxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBV2Q7OztXQUdHO1FBQ0gsWUFBTyxHQUErQixJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQVV2RTs7O1dBR0c7UUFDSCxXQUFNLEdBQStCLElBQUksWUFBWSxFQUFnQixDQUFDO1FBV3RFOzs7V0FHRztRQUNILFlBQU8sR0FBK0IsSUFBSSxZQUFZLEVBQWdCLENBQUM7SUF5QnpFLENBQUM7SUE3R0MsaUJBQWlCLENBQUMsRUFBYztRQUM5QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFHRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFUyxhQUFhO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUlEOztPQUVHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixLQUFLLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNiLElBQUksRUFBRSxVQUFVO1lBQ2hCLEtBQUs7WUFDTCxhQUFhLEVBQUUsR0FBRyxFQUFFO2dCQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUlEOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYTtRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQVFTLGdCQUFnQixDQUFDLENBQWE7UUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsU0FBUyxFQUFFLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNsQyxXQUFXLEVBQUUsQ0FBQztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFRUyxlQUFlLENBQUMsQ0FBYTtRQUNyQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ2xDLFdBQVcsRUFBRSxDQUFDO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQVFTLGdCQUFnQixDQUFDLENBQWE7UUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsU0FBUyxFQUFFLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNsQyxXQUFXLEVBQUUsQ0FBQztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxLQUFLO1FBQ0gsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSTtRQUNGLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEh0bWxVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWENsaWNrRXZlbnQsIEFYRm9jdXNFdmVudCB9IGZyb20gJy4uL2NsYXNzZXMvZXZlbnRzLmNsYXNzJztcbmltcG9ydCB7IE1YQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1jb21wb25lbnQuY2xhc3MnO1xuXG5leHBvcnQgY2xhc3MgTVhJbnRlcmFjdGl2ZUNvbXBvbmVudCBleHRlbmRzIE1YQmFzZUNvbXBvbmVudCB7XG5cbiAgcHJvdGVjdGVkIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHByaXZhdGUgX3RvdWNoZWQgPSBmYWxzZTtcbiAgcHVibGljIGdldCB0b3VjaGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl90b3VjaGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtBc1RvdWNoZWQoKSB7XG4gICAgaWYgKCF0aGlzLnRvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuX3RvdWNoZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGRpc2FibGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuO1xuICAvKipcbiAgICogIElmIHNldCB0byB0cnVlLCBpdCBkaXNhYmxlcyB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdkaXNhYmxlZCcsXG4gICAgICB2YWx1ZSxcbiAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICAvLyBUT0RPOiB3ZSBzaG91bGQgcmVtb3ZlIGl0IG9yIHJlbmFtZSBpdFxuICBfdGFiSW5kZXggPSAwO1xuICAvKipcbiAgICogIFNwZWNpZmllcyB0aGUgdGFiaW5kZXggb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIGdldCB0YWJJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkID8gLTEgOiB0aGlzLl90YWJJbmRleDtcbiAgfVxuICBzZXQgdGFiSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHsgbmFtZTogJ3RhYkluZGV4JywgdmFsdWU6IHZhbHVlICE9IG51bGwgPyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSkgOiAwIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqICBGaXJlcyBlYWNoIHRpbWUgdGhlIGNvbXBvbmVudCBnZXRzIGZvY3VzZWQuXG4gICAqICBAZXZlbnRcbiAgICovXG4gIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxBWEZvY3VzRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEZvY3VzRXZlbnQ+KCk7XG5cbiAgcHJvdGVjdGVkIGVtaXRPbkZvY3VzRXZlbnQoZTogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIHRoaXMub25Gb2N1cy5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgICBuYXRpdmVFdmVudDogZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgRmlyZXMgZWFjaCB0aW1lIHRoZSBjb21wb25lbnQgZ2V0cyBibHVycmVkLlxuICAgKiAgQGV2ZW50XG4gICAqL1xuICBvbkJsdXI6IEV2ZW50RW1pdHRlcjxBWEZvY3VzRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEZvY3VzRXZlbnQ+KCk7XG5cbiAgcHJvdGVjdGVkIGVtaXRPbkJsdXJFdmVudChlOiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgdGhpcy5vbkJsdXIuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5nZXRIb3N0RWxlbWVudCgpLFxuICAgICAgbmF0aXZlRXZlbnQ6IGUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogIEZpcmVzIGVhY2ggdGltZSB0aGUgdXNlciBjbGlja3MgdGhlIGJ1dHRvbi5cbiAgICogIEBldmVudFxuICAgKi9cbiAgb25DbGljazogRXZlbnRFbWl0dGVyPEFYQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ2xpY2tFdmVudD4oKTtcblxuICBwcm90ZWN0ZWQgZW1pdE9uQ2xpY2tFdmVudChlOiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSxcbiAgICAgIG5hdGl2ZUV2ZW50OiBlLFxuICAgIH0pO1xuICB9XG5cblxuICBmb2N1cygpIHtcbiAgICBBWEh0bWxVdGlsLmZvY3VzRWxlbWVudCh0aGlzLmdldEhvc3RFbGVtZW50KCkpO1xuICB9XG5cbiAgYmx1cigpIHtcbiAgICBBWEh0bWxVdGlsLmJsdXJFbGVtZW50KHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSk7XG4gIH1cblxuICAvKipcbiAgICogIENoZWNrIGNvbXBvbmVudCBpcyBmb2N1c2VkIG9yIGhhcyBhbnkgZm9jdXNlZCBlbGVtZW50LlxuICAgKi9cbiAgaGFzRm9jdXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEFYSHRtbFV0aWwuaGFzRm9jdXModGhpcy5nZXRIb3N0RWxlbWVudCgpKTtcbiAgfVxufVxuIl19
|
@@ -2,7 +2,7 @@ import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { MXBaseComponent } from './base-component.class';
|
3
3
|
export class MXLookComponent extends MXBaseComponent {
|
4
4
|
constructor() {
|
5
|
-
super();
|
5
|
+
super(...arguments);
|
6
6
|
this.lookChange = new EventEmitter();
|
7
7
|
this._look = 'default';
|
8
8
|
}
|
@@ -22,4 +22,4 @@ export class MXLookComponent extends MXBaseComponent {
|
|
22
22
|
});
|
23
23
|
}
|
24
24
|
}
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9vay1jb21wb25lbnQuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy9sb29rLWNvbXBvbmVudC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxlQUFlO0lBQXBEOztRQUNFLGVBQVUsR0FBa0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2RCxVQUFLLEdBQXFCLFNBQVMsQ0FBQztJQWdCOUMsQ0FBQztJQWZDOztPQUVHO0lBQ0gsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxLQUFzQjtRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2IsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLO1lBQ0wsYUFBYSxFQUFFLEdBQUcsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFN0eWxlTG9va1R5cGUgfSBmcm9tICcuLi9jbGFzc2VzL3N0eWxlcy5jbGFzcyc7XG5pbXBvcnQgeyBNWEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50LmNsYXNzJztcblxuZXhwb3J0IGNsYXNzIE1YTG9va0NvbXBvbmVudCBleHRlbmRzIE1YQmFzZUNvbXBvbmVudCB7XG4gIGxvb2tDaGFuZ2U6IEV2ZW50RW1pdHRlcjxBWFN0eWxlTG9va1R5cGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBwcml2YXRlIF9sb29rPzogQVhTdHlsZUxvb2tUeXBlID0gJ2RlZmF1bHQnO1xuICAvKipcbiAgICogIFByZWRlZmluZWQgbG9vayBzY2hlbWVzXG4gICAqL1xuICBnZXQgbG9vaygpOiBBWFN0eWxlTG9va1R5cGUge1xuICAgIHJldHVybiB0aGlzLl9sb29rITtcbiAgfVxuICBzZXQgbG9vayh2YWx1ZTogQVhTdHlsZUxvb2tUeXBlKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2xvb2snLFxuICAgICAgdmFsdWUsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,176 @@
|
|
1
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
2
|
+
import { Injectable } from '@angular/core';
|
3
|
+
import { MXValueComponent } from './value-component.class';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export class MXSelectionValueComponent extends MXValueComponent {
|
6
|
+
constructor() {
|
7
|
+
super(...arguments);
|
8
|
+
this.selectionMode = 'value';
|
9
|
+
this._valueField = 'id';
|
10
|
+
this._textField = 'text';
|
11
|
+
this._hintField = 'hint';
|
12
|
+
this._disabledField = 'disabled';
|
13
|
+
this._readonlyField = 'readonly';
|
14
|
+
this._multiple = false;
|
15
|
+
this._items = [];
|
16
|
+
this.displayItems = [];
|
17
|
+
this._selectedItems = [];
|
18
|
+
}
|
19
|
+
get valueField() {
|
20
|
+
return this._valueField;
|
21
|
+
}
|
22
|
+
set valueField(v) {
|
23
|
+
this.setOption({
|
24
|
+
name: 'valueField',
|
25
|
+
value: v,
|
26
|
+
});
|
27
|
+
}
|
28
|
+
get textField() {
|
29
|
+
return this._textField;
|
30
|
+
}
|
31
|
+
set textField(v) {
|
32
|
+
this.setOption({
|
33
|
+
name: 'textField',
|
34
|
+
value: v,
|
35
|
+
});
|
36
|
+
}
|
37
|
+
get hintField() {
|
38
|
+
return this._hintField;
|
39
|
+
}
|
40
|
+
set hintField(v) {
|
41
|
+
this.setOption({
|
42
|
+
name: 'hintField',
|
43
|
+
value: v,
|
44
|
+
});
|
45
|
+
}
|
46
|
+
get disabledField() {
|
47
|
+
return this._disabledField;
|
48
|
+
}
|
49
|
+
set disabledField(v) {
|
50
|
+
this.setOption({
|
51
|
+
name: 'disabledField',
|
52
|
+
value: v,
|
53
|
+
});
|
54
|
+
}
|
55
|
+
get readonlyField() {
|
56
|
+
return this._readonlyField;
|
57
|
+
}
|
58
|
+
set readonlyField(v) {
|
59
|
+
this.setOption({
|
60
|
+
name: 'readonlyField',
|
61
|
+
value: v,
|
62
|
+
});
|
63
|
+
}
|
64
|
+
get multiple() {
|
65
|
+
return this._multiple;
|
66
|
+
}
|
67
|
+
set multiple(v) {
|
68
|
+
this.setOption({
|
69
|
+
name: 'multiple',
|
70
|
+
value: v,
|
71
|
+
});
|
72
|
+
}
|
73
|
+
get items() {
|
74
|
+
return this._items;
|
75
|
+
}
|
76
|
+
set items(v) {
|
77
|
+
this.setOption({
|
78
|
+
name: 'items',
|
79
|
+
value: v,
|
80
|
+
afterCallback: (oldValue, newValue) => {
|
81
|
+
this.displayItems = this.normalizeItemsList(newValue);
|
82
|
+
},
|
83
|
+
});
|
84
|
+
}
|
85
|
+
get selectedItems() {
|
86
|
+
return this._selectedItems || [];
|
87
|
+
}
|
88
|
+
internalSetValue(value) {
|
89
|
+
let normalizedItems = Array.isArray(value)
|
90
|
+
? this.normalizeItemsList(value)
|
91
|
+
: this.normalizeItemsList([value]);
|
92
|
+
normalizedItems = normalizedItems.filter((c) => this.displayItems.some((d) => d[this.valueField] == c[this.valueField]));
|
93
|
+
return this.multiple ? normalizedItems : normalizedItems[0];
|
94
|
+
}
|
95
|
+
emitOnValueChangedEvent(oldValue, newValue) {
|
96
|
+
this._normalizeSelectedItems();
|
97
|
+
super.emitOnValueChangedEvent(oldValue, newValue);
|
98
|
+
}
|
99
|
+
normalizeItemsList(items) {
|
100
|
+
if (items == null)
|
101
|
+
return [];
|
102
|
+
return items.filter((c) => c != null).map((i) => this.normalizeItem(i));
|
103
|
+
}
|
104
|
+
normalizeItem(item) {
|
105
|
+
const obj = {};
|
106
|
+
if (typeof item == 'object') {
|
107
|
+
Object.assign(obj, item);
|
108
|
+
}
|
109
|
+
else if (typeof item != 'function') {
|
110
|
+
const existsItem = this.displayItems.find((c) => c[this.valueField] == item);
|
111
|
+
if (existsItem)
|
112
|
+
Object.assign(obj, existsItem);
|
113
|
+
else {
|
114
|
+
obj[this.valueField] = item;
|
115
|
+
obj[this.textField] = item.toString();
|
116
|
+
}
|
117
|
+
}
|
118
|
+
return obj;
|
119
|
+
}
|
120
|
+
_normalizeSelectedItems() {
|
121
|
+
const values = Array.isArray(this.value) ? this.value : [this.value];
|
122
|
+
this._selectedItems = this.displayItems.filter((c) => values.some((v) => v[this.valueField] == c[this.valueField]));
|
123
|
+
}
|
124
|
+
unselectItems(...items) {
|
125
|
+
if (!items || items.length === 0) {
|
126
|
+
this.commitValue([], true);
|
127
|
+
return;
|
128
|
+
}
|
129
|
+
const normalizeItems = Array.isArray(items)
|
130
|
+
? this.normalizeItemsList(items)
|
131
|
+
: [this.normalizeItem(items)];
|
132
|
+
const newSelectedItems = this.selectedItems.filter((i) => !normalizeItems.some((n) => n[this.valueField] == i[this.valueField]));
|
133
|
+
this.commitValue(newSelectedItems, true);
|
134
|
+
}
|
135
|
+
selectItems(...items) {
|
136
|
+
if (items && items.length) {
|
137
|
+
let newSelectedItems = Array.isArray(this.value) ? this.value : [this.value];
|
138
|
+
const normalizeItems = Array.isArray(items)
|
139
|
+
? this.normalizeItemsList(items)
|
140
|
+
: [this.normalizeItem(items)];
|
141
|
+
if (this.multiple) {
|
142
|
+
newSelectedItems = [...newSelectedItems, ...normalizeItems];
|
143
|
+
}
|
144
|
+
else {
|
145
|
+
newSelectedItems = normalizeItems;
|
146
|
+
}
|
147
|
+
this.commitValue(newSelectedItems, true);
|
148
|
+
}
|
149
|
+
else {
|
150
|
+
this.commitValue(this.displayItems, true);
|
151
|
+
}
|
152
|
+
}
|
153
|
+
toggleSelect(...items) {
|
154
|
+
items?.forEach((item) => {
|
155
|
+
if (this.multiple) {
|
156
|
+
this.isItemSelected(item) ? this.unselectItems(item) : this.selectItems(item);
|
157
|
+
}
|
158
|
+
else {
|
159
|
+
this.selectItems(item);
|
160
|
+
}
|
161
|
+
});
|
162
|
+
}
|
163
|
+
isItemSelected(item) {
|
164
|
+
return this.selectedItems.some((c) => c[this.valueField] === item[this.valueField]);
|
165
|
+
}
|
166
|
+
isItemDisabled(item) {
|
167
|
+
return (coerceBooleanProperty(item[this.disabledField]) === true ||
|
168
|
+
(this.disabledCallback ? this.disabledCallback({ item, index: -1 }) : false));
|
169
|
+
}
|
170
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: MXSelectionValueComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
171
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: MXSelectionValueComponent }); }
|
172
|
+
}
|
173
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: MXSelectionValueComponent, decorators: [{
|
174
|
+
type: Injectable
|
175
|
+
}] });
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWJhc2UuY29tcG9uZW50LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0aW9uLWJhc2UuY29tcG9uZW50LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRzNELE1BQU0sT0FBTyx5QkFBdUMsU0FBUSxnQkFBeUI7SUFEckY7O1FBRUUsa0JBQWEsR0FBcUIsT0FBTyxDQUFDO1FBSWxDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBV25CLGVBQVUsR0FBRyxNQUFNLENBQUM7UUFXcEIsZUFBVSxHQUFHLE1BQU0sQ0FBQztRQVdwQixtQkFBYyxHQUFHLFVBQVUsQ0FBQztRQVc1QixtQkFBYyxHQUFHLFVBQVUsQ0FBQztRQVc1QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBV2xCLFdBQU0sR0FBYyxFQUFFLENBQUM7UUFjckIsaUJBQVksR0FBYyxFQUFFLENBQUM7UUFFdkMsbUJBQWMsR0FBYyxFQUFFLENBQUM7S0FrR2hDO0lBbkxDLElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQVcsVUFBVSxDQUFDLENBQVM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNiLElBQUksRUFBRSxZQUFZO1lBQ2xCLEtBQUssRUFBRSxDQUFDO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQVcsU0FBUyxD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LElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFPO1FBQ3BCLE9BQU8sQ0FDTCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssSUFBSTtZQUN4RCxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUM3RSxDQUFDO0lBQ0osQ0FBQzs4R0F4TFUseUJBQXlCO2tIQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTVhWYWx1ZUNvbXBvbmVudCB9IGZyb20gJy4vdmFsdWUtY29tcG9uZW50LmNsYXNzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1YU2VsZWN0aW9uVmFsdWVDb21wb25lbnQ8VCA9IHVua25vd24+IGV4dGVuZHMgTVhWYWx1ZUNvbXBvbmVudDx1bmtub3duPiB7XG4gIHNlbGVjdGlvbk1vZGU6ICd2YWx1ZScgfCAnaXRlbScgPSAndmFsdWUnO1xuXG4gIGRpc2FibGVkQ2FsbGJhY2s6IChlOiB7IGl0ZW06IFQ7IGluZGV4OiBudW1iZXIgfSkgPT4gYm9vbGVhbjtcblxuICBwcml2YXRlIF92YWx1ZUZpZWxkID0gJ2lkJztcbiAgcHVibGljIGdldCB2YWx1ZUZpZWxkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlRmllbGQ7XG4gIH1cbiAgcHVibGljIHNldCB2YWx1ZUZpZWxkKHY6IHN0cmluZykge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICd2YWx1ZUZpZWxkJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdGV4dEZpZWxkID0gJ3RleHQnO1xuICBwdWJsaWMgZ2V0IHRleHRGaWVsZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90ZXh0RmllbGQ7XG4gIH1cbiAgcHVibGljIHNldCB0ZXh0RmllbGQodjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3RleHRGaWVsZCcsXG4gICAgICB2YWx1ZTogdixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hpbnRGaWVsZCA9ICdoaW50JztcbiAgcHVibGljIGdldCBoaW50RmllbGQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5faGludEZpZWxkO1xuICB9XG4gIHB1YmxpYyBzZXQgaGludEZpZWxkKHY6IHN0cmluZykge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdoaW50RmllbGQnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9kaXNhYmxlZEZpZWxkID0gJ2Rpc2FibGVkJztcbiAgcHVibGljIGdldCBkaXNhYmxlZEZpZWxkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkRmllbGQ7XG4gIH1cbiAgcHVibGljIHNldCBkaXNhYmxlZEZpZWxkKHY6IHN0cmluZykge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdkaXNhYmxlZEZpZWxkJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVhZG9ubHlGaWVsZCA9ICdyZWFkb25seSc7XG4gIHB1YmxpYyBnZXQgcmVhZG9ubHlGaWVsZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9yZWFkb25seUZpZWxkO1xuICB9XG4gIHB1YmxpYyBzZXQgcmVhZG9ubHlGaWVsZCh2OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAncmVhZG9ubHlGaWVsZCcsXG4gICAgICB2YWx1ZTogdixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX211bHRpcGxlID0gZmFsc2U7XG4gIHB1YmxpYyBnZXQgbXVsdGlwbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xuICB9XG4gIHB1YmxpYyBzZXQgbXVsdGlwbGUodjogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdtdWx0aXBsZScsXG4gICAgICB2YWx1ZTogdixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2l0ZW1zOiB1bmtub3duW10gPSBbXTtcbiAgcHVibGljIGdldCBpdGVtcygpOiB1bmtub3duW10ge1xuICAgIHJldHVybiB0aGlzLl9pdGVtcztcbiAgfVxuICBwdWJsaWMgc2V0IGl0ZW1zKHY6IHVua25vd25bXSkge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdpdGVtcycsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6IChvbGRWYWx1ZSwgbmV3VmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5kaXNwbGF5SXRlbXMgPSB0aGlzLm5vcm1hbGl6ZUl0ZW1zTGlzdChuZXdWYWx1ZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRpc3BsYXlJdGVtczogdW5rbm93bltdID0gW107XG5cbiAgX3NlbGVjdGVkSXRlbXM6IHVua25vd25bXSA9IFtdO1xuICBnZXQgc2VsZWN0ZWRJdGVtcygpOiB1bmtub3duW10ge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEl0ZW1zIHx8IFtdO1xuICB9XG5cbiAgb3ZlcnJpZGUgaW50ZXJuYWxTZXRWYWx1ZSh2YWx1ZTogdW5rbm93bikge1xuICAgIGxldCBub3JtYWxpemVkSXRlbXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgPyB0aGlzLm5vcm1hbGl6ZUl0ZW1zTGlzdCh2YWx1ZSlcbiAgICAgIDogdGhpcy5ub3JtYWxpemVJdGVtc0xpc3QoW3ZhbHVlXSk7XG4gICAgbm9ybWFsaXplZEl0ZW1zID0gbm9ybWFsaXplZEl0ZW1zLmZpbHRlcigoYykgPT5cbiAgICAgIHRoaXMuZGlzcGxheUl0ZW1zLnNvbWUoKGQpID0+IGRbdGhpcy52YWx1ZUZpZWxkXSA9PSBjW3RoaXMudmFsdWVGaWVsZF0pLFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlwbGUgPyBub3JtYWxpemVkSXRlbXMgOiBub3JtYWxpemVkSXRlbXNbMF07XG4gIH1cblxuICBvdmVycmlkZSBlbWl0T25WYWx1ZUNoYW5nZWRFdmVudChvbGRWYWx1ZT86IHVua25vd24sIG5ld1ZhbHVlPzogdW5rbm93bikge1xuICAgIHRoaXMuX25vcm1hbGl6ZVNlbGVjdGVkSXRlbXMoKTtcbiAgICBzdXBlci5lbWl0T25WYWx1ZUNoYW5nZWRFdmVudChvbGRWYWx1ZSwgbmV3VmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVJdGVtc0xpc3QoaXRlbXM6IHVua25vd25bXSk6IHVua25vd25bXSB7XG4gICAgaWYgKGl0ZW1zID09IG51bGwpIHJldHVybiBbXTtcbiAgICByZXR1cm4gaXRlbXMuZmlsdGVyKChjKSA9PiBjICE9IG51bGwpLm1hcCgoaSkgPT4gdGhpcy5ub3JtYWxpemVJdGVtKGkpKTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplSXRlbShpdGVtOiB1bmtub3duKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiB1bmtub3duID0ge307XG4gICAgaWYgKHR5cGVvZiBpdGVtID09ICdvYmplY3QnKSB7XG4gICAgICBPYmplY3QuYXNzaWduKG9iaiwgaXRlbSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgaXRlbSAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCBleGlzdHNJdGVtID0gdGhpcy5kaXNwbGF5SXRlbXMuZmluZCgoYykgPT4gY1t0aGlzLnZhbHVlRmllbGRdID09IGl0ZW0pO1xuICAgICAgaWYgKGV4aXN0c0l0ZW0pIE9iamVjdC5hc3NpZ24ob2JqLCBleGlzdHNJdGVtKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICBvYmpbdGhpcy52YWx1ZUZpZWxkXSA9IGl0ZW07XG4gICAgICAgIG9ialt0aGlzLnRleHRGaWVsZF0gPSBpdGVtLnRvU3RyaW5nKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICBwcml2YXRlIF9ub3JtYWxpemVTZWxlY3RlZEl0ZW1zKCkge1xuICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyB0aGlzLnZhbHVlIDogW3RoaXMudmFsdWVdO1xuICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMgPSB0aGlzLmRpc3BsYXlJdGVtcy5maWx0ZXIoKGMpID0+XG4gICAgICB2YWx1ZXMuc29tZSgodikgPT4gdlt0aGlzLnZhbHVlRmllbGRdID09IGNbdGhpcy52YWx1ZUZpZWxkXSksXG4gICAgKTtcbiAgfVxuXG4gIHVuc2VsZWN0SXRlbXMoLi4uaXRlbXM6IFRbXSkge1xuICAgIGlmICghaXRlbXMgfHwgaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKFtdLCB0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgbm9ybWFsaXplSXRlbXMgPSBBcnJheS5pc0FycmF5KGl0ZW1zKVxuICAgICAgPyB0aGlzLm5vcm1hbGl6ZUl0ZW1zTGlzdChpdGVtcylcbiAgICAgIDogW3RoaXMubm9ybWFsaXplSXRlbShpdGVtcyldO1xuICAgIGNvbnN0IG5ld1NlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKFxuICAgICAgKGkpID0+ICFub3JtYWxpemVJdGVtcy5zb21lKChuKSA9PiBuW3RoaXMudmFsdWVGaWVsZF0gPT0gaVt0aGlzLnZhbHVlRmllbGRdKSxcbiAgICApO1xuICAgIHRoaXMuY29tbWl0VmFsdWUobmV3U2VsZWN0ZWRJdGVtcywgdHJ1ZSk7XG4gIH1cblxuICBzZWxlY3RJdGVtcyguLi5pdGVtczogVFtdKSB7XG4gICAgaWYgKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCkge1xuICAgICAgbGV0IG5ld1NlbGVjdGVkSXRlbXMgPSBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpID8gdGhpcy52YWx1ZSA6IFt0aGlzLnZhbHVlXTtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZUl0ZW1zID0gQXJyYXkuaXNBcnJheShpdGVtcylcbiAgICAgICAgPyB0aGlzLm5vcm1hbGl6ZUl0ZW1zTGlzdChpdGVtcylcbiAgICAgICAgOiBbdGhpcy5ub3JtYWxpemVJdGVtKGl0ZW1zKV07XG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgICBuZXdTZWxlY3RlZEl0ZW1zID0gWy4uLm5ld1NlbGVjdGVkSXRlbXMsIC4uLm5vcm1hbGl6ZUl0ZW1zXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1NlbGVjdGVkSXRlbXMgPSBub3JtYWxpemVJdGVtcztcbiAgICAgIH1cbiAgICAgIHRoaXMuY29tbWl0VmFsdWUobmV3U2VsZWN0ZWRJdGVtcywgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy5kaXNwbGF5SXRlbXMsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdCguLi5pdGVtczogVFtdKSB7XG4gICAgaXRlbXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgIHRoaXMuaXNJdGVtU2VsZWN0ZWQoaXRlbSkgPyB0aGlzLnVuc2VsZWN0SXRlbXMoaXRlbSkgOiB0aGlzLnNlbGVjdEl0ZW1zKGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RJdGVtcyhpdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGlzSXRlbVNlbGVjdGVkKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zLnNvbWUoKGMpID0+IGNbdGhpcy52YWx1ZUZpZWxkXSA9PT0gaXRlbVt0aGlzLnZhbHVlRmllbGRdKTtcbiAgfVxuXG4gIGlzSXRlbURpc2FibGVkKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgY29lcmNlQm9vbGVhblByb3BlcnR5KGl0ZW1bdGhpcy5kaXNhYmxlZEZpZWxkXSkgPT09IHRydWUgfHxcbiAgICAgICh0aGlzLmRpc2FibGVkQ2FsbGJhY2sgPyB0aGlzLmRpc2FibGVkQ2FsbGJhY2soeyBpdGVtLCBpbmRleDogLTEgfSkgOiBmYWxzZSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
2
2
|
import { EventEmitter, Injectable } from '@angular/core';
|
3
|
+
import { clone } from 'lodash-es';
|
3
4
|
import { noop } from 'rxjs';
|
4
5
|
import { MXInteractiveComponent } from './interactive-component.class';
|
5
|
-
import { clone } from 'lodash-es';
|
6
6
|
import * as i0 from "@angular/core";
|
7
7
|
export class MXValueComponent extends MXInteractiveComponent {
|
8
8
|
constructor() {
|
@@ -99,10 +99,12 @@ export class MXValueComponent extends MXInteractiveComponent {
|
|
99
99
|
return value;
|
100
100
|
}
|
101
101
|
internalValueChanged(value) { }
|
102
|
-
ngOnInit() {
|
103
|
-
this.getHostElement().setAttribute('ax-form-input', 'true');
|
104
|
-
}
|
105
102
|
ngAfterViewInit() {
|
103
|
+
const a = this.getHostElement().querySelectorAll('[ax-form-input="true"]');
|
104
|
+
a.forEach((c) => {
|
105
|
+
c.removeAttribute('ax-form-input');
|
106
|
+
});
|
107
|
+
this.getHostElement().setAttribute('ax-form-input', 'true');
|
106
108
|
this._checkRequired();
|
107
109
|
}
|
108
110
|
ngOnDestroy() {
|
@@ -110,7 +112,7 @@ export class MXValueComponent extends MXInteractiveComponent {
|
|
110
112
|
this.onOptionChanged?.unsubscribe();
|
111
113
|
}
|
112
114
|
_checkRequired() {
|
113
|
-
const isRequired = Array.from(this.getHostElement().querySelectorAll('ax-validation-rule')).some((c) => c.__axContext__
|
115
|
+
const isRequired = Array.from(this.getHostElement().querySelectorAll('ax-validation-rule')).some((c) => c.__axContext__?.enabled && c.__axContext__?.rule == 'required');
|
114
116
|
//
|
115
117
|
if (isRequired) {
|
116
118
|
const container = this.getHostElement().classList.contains('ax-editor-container')
|
@@ -221,7 +223,6 @@ export class MXValueComponent extends MXInteractiveComponent {
|
|
221
223
|
}
|
222
224
|
clear(e) {
|
223
225
|
this.commitValue(null, e);
|
224
|
-
this.setState('clear');
|
225
226
|
}
|
226
227
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: MXValueComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
227
228
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: MXValueComponent }); }
|
@@ -229,4 +230,4 @@ export class MXValueComponent extends MXInteractiveComponent {
|
|
229
230
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: MXValueComponent, decorators: [{
|
230
231
|
type: Injectable
|
231
232
|
}] });
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtY29tcG9uZW50LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvdmFsdWUtY29tcG9uZW50LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHNUIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFHbEMsTUFBTSxPQUFPLGdCQUEwQixTQUFRLHNCQUFzQjtJQURyRTs7UUFFRTs7O1dBR0c7UUFDSCxtQkFBYyxHQUEyQyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUV0Rzs7V0FFRztRQUNILGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFekQsZ0JBQVcsR0FBbUMsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFFbkYsbUJBQWMsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUM1RCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBMEJsQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBU2YsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBMEJuQyxnRUFBZ0U7UUFFeEQsV0FBTSxHQUFxQixPQUFPLENBQUM7UUF5SmpDLHFCQUFnQixHQUF1QixJQUFJLENBQUM7S0F1QnZEO0lBOU9DOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLEtBQUssR0FBRyxxQkFB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LENBQUM7b0JBQ3ZDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzFCO2dCQUNELEtBQUssRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQ3ZDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBRXZDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO2dCQUN0QixNQUFNO1NBQ1Q7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFJRCxnQkFBZ0IsQ0FBQyxFQUFzQjtRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBUTtRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQVEsRUFBRSxDQUFDLEdBQUcsS0FBSztRQUNwQyxJQUFJLENBQUMsRUFBRTtZQUNMLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztTQUNoQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUssQ0FBQyxDQUFVO1FBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQTdQVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhWYWx1ZUNoYW5nZWRFdmVudCB9IGZyb20gJy4uL2NsYXNzZXMvZXZlbnRzLmNsYXNzJztcbmltcG9ydCB7IEFYQ29tcG9uZW50U3RhdGUgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50LmNsYXNzJztcbmltcG9ydCB7IE1YSW50ZXJhY3RpdmVDb21wb25lbnQgfSBmcm9tICcuL2ludGVyYWN0aXZlLWNvbXBvbmVudC5jbGFzcyc7XG5pbXBvcnQgeyBjbG9uZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNWFZhbHVlQ29tcG9uZW50PFQgPSBhbnk+IGV4dGVuZHMgTVhJbnRlcmFjdGl2ZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLyoqXG4gICAqICBGaXJlcyBlYWNoIHRpbWUgdGhlIHVzZXIgcHJlc3MgYSBrZXkuXG4gICAqICBAZXZlbnRcbiAgICovXG4gIG9uVmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUNoYW5nZWRFdmVudDxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhWYWx1ZUNoYW5nZWRFdmVudDxhbnk+PigpO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGUgZXZlbnQgc2hvdWxkIG5vdCBiZSB1c2VkLCB1c2UgbmdNb2RlbENoYW5nZSBpbnN0ZWFkXG4gICAqL1xuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBzdGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEFYQ29tcG9uZW50U3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWENvbXBvbmVudFN0YXRlPigpO1xuXG4gIHJlYWRvbmx5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgX3JlYWRvbmx5ID0gZmFsc2U7XG4gIC8qKlxuICAgKiAgSWYgc2V0IHRvIHRydWUsIHVzZXIgY2Fubm90IGNoYW5nZSB0aGUgdmFsdWUgb2YgY29tcG9uZW50LlxuICAgKi9cbiAgZ2V0IHJlYWRvbmx5KCkge1xuICAgIHJldHVybiB0aGlzLl9yZWFkb25seTtcbiAgfVxuICBzZXQgcmVhZG9ubHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB2YWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3JlYWRvbmx5JyxcbiAgICAgIHZhbHVlLFxuICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9uYW1lOiBzdHJpbmc7XG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLl9uYW1lO1xuICB9XG4gIHNldCBuYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9uYW1lID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9kaXJ0eSA9IGZhbHNlO1xuICBwdWJsaWMgZ2V0IGRpcnR5KCkge1xuICAgIHJldHVybiB0aGlzLl9kaXJ0eTtcbiAgfVxuXG4gIG1hcmtBc0RpcnR5KCkge1xuICAgIHRoaXMuX2RpcnR5ID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzVXNlckludGVyYWN0aW9uID0gZmFsc2U7XG5cbiAgaW5pdFZhbHVlOiBUO1xuICBkZWZhdWx0VmFsdWU6IFQ7XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IFQ7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGUgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSB1c2VkLCB1c2UgbmdNb2RlbCBpbnN0ZWFkXG4gICAqL1xuICBnZXQgdmFsdWUoKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxHZXRWYWx1ZSh0aGlzLl92YWx1ZSkgPz8gdGhpcy5kZWZhdWx0VmFsdWU7XG4gIH1cbiAgc2V0IHZhbHVlKHY6IFQpIHtcbiAgICB2ID0gdGhpcy5pbnRlcm5hbFNldFZhbHVlKHYpO1xuICAgIGNvbnN0IG9sZCA9IGNsb25lKHRoaXMudmFsdWUpO1xuICAgIC8vIFRPRE86IGNoZWNrIHJlYWwgZXF1YWxpdHlcbiAgICBpZiAodiAhPSBvbGQpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdjtcbiAgICAgIHRoaXMuZW1pdE9uVmFsdWVDaGFuZ2VkRXZlbnQob2xkLCB0aGlzLnZhbHVlKTtcbiAgICAgIGlmICh2ID09IG51bGwgfHwgdiA9PSB1bmRlZmluZWQgfHwgdiA9PSAnJyB8fCAoQXJyYXkuaXNBcnJheSh2KSAmJiB2Lmxlbmd0aCA9PSAwKSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKCdjbGVhcicpO1xuICAgICAgfVxuICAgICAgdGhpcy5pbnRlcm5hbFZhbHVlQ2hhbmdlZCh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvL3N0YXRlQ2hhbmdlOkV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSBfc3RhdGU6IEFYQ29tcG9uZW50U3RhdGUgPSAnY2xlYXInO1xuXG4gIGdldCBzdGF0ZSgpOiBBWENvbXBvbmVudFN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGU7XG4gIH1cblxuICBzZXQgc3RhdGUodmFsdWU6IEFYQ29tcG9uZW50U3RhdGUpIHtcbiAgICB0aGlzLnNldFN0YXRlKHZhbHVlKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVtaXRPblZhbHVlQ2hhbmdlZEV2ZW50KG9sZFZhbHVlPzogYW55LCBuZXdWYWx1ZT86IGFueSkge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChuZXdWYWx1ZSk7XG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIHZhbHVlOiBuZXdWYWx1ZSxcbiAgICAgIG9sZFZhbHVlOiBvbGRWYWx1ZSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0aGlzLl9pc1VzZXJJbnRlcmFjdGlvbixcbiAgICB9KTtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sobmV3VmFsdWUpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHRoaXMuX2lzVXNlckludGVyYWN0aW9uID0gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW50ZXJuYWxTZXRWYWx1ZSh2YWx1ZTogYW55KTogVCB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGludGVybmFsR2V0VmFsdWUodmFsdWU6IGFueSk6IFQge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnRlcm5hbFZhbHVlQ2hhbmdlZCh2YWx1ZTogYW55KTogdm9pZCB7IH1cblxuICBwcm90ZWN0ZWQgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRIb3N0RWxlbWVudCgpLnNldEF0dHJpYnV0ZSgnYXgtZm9ybS1pbnB1dCcsICd0cnVlJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2NoZWNrUmVxdWlyZWQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMub25PcHRpb25DaGFuZ2VkPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tSZXF1aXJlZCgpIHtcbiAgICBjb25zdCBpc1JlcXVpcmVkID0gQXJyYXkuZnJvbSh0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbCgnYXgtdmFsaWRhdGlvbi1ydWxlJykpLnNvbWUoXG4gICAgICAoYykgPT4gKGMgYXMgYW55KS5fX2F4Q29udGV4dF9fLmVuYWJsZWQgJiYgKGMgYXMgYW55KS5fX2F4Q29udGV4dF9fLnJ1bGUgPT0gJ3JlcXVpcmVkJyxcbiAgICApO1xuICAgIC8vXG4gICAgaWYgKGlzUmVxdWlyZWQpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5jbGFzc0xpc3QuY29udGFpbnMoJ2F4LWVkaXRvci1jb250YWluZXInKVxuICAgICAgICA/IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKVxuICAgICAgICA6IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCcuYXgtZWRpdG9yLWNvbnRhaW5lcicpO1xuICAgICAgY29uc3QgZm9ybUZpZWxkID0gY29udGFpbmVyPy5jbG9zZXN0KCcuYXgtZm9ybS1maWVsZCcpO1xuICAgICAgY29uc3QgbGFiZWwgPSAoZm9ybUZpZWxkPy5xdWVyeVNlbGVjdG9yKCdheC1sYWJlbCcpIGFzIGFueSk/Ll9fYXhDb250ZXh0X187XG4gICAgICBpZiAobGFiZWwpIGxhYmVsLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZSgpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHJ1bGVzID0gQXJyYXkuZnJvbSh0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbCgnYXgtdmFsaWRhdGlvbi1ydWxlJykpLmZpbHRlcihcbiAgICAgIChjKSA9PiAoYyBhcyBhbnkpLl9fYXhDb250ZXh0X18uZW5hYmxlZCxcbiAgICApO1xuICAgIC8vXG4gICAgaWYgKCFydWxlcyB8fCBydWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoJ2NsZWFyJyk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgcmVzdWx0OiB0cnVlLFxuICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcbiAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlKSA9PiB7XG4gICAgICBQcm9taXNlLmFsbChcbiAgICAgICAgcnVsZXNcbiAgICAgICAgICAuZmlsdGVyKChjKSA9PiB0eXBlb2YgKGMgYXMgYW55KT8udmFsaWRhdGUgPT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgLm1hcCgoYykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChjIGFzIGFueSkudmFsaWRhdGUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgfSksXG4gICAgICApLnRoZW4oKGQpID0+IHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBkLmZpbmQoKGMpID0+IGMucmVzdWx0ID09PSBmYWxzZSk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoJ2Vycm9yJywgZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICByZXN1bHQ6IGZhbHNlLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSgnc3VjY2VzcycpO1xuICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgcmVzdWx0OiB0cnVlLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0U3RhdGUoc3RhdGU6IEFYQ29tcG9uZW50U3RhdGUsIC4uLmFyZ3MpIHtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LmNvbnRhaW5zKCdheC1lZGl0b3ItY29udGFpbmVyJylcbiAgICAgID8gdGhpcy5nZXRIb3N0RWxlbWVudCgpXG4gICAgICA6IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCcuYXgtZWRpdG9yLWNvbnRhaW5lcicpO1xuICAgIGNvbnN0IGZvcm1GaWVsZCA9IGNvbnRhaW5lcj8uY2xvc2VzdCgnLmF4LWZvcm0tZmllbGQnKTtcbiAgICBjb25zdCBsYWJlbCA9IGZvcm1GaWVsZD8ucXVlcnlTZWxlY3RvcignYXgtbGFiZWwnKSB8fCBmb3JtRmllbGQ/LnF1ZXJ5U2VsZWN0b3IoJ2xhYmVsJyk7XG4gICAgbGV0IHRhcmdldCA9IGNvbnRhaW5lciB8fCB0aGlzLmdldEhvc3RFbGVtZW50KCkuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgaWYgKHRhcmdldD8ucXVlcnlTZWxlY3RvcignLmF4LWVycm9yLWNvbnRhaW5lcicpKSB7XG4gICAgICB0YXJnZXQgPSB0YXJnZXQucXVlcnlTZWxlY3RvcignLmF4LWVycm9yLWNvbnRhaW5lcicpO1xuICAgIH1cbiAgICBjb25zdCBwYXJlbnQgPSB0YXJnZXQ/LnBhcmVudEVsZW1lbnQ7XG4gICAgaWYgKCF0YXJnZXQgfHwgIXBhcmVudCkgcmV0dXJuO1xuXG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSAnY2xlYXInOlxuICAgICAgICB0aGlzLl9zdGF0ZSA9ICdjbGVhcic7XG4gICAgICAgIGlmIChwYXJlbnQucXVlcnlTZWxlY3Rvcignc3Bhbi5heC1lcnJvci1tZXNzYWdlJykpIHtcbiAgICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQocGFyZW50LnF1ZXJ5U2VsZWN0b3IoJ3NwYW4uYXgtZXJyb3ItbWVzc2FnZScpISk7XG4gICAgICAgIH1cbiAgICAgICAgbGFiZWw/LmNsYXNzTGlzdC5yZW1vdmUoJ2F4LXN0YXRlLWVycm9yJyk7XG4gICAgICAgIHRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCdheC1zdGF0ZS1lcnJvcicsICdheC1zdGF0ZS1zdWNjZXNzJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoJ2NsZWFyJyk7XG4gICAgICAgIHRhcmdldC5jbGFzc0xpc3QuYWRkKCdheC1zdGF0ZS1zdWNjZXNzJyk7XG4gICAgICAgIHRoaXMuX3N0YXRlID0gJ3N1Y2Nlc3MnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSgnY2xlYXInKTtcbiAgICAgICAgaWYgKGFyZ3NbMF0pIHtcbiAgICAgICAgICBjb25zdCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgIHNwYW4uaW5uZXJUZXh0ID0gYXJnc1swXTtcbiAgICAgICAgICBzcGFuLmNsYXNzTGlzdC5hZGQoJ2F4LWVycm9yLW1lc3NhZ2UnKTtcbiAgICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoc3Bhbik7XG4gICAgICAgIH1cbiAgICAgICAgbGFiZWw/LmNsYXNzTGlzdC5hZGQoJ2F4LXN0YXRlLWVycm9yJyk7XG4gICAgICAgIHRhcmdldC5jbGFzc0xpc3QuYWRkKCdheC1zdGF0ZS1lcnJvcicpO1xuXG4gICAgICAgIHRoaXMuX3N0YXRlID0gJ2Vycm9yJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2hhbmdlQ2FsbGJhY2s6ICh2YWx1ZTogVCkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBUKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGNvbW1pdFZhbHVlKHZhbHVlOiBULCB1ID0gZmFsc2UpIHtcbiAgICBpZiAodSkge1xuICAgICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLm1hcmtBc0RpcnR5KCk7XG4gICAgICB0aGlzLl9pc1VzZXJJbnRlcmFjdGlvbiA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBjbGVhcihlOiBib29sZWFuKSB7XG4gICAgdGhpcy5jb21taXRWYWx1ZShudWxsLCBlKTtcbiAgICB0aGlzLnNldFN0YXRlKCdjbGVhcicpO1xuICB9XG59XG4iXX0=
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtY29tcG9uZW50LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvdmFsdWUtY29tcG9uZW50LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc1QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFHdkUsTUFBTSxPQUFPLGdCQUEwQixTQUFRLHNCQUFzQjtJQURyRTs7UUFFRTs7O1dBR0c7UUFDSCxtQkFBYyxHQUEyQyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUV0Rzs7V0FFRztRQUNILGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFekQsZ0JBQVcsR0FBbUMsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFFbkYsbUJBQWMsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUM1RCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBMEJsQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBU2YsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBMEJuQyxnRUFBZ0U7UUFFeEQsV0FBTSxHQUFxQixPQUFPLENBQUM7UUEySmpDLHFCQUFnQixHQUF1QixJQUFJLENBQUM7S0FzQnZEO0lBL09DOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLEtBQUssR0FBRyxxQkFB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Z0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbG9uZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnLi4vY2xhc3Nlcy9ldmVudHMuY2xhc3MnO1xuaW1wb3J0IHsgQVhDb21wb25lbnRTdGF0ZSB9IGZyb20gJy4vYmFzZS1jb21wb25lbnQuY2xhc3MnO1xuaW1wb3J0IHsgTVhJbnRlcmFjdGl2ZUNvbXBvbmVudCB9IGZyb20gJy4vaW50ZXJhY3RpdmUtY29tcG9uZW50LmNsYXNzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1YVmFsdWVDb21wb25lbnQ8VCA9IGFueT4gZXh0ZW5kcyBNWEludGVyYWN0aXZlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAvKipcbiAgICogIEZpcmVzIGVhY2ggdGltZSB0aGUgdXNlciBwcmVzcyBhIGtleS5cbiAgICogIEBldmVudFxuICAgKi9cbiAgb25WYWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFZhbHVlQ2hhbmdlZEV2ZW50PGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFZhbHVlQ2hhbmdlZEV2ZW50PGFueT4+KCk7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFRoZSBldmVudCBzaG91bGQgbm90IGJlIHVzZWQsIHVzZSBuZ01vZGVsQ2hhbmdlIGluc3RlYWRcbiAgICovXG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHN0YXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhDb21wb25lbnRTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ29tcG9uZW50U3RhdGU+KCk7XG5cbiAgcmVhZG9ubHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBfcmVhZG9ubHkgPSBmYWxzZTtcbiAgLyoqXG4gICAqICBJZiBzZXQgdG8gdHJ1ZSwgdXNlciBjYW5ub3QgY2hhbmdlIHRoZSB2YWx1ZSBvZiBjb21wb25lbnQuXG4gICAqL1xuICBnZXQgcmVhZG9ubHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5O1xuICB9XG4gIHNldCByZWFkb25seSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAncmVhZG9ubHknLFxuICAgICAgdmFsdWUsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX25hbWU6IHN0cmluZztcbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gIH1cbiAgc2V0IG5hbWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX25hbWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2RpcnR5ID0gZmFsc2U7XG4gIHB1YmxpYyBnZXQgZGlydHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RpcnR5O1xuICB9XG5cbiAgbWFya0FzRGlydHkoKSB7XG4gICAgdGhpcy5fZGlydHkgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNVc2VySW50ZXJhY3Rpb24gPSBmYWxzZTtcblxuICBpbml0VmFsdWU6IFQ7XG4gIGRlZmF1bHRWYWx1ZTogVDtcblxuICBwcml2YXRlIF92YWx1ZTogVDtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFRoZSBwcm9wZXJ0eSBzaG91bGQgbm90IGJlIHVzZWQsIHVzZSBuZ01vZGVsIGluc3RlYWRcbiAgICovXG4gIGdldCB2YWx1ZSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcm5hbEdldFZhbHVlKHRoaXMuX3ZhbHVlKSA/PyB0aGlzLmRlZmF1bHRWYWx1ZTtcbiAgfVxuICBzZXQgdmFsdWUodjogVCkge1xuICAgIHYgPSB0aGlzLmludGVybmFsU2V0VmFsdWUodik7XG4gICAgY29uc3Qgb2xkID0gY2xvbmUodGhpcy52YWx1ZSk7XG4gICAgLy8gVE9ETzogY2hlY2sgcmVhbCBlcXVhbGl0eVxuICAgIGlmICh2ICE9IG9sZCkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgICAgdGhpcy5lbWl0T25WYWx1ZUNoYW5nZWRFdmVudChvbGQsIHRoaXMudmFsdWUpO1xuICAgICAgaWYgKHYgPT0gbnVsbCB8fCB2ID09IHVuZGVmaW5lZCB8fCB2ID09ICcnIHx8IChBcnJheS5pc0FycmF5KHYpICYmIHYubGVuZ3RoID09IDApKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoJ2NsZWFyJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmludGVybmFsVmFsdWVDaGFuZ2VkKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vc3RhdGVDaGFuZ2U6RXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwcml2YXRlIF9zdGF0ZTogQVhDb21wb25lbnRTdGF0ZSA9ICdjbGVhcic7XG5cbiAgZ2V0IHN0YXRlKCk6IEFYQ29tcG9uZW50U3RhdGUge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgfVxuXG4gIHNldCBzdGF0ZSh2YWx1ZTogQVhDb21wb25lbnRTdGF0ZSkge1xuICAgIHRoaXMuc2V0U3RhdGUodmFsdWUpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW1pdE9uVmFsdWVDaGFuZ2VkRXZlbnQob2xkVmFsdWU/OiBhbnksIG5ld1ZhbHVlPzogYW55KSB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG5ld1ZhbHVlKTtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgdmFsdWU6IG5ld1ZhbHVlLFxuICAgICAgb2xkVmFsdWU6IG9sZFZhbHVlLFxuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgaXNVc2VySW50ZXJhY3Rpb246IHRoaXMuX2lzVXNlckludGVyYWN0aW9uLFxuICAgIH0pO1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayhuZXdWYWx1ZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5faXNVc2VySW50ZXJhY3Rpb24gPSBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnRlcm5hbFNldFZhbHVlKHZhbHVlOiBhbnkpOiBUIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW50ZXJuYWxHZXRWYWx1ZSh2YWx1ZTogYW55KTogVCB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGludGVybmFsVmFsdWVDaGFuZ2VkKHZhbHVlOiBhbnkpOiB2b2lkIHsgfVxuXG5cbiAgcHJvdGVjdGVkIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBhID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3JBbGwoJ1theC1mb3JtLWlucHV0PVwidHJ1ZVwiXScpO1xuICAgIGEuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgYy5yZW1vdmVBdHRyaWJ1dGUoJ2F4LWZvcm0taW5wdXQnKTtcbiAgICB9KTtcbiAgICB0aGlzLmdldEhvc3RFbGVtZW50KCkuc2V0QXR0cmlidXRlKCdheC1mb3JtLWlucHV0JywgJ3RydWUnKTtcbiAgICB0aGlzLl9jaGVja1JlcXVpcmVkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9uT3B0aW9uQ2hhbmdlZD8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrUmVxdWlyZWQoKSB7XG4gICAgY29uc3QgaXNSZXF1aXJlZCA9IEFycmF5LmZyb20odGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3JBbGwoJ2F4LXZhbGlkYXRpb24tcnVsZScpKS5zb21lKFxuICAgICAgKGMpID0+IChjIGFzIGFueSkuX19heENvbnRleHRfXz8uZW5hYmxlZCAmJiAoYyBhcyBhbnkpLl9fYXhDb250ZXh0X18/LnJ1bGUgPT0gJ3JlcXVpcmVkJyxcbiAgICApO1xuICAgIC8vXG4gICAgaWYgKGlzUmVxdWlyZWQpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5jbGFzc0xpc3QuY29udGFpbnMoJ2F4LWVkaXRvci1jb250YWluZXInKVxuICAgICAgICA/IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKVxuICAgICAgICA6IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCcuYXgtZWRpdG9yLWNvbnRhaW5lcicpO1xuICAgICAgY29uc3QgZm9ybUZpZWxkID0gY29udGFpbmVyPy5jbG9zZXN0KCcuYXgtZm9ybS1maWVsZCcpO1xuICAgICAgY29uc3QgbGFiZWwgPSAoZm9ybUZpZWxkPy5xdWVyeVNlbGVjdG9yKCdheC1sYWJlbCcpIGFzIGFueSk/Ll9fYXhDb250ZXh0X187XG4gICAgICBpZiAobGFiZWwpIGxhYmVsLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZSgpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHJ1bGVzID0gQXJyYXkuZnJvbSh0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbCgnYXgtdmFsaWRhdGlvbi1ydWxlJykpLmZpbHRlcihcbiAgICAgIChjKSA9PiAoYyBhcyBhbnkpLl9fYXhDb250ZXh0X18uZW5hYmxlZCxcbiAgICApO1xuICAgIC8vXG4gICAgaWYgKCFydWxlcyB8fCBydWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoJ2NsZWFyJyk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgcmVzdWx0OiB0cnVlLFxuICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcbiAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlKSA9PiB7XG4gICAgICBQcm9taXNlLmFsbChcbiAgICAgICAgcnVsZXNcbiAgICAgICAgICAuZmlsdGVyKChjKSA9PiB0eXBlb2YgKGMgYXMgYW55KT8udmFsaWRhdGUgPT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgLm1hcCgoYykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChjIGFzIGFueSkudmFsaWRhdGUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgfSksXG4gICAgICApLnRoZW4oKGQpID0+IHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBkLmZpbmQoKGMpID0+IGMucmVzdWx0ID09PSBmYWxzZSk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoJ2Vycm9yJywgZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICByZXN1bHQ6IGZhbHNlLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSgnc3VjY2VzcycpO1xuICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgcmVzdWx0OiB0cnVlLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0U3RhdGUoc3RhdGU6IEFYQ29tcG9uZW50U3RhdGUsIC4uLmFyZ3MpIHtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LmNvbnRhaW5zKCdheC1lZGl0b3ItY29udGFpbmVyJylcbiAgICAgID8gdGhpcy5nZXRIb3N0RWxlbWVudCgpXG4gICAgICA6IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCcuYXgtZWRpdG9yLWNvbnRhaW5lcicpO1xuICAgIGNvbnN0IGZvcm1GaWVsZCA9IGNvbnRhaW5lcj8uY2xvc2VzdCgnLmF4LWZvcm0tZmllbGQnKTtcbiAgICBjb25zdCBsYWJlbCA9IGZvcm1GaWVsZD8ucXVlcnlTZWxlY3RvcignYXgtbGFiZWwnKSB8fCBmb3JtRmllbGQ/LnF1ZXJ5U2VsZWN0b3IoJ2xhYmVsJyk7XG4gICAgbGV0IHRhcmdldCA9IGNvbnRhaW5lciB8fCB0aGlzLmdldEhvc3RFbGVtZW50KCkuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgaWYgKHRhcmdldD8ucXVlcnlTZWxlY3RvcignLmF4LWVycm9yLWNvbnRhaW5lcicpKSB7XG4gICAgICB0YXJnZXQgPSB0YXJnZXQucXVlcnlTZWxlY3RvcignLmF4LWVycm9yLWNvbnRhaW5lcicpO1xuICAgIH1cbiAgICBjb25zdCBwYXJlbnQgPSB0YXJnZXQ/LnBhcmVudEVsZW1lbnQ7XG4gICAgaWYgKCF0YXJnZXQgfHwgIXBhcmVudCkgcmV0dXJuO1xuXG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSAnY2xlYXInOlxuICAgICAgICB0aGlzLl9zdGF0ZSA9ICdjbGVhcic7XG4gICAgICAgIGlmIChwYXJlbnQucXVlcnlTZWxlY3Rvcignc3Bhbi5heC1lcnJvci1tZXNzYWdlJykpIHtcbiAgICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQocGFyZW50LnF1ZXJ5U2VsZWN0b3IoJ3NwYW4uYXgtZXJyb3ItbWVzc2FnZScpISk7XG4gICAgICAgIH1cbiAgICAgICAgbGFiZWw/LmNsYXNzTGlzdC5yZW1vdmUoJ2F4LXN0YXRlLWVycm9yJyk7XG4gICAgICAgIHRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCdheC1zdGF0ZS1lcnJvcicsICdheC1zdGF0ZS1zdWNjZXNzJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoJ2NsZWFyJyk7XG4gICAgICAgIHRhcmdldC5jbGFzc0xpc3QuYWRkKCdheC1zdGF0ZS1zdWNjZXNzJyk7XG4gICAgICAgIHRoaXMuX3N0YXRlID0gJ3N1Y2Nlc3MnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSgnY2xlYXInKTtcbiAgICAgICAgaWYgKGFyZ3NbMF0pIHtcbiAgICAgICAgICBjb25zdCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgIHNwYW4uaW5uZXJUZXh0ID0gYXJnc1swXTtcbiAgICAgICAgICBzcGFuLmNsYXNzTGlzdC5hZGQoJ2F4LWVycm9yLW1lc3NhZ2UnKTtcbiAgICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoc3Bhbik7XG4gICAgICAgIH1cbiAgICAgICAgbGFiZWw/LmNsYXNzTGlzdC5hZGQoJ2F4LXN0YXRlLWVycm9yJyk7XG4gICAgICAgIHRhcmdldC5jbGFzc0xpc3QuYWRkKCdheC1zdGF0ZS1lcnJvcicpO1xuXG4gICAgICAgIHRoaXMuX3N0YXRlID0gJ2Vycm9yJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2hhbmdlQ2FsbGJhY2s6ICh2YWx1ZTogVCkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBUKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGNvbW1pdFZhbHVlKHZhbHVlOiBULCB1ID0gZmFsc2UpIHtcbiAgICBpZiAodSkge1xuICAgICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLm1hcmtBc0RpcnR5KCk7XG4gICAgICB0aGlzLl9pc1VzZXJJbnRlcmFjdGlvbiA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBjbGVhcihlOiBib29sZWFuKSB7XG4gICAgdGhpcy5jb21taXRWYWx1ZShudWxsLCBlKTtcbiAgfVxufVxuIl19
|