@ng-nest/ui 18.0.7 → 18.0.8

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.
@@ -7,7 +7,7 @@ import { XButtonComponent, XButtonsComponent } from '@ng-nest/ui/button';
7
7
  import { XSelectComponent } from '@ng-nest/ui/select';
8
8
  import { XInputComponent } from '@ng-nest/ui/input';
9
9
  import { XOutletDirective } from '@ng-nest/ui/outlet';
10
- import { XToDataArray } from '@ng-nest/ui/core';
10
+ import { XIsChange, XToDataArray } from '@ng-nest/ui/core';
11
11
  import { XTooltipModule } from '@ng-nest/ui/tooltip';
12
12
  import { toSignal } from '@angular/core/rxjs-interop';
13
13
  import { map } from 'rxjs';
@@ -78,6 +78,10 @@ export class XPaginationComponent extends XPaginationProperty {
78
78
  ngOnInit() {
79
79
  this.inputSize.set(this.size().toString());
80
80
  }
81
+ ngOnChanges(changes) {
82
+ const { size } = changes;
83
+ XIsChange(size) && this.inputSize.set(this.size().toString());
84
+ }
81
85
  sizeChanged() {
82
86
  if (this.index() !== 1) {
83
87
  this.index.set(1);
@@ -180,7 +184,7 @@ export class XPaginationComponent extends XPaginationProperty {
180
184
  return this.index() === index;
181
185
  }
182
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 }); }
183
- /** @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, 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 [disabled]=\"disabled()\" plain flat [activated]=\"getActivated(item)\" (click)=\"jump(item)\">{{\r\n item\r\n }}</x-button>\r\n }\r\n <ng-container *xOutlet=\"nextTpl\"></ng-container>\r\n @if (showEllipsis() && !simple()) {\r\n <x-button\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 }); }
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 [disabled]=\"disabled()\" plain flat [activated]=\"getActivated(item)\" (click)=\"jump(item)\">{{\r\n item\r\n }}</x-button>\r\n }\r\n <ng-container *xOutlet=\"nextTpl\"></ng-container>\r\n @if (showEllipsis() && !simple()) {\r\n <x-button\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 }); }
184
188
  }
185
189
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XPaginationComponent, decorators: [{
186
190
  type: Component,
@@ -198,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
198
202
  type: HostBinding,
199
203
  args: ['class']
200
204
  }] } });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUV2QixNQUFNLEVBQ04sUUFBUSxFQUNSLFdBQVcsRUFDWCxVQUFVLEVBQ1YsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9FLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsR0FBRyxFQUFF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QUUsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3pCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzFCLENBQUM7YUFBTSxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEtBQUssQ0FBQztJQUNoQyxDQUFDO2lJQTFLVSxvQkFBb0I7cUhBQXBCLG9CQUFvQixvSkMxQ2pDLDB0SEF3SEEsbXlCRDVGSSxXQUFXLCtWQUNYLGdCQUFnQixxREFDaEIsaUJBQWlCLGlEQUNqQixTQUFTLDhDQUNULGdCQUFnQixxREFDaEIsZUFBZSxtREFDZixjQUFjLHNIQUNkLGdCQUFnQjs7MkZBT1Asb0JBQW9CO2tCQWxCaEMsU0FBUzsrQkFDRSxHQUFHLGlCQUFpQixFQUFFLGNBQ3BCLElBQUksV0FDUDt3QkFDUCxXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGdCQUFnQjtxQkFDakIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFTekIsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgT25Jbml0LFxyXG4gIHNpZ25hbCxcclxuICBjb21wdXRlZCxcclxuICBIb3N0QmluZGluZyxcclxuICBFbGVtZW50UmVmLFxyXG4gIGluamVjdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYUGFnaW5hdGlvblByZWZpeCwgWFBhZ2luYXRpb25Qcm9wZXJ0eSB9IGZyb20gJy4vcGFnaW5hdGlvbi5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJMThuUGFnaW5hdGlvbiwgWEkxOG5QaXBlLCBYSTE4blNlcnZpY2UsIHpoX0NOIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcbmltcG9ydCB7IEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFhCdXR0b25Db21wb25lbnQsIFhCdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvYnV0dG9uJztcclxuaW1wb3J0IHsgWFNlbGVjdENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3NlbGVjdCc7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgWE91dGxldERpcmVjdGl2ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL291dGxldCc7XHJcbmltcG9ydCB7IFhUb0RhdGFBcnJheSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BuZy1uZXN0L3VpL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFBhZ2luYXRpb25QcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgWEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFhCdXR0b25zQ29tcG9uZW50LFxyXG4gICAgWEkxOG5QaXBlLFxyXG4gICAgWFNlbGVjdENvbXBvbmVudCxcclxuICAgIFhJbnB1dENvbXBvbmVudCxcclxuICAgIFhUb29sdGlwTW9kdWxlLFxyXG4gICAgWE91dGxldERpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N0eWxlL2luZGV4LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYUGFnaW5hdGlvbkNvbXBvbmVudCBleHRlbmRzIFhQYWdpbmF0aW9uUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XHJcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KFhJMThuU2VydmljZSk7XHJcbiAgbG9jYWxlID0gdG9TaWduYWwodGhpcy5pMThuLmxvY2FsZUNoYW5nZS5waXBlKG1hcCgoeCkgPT4geC5wYWdpbmF0aW9uIGFzIFhJMThuUGFnaW5hdGlvbikpLCB7XHJcbiAgICBpbml0aWFsVmFsdWU6IHpoX0NOLnBhZ2luYXRpb25cclxuICB9KTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTmFtZSA9IFhQYWdpbmF0aW9uUHJlZml4O1xyXG5cclxuICBpbmRleEZpcnN0ID0gc2lnbmFsKDEpO1xyXG4gIGluZGV4TGFzdCA9IHNpZ25hbCgxKTtcclxuICBqdW1wUGFnZSA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcclxuICBpbnB1dFNpemUgPSBzaWduYWw8c3RyaW5nPignJyk7XHJcblxyXG4gIGxhc3RJbmRleCA9IGNvbXB1dGVkKCgpID0+IE1hdGguY2VpbCh0aGlzLnRvdGFsKCkgLyB0aGlzLnNpemUoKSkgfHwgMSk7XHJcbiAgbGVmdERpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pbmRleCgpID09PSAxIHx8IHRoaXMudG90YWwoKSA9PT0gMCk7XHJcbiAgcmlnaHREaXNhYmxlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW5kZXgoKSA9PT0gdGhpcy5sYXN0SW5kZXgoKSB8fCB0aGlzLnRvdGFsKCkgPT09IDApO1xyXG4gIGZpcnN0QWN0aXZhdGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pbmRleCgpID09PSAxKTtcclxuICBsYXN0QWN0aXZhdGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pbmRleCgpID09PSB0aGlzLmxhc3RJbmRleCgpKTtcclxuXHJcbiAgaW5kZXhlcyA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGNvbnN0IGluZGV4ZXM6IG51bWJlcltdID0gW107XHJcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5pbmRleCgpIC0gMTtcclxuICAgIGNvbnN0IG1heFNpemUgPSB0aGlzLnBhZ2VMaW5rU2l6ZSgpO1xyXG4gICAgY29uc3QgcGFnZXMgPSBNYXRoLm1pbihtYXhTaXplLCB0aGlzLmxhc3RJbmRleCgpKTtcclxuICAgIGxldCBzdGFydCA9IE1hdGgubWF4KDAsIE1hdGguY2VpbChjdXJyZW50IC0gcGFnZXMgLyAyKSksXHJcbiAgICAgIGVuZCA9IE1hdGgubWluKHRoaXMubGFzdEluZGV4KCkgLSAxLCBzdGFydCArIHBhZ2VzIC0gMSk7XHJcbiAgICB2YXIgZGVsdGEgPSBtYXhTaXplIC0gKGVuZCAtIHN0YXJ0ICsgMSk7XHJcbiAgICBzdGFydCA9IE1hdGgubWF4KDAsIHN0YXJ0IC0gZGVsdGEpO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSBzdGFydDsgaSA8PSBlbmQ7IGkrKykge1xyXG4gICAgICBpbmRleGVzLnB1c2goaSArIDEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGluZGV4ZXM7XHJcbiAgfSk7XHJcblxyXG4gIHNpemVEYXRhU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gWFRvRGF0YUFycmF5KHRoaXMuc2l6ZURhdGEoKSkpO1xyXG5cclxuICBpbnB1dFNpemVUb29sdGlwID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRTaXplVG9vbHRpcFRleHQoKSkgcmV0dXJuIHRoaXMuaW5wdXRTaXplVG9vbHRpcFRleHQoKTtcclxuICAgIGlmICh0aGlzLmlucHV0SW5kZXhTaXplU3VyZVR5cGUoKSA9PT0gJ2VudGVyJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUoKS5pbnB1dFNpemVUb29sdGlwRW50ZXI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pbnB1dEluZGV4U2l6ZVN1cmVUeXBlKCkgPT09ICdibHVyJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUoKS5pbnB1dFNpemVUb29sdGlwQmx1cjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlucHV0SW5kZXhTaXplU3VyZVR5cGUoKSA9PT0gJ2JvdGgnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZSgpLmlucHV0U2l6ZVRvb2x0aXBCb3RoO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH0pO1xyXG5cclxuICBqdW1wVG9vbHRpcCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGlmICh0aGlzLmp1bXBUb29sdGlwVGV4dCgpKSByZXR1cm4gdGhpcy5qdW1wVG9vbHRpcFRleHQoKTtcclxuICAgIGlmICh0aGlzLmlucHV0SW5kZXhTaXplU3VyZVR5cGUoKSA9PT0gJ2VudGVyJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUoKS5qdW1wVG9vbHRpcEVudGVyO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaW5wdXRJbmRleFNpemVTdXJlVHlwZSgpID09PSAnYmx1cicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKCkuanVtcFRvb2x0aXBCbHVyO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaW5wdXRJbmRleFNpemVTdXJlVHlwZSgpID09PSAnYm90aCcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKCkuanVtcFRvb2x0aXBCb3RoO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH0pO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaW5wdXRTaXplLnNldCh0aGlzLnNpemUoKS50b1N0cmluZygpKTtcclxuICB9XHJcblxyXG4gIHNpemVDaGFuZ2VkKCkge1xyXG4gICAgaWYgKHRoaXMuaW5kZXgoKSAhPT0gMSkge1xyXG4gICAgICB0aGlzLmluZGV4LnNldCgxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGp1bXAoaW5kZXg6IG51bWJlciwgaXNEaWZmID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGl4ID0gdGhpcy52YWxpZGF0ZUluZGV4KGlzRGlmZiA/IHRoaXMuaW5kZXgoKSArIGluZGV4IDogaW5kZXgpO1xyXG4gICAgaWYgKGl4ICE9PSB0aGlzLmluZGV4KCkpIHtcclxuICAgICAgdGhpcy5pbmRleC5zZXQoaXgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25KdW1wQmx1cihfZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICghWydibHVyJywgJ2JvdGgnXS5pbmNsdWRlcyh0aGlzLmlucHV0SW5kZXhTaXplU3VyZVR5cGUoKSkpIHJldHVybjtcclxuICAgIGNvbnN0IGp1bXBQYWdlID0gdGhpcy5qdW1wUGFnZSgpLnRyaW0oKTtcclxuICAgIGNvbnN0IHBhZ2UgPSBOdW1iZXIoanVtcFBhZ2UpO1xyXG4gICAgdGhpcy5vbkp1bXBQYWdlQ2hhbmdlKHBhZ2UpO1xyXG4gIH1cclxuXHJcbiAgb25KdW1wS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKCFbJ2VudGVyJywgJ2JvdGgnXS5pbmNsdWRlcyh0aGlzLmlucHV0SW5kZXhTaXplU3VyZVR5cGUoKSkpIHJldHVybjtcclxuICAgIGNvbnN0IGp1bXBQYWdlID0gdGhpcy5qdW1wUGFnZSgpLnRyaW0oKTtcclxuICAgIGlmIChqdW1wUGFnZSAhPT0gJycgJiYgZXZlbnQua2V5Q29kZSA9PT0gRU5URVIpIHtcclxuICAgICAgY29uc3QgcGFnZSA9IE51bWJlcihqdW1wUGFnZSk7XHJcbiAgICAgIHRoaXMub25KdW1wUGFnZUNoYW5nZShwYWdlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSnVtcFBhZ2VDaGFuZ2UocGFnZTogbnVtYmVyKSB7XHJcbiAgICBpZiAocGFnZSA8PSB0aGlzLmluZGV4Rmlyc3QoKSkge1xyXG4gICAgICB0aGlzLmp1bXAodGhpcy5pbmRleEZpcnN0KCkpO1xyXG4gICAgfSBlbHNlIGlmIChwYWdlID49IHRoaXMubGFzdEluZGV4KCkpIHtcclxuICAgICAgdGhpcy5qdW1wKHRoaXMubGFzdEluZGV4KCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5qdW1wKHBhZ2UpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5qdW1wUGFnZS5zZXQoJycpO1xyXG4gIH1cclxuXHJcbiAgb25TaW1wbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5pbmRleCgpICE9PSBudWxsICYmIGV2ZW50LmtleUNvZGUgPT09IEVOVEVSKSB7XHJcbiAgICAgIGlmICh0aGlzLmluZGV4KCkgJSAxICE9PSAwKSB7XHJcbiAgICAgICAgdGhpcy5pbmRleC51cGRhdGUoKHgpID0+IE1hdGgucm91bmQoeCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpc05hTih0aGlzLmluZGV4KCkpIHx8IHRoaXMuaW5kZXgoKSA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuaW5kZXguc2V0KDEpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmluZGV4KCkgPD0gdGhpcy5pbmRleEZpcnN0KCkpIHtcclxuICAgICAgICB0aGlzLmluZGV4LnNldCh0aGlzLmluZGV4Rmlyc3QoKSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pbmRleCgpID49IHRoaXMubGFzdEluZGV4KCkpIHtcclxuICAgICAgICB0aGlzLmluZGV4LnNldCh0aGlzLmxhc3RJbmRleCgpKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmp1bXAodGhpcy5pbmRleCgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSW5wdXRTaXplQmx1cihfZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICghWydibHVyJywgJ2JvdGgnXS5pbmNsdWRlcyh0aGlzLmlucHV0SW5kZXhTaXplU3VyZVR5cGUoKSkpIHJldHVybjtcclxuICAgIGNvbnN0IGlucHV0U2l6ZSA9IHRoaXMuaW5wdXRTaXplKCkudHJpbSgpO1xyXG4gICAgY29uc3QgaW5wdXROdW1iZXIgPSBOdW1iZXIoaW5wdXRTaXplKTtcclxuICAgIHRoaXMub25TaXplQ2hhbmdlKGlucHV0TnVtYmVyKTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXRTaXplS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKCFbJ2VudGVyJywgJ2JvdGgnXS5pbmNsdWRlcyh0aGlzLmlucHV0SW5kZXhTaXplU3VyZVR5cGUoKSkpIHJldHVybjtcclxuICAgIGNvbnN0IGlucHV0U2l6ZSA9IHRoaXMuaW5wdXRTaXplKCkudHJpbSgpO1xyXG4gICAgaWYgKGlucHV0U2l6ZSAhPT0gJycgJiYgZXZlbnQua2V5Q29kZSA9PT0gRU5URVIpIHtcclxuICAgICAgY29uc3QgaW5wdXROdW1iZXIgPSBOdW1iZXIoaW5wdXRTaXplKTtcclxuICAgICAgdGhpcy5vblNpemVDaGFuZ2UoaW5wdXROdW1iZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TaXplQ2hhbmdlKHNpemU6IG51bWJlcikge1xyXG4gICAgaWYgKHNpemUgJSAxICE9PSAwKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRTaXplLnNldChgJHtNYXRoLnJvdW5kKHNpemUpfWApO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzTmFOKHNpemUpKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRTaXplLnNldChgJHt0aGlzLnNpemUoKX1gKTtcclxuICAgIH1cclxuICAgIGlmIChzaXplIDw9IDApIHtcclxuICAgICAgdGhpcy5pbnB1dFNpemUuc2V0KGAke3RoaXMuc2l6ZSgpfWApO1xyXG4gICAgfSBlbHNlIGlmIChzaXplICE9PSB0aGlzLnNpemUoKSkge1xyXG4gICAgICB0aGlzLnNpemUuc2V0KHNpemUpO1xyXG4gICAgICB0aGlzLnNpemVDaGFuZ2VkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUluZGV4KHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgaWYgKHZhbHVlID4gdGhpcy5sYXN0SW5kZXgoKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5sYXN0SW5kZXgoKTtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgPCAxKSB7XHJcbiAgICAgIHJldHVybiAxO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0QWN0aXZhdGVkKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmluZGV4KCkgPT09IGluZGV4O1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKHNpbXBsZSgpKSB7XHJcbiAgPGRpdiBjbGFzcz1cIngtcGFnaW5hdGlvbi1zaW1wbGVcIj5cclxuICAgIDx4LWlucHV0XHJcbiAgICAgIFtib3JkZXJlZF09XCJzaG93QmFja2dyb3VuZCgpXCJcclxuICAgICAgW2JlZm9yZV09XCJwcmV2aW91c1RwbFwiXHJcbiAgICAgIFthZnRlcl09XCJuZXh0VHBsXCJcclxuICAgICAgW3N0eWxlLndpZHRoXT1cInNpbXBsZUluZGV4V2lkdGgoKVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwiaW5kZXhcIlxyXG4gICAgICAoeEtleWRvd24pPVwib25TaW1wbGVLZXlkb3duKCRldmVudClcIlxyXG4gICAgPjwveC1pbnB1dD5cclxuICAgIDxzcGFuPi88L3NwYW4+XHJcbiAgICA8c3Bhbj57eyBsYXN0SW5kZXgoKSB9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxufSBAZWxzZSB7XHJcbiAgPHgtYnV0dG9ucyBbc3BhY2VdPVwic3BhY2UoKVwiIFtoaWRkZW5Cb3JkZXJdPVwiIXNob3dCYWNrZ3JvdW5kKClcIiBbYm94U2hhZG93XT1cImZhbHNlXCI+XHJcbiAgICBAaWYgKHNob3dFbGxpcHNpcygpKSB7XHJcbiAgICAgIDx4LWJ1dHRvblxyXG4gICAgICAgIFtpY29uXT1cIidmdG8tY2hldnJvbnMtbGVmdCdcIlxyXG4gICAgICAgIFt0aXRsZV09XCIncGFnaW5hdGlvbi5maXJzdCcgfCB4STE4blwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgZmlyc3RBY3RpdmF0ZWQoKVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImp1bXAoMSlcIlxyXG4gICAgICAgIHBsYWluXHJcbiAgICAgICAgZmxhdFxyXG4gICAgICA+PC94LWJ1dHRvbj5cclxuICAgIH1cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJwcmV2aW91c1RwbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgQGZvciAoaXRlbSBvZiBpbmRleGVzKCk7IHRyYWNrIGl0ZW0pIHtcclxuICAgICAgPHgtYnV0dG9uIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCIgcGxhaW4gZmxhdCBbYWN0aXZhdGVkXT1cImdldEFjdGl2YXRlZChpdGVtKVwiIChjbGljayk9XCJqdW1wKGl0ZW0pXCI+e3tcclxuICAgICAgICBpdGVtXHJcbiAgICAgIH19PC94LWJ1dHRvbj5cclxuICAgIH1cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJuZXh0VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICBAaWYgKHNob3dFbGxpcHNpcygpICYmICFzaW1wbGUoKSkge1xyXG4gICAgICA8eC1idXR0b25cclxuICAgICAgICBbaWNvbl09XCInZnRvLWNoZXZyb25zLXJpZ2h0J1wiXHJcbiAgICAgICAgW3RpdGxlXT1cIidwYWdpbmF0aW9uLmxhc3QnIHwgeEkxOG5cIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpIHx8IGxhc3RBY3RpdmF0ZWQoKVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImp1bXAobGFzdEluZGV4KCkpXCJcclxuICAgICAgICBwbGFpblxyXG4gICAgICAgIGZsYXRcclxuICAgICAgPjwveC1idXR0b24+XHJcbiAgICB9XHJcbiAgPC94LWJ1dHRvbnM+XHJcbn1cclxuQGlmIChzaG93U2l6ZSgpICYmICFzaG93SW5wdXRTaXplKCkpIHtcclxuICA8eC1zZWxlY3RcclxuICAgIFtzdHlsZS53aWR0aF09XCJzaXplV2lkdGgoKVwiXHJcbiAgICBjbGFzcz1cIngtcGFnaW5hdGlvbi1zaXplXCJcclxuICAgIFtkYXRhXT1cInNpemVEYXRhU2lnbmFsKClcIlxyXG4gICAgW2NsZWFyYWJsZV09XCJmYWxzZVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXHJcbiAgICBbYm9yZGVyZWRdPVwic2hvd0JhY2tncm91bmQoKVwiXHJcbiAgICBbbm9kZVRwbF09XCJub2RlVHBsXCJcclxuICAgIFsobmdNb2RlbCldPVwic2l6ZVwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJzaXplQ2hhbmdlZCgpXCJcclxuICA+PC94LXNlbGVjdD5cclxufVxyXG5AaWYgKHNob3dJbnB1dFNpemUoKSkge1xyXG4gIDxkaXYgY2xhc3M9XCJ4LXBhZ2luYXRpb24taW5wdXQtc2l6ZVwiPlxyXG4gICAgPHgtaW5wdXRcclxuICAgICAgeC10b29sdGlwXHJcbiAgICAgIFtjb250ZW50XT1cImlucHV0U2l6ZVRvb2x0aXAoKVwiXHJcbiAgICAgIFtzdHlsZS53aWR0aF09XCJpbnB1dFNpemVXaWR0aCgpXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxyXG4gICAgICBbYm9yZGVyZWRdPVwic2hvd0JhY2tncm91bmQoKVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRTaXplXCJcclxuICAgICAgKHhCbHVyKT1cIm9uSW5wdXRTaXplQmx1cigkZXZlbnQpXCJcclxuICAgICAgKHhLZXlkb3duKT1cIm9uSW5wdXRTaXplS2V5ZG93bigkZXZlbnQpXCJcclxuICAgID48L3gtaW5wdXQ+XHJcbiAgICA8c3Bhbj4ge3sgJ3BhZ2luYXRpb24uc2l6ZVBhZ2UnIHwgeEkxOG4gfX0gPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG59XHJcbkBpZiAoc2hvd0p1bXAoKSAmJiAhc2ltcGxlKCkpIHtcclxuICA8ZGl2IGNsYXNzPVwieC1wYWdpbmF0aW9uLWp1bXBcIj5cclxuICAgIDxzcGFuPnt7ICdwYWdpbmF0aW9uLmp1bXAnIHwgeEkxOG4gfX08L3NwYW4+XHJcbiAgICA8eC1pbnB1dFxyXG4gICAgICB4LXRvb2x0aXBcclxuICAgICAgW2NvbnRlbnRdPVwianVtcFRvb2x0aXAoKVwiXHJcbiAgICAgIFtib3JkZXJlZF09XCJzaG93QmFja2dyb3VuZCgpXCJcclxuICAgICAgW3N0eWxlLndpZHRoXT1cImp1bXBXaWR0aCgpXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJqdW1wUGFnZVwiXHJcbiAgICAgICh4Qmx1cik9XCJvbkp1bXBCbHVyKCRldmVudClcIlxyXG4gICAgICAoeEtleWRvd24pPVwib25KdW1wS2V5ZG93bigkZXZlbnQpXCJcclxuICAgID48L3gtaW5wdXQ+XHJcbiAgPC9kaXY+XHJcbn1cclxuQGlmIChzaG93VG90YWwoKSkge1xyXG4gIDx4LWJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiIHBsYWluIGZsYXQgY2xhc3M9XCJ4LXBhZ2luYXRpb24tdG90YWxcIj5cclxuICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJ0b3RhbFRwbCgpOyBjb250ZXh0OiB7ICR0b3RhbDogdG90YWwoKSB9XCI+XHJcbiAgICAgIHt7ICdwYWdpbmF0aW9uLnRvdGFsJyB8IHhJMThuIH19IHt7IHRvdGFsKCkgfX0ge3sgJ3BhZ2luYXRpb24uaXRlbScgfCB4STE4biB9fVxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC94LWJ1dHRvbj5cclxufVxyXG48bmctdGVtcGxhdGUgI3ByZXZpb3VzVHBsPlxyXG4gIDx4LWJ1dHRvblxyXG4gICAgW2ljb25dPVwiJ2Z0by1jaGV2cm9uLWxlZnQnXCJcclxuICAgIFt0aXRsZV09XCIncGFnaW5hdGlvbi5wcmV2aW91cycgfCB4STE4blwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKSB8fCBsZWZ0RGlzYWJsZWQoKVwiXHJcbiAgICAoY2xpY2spPVwianVtcCgtMSwgdHJ1ZSlcIlxyXG4gICAgcGxhaW5cclxuICAgIGZsYXRcclxuICA+PC94LWJ1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbmV4dFRwbD5cclxuICA8eC1idXR0b25cclxuICAgIFtpY29uXT1cIidmdG8tY2hldnJvbi1yaWdodCdcIlxyXG4gICAgW3RpdGxlXT1cIidwYWdpbmF0aW9uLm5leHQnIHwgeEkxOG5cIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgcmlnaHREaXNhYmxlZCgpXCJcclxuICAgIChjbGljayk9XCJqdW1wKDEsIHRydWUpXCJcclxuICAgIHBsYWluXHJcbiAgICBmbGF0XHJcbiAgPjwveC1idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI25vZGVUcGwgbGV0LW5vZGU9XCIkbm9kZVwiPlxyXG4gIEBpZiAobm9kZSkge1xyXG4gICAge3sgbm9kZT8ubGFiZWwgfX0ge3sgJ3BhZ2luYXRpb24uc2l6ZVBhZ2UnIHwgeEkxOG4gfX1cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
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
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { model, input, Component, inject, ElementRef, signal, computed, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, NgModule } from '@angular/core';
3
- import { XPropertyFunction, XToNumber, XToBoolean, XToCssPixelValue, XToDataArray } from '@ng-nest/ui/core';
3
+ import { XPropertyFunction, XToNumber, XToBoolean, XToCssPixelValue, XToDataArray, XIsChange } from '@ng-nest/ui/core';
4
4
  import { XI18nService, zh_CN, XI18nPipe } from '@ng-nest/ui/i18n';
5
5
  import { ENTER } from '@angular/cdk/keycodes';
6
6
  import * as i1 from '@angular/forms';
@@ -224,6 +224,10 @@ class XPaginationComponent extends XPaginationProperty {
224
224
  ngOnInit() {
225
225
  this.inputSize.set(this.size().toString());
226
226
  }
227
+ ngOnChanges(changes) {
228
+ const { size } = changes;
229
+ XIsChange(size) && this.inputSize.set(this.size().toString());
230
+ }
227
231
  sizeChanged() {
228
232
  if (this.index() !== 1) {
229
233
  this.index.set(1);
@@ -326,7 +330,7 @@ class XPaginationComponent extends XPaginationProperty {
326
330
  return this.index() === index;
327
331
  }
328
332
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XPaginationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
329
- /** @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, 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 [disabled]=\"disabled()\" plain flat [activated]=\"getActivated(item)\" (click)=\"jump(item)\">{{\r\n item\r\n }}</x-button>\r\n }\r\n <ng-container *xOutlet=\"nextTpl\"></ng-container>\r\n @if (showEllipsis() && !simple()) {\r\n <x-button\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 }); }
333
+ /** @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 [disabled]=\"disabled()\" plain flat [activated]=\"getActivated(item)\" (click)=\"jump(item)\">{{\r\n item\r\n }}</x-button>\r\n }\r\n <ng-container *xOutlet=\"nextTpl\"></ng-container>\r\n @if (showEllipsis() && !simple()) {\r\n <x-button\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 }); }
330
334
  }
331
335
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XPaginationComponent, decorators: [{
332
336
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-pagination.mjs","sources":["../../../../lib/ng-nest/ui/pagination/pagination.property.ts","../../../../lib/ng-nest/ui/pagination/pagination.component.ts","../../../../lib/ng-nest/ui/pagination/pagination.component.html","../../../../lib/ng-nest/ui/pagination/pagination.module.ts","../../../../lib/ng-nest/ui/pagination/ng-nest-ui-pagination.ts"],"sourcesContent":["import { XPropertyFunction, XToNumber, XToBoolean, XToCssPixelValue } from '@ng-nest/ui/core';\r\nimport { Component, model, input } from '@angular/core';\r\nimport type { XSelectNode } from '@ng-nest/ui/select';\r\nimport type { XNumber, XQuery, XBoolean, XTemplate, XDataArray } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Pagination\r\n * @selector x-pagination\r\n * @decorator component\r\n */\r\nexport const XPaginationPrefix = 'x-pagination';\r\nconst X_PAGINATION_CONFIG_NAME = 'pagination';\r\n\r\n/**\r\n * @zh_CN 分页选择条数\r\n * @en_US Sub-selection\r\n */\r\nexport const XPaginationSizeData = [10, 20, 50, 100];\r\n\r\n/**\r\n * Pagination Property\r\n */\r\n@Component({ selector: `${XPaginationPrefix}-property`, template: '' })\r\nexport class XPaginationProperty extends XPropertyFunction(X_PAGINATION_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 当前页码\r\n * @en_US Current page number\r\n */\r\n readonly index = model<number>(this.config?.index ?? 1);\r\n /**\r\n * @zh_CN 每页显示条数\r\n * @en_US Number of items displayed per page\r\n */\r\n readonly size = model<number>(this.config?.size ?? 10);\r\n /**\r\n * @zh_CN 总数\r\n * @en_US Total\r\n */\r\n readonly total = input<number, XNumber>(0, { transform: XToNumber });\r\n /**\r\n * @zh_CN 查询条件\r\n * @en_US Query conditions\r\n */\r\n readonly query = model<XQuery>({});\r\n /**\r\n * @zh_CN 最多显示的分页数量\r\n * @en_US The largest number of pages display\r\n */\r\n readonly pageLinkSize = input<number, XNumber>(this.config?.pageLinkSize ?? 5, { transform: XToNumber });\r\n /**\r\n * @zh_CN 显示首尾页跳转\r\n * @en_US Display the first and last page\r\n */\r\n readonly showEllipsis = input<boolean, XBoolean>(this.config?.showEllipsis ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示总条数\r\n * @en_US Display the total\r\n */\r\n readonly showTotal = input<boolean, XBoolean>(this.config?.showTotal ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 按钮间距\r\n * @en_US Button spacing\r\n */\r\n readonly space = input<string, XNumber>(this.config?.space ?? '0.25rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 添加背景色\r\n * @en_US Show background\r\n */\r\n readonly showBackground = input<boolean, XBoolean>(this.config?.showBackground ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示分页条数\r\n * @en_US Show size\r\n */\r\n readonly showSize = input<boolean, XBoolean>(this.config?.showSize ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 分页条数选择框的宽度\r\n * @en_US size with select\r\n */\r\n readonly sizeWidth = input<string, XNumber>(this.config?.sizeWidth ?? '6.875rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 显示输入分页框(不能跟下拉选项同时使用),默认使用回车确认改变\r\n * @en_US Display the number of input page breaks (cannot exist with the drop-down options of page breaks). default to using Enter to confirm changes\r\n */\r\n readonly showInputSize = input<boolean, XBoolean>(this.config?.showInputSize ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 输入分页框的 tooltip 提示信息,默认根据输入确认改变的方式来显示\r\n * @en_US Enter the tooltip prompt information for the pagination box, which will be displayed by default based on the confirmation of the input\r\n */\r\n readonly inputSizeTooltipText = input<string>(this.config?.inputSizeTooltipText ?? '');\r\n /**\r\n * @zh_CN 分页条数输入框的宽度\r\n * @en_US size with input\r\n */\r\n readonly inputSizeWidth = input<string, XNumber>(this.config?.sizeWidth ?? '3.125rem', {\r\n transform: XToCssPixelValue\r\n });\r\n /**\r\n * @zh_CN 分页选择的数据项\r\n * @en_US Paging choose items of data\r\n */\r\n readonly sizeData = input<XDataArray<XSelectNode>>(this.config?.sizeData ?? XPaginationSizeData);\r\n /**\r\n * @zh_CN 禁用整个分页\r\n * @en_US disabled\r\n */\r\n readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示跳转输入框,默认使用回车确认改变\r\n * @en_US Show size. default to using Enter to confirm changes\r\n */\r\n readonly showJump = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 跳转输入框的 tooltip 提示信息,默认根据输入确认改变的方式来显示\r\n * @en_US The tooltip prompt information for jumping to the input box is displayed by default based on the confirmation of input changes\r\n */\r\n readonly jumpTooltipText = input<string>(this.config?.jumpTooltipText ?? '');\r\n /**\r\n * @zh_CN 跳转页的宽度\r\n * @en_US size with\r\n */\r\n readonly jumpWidth = input<string, XNumber>(this.config?.jumpWidth ?? '3.125rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 总数自定义模板\r\n * @en_US Total template\r\n */\r\n readonly totalTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 简单分页\r\n * @en_US Simple\r\n */\r\n readonly simple = input<boolean, XBoolean>(this.config?.simple ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 简单分页输入框宽度\r\n * @en_US Simple index with\r\n */\r\n readonly simpleIndexWidth = input<string, XNumber>(this.config?.simpleIndexWidth ?? '8.125rem', {\r\n transform: XToCssPixelValue\r\n });\r\n /**\r\n * @zh_CN 输入确认改变的方式,针对输入分页大小和输入跳转页\r\n * @en_US The method for confirming changes in input is based on the input page size and input jump page\r\n */\r\n readonly inputIndexSizeSureType = input<XPaginationInputIndexSizeSureType>(\r\n this.config?.inputIndexSizeSureType ?? 'enter'\r\n );\r\n}\r\n\r\n/**\r\n * @zh_CN 输入确认改变的方式,针对输入分页大小和输入跳转页\r\n * - `'enter'` : 输入后使用回车键确认\r\n * - `'blur'` : 输入后失去焦点后确认\r\n * - `'both'` : 上面2种都可以触发确认操作\r\n * @en_US The method for confirming changes in input is based on the input page size and input jump page\r\n * - `'enter'` : After entering, use the enter key to confirm\r\n * - `'blur'` : Confirm after losing focus after input\r\n * - `'both'` : Both of the above can trigger confirmation operations\r\n */\r\nexport type XPaginationInputIndexSizeSureType = 'enter' | 'blur' | 'both';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnInit,\r\n signal,\r\n computed,\r\n HostBinding,\r\n ElementRef,\r\n inject\r\n} from '@angular/core';\r\nimport { XPaginationPrefix, XPaginationProperty } from './pagination.property';\r\nimport { XI18nPagination, XI18nPipe, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { ENTER } from '@angular/cdk/keycodes';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XButtonComponent, XButtonsComponent } from '@ng-nest/ui/button';\r\nimport { XSelectComponent } from '@ng-nest/ui/select';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XToDataArray } from '@ng-nest/ui/core';\r\nimport { XTooltipModule } from '@ng-nest/ui/tooltip';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { map } from 'rxjs';\r\n\r\n@Component({\r\n selector: `${XPaginationPrefix}`,\r\n standalone: true,\r\n imports: [\r\n FormsModule,\r\n XButtonComponent,\r\n XButtonsComponent,\r\n XI18nPipe,\r\n XSelectComponent,\r\n XInputComponent,\r\n XTooltipModule,\r\n XOutletDirective\r\n ],\r\n templateUrl: './pagination.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XPaginationComponent extends XPaginationProperty implements OnInit {\r\n elementRef = inject(ElementRef);\r\n private i18n = inject(XI18nService);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.pagination as XI18nPagination)), {\r\n initialValue: zh_CN.pagination\r\n });\r\n\r\n @HostBinding('class') className = XPaginationPrefix;\r\n\r\n indexFirst = signal(1);\r\n indexLast = signal(1);\r\n jumpPage = signal<string>('');\r\n inputSize = signal<string>('');\r\n\r\n lastIndex = computed(() => Math.ceil(this.total() / this.size()) || 1);\r\n leftDisabled = computed(() => this.index() === 1 || this.total() === 0);\r\n rightDisabled = computed(() => this.index() === this.lastIndex() || this.total() === 0);\r\n firstActivated = computed(() => this.index() === 1);\r\n lastActivated = computed(() => this.index() === this.lastIndex());\r\n\r\n indexes = computed(() => {\r\n const indexes: number[] = [];\r\n const current = this.index() - 1;\r\n const maxSize = this.pageLinkSize();\r\n const pages = Math.min(maxSize, this.lastIndex());\r\n let start = Math.max(0, Math.ceil(current - pages / 2)),\r\n end = Math.min(this.lastIndex() - 1, start + pages - 1);\r\n var delta = maxSize - (end - start + 1);\r\n start = Math.max(0, start - delta);\r\n\r\n for (let i = start; i <= end; i++) {\r\n indexes.push(i + 1);\r\n }\r\n return indexes;\r\n });\r\n\r\n sizeDataSignal = computed(() => XToDataArray(this.sizeData()));\r\n\r\n inputSizeTooltip = computed(() => {\r\n if (this.inputSizeTooltipText()) return this.inputSizeTooltipText();\r\n if (this.inputIndexSizeSureType() === 'enter') {\r\n return this.locale().inputSizeTooltipEnter;\r\n }\r\n if (this.inputIndexSizeSureType() === 'blur') {\r\n return this.locale().inputSizeTooltipBlur;\r\n }\r\n if (this.inputIndexSizeSureType() === 'both') {\r\n return this.locale().inputSizeTooltipBoth;\r\n }\r\n return '';\r\n });\r\n\r\n jumpTooltip = computed(() => {\r\n if (this.jumpTooltipText()) return this.jumpTooltipText();\r\n if (this.inputIndexSizeSureType() === 'enter') {\r\n return this.locale().jumpTooltipEnter;\r\n }\r\n if (this.inputIndexSizeSureType() === 'blur') {\r\n return this.locale().jumpTooltipBlur;\r\n }\r\n if (this.inputIndexSizeSureType() === 'both') {\r\n return this.locale().jumpTooltipBoth;\r\n }\r\n return '';\r\n });\r\n\r\n ngOnInit() {\r\n this.inputSize.set(this.size().toString());\r\n }\r\n\r\n sizeChanged() {\r\n if (this.index() !== 1) {\r\n this.index.set(1);\r\n }\r\n }\r\n\r\n jump(index: number, isDiff = false) {\r\n const ix = this.validateIndex(isDiff ? this.index() + index : index);\r\n if (ix !== this.index()) {\r\n this.index.set(ix);\r\n }\r\n }\r\n\r\n onJumpBlur(_event: MouseEvent) {\r\n if (!['blur', 'both'].includes(this.inputIndexSizeSureType())) return;\r\n const jumpPage = this.jumpPage().trim();\r\n const page = Number(jumpPage);\r\n this.onJumpPageChange(page);\r\n }\r\n\r\n onJumpKeydown(event: KeyboardEvent) {\r\n if (!['enter', 'both'].includes(this.inputIndexSizeSureType())) return;\r\n const jumpPage = this.jumpPage().trim();\r\n if (jumpPage !== '' && event.keyCode === ENTER) {\r\n const page = Number(jumpPage);\r\n this.onJumpPageChange(page);\r\n }\r\n }\r\n\r\n onJumpPageChange(page: number) {\r\n if (page <= this.indexFirst()) {\r\n this.jump(this.indexFirst());\r\n } else if (page >= this.lastIndex()) {\r\n this.jump(this.lastIndex());\r\n } else {\r\n this.jump(page);\r\n }\r\n this.jumpPage.set('');\r\n }\r\n\r\n onSimpleKeydown(event: KeyboardEvent) {\r\n if (this.index() !== null && event.keyCode === ENTER) {\r\n if (this.index() % 1 !== 0) {\r\n this.index.update((x) => Math.round(x));\r\n }\r\n if (isNaN(this.index()) || this.index() === 0) {\r\n this.index.set(1);\r\n }\r\n if (this.index() <= this.indexFirst()) {\r\n this.index.set(this.indexFirst());\r\n } else if (this.index() >= this.lastIndex()) {\r\n this.index.set(this.lastIndex());\r\n }\r\n this.jump(this.index());\r\n }\r\n }\r\n\r\n onInputSizeBlur(_event: MouseEvent) {\r\n if (!['blur', 'both'].includes(this.inputIndexSizeSureType())) return;\r\n const inputSize = this.inputSize().trim();\r\n const inputNumber = Number(inputSize);\r\n this.onSizeChange(inputNumber);\r\n }\r\n\r\n onInputSizeKeydown(event: KeyboardEvent) {\r\n if (!['enter', 'both'].includes(this.inputIndexSizeSureType())) return;\r\n const inputSize = this.inputSize().trim();\r\n if (inputSize !== '' && event.keyCode === ENTER) {\r\n const inputNumber = Number(inputSize);\r\n this.onSizeChange(inputNumber);\r\n }\r\n }\r\n\r\n onSizeChange(size: number) {\r\n if (size % 1 !== 0) {\r\n this.inputSize.set(`${Math.round(size)}`);\r\n }\r\n if (isNaN(size)) {\r\n this.inputSize.set(`${this.size()}`);\r\n }\r\n if (size <= 0) {\r\n this.inputSize.set(`${this.size()}`);\r\n } else if (size !== this.size()) {\r\n this.size.set(size);\r\n this.sizeChanged();\r\n }\r\n }\r\n\r\n validateIndex(value: number): number {\r\n if (value > this.lastIndex()) {\r\n return this.lastIndex();\r\n } else if (value < 1) {\r\n return 1;\r\n } else {\r\n return value;\r\n }\r\n }\r\n\r\n getActivated(index: number) {\r\n return this.index() === index;\r\n }\r\n}\r\n","@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 [disabled]=\"disabled()\" plain flat [activated]=\"getActivated(item)\" (click)=\"jump(item)\">{{\r\n item\r\n }}</x-button>\r\n }\r\n <ng-container *xOutlet=\"nextTpl\"></ng-container>\r\n @if (showEllipsis() && !simple()) {\r\n <x-button\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","import { NgModule } from '@angular/core';\r\nimport { XPaginationComponent } from './pagination.component';\r\n\r\n@NgModule({\r\n exports: [XPaginationComponent],\r\n imports: [XPaginationComponent]\r\n})\r\nexport class XPaginationModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-pagination.mjs","sources":["../../../../lib/ng-nest/ui/pagination/pagination.property.ts","../../../../lib/ng-nest/ui/pagination/pagination.component.ts","../../../../lib/ng-nest/ui/pagination/pagination.component.html","../../../../lib/ng-nest/ui/pagination/pagination.module.ts","../../../../lib/ng-nest/ui/pagination/ng-nest-ui-pagination.ts"],"sourcesContent":["import { XPropertyFunction, XToNumber, XToBoolean, XToCssPixelValue } from '@ng-nest/ui/core';\r\nimport { Component, model, input } from '@angular/core';\r\nimport type { XSelectNode } from '@ng-nest/ui/select';\r\nimport type { XNumber, XQuery, XBoolean, XTemplate, XDataArray } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Pagination\r\n * @selector x-pagination\r\n * @decorator component\r\n */\r\nexport const XPaginationPrefix = 'x-pagination';\r\nconst X_PAGINATION_CONFIG_NAME = 'pagination';\r\n\r\n/**\r\n * @zh_CN 分页选择条数\r\n * @en_US Sub-selection\r\n */\r\nexport const XPaginationSizeData = [10, 20, 50, 100];\r\n\r\n/**\r\n * Pagination Property\r\n */\r\n@Component({ selector: `${XPaginationPrefix}-property`, template: '' })\r\nexport class XPaginationProperty extends XPropertyFunction(X_PAGINATION_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 当前页码\r\n * @en_US Current page number\r\n */\r\n readonly index = model<number>(this.config?.index ?? 1);\r\n /**\r\n * @zh_CN 每页显示条数\r\n * @en_US Number of items displayed per page\r\n */\r\n readonly size = model<number>(this.config?.size ?? 10);\r\n /**\r\n * @zh_CN 总数\r\n * @en_US Total\r\n */\r\n readonly total = input<number, XNumber>(0, { transform: XToNumber });\r\n /**\r\n * @zh_CN 查询条件\r\n * @en_US Query conditions\r\n */\r\n readonly query = model<XQuery>({});\r\n /**\r\n * @zh_CN 最多显示的分页数量\r\n * @en_US The largest number of pages display\r\n */\r\n readonly pageLinkSize = input<number, XNumber>(this.config?.pageLinkSize ?? 5, { transform: XToNumber });\r\n /**\r\n * @zh_CN 显示首尾页跳转\r\n * @en_US Display the first and last page\r\n */\r\n readonly showEllipsis = input<boolean, XBoolean>(this.config?.showEllipsis ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示总条数\r\n * @en_US Display the total\r\n */\r\n readonly showTotal = input<boolean, XBoolean>(this.config?.showTotal ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 按钮间距\r\n * @en_US Button spacing\r\n */\r\n readonly space = input<string, XNumber>(this.config?.space ?? '0.25rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 添加背景色\r\n * @en_US Show background\r\n */\r\n readonly showBackground = input<boolean, XBoolean>(this.config?.showBackground ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示分页条数\r\n * @en_US Show size\r\n */\r\n readonly showSize = input<boolean, XBoolean>(this.config?.showSize ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 分页条数选择框的宽度\r\n * @en_US size with select\r\n */\r\n readonly sizeWidth = input<string, XNumber>(this.config?.sizeWidth ?? '6.875rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 显示输入分页框(不能跟下拉选项同时使用),默认使用回车确认改变\r\n * @en_US Display the number of input page breaks (cannot exist with the drop-down options of page breaks). default to using Enter to confirm changes\r\n */\r\n readonly showInputSize = input<boolean, XBoolean>(this.config?.showInputSize ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 输入分页框的 tooltip 提示信息,默认根据输入确认改变的方式来显示\r\n * @en_US Enter the tooltip prompt information for the pagination box, which will be displayed by default based on the confirmation of the input\r\n */\r\n readonly inputSizeTooltipText = input<string>(this.config?.inputSizeTooltipText ?? '');\r\n /**\r\n * @zh_CN 分页条数输入框的宽度\r\n * @en_US size with input\r\n */\r\n readonly inputSizeWidth = input<string, XNumber>(this.config?.sizeWidth ?? '3.125rem', {\r\n transform: XToCssPixelValue\r\n });\r\n /**\r\n * @zh_CN 分页选择的数据项\r\n * @en_US Paging choose items of data\r\n */\r\n readonly sizeData = input<XDataArray<XSelectNode>>(this.config?.sizeData ?? XPaginationSizeData);\r\n /**\r\n * @zh_CN 禁用整个分页\r\n * @en_US disabled\r\n */\r\n readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示跳转输入框,默认使用回车确认改变\r\n * @en_US Show size. default to using Enter to confirm changes\r\n */\r\n readonly showJump = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 跳转输入框的 tooltip 提示信息,默认根据输入确认改变的方式来显示\r\n * @en_US The tooltip prompt information for jumping to the input box is displayed by default based on the confirmation of input changes\r\n */\r\n readonly jumpTooltipText = input<string>(this.config?.jumpTooltipText ?? '');\r\n /**\r\n * @zh_CN 跳转页的宽度\r\n * @en_US size with\r\n */\r\n readonly jumpWidth = input<string, XNumber>(this.config?.jumpWidth ?? '3.125rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 总数自定义模板\r\n * @en_US Total template\r\n */\r\n readonly totalTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 简单分页\r\n * @en_US Simple\r\n */\r\n readonly simple = input<boolean, XBoolean>(this.config?.simple ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 简单分页输入框宽度\r\n * @en_US Simple index with\r\n */\r\n readonly simpleIndexWidth = input<string, XNumber>(this.config?.simpleIndexWidth ?? '8.125rem', {\r\n transform: XToCssPixelValue\r\n });\r\n /**\r\n * @zh_CN 输入确认改变的方式,针对输入分页大小和输入跳转页\r\n * @en_US The method for confirming changes in input is based on the input page size and input jump page\r\n */\r\n readonly inputIndexSizeSureType = input<XPaginationInputIndexSizeSureType>(\r\n this.config?.inputIndexSizeSureType ?? 'enter'\r\n );\r\n}\r\n\r\n/**\r\n * @zh_CN 输入确认改变的方式,针对输入分页大小和输入跳转页\r\n * - `'enter'` : 输入后使用回车键确认\r\n * - `'blur'` : 输入后失去焦点后确认\r\n * - `'both'` : 上面2种都可以触发确认操作\r\n * @en_US The method for confirming changes in input is based on the input page size and input jump page\r\n * - `'enter'` : After entering, use the enter key to confirm\r\n * - `'blur'` : Confirm after losing focus after input\r\n * - `'both'` : Both of the above can trigger confirmation operations\r\n */\r\nexport type XPaginationInputIndexSizeSureType = 'enter' | 'blur' | 'both';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnInit,\r\n signal,\r\n computed,\r\n HostBinding,\r\n ElementRef,\r\n inject,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XPaginationPrefix, XPaginationProperty } from './pagination.property';\r\nimport { XI18nPagination, XI18nPipe, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { ENTER } from '@angular/cdk/keycodes';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XButtonComponent, XButtonsComponent } from '@ng-nest/ui/button';\r\nimport { XSelectComponent } from '@ng-nest/ui/select';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XIsChange, XToDataArray } from '@ng-nest/ui/core';\r\nimport { XTooltipModule } from '@ng-nest/ui/tooltip';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { map } from 'rxjs';\r\n\r\n@Component({\r\n selector: `${XPaginationPrefix}`,\r\n standalone: true,\r\n imports: [\r\n FormsModule,\r\n XButtonComponent,\r\n XButtonsComponent,\r\n XI18nPipe,\r\n XSelectComponent,\r\n XInputComponent,\r\n XTooltipModule,\r\n XOutletDirective\r\n ],\r\n templateUrl: './pagination.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XPaginationComponent extends XPaginationProperty implements OnInit {\r\n elementRef = inject(ElementRef);\r\n private i18n = inject(XI18nService);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.pagination as XI18nPagination)), {\r\n initialValue: zh_CN.pagination\r\n });\r\n\r\n @HostBinding('class') className = XPaginationPrefix;\r\n\r\n indexFirst = signal(1);\r\n indexLast = signal(1);\r\n jumpPage = signal<string>('');\r\n inputSize = signal<string>('');\r\n\r\n lastIndex = computed(() => Math.ceil(this.total() / this.size()) || 1);\r\n leftDisabled = computed(() => this.index() === 1 || this.total() === 0);\r\n rightDisabled = computed(() => this.index() === this.lastIndex() || this.total() === 0);\r\n firstActivated = computed(() => this.index() === 1);\r\n lastActivated = computed(() => this.index() === this.lastIndex());\r\n\r\n indexes = computed(() => {\r\n const indexes: number[] = [];\r\n const current = this.index() - 1;\r\n const maxSize = this.pageLinkSize();\r\n const pages = Math.min(maxSize, this.lastIndex());\r\n let start = Math.max(0, Math.ceil(current - pages / 2)),\r\n end = Math.min(this.lastIndex() - 1, start + pages - 1);\r\n var delta = maxSize - (end - start + 1);\r\n start = Math.max(0, start - delta);\r\n\r\n for (let i = start; i <= end; i++) {\r\n indexes.push(i + 1);\r\n }\r\n return indexes;\r\n });\r\n\r\n sizeDataSignal = computed(() => XToDataArray(this.sizeData()));\r\n\r\n inputSizeTooltip = computed(() => {\r\n if (this.inputSizeTooltipText()) return this.inputSizeTooltipText();\r\n if (this.inputIndexSizeSureType() === 'enter') {\r\n return this.locale().inputSizeTooltipEnter;\r\n }\r\n if (this.inputIndexSizeSureType() === 'blur') {\r\n return this.locale().inputSizeTooltipBlur;\r\n }\r\n if (this.inputIndexSizeSureType() === 'both') {\r\n return this.locale().inputSizeTooltipBoth;\r\n }\r\n return '';\r\n });\r\n\r\n jumpTooltip = computed(() => {\r\n if (this.jumpTooltipText()) return this.jumpTooltipText();\r\n if (this.inputIndexSizeSureType() === 'enter') {\r\n return this.locale().jumpTooltipEnter;\r\n }\r\n if (this.inputIndexSizeSureType() === 'blur') {\r\n return this.locale().jumpTooltipBlur;\r\n }\r\n if (this.inputIndexSizeSureType() === 'both') {\r\n return this.locale().jumpTooltipBoth;\r\n }\r\n return '';\r\n });\r\n\r\n ngOnInit() {\r\n this.inputSize.set(this.size().toString());\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const { size } = changes;\r\n XIsChange(size) && this.inputSize.set(this.size().toString());\r\n }\r\n\r\n sizeChanged() {\r\n if (this.index() !== 1) {\r\n this.index.set(1);\r\n }\r\n }\r\n\r\n jump(index: number, isDiff = false) {\r\n const ix = this.validateIndex(isDiff ? this.index() + index : index);\r\n if (ix !== this.index()) {\r\n this.index.set(ix);\r\n }\r\n }\r\n\r\n onJumpBlur(_event: MouseEvent) {\r\n if (!['blur', 'both'].includes(this.inputIndexSizeSureType())) return;\r\n const jumpPage = this.jumpPage().trim();\r\n const page = Number(jumpPage);\r\n this.onJumpPageChange(page);\r\n }\r\n\r\n onJumpKeydown(event: KeyboardEvent) {\r\n if (!['enter', 'both'].includes(this.inputIndexSizeSureType())) return;\r\n const jumpPage = this.jumpPage().trim();\r\n if (jumpPage !== '' && event.keyCode === ENTER) {\r\n const page = Number(jumpPage);\r\n this.onJumpPageChange(page);\r\n }\r\n }\r\n\r\n onJumpPageChange(page: number) {\r\n if (page <= this.indexFirst()) {\r\n this.jump(this.indexFirst());\r\n } else if (page >= this.lastIndex()) {\r\n this.jump(this.lastIndex());\r\n } else {\r\n this.jump(page);\r\n }\r\n this.jumpPage.set('');\r\n }\r\n\r\n onSimpleKeydown(event: KeyboardEvent) {\r\n if (this.index() !== null && event.keyCode === ENTER) {\r\n if (this.index() % 1 !== 0) {\r\n this.index.update((x) => Math.round(x));\r\n }\r\n if (isNaN(this.index()) || this.index() === 0) {\r\n this.index.set(1);\r\n }\r\n if (this.index() <= this.indexFirst()) {\r\n this.index.set(this.indexFirst());\r\n } else if (this.index() >= this.lastIndex()) {\r\n this.index.set(this.lastIndex());\r\n }\r\n this.jump(this.index());\r\n }\r\n }\r\n\r\n onInputSizeBlur(_event: MouseEvent) {\r\n if (!['blur', 'both'].includes(this.inputIndexSizeSureType())) return;\r\n const inputSize = this.inputSize().trim();\r\n const inputNumber = Number(inputSize);\r\n this.onSizeChange(inputNumber);\r\n }\r\n\r\n onInputSizeKeydown(event: KeyboardEvent) {\r\n if (!['enter', 'both'].includes(this.inputIndexSizeSureType())) return;\r\n const inputSize = this.inputSize().trim();\r\n if (inputSize !== '' && event.keyCode === ENTER) {\r\n const inputNumber = Number(inputSize);\r\n this.onSizeChange(inputNumber);\r\n }\r\n }\r\n\r\n onSizeChange(size: number) {\r\n if (size % 1 !== 0) {\r\n this.inputSize.set(`${Math.round(size)}`);\r\n }\r\n if (isNaN(size)) {\r\n this.inputSize.set(`${this.size()}`);\r\n }\r\n if (size <= 0) {\r\n this.inputSize.set(`${this.size()}`);\r\n } else if (size !== this.size()) {\r\n this.size.set(size);\r\n this.sizeChanged();\r\n }\r\n }\r\n\r\n validateIndex(value: number): number {\r\n if (value > this.lastIndex()) {\r\n return this.lastIndex();\r\n } else if (value < 1) {\r\n return 1;\r\n } else {\r\n return value;\r\n }\r\n }\r\n\r\n getActivated(index: number) {\r\n return this.index() === index;\r\n }\r\n}\r\n","@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 [disabled]=\"disabled()\" plain flat [activated]=\"getActivated(item)\" (click)=\"jump(item)\">{{\r\n item\r\n }}</x-button>\r\n }\r\n <ng-container *xOutlet=\"nextTpl\"></ng-container>\r\n @if (showEllipsis() && !simple()) {\r\n <x-button\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","import { NgModule } from '@angular/core';\r\nimport { XPaginationComponent } from './pagination.component';\r\n\r\n@NgModule({\r\n exports: [XPaginationComponent],\r\n imports: [XPaginationComponent]\r\n})\r\nexport class XPaginationModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-nest/ui",
3
- "version": "18.0.7",
3
+ "version": "18.0.8",
4
4
  "license": "MIT",
5
5
  "homepage": "https://www.ngnest.com",
6
6
  "author": "ng-nest",
@@ -47,35 +47,29 @@
47
47
  "esm": "./esm2022/alert/ng-nest-ui-alert.mjs",
48
48
  "default": "./fesm2022/ng-nest-ui-alert.mjs"
49
49
  },
50
- "./anchor": {
51
- "types": "./anchor/index.d.ts",
52
- "esm2022": "./esm2022/anchor/ng-nest-ui-anchor.mjs",
53
- "esm": "./esm2022/anchor/ng-nest-ui-anchor.mjs",
54
- "default": "./fesm2022/ng-nest-ui-anchor.mjs"
55
- },
56
- "./auto-complete": {
57
- "types": "./auto-complete/index.d.ts",
58
- "esm2022": "./esm2022/auto-complete/ng-nest-ui-auto-complete.mjs",
59
- "esm": "./esm2022/auto-complete/ng-nest-ui-auto-complete.mjs",
60
- "default": "./fesm2022/ng-nest-ui-auto-complete.mjs"
61
- },
62
50
  "./api": {
63
51
  "types": "./api/index.d.ts",
64
52
  "esm2022": "./esm2022/api/ng-nest-ui-api.mjs",
65
53
  "esm": "./esm2022/api/ng-nest-ui-api.mjs",
66
54
  "default": "./fesm2022/ng-nest-ui-api.mjs"
67
55
  },
56
+ "./anchor": {
57
+ "types": "./anchor/index.d.ts",
58
+ "esm2022": "./esm2022/anchor/ng-nest-ui-anchor.mjs",
59
+ "esm": "./esm2022/anchor/ng-nest-ui-anchor.mjs",
60
+ "default": "./fesm2022/ng-nest-ui-anchor.mjs"
61
+ },
68
62
  "./avatar": {
69
63
  "types": "./avatar/index.d.ts",
70
64
  "esm2022": "./esm2022/avatar/ng-nest-ui-avatar.mjs",
71
65
  "esm": "./esm2022/avatar/ng-nest-ui-avatar.mjs",
72
66
  "default": "./fesm2022/ng-nest-ui-avatar.mjs"
73
67
  },
74
- "./badge": {
75
- "types": "./badge/index.d.ts",
76
- "esm2022": "./esm2022/badge/ng-nest-ui-badge.mjs",
77
- "esm": "./esm2022/badge/ng-nest-ui-badge.mjs",
78
- "default": "./fesm2022/ng-nest-ui-badge.mjs"
68
+ "./auto-complete": {
69
+ "types": "./auto-complete/index.d.ts",
70
+ "esm2022": "./esm2022/auto-complete/ng-nest-ui-auto-complete.mjs",
71
+ "esm": "./esm2022/auto-complete/ng-nest-ui-auto-complete.mjs",
72
+ "default": "./fesm2022/ng-nest-ui-auto-complete.mjs"
79
73
  },
80
74
  "./back-top": {
81
75
  "types": "./back-top/index.d.ts",
@@ -83,6 +77,12 @@
83
77
  "esm": "./esm2022/back-top/ng-nest-ui-back-top.mjs",
84
78
  "default": "./fesm2022/ng-nest-ui-back-top.mjs"
85
79
  },
80
+ "./badge": {
81
+ "types": "./badge/index.d.ts",
82
+ "esm2022": "./esm2022/badge/ng-nest-ui-badge.mjs",
83
+ "esm": "./esm2022/badge/ng-nest-ui-badge.mjs",
84
+ "default": "./fesm2022/ng-nest-ui-badge.mjs"
85
+ },
86
86
  "./base-form": {
87
87
  "types": "./base-form/index.d.ts",
88
88
  "esm2022": "./esm2022/base-form/ng-nest-ui-base-form.mjs",
@@ -119,47 +119,35 @@
119
119
  "esm": "./esm2022/cascade/ng-nest-ui-cascade.mjs",
120
120
  "default": "./fesm2022/ng-nest-ui-cascade.mjs"
121
121
  },
122
- "./collapse": {
123
- "types": "./collapse/index.d.ts",
124
- "esm2022": "./esm2022/collapse/ng-nest-ui-collapse.mjs",
125
- "esm": "./esm2022/collapse/ng-nest-ui-collapse.mjs",
126
- "default": "./fesm2022/ng-nest-ui-collapse.mjs"
127
- },
128
122
  "./checkbox": {
129
123
  "types": "./checkbox/index.d.ts",
130
124
  "esm2022": "./esm2022/checkbox/ng-nest-ui-checkbox.mjs",
131
125
  "esm": "./esm2022/checkbox/ng-nest-ui-checkbox.mjs",
132
126
  "default": "./fesm2022/ng-nest-ui-checkbox.mjs"
133
127
  },
128
+ "./collapse": {
129
+ "types": "./collapse/index.d.ts",
130
+ "esm2022": "./esm2022/collapse/ng-nest-ui-collapse.mjs",
131
+ "esm": "./esm2022/collapse/ng-nest-ui-collapse.mjs",
132
+ "default": "./fesm2022/ng-nest-ui-collapse.mjs"
133
+ },
134
134
  "./color": {
135
135
  "types": "./color/index.d.ts",
136
136
  "esm2022": "./esm2022/color/ng-nest-ui-color.mjs",
137
137
  "esm": "./esm2022/color/ng-nest-ui-color.mjs",
138
138
  "default": "./fesm2022/ng-nest-ui-color.mjs"
139
139
  },
140
- "./color-picker": {
141
- "types": "./color-picker/index.d.ts",
142
- "esm2022": "./esm2022/color-picker/ng-nest-ui-color-picker.mjs",
143
- "esm": "./esm2022/color-picker/ng-nest-ui-color-picker.mjs",
144
- "default": "./fesm2022/ng-nest-ui-color-picker.mjs"
145
- },
146
140
  "./comment": {
147
141
  "types": "./comment/index.d.ts",
148
142
  "esm2022": "./esm2022/comment/ng-nest-ui-comment.mjs",
149
143
  "esm": "./esm2022/comment/ng-nest-ui-comment.mjs",
150
144
  "default": "./fesm2022/ng-nest-ui-comment.mjs"
151
145
  },
152
- "./container": {
153
- "types": "./container/index.d.ts",
154
- "esm2022": "./esm2022/container/ng-nest-ui-container.mjs",
155
- "esm": "./esm2022/container/ng-nest-ui-container.mjs",
156
- "default": "./fesm2022/ng-nest-ui-container.mjs"
157
- },
158
- "./core": {
159
- "types": "./core/index.d.ts",
160
- "esm2022": "./esm2022/core/ng-nest-ui-core.mjs",
161
- "esm": "./esm2022/core/ng-nest-ui-core.mjs",
162
- "default": "./fesm2022/ng-nest-ui-core.mjs"
146
+ "./color-picker": {
147
+ "types": "./color-picker/index.d.ts",
148
+ "esm2022": "./esm2022/color-picker/ng-nest-ui-color-picker.mjs",
149
+ "esm": "./esm2022/color-picker/ng-nest-ui-color-picker.mjs",
150
+ "default": "./fesm2022/ng-nest-ui-color-picker.mjs"
163
151
  },
164
152
  "./crumb": {
165
153
  "types": "./crumb/index.d.ts",
@@ -167,11 +155,17 @@
167
155
  "esm": "./esm2022/crumb/ng-nest-ui-crumb.mjs",
168
156
  "default": "./fesm2022/ng-nest-ui-crumb.mjs"
169
157
  },
170
- "./date-picker": {
171
- "types": "./date-picker/index.d.ts",
172
- "esm2022": "./esm2022/date-picker/ng-nest-ui-date-picker.mjs",
173
- "esm": "./esm2022/date-picker/ng-nest-ui-date-picker.mjs",
174
- "default": "./fesm2022/ng-nest-ui-date-picker.mjs"
158
+ "./core": {
159
+ "types": "./core/index.d.ts",
160
+ "esm2022": "./esm2022/core/ng-nest-ui-core.mjs",
161
+ "esm": "./esm2022/core/ng-nest-ui-core.mjs",
162
+ "default": "./fesm2022/ng-nest-ui-core.mjs"
163
+ },
164
+ "./container": {
165
+ "types": "./container/index.d.ts",
166
+ "esm2022": "./esm2022/container/ng-nest-ui-container.mjs",
167
+ "esm": "./esm2022/container/ng-nest-ui-container.mjs",
168
+ "default": "./fesm2022/ng-nest-ui-container.mjs"
175
169
  },
176
170
  "./description": {
177
171
  "types": "./description/index.d.ts",
@@ -185,11 +179,11 @@
185
179
  "esm": "./esm2022/dialog/ng-nest-ui-dialog.mjs",
186
180
  "default": "./fesm2022/ng-nest-ui-dialog.mjs"
187
181
  },
188
- "./doc": {
189
- "types": "./doc/index.d.ts",
190
- "esm2022": "./esm2022/doc/ng-nest-ui-doc.mjs",
191
- "esm": "./esm2022/doc/ng-nest-ui-doc.mjs",
192
- "default": "./fesm2022/ng-nest-ui-doc.mjs"
182
+ "./date-picker": {
183
+ "types": "./date-picker/index.d.ts",
184
+ "esm2022": "./esm2022/date-picker/ng-nest-ui-date-picker.mjs",
185
+ "esm": "./esm2022/date-picker/ng-nest-ui-date-picker.mjs",
186
+ "default": "./fesm2022/ng-nest-ui-date-picker.mjs"
193
187
  },
194
188
  "./drag": {
195
189
  "types": "./drag/index.d.ts",
@@ -197,18 +191,18 @@
197
191
  "esm": "./esm2022/drag/ng-nest-ui-drag.mjs",
198
192
  "default": "./fesm2022/ng-nest-ui-drag.mjs"
199
193
  },
200
- "./dropdown": {
201
- "types": "./dropdown/index.d.ts",
202
- "esm2022": "./esm2022/dropdown/ng-nest-ui-dropdown.mjs",
203
- "esm": "./esm2022/dropdown/ng-nest-ui-dropdown.mjs",
204
- "default": "./fesm2022/ng-nest-ui-dropdown.mjs"
205
- },
206
194
  "./drawer": {
207
195
  "types": "./drawer/index.d.ts",
208
196
  "esm2022": "./esm2022/drawer/ng-nest-ui-drawer.mjs",
209
197
  "esm": "./esm2022/drawer/ng-nest-ui-drawer.mjs",
210
198
  "default": "./fesm2022/ng-nest-ui-drawer.mjs"
211
199
  },
200
+ "./doc": {
201
+ "types": "./doc/index.d.ts",
202
+ "esm2022": "./esm2022/doc/ng-nest-ui-doc.mjs",
203
+ "esm": "./esm2022/doc/ng-nest-ui-doc.mjs",
204
+ "default": "./fesm2022/ng-nest-ui-doc.mjs"
205
+ },
212
206
  "./empty": {
213
207
  "types": "./empty/index.d.ts",
214
208
  "esm2022": "./esm2022/empty/ng-nest-ui-empty.mjs",
@@ -221,11 +215,11 @@
221
215
  "esm": "./esm2022/examples/ng-nest-ui-examples.mjs",
222
216
  "default": "./fesm2022/ng-nest-ui-examples.mjs"
223
217
  },
224
- "./find": {
225
- "types": "./find/index.d.ts",
226
- "esm2022": "./esm2022/find/ng-nest-ui-find.mjs",
227
- "esm": "./esm2022/find/ng-nest-ui-find.mjs",
228
- "default": "./fesm2022/ng-nest-ui-find.mjs"
218
+ "./dropdown": {
219
+ "types": "./dropdown/index.d.ts",
220
+ "esm2022": "./esm2022/dropdown/ng-nest-ui-dropdown.mjs",
221
+ "esm": "./esm2022/dropdown/ng-nest-ui-dropdown.mjs",
222
+ "default": "./fesm2022/ng-nest-ui-dropdown.mjs"
229
223
  },
230
224
  "./form": {
231
225
  "types": "./form/index.d.ts",
@@ -233,11 +227,11 @@
233
227
  "esm": "./esm2022/form/ng-nest-ui-form.mjs",
234
228
  "default": "./fesm2022/ng-nest-ui-form.mjs"
235
229
  },
236
- "./highlight": {
237
- "types": "./highlight/index.d.ts",
238
- "esm2022": "./esm2022/highlight/ng-nest-ui-highlight.mjs",
239
- "esm": "./esm2022/highlight/ng-nest-ui-highlight.mjs",
240
- "default": "./fesm2022/ng-nest-ui-highlight.mjs"
230
+ "./find": {
231
+ "types": "./find/index.d.ts",
232
+ "esm2022": "./esm2022/find/ng-nest-ui-find.mjs",
233
+ "esm": "./esm2022/find/ng-nest-ui-find.mjs",
234
+ "default": "./fesm2022/ng-nest-ui-find.mjs"
241
235
  },
242
236
  "./i18n": {
243
237
  "types": "./i18n/index.d.ts",
@@ -251,6 +245,18 @@
251
245
  "esm": "./esm2022/icon/ng-nest-ui-icon.mjs",
252
246
  "default": "./fesm2022/ng-nest-ui-icon.mjs"
253
247
  },
248
+ "./highlight": {
249
+ "types": "./highlight/index.d.ts",
250
+ "esm2022": "./esm2022/highlight/ng-nest-ui-highlight.mjs",
251
+ "esm": "./esm2022/highlight/ng-nest-ui-highlight.mjs",
252
+ "default": "./fesm2022/ng-nest-ui-highlight.mjs"
253
+ },
254
+ "./inner": {
255
+ "types": "./inner/index.d.ts",
256
+ "esm2022": "./esm2022/inner/ng-nest-ui-inner.mjs",
257
+ "esm": "./esm2022/inner/ng-nest-ui-inner.mjs",
258
+ "default": "./fesm2022/ng-nest-ui-inner.mjs"
259
+ },
254
260
  "./image": {
255
261
  "types": "./image/index.d.ts",
256
262
  "esm2022": "./esm2022/image/ng-nest-ui-image.mjs",
@@ -263,11 +269,11 @@
263
269
  "esm": "./esm2022/input-number/ng-nest-ui-input-number.mjs",
264
270
  "default": "./fesm2022/ng-nest-ui-input-number.mjs"
265
271
  },
266
- "./inner": {
267
- "types": "./inner/index.d.ts",
268
- "esm2022": "./esm2022/inner/ng-nest-ui-inner.mjs",
269
- "esm": "./esm2022/inner/ng-nest-ui-inner.mjs",
270
- "default": "./fesm2022/ng-nest-ui-inner.mjs"
272
+ "./layout": {
273
+ "types": "./layout/index.d.ts",
274
+ "esm2022": "./esm2022/layout/ng-nest-ui-layout.mjs",
275
+ "esm": "./esm2022/layout/ng-nest-ui-layout.mjs",
276
+ "default": "./fesm2022/ng-nest-ui-layout.mjs"
271
277
  },
272
278
  "./input": {
273
279
  "types": "./input/index.d.ts",
@@ -281,12 +287,6 @@
281
287
  "esm": "./esm2022/keyword/ng-nest-ui-keyword.mjs",
282
288
  "default": "./fesm2022/ng-nest-ui-keyword.mjs"
283
289
  },
284
- "./layout": {
285
- "types": "./layout/index.d.ts",
286
- "esm2022": "./esm2022/layout/ng-nest-ui-layout.mjs",
287
- "esm": "./esm2022/layout/ng-nest-ui-layout.mjs",
288
- "default": "./fesm2022/ng-nest-ui-layout.mjs"
289
- },
290
290
  "./link": {
291
291
  "types": "./link/index.d.ts",
292
292
  "esm2022": "./esm2022/link/ng-nest-ui-link.mjs",
@@ -299,29 +299,17 @@
299
299
  "esm": "./esm2022/list/ng-nest-ui-list.mjs",
300
300
  "default": "./fesm2022/ng-nest-ui-list.mjs"
301
301
  },
302
- "./loading": {
303
- "types": "./loading/index.d.ts",
304
- "esm2022": "./esm2022/loading/ng-nest-ui-loading.mjs",
305
- "esm": "./esm2022/loading/ng-nest-ui-loading.mjs",
306
- "default": "./fesm2022/ng-nest-ui-loading.mjs"
307
- },
308
302
  "./menu": {
309
303
  "types": "./menu/index.d.ts",
310
304
  "esm2022": "./esm2022/menu/ng-nest-ui-menu.mjs",
311
305
  "esm": "./esm2022/menu/ng-nest-ui-menu.mjs",
312
306
  "default": "./fesm2022/ng-nest-ui-menu.mjs"
313
307
  },
314
- "./message-box": {
315
- "types": "./message-box/index.d.ts",
316
- "esm2022": "./esm2022/message-box/ng-nest-ui-message-box.mjs",
317
- "esm": "./esm2022/message-box/ng-nest-ui-message-box.mjs",
318
- "default": "./fesm2022/ng-nest-ui-message-box.mjs"
319
- },
320
- "./page-header": {
321
- "types": "./page-header/index.d.ts",
322
- "esm2022": "./esm2022/page-header/ng-nest-ui-page-header.mjs",
323
- "esm": "./esm2022/page-header/ng-nest-ui-page-header.mjs",
324
- "default": "./fesm2022/ng-nest-ui-page-header.mjs"
308
+ "./loading": {
309
+ "types": "./loading/index.d.ts",
310
+ "esm2022": "./esm2022/loading/ng-nest-ui-loading.mjs",
311
+ "esm": "./esm2022/loading/ng-nest-ui-loading.mjs",
312
+ "default": "./fesm2022/ng-nest-ui-loading.mjs"
325
313
  },
326
314
  "./message": {
327
315
  "types": "./message/index.d.ts",
@@ -329,6 +317,12 @@
329
317
  "esm": "./esm2022/message/ng-nest-ui-message.mjs",
330
318
  "default": "./fesm2022/ng-nest-ui-message.mjs"
331
319
  },
320
+ "./message-box": {
321
+ "types": "./message-box/index.d.ts",
322
+ "esm2022": "./esm2022/message-box/ng-nest-ui-message-box.mjs",
323
+ "esm": "./esm2022/message-box/ng-nest-ui-message-box.mjs",
324
+ "default": "./fesm2022/ng-nest-ui-message-box.mjs"
325
+ },
332
326
  "./notification": {
333
327
  "types": "./notification/index.d.ts",
334
328
  "esm2022": "./esm2022/notification/ng-nest-ui-notification.mjs",
@@ -341,6 +335,12 @@
341
335
  "esm": "./esm2022/outlet/ng-nest-ui-outlet.mjs",
342
336
  "default": "./fesm2022/ng-nest-ui-outlet.mjs"
343
337
  },
338
+ "./page-header": {
339
+ "types": "./page-header/index.d.ts",
340
+ "esm2022": "./esm2022/page-header/ng-nest-ui-page-header.mjs",
341
+ "esm": "./esm2022/page-header/ng-nest-ui-page-header.mjs",
342
+ "default": "./fesm2022/ng-nest-ui-page-header.mjs"
343
+ },
344
344
  "./pagination": {
345
345
  "types": "./pagination/index.d.ts",
346
346
  "esm2022": "./esm2022/pagination/ng-nest-ui-pagination.mjs",
@@ -353,23 +353,17 @@
353
353
  "esm": "./esm2022/pattern/ng-nest-ui-pattern.mjs",
354
354
  "default": "./fesm2022/ng-nest-ui-pattern.mjs"
355
355
  },
356
- "./popover": {
357
- "types": "./popover/index.d.ts",
358
- "esm2022": "./esm2022/popover/ng-nest-ui-popover.mjs",
359
- "esm": "./esm2022/popover/ng-nest-ui-popover.mjs",
360
- "default": "./fesm2022/ng-nest-ui-popover.mjs"
361
- },
362
356
  "./popconfirm": {
363
357
  "types": "./popconfirm/index.d.ts",
364
358
  "esm2022": "./esm2022/popconfirm/ng-nest-ui-popconfirm.mjs",
365
359
  "esm": "./esm2022/popconfirm/ng-nest-ui-popconfirm.mjs",
366
360
  "default": "./fesm2022/ng-nest-ui-popconfirm.mjs"
367
361
  },
368
- "./radio": {
369
- "types": "./radio/index.d.ts",
370
- "esm2022": "./esm2022/radio/ng-nest-ui-radio.mjs",
371
- "esm": "./esm2022/radio/ng-nest-ui-radio.mjs",
372
- "default": "./fesm2022/ng-nest-ui-radio.mjs"
362
+ "./popover": {
363
+ "types": "./popover/index.d.ts",
364
+ "esm2022": "./esm2022/popover/ng-nest-ui-popover.mjs",
365
+ "esm": "./esm2022/popover/ng-nest-ui-popover.mjs",
366
+ "default": "./fesm2022/ng-nest-ui-popover.mjs"
373
367
  },
374
368
  "./portal": {
375
369
  "types": "./portal/index.d.ts",
@@ -377,23 +371,35 @@
377
371
  "esm": "./esm2022/portal/ng-nest-ui-portal.mjs",
378
372
  "default": "./fesm2022/ng-nest-ui-portal.mjs"
379
373
  },
374
+ "./radio": {
375
+ "types": "./radio/index.d.ts",
376
+ "esm2022": "./esm2022/radio/ng-nest-ui-radio.mjs",
377
+ "esm": "./esm2022/radio/ng-nest-ui-radio.mjs",
378
+ "default": "./fesm2022/ng-nest-ui-radio.mjs"
379
+ },
380
380
  "./progress": {
381
381
  "types": "./progress/index.d.ts",
382
382
  "esm2022": "./esm2022/progress/ng-nest-ui-progress.mjs",
383
383
  "esm": "./esm2022/progress/ng-nest-ui-progress.mjs",
384
384
  "default": "./fesm2022/ng-nest-ui-progress.mjs"
385
385
  },
386
+ "./rate": {
387
+ "types": "./rate/index.d.ts",
388
+ "esm2022": "./esm2022/rate/ng-nest-ui-rate.mjs",
389
+ "esm": "./esm2022/rate/ng-nest-ui-rate.mjs",
390
+ "default": "./fesm2022/ng-nest-ui-rate.mjs"
391
+ },
386
392
  "./resizable": {
387
393
  "types": "./resizable/index.d.ts",
388
394
  "esm2022": "./esm2022/resizable/ng-nest-ui-resizable.mjs",
389
395
  "esm": "./esm2022/resizable/ng-nest-ui-resizable.mjs",
390
396
  "default": "./fesm2022/ng-nest-ui-resizable.mjs"
391
397
  },
392
- "./rate": {
393
- "types": "./rate/index.d.ts",
394
- "esm2022": "./esm2022/rate/ng-nest-ui-rate.mjs",
395
- "esm": "./esm2022/rate/ng-nest-ui-rate.mjs",
396
- "default": "./fesm2022/ng-nest-ui-rate.mjs"
398
+ "./ripple": {
399
+ "types": "./ripple/index.d.ts",
400
+ "esm2022": "./esm2022/ripple/ng-nest-ui-ripple.mjs",
401
+ "esm": "./esm2022/ripple/ng-nest-ui-ripple.mjs",
402
+ "default": "./fesm2022/ng-nest-ui-ripple.mjs"
397
403
  },
398
404
  "./result": {
399
405
  "types": "./result/index.d.ts",
@@ -407,17 +413,11 @@
407
413
  "esm": "./esm2022/select/ng-nest-ui-select.mjs",
408
414
  "default": "./fesm2022/ng-nest-ui-select.mjs"
409
415
  },
410
- "./ripple": {
411
- "types": "./ripple/index.d.ts",
412
- "esm2022": "./esm2022/ripple/ng-nest-ui-ripple.mjs",
413
- "esm": "./esm2022/ripple/ng-nest-ui-ripple.mjs",
414
- "default": "./fesm2022/ng-nest-ui-ripple.mjs"
415
- },
416
- "./slider-select": {
417
- "types": "./slider-select/index.d.ts",
418
- "esm2022": "./esm2022/slider-select/ng-nest-ui-slider-select.mjs",
419
- "esm": "./esm2022/slider-select/ng-nest-ui-slider-select.mjs",
420
- "default": "./fesm2022/ng-nest-ui-slider-select.mjs"
416
+ "./slider": {
417
+ "types": "./slider/index.d.ts",
418
+ "esm2022": "./esm2022/slider/ng-nest-ui-slider.mjs",
419
+ "esm": "./esm2022/slider/ng-nest-ui-slider.mjs",
420
+ "default": "./fesm2022/ng-nest-ui-slider.mjs"
421
421
  },
422
422
  "./skeleton": {
423
423
  "types": "./skeleton/index.d.ts",
@@ -425,11 +425,17 @@
425
425
  "esm": "./esm2022/skeleton/ng-nest-ui-skeleton.mjs",
426
426
  "default": "./fesm2022/ng-nest-ui-skeleton.mjs"
427
427
  },
428
- "./slider": {
429
- "types": "./slider/index.d.ts",
430
- "esm2022": "./esm2022/slider/ng-nest-ui-slider.mjs",
431
- "esm": "./esm2022/slider/ng-nest-ui-slider.mjs",
432
- "default": "./fesm2022/ng-nest-ui-slider.mjs"
428
+ "./statistic": {
429
+ "types": "./statistic/index.d.ts",
430
+ "esm2022": "./esm2022/statistic/ng-nest-ui-statistic.mjs",
431
+ "esm": "./esm2022/statistic/ng-nest-ui-statistic.mjs",
432
+ "default": "./fesm2022/ng-nest-ui-statistic.mjs"
433
+ },
434
+ "./slider-select": {
435
+ "types": "./slider-select/index.d.ts",
436
+ "esm2022": "./esm2022/slider-select/ng-nest-ui-slider-select.mjs",
437
+ "esm": "./esm2022/slider-select/ng-nest-ui-slider-select.mjs",
438
+ "default": "./fesm2022/ng-nest-ui-slider-select.mjs"
433
439
  },
434
440
  "./steps": {
435
441
  "types": "./steps/index.d.ts",
@@ -437,12 +443,6 @@
437
443
  "esm": "./esm2022/steps/ng-nest-ui-steps.mjs",
438
444
  "default": "./fesm2022/ng-nest-ui-steps.mjs"
439
445
  },
440
- "./statistic": {
441
- "types": "./statistic/index.d.ts",
442
- "esm2022": "./esm2022/statistic/ng-nest-ui-statistic.mjs",
443
- "esm": "./esm2022/statistic/ng-nest-ui-statistic.mjs",
444
- "default": "./fesm2022/ng-nest-ui-statistic.mjs"
445
- },
446
446
  "./switch": {
447
447
  "types": "./switch/index.d.ts",
448
448
  "esm2022": "./esm2022/switch/ng-nest-ui-switch.mjs",
@@ -467,24 +467,30 @@
467
467
  "esm": "./esm2022/tag/ng-nest-ui-tag.mjs",
468
468
  "default": "./fesm2022/ng-nest-ui-tag.mjs"
469
469
  },
470
- "./textarea": {
471
- "types": "./textarea/index.d.ts",
472
- "esm2022": "./esm2022/textarea/ng-nest-ui-textarea.mjs",
473
- "esm": "./esm2022/textarea/ng-nest-ui-textarea.mjs",
474
- "default": "./fesm2022/ng-nest-ui-textarea.mjs"
475
- },
476
470
  "./text-retract": {
477
471
  "types": "./text-retract/index.d.ts",
478
472
  "esm2022": "./esm2022/text-retract/ng-nest-ui-text-retract.mjs",
479
473
  "esm": "./esm2022/text-retract/ng-nest-ui-text-retract.mjs",
480
474
  "default": "./fesm2022/ng-nest-ui-text-retract.mjs"
481
475
  },
476
+ "./textarea": {
477
+ "types": "./textarea/index.d.ts",
478
+ "esm2022": "./esm2022/textarea/ng-nest-ui-textarea.mjs",
479
+ "esm": "./esm2022/textarea/ng-nest-ui-textarea.mjs",
480
+ "default": "./fesm2022/ng-nest-ui-textarea.mjs"
481
+ },
482
482
  "./theme": {
483
483
  "types": "./theme/index.d.ts",
484
484
  "esm2022": "./esm2022/theme/ng-nest-ui-theme.mjs",
485
485
  "esm": "./esm2022/theme/ng-nest-ui-theme.mjs",
486
486
  "default": "./fesm2022/ng-nest-ui-theme.mjs"
487
487
  },
488
+ "./time-range": {
489
+ "types": "./time-range/index.d.ts",
490
+ "esm2022": "./esm2022/time-range/ng-nest-ui-time-range.mjs",
491
+ "esm": "./esm2022/time-range/ng-nest-ui-time-range.mjs",
492
+ "default": "./fesm2022/ng-nest-ui-time-range.mjs"
493
+ },
488
494
  "./time-ago": {
489
495
  "types": "./time-ago/index.d.ts",
490
496
  "esm2022": "./esm2022/time-ago/ng-nest-ui-time-ago.mjs",
@@ -497,12 +503,6 @@
497
503
  "esm": "./esm2022/time-picker/ng-nest-ui-time-picker.mjs",
498
504
  "default": "./fesm2022/ng-nest-ui-time-picker.mjs"
499
505
  },
500
- "./time-range": {
501
- "types": "./time-range/index.d.ts",
502
- "esm2022": "./esm2022/time-range/ng-nest-ui-time-range.mjs",
503
- "esm": "./esm2022/time-range/ng-nest-ui-time-range.mjs",
504
- "default": "./fesm2022/ng-nest-ui-time-range.mjs"
505
- },
506
506
  "./tooltip": {
507
507
  "types": "./tooltip/index.d.ts",
508
508
  "esm2022": "./esm2022/tooltip/ng-nest-ui-tooltip.mjs",
@@ -515,30 +515,24 @@
515
515
  "esm": "./esm2022/timeline/ng-nest-ui-timeline.mjs",
516
516
  "default": "./fesm2022/ng-nest-ui-timeline.mjs"
517
517
  },
518
- "./tree-file": {
519
- "types": "./tree-file/index.d.ts",
520
- "esm2022": "./esm2022/tree-file/ng-nest-ui-tree-file.mjs",
521
- "esm": "./esm2022/tree-file/ng-nest-ui-tree-file.mjs",
522
- "default": "./fesm2022/ng-nest-ui-tree-file.mjs"
523
- },
524
518
  "./transfer": {
525
519
  "types": "./transfer/index.d.ts",
526
520
  "esm2022": "./esm2022/transfer/ng-nest-ui-transfer.mjs",
527
521
  "esm": "./esm2022/transfer/ng-nest-ui-transfer.mjs",
528
522
  "default": "./fesm2022/ng-nest-ui-transfer.mjs"
529
523
  },
524
+ "./tree-file": {
525
+ "types": "./tree-file/index.d.ts",
526
+ "esm2022": "./esm2022/tree-file/ng-nest-ui-tree-file.mjs",
527
+ "esm": "./esm2022/tree-file/ng-nest-ui-tree-file.mjs",
528
+ "default": "./fesm2022/ng-nest-ui-tree-file.mjs"
529
+ },
530
530
  "./tree": {
531
531
  "types": "./tree/index.d.ts",
532
532
  "esm2022": "./esm2022/tree/ng-nest-ui-tree.mjs",
533
533
  "esm": "./esm2022/tree/ng-nest-ui-tree.mjs",
534
534
  "default": "./fesm2022/ng-nest-ui-tree.mjs"
535
535
  },
536
- "./typography": {
537
- "types": "./typography/index.d.ts",
538
- "esm2022": "./esm2022/typography/ng-nest-ui-typography.mjs",
539
- "esm": "./esm2022/typography/ng-nest-ui-typography.mjs",
540
- "default": "./fesm2022/ng-nest-ui-typography.mjs"
541
- },
542
536
  "./tree-select": {
543
537
  "types": "./tree-select/index.d.ts",
544
538
  "esm2022": "./esm2022/tree-select/ng-nest-ui-tree-select.mjs",
@@ -550,6 +544,12 @@
550
544
  "esm2022": "./esm2022/upload/ng-nest-ui-upload.mjs",
551
545
  "esm": "./esm2022/upload/ng-nest-ui-upload.mjs",
552
546
  "default": "./fesm2022/ng-nest-ui-upload.mjs"
547
+ },
548
+ "./typography": {
549
+ "types": "./typography/index.d.ts",
550
+ "esm2022": "./esm2022/typography/ng-nest-ui-typography.mjs",
551
+ "esm": "./esm2022/typography/ng-nest-ui-typography.mjs",
552
+ "default": "./fesm2022/ng-nest-ui-typography.mjs"
553
553
  }
554
554
  },
555
555
  "sideEffects": false
@@ -1,4 +1,4 @@
1
- import { OnInit, ElementRef } from '@angular/core';
1
+ import { OnInit, ElementRef, SimpleChanges } from '@angular/core';
2
2
  import { XPaginationProperty } from './pagination.property';
3
3
  import { XI18nPagination } from '@ng-nest/ui/i18n';
4
4
  import * as i0 from "@angular/core";
@@ -36,6 +36,7 @@ export declare class XPaginationComponent extends XPaginationProperty implements
36
36
  inputSizeTooltip: import("@angular/core").Signal<string | undefined>;
37
37
  jumpTooltip: import("@angular/core").Signal<string | undefined>;
38
38
  ngOnInit(): void;
39
+ ngOnChanges(changes: SimpleChanges): void;
39
40
  sizeChanged(): void;
40
41
  jump(index: number, isDiff?: boolean): void;
41
42
  onJumpBlur(_event: MouseEvent): void;