ngx-histaff-alpha 2.5.3 → 2.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/app/libraries/core-button-group-vns/core-button-group-vns/core-button-group-vns.component.mjs +38 -54
- package/esm2022/lib/app/libraries/core-form/core-form/core-form.component.mjs +1 -1
- package/esm2022/lib/app/libraries/core-form-lite/core-form-lite.component.mjs +1 -1
- package/esm2022/lib/app/libraries/core-page-header/core-page-header/core-page-header.component.mjs +1 -1
- package/esm2022/lib/app/libraries/core-tree-grid/core-tree-grid/core-tree-grid.component.mjs +2 -2
- package/esm2022/lib/app/libraries/evaluate-dialog/evaluate-dialog.component.mjs +2 -2
- package/esm2022/lib/app/root/sys-function-action-mapper/sys-function-action-mapper.component.mjs +2 -2
- package/fesm2022/ngx-histaff-alpha.mjs +43 -59
- package/fesm2022/ngx-histaff-alpha.mjs.map +1 -1
- package/lib/app/libraries/core-button-group-vns/core-button-group-vns/core-button-group-vns.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -52,67 +52,49 @@ export class CoreButtonGroupVnsComponent extends BaseComponent {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
ngAfterViewInit() {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
this.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if (!!this.
|
|
61
|
-
this.
|
|
62
|
-
|
|
63
|
-
|
|
55
|
+
if (!this.fixedShow) {
|
|
56
|
+
setTimeout(() => {
|
|
57
|
+
this.subscriptions.push(this.routingService.currentFunction$.subscribe(x => {
|
|
58
|
+
this.function = x;
|
|
59
|
+
this.currentFunctionAssigmentDone = true;
|
|
60
|
+
if (!!this.forHeader) {
|
|
61
|
+
if (!!this.isRootUser || !!this.isAdminUser) {
|
|
62
|
+
this.buttons = CORE_VNS_BUTTONS.filter(x => !x.hidden).filter(button => {
|
|
63
|
+
if (!!this.function) {
|
|
64
|
+
return this.function.actionCodes.indexOf(button.code) >= 0 && button.isHeader;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
const functionFilter = this.authService.data$.value.permissionActions.filter(pa => {
|
|
73
|
+
return pa.functionId === this.function?.id;
|
|
74
|
+
});
|
|
75
|
+
if (functionFilter.length) {
|
|
76
|
+
const { allowedActionCodes } = functionFilter[0];
|
|
77
|
+
this.buttons = CORE_VNS_BUTTONS.filter(x => !!!x.hidden).filter(button => {
|
|
78
|
+
return allowedActionCodes.indexOf(button.code) >= 0 && button.isHeader;
|
|
79
|
+
});
|
|
64
80
|
}
|
|
65
81
|
else {
|
|
66
|
-
|
|
82
|
+
this.buttons = [];
|
|
67
83
|
}
|
|
68
|
-
}
|
|
84
|
+
}
|
|
69
85
|
}
|
|
70
86
|
else {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
if (functionFilter.length) {
|
|
75
|
-
const { allowedActionCodes } = functionFilter[0];
|
|
76
|
-
this.buttons = CORE_VNS_BUTTONS.filter(x => !!!x.hidden).filter(button => {
|
|
77
|
-
return allowedActionCodes.indexOf(button.code) >= 0 && button.isHeader;
|
|
78
|
-
});
|
|
87
|
+
// To be improved
|
|
88
|
+
if (!!!this.shownItems) {
|
|
89
|
+
this.buttons = CORE_VNS_BUTTONS.filter(x => !!!x.isHeader);
|
|
79
90
|
}
|
|
80
91
|
else {
|
|
81
|
-
this.buttons =
|
|
92
|
+
this.buttons = CORE_VNS_BUTTONS.filter(x => this.shownItems.includes(x.code));
|
|
82
93
|
}
|
|
83
94
|
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
if (!!!this.shownItems) {
|
|
88
|
-
this.buttons = CORE_VNS_BUTTONS.filter(x => !!!x.isHeader);
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
this.buttons = CORE_VNS_BUTTONS.filter(x => this.shownItems.includes(x.code));
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}));
|
|
95
|
-
/*
|
|
96
|
-
const filter = this.coreButtonGroupService.instances.filter(x => x.instanceNumber === this.instanceNumber);
|
|
97
|
-
if (!!filter.length) {
|
|
98
|
-
this.subscriptions.push(
|
|
99
|
-
filter[0].mustBeHidden$.subscribe(mbh => {
|
|
100
|
-
this.buttons.map(b => {
|
|
101
|
-
if (mbh.includes(b.code)) {
|
|
102
|
-
b.hidden = true;
|
|
103
|
-
} else {
|
|
104
|
-
b.hidden = false;
|
|
105
|
-
}
|
|
106
|
-
})
|
|
107
|
-
})
|
|
108
|
-
)
|
|
109
|
-
} else {
|
|
110
|
-
if (isDevMode()) {
|
|
111
|
-
this.alertService.warn("Không tìm thấy instance number của nhóm nút", noneAutoClosedAlertOptions);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
*/
|
|
115
|
-
});
|
|
95
|
+
}));
|
|
96
|
+
});
|
|
97
|
+
}
|
|
116
98
|
}
|
|
117
99
|
swapTrioEditSaveCancel(editActive) {
|
|
118
100
|
this.headerEdit = this.buttons.filter(x => x.code === EnumCoreButtonVNSCode.HEADER_EDIT);
|
|
@@ -150,7 +132,7 @@ export class CoreButtonGroupVnsComponent extends BaseComponent {
|
|
|
150
132
|
this.coreButtonGroupService.instances = newInstances;
|
|
151
133
|
}
|
|
152
134
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreButtonGroupVnsComponent, deps: [{ token: i1.MultiLanguageService }, { token: i2.Router }, { token: i3.AuthService }, { token: i4.RoutingService }, { token: i5.AlertService }, { token: i6.CoreButtonGroupService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
153
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: CoreButtonGroupVnsComponent, isStandalone: true, selector: "core-button-group-vns", inputs: { height: "height", instanceNumber: "instanceNumber", forHeader: "forHeader", shownItems: "shownItems", showCaption: "showCaption" }, outputs: { buttonClick: "buttonClick" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-button-group-vns-container\" [ngStyle]=\"{ height: height + 'px' }\">\r\n <div [ngStyle]=\"{ height: height + 'px' }\" class=\"setting-trigger d-flex d-flex-center\"\r\n *ngIf=\"!!isRootUser && !!forHeader\" (click)=\"onMapperClick()\"\r\n [appTooltip]=\"'UI_BUTTON_GROUP_SETTING_ADD_REMOVE_ACTION_ITEM_FOR_THIS_SCREEN' | translate : lang\"\r\n position=\"left\">\r\n <i class=\"feather-settings\"></i>\r\n </div>\r\n\r\n <div [ngStyle]=\"{ height: height + 'px' }\" class=\"separator\" *ngIf=\"!!isRootUser && !!forHeader\"></div>\r\n\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <ng-container *ngIf=\"!button.hidden\">\r\n <core-button-vns [showCaption]=\"showCaption\" [data]=\"button\" [instanceNumber]=\"instanceNumber\"\r\n (buttonClick)=\"onButtonClick($event)\"></core-button-vns>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <span *ngIf=\"!!isRootUser && !!forHeader && !!!buttons.length\">{{ currentFunctionAssigmentDone ?\r\n ('UI_BUTTON_GROUP_NO_ITEM_AVAILABLE_YET' | translate : lang) : '' }}</span>\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CoreButtonVnsComponent, selector: "core-button-vns", inputs: ["height", "data", "instanceNumber", "disabled", "showCaption"], outputs: ["buttonClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "position"] }] }); }
|
|
135
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: CoreButtonGroupVnsComponent, isStandalone: true, selector: "core-button-group-vns", inputs: { height: "height", instanceNumber: "instanceNumber", forHeader: "forHeader", fixedShow: "fixedShow", shownItems: "shownItems", showCaption: "showCaption" }, outputs: { buttonClick: "buttonClick" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-button-group-vns-container\" [ngStyle]=\"{ height: height + 'px' }\">\r\n <div [ngStyle]=\"{ height: height + 'px' }\" class=\"setting-trigger d-flex d-flex-center\"\r\n *ngIf=\"!!isRootUser && !!forHeader\" (click)=\"onMapperClick()\"\r\n [appTooltip]=\"'UI_BUTTON_GROUP_SETTING_ADD_REMOVE_ACTION_ITEM_FOR_THIS_SCREEN' | translate : lang\"\r\n position=\"left\">\r\n <i class=\"feather-settings\"></i>\r\n </div>\r\n\r\n <div [ngStyle]=\"{ height: height + 'px' }\" class=\"separator\" *ngIf=\"!!isRootUser && !!forHeader\"></div>\r\n\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <ng-container *ngIf=\"!button.hidden\">\r\n <core-button-vns [showCaption]=\"showCaption\" [data]=\"button\" [instanceNumber]=\"instanceNumber\"\r\n (buttonClick)=\"onButtonClick($event)\"></core-button-vns>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <span *ngIf=\"!!isRootUser && !!forHeader && !!!buttons.length\">{{ currentFunctionAssigmentDone ?\r\n ('UI_BUTTON_GROUP_NO_ITEM_AVAILABLE_YET' | translate : lang) : '' }}</span>\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CoreButtonVnsComponent, selector: "core-button-vns", inputs: ["height", "data", "instanceNumber", "disabled", "showCaption"], outputs: ["buttonClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "position"] }] }); }
|
|
154
136
|
}
|
|
155
137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreButtonGroupVnsComponent, decorators: [{
|
|
156
138
|
type: Component,
|
|
@@ -167,6 +149,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
167
149
|
type: Input
|
|
168
150
|
}], forHeader: [{
|
|
169
151
|
type: Input
|
|
152
|
+
}], fixedShow: [{
|
|
153
|
+
type: Input
|
|
170
154
|
}], shownItems: [{
|
|
171
155
|
type: Input
|
|
172
156
|
}], showCaption: [{
|
|
@@ -174,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
174
158
|
}], buttonClick: [{
|
|
175
159
|
type: Output
|
|
176
160
|
}] } });
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1idXR0b24tZ3JvdXAtdm5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUF5QixNQUFNLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBR25JLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUd6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7QUFldkUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGFBQWE7SUFxQjVELE9BQU87SUFFUCxZQUNrQixHQUF5QixFQUNqQyxNQUFjLEVBQ2QsV0FBd0IsRUFDeEIsY0FBOEIsRUFDOUIsWUFBMEIsRUFDMUIsc0JBQThDO1FBRXRELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQVBLLFFBQUcsR0FBSCxHQUFHLENBQXNCO1FBQ2pDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQXRCOUMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUUzRCxZQUFPLEdBQXFCLEVBQUUsQ0FBQztJQXVCL0IsQ0FBQztJQUVRLFFBQVE7UUFFZixJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztZQUN6QyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsYUFBYSxFQUFFLElBQUksZUFBZSxDQUEwQixFQUFFLENBQUM7U0FDaEUsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUNILENBQUE7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FDN0MsQ0FBQTtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBZ0I7UUFFMUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxZQUFZLEVBQUU7WUFDOUIsV0FBVztZQUNYLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLFlBQVksRUFBRTtZQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1NBQzlFO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNqRCxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQztnQkFFekMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTt3QkFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7NEJBQ3JFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0NBQ25CLE9BQU8sSUFBSSxDQUFDLFFBQVMsQ0FBQyxXQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQTs2QkFDaEY7aUNBQU07Z0NBQ0wsT0FBTyxLQUFLLENBQUM7NkJBQ2Q7d0JBQ0gsQ0FBQyxDQUFDLENBQUE7cUJBQ0g7eUJBQU07d0JBQ0wsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBTSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRTs0QkFDakYsT0FBTyxFQUFFLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFBO3dCQUM1QyxDQUFDLENBQUMsQ0FBQzt3QkFDSCxJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUU7NEJBQ3pCLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDakQsSUFBSSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dDQUN2RSxPQUFPLGtCQUFtQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUE7NEJBQ3pFLENBQUMsQ0FBQyxDQUFBO3lCQUNIOzZCQUFNOzRCQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO3lCQUNuQjtxQkFDRjtpQkFDRjtxQkFBTTtvQkFDTCxpQkFBaUI7b0JBQ2pCLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTt3QkFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUE7cUJBQzNEO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7cUJBQzlFO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtZQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O2NBbUJFO1FBRUosQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsc0JBQXNCLENBQUMsVUFBbUI7UUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUsscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUsscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUsscUJBQXFCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0YsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUNyQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLENBQWlCO1FBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUNsQjtnQkFDRSxPQUFPO2dCQUNQLGVBQWU7YUFDaEIsQ0FDRixDQUFDO1NBQ0g7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGdEQUFnRCxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUE7U0FDeEg7SUFDSCxDQUFDO0lBRVEsV0FBVztRQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakgsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7SUFDdkQsQ0FBQzs4R0F0S1UsMkJBQTJCO2tHQUEzQiwyQkFBMkIsb1RDakN4Qyw2bkNBbUJNLHlEREtGLFlBQVkscVZBQ1osc0JBQXNCLDBKQUV0QixhQUFhLGtEQUNiLGdCQUFnQjs7MkZBS1AsMkJBQTJCO2tCQWJ2QyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIsYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCO3FPQU1RLE1BQU07c0JBQWQsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBJQ29yZUJ1dHRvblZOUyB9IGZyb20gJy4vSUNvcmVCdXR0b25WTlMnO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUJ1dHRvblZOU0NvZGUgfSBmcm9tICcuL0VudW1Db3JlQnV0dG9uVk5TQ29kZSc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlLWNvbXBvbmVudC9iYXNlL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IENvcmVCdXR0b25Hcm91cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlLWJ1dHRvbi1ncm91cC1zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEVudW1UcmFuc2xhdGVLZXkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBJRnVuY3Rpb25XaXRoRnVsbEFjdGlvbnMsIFJvdXRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcm91dGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBhbGVydE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYWxlcnRPcHRpb25zJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWFwQXZhdGFyVG9TZXJ2ZXJQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL21hcC1hdmF0YXItdG8tc2VydmVyLnBpcGUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgQ29yZUJ1dHRvblZuc0NvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUtYnV0dG9uLXZucy9jb3JlLWJ1dHRvbi12bnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDT1JFX1ZOU19CVVRUT05TIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL0NPUkVfVk5TX0JVVFRPTlMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLWJ1dHRvbi1ncm91cC12bnMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQ29yZUJ1dHRvblZuc0NvbXBvbmVudCxcclxuICAgIE1hcEF2YXRhclRvU2VydmVyUGlwZSxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1idXR0b24tZ3JvdXAtdm5zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWJ1dHRvbi1ncm91cC12bnMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUJ1dHRvbkdyb3VwVm5zQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKSBoZWlnaHQhOiBudW1iZXI7XHJcbiAgQElucHV0KCkgaW5zdGFuY2VOdW1iZXIhOiBudW1iZXI7XHJcbiAgQElucHV0KCkgZm9ySGVhZGVyITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzaG93bkl0ZW1zITogRW51bUNvcmVCdXR0b25WTlNDb2RlW107XHJcbiAgQElucHV0KCkgc2hvd0NhcHRpb24hOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSBidXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8SUNvcmVCdXR0b25WTlM+KCk7XHJcbiAgXHJcbiAgYnV0dG9uczogSUNvcmVCdXR0b25WTlNbXSA9IFtdO1xyXG5cclxuICBpc1Jvb3RVc2VyITogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBpc0FkbWluVXNlciE6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgZnVuY3Rpb24hOiBJRnVuY3Rpb25XaXRoRnVsbEFjdGlvbnMgfCB1bmRlZmluZWQ7XHJcbiAgY3VycmVudEZ1bmN0aW9uQXNzaWdtZW50RG9uZSE6IGJvb2xlYW47XHJcblxyXG5cclxuICAvKiBC4buZIGJhIGPDoWMgbsO6dCBkxrDhu5tpIMSRw6J5IGPhuqduIOG6qW4vaGnhu4duIHRoZW8gdMOsbmggaHXhu5FuZyAqL1xyXG4gIGhlYWRlckVkaXQhOiBJQ29yZUJ1dHRvblZOU1tdO1xyXG4gIGhlYWRlclNhdmUhOiBJQ29yZUJ1dHRvblZOU1tdO1xyXG4gIGhlYWRlckNhbmNlbCE6IElDb3JlQnV0dG9uVk5TW107XHJcbiAgLyoqKiAqL1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvdmVycmlkZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0aW5nU2VydmljZTogUm91dGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb3JlQnV0dG9uR3JvdXBTZXJ2aWNlOiBDb3JlQnV0dG9uR3JvdXBTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtbHMpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5jb3JlQnV0dG9uR3JvdXBTZXJ2aWNlLmluc3RhbmNlcy5wdXNoKHtcclxuICAgICAgaW5zdGFuY2VOdW1iZXI6IHRoaXMuaW5zdGFuY2VOdW1iZXIsXHJcbiAgICAgIG11c3RCZUhpZGRlbiQ6IG5ldyBCZWhhdmlvclN1YmplY3Q8RW51bUNvcmVCdXR0b25WTlNDb2RlW10+KFtdKVxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5kYXRhJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Jvb3RVc2VyID0geD8uaXNSb290O1xyXG4gICAgICAgIHRoaXMuaXNBZG1pblVzZXIgPSB4Py5pc0FkbWluO1xyXG4gICAgICB9KVxyXG4gICAgKVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmxhbmcgPSB4KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoZTogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cclxuICAgIGlmICghZVsnaGVpZ2h0J10/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAvLyBmYWxsYmFja1xyXG4gICAgICB0aGlzLmhlaWdodCA9IDMwO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZiAoISFlWydzaG93bkl0ZW1zJ10/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICB0aGlzLmJ1dHRvbnMgPSBDT1JFX1ZOU19CVVRUT05TLmZpbHRlcih4ID0+IHRoaXMuc2hvd25JdGVtcy5pbmNsdWRlcyh4LmNvZGUpKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuY3VycmVudEZ1bmN0aW9uJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZ1bmN0aW9uID0geDtcclxuICAgICAgICAgIHRoaXMuY3VycmVudEZ1bmN0aW9uQXNzaWdtZW50RG9uZSA9IHRydWU7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGlmICghIXRoaXMuZm9ySGVhZGVyKSB7XHJcbiAgICAgICAgICAgIGlmICghIXRoaXMuaXNSb290VXNlciB8fCAhIXRoaXMuaXNBZG1pblVzZXIpIHtcclxuICAgICAgICAgICAgICB0aGlzLmJ1dHRvbnMgPSBDT1JFX1ZOU19CVVRUT05TLmZpbHRlcih4ID0+ICF4LmhpZGRlbikuZmlsdGVyKGJ1dHRvbiA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoISF0aGlzLmZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZ1bmN0aW9uIS5hY3Rpb25Db2RlcyEuaW5kZXhPZihidXR0b24uY29kZSkgPj0gMCAmJiBidXR0b24uaXNIZWFkZXJcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uRmlsdGVyID0gdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZSEucGVybWlzc2lvbkFjdGlvbnMuZmlsdGVyKHBhID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBwYS5mdW5jdGlvbklkID09PSB0aGlzLmZ1bmN0aW9uPy5pZFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIGlmIChmdW5jdGlvbkZpbHRlci5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgYWxsb3dlZEFjdGlvbkNvZGVzIH0gPSBmdW5jdGlvbkZpbHRlclswXTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9ucyA9IENPUkVfVk5TX0JVVFRPTlMuZmlsdGVyKHggPT4gISEheC5oaWRkZW4pLmZpbHRlcihidXR0b24gPT4ge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gYWxsb3dlZEFjdGlvbkNvZGVzIS5pbmRleE9mKGJ1dHRvbi5jb2RlKSA+PSAwICYmIGJ1dHRvbi5pc0hlYWRlclxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5idXR0b25zID0gW107XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBUbyBiZSBpbXByb3ZlZFxyXG4gICAgICAgICAgICBpZiAoISEhdGhpcy5zaG93bkl0ZW1zKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5idXR0b25zID0gQ09SRV9WTlNfQlVUVE9OUy5maWx0ZXIoeCA9PiAhISF4LmlzSGVhZGVyKVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuYnV0dG9ucyA9IENPUkVfVk5TX0JVVFRPTlMuZmlsdGVyKHggPT4gdGhpcy5zaG93bkl0ZW1zLmluY2x1ZGVzKHguY29kZSkpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcblxyXG4gICAgICAvKlxyXG4gICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmNvcmVCdXR0b25Hcm91cFNlcnZpY2UuaW5zdGFuY2VzLmZpbHRlcih4ID0+IHguaW5zdGFuY2VOdW1iZXIgPT09IHRoaXMuaW5zdGFuY2VOdW1iZXIpO1xyXG4gICAgICBpZiAoISFmaWx0ZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICBmaWx0ZXJbMF0ubXVzdEJlSGlkZGVuJC5zdWJzY3JpYmUobWJoID0+IHtcclxuICAgICAgICAgICAgdGhpcy5idXR0b25zLm1hcChiID0+IHtcclxuICAgICAgICAgICAgICBpZiAobWJoLmluY2x1ZGVzKGIuY29kZSkpIHtcclxuICAgICAgICAgICAgICAgIGIuaGlkZGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgYi5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLndhcm4oXCJLaMO0bmcgdMOsbSB0aOG6pXkgaW5zdGFuY2UgbnVtYmVyIGPhu6dhIG5ow7NtIG7DunRcIiwgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAqL1xyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzd2FwVHJpb0VkaXRTYXZlQ2FuY2VsKGVkaXRBY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaGVhZGVyRWRpdCA9IHRoaXMuYnV0dG9ucy5maWx0ZXIoeCA9PiB4LmNvZGUgPT09IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfRURJVCk7XHJcbiAgICB0aGlzLmhlYWRlclNhdmUgPSB0aGlzLmJ1dHRvbnMuZmlsdGVyKHggPT4geC5jb2RlID09PSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1NBVkUpO1xyXG4gICAgdGhpcy5oZWFkZXJDYW5jZWwgPSB0aGlzLmJ1dHRvbnMuZmlsdGVyKHggPT4geC5jb2RlID09PSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0NBTkNFTCk7XHJcbiAgICBpZiAoZWRpdEFjdGl2ZSkge1xyXG4gICAgICB0aGlzLmhlYWRlckVkaXRbMF0uaGlkZGVuID0gdHJ1ZTtcclxuICAgICAgdGhpcy5oZWFkZXJTYXZlWzBdLmhpZGRlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmhlYWRlckNhbmNlbFswXS5oaWRkZW4gPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaGVhZGVyRWRpdFswXS5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgdGhpcy5oZWFkZXJTYXZlWzBdLmhpZGRlbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuaGVhZGVyQ2FuY2VsWzBdLmhpZGRlbiA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkJ1dHRvbkNsaWNrKGU6IElDb3JlQnV0dG9uVk5TKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyhcImJ1dHRvbi1ncm91cCBvbkJ1dHRvbkNsaWNrXCIsIGUpXHJcbiAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBvbk1hcHBlckNsaWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKCEhdGhpcy5mdW5jdGlvbikge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuICAgICAgICBbXHJcbiAgICAgICAgICAnL3Jvb3QnLFxyXG4gICAgICAgICAgJ2FjdGlvbi1tYXBwZXInLFxyXG4gICAgICAgIF1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmluZm8odGhpcy5tbHMudHJhbnMoRW51bVRyYW5zbGF0ZUtleS5ST09UX01BUFBFUl9VUERBVEVfRlVOQ1RJT05fSURfRk9SX1RIRV9NRU5VX0lURU0pLCBhbGVydE9wdGlvbnMpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoeCA9PiB4Py51bnN1YnNjcmliZSgpKTtcclxuICAgIGNvbnN0IG5ld0luc3RhbmNlcyA9IHRoaXMuY29yZUJ1dHRvbkdyb3VwU2VydmljZS5pbnN0YW5jZXMuZmlsdGVyKHggPT4geC5pbnN0YW5jZU51bWJlciAhPT0gdGhpcy5pbnN0YW5jZU51bWJlcik7XHJcbiAgICB0aGlzLmNvcmVCdXR0b25Hcm91cFNlcnZpY2UuaW5zdGFuY2VzID0gbmV3SW5zdGFuY2VzO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvcmUtYnV0dG9uLWdyb3VwLXZucy1jb250YWluZXJcIiBbbmdTdHlsZV09XCJ7IGhlaWdodDogaGVpZ2h0ICsgJ3B4JyB9XCI+XHJcbiAgICA8ZGl2IFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBoZWlnaHQgKyAncHgnIH1cIiBjbGFzcz1cInNldHRpbmctdHJpZ2dlciBkLWZsZXggZC1mbGV4LWNlbnRlclwiXHJcbiAgICAgICAgKm5nSWY9XCIhIWlzUm9vdFVzZXIgJiYgISFmb3JIZWFkZXJcIiAoY2xpY2spPVwib25NYXBwZXJDbGljaygpXCJcclxuICAgICAgICBbYXBwVG9vbHRpcF09XCInVUlfQlVUVE9OX0dST1VQX1NFVFRJTkdfQUREX1JFTU9WRV9BQ1RJT05fSVRFTV9GT1JfVEhJU19TQ1JFRU4nIHwgdHJhbnNsYXRlIDogbGFuZ1wiXHJcbiAgICAgICAgcG9zaXRpb249XCJsZWZ0XCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLXNldHRpbmdzXCI+PC9pPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBbbmdTdHlsZV09XCJ7IGhlaWdodDogaGVpZ2h0ICsgJ3B4JyB9XCIgY2xhc3M9XCJzZXBhcmF0b3JcIiAqbmdJZj1cIiEhaXNSb290VXNlciAmJiAhIWZvckhlYWRlclwiPjwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBidXR0b25zXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFidXR0b24uaGlkZGVuXCI+XHJcbiAgICAgICAgICAgIDxjb3JlLWJ1dHRvbi12bnMgW3Nob3dDYXB0aW9uXT1cInNob3dDYXB0aW9uXCIgW2RhdGFdPVwiYnV0dG9uXCIgW2luc3RhbmNlTnVtYmVyXT1cImluc3RhbmNlTnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIj48L2NvcmUtYnV0dG9uLXZucz5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxzcGFuICpuZ0lmPVwiISFpc1Jvb3RVc2VyICYmICEhZm9ySGVhZGVyICYmICEhIWJ1dHRvbnMubGVuZ3RoXCI+e3sgY3VycmVudEZ1bmN0aW9uQXNzaWdtZW50RG9uZSA/XHJcbiAgICAgICAgKCdVSV9CVVRUT05fR1JPVVBfTk9fSVRFTV9BVkFJTEFCTEVfWUVUJyB8IHRyYW5zbGF0ZSA6IGxhbmcpIDogJycgfX08L3NwYW4+XHJcbjwvZGl2PiJdfQ==
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1idXR0b24tZ3JvdXAtdm5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUF5QixNQUFNLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBR25JLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUd6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxn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Qk0seURES0YsWUFBWSxxVkFDWixzQkFBc0IsMEpBRXRCLGFBQWEsa0RBQ2IsZ0JBQWdCOzsyRkFLUCwyQkFBMkI7a0JBYnZDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLHNCQUFzQjt3QkFDdEIscUJBQXFCO3dCQUNyQixhQUFhO3dCQUNiLGdCQUFnQjtxQkFDakI7cU9BTVEsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgT25EZXN0cm95LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSUNvcmVCdXR0b25WTlMgfSBmcm9tICcuL0lDb3JlQnV0dG9uVk5TJztcclxuaW1wb3J0IHsgRW51bUNvcmVCdXR0b25WTlNDb2RlIH0gZnJvbSAnLi9FbnVtQ29yZUJ1dHRvblZOU0NvZGUnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1jb21wb25lbnQvYmFzZS9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb3JlQnV0dG9uR3JvdXBTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS1idXR0b24tZ3JvdXAtc2VydmljZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgSUZ1bmN0aW9uV2l0aEZ1bGxBY3Rpb25zLCBSb3V0aW5nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JvdXRpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgYWxlcnRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2FsZXJ0T3B0aW9ucyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hcEF2YXRhclRvU2VydmVyUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy9tYXAtYXZhdGFyLXRvLXNlcnZlci5waXBlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcbmltcG9ydCB7IENvcmVCdXR0b25WbnNDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlLWJ1dHRvbi12bnMvY29yZS1idXR0b24tdm5zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ09SRV9WTlNfQlVUVE9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9DT1JFX1ZOU19CVVRUT05TJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1idXR0b24tZ3JvdXAtdm5zJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIENvcmVCdXR0b25WbnNDb21wb25lbnQsXHJcbiAgICBNYXBBdmF0YXJUb1NlcnZlclBpcGUsXHJcbiAgICBUcmFuc2xhdGVQaXBlLFxyXG4gICAgVG9vbHRpcERpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtYnV0dG9uLWdyb3VwLXZucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1idXR0b24tZ3JvdXAtdm5zLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVCdXR0b25Hcm91cFZuc0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQElucHV0KCkgaGVpZ2h0ITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGluc3RhbmNlTnVtYmVyITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGZvckhlYWRlciE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZml4ZWRTaG93ITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzaG93bkl0ZW1zITogRW51bUNvcmVCdXR0b25WTlNDb2RlW107XHJcbiAgQElucHV0KCkgc2hvd0NhcHRpb24hOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSBidXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8SUNvcmVCdXR0b25WTlM+KCk7XHJcblxyXG4gIGJ1dHRvbnM6IElDb3JlQnV0dG9uVk5TW10gPSBbXTtcclxuXHJcbiAgaXNSb290VXNlciE6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgaXNBZG1pblVzZXIhOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIGZ1bmN0aW9uITogSUZ1bmN0aW9uV2l0aEZ1bGxBY3Rpb25zIHwgdW5kZWZpbmVkO1xyXG4gIGN1cnJlbnRGdW5jdGlvbkFzc2lnbWVudERvbmUhOiBib29sZWFuO1xyXG5cclxuXHJcbiAgLyogQuG7mSBiYSBjw6FjIG7DunQgZMaw4bubaSDEkcOieSBj4bqnbiDhuqluL2hp4buHbiB0aGVvIHTDrG5oIGh14buRbmcgKi9cclxuICBoZWFkZXJFZGl0ITogSUNvcmVCdXR0b25WTlNbXTtcclxuICBoZWFkZXJTYXZlITogSUNvcmVCdXR0b25WTlNbXTtcclxuICBoZWFkZXJDYW5jZWwhOiBJQ29yZUJ1dHRvblZOU1tdO1xyXG4gIC8qKiogKi9cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGluZ1NlcnZpY2U6IFJvdXRpbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgY29yZUJ1dHRvbkdyb3VwU2VydmljZTogQ29yZUJ1dHRvbkdyb3VwU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIobWxzKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuY29yZUJ1dHRvbkdyb3VwU2VydmljZS5pbnN0YW5jZXMucHVzaCh7XHJcbiAgICAgIGluc3RhbmNlTnVtYmVyOiB0aGlzLmluc3RhbmNlTnVtYmVyLFxyXG4gICAgICBtdXN0QmVIaWRkZW4kOiBuZXcgQmVoYXZpb3JTdWJqZWN0PEVudW1Db3JlQnV0dG9uVk5TQ29kZVtdPihbXSlcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgIHRoaXMuaXNSb290VXNlciA9IHg/LmlzUm9vdDtcclxuICAgICAgICB0aGlzLmlzQWRtaW5Vc2VyID0geD8uaXNBZG1pbjtcclxuICAgICAgfSlcclxuICAgIClcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5sYW5nID0geClcclxuICAgIClcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGU6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoIWVbJ2hlaWdodCddPy5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgLy8gZmFsbGJhY2tcclxuICAgICAgdGhpcy5oZWlnaHQgPSAzMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoISFlWydzaG93bkl0ZW1zJ10/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICB0aGlzLmJ1dHRvbnMgPSBDT1JFX1ZOU19CVVRUT05TLmZpbHRlcih4ID0+IHRoaXMuc2hvd25JdGVtcy5pbmNsdWRlcyh4LmNvZGUpKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmZpeGVkU2hvdykge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuY3VycmVudEZ1bmN0aW9uJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZnVuY3Rpb24gPSB4O1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRGdW5jdGlvbkFzc2lnbWVudERvbmUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgaWYgKCEhdGhpcy5mb3JIZWFkZXIpIHtcclxuICAgICAgICAgICAgICBpZiAoISF0aGlzLmlzUm9vdFVzZXIgfHwgISF0aGlzLmlzQWRtaW5Vc2VyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJ1dHRvbnMgPSBDT1JFX1ZOU19CVVRUT05TLmZpbHRlcih4ID0+ICF4LmhpZGRlbikuZmlsdGVyKGJ1dHRvbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICghIXRoaXMuZnVuY3Rpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mdW5jdGlvbiEuYWN0aW9uQ29kZXMhLmluZGV4T2YoYnV0dG9uLmNvZGUpID49IDAgJiYgYnV0dG9uLmlzSGVhZGVyXHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmdW5jdGlvbkZpbHRlciA9IHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWUhLnBlcm1pc3Npb25BY3Rpb25zLmZpbHRlcihwYSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBwYS5mdW5jdGlvbklkID09PSB0aGlzLmZ1bmN0aW9uPy5pZFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZnVuY3Rpb25GaWx0ZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHsgYWxsb3dlZEFjdGlvbkNvZGVzIH0gPSBmdW5jdGlvbkZpbHRlclswXTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5idXR0b25zID0gQ09SRV9WTlNfQlVUVE9OUy5maWx0ZXIoeCA9PiAhISF4LmhpZGRlbikuZmlsdGVyKGJ1dHRvbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG93ZWRBY3Rpb25Db2RlcyEuaW5kZXhPZihidXR0b24uY29kZSkgPj0gMCAmJiBidXR0b24uaXNIZWFkZXJcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9ucyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAvLyBUbyBiZSBpbXByb3ZlZFxyXG4gICAgICAgICAgICAgIGlmICghISF0aGlzLnNob3duSXRlbXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9ucyA9IENPUkVfVk5TX0JVVFRPTlMuZmlsdGVyKHggPT4gISEheC5pc0hlYWRlcilcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5idXR0b25zID0gQ09SRV9WTlNfQlVUVE9OUy5maWx0ZXIoeCA9PiB0aGlzLnNob3duSXRlbXMuaW5jbHVkZXMoeC5jb2RlKSlcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3dhcFRyaW9FZGl0U2F2ZUNhbmNlbChlZGl0QWN0aXZlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmhlYWRlckVkaXQgPSB0aGlzLmJ1dHRvbnMuZmlsdGVyKHggPT4geC5jb2RlID09PSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0VESVQpO1xyXG4gICAgdGhpcy5oZWFkZXJTYXZlID0gdGhpcy5idXR0b25zLmZpbHRlcih4ID0+IHguY29kZSA9PT0gRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9TQVZFKTtcclxuICAgIHRoaXMuaGVhZGVyQ2FuY2VsID0gdGhpcy5idXR0b25zLmZpbHRlcih4ID0+IHguY29kZSA9PT0gRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9DQU5DRUwpO1xyXG4gICAgaWYgKGVkaXRBY3RpdmUpIHtcclxuICAgICAgdGhpcy5oZWFkZXJFZGl0WzBdLmhpZGRlbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuaGVhZGVyU2F2ZVswXS5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgdGhpcy5oZWFkZXJDYW5jZWxbMF0uaGlkZGVuID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmhlYWRlckVkaXRbMF0uaGlkZGVuID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaGVhZGVyU2F2ZVswXS5oaWRkZW4gPSB0cnVlO1xyXG4gICAgICB0aGlzLmhlYWRlckNhbmNlbFswXS5oaWRkZW4gPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25CdXR0b25DbGljayhlOiBJQ29yZUJ1dHRvblZOUyk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJidXR0b24tZ3JvdXAgb25CdXR0b25DbGlja1wiLCBlKVxyXG4gICAgdGhpcy5idXR0b25DbGljay5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgb25NYXBwZXJDbGljaygpOiB2b2lkIHtcclxuICAgIGlmICghIXRoaXMuZnVuY3Rpb24pIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoXHJcbiAgICAgICAgW1xyXG4gICAgICAgICAgJy9yb290JyxcclxuICAgICAgICAgICdhY3Rpb24tbWFwcGVyJyxcclxuICAgICAgICBdXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5pbmZvKHRoaXMubWxzLnRyYW5zKEVudW1UcmFuc2xhdGVLZXkuUk9PVF9NQVBQRVJfVVBEQVRFX0ZVTkNUSU9OX0lEX0ZPUl9USEVfTUVOVV9JVEVNKSwgYWxlcnRPcHRpb25zKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMubWFwKHggPT4geD8udW5zdWJzY3JpYmUoKSk7XHJcbiAgICBjb25zdCBuZXdJbnN0YW5jZXMgPSB0aGlzLmNvcmVCdXR0b25Hcm91cFNlcnZpY2UuaW5zdGFuY2VzLmZpbHRlcih4ID0+IHguaW5zdGFuY2VOdW1iZXIgIT09IHRoaXMuaW5zdGFuY2VOdW1iZXIpO1xyXG4gICAgdGhpcy5jb3JlQnV0dG9uR3JvdXBTZXJ2aWNlLmluc3RhbmNlcyA9IG5ld0luc3RhbmNlcztcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb3JlLWJ1dHRvbi1ncm91cC12bnMtY29udGFpbmVyXCIgW25nU3R5bGVdPVwieyBoZWlnaHQ6IGhlaWdodCArICdweCcgfVwiPlxyXG4gICAgPGRpdiBbbmdTdHlsZV09XCJ7IGhlaWdodDogaGVpZ2h0ICsgJ3B4JyB9XCIgY2xhc3M9XCJzZXR0aW5nLXRyaWdnZXIgZC1mbGV4IGQtZmxleC1jZW50ZXJcIlxyXG4gICAgICAgICpuZ0lmPVwiISFpc1Jvb3RVc2VyICYmICEhZm9ySGVhZGVyXCIgKGNsaWNrKT1cIm9uTWFwcGVyQ2xpY2soKVwiXHJcbiAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1VJX0JVVFRPTl9HUk9VUF9TRVRUSU5HX0FERF9SRU1PVkVfQUNUSU9OX0lURU1fRk9SX1RISVNfU0NSRUVOJyB8IHRyYW5zbGF0ZSA6IGxhbmdcIlxyXG4gICAgICAgIHBvc2l0aW9uPVwibGVmdFwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1zZXR0aW5nc1wiPjwvaT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgW25nU3R5bGVdPVwieyBoZWlnaHQ6IGhlaWdodCArICdweCcgfVwiIGNsYXNzPVwic2VwYXJhdG9yXCIgKm5nSWY9XCIhIWlzUm9vdFVzZXIgJiYgISFmb3JIZWFkZXJcIj48L2Rpdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYnV0dG9uc1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYnV0dG9uLmhpZGRlblwiPlxyXG4gICAgICAgICAgICA8Y29yZS1idXR0b24tdm5zIFtzaG93Q2FwdGlvbl09XCJzaG93Q2FwdGlvblwiIFtkYXRhXT1cImJ1dHRvblwiIFtpbnN0YW5jZU51bWJlcl09XCJpbnN0YW5jZU51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25CdXR0b25DbGljaygkZXZlbnQpXCI+PC9jb3JlLWJ1dHRvbi12bnM+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8c3BhbiAqbmdJZj1cIiEhaXNSb290VXNlciAmJiAhIWZvckhlYWRlciAmJiAhISFidXR0b25zLmxlbmd0aFwiPnt7IGN1cnJlbnRGdW5jdGlvbkFzc2lnbWVudERvbmUgP1xyXG4gICAgICAgICgnVUlfQlVUVE9OX0dST1VQX05PX0lURU1fQVZBSUxBQkxFX1lFVCcgfCB0cmFuc2xhdGUgOiBsYW5nKSA6ICcnIH19PC9zcGFuPlxyXG48L2Rpdj4iXX0=
|
|
@@ -206,7 +206,7 @@ export class CoreFormComponent {
|
|
|
206
206
|
this.buttonClick.emit(e);
|
|
207
207
|
}
|
|
208
208
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreFormComponent, deps: [{ token: i1.CoreControlService }, { token: i2.MultiLanguageService }, { token: i3.AlertService }, { token: i4.CoreFormService }, { token: i5.AppConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
209
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: CoreFormComponent, isStandalone: true, selector: "core-form", inputs: { formName: "formName", submitText: "submitText", leftInputSections: "leftInputSections", leftInputSectionsFlexSize: "leftInputSectionsFlexSize", inputSections: "inputSections", mode$: "mode$", bottomTemplateRef: "bottomTemplateRef", customFormButtonItems: "customFormButtonItems", showCaptionButton: "showCaptionButton", disableSaveButton: "disableSaveButton", checkError$: "checkError$" }, outputs: { onFormCreated: "onFormCreated", onFormRefCreated: "onFormRefCreated", onSubmit: "onSubmit", onSave: "onSave", onCancal: "onCancal", buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "formRef", first: true, predicate: ["formRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"core-form-container\" *ngIf=\"!!form\">\r\n\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n\r\n <div class=\"row\">\r\n\r\n <div [class]=\"'col-md-' + (leftInputSectionsFlexSize || 0)\" *ngIf=\"!!leftInputSections\">\r\n\r\n <div *ngFor=\"let section of leftInputSections\" class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n <div class=\"section-header-label\" *ngIf=\"section.caption\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n\r\n <div *ngFor=\"let row of section.rows\" class=\"row mb15\">\r\n <div *ngFor=\"let col of row\" [class]=\"'col-md-' + col.flexSize\"\r\n [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div [class]=\"'col-md-' + (12 - (leftInputSectionsFlexSize || 0))\">\r\n\r\n <div *ngFor=\"let section of sections\" class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n <div class=\"section-header-label\" *ngIf=\"section.caption\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n\r\n <div *ngFor=\"let row of section.rows\" class=\"row mb15\">\r\n <div *ngFor=\"let col of row\" [class]=\"'col-md-' + col.flexSize\"\r\n [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <ng-container *ngIf=\"!!bottomTemplateRef\">\r\n <ng-container *ngTemplateOutlet=\"bottomTemplateRef\"></ng-container>\r\n </ng-container>\r\n\r\n\r\n <div class=\"h10\"></div>\r\n\r\n <div class=\"form-row\">\r\n\r\n <core-button-group-vns [showCaption]=\"showCaptionButton\" [forHeader]=\"false\" (buttonClick)=\"onButtonClick($event)\"\r\n [shownItems]=\"buttonItems\" class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n <div class=\"form-row\" *ngIf=\"isDevMode\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updatePayload()\">Show\r\n values</button>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updateValidorOverview()\">Show\r\n validators</button>\r\n </div>\r\n </form>\r\n\r\n <div *ngIf=\"!!payLoad && isDevMode\" class=\"form-row payload-preview\">\r\n <strong>Current values</strong><br>{{payLoad}}\r\n </div>\r\n <div *ngIf=\"!!validatorOverview && isDevMode\" class=\"form-row payload-preview\">\r\n <strong>Current errors</strong><br>{{validatorOverview}}\r\n </div>\r\n\r\n</div>", styles: [".core-form-container>form .section .section-header-label{display:block;height:34px;line-height:34px;margin-bottom:15px;margin-left:12px}.core-form-container>form .section .section-header-label .section-img-wrapper{position:relative}.core-form-container>form .section .section-header-label .section-img-wrapper .section-img{position:absolute;width:34px;height:34px;border-radius:50%;background-color:#d3d3d3;float:left;background-image:url(/assets/images/info.svg);background-repeat:no-repeat;background-position:center}.core-form-container>form .section .section-header-label .section-caption{padding-left:40px;font-weight:700;color:#696969}.core-form-container .row{margin-left:var(--size-layout-block-cell-spacing) 0px;margin-right:var(--size-layout-block-cell-spacing) 0px}.core-form-container .row .grid-buffer{border:dotted 2px darkgray}.core-form-container .row .button-control{display:flex;align-items:flex-end}.core-form-container .form-row{margin:var(--size-layout-block-cell-spacing) 0px;display:flex;align-items:center;justify-content:center}.core-form-container .form-row>button{cursor:pointer}.core-form-container .form-row>button:not(:first-child){margin-left:var(--size-layout-block-cell-spacing)}.core-form-container .payload-preview{display:block;width:100%;height:200px;white-space:pre-wrap;overflow-x:hidden;overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: CoreControlComponent, selector: "core-control", inputs: ["control", "form", "checkError$", "rangeLimit"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "shownItems", "showCaption"], outputs: ["buttonClick"] }] }); }
|
|
209
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: CoreFormComponent, isStandalone: true, selector: "core-form", inputs: { formName: "formName", submitText: "submitText", leftInputSections: "leftInputSections", leftInputSectionsFlexSize: "leftInputSectionsFlexSize", inputSections: "inputSections", mode$: "mode$", bottomTemplateRef: "bottomTemplateRef", customFormButtonItems: "customFormButtonItems", showCaptionButton: "showCaptionButton", disableSaveButton: "disableSaveButton", checkError$: "checkError$" }, outputs: { onFormCreated: "onFormCreated", onFormRefCreated: "onFormRefCreated", onSubmit: "onSubmit", onSave: "onSave", onCancal: "onCancal", buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "formRef", first: true, predicate: ["formRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"core-form-container\" *ngIf=\"!!form\">\r\n\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n\r\n <div class=\"row\">\r\n\r\n <div [class]=\"'col-md-' + (leftInputSectionsFlexSize || 0)\" *ngIf=\"!!leftInputSections\">\r\n\r\n <div *ngFor=\"let section of leftInputSections\" class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n <div class=\"section-header-label\" *ngIf=\"section.caption\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n\r\n <div *ngFor=\"let row of section.rows\" class=\"row mb15\">\r\n <div *ngFor=\"let col of row\" [class]=\"'col-md-' + col.flexSize\"\r\n [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div [class]=\"'col-md-' + (12 - (leftInputSectionsFlexSize || 0))\">\r\n\r\n <div *ngFor=\"let section of sections\" class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n <div class=\"section-header-label\" *ngIf=\"section.caption\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n\r\n <div *ngFor=\"let row of section.rows\" class=\"row mb15\">\r\n <div *ngFor=\"let col of row\" [class]=\"'col-md-' + col.flexSize\"\r\n [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <ng-container *ngIf=\"!!bottomTemplateRef\">\r\n <ng-container *ngTemplateOutlet=\"bottomTemplateRef\"></ng-container>\r\n </ng-container>\r\n\r\n\r\n <div class=\"h10\"></div>\r\n\r\n <div class=\"form-row\">\r\n\r\n <core-button-group-vns [showCaption]=\"showCaptionButton\" [forHeader]=\"false\" (buttonClick)=\"onButtonClick($event)\"\r\n [shownItems]=\"buttonItems\" class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n <div class=\"form-row\" *ngIf=\"isDevMode\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updatePayload()\">Show\r\n values</button>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updateValidorOverview()\">Show\r\n validators</button>\r\n </div>\r\n </form>\r\n\r\n <div *ngIf=\"!!payLoad && isDevMode\" class=\"form-row payload-preview\">\r\n <strong>Current values</strong><br>{{payLoad}}\r\n </div>\r\n <div *ngIf=\"!!validatorOverview && isDevMode\" class=\"form-row payload-preview\">\r\n <strong>Current errors</strong><br>{{validatorOverview}}\r\n </div>\r\n\r\n</div>", styles: [".core-form-container>form .section .section-header-label{display:block;height:34px;line-height:34px;margin-bottom:15px;margin-left:12px}.core-form-container>form .section .section-header-label .section-img-wrapper{position:relative}.core-form-container>form .section .section-header-label .section-img-wrapper .section-img{position:absolute;width:34px;height:34px;border-radius:50%;background-color:#d3d3d3;float:left;background-image:url(/assets/images/info.svg);background-repeat:no-repeat;background-position:center}.core-form-container>form .section .section-header-label .section-caption{padding-left:40px;font-weight:700;color:#696969}.core-form-container .row{margin-left:var(--size-layout-block-cell-spacing) 0px;margin-right:var(--size-layout-block-cell-spacing) 0px}.core-form-container .row .grid-buffer{border:dotted 2px darkgray}.core-form-container .row .button-control{display:flex;align-items:flex-end}.core-form-container .form-row{margin:var(--size-layout-block-cell-spacing) 0px;display:flex;align-items:center;justify-content:center}.core-form-container .form-row>button{cursor:pointer}.core-form-container .form-row>button:not(:first-child){margin-left:var(--size-layout-block-cell-spacing)}.core-form-container .payload-preview{display:block;width:100%;height:200px;white-space:pre-wrap;overflow-x:hidden;overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: CoreControlComponent, selector: "core-control", inputs: ["control", "form", "checkError$", "rangeLimit"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption"], outputs: ["buttonClick"] }] }); }
|
|
210
210
|
}
|
|
211
211
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreFormComponent, decorators: [{
|
|
212
212
|
type: Component,
|
|
@@ -151,7 +151,7 @@ export class CoreFormLiteComponent {
|
|
|
151
151
|
this.buttonClick.emit(e);
|
|
152
152
|
}
|
|
153
153
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreFormLiteComponent, deps: [{ token: i1.CoreControlService }, { token: i2.MultiLanguageService }, { token: i3.AlertService }, { token: i4.CoreFormService }, { token: i5.AppConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
154
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreFormLiteComponent, isStandalone: true, selector: "core-form-lite", inputs: { formName: "formName", submitText: "submitText", inputSections: "inputSections", mode$: "mode$", customFormButtonItems: "customFormButtonItems", showButonCaptions: "showButonCaptions", disableSaveButton: "disableSaveButton", checkError$: "checkError$" }, outputs: { onFormCreated: "onFormCreated", onFormRefCreated: "onFormRefCreated", onSubmit: "onSubmit", onSave: "onSave", onCancal: "onCancal", buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "formRef", first: true, predicate: ["formRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"core-form-lite-container\">\r\n @if (!!form) {\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n <div class=\"row\">\r\n <div [class]=\"'col-md-12'\">\r\n\r\n <div *ngFor=\"let section of sections\" class=\"section\" [class.d-none]=\"!!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track row) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track col) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control-no-seeker [control]=\"col\" [form]=\"form\"\r\n [checkError$]=\"checkError$\"></core-control-no-seeker>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"h10\"></div>\r\n\r\n <div class=\"form-row\">\r\n\r\n <core-button-group-vns [showCaption]=\"showButonCaptions\" [forHeader]=\"false\"\r\n (buttonClick)=\"onButtonClick($event)\" [shownItems]=\"buttonItems\"\r\n class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n <div class=\"form-row\" *ngIf=\"isDevMode\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updatePayload()\">Show\r\n values</button>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updateValidorOverview()\">Show\r\n validators</button>\r\n </div>\r\n </form>\r\n\r\n <div *ngIf=\"!!payLoad && isDevMode\" class=\"form-row payload-preview\">\r\n <strong>Current values</strong><br>{{payLoad}}\r\n </div>\r\n <div *ngIf=\"!!validatorOverview && isDevMode\" class=\"form-row payload-preview\">\r\n <strong>Current errors</strong><br>{{validatorOverview}}\r\n </div>\r\n }\r\n\r\n</div>", styles: [".core-form-lite-container>form .section .section-header-label{display:block;height:34px;line-height:34px;margin-bottom:15px;margin-left:12px}.core-form-lite-container>form .section .section-header-label .section-img-wrapper{position:relative}.core-form-lite-container>form .section .section-header-label .section-img-wrapper .section-img{position:absolute;width:34px;height:34px;border-radius:50%;background-color:#d3d3d3;float:left;background-image:url(/assets/images/info.svg);background-repeat:no-repeat;background-position:center}.core-form-lite-container>form .section .section-header-label .section-caption{padding-left:40px;font-weight:700;color:#696969}.core-form-lite-container .row{margin-left:var(--size-layout-block-cell-spacing) 0px;margin-right:var(--size-layout-block-cell-spacing) 0px}.core-form-lite-container .row .grid-buffer{border:dotted 2px darkgray}.core-form-lite-container .row .button-control{display:flex;align-items:flex-end}.core-form-lite-container .form-row{margin:var(--size-layout-block-cell-spacing) 0px;display:flex;align-items:center;justify-content:center}.core-form-lite-container .form-row>button{cursor:pointer}.core-form-lite-container .form-row>button:not(:first-child){margin-left:var(--size-layout-block-cell-spacing)}.core-form-lite-container .payload-preview{display:block;width:100%;height:200px;white-space:pre-wrap;overflow-x:hidden;overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: CoreControlNoSeekerComponent, selector: "core-control-no-seeker", inputs: ["control", "form", "checkError$", "rangeLimit"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "shownItems", "showCaption"], outputs: ["buttonClick"] }] }); }
|
|
154
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreFormLiteComponent, isStandalone: true, selector: "core-form-lite", inputs: { formName: "formName", submitText: "submitText", inputSections: "inputSections", mode$: "mode$", customFormButtonItems: "customFormButtonItems", showButonCaptions: "showButonCaptions", disableSaveButton: "disableSaveButton", checkError$: "checkError$" }, outputs: { onFormCreated: "onFormCreated", onFormRefCreated: "onFormRefCreated", onSubmit: "onSubmit", onSave: "onSave", onCancal: "onCancal", buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "formRef", first: true, predicate: ["formRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"core-form-lite-container\">\r\n @if (!!form) {\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n <div class=\"row\">\r\n <div [class]=\"'col-md-12'\">\r\n\r\n <div *ngFor=\"let section of sections\" class=\"section\" [class.d-none]=\"!!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track row) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track col) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control-no-seeker [control]=\"col\" [form]=\"form\"\r\n [checkError$]=\"checkError$\"></core-control-no-seeker>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"h10\"></div>\r\n\r\n <div class=\"form-row\">\r\n\r\n <core-button-group-vns [showCaption]=\"showButonCaptions\" [forHeader]=\"false\"\r\n (buttonClick)=\"onButtonClick($event)\" [shownItems]=\"buttonItems\"\r\n class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n <div class=\"form-row\" *ngIf=\"isDevMode\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updatePayload()\">Show\r\n values</button>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updateValidorOverview()\">Show\r\n validators</button>\r\n </div>\r\n </form>\r\n\r\n <div *ngIf=\"!!payLoad && isDevMode\" class=\"form-row payload-preview\">\r\n <strong>Current values</strong><br>{{payLoad}}\r\n </div>\r\n <div *ngIf=\"!!validatorOverview && isDevMode\" class=\"form-row payload-preview\">\r\n <strong>Current errors</strong><br>{{validatorOverview}}\r\n </div>\r\n }\r\n\r\n</div>", styles: [".core-form-lite-container>form .section .section-header-label{display:block;height:34px;line-height:34px;margin-bottom:15px;margin-left:12px}.core-form-lite-container>form .section .section-header-label .section-img-wrapper{position:relative}.core-form-lite-container>form .section .section-header-label .section-img-wrapper .section-img{position:absolute;width:34px;height:34px;border-radius:50%;background-color:#d3d3d3;float:left;background-image:url(/assets/images/info.svg);background-repeat:no-repeat;background-position:center}.core-form-lite-container>form .section .section-header-label .section-caption{padding-left:40px;font-weight:700;color:#696969}.core-form-lite-container .row{margin-left:var(--size-layout-block-cell-spacing) 0px;margin-right:var(--size-layout-block-cell-spacing) 0px}.core-form-lite-container .row .grid-buffer{border:dotted 2px darkgray}.core-form-lite-container .row .button-control{display:flex;align-items:flex-end}.core-form-lite-container .form-row{margin:var(--size-layout-block-cell-spacing) 0px;display:flex;align-items:center;justify-content:center}.core-form-lite-container .form-row>button{cursor:pointer}.core-form-lite-container .form-row>button:not(:first-child){margin-left:var(--size-layout-block-cell-spacing)}.core-form-lite-container .payload-preview{display:block;width:100%;height:200px;white-space:pre-wrap;overflow-x:hidden;overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: CoreControlNoSeekerComponent, selector: "core-control-no-seeker", inputs: ["control", "form", "checkError$", "rangeLimit"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption"], outputs: ["buttonClick"] }] }); }
|
|
155
155
|
}
|
|
156
156
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreFormLiteComponent, decorators: [{
|
|
157
157
|
type: Component,
|
package/esm2022/lib/app/libraries/core-page-header/core-page-header/core-page-header.component.mjs
CHANGED
|
@@ -22,7 +22,7 @@ export class CorePageHeaderComponent extends BaseComponent {
|
|
|
22
22
|
ngAfterViewInit() {
|
|
23
23
|
}
|
|
24
24
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CorePageHeaderComponent, deps: [{ token: i1.MultiLanguageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CorePageHeaderComponent, isStandalone: true, selector: "core-page-header", inputs: { instanceNumber: "instanceNumber", shownItems: "shownItems", title: "title", hideButtonGroup: "hideButtonGroup" }, outputs: { buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-page-header-container\" #container>\r\n <div class=\"d-flex-between pd-25\">\r\n <div class=\"title\">{{ title | translate: lang }}</div>\r\n @if (!hideButtonGroup) {\r\n <core-button-group-vns [instanceNumber]=\"instanceNumber\" [forHeader]=\"true\" [shownItems]=\"shownItems\"\r\n (buttonClick)=\"onButtonClick($event)\"></core-button-group-vns>\r\n }\r\n </div>\r\n</div>", styles: [".core-page-header-container{height:var(--size-core-page-header-height);background-color:#fff}.core-page-header-container .title{color:#000;font-weight:400;font-size:20px;text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis}.d-flex-between{height:var(--size-core-page-header-height)}.buttonGroupCustom{overflow-x:scroll}.buttonGroupCustom::-webkit-scrollbar-thumb{width:20%!important}.buttonGroupCustom:hover{overflow-x:scroll}.buttonGroupCustom::-webkit-scrollbar-thumb{background-color:transparent;width:50px!important;border-radius:10px;transition:background-color 2s}.buttonGroupCustom:hover::-webkit-scrollbar-thumb{background-color:#a5a4a4;width:50px!important;border-radius:10px;transition:background-color 2s}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "shownItems", "showCaption"], outputs: ["buttonClick"] }] }); }
|
|
25
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CorePageHeaderComponent, isStandalone: true, selector: "core-page-header", inputs: { instanceNumber: "instanceNumber", shownItems: "shownItems", title: "title", hideButtonGroup: "hideButtonGroup" }, outputs: { buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-page-header-container\" #container>\r\n <div class=\"d-flex-between pd-25\">\r\n <div class=\"title\">{{ title | translate: lang }}</div>\r\n @if (!hideButtonGroup) {\r\n <core-button-group-vns [instanceNumber]=\"instanceNumber\" [forHeader]=\"true\" [shownItems]=\"shownItems\"\r\n (buttonClick)=\"onButtonClick($event)\"></core-button-group-vns>\r\n }\r\n </div>\r\n</div>", styles: [".core-page-header-container{height:var(--size-core-page-header-height);background-color:#fff}.core-page-header-container .title{color:#000;font-weight:400;font-size:20px;text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis}.d-flex-between{height:var(--size-core-page-header-height)}.buttonGroupCustom{overflow-x:scroll}.buttonGroupCustom::-webkit-scrollbar-thumb{width:20%!important}.buttonGroupCustom:hover{overflow-x:scroll}.buttonGroupCustom::-webkit-scrollbar-thumb{background-color:transparent;width:50px!important;border-radius:10px;transition:background-color 2s}.buttonGroupCustom:hover::-webkit-scrollbar-thumb{background-color:#a5a4a4;width:50px!important;border-radius:10px;transition:background-color 2s}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption"], outputs: ["buttonClick"] }] }); }
|
|
26
26
|
}
|
|
27
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CorePageHeaderComponent, decorators: [{
|
|
28
28
|
type: Component,
|