@acorex/components 7.4.8 → 7.5.0
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/lib/button.module.d.ts +2 -1
- package/common/lib/classes/datalist.class.d.ts +3 -3
- package/common/lib/components/selection-base.component.class.d.ts +3 -9
- package/datetime-box/lib/datetime-box.component.d.ts +2 -1
- package/dialog/lib/dialog.class.d.ts +4 -2
- package/dialog/lib/dialog.service.d.ts +3 -2
- package/dropdown/lib/dropdown-box.component.d.ts +1 -0
- package/esm2022/action-sheet/lib/action-sheet.component.mjs +2 -2
- package/esm2022/alert/lib/alert.component.mjs +6 -7
- package/esm2022/avatar/lib/avatar.component.mjs +2 -2
- package/esm2022/button/lib/button.component.mjs +2 -2
- package/esm2022/button/lib/button.module.mjs +4 -3
- package/esm2022/common/lib/classes/datalist.class.mjs +52 -1
- package/esm2022/common/lib/components/selection-base.component.class.mjs +13 -36
- package/esm2022/common/lib/components/value-component.class.mjs +3 -3
- package/esm2022/datetime-box/lib/datetime-box.component.mjs +7 -4
- package/esm2022/dialog/lib/dialog.class.mjs +1 -1
- package/esm2022/dialog/lib/dialog.component.mjs +3 -17
- package/esm2022/dialog/lib/dialog.service.mjs +47 -24
- package/esm2022/dropdown/lib/dropdown-box.component.mjs +8 -5
- package/esm2022/dropdown/lib/dropdown-panel.component.mjs +3 -3
- package/esm2022/form/lib/form-field.component.mjs +2 -2
- package/esm2022/label/lib/label.component.mjs +2 -2
- package/esm2022/list/acorex-components-list.mjs +5 -0
- package/esm2022/list/index.mjs +3 -0
- package/esm2022/list/lib/list.component.mjs +221 -0
- package/esm2022/list/lib/list.module.mjs +22 -0
- package/esm2022/loading/lib/loading.module.mjs +22 -8
- package/esm2022/loading/lib/loading.service.mjs +9 -13
- package/esm2022/menu/index.mjs +4 -1
- package/esm2022/menu/lib/class/root-menu.class.mjs +3 -0
- package/esm2022/menu/lib/menu-item/menu-item.component.mjs +96 -0
- package/esm2022/menu/lib/menu.component.mjs +4 -4
- package/esm2022/menu/lib/menu.module.mjs +11 -16
- package/esm2022/menu/lib/menu2.component.mjs +45 -0
- package/esm2022/mixin/lib/datalist.class.mjs +46 -2
- package/esm2022/notification/lib/notification.component.mjs +7 -7
- package/esm2022/popover/lib/popover.component.mjs +8 -5
- package/esm2022/popup/lib/popup.component.mjs +1 -2
- package/esm2022/popup/lib/popup.service.mjs +1 -2
- package/esm2022/progress-bar/lib/progress-bar.component.mjs +2 -2
- package/esm2022/result/lib/result.component.mjs +2 -2
- package/esm2022/select-box/index.mjs +2 -1
- package/esm2022/select-box/lib/select-box.component.mjs +3 -3
- package/esm2022/select-box/lib/select-box.module.mjs +15 -6
- package/esm2022/select-box/lib/select-box2.component.mjs +97 -0
- package/esm2022/selection-list/lib/selection-list.component.mjs +22 -7
- package/esm2022/tabs/lib/tabs.component.mjs +2 -2
- package/esm2022/text-area/lib/text-area.component.mjs +14 -6
- package/esm2022/toast/lib/toast.component.mjs +5 -5
- package/fesm2022/acorex-components-action-sheet.mjs +2 -2
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +5 -6
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +2 -2
- package/fesm2022/acorex-components-button.mjs +5 -4
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-common.mjs +65 -37
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +6 -3
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +47 -38
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +9 -7
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +2 -2
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +2 -2
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +246 -0
- package/fesm2022/acorex-components-list.mjs.map +1 -0
- package/fesm2022/acorex-components-loading.mjs +23 -15
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +148 -21
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-mixin.mjs +46 -1
- package/fesm2022/acorex-components-mixin.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +7 -7
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +7 -4
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +0 -2
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +2 -2
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +2 -2
- package/fesm2022/acorex-components-select-box.mjs +116 -18
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +21 -6
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +2 -2
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +13 -5
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +3 -3
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/list/README.md +3 -0
- package/list/index.d.ts +2 -0
- package/list/lib/list.component.d.ts +59 -0
- package/list/lib/list.module.d.ts +9 -0
- package/loading/lib/loading.module.d.ts +3 -2
- package/menu/index.d.ts +3 -0
- package/menu/lib/class/root-menu.class.d.ts +4 -0
- package/menu/lib/menu-item/menu-item.component.d.ts +22 -0
- package/menu/lib/menu.component.d.ts +3 -3
- package/menu/lib/menu.module.d.ts +10 -7
- package/menu/lib/menu2.component.d.ts +12 -0
- package/mixin/lib/base-components.class.d.ts +2 -2
- package/mixin/lib/base-menu-mixin.class.d.ts +5 -5
- package/mixin/lib/button-mixin.class.d.ts +2 -2
- package/mixin/lib/clickable-mixin.class.d.ts +2 -2
- package/mixin/lib/color-look-mixing.class.d.ts +2 -2
- package/mixin/lib/datalist-component.class.d.ts +10 -10
- package/mixin/lib/datalist.class.d.ts +38 -0
- 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/notification/lib/notification.component.d.ts +3 -3
- package/package.json +7 -1
- package/popover/lib/popover.component.d.ts +2 -1
- package/select-box/index.d.ts +1 -0
- package/select-box/lib/select-box.module.d.ts +15 -12
- package/select-box/lib/select-box2.component.d.ts +25 -0
- package/selection-list/lib/selection-list.component.d.ts +5 -1
- package/text-area/lib/text-area.component.d.ts +10 -3
- package/toast/lib/toast.component.d.ts +3 -3
@@ -1,17 +1,30 @@
|
|
1
|
-
import {
|
2
|
-
import { CommonModule } from '@angular/common';
|
1
|
+
import { DialogModule } from '@angular/cdk/dialog';
|
3
2
|
import { OverlayModule } from '@angular/cdk/overlay';
|
4
3
|
import { PortalModule } from '@angular/cdk/portal';
|
4
|
+
import { CommonModule } from '@angular/common';
|
5
|
+
import { NgModule } from '@angular/core';
|
6
|
+
import { AXLoadingSpinnerComponent } from './loading-spinner.component';
|
5
7
|
import { AXLoadingComponent } from './loading.component';
|
6
8
|
import { AXLoadingDirective } from './loading.directive';
|
7
|
-
import {
|
9
|
+
import { AXLoadingService } from './loading.service';
|
8
10
|
import * as i0 from "@angular/core";
|
9
|
-
const COMPONENT = [
|
10
|
-
|
11
|
+
const COMPONENT = [
|
12
|
+
AXLoadingComponent,
|
13
|
+
AXLoadingDirective,
|
14
|
+
AXLoadingSpinnerComponent,
|
15
|
+
AXLoadingSpinnerComponent,
|
16
|
+
];
|
17
|
+
const MODULES = [CommonModule, OverlayModule, DialogModule, PortalModule];
|
11
18
|
export class AXLoadingModule {
|
12
19
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXLoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
13
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.9", ngImport: i0, type: AXLoadingModule, declarations: [AXLoadingComponent,
|
14
|
-
|
20
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.9", ngImport: i0, type: AXLoadingModule, declarations: [AXLoadingComponent,
|
21
|
+
AXLoadingDirective,
|
22
|
+
AXLoadingSpinnerComponent,
|
23
|
+
AXLoadingSpinnerComponent], imports: [CommonModule, OverlayModule, DialogModule, PortalModule], exports: [AXLoadingComponent,
|
24
|
+
AXLoadingDirective,
|
25
|
+
AXLoadingSpinnerComponent,
|
26
|
+
AXLoadingSpinnerComponent] }); }
|
27
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXLoadingModule, providers: [AXLoadingService], imports: [MODULES] }); }
|
15
28
|
}
|
16
29
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXLoadingModule, decorators: [{
|
17
30
|
type: NgModule,
|
@@ -19,6 +32,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
|
|
19
32
|
declarations: [...COMPONENT],
|
20
33
|
imports: [...MODULES],
|
21
34
|
exports: [...COMPONENT],
|
35
|
+
providers: [AXLoadingService],
|
22
36
|
}]
|
23
37
|
}] });
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9hZGluZy9zcmMvbGliL2xvYWRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUVyRCxNQUFNLFNBQVMsR0FBRztJQUNoQixrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLHlCQUF5QjtJQUN6Qix5QkFBeUI7Q0FDMUIsQ0FBQztBQUNGLE1BQU0sT0FBTyxHQUFHLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFRMUUsTUFBTSxPQUFPLGVBQWU7OEdBQWYsZUFBZTsrR0FBZixlQUFlLGlCQWIxQixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLHlCQUF5QjtZQUN6Qix5QkFBeUIsYUFFVixZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxZQUFZLGFBTHRFLGtCQUFrQjtZQUNsQixrQkFBa0I7WUFDbEIseUJBQXlCO1lBQ3pCLHlCQUF5QjsrR0FVZCxlQUFlLGFBRmYsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUZoQixPQUFPOzsyRkFJVCxlQUFlO2tCQU4zQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztvQkFDckIsT0FBTyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xuaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWExvYWRpbmdTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkaW5nLXNwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFYTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4vbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhMb2FkaW5nRGlyZWN0aXZlIH0gZnJvbSAnLi9sb2FkaW5nLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBWExvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnLi9sb2FkaW5nLnNlcnZpY2UnO1xuXG5jb25zdCBDT01QT05FTlQgPSBbXG4gIEFYTG9hZGluZ0NvbXBvbmVudCxcbiAgQVhMb2FkaW5nRGlyZWN0aXZlLFxuICBBWExvYWRpbmdTcGlubmVyQ29tcG9uZW50LFxuICBBWExvYWRpbmdTcGlubmVyQ29tcG9uZW50LFxuXTtcbmNvbnN0IE1PRFVMRVMgPSBbQ29tbW9uTW9kdWxlLCBPdmVybGF5TW9kdWxlLCBEaWFsb2dNb2R1bGUsIFBvcnRhbE1vZHVsZV07XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVF0sXG4gIGltcG9ydHM6IFsuLi5NT0RVTEVTXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW0FYTG9hZGluZ1NlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBWExvYWRpbmdNb2R1bGUge31cbiJdfQ==
|
@@ -1,8 +1,8 @@
|
|
1
|
+
import { Dialog } from '@angular/cdk/dialog';
|
1
2
|
import { Injectable, inject } from '@angular/core';
|
2
|
-
import {
|
3
|
+
import { BehaviorSubject, asyncScheduler } from 'rxjs';
|
3
4
|
import { finalize, observeOn } from 'rxjs/operators';
|
4
5
|
import { AXLoadingComponent } from './loading.component';
|
5
|
-
import { Dialog } from '@angular/cdk/dialog';
|
6
6
|
import * as i0 from "@angular/core";
|
7
7
|
const DEFAULT_LOADER_ID = '_DEFAULT';
|
8
8
|
export class AXLoadingService {
|
@@ -35,18 +35,18 @@ export class AXLoadingService {
|
|
35
35
|
const bg = dialogRef.overlayRef.backdropElement;
|
36
36
|
const ov = dialogRef.overlayRef.overlayElement;
|
37
37
|
ce.style.position = 'relative';
|
38
|
-
ov.style.position =
|
38
|
+
ov.style.position = 'absolute';
|
39
39
|
ce.appendChild(bg);
|
40
40
|
ce.appendChild(ov);
|
41
41
|
setTimeout(() => {
|
42
|
-
ov.style.position =
|
42
|
+
ov.style.position = 'absolute';
|
43
43
|
}, 0);
|
44
44
|
}
|
45
45
|
return id;
|
46
46
|
// TODO: diabled focus and click, maybe we need a service and directive for it
|
47
47
|
}
|
48
48
|
hide(id) {
|
49
|
-
const f = this.dialog.openDialogs.find(c => c.componentInstance.id === id.toString());
|
49
|
+
const f = this.dialog.openDialogs.find((c) => c.componentInstance.id === id.toString());
|
50
50
|
if (f) {
|
51
51
|
f.close();
|
52
52
|
}
|
@@ -65,7 +65,7 @@ export class AXLoadingService {
|
|
65
65
|
return loaderStates.get(this.getLoaderId(loaderId)) ?? false;
|
66
66
|
}
|
67
67
|
else {
|
68
|
-
return [...loaderStates.values()].filter(state => state).length > 0;
|
68
|
+
return [...loaderStates.values()].filter((state) => state).length > 0;
|
69
69
|
}
|
70
70
|
}
|
71
71
|
}
|
@@ -98,7 +98,6 @@ export class AXLoadingService {
|
|
98
98
|
}
|
99
99
|
}
|
100
100
|
else {
|
101
|
-
// @ts-ignore - loadingStates[context] is surely defined in this branch
|
102
101
|
this.loadingStates.get(context).set(loaderId, state);
|
103
102
|
this.loadingStates$.get(context).get(loaderId).next(state);
|
104
103
|
}
|
@@ -116,12 +115,9 @@ export class AXLoadingService {
|
|
116
115
|
return loaderId ?? DEFAULT_LOADER_ID;
|
117
116
|
}
|
118
117
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXLoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
119
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXLoadingService
|
118
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXLoadingService }); }
|
120
119
|
}
|
121
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXLoadingService, decorators: [{
|
122
|
-
type: Injectable
|
123
|
-
args: [{
|
124
|
-
providedIn: 'root',
|
125
|
-
}]
|
121
|
+
type: Injectable
|
126
122
|
}] });
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvYWRpbmcvc3JjL2xpYi9sb2FkaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBSTdDLE1BQU0saUJBQWlCLEdBQWEsVUFBVSxDQUFDO0FBTS9DLE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFJRSxrREFBa0Q7UUFDbEQsMENBQTBDO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQTBDLENBQUM7UUFDaEYscURBQXFEO1FBQ3JELG1EQUFtRDtRQUN6QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUEyRCxDQUFDO1FBRTFGLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7S0EwSGpDO0lBeEhDLElBQUksQ0FBQyxNQUFpRTtRQUNwRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksQ0FBbUIsQ0FBQztRQUNqRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFDbkQ7WUFDRSxXQUFXLEVBQUUsSUFBSTtZQUNqQixZQUFZLEVBQUUsSUFBSTtZQUNsQixZQUFZLEVBQUUsSUFBSTtZQUNsQixjQUFjLEVBQUUsSUFBSTtZQUNwQixpQkFBaUIsRUFB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YyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVTLFdBQVcsQ0FBQyxRQUFtQjtRQUN2QyxPQUFPLFFBQVEsSUFBSSxpQkFBaUIsQ0FBQztJQUN2QyxDQUFDOzhHQWpJVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzeW5jU2NoZWR1bGVyLCBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCBvYnNlcnZlT24gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBWExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL2xvYWRpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xuXG50eXBlIExvYWRpbmdDb250ZXh0ID0gb2JqZWN0O1xudHlwZSBMb2FkZXJJZCA9IHN0cmluZyB8IG51bWJlcjsgLy8gZXhwZWN0ZWQgZW51bSB2YWx1ZXNcbmNvbnN0IERFRkFVTFRfTE9BREVSX0lEOiBMb2FkZXJJZCA9ICdfREVGQVVMVCc7XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYTG9hZGluZ1NlcnZpY2Uge1xuICAvLyBXZWFrTWFwIHdpbGwgcmVtb3ZlIGNvbXBvbmVudHMgZnJvbSBpdHNlbGYgdXBvblxuICAvLyB0aGVpciBnYXJiYWdlIGNvbGxlY3Rpb24gYnkgSlMgcnVudGltZS5cbiAgcHJvdGVjdGVkIGxvYWRpbmdTdGF0ZXMgPSBuZXcgV2Vha01hcDxMb2FkaW5nQ29udGV4dCwgTWFwPExvYWRlcklkLCBib29sZWFuPj4oKTtcbiAgLy8gQm90aCBsb2FkaW5nIHN0YXRlIG1hcHMgYXJlIGtlcHQgaW4tc3luYyBzdWNoIHRoYXRcbiAgLy8gdGhleSBjYW4gYmUgdXNlZCBieSBib3RoIHN5bmMgYW5kIGFzeW5jIG1ldGhvZHMuXG4gIHByb3RlY3RlZCBsb2FkaW5nU3RhdGVzJCA9IG5ldyBXZWFrTWFwPExvYWRpbmdDb250ZXh0LCBNYXA8TG9hZGVySWQsIEJlaGF2aW9yU3ViamVjdDxib29sZWFuPj4+KCk7XG5cbiAgcHJpdmF0ZSBkaWFsb2cgPSBpbmplY3QoRGlhbG9nKTtcblxuICBzaG93KGNvbmZpZz86IHsgbG9jYXRpb24/OiBFbGVtZW50OyB0eXBlPzogc3RyaW5nOyBjb250ZXh0PzogdW5rbm93biB9KTogbnVtYmVyIHtcbiAgICBjb25zdCBjZSA9IChjb25maWc/LmxvY2F0aW9uID8/IGRvY3VtZW50LmJvZHkpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQVhMb2FkaW5nQ29tcG9uZW50LFxuICAgICAge1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICByZXN0b3JlRm9jdXM6IHRydWUsXG4gICAgICAgIGNsb3NlT25EZXN0cm95OiB0cnVlLFxuICAgICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgICAgYXJpYU1vZGFsOiB0cnVlLFxuICAgICAgICByb2xlOiAnYWxlcnRkaWFsb2cnLFxuICAgICAgICBwYW5lbENsYXNzOiBbJ2F4LWxvYWRpbmctcGFuZScsICdheC1hbmltYXRlLWZhZGVJbiddLFxuICAgICAgICBiYWNrZHJvcENsYXNzOiBbJ2F4LWxvYWRpbmctb3ZlcmxheS1iYWNrZHJvcCcsICdheC1hbmltYXRlLWZhZGVJbiddLFxuICAgICAgfVxuICAgICk7XG4gICAgY29uc3QgaWQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UudmlzaWJsZSA9IHRydWU7XG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmlkID0gaWQudG9TdHJpbmcoKTtcbiAgICBpZiAoY2UgIT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgY29uc3QgYmcgPSBkaWFsb2dSZWYub3ZlcmxheVJlZi5iYWNrZHJvcEVsZW1lbnQ7XG4gICAgICBjb25zdCBvdiA9IGRpYWxvZ1JlZi5vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50O1xuICAgICAgY2Uuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgICAgb3Yuc3R5bGUucG9zaXRpb24gPSBcImFic29sdXRlXCI7XG4gICAgICBjZS5hcHBlbmRDaGlsZChiZyk7XG4gICAgICBjZS5hcHBlbmRDaGlsZChvdik7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgb3Yuc3R5bGUucG9zaXRpb24gPSBcImFic29sdXRlXCI7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gICAgcmV0dXJuIGlkO1xuICAgIC8vIFRPRE86IGRpYWJsZWQgZm9jdXMgYW5kIGNsaWNrLCBtYXliZSB3ZSBuZWVkIGEgc2VydmljZSBhbmQgZGlyZWN0aXZlIGZvciBpdFxuICB9XG5cbiAgaGlkZShpZDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZiA9IHRoaXMuZGlhbG9nLm9wZW5EaWFsb2dzLmZpbmQoYyA9PiBjLmNvbXBvbmVudEluc3RhbmNlLmlkID09PSBpZC50b1N0cmluZygpKTtcbiAgICBpZiAoZikge1xuICAgICAgZi5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIGRvTG9hZGluZzxWPihzb3VyY2UkOiBPYnNlcnZhYmxlPFY+LCBjb250ZXh0OiBMb2FkaW5nQ29udGV4dCwgbG9hZGVySWQ/OiBMb2FkZXJJZCk6IE9ic2VydmFibGU8Vj4ge1xuICAgIHRoaXMuc3RhcnRMb2FkaW5nKGNvbnRleHQsIGxvYWRlcklkKTtcbiAgICByZXR1cm4gc291cmNlJC5waXBlKFxuICAgICAgb2JzZXJ2ZU9uKGFzeW5jU2NoZWR1bGVyKSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuZW5kTG9hZGluZyhjb250ZXh0LCBsb2FkZXJJZCkpXG4gICAgKTtcbiAgfVxuXG5cbiAgaXNMb2FkaW5nKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBsb2FkZXJJZD86IExvYWRlcklkKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbG9hZGVyU3RhdGVzID0gdGhpcy5sb2FkaW5nU3RhdGVzLmdldChjb250ZXh0KTtcblxuICAgIGlmICghbG9hZGVyU3RhdGVzKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChsb2FkZXJJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBsb2FkZXJTdGF0ZXMuZ2V0KHRoaXMuZ2V0TG9hZGVySWQobG9hZGVySWQpKSA/PyBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbLi4ubG9hZGVyU3RhdGVzLnZhbHVlcygpXS5maWx0ZXIoc3RhdGUgPT4gc3RhdGUpLmxlbmd0aCA+IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICBpc0xvYWRpbmckKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBsb2FkZXJJZD86IExvYWRlcklkIHwgYW55KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgY29hbGVzY2VkTG9hZGVySWQgPSB0aGlzLmdldExvYWRlcklkKGxvYWRlcklkKTtcblxuICAgIGlmICghdGhpcy5oYXNMb2FkaW5nU3RhdGVzKGNvbnRleHQsIGNvYWxlc2NlZExvYWRlcklkKSkge1xuICAgICAgdGhpcy5zZXRMb2FkaW5nU3RhdGUoY29udGV4dCwgZmFsc2UsIGxvYWRlcklkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3RhdGVzJC5nZXQoY29udGV4dCkuZ2V0KGNvYWxlc2NlZExvYWRlcklkKTtcbiAgfVxuXG5cbiAgc3RhcnRMb2FkaW5nKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBsb2FkZXJJZD86IExvYWRlcklkKTogdm9pZCB7XG4gICAgdGhpcy5zZXRMb2FkaW5nU3RhdGUoY29udGV4dCwgdHJ1ZSwgdGhpcy5nZXRMb2FkZXJJZChsb2FkZXJJZCkpO1xuICB9XG5cbiAgZW5kTG9hZGluZyhjb250ZXh0OiBMb2FkaW5nQ29udGV4dCwgbG9hZGVySWQ/OiBMb2FkZXJJZCk6IHZvaWQge1xuICAgIHRoaXMuc2V0TG9hZGluZ1N0YXRlKGNvbnRleHQsIGZhbHNlLCB0aGlzLmdldExvYWRlcklkKGxvYWRlcklkKSk7XG4gIH1cblxuXG4gIGNsZWFyTG9hZGluZ3MoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nU3RhdGVzID0gbmV3IFdlYWtNYXA8TG9hZGluZ0NvbnRleHQsIE1hcDxMb2FkZXJJZCwgYm9vbGVhbj4+KCk7XG4gICAgdGhpcy5sb2FkaW5nU3RhdGVzJCA9IG5ldyBXZWFrTWFwPExvYWRpbmdDb250ZXh0LCBNYXA8TG9hZGVySWQsIEJlaGF2aW9yU3ViamVjdDxib29sZWFuPj4+KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TG9hZGluZ1N0YXRlKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBzdGF0ZTogYm9vbGVhbiwgbG9hZGVySWQ6IExvYWRlcklkKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhhc0xvYWRpbmdTdGF0ZXMoY29udGV4dCwgbG9hZGVySWQpKSB7XG4gICAgICBpZiAodGhpcy5oYXNDb250ZXh0TG9hZGluZ1N0YXRlKGNvbnRleHQpKSB7XG4gICAgICAgIHRoaXMubG9hZGluZ1N0YXRlcy5nZXQoY29udGV4dCkuc2V0KGxvYWRlcklkLCBzdGF0ZSk7XG4gICAgICAgIHRoaXMubG9hZGluZ1N0YXRlcyQuZ2V0KGNvbnRleHQpLnNldChsb2FkZXJJZCwgbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihzdGF0ZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3RhdGVzLnNldChjb250ZXh0LCBuZXcgTWFwPExvYWRlcklkLCBib29sZWFuPihbW2xvYWRlcklkLCBzdGF0ZV1dKSk7XG4gICAgICAgIHRoaXMubG9hZGluZ1N0YXRlcyQuc2V0KGNvbnRleHQsIG5ldyBNYXA8TG9hZGVySWQsIEJlaGF2aW9yU3ViamVjdDxib29sZWFuPj4oW1tsb2FkZXJJZCwgbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihzdGF0ZSldXSkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBAdHMtaWdub3JlIC0gbG9hZGluZ1N0YXRlc1tjb250ZXh0XSBpcyBzdXJlbHkgZGVmaW5lZCBpbiB0aGlzIGJyYW5jaFxuICAgICAgdGhpcy5sb2FkaW5nU3RhdGVzLmdldChjb250ZXh0KS5zZXQobG9hZGVySWQsIHN0YXRlKTtcbiAgICAgIHRoaXMubG9hZGluZ1N0YXRlcyQuZ2V0KGNvbnRleHQpLmdldChsb2FkZXJJZCkubmV4dChzdGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhc0xvYWRpbmdTdGF0ZXMoY29udGV4dDogTG9hZGluZ0NvbnRleHQsIGxvYWRlcklkOiBMb2FkZXJJZCkge1xuICAgIHJldHVybiB0aGlzLmhhc0NvbnRleHRMb2FkaW5nU3RhdGUoY29udGV4dCkgJiYgdGhpcy5oYXNMb2FkZXJMb2FkaW5nU3RhdGUoY29udGV4dCwgbG9hZGVySWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhc0NvbnRleHRMb2FkaW5nU3RhdGUoY29udGV4dDogTG9hZGluZ0NvbnRleHQpIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3RhdGVzLmhhcyhjb250ZXh0KSAmJiB0aGlzLmxvYWRpbmdTdGF0ZXMkLmhhcyhjb250ZXh0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYXNMb2FkZXJMb2FkaW5nU3RhdGUoY29udGV4dDogTG9hZGluZ0NvbnRleHQsIGxvYWRlcklkOiBMb2FkZXJJZCkge1xuICAgIHJldHVybiB0aGlzLmxvYWRpbmdTdGF0ZXMuZ2V0KGNvbnRleHQpLmhhcyhsb2FkZXJJZCkgJiYgdGhpcy5sb2FkaW5nU3RhdGVzJC5nZXQoY29udGV4dCkuaGFzKGxvYWRlcklkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRMb2FkZXJJZChsb2FkZXJJZD86IExvYWRlcklkKTogTG9hZGVySWQge1xuICAgIHJldHVybiBsb2FkZXJJZCA/PyBERUZBVUxUX0xPQURFUl9JRDtcbiAgfVxufVxuIl19
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvYWRpbmcvc3JjL2xpYi9sb2FkaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBSXpELE1BQU0saUJBQWlCLEdBQWEsVUFBVSxDQUFDO0FBRy9DLE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFFRSxrREFBa0Q7UUFDbEQsMENBQTBDO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQTBDLENBQUM7UUFDaEYscURBQXFEO1FBQ3JELG1EQUFtRDtRQUN6QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUEyRCxDQUFDO1FBRTFGLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7S0FzSGpDO0lBcEhDLElBQUksQ0FBQyxNQUFpRTtRQUNwRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksQ0FBbUIsQ0FBQztRQUNqRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNyRCxXQUFXLEVBQUUsSUFBSTtZQUNqQixZQUFZLEVBQUUsSUFBSTtZQUNsQixZQUFZLEVBQUUsSUFBSTtZQUNsQixjQUFjLEVBQUUsSUFBSTtZQUNwQixpQkFBaUIsRUFB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Q0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pHLENBQUM7SUFFUyxXQUFXLENBQUMsUUFBbUI7UUFDdkMsT0FBTyxRQUFRLElBQUksaUJBQWlCLENBQUM7SUFDdkMsQ0FBQzs4R0E3SFUsZ0JBQWdCO2tIQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWFsb2cgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBhc3luY1NjaGVkdWxlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIG9ic2VydmVPbiB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFYTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4vbG9hZGluZy5jb21wb25lbnQnO1xuXG50eXBlIExvYWRpbmdDb250ZXh0ID0gb2JqZWN0O1xudHlwZSBMb2FkZXJJZCA9IHN0cmluZyB8IG51bWJlcjsgLy8gZXhwZWN0ZWQgZW51bSB2YWx1ZXNcbmNvbnN0IERFRkFVTFRfTE9BREVSX0lEOiBMb2FkZXJJZCA9ICdfREVGQVVMVCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWExvYWRpbmdTZXJ2aWNlIHtcbiAgLy8gV2Vha01hcCB3aWxsIHJlbW92ZSBjb21wb25lbnRzIGZyb20gaXRzZWxmIHVwb25cbiAgLy8gdGhlaXIgZ2FyYmFnZSBjb2xsZWN0aW9uIGJ5IEpTIHJ1bnRpbWUuXG4gIHByb3RlY3RlZCBsb2FkaW5nU3RhdGVzID0gbmV3IFdlYWtNYXA8TG9hZGluZ0NvbnRleHQsIE1hcDxMb2FkZXJJZCwgYm9vbGVhbj4+KCk7XG4gIC8vIEJvdGggbG9hZGluZyBzdGF0ZSBtYXBzIGFyZSBrZXB0IGluLXN5bmMgc3VjaCB0aGF0XG4gIC8vIHRoZXkgY2FuIGJlIHVzZWQgYnkgYm90aCBzeW5jIGFuZCBhc3luYyBtZXRob2RzLlxuICBwcm90ZWN0ZWQgbG9hZGluZ1N0YXRlcyQgPSBuZXcgV2Vha01hcDxMb2FkaW5nQ29udGV4dCwgTWFwPExvYWRlcklkLCBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4+PigpO1xuXG4gIHByaXZhdGUgZGlhbG9nID0gaW5qZWN0KERpYWxvZyk7XG5cbiAgc2hvdyhjb25maWc/OiB7IGxvY2F0aW9uPzogRWxlbWVudDsgdHlwZT86IHN0cmluZzsgY29udGV4dD86IHVua25vd24gfSk6IG51bWJlciB7XG4gICAgY29uc3QgY2UgPSAoY29uZmlnPy5sb2NhdGlvbiA/PyBkb2N1bWVudC5ib2R5KSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFYTG9hZGluZ0NvbXBvbmVudCwge1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXG4gICAgICByZXN0b3JlRm9jdXM6IHRydWUsXG4gICAgICBjbG9zZU9uRGVzdHJveTogdHJ1ZSxcbiAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgYXJpYU1vZGFsOiB0cnVlLFxuICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgIHBhbmVsQ2xhc3M6IFsnYXgtbG9hZGluZy1wYW5lJywgJ2F4LWFuaW1hdGUtZmFkZUluJ10sXG4gICAgICBiYWNrZHJvcENsYXNzOiBbJ2F4LWxvYWRpbmctb3ZlcmxheS1iYWNrZHJvcCcsICdheC1hbmltYXRlLWZhZGVJbiddLFxuICAgIH0pO1xuICAgIGNvbnN0IGlkID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLnZpc2libGUgPSB0cnVlO1xuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5pZCA9IGlkLnRvU3RyaW5nKCk7XG4gICAgaWYgKGNlICE9IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgIGNvbnN0IGJnID0gZGlhbG9nUmVmLm92ZXJsYXlSZWYuYmFja2Ryb3BFbGVtZW50O1xuICAgICAgY29uc3Qgb3YgPSBkaWFsb2dSZWYub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudDtcbiAgICAgIGNlLnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICAgIG92LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgIGNlLmFwcGVuZENoaWxkKGJnKTtcbiAgICAgIGNlLmFwcGVuZENoaWxkKG92KTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBvdi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gICAgcmV0dXJuIGlkO1xuICAgIC8vIFRPRE86IGRpYWJsZWQgZm9jdXMgYW5kIGNsaWNrLCBtYXliZSB3ZSBuZWVkIGEgc2VydmljZSBhbmQgZGlyZWN0aXZlIGZvciBpdFxuICB9XG5cbiAgaGlkZShpZDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZiA9IHRoaXMuZGlhbG9nLm9wZW5EaWFsb2dzLmZpbmQoKGMpID0+IGMuY29tcG9uZW50SW5zdGFuY2UuaWQgPT09IGlkLnRvU3RyaW5nKCkpO1xuICAgIGlmIChmKSB7XG4gICAgICBmLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgZG9Mb2FkaW5nPFY+KHNvdXJjZSQ6IE9ic2VydmFibGU8Vj4sIGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBsb2FkZXJJZD86IExvYWRlcklkKTogT2JzZXJ2YWJsZTxWPiB7XG4gICAgdGhpcy5zdGFydExvYWRpbmcoY29udGV4dCwgbG9hZGVySWQpO1xuICAgIHJldHVybiBzb3VyY2UkLnBpcGUoXG4gICAgICBvYnNlcnZlT24oYXN5bmNTY2hlZHVsZXIpLFxuICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5lbmRMb2FkaW5nKGNvbnRleHQsIGxvYWRlcklkKSksXG4gICAgKTtcbiAgfVxuXG4gIGlzTG9hZGluZyhjb250ZXh0OiBMb2FkaW5nQ29udGV4dCwgbG9hZGVySWQ/OiBMb2FkZXJJZCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxvYWRlclN0YXRlcyA9IHRoaXMubG9hZGluZ1N0YXRlcy5nZXQoY29udGV4dCk7XG5cbiAgICBpZiAoIWxvYWRlclN0YXRlcykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobG9hZGVySWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbG9hZGVyU3RhdGVzLmdldCh0aGlzLmdldExvYWRlcklkKGxvYWRlcklkKSkgPz8gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gWy4uLmxvYWRlclN0YXRlcy52YWx1ZXMoKV0uZmlsdGVyKChzdGF0ZSkgPT4gc3RhdGUpLmxlbmd0aCA+IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaXNMb2FkaW5nJChjb250ZXh0OiBMb2FkaW5nQ29udGV4dCwgbG9hZGVySWQ/OiBMb2FkZXJJZCB8IGFueSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNvYWxlc2NlZExvYWRlcklkID0gdGhpcy5nZXRMb2FkZXJJZChsb2FkZXJJZCk7XG5cbiAgICBpZiAoIXRoaXMuaGFzTG9hZGluZ1N0YXRlcyhjb250ZXh0LCBjb2FsZXNjZWRMb2FkZXJJZCkpIHtcbiAgICAgIHRoaXMuc2V0TG9hZGluZ1N0YXRlKGNvbnRleHQsIGZhbHNlLCBsb2FkZXJJZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubG9hZGluZ1N0YXRlcyQuZ2V0KGNvbnRleHQpLmdldChjb2FsZXNjZWRMb2FkZXJJZCk7XG4gIH1cblxuICBzdGFydExvYWRpbmcoY29udGV4dDogTG9hZGluZ0NvbnRleHQsIGxvYWRlcklkPzogTG9hZGVySWQpOiB2b2lkIHtcbiAgICB0aGlzLnNldExvYWRpbmdTdGF0ZShjb250ZXh0LCB0cnVlLCB0aGlzLmdldExvYWRlcklkKGxvYWRlcklkKSk7XG4gIH1cblxuICBlbmRMb2FkaW5nKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBsb2FkZXJJZD86IExvYWRlcklkKTogdm9pZCB7XG4gICAgdGhpcy5zZXRMb2FkaW5nU3RhdGUoY29udGV4dCwgZmFsc2UsIHRoaXMuZ2V0TG9hZGVySWQobG9hZGVySWQpKTtcbiAgfVxuXG4gIGNsZWFyTG9hZGluZ3MoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nU3RhdGVzID0gbmV3IFdlYWtNYXA8TG9hZGluZ0NvbnRleHQsIE1hcDxMb2FkZXJJZCwgYm9vbGVhbj4+KCk7XG4gICAgdGhpcy5sb2FkaW5nU3RhdGVzJCA9IG5ldyBXZWFrTWFwPExvYWRpbmdDb250ZXh0LCBNYXA8TG9hZGVySWQsIEJlaGF2aW9yU3ViamVjdDxib29sZWFuPj4+KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TG9hZGluZ1N0YXRlKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBzdGF0ZTogYm9vbGVhbiwgbG9hZGVySWQ6IExvYWRlcklkKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhhc0xvYWRpbmdTdGF0ZXMoY29udGV4dCwgbG9hZGVySWQpKSB7XG4gICAgICBpZiAodGhpcy5oYXNDb250ZXh0TG9hZGluZ1N0YXRlKGNvbnRleHQpKSB7XG4gICAgICAgIHRoaXMubG9hZGluZ1N0YXRlcy5nZXQoY29udGV4dCkuc2V0KGxvYWRlcklkLCBzdGF0ZSk7XG4gICAgICAgIHRoaXMubG9hZGluZ1N0YXRlcyQuZ2V0KGNvbnRleHQpLnNldChsb2FkZXJJZCwgbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihzdGF0ZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3RhdGVzLnNldChjb250ZXh0LCBuZXcgTWFwPExvYWRlcklkLCBib29sZWFuPihbW2xvYWRlcklkLCBzdGF0ZV1dKSk7XG4gICAgICAgIHRoaXMubG9hZGluZ1N0YXRlcyQuc2V0KFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgbmV3IE1hcDxMb2FkZXJJZCwgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+PihbW2xvYWRlcklkLCBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHN0YXRlKV1dKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2FkaW5nU3RhdGVzLmdldChjb250ZXh0KS5zZXQobG9hZGVySWQsIHN0YXRlKTtcbiAgICAgIHRoaXMubG9hZGluZ1N0YXRlcyQuZ2V0KGNvbnRleHQpLmdldChsb2FkZXJJZCkubmV4dChzdGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhc0xvYWRpbmdTdGF0ZXMoY29udGV4dDogTG9hZGluZ0NvbnRleHQsIGxvYWRlcklkOiBMb2FkZXJJZCkge1xuICAgIHJldHVybiB0aGlzLmhhc0NvbnRleHRMb2FkaW5nU3RhdGUoY29udGV4dCkgJiYgdGhpcy5oYXNMb2FkZXJMb2FkaW5nU3RhdGUoY29udGV4dCwgbG9hZGVySWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhc0NvbnRleHRMb2FkaW5nU3RhdGUoY29udGV4dDogTG9hZGluZ0NvbnRleHQpIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3RhdGVzLmhhcyhjb250ZXh0KSAmJiB0aGlzLmxvYWRpbmdTdGF0ZXMkLmhhcyhjb250ZXh0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYXNMb2FkZXJMb2FkaW5nU3RhdGUoY29udGV4dDogTG9hZGluZ0NvbnRleHQsIGxvYWRlcklkOiBMb2FkZXJJZCkge1xuICAgIHJldHVybiB0aGlzLmxvYWRpbmdTdGF0ZXMuZ2V0KGNvbnRleHQpLmhhcyhsb2FkZXJJZCkgJiYgdGhpcy5sb2FkaW5nU3RhdGVzJC5nZXQoY29udGV4dCkuaGFzKGxvYWRlcklkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRMb2FkZXJJZChsb2FkZXJJZD86IExvYWRlcklkKTogTG9hZGVySWQge1xuICAgIHJldHVybiBsb2FkZXJJZCA/PyBERUZBVUxUX0xPQURFUl9JRDtcbiAgfVxufVxuIl19
|
package/esm2022/menu/index.mjs
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
export * from './lib/class/root-menu.class';
|
2
|
+
export * from './lib/menu-item/menu-item.component';
|
1
3
|
export * from './lib/menu.component';
|
2
4
|
export * from './lib/menu.module';
|
3
|
-
|
5
|
+
export * from './lib/menu2.component';
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Mvcm9vdC1tZW51LmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lbnUtaXRlbS9tZW51LWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lbnUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lbnUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lbnUyLmNvbXBvbmVudCc7XG4iXX0=
|
@@ -0,0 +1,3 @@
|
|
1
|
+
export class AXRootMenu {
|
2
|
+
}
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1tZW51LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9jbGFzcy9yb290LW1lbnUuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFVBQVU7Q0FFdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWE9yaWVudGF0aW9uIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5cbmV4cG9ydCBjbGFzcyBBWFJvb3RNZW51IHtcbiAgb3JpYXRhdGlvbjogQVhPcmllbnRhdGlvbjtcbn1cbiJdfQ==
|
@@ -0,0 +1,96 @@
|
|
1
|
+
import { MXBaseComponent } from '@acorex/components/common';
|
2
|
+
import { AXPopoverComponent } from '@acorex/components/popover';
|
3
|
+
import { Component, ContentChildren, HostBinding, Input, QueryList, ViewChild, inject, } from '@angular/core';
|
4
|
+
import { AXRootMenu } from '../class/root-menu.class';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@angular/common";
|
7
|
+
import * as i2 from "@acorex/components/popover";
|
8
|
+
export class AXMenuItemComponent extends MXBaseComponent {
|
9
|
+
constructor() {
|
10
|
+
super(...arguments);
|
11
|
+
this.isRoot = false;
|
12
|
+
this.rootMenu = inject(AXRootMenu);
|
13
|
+
}
|
14
|
+
ngAfterViewInit() {
|
15
|
+
this.children.forEach((c) => {
|
16
|
+
c.parent = this;
|
17
|
+
});
|
18
|
+
}
|
19
|
+
close() {
|
20
|
+
this.popover?.close();
|
21
|
+
}
|
22
|
+
// @HostListener('mouseleave', ['$event'])
|
23
|
+
// private onMouseHover(e: MouseEvent) {
|
24
|
+
// console.log('a');
|
25
|
+
// this.children.forEach((c) => {
|
26
|
+
// c.close();
|
27
|
+
// });
|
28
|
+
// }
|
29
|
+
_handleOnOpened() {
|
30
|
+
// this.parent.children.forEach((c) => {
|
31
|
+
// if (c != this) {
|
32
|
+
// c.close();
|
33
|
+
// }
|
34
|
+
// });
|
35
|
+
}
|
36
|
+
_handleOnClosed() {
|
37
|
+
// this.children.forEach((c) => {
|
38
|
+
// c.close();
|
39
|
+
// });
|
40
|
+
}
|
41
|
+
getIcon() {
|
42
|
+
switch (this.rootMenu.oriatation) {
|
43
|
+
case 'vertical':
|
44
|
+
return 'ax-icon-arrow-right';
|
45
|
+
case 'horizontal':
|
46
|
+
return 'ax-icon-arrow-down';
|
47
|
+
}
|
48
|
+
}
|
49
|
+
getPlacement() {
|
50
|
+
debugger;
|
51
|
+
switch (this.rootMenu.oriatation) {
|
52
|
+
case 'horizontal':
|
53
|
+
if (this.isRoot) {
|
54
|
+
return 'bottom-start';
|
55
|
+
}
|
56
|
+
else {
|
57
|
+
return 'end-top';
|
58
|
+
}
|
59
|
+
break;
|
60
|
+
case 'vertical':
|
61
|
+
if (this.isRoot) {
|
62
|
+
return 'end-top';
|
63
|
+
}
|
64
|
+
else {
|
65
|
+
return 'end-top';
|
66
|
+
}
|
67
|
+
break;
|
68
|
+
default:
|
69
|
+
return 'bottom-start';
|
70
|
+
}
|
71
|
+
}
|
72
|
+
get __hostClass() {
|
73
|
+
return [`${this.disabled ? 'ax-state-disabled' : ''}`];
|
74
|
+
}
|
75
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenuItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
76
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXMenuItemComponent, selector: "ax-menu-item", inputs: { text: "text", disabled: "disabled" }, host: { properties: { "class": "this.__hostClass" } }, queries: [{ propertyName: "children", predicate: AXMenuItemComponent }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\"></ng-content>\n<div class=\"ax-menu-item-text\">{{ text }}</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n<i class=\"ax-icon {{ getIcon() }} ax-menu-item-child-icon\" *ngIf=\"children.length\"></i>\n\n<ax-popover\n [closeOn]=\"'clickOut'\"\n [openOn]=\"'click'\"\n [target]=\"getHostElement()\"\n [offsetY]=\"isRoot ? 8 : 0\"\n [offsetX]=\"isRoot ? 0 : 4\"\n [placement]=\"getPlacement()\"\n (onOpened)=\"_handleOnOpened()\"\n (onClosed)=\"_handleOnClosed()\"\n>\n <div class=\"ax-menu-item-children ax-parent-{{ this.rootMenu.oriatation }}\">\n <ng-content select=\"ax-menu-item\"></ng-content>\n </div>\n</ax-popover>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }] }); }
|
77
|
+
}
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenuItemComponent, decorators: [{
|
79
|
+
type: Component,
|
80
|
+
args: [{ selector: 'ax-menu-item', template: "<ng-content select=\"ax-prefix\"></ng-content>\n<div class=\"ax-menu-item-text\">{{ text }}</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n<i class=\"ax-icon {{ getIcon() }} ax-menu-item-child-icon\" *ngIf=\"children.length\"></i>\n\n<ax-popover\n [closeOn]=\"'clickOut'\"\n [openOn]=\"'click'\"\n [target]=\"getHostElement()\"\n [offsetY]=\"isRoot ? 8 : 0\"\n [offsetX]=\"isRoot ? 0 : 4\"\n [placement]=\"getPlacement()\"\n (onOpened)=\"_handleOnOpened()\"\n (onClosed)=\"_handleOnClosed()\"\n>\n <div class=\"ax-menu-item-children ax-parent-{{ this.rootMenu.oriatation }}\">\n <ng-content select=\"ax-menu-item\"></ng-content>\n </div>\n</ax-popover>\n" }]
|
81
|
+
}], propDecorators: { popover: [{
|
82
|
+
type: ViewChild,
|
83
|
+
args: [AXPopoverComponent]
|
84
|
+
}], text: [{
|
85
|
+
type: Input,
|
86
|
+
args: [{ required: true }]
|
87
|
+
}], disabled: [{
|
88
|
+
type: Input
|
89
|
+
}], children: [{
|
90
|
+
type: ContentChildren,
|
91
|
+
args: [AXMenuItemComponent]
|
92
|
+
}], __hostClass: [{
|
93
|
+
type: HostBinding,
|
94
|
+
args: ['class']
|
95
|
+
}] } });
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvbWVudS1pdGVtL21lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUtaXRlbS9tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFdBQVcsRUFDWCxLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBTXRELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxlQUFlO0lBSnhEOztRQVdFLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFHZixhQUFRLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBeUUvQjtJQXBFQyxlQUFlO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMxQixDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsMENBQTBDO0lBQzFDLHdDQUF3QztJQUN4QyxzQkFBc0I7SUFDdEIsbUNBQW1DO0lBQ25DLGlCQUFpQjtJQUNqQixRQUFRO0lBQ1IsSUFBSTtJQUVKLGVBQWU7UUFDYix3Q0FBd0M7UUFDeEMscUJBQXFCO1FBQ3JCLGlCQUFpQjtRQUNqQixNQUFNO1FBQ04sTUFBTTtJQUNSLENBQUM7SUFFRCxlQUFlO1FBQ2IsaUNBQWlDO1FBQ2pDLGVBQWU7UUFDZixNQUFNO0lBQ1IsQ0FBQztJQUVELE9BQU87UUFDTCxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFO1lBQ2hDLEtBQUssVUFBVTtnQkFDYixPQUFPLHFCQUFxQixDQUFDO1lBQy9CLEtBQUssWUFBWTtnQkFDZixPQUFPLG9CQUFvQixDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVELFlBQVk7UUFDVixRQUFRLENBQUM7UUFFVCxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFO1lBQ2hDLEtBQUssWUFBWTtnQkFDZixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7b0JBQ2YsT0FBTyxjQUFjLENBQUM7aUJBQ3ZCO3FCQUFNO29CQUNMLE9BQU8sU0FBUyxDQUFDO2lCQUNsQjtnQkFDRCxNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtvQkFDZixPQUFPLFNBQVMsQ0FBQztpQkFDbEI7cUJBQU07b0JBQ0wsT0FBTyxTQUFTLENBQUM7aUJBQ2xCO2dCQUNELE1BQU07WUFDUjtnQkFDRSxPQUFPLGNBQWMsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxJQUNJLFdBQVc7UUFDYixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDOzhHQWxGVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixvTEFZYixtQkFBbUIsc0VBWHpCLGtCQUFrQix1RUNuQi9CLHFxQkFtQkE7OzJGRERhLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDRSxjQUFjOzhCQUtoQixPQUFPO3NCQURkLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUdGLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixRQUFRO3NCQUFoQixLQUFLO2dCQVFOLFFBQVE7c0JBRFAsZUFBZTt1QkFBQyxtQkFBbUI7Z0JBb0VoQyxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1YQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFJvb3RNZW51IH0gZnJvbSAnLi4vY2xhc3Mvcm9vdC1tZW51LmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbWVudS1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUtaXRlbS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYTWVudUl0ZW1Db21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZChBWFBvcG92ZXJDb21wb25lbnQpXG4gIHByaXZhdGUgcG9wb3ZlcjogQVhQb3BvdmVyQ29tcG9uZW50O1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHRleHQ6IHN0cmluZztcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgaXNSb290ID0gZmFsc2U7XG4gIHBhcmVudD86IEFYTWVudUl0ZW1Db21wb25lbnQ7XG5cbiAgcm9vdE1lbnUgPSBpbmplY3QoQVhSb290TWVudSk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihBWE1lbnVJdGVtQ29tcG9uZW50KVxuICBjaGlsZHJlbjogUXVlcnlMaXN0PEFYTWVudUl0ZW1Db21wb25lbnQ+O1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcbiAgICAgIGMucGFyZW50ID0gdGhpcztcbiAgICB9KTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMucG9wb3Zlcj8uY2xvc2UoKTtcbiAgfVxuXG4gIC8vIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBbJyRldmVudCddKVxuICAvLyBwcml2YXRlIG9uTW91c2VIb3ZlcihlOiBNb3VzZUV2ZW50KSB7XG4gIC8vICAgY29uc29sZS5sb2coJ2EnKTtcbiAgLy8gICB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcbiAgLy8gICAgIGMuY2xvc2UoKTtcbiAgLy8gICB9KTtcbiAgLy8gfVxuXG4gIF9oYW5kbGVPbk9wZW5lZCgpIHtcbiAgICAvLyB0aGlzLnBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKChjKSA9PiB7XG4gICAgLy8gICBpZiAoYyAhPSB0aGlzKSB7XG4gICAgLy8gICAgIGMuY2xvc2UoKTtcbiAgICAvLyAgIH1cbiAgICAvLyB9KTtcbiAgfVxuXG4gIF9oYW5kbGVPbkNsb3NlZCgpIHtcbiAgICAvLyB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcbiAgICAvLyAgIGMuY2xvc2UoKTtcbiAgICAvLyB9KTtcbiAgfVxuXG4gIGdldEljb24oKSB7XG4gICAgc3dpdGNoICh0aGlzLnJvb3RNZW51Lm9yaWF0YXRpb24pIHtcbiAgICAgIGNhc2UgJ3ZlcnRpY2FsJzpcbiAgICAgICAgcmV0dXJuICdheC1pY29uLWFycm93LXJpZ2h0JztcbiAgICAgIGNhc2UgJ2hvcml6b250YWwnOlxuICAgICAgICByZXR1cm4gJ2F4LWljb24tYXJyb3ctZG93bic7XG4gICAgfVxuICB9XG5cbiAgZ2V0UGxhY2VtZW50KCkge1xuICAgIGRlYnVnZ2VyO1xuXG4gICAgc3dpdGNoICh0aGlzLnJvb3RNZW51Lm9yaWF0YXRpb24pIHtcbiAgICAgIGNhc2UgJ2hvcml6b250YWwnOlxuICAgICAgICBpZiAodGhpcy5pc1Jvb3QpIHtcbiAgICAgICAgICByZXR1cm4gJ2JvdHRvbS1zdGFydCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuICdlbmQtdG9wJztcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3ZlcnRpY2FsJzpcbiAgICAgICAgaWYgKHRoaXMuaXNSb290KSB7XG4gICAgICAgICAgcmV0dXJuICdlbmQtdG9wJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gJ2VuZC10b3AnO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdib3R0b20tc3RhcnQnO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbYCR7dGhpcy5kaXNhYmxlZCA/ICdheC1zdGF0ZS1kaXNhYmxlZCcgOiAnJ31gXTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+PC9uZy1jb250ZW50PlxuPGRpdiBjbGFzcz1cImF4LW1lbnUtaXRlbS10ZXh0XCI+e3sgdGV4dCB9fTwvZGl2PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+PC9uZy1jb250ZW50PlxuPGkgY2xhc3M9XCJheC1pY29uIHt7IGdldEljb24oKSB9fSBheC1tZW51LWl0ZW0tY2hpbGQtaWNvblwiICpuZ0lmPVwiY2hpbGRyZW4ubGVuZ3RoXCI+PC9pPlxuXG48YXgtcG9wb3ZlclxuICBbY2xvc2VPbl09XCInY2xpY2tPdXQnXCJcbiAgW29wZW5Pbl09XCInY2xpY2snXCJcbiAgW3RhcmdldF09XCJnZXRIb3N0RWxlbWVudCgpXCJcbiAgW29mZnNldFldPVwiaXNSb290ID8gOCA6IDBcIlxuICBbb2Zmc2V0WF09XCJpc1Jvb3QgPyAwIDogNFwiXG4gIFtwbGFjZW1lbnRdPVwiZ2V0UGxhY2VtZW50KClcIlxuICAob25PcGVuZWQpPVwiX2hhbmRsZU9uT3BlbmVkKClcIlxuICAob25DbG9zZWQpPVwiX2hhbmRsZU9uQ2xvc2VkKClcIlxuPlxuICA8ZGl2IGNsYXNzPVwiYXgtbWVudS1pdGVtLWNoaWxkcmVuIGF4LXBhcmVudC17eyB0aGlzLnJvb3RNZW51Lm9yaWF0YXRpb24gfX1cIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1tZW51LWl0ZW1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9heC1wb3BvdmVyPlxuIl19
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { Overlay } from '@angular/cdk/overlay';
|
2
2
|
import { ComponentPortal } from '@angular/cdk/portal';
|
3
|
-
import { Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, TemplateRef, ElementRef, ChangeDetectorRef, Input, } from '@angular/core';
|
4
3
|
import { AXBaseMenuMixin } from '@acorex/components/mixin';
|
5
4
|
import { AXPlatform } from '@acorex/core/platform';
|
6
5
|
import { AXTranslator } from '@acorex/core/translation';
|
6
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, Input, TemplateRef, ViewEncapsulation, } from '@angular/core';
|
7
7
|
import * as i0 from "@angular/core";
|
8
8
|
import * as i1 from "@angular/cdk/overlay";
|
9
9
|
import * as i2 from "@acorex/core/platform";
|
@@ -319,7 +319,7 @@ export class AXMenuComponent extends AXBaseMenuMixin {
|
|
319
319
|
this.cdr.markForCheck();
|
320
320
|
}
|
321
321
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i2.AXPlatform }], target: i0.ɵɵFactoryTarget.Component }); }
|
322
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXMenuComponent, selector: "ax-menu", inputs: { disabled: "disabled", tabIndex: "tabIndex", textField: "textField", valueField: "valueField", items: "items", parentId: "parentId", iconField: "iconField", tooltip: "tooltip", opened: "opened", visibleField: "visibleField", disableField: "disableField", hasChildField: "hasChildField", dividerField: "dividerField", openMode: "openMode", displayMode: "displayMode", showModal: "showModal", activeCallback: "activeCallback" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onMenuItemClick: "onMenuItemClick" }, queries: [{ propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }, { propertyName: "_contentItemTemplate", first: true, predicate: ["itemTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container
|
322
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXMenuComponent, selector: "ax-menu", inputs: { disabled: "disabled", tabIndex: "tabIndex", textField: "textField", valueField: "valueField", items: "items", parentId: "parentId", iconField: "iconField", tooltip: "tooltip", opened: "opened", visibleField: "visibleField", disableField: "disableField", hasChildField: "hasChildField", dividerField: "dividerField", openMode: "openMode", displayMode: "displayMode", showModal: "showModal", activeCallback: "activeCallback" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onMenuItemClick: "onMenuItemClick" }, queries: [{ propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }, { propertyName: "_contentItemTemplate", first: true, predicate: ["itemTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container\n *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"\n ></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li\n *ngIf=\"item[visibleField] !== false\"\n [class.ax-state-disabled]=\"item[disableField]\"\n (click)=\"_onMenuClick($event, item)\"\n >\n <div\n class=\"ax-menu-item\"\n [ngClass]=\"{\n 'ax-is-parent': item.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.isActive\n }\"\n *ngIf=\"itemTemplate == null; else tmpItem\"\n >\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span\n class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\"\n *ngIf=\"!item.isLoading\"\n ></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul\n *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\"\n [class.ax-state-disabled]=\"item[disableField]\"\n >\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\">\n </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [context]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: ["ax-menu{font-size:.875rem;display:block}ax-menu ul{width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column}ax-menu ul li.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item{display:flex}ax-menu ul li .ax-menu-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item .ax-menu-item-prefix,ax-menu ul li .ax-menu-item .ax-menu-item-suffix{display:flex;align-items:center;justify-content:center}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon-chevron,ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon-chevron{transform:rotate(-90deg)}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon:not(:empty),ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon:not(:empty){min-width:1.25rem;min-height:1.25rem}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon{padding-inline-end:.5rem}ax-menu ul li .ax-menu-item .ax-menu-item-icon{font-size:1.25rem}ax-menu ul li.ax-state-disabled{cursor:not-allowed!important;opacity:.5}ax-menu ul li.ax-state-active .ax-menu-item-icon-chevron{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-menu .ax-horizontal>li,ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-horizontal{flex-direction:row;align-items:center}ax-menu .ax-horizontal .ax-menu-item-divider{width:1px;height:1rem;background-color:rgba(var(--ax-color-default))}ax-menu .ax-horizontal li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-horizontal li:not(.ax-menu-item-divider){padding:.5rem;cursor:pointer}ax-menu .ax-vertical{flex-direction:column;width:100%}ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-vertical .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-default));margin:.375rem 0}ax-menu .ax-vertical li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-vertical li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul{background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);padding:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-menu .ax-vertical.ax-submenu-ul li{border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-menu-item-divider){padding:.5rem}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-state-disabled,.ax-menu-item-divider):hover{background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore))}ax-menu .ax-side-menu{width:100%;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}ax-menu .ax-side-menu .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-default));margin:.375rem 0}ax-menu .ax-side-menu ul{display:flex;flex-direction:column;margin-top:.5rem;width:100%;padding-inline-start:.75rem}ax-menu .ax-side-menu li .ax-menu-item-icon-chevron.ax-menu-active-icon{transform:rotate(180deg)!important}ax-menu .ax-side-menu li .ax-menu-item{justify-content:space-between}ax-menu .ax-side-menu li .ax-menu-item.ax-is-parent{font-weight:500}ax-menu .ax-side-menu li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer;font-size:1rem}ax-menu .ax-side-menu li:not(.ax-menu-item-divider) .ax-is-child{font-size:.875rem}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
323
323
|
}
|
324
324
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenuComponent, decorators: [{
|
325
325
|
type: Component,
|
@@ -340,7 +340,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
|
|
340
340
|
'openMode',
|
341
341
|
'displayMode',
|
342
342
|
'showModal',
|
343
|
-
], outputs: ['onBlur', 'onFocus', 'onMenuItemClick'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container
|
343
|
+
], outputs: ['onBlur', 'onFocus', 'onMenuItemClick'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container\n *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"\n ></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li\n *ngIf=\"item[visibleField] !== false\"\n [class.ax-state-disabled]=\"item[disableField]\"\n (click)=\"_onMenuClick($event, item)\"\n >\n <div\n class=\"ax-menu-item\"\n [ngClass]=\"{\n 'ax-is-parent': item.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.isActive\n }\"\n *ngIf=\"itemTemplate == null; else tmpItem\"\n >\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span\n class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\"\n *ngIf=\"!item.isLoading\"\n ></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul\n *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\"\n [class.ax-state-disabled]=\"item[disableField]\"\n >\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\">\n </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [context]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: ["ax-menu{font-size:.875rem;display:block}ax-menu ul{width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column}ax-menu ul li.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item{display:flex}ax-menu ul li .ax-menu-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item .ax-menu-item-prefix,ax-menu ul li .ax-menu-item .ax-menu-item-suffix{display:flex;align-items:center;justify-content:center}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon-chevron,ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon-chevron{transform:rotate(-90deg)}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon:not(:empty),ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon:not(:empty){min-width:1.25rem;min-height:1.25rem}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon{padding-inline-end:.5rem}ax-menu ul li .ax-menu-item .ax-menu-item-icon{font-size:1.25rem}ax-menu ul li.ax-state-disabled{cursor:not-allowed!important;opacity:.5}ax-menu ul li.ax-state-active .ax-menu-item-icon-chevron{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-menu .ax-horizontal>li,ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-horizontal{flex-direction:row;align-items:center}ax-menu .ax-horizontal .ax-menu-item-divider{width:1px;height:1rem;background-color:rgba(var(--ax-color-default))}ax-menu .ax-horizontal li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-horizontal li:not(.ax-menu-item-divider){padding:.5rem;cursor:pointer}ax-menu .ax-vertical{flex-direction:column;width:100%}ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-vertical .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-default));margin:.375rem 0}ax-menu .ax-vertical li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-vertical li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul{background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);padding:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-menu .ax-vertical.ax-submenu-ul li{border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-menu-item-divider){padding:.5rem}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-state-disabled,.ax-menu-item-divider):hover{background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore))}ax-menu .ax-side-menu{width:100%;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}ax-menu .ax-side-menu .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-default));margin:.375rem 0}ax-menu .ax-side-menu ul{display:flex;flex-direction:column;margin-top:.5rem;width:100%;padding-inline-start:.75rem}ax-menu .ax-side-menu li .ax-menu-item-icon-chevron.ax-menu-active-icon{transform:rotate(180deg)!important}ax-menu .ax-side-menu li .ax-menu-item{justify-content:space-between}ax-menu .ax-side-menu li .ax-menu-item.ax-is-parent{font-weight:500}ax-menu .ax-side-menu li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer;font-size:1rem}ax-menu .ax-side-menu li:not(.ax-menu-item-divider) .ax-is-child{font-size:.875rem}\n"] }]
|
344
344
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i2.AXPlatform }]; }, propDecorators: { activeCallback: [{
|
345
345
|
type: Input
|
346
346
|
}], _contentEmptyTemplate: [{
|
@@ -350,4 +350,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
|
|
350
350
|
type: ContentChild,
|
351
351
|
args: ['itemTemplate']
|
352
352
|
}] } });
|
353
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBRWpCLFlBQVksRUFDWixXQUFXLEVBQ1gsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFFeEQ7Ozs7R0FJRztBQTJCSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxlQUFlO0lBY2xELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBWUQsWUFDVSxXQUF1QixFQUN2QixHQUFzQixFQUN0QixRQUFpQixFQUNqQixTQUFxQjtRQUU3QixLQUFLLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBTGhCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBWTtRQWQvQixVQUFLLEdBQVksSUFBSSxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVsQyxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUl0QixvQkFBZSxHQUFHO1lBQzFCLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDO1NBQzlDLENBQUM7SUFTRixDQUFDO0lBRVEsTUFBTTtRQUNiLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRVEsZUFBZTtRQUN0QixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLENBQWEsRUFBRSxJQUFTO1FBQ3hDLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxNQUF3QixDQUFDO1FBRWpELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxhQUFhLENBQUMsT0FBTyxLQUFLLElBQUksRUFBRTtZQUNwRCxPQUFPO1NBQ1I7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFO1lBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDaEM7UUFFRCxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxZQUFZLENBQUMsQ0FBYSxFQUFFLElBQVM7UUFDbkMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLE1BQXdCLENBQUM7UUFFakQsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLGFBQWEsQ0FBQyxPQUFPLEtBQUssSUFBSSxFQUFFO1lBQ3BELE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNoQztRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQ3hCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsSUFBSSxFQUFFLElBQUk7WUFDVixXQUFXLEVBQUUsQ0FBQztTQUNmLENBQUMsQ0FBQztRQUVILENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssWUFBWSxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssQ0FBQyxFQUFFO1lBQy9ELE9BQU8sZUFBZSxDQUFDO1NBQ3hCO2FBQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsRUFBRTtZQUMvQixPQUFPLDJCQUEyQixDQUFDO1NBQ3BDO2FBQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLFVBQVUsRUFBRTtZQUMxQyxPQUFPLGNBQWMsQ0FBQztTQUN2QjthQUFNO1lBQ0wsT0FBTyxhQUFhLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRUQsNENBQTRDO0lBQzVDLGlDQUFpQztJQUNqQyw4QkFBOEI7SUFDOUIsMkNBQTJDO0lBQzNDLDhDQUE4QztJQUM5QyxRQUFRO0lBQ1IsUUFBUTtJQUNSLElBQUk7SUFFSSxlQUFlLENBQUMsS0FBVTtRQUNoQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDeEIsT0FBTyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3hDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQVUsRUFBRSxRQUFhO1FBQzNDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN4QixPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxDQUFhLEVBQUUsSUFBUztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssRUFBRTtZQUNqRSxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsTUFBd0IsQ0FBQztZQUNqRCxJQUNFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQztnQkFDMUQsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLEVBQzFEO2dCQUNBLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtvQkFDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDM0I7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLFlBQVksRUFBRTtvQkFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTt3QkFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFOzRCQUN4RSxPQUFPLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQzt5QkFDeEI7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7Z0JBQ0QsSUFBSSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQzlCLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxZQUFZLEVBQUU7d0JBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7cUJBQ3hEO29CQUNELElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxZQUFZLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxVQUFVLEVBQUU7d0JBQ3hFLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7NEJBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7eUJBQ2pFO3FCQUNGO29CQUNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUVwQyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssWUFBWSxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssVUFBVSxFQUFFO3dCQUN4RSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztxQkFDcEI7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7cUJBQzVCO2lCQUNGO2dCQUVELElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxZQUFZLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxVQUFVLEVBQUU7b0JBQ3hFLElBQ0UsSUFBSSxDQUFDLFFBQVE7d0JBQ2IsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNO3dCQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUN4RDt3QkFDQSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7cUJBQzlCO29CQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2lCQUN0QjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLFNBQVMsRUFBRSxZQUFtQjtRQUNuRCxJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLFVBQVUsRUFBRTtZQUNuQyxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxFQUFFO2dCQUN6QixTQUFTLEdBQUc7b0JBQ1Y7d0JBQ0UsT0FBTyxFQUFFLEtBQUs7d0JBQ2QsT0FBTyxFQUFFLFFBQVE7d0JBQ2pCLFFBQVEsRUFBRSxPQUFPO3dCQUNqQixRQUFRLEVBQUUsS0FBSztxQkFDaEI7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLEtBQUs7d0JBQ2QsT0FBTyxFQUFFLFFBQVE7d0JBQ2pCLFFBQVEsRUFBRSxPQUFPO3dCQUNqQixRQUFRLEVBQUUsUUFBUTtxQkFDbkI7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLFFBQVE7d0JBQ2pCLE9BQU8sRUFBRSxRQUFRO3dCQUNqQixRQUFRLEVBQUUsUUFBUTt3QkFDbEIsUUFBUSxFQUFFLFFBQVE7cUJBQ25CO2lCQUNGLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxTQUFTLEdBQUc7b0JBQ1Y7d0JBQ0UsT0FBTyxFQUFFLEtBQUs7d0JBQ2QsT0FBTyxFQUFFLFFBQVE7d0JBQ2pCLFFBQVEsRUFBRSxPQUFPO3dCQUNqQixRQUFRLEVBQUUsS0FBSztxQkFDaEI7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLEtBQUs7d0JBQ2QsT0FBTyxFQUFFLEtBQUs7d0JBQ2QsUUFBUSxFQUFFLE9BQU87d0JBQ2pCLFFBQVEsRUFBRSxRQUFRO3FCQUNuQjtvQkFDRDt3QkFDRSxPQUFPLEVBQUUsUUFBUTt3QkFDakIsT0FBTyxFQUFFLFFBQVE7d0JBQ2pCLFFBQVEsRUFBRSxRQUFRO3dCQUNsQixRQUFRLEVBQUUsUUFBUTtxQkFDbkI7aUJBQ0YsQ0FBQzthQUNIO1NBQ0Y7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLEVBQUU7Z0JBQ3pCLFNBQVMsR0FBRztvQkFDVjt3QkFDRSxPQUFPLEVBQUUsS0FBSzt3QkFDZCxPQUFPLEVBQUUsS0FBSzt3QkFDZCxRQUFRLEVBQUUsT0FBTzt3QkFDakIsUUFBUSxFQUFFLEtBQUs7cUJBQ2hCO29CQUNEO3dCQUNFLE9BQU8sRUFBRSxLQUFLO3dCQUNkLE9BQU8sRUFBRSxRQUFRO3dCQUNqQixRQUFRLEVBQUUsT0FBTzt3QkFDakIsUUFBUSxFQUFFLFFBQVE7cUJBQ25CO29CQUNEO3dCQUNFLE9BQU8sRUFBRSxLQUFLO3dCQUNkLE9BQU8sRUFBRSxLQUFLO3dCQUNkLFFBQVEsRUFBRSxRQUFRO3dCQUNsQixRQUFRLEVBQUUsS0FBSztxQkFDaEI7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLFFBQVE7d0JBQ2pCLE9BQU8sRUFBRSxLQUFLO3dCQUNkLFFBQVEsRUFBRSxRQUFRO3dCQUNsQixRQUFRLEVBQUUsS0FBSztxQkFDaEI7aUJBQ0YsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLFNBQVMsR0FBRztvQkFDVjt3QkFDRSxPQUFPLEVBQUUsT0FBTzt3QkFDaEIsT0FBTyxFQUFFLFFBQVE7d0JBQ2pCLFFBQVEsRUFBRSxPQUFPO3dCQUNqQixRQUFRLEVBQUUsS0FBSztxQkFDaEI7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLEtBQUs7d0JBQ2QsT0FBTyxFQUFFLFFBQVE7d0JBQ2pCLFFBQVEsRUFBRSxPQUFPO3dCQUNqQixRQUFRLEVBQUUsUUFBUTtxQkFDbkI7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLEtBQUs7d0JBQ2QsT0FBTyxFQUFFLEtBQUs7d0JBQ2QsUUFBUSxFQUFFLFFBQVE7d0JBQ2xCLFFBQVEsRUFBRSxLQUFLO3FCQUNoQjtvQkFDRDt3QkFDRSxPQUFPLEVBQUUsUUFBUTt3QkFDakIsT0FBTyxFQUFFLEtBQUs7d0JBQ2QsUUFBUSxFQUFFLFFBQVE7d0JBQ2xCLFFBQVEsRUFBRSxLQUFLO3FCQUNoQjtpQkFDRixDQUFDO2FBQ0g7U0FDRjtRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDdEMsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1lBQ3RELGdCQUFnQixFQUFFLElBQUksQ0FBQyxRQUFRO2lCQUM1QixRQUFRLEVBQUU7aUJBQ1YsbUJBQW1CLENBQUMsU0FBUyxDQUFDO2lCQUM5QixhQUFhLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDO2lCQUM3QixRQUFRLENBQUMsS0FBSyxDQUFDO2lCQUNmLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUV6QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ2pELG1CQUFtQixFQUFFLElBQUk7WUFDekIsVUFBVSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUM7WUFDekUsU0FBUyxFQUFFLE9BQU87WUFDbEIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsYUFBYSxFQUFFLENBQUMsa0NBQWtDLENBQUM7U0FDcEQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUUxRSxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7UUFFbEMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUU1QyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFFaEMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFFaEQsR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUU5QyxHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRTlDLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFMUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUV4QyxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRXhDLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFOUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakIsR0FBRyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdEQsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFO2dCQUNqRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2QsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQ3JCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ25DLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ2Y7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNwQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDZjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLE1BQU07UUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDcEMsT0FBTyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDdkIsT0FBTyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFUSxTQUFTO1FBQ2hCLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUdTLFFBQVEsQ0FBQyxJQUFTO1FBQzFCLElBQUksT0FBTyxJQUFJLENBQUMsY0FBYyxJQUFJLFVBQVUsRUFBRTtZQUM1QyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbEM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFZSxPQUFPO1FBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs4R0F6V1UsZUFBZTtrR0FBZixlQUFlLDR5QkNqRDVCLGt4RkEwRGM7OzJGRFRELGVBQWU7a0JBMUIzQixTQUFTOytCQUNFLFNBQVMsVUFHWDt3QkFDTixVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLE9BQU87d0JBQ1AsVUFBVTt3QkFDVixXQUFXO3dCQUNYLFNBQVM7d0JBQ1QsUUFBUTt3QkFDUixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixjQUFjO3dCQUNkLFVBQVU7d0JBQ1YsYUFBYTt3QkFDYixXQUFXO3FCQUNaLFdBQ1EsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixDQUFDLG1CQUNoQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJO2dMQUtyQyxjQUFjO3NCQURiLEtBQUs7Z0JBS0UscUJBQXFCO3NCQUQ1QixZQUFZO3VCQUFDLGVBQWU7Z0JBSXJCLG9CQUFvQjtzQkFEM0IsWUFBWTt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheVJlZiwgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgT25Jbml0LFxuICBDb250ZW50Q2hpbGQsXG4gIFRlbXBsYXRlUmVmLFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhCYXNlTWVudU1peGluIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21peGluJztcbmltcG9ydCB7IEFYUGxhdGZvcm0gfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcblxuLyoqXG4gKiBUaGUgQnV0dG9uIGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFtcbiAgICAnZGlzYWJsZWQnLFxuICAgICd0YWJJbmRleCcsXG4gICAgJ3RleHRGaWVsZCcsXG4gICAgJ3ZhbHVlRmllbGQnLFxuICAgICdpdGVtcycsXG4gICAgJ3BhcmVudElkJyxcbiAgICAnaWNvbkZpZWxkJyxcbiAgICAndG9vbHRpcCcsXG4gICAgJ29wZW5lZCcsXG4gICAgJ3Zpc2libGVGaWVsZCcsXG4gICAgJ2Rpc2FibGVGaWVsZCcsXG4gICAgJ2hhc0NoaWxkRmllbGQnLFxuICAgICdkaXZpZGVyRmllbGQnLFxuICAgICdvcGVuTW9kZScsXG4gICAgJ2Rpc3BsYXlNb2RlJyxcbiAgICAnc2hvd01vZGFsJyxcbiAgXSxcbiAgb3V0cHV0czogWydvbkJsdXInLCAnb25Gb2N1cycsICdvbk1lbnVJdGVtQ2xpY2snXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYTWVudUNvbXBvbmVudCBleHRlbmRzIEFYQmFzZU1lbnVNaXhpbiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KClcbiAgYWN0aXZlQ2FsbGJhY2s/OiAoaXRlbTogYW55KSA9PiBib29sZWFuO1xuXG5cbiAgQENvbnRlbnRDaGlsZCgnZW1wdHlUZW1wbGF0ZScpXG4gIHByaXZhdGUgX2NvbnRlbnRFbXB0eVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2l0ZW1UZW1wbGF0ZScpXG4gIHByaXZhdGUgX2NvbnRlbnRJdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHVibGljIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuXG4gIGdldCBlbXB0eVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9jb250ZW50RW1wdHlUZW1wbGF0ZTtcbiAgfVxuXG4gIGdldCBpdGVtVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRJdGVtVGVtcGxhdGU7XG4gIH1cblxuICBpc1J0bDogYm9vbGVhbiA9IG5ldyBBWFBsYXRmb3JtKCkuaXNSdGwoKTtcblxuICBwcml2YXRlIF9sZXZlbENvdW50OiBudW1iZXIgPSAwO1xuXG4gIHByaXZhdGUgX29sZEl0ZW06IGFueTtcblxuICBwcm90ZWN0ZWQgX2xvYWRpbmdPcHRpb25zID0ge1xuICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2xheW91dC5sb2FkaW5nLnRleHQnKSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgX3BsYXRmb3JtOiBBWFBsYXRmb3JtXG4gICkge1xuICAgIHN1cGVyKF9lbGVtZW50UmVmLCBjZHIpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm9uSW5pdCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm9uVmlld0luaXQoKTtcbiAgfVxuXG4gIF9vbk1lbnVNb3VzZUVudGVyKGU6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBlLnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcblxuICAgIGlmICh0aGlzLmlzTG9hZGluZyB8fCB0YXJnZXRFbGVtZW50LnRhZ05hbWUgPT09ICdVTCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcGVuTW9kZSA9PT0gJ2hvdmVyJykge1xuICAgICAgdGhpcy5faGFuZGVsTWVudUxvZ2ljKGUsIGl0ZW0pO1xuICAgIH1cblxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgX29uTWVudUNsaWNrKGU6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBlLnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcblxuICAgIGlmICh0aGlzLmlzTG9hZGluZyB8fCB0YXJnZXRFbGVtZW50LnRhZ05hbWUgPT09ICdVTCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcGVuTW9kZSA9PT0gJ2NsaWNrJykge1xuICAgICAgdGhpcy5faGFuZGVsTWVudUxvZ2ljKGUsIGl0ZW0pO1xuICAgIH1cblxuICAgIHRoaXMub25NZW51SXRlbUNsaWNrLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaXRlbTogaXRlbSxcbiAgICAgIG5hdGl2ZUV2ZW50OiBlLFxuICAgIH0pO1xuXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBfZ2V0RGlyZWN0aW9uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJyAmJiB0aGlzLl9sZXZlbENvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm4gJ2F4LWhvcml6b250YWwnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fbGV2ZWxDb3VudCA+IDApIHtcbiAgICAgIHJldHVybiAnYXgtdmVydGljYWwgYXgtc3VibWVudS11bCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRpc3BsYXlNb2RlID09PSAnc2lkZW1lbnUnKSB7XG4gICAgICByZXR1cm4gJ2F4LXNpZGUtbWVudSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnYXgtdmVydGljYWwnO1xuICAgIH1cbiAgfVxuXG4gIC8vIHByaXZhdGUgX3JlbW92ZUFjdGl2ZShpdGVtczogYW55KTogdm9pZCB7XG4gIC8vICAgaXRlbXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAvLyAgICAgZWxlbWVudC5hY3RpdmUgPSBmYWxzZTtcbiAgLy8gICAgIGlmIChlbGVtZW50Py5jaGlsZHJlbj8ubGVuZ3RoID4gMCkge1xuICAvLyAgICAgICB0aGlzLl9yZW1vdmVBY3RpdmUoZWxlbWVudC5jaGlsZHJlbik7XG4gIC8vICAgICB9XG4gIC8vICAgfSk7XG4gIC8vIH1cblxuICBwcml2YXRlIF9jbG9zZU9wZW5DaGlsZChpdGVtczogYW55KTogdm9pZCB7XG4gICAgaXRlbXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgZWxlbWVudC5vcGVuZWQgPSBmYWxzZTtcbiAgICAgIGlmIChlbGVtZW50Py5jaGlsZHJlbj8ubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLl9jbG9zZU9wZW5DaGlsZChlbGVtZW50LmNoaWxkcmVuKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRQYXJlbnQoaXRlbXM6IGFueSwgcGFyZW50SWQ6IGFueSk6IHZvaWQge1xuICAgIGl0ZW1zLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgIGVsZW1lbnQucGFyZW50SWQgPSBwYXJlbnRJZDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRlbE1lbnVMb2dpYyhlOiBNb3VzZUV2ZW50LCBpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIWl0ZW1bdGhpcy5kaXNhYmxlRmllbGRdIHx8IGl0ZW1bdGhpcy5kaXZpZGVyRmllbGRdID09PSBmYWxzZSkge1xuICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGUudGFyZ2V0IGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgaWYgKFxuICAgICAgICAodGFyZ2V0RWxlbWVudC5jbG9zZXN0KCdsaScpICYmIHRoaXMub3Blbk1vZGUgPT09ICdjbGljaycpIHx8XG4gICAgICAgICh0YXJnZXRFbGVtZW50LmNsb3Nlc3QoJ2xpJykgJiYgdGhpcy5vcGVuTW9kZSA9PT0gJ2hvdmVyJylcbiAgICAgICkge1xuICAgICAgICBpZiAodGhpcy5fb3ZlcmxheVJlZiAmJiB0aGlzLl9vbGRJdGVtICE9PSBpdGVtKSB7XG4gICAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgdGhpcy5kaXNwbGF5SXRlbXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFpdGVtLnBhcmVudElkICYmIGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSAhPT0gZWxlbWVudFt0aGlzLnZhbHVlRmllbGRdKSB7XG4gICAgICAgICAgICAgIGVsZW1lbnQub3BlbmVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGl0ZW0/LmNoaWxkcmVuPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgICAgdGhpcy5faW5pdFBhcmVudChpdGVtLmNoaWxkcmVuLCBpdGVtW3RoaXMudmFsdWVGaWVsZF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ2hvcml6b250YWwnIHx8IHRoaXMuZGlzcGxheU1vZGUgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9vbGRJdGVtICE9PSBpdGVtKSB7XG4gICAgICAgICAgICAgIHRoaXMuX29wZW5Bc092ZXJsYXkodGFyZ2V0RWxlbWVudC5jbG9zZXN0KCdsaScpLCBpdGVtLmNoaWxkcmVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fY2xvc2VPcGVuQ2hpbGQoaXRlbS5jaGlsZHJlbik7XG5cbiAgICAgICAgICBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ2hvcml6b250YWwnIHx8IHRoaXMuZGlzcGxheU1vZGUgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgIGl0ZW0ub3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXRlbS5vcGVuZWQgPSAhaXRlbS5vcGVuZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJyB8fCB0aGlzLmRpc3BsYXlNb2RlID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5fb2xkSXRlbSAmJlxuICAgICAgICAgICAgdGhpcy5fb2xkSXRlbT8ub3BlbmVkICYmXG4gICAgICAgICAgICBpdGVtW3RoaXMudmFsdWVGaWVsZF0gIT09IHRoaXMuX29sZEl0ZW1bdGhpcy52YWx1ZUZpZWxkXVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fb2xkSXRlbS5vcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fb2xkSXRlbSA9IGl0ZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vcGVuQXNPdmVybGF5KHRhcmdldFJlZiwgb3ZlcmxheUl0ZW1zOiBhbnlbXSk6IHZvaWQge1xuICAgIGxldCBwb3NpdGlvbnMgPSBbXTtcbiAgICBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgaWYgKHRoaXMuX2xldmVsQ291bnQgPj0gMSkge1xuICAgICAgICBwb3NpdGlvbnMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnY2VudGVyJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9zaXRpb25zID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ2NlbnRlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuX2xldmVsQ291bnQgPj0gMSkge1xuICAgICAgICBwb3NpdGlvbnMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvc2l0aW9ucyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuY2xvc2UoKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXlcbiAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGFyZ2V0UmVmKVxuICAgICAgICAud2l0aFBvc2l0aW9ucyhbLi4ucG9zaXRpb25zXSlcbiAgICAgICAgLndpdGhQdXNoKGZhbHNlKVxuICAgICAgICAud2l0aERlZmF1bHRPZmZzZXRYKDEyKSxcblxuICAgICAgZGlyZWN0aW9uOiB0aGlzLl9wbGF0Zm9ybS5pc1J0bCgpID8gJ3J0bCcgOiAnbHRyJyxcbiAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICBwYW5lbENsYXNzOiBbJ2F4LWFuaW1hdGUtZmFkZUluJywgJ2F4LWFuaW1hdGUtZmFzdGVyJywgJ2F4LW92ZXJsYXktbWVudSddLFxuICAgICAgbWF4SGVpZ2h0OiAndW5zZXQnLFxuICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgYmFja2Ryb3BDbGFzczogWydjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCddLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVmID0gdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2gobmV3IENvbXBvbmVudFBvcnRhbChBWE1lbnVDb21wb25lbnQpKTtcblxuICAgIHJlZi5pbnN0YW5jZS5pdGVtcyA9IG92ZXJsYXlJdGVtcztcblxuICAgIHJlZi5pbnN0YW5jZS5kaXNwbGF5TW9kZSA9IHRoaXMuZGlzcGxheU1vZGU7XG5cbiAgICByZWYuaW5zdGFuY2Uub3Blbk1vZGUgPSAnaG92ZXInO1xuXG4gICAgcmVmLmluc3RhbmNlLl9sZXZlbENvdW50ID0gdGhpcy5fbGV2ZWxDb3VudCArIDE7XG5cbiAgICByZWYuaW5zdGFuY2UuZGlzYWJsZUZpZWxkID0gdGhpcy5kaXNhYmxlRmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UudmlzaWJsZUZpZWxkID0gdGhpcy52aXNpYmxlRmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UudmFsdWVGaWVsZCA9IHRoaXMudmFsdWVGaWVsZDtcblxuICAgIHJlZi5pbnN0YW5jZS50ZXh0RmllbGQgPSB0aGlzLnRleHRGaWVsZDtcblxuICAgIHJlZi5pbnN0YW5jZS5pY29uRmllbGQgPSB0aGlzLmljb25GaWVsZDtcblxuICAgIHJlZi5pbnN0YW5jZS5kaXZpZGVyRmllbGQgPSB0aGlzLmRpdmlkZXJGaWVsZDtcblxuICAgIHJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgcmVmLmluc3RhbmNlPy5fb3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fb3ZlcmxheVJlZi5vdXRzaWRlUG9pbnRlckV2ZW50cygpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYgJiYgdGhpcy5vcGVuTW9kZSA9PT0gJ2NsaWNrJykge1xuICAgICAgICB0aGlzLl9jbG9zZSgpO1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fcGxhdGZvcm0uc2Nyb2xsLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xuICAgICAgICB0aGlzLl9jbG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fcGxhdGZvcm0ucmVzaXplLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xuICAgICAgICB0aGlzLl9jbG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2UoKSB7XG4gICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICB0aGlzLl9vbGRJdGVtID0gbnVsbDtcbiAgICB0aGlzLmRpc3BsYXlJdGVtcy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICBlbGVtZW50Lm9wZW5lZCA9IGZhbHNlO1xuICAgICAgZWxlbWVudC5hY3RpdmUgPSBmYWxzZTtcbiAgICB9KTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvdmVycmlkZSBvbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBpc0FjdGl2ZShpdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuYWN0aXZlQ2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlQ2FsbGJhY2soaXRlbSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5SXRlbXMubGVuZ3RoOyBlbHNlIHRtcEVtcHR5XCI+XG4gIDx1bCBbbmdDbGFzc109XCJfZ2V0RGlyZWN0aW9uKClcIiBbY2xhc3MuYXgtcnRsXT1cInJ0bFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWN1cnNpdmVMaXN0VG1wbDsgY29udGV4dDogeyBsaXN0OiBkaXNwbGF5SXRlbXMsIGlzUm9vdDogdHJ1ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvdWw+XG4gIDxuZy10ZW1wbGF0ZSAjcmVjdXJzaXZlTGlzdFRtcGwgbGV0LWxpc3Q9XCJsaXN0XCIgbGV0LWlzUm9vdD1cImlzUm9vdFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGlzdFwiPlxuICAgICAgPGxpICpuZ0lmPVwiaXRlbVt2aXNpYmxlRmllbGRdICE9IGZhbHNlXCIgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cIml0ZW1bZGlzYWJsZUZpZWxkXVwiXG4gICAgICAgIChjbGljayk9XCJfb25NZW51Q2xpY2soJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbWVudS1pdGVtXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2F4LWlzLXBhcmVudCc6IGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCxcbiAgICAgICAgICAgICdheC1pcy1jaGlsZCc6ICFpc1Jvb3QsXG4gICAgICAgICAgICAnYXgtc3RhdGUtYWN0aXZlICc6IGl0ZW0uaXNBY3RpdmVcbiAgICAgICAgICB9XCIgKm5nSWY9XCJpdGVtVGVtcGxhdGUgPT0gbnVsbDsgZWxzZSB0bXBJdGVtXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW1lbnUtaXRlbS1wcmVmaXhcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtbWVudS1pdGVtLWljb25cIiAqbmdJZj1cIml0ZW1baWNvbkZpZWxkXVwiIFtjbGFzc109XCJpdGVtW2ljb25GaWVsZF1cIj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyBfZ2V0SXRlbURpc3BsYXlUZXh0VGVtcGx0ZShpdGVtKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbWVudS1pdGVtLXN1ZmZpeFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1tZW51LWl0ZW0taWNvbiBheC1pY29uIGF4LW1lbnUtaXRlbS1pY29uLWNoZXZyb25cIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1kb3duJzogaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCA+IDAsXG4gICAgICAgICAgICAgICAgJ2F4LW1lbnUtYWN0aXZlLWljb24nOiBpdGVtLm9wZW5lZFxuICAgICAgICAgICAgICB9XCIgKm5nSWY9XCIhaXRlbS5pc0xvYWRpbmdcIj48L3NwYW4+XG4gICAgICAgICAgICA8YXgtbG9hZGluZyAqbmdJZj1cIml0ZW0uaXNMb2FkaW5nXCI+IDwvYXgtbG9hZGluZz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tIGNoZWNrIGZvciBjdXN0b20gIGl0ZW0gdGVtcGxhdGUgIC0tLS0tLS0tLS0tLS0tLT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0bXBJdGVtPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8dWwgKm5nSWY9XCJpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCAmJiBpdGVtLm9wZW5lZCAmJiAhX292ZXJsYXlSZWZcIlxuICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpdGVtW2Rpc2FibGVGaWVsZF1cIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlTGlzdFRtcGw7IGNvbnRleHQ6IHsgbGlzdDogaXRlbS5jaGlsZHJlbiB9XCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cImF4LW1lbnUtaXRlbS1kaXZpZGVyXCIgKm5nSWY9XCJpdGVtW3RoaXMuZGl2aWRlckZpZWxkXVwiPjwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgPG5nLXRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1wLTRcIj5cbiAgICAgIDxheC1sb2FkaW5nIFtjb250ZXh0XT1cIl9sb2FkaW5nT3B0aW9uc1wiPjwvYXgtbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3RtcEVtcHR5PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxuICAgIDwhLS0tLS0tLS0tLS0tLS0tIGNoZWNrIGZvciBjdXN0b20gdGVtcGxhdGUgIC0tLS0tLS0tLS0tLS0tLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW1wdHlUZW1wbGF0ZTsgZWxzZSBlbHNlRW1wdHlUZW1wbGF0ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5VGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNlbHNlRW1wdHlUZW1wbGF0ZT5cbiAgICAgIHt7ICdjb21tb24ubm8tcmVzdWx0LWZvdW5kJyB8IHRyYW5zIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPiJdfQ==
|
353
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLFdBQVcsRUFDWCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFFdkI7Ozs7R0FJRztBQTJCSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxlQUFlO0lBWWxELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBWUQsWUFDVSxXQUF1QixFQUN2QixHQUFzQixFQUN0QixRQUFpQixFQUNqQixTQUFxQjtRQUU3QixLQUFLLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBTGhCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENB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bmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5pbXBvcnQgeyBBWEJhc2VNZW51TWl4aW4gfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbWl4aW4nO1xuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBUaGUgQnV0dG9uIGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFtcbiAgICAnZGlzYWJsZWQnLFxuICAgICd0YWJJbmRleCcsXG4gICAgJ3RleHRGaWVsZCcsXG4gICAgJ3ZhbHVlRmllbGQnLFxuICAgICdpdGVtcycsXG4gICAgJ3BhcmVudElkJyxcbiAgICAnaWNvbkZpZWxkJyxcbiAgICAndG9vbHRpcCcsXG4gICAgJ29wZW5lZCcsXG4gICAgJ3Zpc2libGVGaWVsZCcsXG4gICAgJ2Rpc2FibGVGaWVsZCcsXG4gICAgJ2hhc0NoaWxkRmllbGQnLFxuICAgICdkaXZpZGVyRmllbGQnLFxuICAgICdvcGVuTW9kZScsXG4gICAgJ2Rpc3BsYXlNb2RlJyxcbiAgICAnc2hvd01vZGFsJyxcbiAgXSxcbiAgb3V0cHV0czogWydvbkJsdXInLCAnb25Gb2N1cycsICdvbk1lbnVJdGVtQ2xpY2snXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYTWVudUNvbXBvbmVudCBleHRlbmRzIEFYQmFzZU1lbnVNaXhpbiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpXG4gIGFjdGl2ZUNhbGxiYWNrPzogKGl0ZW06IGFueSkgPT4gYm9vbGVhbjtcblxuICBAQ29udGVudENoaWxkKCdlbXB0eVRlbXBsYXRlJylcbiAgcHJpdmF0ZSBfY29udGVudEVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZCgnaXRlbVRlbXBsYXRlJylcbiAgcHJpdmF0ZSBfY29udGVudEl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwdWJsaWMgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG5cbiAgZ2V0IGVtcHR5VGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRFbXB0eVRlbXBsYXRlO1xuICB9XG5cbiAgZ2V0IGl0ZW1UZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudEl0ZW1UZW1wbGF0ZTtcbiAgfVxuXG4gIGlzUnRsOiBib29sZWFuID0gbmV3IEFYUGxhdGZvcm0oKS5pc1J0bCgpO1xuXG4gIHByaXZhdGUgX2xldmVsQ291bnQgPSAwO1xuXG4gIHByaXZhdGUgX29sZEl0ZW06IGFueTtcblxuICBwcm90ZWN0ZWQgX2xvYWRpbmdPcHRpb25zID0ge1xuICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2xheW91dC5sb2FkaW5nLnRleHQnKSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgX3BsYXRmb3JtOiBBWFBsYXRmb3JtLFxuICApIHtcbiAgICBzdXBlcihfZWxlbWVudFJlZiwgY2RyKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5vbkluaXQoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5vblZpZXdJbml0KCk7XG4gIH1cblxuICBfb25NZW51TW91c2VFbnRlcihlOiBNb3VzZUV2ZW50LCBpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZS50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgICBpZiAodGhpcy5pc0xvYWRpbmcgfHwgdGFyZ2V0RWxlbWVudC50YWdOYW1lID09PSAnVUwnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3Blbk1vZGUgPT09ICdob3ZlcicpIHtcbiAgICAgIHRoaXMuX2hhbmRlbE1lbnVMb2dpYyhlLCBpdGVtKTtcbiAgICB9XG5cbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIF9vbk1lbnVDbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZS50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgICBpZiAodGhpcy5pc0xvYWRpbmcgfHwgdGFyZ2V0RWxlbWVudC50YWdOYW1lID09PSAnVUwnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3Blbk1vZGUgPT09ICdjbGljaycpIHtcbiAgICAgIHRoaXMuX2hhbmRlbE1lbnVMb2dpYyhlLCBpdGVtKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uTWVudUl0ZW1DbGljay5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGl0ZW06IGl0ZW0sXG4gICAgICBuYXRpdmVFdmVudDogZSxcbiAgICB9KTtcblxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgX2dldERpcmVjdGlvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRpc3BsYXlNb2RlID09PSAnaG9yaXpvbnRhbCcgJiYgdGhpcy5fbGV2ZWxDb3VudCA9PT0gMCkge1xuICAgICAgcmV0dXJuICdheC1ob3Jpem9udGFsJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2xldmVsQ291bnQgPiAwKSB7XG4gICAgICByZXR1cm4gJ2F4LXZlcnRpY2FsIGF4LXN1Ym1lbnUtdWwnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ3NpZGVtZW51Jykge1xuICAgICAgcmV0dXJuICdheC1zaWRlLW1lbnUnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2F4LXZlcnRpY2FsJztcbiAgICB9XG4gIH1cblxuICAvLyBwcml2YXRlIF9yZW1vdmVBY3RpdmUoaXRlbXM6IGFueSk6IHZvaWQge1xuICAvLyAgIGl0ZW1zLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgLy8gICAgIGVsZW1lbnQuYWN0aXZlID0gZmFsc2U7XG4gIC8vICAgICBpZiAoZWxlbWVudD8uY2hpbGRyZW4/Lmxlbmd0aCA+IDApIHtcbiAgLy8gICAgICAgdGhpcy5fcmVtb3ZlQWN0aXZlKGVsZW1lbnQuY2hpbGRyZW4pO1xuICAvLyAgICAgfVxuICAvLyAgIH0pO1xuICAvLyB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VPcGVuQ2hpbGQoaXRlbXM6IGFueSk6IHZvaWQge1xuICAgIGl0ZW1zLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgIGVsZW1lbnQub3BlbmVkID0gZmFsc2U7XG4gICAgICBpZiAoZWxlbWVudD8uY2hpbGRyZW4/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5fY2xvc2VPcGVuQ2hpbGQoZWxlbWVudC5jaGlsZHJlbik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0UGFyZW50KGl0ZW1zOiBhbnksIHBhcmVudElkOiBhbnkpOiB2b2lkIHtcbiAgICBpdGVtcy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICBlbGVtZW50LnBhcmVudElkID0gcGFyZW50SWQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kZWxNZW51TG9naWMoZTogTW91c2VFdmVudCwgaXRlbTogYW55KTogdm9pZCB7XG4gICAgaWYgKCFpdGVtW3RoaXMuZGlzYWJsZUZpZWxkXSB8fCBpdGVtW3RoaXMuZGl2aWRlckZpZWxkXSA9PT0gZmFsc2UpIHtcbiAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBlLnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGlmIChcbiAgICAgICAgKHRhcmdldEVsZW1lbnQuY2xvc2VzdCgnbGknKSAmJiB0aGlzLm9wZW5Nb2RlID09PSAnY2xpY2snKSB8fFxuICAgICAgICAodGFyZ2V0RWxlbWVudC5jbG9zZXN0KCdsaScpICYmIHRoaXMub3Blbk1vZGUgPT09ICdob3ZlcicpXG4gICAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYgJiYgdGhpcy5fb2xkSXRlbSAhPT0gaXRlbSkge1xuICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgIHRoaXMuZGlzcGxheUl0ZW1zLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGlmICghaXRlbS5wYXJlbnRJZCAmJiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gIT09IGVsZW1lbnRbdGhpcy52YWx1ZUZpZWxkXSkge1xuICAgICAgICAgICAgICBlbGVtZW50Lm9wZW5lZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGlmICh0aGlzLmRpc3BsYXlNb2RlID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRQYXJlbnQoaXRlbS5jaGlsZHJlbiwgaXRlbVt0aGlzLnZhbHVlRmllbGRdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJyB8fCB0aGlzLmRpc3BsYXlNb2RlID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fb2xkSXRlbSAhPT0gaXRlbSkge1xuICAgICAgICAgICAgICB0aGlzLl9vcGVuQXNPdmVybGF5KHRhcmdldEVsZW1lbnQuY2xvc2VzdCgnbGknKSwgaXRlbS5jaGlsZHJlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX2Nsb3NlT3BlbkNoaWxkKGl0ZW0uY2hpbGRyZW4pO1xuXG4gICAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJyB8fCB0aGlzLmRpc3BsYXlNb2RlID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgICBpdGVtLm9wZW5lZCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGl0ZW0ub3BlbmVkID0gIWl0ZW0ub3BlbmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlNb2RlID09PSAnaG9yaXpvbnRhbCcgfHwgdGhpcy5kaXNwbGF5TW9kZSA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuX29sZEl0ZW0gJiZcbiAgICAgICAgICAgIHRoaXMuX29sZEl0ZW0/Lm9wZW5lZCAmJlxuICAgICAgICAgICAgaXRlbVt0aGlzLnZhbHVlRmllbGRdICE9PSB0aGlzLl9vbGRJdGVtW3RoaXMudmFsdWVGaWVsZF1cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuX29sZEl0ZW0ub3BlbmVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX29sZEl0ZW0gPSBpdGVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb3BlbkFzT3ZlcmxheSh0YXJnZXRSZWYsIG92ZXJsYXlJdGVtczogYW55W10pOiB2b2lkIHtcbiAgICBsZXQgcG9zaXRpb25zID0gW107XG4gICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgIGlmICh0aGlzLl9sZXZlbENvdW50ID49IDEpIHtcbiAgICAgICAgcG9zaXRpb25zID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ2NlbnRlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvc2l0aW9ucyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdjZW50ZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLl9sZXZlbENvdW50ID49IDEpIHtcbiAgICAgICAgcG9zaXRpb25zID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwb3NpdGlvbnMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKCksXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5XG4gICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRhcmdldFJlZilcbiAgICAgICAgLndpdGhQb3NpdGlvbnMoWy4uLnBvc2l0aW9uc10pXG4gICAgICAgIC53aXRoUHVzaChmYWxzZSlcbiAgICAgICAgLndpdGhEZWZhdWx0T2Zmc2V0WCgxMiksXG5cbiAgICAgIGRpcmVjdGlvbjogdGhpcy5fcGxhdGZvcm0uaXNSdGwoKSA/ICdydGwnIDogJ2x0cicsXG4gICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgcGFuZWxDbGFzczogWydheC1hbmltYXRlLWZhZGVJbicsICdheC1hbmltYXRlLWZhc3RlcicsICdheC1vdmVybGF5LW1lbnUnXSxcbiAgICAgIG1heEhlaWdodDogJ3Vuc2V0JyxcbiAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6IFsnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlZiA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKG5ldyBDb21wb25lbnRQb3J0YWwoQVhNZW51Q29tcG9uZW50KSk7XG5cbiAgICByZWYuaW5zdGFuY2UuaXRlbXMgPSBvdmVybGF5SXRlbXM7XG5cbiAgICByZWYuaW5zdGFuY2UuZGlzcGxheU1vZGUgPSB0aGlzLmRpc3BsYXlNb2RlO1xuXG4gICAgcmVmLmluc3RhbmNlLm9wZW5Nb2RlID0gJ2hvdmVyJztcblxuICAgIHJlZi5pbnN0YW5jZS5fbGV2ZWxDb3VudCA9IHRoaXMuX2xldmVsQ291bnQgKyAxO1xuXG4gICAgcmVmLmluc3RhbmNlLmRpc2FibGVGaWVsZCA9IHRoaXMuZGlzYWJsZUZpZWxkO1xuXG4gICAgcmVmLmluc3RhbmNlLnZpc2libGVGaWVsZCA9IHRoaXMudmlzaWJsZUZpZWxkO1xuXG4gICAgcmVmLmluc3RhbmNlLnZhbHVlRmllbGQgPSB0aGlzLnZhbHVlRmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UudGV4dEZpZWxkID0gdGhpcy50ZXh0RmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UuaWNvbkZpZWxkID0gdGhpcy5pY29uRmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UuZGl2aWRlckZpZWxkID0gdGhpcy5kaXZpZGVyRmllbGQ7XG5cbiAgICByZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIHJlZi5pbnN0YW5jZT8uX292ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX292ZXJsYXlSZWYub3V0c2lkZVBvaW50ZXJFdmVudHMoKS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgIGlmICh0aGlzLl9vdmVybGF5UmVmICYmIHRoaXMub3Blbk1vZGUgPT09ICdjbGljaycpIHtcbiAgICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX3BsYXRmb3JtLnNjcm9sbC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX3BsYXRmb3JtLnJlc2l6ZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlKCkge1xuICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgdGhpcy5fb2xkSXRlbSA9IG51bGw7XG4gICAgdGhpcy5kaXNwbGF5SXRlbXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgZWxlbWVudC5vcGVuZWQgPSBmYWxzZTtcbiAgICAgIGVsZW1lbnQuYWN0aXZlID0gZmFsc2U7XG4gICAgfSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzQWN0aXZlKGl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgdGhpcy5hY3RpdmVDYWxsYmFjayA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdGhpcy5hY3RpdmVDYWxsYmFjayhpdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5SXRlbXMubGVuZ3RoOyBlbHNlIHRtcEVtcHR5XCI+XG4gIDx1bCBbbmdDbGFzc109XCJfZ2V0RGlyZWN0aW9uKClcIiBbY2xhc3MuYXgtcnRsXT1cInJ0bFwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlTGlzdFRtcGw7IGNvbnRleHQ6IHsgbGlzdDogZGlzcGxheUl0ZW1zLCBpc1Jvb3Q6IHRydWUgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L3VsPlxuICA8bmctdGVtcGxhdGUgI3JlY3Vyc2l2ZUxpc3RUbXBsIGxldC1saXN0PVwibGlzdFwiIGxldC1pc1Jvb3Q9XCJpc1Jvb3RcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxpc3RcIj5cbiAgICAgIDxsaVxuICAgICAgICAqbmdJZj1cIml0ZW1bdmlzaWJsZUZpZWxkXSAhPT0gZmFsc2VcIlxuICAgICAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiaXRlbVtkaXNhYmxlRmllbGRdXCJcbiAgICAgICAgKGNsaWNrKT1cIl9vbk1lbnVDbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYXgtbWVudS1pdGVtXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnYXgtaXMtcGFyZW50JzogaXRlbS5jaGlsZHJlbj8ubGVuZ3RoLFxuICAgICAgICAgICAgJ2F4LWlzLWNoaWxkJzogIWlzUm9vdCxcbiAgICAgICAgICAgICdheC1zdGF0ZS1hY3RpdmUgJzogaXRlbS5pc0FjdGl2ZVxuICAgICAgICAgIH1cIlxuICAgICAgICAgICpuZ0lmPVwiaXRlbVRlbXBsYXRlID09IG51bGw7IGVsc2UgdG1wSXRlbVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbWVudS1pdGVtLXByZWZpeFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1tZW51LWl0ZW0taWNvblwiICpuZ0lmPVwiaXRlbVtpY29uRmllbGRdXCIgW2NsYXNzXT1cIml0ZW1baWNvbkZpZWxkXVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IF9nZXRJdGVtRGlzcGxheVRleHRUZW1wbHRlKGl0ZW0pIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1tZW51LWl0ZW0tc3VmZml4XCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImF4LW1lbnUtaXRlbS1pY29uIGF4LWljb24gYXgtbWVudS1pdGVtLWljb24tY2hldnJvblwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnYXgtaWNvbi1jaGV2cm9uLWRvd24nOiBpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCxcbiAgICAgICAgICAgICAgICAnYXgtbWVudS1hY3RpdmUtaWNvbic6IGl0ZW0ub3BlbmVkXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAqbmdJZj1cIiFpdGVtLmlzTG9hZGluZ1wiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgPGF4LWxvYWRpbmcgKm5nSWY9XCJpdGVtLmlzTG9hZGluZ1wiPiA8L2F4LWxvYWRpbmc+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLSBjaGVjayBmb3IgY3VzdG9tICBpdGVtIHRlbXBsYXRlICAtLS0tLS0tLS0tLS0tLS0+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdG1wSXRlbT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPHVsXG4gICAgICAgICAgKm5nSWY9XCJpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCAmJiBpdGVtLm9wZW5lZCAmJiAhX292ZXJsYXlSZWZcIlxuICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpdGVtW2Rpc2FibGVGaWVsZF1cIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlY3Vyc2l2ZUxpc3RUbXBsOyBjb250ZXh0OiB7IGxpc3Q6IGl0ZW0uY2hpbGRyZW4gfVwiPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cImF4LW1lbnUtaXRlbS1kaXZpZGVyXCIgKm5nSWY9XCJpdGVtW3RoaXMuZGl2aWRlckZpZWxkXVwiPjwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgPG5nLXRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1wLTRcIj5cbiAgICAgIDxheC1sb2FkaW5nIFtjb250ZXh0XT1cIl9sb2FkaW5nT3B0aW9uc1wiPjwvYXgtbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3RtcEVtcHR5PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxuICAgIDwhLS0tLS0tLS0tLS0tLS0tIGNoZWNrIGZvciBjdXN0b20gdGVtcGxhdGUgIC0tLS0tLS0tLS0tLS0tLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW1wdHlUZW1wbGF0ZTsgZWxzZSBlbHNlRW1wdHlUZW1wbGF0ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5VGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNlbHNlRW1wdHlUZW1wbGF0ZT5cbiAgICAgIHt7ICdjb21tb24ubm8tcmVzdWx0LWZvdW5kJyB8IHRyYW5zIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|