@tsi-developpement/tsi-shared-ui 1.8.37 → 1.8.39
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/consts/business-class-names.mjs +3 -1
- package/esm2022/lib/end-points/endpoints.mjs +7 -2
- package/esm2022/lib/models/actionErp/actionErp.mjs +7 -1
- package/esm2022/lib/models/actionErp/nature-action.mjs +6 -0
- package/esm2022/lib/models/tsi-card/tsi-card.mjs +1 -1
- package/esm2022/lib/services/actionErp/nature-action-service.service.mjs +23 -0
- package/esm2022/lib/tsi-components/manage-import-export/manage-import-export.component.mjs +9 -1
- package/esm2022/lib/tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component.mjs +18 -3
- package/esm2022/lib/tsi-components/output-components/tsi-view-grid/tsi-view-grid.component.mjs +1 -1
- package/esm2022/lib/tsi-components/tsi-action-erp-create-or-edit/tsi-action-erp-create-or-edit.component.mjs +182 -25
- package/esm2022/lib/tsi-components/tsi-calender/context-menu/context-menu.component.mjs +16 -4
- package/esm2022/lib/tsi-components/tsi-calender/tsi-calender.component.mjs +30 -3
- package/esm2022/lib/tsi-components/tsi-card/tsi-card.component.mjs +50 -23
- package/esm2022/lib/tsi-components/tsi-card-list/tsi-card-list.component.mjs +14 -4
- package/esm2022/lib/tsi-components/tsi-generic-crud/tsi-generic-crud.component.mjs +17 -5
- package/esm2022/lib/tsi-components/tsi-kanban/tsi-kanban.component.mjs +48 -22
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs +395 -84
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs.map +1 -1
- package/lib/consts/business-class-names.d.ts +2 -0
- package/lib/end-points/endpoints.d.ts +5 -0
- package/lib/models/actionErp/actionErp.d.ts +10 -0
- package/lib/models/actionErp/nature-action.d.ts +12 -0
- package/lib/models/tsi-card/tsi-card.d.ts +1 -0
- package/lib/providers/shared-ui-tsi.provider.d.ts +1 -1
- package/lib/services/actionErp/nature-action-service.service.d.ts +12 -0
- package/lib/tsi-components/manage-reporting/add-report-popup/add-report-popup.component.d.ts +3 -0
- package/lib/tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component.d.ts +6 -1
- package/lib/tsi-components/tsi-action-erp-create-or-edit/tsi-action-erp-create-or-edit.component.d.ts +19 -4
- package/lib/tsi-components/tsi-calender/context-menu/context-menu.component.d.ts +5 -1
- package/lib/tsi-components/tsi-calender/tsi-calender.component.d.ts +6 -1
- package/lib/tsi-components/tsi-card/tsi-card.component.d.ts +15 -5
- package/lib/tsi-components/tsi-card-list/tsi-card-list.component.d.ts +5 -1
- package/lib/tsi-components/tsi-kanban/tsi-kanban.component.d.ts +14 -6
- package/package.json +1 -1
|
@@ -24,6 +24,9 @@ export class TsiCardListComponent extends AppBaseComponent {
|
|
|
24
24
|
this.rows = 10;
|
|
25
25
|
this.totalCount = 0;
|
|
26
26
|
this.isLoading = false;
|
|
27
|
+
this.overflowActionsMenu = [];
|
|
28
|
+
this.selectKeyOnly = true;
|
|
29
|
+
this.key = 'uid';
|
|
27
30
|
}
|
|
28
31
|
async ngOnChanges(changes) {
|
|
29
32
|
if (changes['page']) {
|
|
@@ -69,7 +72,8 @@ export class TsiCardListComponent extends AppBaseComponent {
|
|
|
69
72
|
status: `${item[keys[col4]] ?? ''}`,
|
|
70
73
|
photo: item[keys[photo]] != '' && item[keys[photo]] != null
|
|
71
74
|
? item[keys[photo]]
|
|
72
|
-
: defaultCardHeader.image
|
|
75
|
+
: defaultCardHeader.image,
|
|
76
|
+
fullRecord: item,
|
|
73
77
|
};
|
|
74
78
|
});
|
|
75
79
|
}
|
|
@@ -91,11 +95,11 @@ export class TsiCardListComponent extends AppBaseComponent {
|
|
|
91
95
|
this.cdr.markForCheck();
|
|
92
96
|
}
|
|
93
97
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiCardListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
94
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiCardListComponent, selector: "Tsi-card-list", inputs: { cardBusinessClass: "cardBusinessClass", header: "header", id: "id", page: "page", page$: "page$" }, outputs: { buttonClicked: "buttonClicked", callSearch: "callSearch" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-wrap gap-2\">\r\n <Tsi-card *ngFor=\"let card of displayedCards\"\r\n class=\"tsi-card\"\r\n [uid]=\"card.uid\"\r\n [headerTitle]=\"card.headerTitle\"\r\n [subHeaderTitle]=\"card.subHeaderTitle\"\r\n [description]=\"card.description\"\r\n [statut]=\"card.status\"\r\n [imgUrl]=\"card.photo\"\r\n [formName]=\"formName\"\r\n (buttonClicked)=\"buttonClicked.emit($event)\">\r\n </Tsi-card>\r\n</div>\r\n<div class=\"card flex justify-content-center mt-4\">\r\n <p-paginator\r\n [first]=\"first\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalCount\"\r\n [rowsPerPageOptions]=\"[1, 10, 25, 50]\"\r\n (onPageChange)=\"onPageChange($event)\"\r\n [showCurrentPageReport]=\"true\"\r\n currentPageReportTemplate=\"{{ 'Showing' | localize }} {first} {{'to' | localize}} {last} {{ 'of' | localize }} {totalRecords}\">\r\n </p-paginator>\r\n</div> \r\n\r\n<div class=\"overlay\" *ngIf=\"isLoading\">\r\n <div class=\"spinner-wrapper\">\r\n <app-spinner></app-spinner>\r\n </div>\r\n</div>", styles: ["::ng-deep .tsi-card{overflow:hidden!important;box-shadow:#63636333 0 2px 8px!important;border-radius:1rem;min-width:15rem!important;width:min-content!important}@media (max-width: 768px){.tsi-card{min-width:12rem!important}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "appendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }, { kind: "component", type: i3.TsiCardComponent, selector: "Tsi-card", inputs: ["id", "headerTitle", "subHeaderTitle", "description", "imgUrl", "uid", "formName", "statut"], outputs: ["buttonClicked"] }, { kind: "component", type: i4.SpinnerComponent, selector: "app-spinner" }, { kind: "pipe", type: i5.LocalizePipe, name: "localize" }] }); }
|
|
98
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiCardListComponent, selector: "Tsi-card-list", inputs: { cardBusinessClass: "cardBusinessClass", header: "header", id: "id", page: "page", page$: "page$", overflowActionsMenu: "overflowActionsMenu", selectKeyOnly: "selectKeyOnly", key: "key" }, outputs: { buttonClicked: "buttonClicked", callSearch: "callSearch" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-wrap gap-2\">\r\n <Tsi-card *ngFor=\"let card of displayedCards\"\r\n class=\"tsi-card\"\r\n [uid]=\"card.uid\"\r\n [headerTitle]=\"card.headerTitle\"\r\n [subHeaderTitle]=\"card.subHeaderTitle\"\r\n [description]=\"card.description\"\r\n [statut]=\"card.status\"\r\n [imgUrl]=\"card.photo\"\r\n [formName]=\"formName\"\r\n [item]=\"card.fullRecord\"\r\n [overflowActionsMenu]=\"overflowActionsMenu\"\r\n [selectKeyOnly]=\"selectKeyOnly\"\r\n [key]=\"key\"\r\n (buttonClicked)=\"buttonClicked.emit($event)\"\r\n >\r\n </Tsi-card>\r\n</div>\r\n<div class=\"card flex justify-content-center mt-4\">\r\n <p-paginator\r\n [first]=\"first\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalCount\"\r\n [rowsPerPageOptions]=\"[1, 10, 25, 50]\"\r\n (onPageChange)=\"onPageChange($event)\"\r\n [showCurrentPageReport]=\"true\"\r\n currentPageReportTemplate=\"{{ 'Showing' | localize }} {first} {{'to' | localize}} {last} {{ 'of' | localize }} {totalRecords}\">\r\n </p-paginator>\r\n</div> \r\n\r\n<div class=\"overlay\" *ngIf=\"isLoading\">\r\n <div class=\"spinner-wrapper\">\r\n <app-spinner></app-spinner>\r\n </div>\r\n</div>", styles: ["::ng-deep .tsi-card{overflow:hidden!important;box-shadow:#63636333 0 2px 8px!important;border-radius:1rem;min-width:15rem!important;width:min-content!important}@media (max-width: 768px){.tsi-card{min-width:12rem!important}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "appendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }, { kind: "component", type: i3.TsiCardComponent, selector: "Tsi-card", inputs: ["id", "headerTitle", "subHeaderTitle", "description", "imgUrl", "uid", "formName", "statut", "overflowActionsMenu", "item", "selectKeyOnly", "key"], outputs: ["buttonClicked"] }, { kind: "component", type: i4.SpinnerComponent, selector: "app-spinner" }, { kind: "pipe", type: i5.LocalizePipe, name: "localize" }] }); }
|
|
95
99
|
}
|
|
96
100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiCardListComponent, decorators: [{
|
|
97
101
|
type: Component,
|
|
98
|
-
args: [{ selector: 'Tsi-card-list', template: "<div class=\"flex flex-wrap gap-2\">\r\n <Tsi-card *ngFor=\"let card of displayedCards\"\r\n class=\"tsi-card\"\r\n [uid]=\"card.uid\"\r\n [headerTitle]=\"card.headerTitle\"\r\n [subHeaderTitle]=\"card.subHeaderTitle\"\r\n [description]=\"card.description\"\r\n [statut]=\"card.status\"\r\n [imgUrl]=\"card.photo\"\r\n [formName]=\"formName\"\r\n (buttonClicked)=\"buttonClicked.emit($event)\">\r\n </Tsi-card>\r\n</div>\r\n<div class=\"card flex justify-content-center mt-4\">\r\n <p-paginator\r\n [first]=\"first\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalCount\"\r\n [rowsPerPageOptions]=\"[1, 10, 25, 50]\"\r\n (onPageChange)=\"onPageChange($event)\"\r\n [showCurrentPageReport]=\"true\"\r\n currentPageReportTemplate=\"{{ 'Showing' | localize }} {first} {{'to' | localize}} {last} {{ 'of' | localize }} {totalRecords}\">\r\n </p-paginator>\r\n</div> \r\n\r\n<div class=\"overlay\" *ngIf=\"isLoading\">\r\n <div class=\"spinner-wrapper\">\r\n <app-spinner></app-spinner>\r\n </div>\r\n</div>", styles: ["::ng-deep .tsi-card{overflow:hidden!important;box-shadow:#63636333 0 2px 8px!important;border-radius:1rem;min-width:15rem!important;width:min-content!important}@media (max-width: 768px){.tsi-card{min-width:12rem!important}}\n"] }]
|
|
102
|
+
args: [{ selector: 'Tsi-card-list', template: "<div class=\"flex flex-wrap gap-2\">\r\n <Tsi-card *ngFor=\"let card of displayedCards\"\r\n class=\"tsi-card\"\r\n [uid]=\"card.uid\"\r\n [headerTitle]=\"card.headerTitle\"\r\n [subHeaderTitle]=\"card.subHeaderTitle\"\r\n [description]=\"card.description\"\r\n [statut]=\"card.status\"\r\n [imgUrl]=\"card.photo\"\r\n [formName]=\"formName\"\r\n [item]=\"card.fullRecord\"\r\n [overflowActionsMenu]=\"overflowActionsMenu\"\r\n [selectKeyOnly]=\"selectKeyOnly\"\r\n [key]=\"key\"\r\n (buttonClicked)=\"buttonClicked.emit($event)\"\r\n >\r\n </Tsi-card>\r\n</div>\r\n<div class=\"card flex justify-content-center mt-4\">\r\n <p-paginator\r\n [first]=\"first\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalCount\"\r\n [rowsPerPageOptions]=\"[1, 10, 25, 50]\"\r\n (onPageChange)=\"onPageChange($event)\"\r\n [showCurrentPageReport]=\"true\"\r\n currentPageReportTemplate=\"{{ 'Showing' | localize }} {first} {{'to' | localize}} {last} {{ 'of' | localize }} {totalRecords}\">\r\n </p-paginator>\r\n</div> \r\n\r\n<div class=\"overlay\" *ngIf=\"isLoading\">\r\n <div class=\"spinner-wrapper\">\r\n <app-spinner></app-spinner>\r\n </div>\r\n</div>", styles: ["::ng-deep .tsi-card{overflow:hidden!important;box-shadow:#63636333 0 2px 8px!important;border-radius:1rem;min-width:15rem!important;width:min-content!important}@media (max-width: 768px){.tsi-card{min-width:12rem!important}}\n"] }]
|
|
99
103
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { cardBusinessClass: [{
|
|
100
104
|
type: Input
|
|
101
105
|
}], header: [{
|
|
@@ -110,5 +114,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
110
114
|
type: Output
|
|
111
115
|
}], page$: [{
|
|
112
116
|
type: Input
|
|
117
|
+
}], overflowActionsMenu: [{
|
|
118
|
+
type: Input
|
|
119
|
+
}], selectKeyOnly: [{
|
|
120
|
+
type: Input
|
|
121
|
+
}], key: [{
|
|
122
|
+
type: Input
|
|
113
123
|
}] } });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWNhcmQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvdHNpLWNhcmQtbGlzdC90c2ktY2FyZC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktY2FyZC1saXN0L3RzaS1jYXJkLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBK0IsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUt0SSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7OztBQU96RixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZ0JBQWdCO0lBT3hELElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFakMsSUFBYSxJQUFJLENBQUMsS0FBVTtRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQWVELFlBQ1UsR0FBc0I7UUFFOUIsS0FBSyxFQUFFLENBQUM7UUFGQSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWR0QixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO1FBQ3RELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBSS9DLG1CQUFjLEdBQWMsRUFBRSxDQUFDO1FBQy9CLGNBQVMsR0FBYyxFQUFFLENBQUM7UUFDMUIsVUFBSyxHQUFXLENB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LENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzsrR0E3R1Usb0JBQW9CO21HQUFwQixvQkFBb0Isc1JDYmpDLHVsQ0E2Qk07OzRGRGhCTyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsZUFBZTtzRkFNaEIsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBS08sSUFBSTtzQkFBaEIsS0FBSztnQkFLSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBRUUsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFnaW5hdG9yU3RhdGUgfSBmcm9tICdwcmltZW5nL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCdXR0b25DbGlja1Jlc3VsdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBUc2lDYXJkIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgZGVmYXVsdENhcmRIZWFkZXIgfSBmcm9tICcuLi8uLi9jb25zdHMvdHNpLWNvbnN0cyc7XHJcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi90c2ktYmFzZS9jb21wb25lbnRzL2FwcC1iYXNlL2FwcC1iYXNlLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ1RzaS1jYXJkLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90c2ktY2FyZC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdHNpLWNhcmQtbGlzdC5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUc2lDYXJkTGlzdENvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIGNhcmRCdXNpbmVzc0NsYXNzOiBhbnk7XHJcbiAgQElucHV0KCkgaGVhZGVyOiBhbnk7XHJcbiAgQElucHV0KCkgaWQ6IGFueTtcclxuXHJcbiAgcHJpdmF0ZSBfcGFnZTogYW55O1xyXG4gIGdldCBwYWdlKCkgeyByZXR1cm4gdGhpcy5fcGFnZTsgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgcGFnZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9wYWdlID0gdmFsdWU7XHJcbiAgICB0aGlzLmhhbmRsZVBhZ2VDaGFuZ2UodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEJ1dHRvbkNsaWNrUmVzdWx0PigpO1xyXG4gIEBPdXRwdXQoKSBjYWxsU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBJbnB1dCgpIHBhZ2UkITogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcblxyXG4gIGRpc3BsYXllZENhcmRzOiBUc2lDYXJkW10gPSBbXTtcclxuICBsaXN0Q2FyZHM6IFRzaUNhcmRbXSA9IFtdO1xyXG4gIGZpcnN0OiBudW1iZXIgPSAwO1xyXG4gIHJvd3M6IG51bWJlciA9IDEwO1xyXG4gIHRvdGFsQ291bnQ6IG51bWJlciA9IDA7XHJcblxyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlc1sncGFnZSddKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlUGFnZUNoYW5nZSh0aGlzLnBhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5idXNpbmVzc0NsYXNzID0gdGhpcy5jYXJkQnVzaW5lc3NDbGFzcztcclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnBhZ2UkLnN1YnNjcmliZShwYWdlID0+IHtcclxuICAgICAgdGhpcy5wYWdlID0gcGFnZTtcclxuICAgICAgdGhpcy5oYW5kbGVQYWdlQ2hhbmdlKHBhZ2UpO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRoaXMucGFnZT8ubG9hZGluZyAhPSBudWxsICYmIHRoaXMucGFnZT8ubG9hZGluZyAhPSB1bmRlZmluZWRcclxuICAgICAgICA/IHRoaXMucGFnZS5sb2FkaW5nXHJcbiAgICAgICAgOiBmYWxzZTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShldmVudDogUGFnaW5hdG9yU3RhdGUpIHtcclxuICAgIHRoaXMuZmlyc3QgPSBldmVudC5maXJzdCA/PyAwO1xyXG4gICAgdGhpcy5yb3dzID0gZXZlbnQucm93cyA/PyAxMDtcclxuICAgIHRoaXMuY2FsbFNlYXJjaC5lbWl0KHsgc2tpcENvdW50OiB0aGlzLmZpcnN0LCBtYXhSZXN1bHRDb3VudDogdGhpcy5yb3dzIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRGlzcGxheWVkQ2FyZHMoKSB7XHJcbiAgICBpZiAodGhpcy5saXN0Q2FyZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENhcmRzID0gWy4uLnRoaXMubGlzdENhcmRzXTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgbWFwSXRlbXNUb0NhcmRzKGl0ZW1zOiBhbnlbXSk6IFByb21pc2U8VHNpQ2FyZFtdPiB7XHJcbiAgICBjb25zdCB7IGNvbDEsIGNvbDIsIGNvbDMsIGNvbDQsIHBob3RvIH0gPSB0aGlzLmdldENvbEtleXMoKTtcclxuXHJcbiAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGl0ZW0pLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcclxuICAgICAgICBhY2Nba2V5LnRvTG93ZXJDYXNlKCldID0ga2V5O1xyXG4gICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgIH0sIHt9IGFzIHsgW2xvd2VyS2V5OiBzdHJpbmddOiBzdHJpbmcgfSk7XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGlkOiBpbmRleCArIDEgKyB0aGlzLmZpcnN0LFxyXG4gICAgICAgIHVpZDogYCR7aXRlbS51aWR9YCxcclxuICAgICAgICBoZWFkZXJUaXRsZTogYCR7aXRlbVtrZXlzW2NvbDFdXSA/PyAnJ31gLFxyXG4gICAgICAgIHN1YkhlYWRlclRpdGxlOiBgJHtpdGVtW2tleXNbY29sMl1dID8/ICcnfWAsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IGAke2l0ZW1ba2V5c1tjb2wzXV0gPz8gJyd9YCxcclxuICAgICAgICBzdGF0dXM6YCR7aXRlbVtrZXlzW2NvbDRdXSA/PyAnJ31gLFxyXG4gICAgICAgIHBob3RvOiBpdGVtW2tleXNbcGhvdG9dXSAhPSAnJyAmJiBpdGVtW2tleXNbcGhvdG9dXSAhPSBudWxsXHJcbiAgICAgICAgICA/IGl0ZW1ba2V5c1twaG90b11dXHJcbiAgICAgICAgICA6IGRlZmF1bHRDYXJkSGVhZGVyLmltYWdlXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q29sS2V5cygpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHBob3RvOiB0aGlzLmVudGl0eUluZm8/LmNhcmRIZWFkZXJQaG90b0NvbHVtbj8udG9Mb3dlckNhc2UoKSA/PyAnJyxcclxuICAgICAgY29sMTogdGhpcy5lbnRpdHlJbmZvPy5jYXJkVGl0bGVDb2x1bW4/LnRvTG93ZXJDYXNlKCkgPz8gJycsXHJcbiAgICAgIGNvbDI6IHRoaXMuZW50aXR5SW5mbz8uY2FyZFN1YkhlYWRlckNvbHVtbj8udG9Mb3dlckNhc2UoKSA/PyAnJyxcclxuICAgICAgY29sMzogdGhpcy5lbnRpdHlJbmZvPy5jYXJkRGVzY3JpcHRpb25Db2x1bW4/LnRvTG93ZXJDYXNlKCkgPz8gJycsXHJcbiAgICAgIGNvbDQ6IHRoaXMuZW50aXR5SW5mbz8uc3RhdHVzQ29sdW1uTmFtZT8udG9Mb3dlckNhc2UoKSA/PyAnJyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGhhbmRsZVBhZ2VDaGFuZ2UocGFnZTogYW55KSB7XHJcbiAgICBpZiAoIXBhZ2UgfHwgIXBhZ2UuaXRlbXMpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmxpc3RDYXJkcyA9IGF3YWl0IHRoaXMubWFwSXRlbXNUb0NhcmRzKHBhZ2UuaXRlbXMpO1xyXG4gICAgdGhpcy50b3RhbENvdW50ID0gcGFnZS50b3RhbENvdW50O1xyXG4gICAgdGhpcy51cGRhdGVEaXNwbGF5ZWRDYXJkcygpO1xyXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGdhcC0yXCI+XHJcbiAgICA8VHNpLWNhcmQgKm5nRm9yPVwibGV0IGNhcmQgb2YgZGlzcGxheWVkQ2FyZHNcIlxyXG4gICAgICAgIGNsYXNzPVwidHNpLWNhcmRcIlxyXG4gICAgICAgIFt1aWRdPVwiY2FyZC51aWRcIlxyXG4gICAgICAgIFtoZWFkZXJUaXRsZV09XCJjYXJkLmhlYWRlclRpdGxlXCJcclxuICAgICAgICBbc3ViSGVhZGVyVGl0bGVdPVwiY2FyZC5zdWJIZWFkZXJUaXRsZVwiXHJcbiAgICAgICAgW2Rlc2NyaXB0aW9uXT1cImNhcmQuZGVzY3JpcHRpb25cIlxyXG4gICAgICAgIFtzdGF0dXRdPVwiY2FyZC5zdGF0dXNcIlxyXG4gICAgICAgIFtpbWdVcmxdPVwiY2FyZC5waG90b1wiXHJcbiAgICAgICAgW2Zvcm1OYW1lXT1cImZvcm1OYW1lXCJcclxuICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJidXR0b25DbGlja2VkLmVtaXQoJGV2ZW50KVwiPlxyXG4gICAgPC9Uc2ktY2FyZD5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjYXJkIGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBtdC00XCI+XHJcbiAgICA8cC1wYWdpbmF0b3JcclxuICAgIFtmaXJzdF09XCJmaXJzdFwiXHJcbiAgICBbcm93c109XCJyb3dzXCJcclxuICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxDb3VudFwiXHJcbiAgICBbcm93c1BlclBhZ2VPcHRpb25zXT1cIlsxLCAxMCwgMjUsIDUwXVwiXHJcbiAgICAob25QYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIFtzaG93Q3VycmVudFBhZ2VSZXBvcnRdPVwidHJ1ZVwiXHJcbiAgICBjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlPVwie3sgJ1Nob3dpbmcnIHwgbG9jYWxpemUgfX0ge2ZpcnN0fSB7eyd0bycgfCBsb2NhbGl6ZX19IHtsYXN0fSB7eyAnb2YnIHwgbG9jYWxpemUgfX0ge3RvdGFsUmVjb3Jkc31cIj5cclxuICAgIDwvcC1wYWdpbmF0b3I+XHJcbjwvZGl2PiBcclxuXHJcbjxkaXYgY2xhc3M9XCJvdmVybGF5XCIgKm5nSWY9XCJpc0xvYWRpbmdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLXdyYXBwZXJcIj5cclxuICAgICAgICA8YXBwLXNwaW5uZXI+PC9hcHAtc3Bpbm5lcj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWNhcmQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvdHNpLWNhcmQtbGlzdC90c2ktY2FyZC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktY2FyZC1saXN0L3RzaS1jYXJkLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBK0IsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUt0SSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7OztBQVN6RixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZ0JBQWdCO0lBT3hELElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFakMsSUFBYSxJQUFJLENBQUMsS0FBVTtRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQWtCRCxZQUNVLEdBQXNCO1FBRTlCLEtBQUssRUFBRSxDQUFDO1FBRkEsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFqQnRCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDdEQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFJL0MsbUJBQWMsR0FBYyxFQUFFLENBQUM7UUFDL0IsY0FBUyxHQUFjLEVBQUUsQ0FBQztRQUMxQixVQUFLLEdBQVcs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SUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQ3RCLE9BQU87UUFFVCxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzsrR0FqSFUsb0JBQW9CO21HQUFwQixvQkFBb0IsOFdDZmpDLHd3Q0FrQ007OzRGRG5CTyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsZUFBZTtzRkFNaEIsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBS08sSUFBSTtzQkFBaEIsS0FBSztnQkFLSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBRUUsS0FBSztzQkFBYixLQUFLO2dCQVNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBhZ2luYXRvclN0YXRlIH0gZnJvbSAncHJpbWVuZy9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQnV0dG9uQ2xpY2tSZXN1bHQsIEdyaWRDb2x1bW4gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgVHNpQ2FyZCB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IGRlZmF1bHRDYXJkSGVhZGVyIH0gZnJvbSAnLi4vLi4vY29uc3RzL3RzaS1jb25zdHMnO1xyXG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdHNpLWJhc2UvY29tcG9uZW50cy9hcHAtYmFzZS9hcHAtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNZW51IH0gZnJvbSAncHJpbWVuZy9tZW51JztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ1RzaS1jYXJkLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90c2ktY2FyZC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdHNpLWNhcmQtbGlzdC5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUc2lDYXJkTGlzdENvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIGNhcmRCdXNpbmVzc0NsYXNzOiBhbnk7XHJcbiAgQElucHV0KCkgaGVhZGVyOiBhbnk7XHJcbiAgQElucHV0KCkgaWQ6IGFueTtcclxuXHJcbiAgcHJpdmF0ZSBfcGFnZTogYW55O1xyXG4gIGdldCBwYWdlKCkgeyByZXR1cm4gdGhpcy5fcGFnZTsgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgcGFnZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9wYWdlID0gdmFsdWU7XHJcbiAgICB0aGlzLmhhbmRsZVBhZ2VDaGFuZ2UodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEJ1dHRvbkNsaWNrUmVzdWx0PigpO1xyXG4gIEBPdXRwdXQoKSBjYWxsU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBJbnB1dCgpIHBhZ2UkITogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcblxyXG4gIGRpc3BsYXllZENhcmRzOiBUc2lDYXJkW10gPSBbXTtcclxuICBsaXN0Q2FyZHM6IFRzaUNhcmRbXSA9IFtdO1xyXG4gIGZpcnN0OiBudW1iZXIgPSAwO1xyXG4gIHJvd3M6IG51bWJlciA9IDEwO1xyXG4gIHRvdGFsQ291bnQ6IG51bWJlciA9IDA7XHJcblxyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG92ZXJmbG93QWN0aW9uc01lbnU6IE1lbnVJdGVtW10gPSBbXTtcclxuICBASW5wdXQoKSBzZWxlY3RLZXlPbmx5OiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBrZXk6IHN0cmluZyA9ICd1aWQnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlc1sncGFnZSddKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlUGFnZUNoYW5nZSh0aGlzLnBhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5idXNpbmVzc0NsYXNzID0gdGhpcy5jYXJkQnVzaW5lc3NDbGFzcztcclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnBhZ2UkLnN1YnNjcmliZShwYWdlID0+IHtcclxuICAgICAgdGhpcy5wYWdlID0gcGFnZTtcclxuICAgICAgdGhpcy5oYW5kbGVQYWdlQ2hhbmdlKHBhZ2UpO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRoaXMucGFnZT8ubG9hZGluZyAhPSBudWxsICYmIHRoaXMucGFnZT8ubG9hZGluZyAhPSB1bmRlZmluZWRcclxuICAgICAgICA/IHRoaXMucGFnZS5sb2FkaW5nXHJcbiAgICAgICAgOiBmYWxzZTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShldmVudDogUGFnaW5hdG9yU3RhdGUpIHtcclxuICAgIHRoaXMuZmlyc3QgPSBldmVudC5maXJzdCA/PyAwO1xyXG4gICAgdGhpcy5yb3dzID0gZXZlbnQucm93cyA/PyAxMDtcclxuICAgIHRoaXMuY2FsbFNlYXJjaC5lbWl0KHsgc2tpcENvdW50OiB0aGlzLmZpcnN0LCBtYXhSZXN1bHRDb3VudDogdGhpcy5yb3dzIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRGlzcGxheWVkQ2FyZHMoKSB7XHJcbiAgICBpZiAodGhpcy5saXN0Q2FyZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENhcmRzID0gWy4uLnRoaXMubGlzdENhcmRzXTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgbWFwSXRlbXNUb0NhcmRzKGl0ZW1zOiBhbnlbXSk6IFByb21pc2U8VHNpQ2FyZFtdPiB7XHJcbiAgICBjb25zdCB7IGNvbDEsIGNvbDIsIGNvbDMsIGNvbDQsIHBob3RvIH0gPSB0aGlzLmdldENvbEtleXMoKTtcclxuXHJcbiAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGl0ZW0pLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcclxuICAgICAgICBhY2Nba2V5LnRvTG93ZXJDYXNlKCldID0ga2V5O1xyXG4gICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgIH0sIHt9IGFzIHsgW2xvd2VyS2V5OiBzdHJpbmddOiBzdHJpbmcgfSk7XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGlkOiBpbmRleCArIDEgKyB0aGlzLmZpcnN0LFxyXG4gICAgICAgIHVpZDogYCR7aXRlbS51aWR9YCxcclxuICAgICAgICBoZWFkZXJUaXRsZTogYCR7aXRlbVtrZXlzW2NvbDFdXSA/PyAnJ31gLFxyXG4gICAgICAgIHN1YkhlYWRlclRpdGxlOiBgJHtpdGVtW2tleXNbY29sMl1dID8/ICcnfWAsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IGAke2l0ZW1ba2V5c1tjb2wzXV0gPz8gJyd9YCxcclxuICAgICAgICBzdGF0dXM6IGAke2l0ZW1ba2V5c1tjb2w0XV0gPz8gJyd9YCxcclxuICAgICAgICBwaG90bzogaXRlbVtrZXlzW3Bob3RvXV0gIT0gJycgJiYgaXRlbVtrZXlzW3Bob3RvXV0gIT0gbnVsbFxyXG4gICAgICAgICAgPyBpdGVtW2tleXNbcGhvdG9dXVxyXG4gICAgICAgICAgOiBkZWZhdWx0Q2FyZEhlYWRlci5pbWFnZSxcclxuICAgICAgICBmdWxsUmVjb3JkOiBpdGVtLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbEtleXMoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBwaG90bzogdGhpcy5lbnRpdHlJbmZvPy5jYXJkSGVhZGVyUGhvdG9Db2x1bW4/LnRvTG93ZXJDYXNlKCkgPz8gJycsXHJcbiAgICAgIGNvbDE6IHRoaXMuZW50aXR5SW5mbz8uY2FyZFRpdGxlQ29sdW1uPy50b0xvd2VyQ2FzZSgpID8/ICcnLFxyXG4gICAgICBjb2wyOiB0aGlzLmVudGl0eUluZm8/LmNhcmRTdWJIZWFkZXJDb2x1bW4/LnRvTG93ZXJDYXNlKCkgPz8gJycsXHJcbiAgICAgIGNvbDM6IHRoaXMuZW50aXR5SW5mbz8uY2FyZERlc2NyaXB0aW9uQ29sdW1uPy50b0xvd2VyQ2FzZSgpID8/ICcnLFxyXG4gICAgICBjb2w0OiB0aGlzLmVudGl0eUluZm8/LnN0YXR1c0NvbHVtbk5hbWU/LnRvTG93ZXJDYXNlKCkgPz8gJycsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVQYWdlQ2hhbmdlKHBhZ2U6IGFueSkge1xyXG4gICAgaWYgKCFwYWdlIHx8ICFwYWdlLml0ZW1zKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5saXN0Q2FyZHMgPSBhd2FpdCB0aGlzLm1hcEl0ZW1zVG9DYXJkcyhwYWdlLml0ZW1zKTtcclxuICAgIHRoaXMudG90YWxDb3VudCA9IHBhZ2UudG90YWxDb3VudDtcclxuICAgIHRoaXMudXBkYXRlRGlzcGxheWVkQ2FyZHMoKTtcclxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxufSIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMlwiPlxyXG4gICAgPFRzaS1jYXJkICpuZ0Zvcj1cImxldCBjYXJkIG9mIGRpc3BsYXllZENhcmRzXCJcclxuICAgICAgICBjbGFzcz1cInRzaS1jYXJkXCJcclxuICAgICAgICBbdWlkXT1cImNhcmQudWlkXCJcclxuICAgICAgICBbaGVhZGVyVGl0bGVdPVwiY2FyZC5oZWFkZXJUaXRsZVwiXHJcbiAgICAgICAgW3N1YkhlYWRlclRpdGxlXT1cImNhcmQuc3ViSGVhZGVyVGl0bGVcIlxyXG4gICAgICAgIFtkZXNjcmlwdGlvbl09XCJjYXJkLmRlc2NyaXB0aW9uXCJcclxuICAgICAgICBbc3RhdHV0XT1cImNhcmQuc3RhdHVzXCJcclxuICAgICAgICBbaW1nVXJsXT1cImNhcmQucGhvdG9cIlxyXG4gICAgICAgIFtmb3JtTmFtZV09XCJmb3JtTmFtZVwiXHJcbiAgICAgICAgW2l0ZW1dPVwiY2FyZC5mdWxsUmVjb3JkXCJcclxuICAgICAgICBbb3ZlcmZsb3dBY3Rpb25zTWVudV09XCJvdmVyZmxvd0FjdGlvbnNNZW51XCJcclxuICAgICAgICBbc2VsZWN0S2V5T25seV09XCJzZWxlY3RLZXlPbmx5XCJcclxuICAgICAgICBba2V5XT1cImtleVwiXHJcbiAgICAgICAgKGJ1dHRvbkNsaWNrZWQpPVwiYnV0dG9uQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgIDwvVHNpLWNhcmQ+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiY2FyZCBmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgbXQtNFwiPlxyXG4gICAgPHAtcGFnaW5hdG9yXHJcbiAgICBbZmlyc3RdPVwiZmlyc3RcIlxyXG4gICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgICBbdG90YWxSZWNvcmRzXT1cInRvdGFsQ291bnRcIlxyXG4gICAgW3Jvd3NQZXJQYWdlT3B0aW9uc109XCJbMSwgMTAsIDI1LCA1MF1cIlxyXG4gICAgKG9uUGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICBbc2hvd0N1cnJlbnRQYWdlUmVwb3J0XT1cInRydWVcIlxyXG4gICAgY3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZT1cInt7ICdTaG93aW5nJyB8IGxvY2FsaXplIH19IHtmaXJzdH0ge3sndG8nIHwgbG9jYWxpemV9fSB7bGFzdH0ge3sgJ29mJyB8IGxvY2FsaXplIH19IHt0b3RhbFJlY29yZHN9XCI+XHJcbiAgICA8L3AtcGFnaW5hdG9yPlxyXG48L2Rpdj4gXHJcblxyXG48ZGl2IGNsYXNzPVwib3ZlcmxheVwiICpuZ0lmPVwiaXNMb2FkaW5nXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci13cmFwcGVyXCI+XHJcbiAgICAgICAgPGFwcC1zcGlubmVyPjwvYXBwLXNwaW5uZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|