@taiga-ui/addon-table 3.39.1-dev.main.f92cc75 → 3.40.0-canary.fda819a

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.
Files changed (36) hide show
  1. package/README.md +3 -3
  2. package/bundles/taiga-ui-addon-table-components-reorder.umd.js +28 -9
  3. package/bundles/taiga-ui-addon-table-components-reorder.umd.js.map +1 -1
  4. package/bundles/taiga-ui-addon-table-components-table-pagination.umd.js +12 -4
  5. package/bundles/taiga-ui-addon-table-components-table-pagination.umd.js.map +1 -1
  6. package/bundles/taiga-ui-addon-table-components-table.umd.js +52 -16
  7. package/bundles/taiga-ui-addon-table-components-table.umd.js.map +1 -1
  8. package/components/reorder/index.d.ts +1 -0
  9. package/components/reorder/reorder.component.d.ts +3 -1
  10. package/components/reorder/reorder.options.d.ts +11 -0
  11. package/components/table/directives/table.directive.d.ts +6 -4
  12. package/components/table/index.d.ts +1 -0
  13. package/components/table/table.options.d.ts +17 -0
  14. package/components/table/tbody/tbody.component.d.ts +5 -1
  15. package/components/table/th/th.component.d.ts +4 -2
  16. package/components/table-pagination/index.d.ts +0 -1
  17. package/components/table-pagination/table-pagination.component.d.ts +8 -2
  18. package/esm2015/components/reorder/index.js +2 -1
  19. package/esm2015/components/reorder/reorder.component.js +11 -6
  20. package/esm2015/components/reorder/reorder.options.js +13 -0
  21. package/esm2015/components/table/directives/table.directive.js +10 -5
  22. package/esm2015/components/table/index.js +2 -1
  23. package/esm2015/components/table/table.options.js +18 -0
  24. package/esm2015/components/table/tbody/tbody.component.js +15 -5
  25. package/esm2015/components/table/th/th.component.js +14 -9
  26. package/esm2015/components/table-pagination/index.js +1 -2
  27. package/esm2015/components/table-pagination/table-pagination.component.js +14 -6
  28. package/fesm2015/taiga-ui-addon-table-components-reorder.js +23 -6
  29. package/fesm2015/taiga-ui-addon-table-components-reorder.js.map +1 -1
  30. package/fesm2015/taiga-ui-addon-table-components-table-pagination.js +13 -5
  31. package/fesm2015/taiga-ui-addon-table-components-table-pagination.js.map +1 -1
  32. package/fesm2015/taiga-ui-addon-table-components-table.js +52 -19
  33. package/fesm2015/taiga-ui-addon-table-components-table.js.map +1 -1
  34. package/package.json +7 -7
  35. package/components/table-pagination/table-pagination.d.ts +0 -4
  36. package/esm2015/components/table-pagination/table-pagination.js +0 -2
@@ -1,6 +1,6 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Output, } from '@angular/core';
2
2
  import { TUI_TABLE_PAGINATION_TEXTS } from '@taiga-ui/addon-table/tokens';
3
- import { TUI_SPIN_TEXTS } from '@taiga-ui/core';
3
+ import { TUI_COMMON_ICONS, TUI_SPIN_ICONS, TUI_SPIN_TEXTS, } from '@taiga-ui/core';
4
4
  import { TUI_TABLE_PAGINATION_OPTIONS, } from './table-pagination.options';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@taiga-ui/core";
@@ -8,10 +8,12 @@ import * as i2 from "@angular/common";
8
8
  import * as i3 from "@tinkoff/ng-polymorpheus";
9
9
  import * as i4 from "rxjs";
