@taiga-ui/addon-table 4.52.0-canary.f729878 → 4.52.0-canary.facf139
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/reorder/reorder.component.d.ts +1 -1
- package/components/table-pagination/table-pagination.component.d.ts +2 -3
- package/directives/table-control/checkbox-table.directive.d.ts +2 -1
- package/fesm2022/taiga-ui-addon-table-components-reorder.mjs +7 -8
- package/fesm2022/taiga-ui-addon-table-components-reorder.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-table-components-table-pagination.mjs +8 -21
- package/fesm2022/taiga-ui-addon-table-components-table-pagination.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-table-components-table.mjs +65 -68
- package/fesm2022/taiga-ui-addon-table-components-table.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-table-directives-table-control.mjs +19 -17
- package/fesm2022/taiga-ui-addon-table-directives-table-control.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-table-directives-table-filters.mjs +12 -12
- package/fesm2022/taiga-ui-addon-table-directives-table-filters.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-table-tokens.mjs.map +1 -1
- package/package.json +2 -2
- package/tokens/i18n.d.ts +2 -2
|
@@ -7,7 +7,7 @@ export declare class TuiReorder<T> {
|
|
|
7
7
|
protected order: Map<number, number>;
|
|
8
8
|
protected unsortedItems: readonly T[];
|
|
9
9
|
protected readonly options: import("./reorder.options").TuiReorderOptions;
|
|
10
|
-
protected readonly showHideText
|
|
10
|
+
protected readonly showHideText: import("@angular/core").Signal<string>;
|
|
11
11
|
enabled: readonly T[];
|
|
12
12
|
readonly itemsChange: EventEmitter<T[]>;
|
|
13
13
|
readonly enabledChange: EventEmitter<T[]>;
|
|
@@ -7,10 +7,9 @@ export interface TuiTablePaginationEvent {
|
|
|
7
7
|
}
|
|
8
8
|
export declare class TuiTablePagination {
|
|
9
9
|
private readonly options;
|
|
10
|
-
protected open: boolean;
|
|
11
10
|
protected readonly icons: import("@taiga-ui/core/tokens").TuiSpinIcons;
|
|
12
|
-
protected readonly spinTexts
|
|
13
|
-
protected readonly texts
|
|
11
|
+
protected readonly spinTexts: import("@angular/core").Signal<readonly [previous: string, next: string]>;
|
|
12
|
+
protected readonly texts: import("@angular/core").Signal<{
|
|
14
13
|
linesPerPage: string;
|
|
15
14
|
of: string;
|
|
16
15
|
pages: string;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { TuiTableControlDirective } from './table-control.directive';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class TuiCheckboxTableDirective {
|
|
4
|
+
private readonly el;
|
|
4
5
|
private readonly control;
|
|
5
6
|
protected readonly parent: TuiTableControlDirective<any>;
|
|
6
|
-
protected readonly update: import("@angular/core").
|
|
7
|
+
protected readonly update: import("@angular/core").EffectRef;
|
|
7
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiCheckboxTableDirective, never>;
|
|
8
9
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiCheckboxTableDirective, "[tuiCheckbox][tuiCheckboxTable]", never, {}, {}, never, never, true, never>;
|
|
9
10
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { AsyncPipe, NgForOf } from '@angular/common';
|
|
2
1
|
import * as i0 from '@angular/core';
|
|
3
2
|
import { InjectionToken, inject, EventEmitter, Input, Output, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
3
|
import { TUI_TABLE_SHOW_HIDE_MESSAGE } from '@taiga-ui/addon-table/tokens';
|
|
@@ -29,7 +28,7 @@ class TuiReorder {
|
|
|
29
28
|
this.order = new Map();
|
|
30
29
|
this.unsortedItems = [];
|
|
31
30
|
this.options = inject(TUI_REORDER_OPTIONS);
|
|
32
|
-
this.showHideText
|
|
31
|
+
this.showHideText = inject(TUI_TABLE_SHOW_HIDE_MESSAGE);
|
|
33
32
|
this.enabled = [];
|
|
34
33
|
this.itemsChange = new EventEmitter();
|
|
35
34
|
this.enabledChange = new EventEmitter();
|
|
@@ -92,17 +91,17 @@ class TuiReorder {
|
|
|
92
91
|
this.enabled = enabled;
|
|
93
92
|
this.enabledChange.emit(enabled);
|
|
94
93
|
}
|
|
95
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
96
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiReorder, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiReorder, isStandalone: true, selector: "tui-reorder", inputs: { enabled: "enabled", items: "items", content: "content" }, outputs: { itemsChange: "itemsChange", enabledChange: "enabledChange" }, host: { listeners: { "focusout.stop": "(0)", "pointerdown.zoneless": "onDrag()", "document:pointerup.zoneless": "onDrop()" } }, providers: [
|
|
97
96
|
{
|
|
98
97
|
provide: TUI_TILES_REORDER,
|
|
99
98
|
useValue: tuiTilesShift,
|
|
100
99
|
},
|
|
101
|
-
], ngImport: i0, template: "<tui-tiles\n class=\"t-wrapper\"\n [(order)]=\"order\"\n>\n
|
|
100
|
+
], ngImport: i0, template: "<tui-tiles\n class=\"t-wrapper\"\n [(order)]=\"order\"\n>\n @for (item of unsortedItems; track item) {\n <tui-tile [style.order]=\"order.get($index)\">\n <div\n class=\"t-item\"\n [class.t-item_disabled]=\"!isEnabled(item)\"\n >\n <div\n tuiTileHandle\n class=\"t-draggable\"\n >\n <tui-icon\n class=\"t-icon\"\n [icon]=\"options.icons.drag\"\n />\n <ng-container *polymorpheusOutlet=\"content as template; context: {$implicit: item, index: $index}\">\n {{ template }}\n </ng-container>\n </div>\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [iconStart]=\"getIcon(item)\"\n (click)=\"toggle(item)\"\n (keydown.arrowDown.prevent)=\"move($index, 1)\"\n (keydown.arrowUp.prevent)=\"move($index, -1)\"\n >\n {{ showHideText() }}\n </button>\n </div>\n </tui-tile>\n }\n</tui-tiles>\n", styles: [":host{display:block;font:var(--tui-font-text-s);padding:.5rem 0;-webkit-user-select:none;user-select:none}.t-wrapper{grid-auto-rows:2rem}.t-draggable{cursor:ns-resize;flex:1 1 auto}.t-item{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;block-size:2rem;align-items:center;padding:0 .75rem;background:var(--tui-background-base)}.t-item_disabled{opacity:var(--tui-disabled-opacity)}.t-item_disabled .t-button{color:var(--tui-text-primary);opacity:1}.t-item:hover{background:var(--tui-background-base-alt)}.t-item:hover .t-button{opacity:1}.t-icon{margin-inline-end:.5rem;color:var(--tui-text-tertiary)}.t-icon:before{font-size:1rem}.t-button{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;margin-inline-start:auto;opacity:0}.t-button:focus{opacity:1}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiIcon, selector: "tui-icon:not([tuiBadge])", inputs: ["background"] }, { kind: "component", type: i1.TuiTilesComponent, selector: "tui-tiles", inputs: ["debounce", "order"], outputs: ["orderChange"] }, { kind: "component", type: i1.TuiTile, selector: "tui-tile", inputs: ["width", "height"] }, { kind: "directive", type: i1.TuiTileHandle, selector: "[tuiTileHandle]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
102
101
|
}
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiReorder, decorators: [{
|
|
104
103
|
type: Component,
|
|
105
|
-
args: [{
|
|
104
|
+
args: [{ selector: 'tui-reorder', imports: [PolymorpheusOutlet, TuiButton, TuiIcon, TuiTiles], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
106
105
|
{
|
|
107
106
|
provide: TUI_TILES_REORDER,
|
|
108
107
|
useValue: tuiTilesShift,
|
|
@@ -111,7 +110,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
|
|
|
111
110
|
'(focusout.stop)': '(0)',
|
|
112
111
|
'(pointerdown.zoneless)': 'onDrag()',
|
|
113
112
|
'(document:pointerup.zoneless)': 'onDrop()',
|
|
114
|
-
}, template: "<tui-tiles\n class=\"t-wrapper\"\n [(order)]=\"order\"\n>\n
|
|
113
|
+
}, template: "<tui-tiles\n class=\"t-wrapper\"\n [(order)]=\"order\"\n>\n @for (item of unsortedItems; track item) {\n <tui-tile [style.order]=\"order.get($index)\">\n <div\n class=\"t-item\"\n [class.t-item_disabled]=\"!isEnabled(item)\"\n >\n <div\n tuiTileHandle\n class=\"t-draggable\"\n >\n <tui-icon\n class=\"t-icon\"\n [icon]=\"options.icons.drag\"\n />\n <ng-container *polymorpheusOutlet=\"content as template; context: {$implicit: item, index: $index}\">\n {{ template }}\n </ng-container>\n </div>\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [iconStart]=\"getIcon(item)\"\n (click)=\"toggle(item)\"\n (keydown.arrowDown.prevent)=\"move($index, 1)\"\n (keydown.arrowUp.prevent)=\"move($index, -1)\"\n >\n {{ showHideText() }}\n </button>\n </div>\n </tui-tile>\n }\n</tui-tiles>\n", styles: [":host{display:block;font:var(--tui-font-text-s);padding:.5rem 0;-webkit-user-select:none;user-select:none}.t-wrapper{grid-auto-rows:2rem}.t-draggable{cursor:ns-resize;flex:1 1 auto}.t-item{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;block-size:2rem;align-items:center;padding:0 .75rem;background:var(--tui-background-base)}.t-item_disabled{opacity:var(--tui-disabled-opacity)}.t-item_disabled .t-button{color:var(--tui-text-primary);opacity:1}.t-item:hover{background:var(--tui-background-base-alt)}.t-item:hover .t-button{opacity:1}.t-icon{margin-inline-end:.5rem;color:var(--tui-text-tertiary)}.t-icon:before{font-size:1rem}.t-button{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;margin-inline-start:auto;opacity:0}.t-button:focus{opacity:1}\n"] }]
|
|
115
114
|
}], propDecorators: { enabled: [{
|
|
116
115
|
type: Input
|
|
117
116
|
}], itemsChange: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-table-components-reorder.mjs","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/taiga-ui-addon-table-components-reorder.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiReorderOptions {\n readonly icons: {\n readonly drag: string;\n readonly hide: string;\n readonly show: string;\n };\n}\n\nexport const TUI_REORDER_DEFAULT_OPTIONS: TuiReorderOptions = {\n icons: {\n hide: '@tui.eye-off',\n show: '@tui.eye',\n drag: '@tui.grip-vertical',\n },\n};\n\nexport const TUI_REORDER_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_REORDER_OPTIONS' : '',\n {\n factory: () => TUI_REORDER_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiReorderOptionsProvider(options: Partial<TuiReorderOptions>): Provider {\n return tuiProvideOptions(TUI_REORDER_OPTIONS, options, TUI_REORDER_DEFAULT_OPTIONS);\n}\n","import {AsyncPipe, NgForOf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {TUI_TABLE_SHOW_HIDE_MESSAGE} from '@taiga-ui/addon-table/tokens';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TUI_TILES_REORDER, TuiTiles, tuiTilesShift} from '@taiga-ui/kit/components/tiles';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TUI_REORDER_OPTIONS} from './reorder.options';\n\n@Component({\n standalone: true,\n selector: 'tui-reorder',\n imports: [AsyncPipe, NgForOf, PolymorpheusOutlet, TuiButton, TuiIcon, TuiTiles],\n templateUrl: './reorder.template.html',\n styleUrls: ['./reorder.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_TILES_REORDER,\n useValue: tuiTilesShift,\n },\n ],\n host: {\n '(focusout.stop)': '(0)',\n '(pointerdown.zoneless)': 'onDrag()',\n '(document:pointerup.zoneless)': 'onDrop()',\n },\n})\nexport class TuiReorder<T> {\n private dragging = false;\n\n protected order = new Map<number, number>();\n protected unsortedItems: readonly T[] = [];\n protected readonly options = inject(TUI_REORDER_OPTIONS);\n protected readonly showHideText$ = inject(TUI_TABLE_SHOW_HIDE_MESSAGE);\n\n @Input()\n public enabled: readonly T[] = [];\n\n @Output()\n public readonly itemsChange = new EventEmitter<T[]>();\n\n @Output()\n public readonly enabledChange = new EventEmitter<T[]>();\n\n @Input()\n public 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 public content: PolymorpheusContent<TuiContext<T> & {index: number}> = ({\n $implicit,\n }) => String($implicit);\n\n protected onDrag(): void {\n this.dragging = true;\n }\n\n protected onDrop(): void {\n if (!this.dragging) {\n return;\n }\n\n this.dragging = false;\n this.updateItems();\n }\n\n protected isEnabled(item: T): boolean {\n return this.enabled.includes(item);\n }\n\n protected getIcon(item: T): string {\n return this.isEnabled(item) ? this.options.icons.hide : this.options.icons.show;\n }\n\n protected 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 protected 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 [style.order]=\"order.get(index)\"\n >\n <div\n class=\"t-item\"\n [class.t-item_disabled]=\"!isEnabled(item)\"\n >\n <div\n tuiTileHandle\n class=\"t-draggable\"\n >\n <tui-icon\n class=\"t-icon\"\n [icon]=\"options.icons.drag\"\n />\n <ng-container *polymorpheusOutlet=\"content as template; context: {$implicit: item, index: index}\">\n {{ template }}\n </ng-container>\n </div>\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [iconStart]=\"getIcon(item)\"\n (click)=\"toggle(item)\"\n (keydown.arrowDown.prevent)=\"move(index, 1)\"\n (keydown.arrowUp.prevent)=\"move(index, -1)\"\n >\n {{ showHideText$ | async }}\n </button>\n </div>\n </tui-tile>\n</tui-tiles>\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.mjs","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/taiga-ui-addon-table-components-reorder.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiReorderOptions {\n readonly icons: {\n readonly drag: string;\n readonly hide: string;\n readonly show: string;\n };\n}\n\nexport const TUI_REORDER_DEFAULT_OPTIONS: TuiReorderOptions = {\n icons: {\n hide: '@tui.eye-off',\n show: '@tui.eye',\n drag: '@tui.grip-vertical',\n },\n};\n\nexport const TUI_REORDER_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_REORDER_OPTIONS' : '',\n {\n factory: () => TUI_REORDER_DEFAULT_OPTIONS,\n },\n);\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 inject,\n Input,\n Output,\n} from '@angular/core';\nimport {TUI_TABLE_SHOW_HIDE_MESSAGE} from '@taiga-ui/addon-table/tokens';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TUI_TILES_REORDER, TuiTiles, tuiTilesShift} from '@taiga-ui/kit/components/tiles';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TUI_REORDER_OPTIONS} from './reorder.options';\n\n@Component({\n selector: 'tui-reorder',\n imports: [PolymorpheusOutlet, TuiButton, TuiIcon, TuiTiles],\n templateUrl: './reorder.template.html',\n styleUrl: './reorder.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_TILES_REORDER,\n useValue: tuiTilesShift,\n },\n ],\n host: {\n '(focusout.stop)': '(0)',\n '(pointerdown.zoneless)': 'onDrag()',\n '(document:pointerup.zoneless)': 'onDrop()',\n },\n})\nexport class TuiReorder<T> {\n private dragging = false;\n\n protected order = new Map<number, number>();\n protected unsortedItems: readonly T[] = [];\n protected readonly options = inject(TUI_REORDER_OPTIONS);\n protected readonly showHideText = inject(TUI_TABLE_SHOW_HIDE_MESSAGE);\n\n @Input()\n public enabled: readonly T[] = [];\n\n @Output()\n public readonly itemsChange = new EventEmitter<T[]>();\n\n @Output()\n public readonly enabledChange = new EventEmitter<T[]>();\n\n @Input()\n public 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 public content: PolymorpheusContent<TuiContext<T> & {index: number}> = ({\n $implicit,\n }) => String($implicit);\n\n protected onDrag(): void {\n this.dragging = true;\n }\n\n protected onDrop(): void {\n if (!this.dragging) {\n return;\n }\n\n this.dragging = false;\n this.updateItems();\n }\n\n protected isEnabled(item: T): boolean {\n return this.enabled.includes(item);\n }\n\n protected getIcon(item: T): string {\n return this.isEnabled(item) ? this.options.icons.hide : this.options.icons.show;\n }\n\n protected 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 protected 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 @for (item of unsortedItems; track item) {\n <tui-tile [style.order]=\"order.get($index)\">\n <div\n class=\"t-item\"\n [class.t-item_disabled]=\"!isEnabled(item)\"\n >\n <div\n tuiTileHandle\n class=\"t-draggable\"\n >\n <tui-icon\n class=\"t-icon\"\n [icon]=\"options.icons.drag\"\n />\n <ng-container *polymorpheusOutlet=\"content as template; context: {$implicit: item, index: $index}\">\n {{ template }}\n </ng-container>\n </div>\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [iconStart]=\"getIcon(item)\"\n (click)=\"toggle(item)\"\n (keydown.arrowDown.prevent)=\"move($index, 1)\"\n (keydown.arrowUp.prevent)=\"move($index, -1)\"\n >\n {{ showHideText() }}\n </button>\n </div>\n </tui-tile>\n }\n</tui-tiles>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
|
2
1
|
import * as i0 from '@angular/core';
|
|
3
2
|
import { InjectionToken, inject, EventEmitter, Output, Input, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
3
|
import { TUI_TABLE_PAGINATION_TEXTS } from '@taiga-ui/addon-table/tokens';
|
|
@@ -7,7 +6,8 @@ import * as i1 from '@taiga-ui/core/components/data-list';
|
|
|
7
6
|
import { TuiDataList } from '@taiga-ui/core/components/data-list';
|
|
8
7
|
import { TuiIcon } from '@taiga-ui/core/components/icon';
|
|
9
8
|
import { TuiLink } from '@taiga-ui/core/components/link';
|
|
10
|
-
import
|
|
9
|
+
import * as i2 from '@taiga-ui/core/directives/dropdown';
|
|
10
|
+
import { TuiDropdown } from '@taiga-ui/core/directives/dropdown';
|
|
11
11
|
import { TUI_SPIN_ICONS, TUI_SPIN_TEXTS, TUI_COMMON_ICONS } from '@taiga-ui/core/tokens';
|
|
12
12
|
import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
|
|
13
13
|
import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
@@ -34,10 +34,9 @@ function tuiTablePaginationOptionsProvider(options) {
|
|
|
34
34
|
class TuiTablePagination {
|
|
35
35
|
constructor() {
|
|
36
36
|
this.options = inject(TUI_TABLE_PAGINATION_OPTIONS);
|
|
37
|
-
this.open = false;
|
|
38
37
|
this.icons = inject(TUI_SPIN_ICONS);
|
|
39
|
-
this.spinTexts
|
|
40
|
-
this.texts
|
|
38
|
+
this.spinTexts = inject(TUI_SPIN_TEXTS);
|
|
39
|
+
this.texts = inject(TUI_TABLE_PAGINATION_TEXTS);
|
|
41
40
|
this.commonIcons = inject(TUI_COMMON_ICONS);
|
|
42
41
|
this.items = this.options.items;
|
|
43
42
|
this.total = 0;
|
|
@@ -48,7 +47,6 @@ class TuiTablePagination {
|
|
|
48
47
|
onItem(size) {
|
|
49
48
|
const { start } = this;
|
|
50
49
|
this.size = size;
|
|
51
|
-
this.open = false;
|
|
52
50
|
this.page = Math.floor(start / this.size);
|
|
53
51
|
this.paginationChange.emit(this.pagination);
|
|
54
52
|
}
|
|
@@ -87,23 +85,12 @@ class TuiTablePagination {
|
|
|
87
85
|
this.page++;
|
|
88
86
|
this.paginationChange.emit(this.pagination);
|
|
89
87
|
}
|
|
90
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
91
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
88
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTablePagination, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
89
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiTablePagination, isStandalone: true, selector: "tui-table-pagination", inputs: { items: "items", total: "total", page: "page", size: "size" }, outputs: { paginationChange: "paginationChange" }, ngImport: i0, template: "@if (texts(); as texts) {\n <span class=\"t-pages\">\n @if (showPages) {\n {{ texts.pages }}\n <strong class=\"t-strong\">{{ pages }}</strong>\n }\n </span>\n <span automation-id=\"tui-table-pagination__lines-per-page-wrapper\">\n {{ texts.linesPerPage }}\n @if (total !== 0) {\n <button\n tuiDropdown\n tuiDropdownOpen\n tuiLink\n type=\"button\"\n >\n <strong>{{ start + 1 }}\u2013{{ end }}</strong>\n <tui-data-list\n *tuiDropdown=\"let close\"\n size=\"s\"\n >\n @for (item of items; track item) {\n <button\n tuiOption\n type=\"button\"\n class=\"t-item\"\n (click)=\"close(); onItem(item)\"\n >\n <ng-container\n *polymorpheusOutlet=\"\n sizeOptionContent as text;\n context: {$implicit: item, total: total}\n \"\n >\n {{ text }}\n </ng-container>\n @if (item === size) {\n <tui-icon\n class=\"t-checkmark\"\n [icon]=\"commonIcons.check\"\n />\n } @else {\n <span class=\"t-checkmark\"></span>\n }\n </button>\n }\n </tui-data-list>\n </button>\n } @else {\n <strong>0 - 0</strong>\n }\n {{ texts.of }}\n <strong class=\"t-strong\">{{ total }}</strong>\n </span>\n @if (spinTexts(); as spinTexts) {\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button t-button_back\"\n [disabled]=\"leftDisabled\"\n [iconStart]=\"icons.decrement\"\n (click)=\"back()\"\n >\n {{ spinTexts[0] }}\n </button>\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"rightDisabled\"\n [iconStart]=\"icons.increment\"\n (click)=\"forth()\"\n >\n {{ spinTexts[1] }}\n </button>\n }\n}\n", styles: [":host{display:flex;font:var(--tui-font-text-s);align-items:center;color:var(--tui-text-tertiary)}.t-strong{color:var(--tui-text-primary)}.t-pages{margin-inline-end:auto}.t-item{min-inline-size:5.5rem;box-sizing:border-box}.t-checkmark{min-inline-size:1rem;font-size:1rem;margin-inline-start:.25rem}.t-button{transform:scaleX(var(--tui-inline))}.t-button_back{margin-inline-end:.25rem;margin-inline-start:1.5rem}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: i1.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "component", type: i1.TuiOption, selector: "button[tuiOption]:not([new]), a[tuiOption]:not([new]), label[tuiOption]:not([new])", inputs: ["disabled", "value"] }, { kind: "directive", type: i2.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { kind: "directive", type: i2.TuiDropdownOpen, selector: "[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", inputs: ["tuiDropdownEnabled", "tuiDropdownOpen"], outputs: ["tuiDropdownOpenChange"] }, { kind: "directive", type: i2.TuiDropdownContent, selector: "ng-template[tuiDropdown]" }, { kind: "component", type: TuiIcon, selector: "tui-icon:not([tuiBadge])", inputs: ["background"] }, { kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
92
90
|
}
|
|
93
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTablePagination, decorators: [{
|
|
94
92
|
type: Component,
|
|
95
|
-
args: [{
|
|
96
|
-
AsyncPipe,
|
|
97
|
-
NgForOf,
|
|
98
|
-
NgIf,
|
|
99
|
-
PolymorpheusOutlet,
|
|
100
|
-
TuiButton,
|
|
101
|
-
TuiDataList,
|
|
102
|
-
TuiDropdownDirective,
|
|
103
|
-
TuiDropdownOpen,
|
|
104
|
-
TuiIcon,
|
|
105
|
-
TuiLink,
|
|
106
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"texts$ | async as texts\">\n <span class=\"t-pages\">\n <ng-container *ngIf=\"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\n <button\n *ngIf=\"total !== 0; else zeroTotal\"\n tuiLink\n type=\"button\"\n [tuiDropdown]=\"content\"\n [(tuiDropdownOpen)]=\"open\"\n >\n <strong>{{ start + 1 }}\u2013{{ end }}</strong>\n </button>\n <ng-template #zeroTotal>\n <strong>0 - 0</strong>\n </ng-template>\n <ng-template #content>\n <tui-data-list size=\"s\">\n <ng-container *ngFor=\"let item of items\">\n <button\n tuiOption\n type=\"button\"\n class=\"t-item\"\n (click)=\"onItem(item)\"\n >\n <ng-container\n *polymorpheusOutlet=\"sizeOptionContent as text; context: {$implicit: item, total: total}\"\n >\n {{ text }}\n </ng-container>\n <tui-icon\n *ngIf=\"item === size; else fakeIcon\"\n class=\"t-checkmark\"\n [icon]=\"commonIcons.check\"\n />\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 {{ texts.of }}\n <strong class=\"t-strong\">{{ total }}</strong>\n </span>\n <ng-container *ngIf=\"spinTexts$ | async as spinTexts\">\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button t-button_back\"\n [disabled]=\"leftDisabled\"\n [iconStart]=\"icons.decrement\"\n (click)=\"back()\"\n >\n {{ spinTexts[0] }}\n </button>\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"rightDisabled\"\n [iconStart]=\"icons.increment\"\n (click)=\"forth()\"\n >\n {{ spinTexts[1] }}\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-tertiary)}.t-strong{color:var(--tui-text-primary)}.t-pages{margin-inline-end:auto}.t-item{min-inline-size:5.5rem;box-sizing:border-box}.t-checkmark{min-inline-size:1rem;font-size:1rem;margin-inline-start:.25rem}.t-button{transform:scaleX(var(--tui-inline))}.t-button_back{margin-inline-end:.25rem;margin-inline-start:1.5rem}\n"] }]
|
|
93
|
+
args: [{ selector: 'tui-table-pagination', imports: [PolymorpheusOutlet, TuiButton, TuiDataList, TuiDropdown, TuiIcon, TuiLink], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (texts(); as texts) {\n <span class=\"t-pages\">\n @if (showPages) {\n {{ texts.pages }}\n <strong class=\"t-strong\">{{ pages }}</strong>\n }\n </span>\n <span automation-id=\"tui-table-pagination__lines-per-page-wrapper\">\n {{ texts.linesPerPage }}\n @if (total !== 0) {\n <button\n tuiDropdown\n tuiDropdownOpen\n tuiLink\n type=\"button\"\n >\n <strong>{{ start + 1 }}\u2013{{ end }}</strong>\n <tui-data-list\n *tuiDropdown=\"let close\"\n size=\"s\"\n >\n @for (item of items; track item) {\n <button\n tuiOption\n type=\"button\"\n class=\"t-item\"\n (click)=\"close(); onItem(item)\"\n >\n <ng-container\n *polymorpheusOutlet=\"\n sizeOptionContent as text;\n context: {$implicit: item, total: total}\n \"\n >\n {{ text }}\n </ng-container>\n @if (item === size) {\n <tui-icon\n class=\"t-checkmark\"\n [icon]=\"commonIcons.check\"\n />\n } @else {\n <span class=\"t-checkmark\"></span>\n }\n </button>\n }\n </tui-data-list>\n </button>\n } @else {\n <strong>0 - 0</strong>\n }\n {{ texts.of }}\n <strong class=\"t-strong\">{{ total }}</strong>\n </span>\n @if (spinTexts(); as spinTexts) {\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button t-button_back\"\n [disabled]=\"leftDisabled\"\n [iconStart]=\"icons.decrement\"\n (click)=\"back()\"\n >\n {{ spinTexts[0] }}\n </button>\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"rightDisabled\"\n [iconStart]=\"icons.increment\"\n (click)=\"forth()\"\n >\n {{ spinTexts[1] }}\n </button>\n }\n}\n", styles: [":host{display:flex;font:var(--tui-font-text-s);align-items:center;color:var(--tui-text-tertiary)}.t-strong{color:var(--tui-text-primary)}.t-pages{margin-inline-end:auto}.t-item{min-inline-size:5.5rem;box-sizing:border-box}.t-checkmark{min-inline-size:1rem;font-size:1rem;margin-inline-start:.25rem}.t-button{transform:scaleX(var(--tui-inline))}.t-button_back{margin-inline-end:.25rem;margin-inline-start:1.5rem}\n"] }]
|
|
107
94
|
}], propDecorators: { items: [{
|
|
108
95
|
type: Input
|
|
109
96
|
}], total: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-table-components-table-pagination.mjs","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/taiga-ui-addon-table-components-table-pagination.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nfunction defaultSizeOptionContent({$implicit}: TuiContext<number>): string {\n return `${$implicit}`;\n}\n\nexport interface TuiTablePaginationOptions {\n readonly items: readonly number[];\n readonly showPages: boolean;\n readonly size: number;\n readonly sizeOptionContent: PolymorpheusContent<TuiContext<number> & {total: number}>;\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 = new InjectionToken(\n ngDevMode ? 'TUI_TABLE_PAGINATION_OPTIONS' : '',\n {\n factory: () => TUI_TABLE_PAGINATION_DEFAULT_OPTIONS,\n },\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 {AsyncPipe, NgForOf, NgIf} from '@angular/common';\nimport {\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 {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiDropdownDirective, TuiDropdownOpen} from '@taiga-ui/core/directives/dropdown';\nimport {TUI_COMMON_ICONS, TUI_SPIN_ICONS, TUI_SPIN_TEXTS} from '@taiga-ui/core/tokens';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {\n TUI_TABLE_PAGINATION_OPTIONS,\n type TuiTablePaginationOptions,\n} from './table-pagination.options';\n\nexport interface TuiTablePaginationEvent {\n readonly page: number;\n readonly size: number;\n}\n\n@Component({\n standalone: true,\n selector: 'tui-table-pagination',\n imports: [\n AsyncPipe,\n NgForOf,\n NgIf,\n PolymorpheusOutlet,\n TuiButton,\n TuiDataList,\n TuiDropdownDirective,\n TuiDropdownOpen,\n TuiIcon,\n TuiLink,\n ],\n templateUrl: './table-pagination.template.html',\n styleUrls: ['./table-pagination.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiTablePagination {\n private readonly options = inject(TUI_TABLE_PAGINATION_OPTIONS);\n\n protected open = false;\n protected readonly icons = inject(TUI_SPIN_ICONS);\n protected readonly spinTexts$ = inject(TUI_SPIN_TEXTS);\n protected readonly texts$ = inject(TUI_TABLE_PAGINATION_TEXTS);\n protected readonly commonIcons = inject(TUI_COMMON_ICONS);\n\n @Input()\n public items: readonly number[] = this.options.items;\n\n @Input()\n public total = 0;\n\n @Input()\n public page = 0;\n\n @Input()\n public size = this.options.size;\n\n @Output()\n public readonly paginationChange = new EventEmitter<TuiTablePaginationEvent>();\n\n public onItem(size: number): void {\n const {start} = this;\n\n this.size = size;\n this.open = false;\n this.page = Math.floor(start / this.size);\n this.paginationChange.emit(this.pagination);\n }\n\n protected get pages(): number {\n return Math.ceil(this.total / this.size);\n }\n\n protected get showPages(): boolean {\n return this.options.showPages;\n }\n\n protected get sizeOptionContent(): TuiTablePaginationOptions['sizeOptionContent'] {\n return this.options.sizeOptionContent;\n }\n\n protected get start(): number {\n return Math.min(this.page, Math.floor(this.total / this.size)) * this.size;\n }\n\n protected get end(): number {\n return Math.min(this.start + this.size, this.total);\n }\n\n protected get leftDisabled(): boolean {\n return !this.start;\n }\n\n protected get rightDisabled(): boolean {\n return this.end === this.total;\n }\n\n protected get pagination(): TuiTablePaginationEvent {\n return {\n page: this.page,\n size: this.size,\n };\n }\n\n protected back(): void {\n this.page--;\n this.paginationChange.emit(this.pagination);\n }\n\n protected forth(): void {\n 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=\"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\n <button\n *ngIf=\"total !== 0; else zeroTotal\"\n tuiLink\n type=\"button\"\n [tuiDropdown]=\"content\"\n [(tuiDropdownOpen)]=\"open\"\n >\n <strong>{{ start + 1 }}–{{ end }}</strong>\n </button>\n <ng-template #zeroTotal>\n <strong>0 - 0</strong>\n </ng-template>\n <ng-template #content>\n <tui-data-list size=\"s\">\n <ng-container *ngFor=\"let item of items\">\n <button\n tuiOption\n type=\"button\"\n class=\"t-item\"\n (click)=\"onItem(item)\"\n >\n <ng-container\n *polymorpheusOutlet=\"sizeOptionContent as text; context: {$implicit: item, total: total}\"\n >\n {{ text }}\n </ng-container>\n <tui-icon\n *ngIf=\"item === size; else fakeIcon\"\n class=\"t-checkmark\"\n [icon]=\"commonIcons.check\"\n />\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 {{ texts.of }}\n <strong class=\"t-strong\">{{ total }}</strong>\n </span>\n <ng-container *ngIf=\"spinTexts$ | async as spinTexts\">\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button t-button_back\"\n [disabled]=\"leftDisabled\"\n [iconStart]=\"icons.decrement\"\n (click)=\"back()\"\n >\n {{ spinTexts[0] }}\n </button>\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"rightDisabled\"\n [iconStart]=\"icons.increment\"\n (click)=\"forth()\"\n >\n {{ spinTexts[1] }}\n </button>\n </ng-container>\n</ng-container>\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.mjs","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/taiga-ui-addon-table-components-table-pagination.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nfunction defaultSizeOptionContent({$implicit}: TuiContext<number>): string {\n return `${$implicit}`;\n}\n\nexport interface TuiTablePaginationOptions {\n readonly items: readonly number[];\n readonly showPages: boolean;\n readonly size: number;\n readonly sizeOptionContent: PolymorpheusContent<TuiContext<number> & {total: number}>;\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 = new InjectionToken(\n ngDevMode ? 'TUI_TABLE_PAGINATION_OPTIONS' : '',\n {\n factory: () => TUI_TABLE_PAGINATION_DEFAULT_OPTIONS,\n },\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 {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport {TUI_COMMON_ICONS, TUI_SPIN_ICONS, TUI_SPIN_TEXTS} from '@taiga-ui/core/tokens';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {\n TUI_TABLE_PAGINATION_OPTIONS,\n type TuiTablePaginationOptions,\n} from './table-pagination.options';\n\nexport interface TuiTablePaginationEvent {\n readonly page: number;\n readonly size: number;\n}\n\n@Component({\n selector: 'tui-table-pagination',\n imports: [PolymorpheusOutlet, TuiButton, TuiDataList, TuiDropdown, TuiIcon, TuiLink],\n templateUrl: './table-pagination.template.html',\n styleUrl: './table-pagination.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiTablePagination {\n private readonly options = inject(TUI_TABLE_PAGINATION_OPTIONS);\n\n protected readonly icons = inject(TUI_SPIN_ICONS);\n protected readonly spinTexts = inject(TUI_SPIN_TEXTS);\n protected readonly texts = inject(TUI_TABLE_PAGINATION_TEXTS);\n protected readonly commonIcons = inject(TUI_COMMON_ICONS);\n\n @Input()\n public items: readonly number[] = this.options.items;\n\n @Input()\n public total = 0;\n\n @Input()\n public page = 0;\n\n @Input()\n public size = this.options.size;\n\n @Output()\n public readonly paginationChange = new EventEmitter<TuiTablePaginationEvent>();\n\n public onItem(size: number): void {\n const {start} = this;\n\n this.size = size;\n this.page = Math.floor(start / this.size);\n this.paginationChange.emit(this.pagination);\n }\n\n protected get pages(): number {\n return Math.ceil(this.total / this.size);\n }\n\n protected get showPages(): boolean {\n return this.options.showPages;\n }\n\n protected get sizeOptionContent(): TuiTablePaginationOptions['sizeOptionContent'] {\n return this.options.sizeOptionContent;\n }\n\n protected get start(): number {\n return Math.min(this.page, Math.floor(this.total / this.size)) * this.size;\n }\n\n protected get end(): number {\n return Math.min(this.start + this.size, this.total);\n }\n\n protected get leftDisabled(): boolean {\n return !this.start;\n }\n\n protected get rightDisabled(): boolean {\n return this.end === this.total;\n }\n\n protected get pagination(): TuiTablePaginationEvent {\n return {\n page: this.page,\n size: this.size,\n };\n }\n\n protected back(): void {\n this.page--;\n this.paginationChange.emit(this.pagination);\n }\n\n protected forth(): void {\n this.page++;\n this.paginationChange.emit(this.pagination);\n }\n}\n","@if (texts(); as texts) {\n <span class=\"t-pages\">\n @if (showPages) {\n {{ texts.pages }}\n <strong class=\"t-strong\">{{ pages }}</strong>\n }\n </span>\n <span automation-id=\"tui-table-pagination__lines-per-page-wrapper\">\n {{ texts.linesPerPage }}\n @if (total !== 0) {\n <button\n tuiDropdown\n tuiDropdownOpen\n tuiLink\n type=\"button\"\n >\n <strong>{{ start + 1 }}–{{ end }}</strong>\n <tui-data-list\n *tuiDropdown=\"let close\"\n size=\"s\"\n >\n @for (item of items; track item) {\n <button\n tuiOption\n type=\"button\"\n class=\"t-item\"\n (click)=\"close(); onItem(item)\"\n >\n <ng-container\n *polymorpheusOutlet=\"\n sizeOptionContent as text;\n context: {$implicit: item, total: total}\n \"\n >\n {{ text }}\n </ng-container>\n @if (item === size) {\n <tui-icon\n class=\"t-checkmark\"\n [icon]=\"commonIcons.check\"\n />\n } @else {\n <span class=\"t-checkmark\"></span>\n }\n </button>\n }\n </tui-data-list>\n </button>\n } @else {\n <strong>0 - 0</strong>\n }\n {{ texts.of }}\n <strong class=\"t-strong\">{{ total }}</strong>\n </span>\n @if (spinTexts(); as spinTexts) {\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button t-button_back\"\n [disabled]=\"leftDisabled\"\n [iconStart]=\"icons.decrement\"\n (click)=\"back()\"\n >\n {{ spinTexts[0] }}\n </button>\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"rightDisabled\"\n [iconStart]=\"icons.increment\"\n (click)=\"forth()\"\n >\n {{ spinTexts[1] }}\n </button>\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|