@acorex/components 5.1.2 → 5.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/base/index.mjs +2 -1
- package/esm2020/lib/base/mixin/base-menu-mixin.class.mjs +4 -3
- package/esm2020/lib/base/mixin/datalist-component.class.mjs +4 -1
- package/esm2020/lib/base/mixin/dropdown-mixin.class.mjs +1 -4
- package/esm2020/lib/base/mixin/interactive-mixin.class.mjs +3 -2
- package/esm2020/lib/base/mixin/textbox-mixin.class.mjs +2 -2
- package/esm2020/lib/calendar/calendar.component.mjs +60 -7
- package/esm2020/lib/calendar/calendar.module.mjs +4 -3
- package/esm2020/lib/carousel/carousel-arrows.component.mjs +10 -8
- package/esm2020/lib/carousel/carousel-splidejs.class.mjs +4 -1
- package/esm2020/lib/carousel/carousel.class.mjs +1 -1
- package/esm2020/lib/carousel/carousel.component.mjs +51 -2
- package/esm2020/lib/collapse/collapse-group.component.mjs +16 -12
- package/esm2020/lib/collapse/collapse.component.mjs +2 -3
- package/esm2020/lib/datepicker/datepicker.component.mjs +10 -3
- package/esm2020/lib/menu/menu.component.mjs +73 -14
- package/esm2020/lib/menu/menu.module.mjs +20 -4
- package/esm2020/lib/number-box/number-box.component.mjs +2 -2
- package/esm2020/lib/password-box/password-box.component.mjs +2 -2
- package/esm2020/lib/picker/picker.component.mjs +34 -10
- package/esm2020/lib/popover/popover.component.mjs +37 -18
- package/esm2020/lib/radio/index.mjs +1 -1
- package/esm2020/lib/radio/radio.component.mjs +3 -3
- package/esm2020/lib/radio/radio.module.mjs +1 -1
- package/esm2020/lib/selectbox/selectbox.component.mjs +17 -9
- package/esm2020/lib/textarea/textarea.component.mjs +2 -2
- package/esm2020/lib/textbox/textbox.component.mjs +3 -3
- package/esm2020/lib/time-box/time-box.component.mjs +2 -2
- package/fesm2015/acorex-components.mjs +568 -320
- package/fesm2015/acorex-components.mjs.map +1 -1
- package/fesm2020/acorex-components.mjs +551 -307
- package/fesm2020/acorex-components.mjs.map +1 -1
- package/lib/base/index.d.ts +1 -0
- package/lib/base/mixin/base-menu-mixin.class.d.ts +2 -1
- package/lib/base/mixin/datalist-component.class.d.ts +1 -0
- package/lib/base/mixin/mixin.class.d.ts +2 -1
- package/lib/calendar/calendar.component.d.ts +10 -1
- package/lib/calendar/calendar.module.d.ts +2 -1
- package/lib/carousel/carousel-arrows.component.d.ts +2 -1
- package/lib/carousel/carousel.class.d.ts +5 -0
- package/lib/carousel/carousel.component.d.ts +13 -1
- package/lib/collapse/collapse-group.component.d.ts +7 -6
- package/lib/collapse/collapse.component.d.ts +2 -3
- package/lib/datepicker/datepicker.component.d.ts +2 -1
- package/lib/menu/menu.component.d.ts +12 -7
- package/lib/menu/menu.module.d.ts +2 -1
- package/lib/number-box/number-box.component.d.ts +1 -1
- package/lib/password-box/password-box.component.d.ts +1 -1
- package/lib/picker/picker.component.d.ts +14 -11
- package/lib/popover/popover.component.d.ts +3 -0
- package/lib/selectbox/selectbox.component.d.ts +2 -2
- package/lib/textarea/textarea.component.d.ts +1 -1
- package/lib/textbox/textbox.component.d.ts +1 -1
- package/lib/time-box/time-box.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy, } from '@angular/core';
|
|
1
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ContentChild, } from '@angular/core';
|
|
2
2
|
import { AXBaseMenuMixin } from '../base';
|
|
3
3
|
import { BASEMENU_INPUTS } from '../base/mixin/base-menu-mixin.class';
|
|
4
4
|
import { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT, } from '../base/mixin/interactive-mixin.class';
|
|
@@ -18,22 +18,27 @@ export class AXMenuComponent extends AXBaseMenuMixin {
|
|
|
18
18
|
this.elementRef = elementRef;
|
|
19
19
|
this.cdr = cdr;
|
|
20
20
|
}
|
|
21
|
+
get emptyTemplate() {
|
|
22
|
+
return this._contentEmptyTemplate;
|
|
23
|
+
}
|
|
21
24
|
onInit() {
|
|
22
25
|
super.onInit();
|
|
23
|
-
this.
|
|
26
|
+
if (this.hasChildField) {
|
|
27
|
+
this._fetchData();
|
|
28
|
+
}
|
|
24
29
|
}
|
|
25
30
|
ngAfterViewInit() {
|
|
26
31
|
super.onViewInit();
|
|
27
32
|
}
|
|
28
|
-
|
|
29
|
-
if (!item[this.disableField]) {
|
|
30
|
-
this.
|
|
33
|
+
_onMenuClick(e, item) {
|
|
34
|
+
if (!item[this.disableField] && this.openMode === 'click') {
|
|
35
|
+
this._notActive(this.displayItems);
|
|
31
36
|
if (item.children?.length > 0 || item[this.hasChildField]) {
|
|
32
37
|
if (item.children?.length > 0 && item[this.hasChildField]) {
|
|
33
38
|
item.children = [];
|
|
34
39
|
}
|
|
35
40
|
if (item.children?.length > 0) {
|
|
36
|
-
this.
|
|
41
|
+
this._closeChild(item.children);
|
|
37
42
|
}
|
|
38
43
|
item.isOpen = !item.isOpen;
|
|
39
44
|
}
|
|
@@ -50,27 +55,81 @@ export class AXMenuComponent extends AXBaseMenuMixin {
|
|
|
50
55
|
e.stopPropagation();
|
|
51
56
|
e.preventDefault();
|
|
52
57
|
}
|
|
53
|
-
|
|
58
|
+
_notActive(items) {
|
|
54
59
|
items.forEach((element) => {
|
|
55
60
|
element.isActive = false;
|
|
56
61
|
if (element.children?.length > 0) {
|
|
57
|
-
this.
|
|
62
|
+
this._notActive(element.children);
|
|
58
63
|
}
|
|
59
64
|
});
|
|
60
65
|
}
|
|
61
|
-
|
|
66
|
+
_closeChild(items) {
|
|
62
67
|
items.forEach((element) => {
|
|
63
68
|
element.isOpen = false;
|
|
64
69
|
if (element.children?.length > 0) {
|
|
65
|
-
this.
|
|
70
|
+
this._closeChild(element.children);
|
|
66
71
|
}
|
|
67
72
|
});
|
|
68
73
|
}
|
|
74
|
+
_onMouseEnter(e, item) {
|
|
75
|
+
if (this.openMode === 'hover') {
|
|
76
|
+
if (!item[this.disableField]) {
|
|
77
|
+
if (item.children?.length > 0 || item[this.hasChildField]) {
|
|
78
|
+
if (item.children?.length > 0 && item[this.hasChildField]) {
|
|
79
|
+
item.children = [];
|
|
80
|
+
}
|
|
81
|
+
if (item.children?.length > 0) {
|
|
82
|
+
this._closeChild(item.children);
|
|
83
|
+
}
|
|
84
|
+
item.isOpen = true;
|
|
85
|
+
}
|
|
86
|
+
this.onMenuItemClick.emit({
|
|
87
|
+
component: this,
|
|
88
|
+
item: item,
|
|
89
|
+
nativeEvent: e,
|
|
90
|
+
});
|
|
91
|
+
if (item.isOpen && item[this.hasChildField]) {
|
|
92
|
+
this._fetchData(item.id);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
e.stopPropagation();
|
|
97
|
+
e.preventDefault();
|
|
98
|
+
}
|
|
99
|
+
_onMouseLeave(e, item) {
|
|
100
|
+
if (this.openMode === 'hover') {
|
|
101
|
+
if (!item[this.disableField]) {
|
|
102
|
+
if (item.children?.length > 0 || item[this.hasChildField]) {
|
|
103
|
+
if (item.children?.length > 0 && item[this.hasChildField]) {
|
|
104
|
+
item.children = [];
|
|
105
|
+
}
|
|
106
|
+
if (item.children?.length > 0) {
|
|
107
|
+
this._closeChild(item.children);
|
|
108
|
+
}
|
|
109
|
+
item.isOpen = false;
|
|
110
|
+
}
|
|
111
|
+
if (item.isOpen && item[this.hasChildField]) {
|
|
112
|
+
this._fetchData(item.id);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
_getDirection() {
|
|
118
|
+
if (this.direction === 'horizontal') {
|
|
119
|
+
return 'horizontal-mode';
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
return 'vertical-mode';
|
|
123
|
+
}
|
|
124
|
+
}
|
|
69
125
|
}
|
|
70
126
|
AXMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
-
AXMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: AXMenuComponent, selector: "ax-menu", inputs: { disabled: "disabled", tabIndex: "tabIndex", textField: "textField", valueField: "valueField", items: "items", id: "id", parentId: "parentId", icon: "icon", tooltip: "tooltip", isOpen: "isOpen", isActive: "isActive",
|
|
127
|
+
AXMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: AXMenuComponent, selector: "ax-menu", inputs: { disabled: "disabled", tabIndex: "tabIndex", textField: "textField", valueField: "valueField", items: "items", id: "id", parentId: "parentId", icon: "icon", tooltip: "tooltip", isOpen: "isOpen", isActive: "isActive", visibleField: "visibleField", disableField: "disableField", hasChildField: "hasChildField", openMode: "openMode", direction: "direction" }, outputs: { onBlur: "onBlur", onFocus: "onFocus" }, host: { classAttribute: "ax-menu" }, queries: [{ propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ul [ngClass]=\"_getDirection()\">\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: displayItems }\"></ng-container>\r\n</ul>\r\n\r\n<ng-template #recursiveListTmpl let-list=\"list\">\r\n <ng-container *ngFor=\"let item of list; trackBy: _trackLoaded\">\r\n <li *ngIf=\"item[visibleField] !=false\" [class.ax-state-disabled]=\"item[disableField]\"\r\n (click)=\"_onMenuClick($event,item)\" (mouseenter)=\"_onMouseEnter($event,item)\"\r\n (mouseleave)=\"_onMouseLeave($event,item)\">\r\n <a [ngClass]=\"{'active': item.isActive}\">\r\n <div class=\"ax-menu-start-side\">\r\n <ax-icon [class]=\"item.icon || item[icon]\" *ngIf=\"item.icon || item[icon]\"></ax-icon>\r\n <span>{{_getItemDisplayTextTemplte(item)}}</span>\r\n </div>\r\n <div class=\"ax-menu-end-side\">\r\n <ax-icon [ngClass]=\"{'active-icon': item.isOpen}\"\r\n *ngIf=\"item?.children?.length > 0 && !isLoading || item[hasChildField] && !isLoading\" class=\"ax-ic-chevron\">\r\n </ax-icon>\r\n </div>\r\n <ax-loading *ngIf=\"isLoading && item.isActive && item.isOpen\">\r\n </ax-loading>\r\n </a>\r\n <ul [class.ax-state-disabled]=\"item[disableField]\" *ngIf=\"item?.children?.length > 0 && item.isOpen\">\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: item.children }\"></ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n</ng-template>\r\n<ng-container *ngIf=\"isLoading\">\r\n <ng-template>\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </ng-template>\r\n</ng-container>\r\n<ng-template #tmpEmpty>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <!--------------- check for custom template --------------->\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseEmptyTemplate>\r\n <div class=\"ax-list-item\">\r\n {{ 'common.no-result-found' | trans }}\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>", components: [{ type: i1.AXIconComponent, selector: "ax-icon", inputs: ["icon"] }, { type: i2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "text"], outputs: ["visibleChange"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "trans": i4.AXTranslatorPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
72
128
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXMenuComponent, decorators: [{
|
|
73
129
|
type: Component,
|
|
74
|
-
args: [{ selector: 'ax-menu', inputs: [...INTERACTIVE_INPUTS, ...BASEMENU_INPUTS], outputs: [...INTERACTIVE_OUTPUT], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-menu' }, template: "<ul>\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: displayItems }\"></ng-container>\r\n</ul>\r\n\r\n<ng-template #recursiveListTmpl let-list=\"list\">\r\n <ng-container *ngFor=\"let item of list; trackBy: _trackLoaded\">\r\n <li [class.ax-state-disabled]=\"item[disableField]\"
|
|
75
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }
|
|
76
|
-
|
|
130
|
+
args: [{ selector: 'ax-menu', inputs: [...INTERACTIVE_INPUTS, ...BASEMENU_INPUTS], outputs: [...INTERACTIVE_OUTPUT], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-menu' }, template: "<ul [ngClass]=\"_getDirection()\">\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: displayItems }\"></ng-container>\r\n</ul>\r\n\r\n<ng-template #recursiveListTmpl let-list=\"list\">\r\n <ng-container *ngFor=\"let item of list; trackBy: _trackLoaded\">\r\n <li *ngIf=\"item[visibleField] !=false\" [class.ax-state-disabled]=\"item[disableField]\"\r\n (click)=\"_onMenuClick($event,item)\" (mouseenter)=\"_onMouseEnter($event,item)\"\r\n (mouseleave)=\"_onMouseLeave($event,item)\">\r\n <a [ngClass]=\"{'active': item.isActive}\">\r\n <div class=\"ax-menu-start-side\">\r\n <ax-icon [class]=\"item.icon || item[icon]\" *ngIf=\"item.icon || item[icon]\"></ax-icon>\r\n <span>{{_getItemDisplayTextTemplte(item)}}</span>\r\n </div>\r\n <div class=\"ax-menu-end-side\">\r\n <ax-icon [ngClass]=\"{'active-icon': item.isOpen}\"\r\n *ngIf=\"item?.children?.length > 0 && !isLoading || item[hasChildField] && !isLoading\" class=\"ax-ic-chevron\">\r\n </ax-icon>\r\n </div>\r\n <ax-loading *ngIf=\"isLoading && item.isActive && item.isOpen\">\r\n </ax-loading>\r\n </a>\r\n <ul [class.ax-state-disabled]=\"item[disableField]\" *ngIf=\"item?.children?.length > 0 && item.isOpen\">\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: item.children }\"></ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n</ng-template>\r\n<ng-container *ngIf=\"isLoading\">\r\n <ng-template>\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </ng-template>\r\n</ng-container>\r\n<ng-template #tmpEmpty>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <!--------------- check for custom template --------------->\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseEmptyTemplate>\r\n <div class=\"ax-list-item\">\r\n {{ 'common.no-result-found' | trans }}\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>" }]
|
|
131
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { _contentEmptyTemplate: [{
|
|
132
|
+
type: ContentChild,
|
|
133
|
+
args: ['emptyTemplate']
|
|
134
|
+
}] } });
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL21lbnUvbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL21lbnUvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFLdkIsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsa0JBQWtCLEdBQ25CLE1BQU0sdUNBQXVDLENBQUM7Ozs7OztBQW1CL0M7Ozs7R0FJRztBQVVILE1BQU0sT0FBTyxlQUFnQixTQUFRLGVBQWU7SUFPbEQsWUFBb0IsVUFBc0IsRUFBVSxHQUFzQjtRQUN4RSxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBREwsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBRTFFLENBQUM7SUFMRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUNwQyxDQUFDO0lBS0QsTUFBTTtRQUNKLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBWSxDQUFDLENBQWEsRUFBRSxJQUFTO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFO1lBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ25DLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQ3pELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7b0JBQ3pELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2lCQUNwQjtnQkFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ2pDO2dCQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQzVCO1lBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLFNBQVMsRUFBRSxJQUFJO2dCQUNmLElBQUksRUFBRSxJQUFJO2dCQUNWLFdBQVcsRUFBRSxDQUFDO2FBQ2YsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzFCO1NBQ0Y7UUFDRCxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBWTtRQUNyQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDN0IsT0FBTyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDekIsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ25DO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVk7UUFDdEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFO1lBQzdCLE9BQU8sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNwQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxDQUFhLEVBQUUsSUFBUztRQUNwQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUM1QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO29CQUN6RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO3dCQUN6RCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztxQkFDcEI7b0JBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3FCQUNqQztvQkFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztpQkFDcEI7Z0JBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7b0JBQ3hCLFNBQVMsRUFBRSxJQUFJO29CQUNmLElBQUksRUFBRSxJQUFJO29CQUNWLFdBQVcsRUFBRSxDQUFDO2lCQUNmLENBQUMsQ0FBQztnQkFDSCxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtvQkFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQzFCO2FBQ0Y7U0FDRjtRQUVELENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGFBQWEsQ0FBQyxDQUFhLEVBQUUsSUFBUztRQUNwQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUM1QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO29CQUN6RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO3dCQUN6RCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztxQkFDcEI7b0JBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3FCQUNqQztvQkFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztpQkFDckI7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7b0JBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUMxQjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxZQUFZLEVBQUU7WUFDbkMsT0FBTyxpQkFBaUIsQ0FBQztTQUMxQjthQUFNO1lBQ0wsT0FBTyxlQUFlLENBQUM7U0FDeEI7SUFDSCxDQUFDOzs0R0F0SFUsZUFBZTtnR0FBZixlQUFlLGdvQkNoRDVCLHV1RUFnRGM7MkZEQUQsZUFBZTtrQkFUM0IsU0FBUzsrQkFDRSxTQUFTLFVBRVgsQ0FBQyxHQUFHLGtCQUFrQixFQUFFLEdBQUcsZUFBZSxDQUFDLFdBQzFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxtQkFDZix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtpSUFJbEIscUJBQXFCO3NCQUQ1QixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uSW5pdCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBDb250ZW50Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYQmFzZU1lbnVNaXhpbiB9IGZyb20gJy4uL2Jhc2UnO1xyXG5pbXBvcnQgeyBCQVNFTUVOVV9JTlBVVFMgfSBmcm9tICcuLi9iYXNlL21peGluL2Jhc2UtbWVudS1taXhpbi5jbGFzcyc7XHJcbmltcG9ydCB7XHJcbiAgSU5URVJBQ1RJVkVfSU5QVVRTLFxyXG4gIElOVEVSQUNUSVZFX09VVFBVVCxcclxufSBmcm9tICcuLi9iYXNlL21peGluL2ludGVyYWN0aXZlLW1peGluLmNsYXNzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhNZW51SXRlbXMge1xyXG4gIGlkPzogc3RyaW5nO1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgdGV4dD86IHN0cmluZztcclxuICB0b29sdGlwPzogc3RyaW5nO1xyXG4gIHBhcmVudElkPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgdmlzaWJsZUZpZWxkPzogYm9vbGVhbjtcclxuICBkaXNhYmxlRmllbGQ/OiBib29sZWFuO1xyXG4gIHNlbGVjdGVkPzogYm9vbGVhbjtcclxuICBkYXRhPzogYW55O1xyXG4gIHN0eWxlPzogc3RyaW5nO1xyXG4gIGNoaWxkcmVuPzogQVhNZW51SXRlbXNbXTtcclxuICBpc09wZW4/OiBib29sZWFuO1xyXG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcclxuICBvbkNsaWNrPzogKGU/OiBhbnkpID0+IHZvaWQ7XHJcbn1cclxuLyoqXHJcbiAqIFRoZSBCdXR0b24gaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcclxuICpcclxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtbWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGlucHV0czogWy4uLklOVEVSQUNUSVZFX0lOUFVUUywgLi4uQkFTRU1FTlVfSU5QVVRTXSxcclxuICBvdXRwdXRzOiBbLi4uSU5URVJBQ1RJVkVfT1VUUFVUXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGhvc3Q6IHsgY2xhc3M6ICdheC1tZW51JyB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhNZW51Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlTWVudU1peGluIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAQ29udGVudENoaWxkKCdlbXB0eVRlbXBsYXRlJylcclxuICBwcml2YXRlIF9jb250ZW50RW1wdHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgZ2V0IGVtcHR5VGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29udGVudEVtcHR5VGVtcGxhdGU7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xyXG4gIH1cclxuXHJcbiAgb25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIub25Jbml0KCk7XHJcbiAgICBpZiAodGhpcy5oYXNDaGlsZEZpZWxkKSB7XHJcbiAgICAgIHRoaXMuX2ZldGNoRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIub25WaWV3SW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgX29uTWVudUNsaWNrKGU6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSkge1xyXG4gICAgaWYgKCFpdGVtW3RoaXMuZGlzYWJsZUZpZWxkXSAmJiB0aGlzLm9wZW5Nb2RlID09PSAnY2xpY2snKSB7XHJcbiAgICAgIHRoaXMuX25vdEFjdGl2ZSh0aGlzLmRpc3BsYXlJdGVtcyk7XHJcbiAgICAgIGlmIChpdGVtLmNoaWxkcmVuPy5sZW5ndGggPiAwIHx8IGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSkge1xyXG4gICAgICAgIGlmIChpdGVtLmNoaWxkcmVuPy5sZW5ndGggPiAwICYmIGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSkge1xyXG4gICAgICAgICAgaXRlbS5jaGlsZHJlbiA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbj8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5fY2xvc2VDaGlsZChpdGVtLmNoaWxkcmVuKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaXRlbS5pc09wZW4gPSAhaXRlbS5pc09wZW47XHJcbiAgICAgIH1cclxuICAgICAgaXRlbS5pc0FjdGl2ZSA9ICFpdGVtLmlzQWN0aXZlO1xyXG4gICAgICB0aGlzLm9uTWVudUl0ZW1DbGljay5lbWl0KHtcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgaXRlbTogaXRlbSxcclxuICAgICAgICBuYXRpdmVFdmVudDogZSxcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChpdGVtLmlzT3BlbiAmJiBpdGVtW3RoaXMuaGFzQ2hpbGRGaWVsZF0pIHtcclxuICAgICAgICB0aGlzLl9mZXRjaERhdGEoaXRlbS5pZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxuICBfbm90QWN0aXZlKGl0ZW1zOiBhbnlbXSkge1xyXG4gICAgaXRlbXMuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGVsZW1lbnQuaXNBY3RpdmUgPSBmYWxzZTtcclxuICAgICAgaWYgKGVsZW1lbnQuY2hpbGRyZW4/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLl9ub3RBY3RpdmUoZWxlbWVudC5jaGlsZHJlbik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgX2Nsb3NlQ2hpbGQoaXRlbXM6IGFueVtdKSB7XHJcbiAgICBpdGVtcy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgZWxlbWVudC5pc09wZW4gPSBmYWxzZTtcclxuICAgICAgaWYgKGVsZW1lbnQuY2hpbGRyZW4/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLl9jbG9zZUNoaWxkKGVsZW1lbnQuY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIF9vbk1vdXNlRW50ZXIoZTogTW91c2VFdmVudCwgaXRlbTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5vcGVuTW9kZSA9PT0gJ2hvdmVyJykge1xyXG4gICAgICBpZiAoIWl0ZW1bdGhpcy5kaXNhYmxlRmllbGRdKSB7XHJcbiAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCA+IDAgfHwgaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdKSB7XHJcbiAgICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbj8ubGVuZ3RoID4gMCAmJiBpdGVtW3RoaXMuaGFzQ2hpbGRGaWVsZF0pIHtcclxuICAgICAgICAgICAgaXRlbS5jaGlsZHJlbiA9IFtdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fY2xvc2VDaGlsZChpdGVtLmNoaWxkcmVuKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGl0ZW0uaXNPcGVuID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vbk1lbnVJdGVtQ2xpY2suZW1pdCh7XHJcbiAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgICBpdGVtOiBpdGVtLFxyXG4gICAgICAgICAgbmF0aXZlRXZlbnQ6IGUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKGl0ZW0uaXNPcGVuICYmIGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSkge1xyXG4gICAgICAgICAgdGhpcy5fZmV0Y2hEYXRhKGl0ZW0uaWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxuICBfb25Nb3VzZUxlYXZlKGU6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSkge1xyXG4gICAgaWYgKHRoaXMub3Blbk1vZGUgPT09ICdob3ZlcicpIHtcclxuICAgICAgaWYgKCFpdGVtW3RoaXMuZGlzYWJsZUZpZWxkXSkge1xyXG4gICAgICAgIGlmIChpdGVtLmNoaWxkcmVuPy5sZW5ndGggPiAwIHx8IGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSkge1xyXG4gICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCA+IDAgJiYgaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdKSB7XHJcbiAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW4gPSBbXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Nsb3NlQ2hpbGQoaXRlbS5jaGlsZHJlbik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpdGVtLmlzT3BlbiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXRlbS5pc09wZW4gJiYgaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdKSB7XHJcbiAgICAgICAgICB0aGlzLl9mZXRjaERhdGEoaXRlbS5pZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBfZ2V0RGlyZWN0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcpIHtcclxuICAgICAgcmV0dXJuICdob3Jpem9udGFsLW1vZGUnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICd2ZXJ0aWNhbC1tb2RlJztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPHVsIFtuZ0NsYXNzXT1cIl9nZXREaXJlY3Rpb24oKVwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWN1cnNpdmVMaXN0VG1wbDsgY29udGV4dDp7IGxpc3Q6IGRpc3BsYXlJdGVtcyB9XCI+PC9uZy1jb250YWluZXI+XHJcbjwvdWw+XHJcblxyXG48bmctdGVtcGxhdGUgI3JlY3Vyc2l2ZUxpc3RUbXBsIGxldC1saXN0PVwibGlzdFwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGlzdDsgIHRyYWNrQnk6IF90cmFja0xvYWRlZFwiPlxyXG4gICAgPGxpICpuZ0lmPVwiaXRlbVt2aXNpYmxlRmllbGRdICE9ZmFsc2VcIiBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiaXRlbVtkaXNhYmxlRmllbGRdXCJcclxuICAgICAgKGNsaWNrKT1cIl9vbk1lbnVDbGljaygkZXZlbnQsaXRlbSlcIiAobW91c2VlbnRlcik9XCJfb25Nb3VzZUVudGVyKCRldmVudCxpdGVtKVwiXHJcbiAgICAgIChtb3VzZWxlYXZlKT1cIl9vbk1vdXNlTGVhdmUoJGV2ZW50LGl0ZW0pXCI+XHJcbiAgICAgIDxhIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogaXRlbS5pc0FjdGl2ZX1cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbWVudS1zdGFydC1zaWRlXCI+XHJcbiAgICAgICAgICA8YXgtaWNvbiBbY2xhc3NdPVwiaXRlbS5pY29uIHx8IGl0ZW1baWNvbl1cIiAqbmdJZj1cIml0ZW0uaWNvbiB8fCBpdGVtW2ljb25dXCI+PC9heC1pY29uPlxyXG4gICAgICAgICAgPHNwYW4+e3tfZ2V0SXRlbURpc3BsYXlUZXh0VGVtcGx0ZShpdGVtKX19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1tZW51LWVuZC1zaWRlXCI+XHJcbiAgICAgICAgICA8YXgtaWNvbiBbbmdDbGFzc109XCJ7J2FjdGl2ZS1pY29uJzogaXRlbS5pc09wZW59XCJcclxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCAmJiAhaXNMb2FkaW5nIHx8IGl0ZW1baGFzQ2hpbGRGaWVsZF0gJiYgIWlzTG9hZGluZ1wiIGNsYXNzPVwiYXgtaWMtY2hldnJvblwiPlxyXG4gICAgICAgICAgPC9heC1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxheC1sb2FkaW5nICpuZ0lmPVwiaXNMb2FkaW5nICYmIGl0ZW0uaXNBY3RpdmUgJiYgaXRlbS5pc09wZW5cIj5cclxuICAgICAgICA8L2F4LWxvYWRpbmc+XHJcbiAgICAgIDwvYT5cclxuICAgICAgPHVsIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpdGVtW2Rpc2FibGVGaWVsZF1cIiAqbmdJZj1cIml0ZW0/LmNoaWxkcmVuPy5sZW5ndGggPiAwICYmIGl0ZW0uaXNPcGVuXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlY3Vyc2l2ZUxpc3RUbXBsOyBjb250ZXh0OnsgbGlzdDogaXRlbS5jaGlsZHJlbiB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvdWw+XHJcbiAgICA8L2xpPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiaXNMb2FkaW5nXCI+XHJcbiAgPG5nLXRlbXBsYXRlPlxyXG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LXAtNFwiPlxyXG4gICAgICA8YXgtbG9hZGluZyB0ZXh0PVwie3sgJ2xheW91dC5sb2FkaW5nLnRleHQnIHwgdHJhbnMgfX1cIj48L2F4LWxvYWRpbmc+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L25nLWNvbnRhaW5lcj5cclxuPG5nLXRlbXBsYXRlICN0bXBFbXB0eT5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxyXG4gICAgPCEtLS0tLS0tLS0tLS0tLS0gY2hlY2sgZm9yIGN1c3RvbSB0ZW1wbGF0ZSAgLS0tLS0tLS0tLS0tLS0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVtcHR5VGVtcGxhdGU7IGVsc2UgZWxzZUVtcHR5VGVtcGxhdGVcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5VGVtcGxhdGVcIj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZWxzZUVtcHR5VGVtcGxhdGU+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJheC1saXN0LWl0ZW1cIj5cclxuICAgICAgICB7eyAnY29tbW9uLm5vLXJlc3VsdC1mb3VuZCcgfCB0cmFucyB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+Il19
|
|
@@ -4,21 +4,37 @@ import { AXMenuComponent } from './menu.component';
|
|
|
4
4
|
import { AXIconModule } from '../icon';
|
|
5
5
|
import { AXLoadingModule } from '../loading';
|
|
6
6
|
import { AXTranslationModule } from '@acorex/core';
|
|
7
|
+
import { AXPopoverModule } from '../popover';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
const COMPONENT = [AXMenuComponent];
|
|
9
10
|
const MODULES = [CommonModule];
|
|
10
11
|
export class AXMenuModule {
|
|
11
12
|
}
|
|
12
13
|
AXMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
|
-
AXMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXMenuModule, declarations: [AXMenuComponent], imports: [CommonModule, AXIconModule,
|
|
14
|
-
|
|
14
|
+
AXMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXMenuModule, declarations: [AXMenuComponent], imports: [CommonModule, AXIconModule,
|
|
15
|
+
AXLoadingModule,
|
|
16
|
+
AXTranslationModule,
|
|
17
|
+
AXPopoverModule], exports: [AXMenuComponent] });
|
|
18
|
+
AXMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXMenuModule, providers: [], imports: [[
|
|
19
|
+
...MODULES,
|
|
20
|
+
AXIconModule,
|
|
21
|
+
AXLoadingModule,
|
|
22
|
+
AXTranslationModule,
|
|
23
|
+
AXPopoverModule,
|
|
24
|
+
]] });
|
|
15
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXMenuModule, decorators: [{
|
|
16
26
|
type: NgModule,
|
|
17
27
|
args: [{
|
|
18
28
|
declarations: [...COMPONENT],
|
|
19
|
-
imports: [
|
|
29
|
+
imports: [
|
|
30
|
+
...MODULES,
|
|
31
|
+
AXIconModule,
|
|
32
|
+
AXLoadingModule,
|
|
33
|
+
AXTranslationModule,
|
|
34
|
+
AXPopoverModule,
|
|
35
|
+
],
|
|
20
36
|
exports: [...COMPONENT],
|
|
21
37
|
providers: [],
|
|
22
38
|
}]
|
|
23
39
|
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL21lbnUvbWVudS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFFN0MsTUFBTSxTQUFTLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUNwQyxNQUFNLE9BQU8sR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBYy9CLE1BQU0sT0FBTyxZQUFZOzt5R0FBWixZQUFZOzBHQUFaLFlBQVksaUJBZk4sZUFBZSxhQUNqQixZQUFZLEVBTXpCLFlBQVk7UUFDWixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLGVBQWUsYUFWQSxlQUFlOzBHQWVyQixZQUFZLGFBRlosRUFBRSxZQVJKO1lBQ1AsR0FBRyxPQUFPO1lBQ1YsWUFBWTtZQUNaLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsZUFBZTtTQUNoQjsyRkFJVSxZQUFZO2tCQVp4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUM1QixPQUFPLEVBQUU7d0JBQ1AsR0FBRyxPQUFPO3dCQUNWLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYTWVudUNvbXBvbmVudCB9IGZyb20gJy4vbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWEljb25Nb2R1bGUgfSBmcm9tICcuLi9pY29uJztcclxuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnLi4vbG9hZGluZyc7XHJcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBBWFBvcG92ZXJNb2R1bGUgfSBmcm9tICcuLi9wb3BvdmVyJztcclxuXHJcbmNvbnN0IENPTVBPTkVOVCA9IFtBWE1lbnVDb21wb25lbnRdO1xyXG5jb25zdCBNT0RVTEVTID0gW0NvbW1vbk1vZHVsZV07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgLi4uTU9EVUxFUyxcclxuICAgIEFYSWNvbk1vZHVsZSxcclxuICAgIEFYTG9hZGluZ01vZHVsZSxcclxuICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXHJcbiAgICBBWFBvcG92ZXJNb2R1bGUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcclxuICBwcm92aWRlcnM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhNZW51TW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -181,7 +181,7 @@ export class AXNumberBoxComponent extends AXBaseTextBoxMixin {
|
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
183
|
AXNumberBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXNumberBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
184
|
-
AXNumberBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", debounceTime: "debounceTime", type: "type", name: "name", checked: "checked", thousandsSeparator: "thousandsSeparator", padDecimalZeros: "padDecimalZeros", step: "step", decimals: "decimals", decimalStep: "decimalStep", showSpinButtons: "showSpinButtons", minValue: "minValue", maxValue: "maxValue" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus" }, host: { classAttribute: "ax-editor-container" }, viewQueries: [{ propertyName: "_maskDirective", first: true, predicate: IMaskDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" type=\"text\" \r\n [attr.placeholder]=\"placeholder\" \r\n [imask]=\"_maskObj\" \r\n [unmask]=\"'typed'\"\r\n [attr.min]=\"minValue\"\r\n [attr.max]=\"maxValue\" \r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\"\r\n [disabled]=\"disabled\" \r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [(ngModel)]=\"value\"\r\n (focus)=\"_emitOnFocusEvent($event)\" \r\n (blur)=\"_emitOnFocusEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\"\r\n [attr.autocomplete]=\"autoComplete\">\r\n\r\n<div class=\"ax-number-box-arrows\" *ngIf=\"showSpinButtons && !(disabled || readonly)\">\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,1)\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax-rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,-1)\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax--rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>", components: [{ type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "size", "color", "look", "text", "submitBehavior", "cancelBehavior", "toggleable", "selected"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange"] }, { type: i2.AXDecoratorPrefixComponent, selector: "ax-prefix" }, { type: i3.AXIconComponent, selector: "ax-icon", inputs: ["icon"] }], directives: [{ type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
184
|
+
AXNumberBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", debounceTime: "debounceTime", type: "type", autoComplete: "autoComplete", name: "name", checked: "checked", thousandsSeparator: "thousandsSeparator", padDecimalZeros: "padDecimalZeros", step: "step", decimals: "decimals", decimalStep: "decimalStep", showSpinButtons: "showSpinButtons", minValue: "minValue", maxValue: "maxValue" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus" }, host: { classAttribute: "ax-editor-container" }, viewQueries: [{ propertyName: "_maskDirective", first: true, predicate: IMaskDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" type=\"text\" \r\n [attr.placeholder]=\"placeholder\" \r\n [imask]=\"_maskObj\" \r\n [unmask]=\"'typed'\"\r\n [attr.min]=\"minValue\"\r\n [attr.max]=\"maxValue\" \r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\"\r\n [disabled]=\"disabled\" \r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [(ngModel)]=\"value\"\r\n (focus)=\"_emitOnFocusEvent($event)\" \r\n (blur)=\"_emitOnFocusEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\"\r\n [attr.autocomplete]=\"autoComplete\">\r\n\r\n<div class=\"ax-number-box-arrows\" *ngIf=\"showSpinButtons && !(disabled || readonly)\">\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,1)\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax-rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,-1)\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax--rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>", components: [{ type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "size", "color", "look", "text", "submitBehavior", "cancelBehavior", "toggleable", "selected"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange"] }, { type: i2.AXDecoratorPrefixComponent, selector: "ax-prefix" }, { type: i3.AXIconComponent, selector: "ax-icon", inputs: ["icon"] }], directives: [{ type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
185
185
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
|
|
186
186
|
type: Component,
|
|
187
187
|
args: [{ selector: 'ax-number-box', inputs: [
|
|
@@ -218,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
218
218
|
type: ViewChild,
|
|
219
219
|
args: [IMaskDirective]
|
|
220
220
|
}] } });
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL251bWJlci1ib3gvbnVtYmVyLWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL251bWJlci1ib3gvbnVtYmVyLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFHdkIsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQTBDLE1BQU0sU0FBUyxDQUFDO0FBQ3JGLE9BQU8sRUFDTCxjQUFjLEVBQ2QsY0FBYyxHQUNmLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7Ozs7OztBQUV2Qjs7OztHQUlHO0FBdUJILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxrQkFBa0I7SUFpSDFEOztNQUVFO0lBQ0YsWUFDRSxVQUFzQixFQUNkLEdBQXNCO1FBRTlCLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFGZixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWxHeEIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBa0IxQzs7U0FFQztRQUVELFNBQUksR0FBVyxDQUFDLENBQUM7UUFJVCxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBZ0I5Qjs7VUFFRTtRQUVGLGdCQUFXLEdBQW9CLE1BQU0sQ0FBQztRQUV0Qzs7VUFFRTtRQUVGLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FB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ZTtzQkFEZCxLQUFLO2dCQVFLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBZ0JLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBa0JFLGNBQWM7c0JBRHJCLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBJTWFzayBmcm9tICdpbWFzayc7XHJcbmltcG9ydCB7IElNYXNrRGlyZWN0aXZlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XHJcbmltcG9ydCB7IEFYQmFzZVRleHRCb3hNaXhpbiwgQVhDbGlja0V2ZW50LCBBWENvbXBvbmVudE9wdGlvbkNoYW5nZWQgfSBmcm9tICcuLi9iYXNlJztcclxuaW1wb3J0IHtcclxuICBURVhUQk9YX0lOUFVUUyxcclxuICBURVhUQk9YX09VVFBVVCxcclxufSBmcm9tICcuLi9iYXNlL21peGluL3RleHRib3gtbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5cclxuLyoqXHJcbiAqIFRoZSBOdW1iZXJCb3ggaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcclxuICpcclxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtbnVtYmVyLWJveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlci1ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIGlucHV0czogW1xyXG4gICAgJ2Rpc2FibGVkJyxcclxuICAgICdyZWFkb25seScsXHJcbiAgICAndGFiSW5kZXgnLFxyXG4gICAgJ3NpemUnLFxyXG4gICAgJ3ZhbHVlJyxcclxuICAgIC4uLlRFWFRCT1hfSU5QVVRTLFxyXG4gIF0sXHJcbiAgb3V0cHV0czogW1xyXG4gICAgJ3ZhbHVlQ2hhbmdlJyxcclxuICAgICdvblZhbHVlQ2hhbmdlZCcsXHJcbiAgICAnb25CbHVyJyxcclxuICAgICdvbkZvY3VzJyxcclxuICAgIC4uLlRFWFRCT1hfT1VUUFVULFxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBob3N0OiB7IGNsYXNzOiAnYXgtZWRpdG9yLWNvbnRhaW5lcicgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYTnVtYmVyQm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVGV4dEJveE1peGluIHtcclxuXHJcblxyXG5cclxuXHJcbiAgcHJpdmF0ZSBfdGhvdXNhbmRzU2VwYXJhdG9yOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgKiAgQSBjaGFyYWN0ZXIgdmFsdWUgdGhhdCBzcGVjaWZpZXMgdGhlIHNlcGFyYXRvciBjaGFyYWN0ZXIuXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgdGhvdXNhbmRzU2VwYXJhdG9yKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGhvdXNhbmRzU2VwYXJhdG9yO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHRob3VzYW5kc1NlcGFyYXRvcih2OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6IFwidGhvdXNhbmRzU2VwYXJhdG9yXCIsXHJcbiAgICAgIHZhbHVlOiB2ID8/ICcnLFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3BhZERlY2ltYWxaZXJvczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICogIEEgY2hhcmFjdGVyIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyLlxyXG4gICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHBhZERlY2ltYWxaZXJvcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9wYWREZWNpbWFsWmVyb3M7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgcGFkRGVjaW1hbFplcm9zKHY6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6IFwicGFkRGVjaW1hbFplcm9zXCIsXHJcbiAgICAgIHZhbHVlOiB2LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qKlxyXG4gKiAgU3BlY2lmaWVzIHRoZSB2YWx1ZSB0aGF0IGlzIHVzZWQgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCB0aGUgKipJbnRlZ2VyKiogcGFydCBvZiBudW1iZXJcclxuICovXHJcbiAgQElucHV0KClcclxuICBzdGVwOiBudW1iZXIgPSAxO1xyXG5cclxuXHJcblxyXG4gIHByaXZhdGUgX2RlY2ltYWxzOiBudW1iZXIgPSAwO1xyXG4gIC8qKlxyXG4gICogIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGRlY2ltYWxzIHRoYXQgdGhlIHVzZXIgY2FuIGVudGVyXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgZGVjaW1hbHMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWNpbWFscztcclxuICB9XHJcbiAgcHVibGljIHNldCBkZWNpbWFscyh2OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6IFwiZGVjaW1hbHNcIixcclxuICAgICAgdmFsdWU6IHYgPz8gMCxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgKiAgU3BlY2lmaWVzIHRoZSB2YWx1ZSB0aGF0IGlzIHVzZWQgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCB0aGUgKipEZWNpYW1sKiogcGFydCBvZiBudW1iZXJcclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZGVjaW1hbFN0ZXA6IG51bWJlciB8ICdhdXRvJyA9ICdhdXRvJztcclxuXHJcbiAgLyoqXHJcbiAgKiAgU3BlY2lmaWVzIHdoZXRoZXIgdGhlIFVwIGFuZCBEb3duIHNwaW4gYnV0dG9ucyB3aWxsIGJlIHJlbmRlcmVkIG9yIG5vdFxyXG4gICovXHJcbiAgQElucHV0KClcclxuICBzaG93U3BpbkJ1dHRvbnM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIF9taW5WYWx1ZTogbnVtYmVyID0gTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVI7XHJcbiAgLyoqXHJcbiAgKiAgU3BlY2lmaWVzIHRoZSBzbWFsbGVzdCB2YWx1ZSB0aGF0IGlzIHZhbGlkXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgbWluVmFsdWUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9taW5WYWx1ZTtcclxuICB9XHJcbiAgcHVibGljIHNldCBtaW5WYWx1ZSh2OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6IFwibWluVmFsdWVcIixcclxuICAgICAgdmFsdWU6IHYgIT0gbnVsbCA/IE51bWJlcih2KSA6IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSLFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX21heFZhbHVlOiBudW1iZXIgPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcclxuICAvKipcclxuICAqICBTcGVjaWZpZXMgdGhlIGdyZWF0ZXN0IHZhbHVlIHRoYXQgaXMgdmFsaWRcclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21heFZhbHVlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IG1heFZhbHVlKHY6IG51bWJlcikge1xyXG4gICAgdGhpcy5fc2V0T3B0aW9uKHtcclxuICAgICAgbmFtZTogXCJtYXhWYWx1ZVwiLFxyXG4gICAgICB2YWx1ZTogdiAhPSBudWxsID8gTnVtYmVyKHYpIDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICogIEBpZ25vcmVcclxuICAqL1xyXG4gIF9tYXNrT2JqOiBJTWFzay5NYXNrZWROdW1iZXI7XHJcblxyXG4gIEBWaWV3Q2hpbGQoSU1hc2tEaXJlY3RpdmUpXHJcbiAgcHJpdmF0ZSBfbWFza0RpcmVjdGl2ZTogSU1hc2tEaXJlY3RpdmU8SU1hc2suTWFza2VkTnVtYmVyPjtcclxuXHJcbiAgLyoqXHJcbiAgKiAgQGlnbm9yZVxyXG4gICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xyXG4gIH1cclxuXHJcblxyXG4gIG9uVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5vblZpZXdJbml0KCk7XHJcbiAgICB0aGlzLl91cGRhdGVNYXNrKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgX29uT3B0aW9uQ2hhbmdlZChvcHRpb246IEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCk6IHZvaWQge1xyXG4gICAgc3VwZXIuX29uT3B0aW9uQ2hhbmdlZChvcHRpb24pO1xyXG4gICAgdGhpcy5fdXBkYXRlTWFzaygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlTWFzaygpIHtcclxuICAgIGlmICghdGhpcy5fbWFza09iaikge1xyXG4gICAgICB0aGlzLl9tYXNrT2JqID0gSU1hc2suY3JlYXRlTWFzayh7XHJcbiAgICAgICAgbWFzazogTnVtYmVyLFxyXG4gICAgICAgIG1pbjogdGhpcy5taW5WYWx1ZSxcclxuICAgICAgICBtYXg6IHRoaXMubWF4VmFsdWUsXHJcbiAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLnRob3VzYW5kc1NlcGFyYXRvciB8fCAnJyxcclxuICAgICAgICBzY2FsZTogdGhpcy5kZWNpbWFscyxcclxuICAgICAgICByYWRpeDogJy4nLFxyXG4gICAgICAgIHBhZEZyYWN0aW9uYWxaZXJvczogdGhpcy5kZWNpbWFscyA+IDAgJiYgdGhpcy5wYWREZWNpbWFsWmVyb3NcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5fbWFza09iai51cGRhdGVPcHRpb25zKHtcclxuICAgICAgICBtaW46IHRoaXMubWluVmFsdWUsXHJcbiAgICAgICAgbWF4OiB0aGlzLm1heFZhbHVlLFxyXG4gICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy50aG91c2FuZHNTZXBhcmF0b3IgfHwgJycsXHJcbiAgICAgICAgc2NhbGU6IHRoaXMuZGVjaW1hbHMsXHJcbiAgICAgICAgcmFkaXg6ICcuJyxcclxuICAgICAgICBwYWRGcmFjdGlvbmFsWmVyb3M6IHRoaXMuZGVjaW1hbHMgPiAwICYmIHRoaXMucGFkRGVjaW1hbFplcm9zXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVWYWx1ZSgpO1xyXG4gICAgdGhpcy5fbWFza0RpcmVjdGl2ZT8ubWFza1JlZj8udXBkYXRlQ29udHJvbCgpO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZU9uS2V5ZG93bkV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGNvbnN0IGlnbm9yZSA9ICgpID0+IHtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IHZhbFN0ciA9IGlucHV0LnZhbHVlO1xyXG4gICAgY29uc3QgZGVjaW1hbFBvaW50SW5kZXggPSB2YWxTdHIuaW5kZXhPZignLicpO1xyXG4gICAgY29uc3QgX2N1cnNvclBvcz1pbnB1dC5zZWxlY3Rpb25TdGFydDtcclxuXHJcbiAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgaWYgKGRlY2ltYWxQb2ludEluZGV4ID4gMCAmJiBfY3Vyc29yUG9zID4gZGVjaW1hbFBvaW50SW5kZXggJiYgdGhpcy5kZWNpbWFscyA+IDApIHtcclxuICAgICAgICBlLmtleSA9PT0gJ0Fycm93RG93bicgPyB0aGlzLmRlY2ltYWxTdGVwRG93bigpIDogdGhpcy5kZWNpbWFsU3RlcFVwKCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgZS5rZXkgPT09ICdBcnJvd0Rvd24nID8gdGhpcy5zdGVwRG93bigpIDogdGhpcy5zdGVwVXAoKTtcclxuICAgICAgfVxyXG4gICAgICBpZ25vcmUoKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UoX2N1cnNvclBvcywgX2N1cnNvclBvcyk7XHJcbiAgICAgIH0sNSk7XHJcbiAgICB9XHJcbiAgICBzdXBlci5fZW1pdE9uS2V5ZG93bkV2ZW50KGUpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBfaGFuZGxlVXBEb3duQ2xpY2soZTogQVhDbGlja0V2ZW50LCB2OiAtMSB8IDEpIHtcclxuICAgIHYgPT0gMSA/IHRoaXMuc3RlcFVwKCkgOiB0aGlzLnN0ZXBEb3duKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgX29uVmFsdWVDaGFuZ2luZyh2YWx1ZTogYW55KSB7XHJcbiAgICBjb25zdCB2ID0gXy50b051bWJlcih2YWx1ZSk7XHJcbiAgICBpZiAodiA8IHRoaXMubWluVmFsdWUpXHJcbiAgICAgIHJldHVybiB0aGlzLm1pblZhbHVlO1xyXG4gICAgaWYgKHYgPiB0aGlzLm1heFZhbHVlKVxyXG4gICAgICByZXR1cm4gdGhpcy5tYXhWYWx1ZTtcclxuICAgIHJldHVybiB2O1xyXG4gIH1cclxuXHJcblxyXG4gIHN0ZXBVcCgpIHtcclxuICAgIHRoaXMudmFsdWUgKz0gXy50b051bWJlcih0aGlzLnN0ZXApO1xyXG4gIH1cclxuXHJcbiAgc3RlcERvd24oKSB7XHJcbiAgICB0aGlzLnZhbHVlIC09IF8udG9OdW1iZXIodGhpcy5zdGVwKTtcclxuICB9XHJcblxyXG4gIGRlY2ltYWxTdGVwVXAoKSB7XHJcbiAgICB0aGlzLnZhbHVlICs9IF8udG9OdW1iZXIodGhpcy5kZWNpbWFsU3RlcCA9PSAnYXV0bycgPyAoMSAvIE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxzKSkgOiB0aGlzLmRlY2ltYWxTdGVwKTtcclxuICB9XHJcblxyXG4gIGRlY2ltYWxTdGVwRG93bigpIHtcclxuICAgIHRoaXMudmFsdWUgLT0gXy50b051bWJlcih0aGlzLmRlY2ltYWxTdGVwID09ICdhdXRvJyA/ICgxIC8gTWF0aC5wb3coMTAsIHRoaXMuZGVjaW1hbHMpKSA6IHRoaXMuZGVjaW1hbFN0ZXApO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+XHJcbjwvbmctY29udGVudD5cclxuPGlucHV0IGNsYXNzPVwiYXgtaW5wdXRcIiB0eXBlPVwidGV4dFwiICBcclxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgXHJcbiAgICBbaW1hc2tdPVwiX21hc2tPYmpcIiBcclxuICAgIFt1bm1hc2tdPVwiJ3R5cGVkJ1wiXHJcbiAgICBbYXR0ci5taW5dPVwibWluVmFsdWVcIlxyXG4gICAgW2F0dHIubWF4XT1cIm1heFZhbHVlXCIgXHJcbiAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBcclxuICAgIFtjbGFzcy5heC1zdGF0ZS1yZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBcclxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiIFxyXG4gICAgW3RhYmluZGV4XT1cInRhYkluZGV4XCIgXHJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgIChmb2N1cyk9XCJfZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCIgXHJcbiAgICAoYmx1cik9XCJfZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCIgXHJcbiAgICAoa2V5ZG93bik9XCJfaGFuZGxlT25LZXlkb3duRXZlbnQoJGV2ZW50KVwiXHJcbiAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwiYXV0b0NvbXBsZXRlXCI+XHJcblxyXG48ZGl2IGNsYXNzPVwiYXgtbnVtYmVyLWJveC1hcnJvd3NcIiAqbmdJZj1cInNob3dTcGluQnV0dG9ucyAmJiAhKGRpc2FibGVkIHx8IHJlYWRvbmx5KVwiPlxyXG4gICAgPGF4LWJ1dHRvbiBjb2xvcj1cImxpZ2h0XCIgbG9vaz1cImJsYW5rXCIgKG9uQ2xpY2spPVwiX2hhbmRsZVVwRG93bkNsaWNrKCRldmVudCwxKVwiPlxyXG4gICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWMtYXJyb3ctZmlsbCBheC1yb3RhdGUtOTBcIj5cclxuICAgICAgICAgICAgPC9heC1pY29uPlxyXG4gICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgPC9heC1idXR0b24+XHJcbiAgICA8YXgtYnV0dG9uIGNvbG9yPVwibGlnaHRcIiBsb29rPVwiYmxhbmtcIiAob25DbGljayk9XCJfaGFuZGxlVXBEb3duQ2xpY2soJGV2ZW50LC0xKVwiPlxyXG4gICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWMtYXJyb3ctZmlsbCBheC0tcm90YXRlLTkwXCI+XHJcbiAgICAgICAgICAgIDwvYXgtaWNvbj5cclxuICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgIDwvYXgtYnV0dG9uPlxyXG48L2Rpdj5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+XHJcbjwvbmctY29udGVudD5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+XHJcbjwvbmctY29udGVudD4iXX0=
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL251bWJlci1ib3gvbnVtYmVyLWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL251bWJlci1ib3gvbnVtYmVyLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFHdkIsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQTBDLE1BQU0sU0FBUyxDQUFDO0FBQ3JGLE9BQU8sRUFDTCxjQUFjLEVBQ2QsY0FBYyxHQUNmLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7Ozs7OztBQUV2Qjs7OztHQUlHO0FBdUJILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxrQkFBa0I7SUFpSDFEOztNQUVFO0lBQ0YsWUFDRSxVQUFzQixFQUNkLEdBQXNCO1FBRTlCLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFGZixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWxHeEIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBa0IxQzs7U0FFQztRQUVELFNBQUksR0FBVyxDQUFDLENBQUM7UUFJVCxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBZ0I5Qjs7VUFFRTtRQUVGLGdCQUFXLEdBQW9CLE1BQU0sQ0FBQztRQUV0Qzs7VUFFRTtRQUVGLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FB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ZTtzQkFEZCxLQUFLO2dCQVFLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBZ0JLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBa0JFLGNBQWM7c0JBRHJCLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBJTWFzayBmcm9tICdpbWFzayc7XHJcbmltcG9ydCB7IElNYXNrRGlyZWN0aXZlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XHJcbmltcG9ydCB7IEFYQmFzZVRleHRCb3hNaXhpbiwgQVhDbGlja0V2ZW50LCBBWENvbXBvbmVudE9wdGlvbkNoYW5nZWQgfSBmcm9tICcuLi9iYXNlJztcclxuaW1wb3J0IHtcclxuICBURVhUQk9YX0lOUFVUUyxcclxuICBURVhUQk9YX09VVFBVVCxcclxufSBmcm9tICcuLi9iYXNlL21peGluL3RleHRib3gtbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5cclxuLyoqXHJcbiAqIFRoZSBOdW1iZXJCb3ggaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcclxuICpcclxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtbnVtYmVyLWJveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlci1ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIGlucHV0czogW1xyXG4gICAgJ2Rpc2FibGVkJyxcclxuICAgICdyZWFkb25seScsXHJcbiAgICAndGFiSW5kZXgnLFxyXG4gICAgJ3NpemUnLFxyXG4gICAgJ3ZhbHVlJyxcclxuICAgIC4uLlRFWFRCT1hfSU5QVVRTLFxyXG4gIF0sXHJcbiAgb3V0cHV0czogW1xyXG4gICAgJ3ZhbHVlQ2hhbmdlJyxcclxuICAgICdvblZhbHVlQ2hhbmdlZCcsXHJcbiAgICAnb25CbHVyJyxcclxuICAgICdvbkZvY3VzJyxcclxuICAgIC4uLlRFWFRCT1hfT1VUUFVULFxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBob3N0OiB7IGNsYXNzOiAnYXgtZWRpdG9yLWNvbnRhaW5lcicgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYTnVtYmVyQm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVGV4dEJveE1peGluIHtcclxuXHJcblxyXG5cclxuXHJcbiAgcHJpdmF0ZSBfdGhvdXNhbmRzU2VwYXJhdG9yOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgKiAgQSBjaGFyYWN0ZXIgdmFsdWUgdGhhdCBzcGVjaWZpZXMgdGhlIHNlcGFyYXRvciBjaGFyYWN0ZXIuXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgdGhvdXNhbmRzU2VwYXJhdG9yKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGhvdXNhbmRzU2VwYXJhdG9yO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHRob3VzYW5kc1NlcGFyYXRvcih2OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6IFwidGhvdXNhbmRzU2VwYXJhdG9yXCIsXHJcbiAgICAgIHZhbHVlOiB2ID8/ICcnLFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3BhZERlY2ltYWxaZXJvczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICogIEEgY2hhcmFjdGVyIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyLlxyXG4gICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHBhZERlY2ltYWxaZXJvcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9wYWREZWNpbWFsWmVyb3M7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgcGFkRGVjaW1hbFplcm9zKHY6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6IFwicGFkRGVjaW1hbFplcm9zXCIsXHJcbiAgICAgIHZhbHVlOiB2LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qKlxyXG4gKiAgU3BlY2lmaWVzIHRoZSB2YWx1ZSB0aGF0IGlzIHVzZWQgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCB0aGUgKipJbnRlZ2VyKiogcGFydCBvZiBudW1iZXJcclxuICovXHJcbiAgQElucHV0KClcclxuICBzdGVwOiBudW1iZXIgPSAxO1xyXG5cclxuXHJcblxyXG4gIHByaXZhdGUgX2RlY2ltYWxzOiBudW1iZXIgPSAwO1xyXG4gIC8qKlxyXG4gICogIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGRlY2ltYWxzIHRoYXQgdGhlIHVzZXIgY2FuIGVudGVyXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgZGVjaW1hbHMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWNpbWFscztcclxuICB9XHJcbiAgcHVibGljIHNldCBkZWNpbWFscyh2OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6IFwiZGVjaW1hbHNcIixcclxuICAgICAgdmFsdWU6IHYgPz8gMCxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgKiAgU3BlY2lmaWVzIHRoZSB2YWx1ZSB0aGF0IGlzIHVzZWQgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCB0aGUgKipEZWNpYW1sKiogcGFydCBvZiBudW1iZXJcclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZGVjaW1hbFN0ZXA6IG51bWJlciB8ICdhdXRvJyA9ICdhdXRvJztcclxuXHJcbiAgLyoqXHJcbiAgKiAgU3BlY2lmaWVzIHdoZXRoZXIgdGhlIFVwIGFuZCBEb3duIHNwaW4gYnV0dG9ucyB3aWxsIGJlIHJlbmRlcmVkIG9yIG5vdFxyXG4gICovXHJcbiAgQElucHV0KClcclxuICBzaG93U3BpbkJ1dHRvbnM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIF9taW5WYWx1ZTogbnVtYmVyID0gTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVI7XHJcbiAgLyoqXHJcbiAgKiAgU3BlY2lmaWVzIHRoZSBzbWFsbGVzdCB2YWx1ZSB0aGF0IGlzIHZhbGlkXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgbWluVmFsdWUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9taW5WYWx1ZTtcclxuICB9XHJcbiAgcHVibGljIHNldCBtaW5WYWx1ZSh2OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6IFwibWluVmFsdWVcIixcclxuICAgICAgdmFsdWU6IHYgIT0gbnVsbCA/IE51bWJlcih2KSA6IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSLFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX21heFZhbHVlOiBudW1iZXIgPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcclxuICAvKipcclxuICAqICBTcGVjaWZpZXMgdGhlIGdyZWF0ZXN0IHZhbHVlIHRoYXQgaXMgdmFsaWRcclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21heFZhbHVlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IG1heFZhbHVlKHY6IG51bWJlcikge1xyXG4gICAgdGhpcy5fc2V0T3B0aW9uKHtcclxuICAgICAgbmFtZTogXCJtYXhWYWx1ZVwiLFxyXG4gICAgICB2YWx1ZTogdiAhPSBudWxsID8gTnVtYmVyKHYpIDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICogIEBpZ25vcmVcclxuICAqL1xyXG4gIF9tYXNrT2JqOiBJTWFzay5NYXNrZWROdW1iZXI7XHJcblxyXG4gIEBWaWV3Q2hpbGQoSU1hc2tEaXJlY3RpdmUpXHJcbiAgcHJpdmF0ZSBfbWFza0RpcmVjdGl2ZTogSU1hc2tEaXJlY3RpdmU8SU1hc2suTWFza2VkTnVtYmVyPjtcclxuXHJcbiAgLyoqXHJcbiAgKiAgQGlnbm9yZVxyXG4gICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xyXG4gIH1cclxuXHJcblxyXG4gIG9uVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5vblZpZXdJbml0KCk7XHJcbiAgICB0aGlzLl91cGRhdGVNYXNrKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgX29uT3B0aW9uQ2hhbmdlZChvcHRpb246IEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCk6IHZvaWQge1xyXG4gICAgc3VwZXIuX29uT3B0aW9uQ2hhbmdlZChvcHRpb24pO1xyXG4gICAgdGhpcy5fdXBkYXRlTWFzaygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlTWFzaygpIHtcclxuICAgIGlmICghdGhpcy5fbWFza09iaikge1xyXG4gICAgICB0aGlzLl9tYXNrT2JqID0gSU1hc2suY3JlYXRlTWFzayh7XHJcbiAgICAgICAgbWFzazogTnVtYmVyLFxyXG4gICAgICAgIG1pbjogdGhpcy5taW5WYWx1ZSxcclxuICAgICAgICBtYXg6IHRoaXMubWF4VmFsdWUsXHJcbiAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLnRob3VzYW5kc1NlcGFyYXRvciB8fCAnJyxcclxuICAgICAgICBzY2FsZTogdGhpcy5kZWNpbWFscyxcclxuICAgICAgICByYWRpeDogJy4nLFxyXG4gICAgICAgIHBhZEZyYWN0aW9uYWxaZXJvczogdGhpcy5kZWNpbWFscyA+IDAgJiYgdGhpcy5wYWREZWNpbWFsWmVyb3NcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5fbWFza09iai51cGRhdGVPcHRpb25zKHtcclxuICAgICAgICBtaW46IHRoaXMubWluVmFsdWUsXHJcbiAgICAgICAgbWF4OiB0aGlzLm1heFZhbHVlLFxyXG4gICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy50aG91c2FuZHNTZXBhcmF0b3IgfHwgJycsXHJcbiAgICAgICAgc2NhbGU6IHRoaXMuZGVjaW1hbHMsXHJcbiAgICAgICAgcmFkaXg6ICcuJyxcclxuICAgICAgICBwYWRGcmFjdGlvbmFsWmVyb3M6IHRoaXMuZGVjaW1hbHMgPiAwICYmIHRoaXMucGFkRGVjaW1hbFplcm9zXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVWYWx1ZSgpO1xyXG4gICAgdGhpcy5fbWFza0RpcmVjdGl2ZT8ubWFza1JlZj8udXBkYXRlQ29udHJvbCgpO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZU9uS2V5ZG93bkV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGNvbnN0IGlnbm9yZSA9ICgpID0+IHtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IHZhbFN0ciA9IGlucHV0LnZhbHVlO1xyXG4gICAgY29uc3QgZGVjaW1hbFBvaW50SW5kZXggPSB2YWxTdHIuaW5kZXhPZignLicpO1xyXG4gICAgY29uc3QgX2N1cnNvclBvcz1pbnB1dC5zZWxlY3Rpb25TdGFydDtcclxuXHJcbiAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgaWYgKGRlY2ltYWxQb2ludEluZGV4ID4gMCAmJiBfY3Vyc29yUG9zID4gZGVjaW1hbFBvaW50SW5kZXggJiYgdGhpcy5kZWNpbWFscyA+IDApIHtcclxuICAgICAgICBlLmtleSA9PT0gJ0Fycm93RG93bicgPyB0aGlzLmRlY2ltYWxTdGVwRG93bigpIDogdGhpcy5kZWNpbWFsU3RlcFVwKCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgZS5rZXkgPT09ICdBcnJvd0Rvd24nID8gdGhpcy5zdGVwRG93bigpIDogdGhpcy5zdGVwVXAoKTtcclxuICAgICAgfVxyXG4gICAgICBpZ25vcmUoKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UoX2N1cnNvclBvcywgX2N1cnNvclBvcyk7XHJcbiAgICAgIH0sNSk7XHJcbiAgICB9XHJcbiAgICBzdXBlci5fZW1pdE9uS2V5ZG93bkV2ZW50KGUpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBfaGFuZGxlVXBEb3duQ2xpY2soZTogQVhDbGlja0V2ZW50LCB2OiAtMSB8IDEpIHtcclxuICAgIHYgPT0gMSA/IHRoaXMuc3RlcFVwKCkgOiB0aGlzLnN0ZXBEb3duKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgX29uVmFsdWVDaGFuZ2luZyh2YWx1ZTogYW55KSB7XHJcbiAgICBjb25zdCB2ID0gXy50b051bWJlcih2YWx1ZSk7XHJcbiAgICBpZiAodiA8IHRoaXMubWluVmFsdWUpXHJcbiAgICAgIHJldHVybiB0aGlzLm1pblZhbHVlO1xyXG4gICAgaWYgKHYgPiB0aGlzLm1heFZhbHVlKVxyXG4gICAgICByZXR1cm4gdGhpcy5tYXhWYWx1ZTtcclxuICAgIHJldHVybiB2O1xyXG4gIH1cclxuXHJcblxyXG4gIHN0ZXBVcCgpIHtcclxuICAgIHRoaXMudmFsdWUgKz0gXy50b051bWJlcih0aGlzLnN0ZXApO1xyXG4gIH1cclxuXHJcbiAgc3RlcERvd24oKSB7XHJcbiAgICB0aGlzLnZhbHVlIC09IF8udG9OdW1iZXIodGhpcy5zdGVwKTtcclxuICB9XHJcblxyXG4gIGRlY2ltYWxTdGVwVXAoKSB7XHJcbiAgICB0aGlzLnZhbHVlICs9IF8udG9OdW1iZXIodGhpcy5kZWNpbWFsU3RlcCA9PSAnYXV0bycgPyAoMSAvIE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxzKSkgOiB0aGlzLmRlY2ltYWxTdGVwKTtcclxuICB9XHJcblxyXG4gIGRlY2ltYWxTdGVwRG93bigpIHtcclxuICAgIHRoaXMudmFsdWUgLT0gXy50b051bWJlcih0aGlzLmRlY2ltYWxTdGVwID09ICdhdXRvJyA/ICgxIC8gTWF0aC5wb3coMTAsIHRoaXMuZGVjaW1hbHMpKSA6IHRoaXMuZGVjaW1hbFN0ZXApO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+XHJcbjwvbmctY29udGVudD5cclxuPGlucHV0IGNsYXNzPVwiYXgtaW5wdXRcIiB0eXBlPVwidGV4dFwiICBcclxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgXHJcbiAgICBbaW1hc2tdPVwiX21hc2tPYmpcIiBcclxuICAgIFt1bm1hc2tdPVwiJ3R5cGVkJ1wiXHJcbiAgICBbYXR0ci5taW5dPVwibWluVmFsdWVcIlxyXG4gICAgW2F0dHIubWF4XT1cIm1heFZhbHVlXCIgXHJcbiAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBcclxuICAgIFtjbGFzcy5heC1zdGF0ZS1yZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBcclxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiIFxyXG4gICAgW3RhYmluZGV4XT1cInRhYkluZGV4XCIgXHJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgIChmb2N1cyk9XCJfZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCIgXHJcbiAgICAoYmx1cik9XCJfZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCIgXHJcbiAgICAoa2V5ZG93bik9XCJfaGFuZGxlT25LZXlkb3duRXZlbnQoJGV2ZW50KVwiXHJcbiAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwiYXV0b0NvbXBsZXRlXCI+XHJcblxyXG48ZGl2IGNsYXNzPVwiYXgtbnVtYmVyLWJveC1hcnJvd3NcIiAqbmdJZj1cInNob3dTcGluQnV0dG9ucyAmJiAhKGRpc2FibGVkIHx8IHJlYWRvbmx5KVwiPlxyXG4gICAgPGF4LWJ1dHRvbiBjb2xvcj1cImxpZ2h0XCIgbG9vaz1cImJsYW5rXCIgKG9uQ2xpY2spPVwiX2hhbmRsZVVwRG93bkNsaWNrKCRldmVudCwxKVwiPlxyXG4gICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWMtYXJyb3ctZmlsbCBheC1yb3RhdGUtOTBcIj5cclxuICAgICAgICAgICAgPC9heC1pY29uPlxyXG4gICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgPC9heC1idXR0b24+XHJcbiAgICA8YXgtYnV0dG9uIGNvbG9yPVwibGlnaHRcIiBsb29rPVwiYmxhbmtcIiAob25DbGljayk9XCJfaGFuZGxlVXBEb3duQ2xpY2soJGV2ZW50LC0xKVwiPlxyXG4gICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWMtYXJyb3ctZmlsbCBheC0tcm90YXRlLTkwXCI+XHJcbiAgICAgICAgICAgIDwvYXgtaWNvbj5cclxuICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgIDwvYXgtYnV0dG9uPlxyXG48L2Rpdj5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+XHJcbjwvbmctY29udGVudD5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+XHJcbjwvbmctY29udGVudD4iXX0=
|
|
@@ -36,7 +36,7 @@ export class AXPasswordBoxComponent extends AXBaseTextBoxMixin {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
AXPasswordBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXPasswordBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
-
AXPasswordBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: AXPasswordBoxComponent, selector: "ax-password-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", cssClass: "cssClass", size: "size", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", debounceTime: "debounceTime", type: "type", value: "value", name: "name", checked: "checked", showToggleButton: "showToggleButton" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus" }, host: { classAttribute: "ax-password-box ax-editor-container" }, usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" [attr.name]=\"name\" [type]=\"_type\" [attr.placeholder]=\"placeholder\" [attr.maxlength]=\"maxLength\" [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\"\r\n [(ngModel)]=\"value\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\" [attr.autocomplete]=\"autoComplete\">\r\n\r\n<ng-content select=\"ax-suffix\">\r\n\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>\r\n<ng-content select=\"ax-input-mask\">\r\n</ng-content>\r\n<ax-button color=\"light\" look=\"blank\" [size]=\"size\" (onClick)=\"toggleType()\" [tabIndex]=\"-1\" *ngIf=\"showToggleButton\">\r\n <ax-icon [icon]=\"_icon\"></ax-icon>\r\n</ax-button>", components: [{ type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "size", "color", "look", "text", "submitBehavior", "cancelBehavior", "toggleable", "selected"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange"] }, { type: i2.AXIconComponent, selector: "ax-icon", inputs: ["icon"] }], directives: [{ type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
39
|
+
AXPasswordBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: AXPasswordBoxComponent, selector: "ax-password-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", cssClass: "cssClass", size: "size", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", debounceTime: "debounceTime", type: "type", autoComplete: "autoComplete", value: "value", name: "name", checked: "checked", showToggleButton: "showToggleButton" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus" }, host: { classAttribute: "ax-password-box ax-editor-container" }, usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" [attr.name]=\"name\" [type]=\"_type\" [attr.placeholder]=\"placeholder\" [attr.maxlength]=\"maxLength\" [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\"\r\n [(ngModel)]=\"value\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\" [attr.autocomplete]=\"autoComplete\">\r\n\r\n<ng-content select=\"ax-suffix\">\r\n\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>\r\n<ng-content select=\"ax-input-mask\">\r\n</ng-content>\r\n<ax-button color=\"light\" look=\"blank\" [size]=\"size\" (onClick)=\"toggleType()\" [tabIndex]=\"-1\" *ngIf=\"showToggleButton\">\r\n <ax-icon [icon]=\"_icon\"></ax-icon>\r\n</ax-button>", components: [{ type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "size", "color", "look", "text", "submitBehavior", "cancelBehavior", "toggleable", "selected"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange"] }, { type: i2.AXIconComponent, selector: "ax-icon", inputs: ["icon"] }], directives: [{ type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
40
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXPasswordBoxComponent, decorators: [{
|
|
41
41
|
type: Component,
|
|
42
42
|
args: [{ selector: 'ax-password-box', inputs: [
|
|
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
56
56
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { showToggleButton: [{
|
|
57
57
|
type: Input
|
|
58
58
|
}] } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvcGFzc3dvcmQtYm94L3Bhc3N3b3JkLWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3Bhc3N3b3JkLWJveC9wYXNzd29yZC1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBSVQsS0FBSyxFQUNMLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQ0gsY0FBYyxFQUNkLGNBQWMsR0FDakIsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7O0FBRTNDOzs7O0dBSUc7QUF1QkgsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGtCQUFrQjtJQVUxRDs7TUFFRTtJQUNGLFlBQVksVUFBc0IsRUFBRSxHQUFzQjtRQUN0RCxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBWjNCLFVBQUssR0FBd0IsVUFBVSxDQUFDO1FBQ3hDLFVBQUssR0FBa0MsV0FBVyxDQUFDO1FBRW5EOztjQUVNO1FBQ0cscUJBQWdCLEdBQVksSUFBSSxDQUFDO0lBTzFDLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRTtZQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQztTQUNoQzthQUFNO1lBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7WUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7U0FDNUI7SUFDTCxDQUFDOzttSEF6QlEsc0JBQXNCO3VHQUF0QixzQkFBc0IsZ21CQzNDbkMscTFCQWNZOzJGRDZCQyxzQkFBc0I7a0JBdEJsQyxTQUFTOytCQUNJLGlCQUFpQixVQUVuQjt3QkFDSixVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixVQUFVO3dCQUNWLE1BQU07d0JBQ04sR0FBRyxjQUFjO3FCQUNwQixXQUNRO3dCQUNMLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixRQUFRO3dCQUNSLFNBQVM7d0JBQ1QsR0FBRyxjQUFjO3FCQUNwQixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDLEVBQUUsS0FBSyxFQUFFLHFDQUFxQyxFQUFFO2lJQVU3QyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbnRlbnRDaGlsZCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIElucHV0LFxyXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYQmFzZVRleHRCb3hNaXhpbiB9IGZyb20gJy4uL2Jhc2UvbWl4aW4vbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQge1xyXG4gICAgVEVYVEJPWF9JTlBVVFMsXHJcbiAgICBURVhUQk9YX09VVFBVVCxcclxufSBmcm9tICcuLi9iYXNlL21peGluL3RleHRib3gtbWl4aW4uY2xhc3MnO1xyXG5cclxuLyoqXHJcbiAqIFRoZSBUZXh0Ym94IGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XHJcbiAqXHJcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXgtcGFzc3dvcmQtYm94JyxcclxuICAgIHRlbXBsYXRlVXJsOiAncGFzc3dvcmQtYm94LmNvbXBvbmVudC5odG1sJyxcclxuICAgIGlucHV0czogW1xyXG4gICAgICAgICdkaXNhYmxlZCcsXHJcbiAgICAgICAgJ3JlYWRvbmx5JyxcclxuICAgICAgICAndGFiSW5kZXgnLFxyXG4gICAgICAgICdjc3NDbGFzcycsXHJcbiAgICAgICAgJ3NpemUnLFxyXG4gICAgICAgIC4uLlRFWFRCT1hfSU5QVVRTLFxyXG4gICAgXSxcclxuICAgIG91dHB1dHM6IFtcclxuICAgICAgICAndmFsdWVDaGFuZ2UnLFxyXG4gICAgICAgICdvblZhbHVlQ2hhbmdlZCcsXHJcbiAgICAgICAgJ29uQmx1cicsXHJcbiAgICAgICAgJ29uRm9jdXMnLFxyXG4gICAgICAgIC4uLlRFWFRCT1hfT1VUUFVULFxyXG4gICAgXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGhvc3Q6IHsgY2xhc3M6ICdheC1wYXNzd29yZC1ib3ggYXgtZWRpdG9yLWNvbnRhaW5lcicgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYUGFzc3dvcmRCb3hDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VUZXh0Qm94TWl4aW4ge1xyXG5cclxuICAgIF90eXBlOiAncGFzc3dvcmQnIHwgJ3RleHQnID0gJ3Bhc3N3b3JkJztcclxuICAgIF9pY29uOiAnYXgtaWMtZXllJyB8ICdheC1pYy1leWUtb2ZmJyA9ICdheC1pYy1leWUnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICAgICogIEEgZmxhZyBmb3Igc2hvd2luZyBvciBoaWRpbmcgcGFzc3dvcmQgYnV0dG9uLlxyXG4gICAgICAgICovXHJcbiAgICBASW5wdXQoKSBzaG93VG9nZ2xlQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvKipcclxuICAgICogIEBpZ25vcmVcclxuICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgY2RyKTtcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVUeXBlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl90eXBlID09PSAncGFzc3dvcmQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3R5cGUgPSAndGV4dCc7XHJcbiAgICAgICAgICAgIHRoaXMuX2ljb24gPSAnYXgtaWMtZXllLW9mZic7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fdHlwZSA9ICdwYXNzd29yZCc7XHJcbiAgICAgICAgICAgIHRoaXMuX2ljb24gPSAnYXgtaWMtZXllJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+XHJcbjwvbmctY29udGVudD5cclxuPGlucHV0IGNsYXNzPVwiYXgtaW5wdXRcIiBbYXR0ci5uYW1lXT1cIm5hbWVcIiBbdHlwZV09XCJfdHlwZVwiIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2F0dHIubWF4bGVuZ3RoXT1cIm1heExlbmd0aFwiIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtjbGFzcy5heC1zdGF0ZS1yZWFkb25seV09XCJyZWFkb25seVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtyZWFkb25seV09XCJyZWFkb25seVwiIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiXHJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKGZvY3VzKT1cIl9lbWl0T25Gb2N1c0V2ZW50KCRldmVudClcIiAoYmx1cik9XCJfZW1pdE9uQmx1ckV2ZW50KCRldmVudClcIiBbYXR0ci5hdXRvY29tcGxldGVdPVwiYXV0b0NvbXBsZXRlXCI+XHJcblxyXG48bmctY29udGVudCBzZWxlY3Q9XCJheC1zdWZmaXhcIj5cclxuXHJcbjwvbmctY29udGVudD5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+XHJcbjwvbmctY29udGVudD5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtaW5wdXQtbWFza1wiPlxyXG48L25nLWNvbnRlbnQ+XHJcbjxheC1idXR0b24gY29sb3I9XCJsaWdodFwiIGxvb2s9XCJibGFua1wiIFtzaXplXT1cInNpemVcIiAob25DbGljayk9XCJ0b2dnbGVUeXBlKClcIiBbdGFiSW5kZXhdPVwiLTFcIiAqbmdJZj1cInNob3dUb2dnbGVCdXR0b25cIj5cclxuICAgIDxheC1pY29uIFtpY29uXT1cIl9pY29uXCI+PC9heC1pY29uPlxyXG48L2F4LWJ1dHRvbj4iXX0=
|
|
@@ -1,24 +1,48 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import {
|
|
1
|
+
import { Component, ContentChild, Input, TemplateRef, ViewChild } from '@angular/core';
|
|
2
|
+
import { AXBaseValueComponentMixin } from '../base';
|
|
3
|
+
import { VALUE_INPUTS, VALUE_OUTPUT } from '../base/mixin/value-mixin.class';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
|
|
5
|
-
import * as i2 from "../carousel/carousel-item.component";
|
|
6
|
-
import * as i3 from "@angular/common";
|
|
7
|
-
export class AXPickerComponent extends AXBaseComponent {
|
|
5
|
+
export class AXPickerComponent extends AXBaseValueComponentMixin {
|
|
8
6
|
/**
|
|
9
7
|
* @ignore
|
|
10
8
|
*/
|
|
11
9
|
constructor(elementRef, cdr) {
|
|
12
10
|
super(elementRef, cdr);
|
|
11
|
+
this.rows = 3;
|
|
13
12
|
this.items = [];
|
|
13
|
+
// require.ensure(['path/to/your/module'], require => {
|
|
14
|
+
// let yourModule = require('path/to/your/module');
|
|
15
|
+
// yourModule.someFunction();
|
|
16
|
+
// });
|
|
17
|
+
}
|
|
18
|
+
ngAfterViewInit() {
|
|
19
|
+
}
|
|
20
|
+
_handleMoveChange(e) {
|
|
21
|
+
this.value = this.items[e.value];
|
|
22
|
+
}
|
|
23
|
+
open() {
|
|
14
24
|
}
|
|
15
25
|
}
|
|
16
26
|
AXPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXPickerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
-
AXPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: AXPickerComponent, selector: "ax-picker", inputs: {
|
|
27
|
+
AXPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: AXPickerComponent, selector: "ax-picker", inputs: { readonly: "readonly", allowNull: "allowNull", value: "value", debounceTime: "debounceTime", name: "name", checked: "checked", rows: "rows", width: "width", height: "height", itemHeight: "itemHeight", items: "items" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged" }, host: { classAttribute: "ax-picker" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "picker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- <ax-carousel [width]=\"width\" [height]=\"height\" [fixedWidth]=\"width\" [fixedHeight]=\"itemHeight\" [centered]=\"true\" [vertical]=\"true\" [loop]=\"false\" [wheel]=\"true\" (onSlideChanged)=\"_handleMoveChange($event)\">\r\n <ax-carousel-item class=\"ax-picker-item\" *ngFor=\"let item of items\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </ax-carousel-item>\r\n</ax-carousel> -->\r\n<!-- <ul class=\"scroller\">\r\n <li *ngFor=\"let item of items\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </li>\r\n\r\n</ul> -->\r\n\r\n<button id=\"picker\" #picker>open picker</button>" });
|
|
18
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AXPickerComponent, decorators: [{
|
|
19
29
|
type: Component,
|
|
20
|
-
args: [{ selector: 'ax-picker', host: { class: 'ax-picker' }, template: "<ax-carousel [vertical]=\"true\" [
|
|
21
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: {
|
|
30
|
+
args: [{ selector: 'ax-picker', host: { class: 'ax-picker' }, inputs: [...VALUE_INPUTS], outputs: [...VALUE_OUTPUT], template: "<!-- <ax-carousel [width]=\"width\" [height]=\"height\" [fixedWidth]=\"width\" [fixedHeight]=\"itemHeight\" [centered]=\"true\" [vertical]=\"true\" [loop]=\"false\" [wheel]=\"true\" (onSlideChanged)=\"_handleMoveChange($event)\">\r\n <ax-carousel-item class=\"ax-picker-item\" *ngFor=\"let item of items\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </ax-carousel-item>\r\n</ax-carousel> -->\r\n<!-- <ul class=\"scroller\">\r\n <li *ngFor=\"let item of items\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </li>\r\n\r\n</ul> -->\r\n\r\n<button id=\"picker\" #picker>open picker</button>" }]
|
|
31
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { picker: [{
|
|
32
|
+
type: ViewChild,
|
|
33
|
+
args: ['picker']
|
|
34
|
+
}], itemTemplate: [{
|
|
35
|
+
type: ContentChild,
|
|
36
|
+
args: [TemplateRef]
|
|
37
|
+
}], rows: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], width: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], height: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], itemHeight: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], items: [{
|
|
22
46
|
type: Input
|
|
23
47
|
}] } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvcGlja2VyL3BpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3BpY2tlci9waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFjLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFRN0UsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHlCQUF5QjtJQXNCNUQ7O01BRUU7SUFDRixZQUFZLFVBQXNCLEVBQUUsR0FBc0I7UUFDdEQsS0FBSyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQWpCM0IsU0FBSSxHQUFXLENBQUMsQ0FBQztRQVdqQixVQUFLLEdBQVUsRUFBRSxDQUFDO1FBT2hCLHlEQUF5RDtRQUN6RCx1REFBdUQ7UUFDdkQsaUNBQWlDO1FBQ2pDLFFBQVE7SUFDVixDQUFDO0lBRUQsZUFBZTtJQUVmLENBQUM7SUFHRCxpQkFBaUIsQ0FBQyxDQUFNO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFckMsQ0FBQztJQUNELElBQUk7SUFFSixDQUFDOzs4R0E1Q1EsaUJBQWlCO2tHQUFqQixpQkFBaUIsaWJBSVosV0FBVyx5S0NkN0IsMnhCQWFnRDsyRkRIbkMsaUJBQWlCO2tCQVA3QixTQUFTOytCQUNJLFdBQVcsUUFFZixFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsVUFDcEIsQ0FBQyxHQUFHLFlBQVksQ0FBQyxXQUNoQixDQUFDLEdBQUcsWUFBWSxDQUFDO2lJQUlMLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFHbkIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFdBQVc7Z0JBS3pCLElBQUk7c0JBREgsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxLQUFLO2dCQUdOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhCYXNlVmFsdWVDb21wb25lbnRNaXhpbiB9IGZyb20gJy4uL2Jhc2UnO1xyXG5pbXBvcnQgeyBWQUxVRV9JTlBVVFMsIFZBTFVFX09VVFBVVCB9IGZyb20gJy4uL2Jhc2UvbWl4aW4vdmFsdWUtbWl4aW4uY2xhc3MnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXgtcGlja2VyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgaG9zdDogeyBjbGFzczogJ2F4LXBpY2tlcicgfSxcclxuICAgIGlucHV0czogWy4uLlZBTFVFX0lOUFVUU10sXHJcbiAgICBvdXRwdXRzOiBbLi4uVkFMVUVfT1VUUFVUXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VWYWx1ZUNvbXBvbmVudE1peGluIHtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdwaWNrZXInKSBwaWNrZXI6RWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD5cclxuXHJcbiAgICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmKVxyXG4gICAgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+XHJcblxyXG4gICAgXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcm93czogbnVtYmVyID0gMztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgd2lkdGg6IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgaGVpZ2h0OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgaXRlbUhlaWdodDogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBpdGVtczogYW55W10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICogIEBpZ25vcmVcclxuICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgY2RyKTtcclxuICAgICAgLy8gICByZXF1aXJlLmVuc3VyZShbJ3BhdGgvdG8veW91ci9tb2R1bGUnXSwgcmVxdWlyZSA9PiB7XHJcbiAgICAgIC8vICAgICBsZXQgeW91ck1vZHVsZSA9IHJlcXVpcmUoJ3BhdGgvdG8veW91ci9tb2R1bGUnKTtcclxuICAgICAgLy8gICAgIHlvdXJNb2R1bGUuc29tZUZ1bmN0aW9uKCk7XHJcbiAgICAgIC8vICB9KTsgXHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gIFxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBfaGFuZGxlTW92ZUNoYW5nZShlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5pdGVtc1tlLnZhbHVlXTtcclxuXHJcbiAgICB9XHJcbiAgICBvcGVuKCl7XHJcbiAgICAgXHJcbiAgICB9XHJcbn1cclxuIiwiPCEtLSA8YXgtY2Fyb3VzZWwgW3dpZHRoXT1cIndpZHRoXCIgW2hlaWdodF09XCJoZWlnaHRcIiBbZml4ZWRXaWR0aF09XCJ3aWR0aFwiIFtmaXhlZEhlaWdodF09XCJpdGVtSGVpZ2h0XCIgIFtjZW50ZXJlZF09XCJ0cnVlXCIgW3ZlcnRpY2FsXT1cInRydWVcIiBbbG9vcF09XCJmYWxzZVwiIFt3aGVlbF09XCJ0cnVlXCIgKG9uU2xpZGVDaGFuZ2VkKT1cIl9oYW5kbGVNb3ZlQ2hhbmdlKCRldmVudClcIj5cclxuICAgIDxheC1jYXJvdXNlbC1pdGVtIGNsYXNzPVwiYXgtcGlja2VyLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2F4LWNhcm91c2VsLWl0ZW0+XHJcbjwvYXgtY2Fyb3VzZWw+IC0tPlxyXG48IS0tIDx1bCBjbGFzcz1cInNjcm9sbGVyXCI+XHJcbiAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1UZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2xpPlxyXG5cclxuPC91bD4gLS0+XHJcblxyXG48YnV0dG9uIGlkPVwicGlja2VyXCIgI3BpY2tlcj5vcGVuIHBpY2tlcjwvYnV0dG9uPiJdfQ==
|