10
10
  export class TuiTablePaginationComponent {
11
- constructor(spinTexts$, texts$, options) {
11
+ constructor(icons, spinTexts$, texts$, options, commonIcons) {
12
+ this.icons = icons;
12
13
  this.spinTexts$ = spinTexts$;
13
14
  this.texts$ = texts$;
14
15
  this.options = options;
16
+ this.commonIcons = commonIcons;
15
17
  this.items = this.options.items;
16
18
  this.total = 0;
17
19
  this.page = 0;
@@ -70,8 +72,8 @@ export class TuiTablePaginationComponent {
70
72
  this.paginationChange.emit(this.pagination);
71
73
  }
72
74
  }
73
- TuiTablePaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTablePaginationComponent, deps: [{ token: TUI_SPIN_TEXTS }, { token: TUI_TABLE_PAGINATION_TEXTS }, { token: TUI_TABLE_PAGINATION_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
74
- TuiTablePaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiTablePaginationComponent, selector: "tui-table-pagination", inputs: { items: "items", total: "total", page: "page", size: "size" }, outputs: { pageChange: "pageChange", sizeChange: "sizeChange", paginationChange: "paginationChange" }, ngImport: i0, template: "<ng-container *ngIf=\"texts$ | async as texts\">\n <span class=\"t-pages\">\n <ng-container *ngIf=\"options.showPages\">\n {{ texts.pages }}\n <strong class=\"t-strong\">{{ pages }}</strong>\n </ng-container>\n </span>\n <span automation-id=\"tui-table-pagination__lines-per-page-wrapper\">\n {{ texts.linesPerPage }}\n <tui-hosted-dropdown\n [content]=\"content\"\n [(open)]=\"open\"\n >\n <button\n tuiLink\n type=\"button\"\n >\n <strong>{{ start + 1 }}\u2013{{ end }}</strong>\n </button>\n <ng-template #content>\n <tui-data-list size=\"s\">\n <ng-container *ngFor=\"let item of items\">\n <button\n tuiOption\n class=\"t-item\"\n (click)=\"onItem(item)\"\n >\n <ng-container\n *polymorpheusOutlet=\"\n options.sizeOptionContent as text;\n context: {$implicit: item, total: total}\n \"\n >\n {{ text }}\n </ng-container>\n <tui-svg\n *ngIf=\"item === size; else fakeIcon\"\n src=\"tuiIconCheckLarge\"\n class=\"t-checkmark\"\n ></tui-svg>\n\n <ng-template #fakeIcon>\n <span class=\"t-checkmark\"></span>\n </ng-template>\n </button>\n </ng-container>\n </tui-data-list>\n </ng-template>\n </tui-hosted-dropdown>\n {{ texts.of }}\n <strong class=\"t-strong\">{{ total }}</strong>\n </span>\n <ng-container *ngIf=\"spinTexts$ | async as spinTexts\">\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"icon\"\n icon=\"tuiIconChevronLeft\"\n class=\"t-back\"\n [disabled]=\"leftDisabled\"\n [title]=\"spinTexts[0]\"\n (click)=\"back()\"\n ></button>\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"icon\"\n icon=\"tuiIconChevronRight\"\n [disabled]=\"rightDisabled\"\n [title]=\"spinTexts[1]\"\n (click)=\"forth()\"\n ></button>\n </ng-container>\n</ng-container>\n", styles: [":host{display:flex;font:var(--tui-font-text-s);align-items:center;color:var(--tui-text-03)}.t-strong{color:var(--tui-text-01)}.t-pages{margin-right:auto}.t-item{min-width:5.5rem;box-sizing:border-box}.t-checkmark{min-width:1.5rem;border-left:5px solid transparent}.t-back{margin:0 .25rem 0 1.5rem}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { type: i1.TuiDataListComponent, selector: "tui-data-list", inputs: ["role", "emptyContent", "size"] }, { type: i1.TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: ["size", "role", "disabled", "value"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
75
+ TuiTablePaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTablePaginationComponent, deps: [{ token: TUI_SPIN_ICONS }, { token: TUI_SPIN_TEXTS }, { token: TUI_TABLE_PAGINATION_TEXTS }, { token: TUI_TABLE_PAGINATION_OPTIONS }, { token: TUI_COMMON_ICONS }], target: i0.ɵɵFactoryTarget.Component });
76
+ TuiTablePaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiTablePaginationComponent, selector: "tui-table-pagination", inputs: { items: "items", total: "total", page: "page", size: "size" }, outputs: { pageChange: "pageChange", sizeChange: "sizeChange", paginationChange: "paginationChange" }, ngImport: i0, template: "<ng-container *ngIf=\"texts$ | async as texts\">\n <span class=\"t-pages\">\n <ng-container *ngIf=\"options.showPages\">\n {{ texts.pages }}\n <strong class=\"t-strong\">{{ pages }}</strong>\n </ng-container>\n </span>\n <span automation-id=\"tui-table-pagination__lines-per-page-wrapper\">\n {{ texts.linesPerPage }}\n <tui-hosted-dropdown\n [content]=\"content\"\n [(open)]=\"open\"\n >\n <button\n tuiLink\n type=\"button\"\n >\n <strong>{{ start + 1 }}\u2013{{ end }}</strong>\n </button>\n <ng-template #content>\n <tui-data-list size=\"s\">\n <ng-container *ngFor=\"let item of items\">\n <button\n tuiOption\n class=\"t-item\"\n (click)=\"onItem(item)\"\n >\n <ng-container\n *polymorpheusOutlet=\"\n options.sizeOptionContent as text;\n context: {$implicit: item, total: total}\n \"\n >\n {{ text }}\n </ng-container>\n <tui-svg\n *ngIf=\"item === size; else fakeIcon\"\n class=\"t-checkmark\"\n [src]=\"commonIcons.check\"\n ></tui-svg>\n\n <ng-template #fakeIcon>\n <span class=\"t-checkmark\"></span>\n </ng-template>\n </button>\n </ng-container>\n </tui-data-list>\n </ng-template>\n </tui-hosted-dropdown>\n {{ texts.of }}\n <strong class=\"t-strong\">{{ total }}</strong>\n </span>\n <ng-container *ngIf=\"spinTexts$ | async as spinTexts\">\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"icon\"\n class=\"t-back\"\n [icon]=\"icons.decrement\"\n [disabled]=\"leftDisabled\"\n [title]=\"spinTexts[0]\"\n (click)=\"back()\"\n ></button>\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"icon\"\n [icon]=\"icons.increment\"\n [disabled]=\"rightDisabled\"\n [title]=\"spinTexts[1]\"\n (click)=\"forth()\"\n ></button>\n </ng-container>\n</ng-container>\n", styles: [":host{display:flex;font:var(--tui-font-text-s);align-items:center;color:var(--tui-text-03)}.t-strong{color:var(--tui-text-01)}.t-pages{margin-right:auto}.t-item{min-width:5.5rem;box-sizing:border-box}.t-checkmark{min-width:1.5rem;border-left:5px solid transparent}.t-back{margin:0 .25rem 0 1.5rem}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { type: i1.TuiDataListComponent, selector: "tui-data-list", inputs: ["role", "emptyContent", "size"] }, { type: i1.TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: ["size", "role", "disabled", "value"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
75
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTablePaginationComponent, decorators: [{
76
78
  type: Component,
77
79
  args: [{
@@ -80,7 +82,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
80
82
  styleUrls: ['./table-pagination.style.less'],
81
83
  changeDetection: ChangeDetectionStrategy.OnPush,
82
84
  }]
83
- }], ctorParameters: function () { return [{ type: i4.Observable, decorators: [{
85
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
86
+ type: Inject,
87
+ args: [TUI_SPIN_ICONS]
88
+ }] }, { type: i4.Observable, decorators: [{
84
89
  type: Inject,
85
90
  args: [TUI_SPIN_TEXTS]
86
91
  }] }, { type: i4.Observable, decorators: [{
@@ -89,6 +94,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
89
94
  }] }, { type: undefined, decorators: [{
90
95
  type: Inject,
91
96
  args: [TUI_TABLE_PAGINATION_OPTIONS]
97
+ }] }, { type: undefined, decorators: [{
98
+ type: Inject,
99
+ args: [TUI_COMMON_ICONS]
92
100
  }] }]; }, propDecorators: { items: [{
93
101
  type: Input
94
102
  }], total: [{
@@ -104,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
104
112
  }], paginationChange: [{
105
113
  type: Output
106
114
  }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi10YWJsZS9jb21wb25lbnRzL3RhYmxlLXBhZ2luYXRpb24vdGFibGUtcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi10YWJsZS9jb21wb25lbnRzL3RhYmxlLXBhZ2luYXRpb24vdGFibGUtcGFnaW5hdGlvbi50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFJOUMsT0FBTyxFQUNILDRCQUE0QixHQUUvQixNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFRcEMsTUFBTSxPQUFPLDJCQUEyQjtJQWdDcEMsWUFDcUMsVUFBd0MsRUFFaEUsTUFBbUUsRUFDN0IsT0FBa0M7UUFIaEQsZUFBVSxHQUFWLFVBQVUsQ0FBOEI7UUFFaEUsV0FBTSxHQUFOLE1BQU0sQ0FBNkQ7UUFDN0IsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFsQ3JGLFVBQUssR0FBc0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFHOUMsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUdWLFNBQUksR0FBRyxDQUFDLENBQUM7UUFHVCxTQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFFekI7OztXQUdHO1FBRU0sZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFakQ7OztXQUdHO1FBRU0sZUFBVSxHQUFHLElBQUks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TUFBTTtnQkFRRSxVQUFVO3NCQURsQixNQUFNO2dCQUlFLGdCQUFnQjtzQkFEeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VFVJX1RBQkxFX1BBR0lOQVRJT05fVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi10YWJsZS90b2tlbnMnO1xuaW1wb3J0IHtUVUlfU1BJTl9URVhUU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUdWlUYWJsZVBhZ2luYXRpb259IGZyb20gJy4vdGFibGUtcGFnaW5hdGlvbic7XG5pbXBvcnQge1xuICAgIFRVSV9UQUJMRV9QQUdJTkFUSU9OX09QVElPTlMsXG4gICAgVHVpVGFibGVQYWdpbmF0aW9uT3B0aW9ucyxcbn0gZnJvbSAnLi90YWJsZS1wYWdpbmF0aW9uLm9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS10YWJsZS1wYWdpbmF0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtcGFnaW5hdGlvbi50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YWJsZS1wYWdpbmF0aW9uLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGFibGVQYWdpbmF0aW9uQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIGl0ZW1zOiByZWFkb25seSBudW1iZXJbXSA9IHRoaXMub3B0aW9ucy5pdGVtcztcblxuICAgIEBJbnB1dCgpXG4gICAgdG90YWwgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBwYWdlID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2l6ZSA9IHRoaXMub3B0aW9ucy5zaXplO1xuXG4gICAgLyoqXG4gICAgICogVE9ETzogUmVtb3ZlIGluIDQuMFxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBwYWdpbmF0aW9uQ2hhbmdlXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgLyoqXG4gICAgICogVE9ETzogUmVtb3ZlIGluIDQuMFxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBwYWdpbmF0aW9uQ2hhbmdlXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2l6ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgcGFnaW5hdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpVGFibGVQYWdpbmF0aW9uPigpO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVFVJX1NQSU5fVEVYVFMpIHJlYWRvbmx5IHNwaW5UZXh0cyQ6IE9ic2VydmFibGU8W3N0cmluZywgc3RyaW5nXT4sXG4gICAgICAgIEBJbmplY3QoVFVJX1RBQkxFX1BBR0lOQVRJT05fVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IHRleHRzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8J2xpbmVzUGVyUGFnZScgfCAnb2YnIHwgJ3BhZ2VzJywgc3RyaW5nPj4sXG4gICAgICAgIEBJbmplY3QoVFVJX1RBQkxFX1BBR0lOQVRJT05fT1BUSU9OUykgcmVhZG9ubHkgb3B0aW9uczogVHVpVGFibGVQYWdpbmF0aW9uT3B0aW9ucyxcbiAgICApIHt9XG5cbiAgICBnZXQgcGFnZXMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLnRvdGFsIC8gdGhpcy5zaXplKTtcbiAgICB9XG5cbiAgICBnZXQgc3RhcnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnZSAqIHRoaXMuc2l6ZTtcbiAgICB9XG5cbiAgICBnZXQgZW5kKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLm1pbih0aGlzLnN0YXJ0ICsgdGhpcy5zaXplLCB0aGlzLnRvdGFsKTtcbiAgICB9XG5cbiAgICBnZXQgbGVmdERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuc3RhcnQ7XG4gICAgfVxuXG4gICAgZ2V0IHJpZ2h0RGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVuZCA9PT0gdGhpcy50b3RhbDtcbiAgICB9XG5cbiAgICBnZXQgcGFnaW5hdGlvbigpOiBUdWlUYWJsZVBhZ2luYXRpb24ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgICAgICAgc2l6ZTogdGhpcy5zaXplLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIG9uSXRlbShzaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge3N0YXJ0fSA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5zaXplID0gc2l6ZTtcbiAgICAgICAgdGhpcy5zaXplQ2hhbmdlLmVtaXQoc2l6ZSk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLnBhZ2UgPSBNYXRoLmZsb29yKHN0YXJ0IC8gdGhpcy5zaXplKTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQodGhpcy5wYWdlKTtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQ2hhbmdlLmVtaXQodGhpcy5wYWdpbmF0aW9uKTtcbiAgICB9XG5cbiAgICBiYWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UtLTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQodGhpcy5wYWdlKTtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQ2hhbmdlLmVtaXQodGhpcy5wYWdpbmF0aW9uKTtcbiAgICB9XG5cbiAgICBmb3J0aCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlKys7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHRoaXMucGFnZSk7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkNoYW5nZS5lbWl0KHRoaXMucGFnaW5hdGlvbik7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInRleHRzJCB8IGFzeW5jIGFzIHRleHRzXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ0LXBhZ2VzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zLnNob3dQYWdlc1wiPlxuICAgICAgICAgICAge3sgdGV4dHMucGFnZXMgfX1cbiAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0LXN0cm9uZ1wiPnt7IHBhZ2VzIH19PC9zdHJvbmc+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiBhdXRvbWF0aW9uLWlkPVwidHVpLXRhYmxlLXBhZ2luYXRpb25fX2xpbmVzLXBlci1wYWdlLXdyYXBwZXJcIj5cbiAgICAgICAge3sgdGV4dHMubGluZXNQZXJQYWdlIH19XG4gICAgICAgIDx0dWktaG9zdGVkLWRyb3Bkb3duXG4gICAgICAgICAgICBbY29udGVudF09XCJjb250ZW50XCJcbiAgICAgICAgICAgIFsob3BlbildPVwib3BlblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyBzdGFydCArIDEgfX3igJN7eyBlbmQgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgICAgICAgICAgICAgIDx0dWktZGF0YS1saXN0IHNpemU9XCJzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uSXRlbShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnNpemVPcHRpb25Db250ZW50IGFzIHRleHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7JGltcGxpY2l0OiBpdGVtLCB0b3RhbDogdG90YWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0ZXh0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHR1aS1zdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtID09PSBzaXplOyBlbHNlIGZha2VJY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwidHVpSWNvbkNoZWNrTGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtY2hlY2ttYXJrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC90dWktc3ZnPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNmYWtlSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0LWNoZWNrbWFya1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvdHVpLWRhdGEtbGlzdD5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdHVpLWhvc3RlZC1kcm9wZG93bj5cbiAgICAgICAge3sgdGV4dHMub2YgfX1cbiAgICAgICAgPHN0cm9uZyBjbGFzcz1cInQtc3Ryb25nXCI+e3sgdG90YWwgfX08L3N0cm9uZz5cbiAgICA8L3NwYW4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNwaW5UZXh0cyQgfCBhc3luYyBhcyBzcGluVGV4dHNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgICAgaWNvbj1cInR1aUljb25DaGV2cm9uTGVmdFwiXG4gICAgICAgICAgICBjbGFzcz1cInQtYmFja1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwibGVmdERpc2FibGVkXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJzcGluVGV4dHNbMF1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImJhY2soKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgICAgaWNvbj1cInR1aUljb25DaGV2cm9uUmlnaHRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJpZ2h0RGlzYWJsZWRcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInNwaW5UZXh0c1sxXVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZm9ydGgoKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi10YWJsZS9jb21wb25lbnRzL3RhYmxlLXBhZ2luYXRpb24vdGFibGUtcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi10YWJsZS9jb21wb25lbnRzL3RhYmxlLXBhZ2luYXRpb24vdGFibGUtcGFnaW5hdGlvbi50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxjQUFjLEdBR2pCLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEIsT0FBTyxFQUNILDRCQUE0QixHQUUvQixNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFhcEMsTUFBTSxPQUFPLDJCQUEyQjtJQWdDcEMsWUFDcUMsS0FBbUIsRUFDbkIsVUFBd0MsRUFFaEUsTUFBbUUsRUFDN0IsT0FBa0MsRUFDOUMsV0FBMkI7UUFMN0IsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUE4QjtRQUVoRSxXQUFNLEdBQU4sTUFBTSxDQUE2RDtRQUM3QixZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUM5QyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFwQ2xFLFVBQUssR0FBc0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFHOUMsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUdWLFNBQUksR0FBRyxDQUFDLENBQUM7UUFHVCxTQUFJLEdBQUcsSUFBSSxDQUFD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TTsyQkFBQywwQkFBMEI7OzBCQUVqQyxNQUFNOzJCQUFDLDRCQUE0Qjs7MEJBQ25DLE1BQU07MkJBQUMsZ0JBQWdCOzRDQXBDNUIsS0FBSztzQkFESixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQVFHLFVBQVU7c0JBRGxCLE1BQU07Z0JBUUUsVUFBVTtzQkFEbEIsTUFBTTtnQkFJRSxnQkFBZ0I7c0JBRHhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RVSV9UQUJMRV9QQUdJTkFUSU9OX1RFWFRTfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tdGFibGUvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgVFVJX0NPTU1PTl9JQ09OUyxcbiAgICBUVUlfU1BJTl9JQ09OUyxcbiAgICBUVUlfU1BJTl9URVhUUyxcbiAgICBUdWlDb21tb25JY29ucyxcbiAgICBUdWlTcGluSWNvbnMsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gICAgVFVJX1RBQkxFX1BBR0lOQVRJT05fT1BUSU9OUyxcbiAgICBUdWlUYWJsZVBhZ2luYXRpb25PcHRpb25zLFxufSBmcm9tICcuL3RhYmxlLXBhZ2luYXRpb24ub3B0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVpVGFibGVQYWdpbmF0aW9uIHtcbiAgICByZWFkb25seSBwYWdlOiBudW1iZXI7XG4gICAgcmVhZG9ubHkgc2l6ZTogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS10YWJsZS1wYWdpbmF0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtcGFnaW5hdGlvbi50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YWJsZS1wYWdpbmF0aW9uLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGFibGVQYWdpbmF0aW9uQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIGl0ZW1zOiByZWFkb25seSBudW1iZXJbXSA9IHRoaXMub3B0aW9ucy5pdGVtcztcblxuICAgIEBJbnB1dCgpXG4gICAgdG90YWwgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBwYWdlID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2l6ZSA9IHRoaXMub3B0aW9ucy5zaXplO1xuXG4gICAgLyoqXG4gICAgICogVE9ETzogUmVtb3ZlIGluIDQuMFxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBwYWdpbmF0aW9uQ2hhbmdlXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgLyoqXG4gICAgICogVE9ETzogUmVtb3ZlIGluIDQuMFxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBwYWdpbmF0aW9uQ2hhbmdlXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2l6ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgcGFnaW5hdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpVGFibGVQYWdpbmF0aW9uPigpO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVFVJX1NQSU5fSUNPTlMpIHJlYWRvbmx5IGljb25zOiBUdWlTcGluSWNvbnMsXG4gICAgICAgIEBJbmplY3QoVFVJX1NQSU5fVEVYVFMpIHJlYWRvbmx5IHNwaW5UZXh0cyQ6IE9ic2VydmFibGU8W3N0cmluZywgc3RyaW5nXT4sXG4gICAgICAgIEBJbmplY3QoVFVJX1RBQkxFX1BBR0lOQVRJT05fVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IHRleHRzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8J2xpbmVzUGVyUGFnZScgfCAnb2YnIHwgJ3BhZ2VzJywgc3RyaW5nPj4sXG4gICAgICAgIEBJbmplY3QoVFVJX1RBQkxFX1BBR0lOQVRJT05fT1BUSU9OUykgcmVhZG9ubHkgb3B0aW9uczogVHVpVGFibGVQYWdpbmF0aW9uT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChUVUlfQ09NTU9OX0lDT05TKSByZWFkb25seSBjb21tb25JY29uczogVHVpQ29tbW9uSWNvbnMsXG4gICAgKSB7fVxuXG4gICAgZ2V0IHBhZ2VzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy50b3RhbCAvIHRoaXMuc2l6ZSk7XG4gICAgfVxuXG4gICAgZ2V0IHN0YXJ0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2UgKiB0aGlzLnNpemU7XG4gICAgfVxuXG4gICAgZ2V0IGVuZCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTWF0aC5taW4odGhpcy5zdGFydCArIHRoaXMuc2l6ZSwgdGhpcy50b3RhbCk7XG4gICAgfVxuXG4gICAgZ2V0IGxlZnREaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnN0YXJ0O1xuICAgIH1cblxuICAgIGdldCByaWdodERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbmQgPT09IHRoaXMudG90YWw7XG4gICAgfVxuXG4gICAgZ2V0IHBhZ2luYXRpb24oKTogVHVpVGFibGVQYWdpbmF0aW9uIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhZ2U6IHRoaXMucGFnZSxcbiAgICAgICAgICAgIHNpemU6IHRoaXMuc2l6ZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBvbkl0ZW0oc2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtzdGFydH0gPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuc2l6ZSA9IHNpemU7XG4gICAgICAgIHRoaXMuc2l6ZUNoYW5nZS5lbWl0KHNpemUpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wYWdlID0gTWF0aC5mbG9vcihzdGFydCAvIHRoaXMuc2l6ZSk7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHRoaXMucGFnZSk7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkNoYW5nZS5lbWl0KHRoaXMucGFnaW5hdGlvbik7XG4gICAgfVxuXG4gICAgYmFjaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlLS07XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHRoaXMucGFnZSk7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkNoYW5nZS5lbWl0KHRoaXMucGFnaW5hdGlvbik7XG4gICAgfVxuXG4gICAgZm9ydGgoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZSsrO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh0aGlzLnBhZ2UpO1xuICAgICAgICB0aGlzLnBhZ2luYXRpb25DaGFuZ2UuZW1pdCh0aGlzLnBhZ2luYXRpb24pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZXh0cyQgfCBhc3luYyBhcyB0ZXh0c1wiPlxuICAgIDxzcGFuIGNsYXNzPVwidC1wYWdlc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9ucy5zaG93UGFnZXNcIj5cbiAgICAgICAgICAgIHt7IHRleHRzLnBhZ2VzIH19XG4gICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidC1zdHJvbmdcIj57eyBwYWdlcyB9fTwvc3Ryb25nPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gYXV0b21hdGlvbi1pZD1cInR1aS10YWJsZS1wYWdpbmF0aW9uX19saW5lcy1wZXItcGFnZS13cmFwcGVyXCI+XG4gICAgICAgIHt7IHRleHRzLmxpbmVzUGVyUGFnZSB9fVxuICAgICAgICA8dHVpLWhvc3RlZC1kcm9wZG93blxuICAgICAgICAgICAgW2NvbnRlbnRdPVwiY29udGVudFwiXG4gICAgICAgICAgICBbKG9wZW4pXT1cIm9wZW5cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgc3RhcnQgKyAxIH194oCTe3sgZW5kIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICAgICAgICAgICAgICA8dHVpLWRhdGEtbGlzdCBzaXplPVwic1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpT3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW0oaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5zaXplT3B0aW9uQ29udGVudCBhcyB0ZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyRpbXBsaWNpdDogaXRlbSwgdG90YWw6IHRvdGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0dWktc3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbSA9PT0gc2l6ZTsgZWxzZSBmYWtlSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1jaGVja21hcmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImNvbW1vbkljb25zLmNoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC90dWktc3ZnPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNmYWtlSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0LWNoZWNrbWFya1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvdHVpLWRhdGEtbGlzdD5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdHVpLWhvc3RlZC1kcm9wZG93bj5cbiAgICAgICAge3sgdGV4dHMub2YgfX1cbiAgICAgICAgPHN0cm9uZyBjbGFzcz1cInQtc3Ryb25nXCI+e3sgdG90YWwgfX08L3N0cm9uZz5cbiAgICA8L3NwYW4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNwaW5UZXh0cyQgfCBhc3luYyBhcyBzcGluVGV4dHNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWJhY2tcIlxuICAgICAgICAgICAgW2ljb25dPVwiaWNvbnMuZGVjcmVtZW50XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsZWZ0RGlzYWJsZWRcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInNwaW5UZXh0c1swXVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYmFjaygpXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgICAgICBbaWNvbl09XCJpY29ucy5pbmNyZW1lbnRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJpZ2h0RGlzYWJsZWRcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInNwaW5UZXh0c1sxXVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZm9ydGgoKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Component, ChangeDetectionStrategy, Inject, Input, Output, HostListener, NgModule } from '@angular/core';
3
3
  import { TUI_TABLE_SHOW_HIDE_MESSAGE } from '@taiga-ui/addon-table/tokens';
4
+ import { tuiCreateOptions, tuiProvideOptions } from '@taiga-ui/cdk';
4
5
  import * as i1 from '@taiga-ui/kit';
5
6
  import { TuiTilesModule } from '@taiga-ui/kit';
6
7
  import * as i2 from '@taiga-ui/core';
@@ -9,8 +10,21 @@ import * as i3 from '@angular/common';
9
10
  import { CommonModule } from '@angular/common';
10
11
  import * as i4 from 'rxjs';
11
12
 
13
+ const TUI_REORDER_DEFAULT_OPTIONS = {
14
+ icons: {
15
+ hide: `tuiIconEye`,
16
+ show: `tuiIconEyeOff`,
17
+ drag: `tuiIconDrag`,
18
+ },
19
+ };
20
+ const TUI_REORDER_OPTIONS = tuiCreateOptions(TUI_REORDER_DEFAULT_OPTIONS);
21
+ function tuiReorderOptionsProvider(options) {
22
+ return tuiProvideOptions(TUI_REORDER_OPTIONS, options, TUI_REORDER_DEFAULT_OPTIONS);
23
+ }
24
+
12
25
  class TuiReorderComponent {
13
- constructor(showHideText$) {
26
+ constructor(options, showHideText$) {
27
+ this.options = options;
14
28
  this.showHideText$ = showHideText$;
15
29
  this.dragging = false;
16
30
  this.enabled = [];
@@ -40,7 +54,7 @@ class TuiReorderComponent {
40
54
  return this.enabled.includes(item);
41
55
  }
42
56
  getIcon(item) {
43
- return this.isEnabled(item) ? 'tuiIconEye' : 'tuiIconEyeOff';
57
+ return this.isEnabled(item) ? this.options.icons.hide : this.options.icons.show;
44
58
  }
45
59
  toggle(toggled) {
46
60
  this.enabled = this.isEnabled(toggled)
@@ -80,8 +94,8 @@ class TuiReorderComponent {
80
94
  this.enabledChange.emit(enabled);
81
95
  }
82
96
  }
83
- TuiReorderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiReorderComponent, deps: [{ token: TUI_TABLE_SHOW_HIDE_MESSAGE }], target: i0.ɵɵFactoryTarget.Component });
84
- TuiReorderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiReorderComponent, selector: "tui-reorder", inputs: { items: "items", enabled: "enabled" }, outputs: { itemsChange: "itemsChange", enabledChange: "enabledChange" }, host: { listeners: { "focusout.stop": "noop()", "pointerdown.silent": "onDrag()", "document:pointerup.silent": "onDrop()" } }, ngImport: i0, template: "<tui-tiles\n class=\"t-wrapper\"\n [(order)]=\"order\"\n>\n <tui-tile\n *ngFor=\"let item of unsortedItems; let index = index\"\n tuiTileHandle\n [style.order]=\"order.get(index)\"\n >\n <div class=\"t-item\">\n <tui-svg\n src=\"tuiIconDrag\"\n class=\"t-icon\"\n ></tui-svg>\n {{ item }}\n <button\n type=\"button\"\n tuiIconButton\n appearance=\"icon\"\n size=\"xs\"\n class=\"t-button\"\n [class.t-button_hidden]=\"!isEnabled(item)\"\n [title]=\"showHideText$ | async\"\n [icon]=\"getIcon(item)\"\n (click)=\"toggle(item)\"\n (keydown.arrowUp.prevent)=\"move(index, -1)\"\n (keydown.arrowDown.prevent)=\"move(index, 1)\"\n ></button>\n </div>\n </tui-tile>\n</tui-tiles>\n", styles: [":host{display:block;font:var(--tui-font-text-s);padding:.5rem 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.t-wrapper{cursor:ns-resize;grid-auto-rows:2rem}.t-item{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;height:2rem;align-items:center;padding:0 .75rem;background:var(--tui-base-01)}.t-item:hover{background:var(--tui-base-02)}.t-item:hover .t-button{opacity:1}.t-icon{margin-right:.5rem;color:var(--tui-base-05)}.t-button{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;margin-left:auto;opacity:0}.t-button_hidden,.t-button:focus{opacity:1}\n"], components: [{ type: i1.TuiTilesComponent, selector: "tui-tiles", inputs: ["debounce", "order"], outputs: ["orderChange"] }, { type: i1.TuiTileComponent, selector: "tui-tile", inputs: ["width", "height"] }, { type: i2.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i2.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.TuiTileHandleDirective, selector: "[tuiTileHandle]" }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
97
+ TuiReorderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiReorderComponent, deps: [{ token: TUI_REORDER_OPTIONS }, { token: TUI_TABLE_SHOW_HIDE_MESSAGE }], target: i0.ɵɵFactoryTarget.Component });
98
+ TuiReorderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiReorderComponent, selector: "tui-reorder", inputs: { items: "items", enabled: "enabled" }, outputs: { itemsChange: "itemsChange", enabledChange: "enabledChange" }, host: { listeners: { "focusout.stop": "noop()", "pointerdown.silent": "onDrag()", "document:pointerup.silent": "onDrop()" } }, ngImport: i0, template: "<tui-tiles\n class=\"t-wrapper\"\n [(order)]=\"order\"\n>\n <tui-tile\n *ngFor=\"let item of unsortedItems; let index = index\"\n tuiTileHandle\n [style.order]=\"order.get(index)\"\n >\n <div class=\"t-item\">\n <tui-svg\n class=\"t-icon\"\n [src]=\"options.icons.drag\"\n ></tui-svg>\n {{ item }}\n <button\n type=\"button\"\n tuiIconButton\n appearance=\"icon\"\n size=\"xs\"\n class=\"t-button\"\n [class.t-button_hidden]=\"!isEnabled(item)\"\n [title]=\"showHideText$ | async\"\n [icon]=\"getIcon(item)\"\n (click)=\"toggle(item)\"\n (keydown.arrowUp.prevent)=\"move(index, -1)\"\n (keydown.arrowDown.prevent)=\"move(index, 1)\"\n ></button>\n </div>\n </tui-tile>\n</tui-tiles>\n", styles: [":host{display:block;font:var(--tui-font-text-s);padding:.5rem 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.t-wrapper{cursor:ns-resize;grid-auto-rows:2rem}.t-item{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;height:2rem;align-items:center;padding:0 .75rem;background:var(--tui-base-01)}.t-item:hover{background:var(--tui-base-02)}.t-item:hover .t-button{opacity:1}.t-icon{margin-right:.5rem;color:var(--tui-base-05)}.t-button{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;margin-left:auto;opacity:0}.t-button_hidden,.t-button:focus{opacity:1}\n"], components: [{ type: i1.TuiTilesComponent, selector: "tui-tiles", inputs: ["debounce", "order"], outputs: ["orderChange"] }, { type: i1.TuiTileComponent, selector: "tui-tile", inputs: ["width", "height"] }, { type: i2.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i2.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.TuiTileHandleDirective, selector: "[tuiTileHandle]" }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
85
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiReorderComponent, decorators: [{
86
100
  type: Component,
87
101
  args: [{
@@ -90,7 +104,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
90
104
  styleUrls: ['./reorder.style.less'],
91
105
  changeDetection: ChangeDetectionStrategy.OnPush,
92
106
  }]
93
- }], ctorParameters: function () { return [{ type: i4.Observable, decorators: [{
107
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
108
+ type: Inject,
109
+ args: [TUI_REORDER_OPTIONS]
110
+ }] }, { type: i4.Observable, decorators: [{
94
111
  type: Inject,
95
112
  args: [TUI_TABLE_SHOW_HIDE_MESSAGE]
96
113
  }] }]; }, propDecorators: { items: [{
@@ -130,5 +147,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
130
147
  * Generated bundle index. Do not edit.
131
148
  */
132
149
 
133
- export { TuiReorderComponent, TuiReorderModule };
150
+ export { TUI_REORDER_DEFAULT_OPTIONS, TUI_REORDER_OPTIONS, TuiReorderComponent, TuiReorderModule, tuiReorderOptionsProvider };
134
151
  //# sourceMappingURL=taiga-ui-addon-table-components-reorder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-table-components-reorder.js","sources":["../../../projects/addon-table/components/reorder/reorder.component.ts","../../../projects/addon-table/components/reorder/reorder.template.html","../../../projects/addon-table/components/reorder/reorder.module.ts","../../../projects/addon-table/components/reorder/taiga-ui-addon-table-components-reorder.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {TUI_TABLE_SHOW_HIDE_MESSAGE} from '@taiga-ui/addon-table/tokens';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'tui-reorder',\n templateUrl: './reorder.template.html',\n styleUrls: ['./reorder.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiReorderComponent<T> {\n private dragging = false;\n\n @Input()\n set items(items: readonly T[]) {\n if (\n items.length !== this.unsortedItems.length ||\n !items.every(item => this.unsortedItems.includes(item))\n ) {\n this.unsortedItems = items;\n }\n }\n\n @Input()\n enabled: readonly T[] = [];\n\n @Output()\n readonly itemsChange = new EventEmitter<T[]>();\n\n @Output()\n readonly enabledChange = new EventEmitter<T[]>();\n\n order = new Map<number, number>();\n\n unsortedItems: readonly T[] = [];\n\n constructor(\n @Inject(TUI_TABLE_SHOW_HIDE_MESSAGE) readonly showHideText$: Observable<string>,\n ) {}\n\n @HostListener('focusout.stop')\n noop(): void {}\n\n @HostListener('pointerdown.silent')\n onDrag(): void {\n this.dragging = true;\n }\n\n @HostListener('document:pointerup.silent')\n onDrop(): void {\n if (!this.dragging) {\n return;\n }\n\n this.dragging = false;\n this.updateItems();\n }\n\n isEnabled(item: T): boolean {\n return this.enabled.includes(item);\n }\n\n getIcon(item: T): string {\n return this.isEnabled(item) ? 'tuiIconEye' : 'tuiIconEyeOff';\n }\n\n toggle(toggled: T): void {\n this.enabled = this.isEnabled(toggled)\n ? this.enabled.filter(item => item !== toggled)\n : this.enabled.concat(toggled);\n\n this.updateEnabled();\n }\n\n move(index: number, direction: number): void {\n const oldIndex = this.order.get(index) ?? index;\n\n if (\n (!oldIndex && direction < 0) ||\n (oldIndex === this.unsortedItems.length - 1 && direction > 0)\n ) {\n return;\n }\n\n const newIndex = oldIndex + direction;\n const oldItem = Array.from(this.order.values()).findIndex(\n item => item === newIndex,\n );\n\n this.order.set(index, newIndex);\n this.order.set(oldItem, oldIndex);\n this.order = new Map(this.order);\n\n this.updateItems();\n }\n\n private getSortedItems(): T[] {\n const items = new Array(this.unsortedItems.length);\n\n this.unsortedItems.forEach((item, index) => {\n items[this.order.get(index) ?? index] = item;\n });\n\n return items;\n }\n\n private updateItems(): void {\n this.itemsChange.emit(this.getSortedItems());\n this.updateEnabled();\n }\n\n private updateEnabled(): void {\n const enabled = this.getSortedItems().filter(item => this.isEnabled(item));\n\n this.enabled = enabled;\n this.enabledChange.emit(enabled);\n }\n}\n","<tui-tiles\n class=\"t-wrapper\"\n [(order)]=\"order\"\n>\n <tui-tile\n *ngFor=\"let item of unsortedItems; let index = index\"\n tuiTileHandle\n [style.order]=\"order.get(index)\"\n >\n <div class=\"t-item\">\n <tui-svg\n src=\"tuiIconDrag\"\n class=\"t-icon\"\n ></tui-svg>\n {{ item }}\n <button\n type=\"button\"\n tuiIconButton\n appearance=\"icon\"\n size=\"xs\"\n class=\"t-button\"\n [class.t-button_hidden]=\"!isEnabled(item)\"\n [title]=\"showHideText$ | async\"\n [icon]=\"getIcon(item)\"\n (click)=\"toggle(item)\"\n (keydown.arrowUp.prevent)=\"move(index, -1)\"\n (keydown.arrowDown.prevent)=\"move(index, 1)\"\n ></button>\n </div>\n </tui-tile>\n</tui-tiles>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiButtonModule, TuiSvgModule} from '@taiga-ui/core';\nimport {TuiTilesModule} from '@taiga-ui/kit';\n\nimport {TuiReorderComponent} from './reorder.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule, TuiButtonModule, TuiTilesModule],\n declarations: [TuiReorderComponent],\n exports: [TuiReorderComponent],\n})\nexport class TuiReorderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-table-components-reorder.js","sources":["../../../projects/addon-table/components/reorder/reorder.options.ts","../../../projects/addon-table/components/reorder/reorder.component.ts","../../../projects/addon-table/components/reorder/reorder.template.html","../../../projects/addon-table/components/reorder/reorder.module.ts","../../../projects/addon-table/components/reorder/taiga-ui-addon-table-components-reorder.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {tuiCreateOptions, tuiProvideOptions} from '@taiga-ui/cdk';\n\nexport interface TuiReorderOptions {\n readonly icons: {\n readonly hide: string;\n readonly show: string;\n readonly drag: string;\n };\n}\n\nexport const TUI_REORDER_DEFAULT_OPTIONS: TuiReorderOptions = {\n icons: {\n hide: `tuiIconEye`,\n show: `tuiIconEyeOff`,\n drag: `tuiIconDrag`,\n },\n};\n\nexport const TUI_REORDER_OPTIONS = tuiCreateOptions(TUI_REORDER_DEFAULT_OPTIONS);\n\nexport function tuiReorderOptionsProvider(options: Partial<TuiReorderOptions>): Provider {\n return tuiProvideOptions(TUI_REORDER_OPTIONS, options, TUI_REORDER_DEFAULT_OPTIONS);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {TUI_TABLE_SHOW_HIDE_MESSAGE} from '@taiga-ui/addon-table/tokens';\nimport {Observable} from 'rxjs';\n\nimport {TUI_REORDER_OPTIONS, TuiReorderOptions} from './reorder.options';\n\n@Component({\n selector: 'tui-reorder',\n templateUrl: './reorder.template.html',\n styleUrls: ['./reorder.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiReorderComponent<T> {\n private dragging = false;\n\n @Input()\n set items(items: readonly T[]) {\n if (\n items.length !== this.unsortedItems.length ||\n !items.every(item => this.unsortedItems.includes(item))\n ) {\n this.unsortedItems = items;\n }\n }\n\n @Input()\n enabled: readonly T[] = [];\n\n @Output()\n readonly itemsChange = new EventEmitter<T[]>();\n\n @Output()\n readonly enabledChange = new EventEmitter<T[]>();\n\n order = new Map<number, number>();\n\n unsortedItems: readonly T[] = [];\n\n constructor(\n @Inject(TUI_REORDER_OPTIONS) readonly options: TuiReorderOptions,\n @Inject(TUI_TABLE_SHOW_HIDE_MESSAGE) readonly showHideText$: Observable<string>,\n ) {}\n\n @HostListener('focusout.stop')\n noop(): void {}\n\n @HostListener('pointerdown.silent')\n onDrag(): void {\n this.dragging = true;\n }\n\n @HostListener('document:pointerup.silent')\n onDrop(): void {\n if (!this.dragging) {\n return;\n }\n\n this.dragging = false;\n this.updateItems();\n }\n\n isEnabled(item: T): boolean {\n return this.enabled.includes(item);\n }\n\n getIcon(item: T): string {\n return this.isEnabled(item) ? this.options.icons.hide : this.options.icons.show;\n }\n\n toggle(toggled: T): void {\n this.enabled = this.isEnabled(toggled)\n ? this.enabled.filter(item => item !== toggled)\n : this.enabled.concat(toggled);\n\n this.updateEnabled();\n }\n\n move(index: number, direction: number): void {\n const oldIndex = this.order.get(index) ?? index;\n\n if (\n (!oldIndex && direction < 0) ||\n (oldIndex === this.unsortedItems.length - 1 && direction > 0)\n ) {\n return;\n }\n\n const newIndex = oldIndex + direction;\n const oldItem = Array.from(this.order.values()).findIndex(\n item => item === newIndex,\n );\n\n this.order.set(index, newIndex);\n this.order.set(oldItem, oldIndex);\n this.order = new Map(this.order);\n\n this.updateItems();\n }\n\n private getSortedItems(): T[] {\n const items = new Array(this.unsortedItems.length);\n\n this.unsortedItems.forEach((item, index) => {\n items[this.order.get(index) ?? index] = item;\n });\n\n return items;\n }\n\n private updateItems(): void {\n this.itemsChange.emit(this.getSortedItems());\n this.updateEnabled();\n }\n\n private updateEnabled(): void {\n const enabled = this.getSortedItems().filter(item => this.isEnabled(item));\n\n this.enabled = enabled;\n this.enabledChange.emit(enabled);\n }\n}\n","<tui-tiles\n class=\"t-wrapper\"\n [(order)]=\"order\"\n>\n <tui-tile\n *ngFor=\"let item of unsortedItems; let index = index\"\n tuiTileHandle\n [style.order]=\"order.get(index)\"\n >\n <div class=\"t-item\">\n <tui-svg\n class=\"t-icon\"\n [src]=\"options.icons.drag\"\n ></tui-svg>\n {{ item }}\n <button\n type=\"button\"\n tuiIconButton\n appearance=\"icon\"\n size=\"xs\"\n class=\"t-button\"\n [class.t-button_hidden]=\"!isEnabled(item)\"\n [title]=\"showHideText$ | async\"\n [icon]=\"getIcon(item)\"\n (click)=\"toggle(item)\"\n (keydown.arrowUp.prevent)=\"move(index, -1)\"\n (keydown.arrowDown.prevent)=\"move(index, 1)\"\n ></button>\n </div>\n </tui-tile>\n</tui-tiles>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiButtonModule, TuiSvgModule} from '@taiga-ui/core';\nimport {TuiTilesModule} from '@taiga-ui/kit';\n\nimport {TuiReorderComponent} from './reorder.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule, TuiButtonModule, TuiTilesModule],\n declarations: [TuiReorderComponent],\n exports: [TuiReorderComponent],\n})\nexport class TuiReorderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Component, ChangeDetectionStrategy, Inject, Input, Output, NgModule } from '@angular/core';
3
3
  import { TUI_TABLE_PAGINATION_TEXTS } from '@taiga-ui/addon-table/tokens';
4
4
  import * as i1 from '@taiga-ui/core';
5
- import { TUI_SPIN_TEXTS, TuiButtonModule, TuiLinkModule, TuiHostedDropdownModule, TuiDataListModule, TuiSvgModule } from '@taiga-ui/core';
5
+ import { TUI_SPIN_ICONS, TUI_SPIN_TEXTS, TUI_COMMON_ICONS, TuiButtonModule, TuiLinkModule, TuiHostedDropdownModule, TuiDataListModule, TuiSvgModule } from '@taiga-ui/core';
6
6
  import { tuiCreateOptions, tuiProvideOptions } from '@taiga-ui/cdk';
7
7
  import * as i2 from '@angular/common';
8
8
  import { CommonModule } from '@angular/common';
@@ -28,10 +28,12 @@ function tuiTablePaginationOptionsProvider(options) {
28
28
  }
29
29
 
30
30
  class TuiTablePaginationComponent {
31
- constructor(spinTexts$, texts$, options) {
31
+ constructor(icons, spinTexts$, texts$, options, commonIcons) {
32
+ this.icons = icons;
32
33
  this.spinTexts$ = spinTexts$;
33
34
  this.texts$ = texts$;
34
35
  this.options = options;
36
+ this.commonIcons = commonIcons;
35
37
  this.items = this.options.items;
36
38
  this.total = 0;
37
39
  this.page = 0;
@@ -90,8 +92,8 @@ class TuiTablePaginationComponent {
90
92
  this.paginationChange.emit(this.pagination);
91
93
  }
92
94
  }
93
- TuiTablePaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTablePaginationComponent, deps: [{ token: TUI_SPIN_TEXTS }, { token: TUI_TABLE_PAGINATION_TEXTS }, { token: TUI_TABLE_PAGINATION_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
94
- TuiTablePaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiTablePaginationComponent, selector: "tui-table-pagination", inputs: { items: "items", total: "total", page: "page", size: "size" }, outputs: { pageChange: "pageChange", sizeChange: "sizeChange", paginationChange: "paginationChange" }, ngImport: i0, template: "<ng-container *ngIf=\"texts$ | async as texts\">\n <span class=\"t-pages\">\n <ng-container *ngIf=\"options.showPages\">\n {{ texts.pages }}\n <strong class=\"t-strong\">{{ pages }}</strong>\n </ng-container>\n </span>\n <span automation-id=\"tui-table-pagination__lines-per-page-wrapper\">\n {{ texts.linesPerPage }}\n <tui-hosted-dropdown\n [content]=\"content\"\n [(open)]=\"open\"\n >\n <button\n tuiLink\n type=\"button\"\n >\n <strong>{{ start + 1 }}\u2013{{ end }}</strong>\n </button>\n <ng-template #content>\n <tui-data-list size=\"s\">\n <ng-container *ngFor=\"let item of items\">\n <button\n tuiOption\n class=\"t-item\"\n (click)=\"onItem(item)\"\n >\n <ng-container\n *polymorpheusOutlet=\"\n options.sizeOptionContent as text;\n context: {$implicit: item, total: total}\n \"\n >\n {{ text }}\n </ng-container>\n <tui-svg\n *ngIf=\"item === size; else fakeIcon\"\n src=\"tuiIconCheckLarge\"\n class=\"t-checkmark\"\n ></tui-svg>\n\n <ng-template #fakeIcon>\n <span class=\"t-checkmark\"></span>\n </ng-template>\n </button>\n </ng-container>\n </tui-data-list>\n </ng-template>\n </tui-hosted-dropdown>\n {{ texts.of }}\n <strong class=\"t-strong\">{{ total }}</strong>\n </span>\n <ng-container *ngIf=\"spinTexts$ | async as spinTexts\">\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"icon\"\n icon=\"tuiIconChevronLeft\"\n class=\"t-back\"\n [disabled]=\"leftDisabled\"\n [title]=\"spinTexts[0]\"\n (click)=\"back()\"\n ></button>\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"icon\"\n icon=\"tuiIconChevronRight\"\n [disabled]=\"rightDisabled\"\n [title]=\"spinTexts[1]\"\n (click)=\"forth()\"\n ></button>\n </ng-container>\n</ng-container>\n", styles: [":host{display:flex;font:var(--tui-font-text-s);align-items:center;color:var(--tui-text-03)}.t-strong{color:var(--tui-text-01)}.t-pages{margin-right:auto}.t-item{min-width:5.5rem;box-sizing:border-box}.t-checkmark{min-width:1.5rem;border-left:5px solid transparent}.t-back{margin:0 .25rem 0 1.5rem}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { type: i1.TuiDataListComponent, selector: "tui-data-list", inputs: ["role", "emptyContent", "size"] }, { type: i1.TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: ["size", "role", "disabled", "value"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
95
+ TuiTablePaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTablePaginationComponent, deps: [{ token: TUI_SPIN_ICONS }, { token: TUI_SPIN_TEXTS }, { token: TUI_TABLE_PAGINATION_TEXTS }, { token: TUI_TABLE_PAGINATION_OPTIONS }, { token: TUI_COMMON_ICONS }], target: i0.ɵɵFactoryTarget.Component });
96
+ TuiTablePaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiTablePaginationComponent, selector: "tui-table-pagination", inputs: { items: "items", total: "total", page: "page", size: "size" }, outputs: { pageChange: "pageChange", sizeChange: "sizeChange", paginationChange: "paginationChange" }, ngImport: i0, template: "<ng-container *ngIf=\"texts$ | async as texts\">\n <span class=\"t-pages\">\n <ng-container *ngIf=\"options.showPages\">\n {{ texts.pages }}\n <strong class=\"t-strong\">{{ pages }}</strong>\n </ng-container>\n </span>\n <span automation-id=\"tui-table-pagination__lines-per-page-wrapper\">\n {{ texts.linesPerPage }}\n <tui-hosted-dropdown\n [content]=\"content\"\n [(open)]=\"open\"\n >\n <button\n tuiLink\n type=\"button\"\n >\n <strong>{{ start + 1 }}\u2013{{ end }}</strong>\n </button>\n <ng-template #content>\n <tui-data-list size=\"s\">\n <ng-container *ngFor=\"let item of items\">\n <button\n tuiOption\n class=\"t-item\"\n (click)=\"onItem(item)\"\n >\n <ng-container\n *polymorpheusOutlet=\"\n options.sizeOptionContent as text;\n context: {$implicit: item, total: total}\n \"\n >\n {{ text }}\n </ng-container>\n <tui-svg\n *ngIf=\"item === size; else fakeIcon\"\n class=\"t-checkmark\"\n [src]=\"commonIcons.check\"\n ></tui-svg>\n\n <ng-template #fakeIcon>\n <span class=\"t-checkmark\"></span>\n </ng-template>\n </button>\n </ng-container>\n </tui-data-list>\n </ng-template>\n </tui-hosted-dropdown>\n {{ texts.of }}\n <strong class=\"t-strong\">{{ total }}</strong>\n </span>\n <ng-container *ngIf=\"spinTexts$ | async as spinTexts\">\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"icon\"\n class=\"t-back\"\n [icon]=\"icons.decrement\"\n [disabled]=\"leftDisabled\"\n [title]=\"spinTexts[0]\"\n (click)=\"back()\"\n ></button>\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"icon\"\n [icon]=\"icons.increment\"\n [disabled]=\"rightDisabled\"\n [title]=\"spinTexts[1]\"\n (click)=\"forth()\"\n ></button>\n </ng-container>\n</ng-container>\n", styles: [":host{display:flex;font:var(--tui-font-text-s);align-items:center;color:var(--tui-text-03)}.t-strong{color:var(--tui-text-01)}.t-pages{margin-right:auto}.t-item{min-width:5.5rem;box-sizing:border-box}.t-checkmark{min-width:1.5rem;border-left:5px solid transparent}.t-back{margin:0 .25rem 0 1.5rem}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { type: i1.TuiDataListComponent, selector: "tui-data-list", inputs: ["role", "emptyContent", "size"] }, { type: i1.TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: ["size", "role", "disabled", "value"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
95
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTablePaginationComponent, decorators: [{
96
98
  type: Component,
97
99
  args: [{
@@ -100,7 +102,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
100
102
  styleUrls: ['./table-pagination.style.less'],
101
103
  changeDetection: ChangeDetectionStrategy.OnPush,
102
104
  }]
103
- }], ctorParameters: function () { return [{ type: i4.Observable, decorators: [{
105
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
106
+ type: Inject,
107
+ args: [TUI_SPIN_ICONS]
108
+ }] }, { type: i4.Observable, decorators: [{
104
109
  type: Inject,
105
110
  args: [TUI_SPIN_TEXTS]
106
111
  }] }, { type: i4.Observable, decorators: [{
@@ -109,6 +114,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
109
114
  }] }, { type: undefined, decorators: [{
110
115
  type: Inject,
111
116
  args: [TUI_TABLE_PAGINATION_OPTIONS]
117
+ }] }, { type: undefined, decorators: [{
118
+ type: Inject,
119
+ args: [TUI_COMMON_ICONS]
112
120
  }] }]; }, propDecorators: { items: [{
113
121
  type: Input
114
122
  }], total: [{
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-table-components-table-pagination.js","sources":["../../../projects/addon-table/components/table-pagination/table-pagination.options.ts","../../../projects/addon-table/components/table-pagination/table-pagination.component.ts","../../../projects/addon-table/components/table-pagination/table-pagination.template.html","../../../projects/addon-table/components/table-pagination/table-pagination.module.ts","../../../projects/addon-table/components/table-pagination/taiga-ui-addon-table-components-table-pagination.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {TuiContextWithImplicit, tuiCreateOptions, tuiProvideOptions} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiTablePaginationOptions {\n readonly sizeOptionContent: PolymorpheusContent<\n TuiContextWithImplicit<number> & {total: number}\n >;\n readonly showPages: boolean;\n readonly items: readonly number[];\n readonly size: number;\n}\n\nfunction defaultSizeOptionContent({$implicit}: TuiContextWithImplicit<number>): string {\n return `${$implicit}`;\n}\n\nexport const TUI_TABLE_PAGINATION_DEFAULT_OPTIONS: TuiTablePaginationOptions = {\n sizeOptionContent: defaultSizeOptionContent,\n showPages: true,\n items: [10, 20, 50, 100],\n size: 10,\n};\n\n/**\n * Default parameters for TablePagination component\n */\nexport const TUI_TABLE_PAGINATION_OPTIONS = tuiCreateOptions(\n TUI_TABLE_PAGINATION_DEFAULT_OPTIONS,\n);\n\nexport function tuiTablePaginationOptionsProvider(\n options: Partial<TuiTablePaginationOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_TABLE_PAGINATION_OPTIONS,\n options,\n TUI_TABLE_PAGINATION_DEFAULT_OPTIONS,\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {TUI_TABLE_PAGINATION_TEXTS} from '@taiga-ui/addon-table/tokens';\nimport {TUI_SPIN_TEXTS} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\n\nimport {TuiTablePagination} from './table-pagination';\nimport {\n TUI_TABLE_PAGINATION_OPTIONS,\n TuiTablePaginationOptions,\n} from './table-pagination.options';\n\n@Component({\n selector: 'tui-table-pagination',\n templateUrl: './table-pagination.template.html',\n styleUrls: ['./table-pagination.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiTablePaginationComponent {\n @Input()\n items: readonly number[] = this.options.items;\n\n @Input()\n total = 0;\n\n @Input()\n page = 0;\n\n @Input()\n size = this.options.size;\n\n /**\n * TODO: Remove in 4.0\n * @deprecated use paginationChange\n */\n @Output()\n readonly pageChange = new EventEmitter<number>();\n\n /**\n * TODO: Remove in 4.0\n * @deprecated use paginationChange\n */\n @Output()\n readonly sizeChange = new EventEmitter<number>();\n\n @Output()\n readonly paginationChange = new EventEmitter<TuiTablePagination>();\n\n open = false;\n\n constructor(\n @Inject(TUI_SPIN_TEXTS) readonly spinTexts$: Observable<[string, string]>,\n @Inject(TUI_TABLE_PAGINATION_TEXTS)\n readonly texts$: Observable<Record<'linesPerPage' | 'of' | 'pages', string>>,\n @Inject(TUI_TABLE_PAGINATION_OPTIONS) readonly options: TuiTablePaginationOptions,\n ) {}\n\n get pages(): number {\n return Math.ceil(this.total / this.size);\n }\n\n get start(): number {\n return this.page * this.size;\n }\n\n get end(): number {\n return Math.min(this.start + this.size, this.total);\n }\n\n get leftDisabled(): boolean {\n return !this.start;\n }\n\n get rightDisabled(): boolean {\n return this.end === this.total;\n }\n\n get pagination(): TuiTablePagination {\n return {\n page: this.page,\n size: this.size,\n };\n }\n\n onItem(size: number): void {\n const {start} = this;\n\n this.size = size;\n this.sizeChange.emit(size);\n this.open = false;\n this.page = Math.floor(start / this.size);\n this.pageChange.emit(this.page);\n this.paginationChange.emit(this.pagination);\n }\n\n back(): void {\n this.page--;\n this.pageChange.emit(this.page);\n this.paginationChange.emit(this.pagination);\n }\n\n forth(): void {\n this.page++;\n this.pageChange.emit(this.page);\n this.paginationChange.emit(this.pagination);\n }\n}\n","<ng-container *ngIf=\"texts$ | async as texts\">\n <span class=\"t-pages\">\n <ng-container *ngIf=\"options.showPages\">\n {{ texts.pages }}\n <strong class=\"t-strong\">{{ pages }}</strong>\n </ng-container>\n </span>\n <span automation-id=\"tui-table-pagination__lines-per-page-wrapper\">\n {{ texts.linesPerPage }}\n <tui-hosted-dropdown\n [content]=\"content\"\n [(open)]=\"open\"\n >\n <button\n tuiLink\n type=\"button\"\n >\n <strong>{{ start + 1 }}–{{ end }}</strong>\n </button>\n <ng-template #content>\n <tui-data-list size=\"s\">\n <ng-container *ngFor=\"let item of items\">\n <button\n tuiOption\n class=\"t-item\"\n (click)=\"onItem(item)\"\n >\n <ng-container\n *polymorpheusOutlet=\"\n options.sizeOptionContent as text;\n context: {$implicit: item, total: total}\n \"\n >\n {{ text }}\n </ng-container>\n <tui-svg\n *ngIf=\"item === size; else fakeIcon\"\n src=\"tuiIconCheckLarge\"\n class=\"t-checkmark\"\n ></tui-svg>\n\n <ng-template #fakeIcon>\n <span class=\"t-checkmark\"></span>\n </ng-template>\n </button>\n </ng-container>\n </tui-data-list>\n </ng-template>\n </tui-hosted-dropdown>\n {{ texts.of }}\n <strong class=\"t-strong\">{{ total }}</strong>\n </span>\n <ng-container *ngIf=\"spinTexts$ | async as spinTexts\">\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"icon\"\n icon=\"tuiIconChevronLeft\"\n class=\"t-back\"\n [disabled]=\"leftDisabled\"\n [title]=\"spinTexts[0]\"\n (click)=\"back()\"\n ></button>\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"icon\"\n icon=\"tuiIconChevronRight\"\n [disabled]=\"rightDisabled\"\n [title]=\"spinTexts[1]\"\n (click)=\"forth()\"\n ></button>\n </ng-container>\n</ng-container>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiButtonModule,\n TuiDataListModule,\n TuiHostedDropdownModule,\n TuiLinkModule,\n TuiSvgModule,\n} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiTablePaginationComponent} from './table-pagination.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiButtonModule,\n TuiLinkModule,\n TuiHostedDropdownModule,\n TuiDataListModule,\n TuiSvgModule,\n PolymorpheusModule,\n ],\n declarations: [TuiTablePaginationComponent],\n exports: [TuiTablePaginationComponent],\n})\nexport class TuiTablePaginationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-table-components-table-pagination.js","sources":["../../../projects/addon-table/components/table-pagination/table-pagination.options.ts","../../../projects/addon-table/components/table-pagination/table-pagination.component.ts","../../../projects/addon-table/components/table-pagination/table-pagination.template.html","../../../projects/addon-table/components/table-pagination/table-pagination.module.ts","../../../projects/addon-table/components/table-pagination/taiga-ui-addon-table-components-table-pagination.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {TuiContextWithImplicit, tuiCreateOptions, tuiProvideOptions} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiTablePaginationOptions {\n readonly sizeOptionContent: PolymorpheusContent<\n TuiContextWithImplicit<number> & {total: number}\n >;\n readonly showPages: boolean;\n readonly items: readonly number[];\n readonly size: number;\n}\n\nfunction defaultSizeOptionContent({$implicit}: TuiContextWithImplicit<number>): string {\n return `${$implicit}`;\n}\n\nexport const TUI_TABLE_PAGINATION_DEFAULT_OPTIONS: TuiTablePaginationOptions = {\n sizeOptionContent: defaultSizeOptionContent,\n showPages: true,\n items: [10, 20, 50, 100],\n size: 10,\n};\n\n/**\n * Default parameters for TablePagination component\n */\nexport const TUI_TABLE_PAGINATION_OPTIONS = tuiCreateOptions(\n TUI_TABLE_PAGINATION_DEFAULT_OPTIONS,\n);\n\nexport function tuiTablePaginationOptionsProvider(\n options: Partial<TuiTablePaginationOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_TABLE_PAGINATION_OPTIONS,\n options,\n TUI_TABLE_PAGINATION_DEFAULT_OPTIONS,\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {TUI_TABLE_PAGINATION_TEXTS} from '@taiga-ui/addon-table/tokens';\nimport {\n TUI_COMMON_ICONS,\n TUI_SPIN_ICONS,\n TUI_SPIN_TEXTS,\n TuiCommonIcons,\n TuiSpinIcons,\n} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\n\nimport {\n TUI_TABLE_PAGINATION_OPTIONS,\n TuiTablePaginationOptions,\n} from './table-pagination.options';\n\nexport interface TuiTablePagination {\n readonly page: number;\n readonly size: number;\n}\n\n@Component({\n selector: 'tui-table-pagination',\n templateUrl: './table-pagination.template.html',\n styleUrls: ['./table-pagination.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiTablePaginationComponent {\n @Input()\n items: readonly number[] = this.options.items;\n\n @Input()\n total = 0;\n\n @Input()\n page = 0;\n\n @Input()\n size = this.options.size;\n\n /**\n * TODO: Remove in 4.0\n * @deprecated use paginationChange\n */\n @Output()\n readonly pageChange = new EventEmitter<number>();\n\n /**\n * TODO: Remove in 4.0\n * @deprecated use paginationChange\n */\n @Output()\n readonly sizeChange = new EventEmitter<number>();\n\n @Output()\n readonly paginationChange = new EventEmitter<TuiTablePagination>();\n\n open = false;\n\n constructor(\n @Inject(TUI_SPIN_ICONS) readonly icons: TuiSpinIcons,\n @Inject(TUI_SPIN_TEXTS) readonly spinTexts$: Observable<[string, string]>,\n @Inject(TUI_TABLE_PAGINATION_TEXTS)\n readonly texts$: Observable<Record<'linesPerPage' | 'of' | 'pages', string>>,\n @Inject(TUI_TABLE_PAGINATION_OPTIONS) readonly options: TuiTablePaginationOptions,\n @Inject(TUI_COMMON_ICONS) readonly commonIcons: TuiCommonIcons,\n ) {}\n\n get pages(): number {\n return Math.ceil(this.total / this.size);\n }\n\n get start(): number {\n return this.page * this.size;\n }\n\n get end(): number {\n return Math.min(this.start + this.size, this.total);\n }\n\n get leftDisabled(): boolean {\n return !this.start;\n }\n\n get rightDisabled(): boolean {\n return this.end === this.total;\n }\n\n get pagination(): TuiTablePagination {\n return {\n page: this.page,\n size: this.size,\n };\n }\n\n onItem(size: number): void {\n const {start} = this;\n\n this.size = size;\n this.sizeChange.emit(size);\n this.open = false;\n this.page = Math.floor(start / this.size);\n this.pageChange.emit(this.page);\n this.paginationChange.emit(this.pagination);\n }\n\n back(): void {\n this.page--;\n this.pageChange.emit(this.page);\n this.paginationChange.emit(this.pagination);\n }\n\n forth(): void {\n this.page++;\n this.pageChange.emit(this.page);\n this.paginationChange.emit(this.pagination);\n }\n}\n","<ng-container *ngIf=\"texts$ | async as texts\">\n <span class=\"t-pages\">\n <ng-container *ngIf=\"options.showPages\">\n {{ texts.pages }}\n <strong class=\"t-strong\">{{ pages }}</strong>\n </ng-container>\n </span>\n <span automation-id=\"tui-table-pagination__lines-per-page-wrapper\">\n {{ texts.linesPerPage }}\n <tui-hosted-dropdown\n [content]=\"content\"\n [(open)]=\"open\"\n >\n <button\n tuiLink\n type=\"button\"\n >\n <strong>{{ start + 1 }}–{{ end }}</strong>\n </button>\n <ng-template #content>\n <tui-data-list size=\"s\">\n <ng-container *ngFor=\"let item of items\">\n <button\n tuiOption\n class=\"t-item\"\n (click)=\"onItem(item)\"\n >\n <ng-container\n *polymorpheusOutlet=\"\n options.sizeOptionContent as text;\n context: {$implicit: item, total: total}\n \"\n >\n {{ text }}\n </ng-container>\n <tui-svg\n *ngIf=\"item === size; else fakeIcon\"\n class=\"t-checkmark\"\n [src]=\"commonIcons.check\"\n ></tui-svg>\n\n <ng-template #fakeIcon>\n <span class=\"t-checkmark\"></span>\n </ng-template>\n </button>\n </ng-container>\n </tui-data-list>\n </ng-template>\n </tui-hosted-dropdown>\n {{ texts.of }}\n <strong class=\"t-strong\">{{ total }}</strong>\n </span>\n <ng-container *ngIf=\"spinTexts$ | async as spinTexts\">\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"icon\"\n class=\"t-back\"\n [icon]=\"icons.decrement\"\n [disabled]=\"leftDisabled\"\n [title]=\"spinTexts[0]\"\n (click)=\"back()\"\n ></button>\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"icon\"\n [icon]=\"icons.increment\"\n [disabled]=\"rightDisabled\"\n [title]=\"spinTexts[1]\"\n (click)=\"forth()\"\n ></button>\n </ng-container>\n</ng-container>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiButtonModule,\n TuiDataListModule,\n TuiHostedDropdownModule,\n TuiLinkModule,\n TuiSvgModule,\n} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiTablePaginationComponent} from './table-pagination.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiButtonModule,\n TuiLinkModule,\n TuiHostedDropdownModule,\n TuiDataListModule,\n TuiSvgModule,\n PolymorpheusModule,\n ],\n declarations: [TuiTablePaginationComponent],\n exports: [TuiTablePaginationComponent],\n})\nexport class TuiTablePaginationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}