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

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 (35) hide show
  1. package/bundles/taiga-ui-addon-table-components-reorder.umd.js +28 -9
  2. package/bundles/taiga-ui-addon-table-components-reorder.umd.js.map +1 -1
  3. package/bundles/taiga-ui-addon-table-components-table-pagination.umd.js +12 -4
  4. package/bundles/taiga-ui-addon-table-components-table-pagination.umd.js.map +1 -1
  5. package/bundles/taiga-ui-addon-table-components-table.umd.js +52 -16
  6. package/bundles/taiga-ui-addon-table-components-table.umd.js.map +1 -1
  7. package/components/reorder/index.d.ts +1 -0
  8. package/components/reorder/reorder.component.d.ts +3 -1
  9. package/components/reorder/reorder.options.d.ts +11 -0
  10. package/components/table/directives/table.directive.d.ts +6 -4
  11. package/components/table/index.d.ts +1 -0
  12. package/components/table/table.options.d.ts +17 -0
  13. package/components/table/tbody/tbody.component.d.ts +5 -1
  14. package/components/table/th/th.component.d.ts +4 -2
  15. package/components/table-pagination/index.d.ts +0 -1
  16. package/components/table-pagination/table-pagination.component.d.ts +8 -2
  17. package/esm2015/components/reorder/index.js +2 -1
  18. package/esm2015/components/reorder/reorder.component.js +11 -6
  19. package/esm2015/components/reorder/reorder.options.js +13 -0
  20. package/esm2015/components/table/directives/table.directive.js +10 -5
  21. package/esm2015/components/table/index.js +2 -1
  22. package/esm2015/components/table/table.options.js +18 -0
  23. package/esm2015/components/table/tbody/tbody.component.js +15 -5
  24. package/esm2015/components/table/th/th.component.js +14 -9
  25. package/esm2015/components/table-pagination/index.js +1 -2
  26. package/esm2015/components/table-pagination/table-pagination.component.js +14 -6
  27. package/fesm2015/taiga-ui-addon-table-components-reorder.js +23 -6
  28. package/fesm2015/taiga-ui-addon-table-components-reorder.js.map +1 -1
  29. package/fesm2015/taiga-ui-addon-table-components-table-pagination.js +13 -5
  30. package/fesm2015/taiga-ui-addon-table-components-table-pagination.js.map +1 -1
  31. package/fesm2015/taiga-ui-addon-table-components-table.js +52 -19
  32. package/fesm2015/taiga-ui-addon-table-components-table.js.map +1 -1
  33. package/package.json +5 -5
  34. package/components/table-pagination/table-pagination.d.ts +0 -4
  35. package/esm2015/components/table-pagination/table-pagination.js +0 -2
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@taiga-ui/addon-table/tokens'), require('@taiga-ui/kit'), require('@taiga-ui/core'), require('@angular/common'), require('rxjs')) :
3
- typeof define === 'function' && define.amd ? define('@taiga-ui/addon-table/components/reorder', ['exports', '@angular/core', '@taiga-ui/addon-table/tokens', '@taiga-ui/kit', '@taiga-ui/core', '@angular/common', 'rxjs'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["taiga-ui"] = global["taiga-ui"] || {}, global["taiga-ui"]["addon-table"] = global["taiga-ui"]["addon-table"] || {}, global["taiga-ui"]["addon-table"].components = global["taiga-ui"]["addon-table"].components || {}, global["taiga-ui"]["addon-table"].components.reorder = {}), global.ng.core, global["taiga-ui"]["addon-table"].tokens, global.i1, global.i2, global.ng.common, global.rxjs));
5
- })(this, (function (exports, i0, tokens, i1, i2, i3, i4) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@taiga-ui/addon-table/tokens'), require('@taiga-ui/cdk'), require('@taiga-ui/kit'), require('@taiga-ui/core'), require('@angular/common'), require('rxjs')) :
3
+ typeof define === 'function' && define.amd ? define('@taiga-ui/addon-table/components/reorder', ['exports', '@angular/core', '@taiga-ui/addon-table/tokens', '@taiga-ui/cdk', '@taiga-ui/kit', '@taiga-ui/core', '@angular/common', 'rxjs'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["taiga-ui"] = global["taiga-ui"] || {}, global["taiga-ui"]["addon-table"] = global["taiga-ui"]["addon-table"] || {}, global["taiga-ui"]["addon-table"].components = global["taiga-ui"]["addon-table"].components || {}, global["taiga-ui"]["addon-table"].components.reorder = {}), global.ng.core, global["taiga-ui"]["addon-table"].tokens, global.cdk, global.i1, global.i2, global.ng.common, global.rxjs));
5
+ })(this, (function (exports, i0, tokens, cdk, i1, i2, i3, i4) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -28,8 +28,21 @@
28
28
  var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
29
29
  var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
30
30
 
31
+ var TUI_REORDER_DEFAULT_OPTIONS = {
32
+ icons: {
33
+ hide: "tuiIconEye",
34
+ show: "tuiIconEyeOff",
35
+ drag: "tuiIconDrag",
36
+ },
37
+ };
38
+ var TUI_REORDER_OPTIONS = cdk.tuiCreateOptions(TUI_REORDER_DEFAULT_OPTIONS);
39
+ function tuiReorderOptionsProvider(options) {
40
+ return cdk.tuiProvideOptions(TUI_REORDER_OPTIONS, options, TUI_REORDER_DEFAULT_OPTIONS);
41
+ }
42
+
31
43
  var TuiReorderComponent = /** @class */ (function () {
32
- function TuiReorderComponent(showHideText$) {
44
+ function TuiReorderComponent(options, showHideText$) {
45
+ this.options = options;
33
46
  this.showHideText$ = showHideText$;
34
47
  this.dragging = false;
35
48
  this.enabled = [];
@@ -64,7 +77,7 @@
64
77
  return this.enabled.includes(item);
65
78
  };
66
79
  TuiReorderComponent.prototype.getIcon = function (item) {
67
- return this.isEnabled(item) ? 'tuiIconEye' : 'tuiIconEyeOff';
80
+ return this.isEnabled(item) ? this.options.icons.hide : this.options.icons.show;
68
81
  };
69
82
  TuiReorderComponent.prototype.toggle = function (toggled) {
70
83
  this.enabled = this.isEnabled(toggled)
@@ -107,8 +120,8 @@
107
120
  };
108
121
  return TuiReorderComponent;
109
122
  }());
110
- TuiReorderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiReorderComponent, deps: [{ token: tokens.TUI_TABLE_SHOW_HIDE_MESSAGE }], target: i0__namespace.ɵɵFactoryTarget.Component });
111
- TuiReorderComponent.ɵcmp = i0__namespace.ɵɵ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__namespace, 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__namespace.TuiTilesComponent, selector: "tui-tiles", inputs: ["debounce", "order"], outputs: ["orderChange"] }, { type: i1__namespace.TuiTileComponent, selector: "tui-tile", inputs: ["width", "height"] }, { type: i2__namespace.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i2__namespace.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i3__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.TuiTileHandleDirective, selector: "[tuiTileHandle]" }], pipes: { "async": i3__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
123
+ TuiReorderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiReorderComponent, deps: [{ token: TUI_REORDER_OPTIONS }, { token: tokens.TUI_TABLE_SHOW_HIDE_MESSAGE }], target: i0__namespace.ɵɵFactoryTarget.Component });
124
+ TuiReorderComponent.ɵcmp = i0__namespace.ɵɵ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__namespace, 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__namespace.TuiTilesComponent, selector: "tui-tiles", inputs: ["debounce", "order"], outputs: ["orderChange"] }, { type: i1__namespace.TuiTileComponent, selector: "tui-tile", inputs: ["width", "height"] }, { type: i2__namespace.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i2__namespace.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i3__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.TuiTileHandleDirective, selector: "[tuiTileHandle]" }], pipes: { "async": i3__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
112
125
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiReorderComponent, decorators: [{
113
126
  type: i0.Component,
114
127
  args: [{
@@ -118,7 +131,10 @@
118
131
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
119
132
  }]
120
133
  }], ctorParameters: function () {
121
- return [{ type: i4__namespace.Observable, decorators: [{
134
+ return [{ type: undefined, decorators: [{
135
+ type: i0.Inject,
136
+ args: [TUI_REORDER_OPTIONS]
137
+ }] }, { type: i4__namespace.Observable, decorators: [{
122
138
  type: i0.Inject,
123
139
  args: [tokens.TUI_TABLE_SHOW_HIDE_MESSAGE]
124
140
  }] }];
@@ -162,8 +178,11 @@
162
178
  * Generated bundle index. Do not edit.
163
179
  */
164
180
 
181
+ exports.TUI_REORDER_DEFAULT_OPTIONS = TUI_REORDER_DEFAULT_OPTIONS;
182
+ exports.TUI_REORDER_OPTIONS = TUI_REORDER_OPTIONS;
165
183
  exports.TuiReorderComponent = TuiReorderComponent;
166
184
  exports.TuiReorderModule = TuiReorderModule;
185
+ exports.tuiReorderOptionsProvider = tuiReorderOptionsProvider;
167
186
 
168
187
  Object.defineProperty(exports, '__esModule', { value: true });
169
188
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-table-components-reorder.umd.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":["EventEmitter","i0","TUI_TABLE_SHOW_HIDE_MESSAGE","i1","i2","i3","Component","ChangeDetectionStrategy","Inject","Input","Output","HostListener","CommonModule","TuiSvgModule","TuiButtonModule","TuiTilesModule","NgModule"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-table-components-reorder.umd.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":["tuiCreateOptions","tuiProvideOptions","EventEmitter","TUI_TABLE_SHOW_HIDE_MESSAGE","i0","i1","i2","i3","Component","ChangeDetectionStrategy","Inject","Input","Output","HostListener","CommonModule","TuiSvgModule","TuiButtonModule","TuiTilesModule","NgModule"],"mappings":"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"}
@@ -47,10 +47,12 @@
47
47
  }
48
48
 
49
49
  var TuiTablePaginationComponent = /** @class */ (function () {
50
- function TuiTablePaginationComponent(spinTexts$, texts$, options) {
50
+ function TuiTablePaginationComponent(icons, spinTexts$, texts$, options, commonIcons) {
51
+ this.icons = icons;
51
52
  this.spinTexts$ = spinTexts$;
52
53
  this.texts$ = texts$;
53
54
  this.options = options;
55
+ this.commonIcons = commonIcons;
54
56
  this.items = this.options.items;
55
57
  this.total = 0;
56
58
  this.page = 0;
@@ -134,8 +136,8 @@
134
136
  };
135
137
  return TuiTablePaginationComponent;
136
138
  }());
137
- TuiTablePaginationComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiTablePaginationComponent, deps: [{ token: i1.TUI_SPIN_TEXTS }, { token: tokens.TUI_TABLE_PAGINATION_TEXTS }, { token: TUI_TABLE_PAGINATION_OPTIONS }], target: i0__namespace.ɵɵFactoryTarget.Component });
138
- TuiTablePaginationComponent.ɵcmp = i0__namespace.ɵɵ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__namespace, 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__namespace.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1__namespace.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { type: i1__namespace.TuiDataListComponent, selector: "tui-data-list", inputs: ["role", "emptyContent", "size"] }, { type: i1__namespace.TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: ["size", "role", "disabled", "value"] }, { type: i1__namespace.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1__namespace.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3__namespace.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i2__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
139
+ TuiTablePaginationComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiTablePaginationComponent, deps: [{ token: i1.TUI_SPIN_ICONS }, { token: i1.TUI_SPIN_TEXTS }, { token: tokens.TUI_TABLE_PAGINATION_TEXTS }, { token: TUI_TABLE_PAGINATION_OPTIONS }, { token: i1.TUI_COMMON_ICONS }], target: i0__namespace.ɵɵFactoryTarget.Component });
140
+ TuiTablePaginationComponent.ɵcmp = i0__namespace.ɵɵ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__namespace, 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__namespace.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1__namespace.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { type: i1__namespace.TuiDataListComponent, selector: "tui-data-list", inputs: ["role", "emptyContent", "size"] }, { type: i1__namespace.TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: ["size", "role", "disabled", "value"] }, { type: i1__namespace.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1__namespace.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3__namespace.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i2__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
139
141
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiTablePaginationComponent, decorators: [{
140
142
  type: i0.Component,
141
143
  args: [{
@@ -145,7 +147,10 @@
145
147
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
146
148
  }]
147
149
  }], ctorParameters: function () {
148
- return [{ type: i4__namespace.Observable, decorators: [{
150
+ return [{ type: undefined, decorators: [{
151
+ type: i0.Inject,
152
+ args: [i1.TUI_SPIN_ICONS]
153
+ }] }, { type: i4__namespace.Observable, decorators: [{
149
154
  type: i0.Inject,
150
155
  args: [i1.TUI_SPIN_TEXTS]
151
156
  }] }, { type: i4__namespace.Observable, decorators: [{
@@ -154,6 +159,9 @@
154
159
  }] }, { type: undefined, decorators: [{
155
160
  type: i0.Inject,
156
161
  args: [TUI_TABLE_PAGINATION_OPTIONS]
162
+ }] }, { type: undefined, decorators: [{
163
+ type: i0.Inject,
164
+ args: [i1.TUI_COMMON_ICONS]
157
165
  }] }];
158
166
  }, propDecorators: { items: [{
159
167
  type: i0.Input
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-table-components-table-pagination.umd.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":["tuiCreateOptions","tuiProvideOptions","EventEmitter","i0","TUI_SPIN_TEXTS","TUI_TABLE_PAGINATION_TEXTS","i1","i2","i3","Component","ChangeDetectionStrategy","Inject","Input","Output","CommonModule","TuiButtonModule","TuiLinkModule","TuiHostedDropdownModule","TuiDataListModule","TuiSvgModule","PolymorpheusModule","NgModule"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-table-components-table-pagination.umd.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":["tuiCreateOptions","tuiProvideOptions","EventEmitter","TUI_SPIN_ICONS","TUI_SPIN_TEXTS","TUI_TABLE_PAGINATION_TEXTS","TUI_COMMON_ICONS","i0","i1","i2","i3","Component","ChangeDetectionStrategy","Inject","Input","Output","CommonModule","TuiButtonModule","TuiLinkModule","TuiHostedDropdownModule","TuiDataListModule","TuiSvgModule","PolymorpheusModule","NgModule"],"mappings":"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"}
@@ -425,17 +425,35 @@
425
425
  TUI_STUCK_PROVIDER,
426
426
  ];
427
427
 
428
+ var TUI_TABLE_DEFAULT_OPTIONS = {
429
+ sticky: false,
430
+ resizable: false,
431
+ open: true,
432
+ size: "m",
433
+ direction: 1,
434
+ sortIcons: {
435
+ asc: "tuiIconSortAscending",
436
+ desc: "tuiIconSortDescending",
437
+ off: "tuiIconSortOff",
438
+ },
439
+ };
440
+ var TUI_TABLE_OPTIONS = i4.tuiCreateOptions(TUI_TABLE_DEFAULT_OPTIONS);
441
+ function tuiTableOptionsProvider(options) {
442
+ return i4.tuiProvideOptions(TUI_TABLE_OPTIONS, options, TUI_TABLE_DEFAULT_OPTIONS);
443
+ }
444
+
428
445
  var TuiTableDirective = /** @class */ (function (_super) {
429
446
  __extends(TuiTableDirective, _super);
430
- function TuiTableDirective(entries$, mode$, stuck$, cdr) {
447
+ function TuiTableDirective(entries$, mode$, stuck$, options, cdr) {
431
448
  var _this = _super.call(this) || this;
432
449
  _this.entries$ = entries$;
433
450
  _this.mode$ = mode$;
434
451
  _this.stuck$ = stuck$;
452
+ _this.options = options;
435
453
  _this.cdr = cdr;
436
454
  _this.columns = [];
437
- _this.size = 'm';
438
- _this.direction = 1;
455
+ _this.size = _this.options.size;
456
+ _this.direction = _this.options.direction;
439
457
  _this.directionChange = new i0.EventEmitter();
440
458
  _this.sorterChange = new i0.EventEmitter();
441
459
  _this.sorter = function () { return 0; };
@@ -465,7 +483,7 @@
465
483
  };
466
484
  return TuiTableDirective;
467
485
  }(i4.AbstractTuiController));
468
- TuiTableDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiTableDirective, deps: [{ token: intersectionObserver.IntersectionObserverService }, { token: i1.TUI_MODE }, { token: TUI_STUCK }, { token: i0.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Directive });
486
+ TuiTableDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiTableDirective, deps: [{ token: intersectionObserver.IntersectionObserverService }, { token: i1.TUI_MODE }, { token: TUI_STUCK }, { token: TUI_TABLE_OPTIONS }, { token: i0.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Directive });
469
487
  TuiTableDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiTableDirective, selector: "table[tuiTable]", inputs: { columns: "columns", size: "size", direction: "direction", sorter: "sorter" }, outputs: { directionChange: "directionChange", sorterChange: "sorterChange" }, host: { listeners: { "$.data-mode.attr": "mode$", "$.class._stuck": "stuck$" }, properties: { "attr.data-size": "this.size" }, styleAttribute: "border-collapse: separate" }, providers: TUI_TABLE_PROVIDERS, usesInheritance: true, ngImport: i0__namespace });
470
488
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiTableDirective, decorators: [{
471
489
  type: i0.Directive,
@@ -488,6 +506,9 @@
488
506
  }] }, { type: i1__namespace.Observable, decorators: [{
489
507
  type: i0.Inject,
490
508
  args: [TUI_STUCK]
509
+ }] }, { type: undefined, decorators: [{
510
+ type: i0.Inject,
511
+ args: [TUI_TABLE_OPTIONS]
491
512
  }] }, { type: i0__namespace.ChangeDetectorRef, decorators: [{
492
513
  type: i0.Inject,
493
514
  args: [i0.ChangeDetectorRef]
@@ -634,15 +655,16 @@
634
655
  }] } });
635
656
 
636
657
  var TuiThComponent = /** @class */ (function () {
637
- function TuiThComponent(head, table) {
658
+ function TuiThComponent(options, head, table) {
638
659
  var _this = this;
660
+ this.options = options;
639
661
  this.head = head;
640
662
  this.table = table;
641
663
  this.sorter = this.head
642
664
  ? function (a, b) { return i4.tuiDefaultSort(a[_this.key], b[_this.key]); }
643
665
  : null;
644
- this.resizable = false;
645
- this.sticky = false;
666
+ this.resizable = this.options.resizable;
667
+ this.sticky = this.options.sticky;
646
668
  this.width = null;
647
669
  }
648
670
  Object.defineProperty(TuiThComponent.prototype, "key", {
@@ -667,10 +689,10 @@
667
689
  var _a;
668
690
  if (this.isCurrent) {
669
691
  return ((_a = this.table) === null || _a === void 0 ? void 0 : _a.direction) === 1
670
- ? 'tuiIconSortDescending'
671
- : 'tuiIconSortAscending';
692
+ ? this.options.sortIcons.desc
693
+ : this.options.sortIcons.asc;
672
694
  }
673
- return 'tuiIconSortOff';
695
+ return this.options.sortIcons.off;
674
696
  },
675
697
  enumerable: false,
676
698
  configurable: true
@@ -680,7 +702,7 @@
680
702
  };
681
703
  return TuiThComponent;
682
704
  }());
683
- TuiThComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiThComponent, deps: [{ token: TuiHeadDirective, optional: true }, { token: i0.forwardRef(function () { return TuiTableDirective; }), optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
705
+ TuiThComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiThComponent, deps: [{ token: TUI_TABLE_OPTIONS }, { token: TuiHeadDirective, optional: true }, { token: i0.forwardRef(function () { return TuiTableDirective; }), optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
684
706
  TuiThComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiThComponent, selector: "th[tuiTh]", inputs: { sorter: "sorter", resizable: "resizable", sticky: "sticky" }, host: { properties: { "class._sticky": "this.sticky", "style.width.px": "this.width" } }, providers: [
685
707
  {
686
708
  provide: i1.TUI_ELEMENT_REF,
@@ -702,7 +724,10 @@
702
724
  ],
703
725
  }]
704
726
  }], ctorParameters: function () {
705
- return [{ type: TuiHeadDirective, decorators: [{
727
+ return [{ type: undefined, decorators: [{
728
+ type: i0.Inject,
729
+ args: [TUI_TABLE_OPTIONS]
730
+ }] }, { type: TuiHeadDirective, decorators: [{
706
731
  type: i0.Optional
707
732
  }, {
708
733
  type: i0.Inject,
@@ -972,11 +997,13 @@
972
997
  }] } });
973
998
 
974
999
  var TuiTbodyComponent = /** @class */ (function () {
975
- function TuiTbodyComponent(pipe, table) {
1000
+ function TuiTbodyComponent(pipe, options, arrowOptions, table) {
976
1001
  this.pipe = pipe;
1002
+ this.options = options;
1003
+ this.arrowOptions = arrowOptions;
977
1004
  this.table = table;
978
1005
  this.data = [];
979
- this.open = true;
1006
+ this.open = this.options.open;
980
1007
  this.openChange = new i0.EventEmitter();
981
1008
  this.rows = i4.EMPTY_QUERY;
982
1009
  this.toContext = function ($implicit, index) { return ({ $implicit: $implicit, index: index }); };
@@ -994,8 +1021,8 @@
994
1021
  };
995
1022
  return TuiTbodyComponent;
996
1023
  }());
997
- TuiTbodyComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiTbodyComponent, deps: [{ token: TuiTableSortPipe }, { token: i0.forwardRef(function () { return TuiTableDirective; }) }], target: i0__namespace.ɵɵFactoryTarget.Component });
998
- TuiTbodyComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiTbodyComponent, selector: "tbody[tuiTbody]", inputs: { data: "data", heading: "heading", open: "open" }, outputs: { openChange: "openChange" }, providers: TUI_TABLE_PROVIDER, queries: [{ propertyName: "row", first: true, predicate: i0__namespace.forwardRef(function () { return TuiRowDirective; }), descendants: true }, { propertyName: "rows", predicate: i0__namespace.forwardRef(function () { return TuiTrComponent; }) }], ngImport: i0__namespace, template: "<tr *ngIf=\"heading\">\n <th\n class=\"t-heading\"\n [colSpan]=\"table.columns.length\"\n >\n <button\n type=\"button\"\n class=\"t-expand\"\n (click)=\"onClick()\"\n >\n <span class=\"t-name\">\n <ng-container *polymorpheusOutlet=\"heading as text\">\n {{ text }}\n </ng-container>\n </span>\n <tui-svg\n src=\"tuiIconChevronDownLarge\"\n class=\"t-chevron\"\n [class.t-chevron_rotated]=\"open\"\n ></tui-svg>\n </button>\n </th>\n</tr>\n<ng-container *ngIf=\"open\">\n <ng-content></ng-content>\n</ng-container>\n<ng-container *ngIf=\"open && row\">\n <ng-container\n *ngFor=\"let item of sorted; let index = index\"\n [ngTemplateOutlet]=\"row.template\"\n [ngTemplateOutletContext]=\"item | tuiMapper : toContext : index\"\n ></ng-container>\n</ng-container>\n", styles: [":host{border-color:var(--tui-base-04)}:host tr{border-color:inherit}.t-expand{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:none;font-size:inherit;line-height:inherit;display:flex;width:100%;height:100%;align-items:center;box-sizing:border-box;outline:none;font-weight:bold;cursor:pointer;border-color:inherit}.t-expand:focus-visible .t-name{background:var(--tui-selection)}.t-expand:before,.t-expand:after{content:\"\";position:-webkit-sticky;position:sticky;height:100%;border-left:1px solid;border-color:inherit}.t-expand:before{left:0}.t-expand:after{right:0}.t-heading{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;height:var(--tui-height-m);font:var(--tui-font-text-s);padding:0;background:var(--tui-base-02);border-bottom:1px solid var(--tui-base-04);border-color:inherit}.t-heading:hover{background:var(--tui-base-03)}:host-context(table[data-size=\"l\"]) .t-heading{font:var(--tui-font-text-m);height:var(--tui-height-l)}.t-name{position:-webkit-sticky;position:sticky;left:.75rem;display:inline-block}:host-context(table[data-size=\"l\"]) .t-name{left:1rem}.t-chevron{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:-webkit-sticky;position:sticky;right:.75rem;margin:0 .6875rem 0 auto}.t-chevron_rotated{transform:rotate(180deg)}\n"], components: [{ type: i1__namespace$1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "tuiMapper": i4__namespace.TuiMapperPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1024
+ TuiTbodyComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiTbodyComponent, deps: [{ token: TuiTableSortPipe }, { token: TUI_TABLE_OPTIONS }, { token: kit.TUI_ARROW_OPTIONS }, { token: i0.forwardRef(function () { return TuiTableDirective; }) }], target: i0__namespace.ɵɵFactoryTarget.Component });
1025
+ TuiTbodyComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiTbodyComponent, selector: "tbody[tuiTbody]", inputs: { data: "data", heading: "heading", open: "open" }, outputs: { openChange: "openChange" }, providers: TUI_TABLE_PROVIDER, queries: [{ propertyName: "row", first: true, predicate: i0__namespace.forwardRef(function () { return TuiRowDirective; }), descendants: true }, { propertyName: "rows", predicate: i0__namespace.forwardRef(function () { return TuiTrComponent; }) }], ngImport: i0__namespace, template: "<tr *ngIf=\"heading\">\n <th\n class=\"t-heading\"\n [colSpan]=\"table.columns.length\"\n >\n <button\n type=\"button\"\n class=\"t-expand\"\n (click)=\"onClick()\"\n >\n <span class=\"t-name\">\n <ng-container *polymorpheusOutlet=\"heading as text\">\n {{ text }}\n </ng-container>\n </span>\n <tui-svg\n class=\"t-chevron\"\n [class.t-chevron_rotated]=\"open\"\n [src]=\"arrowOptions.iconLarge\"\n ></tui-svg>\n </button>\n </th>\n</tr>\n<ng-container *ngIf=\"open\">\n <ng-content></ng-content>\n</ng-container>\n<ng-container *ngIf=\"open && row\">\n <ng-container\n *ngFor=\"let item of sorted; let index = index\"\n [ngTemplateOutlet]=\"row.template\"\n [ngTemplateOutletContext]=\"item | tuiMapper : toContext : index\"\n ></ng-container>\n</ng-container>\n", styles: [":host{border-color:var(--tui-base-04)}:host tr{border-color:inherit}.t-expand{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:none;font-size:inherit;line-height:inherit;display:flex;width:100%;height:100%;align-items:center;box-sizing:border-box;outline:none;font-weight:bold;cursor:pointer;border-color:inherit}.t-expand:focus-visible .t-name{background:var(--tui-selection)}.t-expand:before,.t-expand:after{content:\"\";position:-webkit-sticky;position:sticky;height:100%;border-left:1px solid;border-color:inherit}.t-expand:before{left:0}.t-expand:after{right:0}.t-heading{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;height:var(--tui-height-m);font:var(--tui-font-text-s);padding:0;background:var(--tui-base-02);border-bottom:1px solid var(--tui-base-04);border-color:inherit}.t-heading:hover{background:var(--tui-base-03)}:host-context(table[data-size=\"l\"]) .t-heading{font:var(--tui-font-text-m);height:var(--tui-height-l)}.t-name{position:-webkit-sticky;position:sticky;left:.75rem;display:inline-block}:host-context(table[data-size=\"l\"]) .t-name{left:1rem}.t-chevron{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:-webkit-sticky;position:sticky;right:.75rem;margin:0 .6875rem 0 auto}.t-chevron_rotated{transform:rotate(180deg)}\n"], components: [{ type: i1__namespace$1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "tuiMapper": i4__namespace.TuiMapperPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
999
1026
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiTbodyComponent, decorators: [{
1000
1027
  type: i0.Component,
1001
1028
  args: [{
@@ -1009,6 +1036,12 @@
1009
1036
  return [{ type: TuiTableSortPipe, decorators: [{
1010
1037
  type: i0.Inject,
1011
1038
  args: [TuiTableSortPipe]
1039
+ }] }, { type: undefined, decorators: [{
1040
+ type: i0.Inject,
1041
+ args: [TUI_TABLE_OPTIONS]
1042
+ }] }, { type: undefined, decorators: [{
1043
+ type: i0.Inject,
1044
+ args: [kit.TUI_ARROW_OPTIONS]
1012
1045
  }] }, { type: TuiTableDirective, decorators: [{
1013
1046
  type: i0.Inject,
1014
1047
  args: [i0.forwardRef(function () { return TuiTableDirective; })]
@@ -1148,6 +1181,8 @@
1148
1181
 
1149
1182
  exports.TUI_STUCK = TUI_STUCK;
1150
1183
  exports.TUI_STUCK_PROVIDER = TUI_STUCK_PROVIDER;
1184
+ exports.TUI_TABLE_DEFAULT_OPTIONS = TUI_TABLE_DEFAULT_OPTIONS;
1185
+ exports.TUI_TABLE_OPTIONS = TUI_TABLE_OPTIONS;
1151
1186
  exports.TUI_TABLE_PROVIDER = TUI_TABLE_PROVIDER;
1152
1187
  exports.TUI_TABLE_PROVIDERS = TUI_TABLE_PROVIDERS;
1153
1188
  exports.TuiCellDirective = TuiCellDirective;
@@ -1166,6 +1201,7 @@
1166
1201
  exports.TuiThGroupComponent = TuiThGroupComponent;
1167
1202
  exports.TuiTheadDirective = TuiTheadDirective;
1168
1203
  exports.TuiTrComponent = TuiTrComponent;
1204
+ exports.tuiTableOptionsProvider = tuiTableOptionsProvider;
1169
1205
 
1170
1206
  Object.defineProperty(exports, '__esModule', { value: true });
1171
1207