@acorex/components 7.4.1 → 7.4.4
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/button/index.d.ts +0 -1
- package/button/lib/button.component.d.ts +1 -0
- package/button/lib/button.module.d.ts +3 -3
- package/button-group/lib/button-group.component.d.ts +1 -1
- package/common/index.d.ts +5 -4
- package/common/lib/classes/styles.class.d.ts +1 -1
- package/common/lib/common.module.d.ts +2 -1
- package/common/lib/components/base-component.class.d.ts +1 -2
- package/common/lib/components/color-component.class.d.ts +0 -2
- package/common/lib/components/colorlook-component.class.d.ts +0 -2
- package/common/lib/components/interactive-component.class.d.ts +4 -5
- package/common/lib/components/look-component.class.d.ts +0 -2
- package/common/lib/directives/ripple.directive.d.ts +10 -0
- package/datetime-picker/lib/datetime-picker.component.d.ts +6 -2
- package/dialog/lib/dialog.class.d.ts +17 -4
- package/dialog/lib/dialog.component.d.ts +4 -5
- package/esm2022/alert/lib/alert.component.mjs +2 -2
- package/esm2022/badge/lib/badge.component.mjs +2 -2
- package/esm2022/button/index.mjs +1 -2
- package/esm2022/button/lib/button-item.class.mjs +1 -1
- package/esm2022/button/lib/button.component.mjs +11 -6
- package/esm2022/button/lib/button.module.mjs +6 -14
- package/esm2022/button-group/lib/button-group.component.mjs +7 -5
- package/esm2022/calendar/lib/calendar.component.mjs +7 -7
- package/esm2022/chips/lib/chips.component.mjs +2 -2
- package/esm2022/common/index.mjs +6 -5
- package/esm2022/common/lib/classes/styles.class.mjs +20 -3
- package/esm2022/common/lib/common.module.mjs +11 -7
- package/esm2022/common/lib/components/base-component.class.mjs +6 -8
- package/esm2022/common/lib/components/button-base-component.class.mjs +1 -1
- package/esm2022/common/lib/components/color-component.class.mjs +2 -4
- package/esm2022/common/lib/components/colorlook-component.class.mjs +3 -5
- package/esm2022/common/lib/components/interactive-component.class.mjs +9 -8
- package/esm2022/common/lib/components/look-component.class.mjs +2 -4
- package/esm2022/common/lib/directives/ripple.directive.mjs +38 -0
- package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +6 -6
- package/esm2022/data-pager/lib/data-pager.component.mjs +2 -2
- package/esm2022/datetime-box/lib/datetime-box.component.mjs +3 -3
- package/esm2022/datetime-input/lib/datetime-input.component.mjs +3 -3
- package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +23 -11
- package/esm2022/dialog/lib/dialog.class.mjs +1 -1
- package/esm2022/dialog/lib/dialog.component.mjs +13 -14
- package/esm2022/dialog/lib/dialog.service.mjs +1 -3
- package/esm2022/form/lib/validation-rule.widget.mjs +4 -6
- package/esm2022/mixin/lib/color-look-mixing.class.mjs +1 -3
- package/esm2022/otp/lib/otp.component.mjs +11 -2
- package/esm2022/picker/lib/picker.component.mjs +13 -4
- package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +3 -3
- package/esm2022/scheduler/lib/scheduler.component.mjs +4 -4
- package/esm2022/switch/lib/switch.component.mjs +2 -2
- package/esm2022/tabs/lib/tabs.component.mjs +2 -2
- package/esm2022/toast/lib/toast.component.mjs +3 -3
- package/fesm2022/acorex-components-alert.mjs +2 -2
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +2 -2
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-button-group.mjs +6 -4
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +16 -109
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +6 -6
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +2 -2
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-common.mjs +78 -29
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +7 -7
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +2 -2
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +2 -2
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +24 -13
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +12 -15
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +1 -3
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-mixin.mjs +1 -3
- package/fesm2022/acorex-components-mixin.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +10 -1
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +12 -3
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +4 -4
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +2 -2
- 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-toast.mjs +2 -2
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/form/lib/validation-rule.widget.d.ts +3 -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 -4
- 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/otp/lib/otp.component.d.ts +1 -0
- package/package.json +7 -7
- package/picker/lib/picker.component.d.ts +1 -0
- package/button/lib/button-group.component.d.ts +0 -23
- package/esm2022/button/lib/button-group.component.mjs +0 -95
@@ -1,95 +0,0 @@
|
|
1
|
-
import { MXColorLookComponent, MXInteractiveComponent, } from '@acorex/components/common';
|
2
|
-
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, QueryList, ViewEncapsulation, } from '@angular/core';
|
3
|
-
import { classes } from 'polytype';
|
4
|
-
import { AXButtonComponent } from './button.component';
|
5
|
-
import * as i0 from "@angular/core";
|
6
|
-
export class AXButtonGroupComponent extends classes(MXInteractiveComponent, MXColorLookComponent) {
|
7
|
-
constructor() {
|
8
|
-
super(...arguments);
|
9
|
-
this.selectionChange = new EventEmitter();
|
10
|
-
this.onItemClick = new EventEmitter();
|
11
|
-
this.onValueChanged = new EventEmitter();
|
12
|
-
}
|
13
|
-
get selection() {
|
14
|
-
return this._selection;
|
15
|
-
}
|
16
|
-
set selection(value) {
|
17
|
-
this.setOption({
|
18
|
-
name: 'selection',
|
19
|
-
value: value,
|
20
|
-
afterCallback: (o, n) => {
|
21
|
-
if (value == 'none') {
|
22
|
-
this.clearSelection();
|
23
|
-
}
|
24
|
-
},
|
25
|
-
});
|
26
|
-
}
|
27
|
-
ngAfterContentInit() {
|
28
|
-
this._bindEvents();
|
29
|
-
this._bindProps();
|
30
|
-
this._contentButtons.changes.subscribe(() => {
|
31
|
-
this._bindEvents();
|
32
|
-
this._bindProps();
|
33
|
-
});
|
34
|
-
}
|
35
|
-
_bindEvents() {
|
36
|
-
this._contentButtons?.forEach((b) => {
|
37
|
-
if (!b.onClick.length)
|
38
|
-
b.onClick.subscribe((c) => {
|
39
|
-
this._handleClickEvent(c, b);
|
40
|
-
});
|
41
|
-
});
|
42
|
-
}
|
43
|
-
_bindProps() {
|
44
|
-
this._contentButtons?.forEach((b) => {
|
45
|
-
if (b['originDisabled'] == null) {
|
46
|
-
b['originDisabled'] = b.disabled;
|
47
|
-
}
|
48
|
-
b.look = this.look ?? this.look;
|
49
|
-
b.color = this.color ?? this.color;
|
50
|
-
b.disabled = b['originDisabled'] || this.disabled;
|
51
|
-
b.toggleable = false;
|
52
|
-
});
|
53
|
-
}
|
54
|
-
internalOptionChanged() {
|
55
|
-
this._bindProps();
|
56
|
-
}
|
57
|
-
_handleClickEvent(e, button) {
|
58
|
-
if (this.selection == 'multiple') {
|
59
|
-
button.selected = !button.selected;
|
60
|
-
}
|
61
|
-
else if (this.selection == 'single') {
|
62
|
-
this.clearSelection();
|
63
|
-
button.selected = true;
|
64
|
-
}
|
65
|
-
else {
|
66
|
-
button.selected = false;
|
67
|
-
}
|
68
|
-
this.onItemClick.emit({
|
69
|
-
component: this,
|
70
|
-
htmlElement: e.htmlElement,
|
71
|
-
item: button,
|
72
|
-
});
|
73
|
-
}
|
74
|
-
clearSelection() {
|
75
|
-
this._contentButtons.forEach((c) => {
|
76
|
-
c.selected = false;
|
77
|
-
});
|
78
|
-
}
|
79
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXButtonGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
80
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXButtonGroupComponent, selector: "ax-button-group", inputs: { disabled: "disabled", tabIndex: "tabIndex", color: "color", look: "look", selection: "selection" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", lookChange: "lookChange", colorChange: "colorChange", disabledChange: "disabledChange", selectionChange: "selectionChange", onItemClick: "onItemClick" }, host: { attributes: { "role": "group" } }, queries: [{ propertyName: "_contentButtons", predicate: AXButtonComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-button\"></ng-content>", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
81
|
-
}
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXButtonGroupComponent, decorators: [{
|
83
|
-
type: Component,
|
84
|
-
args: [{ selector: 'ax-button-group', inputs: ['disabled', 'tabIndex', 'color', 'look'], outputs: ['onBlur', 'onFocus', 'lookChange', 'colorChange', 'disabledChange'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { role: 'group' }, template: "<ng-content select=\"ax-button\"></ng-content>" }]
|
85
|
-
}], propDecorators: { selectionChange: [{
|
86
|
-
type: Output
|
87
|
-
}], selection: [{
|
88
|
-
type: Input
|
89
|
-
}], onItemClick: [{
|
90
|
-
type: Output
|
91
|
-
}], _contentButtons: [{
|
92
|
-
type: ContentChildren,
|
93
|
-
args: [AXButtonComponent, { descendants: true }]
|
94
|
-
}] } });
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9idXR0b24vc3JjL2xpYi9idXR0b24tZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2J1dHRvbi9zcmMvbGliL2J1dHRvbi1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBS0wsb0JBQW9CLEVBQ3BCLHNCQUFzQixHQUN2QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBV3ZELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxPQUFPLENBQUMsc0JBQXNCLEVBQUUsb0JBQW9CLENBQUM7SUFUakc7O1FBV0Usb0JBQWUsR0FBa0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQW9CcEUsZ0JBQVcsR0FBc0QsSUFBSSxZQUFZLEVBRTlFLENBQUM7UUFFRyxtQkFBYyxHQUNuQixJQUFJLFlBQVksRUFBZ0MsQ0FBQztLQTZEcEQ7SUFuRkMsSUFDVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBVyxTQUFTLENBQUMsS0FBc0I7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNiLElBQUksRUFBRSxXQUFXO1lBQ2pCLEtBQUssRUFBRSxLQUFLO1lBQ1osYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN0QixJQUFJLEtBQUssSUFBSSxNQUFNLEVBQUU7b0JBQ25CLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztpQkFDdkI7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQWFELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDMUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTTtnQkFDbkIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtvQkFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxJQUFJLEVBQUU7Z0JBQy9CLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7YUFDbEM7WUFDRCxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztZQUNoQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNuQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDbEQsQ0FBQyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVEscUJBQXFCO1FBQzVCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRU8saUJBQWlCLENBQUMsQ0FBZSxFQUFFLE1BQXlCO1FBQ2xFLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLEVBQUU7WUFDaEMsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7U0FDcEM7YUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksUUFBUSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN4QjthQUFNO1lBQ0wsTUFBTSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDekI7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNwQixTQUFTLEVBQUUsSUFBSTtZQUNmLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVztZQUMxQixJQUFJLEVBQUUsTUFBTTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBb0IsRUFBRSxFQUFFO1lBQ3BELENBQUMsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F2RlUsc0JBQXNCO2tHQUF0QixzQkFBc0IsMmJBNkJoQixpQkFBaUIsdUVDM0RwQyxnREFBNEM7OzJGRDhCL0Isc0JBQXNCO2tCQVRsQyxTQUFTOytCQUNFLGlCQUFpQixVQUVuQixDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxXQUN4QyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxpQkFDOUQsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6QyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7OEJBSXZCLGVBQWU7c0JBRGQsTUFBTTtnQkFLSSxTQUFTO3NCQURuQixLQUFLO2dCQWlCTixXQUFXO3NCQURWLE1BQU07Z0JBU0MsZUFBZTtzQkFEdEIsZUFBZTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENsaWNrRXZlbnQsXG4gIEFYSXRlbUNsaWNrRXZlbnQsXG4gIEFYU2VsZWN0aW9uTW9kZSxcbiAgQVhTZWxlY3Rpb25WYWx1ZUNoYW5nZWRFdmVudCxcbiAgTVhDb2xvckxvb2tDb21wb25lbnQsXG4gIE1YSW50ZXJhY3RpdmVDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcbmltcG9ydCB7IEFYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtYnV0dG9uLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICdidXR0b24tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAndGFiSW5kZXgnLCAnY29sb3InLCAnbG9vayddLFxuICBvdXRwdXRzOiBbJ29uQmx1cicsICdvbkZvY3VzJywgJ2xvb2tDaGFuZ2UnLCAnY29sb3JDaGFuZ2UnLCAnZGlzYWJsZWRDaGFuZ2UnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHsgcm9sZTogJ2dyb3VwJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBBWEJ1dHRvbkdyb3VwQ29tcG9uZW50IGV4dGVuZHMgY2xhc3NlcyhNWEludGVyYWN0aXZlQ29tcG9uZW50LCBNWENvbG9yTG9va0NvbXBvbmVudCkge1xuICBAT3V0cHV0KClcbiAgc2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhTZWxlY3Rpb25Nb2RlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIF9zZWxlY3Rpb246IEFYU2VsZWN0aW9uTW9kZTtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBzZWxlY3Rpb24oKTogQVhTZWxlY3Rpb25Nb2RlIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uO1xuICB9XG4gIHB1YmxpYyBzZXQgc2VsZWN0aW9uKHZhbHVlOiBBWFNlbGVjdGlvbk1vZGUpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnc2VsZWN0aW9uJyxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGFmdGVyQ2FsbGJhY2s6IChvLCBuKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSA9PSAnbm9uZScpIHtcbiAgICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgb25JdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxBWEl0ZW1DbGlja0V2ZW50PEFYQnV0dG9uQ29tcG9uZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIEFYSXRlbUNsaWNrRXZlbnQ8QVhCdXR0b25Db21wb25lbnQ+XG4gID4oKTtcblxuICBwdWJsaWMgb25WYWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFNlbGVjdGlvblZhbHVlQ2hhbmdlZEV2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxBWFNlbGVjdGlvblZhbHVlQ2hhbmdlZEV2ZW50PigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQVhCdXR0b25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSBfY29udGVudEJ1dHRvbnM6IFF1ZXJ5TGlzdDxBWEJ1dHRvbkNvbXBvbmVudD47XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuX2JpbmRFdmVudHMoKTtcbiAgICB0aGlzLl9iaW5kUHJvcHMoKTtcbiAgICB0aGlzLl9jb250ZW50QnV0dG9ucy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9iaW5kRXZlbnRzKCk7XG4gICAgICB0aGlzLl9iaW5kUHJvcHMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2JpbmRFdmVudHMoKSB7XG4gICAgdGhpcy5fY29udGVudEJ1dHRvbnM/LmZvckVhY2goKGI6IGFueSkgPT4ge1xuICAgICAgaWYgKCFiLm9uQ2xpY2subGVuZ3RoKVxuICAgICAgICBiLm9uQ2xpY2suc3Vic2NyaWJlKChjOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLl9oYW5kbGVDbGlja0V2ZW50KGMsIGIpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2JpbmRQcm9wcygpIHtcbiAgICB0aGlzLl9jb250ZW50QnV0dG9ucz8uZm9yRWFjaCgoYjogYW55KSA9PiB7XG4gICAgICBpZiAoYlsnb3JpZ2luRGlzYWJsZWQnXSA9PSBudWxsKSB7XG4gICAgICAgIGJbJ29yaWdpbkRpc2FibGVkJ10gPSBiLmRpc2FibGVkO1xuICAgICAgfVxuICAgICAgYi5sb29rID0gdGhpcy5sb29rID8/IHRoaXMubG9vaztcbiAgICAgIGIuY29sb3IgPSB0aGlzLmNvbG9yID8/IHRoaXMuY29sb3I7XG4gICAgICBiLmRpc2FibGVkID0gYlsnb3JpZ2luRGlzYWJsZWQnXSB8fCB0aGlzLmRpc2FibGVkO1xuICAgICAgYi50b2dnbGVhYmxlID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBpbnRlcm5hbE9wdGlvbkNoYW5nZWQoKSB7XG4gICAgdGhpcy5fYmluZFByb3BzKCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVDbGlja0V2ZW50KGU6IEFYQ2xpY2tFdmVudCwgYnV0dG9uOiBBWEJ1dHRvbkNvbXBvbmVudCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbiA9PSAnbXVsdGlwbGUnKSB7XG4gICAgICBidXR0b24uc2VsZWN0ZWQgPSAhYnV0dG9uLnNlbGVjdGVkO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3Rpb24gPT0gJ3NpbmdsZScpIHtcbiAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcbiAgICAgIGJ1dHRvbi5zZWxlY3RlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJ1dHRvbi5zZWxlY3RlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMub25JdGVtQ2xpY2suZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogZS5odG1sRWxlbWVudCxcbiAgICAgIGl0ZW06IGJ1dHRvbixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5fY29udGVudEJ1dHRvbnMuZm9yRWFjaCgoYzogQVhCdXR0b25Db21wb25lbnQpID0+IHtcbiAgICAgIGMuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtYnV0dG9uXCI+PC9uZy1jb250ZW50PiJdfQ==
|