@ng-nest/ui 18.0.10 → 18.0.12
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/input-number/input-number.component.mjs +3 -3
- package/esm2022/keyword/keyword.directive.mjs +4 -1
- package/esm2022/list/list.component.mjs +28 -13
- package/esm2022/menu/menu-node.component.mjs +6 -3
- package/esm2022/menu/menu.component.mjs +3 -3
- package/esm2022/message-box/message-box.component.mjs +10 -4
- package/esm2022/message-box/message-box.property.mjs +1 -1
- package/esm2022/message-box/message-box.service.mjs +11 -4
- package/esm2022/pagination/pagination.component.mjs +3 -3
- package/esm2022/popconfirm/popconfirm.component.mjs +3 -3
- package/esm2022/resizable/resizable.directive.mjs +5 -3
- package/esm2022/ripple/ripple.directive.mjs +28 -17
- package/esm2022/select/select-portal.component.mjs +4 -3
- package/esm2022/select/select.component.mjs +15 -9
- package/esm2022/select/select.property.mjs +9 -2
- package/esm2022/skeleton/skeleton.component.mjs +3 -1
- package/esm2022/slider-select/slider-select.component.mjs +8 -3
- package/esm2022/table/table-head.component.mjs +2 -2
- package/esm2022/table/table.property.mjs +2 -2
- package/esm2022/textarea/textarea.property.mjs +7 -2
- package/esm2022/tooltip/tooltip-portal.component.mjs +14 -3
- package/fesm2022/ng-nest-ui-input-number.mjs +2 -2
- package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-keyword.mjs +3 -0
- package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-list.mjs +27 -12
- package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-menu.mjs +7 -4
- package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message-box.mjs +19 -6
- package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pagination.mjs +2 -2
- package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popconfirm.mjs +2 -2
- package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-resizable.mjs +4 -2
- package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-ripple.mjs +27 -16
- package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +24 -10
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-skeleton.mjs +2 -0
- package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider-select.mjs +7 -2
- package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table.mjs +1 -1
- package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-textarea.mjs +6 -1
- package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tooltip.mjs +13 -2
- package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
- package/list/list.component.d.ts +3 -0
- package/menu/menu-node.component.d.ts +5 -2
- package/message-box/message-box.property.d.ts +17 -2
- package/package.json +120 -120
- package/ripple/ripple.directive.d.ts +7 -3
- package/select/select-portal.component.d.ts +2 -1
- package/select/select.component.d.ts +1 -0
- package/select/select.property.d.ts +6 -1
- package/textarea/textarea.property.d.ts +11 -10
- package/tooltip/tooltip-portal.component.d.ts +3 -0
|
@@ -184,7 +184,7 @@ export class XPaginationComponent extends XPaginationProperty {
|
|
|
184
184
|
return this.index() === index;
|
|
185
185
|
}
|
|
186
186
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XPaginationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
187
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: XPaginationComponent, isStandalone: true, selector: "x-pagination", host: { properties: { "class": "this.className" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (simple()) {\r\n <div class=\"x-pagination-simple\">\r\n <x-input\r\n [bordered]=\"showBackground()\"\r\n [before]=\"previousTpl\"\r\n [after]=\"nextTpl\"\r\n [style.width]=\"simpleIndexWidth()\"\r\n [(ngModel)]=\"index\"\r\n (xKeydown)=\"onSimpleKeydown($event)\"\r\n ></x-input>\r\n <span>/</span>\r\n <span>{{ lastIndex() }}</span>\r\n </div>\r\n} @else {\r\n <x-buttons [space]=\"space()\" [hiddenBorder]=\"!showBackground()\" [boxShadow]=\"false\">\r\n @if (showEllipsis()) {\r\n <x-button\r\n [icon]=\"'fto-chevrons-left'\"\r\n [title]=\"'pagination.first' | xI18n\"\r\n [disabled]=\"disabled() || firstActivated()\"\r\n (click)=\"jump(1)\"\r\n plain\r\n flat\r\n ></x-button>\r\n }\r\n <ng-container *xOutlet=\"previousTpl\"></ng-container>\r\n @for (item of indexes(); track item) {\r\n <x-button
|
|
187
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: XPaginationComponent, isStandalone: true, selector: "x-pagination", host: { properties: { "class": "this.className" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (simple()) {\r\n <div class=\"x-pagination-simple\">\r\n <x-input\r\n [bordered]=\"showBackground()\"\r\n [before]=\"previousTpl\"\r\n [after]=\"nextTpl\"\r\n [style.width]=\"simpleIndexWidth()\"\r\n [(ngModel)]=\"index\"\r\n (xKeydown)=\"onSimpleKeydown($event)\"\r\n ></x-input>\r\n <span>/</span>\r\n <span>{{ lastIndex() }}</span>\r\n </div>\r\n} @else {\r\n <x-buttons class=\"x-pagination-group\" [space]=\"space()\" [hiddenBorder]=\"!showBackground()\" [boxShadow]=\"false\">\r\n @if (showEllipsis()) {\r\n <x-button\r\n class=\"x-pagination-first\"\r\n [icon]=\"'fto-chevrons-left'\"\r\n [title]=\"'pagination.first' | xI18n\"\r\n [disabled]=\"disabled() || firstActivated()\"\r\n (click)=\"jump(1)\"\r\n plain\r\n flat\r\n ></x-button>\r\n }\r\n <ng-container *xOutlet=\"previousTpl\"></ng-container>\r\n @for (item of indexes(); track item) {\r\n <x-button\r\n class=\"x-pagination-link\"\r\n [disabled]=\"disabled()\"\r\n plain\r\n flat\r\n [activated]=\"getActivated(item)\"\r\n (click)=\"jump(item)\"\r\n >{{ item }}</x-button\r\n >\r\n }\r\n <ng-container *xOutlet=\"nextTpl\"></ng-container>\r\n @if (showEllipsis() && !simple()) {\r\n <x-button\r\n class=\"x-pagination-last\"\r\n [icon]=\"'fto-chevrons-right'\"\r\n [title]=\"'pagination.last' | xI18n\"\r\n [disabled]=\"disabled() || lastActivated()\"\r\n (click)=\"jump(lastIndex())\"\r\n plain\r\n flat\r\n ></x-button>\r\n }\r\n </x-buttons>\r\n}\r\n@if (showSize() && !showInputSize()) {\r\n <x-select\r\n [style.width]=\"sizeWidth()\"\r\n class=\"x-pagination-size\"\r\n [data]=\"sizeDataSignal()\"\r\n [clearable]=\"false\"\r\n [disabled]=\"disabled()\"\r\n [bordered]=\"showBackground()\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [(ngModel)]=\"size\"\r\n (ngModelChange)=\"sizeChanged()\"\r\n ></x-select>\r\n}\r\n@if (showInputSize()) {\r\n <div class=\"x-pagination-input-size\">\r\n <x-input\r\n x-tooltip\r\n [content]=\"inputSizeTooltip()\"\r\n [style.width]=\"inputSizeWidth()\"\r\n [disabled]=\"disabled()\"\r\n [bordered]=\"showBackground()\"\r\n [(ngModel)]=\"inputSize\"\r\n (xBlur)=\"onInputSizeBlur($event)\"\r\n (xKeydown)=\"onInputSizeKeydown($event)\"\r\n ></x-input>\r\n <span> {{ 'pagination.sizePage' | xI18n }} </span>\r\n </div>\r\n}\r\n@if (showJump() && !simple()) {\r\n <div class=\"x-pagination-jump\">\r\n <span>{{ 'pagination.jump' | xI18n }}</span>\r\n <x-input\r\n x-tooltip\r\n [content]=\"jumpTooltip()\"\r\n [bordered]=\"showBackground()\"\r\n [style.width]=\"jumpWidth()\"\r\n [(ngModel)]=\"jumpPage\"\r\n (xBlur)=\"onJumpBlur($event)\"\r\n (xKeydown)=\"onJumpKeydown($event)\"\r\n ></x-input>\r\n </div>\r\n}\r\n@if (showTotal()) {\r\n <x-button [disabled]=\"disabled()\" plain flat class=\"x-pagination-total\">\r\n <ng-container *xOutlet=\"totalTpl(); context: { $total: total() }\">\r\n {{ 'pagination.total' | xI18n }} {{ total() }} {{ 'pagination.item' | xI18n }}\r\n </ng-container>\r\n </x-button>\r\n}\r\n<ng-template #previousTpl>\r\n <x-button\r\n [icon]=\"'fto-chevron-left'\"\r\n [title]=\"'pagination.previous' | xI18n\"\r\n [disabled]=\"disabled() || leftDisabled()\"\r\n (click)=\"jump(-1, true)\"\r\n plain\r\n flat\r\n ></x-button>\r\n</ng-template>\r\n\r\n<ng-template #nextTpl>\r\n <x-button\r\n [icon]=\"'fto-chevron-right'\"\r\n [title]=\"'pagination.next' | xI18n\"\r\n [disabled]=\"disabled() || rightDisabled()\"\r\n (click)=\"jump(1, true)\"\r\n plain\r\n flat\r\n ></x-button>\r\n</ng-template>\r\n\r\n<ng-template #nodeTpl let-node=\"$node\">\r\n @if (node) {\r\n {{ node?.label }} {{ 'pagination.sizePage' | xI18n }}\r\n }\r\n</ng-template>\r\n", styles: [".x-pagination{margin:0;padding:0}.x-pagination{display:inline-flex}.x-pagination>.x-buttons.x-buttons-hiddenBorder>x-button>.x-button{min-width:1.75rem}.x-pagination>.x-buttons.x-buttons-hiddenBorder>x-button>.x-button-activated{background-color:#0000000d}.x-pagination-size,.x-pagination-total{margin-left:.5rem}.x-pagination-input-size{margin-left:.5rem;display:inline-flex;align-items:center}.x-pagination-input-size x-input{margin-right:.5rem}.x-pagination-jump{margin-left:.5rem;display:inline-flex;align-items:center}.x-pagination-jump x-input{margin-left:.5rem}.x-pagination-simple{margin-right:.5rem;display:inline-flex;align-items:center}.x-pagination-simple>x-input input{text-align:center}.x-pagination-simple>span{margin-left:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "component", type: XButtonsComponent, selector: "x-buttons" }, { kind: "pipe", type: XI18nPipe, name: "xI18n" }, { kind: "component", type: XSelectComponent, selector: "x-select" }, { kind: "component", type: XInputComponent, selector: "x-input" }, { kind: "ngmodule", type: XTooltipModule }, { kind: "directive", type: i2.XTooltipDirective, selector: "[x-tooltip], x-tooltip" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
188
188
|
}
|
|
189
189
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XPaginationComponent, decorators: [{
|
|
190
190
|
type: Component,
|
|
@@ -197,9 +197,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
197
197
|
XInputComponent,
|
|
198
198
|
XTooltipModule,
|
|
199
199
|
XOutletDirective
|
|
200
|
-
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (simple()) {\r\n <div class=\"x-pagination-simple\">\r\n <x-input\r\n [bordered]=\"showBackground()\"\r\n [before]=\"previousTpl\"\r\n [after]=\"nextTpl\"\r\n [style.width]=\"simpleIndexWidth()\"\r\n [(ngModel)]=\"index\"\r\n (xKeydown)=\"onSimpleKeydown($event)\"\r\n ></x-input>\r\n <span>/</span>\r\n <span>{{ lastIndex() }}</span>\r\n </div>\r\n} @else {\r\n <x-buttons [space]=\"space()\" [hiddenBorder]=\"!showBackground()\" [boxShadow]=\"false\">\r\n @if (showEllipsis()) {\r\n <x-button\r\n [icon]=\"'fto-chevrons-left'\"\r\n [title]=\"'pagination.first' | xI18n\"\r\n [disabled]=\"disabled() || firstActivated()\"\r\n (click)=\"jump(1)\"\r\n plain\r\n flat\r\n ></x-button>\r\n }\r\n <ng-container *xOutlet=\"previousTpl\"></ng-container>\r\n @for (item of indexes(); track item) {\r\n <x-button
|
|
200
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (simple()) {\r\n <div class=\"x-pagination-simple\">\r\n <x-input\r\n [bordered]=\"showBackground()\"\r\n [before]=\"previousTpl\"\r\n [after]=\"nextTpl\"\r\n [style.width]=\"simpleIndexWidth()\"\r\n [(ngModel)]=\"index\"\r\n (xKeydown)=\"onSimpleKeydown($event)\"\r\n ></x-input>\r\n <span>/</span>\r\n <span>{{ lastIndex() }}</span>\r\n </div>\r\n} @else {\r\n <x-buttons class=\"x-pagination-group\" [space]=\"space()\" [hiddenBorder]=\"!showBackground()\" [boxShadow]=\"false\">\r\n @if (showEllipsis()) {\r\n <x-button\r\n class=\"x-pagination-first\"\r\n [icon]=\"'fto-chevrons-left'\"\r\n [title]=\"'pagination.first' | xI18n\"\r\n [disabled]=\"disabled() || firstActivated()\"\r\n (click)=\"jump(1)\"\r\n plain\r\n flat\r\n ></x-button>\r\n }\r\n <ng-container *xOutlet=\"previousTpl\"></ng-container>\r\n @for (item of indexes(); track item) {\r\n <x-button\r\n class=\"x-pagination-link\"\r\n [disabled]=\"disabled()\"\r\n plain\r\n flat\r\n [activated]=\"getActivated(item)\"\r\n (click)=\"jump(item)\"\r\n >{{ item }}</x-button\r\n >\r\n }\r\n <ng-container *xOutlet=\"nextTpl\"></ng-container>\r\n @if (showEllipsis() && !simple()) {\r\n <x-button\r\n class=\"x-pagination-last\"\r\n [icon]=\"'fto-chevrons-right'\"\r\n [title]=\"'pagination.last' | xI18n\"\r\n [disabled]=\"disabled() || lastActivated()\"\r\n (click)=\"jump(lastIndex())\"\r\n plain\r\n flat\r\n ></x-button>\r\n }\r\n </x-buttons>\r\n}\r\n@if (showSize() && !showInputSize()) {\r\n <x-select\r\n [style.width]=\"sizeWidth()\"\r\n class=\"x-pagination-size\"\r\n [data]=\"sizeDataSignal()\"\r\n [clearable]=\"false\"\r\n [disabled]=\"disabled()\"\r\n [bordered]=\"showBackground()\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [(ngModel)]=\"size\"\r\n (ngModelChange)=\"sizeChanged()\"\r\n ></x-select>\r\n}\r\n@if (showInputSize()) {\r\n <div class=\"x-pagination-input-size\">\r\n <x-input\r\n x-tooltip\r\n [content]=\"inputSizeTooltip()\"\r\n [style.width]=\"inputSizeWidth()\"\r\n [disabled]=\"disabled()\"\r\n [bordered]=\"showBackground()\"\r\n [(ngModel)]=\"inputSize\"\r\n (xBlur)=\"onInputSizeBlur($event)\"\r\n (xKeydown)=\"onInputSizeKeydown($event)\"\r\n ></x-input>\r\n <span> {{ 'pagination.sizePage' | xI18n }} </span>\r\n </div>\r\n}\r\n@if (showJump() && !simple()) {\r\n <div class=\"x-pagination-jump\">\r\n <span>{{ 'pagination.jump' | xI18n }}</span>\r\n <x-input\r\n x-tooltip\r\n [content]=\"jumpTooltip()\"\r\n [bordered]=\"showBackground()\"\r\n [style.width]=\"jumpWidth()\"\r\n [(ngModel)]=\"jumpPage\"\r\n (xBlur)=\"onJumpBlur($event)\"\r\n (xKeydown)=\"onJumpKeydown($event)\"\r\n ></x-input>\r\n </div>\r\n}\r\n@if (showTotal()) {\r\n <x-button [disabled]=\"disabled()\" plain flat class=\"x-pagination-total\">\r\n <ng-container *xOutlet=\"totalTpl(); context: { $total: total() }\">\r\n {{ 'pagination.total' | xI18n }} {{ total() }} {{ 'pagination.item' | xI18n }}\r\n </ng-container>\r\n </x-button>\r\n}\r\n<ng-template #previousTpl>\r\n <x-button\r\n [icon]=\"'fto-chevron-left'\"\r\n [title]=\"'pagination.previous' | xI18n\"\r\n [disabled]=\"disabled() || leftDisabled()\"\r\n (click)=\"jump(-1, true)\"\r\n plain\r\n flat\r\n ></x-button>\r\n</ng-template>\r\n\r\n<ng-template #nextTpl>\r\n <x-button\r\n [icon]=\"'fto-chevron-right'\"\r\n [title]=\"'pagination.next' | xI18n\"\r\n [disabled]=\"disabled() || rightDisabled()\"\r\n (click)=\"jump(1, true)\"\r\n plain\r\n flat\r\n ></x-button>\r\n</ng-template>\r\n\r\n<ng-template #nodeTpl let-node=\"$node\">\r\n @if (node) {\r\n {{ node?.label }} {{ 'pagination.sizePage' | xI18n }}\r\n }\r\n</ng-template>\r\n", styles: [".x-pagination{margin:0;padding:0}.x-pagination{display:inline-flex}.x-pagination>.x-buttons.x-buttons-hiddenBorder>x-button>.x-button{min-width:1.75rem}.x-pagination>.x-buttons.x-buttons-hiddenBorder>x-button>.x-button-activated{background-color:#0000000d}.x-pagination-size,.x-pagination-total{margin-left:.5rem}.x-pagination-input-size{margin-left:.5rem;display:inline-flex;align-items:center}.x-pagination-input-size x-input{margin-right:.5rem}.x-pagination-jump{margin-left:.5rem;display:inline-flex;align-items:center}.x-pagination-jump x-input{margin-left:.5rem}.x-pagination-simple{margin-right:.5rem;display:inline-flex;align-items:center}.x-pagination-simple>x-input input{text-align:center}.x-pagination-simple>span{margin-left:.5rem}\n"] }]
|
|
201
201
|
}], propDecorators: { className: [{
|
|
202
202
|
type: HostBinding,
|
|
203
203
|
args: ['class']
|
|
204
204
|
}] } });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUV2QixNQUFNLEVBQ04sUUFBUSxFQUNSLFdBQVcsRUFDWCxVQUFVLEVBQ1YsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9FLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFF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ZTt3QkFDZixjQUFjO3dCQUNkLGdCQUFnQjtxQkFDakIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFTekIsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgT25Jbml0LFxyXG4gIHNpZ25hbCxcclxuICBjb21wdXRlZCxcclxuICBIb3N0QmluZGluZyxcclxuICBFbGVtZW50UmVmLFxyXG4gIGluamVjdCxcclxuICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhQYWdpbmF0aW9uUHJlZml4LCBYUGFnaW5hdGlvblByb3BlcnR5IH0gZnJvbSAnLi9wYWdpbmF0aW9uLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWEkxOG5QYWdpbmF0aW9uLCBYSTE4blBpcGUsIFhJMThuU2VydmljZSwgemhfQ04gfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgWEJ1dHRvbkNvbXBvbmVudCwgWEJ1dHRvbnNDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9idXR0b24nO1xyXG5pbXBvcnQgeyBYU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvc2VsZWN0JztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYT3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnQG5nLW5lc3QvdWkvb3V0bGV0JztcclxuaW1wb3J0IHsgWElzQ2hhbmdlLCBYVG9EYXRhQXJyYXkgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS90b29sdGlwJztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hQYWdpbmF0aW9uUHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFhCdXR0b25Db21wb25lbnQsXHJcbiAgICBYQnV0dG9uc0NvbXBvbmVudCxcclxuICAgIFhJMThuUGlwZSxcclxuICAgIFhTZWxlY3RDb21wb25lbnQsXHJcbiAgICBYSW5wdXRDb21wb25lbnQsXHJcbiAgICBYVG9vbHRpcE1vZHVsZSxcclxuICAgIFhPdXRsZXREaXJlY3RpdmVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS9pbmRleC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFBhZ2luYXRpb25Db21wb25lbnQgZXh0ZW5kcyBYUGFnaW5hdGlvblByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChYSTE4blNlcnZpY2UpO1xyXG4gIGxvY2FsZSA9IHRvU2lnbmFsKHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2UucGlwZShtYXAoKHgpID0+IHgucGFnaW5hdGlvbiBhcyBYSTE4blBhZ2luYXRpb24pKSwge1xyXG4gICAgaW5pdGlhbFZhbHVlOiB6aF9DTi5wYWdpbmF0aW9uXHJcbiAgfSk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc05hbWUgPSBYUGFnaW5hdGlvblByZWZpeDtcclxuXHJcbiAgaW5kZXhGaXJzdCA9IHNpZ25hbCgxKTtcclxuICBpbmRleExhc3QgPSBzaWduYWwoMSk7XHJcbiAganVtcFBhZ2UgPSBzaWduYWw8c3RyaW5nPignJyk7XHJcbiAgaW5wdXRTaXplID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG5cclxuICBsYXN0SW5kZXggPSBjb21wdXRlZCgoKSA9PiBNYXRoLmNlaWwodGhpcy50b3RhbCgpIC8gdGhpcy5zaXplKCkpIHx8IDEpO1xyXG4gIGxlZnREaXNhYmxlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW5kZXgoKSA9PT0gMSB8fCB0aGlzLnRvdGFsKCkgPT09IDApO1xyXG4gIHJpZ2h0RGlzYWJsZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmluZGV4KCkgPT09IHRoaXMubGFzdEluZGV4KCkgfHwgdGhpcy50b3RhbCgpID09PSAwKTtcclxuICBmaXJzdEFjdGl2YXRlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW5kZXgoKSA9PT0gMSk7XHJcbiAgbGFzdEFjdGl2YXRlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW5kZXgoKSA9PT0gdGhpcy5sYXN0SW5kZXgoKSk7XHJcblxyXG4gIGluZGV4ZXMgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBpbmRleGVzOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuaW5kZXgoKSAtIDE7XHJcbiAgICBjb25zdCBtYXhTaXplID0gdGhpcy5wYWdlTGlua1NpemUoKTtcclxuICAgIGNvbnN0IHBhZ2VzID0gTWF0aC5taW4obWF4U2l6ZSwgdGhpcy5sYXN0SW5kZXgoKSk7XHJcbiAgICBsZXQgc3RhcnQgPSBNYXRoLm1heCgwLCBNYXRoLmNlaWwoY3VycmVudCAtIHBhZ2VzIC8gMikpLFxyXG4gICAgICBlbmQgPSBNYXRoLm1pbih0aGlzLmxhc3RJbmRleCgpIC0gMSwgc3RhcnQgKyBwYWdlcyAtIDEpO1xyXG4gICAgdmFyIGRlbHRhID0gbWF4U2l6ZSAtIChlbmQgLSBzdGFydCArIDEpO1xyXG4gICAgc3RhcnQgPSBNYXRoLm1heCgwLCBzdGFydCAtIGRlbHRhKTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPD0gZW5kOyBpKyspIHtcclxuICAgICAgaW5kZXhlcy5wdXNoKGkgKyAxKTtcclxuICAgIH1cclxuICAgIHJldHVybiBpbmRleGVzO1xyXG4gIH0pO1xyXG5cclxuICBzaXplRGF0YVNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IFhUb0RhdGFBcnJheSh0aGlzLnNpemVEYXRhKCkpKTtcclxuXHJcbiAgaW5wdXRTaXplVG9vbHRpcCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGlmICh0aGlzLmlucHV0U2l6ZVRvb2x0aXBUZXh0KCkpIHJldHVybiB0aGlzLmlucHV0U2l6ZVRvb2x0aXBUZXh0KCk7XHJcbiAgICBpZiAodGhpcy5pbnB1dEluZGV4U2l6ZVN1cmVUeXBlKCkgPT09ICdlbnRlcicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKCkuaW5wdXRTaXplVG9vbHRpcEVudGVyO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaW5wdXRJbmRleFNpemVTdXJlVHlwZSgpID09PSAnYmx1cicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKCkuaW5wdXRTaXplVG9vbHRpcEJsdXI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pbnB1dEluZGV4U2l6ZVN1cmVUeXBlKCkgPT09ICdib3RoJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUoKS5pbnB1dFNpemVUb29sdGlwQm90aDtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9KTtcclxuXHJcbiAganVtcFRvb2x0aXAgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5qdW1wVG9vbHRpcFRleHQoKSkgcmV0dXJuIHRoaXMuanVtcFRvb2x0aXBUZXh0KCk7XHJcbiAgICBpZiAodGhpcy5pbnB1dEluZGV4U2l6ZVN1cmVUeXBlKCkgPT09ICdlbnRlcicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKCkuanVtcFRvb2x0aXBFbnRlcjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlucHV0SW5kZXhTaXplU3VyZVR5cGUoKSA9PT0gJ2JsdXInKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZSgpLmp1bXBUb29sdGlwQmx1cjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlucHV0SW5kZXhTaXplU3VyZVR5cGUoKSA9PT0gJ2JvdGgnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZSgpLmp1bXBUb29sdGlwQm90aDtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9KTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmlucHV0U2l6ZS5zZXQodGhpcy5zaXplKCkudG9TdHJpbmcoKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IHNpemUgfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2Uoc2l6ZSkgJiYgdGhpcy5pbnB1dFNpemUuc2V0KHRoaXMuc2l6ZSgpLnRvU3RyaW5nKCkpO1xyXG4gIH1cclxuXHJcbiAgc2l6ZUNoYW5nZWQoKSB7XHJcbiAgICBpZiAodGhpcy5pbmRleCgpICE9PSAxKSB7XHJcbiAgICAgIHRoaXMuaW5kZXguc2V0KDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAganVtcChpbmRleDogbnVtYmVyLCBpc0RpZmYgPSBmYWxzZSkge1xyXG4gICAgY29uc3QgaXggPSB0aGlzLnZhbGlkYXRlSW5kZXgoaXNEaWZmID8gdGhpcy5pbmRleCgpICsgaW5kZXggOiBpbmRleCk7XHJcbiAgICBpZiAoaXggIT09IHRoaXMuaW5kZXgoKSkge1xyXG4gICAgICB0aGlzLmluZGV4LnNldChpeCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkp1bXBCbHVyKF9ldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKCFbJ2JsdXInLCAnYm90aCddLmluY2x1ZGVzKHRoaXMuaW5wdXRJbmRleFNpemVTdXJlVHlwZSgpKSkgcmV0dXJuO1xyXG4gICAgY29uc3QganVtcFBhZ2UgPSB0aGlzLmp1bXBQYWdlKCkudHJpbSgpO1xyXG4gICAgY29uc3QgcGFnZSA9IE51bWJlcihqdW1wUGFnZSk7XHJcbiAgICB0aGlzLm9uSnVtcFBhZ2VDaGFuZ2UocGFnZSk7XHJcbiAgfVxyXG5cclxuICBvbkp1bXBLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoIVsnZW50ZXInLCAnYm90aCddLmluY2x1ZGVzKHRoaXMuaW5wdXRJbmRleFNpemVTdXJlVHlwZSgpKSkgcmV0dXJuO1xyXG4gICAgY29uc3QganVtcFBhZ2UgPSB0aGlzLmp1bXBQYWdlKCkudHJpbSgpO1xyXG4gICAgaWYgKGp1bXBQYWdlICE9PSAnJyAmJiBldmVudC5rZXlDb2RlID09PSBFTlRFUikge1xyXG4gICAgICBjb25zdCBwYWdlID0gTnVtYmVyKGp1bXBQYWdlKTtcclxuICAgICAgdGhpcy5vbkp1bXBQYWdlQ2hhbmdlKHBhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25KdW1wUGFnZUNoYW5nZShwYWdlOiBudW1iZXIpIHtcclxuICAgIGlmIChwYWdlIDw9IHRoaXMuaW5kZXhGaXJzdCgpKSB7XHJcbiAgICAgIHRoaXMuanVtcCh0aGlzLmluZGV4Rmlyc3QoKSk7XHJcbiAgICB9IGVsc2UgaWYgKHBhZ2UgPj0gdGhpcy5sYXN0SW5kZXgoKSkge1xyXG4gICAgICB0aGlzLmp1bXAodGhpcy5sYXN0SW5kZXgoKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmp1bXAocGFnZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmp1bXBQYWdlLnNldCgnJyk7XHJcbiAgfVxyXG5cclxuICBvblNpbXBsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmluZGV4KCkgIT09IG51bGwgJiYgZXZlbnQua2V5Q29kZSA9PT0gRU5URVIpIHtcclxuICAgICAgaWYgKHRoaXMuaW5kZXgoKSAlIDEgIT09IDApIHtcclxuICAgICAgICB0aGlzLmluZGV4LnVwZGF0ZSgoeCkgPT4gTWF0aC5yb3VuZCh4KSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlzTmFOKHRoaXMuaW5kZXgoKSkgfHwgdGhpcy5pbmRleCgpID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5pbmRleC5zZXQoMSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5kZXgoKSA8PSB0aGlzLmluZGV4Rmlyc3QoKSkge1xyXG4gICAgICAgIHRoaXMuaW5kZXguc2V0KHRoaXMuaW5kZXhGaXJzdCgpKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmluZGV4KCkgPj0gdGhpcy5sYXN0SW5kZXgoKSkge1xyXG4gICAgICAgIHRoaXMuaW5kZXguc2V0KHRoaXMubGFzdEluZGV4KCkpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuanVtcCh0aGlzLmluZGV4KCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25JbnB1dFNpemVCbHVyKF9ldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKCFbJ2JsdXInLCAnYm90aCddLmluY2x1ZGVzKHRoaXMuaW5wdXRJbmRleFNpemVTdXJlVHlwZSgpKSkgcmV0dXJuO1xyXG4gICAgY29uc3QgaW5wdXRTaXplID0gdGhpcy5pbnB1dFNpemUoKS50cmltKCk7XHJcbiAgICBjb25zdCBpbnB1dE51bWJlciA9IE51bWJlcihpbnB1dFNpemUpO1xyXG4gICAgdGhpcy5vblNpemVDaGFuZ2UoaW5wdXROdW1iZXIpO1xyXG4gIH1cclxuXHJcbiAgb25JbnB1dFNpemVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoIVsnZW50ZXInLCAnYm90aCddLmluY2x1ZGVzKHRoaXMuaW5wdXRJbmRleFNpemVTdXJlVHlwZSgpKSkgcmV0dXJuO1xyXG4gICAgY29uc3QgaW5wdXRTaXplID0gdGhpcy5pbnB1dFNpemUoKS50cmltKCk7XHJcbiAgICBpZiAoaW5wdXRTaXplICE9PSAnJyAmJiBldmVudC5rZXlDb2RlID09PSBFTlRFUikge1xyXG4gICAgICBjb25zdCBpbnB1dE51bWJlciA9IE51bWJlcihpbnB1dFNpemUpO1xyXG4gICAgICB0aGlzLm9uU2l6ZUNoYW5nZShpbnB1dE51bWJlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNpemVDaGFuZ2Uoc2l6ZTogbnVtYmVyKSB7XHJcbiAgICBpZiAoc2l6ZSAlIDEgIT09IDApIHtcclxuICAgICAgdGhpcy5pbnB1dFNpemUuc2V0KGAke01hdGgucm91bmQoc2l6ZSl9YCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNOYU4oc2l6ZSkpIHtcclxuICAgICAgdGhpcy5pbnB1dFNpemUuc2V0KGAke3RoaXMuc2l6ZSgpfWApO1xyXG4gICAgfVxyXG4gICAgaWYgKHNpemUgPD0gMCkge1xyXG4gICAgICB0aGlzLmlucHV0U2l6ZS5zZXQoYCR7dGhpcy5zaXplKCl9YCk7XHJcbiAgICB9IGVsc2UgaWYgKHNpemUgIT09IHRoaXMuc2l6ZSgpKSB7XHJcbiAgICAgIHRoaXMuc2l6ZS5zZXQoc2l6ZSk7XHJcbiAgICAgIHRoaXMuc2l6ZUNoYW5nZWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlSW5kZXgodmFsdWU6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBpZiAodmFsdWUgPiB0aGlzLmxhc3RJbmRleCgpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxhc3RJbmRleCgpO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA8IDEpIHtcclxuICAgICAgcmV0dXJuIDE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRBY3RpdmF0ZWQoaW5kZXg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5kZXgoKSA9PT0gaW5kZXg7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoc2ltcGxlKCkpIHtcclxuICA8ZGl2IGNsYXNzPVwieC1wYWdpbmF0aW9uLXNpbXBsZVwiPlxyXG4gICAgPHgtaW5wdXRcclxuICAgICAgW2JvcmRlcmVkXT1cInNob3dCYWNrZ3JvdW5kKClcIlxyXG4gICAgICBbYmVmb3JlXT1cInByZXZpb3VzVHBsXCJcclxuICAgICAgW2FmdGVyXT1cIm5leHRUcGxcIlxyXG4gICAgICBbc3R5bGUud2lkdGhdPVwic2ltcGxlSW5kZXhXaWR0aCgpXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJpbmRleFwiXHJcbiAgICAgICh4S2V5ZG93bik9XCJvblNpbXBsZUtleWRvd24oJGV2ZW50KVwiXHJcbiAgICA+PC94LWlucHV0PlxyXG4gICAgPHNwYW4+Lzwvc3Bhbj5cclxuICAgIDxzcGFuPnt7IGxhc3RJbmRleCgpIH19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG59IEBlbHNlIHtcclxuICA8eC1idXR0b25zIFtzcGFjZV09XCJzcGFjZSgpXCIgW2hpZGRlbkJvcmRlcl09XCIhc2hvd0JhY2tncm91bmQoKVwiIFtib3hTaGFkb3ddPVwiZmFsc2VcIj5cclxuICAgIEBpZiAoc2hvd0VsbGlwc2lzKCkpIHtcclxuICAgICAgPHgtYnV0dG9uXHJcbiAgICAgICAgW2ljb25dPVwiJ2Z0by1jaGV2cm9ucy1sZWZ0J1wiXHJcbiAgICAgICAgW3RpdGxlXT1cIidwYWdpbmF0aW9uLmZpcnN0JyB8IHhJMThuXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKSB8fCBmaXJzdEFjdGl2YXRlZCgpXCJcclxuICAgICAgICAoY2xpY2spPVwianVtcCgxKVwiXHJcbiAgICAgICAgcGxhaW5cclxuICAgICAgICBmbGF0XHJcbiAgICAgID48L3gtYnV0dG9uPlxyXG4gICAgfVxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cInByZXZpb3VzVHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICBAZm9yIChpdGVtIG9mIGluZGV4ZXMoKTsgdHJhY2sgaXRlbSkge1xyXG4gICAgICA8eC1idXR0b24gW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIiBwbGFpbiBmbGF0IFthY3RpdmF0ZWRdPVwiZ2V0QWN0aXZhdGVkKGl0ZW0pXCIgKGNsaWNrKT1cImp1bXAoaXRlbSlcIj57e1xyXG4gICAgICAgIGl0ZW1cclxuICAgICAgfX08L3gtYnV0dG9uPlxyXG4gICAgfVxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cIm5leHRUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIEBpZiAoc2hvd0VsbGlwc2lzKCkgJiYgIXNpbXBsZSgpKSB7XHJcbiAgICAgIDx4LWJ1dHRvblxyXG4gICAgICAgIFtpY29uXT1cIidmdG8tY2hldnJvbnMtcmlnaHQnXCJcclxuICAgICAgICBbdGl0bGVdPVwiJ3BhZ2luYXRpb24ubGFzdCcgfCB4STE4blwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgbGFzdEFjdGl2YXRlZCgpXCJcclxuICAgICAgICAoY2xpY2spPVwianVtcChsYXN0SW5kZXgoKSlcIlxyXG4gICAgICAgIHBsYWluXHJcbiAgICAgICAgZmxhdFxyXG4gICAgICA+PC94LWJ1dHRvbj5cclxuICAgIH1cclxuICA8L3gtYnV0dG9ucz5cclxufVxyXG5AaWYgKHNob3dTaXplKCkgJiYgIXNob3dJbnB1dFNpemUoKSkge1xyXG4gIDx4LXNlbGVjdFxyXG4gICAgW3N0eWxlLndpZHRoXT1cInNpemVXaWR0aCgpXCJcclxuICAgIGNsYXNzPVwieC1wYWdpbmF0aW9uLXNpemVcIlxyXG4gICAgW2RhdGFdPVwic2l6ZURhdGFTaWduYWwoKVwiXHJcbiAgICBbY2xlYXJhYmxlXT1cImZhbHNlXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcclxuICAgIFtib3JkZXJlZF09XCJzaG93QmFja2dyb3VuZCgpXCJcclxuICAgIFtub2RlVHBsXT1cIm5vZGVUcGxcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJzaXplXCJcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInNpemVDaGFuZ2VkKClcIlxyXG4gID48L3gtc2VsZWN0PlxyXG59XHJcbkBpZiAoc2hvd0lucHV0U2l6ZSgpKSB7XHJcbiAgPGRpdiBjbGFzcz1cIngtcGFnaW5hdGlvbi1pbnB1dC1zaXplXCI+XHJcbiAgICA8eC1pbnB1dFxyXG4gICAgICB4LXRvb2x0aXBcclxuICAgICAgW2NvbnRlbnRdPVwiaW5wdXRTaXplVG9vbHRpcCgpXCJcclxuICAgICAgW3N0eWxlLndpZHRoXT1cImlucHV0U2l6ZVdpZHRoKClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXHJcbiAgICAgIFtib3JkZXJlZF09XCJzaG93QmFja2dyb3VuZCgpXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFNpemVcIlxyXG4gICAgICAoeEJsdXIpPVwib25JbnB1dFNpemVCbHVyKCRldmVudClcIlxyXG4gICAgICAoeEtleWRvd24pPVwib25JbnB1dFNpemVLZXlkb3duKCRldmVudClcIlxyXG4gICAgPjwveC1pbnB1dD5cclxuICAgIDxzcGFuPiB7eyAncGFnaW5hdGlvbi5zaXplUGFnZScgfCB4STE4biB9fSA8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbn1cclxuQGlmIChzaG93SnVtcCgpICYmICFzaW1wbGUoKSkge1xyXG4gIDxkaXYgY2xhc3M9XCJ4LXBhZ2luYXRpb24tanVtcFwiPlxyXG4gICAgPHNwYW4+e3sgJ3BhZ2luYXRpb24uanVtcCcgfCB4STE4biB9fTwvc3Bhbj5cclxuICAgIDx4LWlucHV0XHJcbiAgICAgIHgtdG9vbHRpcFxyXG4gICAgICBbY29udGVudF09XCJqdW1wVG9vbHRpcCgpXCJcclxuICAgICAgW2JvcmRlcmVkXT1cInNob3dCYWNrZ3JvdW5kKClcIlxyXG4gICAgICBbc3R5bGUud2lkdGhdPVwianVtcFdpZHRoKClcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cImp1bXBQYWdlXCJcclxuICAgICAgKHhCbHVyKT1cIm9uSnVtcEJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICh4S2V5ZG93bik9XCJvbkp1bXBLZXlkb3duKCRldmVudClcIlxyXG4gICAgPjwveC1pbnB1dD5cclxuICA8L2Rpdj5cclxufVxyXG5AaWYgKHNob3dUb3RhbCgpKSB7XHJcbiAgPHgtYnV0dG9uIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCIgcGxhaW4gZmxhdCBjbGFzcz1cIngtcGFnaW5hdGlvbi10b3RhbFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cInRvdGFsVHBsKCk7IGNvbnRleHQ6IHsgJHRvdGFsOiB0b3RhbCgpIH1cIj5cclxuICAgICAge3sgJ3BhZ2luYXRpb24udG90YWwnIHwgeEkxOG4gfX0ge3sgdG90YWwoKSB9fSB7eyAncGFnaW5hdGlvbi5pdGVtJyB8IHhJMThuIH19XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L3gtYnV0dG9uPlxyXG59XHJcbjxuZy10ZW1wbGF0ZSAjcHJldmlvdXNUcGw+XHJcbiAgPHgtYnV0dG9uXHJcbiAgICBbaWNvbl09XCInZnRvLWNoZXZyb24tbGVmdCdcIlxyXG4gICAgW3RpdGxlXT1cIidwYWdpbmF0aW9uLnByZXZpb3VzJyB8IHhJMThuXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpIHx8IGxlZnREaXNhYmxlZCgpXCJcclxuICAgIChjbGljayk9XCJqdW1wKC0xLCB0cnVlKVwiXHJcbiAgICBwbGFpblxyXG4gICAgZmxhdFxyXG4gID48L3gtYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNuZXh0VHBsPlxyXG4gIDx4LWJ1dHRvblxyXG4gICAgW2ljb25dPVwiJ2Z0by1jaGV2cm9uLXJpZ2h0J1wiXHJcbiAgICBbdGl0bGVdPVwiJ3BhZ2luYXRpb24ubmV4dCcgfCB4STE4blwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKSB8fCByaWdodERpc2FibGVkKClcIlxyXG4gICAgKGNsaWNrKT1cImp1bXAoMSwgdHJ1ZSlcIlxyXG4gICAgcGxhaW5cclxuICAgIGZsYXRcclxuICA+PC94LWJ1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbm9kZVRwbCBsZXQtbm9kZT1cIiRub2RlXCI+XHJcbiAgQGlmIChub2RlKSB7XHJcbiAgICB7eyBub2RlPy5sYWJlbCB9fSB7eyAncGFnaW5hdGlvbi5zaXplUGFnZScgfCB4STE4biB9fVxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUV2QixNQUFNLEVBQ04sUUFBUSxFQUNSLFdBQVcsRUFDWCxVQUFVLEVBQ1YsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9FLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFF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ZTt3QkFDZixjQUFjO3dCQUNkLGdCQUFnQjtxQkFDakIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFTekIsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgT25Jbml0LFxyXG4gIHNpZ25hbCxcclxuICBjb21wdXRlZCxcclxuICBIb3N0QmluZGluZyxcclxuICBFbGVtZW50UmVmLFxyXG4gIGluamVjdCxcclxuICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhQYWdpbmF0aW9uUHJlZml4LCBYUGFnaW5hdGlvblByb3BlcnR5IH0gZnJvbSAnLi9wYWdpbmF0aW9uLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWEkxOG5QYWdpbmF0aW9uLCBYSTE4blBpcGUsIFhJMThuU2VydmljZSwgemhfQ04gfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgWEJ1dHRvbkNvbXBvbmVudCwgWEJ1dHRvbnNDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9idXR0b24nO1xyXG5pbXBvcnQgeyBYU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvc2VsZWN0JztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYT3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnQG5nLW5lc3QvdWkvb3V0bGV0JztcclxuaW1wb3J0IHsgWElzQ2hhbmdlLCBYVG9EYXRhQXJyYXkgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS90b29sdGlwJztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hQYWdpbmF0aW9uUHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFhCdXR0b25Db21wb25lbnQsXHJcbiAgICBYQnV0dG9uc0NvbXBvbmVudCxcclxuICAgIFhJMThuUGlwZSxcclxuICAgIFhTZWxlY3RDb21wb25lbnQsXHJcbiAgICBYSW5wdXRDb21wb25lbnQsXHJcbiAgICBYVG9vbHRpcE1vZHVsZSxcclxuICAgIFhPdXRsZXREaXJlY3RpdmVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS9pbmRleC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFBhZ2luYXRpb25Db21wb25lbnQgZXh0ZW5kcyBYUGFnaW5hdGlvblByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChYSTE4blNlcnZpY2UpO1xyXG4gIGxvY2FsZSA9IHRvU2lnbmFsKHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2UucGlwZShtYXAoKHgpID0+IHgucGFnaW5hdGlvbiBhcyBYSTE4blBhZ2luYXRpb24pKSwge1xyXG4gICAgaW5pdGlhbFZhbHVlOiB6aF9DTi5wYWdpbmF0aW9uXHJcbiAgfSk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc05hbWUgPSBYUGFnaW5hdGlvblByZWZpeDtcclxuXHJcbiAgaW5kZXhGaXJzdCA9IHNpZ25hbCgxKTtcclxuICBpbmRleExhc3QgPSBzaWduYWwoMSk7XHJcbiAganVtcFBhZ2UgPSBzaWduYWw8c3RyaW5nPignJyk7XHJcbiAgaW5wdXRTaXplID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG5cclxuICBsYXN0SW5kZXggPSBjb21wdXRlZCgoKSA9PiBNYXRoLmNlaWwodGhpcy50b3RhbCgpIC8gdGhpcy5zaXplKCkpIHx8IDEpO1xyXG4gIGxlZnREaXNhYmxlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW5kZXgoKSA9PT0gMSB8fCB0aGlzLnRvdGFsKCkgPT09IDApO1xyXG4gIHJpZ2h0RGlzYWJsZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmluZGV4KCkgPT09IHRoaXMubGFzdEluZGV4KCkgfHwgdGhpcy50b3RhbCgpID09PSAwKTtcclxuICBmaXJzdEFjdGl2YXRlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW5kZXgoKSA9PT0gMSk7XHJcbiAgbGFzdEFjdGl2YXRlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW5kZXgoKSA9PT0gdGhpcy5sYXN0SW5kZXgoKSk7XHJcblxyXG4gIGluZGV4ZXMgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBpbmRleGVzOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuaW5kZXgoKSAtIDE7XHJcbiAgICBjb25zdCBtYXhTaXplID0gdGhpcy5wYWdlTGlua1NpemUoKTtcclxuICAgIGNvbnN0IHBhZ2VzID0gTWF0aC5taW4obWF4U2l6ZSwgdGhpcy5sYXN0SW5kZXgoKSk7XHJcbiAgICBsZXQgc3RhcnQgPSBNYXRoLm1heCgwLCBNYXRoLmNlaWwoY3VycmVudCAtIHBhZ2VzIC8gMikpLFxyXG4gICAgICBlbmQgPSBNYXRoLm1pbih0aGlzLmxhc3RJbmRleCgpIC0gMSwgc3RhcnQgKyBwYWdlcyAtIDEpO1xyXG4gICAgdmFyIGRlbHRhID0gbWF4U2l6ZSAtIChlbmQgLSBzdGFydCArIDEpO1xyXG4gICAgc3RhcnQgPSBNYXRoLm1heCgwLCBzdGFydCAtIGRlbHRhKTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPD0gZW5kOyBpKyspIHtcclxuICAgICAgaW5kZXhlcy5wdXNoKGkgKyAxKTtcclxuICAgIH1cclxuICAgIHJldHVybiBpbmRleGVzO1xyXG4gIH0pO1xyXG5cclxuICBzaXplRGF0YVNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IFhUb0RhdGFBcnJheSh0aGlzLnNpemVEYXRhKCkpKTtcclxuXHJcbiAgaW5wdXRTaXplVG9vbHRpcCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGlmICh0aGlzLmlucHV0U2l6ZVRvb2x0aXBUZXh0KCkpIHJldHVybiB0aGlzLmlucHV0U2l6ZVRvb2x0aXBUZXh0KCk7XHJcbiAgICBpZiAodGhpcy5pbnB1dEluZGV4U2l6ZVN1cmVUeXBlKCkgPT09ICdlbnRlcicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKCkuaW5wdXRTaXplVG9vbHRpcEVudGVyO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaW5wdXRJbmRleFNpemVTdXJlVHlwZSgpID09PSAnYmx1cicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKCkuaW5wdXRTaXplVG9vbHRpcEJsdXI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pbnB1dEluZGV4U2l6ZVN1cmVUeXBlKCkgPT09ICdib3RoJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUoKS5pbnB1dFNpemVUb29sdGlwQm90aDtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9KTtcclxuXHJcbiAganVtcFRvb2x0aXAgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5qdW1wVG9vbHRpcFRleHQoKSkgcmV0dXJuIHRoaXMuanVtcFRvb2x0aXBUZXh0KCk7XHJcbiAgICBpZiAodGhpcy5pbnB1dEluZGV4U2l6ZVN1cmVUeXBlKCkgPT09ICdlbnRlcicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKCkuanVtcFRvb2x0aXBFbnRlcjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlucHV0SW5kZXhTaXplU3VyZVR5cGUoKSA9PT0gJ2JsdXInKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZSgpLmp1bXBUb29sdGlwQmx1cjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlucHV0SW5kZXhTaXplU3VyZVR5cGUoKSA9PT0gJ2JvdGgnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZSgpLmp1bXBUb29sdGlwQm90aDtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9KTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmlucHV0U2l6ZS5zZXQodGhpcy5zaXplKCkudG9TdHJpbmcoKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IHNpemUgfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2Uoc2l6ZSkgJiYgdGhpcy5pbnB1dFNpemUuc2V0KHRoaXMuc2l6ZSgpLnRvU3RyaW5nKCkpO1xyXG4gIH1cclxuXHJcbiAgc2l6ZUNoYW5nZWQoKSB7XHJcbiAgICBpZiAodGhpcy5pbmRleCgpICE9PSAxKSB7XHJcbiAgICAgIHRoaXMuaW5kZXguc2V0KDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAganVtcChpbmRleDogbnVtYmVyLCBpc0RpZmYgPSBmYWxzZSkge1xyXG4gICAgY29uc3QgaXggPSB0aGlzLnZhbGlkYXRlSW5kZXgoaXNEaWZmID8gdGhpcy5pbmRleCgpICsgaW5kZXggOiBpbmRleCk7XHJcbiAgICBpZiAoaXggIT09IHRoaXMuaW5kZXgoKSkge1xyXG4gICAgICB0aGlzLmluZGV4LnNldChpeCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkp1bXBCbHVyKF9ldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKCFbJ2JsdXInLCAnYm90aCddLmluY2x1ZGVzKHRoaXMuaW5wdXRJbmRleFNpemVTdXJlVHlwZSgpKSkgcmV0dXJuO1xyXG4gICAgY29uc3QganVtcFBhZ2UgPSB0aGlzLmp1bXBQYWdlKCkudHJpbSgpO1xyXG4gICAgY29uc3QgcGFnZSA9IE51bWJlcihqdW1wUGFnZSk7XHJcbiAgICB0aGlzLm9uSnVtcFBhZ2VDaGFuZ2UocGFnZSk7XHJcbiAgfVxyXG5cclxuICBvbkp1bXBLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoIVsnZW50ZXInLCAnYm90aCddLmluY2x1ZGVzKHRoaXMuaW5wdXRJbmRleFNpemVTdXJlVHlwZSgpKSkgcmV0dXJuO1xyXG4gICAgY29uc3QganVtcFBhZ2UgPSB0aGlzLmp1bXBQYWdlKCkudHJpbSgpO1xyXG4gICAgaWYgKGp1bXBQYWdlICE9PSAnJyAmJiBldmVudC5rZXlDb2RlID09PSBFTlRFUikge1xyXG4gICAgICBjb25zdCBwYWdlID0gTnVtYmVyKGp1bXBQYWdlKTtcclxuICAgICAgdGhpcy5vbkp1bXBQYWdlQ2hhbmdlKHBhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25KdW1wUGFnZUNoYW5nZShwYWdlOiBudW1iZXIpIHtcclxuICAgIGlmIChwYWdlIDw9IHRoaXMuaW5kZXhGaXJzdCgpKSB7XHJcbiAgICAgIHRoaXMuanVtcCh0aGlzLmluZGV4Rmlyc3QoKSk7XHJcbiAgICB9IGVsc2UgaWYgKHBhZ2UgPj0gdGhpcy5sYXN0SW5kZXgoKSkge1xyXG4gICAgICB0aGlzLmp1bXAodGhpcy5sYXN0SW5kZXgoKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmp1bXAocGFnZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmp1bXBQYWdlLnNldCgnJyk7XHJcbiAgfVxyXG5cclxuICBvblNpbXBsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmluZGV4KCkgIT09IG51bGwgJiYgZXZlbnQua2V5Q29kZSA9PT0gRU5URVIpIHtcclxuICAgICAgaWYgKHRoaXMuaW5kZXgoKSAlIDEgIT09IDApIHtcclxuICAgICAgICB0aGlzLmluZGV4LnVwZGF0ZSgoeCkgPT4gTWF0aC5yb3VuZCh4KSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlzTmFOKHRoaXMuaW5kZXgoKSkgfHwgdGhpcy5pbmRleCgpID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5pbmRleC5zZXQoMSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5kZXgoKSA8PSB0aGlzLmluZGV4Rmlyc3QoKSkge1xyXG4gICAgICAgIHRoaXMuaW5kZXguc2V0KHRoaXMuaW5kZXhGaXJzdCgpKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmluZGV4KCkgPj0gdGhpcy5sYXN0SW5kZXgoKSkge1xyXG4gICAgICAgIHRoaXMuaW5kZXguc2V0KHRoaXMubGFzdEluZGV4KCkpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuanVtcCh0aGlzLmluZGV4KCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25JbnB1dFNpemVCbHVyKF9ldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKCFbJ2JsdXInLCAnYm90aCddLmluY2x1ZGVzKHRoaXMuaW5wdXRJbmRleFNpemVTdXJlVHlwZSgpKSkgcmV0dXJuO1xyXG4gICAgY29uc3QgaW5wdXRTaXplID0gdGhpcy5pbnB1dFNpemUoKS50cmltKCk7XHJcbiAgICBjb25zdCBpbnB1dE51bWJlciA9IE51bWJlcihpbnB1dFNpemUpO1xyXG4gICAgdGhpcy5vblNpemVDaGFuZ2UoaW5wdXROdW1iZXIpO1xyXG4gIH1cclxuXHJcbiAgb25JbnB1dFNpemVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoIVsnZW50ZXInLCAnYm90aCddLmluY2x1ZGVzKHRoaXMuaW5wdXRJbmRleFNpemVTdXJlVHlwZSgpKSkgcmV0dXJuO1xyXG4gICAgY29uc3QgaW5wdXRTaXplID0gdGhpcy5pbnB1dFNpemUoKS50cmltKCk7XHJcbiAgICBpZiAoaW5wdXRTaXplICE9PSAnJyAmJiBldmVudC5rZXlDb2RlID09PSBFTlRFUikge1xyXG4gICAgICBjb25zdCBpbnB1dE51bWJlciA9IE51bWJlcihpbnB1dFNpemUpO1xyXG4gICAgICB0aGlzLm9uU2l6ZUNoYW5nZShpbnB1dE51bWJlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNpemVDaGFuZ2Uoc2l6ZTogbnVtYmVyKSB7XHJcbiAgICBpZiAoc2l6ZSAlIDEgIT09IDApIHtcclxuICAgICAgdGhpcy5pbnB1dFNpemUuc2V0KGAke01hdGgucm91bmQoc2l6ZSl9YCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNOYU4oc2l6ZSkpIHtcclxuICAgICAgdGhpcy5pbnB1dFNpemUuc2V0KGAke3RoaXMuc2l6ZSgpfWApO1xyXG4gICAgfVxyXG4gICAgaWYgKHNpemUgPD0gMCkge1xyXG4gICAgICB0aGlzLmlucHV0U2l6ZS5zZXQoYCR7dGhpcy5zaXplKCl9YCk7XHJcbiAgICB9IGVsc2UgaWYgKHNpemUgIT09IHRoaXMuc2l6ZSgpKSB7XHJcbiAgICAgIHRoaXMuc2l6ZS5zZXQoc2l6ZSk7XHJcbiAgICAgIHRoaXMuc2l6ZUNoYW5nZWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlSW5kZXgodmFsdWU6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBpZiAodmFsdWUgPiB0aGlzLmxhc3RJbmRleCgpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxhc3RJbmRleCgpO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA8IDEpIHtcclxuICAgICAgcmV0dXJuIDE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRBY3RpdmF0ZWQoaW5kZXg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5kZXgoKSA9PT0gaW5kZXg7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoc2ltcGxlKCkpIHtcclxuICA8ZGl2IGNsYXNzPVwieC1wYWdpbmF0aW9uLXNpbXBsZVwiPlxyXG4gICAgPHgtaW5wdXRcclxuICAgICAgW2JvcmRlcmVkXT1cInNob3dCYWNrZ3JvdW5kKClcIlxyXG4gICAgICBbYmVmb3JlXT1cInByZXZpb3VzVHBsXCJcclxuICAgICAgW2FmdGVyXT1cIm5leHRUcGxcIlxyXG4gICAgICBbc3R5bGUud2lkdGhdPVwic2ltcGxlSW5kZXhXaWR0aCgpXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJpbmRleFwiXHJcbiAgICAgICh4S2V5ZG93bik9XCJvblNpbXBsZUtleWRvd24oJGV2ZW50KVwiXHJcbiAgICA+PC94LWlucHV0PlxyXG4gICAgPHNwYW4+Lzwvc3Bhbj5cclxuICAgIDxzcGFuPnt7IGxhc3RJbmRleCgpIH19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG59IEBlbHNlIHtcclxuICA8eC1idXR0b25zIGNsYXNzPVwieC1wYWdpbmF0aW9uLWdyb3VwXCIgW3NwYWNlXT1cInNwYWNlKClcIiBbaGlkZGVuQm9yZGVyXT1cIiFzaG93QmFja2dyb3VuZCgpXCIgW2JveFNoYWRvd109XCJmYWxzZVwiPlxyXG4gICAgQGlmIChzaG93RWxsaXBzaXMoKSkge1xyXG4gICAgICA8eC1idXR0b25cclxuICAgICAgICBjbGFzcz1cIngtcGFnaW5hdGlvbi1maXJzdFwiXHJcbiAgICAgICAgW2ljb25dPVwiJ2Z0by1jaGV2cm9ucy1sZWZ0J1wiXHJcbiAgICAgICAgW3RpdGxlXT1cIidwYWdpbmF0aW9uLmZpcnN0JyB8IHhJMThuXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKSB8fCBmaXJzdEFjdGl2YXRlZCgpXCJcclxuICAgICAgICAoY2xpY2spPVwianVtcCgxKVwiXHJcbiAgICAgICAgcGxhaW5cclxuICAgICAgICBmbGF0XHJcbiAgICAgID48L3gtYnV0dG9uPlxyXG4gICAgfVxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cInByZXZpb3VzVHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICBAZm9yIChpdGVtIG9mIGluZGV4ZXMoKTsgdHJhY2sgaXRlbSkge1xyXG4gICAgICA8eC1idXR0b25cclxuICAgICAgICBjbGFzcz1cIngtcGFnaW5hdGlvbi1saW5rXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXHJcbiAgICAgICAgcGxhaW5cclxuICAgICAgICBmbGF0XHJcbiAgICAgICAgW2FjdGl2YXRlZF09XCJnZXRBY3RpdmF0ZWQoaXRlbSlcIlxyXG4gICAgICAgIChjbGljayk9XCJqdW1wKGl0ZW0pXCJcclxuICAgICAgICA+e3sgaXRlbSB9fTwveC1idXR0b25cclxuICAgICAgPlxyXG4gICAgfVxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cIm5leHRUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIEBpZiAoc2hvd0VsbGlwc2lzKCkgJiYgIXNpbXBsZSgpKSB7XHJcbiAgICAgIDx4LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwieC1wYWdpbmF0aW9uLWxhc3RcIlxyXG4gICAgICAgIFtpY29uXT1cIidmdG8tY2hldnJvbnMtcmlnaHQnXCJcclxuICAgICAgICBbdGl0bGVdPVwiJ3BhZ2luYXRpb24ubGFzdCcgfCB4STE4blwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgbGFzdEFjdGl2YXRlZCgpXCJcclxuICAgICAgICAoY2xpY2spPVwianVtcChsYXN0SW5kZXgoKSlcIlxyXG4gICAgICAgIHBsYWluXHJcbiAgICAgICAgZmxhdFxyXG4gICAgICA+PC94LWJ1dHRvbj5cclxuICAgIH1cclxuICA8L3gtYnV0dG9ucz5cclxufVxyXG5AaWYgKHNob3dTaXplKCkgJiYgIXNob3dJbnB1dFNpemUoKSkge1xyXG4gIDx4LXNlbGVjdFxyXG4gICAgW3N0eWxlLndpZHRoXT1cInNpemVXaWR0aCgpXCJcclxuICAgIGNsYXNzPVwieC1wYWdpbmF0aW9uLXNpemVcIlxyXG4gICAgW2RhdGFdPVwic2l6ZURhdGFTaWduYWwoKVwiXHJcbiAgICBbY2xlYXJhYmxlXT1cImZhbHNlXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcclxuICAgIFtib3JkZXJlZF09XCJzaG93QmFja2dyb3VuZCgpXCJcclxuICAgIFtub2RlVHBsXT1cIm5vZGVUcGxcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJzaXplXCJcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInNpemVDaGFuZ2VkKClcIlxyXG4gID48L3gtc2VsZWN0PlxyXG59XHJcbkBpZiAoc2hvd0lucHV0U2l6ZSgpKSB7XHJcbiAgPGRpdiBjbGFzcz1cIngtcGFnaW5hdGlvbi1pbnB1dC1zaXplXCI+XHJcbiAgICA8eC1pbnB1dFxyXG4gICAgICB4LXRvb2x0aXBcclxuICAgICAgW2NvbnRlbnRdPVwiaW5wdXRTaXplVG9vbHRpcCgpXCJcclxuICAgICAgW3N0eWxlLndpZHRoXT1cImlucHV0U2l6ZVdpZHRoKClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXHJcbiAgICAgIFtib3JkZXJlZF09XCJzaG93QmFja2dyb3VuZCgpXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFNpemVcIlxyXG4gICAgICAoeEJsdXIpPVwib25JbnB1dFNpemVCbHVyKCRldmVudClcIlxyXG4gICAgICAoeEtleWRvd24pPVwib25JbnB1dFNpemVLZXlkb3duKCRldmVudClcIlxyXG4gICAgPjwveC1pbnB1dD5cclxuICAgIDxzcGFuPiB7eyAncGFnaW5hdGlvbi5zaXplUGFnZScgfCB4STE4biB9fSA8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbn1cclxuQGlmIChzaG93SnVtcCgpICYmICFzaW1wbGUoKSkge1xyXG4gIDxkaXYgY2xhc3M9XCJ4LXBhZ2luYXRpb24tanVtcFwiPlxyXG4gICAgPHNwYW4+e3sgJ3BhZ2luYXRpb24uanVtcCcgfCB4STE4biB9fTwvc3Bhbj5cclxuICAgIDx4LWlucHV0XHJcbiAgICAgIHgtdG9vbHRpcFxyXG4gICAgICBbY29udGVudF09XCJqdW1wVG9vbHRpcCgpXCJcclxuICAgICAgW2JvcmRlcmVkXT1cInNob3dCYWNrZ3JvdW5kKClcIlxyXG4gICAgICBbc3R5bGUud2lkdGhdPVwianVtcFdpZHRoKClcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cImp1bXBQYWdlXCJcclxuICAgICAgKHhCbHVyKT1cIm9uSnVtcEJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICh4S2V5ZG93bik9XCJvbkp1bXBLZXlkb3duKCRldmVudClcIlxyXG4gICAgPjwveC1pbnB1dD5cclxuICA8L2Rpdj5cclxufVxyXG5AaWYgKHNob3dUb3RhbCgpKSB7XHJcbiAgPHgtYnV0dG9uIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCIgcGxhaW4gZmxhdCBjbGFzcz1cIngtcGFnaW5hdGlvbi10b3RhbFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cInRvdGFsVHBsKCk7IGNvbnRleHQ6IHsgJHRvdGFsOiB0b3RhbCgpIH1cIj5cclxuICAgICAge3sgJ3BhZ2luYXRpb24udG90YWwnIHwgeEkxOG4gfX0ge3sgdG90YWwoKSB9fSB7eyAncGFnaW5hdGlvbi5pdGVtJyB8IHhJMThuIH19XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L3gtYnV0dG9uPlxyXG59XHJcbjxuZy10ZW1wbGF0ZSAjcHJldmlvdXNUcGw+XHJcbiAgPHgtYnV0dG9uXHJcbiAgICBbaWNvbl09XCInZnRvLWNoZXZyb24tbGVmdCdcIlxyXG4gICAgW3RpdGxlXT1cIidwYWdpbmF0aW9uLnByZXZpb3VzJyB8IHhJMThuXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpIHx8IGxlZnREaXNhYmxlZCgpXCJcclxuICAgIChjbGljayk9XCJqdW1wKC0xLCB0cnVlKVwiXHJcbiAgICBwbGFpblxyXG4gICAgZmxhdFxyXG4gID48L3gtYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNuZXh0VHBsPlxyXG4gIDx4LWJ1dHRvblxyXG4gICAgW2ljb25dPVwiJ2Z0by1jaGV2cm9uLXJpZ2h0J1wiXHJcbiAgICBbdGl0bGVdPVwiJ3BhZ2luYXRpb24ubmV4dCcgfCB4STE4blwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKSB8fCByaWdodERpc2FibGVkKClcIlxyXG4gICAgKGNsaWNrKT1cImp1bXAoMSwgdHJ1ZSlcIlxyXG4gICAgcGxhaW5cclxuICAgIGZsYXRcclxuICA+PC94LWJ1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbm9kZVRwbCBsZXQtbm9kZT1cIiRub2RlXCI+XHJcbiAgQGlmIChub2RlKSB7XHJcbiAgICB7eyBub2RlPy5sYWJlbCB9fSB7eyAncGFnaW5hdGlvbi5zaXplUGFnZScgfCB4STE4biB9fVxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -50,10 +50,10 @@ export class XPopconfirmComponent extends XPopconfirmProperty {
|
|
|
50
50
|
this.condition() && this.onConfirm(event);
|
|
51
51
|
}
|
|
52
52
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XPopconfirmComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: XPopconfirmComponent, isStandalone: true, selector: "x-popconfirm", usesInheritance: true, ngImport: i0, template: "<div\r\n #popconfirm\r\n class=\"x-popconfirm\"\r\n x-popover\r\n [title]=\"titleTpl\"\r\n [content]=\"content()\"\r\n [footer]=\"footerTpl\"\r\n [placement]=\"placement()\"\r\n [trigger]=\"trigger()\"\r\n [width]=\"width()\"\r\n [maxWidth]=\"maxWidth()\"\r\n [minWidth]=\"minWidth()\"\r\n [condition]=\"condition()\"\r\n [(visible)]=\"visible\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-template #titleTpl>\r\n <div class=\"x-popconfirm-title\">\r\n <ng-container *xOutlet=\"title()\">\r\n @if (icon()) {\r\n <x-icon [style.color]=\"iconColor()\" [type]=\"icon()\"></x-icon>\r\n }\r\n <span>{{ title() }}</span>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #footerTpl>\r\n <div class=\"x-popconfirm-buttons\">\r\n <x-button (click)=\"onCancel($event)\" flat plain>{{ cancelTextSignal() }}</x-button>\r\n <x-button type=\"primary\" flat (click)=\"onConfirm($event)\" [loading]=\"loading()\">{{
|
|
53
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: XPopconfirmComponent, isStandalone: true, selector: "x-popconfirm", usesInheritance: true, ngImport: i0, template: "<div\r\n #popconfirm\r\n class=\"x-popconfirm\"\r\n x-popover\r\n [title]=\"titleTpl\"\r\n [content]=\"content()\"\r\n [footer]=\"footerTpl\"\r\n [placement]=\"placement()\"\r\n [trigger]=\"trigger()\"\r\n [width]=\"width()\"\r\n [maxWidth]=\"maxWidth()\"\r\n [minWidth]=\"minWidth()\"\r\n [condition]=\"condition()\"\r\n [(visible)]=\"visible\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-template #titleTpl>\r\n <div class=\"x-popconfirm-title\">\r\n <ng-container *xOutlet=\"title()\">\r\n @if (icon()) {\r\n <x-icon [style.color]=\"iconColor()\" [type]=\"icon()\"></x-icon>\r\n }\r\n <span>{{ title() }}</span>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #footerTpl>\r\n <div class=\"x-popconfirm-buttons\">\r\n <x-button class=\"x-popconfirm-cancel\" (click)=\"onCancel($event)\" flat plain>{{ cancelTextSignal() }}</x-button>\r\n <x-button class=\"x-popconfirm-confirm\" type=\"primary\" flat (click)=\"onConfirm($event)\" [loading]=\"loading()\">{{\r\n confirmTextSignal()\r\n }}</x-button>\r\n </div>\r\n</ng-template>\r\n", styles: [".x-popconfirm{margin:0;padding:0}.x-popconfirm{display:inline-block}.x-popconfirm-buttons{display:flex;justify-content:flex-end}.x-popconfirm-buttons>x-button:not(:first-child){margin-left:.5rem}.x-popconfirm-title{display:flex;align-items:center}.x-popconfirm-title>.x-icon{margin-right:.325rem;font-size:1rem}\n"], dependencies: [{ kind: "directive", type: XPopoverDirective, selector: "[x-popover], x-popover" }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
54
54
|
}
|
|
55
55
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XPopconfirmComponent, decorators: [{
|
|
56
56
|
type: Component,
|
|
57
|
-
args: [{ selector: `${XPopconfirmPrefix}`, standalone: true, imports: [XPopoverDirective, XButtonComponent, XIconComponent, XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n #popconfirm\r\n class=\"x-popconfirm\"\r\n x-popover\r\n [title]=\"titleTpl\"\r\n [content]=\"content()\"\r\n [footer]=\"footerTpl\"\r\n [placement]=\"placement()\"\r\n [trigger]=\"trigger()\"\r\n [width]=\"width()\"\r\n [maxWidth]=\"maxWidth()\"\r\n [minWidth]=\"minWidth()\"\r\n [condition]=\"condition()\"\r\n [(visible)]=\"visible\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-template #titleTpl>\r\n <div class=\"x-popconfirm-title\">\r\n <ng-container *xOutlet=\"title()\">\r\n @if (icon()) {\r\n <x-icon [style.color]=\"iconColor()\" [type]=\"icon()\"></x-icon>\r\n }\r\n <span>{{ title() }}</span>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #footerTpl>\r\n <div class=\"x-popconfirm-buttons\">\r\n <x-button (click)=\"onCancel($event)\" flat plain>{{ cancelTextSignal() }}</x-button>\r\n <x-button type=\"primary\" flat (click)=\"onConfirm($event)\" [loading]=\"loading()\">{{
|
|
57
|
+
args: [{ selector: `${XPopconfirmPrefix}`, standalone: true, imports: [XPopoverDirective, XButtonComponent, XIconComponent, XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n #popconfirm\r\n class=\"x-popconfirm\"\r\n x-popover\r\n [title]=\"titleTpl\"\r\n [content]=\"content()\"\r\n [footer]=\"footerTpl\"\r\n [placement]=\"placement()\"\r\n [trigger]=\"trigger()\"\r\n [width]=\"width()\"\r\n [maxWidth]=\"maxWidth()\"\r\n [minWidth]=\"minWidth()\"\r\n [condition]=\"condition()\"\r\n [(visible)]=\"visible\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-template #titleTpl>\r\n <div class=\"x-popconfirm-title\">\r\n <ng-container *xOutlet=\"title()\">\r\n @if (icon()) {\r\n <x-icon [style.color]=\"iconColor()\" [type]=\"icon()\"></x-icon>\r\n }\r\n <span>{{ title() }}</span>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #footerTpl>\r\n <div class=\"x-popconfirm-buttons\">\r\n <x-button class=\"x-popconfirm-cancel\" (click)=\"onCancel($event)\" flat plain>{{ cancelTextSignal() }}</x-button>\r\n <x-button class=\"x-popconfirm-confirm\" type=\"primary\" flat (click)=\"onConfirm($event)\" [loading]=\"loading()\">{{\r\n confirmTextSignal()\r\n }}</x-button>\r\n </div>\r\n</ng-template>\r\n", styles: [".x-popconfirm{margin:0;padding:0}.x-popconfirm{display:inline-block}.x-popconfirm-buttons{display:flex;justify-content:flex-end}.x-popconfirm-buttons>x-button:not(:first-child){margin-left:.5rem}.x-popconfirm-title{display:flex;align-items:center}.x-popconfirm-title>.x-icon{margin-right:.325rem;font-size:1rem}\n"] }]
|
|
58
58
|
}] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9wb3Bjb25maXJtL3BvcGNvbmZpcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvcG9wY29uZmlybS9wb3Bjb25maXJtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUVqQixNQUFNLEVBQ04sUUFBUSxFQUNSLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQW1CLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFXdEQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUFtQjtJQVQ3RDs7UUFVVSxTQUFJLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLFlBQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoQixlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV6QyxXQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUE2QixDQUFDLENBQUMsRUFBRTtZQUMxRixZQUFZLEVBQUUsS0FBSyxDQUFDLFVBQVU7U0FDL0IsQ0FBQyxDQUFDO1FBRUgscUJBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakYsc0JBQWlCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7S0ErQnJGO0lBN0JDLFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFZO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBWTtRQUNwQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekMsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QixZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUMzRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFZO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7aUlBMUNVLG9CQUFvQjtxSEFBcEIsb0JBQW9CLCtGQzVCakMsMG9DQXNDQSxtWERoQlksaUJBQWlCLG1FQUFFLGdCQUFnQixxREFBRSxjQUFjLG1EQUFFLGdCQUFnQjs7MkZBTXBFLG9CQUFvQjtrQkFUaEMsU0FBUzsrQkFDRSxHQUFHLGlCQUFpQixFQUFFLGNBQ3BCLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxpQkFHakUsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIE9uRGVzdHJveSxcclxuICBpbmplY3QsXHJcbiAgY29tcHV0ZWQsXHJcbiAgc2lnbmFsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhQb3Bjb25maXJtUHJvcGVydHksIFhQb3Bjb25maXJtUHJlZml4IH0gZnJvbSAnLi9wb3Bjb25maXJtLnByb3BlcnR5JztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBYSTE4blNlcnZpY2UsIFhJMThuUG9wY29uZmlybSwgemhfQ04gfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhQb3BvdmVyRGlyZWN0aXZlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9wb3Zlcic7XHJcbmltcG9ydCB7IFhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9idXR0b24nO1xyXG5pbXBvcnQgeyBYSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2ljb24nO1xyXG5pbXBvcnQgeyBYT3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnQG5nLW5lc3QvdWkvb3V0bGV0JztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFBvcGNvbmZpcm1QcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtYUG9wb3ZlckRpcmVjdGl2ZSwgWEJ1dHRvbkNvbXBvbmVudCwgWEljb25Db21wb25lbnQsIFhPdXRsZXREaXJlY3RpdmVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3Bjb25maXJtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wb3Bjb25maXJtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFBvcGNvbmZpcm1Db21wb25lbnQgZXh0ZW5kcyBYUG9wY29uZmlybVByb3BlcnR5IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoWEkxOG5TZXJ2aWNlKTtcclxuICB2aXNpYmxlID0gc2lnbmFsKGZhbHNlKTtcclxuICBsb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcclxuXHJcbiAgcHJpdmF0ZSBhc3luY1VuU3ViID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgbG9jYWxlID0gdG9TaWduYWwodGhpcy5pMThuLmxvY2FsZUNoYW5nZS5waXBlKG1hcCgoeCkgPT4geC5wb3Bjb25maXJtIGFzIFhJMThuUG9wY29uZmlybSkpLCB7XHJcbiAgICBpbml0aWFsVmFsdWU6IHpoX0NOLnBvcGNvbmZpcm1cclxuICB9KTtcclxuXHJcbiAgY2FuY2VsVGV4dFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY2FuY2VsVGV4dCgpIHx8IHRoaXMubG9jYWxlKCkuY2FuY2VsVGV4dCk7XHJcbiAgY29uZmlybVRleHRTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpcm1UZXh0KCkgfHwgdGhpcy5sb2NhbGUoKS5jb25maXJtVGV4dCk7XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hc3luY1VuU3ViLm5leHQoKTtcclxuICAgIHRoaXMuYXN5bmNVblN1Yi5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgb25DYW5jZWwoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLnZpc2libGUuc2V0KGZhbHNlKTtcclxuICAgIHRoaXMuY2FuY2VsLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25Db25maXJtKGV2ZW50OiBFdmVudCkge1xyXG4gICAgY29uc3QgY29uZmlybUFzeW5jID0gdGhpcy5jb25maXJtQXN5bmMoKTtcclxuICAgIGlmIChjb25maXJtQXN5bmMpIHtcclxuICAgICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcclxuICAgICAgY29uZmlybUFzeW5jLnBpcGUodGFrZVVudGlsKHRoaXMuYXN5bmNVblN1YikpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlLnNldChmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5jb25maXJtLmVtaXQoZXZlbnQpO1xyXG4gICAgICAgIHRoaXMuYXN5bmNVblN1Yi5uZXh0KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52aXNpYmxlLnNldChmYWxzZSk7XHJcbiAgICAgIHRoaXMuY29uZmlybS5lbWl0KGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLmNvbmRpdGlvbigpICYmIHRoaXMub25Db25maXJtKGV2ZW50KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICNwb3Bjb25maXJtXHJcbiAgY2xhc3M9XCJ4LXBvcGNvbmZpcm1cIlxyXG4gIHgtcG9wb3ZlclxyXG4gIFt0aXRsZV09XCJ0aXRsZVRwbFwiXHJcbiAgW2NvbnRlbnRdPVwiY29udGVudCgpXCJcclxuICBbZm9vdGVyXT1cImZvb3RlclRwbFwiXHJcbiAgW3BsYWNlbWVudF09XCJwbGFjZW1lbnQoKVwiXHJcbiAgW3RyaWdnZXJdPVwidHJpZ2dlcigpXCJcclxuICBbd2lkdGhdPVwid2lkdGgoKVwiXHJcbiAgW21heFdpZHRoXT1cIm1heFdpZHRoKClcIlxyXG4gIFttaW5XaWR0aF09XCJtaW5XaWR0aCgpXCJcclxuICBbY29uZGl0aW9uXT1cImNvbmRpdGlvbigpXCJcclxuICBbKHZpc2libGUpXT1cInZpc2libGVcIlxyXG4gIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxyXG4+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdGl0bGVUcGw+XHJcbiAgPGRpdiBjbGFzcz1cIngtcG9wY29uZmlybS10aXRsZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cInRpdGxlKClcIj5cclxuICAgICAgQGlmIChpY29uKCkpIHtcclxuICAgICAgICA8eC1pY29uIFtzdHlsZS5jb2xvcl09XCJpY29uQ29sb3IoKVwiIFt0eXBlXT1cImljb24oKVwiPjwveC1pY29uPlxyXG4gICAgICB9XHJcbiAgICAgIDxzcGFuPnt7IHRpdGxlKCkgfX08L3NwYW4+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZm9vdGVyVHBsPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXBvcGNvbmZpcm0tYnV0dG9uc1wiPlxyXG4gICAgPHgtYnV0dG9uIGNsYXNzPVwieC1wb3Bjb25maXJtLWNhbmNlbFwiIChjbGljayk9XCJvbkNhbmNlbCgkZXZlbnQpXCIgZmxhdCBwbGFpbj57eyBjYW5jZWxUZXh0U2lnbmFsKCkgfX08L3gtYnV0dG9uPlxyXG4gICAgPHgtYnV0dG9uIGNsYXNzPVwieC1wb3Bjb25maXJtLWNvbmZpcm1cIiB0eXBlPVwicHJpbWFyeVwiIGZsYXQgKGNsaWNrKT1cIm9uQ29uZmlybSgkZXZlbnQpXCIgW2xvYWRpbmddPVwibG9hZGluZygpXCI+e3tcclxuICAgICAgY29uZmlybVRleHRTaWduYWwoKVxyXG4gICAgfX08L3gtYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -58,9 +58,11 @@ export class XResizableDirective extends XResizableProperty {
|
|
|
58
58
|
this.mouseUpSub = mouseup.subscribe((ev) => {
|
|
59
59
|
this.mouseup(ev);
|
|
60
60
|
});
|
|
61
|
-
const mouseMoveSub = fromEvent(document, moveEvent)
|
|
61
|
+
const mouseMoveSub = fromEvent(this.document, moveEvent)
|
|
62
62
|
.pipe(takeUntil(mouseup))
|
|
63
|
-
.subscribe((ev) =>
|
|
63
|
+
.subscribe((ev) => {
|
|
64
|
+
this.move(ev, clientWidth, clientHeight, offsetTop, offsetLeft, screenX, screenY);
|
|
65
|
+
});
|
|
64
66
|
this.mouseUpSub.add(mouseMoveSub);
|
|
65
67
|
}
|
|
66
68
|
setPosition() {
|
|
@@ -259,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
259
261
|
type: HostListener,
|
|
260
262
|
args: ['mousedown', ['$event']]
|
|
261
263
|
}] } });
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3Jlc2l6YWJsZS9yZXNpemFibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUVaLFNBQVMsRUFFVCxRQUFRLEVBQ1IsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxTQUFTLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQXNCLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBR2hHLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFEM0Q7O1FBRXdCLGNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztRQUtuRCxvQkFBZSxHQUF5QixDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQy9GLGlCQUFZLEdBQXlCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pHLGNBQVMsR0FBeUIsRUFBRSxDQUFDO1FBRXJDLFdBQU0sR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQVExRSxrQkFBYSxHQUFtQyxFQUFFLENBQUM7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Z0JBQ0QsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7aUlBbFJVLG1CQUFtQjtxSEFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFOzhCQUVqQyxTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU87Z0JBQzJCLFdBQVc7c0JBQXpELFdBQVc7dUJBQUMsNEJBQTRCO2dCQXVDekMsU0FBUztzQkFEUixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZixcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgT25EZXN0cm95LFxyXG4gIFJlbmRlcmVyMixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIGNvbXB1dGVkLFxyXG4gIGluamVjdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ29tcHV0ZWQsIFhDb21wdXRlZFN0eWxlLCBYSXNBcnJheSwgWElzQ2hhbmdlLCBYSXNTdHJpbmcsIFhUb0Nzc1B4IH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWFJlc2l6YWJsZVBvc2l0aW9uLCBYUmVzaXphYmxlUHJlZml4LCBYUmVzaXphYmxlUHJvcGVydHkgfSBmcm9tICcuL3Jlc2l6YWJsZS5wcm9wZXJ0eSc7XHJcblxyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbeFJlc2l6YWJsZV0nLCBzdGFuZGFsb25lOiB0cnVlIH0pXHJcbmV4cG9ydCBjbGFzcyBYUmVzaXphYmxlRGlyZWN0aXZlIGV4dGVuZHMgWFJlc2l6YWJsZVByb3BlcnR5IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3NOYW1lID0gWFJlc2l6YWJsZVByZWZpeDtcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLngtcmVzaXphYmxlLWRpc2FibGVkJykgZ2V0IGdldERpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLnhSZXNpemFibGUoKTtcclxuICB9XHJcblxyXG4gIGNvcm5lclBvc2l0aW9uczogWFJlc2l6YWJsZVBvc2l0aW9uW10gPSBbJ3RvcC1zdGFydCcsICd0b3AtZW5kJywgJ2JvdHRvbS1zdGFydCcsICdib3R0b20tZW5kJ107XHJcbiAgYWxsUG9zaXRpb25zOiBYUmVzaXphYmxlUG9zaXRpb25bXSA9IFsnbGVmdCcsICdyaWdodCcsICd0b3AnLCAnYm90dG9tJywgLi4udGhpcy5jb3JuZXJQb3NpdGlvbnNdO1xyXG4gIHBvc2l0aW9uczogWFJlc2l6YWJsZVBvc2l0aW9uW10gPSBbXTtcclxuICBkaXJlY3Rpb24/OiBYUmVzaXphYmxlUG9zaXRpb247XHJcbiAgbmV3Qm94ID0geyBjbGllbnRXaWR0aDogMCwgY2xpZW50SGVpZ2h0OiAwLCBvZmZzZXRMZWZ0OiAwLCBvZmZzZXRUb3A6IDAgfTtcclxuICBtb3VzZVVwU3ViPzogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBtaW5XaWR0aD86IG51bWJlcjtcclxuICBtYXhXaWR0aD86IG51bWJlcjtcclxuICBtaW5IZWlnaHQ/OiBudW1iZXI7XHJcbiAgbWF4SGVpZ2h0PzogbnVtYmVyO1xyXG5cclxuICBwb3NpdGlvbk5vZGVzOiB7IFtrZXk6IHN0cmluZ106IEhUTUxFbGVtZW50IH0gPSB7fTtcclxuICBhY3RpdmF0aW5nTm9kZXM6IEhUTUxFbGVtZW50W10gPSBbXTtcclxuICBmaXJzdExvYWRlZCA9IHRydWU7XHJcblxyXG4gIHByaXZhdGUgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG4gIHByaXZhdGUgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XHJcbiAgcHJpdmF0ZSBmb250U2l6ZSA9IGNvbXB1dGVkKCgpID0+IHBhcnNlRmxvYXQoWENvbXB1dGVkU3R5bGUodGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsICdmb250LXNpemUnKSkpO1xyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnNldFBvc2l0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveVN1YnNjcmlwdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyB4UmVzaXphYmxlIH0gPSBjaGFuZ2VzO1xyXG4gICAgWElzQ2hhbmdlKHhSZXNpemFibGUpICYmIHRoaXMuc2V0UG9zaXRpb24oKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXHJcbiAgbW91c2Vkb3duKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkge1xyXG4gICAgaWYgKCF0aGlzLnhSZXNpemFibGUoKSkgcmV0dXJuO1xyXG4gICAgY29uc3QgY2xhc3NMaXN0ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0O1xyXG4gICAgbGV0IGRpcmVjdGlvbjogWFJlc2l6YWJsZVBvc2l0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgICBmb3IgKGxldCBwb3Mgb2YgdGhpcy5hbGxQb3NpdGlvbnMpIHtcclxuICAgICAgaWYgKGNsYXNzTGlzdC5jb250YWlucyhgeC1yZXNpemFibGUtJHtwb3N9YCkpIHtcclxuICAgICAgICBkaXJlY3Rpb24gPSBwb3M7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghZGlyZWN0aW9uKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgZXZ0ID0gZXZlbnQudHlwZS5zdGFydHNXaXRoKCd0b3VjaCcpID8gKGV2ZW50IGFzIFRvdWNoRXZlbnQpLnRhcmdldFRvdWNoZXNbMF0gOiAoZXZlbnQgYXMgTW91c2VFdmVudCk7XHJcbiAgICBjb25zdCB7IGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQsIG9mZnNldExlZnQsIG9mZnNldFRvcCB9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCB7IHNjcmVlblgsIHNjcmVlblkgfSA9IGV2dDtcclxuICAgIGNvbnN0IGlzVG91Y2hFdmVudCA9IGV2ZW50LnR5cGUuc3RhcnRzV2l0aCgndG91Y2gnKTtcclxuICAgIGNvbnN0IG1vdmVFdmVudCA9IGlzVG91Y2hFdmVudCA/ICd0b3VjaG1vdmUnIDogJ21vdXNlbW92ZSc7XHJcbiAgICBjb25zdCB1cEV2ZW50ID0gaXNUb3VjaEV2ZW50ID8gJ3RvdWNoZW5kJyA6ICdtb3VzZXVwJztcclxuXHJcbiAgICB0aGlzLnNldEFjdGl2YXRpbmdOb2RlcyhkaXJlY3Rpb24pO1xyXG4gICAgdGhpcy5pbml0UmVzaXplKGV2ZW50LCBkaXJlY3Rpb24pO1xyXG5cclxuICAgIGNvbnN0IG1vdXNldXAgPSBmcm9tRXZlbnQodGhpcy5kb2N1bWVudCwgdXBFdmVudCk7XHJcbiAgICB0aGlzLm1vdXNlVXBTdWIgPSBtb3VzZXVwLnN1YnNjcmliZSgoZXYpID0+IHtcclxuICAgICAgdGhpcy5tb3VzZXVwKGV2IGFzIE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgbW91c2VNb3ZlU3ViID0gZnJvbUV2ZW50KGRvY3VtZW50LCBtb3ZlRXZlbnQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbChtb3VzZXVwKSlcclxuICAgICAgLnN1YnNjcmliZSgoZXYpID0+XHJcbiAgICAgICAgdGhpcy5tb3ZlKGV2IGFzIE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCBjbGllbnRXaWR0aCwgY2xpZW50SGVpZ2h0LCBvZmZzZXRUb3AsIG9mZnNldExlZnQsIHNjcmVlblgsIHNjcmVlblkpXHJcbiAgICAgICk7XHJcblxyXG4gICAgdGhpcy5tb3VzZVVwU3ViLmFkZChtb3VzZU1vdmVTdWIpO1xyXG4gIH1cclxuXHJcbiAgc2V0UG9zaXRpb24oKSB7XHJcbiAgICBpZiAoIXRoaXMueFJlc2l6YWJsZSgpIHx8ICF0aGlzLmZpcnN0TG9hZGVkKSByZXR1cm47XHJcbiAgICBsZXQgcG9zaXRpb25zOiBYUmVzaXphYmxlUG9zaXRpb25bXSA9IFtdO1xyXG4gICAgaWYgKFhJc1N0cmluZyh0aGlzLnBvc2l0aW9uKCkpKSB7XHJcbiAgICAgIHBvc2l0aW9ucy5wdXNoKHRoaXMucG9zaXRpb24oKSBhcyBYUmVzaXphYmxlUG9zaXRpb24pO1xyXG4gICAgfSBlbHNlIGlmIChYSXNBcnJheSh0aGlzLnBvc2l0aW9uKCkpKSB7XHJcbiAgICAgIHBvc2l0aW9ucyA9IHRoaXMucG9zaXRpb24oKSBhcyBYUmVzaXphYmxlUG9zaXRpb25bXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocG9zaXRpb25zLmluY2x1ZGVzKCdhbGwnKSkge1xyXG4gICAgICB0aGlzLnBvc2l0aW9ucyA9IHRoaXMuYWxsUG9zaXRpb25zO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wb3NpdGlvbnMgPSBwb3NpdGlvbnM7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNyZWF0ZU5vZGUoLi4udGhpcy5wb3NpdGlvbnMpO1xyXG5cclxuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSBYQ29tcHV0ZWQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMubWluV2lkdGggPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUubWluV2lkdGgpO1xyXG4gICAgICB0aGlzLm1heFdpZHRoID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLm1heFdpZHRoKTtcclxuICAgICAgdGhpcy5taW5IZWlnaHQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUubWluSGVpZ2h0KTtcclxuICAgICAgdGhpcy5tYXhIZWlnaHQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUubWF4SGVpZ2h0KTtcclxuICAgICAgdGhpcy5maXJzdExvYWRlZCA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRBY3RpdmF0aW5nTm9kZXMoZGlyZWN0aW9uOiBYUmVzaXphYmxlUG9zaXRpb24pIHtcclxuICAgIGlmICghdGhpcy5wb3NpdGlvbnMuaW5jbHVkZXMoZGlyZWN0aW9uKSkgcmV0dXJuO1xyXG4gICAgY29uc3QgYWRkQWN0aXZhdGluZ05vZGUgPSAoLi4uZGlyZWN0aW9uOiBYUmVzaXphYmxlUG9zaXRpb25bXSkgPT4ge1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIGRpcmVjdGlvbikge1xyXG4gICAgICAgIGNvbnN0IG5kID0gdGhpcy5wb3NpdGlvbk5vZGVzW2l0ZW1dO1xyXG4gICAgICAgIGNvbnN0IGlzTmQgPSB0aGlzLmFjdGl2YXRpbmdOb2Rlcy5pbmNsdWRlcyhuZCk7XHJcbiAgICAgICAgaWYgKCFuZCB8fCBpc05kKSBjb250aW51ZTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKG5kLCAneC1yZXNpemFibGUtYWN0aXZhdGluZycpO1xyXG4gICAgICAgIHRoaXMuYWN0aXZhdGluZ05vZGVzLnB1c2gobmQpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuY29ybmVyUG9zaXRpb25zLmluY2x1ZGVzKGRpcmVjdGlvbikpIHtcclxuICAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHtcclxuICAgICAgICBjYXNlICdib3R0b20tZW5kJzpcclxuICAgICAgICAgIGFkZEFjdGl2YXRpbmdOb2RlKCdib3R0b20nLCAncmlnaHQnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3RvcC1lbmQnOlxyXG4gICAgICAgICAgYWRkQWN0aXZhdGluZ05vZGUoJ3RvcCcsICdyaWdodCcpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnYm90dG9tLXN0YXJ0JzpcclxuICAgICAgICAgIGFkZEFjdGl2YXRpbmdOb2RlKCdib3R0b20nLCAnbGVmdCcpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAndG9wLXN0YXJ0JzpcclxuICAgICAgICAgIGFkZEFjdGl2YXRpbmdOb2RlKCd0b3AnLCAnbGVmdCcpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGFkZEFjdGl2YXRpbmdOb2RlKGRpcmVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVOb2RlKC4uLmNsYXNzZXM6IFhSZXNpemFibGVQb3NpdGlvbltdKSB7XHJcbiAgICBmb3IgKGxldCBjbGEgb2YgY2xhc3Nlcykge1xyXG4gICAgICBjb25zdCBwb3MgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHBvcywgYHgtcmVzaXphYmxlLSR7Y2xhfWApO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBwb3MpO1xyXG4gICAgICB0aGlzLnBvc2l0aW9uTm9kZXNbY2xhXSA9IHBvcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXRSZXNpemUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCBkaXJlY3Rpb246IFhSZXNpemFibGVQb3NpdGlvbikge1xyXG4gICAgY29uc3QgZXZ0ID0gZXZlbnQudHlwZS5zdGFydHNXaXRoKCd0b3VjaCcpID8gKGV2ZW50IGFzIFRvdWNoRXZlbnQpLnRhcmdldFRvdWNoZXNbMF0gOiAoZXZlbnQgYXMgTW91c2VFdmVudCk7XHJcbiAgICB0aGlzLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGB4LXJlc2l6YWJsZS1yZXNpemluZ2ApO1xyXG4gICAgbGV0IHsgY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCwgb2Zmc2V0TGVmdCwgb2Zmc2V0VG9wIH0gPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMubmV3Qm94ID0geyBjbGllbnRXaWR0aCwgY2xpZW50SGVpZ2h0LCBvZmZzZXRMZWZ0LCBvZmZzZXRUb3AgfTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5yZXNpemVCZWdpbi5lbWl0KHsgZXZlbnQ6IGV2dCBhcyBNb3VzZUV2ZW50LCAuLi50aGlzLm5ld0JveCB9KTtcclxuICB9XHJcblxyXG4gIG1vdXNldXAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSB7XHJcbiAgICB0aGlzLmVuZFJlc2l6ZShldmVudCk7XHJcbiAgICB0aGlzLmRlc3Ryb3lTdWJzY3JpcHRpb24oKTtcclxuICB9XHJcblxyXG4gIGVuZFJlc2l6ZShldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpIHtcclxuICAgIGNvbnN0IGV2dCA9IGV2ZW50LnR5cGUuc3RhcnRzV2l0aCgndG91Y2gnKSA/IChldmVudCBhcyBUb3VjaEV2ZW50KS50YXJnZXRUb3VjaGVzWzBdIDogKGV2ZW50IGFzIE1vdXNlRXZlbnQpO1xyXG4gICAgdGhpcy5kaXJlY3Rpb24gPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBgeC1yZXNpemFibGUtcmVzaXppbmdgKTtcclxuICAgIGZvciAoY29uc3Qgbm9kZSBvZiB0aGlzLmFjdGl2YXRpbmdOb2Rlcykge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKG5vZGUsICd4LXJlc2l6YWJsZS1hY3RpdmF0aW5nJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGl2YXRpbmdOb2RlcyA9IFtdO1xyXG4gICAgdGhpcy5yZXNpemVFbmQuZW1pdCh7IGV2ZW50OiBldnQgYXMgTW91c2VFdmVudCwgLi4udGhpcy5uZXdCb3ggfSk7XHJcbiAgfVxyXG5cclxuICBtb3ZlKFxyXG4gICAgZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LFxyXG4gICAgd2lkdGg6IG51bWJlcixcclxuICAgIGhlaWdodDogbnVtYmVyLFxyXG4gICAgdG9wOiBudW1iZXIsXHJcbiAgICBsZWZ0OiBudW1iZXIsXHJcbiAgICBzY3JlZW5YOiBudW1iZXIsXHJcbiAgICBzY3JlZW5ZOiBudW1iZXJcclxuICApIHtcclxuICAgIGNvbnN0IGV2dCA9IGV2ZW50LnR5cGUuc3RhcnRzV2l0aCgndG91Y2gnKSA/IChldmVudCBhcyBUb3VjaEV2ZW50KS50YXJnZXRUb3VjaGVzWzBdIDogKGV2ZW50IGFzIE1vdXNlRXZlbnQpO1xyXG4gICAgY29uc3QgbW92ZW1lbnRYID0gZXZ0LnNjcmVlblggLSBzY3JlZW5YO1xyXG4gICAgY29uc3QgbW92ZW1lbnRZID0gZXZ0LnNjcmVlblkgLSBzY3JlZW5ZO1xyXG5cclxuICAgIHRoaXMubmV3Qm94ID0ge1xyXG4gICAgICBjbGllbnRXaWR0aDpcclxuICAgICAgICB3aWR0aCAtIChbJ2JvdHRvbS1zdGFydCcsICdsZWZ0JywgJ3RvcC1zdGFydCddLmluY2x1ZGVzKHRoaXMuZGlyZWN0aW9uIGFzIHN0cmluZykgPyBtb3ZlbWVudFggOiAtbW92ZW1lbnRYKSxcclxuICAgICAgY2xpZW50SGVpZ2h0OlxyXG4gICAgICAgIGhlaWdodCAtIChbJ3RvcC1zdGFydCcsICd0b3AnLCAndG9wLWVuZCddLmluY2x1ZGVzKHRoaXMuZGlyZWN0aW9uIGFzIHN0cmluZykgPyBtb3ZlbWVudFkgOiAtbW92ZW1lbnRZKSxcclxuICAgICAgb2Zmc2V0TGVmdDogbGVmdCArIG1vdmVtZW50WCxcclxuICAgICAgb2Zmc2V0VG9wOiB0b3AgKyBtb3ZlbWVudFlcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgYm94ID0ge1xyXG4gICAgICAuLi50aGlzLm5ld0JveCxcclxuICAgICAgb2Zmc2V0TGVmdDogdGhpcy5uZXdCb3gub2Zmc2V0TGVmdCAtIFhUb0Nzc1B4KHRoaXMub2Zmc2V0TGVmdCgpLCB0aGlzLmZvbnRTaXplKCkpLFxyXG4gICAgICBvZmZzZXRUb3A6IHRoaXMubmV3Qm94Lm9mZnNldFRvcCAtIFhUb0Nzc1B4KHRoaXMub2Zmc2V0VG9wKCksIHRoaXMuZm9udFNpemUoKSlcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5yZXNpemVCb3goYm94KTtcclxuXHJcbiAgICB0aGlzLnJlc2l6aW5nLmVtaXQoeyAuLi50aGlzLm5ld0JveCwgZXZlbnQ6IGV2dCBhcyBNb3VzZUV2ZW50LCBkaXJlY3Rpb246IHRoaXMuZGlyZWN0aW9uIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVzaXplQm94KGJveDogeyBjbGllbnRXaWR0aDogbnVtYmVyOyBjbGllbnRIZWlnaHQ6IG51bWJlcjsgb2Zmc2V0TGVmdDogbnVtYmVyOyBvZmZzZXRUb3A6IG51bWJlciB9KSB7XHJcbiAgICBpZiAodGhpcy5naG9zdCgpKSByZXR1cm47XHJcbiAgICBjb25zdCBvdmVyTWluV2lkdGggPSAhdGhpcy5taW5XaWR0aCB8fCBib3guY2xpZW50V2lkdGggPj0gdGhpcy5taW5XaWR0aDtcclxuICAgIGNvbnN0IHVuZGVyTWF4V2lkdGggPSAhdGhpcy5tYXhXaWR0aCB8fCBib3guY2xpZW50V2lkdGggPD0gdGhpcy5tYXhXaWR0aDtcclxuICAgIGNvbnN0IG92ZXJNaW5IZWlnaHQgPSAhdGhpcy5taW5IZWlnaHQgfHwgYm94LmNsaWVudEhlaWdodCA+PSB0aGlzLm1pbkhlaWdodDtcclxuICAgIGNvbnN0IHVuZGVyTWF4SGVpZ2h0ID0gIXRoaXMubWF4SGVpZ2h0IHx8IGJveC5jbGllbnRIZWlnaHQgPD0gdGhpcy5tYXhIZWlnaHQ7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLmRpcmVjdGlvbikge1xyXG4gICAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgICAgaWYgKG92ZXJNaW5XaWR0aCAmJiB1bmRlck1heFdpZHRoKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCBgJHtib3guY2xpZW50V2lkdGh9cHhgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RvcC1lbmQnOlxyXG4gICAgICAgIGlmIChvdmVyTWluV2lkdGggJiYgdW5kZXJNYXhXaWR0aCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7Ym94LmNsaWVudFdpZHRofXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvdmVyTWluSGVpZ2h0ICYmIHVuZGVyTWF4SGVpZ2h0KSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndG9wJywgYCR7Ym94Lm9mZnNldFRvcH1weGApO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2JveC5jbGllbnRIZWlnaHR9cHhgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbS1lbmQnOlxyXG4gICAgICAgIGlmIChvdmVyTWluV2lkdGggJiYgdW5kZXJNYXhXaWR0aCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7Ym94LmNsaWVudFdpZHRofXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvdmVyTWluSGVpZ2h0ICYmIHVuZGVyTWF4SGVpZ2h0KSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7Ym94LmNsaWVudEhlaWdodH1weGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYm90dG9tLXN0YXJ0JzpcclxuICAgICAgICBpZiAob3Zlck1pbldpZHRoICYmIHVuZGVyTWF4V2lkdGgpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7Ym94Lm9mZnNldExlZnR9cHhgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke2JveC5jbGllbnRXaWR0aH1weGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob3Zlck1pbkhlaWdodCAmJiB1bmRlck1heEhlaWdodCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2JveC5jbGllbnRIZWlnaHR9cHhgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICAgIGlmIChvdmVyTWluV2lkdGggJiYgdW5kZXJNYXhXaWR0aCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2xlZnQnLCBgJHtib3gub2Zmc2V0TGVmdH1weGApO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7Ym94LmNsaWVudFdpZHRofXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0b3Atc3RhcnQnOlxyXG4gICAgICAgIGlmIChvdmVyTWluV2lkdGggJiYgdW5kZXJNYXhXaWR0aCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2xlZnQnLCBgJHtib3gub2Zmc2V0TGVmdH1weGApO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7Ym94LmNsaWVudFdpZHRofXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvdmVyTWluSGVpZ2h0ICYmIHVuZGVyTWF4SGVpZ2h0KSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndG9wJywgYCR7Ym94Lm9mZnNldFRvcH1weGApO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2JveC5jbGllbnRIZWlnaHR9cHhgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RvcCc6XHJcbiAgICAgICAgaWYgKG92ZXJNaW5IZWlnaHQgJiYgdW5kZXJNYXhIZWlnaHQpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCBgJHtib3gub2Zmc2V0VG9wfXB4YCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7Ym94LmNsaWVudEhlaWdodH1weGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgICBpZiAob3Zlck1pbkhlaWdodCAmJiB1bmRlck1heEhlaWdodCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2JveC5jbGllbnRIZWlnaHR9cHhgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRlc3Ryb3lTdWJzY3JpcHRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5tb3VzZVVwU3ViKSB7XHJcbiAgICAgIHRoaXMubW91c2VVcFN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLm1vdXNlVXBTdWIgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3Jlc2l6YWJsZS9yZXNpemFibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUVaLFNBQVMsRUFFVCxRQUFRLEVBQ1IsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxTQUFTLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQXNCLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBR2hHLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFEM0Q7O1FBRXdCLGNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztRQUtuRCxvQkFBZSxHQUF5QixDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQy9GLGlCQUFZLEdBQXlCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pHLGNBQVMsR0FBeUIsRUFBRSxDQUFDO1FBRXJDLFdBQU0sR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQVExRSxrQkFBYSxHQUFtQyxFQUFFLENBQUM7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QUksQ0FBQyxDQUFDO2dCQUMzRixDQUFDO2dCQUNELE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO2lJQWxSVSxtQkFBbUI7cUhBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTs4QkFFakMsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPO2dCQUMyQixXQUFXO3NCQUF6RCxXQUFXO3VCQUFDLDRCQUE0QjtnQkF1Q3pDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIE9uRGVzdHJveSxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBjb21wdXRlZCxcclxuICBpbmplY3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWENvbXB1dGVkLCBYQ29tcHV0ZWRTdHlsZSwgWElzQXJyYXksIFhJc0NoYW5nZSwgWElzU3RyaW5nLCBYVG9Dc3NQeCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFhSZXNpemFibGVQb3NpdGlvbiwgWFJlc2l6YWJsZVByZWZpeCwgWFJlc2l6YWJsZVByb3BlcnR5IH0gZnJvbSAnLi9yZXNpemFibGUucHJvcGVydHknO1xyXG5cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3hSZXNpemFibGVdJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxyXG5leHBvcnQgY2xhc3MgWFJlc2l6YWJsZURpcmVjdGl2ZSBleHRlbmRzIFhSZXNpemFibGVQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTmFtZSA9IFhSZXNpemFibGVQcmVmaXg7XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy54LXJlc2l6YWJsZS1kaXNhYmxlZCcpIGdldCBnZXREaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiAhdGhpcy54UmVzaXphYmxlKCk7XHJcbiAgfVxyXG5cclxuICBjb3JuZXJQb3NpdGlvbnM6IFhSZXNpemFibGVQb3NpdGlvbltdID0gWyd0b3Atc3RhcnQnLCAndG9wLWVuZCcsICdib3R0b20tc3RhcnQnLCAnYm90dG9tLWVuZCddO1xyXG4gIGFsbFBvc2l0aW9uczogWFJlc2l6YWJsZVBvc2l0aW9uW10gPSBbJ2xlZnQnLCAncmlnaHQnLCAndG9wJywgJ2JvdHRvbScsIC4uLnRoaXMuY29ybmVyUG9zaXRpb25zXTtcclxuICBwb3NpdGlvbnM6IFhSZXNpemFibGVQb3NpdGlvbltdID0gW107XHJcbiAgZGlyZWN0aW9uPzogWFJlc2l6YWJsZVBvc2l0aW9uO1xyXG4gIG5ld0JveCA9IHsgY2xpZW50V2lkdGg6IDAsIGNsaWVudEhlaWdodDogMCwgb2Zmc2V0TGVmdDogMCwgb2Zmc2V0VG9wOiAwIH07XHJcbiAgbW91c2VVcFN1Yj86IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgbWluV2lkdGg/OiBudW1iZXI7XHJcbiAgbWF4V2lkdGg/OiBudW1iZXI7XHJcbiAgbWluSGVpZ2h0PzogbnVtYmVyO1xyXG4gIG1heEhlaWdodD86IG51bWJlcjtcclxuXHJcbiAgcG9zaXRpb25Ob2RlczogeyBba2V5OiBzdHJpbmddOiBIVE1MRWxlbWVudCB9ID0ge307XHJcbiAgYWN0aXZhdGluZ05vZGVzOiBIVE1MRWxlbWVudFtdID0gW107XHJcbiAgZmlyc3RMb2FkZWQgPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XHJcbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG4gIHByaXZhdGUgZm9udFNpemUgPSBjb21wdXRlZCgoKSA9PiBwYXJzZUZsb2F0KFhDb21wdXRlZFN0eWxlKHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAnZm9udC1zaXplJykpKTtcclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXRQb3NpdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3lTdWJzY3JpcHRpb24oKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHsgeFJlc2l6YWJsZSB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZSh4UmVzaXphYmxlKSAmJiB0aGlzLnNldFBvc2l0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxyXG4gIG1vdXNlZG93bihldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpIHtcclxuICAgIGlmICghdGhpcy54UmVzaXphYmxlKCkpIHJldHVybjtcclxuICAgIGNvbnN0IGNsYXNzTGlzdCA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdDtcclxuICAgIGxldCBkaXJlY3Rpb246IFhSZXNpemFibGVQb3NpdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gICAgZm9yIChsZXQgcG9zIG9mIHRoaXMuYWxsUG9zaXRpb25zKSB7XHJcbiAgICAgIGlmIChjbGFzc0xpc3QuY29udGFpbnMoYHgtcmVzaXphYmxlLSR7cG9zfWApKSB7XHJcbiAgICAgICAgZGlyZWN0aW9uID0gcG9zO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIWRpcmVjdGlvbikgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGV2dCA9IGV2ZW50LnR5cGUuc3RhcnRzV2l0aCgndG91Y2gnKSA/IChldmVudCBhcyBUb3VjaEV2ZW50KS50YXJnZXRUb3VjaGVzWzBdIDogKGV2ZW50IGFzIE1vdXNlRXZlbnQpO1xyXG4gICAgY29uc3QgeyBjbGllbnRXaWR0aCwgY2xpZW50SGVpZ2h0LCBvZmZzZXRMZWZ0LCBvZmZzZXRUb3AgfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29uc3QgeyBzY3JlZW5YLCBzY3JlZW5ZIH0gPSBldnQ7XHJcbiAgICBjb25zdCBpc1RvdWNoRXZlbnQgPSBldmVudC50eXBlLnN0YXJ0c1dpdGgoJ3RvdWNoJyk7XHJcbiAgICBjb25zdCBtb3ZlRXZlbnQgPSBpc1RvdWNoRXZlbnQgPyAndG91Y2htb3ZlJyA6ICdtb3VzZW1vdmUnO1xyXG4gICAgY29uc3QgdXBFdmVudCA9IGlzVG91Y2hFdmVudCA/ICd0b3VjaGVuZCcgOiAnbW91c2V1cCc7XHJcblxyXG4gICAgdGhpcy5zZXRBY3RpdmF0aW5nTm9kZXMoZGlyZWN0aW9uKTtcclxuICAgIHRoaXMuaW5pdFJlc2l6ZShldmVudCwgZGlyZWN0aW9uKTtcclxuXHJcbiAgICBjb25zdCBtb3VzZXVwID0gZnJvbUV2ZW50KHRoaXMuZG9jdW1lbnQsIHVwRXZlbnQpO1xyXG4gICAgdGhpcy5tb3VzZVVwU3ViID0gbW91c2V1cC5zdWJzY3JpYmUoKGV2KSA9PiB7XHJcbiAgICAgIHRoaXMubW91c2V1cChldiBhcyBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IG1vdXNlTW92ZVN1YiA9IGZyb21FdmVudCh0aGlzLmRvY3VtZW50LCBtb3ZlRXZlbnQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbChtb3VzZXVwKSlcclxuICAgICAgLnN1YnNjcmliZSgoZXYpID0+IHtcclxuICAgICAgICB0aGlzLm1vdmUoZXYgYXMgTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsIGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQsIG9mZnNldFRvcCwgb2Zmc2V0TGVmdCwgc2NyZWVuWCwgc2NyZWVuWSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMubW91c2VVcFN1Yi5hZGQobW91c2VNb3ZlU3ViKTtcclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uKCkge1xyXG4gICAgaWYgKCF0aGlzLnhSZXNpemFibGUoKSB8fCAhdGhpcy5maXJzdExvYWRlZCkgcmV0dXJuO1xyXG4gICAgbGV0IHBvc2l0aW9uczogWFJlc2l6YWJsZVBvc2l0aW9uW10gPSBbXTtcclxuICAgIGlmIChYSXNTdHJpbmcodGhpcy5wb3NpdGlvbigpKSkge1xyXG4gICAgICBwb3NpdGlvbnMucHVzaCh0aGlzLnBvc2l0aW9uKCkgYXMgWFJlc2l6YWJsZVBvc2l0aW9uKTtcclxuICAgIH0gZWxzZSBpZiAoWElzQXJyYXkodGhpcy5wb3NpdGlvbigpKSkge1xyXG4gICAgICBwb3NpdGlvbnMgPSB0aGlzLnBvc2l0aW9uKCkgYXMgWFJlc2l6YWJsZVBvc2l0aW9uW107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHBvc2l0aW9ucy5pbmNsdWRlcygnYWxsJykpIHtcclxuICAgICAgdGhpcy5wb3NpdGlvbnMgPSB0aGlzLmFsbFBvc2l0aW9ucztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucG9zaXRpb25zID0gcG9zaXRpb25zO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jcmVhdGVOb2RlKC4uLnRoaXMucG9zaXRpb25zKTtcclxuXHJcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gWENvbXB1dGVkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLm1pbldpZHRoID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLm1pbldpZHRoKTtcclxuICAgICAgdGhpcy5tYXhXaWR0aCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5tYXhXaWR0aCk7XHJcbiAgICAgIHRoaXMubWluSGVpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLm1pbkhlaWdodCk7XHJcbiAgICAgIHRoaXMubWF4SGVpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLm1heEhlaWdodCk7XHJcbiAgICAgIHRoaXMuZmlyc3RMb2FkZWQgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZhdGluZ05vZGVzKGRpcmVjdGlvbjogWFJlc2l6YWJsZVBvc2l0aW9uKSB7XHJcbiAgICBpZiAoIXRoaXMucG9zaXRpb25zLmluY2x1ZGVzKGRpcmVjdGlvbikpIHJldHVybjtcclxuICAgIGNvbnN0IGFkZEFjdGl2YXRpbmdOb2RlID0gKC4uLmRpcmVjdGlvbjogWFJlc2l6YWJsZVBvc2l0aW9uW10pID0+IHtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiBkaXJlY3Rpb24pIHtcclxuICAgICAgICBjb25zdCBuZCA9IHRoaXMucG9zaXRpb25Ob2Rlc1tpdGVtXTtcclxuICAgICAgICBjb25zdCBpc05kID0gdGhpcy5hY3RpdmF0aW5nTm9kZXMuaW5jbHVkZXMobmQpO1xyXG4gICAgICAgIGlmICghbmQgfHwgaXNOZCkgY29udGludWU7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhuZCwgJ3gtcmVzaXphYmxlLWFjdGl2YXRpbmcnKTtcclxuICAgICAgICB0aGlzLmFjdGl2YXRpbmdOb2Rlcy5wdXNoKG5kKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmNvcm5lclBvc2l0aW9ucy5pbmNsdWRlcyhkaXJlY3Rpb24pKSB7XHJcbiAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XHJcbiAgICAgICAgY2FzZSAnYm90dG9tLWVuZCc6XHJcbiAgICAgICAgICBhZGRBY3RpdmF0aW5nTm9kZSgnYm90dG9tJywgJ3JpZ2h0Jyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICd0b3AtZW5kJzpcclxuICAgICAgICAgIGFkZEFjdGl2YXRpbmdOb2RlKCd0b3AnLCAncmlnaHQnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2JvdHRvbS1zdGFydCc6XHJcbiAgICAgICAgICBhZGRBY3RpdmF0aW5nTm9kZSgnYm90dG9tJywgJ2xlZnQnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3RvcC1zdGFydCc6XHJcbiAgICAgICAgICBhZGRBY3RpdmF0aW5nTm9kZSgndG9wJywgJ2xlZnQnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBhZGRBY3RpdmF0aW5nTm9kZShkaXJlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlTm9kZSguLi5jbGFzc2VzOiBYUmVzaXphYmxlUG9zaXRpb25bXSkge1xyXG4gICAgZm9yIChsZXQgY2xhIG9mIGNsYXNzZXMpIHtcclxuICAgICAgY29uc3QgcG9zID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhwb3MsIGB4LXJlc2l6YWJsZS0ke2NsYX1gKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgcG9zKTtcclxuICAgICAgdGhpcy5wb3NpdGlvbk5vZGVzW2NsYV0gPSBwb3M7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0UmVzaXplKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCwgZGlyZWN0aW9uOiBYUmVzaXphYmxlUG9zaXRpb24pIHtcclxuICAgIGNvbnN0IGV2dCA9IGV2ZW50LnR5cGUuc3RhcnRzV2l0aCgndG91Y2gnKSA/IChldmVudCBhcyBUb3VjaEV2ZW50KS50YXJnZXRUb3VjaGVzWzBdIDogKGV2ZW50IGFzIE1vdXNlRXZlbnQpO1xyXG4gICAgdGhpcy5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBgeC1yZXNpemFibGUtcmVzaXppbmdgKTtcclxuICAgIGxldCB7IGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQsIG9mZnNldExlZnQsIG9mZnNldFRvcCB9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB0aGlzLm5ld0JveCA9IHsgY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCwgb2Zmc2V0TGVmdCwgb2Zmc2V0VG9wIH07XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMucmVzaXplQmVnaW4uZW1pdCh7IGV2ZW50OiBldnQgYXMgTW91c2VFdmVudCwgLi4udGhpcy5uZXdCb3ggfSk7XHJcbiAgfVxyXG5cclxuICBtb3VzZXVwKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkge1xyXG4gICAgdGhpcy5lbmRSZXNpemUoZXZlbnQpO1xyXG4gICAgdGhpcy5kZXN0cm95U3Vic2NyaXB0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBlbmRSZXNpemUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSB7XHJcbiAgICBjb25zdCBldnQgPSBldmVudC50eXBlLnN0YXJ0c1dpdGgoJ3RvdWNoJykgPyAoZXZlbnQgYXMgVG91Y2hFdmVudCkudGFyZ2V0VG91Y2hlc1swXSA6IChldmVudCBhcyBNb3VzZUV2ZW50KTtcclxuICAgIHRoaXMuZGlyZWN0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgYHgtcmVzaXphYmxlLXJlc2l6aW5nYCk7XHJcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcy5hY3RpdmF0aW5nTm9kZXMpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhub2RlLCAneC1yZXNpemFibGUtYWN0aXZhdGluZycpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmF0aW5nTm9kZXMgPSBbXTtcclxuICAgIHRoaXMucmVzaXplRW5kLmVtaXQoeyBldmVudDogZXZ0IGFzIE1vdXNlRXZlbnQsIC4uLnRoaXMubmV3Qm94IH0pO1xyXG4gIH1cclxuXHJcbiAgbW92ZShcclxuICAgIGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCxcclxuICAgIHdpZHRoOiBudW1iZXIsXHJcbiAgICBoZWlnaHQ6IG51bWJlcixcclxuICAgIHRvcDogbnVtYmVyLFxyXG4gICAgbGVmdDogbnVtYmVyLFxyXG4gICAgc2NyZWVuWDogbnVtYmVyLFxyXG4gICAgc2NyZWVuWTogbnVtYmVyXHJcbiAgKSB7XHJcbiAgICBjb25zdCBldnQgPSBldmVudC50eXBlLnN0YXJ0c1dpdGgoJ3RvdWNoJykgPyAoZXZlbnQgYXMgVG91Y2hFdmVudCkudGFyZ2V0VG91Y2hlc1swXSA6IChldmVudCBhcyBNb3VzZUV2ZW50KTtcclxuICAgIGNvbnN0IG1vdmVtZW50WCA9IGV2dC5zY3JlZW5YIC0gc2NyZWVuWDtcclxuICAgIGNvbnN0IG1vdmVtZW50WSA9IGV2dC5zY3JlZW5ZIC0gc2NyZWVuWTtcclxuXHJcbiAgICB0aGlzLm5ld0JveCA9IHtcclxuICAgICAgY2xpZW50V2lkdGg6XHJcbiAgICAgICAgd2lkdGggLSAoWydib3R0b20tc3RhcnQnLCAnbGVmdCcsICd0b3Atc3RhcnQnXS5pbmNsdWRlcyh0aGlzLmRpcmVjdGlvbiBhcyBzdHJpbmcpID8gbW92ZW1lbnRYIDogLW1vdmVtZW50WCksXHJcbiAgICAgIGNsaWVudEhlaWdodDpcclxuICAgICAgICBoZWlnaHQgLSAoWyd0b3Atc3RhcnQnLCAndG9wJywgJ3RvcC1lbmQnXS5pbmNsdWRlcyh0aGlzLmRpcmVjdGlvbiBhcyBzdHJpbmcpID8gbW92ZW1lbnRZIDogLW1vdmVtZW50WSksXHJcbiAgICAgIG9mZnNldExlZnQ6IGxlZnQgKyBtb3ZlbWVudFgsXHJcbiAgICAgIG9mZnNldFRvcDogdG9wICsgbW92ZW1lbnRZXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGJveCA9IHtcclxuICAgICAgLi4udGhpcy5uZXdCb3gsXHJcbiAgICAgIG9mZnNldExlZnQ6IHRoaXMubmV3Qm94Lm9mZnNldExlZnQgLSBYVG9Dc3NQeCh0aGlzLm9mZnNldExlZnQoKSwgdGhpcy5mb250U2l6ZSgpKSxcclxuICAgICAgb2Zmc2V0VG9wOiB0aGlzLm5ld0JveC5vZmZzZXRUb3AgLSBYVG9Dc3NQeCh0aGlzLm9mZnNldFRvcCgpLCB0aGlzLmZvbnRTaXplKCkpXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMucmVzaXplQm94KGJveCk7XHJcblxyXG4gICAgdGhpcy5yZXNpemluZy5lbWl0KHsgLi4udGhpcy5uZXdCb3gsIGV2ZW50OiBldnQgYXMgTW91c2VFdmVudCwgZGlyZWN0aW9uOiB0aGlzLmRpcmVjdGlvbiB9KTtcclxuICB9XHJcblxyXG4gIHJlc2l6ZUJveChib3g6IHsgY2xpZW50V2lkdGg6IG51bWJlcjsgY2xpZW50SGVpZ2h0OiBudW1iZXI7IG9mZnNldExlZnQ6IG51bWJlcjsgb2Zmc2V0VG9wOiBudW1iZXIgfSkge1xyXG4gICAgaWYgKHRoaXMuZ2hvc3QoKSkgcmV0dXJuO1xyXG4gICAgY29uc3Qgb3Zlck1pbldpZHRoID0gIXRoaXMubWluV2lkdGggfHwgYm94LmNsaWVudFdpZHRoID49IHRoaXMubWluV2lkdGg7XHJcbiAgICBjb25zdCB1bmRlck1heFdpZHRoID0gIXRoaXMubWF4V2lkdGggfHwgYm94LmNsaWVudFdpZHRoIDw9IHRoaXMubWF4V2lkdGg7XHJcbiAgICBjb25zdCBvdmVyTWluSGVpZ2h0ID0gIXRoaXMubWluSGVpZ2h0IHx8IGJveC5jbGllbnRIZWlnaHQgPj0gdGhpcy5taW5IZWlnaHQ7XHJcbiAgICBjb25zdCB1bmRlck1heEhlaWdodCA9ICF0aGlzLm1heEhlaWdodCB8fCBib3guY2xpZW50SGVpZ2h0IDw9IHRoaXMubWF4SGVpZ2h0O1xyXG5cclxuICAgIHN3aXRjaCAodGhpcy5kaXJlY3Rpb24pIHtcclxuICAgICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICAgIGlmIChvdmVyTWluV2lkdGggJiYgdW5kZXJNYXhXaWR0aCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7Ym94LmNsaWVudFdpZHRofXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0b3AtZW5kJzpcclxuICAgICAgICBpZiAob3Zlck1pbldpZHRoICYmIHVuZGVyTWF4V2lkdGgpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke2JveC5jbGllbnRXaWR0aH1weGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob3Zlck1pbkhlaWdodCAmJiB1bmRlck1heEhlaWdodCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RvcCcsIGAke2JveC5vZmZzZXRUb3B9cHhgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHtib3guY2xpZW50SGVpZ2h0fXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20tZW5kJzpcclxuICAgICAgICBpZiAob3Zlck1pbldpZHRoICYmIHVuZGVyTWF4V2lkdGgpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke2JveC5jbGllbnRXaWR0aH1weGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob3Zlck1pbkhlaWdodCAmJiB1bmRlck1heEhlaWdodCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2JveC5jbGllbnRIZWlnaHR9cHhgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbS1zdGFydCc6XHJcbiAgICAgICAgaWYgKG92ZXJNaW5XaWR0aCAmJiB1bmRlck1heFdpZHRoKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbGVmdCcsIGAke2JveC5vZmZzZXRMZWZ0fXB4YCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCBgJHtib3guY2xpZW50V2lkdGh9cHhgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG92ZXJNaW5IZWlnaHQgJiYgdW5kZXJNYXhIZWlnaHQpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHtib3guY2xpZW50SGVpZ2h0fXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgICBpZiAob3Zlck1pbldpZHRoICYmIHVuZGVyTWF4V2lkdGgpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7Ym94Lm9mZnNldExlZnR9cHhgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke2JveC5jbGllbnRXaWR0aH1weGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndG9wLXN0YXJ0JzpcclxuICAgICAgICBpZiAob3Zlck1pbldpZHRoICYmIHVuZGVyTWF4V2lkdGgpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7Ym94Lm9mZnNldExlZnR9cHhgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke2JveC5jbGllbnRXaWR0aH1weGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob3Zlck1pbkhlaWdodCAmJiB1bmRlck1heEhlaWdodCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RvcCcsIGAke2JveC5vZmZzZXRUb3B9cHhgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHtib3guY2xpZW50SGVpZ2h0fXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0b3AnOlxyXG4gICAgICAgIGlmIChvdmVyTWluSGVpZ2h0ICYmIHVuZGVyTWF4SGVpZ2h0KSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndG9wJywgYCR7Ym94Lm9mZnNldFRvcH1weGApO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2JveC5jbGllbnRIZWlnaHR9cHhgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbSc6XHJcbiAgICAgICAgaWYgKG92ZXJNaW5IZWlnaHQgJiYgdW5kZXJNYXhIZWlnaHQpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHtib3guY2xpZW50SGVpZ2h0fXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkZXN0cm95U3Vic2NyaXB0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMubW91c2VVcFN1Yikge1xyXG4gICAgICB0aGlzLm1vdXNlVXBTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5tb3VzZVVwU3ViID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,25 +1,40 @@
|
|
|
1
|
-
import { Renderer2, ElementRef, Directive, inject, HostBinding, ChangeDetectorRef } from '@angular/core';
|
|
1
|
+
import { Renderer2, ElementRef, Directive, inject, HostBinding, ChangeDetectorRef, effect } from '@angular/core';
|
|
2
2
|
import { delay, fromEvent, of, Subject, takeUntil, tap } from 'rxjs';
|
|
3
3
|
import { XRipplePrefix, XRippleProperty } from './ripple.property';
|
|
4
4
|
import { XComputed } from '@ng-nest/ui/core';
|
|
5
5
|
import { DOCUMENT } from '@angular/common';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class XRippleDirective extends XRippleProperty {
|
|
8
|
+
get className() {
|
|
9
|
+
return `${XRipplePrefix} ${XRipplePrefix}-${this.type()}`;
|
|
10
|
+
}
|
|
8
11
|
constructor() {
|
|
9
|
-
super(
|
|
12
|
+
super();
|
|
10
13
|
this.unsub = new Subject();
|
|
11
14
|
this.renderer = inject(Renderer2);
|
|
12
15
|
this.elementRef = inject(ElementRef);
|
|
13
16
|
this.cdr = inject(ChangeDetectorRef);
|
|
14
17
|
this.document = inject(DOCUMENT);
|
|
18
|
+
this.downEvent = null;
|
|
19
|
+
this.upEvent = null;
|
|
20
|
+
effect(() => {
|
|
21
|
+
if (this.disabled()) {
|
|
22
|
+
this.downEvent?.unsubscribe();
|
|
23
|
+
this.upEvent?.unsubscribe();
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.downEvent?.unsubscribe();
|
|
27
|
+
this.upEvent?.unsubscribe();
|
|
28
|
+
this.setEvent();
|
|
29
|
+
}
|
|
30
|
+
});
|
|
15
31
|
}
|
|
16
|
-
|
|
17
|
-
|
|
32
|
+
ngOnDestroy() {
|
|
33
|
+
this.unsub.next();
|
|
34
|
+
this.unsub.complete();
|
|
18
35
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return;
|
|
22
|
-
fromEvent(this.elementRef.nativeElement, 'mousedown')
|
|
36
|
+
setEvent() {
|
|
37
|
+
this.downEvent = fromEvent(this.elementRef.nativeElement, 'mousedown')
|
|
23
38
|
.pipe(takeUntil(this.unsub))
|
|
24
39
|
.subscribe((event) => {
|
|
25
40
|
const eleRect = this.elementRef.nativeElement.getBoundingClientRect();
|
|
@@ -38,7 +53,7 @@ export class XRippleDirective extends XRippleProperty {
|
|
|
38
53
|
ripple.style.transform = 'scale(1)';
|
|
39
54
|
ripple.style.opacity = '0.3';
|
|
40
55
|
const downTime = new Date().getTime();
|
|
41
|
-
|
|
56
|
+
this.upEvent = fromEvent(this.document.documentElement, 'mouseup')
|
|
42
57
|
.pipe(takeUntil(this.unsub))
|
|
43
58
|
.subscribe(() => {
|
|
44
59
|
const upTime = new Date().getTime();
|
|
@@ -49,16 +64,12 @@ export class XRippleDirective extends XRippleProperty {
|
|
|
49
64
|
}
|
|
50
65
|
// TODO: use zoneless, renderer removeChild will not take effect immediately
|
|
51
66
|
this.cdr.markForCheck();
|
|
52
|
-
upEvent
|
|
67
|
+
this.upEvent?.unsubscribe();
|
|
53
68
|
}), takeUntil(this.unsub))
|
|
54
69
|
.subscribe();
|
|
55
70
|
});
|
|
56
71
|
});
|
|
57
72
|
}
|
|
58
|
-
ngOnDestroy() {
|
|
59
|
-
this.unsub.next();
|
|
60
|
-
this.unsub.complete();
|
|
61
|
-
}
|
|
62
73
|
distanceToFurthestCorner(x, y, rect) {
|
|
63
74
|
const distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));
|
|
64
75
|
const distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));
|
|
@@ -67,7 +78,7 @@ export class XRippleDirective extends XRippleProperty {
|
|
|
67
78
|
enforceStyleRecalculation(element) {
|
|
68
79
|
XComputed(element).getPropertyValue('opacity');
|
|
69
80
|
}
|
|
70
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XRippleDirective, deps:
|
|
81
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XRippleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
71
82
|
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: XRippleDirective, isStandalone: true, selector: "[x-ripple]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
|
|
72
83
|
}
|
|
73
84
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XRippleDirective, decorators: [{
|
|
@@ -76,8 +87,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
76
87
|
selector: `[${XRipplePrefix}]`,
|
|
77
88
|
standalone: true
|
|
78
89
|
}]
|
|
79
|
-
}], propDecorators: { className: [{
|
|
90
|
+
}], ctorParameters: () => [], propDecorators: { className: [{
|
|
80
91
|
type: HostBinding,
|
|
81
92
|
args: ['class']
|
|
82
93
|
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3JpcHBsZS9yaXBwbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFNBQVMsRUFFVCxNQUFNLEVBQ04sV0FBVyxFQUNYLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQU0zQyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQUpyRDs7UUFTVSxVQUFLLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUM1QixhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0E2RHJDO0lBckVDLElBQTBCLFNBQVM7UUFDakMsT0FBTyxHQUFHLGFBQWEsSUFBSSxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQVFELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFBRSxPQUFPO1FBRTVCLFNBQVMsQ0FBYSxJQUFJLENBQUMsVUFBVSxD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QUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIE9uSW5pdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBEaXJlY3RpdmUsXHJcbiAgT25EZXN0cm95LFxyXG4gIGluamVjdCxcclxuICBIb3N0QmluZGluZyxcclxuICBDaGFuZ2VEZXRlY3RvclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBkZWxheSwgZnJvbUV2ZW50LCBvZiwgU3ViamVjdCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWFJpcHBsZVByZWZpeCwgWFJpcHBsZVByb3BlcnR5IH0gZnJvbSAnLi9yaXBwbGUucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYQ29tcHV0ZWQgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6IGBbJHtYUmlwcGxlUHJlZml4fV1gLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFhSaXBwbGVEaXJlY3RpdmUgZXh0ZW5kcyBYUmlwcGxlUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGdldCBjbGFzc05hbWUoKSB7XHJcbiAgICByZXR1cm4gYCR7WFJpcHBsZVByZWZpeH0gJHtYUmlwcGxlUHJlZml4fS0ke3RoaXMudHlwZSgpfWA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVuc3ViID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XHJcbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG4gIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSByZXR1cm47XHJcblxyXG4gICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJylcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWIpKVxyXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGVsZVJlY3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICBjb25zdCByYWRpdXMgPSB0aGlzLmRpc3RhbmNlVG9GdXJ0aGVzdENvcm5lcihldmVudC54LCBldmVudC55LCBlbGVSZWN0KTtcclxuICAgICAgICBjb25zdCBvZmZzZXRYID0gZXZlbnQueCAtIGVsZVJlY3QubGVmdDtcclxuICAgICAgICBjb25zdCBvZmZzZXRZID0gZXZlbnQueSAtIGVsZVJlY3QudG9wO1xyXG4gICAgICAgIGNvbnN0IHJpcHBsZSA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhyaXBwbGUsICd4LXJpcHBsZS1lbGVtZW50Jyk7XHJcbiAgICAgICAgcmlwcGxlLnN0eWxlLmxlZnQgPSBgJHtvZmZzZXRYIC0gcmFkaXVzfXB4YDtcclxuICAgICAgICByaXBwbGUuc3R5bGUudG9wID0gYCR7b2Zmc2V0WSAtIHJhZGl1c31weGA7XHJcbiAgICAgICAgcmlwcGxlLnN0eWxlLmhlaWdodCA9IGAke3JhZGl1cyAqIDJ9cHhgO1xyXG4gICAgICAgIHJpcHBsZS5zdHlsZS53aWR0aCA9IGAke3JhZGl1cyAqIDJ9cHhgO1xyXG4gICAgICAgIHJpcHBsZS5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBgJHt0aGlzLmR1cmF0aW9uKCl9bXNgO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHJpcHBsZSk7XHJcbiAgICAgICAgdGhpcy5lbmZvcmNlU3R5bGVSZWNhbGN1bGF0aW9uKHJpcHBsZSk7XHJcbiAgICAgICAgcmlwcGxlLnN0eWxlLnRyYW5zZm9ybSA9ICdzY2FsZSgxKSc7XHJcbiAgICAgICAgcmlwcGxlLnN0eWxlLm9wYWNpdHkgPSAnMC4zJztcclxuICAgICAgICBjb25zdCBkb3duVGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG5cclxuICAgICAgICBjb25zdCB1cEV2ZW50ID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAnbW91c2V1cCcpXHJcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YikpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdXBUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIG9mKHRydWUpXHJcbiAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBkZWxheSh1cFRpbWUgLSBkb3duVGltZSA+IHRoaXMuZHVyYXRpb24oKSA/IDAgOiB0aGlzLmR1cmF0aW9uKCkgLSAodXBUaW1lIC0gZG93blRpbWUpKSxcclxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlbmRlcmVyLnBhcmVudE5vZGUocmlwcGxlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHJpcHBsZSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgLy8gVE9ETzogdXNlIHpvbmVsZXNzLCByZW5kZXJlciByZW1vdmVDaGlsZCB3aWxsIG5vdCB0YWtlIGVmZmVjdCBpbW1lZGlhdGVseVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgICAgICAgdXBFdmVudC51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YilcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnVuc3ViLm5leHQoKTtcclxuICAgIHRoaXMudW5zdWIuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGRpc3RhbmNlVG9GdXJ0aGVzdENvcm5lcih4OiBudW1iZXIsIHk6IG51bWJlciwgcmVjdDogRE9NUmVjdCkge1xyXG4gICAgY29uc3QgZGlzdFggPSBNYXRoLm1heChNYXRoLmFicyh4IC0gcmVjdC5sZWZ0KSwgTWF0aC5hYnMoeCAtIHJlY3QucmlnaHQpKTtcclxuICAgIGNvbnN0IGRpc3RZID0gTWF0aC5tYXgoTWF0aC5hYnMoeSAtIHJlY3QudG9wKSwgTWF0aC5hYnMoeSAtIHJlY3QuYm90dG9tKSk7XHJcbiAgICByZXR1cm4gTWF0aC5zcXJ0KGRpc3RYICogZGlzdFggKyBkaXN0WSAqIGRpc3RZKTtcclxuICB9XHJcblxyXG4gIGVuZm9yY2VTdHlsZVJlY2FsY3VsYXRpb24oZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcclxuICAgIFhDb21wdXRlZChlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCdvcGFjaXR5Jyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3JpcHBsZS9yaXBwbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFNBQVMsRUFFVCxNQUFNLEVBQ04sV0FBVyxFQUNYLGlCQUFpQixFQUNqQixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRixPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxlQUFlO0lBQ25ELElBQTBCLFNBQVM7UUFDakMsT0FBTyxHQUFHLGFBQWEsSUFBSSxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQVVEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFURixVQUFLLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUM1QixhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEMsY0FBUyxHQUF3QixJQUFJLENBQUM7UUFDdEMsWUFBTyxHQUF3QixJQUFJLENBQUM7UUFJbEMs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QUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDMUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxPQUFvQjtRQUM1QyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakQsQ0FBQztpSUFuRlUsZ0JBQWdCO3FIQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLElBQUksYUFBYSxHQUFHO29CQUM5QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7d0RBRTJCLFNBQVM7c0JBQWxDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIE9uRGVzdHJveSxcclxuICBpbmplY3QsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgZWZmZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGRlbGF5LCBmcm9tRXZlbnQsIG9mLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFhSaXBwbGVQcmVmaXgsIFhSaXBwbGVQcm9wZXJ0eSB9IGZyb20gJy4vcmlwcGxlLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWENvbXB1dGVkIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiBgWyR7WFJpcHBsZVByZWZpeH1dYCxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYUmlwcGxlRGlyZWN0aXZlIGV4dGVuZHMgWFJpcHBsZVByb3BlcnR5IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGNsYXNzTmFtZSgpIHtcclxuICAgIHJldHVybiBgJHtYUmlwcGxlUHJlZml4fSAke1hSaXBwbGVQcmVmaXh9LSR7dGhpcy50eXBlKCl9YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdW5zdWIgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XHJcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG4gIGRvd25FdmVudDogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgdXBFdmVudDogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHtcclxuICAgICAgICB0aGlzLmRvd25FdmVudD8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLnVwRXZlbnQ/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5kb3duRXZlbnQ/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy51cEV2ZW50Py51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuc2V0RXZlbnQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudW5zdWIubmV4dCgpO1xyXG4gICAgdGhpcy51bnN1Yi5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0RXZlbnQoKSB7XHJcbiAgICB0aGlzLmRvd25FdmVudCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3ViKSlcclxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCBlbGVSZWN0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgY29uc3QgcmFkaXVzID0gdGhpcy5kaXN0YW5jZVRvRnVydGhlc3RDb3JuZXIoZXZlbnQueCwgZXZlbnQueSwgZWxlUmVjdCk7XHJcbiAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IGV2ZW50LnggLSBlbGVSZWN0LmxlZnQ7XHJcbiAgICAgICAgY29uc3Qgb2Zmc2V0WSA9IGV2ZW50LnkgLSBlbGVSZWN0LnRvcDtcclxuICAgICAgICBjb25zdCByaXBwbGUgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MocmlwcGxlLCAneC1yaXBwbGUtZWxlbWVudCcpO1xyXG4gICAgICAgIHJpcHBsZS5zdHlsZS5sZWZ0ID0gYCR7b2Zmc2V0WCAtIHJhZGl1c31weGA7XHJcbiAgICAgICAgcmlwcGxlLnN0eWxlLnRvcCA9IGAke29mZnNldFkgLSByYWRpdXN9cHhgO1xyXG4gICAgICAgIHJpcHBsZS5zdHlsZS5oZWlnaHQgPSBgJHtyYWRpdXMgKiAyfXB4YDtcclxuICAgICAgICByaXBwbGUuc3R5bGUud2lkdGggPSBgJHtyYWRpdXMgKiAyfXB4YDtcclxuICAgICAgICByaXBwbGUuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gYCR7dGhpcy5kdXJhdGlvbigpfW1zYDtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCByaXBwbGUpO1xyXG4gICAgICAgIHRoaXMuZW5mb3JjZVN0eWxlUmVjYWxjdWxhdGlvbihyaXBwbGUpO1xyXG4gICAgICAgIHJpcHBsZS5zdHlsZS50cmFuc2Zvcm0gPSAnc2NhbGUoMSknO1xyXG4gICAgICAgIHJpcHBsZS5zdHlsZS5vcGFjaXR5ID0gJzAuMyc7XHJcbiAgICAgICAgY29uc3QgZG93blRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuXHJcbiAgICAgICAgdGhpcy51cEV2ZW50ID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAnbW91c2V1cCcpXHJcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YikpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdXBUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIG9mKHRydWUpXHJcbiAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBkZWxheSh1cFRpbWUgLSBkb3duVGltZSA+IHRoaXMuZHVyYXRpb24oKSA/IDAgOiB0aGlzLmR1cmF0aW9uKCkgLSAodXBUaW1lIC0gZG93blRpbWUpKSxcclxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlbmRlcmVyLnBhcmVudE5vZGUocmlwcGxlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHJpcHBsZSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgLy8gVE9ETzogdXNlIHpvbmVsZXNzLCByZW5kZXJlciByZW1vdmVDaGlsZCB3aWxsIG5vdCB0YWtlIGVmZmVjdCBpbW1lZGlhdGVseVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy51cEV2ZW50Py51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YilcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGlzdGFuY2VUb0Z1cnRoZXN0Q29ybmVyKHg6IG51bWJlciwgeTogbnVtYmVyLCByZWN0OiBET01SZWN0KSB7XHJcbiAgICBjb25zdCBkaXN0WCA9IE1hdGgubWF4KE1hdGguYWJzKHggLSByZWN0LmxlZnQpLCBNYXRoLmFicyh4IC0gcmVjdC5yaWdodCkpO1xyXG4gICAgY29uc3QgZGlzdFkgPSBNYXRoLm1heChNYXRoLmFicyh5IC0gcmVjdC50b3ApLCBNYXRoLmFicyh5IC0gcmVjdC5ib3R0b20pKTtcclxuICAgIHJldHVybiBNYXRoLnNxcnQoZGlzdFggKiBkaXN0WCArIGRpc3RZICogZGlzdFkpO1xyXG4gIH1cclxuXHJcbiAgZW5mb3JjZVN0eWxlUmVjYWxjdWxhdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCkge1xyXG4gICAgWENvbXB1dGVkKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ29wYWNpdHknKTtcclxuICB9XHJcbn1cclxuIl19
|