@ng-nest/ui 18.0.10 → 18.0.11
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/select/select.component.mjs +3 -4
- 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-select.mjs +2 -3
- package/fesm2022/ng-nest-ui-select.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 +146 -146
- 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=
|