aril 1.0.77 → 1.0.79
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/ui/collapse-reorder-list/src/collapse-reorder-list.component.mjs +3 -3
- package/esm2022/ui/table/src/table.component.mjs +8 -4
- package/fesm2022/aril-ui-collapse-reorder-list.mjs +2 -2
- package/fesm2022/aril-ui-collapse-reorder-list.mjs.map +1 -1
- package/fesm2022/aril-ui-table.mjs +7 -3
- package/fesm2022/aril-ui-table.mjs.map +1 -1
- package/package.json +144 -144
- package/ui/table/src/table.component.d.ts +4 -3
|
@@ -37,11 +37,11 @@ export class CollapseReorderListComponent {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CollapseReorderListComponent, deps: [{ token: i1.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: CollapseReorderListComponent, isStandalone: true, selector: "aril-collapse-reorder-list[formArrayName]", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, addFieldButtonLabel: { classPropertyName: "addFieldButtonLabel", publicName: "addFieldButtonLabel", isSignal: true, isRequired: true, transformFunction: null }, reorderField: { classPropertyName: "reorderField", publicName: "reorderField", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { addField: "addField" }, providers: [DialogService], queries: [{ propertyName: "itemTemplate", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<div class=\"collapse-reorder-list\">\r\n\t<div class=\"collapse-reorder-list-item mb-2\">\r\n\t\t<div class=\"flex align-items-center justify-content-between p-2 aril-bg\">\r\n\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t<i\r\n\t\t\t\t\tclass=\"pi cursor-pointer p-2\"\r\n\t\t\t\t\t[class.pi-angle-down]=\"!isCollapsed\"\r\n\t\t\t\t\t[class.pi-angle-right]=\"isCollapsed\"\r\n\t\t\t\t\t(click)=\"isCollapsed = !isCollapsed\"></i>\r\n\r\n\t\t\t\t<div>{{ title() }}</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t@if (!isCollapsed) {\r\n\t\t\t<div class=\"flex flex-column ml-5 mt-2\">\r\n\t\t\t\t<div cdkDropList class=\"collapse-reorder-list\" (cdkDropListDropped)=\"drop($event)\">\r\n\t\t\t\t\t@for (fg of formArray.controls; track fg) {\r\n\t\t\t\t\t\t<form cdkDrag class=\"collapse-reorder-list-item mb-2\">\r\n\t\t\t\t\t\t\t<div class=\"flex align-items-center px-2 bg-bluegray-50\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi pi-bars cursor-move p-2\" cdkDragHandle></i>\r\n\r\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: fg }\" />\r\n\r\n\t\t\t\t\t\t\t\t<div class=\"flex gap-1\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"pi pi-trash cursor-pointer p-2 text-red-500\" (click)=\"removeField(fg)\"></i>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</form>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\tclass=\"w-max mb-2\"\r\n\t\t\t\t\t[label]=\"addFieldButtonLabel()\"\r\n\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t(clickEvent)=\"addField.emit()\" />\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n</div>\r\n", styles: [":host{width:100%}.cdk-drag-preview{border:none;font-size:1rem!important}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.collapse-reorder-list.cdk-drop-list-dragging .collapse-reorder-list-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.aril-bg{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%)}\n"], dependencies: [{ kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "outlined", "badge", "size", "icon", "color"], outputs: ["clickEvent"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
40
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: CollapseReorderListComponent, isStandalone: true, selector: "aril-collapse-reorder-list[formArrayName]", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, addFieldButtonLabel: { classPropertyName: "addFieldButtonLabel", publicName: "addFieldButtonLabel", isSignal: true, isRequired: true, transformFunction: null }, reorderField: { classPropertyName: "reorderField", publicName: "reorderField", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { addField: "addField" }, providers: [DialogService], queries: [{ propertyName: "itemTemplate", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<div class=\"collapse-reorder-list\">\r\n\t<div class=\"collapse-reorder-list-item mb-2\">\r\n\t\t<div class=\"flex align-items-center justify-content-between p-2 aril-bg text-white\">\r\n\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t<i\r\n\t\t\t\t\tclass=\"pi cursor-pointer p-2\"\r\n\t\t\t\t\t[class.pi-angle-down]=\"!isCollapsed\"\r\n\t\t\t\t\t[class.pi-angle-right]=\"isCollapsed\"\r\n\t\t\t\t\t(click)=\"isCollapsed = !isCollapsed\"></i>\r\n\r\n\t\t\t\t<div>{{ title() }}</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t@if (!isCollapsed) {\r\n\t\t\t<div class=\"flex flex-column ml-5 mt-2\">\r\n\t\t\t\t<div cdkDropList class=\"collapse-reorder-list\" (cdkDropListDropped)=\"drop($event)\">\r\n\t\t\t\t\t@for (fg of formArray.controls; track fg) {\r\n\t\t\t\t\t\t<form cdkDrag class=\"collapse-reorder-list-item mb-2\">\r\n\t\t\t\t\t\t\t<div class=\"flex align-items-center px-2 bg-bluegray-50\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi pi-bars cursor-move p-2\" cdkDragHandle></i>\r\n\r\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: fg }\" />\r\n\r\n\t\t\t\t\t\t\t\t<div class=\"flex gap-1\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"pi pi-trash cursor-pointer p-2 text-red-500\" (click)=\"removeField(fg)\"></i>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</form>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\tclass=\"w-max mb-2\"\r\n\t\t\t\t\t[label]=\"addFieldButtonLabel()\"\r\n\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t(clickEvent)=\"addField.emit()\" />\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n</div>\r\n", styles: [":host{width:100%}.cdk-drag-preview{border:none;font-size:1rem!important}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.collapse-reorder-list.cdk-drop-list-dragging .collapse-reorder-list-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.aril-bg{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%)}\n"], dependencies: [{ kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "outlined", "badge", "size", "icon", "color"], outputs: ["clickEvent"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
41
41
|
}
|
|
42
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CollapseReorderListComponent, decorators: [{
|
|
43
43
|
type: Component,
|
|
44
|
-
args: [{ standalone: true, selector: 'aril-collapse-reorder-list[formArrayName]', imports: [CdkDrag, CdkDropList, CdkDragHandle, ButtonComponent, NgTemplateOutlet], providers: [DialogService], template: "<div class=\"collapse-reorder-list\">\r\n\t<div class=\"collapse-reorder-list-item mb-2\">\r\n\t\t<div class=\"flex align-items-center justify-content-between p-2 aril-bg\">\r\n\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t<i\r\n\t\t\t\t\tclass=\"pi cursor-pointer p-2\"\r\n\t\t\t\t\t[class.pi-angle-down]=\"!isCollapsed\"\r\n\t\t\t\t\t[class.pi-angle-right]=\"isCollapsed\"\r\n\t\t\t\t\t(click)=\"isCollapsed = !isCollapsed\"></i>\r\n\r\n\t\t\t\t<div>{{ title() }}</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t@if (!isCollapsed) {\r\n\t\t\t<div class=\"flex flex-column ml-5 mt-2\">\r\n\t\t\t\t<div cdkDropList class=\"collapse-reorder-list\" (cdkDropListDropped)=\"drop($event)\">\r\n\t\t\t\t\t@for (fg of formArray.controls; track fg) {\r\n\t\t\t\t\t\t<form cdkDrag class=\"collapse-reorder-list-item mb-2\">\r\n\t\t\t\t\t\t\t<div class=\"flex align-items-center px-2 bg-bluegray-50\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi pi-bars cursor-move p-2\" cdkDragHandle></i>\r\n\r\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: fg }\" />\r\n\r\n\t\t\t\t\t\t\t\t<div class=\"flex gap-1\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"pi pi-trash cursor-pointer p-2 text-red-500\" (click)=\"removeField(fg)\"></i>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</form>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\tclass=\"w-max mb-2\"\r\n\t\t\t\t\t[label]=\"addFieldButtonLabel()\"\r\n\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t(clickEvent)=\"addField.emit()\" />\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n</div>\r\n", styles: [":host{width:100%}.cdk-drag-preview{border:none;font-size:1rem!important}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.collapse-reorder-list.cdk-drop-list-dragging .collapse-reorder-list-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.aril-bg{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%)}\n"] }]
|
|
44
|
+
args: [{ standalone: true, selector: 'aril-collapse-reorder-list[formArrayName]', imports: [CdkDrag, CdkDropList, CdkDragHandle, ButtonComponent, NgTemplateOutlet], providers: [DialogService], template: "<div class=\"collapse-reorder-list\">\r\n\t<div class=\"collapse-reorder-list-item mb-2\">\r\n\t\t<div class=\"flex align-items-center justify-content-between p-2 aril-bg text-white\">\r\n\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t<i\r\n\t\t\t\t\tclass=\"pi cursor-pointer p-2\"\r\n\t\t\t\t\t[class.pi-angle-down]=\"!isCollapsed\"\r\n\t\t\t\t\t[class.pi-angle-right]=\"isCollapsed\"\r\n\t\t\t\t\t(click)=\"isCollapsed = !isCollapsed\"></i>\r\n\r\n\t\t\t\t<div>{{ title() }}</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t@if (!isCollapsed) {\r\n\t\t\t<div class=\"flex flex-column ml-5 mt-2\">\r\n\t\t\t\t<div cdkDropList class=\"collapse-reorder-list\" (cdkDropListDropped)=\"drop($event)\">\r\n\t\t\t\t\t@for (fg of formArray.controls; track fg) {\r\n\t\t\t\t\t\t<form cdkDrag class=\"collapse-reorder-list-item mb-2\">\r\n\t\t\t\t\t\t\t<div class=\"flex align-items-center px-2 bg-bluegray-50\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi pi-bars cursor-move p-2\" cdkDragHandle></i>\r\n\r\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: fg }\" />\r\n\r\n\t\t\t\t\t\t\t\t<div class=\"flex gap-1\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"pi pi-trash cursor-pointer p-2 text-red-500\" (click)=\"removeField(fg)\"></i>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</form>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\tclass=\"w-max mb-2\"\r\n\t\t\t\t\t[label]=\"addFieldButtonLabel()\"\r\n\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t(clickEvent)=\"addField.emit()\" />\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n</div>\r\n", styles: [":host{width:100%}.cdk-drag-preview{border:none;font-size:1rem!important}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.collapse-reorder-list.cdk-drop-list-dragging .collapse-reorder-list-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.aril-bg{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%)}\n"] }]
|
|
45
45
|
}], ctorParameters: () => [{ type: i1.ControlContainer, decorators: [{
|
|
46
46
|
type: Optional
|
|
47
47
|
}] }], propDecorators: { itemTemplate: [{
|
|
@@ -50,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
50
50
|
}], addField: [{
|
|
51
51
|
type: Output
|
|
52
52
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2UtcmVvcmRlci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvY29sbGFwc2UtcmVvcmRlci1saXN0L3NyYy9jb2xsYXBzZS1yZW9yZGVyLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9jb2xsYXBzZS1yZW9yZGVyLWxpc3Qvc3JjL2NvbGxhcHNlLXJlb3JkZXItbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFlLGFBQWEsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0csT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc1RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFVakQsTUFBTSxPQUFPLDRCQUE0QjtJQVl4QyxZQUF5QyxnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVQzRSxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ2pDLHdCQUFtQixHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUMvQyxpQkFBWSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQy9CLGNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFeEIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFOUMsZ0JBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFFK0MsQ0FBQztJQUUvRSxJQUFJLFNBQVM7UUFDWixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUErQixDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLENBQUMsS0FBNEI7UUFDaEMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWxGLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRU8sYUFBYTtRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFZLENBQUMsRUFBRSxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxTQUFvQjtRQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUvQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQy9DLENBQUM7SUFDRixDQUFDOzhHQXJDVyw0QkFBNEI7a0dBQTVCLDRCQUE0QixnckJBRjdCLENBQUMsYUFBYSxDQUFDLG9FQUdaLFdBQVcsZ0RDbEIxQiwybURBMENBLDZkRDVCVyxPQUFPLHdiQUFFLFdBQVcsK2RBQUUsYUFBYSwrRkFBRSxlQUFlLGdNQUFFLGdCQUFnQjs7MkZBR3BFLDRCQUE0QjtrQkFSeEMsU0FBUztpQ0FDRyxJQUFJLFlBQ04sMkNBQTJDLFdBRzVDLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLGFBQ3RFLENBQUMsYUFBYSxDQUFDOzswQkFjYixRQUFRO3lDQVhNLFlBQVk7c0JBQXRDLFlBQVk7dUJBQUMsV0FBVztnQkFPZixRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZywgQ2RrRHJhZ0Ryb3AsIENka0RyYWdIYW5kbGUsIENka0Ryb3BMaXN0LCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIE9wdGlvbmFsLCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3JtQXJyYXksIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5cclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9idXR0b24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FyaWwtY29sbGFwc2UtcmVvcmRlci1saXN0W2Zvcm1BcnJheU5hbWVdJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vY29sbGFwc2UtcmVvcmRlci1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9jb2xsYXBzZS1yZW9yZGVyLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxuXHRpbXBvcnRzOiBbQ2RrRHJhZywgQ2RrRHJvcExpc3QsIENka0RyYWdIYW5kbGUsIEJ1dHRvbkNvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldF0sXHJcblx0cHJvdmlkZXJzOiBbRGlhbG9nU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbGxhcHNlUmVvcmRlckxpc3RDb21wb25lbnQge1xyXG5cdEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIGl0ZW1UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG5cdHRpdGxlID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG5cdGFkZEZpZWxkQnV0dG9uTGFiZWwgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcblx0cmVvcmRlckZpZWxkID0gaW5wdXQ8c3RyaW5nPigpO1xyXG5cdGNvbGxhcHNlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcblx0QE91dHB1dCgpIGFkZEZpZWxkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuXHRpc0NvbGxhcHNlZCA9IHRoaXMuY29sbGFwc2VkKCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcikge31cclxuXHJcblx0Z2V0IGZvcm1BcnJheSgpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbnRyb2xDb250YWluZXIuY29udHJvbCBhcyBGb3JtQXJyYXk8Rm9ybUdyb3VwPjtcclxuXHR9XHJcblxyXG5cdGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG5cdFx0bW92ZUl0ZW1JbkFycmF5KHRoaXMuZm9ybUFycmF5LmNvbnRyb2xzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG5cclxuXHRcdGlmICh0aGlzLnJlb3JkZXJGaWVsZCgpKSB0aGlzLnNldEZpZWxkT3JkZXIoKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2V0RmllbGRPcmRlcigpIHtcclxuXHRcdHRoaXMuZm9ybUFycmF5LmNvbnRyb2xzLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XHJcblx0XHRcdGl0ZW0uZ2V0KHRoaXMucmVvcmRlckZpZWxkKCkgYXMgc3RyaW5nKT8uc2V0VmFsdWUoaW5kZXggKyAxKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cmVtb3ZlRmllbGQoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcclxuXHRcdGNvbnN0IGluZGV4ID0gdGhpcy5mb3JtQXJyYXkuY29udHJvbHMuaW5kZXhPZihmb3JtR3JvdXApO1xyXG5cdFx0aWYgKGluZGV4ID4gLTEpIHtcclxuXHRcdFx0dGhpcy5mb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xyXG5cclxuXHRcdFx0aWYgKHRoaXMucmVvcmRlckZpZWxkKCkpIHRoaXMuc2V0RmllbGRPcmRlcigpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29sbGFwc2UtcmVvcmRlci1saXN0XCI+XHJcblx0PGRpdiBjbGFzcz1cImNvbGxhcHNlLXJlb3JkZXItbGlzdC1pdGVtIG1iLTJcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwLTIgYXJpbC1iZyB0ZXh0LXdoaXRlXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRjbGFzcz1cInBpIGN1cnNvci1wb2ludGVyIHAtMlwiXHJcblx0XHRcdFx0XHRbY2xhc3MucGktYW5nbGUtZG93bl09XCIhaXNDb2xsYXBzZWRcIlxyXG5cdFx0XHRcdFx0W2NsYXNzLnBpLWFuZ2xlLXJpZ2h0XT1cImlzQ29sbGFwc2VkXCJcclxuXHRcdFx0XHRcdChjbGljayk9XCJpc0NvbGxhcHNlZCA9ICFpc0NvbGxhcHNlZFwiPjwvaT5cclxuXHJcblx0XHRcdFx0PGRpdj57eyB0aXRsZSgpIH19PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblxyXG5cdFx0QGlmICghaXNDb2xsYXBzZWQpIHtcclxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gbWwtNSBtdC0yXCI+XHJcblx0XHRcdFx0PGRpdiBjZGtEcm9wTGlzdCBjbGFzcz1cImNvbGxhcHNlLXJlb3JkZXItbGlzdFwiIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XHJcblx0XHRcdFx0XHRAZm9yIChmZyBvZiBmb3JtQXJyYXkuY29udHJvbHM7IHRyYWNrIGZnKSB7XHJcblx0XHRcdFx0XHRcdDxmb3JtIGNka0RyYWcgY2xhc3M9XCJjb2xsYXBzZS1yZW9yZGVyLWxpc3QtaXRlbSBtYi0yXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIHB4LTIgYmctYmx1ZWdyYXktNTBcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktYmFycyBjdXJzb3ItbW92ZSBwLTJcIiBjZGtEcmFnSGFuZGxlPjwvaT5cclxuXHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogZmcgfVwiIC8+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggZ2FwLTFcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS10cmFzaCBjdXJzb3ItcG9pbnRlciBwLTIgdGV4dC1yZWQtNTAwXCIgKGNsaWNrKT1cInJlbW92ZUZpZWxkKGZnKVwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L2Zvcm0+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0PC9kaXY+XHJcblxyXG5cdFx0XHRcdDxhcmlsLWJ1dHRvblxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJ3LW1heCBtYi0yXCJcclxuXHRcdFx0XHRcdFtsYWJlbF09XCJhZGRGaWVsZEJ1dHRvbkxhYmVsKClcIlxyXG5cdFx0XHRcdFx0Y29sb3I9XCJzZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0W291dGxpbmVkXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0KGNsaWNrRXZlbnQpPVwiYWRkRmllbGQuZW1pdCgpXCIgLz5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHR9XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -44,6 +44,7 @@ export class TableComponent {
|
|
|
44
44
|
this.onPageEvent = new EventEmitter();
|
|
45
45
|
this.selectionEvent = new EventEmitter();
|
|
46
46
|
this.lazyLoadEvent = new EventEmitter();
|
|
47
|
+
this.rowReorderEvent = new EventEmitter();
|
|
47
48
|
this.kebabMenuItems = [];
|
|
48
49
|
this.data = input.required();
|
|
49
50
|
this.checkboxSelection = input();
|
|
@@ -257,7 +258,7 @@ export class TableComponent {
|
|
|
257
258
|
nativateToExportRequests() {
|
|
258
259
|
window.location.href = `${this.hostUrl}/#/mng/control-management/export-requests`;
|
|
259
260
|
}
|
|
260
|
-
rowReorder() {
|
|
261
|
+
rowReorder(event) {
|
|
261
262
|
if (!this.reorderField()) {
|
|
262
263
|
console.error('Reorder field is not defined. Please set the reorderField input.');
|
|
263
264
|
return;
|
|
@@ -269,19 +270,22 @@ export class TableComponent {
|
|
|
269
270
|
this.data().forEach((item, index) => {
|
|
270
271
|
item[this.reorderField()] = index + 1;
|
|
271
272
|
});
|
|
273
|
+
this.rowReorderEvent.emit(event);
|
|
272
274
|
}
|
|
273
275
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableComponent, deps: [{ token: i1.HttpClient }, { token: i2.NonNullableFormBuilder }, { token: i3.PrimeNGConfig }, { token: i3.MessageService }, { token: i4.TranslocoService }, { token: i5.SelectionGroupService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
274
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: TableComponent, selector: "aril-table", inputs: { kebabMenuItems: { classPropertyName: "kebabMenuItems", publicName: "kebabMenuItems", isSignal: false, isRequired: false, transformFunction: null }, expandableFields: { classPropertyName: "expandableFields", publicName: "expandableFields", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, checkboxSelection: { classPropertyName: "checkboxSelection", publicName: "checkboxSelection", isSignal: true, isRequired: false, transformFunction: null }, headerCheckboxSelection: { classPropertyName: "headerCheckboxSelection", publicName: "headerCheckboxSelection", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, proxy: { classPropertyName: "proxy", publicName: "proxy", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, tAlign: { classPropertyName: "tAlign", publicName: "tAlign", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, showSearchTool: { classPropertyName: "showSearchTool", publicName: "showSearchTool", isSignal: true, isRequired: false, transformFunction: null }, showExportTool: { classPropertyName: "showExportTool", publicName: "showExportTool", isSignal: true, isRequired: false, transformFunction: null }, exportFileName: { classPropertyName: "exportFileName", publicName: "exportFileName", isSignal: true, isRequired: false, transformFunction: null }, noDataFoundLabel: { classPropertyName: "noDataFoundLabel", publicName: "noDataFoundLabel", isSignal: true, isRequired: false, transformFunction: null }, tableHeader: { classPropertyName: "tableHeader", publicName: "tableHeader", isSignal: true, isRequired: false, transformFunction: null }, showTableHeader: { classPropertyName: "showTableHeader", publicName: "showTableHeader", isSignal: true, isRequired: false, transformFunction: null }, isFirstRowSelected: { classPropertyName: "isFirstRowSelected", publicName: "isFirstRowSelected", isSignal: true, isRequired: false, transformFunction: null }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: true, isRequired: false, transformFunction: null }, selectedRowsInput: { classPropertyName: "selectedRowsInput", publicName: "selectedRowsInput", isSignal: true, isRequired: false, transformFunction: null }, isLazy: { classPropertyName: "isLazy", publicName: "isLazy", isSignal: true, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, paginator: { classPropertyName: "paginator", publicName: "paginator", isSignal: true, isRequired: false, transformFunction: null }, paginatorDropdownAppendTo: { classPropertyName: "paginatorDropdownAppendTo", publicName: "paginatorDropdownAppendTo", isSignal: true, isRequired: false, transformFunction: null }, isColumnExpandMode: { classPropertyName: "isColumnExpandMode", publicName: "isColumnExpandMode", isSignal: true, isRequired: false, transformFunction: null }, isResizableColumns: { classPropertyName: "isResizableColumns", publicName: "isResizableColumns", isSignal: true, isRequired: false, transformFunction: null }, isSortable: { classPropertyName: "isSortable", publicName: "isSortable", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: true, isRequired: false, transformFunction: null }, sortMode: { classPropertyName: "sortMode", publicName: "sortMode", isSignal: true, isRequired: false, transformFunction: null }, showFirstLastIcon: { classPropertyName: "showFirstLastIcon", publicName: "showFirstLastIcon", isSignal: true, isRequired: false, transformFunction: null }, rowSelectable: { classPropertyName: "rowSelectable", publicName: "rowSelectable", isSignal: true, isRequired: false, transformFunction: null }, isShowNoDataFoundMessage: { classPropertyName: "isShowNoDataFoundMessage", publicName: "isShowNoDataFoundMessage", isSignal: true, isRequired: false, transformFunction: null }, reorderableColumns: { classPropertyName: "reorderableColumns", publicName: "reorderableColumns", isSignal: true, isRequired: false, transformFunction: null }, reorderField: { classPropertyName: "reorderField", publicName: "reorderField", isSignal: true, isRequired: false, transformFunction: null }, exportConfig: { classPropertyName: "exportConfig", publicName: "exportConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onPageEvent: "onPageEvent", selectionEvent: "selectionEvent", lazyLoadEvent: "lazyLoadEvent" }, queries: [{ propertyName: "columns", predicate: TableColumnComponent }], viewQueries: [{ propertyName: "op", first: true, predicate: OverlayPanel, descendants: true }, { propertyName: "tableRef", first: true, predicate: Table, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-table\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[dataKey]=\"dataKey()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"!this.isLazy() || this.totalRecords() > 10 ? this.paginator() : false\"\r\n\t[lazy]=\"isLazy()\"\r\n\t[lazyLoadOnInit]=\"false\"\r\n\t[totalRecords]=\"totalRecords()\"\r\n\t[rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n\t[rowSelectable]=\"rowSelectable()\"\r\n\t[filterDelay]=\"0\"\r\n\t[sortMode]=\"sortMode()\"\r\n\t[(selection)]=\"selectedRows\"\r\n\t(onPage)=\"onPageEvent.emit($event)\"\r\n\t(onLazyLoad)=\"handleLazyLoadEvent($event)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedRows)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[columnResizeMode]=\"isColumnExpandMode() ? 'expand' : ''\"\r\n\t[resizableColumns]=\"isResizableColumns()\"\r\n\t[currentPageReportTemplate]=\"currentPageReportText\"\r\n\tstyleClass=\"p-datatable-sm\"\r\n\t[paginatorDropdownAppendTo]=\"paginatorDropdownAppendTo()\"\r\n\t[scrollable]=\"scrollable()\"\r\n\t[scrollHeight]=\"scrollHeight()\"\r\n\t[showFirstLastIcon]=\"showFirstLastIcon()\"\r\n\t[reorderableColumns]=\"reorderableColumns()\"\r\n\t(onRowReorder)=\"rowReorder()\">\r\n\t<!--@if (tableHeader() || showSearchTool() || showExportTool()) {\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex space-between\">\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t@if (tableHeader().length) {\r\n\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t{{ tableHeader() }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t<div class=\"flex justify-content-end align-items-center\">\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event.target.value, 'contains')\">\r\n\t\t\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"excelExport()\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_PDF\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"PDF\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"exportPdf()\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (data() && kebabMenuItems.length > 0 ) {\r\n\t\t\t\t\t\t\t<div tools style=\"padding: 4px;margin-left: 4px;border:1px solid #6366f1;border-radius: 6px;background-color: #6366f1; color: white;\" >\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t[attr.role]=\"'none'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"pi mr-1 header-icon pi-ellipsis-v\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"bulkOperations.toggle($event);\"></i>\r\n\t\t\t\t\t\t\t\t<p-menu\r\n\t\t\t\t\t\t\t\t\t#bulkOperations\r\n\t\t\t\t\t\t\t\t\t[popup]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[model]=\"kebabMenuItems\"\r\n\t\t\t\t\t\t\t\t\tstyleClass=\"z-index: 9998899;\"\r\n\t\t\t\t\t\t\t\t\tappendTo=\"body\"></p-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t}-->\r\n\r\n\t<ng-template pTemplate=\"groupheader\" let-item let-rowIndex=\"rowIndex\" let-expanded=\"expanded\">\r\n\t\t<tr pRowGroupHeader style=\"background-color: #f8fafc\">\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">\r\n\t\t\t\t<span class=\"font-bold ml-2\" style=\"color: #6b7280\">{{ item.groupName }}</span>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (reorderableColumns()) {\r\n\t\t\t\t<th style=\"width: 3rem\"></th>\r\n\t\t\t}\r\n\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t@if (headerCheckboxSelection()) {\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n\t\t\t\t\t}\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.type() === 'operations') {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">\u0130\u015Flemler</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t@if (isResizableColumns()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tpResizableColumn>\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (!isLazy()) {\r\n\t\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else if (isSortable()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tstyle=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<th [ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\" style=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\r\n\t<ng-template pTemplate=\"body\" let-item let-columns=\"columns\" let-index=\"rowIndex\">\r\n\t\t@if (handledSelectionMode) {\r\n\t\t\t<tr\r\n\t\t\t\t[pSelectableRow]=\"item\"\r\n\t\t\t\t[ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : null }\"\r\n\t\t\t\t[pReorderableRow]=\"index\">\r\n\t\t\t\t@if (reorderableColumns()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<span class=\"pi pi-bars\" pReorderableRowHandle></span>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t} @else {\r\n\t\t\t<tr [ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : null }\" [pReorderableRow]=\"index\">\r\n\t\t\t\t@if (reorderableColumns()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<span class=\"pi pi-bars\" pReorderableRowHandle></span>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t}\r\n\t</ng-template>\r\n\r\n\t@if (showFooter()) {\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t}\r\n\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">{{ noDataFoundLabel() }}</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n\r\n<p-overlayPanel styleClass=\"export-overlay-panel\" [baseZIndex]=\"1101\">\r\n\t@if (exportForm) {\r\n\t\t<aril-form [formGroup]=\"exportForm\" class=\"w-20rem\">\r\n\t\t\t<aril-field [label]=\"'Dosya Tipi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-radio-button formControlName=\"exportType\" [options]=\"exportTypeOptions\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<aril-field [label]=\"'Dosya \u0130smi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-text class=\"w-full\" formControlName=\"exportLabel\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<ng-container formArrayName=\"columns\">\r\n\t\t\t\t<p-orderList\r\n\t\t\t\t\t#orderListRef\r\n\t\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t\t[value]=\"exportForm.controls.columns.controls\"\r\n\t\t\t\t\t[listStyle]=\"{ 'max-height': '20rem' }\"\r\n\t\t\t\t\tfilterBy=\"value.title\"\r\n\t\t\t\t\t[disabled]=\"isLoadingForExport()\">\r\n\t\t\t\t\t<ng-template pTemplate=\"filter\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-3\">\r\n\t\t\t\t\t\t\t<aril-checkbox\r\n\t\t\t\t\t\t\t\t[label]=\"''\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"isAllSelected\"\r\n\t\t\t\t\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"onSelectAll($event)\"\r\n\t\t\t\t\t\t\t\t[disabled]=\"isLoadingForExport()\" />\r\n\r\n\t\t\t\t\t\t\t<div class=\"p-orderlist-filter\" [attr.data-pc-section]=\"'filter'\">\r\n\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t#filter\r\n\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\trole=\"textbox\"\r\n\t\t\t\t\t\t\t\t\t(keyup)=\"orderListRef.onFilterKeyup($event)\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"orderListRef.disabled\"\r\n\t\t\t\t\t\t\t\t\tclass=\"p-orderlist-filter-input p-inputtext p-component\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template let-col pTemplate=\"item\">\r\n\t\t\t\t\t\t<aril-checkbox [label]=\"col.value.title\" [formControl]=\"col.controls.checked\" />\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-orderList>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<aril-button\r\n\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t[label]=\"translocoService.translate('navigateToExportRequests')\"\r\n\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t(clickEvent)=\"nativateToExportRequests()\" />\r\n\r\n\t\t\t<aril-button\r\n\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t[label]=\"translocoService.translate('messages.export')\"\r\n\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t(clickEvent)=\"export()\"\r\n\t\t\t\t[disabled]=\"isLoadingForExport()\" />\r\n\t\t</aril-form>\r\n\t}\r\n</p-overlayPanel>\r\n", styles: ["::ng-deep aril-table th{min-width:0px!important}::ng-deep .p-datatable .p-datatable-tbody>tr.p-highlight{background-color:#e3f2fd!important;color:#fff!important}\n"], dependencies: [{ kind: "component", type: i6.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: i7.ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "outlined", "badge", "size", "icon", "color"], outputs: ["clickEvent"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i8.CheckboxComponent, selector: "aril-checkbox[ngModel], aril-checkbox[formControl], aril-checkbox[formControlName]", inputs: ["label", "labelAsYesNo", "tabindex"] }, { kind: "component", type: i9.FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i11.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i12.OrderList, selector: "p-orderList", inputs: ["header", "style", "styleClass", "tabindex", "ariaLabel", "ariaLabelledBy", "listStyle", "responsive", "filterBy", "filterPlaceholder", "filterLocale", "metaKeySelection", "dragdrop", "controlsPosition", "ariaFilterLabel", "filterMatchMode", "breakpoint", "stripedRows", "disabled", "trackBy", "selection", "value"], outputs: ["selectionChange", "onReorder", "onSelectionChange", "onFilterEvent", "onFocus", "onBlur"] }, { kind: "component", type: i13.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i14.RadioButtonComponent, selector: "aril-radio-button[ngModel], aril-radio-button[formControl], aril-radio-button[formControlName]", inputs: ["options", "tabindex", "align"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i15.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i15.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: i15.RowGroupHeader, selector: "[pRowGroupHeader]" }, { kind: "directive", type: i15.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "directive", type: i15.ResizableColumn, selector: "[pResizableColumn]", inputs: ["pResizableColumnDisabled"] }, { kind: "component", type: i15.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i15.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i15.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "directive", type: i15.ReorderableRowHandle, selector: "[pReorderableRowHandle]" }, { kind: "directive", type: i15.ReorderableRow, selector: "[pReorderableRow]", inputs: ["pReorderableRow", "pReorderableRowDisabled"] }, { kind: "component", type: i16.TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }] }); }
|
|
276
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: TableComponent, selector: "aril-table", inputs: { kebabMenuItems: { classPropertyName: "kebabMenuItems", publicName: "kebabMenuItems", isSignal: false, isRequired: false, transformFunction: null }, expandableFields: { classPropertyName: "expandableFields", publicName: "expandableFields", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, checkboxSelection: { classPropertyName: "checkboxSelection", publicName: "checkboxSelection", isSignal: true, isRequired: false, transformFunction: null }, headerCheckboxSelection: { classPropertyName: "headerCheckboxSelection", publicName: "headerCheckboxSelection", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, proxy: { classPropertyName: "proxy", publicName: "proxy", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, tAlign: { classPropertyName: "tAlign", publicName: "tAlign", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, showSearchTool: { classPropertyName: "showSearchTool", publicName: "showSearchTool", isSignal: true, isRequired: false, transformFunction: null }, showExportTool: { classPropertyName: "showExportTool", publicName: "showExportTool", isSignal: true, isRequired: false, transformFunction: null }, exportFileName: { classPropertyName: "exportFileName", publicName: "exportFileName", isSignal: true, isRequired: false, transformFunction: null }, noDataFoundLabel: { classPropertyName: "noDataFoundLabel", publicName: "noDataFoundLabel", isSignal: true, isRequired: false, transformFunction: null }, tableHeader: { classPropertyName: "tableHeader", publicName: "tableHeader", isSignal: true, isRequired: false, transformFunction: null }, showTableHeader: { classPropertyName: "showTableHeader", publicName: "showTableHeader", isSignal: true, isRequired: false, transformFunction: null }, isFirstRowSelected: { classPropertyName: "isFirstRowSelected", publicName: "isFirstRowSelected", isSignal: true, isRequired: false, transformFunction: null }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: true, isRequired: false, transformFunction: null }, selectedRowsInput: { classPropertyName: "selectedRowsInput", publicName: "selectedRowsInput", isSignal: true, isRequired: false, transformFunction: null }, isLazy: { classPropertyName: "isLazy", publicName: "isLazy", isSignal: true, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, paginator: { classPropertyName: "paginator", publicName: "paginator", isSignal: true, isRequired: false, transformFunction: null }, paginatorDropdownAppendTo: { classPropertyName: "paginatorDropdownAppendTo", publicName: "paginatorDropdownAppendTo", isSignal: true, isRequired: false, transformFunction: null }, isColumnExpandMode: { classPropertyName: "isColumnExpandMode", publicName: "isColumnExpandMode", isSignal: true, isRequired: false, transformFunction: null }, isResizableColumns: { classPropertyName: "isResizableColumns", publicName: "isResizableColumns", isSignal: true, isRequired: false, transformFunction: null }, isSortable: { classPropertyName: "isSortable", publicName: "isSortable", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: true, isRequired: false, transformFunction: null }, sortMode: { classPropertyName: "sortMode", publicName: "sortMode", isSignal: true, isRequired: false, transformFunction: null }, showFirstLastIcon: { classPropertyName: "showFirstLastIcon", publicName: "showFirstLastIcon", isSignal: true, isRequired: false, transformFunction: null }, rowSelectable: { classPropertyName: "rowSelectable", publicName: "rowSelectable", isSignal: true, isRequired: false, transformFunction: null }, isShowNoDataFoundMessage: { classPropertyName: "isShowNoDataFoundMessage", publicName: "isShowNoDataFoundMessage", isSignal: true, isRequired: false, transformFunction: null }, reorderableColumns: { classPropertyName: "reorderableColumns", publicName: "reorderableColumns", isSignal: true, isRequired: false, transformFunction: null }, reorderField: { classPropertyName: "reorderField", publicName: "reorderField", isSignal: true, isRequired: false, transformFunction: null }, exportConfig: { classPropertyName: "exportConfig", publicName: "exportConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onPageEvent: "onPageEvent", selectionEvent: "selectionEvent", lazyLoadEvent: "lazyLoadEvent", rowReorderEvent: "rowReorderEvent" }, queries: [{ propertyName: "columns", predicate: TableColumnComponent }], viewQueries: [{ propertyName: "op", first: true, predicate: OverlayPanel, descendants: true }, { propertyName: "tableRef", first: true, predicate: Table, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-table\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[dataKey]=\"dataKey()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"!this.isLazy() || this.totalRecords() > 10 ? this.paginator() : false\"\r\n\t[lazy]=\"isLazy()\"\r\n\t[lazyLoadOnInit]=\"false\"\r\n\t[totalRecords]=\"totalRecords()\"\r\n\t[rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n\t[rowSelectable]=\"rowSelectable()\"\r\n\t[filterDelay]=\"0\"\r\n\t[sortMode]=\"sortMode()\"\r\n\t[(selection)]=\"selectedRows\"\r\n\t(onPage)=\"onPageEvent.emit($event)\"\r\n\t(onLazyLoad)=\"handleLazyLoadEvent($event)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedRows)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[columnResizeMode]=\"isColumnExpandMode() ? 'expand' : ''\"\r\n\t[resizableColumns]=\"isResizableColumns()\"\r\n\t[currentPageReportTemplate]=\"currentPageReportText\"\r\n\tstyleClass=\"p-datatable-sm\"\r\n\t[paginatorDropdownAppendTo]=\"paginatorDropdownAppendTo()\"\r\n\t[scrollable]=\"scrollable()\"\r\n\t[scrollHeight]=\"scrollHeight()\"\r\n\t[showFirstLastIcon]=\"showFirstLastIcon()\"\r\n\t[reorderableColumns]=\"reorderableColumns()\"\r\n\t(onRowReorder)=\"rowReorder($event)\">\r\n\t<!--@if (tableHeader() || showSearchTool() || showExportTool()) {\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex space-between\">\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t@if (tableHeader().length) {\r\n\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t{{ tableHeader() }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t<div class=\"flex justify-content-end align-items-center\">\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event.target.value, 'contains')\">\r\n\t\t\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"excelExport()\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_PDF\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"PDF\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"exportPdf()\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (data() && kebabMenuItems.length > 0 ) {\r\n\t\t\t\t\t\t\t<div tools style=\"padding: 4px;margin-left: 4px;border:1px solid #6366f1;border-radius: 6px;background-color: #6366f1; color: white;\" >\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t[attr.role]=\"'none'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"pi mr-1 header-icon pi-ellipsis-v\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"bulkOperations.toggle($event);\"></i>\r\n\t\t\t\t\t\t\t\t<p-menu\r\n\t\t\t\t\t\t\t\t\t#bulkOperations\r\n\t\t\t\t\t\t\t\t\t[popup]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[model]=\"kebabMenuItems\"\r\n\t\t\t\t\t\t\t\t\tstyleClass=\"z-index: 9998899;\"\r\n\t\t\t\t\t\t\t\t\tappendTo=\"body\"></p-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t}-->\r\n\r\n\t<ng-template pTemplate=\"groupheader\" let-item let-rowIndex=\"rowIndex\" let-expanded=\"expanded\">\r\n\t\t<tr pRowGroupHeader style=\"background-color: #f8fafc\">\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">\r\n\t\t\t\t<span class=\"font-bold ml-2\" style=\"color: #6b7280\">{{ item.groupName }}</span>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (reorderableColumns()) {\r\n\t\t\t\t<th style=\"width: 3rem\"></th>\r\n\t\t\t}\r\n\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t@if (headerCheckboxSelection()) {\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n\t\t\t\t\t}\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.type() === 'operations') {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">\u0130\u015Flemler</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t@if (isResizableColumns()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tpResizableColumn>\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (!isLazy()) {\r\n\t\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else if (isSortable()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tstyle=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<th [ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\" style=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\r\n\t<ng-template pTemplate=\"body\" let-item let-columns=\"columns\" let-index=\"rowIndex\">\r\n\t\t@if (handledSelectionMode) {\r\n\t\t\t<tr\r\n\t\t\t\t[pSelectableRow]=\"item\"\r\n\t\t\t\t[ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : null }\"\r\n\t\t\t\t[pReorderableRow]=\"index\">\r\n\t\t\t\t@if (reorderableColumns()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<span class=\"pi pi-bars\" pReorderableRowHandle></span>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t} @else {\r\n\t\t\t<tr [ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : null }\" [pReorderableRow]=\"index\">\r\n\t\t\t\t@if (reorderableColumns()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<span class=\"pi pi-bars\" pReorderableRowHandle></span>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t}\r\n\t</ng-template>\r\n\r\n\t@if (showFooter()) {\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t}\r\n\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">{{ noDataFoundLabel() }}</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n\r\n<p-overlayPanel styleClass=\"export-overlay-panel\" [baseZIndex]=\"1101\">\r\n\t@if (exportForm) {\r\n\t\t<aril-form [formGroup]=\"exportForm\" class=\"w-20rem\">\r\n\t\t\t<aril-field [label]=\"'Dosya Tipi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-radio-button formControlName=\"exportType\" [options]=\"exportTypeOptions\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<aril-field [label]=\"'Dosya \u0130smi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-text class=\"w-full\" formControlName=\"exportLabel\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<ng-container formArrayName=\"columns\">\r\n\t\t\t\t<p-orderList\r\n\t\t\t\t\t#orderListRef\r\n\t\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t\t[value]=\"exportForm.controls.columns.controls\"\r\n\t\t\t\t\t[listStyle]=\"{ 'max-height': '20rem' }\"\r\n\t\t\t\t\tfilterBy=\"value.title\"\r\n\t\t\t\t\t[disabled]=\"isLoadingForExport()\">\r\n\t\t\t\t\t<ng-template pTemplate=\"filter\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-3\">\r\n\t\t\t\t\t\t\t<aril-checkbox\r\n\t\t\t\t\t\t\t\t[label]=\"''\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"isAllSelected\"\r\n\t\t\t\t\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"onSelectAll($event)\"\r\n\t\t\t\t\t\t\t\t[disabled]=\"isLoadingForExport()\" />\r\n\r\n\t\t\t\t\t\t\t<div class=\"p-orderlist-filter\" [attr.data-pc-section]=\"'filter'\">\r\n\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t#filter\r\n\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\trole=\"textbox\"\r\n\t\t\t\t\t\t\t\t\t(keyup)=\"orderListRef.onFilterKeyup($event)\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"orderListRef.disabled\"\r\n\t\t\t\t\t\t\t\t\tclass=\"p-orderlist-filter-input p-inputtext p-component\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template let-col pTemplate=\"item\">\r\n\t\t\t\t\t\t<aril-checkbox [label]=\"col.value.title\" [formControl]=\"col.controls.checked\" />\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-orderList>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<aril-button\r\n\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t[label]=\"translocoService.translate('navigateToExportRequests')\"\r\n\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t(clickEvent)=\"nativateToExportRequests()\" />\r\n\r\n\t\t\t<aril-button\r\n\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t[label]=\"translocoService.translate('messages.export')\"\r\n\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t(clickEvent)=\"export()\"\r\n\t\t\t\t[disabled]=\"isLoadingForExport()\" />\r\n\t\t</aril-form>\r\n\t}\r\n</p-overlayPanel>\r\n", styles: ["::ng-deep aril-table th{min-width:0px!important}::ng-deep .p-datatable .p-datatable-tbody>tr.p-highlight{background-color:#e3f2fd!important;color:#fff!important}\n"], dependencies: [{ kind: "component", type: i6.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: i7.ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "outlined", "badge", "size", "icon", "color"], outputs: ["clickEvent"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i8.CheckboxComponent, selector: "aril-checkbox[ngModel], aril-checkbox[formControl], aril-checkbox[formControlName]", inputs: ["label", "labelAsYesNo", "tabindex"] }, { kind: "component", type: i9.FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i11.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i12.OrderList, selector: "p-orderList", inputs: ["header", "style", "styleClass", "tabindex", "ariaLabel", "ariaLabelledBy", "listStyle", "responsive", "filterBy", "filterPlaceholder", "filterLocale", "metaKeySelection", "dragdrop", "controlsPosition", "ariaFilterLabel", "filterMatchMode", "breakpoint", "stripedRows", "disabled", "trackBy", "selection", "value"], outputs: ["selectionChange", "onReorder", "onSelectionChange", "onFilterEvent", "onFocus", "onBlur"] }, { kind: "component", type: i13.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i14.RadioButtonComponent, selector: "aril-radio-button[ngModel], aril-radio-button[formControl], aril-radio-button[formControlName]", inputs: ["options", "tabindex", "align"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i15.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i15.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: i15.RowGroupHeader, selector: "[pRowGroupHeader]" }, { kind: "directive", type: i15.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "directive", type: i15.ResizableColumn, selector: "[pResizableColumn]", inputs: ["pResizableColumnDisabled"] }, { kind: "component", type: i15.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i15.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i15.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "directive", type: i15.ReorderableRowHandle, selector: "[pReorderableRowHandle]" }, { kind: "directive", type: i15.ReorderableRow, selector: "[pReorderableRow]", inputs: ["pReorderableRow", "pReorderableRowDisabled"] }, { kind: "component", type: i16.TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }] }); }
|
|
275
277
|
}
|
|
276
278
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableComponent, decorators: [{
|
|
277
279
|
type: Component,
|
|
278
|
-
args: [{ selector: 'aril-table', template: "<p-table\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[dataKey]=\"dataKey()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"!this.isLazy() || this.totalRecords() > 10 ? this.paginator() : false\"\r\n\t[lazy]=\"isLazy()\"\r\n\t[lazyLoadOnInit]=\"false\"\r\n\t[totalRecords]=\"totalRecords()\"\r\n\t[rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n\t[rowSelectable]=\"rowSelectable()\"\r\n\t[filterDelay]=\"0\"\r\n\t[sortMode]=\"sortMode()\"\r\n\t[(selection)]=\"selectedRows\"\r\n\t(onPage)=\"onPageEvent.emit($event)\"\r\n\t(onLazyLoad)=\"handleLazyLoadEvent($event)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedRows)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[columnResizeMode]=\"isColumnExpandMode() ? 'expand' : ''\"\r\n\t[resizableColumns]=\"isResizableColumns()\"\r\n\t[currentPageReportTemplate]=\"currentPageReportText\"\r\n\tstyleClass=\"p-datatable-sm\"\r\n\t[paginatorDropdownAppendTo]=\"paginatorDropdownAppendTo()\"\r\n\t[scrollable]=\"scrollable()\"\r\n\t[scrollHeight]=\"scrollHeight()\"\r\n\t[showFirstLastIcon]=\"showFirstLastIcon()\"\r\n\t[reorderableColumns]=\"reorderableColumns()\"\r\n\t(onRowReorder)=\"rowReorder()\">\r\n\t<!--@if (tableHeader() || showSearchTool() || showExportTool()) {\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex space-between\">\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t@if (tableHeader().length) {\r\n\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t{{ tableHeader() }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t<div class=\"flex justify-content-end align-items-center\">\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event.target.value, 'contains')\">\r\n\t\t\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"excelExport()\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_PDF\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"PDF\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"exportPdf()\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (data() && kebabMenuItems.length > 0 ) {\r\n\t\t\t\t\t\t\t<div tools style=\"padding: 4px;margin-left: 4px;border:1px solid #6366f1;border-radius: 6px;background-color: #6366f1; color: white;\" >\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t[attr.role]=\"'none'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"pi mr-1 header-icon pi-ellipsis-v\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"bulkOperations.toggle($event);\"></i>\r\n\t\t\t\t\t\t\t\t<p-menu\r\n\t\t\t\t\t\t\t\t\t#bulkOperations\r\n\t\t\t\t\t\t\t\t\t[popup]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[model]=\"kebabMenuItems\"\r\n\t\t\t\t\t\t\t\t\tstyleClass=\"z-index: 9998899;\"\r\n\t\t\t\t\t\t\t\t\tappendTo=\"body\"></p-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t}-->\r\n\r\n\t<ng-template pTemplate=\"groupheader\" let-item let-rowIndex=\"rowIndex\" let-expanded=\"expanded\">\r\n\t\t<tr pRowGroupHeader style=\"background-color: #f8fafc\">\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">\r\n\t\t\t\t<span class=\"font-bold ml-2\" style=\"color: #6b7280\">{{ item.groupName }}</span>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (reorderableColumns()) {\r\n\t\t\t\t<th style=\"width: 3rem\"></th>\r\n\t\t\t}\r\n\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t@if (headerCheckboxSelection()) {\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n\t\t\t\t\t}\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.type() === 'operations') {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">\u0130\u015Flemler</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t@if (isResizableColumns()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tpResizableColumn>\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (!isLazy()) {\r\n\t\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else if (isSortable()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tstyle=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<th [ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\" style=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\r\n\t<ng-template pTemplate=\"body\" let-item let-columns=\"columns\" let-index=\"rowIndex\">\r\n\t\t@if (handledSelectionMode) {\r\n\t\t\t<tr\r\n\t\t\t\t[pSelectableRow]=\"item\"\r\n\t\t\t\t[ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : null }\"\r\n\t\t\t\t[pReorderableRow]=\"index\">\r\n\t\t\t\t@if (reorderableColumns()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<span class=\"pi pi-bars\" pReorderableRowHandle></span>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t} @else {\r\n\t\t\t<tr [ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : null }\" [pReorderableRow]=\"index\">\r\n\t\t\t\t@if (reorderableColumns()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<span class=\"pi pi-bars\" pReorderableRowHandle></span>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t}\r\n\t</ng-template>\r\n\r\n\t@if (showFooter()) {\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t}\r\n\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">{{ noDataFoundLabel() }}</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n\r\n<p-overlayPanel styleClass=\"export-overlay-panel\" [baseZIndex]=\"1101\">\r\n\t@if (exportForm) {\r\n\t\t<aril-form [formGroup]=\"exportForm\" class=\"w-20rem\">\r\n\t\t\t<aril-field [label]=\"'Dosya Tipi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-radio-button formControlName=\"exportType\" [options]=\"exportTypeOptions\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<aril-field [label]=\"'Dosya \u0130smi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-text class=\"w-full\" formControlName=\"exportLabel\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<ng-container formArrayName=\"columns\">\r\n\t\t\t\t<p-orderList\r\n\t\t\t\t\t#orderListRef\r\n\t\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t\t[value]=\"exportForm.controls.columns.controls\"\r\n\t\t\t\t\t[listStyle]=\"{ 'max-height': '20rem' }\"\r\n\t\t\t\t\tfilterBy=\"value.title\"\r\n\t\t\t\t\t[disabled]=\"isLoadingForExport()\">\r\n\t\t\t\t\t<ng-template pTemplate=\"filter\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-3\">\r\n\t\t\t\t\t\t\t<aril-checkbox\r\n\t\t\t\t\t\t\t\t[label]=\"''\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"isAllSelected\"\r\n\t\t\t\t\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"onSelectAll($event)\"\r\n\t\t\t\t\t\t\t\t[disabled]=\"isLoadingForExport()\" />\r\n\r\n\t\t\t\t\t\t\t<div class=\"p-orderlist-filter\" [attr.data-pc-section]=\"'filter'\">\r\n\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t#filter\r\n\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\trole=\"textbox\"\r\n\t\t\t\t\t\t\t\t\t(keyup)=\"orderListRef.onFilterKeyup($event)\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"orderListRef.disabled\"\r\n\t\t\t\t\t\t\t\t\tclass=\"p-orderlist-filter-input p-inputtext p-component\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template let-col pTemplate=\"item\">\r\n\t\t\t\t\t\t<aril-checkbox [label]=\"col.value.title\" [formControl]=\"col.controls.checked\" />\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-orderList>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<aril-button\r\n\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t[label]=\"translocoService.translate('navigateToExportRequests')\"\r\n\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t(clickEvent)=\"nativateToExportRequests()\" />\r\n\r\n\t\t\t<aril-button\r\n\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t[label]=\"translocoService.translate('messages.export')\"\r\n\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t(clickEvent)=\"export()\"\r\n\t\t\t\t[disabled]=\"isLoadingForExport()\" />\r\n\t\t</aril-form>\r\n\t}\r\n</p-overlayPanel>\r\n", styles: ["::ng-deep aril-table th{min-width:0px!important}::ng-deep .p-datatable .p-datatable-tbody>tr.p-highlight{background-color:#e3f2fd!important;color:#fff!important}\n"] }]
|
|
280
|
+
args: [{ selector: 'aril-table', template: "<p-table\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[dataKey]=\"dataKey()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"!this.isLazy() || this.totalRecords() > 10 ? this.paginator() : false\"\r\n\t[lazy]=\"isLazy()\"\r\n\t[lazyLoadOnInit]=\"false\"\r\n\t[totalRecords]=\"totalRecords()\"\r\n\t[rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n\t[rowSelectable]=\"rowSelectable()\"\r\n\t[filterDelay]=\"0\"\r\n\t[sortMode]=\"sortMode()\"\r\n\t[(selection)]=\"selectedRows\"\r\n\t(onPage)=\"onPageEvent.emit($event)\"\r\n\t(onLazyLoad)=\"handleLazyLoadEvent($event)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedRows)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[columnResizeMode]=\"isColumnExpandMode() ? 'expand' : ''\"\r\n\t[resizableColumns]=\"isResizableColumns()\"\r\n\t[currentPageReportTemplate]=\"currentPageReportText\"\r\n\tstyleClass=\"p-datatable-sm\"\r\n\t[paginatorDropdownAppendTo]=\"paginatorDropdownAppendTo()\"\r\n\t[scrollable]=\"scrollable()\"\r\n\t[scrollHeight]=\"scrollHeight()\"\r\n\t[showFirstLastIcon]=\"showFirstLastIcon()\"\r\n\t[reorderableColumns]=\"reorderableColumns()\"\r\n\t(onRowReorder)=\"rowReorder($event)\">\r\n\t<!--@if (tableHeader() || showSearchTool() || showExportTool()) {\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex space-between\">\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t@if (tableHeader().length) {\r\n\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t{{ tableHeader() }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t<div class=\"flex justify-content-end align-items-center\">\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event.target.value, 'contains')\">\r\n\t\t\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"excelExport()\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_PDF\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"PDF\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"exportPdf()\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (data() && kebabMenuItems.length > 0 ) {\r\n\t\t\t\t\t\t\t<div tools style=\"padding: 4px;margin-left: 4px;border:1px solid #6366f1;border-radius: 6px;background-color: #6366f1; color: white;\" >\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t[attr.role]=\"'none'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"pi mr-1 header-icon pi-ellipsis-v\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"bulkOperations.toggle($event);\"></i>\r\n\t\t\t\t\t\t\t\t<p-menu\r\n\t\t\t\t\t\t\t\t\t#bulkOperations\r\n\t\t\t\t\t\t\t\t\t[popup]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[model]=\"kebabMenuItems\"\r\n\t\t\t\t\t\t\t\t\tstyleClass=\"z-index: 9998899;\"\r\n\t\t\t\t\t\t\t\t\tappendTo=\"body\"></p-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t}-->\r\n\r\n\t<ng-template pTemplate=\"groupheader\" let-item let-rowIndex=\"rowIndex\" let-expanded=\"expanded\">\r\n\t\t<tr pRowGroupHeader style=\"background-color: #f8fafc\">\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">\r\n\t\t\t\t<span class=\"font-bold ml-2\" style=\"color: #6b7280\">{{ item.groupName }}</span>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (reorderableColumns()) {\r\n\t\t\t\t<th style=\"width: 3rem\"></th>\r\n\t\t\t}\r\n\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t@if (headerCheckboxSelection()) {\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n\t\t\t\t\t}\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.type() === 'operations') {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">\u0130\u015Flemler</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t@if (isResizableColumns()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tpResizableColumn>\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (!isLazy()) {\r\n\t\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else if (isSortable()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tstyle=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<th [ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\" style=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\r\n\t<ng-template pTemplate=\"body\" let-item let-columns=\"columns\" let-index=\"rowIndex\">\r\n\t\t@if (handledSelectionMode) {\r\n\t\t\t<tr\r\n\t\t\t\t[pSelectableRow]=\"item\"\r\n\t\t\t\t[ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : null }\"\r\n\t\t\t\t[pReorderableRow]=\"index\">\r\n\t\t\t\t@if (reorderableColumns()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<span class=\"pi pi-bars\" pReorderableRowHandle></span>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t} @else {\r\n\t\t\t<tr [ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : null }\" [pReorderableRow]=\"index\">\r\n\t\t\t\t@if (reorderableColumns()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<span class=\"pi pi-bars\" pReorderableRowHandle></span>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t}\r\n\t</ng-template>\r\n\r\n\t@if (showFooter()) {\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t}\r\n\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">{{ noDataFoundLabel() }}</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n\r\n<p-overlayPanel styleClass=\"export-overlay-panel\" [baseZIndex]=\"1101\">\r\n\t@if (exportForm) {\r\n\t\t<aril-form [formGroup]=\"exportForm\" class=\"w-20rem\">\r\n\t\t\t<aril-field [label]=\"'Dosya Tipi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-radio-button formControlName=\"exportType\" [options]=\"exportTypeOptions\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<aril-field [label]=\"'Dosya \u0130smi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-text class=\"w-full\" formControlName=\"exportLabel\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<ng-container formArrayName=\"columns\">\r\n\t\t\t\t<p-orderList\r\n\t\t\t\t\t#orderListRef\r\n\t\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t\t[value]=\"exportForm.controls.columns.controls\"\r\n\t\t\t\t\t[listStyle]=\"{ 'max-height': '20rem' }\"\r\n\t\t\t\t\tfilterBy=\"value.title\"\r\n\t\t\t\t\t[disabled]=\"isLoadingForExport()\">\r\n\t\t\t\t\t<ng-template pTemplate=\"filter\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-3\">\r\n\t\t\t\t\t\t\t<aril-checkbox\r\n\t\t\t\t\t\t\t\t[label]=\"''\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"isAllSelected\"\r\n\t\t\t\t\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"onSelectAll($event)\"\r\n\t\t\t\t\t\t\t\t[disabled]=\"isLoadingForExport()\" />\r\n\r\n\t\t\t\t\t\t\t<div class=\"p-orderlist-filter\" [attr.data-pc-section]=\"'filter'\">\r\n\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t#filter\r\n\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\trole=\"textbox\"\r\n\t\t\t\t\t\t\t\t\t(keyup)=\"orderListRef.onFilterKeyup($event)\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"orderListRef.disabled\"\r\n\t\t\t\t\t\t\t\t\tclass=\"p-orderlist-filter-input p-inputtext p-component\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template let-col pTemplate=\"item\">\r\n\t\t\t\t\t\t<aril-checkbox [label]=\"col.value.title\" [formControl]=\"col.controls.checked\" />\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-orderList>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<aril-button\r\n\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t[label]=\"translocoService.translate('navigateToExportRequests')\"\r\n\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t(clickEvent)=\"nativateToExportRequests()\" />\r\n\r\n\t\t\t<aril-button\r\n\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t[label]=\"translocoService.translate('messages.export')\"\r\n\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t(clickEvent)=\"export()\"\r\n\t\t\t\t[disabled]=\"isLoadingForExport()\" />\r\n\t\t</aril-form>\r\n\t}\r\n</p-overlayPanel>\r\n", styles: ["::ng-deep aril-table th{min-width:0px!important}::ng-deep .p-datatable .p-datatable-tbody>tr.p-highlight{background-color:#e3f2fd!important;color:#fff!important}\n"] }]
|
|
279
281
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.NonNullableFormBuilder }, { type: i3.PrimeNGConfig }, { type: i3.MessageService }, { type: i4.TranslocoService }, { type: i5.SelectionGroupService }], propDecorators: { onPageEvent: [{
|
|
280
282
|
type: Output
|
|
281
283
|
}], selectionEvent: [{
|
|
282
284
|
type: Output
|
|
283
285
|
}], lazyLoadEvent: [{
|
|
284
286
|
type: Output
|
|
287
|
+
}], rowReorderEvent: [{
|
|
288
|
+
type: Output
|
|
285
289
|
}], columns: [{
|
|
286
290
|
type: ContentChildren,
|
|
287
291
|
args: [TableColumnComponent]
|
|
@@ -296,4 +300,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
296
300
|
}], expandableFields: [{
|
|
297
301
|
type: Input
|
|
298
302
|
}] } });
|
|
299
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNOLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBcUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBRzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixjQUFjLEVBQ2QsSUFBSSxFQUNKLFFBQVEsRUFDUixHQUFHLEVBQ0gsU0FBUyxFQUNULElBQUksRUFFSixVQUFVLEVBQ1YsT0FBTyxFQUNQLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNyQyxPQUFPLEVBQTBFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsSCxPQUFPLEVBQWMsb0JBQW9CLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUxRjs7Ozs7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SUFBSSxDQUFDLFlBQVksRUFBWSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBcFRXLGNBQWM7a0dBQWQsY0FBYyxtcEtBSVQsb0JBQW9CLGlFQUMxQixZQUFZLDJFQUNaLEtBQUsscUVDdkVqQixpZ1hBcVNBOzsyRkRwT2EsY0FBYztrQkFMMUIsU0FBUzsrQkFDQyxZQUFZO2dQQUtaLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNnQyxPQUFPO3NCQUE3QyxlQUFlO3VCQUFDLG9CQUFvQjtnQkFDWixFQUFFO3NCQUExQixTQUFTO3VCQUFDLFlBQVk7Z0JBQ0wsUUFBUTtzQkFBekIsU0FBUzt1QkFBQyxLQUFLO2dCQUNQLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0Q29udGVudENoaWxkcmVuLFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRJbnB1dCxcclxuXHRPdXRwdXQsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxuXHRWaWV3Q2hpbGQsXHJcblx0ZWZmZWN0LFxyXG5cdGlucHV0LFxyXG5cdHNpZ25hbFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBNZW51SXRlbSwgTWVzc2FnZVNlcnZpY2UsIFByaW1lTkdDb25maWcgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IE92ZXJsYXlQYW5lbCB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcclxuaW1wb3J0IHsgVGFibGUsIFRhYmxlUm93UmVvcmRlckV2ZW50IH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHtcclxuXHRjYXRjaEVycm9yLFxyXG5cdGNvbmNhdE1hcCxcclxuXHRmaWx0ZXIsXHJcblx0ZmluYWxpemUsXHJcblx0Zmlyc3RWYWx1ZUZyb20sXHJcblx0ZnJvbSxcclxuXHRpbnRlcnZhbCxcclxuXHRtYXAsXHJcblx0c3dpdGNoTWFwLFxyXG5cdHRha2UsXHJcblx0dGFwLFxyXG5cdHRocm93RXJyb3IsXHJcblx0dG9BcnJheVxyXG59IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQVBJX0NPTkZJR1MgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcbmltcG9ydCB7IFByb3h5VHlwZXMgfSBmcm9tICdhcmlsL2h0dHAnO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25Hcm91cFNlcnZpY2UgfSBmcm9tICdhcmlsL3RoZW1lL2xheW91dCc7XHJcblxyXG5pbXBvcnQgeyB0cmFubGF0aW9ucyB9IGZyb20gJy4vaTE4bic7XHJcbmltcG9ydCB7IENvbEZvcm0sIENvbHVtbkZpZWxkVmFsdWVNYXAsIEV4cG9ydEZvcm0sIEV4cG9ydE9wdGlvbnMsIEV4cG9ydFJlcXVlc3QsIEV4cG9ydFR5cGUgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBBbGlnblR5cGVzLCBUYWJsZUNvbHVtbkNvbXBvbmVudCwgVGFibGVDb2x1bW5zIH0gZnJvbSAnLi90YWJsZS1jb2x1bW4uY29tcG9uZW50JztcclxuXHJcbi8qIFRPRE8gOlxyXG4gKiBzZXJ2ZXItc2lkZS1wcm94eSAoUHJveHlUeXBlcy5TZXJ2ZXJTaWRlKVxyXG4gKiBzZWFyY2ggJiBjb2x1bSBmaWx0ZXIgJiBzb3J0XHJcbiAqIHBhZ2luYXRpb24gb3BlcmF0aW9uXHJcbiAqIFF1ZXJ5IFNpZ25hbHNcclxuICovXHJcbmNvbnN0IHBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0gYXMgY29uc3Q7XHJcblxyXG50eXBlIFNlbGVjdGlvblR5cGVzID0gJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgbnVsbDtcclxuaW50ZXJmYWNlIElLZWJhYk1lbnVJdGVtIHtcclxuXHRpY29uOiBzdHJpbmc7XHJcblx0bGFiZWw6IHN0cmluZztcclxuXHRvbkNsaWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXJpbC10YWJsZScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCB7XHJcblx0QE91dHB1dCgpIG9uUGFnZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdEBPdXRwdXQoKSBzZWxlY3Rpb25FdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRAT3V0cHV0KCkgbGF6eUxvYWRFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRAQ29udGVudENoaWxkcmVuKFRhYmxlQ29sdW1uQ29tcG9uZW50KSBjb2x1bW5zITogVGFibGVDb2x1bW5zO1xyXG5cdEBWaWV3Q2hpbGQoT3ZlcmxheVBhbmVsKSBvcCE6IE92ZXJsYXlQYW5lbDtcclxuXHRAVmlld0NoaWxkKFRhYmxlKSB0YWJsZVJlZiE6IFRhYmxlO1xyXG5cdEBJbnB1dCgpIGtlYmFiTWVudUl0ZW1zOiBNZW51SXRlbVtdID0gW107XHJcblx0QElucHV0KCkgZXhwYW5kYWJsZUZpZWxkcyE6IHN0cmluZztcclxuXHJcblx0ZGF0YSA9IGlucHV0LnJlcXVpcmVkPGFueVtdPigpO1xyXG5cdGNoZWNrYm94U2VsZWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oKTtcclxuXHRoZWFkZXJDaGVja2JveFNlbGVjdGlvbiA9IGlucHV0PGJvb2xlYW4+KCk7XHJcblx0cGFnZVNpemUgPSBpbnB1dDwodHlwZW9mIHBhZ2VPcHRpb25zKVtudW1iZXJdPigxMCk7XHJcblx0cHJveHkgPSBpbnB1dDxQcm94eVR5cGVzPihQcm94eVR5cGVzLk5hdGl2ZSk7XHJcblx0c2hvd0Zvb3RlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHR0QWxpZ24gPSBpbnB1dDxBbGlnblR5cGVzPignbGVmdCcpO1xyXG5cdHNlbGVjdGlvbk1vZGUgPSBpbnB1dDxTZWxlY3Rpb25UeXBlcz4oJ3NpbmdsZScpO1xyXG5cdHNob3dTZWFyY2hUb29sID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0c2hvd0V4cG9ydFRvb2wgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRleHBvcnRGaWxlTmFtZSA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdG5vRGF0YUZvdW5kTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdObyBEYXRhIEZvdW5kJyk7XHJcblx0dGFibGVIZWFkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRzaG93VGFibGVIZWFkZXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aXNGaXJzdFJvd1NlbGVjdGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGRhdGFLZXkgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRzZWxlY3RlZFJvd3NJbnB1dCA9IGlucHV0PGFueT4oW10pO1xyXG5cdGlzTGF6eSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHR0b3RhbFJlY29yZHMgPSBpbnB1dDxudW1iZXI+KDApO1xyXG5cdHBhZ2luYXRvciA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdHBhZ2luYXRvckRyb3Bkb3duQXBwZW5kVG8gPSBpbnB1dDxzdHJpbmc+KCdib2R5Jyk7IC8vICdib2R5J3wgJ215RGl2J1xyXG5cdGlzQ29sdW1uRXhwYW5kTW9kZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRpc1Jlc2l6YWJsZUNvbHVtbnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aXNTb3J0YWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRoYW5kbGVkU2VsZWN0aW9uTW9kZTogU2VsZWN0aW9uVHlwZXMgPSAnc2luZ2xlJztcclxuXHRzY3JvbGxhYmxlID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0c2Nyb2xsSGVpZ2h0ID0gaW5wdXQ8c3RyaW5nPignMzgwcHgnKTtcclxuXHRzb3J0TW9kZSA9IGlucHV0PCdzaW5nbGUnIHwgJ211bHRpcGxlJz4oJ211bHRpcGxlJyk7XHJcblx0c2hvd0ZpcnN0TGFzdEljb24gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRyb3dTZWxlY3RhYmxlID0gaW5wdXQ8KHJvd0RhdGE6IGFueSkgPT4gYm9vbGVhbj4oKCkgPT4gdHJ1ZSk7XHJcblx0aXNTaG93Tm9EYXRhRm91bmRNZXNzYWdlID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0cmVvcmRlcmFibGVDb2x1bW5zID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdHJlb3JkZXJGaWVsZCA9IGlucHV0PHN0cmluZz4oKTtcclxuXHJcblx0LyoqXHJcblx0ICogQHNlZSB7QGxpbmsgRXhwb3J0T3B0aW9uc31cclxuXHQgKi9cclxuXHRleHBvcnRDb25maWcgPSBpbnB1dDxFeHBvcnRPcHRpb25zPigpO1xyXG5cclxuXHRleHBvcnRGb3JtITogRm9ybUdyb3VwPEV4cG9ydEZvcm0+O1xyXG5cdGV4cG9ydFR5cGVPcHRpb25zID0gW1xyXG5cdFx0eyBrZXk6IEV4cG9ydFR5cGUuRXhjZWwsIGxhYmVsOiAnRXhjZWwnLCBmaWxlRXh0ZW5zaW9uOiAnLnhsc3gnIH0sXHJcblx0XHR7IGtleTogRXhwb3J0VHlwZS5Dc3YsIGxhYmVsOiAnQ3N2JywgZmlsZUV4dGVuc2lvbjogJy5jc3YnIH1cclxuXHRdO1xyXG5cdGlzTG9hZGluZ0ZvckV4cG9ydCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cdGZpbHRlclRleHQhOiBzdHJpbmc7XHJcblx0aXNBbGxTZWxlY3RlZCA9IHRydWU7XHJcblx0c2VsZWN0ZWRSb3dzOiBhbnk7XHJcblx0cGFnZU9wdGlvbnMgPSBwYWdlT3B0aW9ucztcclxuXHRleHBvcnRDb2x1bW5zOiBBcnJheTx7IHRpdGxlOiBzdHJpbmc7IGRhdGFLZXk6IHN0cmluZyB9PiA9IFtdO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuXHRcdHByaXZhdGUgZmI6IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsXHJcblx0XHRwcml2YXRlIHByaW1lbmdDb25maWc6IFByaW1lTkdDb25maWcsXHJcblx0XHRwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuXHRcdHB1YmxpYyB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBzZWxlY3Rpb25Hcm91cFNlcnZpY2U6IFNlbGVjdGlvbkdyb3VwU2VydmljZVxyXG5cdCkge1xyXG5cdFx0dGhpcy5wcmltZW5nQ29uZmlnLnNldFRyYW5zbGF0aW9uKHRyYW5sYXRpb25zKTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5pc0ZpcnN0Um93U2VsZWN0ZWQoKSAmJiB0aGlzLmRhdGEoKSkge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRSb3dzID0gdGhpcy5kYXRhKClbMF07XHJcblx0XHRcdFx0dGhpcy5zZWxlY3Rpb25FdmVudC5lbWl0KHRoaXMuc2VsZWN0ZWRSb3dzKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWRSb3dzSW5wdXQoKSkge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRSb3dzID0gdGhpcy5zZWxlY3RlZFJvd3NJbnB1dCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5leHBvcnRDb25maWcoKSkge1xyXG5cdFx0XHRcdHRoaXMuY3JlYXRlRXhwb3J0Rm9ybSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5jaGVja2JveFNlbGVjdGlvbigpKSB0aGlzLmhhbmRsZWRTZWxlY3Rpb25Nb2RlID0gbnVsbDtcclxuXHRcdFx0ZWxzZSB0aGlzLmhhbmRsZWRTZWxlY3Rpb25Nb2RlID0gdGhpcy5zZWxlY3Rpb25Nb2RlKCk7XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5kYXRhKCk/Lmxlbmd0aCA9PSAxMCkgdGhpcy50YWJsZVJlZi5yb3dzID0gMTA7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgaXNJbml0aWFsTG9hZCA9IHRydWU7XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHRcdGlmIChjaGFuZ2VzWydkYXRhJ10gJiYgY2hhbmdlc1snZGF0YSddLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlc1snZGF0YSddLnByZXZpb3VzVmFsdWUpIHtcclxuXHRcdFx0aWYgKHRoaXMuaXNJbml0aWFsTG9hZCkge1xyXG5cdFx0XHRcdHRoaXMuaXNJbml0aWFsTG9hZCA9IGZhbHNlO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjcmVhdGVFeHBvcnRGb3JtKCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgeyBleHBvcnRMYWJlbCB9ID0gdGhpcy5leHBvcnRDb25maWcoKSE7XHJcblxyXG5cdFx0dGhpcy5leHBvcnRGb3JtID0gdGhpcy5mYi5ncm91cDxFeHBvcnRGb3JtPih7XHJcblx0XHRcdGV4cG9ydFR5cGU6IHRoaXMuZmIuY29udHJvbChFeHBvcnRUeXBlLkV4Y2VsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuXHRcdFx0ZXhwb3J0TGFiZWw6IHRoaXMuZmIuY29udHJvbChleHBvcnRMYWJlbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcblx0XHRcdGNvbHVtbnM6IHRoaXMuZmIuYXJyYXk8Rm9ybUdyb3VwPENvbEZvcm0+PihbXSlcclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuY29sdW1ucy5fcmVzdWx0c1xyXG5cdFx0XHQuZmlsdGVyKChjb2wpID0+IGNvbC50eXBlKCkgIT09ICdvcGVyYXRpb25zJylcclxuXHRcdFx0LmZpbHRlcigoY29sKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgZXhwb3J0Q29uZmlnID0gdGhpcy5leHBvcnRDb25maWcoKTtcclxuXHRcdFx0XHRjb25zdCBleGNsdWRlZEZpZWxkcyA9IGV4cG9ydENvbmZpZz8uZXhjbHVkZWRGaWVsZHMgPz8gW107XHJcblxyXG5cdFx0XHRcdHJldHVybiAhZXhjbHVkZWRGaWVsZHMuaW5jbHVkZXMoY29sLmZpZWxkKCkpO1xyXG5cdFx0XHR9KVxyXG5cdFx0XHQuZm9yRWFjaCgoY29sKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgY29sR3JvdXAgPSB0aGlzLmZiLmdyb3VwPENvbEZvcm0+KHtcclxuXHRcdFx0XHRcdGNoZWNrZWQ6IHRoaXMuZmIuY29udHJvbCh0cnVlKSxcclxuXHRcdFx0XHRcdHRpdGxlOiB0aGlzLmZiLmNvbnRyb2woY29sLmhlYWRlcigpKSxcclxuXHRcdFx0XHRcdGRhdGFLZXk6IHRoaXMuZmIuY29udHJvbChjb2wuZmllbGQoKSlcclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0dGhpcy5leHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMucHVzaChjb2xHcm91cCk7XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHQpID0+ICh0aGlzLmlzQWxsU2VsZWN0ZWQgPSB0LmV2ZXJ5KChhKSA9PiBhLmNoZWNrZWQpKSk7XHJcblx0fVxyXG5cclxuXHRnZXQgaG9zdFVybCgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIGAke2dsb2JhbFRoaXMubG9jYXRpb24ucHJvdG9jb2x9Ly8ke2dsb2JhbFRoaXMubG9jYXRpb24uaG9zdH1gO1xyXG5cdH1cclxuXHJcblx0Z2V0IGN1cnJlbnRQYWdlUmVwb3J0VGV4dCgpOiBzdHJpbmcge1xyXG5cdFx0Y29uc3QgdG90YWwgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCd0YWJsZS50b3RhbCcpO1xyXG5cdFx0Y29uc3QgcmVjb3JkID0gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgndGFibGUucmVjb3JkcycpO1xyXG5cdFx0Y29uc3QgcGFnZSA9IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3RhYmxlLnBhZ2UnKTtcclxuXHRcdHJldHVybiBgJHt0b3RhbH0gOiB7dG90YWxSZWNvcmRzfSAke3JlY29yZH0gfCAke3BhZ2V9IDoge2N1cnJlbnRQYWdlfSAvIHt0b3RhbFBhZ2VzfWA7XHJcblx0fVxyXG5cclxuXHRhc3luYyBleHBvcnQoKSB7XHJcblx0XHRjb25zdCB7IGV4cG9ydFR5cGUsIGV4cG9ydExhYmVsLCBjb2x1bW5zIH0gPSB0aGlzLmV4cG9ydEZvcm0udmFsdWU7XHJcblx0XHRjb25zdCB7XHJcblx0XHRcdHJvdXRlLFxyXG5cdFx0XHRwYXJhbXMsXHJcblx0XHRcdHBhZ2VTaXplLFxyXG5cdFx0XHRjb2x1bW5GaWVsZFZhbHVlTWFwLFxyXG5cdFx0XHRkYXRlQ29sdW1uRm9ybWF0TWFwLFxyXG5cdFx0XHRjb21wdXRlZENvbHVtbk1hcCxcclxuXHRcdFx0Y3VzdG9tUmVxVXJsLFxyXG5cdFx0XHRudW1iZXJDb2x1bW5TY2FsZU1hcCxcclxuXHRcdFx0dHJlZUNoaWxkTmFtZVxyXG5cdFx0fSA9IHRoaXMuZXhwb3J0Q29uZmlnKCkhO1xyXG5cclxuXHRcdGNvbnN0IGNoZWNrZWRDb2x1bW5zID0gY29sdW1ucyEuZmlsdGVyKCh0KSA9PiB0LmNoZWNrZWQpO1xyXG5cdFx0Y29uc3QgZmlsZUV4dGVuc2lvbiA9IHRoaXMuZXhwb3J0VHlwZU9wdGlvbnMuZmluZCgodCkgPT4gdC5rZXkgPT09IGV4cG9ydFR5cGUpPy5maWxlRXh0ZW5zaW9uO1xyXG5cclxuXHRcdGxldCBjb2x1bW5GaWVsZFZhbHVlTWFwT2JqOiBDb2x1bW5GaWVsZFZhbHVlTWFwIHwgdW5kZWZpbmVkO1xyXG5cclxuXHRcdHRoaXMuaXNMb2FkaW5nRm9yRXhwb3J0LnNldCh0cnVlKTtcclxuXHRcdHRoaXMuZXhwb3J0Rm9ybS5kaXNhYmxlKCk7XHJcblx0XHRcclxuXHRcdHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuXHRcdFx0c2V2ZXJpdHk6ICdzdWNjZXNzJyxcclxuXHRcdFx0c3VtbWFyeTogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbWVzc2FnZXMuZXhwb3J0aW5nJyksXHJcblx0XHRcdGtleTogJ3RvYXN0LXJvb3QnXHJcblx0XHR9KVxyXG5cclxuXHRcdGlmIChjb2x1bW5GaWVsZFZhbHVlTWFwKSB7XHJcblx0XHRcdGNvbnN0IHRlbXBPYmogPSB7fSBhcyBDb2x1bW5GaWVsZFZhbHVlTWFwO1xyXG5cclxuXHRcdFx0YXdhaXQgZmlyc3RWYWx1ZUZyb20oXHJcblx0XHRcdFx0ZnJvbShPYmplY3QuZW50cmllcyhjb2x1bW5GaWVsZFZhbHVlTWFwKSkucGlwZShcclxuXHRcdFx0XHRcdGNvbmNhdE1hcCgoW2ZpZWxkTmFtZSwgdmFsdWVdKSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdFx0XHQhdGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2Uuc2VsZWN0aW9uR3JvdXBzKClbYCR7dmFsdWUuZ3JvdXBOYW1lfX4ke3ZhbHVlLnBhcmVudFNlbGVjdGlvbktleSA/PyAnQUxMJ31gXVxyXG5cdFx0XHRcdFx0XHQpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5mZXRjaEVudW0odmFsdWUuZ3JvdXBOYW1lLCB2YWx1ZS5wYXJlbnRTZWxlY3Rpb25LZXkpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRjb25zdCBrZXkgPSB2YWx1ZS5ncm91cE5hbWUgKyAnficgKyAodmFsdWUucGFyZW50U2VsZWN0aW9uS2V5ID8/ICdBTEwnKTtcclxuXHJcblx0XHRcdFx0XHRcdHJldHVybiBpbnRlcnZhbCgxMCkucGlwZShcclxuXHRcdFx0XHRcdFx0XHRmaWx0ZXIoKCkgPT4gIXRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLmlzTG9hZGluZyhrZXkpKSxcclxuXHRcdFx0XHRcdFx0XHR0YWtlKDEpLFxyXG5cdFx0XHRcdFx0XHRcdG1hcCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBzZWxlY3Rpb25Hcm91cCA9IHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLnNlbGVjdGlvbkdyb3VwcygpW2tleV07XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoc2VsZWN0aW9uR3JvdXApIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGVtcE9ialtmaWVsZE5hbWVdID0gc2VsZWN0aW9uR3JvdXAuc2VsZWN0aW9uSXRlbXMucmVkdWNlKChhY2M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIGl0ZW0pID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRhY2NbaXRlbS5zZWxlY3Rpb25LZXldID0gaXRlbS5zZWxlY3Rpb25EaXNwbGF5O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBhY2M7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSwge30pIGFzIGFueTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0fSksXHJcblx0XHRcdFx0XHR0b0FycmF5KCksXHJcblx0XHRcdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbHVtbkZpZWxkVmFsdWVNYXBPYmogPSB0ZW1wT2JqO1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHQpXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgcmVxdWVzdDogRXhwb3J0UmVxdWVzdCA9IHtcclxuXHRcdFx0cm91dGU6IHJvdXRlISxcclxuXHRcdFx0cGFyYW1zOiBwYXJhbXMhLFxyXG5cdFx0XHRwYWdlU2l6ZTogcGFnZVNpemUhLFxyXG5cdFx0XHRleHBvcnRUeXBlOiBleHBvcnRUeXBlISxcclxuXHRcdFx0ZXhwb3J0TGFiZWw6IGV4cG9ydExhYmVsISxcclxuXHRcdFx0Y29tcHV0ZWRDb2x1bW5NYXA6IGNvbXB1dGVkQ29sdW1uTWFwISxcclxuXHRcdFx0ZGF0ZUNvbHVtbkZvcm1hdE1hcDogZGF0ZUNvbHVtbkZvcm1hdE1hcCEsXHJcblx0XHRcdGNvbHVtbkZpZWxkVmFsdWVNYXA6IGNvbHVtbkZpZWxkVmFsdWVNYXBPYmohLFxyXG5cdFx0XHRudW1iZXJDb2x1bW5TY2FsZU1hcDogbnVtYmVyQ29sdW1uU2NhbGVNYXAgPz8ge30sXHJcblx0XHRcdGhlYWRlck5hbWVzOiBjaGVja2VkQ29sdW1ucy5tYXAoKGNvbCkgPT4gY29sLnRpdGxlISksXHJcblx0XHRcdG91dHB1dEZpZWxkczogY2hlY2tlZENvbHVtbnMubWFwKChjb2wpID0+IGNvbC5kYXRhS2V5ISksXHJcblx0XHRcdHRyZWVDaGlsZE5hbWU6IHRyZWVDaGlsZE5hbWUhXHJcblx0XHR9O1xyXG5cclxuXHRcdGNvbnN0IGFwaVVybCA9IGN1c3RvbVJlcVVybCA/IEFQSV9DT05GSUdTLmFwaS5yZXBsYWNlKC9cXC9bXlxcL10rXFwvdjEkLywgYC8ke2N1c3RvbVJlcVVybH0vdjFgKSA6IEFQSV9DT05GSUdTLmFwaTtcclxuXHRcdGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXHJcblx0XHRcdHRoaXMuaHR0cC5wb3N0PHsgc3VjY2VzczogYm9vbGVhbjsgdXJsOiBzdHJpbmcgfT4oYCR7YXBpVXJsfS9iYXRjaC1leHBvcnRlcnMvZXhwb3J0YCwgcmVxdWVzdCkucGlwZShcclxuXHRcdFx0XHRzd2l0Y2hNYXAoKHJlcykgPT5cclxuXHRcdFx0XHRcdHRoaXMuaHR0cFxyXG5cdFx0XHRcdFx0XHQuZ2V0KGAke2FwaVVybH0vYnVja2V0LW9iamVjdHMvZG93bmxvYWRgLCB7XHJcblx0XHRcdFx0XHRcdFx0cGFyYW1zOiB7IHVybDogcmVzLnVybCB9LFxyXG5cdFx0XHRcdFx0XHRcdHJlc3BvbnNlVHlwZTogJ2Jsb2InXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0KSxcclxuXHRcdFx0XHRjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5pc0xvYWRpbmdGb3JFeHBvcnQuc2V0KGZhbHNlKTtcclxuXHRcdFx0XHRcdHRoaXMuZXhwb3J0Rm9ybS5lbmFibGUoKTtcclxuXHRcdFx0XHRcdGlmIChlcnJvcj8uc3RhdHVzID09PSA0MDAgfHwgZXJyb3I/LnN0YXR1cyA9PT0gNTAwKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuXHRcdFx0XHRcdFx0XHRzZXZlcml0eTogJ2Vycm9yJyxcclxuXHRcdFx0XHRcdFx0XHRzdW1tYXJ5OiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdtZXNzYWdlcy5leHBvcnRVcmxOb3RGb3VuZCcpLFxyXG5cdFx0XHRcdFx0XHRcdGtleTogJ3RvYXN0LXJvb3QnXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdClcclxuXHRcdCk7XHJcblxyXG5cdFx0c2F2ZUFzKHJlc3BvbnNlLCBgJHtleHBvcnRMYWJlbH0tJHtuZXcgRGF0ZSgpLmdldFRpbWUoKX0ke2ZpbGVFeHRlbnNpb259YCk7XHJcblx0XHR0aGlzLmlzTG9hZGluZ0ZvckV4cG9ydC5zZXQoZmFsc2UpO1xyXG5cdFx0dGhpcy5leHBvcnRGb3JtLmVuYWJsZSgpO1xyXG5cdFx0dGhpcy5leHBvcnRGb3JtLnJlc2V0KCk7XHJcblx0XHR0aGlzLm9wPy5oaWRlKCk7XHJcblx0fVxyXG5cclxuXHRvblNlbGVjdEFsbCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRjb25zdCBmb3JtR3JvdXAgPSB0aGlzLmV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy5hdChpKTtcclxuXHRcdFx0Zm9ybUdyb3VwLmNvbnRyb2xzLmNoZWNrZWQuc2V0VmFsdWUodmFsdWUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dG9nZ2xlRXhwb3J0ID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4gdGhpcy5vcC50b2dnbGUoZXZlbnQpO1xyXG5cclxuXHRoYW5kbGVMYXp5TG9hZEV2ZW50KGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuXHRcdGNvbnN0IG5ld0V2ZW50RGF0YSA9IHtcclxuXHRcdFx0cGFnZXI6IHtcclxuXHRcdFx0XHRwYWdlU2l6ZTogZXZlbnQucm93cyxcclxuXHRcdFx0XHRwYWdlTnVtYmVyOiBldmVudC5maXJzdCAvIGV2ZW50LnJvd3MgKyAxXHJcblx0XHRcdH0sXHJcblx0XHRcdHNvcnQ6IGV2ZW50Lm11bHRpU29ydE1ldGEsXHJcblx0XHRcdGZpbHRlcjogZXZlbnQuZmlsdGVyc1xyXG5cdFx0fTtcclxuXHRcdHRoaXMubGF6eUxvYWRFdmVudC5lbWl0KG5ld0V2ZW50RGF0YSk7XHJcblx0fVxyXG5cclxuXHRjbGVhcigpOiB2b2lkIHtcclxuXHRcdHRoaXMudGFibGVSZWYudmFsdWUgPSBbXTtcclxuXHRcdHRoaXMudGFibGVSZWYuY2xlYXIoKTtcclxuXHRcdHRoaXMub3A/LmhpZGUoKTtcclxuXHR9XHJcblxyXG5cdG5hdGl2YXRlVG9FeHBvcnRSZXF1ZXN0cygpIHtcclxuXHRcdHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7dGhpcy5ob3N0VXJsfS8jL21uZy9jb250cm9sLW1hbmFnZW1lbnQvZXhwb3J0LXJlcXVlc3RzYDtcclxuXHR9XHJcblxyXG5cdHJvd1Jlb3JkZXIoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMucmVvcmRlckZpZWxkKCkpIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcignUmVvcmRlciBmaWVsZCBpcyBub3QgZGVmaW5lZC4gUGxlYXNlIHNldCB0aGUgcmVvcmRlckZpZWxkIGlucHV0LicpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9IGVsc2UgaWYgKCEoKHRoaXMucmVvcmRlckZpZWxkKCkgYXMgc3RyaW5nKSBpbiB0aGlzLmRhdGEoKVswXSkpIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcihgUmVvcmRlciBmaWVsZCBcIiR7dGhpcy5yZW9yZGVyRmllbGQoKX1cIiBkb2VzIG5vdCBleGlzdCBpbiB0aGUgZGF0YSBpdGVtcy5gKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuZGF0YSgpLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XHJcblx0XHRcdGl0ZW1bdGhpcy5yZW9yZGVyRmllbGQoKSBhcyBzdHJpbmddID0gaW5kZXggKyAxO1xyXG5cdFx0fSk7XHJcblx0fVxyXG59XHJcbiIsIjxwLXRhYmxlXHJcblx0I3JlZlxyXG5cdFt2YWx1ZV09XCJkYXRhKClcIlxyXG5cdFtkYXRhS2V5XT1cImRhdGFLZXkoKVwiXHJcblx0W2NvbHVtbnNdPVwiY29sdW1ucy5fcmVzdWx0c1wiXHJcblx0W3Jvd3NdPVwicGFnZVNpemUoKVwiXHJcblx0W3Jvd0hvdmVyXT1cInRydWVcIlxyXG5cdFtwYWdpbmF0b3JdPVwiIXRoaXMuaXNMYXp5KCkgfHwgdGhpcy50b3RhbFJlY29yZHMoKSA+IDEwID8gdGhpcy5wYWdpbmF0b3IoKSA6IGZhbHNlXCJcclxuXHRbbGF6eV09XCJpc0xhenkoKVwiXHJcblx0W2xhenlMb2FkT25Jbml0XT1cImZhbHNlXCJcclxuXHRbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3JkcygpXCJcclxuXHRbcm93c1BlclBhZ2VPcHRpb25zXT1cIlsxMCwgMjAsIDUwLCAxMDBdXCJcclxuXHRbcm93U2VsZWN0YWJsZV09XCJyb3dTZWxlY3RhYmxlKClcIlxyXG5cdFtmaWx0ZXJEZWxheV09XCIwXCJcclxuXHRbc29ydE1vZGVdPVwic29ydE1vZGUoKVwiXHJcblx0WyhzZWxlY3Rpb24pXT1cInNlbGVjdGVkUm93c1wiXHJcblx0KG9uUGFnZSk9XCJvblBhZ2VFdmVudC5lbWl0KCRldmVudClcIlxyXG5cdChvbkxhenlMb2FkKT1cImhhbmRsZUxhenlMb2FkRXZlbnQoJGV2ZW50KVwiXHJcblx0KHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3Rpb25FdmVudC5lbWl0KHNlbGVjdGVkUm93cylcIlxyXG5cdFtzaG93Q3VycmVudFBhZ2VSZXBvcnRdPVwidHJ1ZVwiXHJcblx0W3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZSgpXCJcclxuXHRbY29sdW1uUmVzaXplTW9kZV09XCJpc0NvbHVtbkV4cGFuZE1vZGUoKSA/ICdleHBhbmQnIDogJydcIlxyXG5cdFtyZXNpemFibGVDb2x1bW5zXT1cImlzUmVzaXphYmxlQ29sdW1ucygpXCJcclxuXHRbY3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZV09XCJjdXJyZW50UGFnZVJlcG9ydFRleHRcIlxyXG5cdHN0eWxlQ2xhc3M9XCJwLWRhdGF0YWJsZS1zbVwiXHJcblx0W3BhZ2luYXRvckRyb3Bkb3duQXBwZW5kVG9dPVwicGFnaW5hdG9yRHJvcGRvd25BcHBlbmRUbygpXCJcclxuXHRbc2Nyb2xsYWJsZV09XCJzY3JvbGxhYmxlKClcIlxyXG5cdFtzY3JvbGxIZWlnaHRdPVwic2Nyb2xsSGVpZ2h0KClcIlxyXG5cdFtzaG93Rmlyc3RMYXN0SWNvbl09XCJzaG93Rmlyc3RMYXN0SWNvbigpXCJcclxuXHRbcmVvcmRlcmFibGVDb2x1bW5zXT1cInJlb3JkZXJhYmxlQ29sdW1ucygpXCJcclxuXHQob25Sb3dSZW9yZGVyKT1cInJvd1Jlb3JkZXIoKVwiPlxyXG5cdDwhLS1AaWYgKHRhYmxlSGVhZGVyKCkgfHwgc2hvd1NlYXJjaFRvb2woKSB8fCBzaG93RXhwb3J0VG9vbCgpKSB7XHJcblx0XHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY2FwdGlvblwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBzcGFjZS1iZXR3ZWVuXCI+XHJcblx0XHRcdFx0PGRpdiBzdHlsZT1cImZsZXg6IGF1dG9cIj5cclxuXHRcdFx0XHRcdEBpZiAodGFibGVIZWFkZXIoKS5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdHt7IHRhYmxlSGVhZGVyKCkgfX1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PGRpdiBzdHlsZT1cImZsZXg6IGF1dG9cIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdEBpZiAoZmFsc2UpIHtcclxuXHRcdFx0XHRcdFx0XHQ8YXJpbC10ZXh0XHJcblx0XHRcdFx0XHRcdFx0XHRpY29uPVwiU0VBUkNIXCJcclxuXHRcdFx0XHRcdFx0XHRcdGljb25Qb3M9XCJsZWZ0XCJcclxuXHRcdFx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwiQXJhbWFcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W25nTW9kZWxdPVwiZmlsdGVyVGV4dFwiXHJcblx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cIm1yLTFcIlxyXG5cdFx0XHRcdFx0XHRcdFx0KG5nTW9kZWxDaGFuZ2UpPVwicmVmLmZpbHRlckdsb2JhbCgkZXZlbnQudGFyZ2V0LnZhbHVlLCAnY29udGFpbnMnKVwiPlxyXG5cdFx0XHRcdFx0XHRcdDwvYXJpbC10ZXh0PlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdEBpZiAoZmFsc2UpIHtcclxuXHRcdFx0XHRcdFx0XHQ8YXJpbC1idXR0b25cclxuXHRcdFx0XHRcdFx0XHRcdHNpemU9XCJzbVwiXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uPVwiRklMRV9FWENFTFwiXHJcblx0XHRcdFx0XHRcdFx0XHRjb2xvcj1cInByaW1hcnlcIlxyXG5cdFx0XHRcdFx0XHRcdFx0cFRvb2x0aXA9XCJYTFNcIlxyXG5cdFx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcclxuXHRcdFx0XHRcdFx0XHRcdChjbGlja0V2ZW50KT1cImV4Y2VsRXhwb3J0KClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJtci0xXCI+XHJcblx0XHRcdFx0XHRcdFx0PC9hcmlsLWJ1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHQ8YXJpbC1idXR0b25cclxuXHRcdFx0XHRcdFx0XHRcdHNpemU9XCJzbVwiXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uPVwiRklMRV9QREZcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I9XCJwcmltYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHRcdHBUb29sdGlwPVwiUERGXCJcclxuXHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcblx0XHRcdFx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJleHBvcnRQZGYoKVwiPlxyXG5cdFx0XHRcdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0QGlmIChkYXRhKCkgJiYga2ViYWJNZW51SXRlbXMubGVuZ3RoID4gMCApIHtcclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IHRvb2xzIHN0eWxlPVwicGFkZGluZzogNHB4O21hcmdpbi1sZWZ0OiA0cHg7Ym9yZGVyOjFweCBzb2xpZCAjNjM2NmYxO2JvcmRlci1yYWRpdXM6IDZweDtiYWNrZ3JvdW5kLWNvbG9yOiAjNjM2NmYxOyBjb2xvcjogd2hpdGU7XCIgPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2F0dHIucm9sZV09XCInbm9uZSdcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInBpIG1yLTEgaGVhZGVyLWljb24gcGktZWxsaXBzaXMtdlwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJidWxrT3BlcmF0aW9ucy50b2dnbGUoJGV2ZW50KTtcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHQ8cC1tZW51XHJcblx0XHRcdFx0XHRcdFx0XHRcdCNidWxrT3BlcmF0aW9uc1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRbcG9wdXBdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFttb2RlbF09XCJrZWJhYk1lbnVJdGVtc1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlQ2xhc3M9XCJ6LWluZGV4OiA5OTk4ODk5O1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdGFwcGVuZFRvPVwiYm9keVwiPjwvcC1tZW51PlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdH0tLT5cclxuXHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImdyb3VwaGVhZGVyXCIgbGV0LWl0ZW0gbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIiBsZXQtZXhwYW5kZWQ9XCJleHBhbmRlZFwiPlxyXG5cdFx0PHRyIHBSb3dHcm91cEhlYWRlciBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNmOGZhZmNcIj5cclxuXHRcdFx0PHRkIFthdHRyLmNvbHNwYW5dPVwiY29sdW1ucy5fcmVzdWx0cy5sZW5ndGhcIj5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCBtbC0yXCIgc3R5bGU9XCJjb2xvcjogIzZiNzI4MFwiPnt7IGl0ZW0uZ3JvdXBOYW1lIH19PC9zcGFuPlxyXG5cdFx0XHQ8L3RkPlxyXG5cdFx0PC90cj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCIgbGV0LWNvbHVtbnM+XHJcblx0XHQ8dHI+XHJcblx0XHRcdEBpZiAocmVvcmRlcmFibGVDb2x1bW5zKCkpIHtcclxuXHRcdFx0XHQ8dGggc3R5bGU9XCJ3aWR0aDogM3JlbVwiPjwvdGg+XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdEBpZiAoY2hlY2tib3hTZWxlY3Rpb24oKSkge1xyXG5cdFx0XHRcdDx0aD5cclxuXHRcdFx0XHRcdEBpZiAoaGVhZGVyQ2hlY2tib3hTZWxlY3Rpb24oKSkge1xyXG5cdFx0XHRcdFx0XHQ8cC10YWJsZUhlYWRlckNoZWNrYm94PjwvcC10YWJsZUhlYWRlckNoZWNrYm94PlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvdGg+XHJcblx0XHRcdH1cclxuXHRcdFx0QGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG5cdFx0XHRcdEBpZiAoY29sdW1uLnR5cGUoKSA9PT0gJ29wZXJhdGlvbnMnKSB7XHJcblx0XHRcdFx0XHQ8dGg+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj7EsMWfbGVtbGVyPC9kaXY+XHJcblx0XHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0QGlmIChpc1Jlc2l6YWJsZUNvbHVtbnMoKSkge1xyXG5cdFx0XHRcdFx0XHQ8dGhcclxuXHRcdFx0XHRcdFx0XHRbcFNvcnRhYmxlQ29sdW1uXT1cImNvbHVtbi5maWVsZCgpXCJcclxuXHRcdFx0XHRcdFx0XHRbbmdTdHlsZV09XCJ7IHdpZHRoOiBjb2x1bW4ud2lkdGgoKSA/IGNvbHVtbi53aWR0aCgpIDogJ2F1dG8nIH1cIlxyXG5cdFx0XHRcdFx0XHRcdHBSZXNpemFibGVDb2x1bW4+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7eyBjb2x1bW4uaGVhZGVyKCkgfX1cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoY29sdW1uLmlzU2hvd0hlYWRlclRvb2x0aXAoKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiBncmVlbjsgcGFkZGluZy10b3A6IDRweDsgcGFkZGluZy1sZWZ0OiA0cHhcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1pbmZvLWNpcmNsZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiY29sdW1uLnRvb2x0aXBUZW1wbGF0ZSgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaWYgKCFpc0xhenkoKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxwLXNvcnRJY29uIFtmaWVsZF09XCJjb2x1bW4uZmllbGQoKVwiPjwvcC1zb3J0SWNvbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvdGg+XHJcblx0XHRcdFx0XHR9IEBlbHNlIGlmIChpc1NvcnRhYmxlKCkpIHtcclxuXHRcdFx0XHRcdFx0PHRoXHJcblx0XHRcdFx0XHRcdFx0W3BTb3J0YWJsZUNvbHVtbl09XCJjb2x1bW4uZmllbGQoKVwiXHJcblx0XHRcdFx0XHRcdFx0W25nU3R5bGVdPVwieyB3aWR0aDogY29sdW1uLndpZHRoKCkgPyBjb2x1bW4ud2lkdGgoKSA6ICdhdXRvJyB9XCJcclxuXHRcdFx0XHRcdFx0XHRzdHlsZT1cIm1pbi13aWR0aDogMTcwcHhcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdHt7IGNvbHVtbi5oZWFkZXIoKSB9fVxyXG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0QGlmIChjb2x1bW4uaXNTaG93SGVhZGVyVG9vbHRpcCgpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwiY29sb3I6IGdyZWVuOyBwYWRkaW5nLXRvcDogNHB4OyBwYWRkaW5nLWxlZnQ6IDRweFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInBpIHBpLWluZm8tY2lyY2xlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtwVG9vbHRpcF09XCJjb2x1bW4udG9vbHRpcFRlbXBsYXRlKClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwidG9wXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxwLXNvcnRJY29uIFtmaWVsZF09XCJjb2x1bW4uZmllbGQoKVwiPjwvcC1zb3J0SWNvbj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHRcdFx0fSBAZWxzZSB7XHJcblx0XHRcdFx0XHRcdDx0aCBbbmdTdHlsZV09XCJ7IHdpZHRoOiBjb2x1bW4ud2lkdGgoKSA/IGNvbHVtbi53aWR0aCgpIDogJ2F1dG8nIH1cIiBzdHlsZT1cIm1pbi13aWR0aDogMTcwcHhcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdHt7IGNvbHVtbi5oZWFkZXIoKSB9fVxyXG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0QGlmIChjb2x1bW4uaXNTaG93SGVhZGVyVG9vbHRpcCgpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwiY29sb3I6IGdyZWVuOyBwYWRkaW5nLXRvcDogNHB4OyBwYWRkaW5nLWxlZnQ6IDRweFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInBpIHBpLWluZm8tY2lyY2xlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtwVG9vbHRpcF09XCJjb2x1bW4udG9vbHRpcFRlbXBsYXRlKClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwidG9wXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC90aD5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdDwvdHI+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtaXRlbSBsZXQtY29sdW1ucz1cImNvbHVtbnNcIiBsZXQtaW5kZXg9XCJyb3dJbmRleFwiPlxyXG5cdFx0QGlmIChoYW5kbGVkU2VsZWN0aW9uTW9kZSkge1xyXG5cdFx0XHQ8dHJcclxuXHRcdFx0XHRbcFNlbGVjdGFibGVSb3ddPVwiaXRlbVwiXHJcblx0XHRcdFx0W25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IGl0ZW0/LnJvd0NvbG9yID8gaXRlbT8ucm93Q29sb3IgOiBudWxsIH1cIlxyXG5cdFx0XHRcdFtwUmVvcmRlcmFibGVSb3ddPVwiaW5kZXhcIj5cclxuXHRcdFx0XHRAaWYgKHJlb3JkZXJhYmxlQ29sdW1ucygpKSB7XHJcblx0XHRcdFx0XHQ8dGQ+XHJcblx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwicGkgcGktYmFyc1wiIHBSZW9yZGVyYWJsZVJvd0hhbmRsZT48L3NwYW4+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0QGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG5cdFx0XHRcdFx0PHRkIFtuZ1N0eWxlXT1cInsgJ3RleHQtYWxpZ24nOiBjb2x1bW4udHlwZSgpID09PSAnb3BlcmF0aW9ucycgPyAnY2VudGVyJyA6IGNvbHVtbi50QWxpZ24oKSB8fCB0QWxpZ24oKSB9XCI+XHJcblx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBuZ0ZvciBbbmdGb3JPZl09XCJbaXRlbV1cIiBbbmdGb3JUZW1wbGF0ZV09XCJjb2x1bW4udGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHR9XHJcblx0XHRcdDwvdHI+XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0PHRyIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBpdGVtPy5yb3dDb2xvciA/IGl0ZW0/LnJvd0NvbG9yIDogbnVsbCB9XCIgW3BSZW9yZGVyYWJsZVJvd109XCJpbmRleFwiPlxyXG5cdFx0XHRcdEBpZiAocmVvcmRlcmFibGVDb2x1bW5zKCkpIHtcclxuXHRcdFx0XHRcdDx0ZD5cclxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJwaSBwaS1iYXJzXCIgcFJlb3JkZXJhYmxlUm93SGFuZGxlPjwvc3Bhbj5cclxuXHRcdFx0XHRcdDwvdGQ+XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdEBpZiAoY2hlY2tib3hTZWxlY3Rpb24oKSkge1xyXG5cdFx0XHRcdFx0PHRkPlxyXG5cdFx0XHRcdFx0XHQ8cC10YWJsZUNoZWNrYm94IFt2YWx1ZV09XCJpdGVtXCI+PC9wLXRhYmxlQ2hlY2tib3g+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0QGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG5cdFx0XHRcdFx0PHRkIFtuZ1N0eWxlXT1cInsgJ3RleHQtYWxpZ24nOiBjb2x1bW4udHlwZSgpID09PSAnb3BlcmF0aW9ucycgPyAnY2VudGVyJyA6IGNvbHVtbi50QWxpZ24oKSB8fCB0QWxpZ24oKSB9XCI+XHJcblx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBuZ0ZvciBbbmdGb3JPZl09XCJbaXRlbV1cIiBbbmdGb3JUZW1wbGF0ZV09XCJjb2x1bW4udGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHR9XHJcblx0XHRcdDwvdHI+XHJcblx0XHR9XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0QGlmIChzaG93Rm9vdGVyKCkpIHtcclxuXHRcdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJzdW1tYXJ5XCI+XHJcblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHR9XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eW1lc3NhZ2VcIj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkIFthdHRyLmNvbHNwYW5dPVwiY29sdW1ucy5fcmVzdWx0cy5sZW5ndGhcIj57eyBub0RhdGFGb3VuZExhYmVsKCkgfX08L3RkPlxyXG5cdFx0PC90cj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG48L3AtdGFibGU+XHJcblxyXG48cC1vdmVybGF5UGFuZWwgc3R5bGVDbGFzcz1cImV4cG9ydC1vdmVybGF5LXBhbmVsXCIgW2Jhc2VaSW5kZXhdPVwiMTEwMVwiPlxyXG5cdEBpZiAoZXhwb3J0Rm9ybSkge1xyXG5cdFx0PGFyaWwtZm9ybSBbZm9ybUdyb3VwXT1cImV4cG9ydEZvcm1cIiBjbGFzcz1cInctMjByZW1cIj5cclxuXHRcdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cIidEb3N5YSBUaXBpJ1wiIFtjb2xzXT1cInsgZGVmYXVsdDogMTIgfVwiPlxyXG5cdFx0XHRcdDxhcmlsLXJhZGlvLWJ1dHRvbiBmb3JtQ29udHJvbE5hbWU9XCJleHBvcnRUeXBlXCIgW29wdGlvbnNdPVwiZXhwb3J0VHlwZU9wdGlvbnNcIiAvPlxyXG5cdFx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwiJ0Rvc3lhIMSwc21pJ1wiIFtjb2xzXT1cInsgZGVmYXVsdDogMTIgfVwiPlxyXG5cdFx0XHRcdDxhcmlsLXRleHQgY2xhc3M9XCJ3LWZ1bGxcIiBmb3JtQ29udHJvbE5hbWU9XCJleHBvcnRMYWJlbFwiIC8+XHJcblx0XHRcdDwvYXJpbC1maWVsZD5cclxuXHJcblx0XHRcdDxuZy1jb250YWluZXIgZm9ybUFycmF5TmFtZT1cImNvbHVtbnNcIj5cclxuXHRcdFx0XHQ8cC1vcmRlckxpc3RcclxuXHRcdFx0XHRcdCNvcmRlckxpc3RSZWZcclxuXHRcdFx0XHRcdGNsYXNzPVwiY29sLTEyXCJcclxuXHRcdFx0XHRcdFt2YWx1ZV09XCJleHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMuY29udHJvbHNcIlxyXG5cdFx0XHRcdFx0W2xpc3RTdHlsZV09XCJ7ICdtYXgtaGVpZ2h0JzogJzIwcmVtJyB9XCJcclxuXHRcdFx0XHRcdGZpbHRlckJ5PVwidmFsdWUudGl0bGVcIlxyXG5cdFx0XHRcdFx0W2Rpc2FibGVkXT1cImlzTG9hZGluZ0ZvckV4cG9ydCgpXCI+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZmlsdGVyXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG5cdFx0XHRcdFx0XHRcdDxhcmlsLWNoZWNrYm94XHJcblx0XHRcdFx0XHRcdFx0XHRbbGFiZWxdPVwiJydcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W25nTW9kZWxdPVwiaXNBbGxTZWxlY3RlZFwiXHJcblx0XHRcdFx0XHRcdFx0XHRbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0KG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3RBbGwoJGV2ZW50KVwiXHJcblx0XHRcdFx0XHRcdFx0XHRbZGlzYWJsZWRdPVwiaXNMb2FkaW5nRm9yRXhwb3J0KClcIiAvPlxyXG5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicC1vcmRlcmxpc3QtZmlsdGVyXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidmaWx0ZXInXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aW5wdXRcclxuXHRcdFx0XHRcdFx0XHRcdFx0I2ZpbHRlclxyXG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlPVwidGV4dFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdHJvbGU9XCJ0ZXh0Ym94XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0KGtleXVwKT1cIm9yZGVyTGlzdFJlZi5vbkZpbHRlcktleXVwKCRldmVudClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbZGlzYWJsZWRdPVwib3JkZXJMaXN0UmVmLmRpc2FibGVkXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwLW9yZGVybGlzdC1maWx0ZXItaW5wdXQgcC1pbnB1dHRleHQgcC1jb21wb25lbnRcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgbGV0LWNvbCBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDxhcmlsLWNoZWNrYm94IFtsYWJlbF09XCJjb2wudmFsdWUudGl0bGVcIiBbZm9ybUNvbnRyb2xdPVwiY29sLmNvbnRyb2xzLmNoZWNrZWRcIiAvPlxyXG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHQ8L3Atb3JkZXJMaXN0PlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdDxhcmlsLWJ1dHRvblxyXG5cdFx0XHRcdGNsYXNzPVwiY29sLTEyXCJcclxuXHRcdFx0XHRbbGFiZWxdPVwidHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ25hdmlnYXRlVG9FeHBvcnRSZXF1ZXN0cycpXCJcclxuXHRcdFx0XHRjb2xvcj1cInNlY29uZGFyeVwiXHJcblx0XHRcdFx0KGNsaWNrRXZlbnQpPVwibmF0aXZhdGVUb0V4cG9ydFJlcXVlc3RzKClcIiAvPlxyXG5cclxuXHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0Y2xhc3M9XCJjb2wtMTJcIlxyXG5cdFx0XHRcdFtsYWJlbF09XCJ0cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbWVzc2FnZXMuZXhwb3J0JylcIlxyXG5cdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0KGNsaWNrRXZlbnQpPVwiZXhwb3J0KClcIlxyXG5cdFx0XHRcdFtkaXNhYmxlZF09XCJpc0xvYWRpbmdGb3JFeHBvcnQoKVwiIC8+XHJcblx0XHQ8L2FyaWwtZm9ybT5cclxuXHR9XHJcbjwvcC1vdmVybGF5UGFuZWw+XHJcbiJdfQ==
|
|
303
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNOLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBcUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBRzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixjQUFjLEVBQ2QsSUFBSSxFQUNKLFFBQVEsRUFDUixHQUFHLEVBQ0gsU0FBUyxFQUNULElBQUksRUFFSixVQUFVLEVBQ1YsT0FBTyxFQUNQLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNyQyxPQUFPLEVBQTBFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsSCxPQUFPLEVBQWMsb0JBQW9CLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUxRjs7Ozs7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QUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFZLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs4R0F2VFcsY0FBYztrR0FBZCxjQUFjLHVyS0FLVCxvQkFBb0IsaUVBQzFCLFlBQVksMkVBQ1osS0FBSyxxRUN4RWpCLHVnWEFxU0E7OzJGRHBPYSxjQUFjO2tCQUwxQixTQUFTOytCQUNDLFlBQVk7Z1BBS1osV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDZ0MsT0FBTztzQkFBN0MsZUFBZTt1QkFBQyxvQkFBb0I7Z0JBQ1osRUFBRTtzQkFBMUIsU0FBUzt1QkFBQyxZQUFZO2dCQUNMLFFBQVE7c0JBQXpCLFNBQVM7dUJBQUMsS0FBSztnQkFDUCxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcblx0Q29tcG9uZW50LFxyXG5cdENvbnRlbnRDaGlsZHJlbixcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5wdXQsXHJcblx0T3V0cHV0LFxyXG5cdFNpbXBsZUNoYW5nZXMsXHJcblx0Vmlld0NoaWxkLFxyXG5cdGVmZmVjdCxcclxuXHRpbnB1dCxcclxuXHRzaWduYWxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTWVudUl0ZW0sIE1lc3NhZ2VTZXJ2aWNlLCBQcmltZU5HQ29uZmlnIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCc7XHJcbmltcG9ydCB7IFRhYmxlLCBUYWJsZVJvd1Jlb3JkZXJFdmVudCB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7XHJcblx0Y2F0Y2hFcnJvcixcclxuXHRjb25jYXRNYXAsXHJcblx0ZmlsdGVyLFxyXG5cdGZpbmFsaXplLFxyXG5cdGZpcnN0VmFsdWVGcm9tLFxyXG5cdGZyb20sXHJcblx0aW50ZXJ2YWwsXHJcblx0bWFwLFxyXG5cdHN3aXRjaE1hcCxcclxuXHR0YWtlLFxyXG5cdHRhcCxcclxuXHR0aHJvd0Vycm9yLFxyXG5cdHRvQXJyYXlcclxufSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEFQSV9DT05GSUdTIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcGknO1xyXG5pbXBvcnQgeyBQcm94eVR5cGVzIH0gZnJvbSAnYXJpbC9odHRwJztcclxuaW1wb3J0IHsgU2VsZWN0aW9uR3JvdXBTZXJ2aWNlIH0gZnJvbSAnYXJpbC90aGVtZS9sYXlvdXQnO1xyXG5cclxuaW1wb3J0IHsgdHJhbmxhdGlvbnMgfSBmcm9tICcuL2kxOG4nO1xyXG5pbXBvcnQgeyBDb2xGb3JtLCBDb2x1bW5GaWVsZFZhbHVlTWFwLCBFeHBvcnRGb3JtLCBFeHBvcnRPcHRpb25zLCBFeHBvcnRSZXF1ZXN0LCBFeHBvcnRUeXBlIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgQWxpZ25UeXBlcywgVGFibGVDb2x1bW5Db21wb25lbnQsIFRhYmxlQ29sdW1ucyB9IGZyb20gJy4vdGFibGUtY29sdW1uLmNvbXBvbmVudCc7XHJcblxyXG4vKiBUT0RPIDpcclxuICogc2VydmVyLXNpZGUtcHJveHkgKFByb3h5VHlwZXMuU2VydmVyU2lkZSlcclxuICogc2VhcmNoICYgY29sdW0gZmlsdGVyICYgc29ydFxyXG4gKiBwYWdpbmF0aW9uIG9wZXJhdGlvblxyXG4gKiBRdWVyeSBTaWduYWxzXHJcbiAqL1xyXG5jb25zdCBwYWdlT3B0aW9ucyA9IFsxMCwgMjAsIDUwLCAxMDBdIGFzIGNvbnN0O1xyXG5cclxudHlwZSBTZWxlY3Rpb25UeXBlcyA9ICdzaW5nbGUnIHwgJ211bHRpcGxlJyB8IG51bGw7XHJcbmludGVyZmFjZSBJS2ViYWJNZW51SXRlbSB7XHJcblx0aWNvbjogc3RyaW5nO1xyXG5cdGxhYmVsOiBzdHJpbmc7XHJcblx0b25DbGljazogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FyaWwtdGFibGUnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQge1xyXG5cdEBPdXRwdXQoKSBvblBhZ2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRAT3V0cHV0KCkgc2VsZWN0aW9uRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblx0QE91dHB1dCgpIGxhenlMb2FkRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblx0QE91dHB1dCgpIHJvd1Jlb3JkZXJFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVSb3dSZW9yZGVyRXZlbnQ+KCk7XHJcblx0QENvbnRlbnRDaGlsZHJlbihUYWJsZUNvbHVtbkNvbXBvbmVudCkgY29sdW1ucyE6IFRhYmxlQ29sdW1ucztcclxuXHRAVmlld0NoaWxkKE92ZXJsYXlQYW5lbCkgb3AhOiBPdmVybGF5UGFuZWw7XHJcblx0QFZpZXdDaGlsZChUYWJsZSkgdGFibGVSZWYhOiBUYWJsZTtcclxuXHRASW5wdXQoKSBrZWJhYk1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xyXG5cdEBJbnB1dCgpIGV4cGFuZGFibGVGaWVsZHMhOiBzdHJpbmc7XHJcblxyXG5cdGRhdGEgPSBpbnB1dC5yZXF1aXJlZDxhbnlbXT4oKTtcclxuXHRjaGVja2JveFNlbGVjdGlvbiA9IGlucHV0PGJvb2xlYW4+KCk7XHJcblx0aGVhZGVyQ2hlY2tib3hTZWxlY3Rpb24gPSBpbnB1dDxib29sZWFuPigpO1xyXG5cdHBhZ2VTaXplID0gaW5wdXQ8KHR5cGVvZiBwYWdlT3B0aW9ucylbbnVtYmVyXT4oMTApO1xyXG5cdHByb3h5ID0gaW5wdXQ8UHJveHlUeXBlcz4oUHJveHlUeXBlcy5OYXRpdmUpO1xyXG5cdHNob3dGb290ZXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0dEFsaWduID0gaW5wdXQ8QWxpZ25UeXBlcz4oJ2xlZnQnKTtcclxuXHRzZWxlY3Rpb25Nb2RlID0gaW5wdXQ8U2VsZWN0aW9uVHlwZXM+KCdzaW5nbGUnKTtcclxuXHRzaG93U2VhcmNoVG9vbCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdHNob3dFeHBvcnRUb29sID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0ZXhwb3J0RmlsZU5hbWUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRub0RhdGFGb3VuZExhYmVsID0gaW5wdXQ8c3RyaW5nPignTm8gRGF0YSBGb3VuZCcpO1xyXG5cdHRhYmxlSGVhZGVyID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0c2hvd1RhYmxlSGVhZGVyID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGlzRmlyc3RSb3dTZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRkYXRhS2V5ID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0c2VsZWN0ZWRSb3dzSW5wdXQgPSBpbnB1dDxhbnk+KFtdKTtcclxuXHRpc0xhenkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0dG90YWxSZWNvcmRzID0gaW5wdXQ8bnVtYmVyPigwKTtcclxuXHRwYWdpbmF0b3IgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRwYWdpbmF0b3JEcm9wZG93bkFwcGVuZFRvID0gaW5wdXQ8c3RyaW5nPignYm9keScpOyAvLyAnYm9keSd8ICdteURpdidcclxuXHRpc0NvbHVtbkV4cGFuZE1vZGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aXNSZXNpemFibGVDb2x1bW5zID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGlzU29ydGFibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aGFuZGxlZFNlbGVjdGlvbk1vZGU6IFNlbGVjdGlvblR5cGVzID0gJ3NpbmdsZSc7XHJcblx0c2Nyb2xsYWJsZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdHNjcm9sbEhlaWdodCA9IGlucHV0PHN0cmluZz4oJzM4MHB4Jyk7XHJcblx0c29ydE1vZGUgPSBpbnB1dDwnc2luZ2xlJyB8ICdtdWx0aXBsZSc+KCdtdWx0aXBsZScpO1xyXG5cdHNob3dGaXJzdExhc3RJY29uID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0cm93U2VsZWN0YWJsZSA9IGlucHV0PChyb3dEYXRhOiBhbnkpID0+IGJvb2xlYW4+KCgpID0+IHRydWUpO1xyXG5cdGlzU2hvd05vRGF0YUZvdW5kTWVzc2FnZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdHJlb3JkZXJhYmxlQ29sdW1ucyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRyZW9yZGVyRmllbGQgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBzZWUge0BsaW5rIEV4cG9ydE9wdGlvbnN9XHJcblx0ICovXHJcblx0ZXhwb3J0Q29uZmlnID0gaW5wdXQ8RXhwb3J0T3B0aW9ucz4oKTtcclxuXHJcblx0ZXhwb3J0Rm9ybSE6IEZvcm1Hcm91cDxFeHBvcnRGb3JtPjtcclxuXHRleHBvcnRUeXBlT3B0aW9ucyA9IFtcclxuXHRcdHsga2V5OiBFeHBvcnRUeXBlLkV4Y2VsLCBsYWJlbDogJ0V4Y2VsJywgZmlsZUV4dGVuc2lvbjogJy54bHN4JyB9LFxyXG5cdFx0eyBrZXk6IEV4cG9ydFR5cGUuQ3N2LCBsYWJlbDogJ0NzdicsIGZpbGVFeHRlbnNpb246ICcuY3N2JyB9XHJcblx0XTtcclxuXHRpc0xvYWRpbmdGb3JFeHBvcnQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuXHRmaWx0ZXJUZXh0ITogc3RyaW5nO1xyXG5cdGlzQWxsU2VsZWN0ZWQgPSB0cnVlO1xyXG5cdHNlbGVjdGVkUm93czogYW55O1xyXG5cdHBhZ2VPcHRpb25zID0gcGFnZU9wdGlvbnM7XHJcblx0ZXhwb3J0Q29sdW1uczogQXJyYXk8eyB0aXRsZTogc3RyaW5nOyBkYXRhS2V5OiBzdHJpbmcgfT4gPSBbXTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcblx0XHRwcml2YXRlIGZiOiBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLFxyXG5cdFx0cHJpdmF0ZSBwcmltZW5nQ29uZmlnOiBQcmltZU5HQ29uZmlnLFxyXG5cdFx0cHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcblx0XHRwdWJsaWMgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuXHRcdHByaXZhdGUgc2VsZWN0aW9uR3JvdXBTZXJ2aWNlOiBTZWxlY3Rpb25Hcm91cFNlcnZpY2VcclxuXHQpIHtcclxuXHRcdHRoaXMucHJpbWVuZ0NvbmZpZy5zZXRUcmFuc2xhdGlvbih0cmFubGF0aW9ucyk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuaXNGaXJzdFJvd1NlbGVjdGVkKCkgJiYgdGhpcy5kYXRhKCkpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkUm93cyA9IHRoaXMuZGF0YSgpWzBdO1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0aW9uRXZlbnQuZW1pdCh0aGlzLnNlbGVjdGVkUm93cyk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkUm93c0lucHV0KCkpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkUm93cyA9IHRoaXMuc2VsZWN0ZWRSb3dzSW5wdXQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZXhwb3J0Q29uZmlnKCkpIHtcclxuXHRcdFx0XHR0aGlzLmNyZWF0ZUV4cG9ydEZvcm0oKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuY2hlY2tib3hTZWxlY3Rpb24oKSkgdGhpcy5oYW5kbGVkU2VsZWN0aW9uTW9kZSA9IG51bGw7XHJcblx0XHRcdGVsc2UgdGhpcy5oYW5kbGVkU2VsZWN0aW9uTW9kZSA9IHRoaXMuc2VsZWN0aW9uTW9kZSgpO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZGF0YSgpPy5sZW5ndGggPT0gMTApIHRoaXMudGFibGVSZWYucm93cyA9IDEwO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGlzSW5pdGlhbExvYWQgPSB0cnVlO1xyXG5cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcblx0XHRpZiAoY2hhbmdlc1snZGF0YSddICYmIGNoYW5nZXNbJ2RhdGEnXS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ2RhdGEnXS5wcmV2aW91c1ZhbHVlKSB7XHJcblx0XHRcdGlmICh0aGlzLmlzSW5pdGlhbExvYWQpIHtcclxuXHRcdFx0XHR0aGlzLmlzSW5pdGlhbExvYWQgPSBmYWxzZTtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgY3JlYXRlRXhwb3J0Rm9ybSgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHsgZXhwb3J0TGFiZWwgfSA9IHRoaXMuZXhwb3J0Q29uZmlnKCkhO1xyXG5cclxuXHRcdHRoaXMuZXhwb3J0Rm9ybSA9IHRoaXMuZmIuZ3JvdXA8RXhwb3J0Rm9ybT4oe1xyXG5cdFx0XHRleHBvcnRUeXBlOiB0aGlzLmZiLmNvbnRyb2woRXhwb3J0VHlwZS5FeGNlbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcblx0XHRcdGV4cG9ydExhYmVsOiB0aGlzLmZiLmNvbnRyb2woZXhwb3J0TGFiZWwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG5cdFx0XHRjb2x1bW5zOiB0aGlzLmZiLmFycmF5PEZvcm1Hcm91cDxDb2xGb3JtPj4oW10pXHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLmNvbHVtbnMuX3Jlc3VsdHNcclxuXHRcdFx0LmZpbHRlcigoY29sKSA9PiBjb2wudHlwZSgpICE9PSAnb3BlcmF0aW9ucycpXHJcblx0XHRcdC5maWx0ZXIoKGNvbCkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGV4cG9ydENvbmZpZyA9IHRoaXMuZXhwb3J0Q29uZmlnKCk7XHJcblx0XHRcdFx0Y29uc3QgZXhjbHVkZWRGaWVsZHMgPSBleHBvcnRDb25maWc/LmV4Y2x1ZGVkRmllbGRzID8/IFtdO1xyXG5cclxuXHRcdFx0XHRyZXR1cm4gIWV4Y2x1ZGVkRmllbGRzLmluY2x1ZGVzKGNvbC5maWVsZCgpKTtcclxuXHRcdFx0fSlcclxuXHRcdFx0LmZvckVhY2goKGNvbCkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGNvbEdyb3VwID0gdGhpcy5mYi5ncm91cDxDb2xGb3JtPih7XHJcblx0XHRcdFx0XHRjaGVja2VkOiB0aGlzLmZiLmNvbnRyb2wodHJ1ZSksXHJcblx0XHRcdFx0XHR0aXRsZTogdGhpcy5mYi5jb250cm9sKGNvbC5oZWFkZXIoKSksXHJcblx0XHRcdFx0XHRkYXRhS2V5OiB0aGlzLmZiLmNvbnRyb2woY29sLmZpZWxkKCkpXHJcblx0XHRcdFx0fSk7XHJcblxyXG5cdFx0XHRcdHRoaXMuZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLnB1c2goY29sR3JvdXApO1xyXG5cdFx0XHR9KTtcclxuXHJcblx0XHR0aGlzLmV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh0KSA9PiAodGhpcy5pc0FsbFNlbGVjdGVkID0gdC5ldmVyeSgoYSkgPT4gYS5jaGVja2VkKSkpO1xyXG5cdH1cclxuXHJcblx0Z2V0IGhvc3RVcmwoKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiBgJHtnbG9iYWxUaGlzLmxvY2F0aW9uLnByb3RvY29sfS8vJHtnbG9iYWxUaGlzLmxvY2F0aW9uLmhvc3R9YDtcclxuXHR9XHJcblxyXG5cdGdldCBjdXJyZW50UGFnZVJlcG9ydFRleHQoKTogc3RyaW5nIHtcclxuXHRcdGNvbnN0IHRvdGFsID0gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgndGFibGUudG90YWwnKTtcclxuXHRcdGNvbnN0IHJlY29yZCA9IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3RhYmxlLnJlY29yZHMnKTtcclxuXHRcdGNvbnN0IHBhZ2UgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCd0YWJsZS5wYWdlJyk7XHJcblx0XHRyZXR1cm4gYCR7dG90YWx9IDoge3RvdGFsUmVjb3Jkc30gJHtyZWNvcmR9IHwgJHtwYWdlfSA6IHtjdXJyZW50UGFnZX0gLyB7dG90YWxQYWdlc31gO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZXhwb3J0KCkge1xyXG5cdFx0Y29uc3QgeyBleHBvcnRUeXBlLCBleHBvcnRMYWJlbCwgY29sdW1ucyB9ID0gdGhpcy5leHBvcnRGb3JtLnZhbHVlO1xyXG5cdFx0Y29uc3Qge1xyXG5cdFx0XHRyb3V0ZSxcclxuXHRcdFx0cGFyYW1zLFxyXG5cdFx0XHRwYWdlU2l6ZSxcclxuXHRcdFx0Y29sdW1uRmllbGRWYWx1ZU1hcCxcclxuXHRcdFx0ZGF0ZUNvbHVtbkZvcm1hdE1hcCxcclxuXHRcdFx0Y29tcHV0ZWRDb2x1bW5NYXAsXHJcblx0XHRcdGN1c3RvbVJlcVVybCxcclxuXHRcdFx0bnVtYmVyQ29sdW1uU2NhbGVNYXAsXHJcblx0XHRcdHRyZWVDaGlsZE5hbWVcclxuXHRcdH0gPSB0aGlzLmV4cG9ydENvbmZpZygpITtcclxuXHJcblx0XHRjb25zdCBjaGVja2VkQ29sdW1ucyA9IGNvbHVtbnMhLmZpbHRlcigodCkgPT4gdC5jaGVja2VkKTtcclxuXHRcdGNvbnN0IGZpbGVFeHRlbnNpb24gPSB0aGlzLmV4cG9ydFR5cGVPcHRpb25zLmZpbmQoKHQpID0+IHQua2V5ID09PSBleHBvcnRUeXBlKT8uZmlsZUV4dGVuc2lvbjtcclxuXHJcblx0XHRsZXQgY29sdW1uRmllbGRWYWx1ZU1hcE9iajogQ29sdW1uRmllbGRWYWx1ZU1hcCB8IHVuZGVmaW5lZDtcclxuXHJcblx0XHR0aGlzLmlzTG9hZGluZ0ZvckV4cG9ydC5zZXQodHJ1ZSk7XHJcblx0XHR0aGlzLmV4cG9ydEZvcm0uZGlzYWJsZSgpO1xyXG5cdFx0XHJcblx0XHR0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdHNldmVyaXR5OiAnc3VjY2VzcycsXHJcblx0XHRcdHN1bW1hcnk6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLmV4cG9ydGluZycpLFxyXG5cdFx0XHRrZXk6ICd0b2FzdC1yb290J1xyXG5cdFx0fSlcclxuXHJcblx0XHRpZiAoY29sdW1uRmllbGRWYWx1ZU1hcCkge1xyXG5cdFx0XHRjb25zdCB0ZW1wT2JqID0ge30gYXMgQ29sdW1uRmllbGRWYWx1ZU1hcDtcclxuXHJcblx0XHRcdGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG5cdFx0XHRcdGZyb20oT2JqZWN0LmVudHJpZXMoY29sdW1uRmllbGRWYWx1ZU1hcCkpLnBpcGUoXHJcblx0XHRcdFx0XHRjb25jYXRNYXAoKFtmaWVsZE5hbWUsIHZhbHVlXSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAoXHJcblx0XHRcdFx0XHRcdFx0IXRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLnNlbGVjdGlvbkdyb3VwcygpW2Ake3ZhbHVlLmdyb3VwTmFtZX1+JHt2YWx1ZS5wYXJlbnRTZWxlY3Rpb25LZXkgPz8gJ0FMTCd9YF1cclxuXHRcdFx0XHRcdFx0KSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2UuZmV0Y2hFbnVtKHZhbHVlLmdyb3VwTmFtZSwgdmFsdWUucGFyZW50U2VsZWN0aW9uS2V5KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0Y29uc3Qga2V5ID0gdmFsdWUuZ3JvdXBOYW1lICsgJ34nICsgKHZhbHVlLnBhcmVudFNlbGVjdGlvbktleSA/PyAnQUxMJyk7XHJcblxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gaW50ZXJ2YWwoMTApLnBpcGUoXHJcblx0XHRcdFx0XHRcdFx0ZmlsdGVyKCgpID0+ICF0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5pc0xvYWRpbmcoa2V5KSksXHJcblx0XHRcdFx0XHRcdFx0dGFrZSgxKSxcclxuXHRcdFx0XHRcdFx0XHRtYXAoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3Qgc2VsZWN0aW9uR3JvdXAgPSB0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5zZWxlY3Rpb25Hcm91cHMoKVtrZXldO1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKHNlbGVjdGlvbkdyb3VwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRlbXBPYmpbZmllbGROYW1lXSA9IHNlbGVjdGlvbkdyb3VwLnNlbGVjdGlvbkl0ZW1zLnJlZHVjZSgoYWNjOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBpdGVtKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0YWNjW2l0ZW0uc2VsZWN0aW9uS2V5XSA9IGl0ZW0uc2VsZWN0aW9uRGlzcGxheTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gYWNjO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcblx0XHRcdFx0XHRcdFx0XHRcdH0sIHt9KSBhcyBhbnk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdH0pLFxyXG5cdFx0XHRcdFx0dG9BcnJheSgpLFxyXG5cdFx0XHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb2x1bW5GaWVsZFZhbHVlTWFwT2JqID0gdGVtcE9iajtcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0KVxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHJlcXVlc3Q6IEV4cG9ydFJlcXVlc3QgPSB7XHJcblx0XHRcdHJvdXRlOiByb3V0ZSEsXHJcblx0XHRcdHBhcmFtczogcGFyYW1zISxcclxuXHRcdFx0cGFnZVNpemU6IHBhZ2VTaXplISxcclxuXHRcdFx0ZXhwb3J0VHlwZTogZXhwb3J0VHlwZSEsXHJcblx0XHRcdGV4cG9ydExhYmVsOiBleHBvcnRMYWJlbCEsXHJcblx0XHRcdGNvbXB1dGVkQ29sdW1uTWFwOiBjb21wdXRlZENvbHVtbk1hcCEsXHJcblx0XHRcdGRhdGVDb2x1bW5Gb3JtYXRNYXA6IGRhdGVDb2x1bW5Gb3JtYXRNYXAhLFxyXG5cdFx0XHRjb2x1bW5GaWVsZFZhbHVlTWFwOiBjb2x1bW5GaWVsZFZhbHVlTWFwT2JqISxcclxuXHRcdFx0bnVtYmVyQ29sdW1uU2NhbGVNYXA6IG51bWJlckNvbHVtblNjYWxlTWFwID8/IHt9LFxyXG5cdFx0XHRoZWFkZXJOYW1lczogY2hlY2tlZENvbHVtbnMubWFwKChjb2wpID0+IGNvbC50aXRsZSEpLFxyXG5cdFx0XHRvdXRwdXRGaWVsZHM6IGNoZWNrZWRDb2x1bW5zLm1hcCgoY29sKSA9PiBjb2wuZGF0YUtleSEpLFxyXG5cdFx0XHR0cmVlQ2hpbGROYW1lOiB0cmVlQ2hpbGROYW1lIVxyXG5cdFx0fTtcclxuXHJcblx0XHRjb25zdCBhcGlVcmwgPSBjdXN0b21SZXFVcmwgPyBBUElfQ09ORklHUy5hcGkucmVwbGFjZSgvXFwvW15cXC9dK1xcL3YxJC8sIGAvJHtjdXN0b21SZXFVcmx9L3YxYCkgOiBBUElfQ09ORklHUy5hcGk7XHJcblx0XHRjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG5cdFx0XHR0aGlzLmh0dHAucG9zdDx7IHN1Y2Nlc3M6IGJvb2xlYW47IHVybDogc3RyaW5nIH0+KGAke2FwaVVybH0vYmF0Y2gtZXhwb3J0ZXJzL2V4cG9ydGAsIHJlcXVlc3QpLnBpcGUoXHJcblx0XHRcdFx0c3dpdGNoTWFwKChyZXMpID0+XHJcblx0XHRcdFx0XHR0aGlzLmh0dHBcclxuXHRcdFx0XHRcdFx0LmdldChgJHthcGlVcmx9L2J1Y2tldC1vYmplY3RzL2Rvd25sb2FkYCwge1xyXG5cdFx0XHRcdFx0XHRcdHBhcmFtczogeyB1cmw6IHJlcy51cmwgfSxcclxuXHRcdFx0XHRcdFx0XHRyZXNwb25zZVR5cGU6ICdibG9iJ1xyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdCksXHJcblx0XHRcdFx0Y2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuaXNMb2FkaW5nRm9yRXhwb3J0LnNldChmYWxzZSk7XHJcblx0XHRcdFx0XHR0aGlzLmV4cG9ydEZvcm0uZW5hYmxlKCk7XHJcblx0XHRcdFx0XHRpZiAoZXJyb3I/LnN0YXR1cyA9PT0gNDAwIHx8IGVycm9yPy5zdGF0dXMgPT09IDUwMCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdFx0XHRcdFx0c2V2ZXJpdHk6ICdlcnJvcicsXHJcblx0XHRcdFx0XHRcdFx0c3VtbWFyeTogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbWVzc2FnZXMuZXhwb3J0VXJsTm90Rm91bmQnKSxcclxuXHRcdFx0XHRcdFx0XHRrZXk6ICd0b2FzdC1yb290J1xyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQpXHJcblx0XHQpO1xyXG5cclxuXHRcdHNhdmVBcyhyZXNwb25zZSwgYCR7ZXhwb3J0TGFiZWx9LSR7bmV3IERhdGUoKS5nZXRUaW1lKCl9JHtmaWxlRXh0ZW5zaW9ufWApO1xyXG5cdFx0dGhpcy5pc0xvYWRpbmdGb3JFeHBvcnQuc2V0KGZhbHNlKTtcclxuXHRcdHRoaXMuZXhwb3J0Rm9ybS5lbmFibGUoKTtcclxuXHRcdHRoaXMuZXhwb3J0Rm9ybS5yZXNldCgpO1xyXG5cdFx0dGhpcy5vcD8uaGlkZSgpO1xyXG5cdH1cclxuXHJcblx0b25TZWxlY3RBbGwodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5leHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0Y29uc3QgZm9ybUdyb3VwID0gdGhpcy5leHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMuYXQoaSk7XHJcblx0XHRcdGZvcm1Hcm91cC5jb250cm9scy5jaGVja2VkLnNldFZhbHVlKHZhbHVlKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHRvZ2dsZUV4cG9ydCA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHRoaXMub3AudG9nZ2xlKGV2ZW50KTtcclxuXHJcblx0aGFuZGxlTGF6eUxvYWRFdmVudChldmVudDogYW55KTogdm9pZCB7XHJcblx0XHRjb25zdCBuZXdFdmVudERhdGEgPSB7XHJcblx0XHRcdHBhZ2VyOiB7XHJcblx0XHRcdFx0cGFnZVNpemU6IGV2ZW50LnJvd3MsXHJcblx0XHRcdFx0cGFnZU51bWJlcjogZXZlbnQuZmlyc3QgLyBldmVudC5yb3dzICsgMVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRzb3J0OiBldmVudC5tdWx0aVNvcnRNZXRhLFxyXG5cdFx0XHRmaWx0ZXI6IGV2ZW50LmZpbHRlcnNcclxuXHRcdH07XHJcblx0XHR0aGlzLmxhenlMb2FkRXZlbnQuZW1pdChuZXdFdmVudERhdGEpO1xyXG5cdH1cclxuXHJcblx0Y2xlYXIoKTogdm9pZCB7XHJcblx0XHR0aGlzLnRhYmxlUmVmLnZhbHVlID0gW107XHJcblx0XHR0aGlzLnRhYmxlUmVmLmNsZWFyKCk7XHJcblx0XHR0aGlzLm9wPy5oaWRlKCk7XHJcblx0fVxyXG5cclxuXHRuYXRpdmF0ZVRvRXhwb3J0UmVxdWVzdHMoKSB7XHJcblx0XHR3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke3RoaXMuaG9zdFVybH0vIy9tbmcvY29udHJvbC1tYW5hZ2VtZW50L2V4cG9ydC1yZXF1ZXN0c2A7XHJcblx0fVxyXG5cclxuXHRyb3dSZW9yZGVyKGV2ZW50OiBUYWJsZVJvd1Jlb3JkZXJFdmVudCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLnJlb3JkZXJGaWVsZCgpKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoJ1Jlb3JkZXIgZmllbGQgaXMgbm90IGRlZmluZWQuIFBsZWFzZSBzZXQgdGhlIHJlb3JkZXJGaWVsZCBpbnB1dC4nKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fSBlbHNlIGlmICghKCh0aGlzLnJlb3JkZXJGaWVsZCgpIGFzIHN0cmluZykgaW4gdGhpcy5kYXRhKClbMF0pKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoYFJlb3JkZXIgZmllbGQgXCIke3RoaXMucmVvcmRlckZpZWxkKCl9XCIgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGRhdGEgaXRlbXMuYCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmRhdGEoKS5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG5cdFx0XHRpdGVtW3RoaXMucmVvcmRlckZpZWxkKCkgYXMgc3RyaW5nXSA9IGluZGV4ICsgMTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMucm93UmVvcmRlckV2ZW50LmVtaXQoZXZlbnQpO1xyXG5cdH1cclxufVxyXG4iLCI8cC10YWJsZVxyXG5cdCNyZWZcclxuXHRbdmFsdWVdPVwiZGF0YSgpXCJcclxuXHRbZGF0YUtleV09XCJkYXRhS2V5KClcIlxyXG5cdFtjb2x1bW5zXT1cImNvbHVtbnMuX3Jlc3VsdHNcIlxyXG5cdFtyb3dzXT1cInBhZ2VTaXplKClcIlxyXG5cdFtyb3dIb3Zlcl09XCJ0cnVlXCJcclxuXHRbcGFnaW5hdG9yXT1cIiF0aGlzLmlzTGF6eSgpIHx8IHRoaXMudG90YWxSZWNvcmRzKCkgPiAxMCA/IHRoaXMucGFnaW5hdG9yKCkgOiBmYWxzZVwiXHJcblx0W2xhenldPVwiaXNMYXp5KClcIlxyXG5cdFtsYXp5TG9hZE9uSW5pdF09XCJmYWxzZVwiXHJcblx0W3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHMoKVwiXHJcblx0W3Jvd3NQZXJQYWdlT3B0aW9uc109XCJbMTAsIDIwLCA1MCwgMTAwXVwiXHJcblx0W3Jvd1NlbGVjdGFibGVdPVwicm93U2VsZWN0YWJsZSgpXCJcclxuXHRbZmlsdGVyRGVsYXldPVwiMFwiXHJcblx0W3NvcnRNb2RlXT1cInNvcnRNb2RlKClcIlxyXG5cdFsoc2VsZWN0aW9uKV09XCJzZWxlY3RlZFJvd3NcIlxyXG5cdChvblBhZ2UpPVwib25QYWdlRXZlbnQuZW1pdCgkZXZlbnQpXCJcclxuXHQob25MYXp5TG9hZCk9XCJoYW5kbGVMYXp5TG9hZEV2ZW50KCRldmVudClcIlxyXG5cdChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0aW9uRXZlbnQuZW1pdChzZWxlY3RlZFJvd3MpXCJcclxuXHRbc2hvd0N1cnJlbnRQYWdlUmVwb3J0XT1cInRydWVcIlxyXG5cdFtzZWxlY3Rpb25Nb2RlXT1cInNlbGVjdGlvbk1vZGUoKVwiXHJcblx0W2NvbHVtblJlc2l6ZU1vZGVdPVwiaXNDb2x1bW5FeHBhbmRNb2RlKCkgPyAnZXhwYW5kJyA6ICcnXCJcclxuXHRbcmVzaXphYmxlQ29sdW1uc109XCJpc1Jlc2l6YWJsZUNvbHVtbnMoKVwiXHJcblx0W2N1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGVdPVwiY3VycmVudFBhZ2VSZXBvcnRUZXh0XCJcclxuXHRzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc21cIlxyXG5cdFtwYWdpbmF0b3JEcm9wZG93bkFwcGVuZFRvXT1cInBhZ2luYXRvckRyb3Bkb3duQXBwZW5kVG8oKVwiXHJcblx0W3Njcm9sbGFibGVdPVwic2Nyb2xsYWJsZSgpXCJcclxuXHRbc2Nyb2xsSGVpZ2h0XT1cInNjcm9sbEhlaWdodCgpXCJcclxuXHRbc2hvd0ZpcnN0TGFzdEljb25dPVwic2hvd0ZpcnN0TGFzdEljb24oKVwiXHJcblx0W3Jlb3JkZXJhYmxlQ29sdW1uc109XCJyZW9yZGVyYWJsZUNvbHVtbnMoKVwiXHJcblx0KG9uUm93UmVvcmRlcik9XCJyb3dSZW9yZGVyKCRldmVudClcIj5cclxuXHQ8IS0tQGlmICh0YWJsZUhlYWRlcigpIHx8IHNob3dTZWFyY2hUb29sKCkgfHwgc2hvd0V4cG9ydFRvb2woKSkge1xyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggc3BhY2UtYmV0d2VlblwiPlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHRAaWYgKHRhYmxlSGVhZGVyKCkubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyB0YWJsZUhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtdGV4dFxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIlNFQVJDSFwiXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uUG9zPVwibGVmdFwiXHJcblx0XHRcdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIkFyYW1hXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtuZ01vZGVsXT1cImZpbHRlclRleHRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJtci0xXCJcclxuXHRcdFx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cInJlZi5maWx0ZXJHbG9iYWwoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NvbnRhaW5zJylcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtdGV4dD5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfRVhDRUxcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I9XCJwcmltYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHRcdHBUb29sdGlwPVwiWExTXCJcclxuXHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcblx0XHRcdFx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJleGNlbEV4cG9ydCgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwibXItMVwiPlxyXG5cdFx0XHRcdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfUERGXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0XHRcdFx0XHRwVG9vbHRpcD1cIlBERlwiXHJcblx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHRcdFx0KGNsaWNrRXZlbnQpPVwiZXhwb3J0UGRmKClcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdEBpZiAoZGF0YSgpICYmIGtlYmFiTWVudUl0ZW1zLmxlbmd0aCA+IDAgKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdiB0b29scyBzdHlsZT1cInBhZGRpbmc6IDRweDttYXJnaW4tbGVmdDogNHB4O2JvcmRlcjoxcHggc29saWQgIzYzNjZmMTtib3JkZXItcmFkaXVzOiA2cHg7YmFja2dyb3VuZC1jb2xvcjogIzYzNjZmMTsgY29sb3I6IHdoaXRlO1wiID5cclxuXHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFthdHRyLnJvbGVdPVwiJ25vbmUnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBtci0xIGhlYWRlci1pY29uIHBpLWVsbGlwc2lzLXZcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiYnVsa09wZXJhdGlvbnMudG9nZ2xlKCRldmVudCk7XCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHAtbWVudVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQjYnVsa09wZXJhdGlvbnNcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3BvcHVwXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbbW9kZWxdPVwia2ViYWJNZW51SXRlbXNcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRzdHlsZUNsYXNzPVwiei1pbmRleDogOTk5ODg5OTtcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHR9LS0+XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJncm91cGhlYWRlclwiIGxldC1pdGVtIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCIgbGV0LWV4cGFuZGVkPVwiZXhwYW5kZWRcIj5cclxuXHRcdDx0ciBwUm93R3JvdXBIZWFkZXIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmYWZjXCI+XHJcblx0XHRcdDx0ZCBbYXR0ci5jb2xzcGFuXT1cImNvbHVtbnMuX3Jlc3VsdHMubGVuZ3RoXCI+XHJcblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmb250LWJvbGQgbWwtMlwiIHN0eWxlPVwiY29sb3I6ICM2YjcyODBcIj57eyBpdGVtLmdyb3VwTmFtZSB9fTwvc3Bhbj5cclxuXHRcdFx0PC90ZD5cclxuXHRcdDwvdHI+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHRAaWYgKHJlb3JkZXJhYmxlQ29sdW1ucygpKSB7XHJcblx0XHRcdFx0PHRoIHN0eWxlPVwid2lkdGg6IDNyZW1cIj48L3RoPlxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRAaWYgKGNoZWNrYm94U2VsZWN0aW9uKCkpIHtcclxuXHRcdFx0XHQ8dGg+XHJcblx0XHRcdFx0XHRAaWYgKGhlYWRlckNoZWNrYm94U2VsZWN0aW9uKCkpIHtcclxuXHRcdFx0XHRcdFx0PHAtdGFibGVIZWFkZXJDaGVja2JveD48L3AtdGFibGVIZWFkZXJDaGVja2JveD5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHR9XHJcblx0XHRcdEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayAkaW5kZXgpIHtcclxuXHRcdFx0XHRAaWYgKGNvbHVtbi50eXBlKCkgPT09ICdvcGVyYXRpb25zJykge1xyXG5cdFx0XHRcdFx0PHRoPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+xLDFn2xlbWxlcjwvZGl2PlxyXG5cdFx0XHRcdFx0PC90aD5cclxuXHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdEBpZiAoaXNSZXNpemFibGVDb2x1bW5zKCkpIHtcclxuXHRcdFx0XHRcdFx0PHRoXHJcblx0XHRcdFx0XHRcdFx0W3BTb3J0YWJsZUNvbHVtbl09XCJjb2x1bW4uZmllbGQoKVwiXHJcblx0XHRcdFx0XHRcdFx0W25nU3R5bGVdPVwieyB3aWR0aDogY29sdW1uLndpZHRoKCkgPyBjb2x1bW4ud2lkdGgoKSA6ICdhdXRvJyB9XCJcclxuXHRcdFx0XHRcdFx0XHRwUmVzaXphYmxlQ29sdW1uPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3sgY29sdW1uLmhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaWYgKGNvbHVtbi5pc1Nob3dIZWFkZXJUb29sdGlwKCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogZ3JlZW47IHBhZGRpbmctdG9wOiA0cHg7IHBhZGRpbmctbGVmdDogNHB4XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicGkgcGktaW5mby1jaXJjbGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cImNvbHVtbi50b29sdGlwVGVtcGxhdGUoKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0QGlmICghaXNMYXp5KCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sdW1uLmZpZWxkKClcIj48L3Atc29ydEljb24+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHRcdFx0fSBAZWxzZSBpZiAoaXNTb3J0YWJsZSgpKSB7XHJcblx0XHRcdFx0XHRcdDx0aFxyXG5cdFx0XHRcdFx0XHRcdFtwU29ydGFibGVDb2x1bW5dPVwiY29sdW1uLmZpZWxkKClcIlxyXG5cdFx0XHRcdFx0XHRcdFtuZ1N0eWxlXT1cInsgd2lkdGg6IGNvbHVtbi53aWR0aCgpID8gY29sdW1uLndpZHRoKCkgOiAnYXV0bycgfVwiXHJcblx0XHRcdFx0XHRcdFx0c3R5bGU9XCJtaW4td2lkdGg6IDE3MHB4XCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7eyBjb2x1bW4uaGVhZGVyKCkgfX1cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoY29sdW1uLmlzU2hvd0hlYWRlclRvb2x0aXAoKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiBncmVlbjsgcGFkZGluZy10b3A6IDRweDsgcGFkZGluZy1sZWZ0OiA0cHhcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1pbmZvLWNpcmNsZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiY29sdW1uLnRvb2x0aXBUZW1wbGF0ZSgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sdW1uLmZpZWxkKClcIj48L3Atc29ydEljb24+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC90aD5cclxuXHRcdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQ8dGggW25nU3R5bGVdPVwieyB3aWR0aDogY29sdW1uLndpZHRoKCkgPyBjb2x1bW4ud2lkdGgoKSA6ICdhdXRvJyB9XCIgc3R5bGU9XCJtaW4td2lkdGg6IDE3MHB4XCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7eyBjb2x1bW4uaGVhZGVyKCkgfX1cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoY29sdW1uLmlzU2hvd0hlYWRlclRvb2x0aXAoKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiBncmVlbjsgcGFkZGluZy10b3A6IDRweDsgcGFkZGluZy1sZWZ0OiA0cHhcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1pbmZvLWNpcmNsZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiY29sdW1uLnRvb2x0aXBUZW1wbGF0ZSgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvdGg+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHQ8L3RyPlxyXG5cdDwvbmctdGVtcGxhdGU+XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWl0ZW0gbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCIgbGV0LWluZGV4PVwicm93SW5kZXhcIj5cclxuXHRcdEBpZiAoaGFuZGxlZFNlbGVjdGlvbk1vZGUpIHtcclxuXHRcdFx0PHRyXHJcblx0XHRcdFx0W3BTZWxlY3RhYmxlUm93XT1cIml0ZW1cIlxyXG5cdFx0XHRcdFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBpdGVtPy5yb3dDb2xvciA/IGl0ZW0/LnJvd0NvbG9yIDogbnVsbCB9XCJcclxuXHRcdFx0XHRbcFJlb3JkZXJhYmxlUm93XT1cImluZGV4XCI+XHJcblx0XHRcdFx0QGlmIChyZW9yZGVyYWJsZUNvbHVtbnMoKSkge1xyXG5cdFx0XHRcdFx0PHRkPlxyXG5cdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInBpIHBpLWJhcnNcIiBwUmVvcmRlcmFibGVSb3dIYW5kbGU+PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayAkaW5kZXgpIHtcclxuXHRcdFx0XHRcdDx0ZCBbbmdTdHlsZV09XCJ7ICd0ZXh0LWFsaWduJzogY29sdW1uLnR5cGUoKSA9PT0gJ29wZXJhdGlvbnMnID8gJ2NlbnRlcicgOiBjb2x1bW4udEFsaWduKCkgfHwgdEFsaWduKCkgfVwiPlxyXG5cdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgbmdGb3IgW25nRm9yT2ZdPVwiW2l0ZW1dXCIgW25nRm9yVGVtcGxhdGVdPVwiY29sdW1uLnRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDwvdGQ+XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQ8L3RyPlxyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdDx0ciBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogaXRlbT8ucm93Q29sb3IgPyBpdGVtPy5yb3dDb2xvciA6IG51bGwgfVwiIFtwUmVvcmRlcmFibGVSb3ddPVwiaW5kZXhcIj5cclxuXHRcdFx0XHRAaWYgKHJlb3JkZXJhYmxlQ29sdW1ucygpKSB7XHJcblx0XHRcdFx0XHQ8dGQ+XHJcblx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwicGkgcGktYmFyc1wiIHBSZW9yZGVyYWJsZVJvd0hhbmRsZT48L3NwYW4+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRAaWYgKGNoZWNrYm94U2VsZWN0aW9uKCkpIHtcclxuXHRcdFx0XHRcdDx0ZD5cclxuXHRcdFx0XHRcdFx0PHAtdGFibGVDaGVja2JveCBbdmFsdWVdPVwiaXRlbVwiPjwvcC10YWJsZUNoZWNrYm94PlxyXG5cdFx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayAkaW5kZXgpIHtcclxuXHRcdFx0XHRcdDx0ZCBbbmdTdHlsZV09XCJ7ICd0ZXh0LWFsaWduJzogY29sdW1uLnR5cGUoKSA9PT0gJ29wZXJhdGlvbnMnID8gJ2NlbnRlcicgOiBjb2x1bW4udEFsaWduKCkgfHwgdEFsaWduKCkgfVwiPlxyXG5cdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgbmdGb3IgW25nRm9yT2ZdPVwiW2l0ZW1dXCIgW25nRm9yVGVtcGxhdGVdPVwiY29sdW1uLnRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDwvdGQ+XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQ8L3RyPlxyXG5cdFx0fVxyXG5cdDwvbmctdGVtcGxhdGU+XHJcblxyXG5cdEBpZiAoc2hvd0Zvb3RlcigpKSB7XHJcblx0XHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwic3VtbWFyeVwiPlxyXG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJbZm9vdGVyXVwiPjwvbmctY29udGVudD5cclxuXHRcdDwvbmctdGVtcGxhdGU+XHJcblx0fVxyXG5cclxuXHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZCBbYXR0ci5jb2xzcGFuXT1cImNvbHVtbnMuX3Jlc3VsdHMubGVuZ3RoXCI+e3sgbm9EYXRhRm91bmRMYWJlbCgpIH19PC90ZD5cclxuXHRcdDwvdHI+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuPC9wLXRhYmxlPlxyXG5cclxuPHAtb3ZlcmxheVBhbmVsIHN0eWxlQ2xhc3M9XCJleHBvcnQtb3ZlcmxheS1wYW5lbFwiIFtiYXNlWkluZGV4XT1cIjExMDFcIj5cclxuXHRAaWYgKGV4cG9ydEZvcm0pIHtcclxuXHRcdDxhcmlsLWZvcm0gW2Zvcm1Hcm91cF09XCJleHBvcnRGb3JtXCIgY2xhc3M9XCJ3LTIwcmVtXCI+XHJcblx0XHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCInRG9zeWEgVGlwaSdcIiBbY29sc109XCJ7IGRlZmF1bHQ6IDEyIH1cIj5cclxuXHRcdFx0XHQ8YXJpbC1yYWRpby1idXR0b24gZm9ybUNvbnRyb2xOYW1lPVwiZXhwb3J0VHlwZVwiIFtvcHRpb25zXT1cImV4cG9ydFR5cGVPcHRpb25zXCIgLz5cclxuXHRcdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cIidEb3N5YSDEsHNtaSdcIiBbY29sc109XCJ7IGRlZmF1bHQ6IDEyIH1cIj5cclxuXHRcdFx0XHQ8YXJpbC10ZXh0IGNsYXNzPVwidy1mdWxsXCIgZm9ybUNvbnRyb2xOYW1lPVwiZXhwb3J0TGFiZWxcIiAvPlxyXG5cdFx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0XHQ8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJjb2x1bW5zXCI+XHJcblx0XHRcdFx0PHAtb3JkZXJMaXN0XHJcblx0XHRcdFx0XHQjb3JkZXJMaXN0UmVmXHJcblx0XHRcdFx0XHRjbGFzcz1cImNvbC0xMlwiXHJcblx0XHRcdFx0XHRbdmFsdWVdPVwiZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLmNvbnRyb2xzXCJcclxuXHRcdFx0XHRcdFtsaXN0U3R5bGVdPVwieyAnbWF4LWhlaWdodCc6ICcyMHJlbScgfVwiXHJcblx0XHRcdFx0XHRmaWx0ZXJCeT1cInZhbHVlLnRpdGxlXCJcclxuXHRcdFx0XHRcdFtkaXNhYmxlZF09XCJpc0xvYWRpbmdGb3JFeHBvcnQoKVwiPlxyXG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZpbHRlclwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cclxuXHRcdFx0XHRcdFx0XHQ8YXJpbC1jaGVja2JveFxyXG5cdFx0XHRcdFx0XHRcdFx0W2xhYmVsXT1cIicnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtuZ01vZGVsXT1cImlzQWxsU2VsZWN0ZWRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuXHRcdFx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VsZWN0QWxsKCRldmVudClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W2Rpc2FibGVkXT1cImlzTG9hZGluZ0ZvckV4cG9ydCgpXCIgLz5cclxuXHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInAtb3JkZXJsaXN0LWZpbHRlclwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInZmlsdGVyJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGlucHV0XHJcblx0XHRcdFx0XHRcdFx0XHRcdCNmaWx0ZXJcclxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZT1cInRleHRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRyb2xlPVwidGV4dGJveFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdChrZXl1cCk9XCJvcmRlckxpc3RSZWYub25GaWx0ZXJLZXl1cCgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2Rpc2FibGVkXT1cIm9yZGVyTGlzdFJlZi5kaXNhYmxlZFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicC1vcmRlcmxpc3QtZmlsdGVyLWlucHV0IHAtaW5wdXR0ZXh0IHAtY29tcG9uZW50XCIgLz5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIGxldC1jb2wgcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8YXJpbC1jaGVja2JveCBbbGFiZWxdPVwiY29sLnZhbHVlLnRpdGxlXCIgW2Zvcm1Db250cm9sXT1cImNvbC5jb250cm9scy5jaGVja2VkXCIgLz5cclxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0PC9wLW9yZGVyTGlzdD5cclxuXHRcdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHQ8YXJpbC1idXR0b25cclxuXHRcdFx0XHRjbGFzcz1cImNvbC0xMlwiXHJcblx0XHRcdFx0W2xhYmVsXT1cInRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCduYXZpZ2F0ZVRvRXhwb3J0UmVxdWVzdHMnKVwiXHJcblx0XHRcdFx0Y29sb3I9XCJzZWNvbmRhcnlcIlxyXG5cdFx0XHRcdChjbGlja0V2ZW50KT1cIm5hdGl2YXRlVG9FeHBvcnRSZXF1ZXN0cygpXCIgLz5cclxuXHJcblx0XHRcdDxhcmlsLWJ1dHRvblxyXG5cdFx0XHRcdGNsYXNzPVwiY29sLTEyXCJcclxuXHRcdFx0XHRbbGFiZWxdPVwidHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLmV4cG9ydCcpXCJcclxuXHRcdFx0XHRjb2xvcj1cInByaW1hcnlcIlxyXG5cdFx0XHRcdChjbGlja0V2ZW50KT1cImV4cG9ydCgpXCJcclxuXHRcdFx0XHRbZGlzYWJsZWRdPVwiaXNMb2FkaW5nRm9yRXhwb3J0KClcIiAvPlxyXG5cdFx0PC9hcmlsLWZvcm0+XHJcblx0fVxyXG48L3Atb3ZlcmxheVBhbmVsPlxyXG4iXX0=
|