@taiga-ui/addon-table 4.52.0-canary.91aeb4a → 4.52.0-canary.974ca4b
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/README.md +2 -2
- package/components/reorder/reorder.options.d.ts +1 -3
- package/components/table/table.options.d.ts +1 -3
- package/components/table-pagination/table-pagination.options.d.ts +1 -3
- package/fesm2022/taiga-ui-addon-table-components-reorder.mjs +3 -8
- package/fesm2022/taiga-ui-addon-table-components-reorder.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-table-components-table-pagination.mjs +3 -8
- package/fesm2022/taiga-ui-addon-table-components-table-pagination.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-table-components-table.mjs +7 -20
- package/fesm2022/taiga-ui-addon-table-components-table.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-table-directives-table-control.mjs +0 -3
- package/fesm2022/taiga-ui-addon-table-directives-table-control.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-table-directives-table-filters.mjs +0 -4
- package/fesm2022/taiga-ui-addon-table-directives-table-filters.mjs.map +1 -1
- package/package.json +9 -6
package/README.md
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { InjectionToken, type Provider } from '@angular/core';
|
|
2
1
|
export interface TuiReorderOptions {
|
|
3
2
|
readonly icons: {
|
|
4
3
|
readonly drag: string;
|
|
@@ -7,5 +6,4 @@ export interface TuiReorderOptions {
|
|
|
7
6
|
};
|
|
8
7
|
}
|
|
9
8
|
export declare const TUI_REORDER_DEFAULT_OPTIONS: TuiReorderOptions;
|
|
10
|
-
export declare const TUI_REORDER_OPTIONS: InjectionToken<TuiReorderOptions
|
|
11
|
-
export declare function tuiReorderOptionsProvider(options: Partial<TuiReorderOptions>): Provider;
|
|
9
|
+
export declare const TUI_REORDER_OPTIONS: import("@angular/core").InjectionToken<TuiReorderOptions>, tuiReorderOptionsProvider: (item: Partial<TuiReorderOptions> | (() => Partial<TuiReorderOptions>)) => import("@angular/core").FactoryProvider;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { InjectionToken, type Provider } from '@angular/core';
|
|
2
1
|
import { type TuiComparator } from '@taiga-ui/addon-table/types';
|
|
3
2
|
import { type TuiSizeL, type TuiSizeS } from '@taiga-ui/core/types';
|
|
4
3
|
export declare const TuiSortDirection: {
|
|
@@ -44,5 +43,4 @@ export interface TuiTableOptions {
|
|
|
44
43
|
readonly sticky: boolean;
|
|
45
44
|
}
|
|
46
45
|
export declare const TUI_TABLE_DEFAULT_OPTIONS: TuiTableOptions;
|
|
47
|
-
export declare const TUI_TABLE_OPTIONS: InjectionToken<TuiTableOptions
|
|
48
|
-
export declare function tuiTableOptionsProvider(options: Partial<TuiTableOptions>): Provider;
|
|
46
|
+
export declare const TUI_TABLE_OPTIONS: import("@angular/core").InjectionToken<TuiTableOptions>, tuiTableOptionsProvider: (item: Partial<TuiTableOptions> | (() => Partial<TuiTableOptions>)) => import("@angular/core").FactoryProvider;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { InjectionToken, type Provider } from '@angular/core';
|
|
2
1
|
import { type TuiContext } from '@taiga-ui/cdk/types';
|
|
3
2
|
import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
|
|
4
3
|
export interface TuiTablePaginationOptions {
|
|
@@ -13,5 +12,4 @@ export declare const TUI_TABLE_PAGINATION_DEFAULT_OPTIONS: TuiTablePaginationOpt
|
|
|
13
12
|
/**
|
|
14
13
|
* Default parameters for TablePagination component
|
|
15
14
|
*/
|
|
16
|
-
export declare const TUI_TABLE_PAGINATION_OPTIONS: InjectionToken<TuiTablePaginationOptions
|
|
17
|
-
export declare function tuiTablePaginationOptionsProvider(options: Partial<TuiTablePaginationOptions>): Provider;
|
|
15
|
+
export declare const TUI_TABLE_PAGINATION_OPTIONS: import("@angular/core").InjectionToken<TuiTablePaginationOptions>, tuiTablePaginationOptionsProvider: (item: Partial<TuiTablePaginationOptions> | (() => Partial<TuiTablePaginationOptions>)) => import("@angular/core").FactoryProvider;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { inject, EventEmitter, Input, Output, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
import { TUI_TABLE_SHOW_HIDE_MESSAGE } from '@taiga-ui/addon-table/tokens';
|
|
4
4
|
import { TuiButton } from '@taiga-ui/core/components/button';
|
|
5
5
|
import { TuiIcon } from '@taiga-ui/core/components/icon';
|
|
6
6
|
import * as i1 from '@taiga-ui/kit/components/tiles';
|
|
7
7
|
import { tuiTilesShift, TUI_TILES_REORDER, TuiTiles } from '@taiga-ui/kit/components/tiles';
|
|
8
8
|
import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
|
|
9
|
-
import {
|
|
9
|
+
import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
|
|
10
10
|
|
|
11
11
|
const TUI_REORDER_DEFAULT_OPTIONS = {
|
|
12
12
|
icons: {
|
|
@@ -15,12 +15,7 @@ const TUI_REORDER_DEFAULT_OPTIONS = {
|
|
|
15
15
|
drag: '@tui.grip-vertical',
|
|
16
16
|
},
|
|
17
17
|
};
|
|
18
|
-
const TUI_REORDER_OPTIONS =
|
|
19
|
-
factory: () => TUI_REORDER_DEFAULT_OPTIONS,
|
|
20
|
-
});
|
|
21
|
-
function tuiReorderOptionsProvider(options) {
|
|
22
|
-
return tuiProvideOptions(TUI_REORDER_OPTIONS, options, TUI_REORDER_DEFAULT_OPTIONS);
|
|
23
|
-
}
|
|
18
|
+
const [TUI_REORDER_OPTIONS, tuiReorderOptionsProvider] = tuiCreateOptions(TUI_REORDER_DEFAULT_OPTIONS);
|
|
24
19
|
|
|
25
20
|
class TuiReorder {
|
|
26
21
|
constructor() {
|
|
@@ -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 {\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
|
+
{"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 {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\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, tuiReorderOptionsProvider] = tuiCreateOptions(\n 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,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { inject, EventEmitter, Output, Input, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
import { TUI_TABLE_PAGINATION_TEXTS } from '@taiga-ui/addon-table/tokens';
|
|
4
4
|
import { TuiButton } from '@taiga-ui/core/components/button';
|
|
5
5
|
import * as i1 from '@taiga-ui/core/components/data-list';
|
|
@@ -10,7 +10,7 @@ import * as i2 from '@taiga-ui/core/directives/dropdown';
|
|
|
10
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
|
-
import {
|
|
13
|
+
import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
|
|
14
14
|
|
|
15
15
|
function defaultSizeOptionContent({ $implicit }) {
|
|
16
16
|
return `${$implicit}`;
|
|
@@ -24,12 +24,7 @@ const TUI_TABLE_PAGINATION_DEFAULT_OPTIONS = {
|
|
|
24
24
|
/**
|
|
25
25
|
* Default parameters for TablePagination component
|
|
26
26
|
*/
|
|
27
|
-
const TUI_TABLE_PAGINATION_OPTIONS =
|
|
28
|
-
factory: () => TUI_TABLE_PAGINATION_DEFAULT_OPTIONS,
|
|
29
|
-
});
|
|
30
|
-
function tuiTablePaginationOptionsProvider(options) {
|
|
31
|
-
return tuiProvideOptions(TUI_TABLE_PAGINATION_OPTIONS, options, TUI_TABLE_PAGINATION_DEFAULT_OPTIONS);
|
|
32
|
-
}
|
|
27
|
+
const [TUI_TABLE_PAGINATION_OPTIONS, tuiTablePaginationOptionsProvider] = tuiCreateOptions(TUI_TABLE_PAGINATION_DEFAULT_OPTIONS);
|
|
33
28
|
|
|
34
29
|
class TuiTablePagination {
|
|
35
30
|
constructor() {
|
|
@@ -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 {\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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"}
|
|
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 {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\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, tuiTablePaginationOptionsProvider] =\n tuiCreateOptions(TUI_TABLE_PAGINATION_DEFAULT_OPTIONS);\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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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { ChangeDetectionStrategy, ViewEncapsulation, Component, inject, TemplateRef, Input, Directive,
|
|
2
|
+
import { ChangeDetectionStrategy, ViewEncapsulation, Component, inject, TemplateRef, Input, Directive, ChangeDetectorRef, EventEmitter, signal, Output, forwardRef, ContentChildren, Pipe, SkipSelf, PLATFORM_ID, computed, ViewChild, ContentChild } from '@angular/core';
|
|
3
3
|
import { map, distinctUntilChanged, catchError, EMPTY, combineLatest, debounceTime, Subject, switchMap, takeUntil, delay, filter, timer, of, ReplaySubject, startWith } from 'rxjs';
|
|
4
|
-
import {
|
|
4
|
+
import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
|
|
5
5
|
import { IntersectionObserverService, WA_INTERSECTION_THRESHOLD, WA_INTERSECTION_ROOT_MARGIN } from '@ng-web-apis/intersection-observer';
|
|
6
|
+
import { tuiWithStyles, tuiProvide, tuiDefaultSort, tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
6
7
|
import { tuiButtonOptionsProvider } from '@taiga-ui/core/components/button';
|
|
7
8
|
import { TUI_TEXTFIELD_OPTIONS, TuiTextfieldComponent } from '@taiga-ui/core/components/textfield';
|
|
8
9
|
import { tuiBadgeOptionsProvider } from '@taiga-ui/kit/components/badge';
|
|
@@ -29,7 +30,7 @@ class TuiTableCaption {
|
|
|
29
30
|
}
|
|
30
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTableCaption, decorators: [{
|
|
31
32
|
type: Component,
|
|
32
|
-
args: [{
|
|
33
|
+
args: [{ selector: 'caption[tuiCaption]', template: '<ng-content/>', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["caption[tuiCaption]{caption-side:bottom;text-align:start;padding:.75rem 0;color:var(--tui-text-secondary)}caption[tuiCaption]>*:not(:first-child){margin-inline-start:.5rem}caption[tuiCaption] tui-pagination:not(:first-child),caption[tuiCaption] tui-pager:not(:first-child){display:inline-flex;vertical-align:middle}\n"] }]
|
|
33
34
|
}] });
|
|
34
35
|
|
|
35
36
|
class TuiTableCell {
|
|
@@ -43,7 +44,6 @@ class TuiTableCell {
|
|
|
43
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTableCell, decorators: [{
|
|
44
45
|
type: Directive,
|
|
45
46
|
args: [{
|
|
46
|
-
standalone: true,
|
|
47
47
|
selector: 'ng-template[tuiCell]',
|
|
48
48
|
}]
|
|
49
49
|
}], propDecorators: { tuiCell: [{
|
|
@@ -67,12 +67,7 @@ const TUI_TABLE_DEFAULT_OPTIONS = {
|
|
|
67
67
|
off: '@tui.chevrons-up-down',
|
|
68
68
|
},
|
|
69
69
|
};
|
|
70
|
-
const TUI_TABLE_OPTIONS =
|
|
71
|
-
factory: () => TUI_TABLE_DEFAULT_OPTIONS,
|
|
72
|
-
});
|
|
73
|
-
function tuiTableOptionsProvider(options) {
|
|
74
|
-
return tuiProvideOptions(TUI_TABLE_OPTIONS, options, TUI_TABLE_DEFAULT_OPTIONS);
|
|
75
|
-
}
|
|
70
|
+
const [TUI_TABLE_OPTIONS, tuiTableOptionsProvider] = tuiCreateOptions(TUI_TABLE_DEFAULT_OPTIONS);
|
|
76
71
|
|
|
77
72
|
// TODO: Consider making universal and moving to CDK
|
|
78
73
|
class TuiStuck {
|
|
@@ -91,7 +86,6 @@ class TuiStuck {
|
|
|
91
86
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiStuck, decorators: [{
|
|
92
87
|
type: Directive,
|
|
93
88
|
args: [{
|
|
94
|
-
standalone: true,
|
|
95
89
|
selector: 'tui-stuck:never',
|
|
96
90
|
providers: [
|
|
97
91
|
IntersectionObserverService,
|
|
@@ -238,7 +232,6 @@ class TuiTableDirectionOrder {
|
|
|
238
232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTableDirectionOrder, decorators: [{
|
|
239
233
|
type: Directive,
|
|
240
234
|
args: [{
|
|
241
|
-
standalone: true,
|
|
242
235
|
selector: 'table[tuiTable][tuiDirectionOrder]',
|
|
243
236
|
}]
|
|
244
237
|
}], propDecorators: { directionOrderChange: [{
|
|
@@ -258,7 +251,6 @@ class TuiTableHead {
|
|
|
258
251
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTableHead, decorators: [{
|
|
259
252
|
type: Directive,
|
|
260
253
|
args: [{
|
|
261
|
-
standalone: true,
|
|
262
254
|
selector: '[tuiHead]',
|
|
263
255
|
}]
|
|
264
256
|
}], propDecorators: { tuiHead: [{
|
|
@@ -281,7 +273,6 @@ class TuiTableResized {
|
|
|
281
273
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTableResized, decorators: [{
|
|
282
274
|
type: Directive,
|
|
283
275
|
args: [{
|
|
284
|
-
standalone: true,
|
|
285
276
|
selector: '[tuiResized]',
|
|
286
277
|
}]
|
|
287
278
|
}], propDecorators: { tuiResized: [{
|
|
@@ -397,7 +388,6 @@ class TuiTableSortable {
|
|
|
397
388
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTableSortable, decorators: [{
|
|
398
389
|
type: Directive,
|
|
399
390
|
args: [{
|
|
400
|
-
standalone: true,
|
|
401
391
|
selector: 'th[tuiTh][tuiSortable]',
|
|
402
392
|
}]
|
|
403
393
|
}], propDecorators: { sortable: [{
|
|
@@ -445,7 +435,6 @@ class TuiTableSortBy {
|
|
|
445
435
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTableSortBy, decorators: [{
|
|
446
436
|
type: Directive,
|
|
447
437
|
args: [{
|
|
448
|
-
standalone: true,
|
|
449
438
|
selector: 'table[tuiTable][tuiSortBy]',
|
|
450
439
|
}]
|
|
451
440
|
}], propDecorators: { sortables: [{
|
|
@@ -472,7 +461,6 @@ class TuiTableThead {
|
|
|
472
461
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTableThead, decorators: [{
|
|
473
462
|
type: Directive,
|
|
474
463
|
args: [{
|
|
475
|
-
standalone: true,
|
|
476
464
|
selector: 'thead[tuiThead]',
|
|
477
465
|
providers: [
|
|
478
466
|
{
|
|
@@ -503,7 +491,6 @@ __decorate([
|
|
|
503
491
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTableSortPipe, decorators: [{
|
|
504
492
|
type: Pipe,
|
|
505
493
|
args: [{
|
|
506
|
-
standalone: true,
|
|
507
494
|
name: 'tuiTableSort',
|
|
508
495
|
pure: false,
|
|
509
496
|
}]
|
|
@@ -560,7 +547,7 @@ class TuiTableExpand {
|
|
|
560
547
|
}
|
|
561
548
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTableExpand, decorators: [{
|
|
562
549
|
type: Component,
|
|
563
|
-
args: [{
|
|
550
|
+
args: [{ selector: 'tui-table-expand', changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [
|
|
564
551
|
{
|
|
565
552
|
directive: TuiPresent,
|
|
566
553
|
outputs: ['tuiPresentChange'],
|
|
@@ -585,7 +572,7 @@ class TuiTableTd {
|
|
|
585
572
|
}
|
|
586
573
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTableTd, decorators: [{
|
|
587
574
|
type: Component,
|
|
588
|
-
args: [{
|
|
575
|
+
args: [{ selector: 'th[tuiTd], td[tuiTd]', template: '<ng-content />', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
589
576
|
'[class._editable]': 'control || textfield',
|
|
590
577
|
}, styles: [":host{position:relative;text-align:start;background:var(--tui-background-base);border:1px solid var(--tui-border-normal);border-block-start:none;box-sizing:border-box;filter:opacity(1)}@supports (-webkit-hyphens: none){:host{transform:translateZ(0)}}:host:first-child{left:0}:host:not(:first-child){border-inline-start:none}:host._editable:focus-within{z-index:1}:host._editable{padding:0!important;vertical-align:top}:host(th){position:sticky;z-index:1}:host(th):after{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:0;bottom:0;left:100%;inline-size:.3125rem;pointer-events:none;background:#edededb3;opacity:0}:host(th):focus-within:not(:disabled){z-index:11}:host-context([tuiTheme=\"dark\"]):after{background:#3c3c3ce6}:host-context(table._stuck){z-index:10}:host-context(table._stuck):last-of-type:after{opacity:1}:host-context(table[data-size=\"l\"]){block-size:var(--tui-height-l);font:var(--tui-font-text-m);padding:1rem}:host-context(table[data-size=\"m\"]){block-size:var(--tui-height-m);font:var(--tui-font-text-s);padding:.75rem}:host-context(table[data-size=\"s\"]){block-size:var(--tui-height-s);font:var(--tui-font-text-s);padding:.25rem .5rem}:host(td):focus-within{z-index:1}:host(td):not(:focus-within){z-index:0}\n"] }]
|
|
591
578
|
}], propDecorators: { control: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-table-components-table.mjs","sources":["../../../projects/addon-table/components/table/caption/caption.component.ts","../../../projects/addon-table/components/table/directives/cell.directive.ts","../../../projects/addon-table/components/table/table.options.ts","../../../projects/addon-table/components/table/directives/stuck.directive.ts","../../../projects/addon-table/components/table/directives/table.directive.ts","../../../projects/addon-table/components/table/directives/direction-order.directive.ts","../../../projects/addon-table/components/table/directives/head.directive.ts","../../../projects/addon-table/components/table/directives/resized.directive.ts","../../../projects/addon-table/components/table/th/th.component.ts","../../../projects/addon-table/components/table/th/th.template.html","../../../projects/addon-table/components/table/directives/sortable.directive.ts","../../../projects/addon-table/components/table/directives/sort-by.directive.ts","../../../projects/addon-table/components/table/directives/thead.directive.ts","../../../projects/addon-table/components/table/pipes/table-sort.pipe.ts","../../../projects/addon-table/components/table/providers/table.provider.ts","../../../projects/addon-table/components/table/table-expand/table-expand.component.ts","../../../projects/addon-table/components/table/table-expand/table-expand.template.html","../../../projects/addon-table/components/table/td/td.component.ts","../../../projects/addon-table/components/table/tr/tr.component.ts","../../../projects/addon-table/components/table/tr/tr.template.html","../../../projects/addon-table/components/table/tbody/tbody.component.ts","../../../projects/addon-table/components/table/tbody/tbody.template.html","../../../projects/addon-table/components/table/th-group/th-group.component.ts","../../../projects/addon-table/components/table/th-group/th-group.template.html","../../../projects/addon-table/components/table/table.ts","../../../projects/addon-table/components/table/taiga-ui-addon-table-components-table.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'caption[tuiCaption]',\n template: '<ng-content/>',\n styleUrl: './caption.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiTableCaption {}\n","import {Directive, inject, Input, TemplateRef} from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiCell]',\n})\nexport class TuiTableCell {\n @Input()\n public tuiCell = '';\n\n public readonly template = inject(TemplateRef<Record<string, unknown>>);\n}\n","import {InjectionToken, type Provider} from '@angular/core';\nimport {type TuiComparator} from '@taiga-ui/addon-table/types';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport const TuiSortDirection = {\n Asc: 1,\n Desc: -1,\n} as const;\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type TuiSortDirection = (typeof TuiSortDirection)[keyof typeof TuiSortDirection];\n\nexport interface TuiSortChange<T> {\n /**\n * @deprecated use sortKey\n */\n sortBy: keyof T | null;\n sortKey: keyof T | null;\n /**\n * @deprecated use sortDirection\n */\n orderBy: TuiSortDirection;\n sortDirection: TuiSortDirection;\n}\n\nexport interface TuiTableSortChange<T> {\n /**\n * @deprecated use sortComparator\n */\n sortBy: TuiComparator<T> | null;\n sortComparator: TuiComparator<T> | null;\n /**\n * @deprecated use sortDirection\n */\n orderBy: TuiSortDirection;\n sortDirection: TuiSortDirection;\n}\n\nexport interface TuiTableOptions {\n readonly direction: TuiSortDirection;\n readonly requiredSort: boolean;\n readonly open: boolean;\n readonly resizable: boolean;\n readonly size: TuiSizeL | TuiSizeS;\n readonly sortIcons: {\n readonly asc: string;\n readonly desc: string;\n readonly off: string;\n };\n readonly sticky: boolean;\n}\n\nexport const TUI_TABLE_DEFAULT_OPTIONS: TuiTableOptions = {\n sticky: false,\n resizable: false,\n open: true,\n size: 'm',\n direction: TuiSortDirection.Asc,\n requiredSort: false,\n sortIcons: {\n asc: '@tui.chevron-up',\n desc: '@tui.chevron-down',\n off: '@tui.chevrons-up-down',\n },\n};\n\nexport const TUI_TABLE_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_TABLE_OPTIONS' : '',\n {\n factory: () => TUI_TABLE_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiTableOptionsProvider(options: Partial<TuiTableOptions>): Provider {\n return tuiProvideOptions(TUI_TABLE_OPTIONS, options, TUI_TABLE_DEFAULT_OPTIONS);\n}\n","import {Directive, inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {\n IntersectionObserverService,\n WA_INTERSECTION_THRESHOLD,\n} from '@ng-web-apis/intersection-observer';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {catchError, distinctUntilChanged, EMPTY, map} from 'rxjs';\n\n// TODO: Consider making universal and moving to CDK\n@Directive({\n standalone: true,\n selector: 'tui-stuck:never',\n providers: [\n IntersectionObserverService,\n {\n provide: WA_INTERSECTION_THRESHOLD,\n useValue: [0, 1],\n },\n ],\n host: {'[class._stuck]': 'stuck()'},\n})\nexport class TuiStuck {\n protected readonly stuck = toSignal(\n inject(IntersectionObserverService).pipe(\n map((entries) => (entries[entries.length - 1]?.intersectionRatio ?? 0) < 1),\n distinctUntilChanged(),\n tuiWatch(),\n catchError(() => EMPTY), // SSR\n ),\n );\n}\n","import {\n type AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n EventEmitter,\n inject,\n Input,\n type OnChanges,\n Output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {WA_INTERSECTION_ROOT_MARGIN} from '@ng-web-apis/intersection-observer';\nimport {type TuiComparator} from '@taiga-ui/addon-table/types';\nimport {tuiProvide, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {\n TUI_TEXTFIELD_OPTIONS,\n type TuiTextfieldOptions,\n} from '@taiga-ui/core/components/textfield';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {tuiBadgeOptionsProvider} from '@taiga-ui/kit/components/badge';\nimport {tuiChipOptionsProvider} from '@taiga-ui/kit/components/chip';\nimport {tuiProgressOptionsProvider} from '@taiga-ui/kit/components/progress';\nimport {combineLatest, debounceTime, map, type Observable, Subject} from 'rxjs';\n\nimport {\n TUI_TABLE_OPTIONS,\n TuiSortDirection,\n type TuiTableSortChange,\n} from '../table.options';\nimport {TuiStuck} from './stuck.directive';\n\nconst EMPTY_COMPARATOR: TuiComparator<unknown> = () => 0;\n\n@Component({\n template: '',\n styleUrl: './table.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-table'},\n})\nclass Styles {}\n\n@Directive({\n selector: 'table[tuiTable]',\n providers: [\n {\n provide: WA_INTERSECTION_ROOT_MARGIN,\n useValue: '10000px 10000px 10000px 0px',\n },\n tuiProvide(TUI_TEXTFIELD_OPTIONS, TuiTableDirective),\n tuiButtonOptionsProvider({size: 's'}),\n tuiBadgeOptionsProvider({size: 'm', appearance: 'neutral'}),\n tuiChipOptionsProvider({size: 'xxs', appearance: 'neutral'}),\n tuiProgressOptionsProvider({size: 's', color: 'var(--tui-text-action)'}),\n ],\n hostDirectives: [TuiStuck],\n host: {\n '[attr.data-size]': 'size()',\n },\n})\nexport class TuiTableDirective<T extends Partial<Record<keyof T, unknown>>>\n implements AfterViewInit, TuiTextfieldOptions, OnChanges\n{\n private readonly options = inject(TUI_TABLE_OPTIONS);\n private readonly cdr = inject(ChangeDetectorRef);\n\n protected readonly nothing = tuiWithStyles(Styles);\n\n @Input()\n public columns: ReadonlyArray<string | keyof T> = [];\n\n @Input()\n public direction = this.options.direction;\n\n @Input()\n public sorter: TuiComparator<T> = EMPTY_COMPARATOR;\n\n /**\n * @deprecated: use sortChange\n */\n @Output()\n public readonly directionChange = new EventEmitter<TuiSortDirection>();\n\n /**\n * @deprecated: use sortChange\n */\n @Output()\n public readonly sorterChange = new EventEmitter<TuiComparator<T> | null>();\n\n @Output()\n public readonly sortChange: Observable<TuiTableSortChange<T>> = combineLatest([\n this.sorterChange,\n this.directionChange,\n ]).pipe(\n debounceTime(0),\n map(([sortComparator, sortDirection]) => ({\n sortBy: sortComparator,\n orderBy: sortDirection,\n sortComparator,\n sortDirection,\n })),\n );\n\n public readonly appearance = signal('table');\n public readonly size = signal(this.options.size);\n public readonly cleaner = signal(false);\n\n // TODO: refactor to signal inputs after Angular update\n public readonly change$ = new Subject<void>();\n\n @Input('size')\n public set sizeSetter(size: TuiSizeL | TuiSizeS) {\n this.size.set(size);\n }\n\n public updateSorterAndDirection(sorter: TuiComparator<T> | null): void {\n if (this.sorter === sorter) {\n this.updateSorter(\n this.sorter,\n this.direction === TuiSortDirection.Asc\n ? TuiSortDirection.Desc\n : TuiSortDirection.Asc,\n );\n } else {\n this.updateSorter(sorter);\n }\n }\n\n public ngOnChanges(): void {\n this.change$.next();\n }\n\n public ngAfterViewInit(): void {\n this.cdr.detectChanges();\n }\n\n public updateSorter(\n sorter: TuiComparator<T> | null,\n direction: TuiSortDirection = TuiSortDirection.Asc,\n ): void {\n this.sorter = sorter || EMPTY_COMPARATOR.bind({});\n this.direction = direction;\n this.sorterChange.emit(sorter);\n this.directionChange.emit(this.direction);\n this.change$.next();\n }\n}\n","import {Directive, inject, Input, Output} from '@angular/core';\nimport {map} from 'rxjs';\n\nimport {TuiSortDirection} from '../table.options';\nimport {TuiTableDirective} from './table.directive';\n\n@Directive({\n standalone: true,\n selector: 'table[tuiTable][tuiDirectionOrder]',\n})\nexport class TuiTableDirectionOrder<T> {\n private readonly table = inject(TuiTableDirective<T>);\n\n /**\n * @deprecated: use tuiSortChange\n */\n @Output()\n public readonly directionOrderChange = this.table.directionChange.pipe(\n map((dir) => (dir === 1 ? 'asc' : 'desc')),\n );\n\n @Input()\n public set directionOrder(order: 'asc' | 'desc') {\n this.table.direction =\n order === 'asc' ? TuiSortDirection.Asc : TuiSortDirection.Desc;\n }\n}\n","import {Directive, inject, Input, TemplateRef} from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[tuiHead]',\n})\nexport class TuiTableHead<T extends Partial<Record<keyof T, unknown>>> {\n @Input({required: true})\n public tuiHead: string | keyof T = '';\n\n public readonly template = inject(TemplateRef<Record<string, unknown>>);\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, inject, Output} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiPreventDefault, tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {distinctUntilChanged, map, switchMap, takeUntil} from 'rxjs';\n\n@Directive({\n standalone: true,\n selector: '[tuiResized]',\n})\nexport class TuiTableResized {\n private readonly doc = inject(DOCUMENT);\n private readonly el = tuiInjectElement();\n\n @Output()\n public readonly tuiResized = tuiTypedFromEvent(this.el, 'mousedown').pipe(\n tuiPreventDefault(),\n switchMap(() => {\n const {width, right} =\n this.el.closest('th')?.getBoundingClientRect() || EMPTY_CLIENT_RECT;\n\n return tuiTypedFromEvent(this.doc, 'mousemove').pipe(\n distinctUntilChanged(),\n map(({clientX}) => width + clientX - right),\n takeUntil(tuiTypedFromEvent(this.doc, 'mouseup')),\n );\n }),\n );\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\nimport {AsyncPipe, NgTemplateOutlet} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n inject,\n Input,\n} from '@angular/core';\nimport {type TuiComparator} from '@taiga-ui/addon-table/types';\nimport {tuiDefaultSort} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\n\nimport {TuiTableHead} from '../directives/head.directive';\nimport {TuiTableResized} from '../directives/resized.directive';\nimport {TuiTableDirective} from '../directives/table.directive';\nimport {TUI_TABLE_OPTIONS, TuiSortDirection} from '../table.options';\n\n@Component({\n selector: 'th[tuiTh]',\n imports: [AsyncPipe, NgTemplateOutlet, TuiIcon, TuiTableResized],\n templateUrl: './th.template.html',\n styleUrl: './th.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.min-width.px]': 'width || minWidth',\n '[style.width.px]': 'width || minWidth',\n '[style.max-width.px]': 'width || maxWidth',\n '[class._sticky]': 'sticky',\n },\n})\nexport class TuiTableTh<T extends Partial<Record<keyof T, unknown>>> {\n private readonly options = inject(TUI_TABLE_OPTIONS);\n\n private readonly head = inject<TuiTableHead<T>>(TuiTableHead, {\n optional: true,\n });\n\n protected width: number | null = null;\n\n protected readonly table = inject<TuiTableDirective<T>>(\n forwardRef(() => TuiTableDirective),\n {optional: true},\n );\n\n @Input()\n public minWidth = -Infinity;\n\n @Input()\n public maxWidth = Infinity;\n\n @Input()\n public sorter: TuiComparator<T> | null = this.head\n ? (a, b) => tuiDefaultSort(a[this.key], b[this.key])\n : null;\n\n @Input()\n public resizable = this.options.resizable;\n\n @Input()\n public sticky = this.options.sticky;\n\n @Input()\n public requiredSort = this.options.requiredSort;\n\n public get key(): keyof T {\n if (!this.head) {\n throw new TuiTableSortKeyException();\n }\n\n return this.head.tuiHead as keyof T;\n }\n\n protected get isCurrent(): boolean {\n return !!this.sorter && !!this.table && this.sorter === this.table.sorter;\n }\n\n protected get icon(): string {\n if (this.isCurrent) {\n return this.table?.direction === TuiSortDirection.Asc\n ? this.options.sortIcons.asc\n : this.options.sortIcons.desc;\n }\n\n return this.options.sortIcons.off;\n }\n\n protected updateSorterAndDirection(): void {\n const sorter = this.requiredSort ? this.sorter : null;\n\n this.table?.updateSorterAndDirection(\n this.isCurrentAndDescDirection ? sorter : this.sorter,\n );\n }\n\n protected onResized(width: number): void {\n this.width = Math.min(Math.max(width, this.minWidth), this.maxWidth);\n }\n\n private get isCurrentAndDescDirection(): boolean {\n return (\n this.sorter === this.table?.sorter &&\n this.table?.direction === TuiSortDirection.Desc\n );\n }\n}\n\nexport class TuiTableSortKeyException extends Error {\n constructor() {\n super(ngDevMode ? 'Trying to sort with no key' : '');\n }\n}\n","@if (sorter && table) {\n <button\n type=\"button\"\n class=\"t-sort\"\n [class.t-sort_sorted]=\"isCurrent\"\n (click)=\"updateSorterAndDirection()\"\n >\n <ng-container [ngTemplateOutlet]=\"content\" />\n {{ table.change$ | async }}\n <tui-icon\n class=\"t-icon\"\n [icon]=\"icon\"\n />\n </button>\n} @else {\n <ng-container [ngTemplateOutlet]=\"content\" />\n}\n<ng-template #content>\n <ng-content />\n</ng-template>\n@if (resizable) {\n <div\n class=\"t-bar\"\n (tuiResized)=\"onResized($event)\"\n ></div>\n}\n","import {type BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Directive, forwardRef, inject, Input, type OnChanges} from '@angular/core';\nimport {type TuiComparator} from '@taiga-ui/addon-table/types';\n\nimport {TuiTableTh} from '../th/th.component';\nimport {TuiTableSortBy} from './sort-by.directive';\nimport {TuiTableDirective} from './table.directive';\n\n@Directive({\n standalone: true,\n selector: 'th[tuiTh][tuiSortable]',\n})\nexport class TuiTableSortable<T extends Partial<Record<keyof T, unknown>>>\n implements OnChanges\n{\n private readonly table: TuiTableDirective<T> = inject(TuiTableDirective<T>);\n private readonly th: TuiTableTh<T> = inject(TuiTableTh<T>);\n private readonly sortBy = inject<TuiTableSortBy<T>>(forwardRef(() => TuiTableSortBy));\n\n @Input({\n alias: 'tuiSortable',\n transform: coerceBooleanProperty,\n })\n public sortable: BooleanInput;\n\n public get key(): keyof T {\n return this.th.key;\n }\n\n public sorter: TuiComparator<T> = (): number => 0;\n\n public ngOnChanges(): void {\n if (this.sortable) {\n this.sorter = this.match ? this.table.sorter : this.sorter;\n this.th.sorter = this.sorter;\n } else {\n this.th.sorter = null;\n }\n }\n\n public check(): void {\n if (this.match && this.table.sorter !== this.sorter) {\n this.table.updateSorter(this.sorter);\n }\n }\n\n private get match(): boolean {\n return this.sortBy.tuiSortBy === this.key;\n }\n}\n","import {\n ContentChildren,\n Directive,\n inject,\n Input,\n Output,\n type QueryList,\n} from '@angular/core';\nimport {type TuiComparator} from '@taiga-ui/addon-table/types';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {combineLatest, debounceTime, delay, filter, map, type Observable} from 'rxjs';\n\nimport {type TuiSortChange} from '../table.options';\nimport {TuiTableSortable} from './sortable.directive';\nimport {TuiTableDirective} from './table.directive';\n\n@Directive({\n standalone: true,\n selector: 'table[tuiTable][tuiSortBy]',\n})\nexport class TuiTableSortBy<T extends Partial<Record<keyof T, unknown>>> {\n @ContentChildren(TuiTableSortable, {descendants: true})\n private readonly sortables: QueryList<TuiTableSortable<T>> = EMPTY_QUERY;\n\n private readonly table = inject(TuiTableDirective<T>);\n\n /**\n * @deprecated: use tuiSortChange\n */\n @Output()\n public readonly tuiSortByChange = this.table.sorterChange.pipe(\n // delay is for getting actual ContentChildren (sortables) https://github.com/angular/angular/issues/38976\n delay(0),\n filter(() => !!this.sortables.length),\n map((sorter) => this.getKey(sorter)),\n );\n\n @Output()\n public readonly tuiSortChange: Observable<TuiSortChange<T>> = combineLatest([\n this.tuiSortByChange,\n this.table.directionChange,\n ]).pipe(\n debounceTime(0),\n map(([sortKey, sortDirection]) => ({\n sortBy: sortKey,\n orderBy: sortDirection,\n sortKey,\n sortDirection,\n })),\n );\n\n public tuiSortBy: string | keyof T | null = null;\n\n @Input('tuiSortBy')\n public set sortBy(sortBy: string | keyof T | null) {\n this.tuiSortBy = sortBy;\n this.checkSortables();\n }\n\n protected checkSortables(): void {\n this.sortables.forEach((s) => s.check());\n }\n\n private getKey(sorter: TuiComparator<T> | null): keyof T | null {\n return this.sortables.find((s) => s.sorter === sorter)?.key || null;\n }\n}\n","import {Directive} from '@angular/core';\nimport {WA_INTERSECTION_ROOT_MARGIN} from '@ng-web-apis/intersection-observer';\n\nimport {TuiStuck} from './stuck.directive';\n\n@Directive({\n standalone: true,\n selector: 'thead[tuiThead]',\n providers: [\n {\n provide: WA_INTERSECTION_ROOT_MARGIN,\n useValue: '0px 10000px 10000px 10000px',\n },\n ],\n hostDirectives: [TuiStuck],\n})\nexport class TuiTableThead {}\n","import {inject, Pipe, type PipeTransform} from '@angular/core';\nimport {type TuiComparator} from '@taiga-ui/addon-table/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiTableDirective} from '../directives/table.directive';\nimport {type TuiSortDirection} from '../table.options';\n\n@Pipe({\n standalone: true,\n name: 'tuiTableSort',\n pure: false,\n})\nexport class TuiTableSortPipe<K> implements PipeTransform {\n private readonly table = inject(TuiTableDirective<K>);\n\n public transform<T extends K>(data?: readonly T[] | null): readonly T[] {\n return this.sort<T>(data ?? [], this.table.sorter, this.table.direction);\n }\n\n @tuiPure\n private sort<T extends K>(\n data: readonly T[],\n sorter: TuiComparator<T>,\n direction: TuiSortDirection,\n ): readonly T[] {\n return [...data].sort((a, b) => direction * sorter(a, b));\n }\n}\n","import {type Provider, SkipSelf} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\n\nimport {TuiTableDirective} from '../directives/table.directive';\n\n/**\n * @deprecated TODO: drop after Angular update and signal inputs\n */\nexport const TUI_TABLE_PROVIDER: Provider[] = [\n {\n provide: TuiTableDirective,\n deps: [[new SkipSelf(), TuiTableDirective]],\n useFactory: (\n controller: TuiTableDirective<Partial<Record<string, unknown>>>,\n ): TuiTableDirective<Partial<Record<string, unknown>>> => {\n controller.change$.pipe(tuiWatch(), takeUntilDestroyed()).subscribe();\n\n return controller;\n },\n },\n];\n","import {isPlatformServer} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n type ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n PLATFORM_ID,\n signal,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiPresent} from '@taiga-ui/kit/directives/present';\nimport {map, of, Subject, switchMap, timer} from 'rxjs';\n\nimport {TUI_TABLE_OPTIONS} from '../table.options';\n\n@Component({\n standalone: true,\n selector: 'tui-table-expand',\n templateUrl: './table-expand.template.html',\n styleUrl: './table-expand.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: TuiPresent,\n outputs: ['tuiPresentChange'],\n },\n ],\n host: {\n ngSkipHydration: 'true',\n '(tuiPresentChange)': 'visible$.next($event)',\n },\n})\nexport class TuiTableExpand {\n @ViewChild('content', {static: true})\n private readonly content?: ElementRef<HTMLElement>;\n\n private readonly el = tuiInjectElement();\n private readonly server = isPlatformServer(inject(PLATFORM_ID));\n\n protected readonly transitioning = signal(false);\n protected readonly contentHeight = computed((_ = this.expanded()) => this.update());\n protected readonly visible$ = new Subject<boolean>();\n protected readonly sub = this.visible$\n .pipe(\n switchMap((v) => (v ? timer(500).pipe(map(() => v)) : of(v))),\n takeUntilDestroyed(),\n )\n .subscribe((visible) => this.el.classList.toggle('_visible', visible));\n\n @Output()\n public readonly expandedChange = new EventEmitter<boolean>();\n\n public readonly expanded = signal(inject(TUI_TABLE_OPTIONS).open);\n\n @Input('expanded')\n public set expandedSetter(open: boolean) {\n this.expanded.set(open);\n this.transitioning.set(true);\n }\n\n public toggle(): void {\n this.expanded.set(!this.expanded());\n this.transitioning.set(true);\n this.expandedChange.emit(this.expanded());\n }\n\n private update(): number {\n if (!this.content || this.server) {\n return 0;\n }\n\n const el = this.content.nativeElement;\n\n el.style.setProperty('display', 'block');\n\n const height = el.getBoundingClientRect().height;\n\n el.style.removeProperty('display');\n\n return height;\n }\n}\n","<div\n #content\n class=\"t-content\"\n [class.t-content_open]=\"expanded() && !transitioning()\"\n>\n <ng-content />\n</div>\n\n<div\n class=\"t-filler\"\n [class.t-filler_open]=\"expanded()\"\n [style.--t-height.px]=\"contentHeight()\"\n (animationcancel)=\"transitioning.set(false)\"\n (animationend)=\"transitioning.set(false)\"\n (animationstart)=\"transitioning.set(true)\"\n></div>\n","import {ChangeDetectionStrategy, Component, ContentChild} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\n\n@Component({\n standalone: true,\n selector: 'th[tuiTd], td[tuiTd]',\n template: '<ng-content />',\n styleUrl: './td.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._editable]': 'control || textfield',\n },\n})\nexport class TuiTableTd {\n @ContentChild(TuiControl)\n protected readonly control: unknown;\n\n @ContentChild(TuiTextfieldComponent)\n protected readonly textfield?: TuiTextfieldComponent<unknown>;\n}\n","import {AsyncPipe, NgTemplateOutlet} from '@angular/common';\nimport {\n type AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n forwardRef,\n inject,\n type QueryList,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiQueryListChanges, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {distinctUntilChanged, map, ReplaySubject, switchMap} from 'rxjs';\n\nimport {TuiTableCell} from '../directives/cell.directive';\nimport {TuiTableDirective} from '../directives/table.directive';\nimport {TUI_TABLE_PROVIDER} from '../providers/table.provider';\nimport {TuiTableTbody} from '../tbody/tbody.component';\nimport {TuiTableTd} from '../td/td.component';\n\n@Component({\n selector: 'tr[tuiTr]',\n imports: [AsyncPipe, NgTemplateOutlet, TuiTableTd],\n templateUrl: './tr.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TUI_TABLE_PROVIDER, ResizeObserverService],\n host: {\n '[style.--t-row-height.px]': 'height()',\n },\n})\nexport class TuiTableTr<T extends Partial<Record<keyof T, unknown>>>\n implements AfterContentInit\n{\n @ContentChildren(forwardRef(() => TuiTableCell))\n private readonly cells: QueryList<TuiTableCell> = EMPTY_QUERY;\n\n private readonly body = inject<TuiTableTbody<T>>(forwardRef(() => TuiTableTbody));\n\n private readonly contentReady$ = new ReplaySubject<boolean>(1);\n\n protected readonly table = inject<TuiTableDirective<T>>(\n forwardRef(() => TuiTableDirective),\n );\n\n protected readonly height = toSignal(\n inject(ResizeObserverService, {self: true}).pipe(\n map(([entry]) => entry?.contentRect.height ?? 0),\n distinctUntilChanged(),\n tuiZoneOptimized(),\n ),\n {initialValue: 0},\n );\n\n protected readonly cells$ = this.contentReady$.pipe(\n switchMap(() => tuiQueryListChanges(this.cells)),\n map((cells) =>\n cells.reduce(\n (record, item) => ({...record, [item.tuiCell]: item}),\n {} as Record<string | keyof T, TuiTableCell>,\n ),\n ),\n );\n\n protected readonly item$ = this.contentReady$.pipe(\n switchMap(() => tuiQueryListChanges(this.body.rows)),\n map(\n (rows) =>\n this.body.data[rows.findIndex((row) => row === this)] as Record<\n string | keyof T,\n unknown\n >,\n ),\n );\n\n public ngAfterContentInit(): void {\n Promise.resolve().then(() => this.contentReady$.next(true));\n }\n}\n","@if (cells$ | async; as items) {\n @for (key of table.columns; track key) {\n <ng-container [ngTemplateOutlet]=\"(items[key] && items[key].template) || plain\">\n <ng-template #plain>\n @if (item$ | async; as item) {\n <td tuiTd>\n {{ item[key] }}\n </td>\n }\n </ng-template>\n </ng-container>\n }\n} @else {\n <td></td>\n}\n<ng-content />\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n Output,\n type QueryList,\n} from '@angular/core';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiTableDirective} from '../directives/table.directive';\nimport {TUI_TABLE_PROVIDER} from '../providers/table.provider';\nimport {TUI_TABLE_OPTIONS} from '../table.options';\nimport {TuiTableTr} from '../tr/tr.component';\n\n@Component({\n selector: 'tbody[tuiTbody]',\n imports: [PolymorpheusOutlet, TuiChevron, TuiIcon],\n templateUrl: './tbody.template.html',\n styleUrl: './tbody.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_TABLE_PROVIDER,\n})\nexport class TuiTableTbody<T extends Partial<Record<keyof T, unknown>>> {\n private readonly options = inject(TUI_TABLE_OPTIONS);\n\n protected readonly table = inject<TuiTableDirective<T>>(\n forwardRef(() => TuiTableDirective),\n );\n\n @ContentChildren(forwardRef(() => TuiTableTr))\n public readonly rows: QueryList<TuiTableTr<T>> = EMPTY_QUERY;\n\n @Input()\n public data: readonly T[] = [];\n\n /** @deprecated: drop in v5.0, use TuiTableExpand */\n @Input()\n public heading: PolymorpheusContent;\n\n /** @deprecated: drop in v5.0, use TuiTableExpand */\n @Input()\n public open = this.options.open;\n\n /** @deprecated: drop in v5.0, use TuiTableExpand */\n @Output()\n public readonly openChange = new EventEmitter<boolean>();\n\n /** @deprecated: drop in v5.0, use TuiTableExpand */\n protected onClick = (): void => {\n this.open = !this.open;\n this.openChange.emit(this.open);\n };\n}\n","@if (heading) {\n <tr>\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-icon\n class=\"t-chevron\"\n [tuiChevron]=\"open\"\n />\n </button>\n </th>\n </tr>\n}\n@if (open) {\n <ng-content />\n}\n","import {AsyncPipe, NgTemplateOutlet} from '@angular/common';\nimport {\n type AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n forwardRef,\n inject,\n type QueryList,\n} from '@angular/core';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {map, type Observable, startWith} from 'rxjs';\n\nimport {TuiTableHead} from '../directives/head.directive';\nimport {TuiTableDirective} from '../directives/table.directive';\nimport {TUI_TABLE_PROVIDER} from '../providers/table.provider';\nimport {TuiTableTh} from '../th/th.component';\n\n@Component({\n selector: 'tr[tuiThGroup]',\n imports: [AsyncPipe, NgTemplateOutlet, TuiTableTh],\n templateUrl: './th-group.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TUI_TABLE_PROVIDER],\n})\nexport class TuiTableThGroup<T extends Partial<Record<keyof T, unknown>>>\n implements AfterContentInit\n{\n @ContentChild(forwardRef(() => TuiTableTh))\n protected readonly th!: TuiTableTh<T>;\n\n @ContentChildren(forwardRef(() => TuiTableHead))\n protected readonly heads: QueryList<TuiTableHead<T>> = EMPTY_QUERY;\n\n protected heads$: Observable<Record<string | keyof T, TuiTableHead<T>>> | null = null;\n\n protected readonly table = inject<TuiTableDirective<T>>(\n forwardRef(() => TuiTableDirective),\n );\n\n public ngAfterContentInit(): void {\n this.heads$ = this.heads.changes.pipe(\n startWith(null),\n map(() =>\n this.heads.reduce(\n (record, item) => ({...record, [item.tuiHead]: item}),\n {} as Record<string | keyof T, TuiTableHead<T>>,\n ),\n ),\n );\n }\n}\n","<ng-content />\n@if (heads$ | async; as headings) {\n @for (key of table.columns; track key) {\n <ng-container\n [ngTemplateOutlet]=\"headings?.[key]?.template || plain\"\n [ngTemplateOutletContext]=\"{$implicit: key}\"\n />\n }\n <ng-template\n #plain\n let-key\n >\n @if (!th && !heads.length) {\n <th tuiTh>\n {{ key.toString() }}\n </th>\n }\n </ng-template>\n}\n","import {TuiTableCaption} from './caption/caption.component';\nimport {TuiTableCell} from './directives/cell.directive';\nimport {TuiTableDirectionOrder} from './directives/direction-order.directive';\nimport {TuiTableHead} from './directives/head.directive';\nimport {TuiTableResized} from './directives/resized.directive';\nimport {TuiTableSortBy} from './directives/sort-by.directive';\nimport {TuiTableSortable} from './directives/sortable.directive';\nimport {TuiTableDirective} from './directives/table.directive';\nimport {TuiTableThead} from './directives/thead.directive';\nimport {TuiTableSortPipe} from './pipes/table-sort.pipe';\nimport {TuiTableExpand} from './table-expand/table-expand.component';\nimport {TuiTableTbody} from './tbody/tbody.component';\nimport {TuiTableTd} from './td/td.component';\nimport {TuiTableTh} from './th/th.component';\nimport {TuiTableThGroup} from './th-group/th-group.component';\nimport {TuiTableTr} from './tr/tr.component';\n\nexport const TuiTable = [\n TuiTableDirective,\n TuiTableCaption,\n TuiTableTbody,\n TuiTableThGroup,\n TuiTableTh,\n TuiTableTd,\n TuiTableTr,\n TuiTableCell,\n TuiTableHead,\n TuiTableSortBy,\n TuiTableSortable,\n TuiTableThead,\n TuiTableResized,\n TuiTableSortPipe,\n TuiTableDirectionOrder,\n TuiTableExpand,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiStuck"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-table-components-table.mjs","sources":["../../../projects/addon-table/components/table/caption/caption.component.ts","../../../projects/addon-table/components/table/directives/cell.directive.ts","../../../projects/addon-table/components/table/table.options.ts","../../../projects/addon-table/components/table/directives/stuck.directive.ts","../../../projects/addon-table/components/table/directives/table.directive.ts","../../../projects/addon-table/components/table/directives/direction-order.directive.ts","../../../projects/addon-table/components/table/directives/head.directive.ts","../../../projects/addon-table/components/table/directives/resized.directive.ts","../../../projects/addon-table/components/table/th/th.component.ts","../../../projects/addon-table/components/table/th/th.template.html","../../../projects/addon-table/components/table/directives/sortable.directive.ts","../../../projects/addon-table/components/table/directives/sort-by.directive.ts","../../../projects/addon-table/components/table/directives/thead.directive.ts","../../../projects/addon-table/components/table/pipes/table-sort.pipe.ts","../../../projects/addon-table/components/table/providers/table.provider.ts","../../../projects/addon-table/components/table/table-expand/table-expand.component.ts","../../../projects/addon-table/components/table/table-expand/table-expand.template.html","../../../projects/addon-table/components/table/td/td.component.ts","../../../projects/addon-table/components/table/tr/tr.component.ts","../../../projects/addon-table/components/table/tr/tr.template.html","../../../projects/addon-table/components/table/tbody/tbody.component.ts","../../../projects/addon-table/components/table/tbody/tbody.template.html","../../../projects/addon-table/components/table/th-group/th-group.component.ts","../../../projects/addon-table/components/table/th-group/th-group.template.html","../../../projects/addon-table/components/table/table.ts","../../../projects/addon-table/components/table/taiga-ui-addon-table-components-table.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'caption[tuiCaption]',\n template: '<ng-content/>',\n styleUrl: './caption.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiTableCaption {}\n","import {Directive, inject, Input, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: 'ng-template[tuiCell]',\n})\nexport class TuiTableCell {\n @Input()\n public tuiCell = '';\n\n public readonly template = inject(TemplateRef<Record<string, unknown>>);\n}\n","import {type TuiComparator} from '@taiga-ui/addon-table/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport const TuiSortDirection = {\n Asc: 1,\n Desc: -1,\n} as const;\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type TuiSortDirection = (typeof TuiSortDirection)[keyof typeof TuiSortDirection];\n\nexport interface TuiSortChange<T> {\n /**\n * @deprecated use sortKey\n */\n sortBy: keyof T | null;\n sortKey: keyof T | null;\n /**\n * @deprecated use sortDirection\n */\n orderBy: TuiSortDirection;\n sortDirection: TuiSortDirection;\n}\n\nexport interface TuiTableSortChange<T> {\n /**\n * @deprecated use sortComparator\n */\n sortBy: TuiComparator<T> | null;\n sortComparator: TuiComparator<T> | null;\n /**\n * @deprecated use sortDirection\n */\n orderBy: TuiSortDirection;\n sortDirection: TuiSortDirection;\n}\n\nexport interface TuiTableOptions {\n readonly direction: TuiSortDirection;\n readonly requiredSort: boolean;\n readonly open: boolean;\n readonly resizable: boolean;\n readonly size: TuiSizeL | TuiSizeS;\n readonly sortIcons: {\n readonly asc: string;\n readonly desc: string;\n readonly off: string;\n };\n readonly sticky: boolean;\n}\n\nexport const TUI_TABLE_DEFAULT_OPTIONS: TuiTableOptions = {\n sticky: false,\n resizable: false,\n open: true,\n size: 'm',\n direction: TuiSortDirection.Asc,\n requiredSort: false,\n sortIcons: {\n asc: '@tui.chevron-up',\n desc: '@tui.chevron-down',\n off: '@tui.chevrons-up-down',\n },\n};\n\nexport const [TUI_TABLE_OPTIONS, tuiTableOptionsProvider] = tuiCreateOptions(\n TUI_TABLE_DEFAULT_OPTIONS,\n);\n","import {Directive, inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {\n IntersectionObserverService,\n WA_INTERSECTION_THRESHOLD,\n} from '@ng-web-apis/intersection-observer';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {catchError, distinctUntilChanged, EMPTY, map} from 'rxjs';\n\n// TODO: Consider making universal and moving to CDK\n@Directive({\n selector: 'tui-stuck:never',\n providers: [\n IntersectionObserverService,\n {\n provide: WA_INTERSECTION_THRESHOLD,\n useValue: [0, 1],\n },\n ],\n host: {'[class._stuck]': 'stuck()'},\n})\nexport class TuiStuck {\n protected readonly stuck = toSignal(\n inject(IntersectionObserverService).pipe(\n map((entries) => (entries[entries.length - 1]?.intersectionRatio ?? 0) < 1),\n distinctUntilChanged(),\n tuiWatch(),\n catchError(() => EMPTY), // SSR\n ),\n );\n}\n","import {\n type AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n EventEmitter,\n inject,\n Input,\n type OnChanges,\n Output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {WA_INTERSECTION_ROOT_MARGIN} from '@ng-web-apis/intersection-observer';\nimport {type TuiComparator} from '@taiga-ui/addon-table/types';\nimport {tuiProvide, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {\n TUI_TEXTFIELD_OPTIONS,\n type TuiTextfieldOptions,\n} from '@taiga-ui/core/components/textfield';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {tuiBadgeOptionsProvider} from '@taiga-ui/kit/components/badge';\nimport {tuiChipOptionsProvider} from '@taiga-ui/kit/components/chip';\nimport {tuiProgressOptionsProvider} from '@taiga-ui/kit/components/progress';\nimport {combineLatest, debounceTime, map, type Observable, Subject} from 'rxjs';\n\nimport {\n TUI_TABLE_OPTIONS,\n TuiSortDirection,\n type TuiTableSortChange,\n} from '../table.options';\nimport {TuiStuck} from './stuck.directive';\n\nconst EMPTY_COMPARATOR: TuiComparator<unknown> = () => 0;\n\n@Component({\n template: '',\n styleUrl: './table.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-table'},\n})\nclass Styles {}\n\n@Directive({\n selector: 'table[tuiTable]',\n providers: [\n {\n provide: WA_INTERSECTION_ROOT_MARGIN,\n useValue: '10000px 10000px 10000px 0px',\n },\n tuiProvide(TUI_TEXTFIELD_OPTIONS, TuiTableDirective),\n tuiButtonOptionsProvider({size: 's'}),\n tuiBadgeOptionsProvider({size: 'm', appearance: 'neutral'}),\n tuiChipOptionsProvider({size: 'xxs', appearance: 'neutral'}),\n tuiProgressOptionsProvider({size: 's', color: 'var(--tui-text-action)'}),\n ],\n hostDirectives: [TuiStuck],\n host: {\n '[attr.data-size]': 'size()',\n },\n})\nexport class TuiTableDirective<T extends Partial<Record<keyof T, unknown>>>\n implements AfterViewInit, TuiTextfieldOptions, OnChanges\n{\n private readonly options = inject(TUI_TABLE_OPTIONS);\n private readonly cdr = inject(ChangeDetectorRef);\n\n protected readonly nothing = tuiWithStyles(Styles);\n\n @Input()\n public columns: ReadonlyArray<string | keyof T> = [];\n\n @Input()\n public direction = this.options.direction;\n\n @Input()\n public sorter: TuiComparator<T> = EMPTY_COMPARATOR;\n\n /**\n * @deprecated: use sortChange\n */\n @Output()\n public readonly directionChange = new EventEmitter<TuiSortDirection>();\n\n /**\n * @deprecated: use sortChange\n */\n @Output()\n public readonly sorterChange = new EventEmitter<TuiComparator<T> | null>();\n\n @Output()\n public readonly sortChange: Observable<TuiTableSortChange<T>> = combineLatest([\n this.sorterChange,\n this.directionChange,\n ]).pipe(\n debounceTime(0),\n map(([sortComparator, sortDirection]) => ({\n sortBy: sortComparator,\n orderBy: sortDirection,\n sortComparator,\n sortDirection,\n })),\n );\n\n public readonly appearance = signal('table');\n public readonly size = signal(this.options.size);\n public readonly cleaner = signal(false);\n\n // TODO: refactor to signal inputs after Angular update\n public readonly change$ = new Subject<void>();\n\n @Input('size')\n public set sizeSetter(size: TuiSizeL | TuiSizeS) {\n this.size.set(size);\n }\n\n public updateSorterAndDirection(sorter: TuiComparator<T> | null): void {\n if (this.sorter === sorter) {\n this.updateSorter(\n this.sorter,\n this.direction === TuiSortDirection.Asc\n ? TuiSortDirection.Desc\n : TuiSortDirection.Asc,\n );\n } else {\n this.updateSorter(sorter);\n }\n }\n\n public ngOnChanges(): void {\n this.change$.next();\n }\n\n public ngAfterViewInit(): void {\n this.cdr.detectChanges();\n }\n\n public updateSorter(\n sorter: TuiComparator<T> | null,\n direction: TuiSortDirection = TuiSortDirection.Asc,\n ): void {\n this.sorter = sorter || EMPTY_COMPARATOR.bind({});\n this.direction = direction;\n this.sorterChange.emit(sorter);\n this.directionChange.emit(this.direction);\n this.change$.next();\n }\n}\n","import {Directive, inject, Input, Output} from '@angular/core';\nimport {map} from 'rxjs';\n\nimport {TuiSortDirection} from '../table.options';\nimport {TuiTableDirective} from './table.directive';\n\n@Directive({\n selector: 'table[tuiTable][tuiDirectionOrder]',\n})\nexport class TuiTableDirectionOrder<T> {\n private readonly table = inject(TuiTableDirective<T>);\n\n /**\n * @deprecated: use tuiSortChange\n */\n @Output()\n public readonly directionOrderChange = this.table.directionChange.pipe(\n map((dir) => (dir === 1 ? 'asc' : 'desc')),\n );\n\n @Input()\n public set directionOrder(order: 'asc' | 'desc') {\n this.table.direction =\n order === 'asc' ? TuiSortDirection.Asc : TuiSortDirection.Desc;\n }\n}\n","import {Directive, inject, Input, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: '[tuiHead]',\n})\nexport class TuiTableHead<T extends Partial<Record<keyof T, unknown>>> {\n @Input({required: true})\n public tuiHead: string | keyof T = '';\n\n public readonly template = inject(TemplateRef<Record<string, unknown>>);\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, inject, Output} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiPreventDefault, tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {distinctUntilChanged, map, switchMap, takeUntil} from 'rxjs';\n\n@Directive({\n selector: '[tuiResized]',\n})\nexport class TuiTableResized {\n private readonly doc = inject(DOCUMENT);\n private readonly el = tuiInjectElement();\n\n @Output()\n public readonly tuiResized = tuiTypedFromEvent(this.el, 'mousedown').pipe(\n tuiPreventDefault(),\n switchMap(() => {\n const {width, right} =\n this.el.closest('th')?.getBoundingClientRect() || EMPTY_CLIENT_RECT;\n\n return tuiTypedFromEvent(this.doc, 'mousemove').pipe(\n distinctUntilChanged(),\n map(({clientX}) => width + clientX - right),\n takeUntil(tuiTypedFromEvent(this.doc, 'mouseup')),\n );\n }),\n );\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\nimport {AsyncPipe, NgTemplateOutlet} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n inject,\n Input,\n} from '@angular/core';\nimport {type TuiComparator} from '@taiga-ui/addon-table/types';\nimport {tuiDefaultSort} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\n\nimport {TuiTableHead} from '../directives/head.directive';\nimport {TuiTableResized} from '../directives/resized.directive';\nimport {TuiTableDirective} from '../directives/table.directive';\nimport {TUI_TABLE_OPTIONS, TuiSortDirection} from '../table.options';\n\n@Component({\n selector: 'th[tuiTh]',\n imports: [AsyncPipe, NgTemplateOutlet, TuiIcon, TuiTableResized],\n templateUrl: './th.template.html',\n styleUrl: './th.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.min-width.px]': 'width || minWidth',\n '[style.width.px]': 'width || minWidth',\n '[style.max-width.px]': 'width || maxWidth',\n '[class._sticky]': 'sticky',\n },\n})\nexport class TuiTableTh<T extends Partial<Record<keyof T, unknown>>> {\n private readonly options = inject(TUI_TABLE_OPTIONS);\n\n private readonly head = inject<TuiTableHead<T>>(TuiTableHead, {\n optional: true,\n });\n\n protected width: number | null = null;\n\n protected readonly table = inject<TuiTableDirective<T>>(\n forwardRef(() => TuiTableDirective),\n {optional: true},\n );\n\n @Input()\n public minWidth = -Infinity;\n\n @Input()\n public maxWidth = Infinity;\n\n @Input()\n public sorter: TuiComparator<T> | null = this.head\n ? (a, b) => tuiDefaultSort(a[this.key], b[this.key])\n : null;\n\n @Input()\n public resizable = this.options.resizable;\n\n @Input()\n public sticky = this.options.sticky;\n\n @Input()\n public requiredSort = this.options.requiredSort;\n\n public get key(): keyof T {\n if (!this.head) {\n throw new TuiTableSortKeyException();\n }\n\n return this.head.tuiHead as keyof T;\n }\n\n protected get isCurrent(): boolean {\n return !!this.sorter && !!this.table && this.sorter === this.table.sorter;\n }\n\n protected get icon(): string {\n if (this.isCurrent) {\n return this.table?.direction === TuiSortDirection.Asc\n ? this.options.sortIcons.asc\n : this.options.sortIcons.desc;\n }\n\n return this.options.sortIcons.off;\n }\n\n protected updateSorterAndDirection(): void {\n const sorter = this.requiredSort ? this.sorter : null;\n\n this.table?.updateSorterAndDirection(\n this.isCurrentAndDescDirection ? sorter : this.sorter,\n );\n }\n\n protected onResized(width: number): void {\n this.width = Math.min(Math.max(width, this.minWidth), this.maxWidth);\n }\n\n private get isCurrentAndDescDirection(): boolean {\n return (\n this.sorter === this.table?.sorter &&\n this.table?.direction === TuiSortDirection.Desc\n );\n }\n}\n\nexport class TuiTableSortKeyException extends Error {\n constructor() {\n super(ngDevMode ? 'Trying to sort with no key' : '');\n }\n}\n","@if (sorter && table) {\n <button\n type=\"button\"\n class=\"t-sort\"\n [class.t-sort_sorted]=\"isCurrent\"\n (click)=\"updateSorterAndDirection()\"\n >\n <ng-container [ngTemplateOutlet]=\"content\" />\n {{ table.change$ | async }}\n <tui-icon\n class=\"t-icon\"\n [icon]=\"icon\"\n />\n </button>\n} @else {\n <ng-container [ngTemplateOutlet]=\"content\" />\n}\n<ng-template #content>\n <ng-content />\n</ng-template>\n@if (resizable) {\n <div\n class=\"t-bar\"\n (tuiResized)=\"onResized($event)\"\n ></div>\n}\n","import {type BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Directive, forwardRef, inject, Input, type OnChanges} from '@angular/core';\nimport {type TuiComparator} from '@taiga-ui/addon-table/types';\n\nimport {TuiTableTh} from '../th/th.component';\nimport {TuiTableSortBy} from './sort-by.directive';\nimport {TuiTableDirective} from './table.directive';\n\n@Directive({\n selector: 'th[tuiTh][tuiSortable]',\n})\nexport class TuiTableSortable<T extends Partial<Record<keyof T, unknown>>>\n implements OnChanges\n{\n private readonly table: TuiTableDirective<T> = inject(TuiTableDirective<T>);\n private readonly th: TuiTableTh<T> = inject(TuiTableTh<T>);\n private readonly sortBy = inject<TuiTableSortBy<T>>(forwardRef(() => TuiTableSortBy));\n\n @Input({\n alias: 'tuiSortable',\n transform: coerceBooleanProperty,\n })\n public sortable: BooleanInput;\n\n public get key(): keyof T {\n return this.th.key;\n }\n\n public sorter: TuiComparator<T> = (): number => 0;\n\n public ngOnChanges(): void {\n if (this.sortable) {\n this.sorter = this.match ? this.table.sorter : this.sorter;\n this.th.sorter = this.sorter;\n } else {\n this.th.sorter = null;\n }\n }\n\n public check(): void {\n if (this.match && this.table.sorter !== this.sorter) {\n this.table.updateSorter(this.sorter);\n }\n }\n\n private get match(): boolean {\n return this.sortBy.tuiSortBy === this.key;\n }\n}\n","import {\n ContentChildren,\n Directive,\n inject,\n Input,\n Output,\n type QueryList,\n} from '@angular/core';\nimport {type TuiComparator} from '@taiga-ui/addon-table/types';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {combineLatest, debounceTime, delay, filter, map, type Observable} from 'rxjs';\n\nimport {type TuiSortChange} from '../table.options';\nimport {TuiTableSortable} from './sortable.directive';\nimport {TuiTableDirective} from './table.directive';\n\n@Directive({\n selector: 'table[tuiTable][tuiSortBy]',\n})\nexport class TuiTableSortBy<T extends Partial<Record<keyof T, unknown>>> {\n @ContentChildren(TuiTableSortable, {descendants: true})\n private readonly sortables: QueryList<TuiTableSortable<T>> = EMPTY_QUERY;\n\n private readonly table = inject(TuiTableDirective<T>);\n\n /**\n * @deprecated: use tuiSortChange\n */\n @Output()\n public readonly tuiSortByChange = this.table.sorterChange.pipe(\n // delay is for getting actual ContentChildren (sortables) https://github.com/angular/angular/issues/38976\n delay(0),\n filter(() => !!this.sortables.length),\n map((sorter) => this.getKey(sorter)),\n );\n\n @Output()\n public readonly tuiSortChange: Observable<TuiSortChange<T>> = combineLatest([\n this.tuiSortByChange,\n this.table.directionChange,\n ]).pipe(\n debounceTime(0),\n map(([sortKey, sortDirection]) => ({\n sortBy: sortKey,\n orderBy: sortDirection,\n sortKey,\n sortDirection,\n })),\n );\n\n public tuiSortBy: string | keyof T | null = null;\n\n @Input('tuiSortBy')\n public set sortBy(sortBy: string | keyof T | null) {\n this.tuiSortBy = sortBy;\n this.checkSortables();\n }\n\n protected checkSortables(): void {\n this.sortables.forEach((s) => s.check());\n }\n\n private getKey(sorter: TuiComparator<T> | null): keyof T | null {\n return this.sortables.find((s) => s.sorter === sorter)?.key || null;\n }\n}\n","import {Directive} from '@angular/core';\nimport {WA_INTERSECTION_ROOT_MARGIN} from '@ng-web-apis/intersection-observer';\n\nimport {TuiStuck} from './stuck.directive';\n\n@Directive({\n selector: 'thead[tuiThead]',\n providers: [\n {\n provide: WA_INTERSECTION_ROOT_MARGIN,\n useValue: '0px 10000px 10000px 10000px',\n },\n ],\n hostDirectives: [TuiStuck],\n})\nexport class TuiTableThead {}\n","import {inject, Pipe, type PipeTransform} from '@angular/core';\nimport {type TuiComparator} from '@taiga-ui/addon-table/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiTableDirective} from '../directives/table.directive';\nimport {type TuiSortDirection} from '../table.options';\n\n@Pipe({\n name: 'tuiTableSort',\n pure: false,\n})\nexport class TuiTableSortPipe<K> implements PipeTransform {\n private readonly table = inject(TuiTableDirective<K>);\n\n public transform<T extends K>(data?: readonly T[] | null): readonly T[] {\n return this.sort<T>(data ?? [], this.table.sorter, this.table.direction);\n }\n\n @tuiPure\n private sort<T extends K>(\n data: readonly T[],\n sorter: TuiComparator<T>,\n direction: TuiSortDirection,\n ): readonly T[] {\n return [...data].sort((a, b) => direction * sorter(a, b));\n }\n}\n","import {type Provider, SkipSelf} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\n\nimport {TuiTableDirective} from '../directives/table.directive';\n\n/**\n * @deprecated TODO: drop after Angular update and signal inputs\n */\nexport const TUI_TABLE_PROVIDER: Provider[] = [\n {\n provide: TuiTableDirective,\n deps: [[new SkipSelf(), TuiTableDirective]],\n useFactory: (\n controller: TuiTableDirective<Partial<Record<string, unknown>>>,\n ): TuiTableDirective<Partial<Record<string, unknown>>> => {\n controller.change$.pipe(tuiWatch(), takeUntilDestroyed()).subscribe();\n\n return controller;\n },\n },\n];\n","import {isPlatformServer} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n type ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n PLATFORM_ID,\n signal,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiPresent} from '@taiga-ui/kit/directives/present';\nimport {map, of, Subject, switchMap, timer} from 'rxjs';\n\nimport {TUI_TABLE_OPTIONS} from '../table.options';\n\n@Component({\n selector: 'tui-table-expand',\n templateUrl: './table-expand.template.html',\n styleUrl: './table-expand.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: TuiPresent,\n outputs: ['tuiPresentChange'],\n },\n ],\n host: {\n ngSkipHydration: 'true',\n '(tuiPresentChange)': 'visible$.next($event)',\n },\n})\nexport class TuiTableExpand {\n @ViewChild('content', {static: true})\n private readonly content?: ElementRef<HTMLElement>;\n\n private readonly el = tuiInjectElement();\n private readonly server = isPlatformServer(inject(PLATFORM_ID));\n\n protected readonly transitioning = signal(false);\n protected readonly contentHeight = computed((_ = this.expanded()) => this.update());\n protected readonly visible$ = new Subject<boolean>();\n protected readonly sub = this.visible$\n .pipe(\n switchMap((v) => (v ? timer(500).pipe(map(() => v)) : of(v))),\n takeUntilDestroyed(),\n )\n .subscribe((visible) => this.el.classList.toggle('_visible', visible));\n\n @Output()\n public readonly expandedChange = new EventEmitter<boolean>();\n\n public readonly expanded = signal(inject(TUI_TABLE_OPTIONS).open);\n\n @Input('expanded')\n public set expandedSetter(open: boolean) {\n this.expanded.set(open);\n this.transitioning.set(true);\n }\n\n public toggle(): void {\n this.expanded.set(!this.expanded());\n this.transitioning.set(true);\n this.expandedChange.emit(this.expanded());\n }\n\n private update(): number {\n if (!this.content || this.server) {\n return 0;\n }\n\n const el = this.content.nativeElement;\n\n el.style.setProperty('display', 'block');\n\n const height = el.getBoundingClientRect().height;\n\n el.style.removeProperty('display');\n\n return height;\n }\n}\n","<div\n #content\n class=\"t-content\"\n [class.t-content_open]=\"expanded() && !transitioning()\"\n>\n <ng-content />\n</div>\n\n<div\n class=\"t-filler\"\n [class.t-filler_open]=\"expanded()\"\n [style.--t-height.px]=\"contentHeight()\"\n (animationcancel)=\"transitioning.set(false)\"\n (animationend)=\"transitioning.set(false)\"\n (animationstart)=\"transitioning.set(true)\"\n></div>\n","import {ChangeDetectionStrategy, Component, ContentChild} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\n\n@Component({\n selector: 'th[tuiTd], td[tuiTd]',\n template: '<ng-content />',\n styleUrl: './td.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._editable]': 'control || textfield',\n },\n})\nexport class TuiTableTd {\n @ContentChild(TuiControl)\n protected readonly control: unknown;\n\n @ContentChild(TuiTextfieldComponent)\n protected readonly textfield?: TuiTextfieldComponent<unknown>;\n}\n","import {AsyncPipe, NgTemplateOutlet} from '@angular/common';\nimport {\n type AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n forwardRef,\n inject,\n type QueryList,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiQueryListChanges, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {distinctUntilChanged, map, ReplaySubject, switchMap} from 'rxjs';\n\nimport {TuiTableCell} from '../directives/cell.directive';\nimport {TuiTableDirective} from '../directives/table.directive';\nimport {TUI_TABLE_PROVIDER} from '../providers/table.provider';\nimport {TuiTableTbody} from '../tbody/tbody.component';\nimport {TuiTableTd} from '../td/td.component';\n\n@Component({\n selector: 'tr[tuiTr]',\n imports: [AsyncPipe, NgTemplateOutlet, TuiTableTd],\n templateUrl: './tr.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TUI_TABLE_PROVIDER, ResizeObserverService],\n host: {\n '[style.--t-row-height.px]': 'height()',\n },\n})\nexport class TuiTableTr<T extends Partial<Record<keyof T, unknown>>>\n implements AfterContentInit\n{\n @ContentChildren(forwardRef(() => TuiTableCell))\n private readonly cells: QueryList<TuiTableCell> = EMPTY_QUERY;\n\n private readonly body = inject<TuiTableTbody<T>>(forwardRef(() => TuiTableTbody));\n\n private readonly contentReady$ = new ReplaySubject<boolean>(1);\n\n protected readonly table = inject<TuiTableDirective<T>>(\n forwardRef(() => TuiTableDirective),\n );\n\n protected readonly height = toSignal(\n inject(ResizeObserverService, {self: true}).pipe(\n map(([entry]) => entry?.contentRect.height ?? 0),\n distinctUntilChanged(),\n tuiZoneOptimized(),\n ),\n {initialValue: 0},\n );\n\n protected readonly cells$ = this.contentReady$.pipe(\n switchMap(() => tuiQueryListChanges(this.cells)),\n map((cells) =>\n cells.reduce(\n (record, item) => ({...record, [item.tuiCell]: item}),\n {} as Record<string | keyof T, TuiTableCell>,\n ),\n ),\n );\n\n protected readonly item$ = this.contentReady$.pipe(\n switchMap(() => tuiQueryListChanges(this.body.rows)),\n map(\n (rows) =>\n this.body.data[rows.findIndex((row) => row === this)] as Record<\n string | keyof T,\n unknown\n >,\n ),\n );\n\n public ngAfterContentInit(): void {\n Promise.resolve().then(() => this.contentReady$.next(true));\n }\n}\n","@if (cells$ | async; as items) {\n @for (key of table.columns; track key) {\n <ng-container [ngTemplateOutlet]=\"(items[key] && items[key].template) || plain\">\n <ng-template #plain>\n @if (item$ | async; as item) {\n <td tuiTd>\n {{ item[key] }}\n </td>\n }\n </ng-template>\n </ng-container>\n }\n} @else {\n <td></td>\n}\n<ng-content />\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n Output,\n type QueryList,\n} from '@angular/core';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiTableDirective} from '../directives/table.directive';\nimport {TUI_TABLE_PROVIDER} from '../providers/table.provider';\nimport {TUI_TABLE_OPTIONS} from '../table.options';\nimport {TuiTableTr} from '../tr/tr.component';\n\n@Component({\n selector: 'tbody[tuiTbody]',\n imports: [PolymorpheusOutlet, TuiChevron, TuiIcon],\n templateUrl: './tbody.template.html',\n styleUrl: './tbody.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_TABLE_PROVIDER,\n})\nexport class TuiTableTbody<T extends Partial<Record<keyof T, unknown>>> {\n private readonly options = inject(TUI_TABLE_OPTIONS);\n\n protected readonly table = inject<TuiTableDirective<T>>(\n forwardRef(() => TuiTableDirective),\n );\n\n @ContentChildren(forwardRef(() => TuiTableTr))\n public readonly rows: QueryList<TuiTableTr<T>> = EMPTY_QUERY;\n\n @Input()\n public data: readonly T[] = [];\n\n /** @deprecated: drop in v5.0, use TuiTableExpand */\n @Input()\n public heading: PolymorpheusContent;\n\n /** @deprecated: drop in v5.0, use TuiTableExpand */\n @Input()\n public open = this.options.open;\n\n /** @deprecated: drop in v5.0, use TuiTableExpand */\n @Output()\n public readonly openChange = new EventEmitter<boolean>();\n\n /** @deprecated: drop in v5.0, use TuiTableExpand */\n protected onClick = (): void => {\n this.open = !this.open;\n this.openChange.emit(this.open);\n };\n}\n","@if (heading) {\n <tr>\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-icon\n class=\"t-chevron\"\n [tuiChevron]=\"open\"\n />\n </button>\n </th>\n </tr>\n}\n@if (open) {\n <ng-content />\n}\n","import {AsyncPipe, NgTemplateOutlet} from '@angular/common';\nimport {\n type AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n forwardRef,\n inject,\n type QueryList,\n} from '@angular/core';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {map, type Observable, startWith} from 'rxjs';\n\nimport {TuiTableHead} from '../directives/head.directive';\nimport {TuiTableDirective} from '../directives/table.directive';\nimport {TUI_TABLE_PROVIDER} from '../providers/table.provider';\nimport {TuiTableTh} from '../th/th.component';\n\n@Component({\n selector: 'tr[tuiThGroup]',\n imports: [AsyncPipe, NgTemplateOutlet, TuiTableTh],\n templateUrl: './th-group.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TUI_TABLE_PROVIDER],\n})\nexport class TuiTableThGroup<T extends Partial<Record<keyof T, unknown>>>\n implements AfterContentInit\n{\n @ContentChild(forwardRef(() => TuiTableTh))\n protected readonly th!: TuiTableTh<T>;\n\n @ContentChildren(forwardRef(() => TuiTableHead))\n protected readonly heads: QueryList<TuiTableHead<T>> = EMPTY_QUERY;\n\n protected heads$: Observable<Record<string | keyof T, TuiTableHead<T>>> | null = null;\n\n protected readonly table = inject<TuiTableDirective<T>>(\n forwardRef(() => TuiTableDirective),\n );\n\n public ngAfterContentInit(): void {\n this.heads$ = this.heads.changes.pipe(\n startWith(null),\n map(() =>\n this.heads.reduce(\n (record, item) => ({...record, [item.tuiHead]: item}),\n {} as Record<string | keyof T, TuiTableHead<T>>,\n ),\n ),\n );\n }\n}\n","<ng-content />\n@if (heads$ | async; as headings) {\n @for (key of table.columns; track key) {\n <ng-container\n [ngTemplateOutlet]=\"headings?.[key]?.template || plain\"\n [ngTemplateOutletContext]=\"{$implicit: key}\"\n />\n }\n <ng-template\n #plain\n let-key\n >\n @if (!th && !heads.length) {\n <th tuiTh>\n {{ key.toString() }}\n </th>\n }\n </ng-template>\n}\n","import {TuiTableCaption} from './caption/caption.component';\nimport {TuiTableCell} from './directives/cell.directive';\nimport {TuiTableDirectionOrder} from './directives/direction-order.directive';\nimport {TuiTableHead} from './directives/head.directive';\nimport {TuiTableResized} from './directives/resized.directive';\nimport {TuiTableSortBy} from './directives/sort-by.directive';\nimport {TuiTableSortable} from './directives/sortable.directive';\nimport {TuiTableDirective} from './directives/table.directive';\nimport {TuiTableThead} from './directives/thead.directive';\nimport {TuiTableSortPipe} from './pipes/table-sort.pipe';\nimport {TuiTableExpand} from './table-expand/table-expand.component';\nimport {TuiTableTbody} from './tbody/tbody.component';\nimport {TuiTableTd} from './td/td.component';\nimport {TuiTableTh} from './th/th.component';\nimport {TuiTableThGroup} from './th-group/th-group.component';\nimport {TuiTableTr} from './tr/tr.component';\n\nexport const TuiTable = [\n TuiTableDirective,\n TuiTableCaption,\n TuiTableTbody,\n TuiTableThGroup,\n TuiTableTh,\n TuiTableTd,\n TuiTableTr,\n TuiTableCell,\n TuiTableHead,\n TuiTableSortBy,\n TuiTableSortable,\n TuiTableThead,\n TuiTableResized,\n TuiTableSortPipe,\n TuiTableDirectionOrder,\n TuiTableExpand,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiStuck"],"mappings":"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"}
|
|
@@ -25,7 +25,6 @@ class TuiTableControlDirective extends TuiControl {
|
|
|
25
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTableControlDirective, decorators: [{
|
|
26
26
|
type: Directive,
|
|
27
27
|
args: [{
|
|
28
|
-
standalone: true,
|
|
29
28
|
selector: '[tuiTable][ngModel],[tuiTable][formControl],[tuiTable][formControlName]',
|
|
30
29
|
providers: [tuiFallbackValueProvider([])],
|
|
31
30
|
}]
|
|
@@ -58,7 +57,6 @@ class TuiCheckboxRowDirective {
|
|
|
58
57
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCheckboxRowDirective, decorators: [{
|
|
59
58
|
type: Directive,
|
|
60
59
|
args: [{
|
|
61
|
-
standalone: true,
|
|
62
60
|
selector: '[tuiCheckbox][tuiCheckboxRow]',
|
|
63
61
|
providers: [{ provide: NgControl, useClass: NgModel }],
|
|
64
62
|
host: {
|
|
@@ -89,7 +87,6 @@ class TuiCheckboxTableDirective {
|
|
|
89
87
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCheckboxTableDirective, decorators: [{
|
|
90
88
|
type: Directive,
|
|
91
89
|
args: [{
|
|
92
|
-
standalone: true,
|
|
93
90
|
selector: '[tuiCheckbox][tuiCheckboxTable]',
|
|
94
91
|
providers: [{ provide: NgControl, useClass: NgModel }],
|
|
95
92
|
host: { '(change)': 'parent.toggleAll()' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-table-directives-table-control.mjs","sources":["../../../projects/addon-table/directives/table-control/table-control.directive.ts","../../../projects/addon-table/directives/table-control/checkbox-row.directive.ts","../../../projects/addon-table/directives/table-control/checkbox-table.directive.ts","../../../projects/addon-table/directives/table-control/table-control.ts","../../../projects/addon-table/directives/table-control/taiga-ui-addon-table-directives-table-control.ts"],"sourcesContent":["import {computed, Directive, type Signal, signal} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {tuiArrayToggle} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {type TuiCheckboxRowDirective} from './checkbox-row.directive';\n\n@Directive({\n
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-table-directives-table-control.mjs","sources":["../../../projects/addon-table/directives/table-control/table-control.directive.ts","../../../projects/addon-table/directives/table-control/checkbox-row.directive.ts","../../../projects/addon-table/directives/table-control/checkbox-table.directive.ts","../../../projects/addon-table/directives/table-control/table-control.ts","../../../projects/addon-table/directives/table-control/taiga-ui-addon-table-directives-table-control.ts"],"sourcesContent":["import {computed, Directive, type Signal, signal} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {tuiArrayToggle} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {type TuiCheckboxRowDirective} from './checkbox-row.directive';\n\n@Directive({\n selector: '[tuiTable][ngModel],[tuiTable][formControl],[tuiTable][formControlName]',\n providers: [tuiFallbackValueProvider([])],\n})\nexport class TuiTableControlDirective<T> extends TuiControl<readonly T[]> {\n private readonly children = signal<ReadonlyArray<TuiCheckboxRowDirective<T>>>([]);\n\n public readonly checked: Signal<boolean> = computed(() =>\n this.children().every((i) => this.value().includes(i.tuiCheckboxRow)),\n );\n\n public readonly indeterminate = computed(\n () => !!this.value().length && !this.checked(),\n );\n\n public toggleAll(): void {\n this.onChange(this.checked() ? [] : this.children().map((i) => i.tuiCheckboxRow));\n }\n\n public process(checkbox: TuiCheckboxRowDirective<T>): void {\n this.children.update((children) => tuiArrayToggle(children, checkbox));\n }\n}\n","import {\n computed,\n Directive,\n inject,\n Input,\n type OnDestroy,\n type OnInit,\n} from '@angular/core';\nimport {NgControl, NgModel} from '@angular/forms';\nimport {tuiArrayToggle} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiTableControlDirective} from './table-control.directive';\n\n@Directive({\n selector: '[tuiCheckbox][tuiCheckboxRow]',\n providers: [{provide: NgControl, useClass: NgModel}],\n host: {\n '[checked]': 'checked()',\n '(change)': 'onChange()',\n },\n})\nexport class TuiCheckboxRowDirective<T> implements OnInit, OnDestroy {\n private readonly control = inject(NgControl);\n private readonly parent: TuiTableControlDirective<T> = inject(\n TuiTableControlDirective,\n );\n\n protected readonly checked = computed((checked = this.parent\n .value()\n .includes(this.tuiCheckboxRow)) => {\n setTimeout(() => this.control.control?.setValue(checked));\n\n return checked;\n });\n\n @Input()\n public tuiCheckboxRow!: T;\n\n public ngOnInit(): void {\n this.parent.process(this);\n }\n\n public ngOnDestroy(): void {\n this.parent.process(this);\n this.parent.onChange(\n this.parent.value().filter((item) => item !== this.tuiCheckboxRow),\n );\n }\n\n protected onChange(): void {\n this.parent.onChange(tuiArrayToggle(this.parent.value(), this.tuiCheckboxRow));\n }\n}\n","import {Directive, effect, inject} from '@angular/core';\nimport {NgControl, NgModel} from '@angular/forms';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TuiTableControlDirective} from './table-control.directive';\n\n@Directive({\n selector: '[tuiCheckbox][tuiCheckboxTable]',\n providers: [{provide: NgControl, useClass: NgModel}],\n host: {'(change)': 'parent.toggleAll()'},\n})\nexport class TuiCheckboxTableDirective {\n private readonly el = tuiInjectElement<HTMLInputElement>();\n private readonly control = inject(NgControl);\n\n protected readonly parent = inject(TuiTableControlDirective);\n protected readonly update = effect(() => {\n const indeterminate = this.parent.indeterminate();\n const checked = this.parent.checked();\n\n this.el.indeterminate = indeterminate;\n this.el.checked = checked;\n this.control.control?.setValue(indeterminate ? null : checked);\n });\n}\n","import {TuiCheckboxRowDirective} from './checkbox-row.directive';\nimport {TuiCheckboxTableDirective} from './checkbox-table.directive';\nimport {TuiTableControlDirective} from './table-control.directive';\n\nexport const TuiTableControl = [\n TuiCheckboxRowDirective,\n TuiCheckboxTableDirective,\n TuiTableControlDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,6 @@ class TuiGenericFilter extends AbstractTuiTableFilter {
|
|
|
20
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiGenericFilter, decorators: [{
|
|
21
21
|
type: Directive,
|
|
22
22
|
args: [{
|
|
23
|
-
standalone: true,
|
|
24
23
|
selector: '[tuiGenericFilter]',
|
|
25
24
|
providers: [tuiProvide(AbstractTuiTableFilter, TuiGenericFilter)],
|
|
26
25
|
}]
|
|
@@ -57,7 +56,6 @@ class TuiTableFiltersDirective {
|
|
|
57
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTableFiltersDirective, decorators: [{
|
|
58
57
|
type: Directive,
|
|
59
58
|
args: [{
|
|
60
|
-
standalone: true,
|
|
61
59
|
selector: '[tuiTableFilters]',
|
|
62
60
|
}]
|
|
63
61
|
}] });
|
|
@@ -91,7 +89,6 @@ class TuiTableFilterDirective {
|
|
|
91
89
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTableFilterDirective, decorators: [{
|
|
92
90
|
type: Directive,
|
|
93
91
|
args: [{
|
|
94
|
-
standalone: true,
|
|
95
92
|
selector: '[tuiTableFilter]',
|
|
96
93
|
}]
|
|
97
94
|
}], propDecorators: { tuiTableFilter: [{
|
|
@@ -111,7 +108,6 @@ class TuiTableFiltersPipe {
|
|
|
111
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiTableFiltersPipe, decorators: [{
|
|
112
109
|
type: Pipe,
|
|
113
110
|
args: [{
|
|
114
|
-
standalone: true,
|
|
115
111
|
name: 'tuiTableFilters',
|
|
116
112
|
}]
|
|
117
113
|
}] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-table-directives-table-filters.mjs","sources":["../../../projects/addon-table/directives/table-filters/abstract-table-filter.ts","../../../projects/addon-table/directives/table-filters/generic-filter.directive.ts","../../../projects/addon-table/directives/table-filters/table-filters.directive.ts","../../../projects/addon-table/directives/table-filters/table-filter.directive.ts","../../../projects/addon-table/directives/table-filters/table-filters.pipe.ts","../../../projects/addon-table/directives/table-filters/table-filters.ts","../../../projects/addon-table/directives/table-filters/taiga-ui-addon-table-directives-table-filters.ts"],"sourcesContent":["export abstract class AbstractTuiTableFilter<T, G> {\n public abstract filter(item: T, value: G): boolean;\n}\n","import {Directive, Input} from '@angular/core';\nimport {TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {AbstractTuiTableFilter} from './abstract-table-filter';\n\n@Directive({\n
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-table-directives-table-filters.mjs","sources":["../../../projects/addon-table/directives/table-filters/abstract-table-filter.ts","../../../projects/addon-table/directives/table-filters/generic-filter.directive.ts","../../../projects/addon-table/directives/table-filters/table-filters.directive.ts","../../../projects/addon-table/directives/table-filters/table-filter.directive.ts","../../../projects/addon-table/directives/table-filters/table-filters.pipe.ts","../../../projects/addon-table/directives/table-filters/table-filters.ts","../../../projects/addon-table/directives/table-filters/taiga-ui-addon-table-directives-table-filters.ts"],"sourcesContent":["export abstract class AbstractTuiTableFilter<T, G> {\n public abstract filter(item: T, value: G): boolean;\n}\n","import {Directive, Input} from '@angular/core';\nimport {TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {AbstractTuiTableFilter} from './abstract-table-filter';\n\n@Directive({\n selector: '[tuiGenericFilter]',\n providers: [tuiProvide(AbstractTuiTableFilter, TuiGenericFilter)],\n})\nexport class TuiGenericFilter<T, G> extends AbstractTuiTableFilter<T, G> {\n @Input('tuiGenericFilter')\n public filter: (item: T, value: G) => boolean = TUI_TRUE_HANDLER;\n}\n","import {Directive} from '@angular/core';\nimport {\n identity,\n map,\n merge,\n type Observable,\n ReplaySubject,\n startWith,\n switchMap,\n} from 'rxjs';\n\nimport {type TuiTableFilter} from './table-filter';\n\n@Directive({\n selector: '[tuiTableFilters]',\n})\nexport class TuiTableFiltersDirective<T> {\n private readonly refresh$ = new ReplaySubject<Observable<unknown>>(1);\n\n private filters: ReadonlyArray<TuiTableFilter<T>> = [];\n\n public register(filter: TuiTableFilter<T>): void {\n this.filters = this.filters.concat(filter);\n this.update();\n }\n\n public unregister(filter: TuiTableFilter<T>): void {\n this.filters = this.filters.filter((item) => item !== filter);\n this.update();\n }\n\n public filter(items: readonly T[]): Observable<readonly T[]> {\n return this.refresh$.pipe(\n switchMap(identity),\n startWith(null),\n map(() => items.filter((item) => this.check(item))),\n );\n }\n\n private check(item: T): boolean {\n return this.filters.every((filter) => filter.filter(item));\n }\n\n private update(): void {\n this.refresh$.next(merge(...this.filters.map(({refresh$}) => refresh$)));\n }\n}\n","import {Directive, inject, Input, type OnDestroy, type OnInit} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {TuiTableHead} from '@taiga-ui/addon-table/components';\nimport {type TuiValuesOf} from '@taiga-ui/cdk/types';\nimport {defer, distinctUntilChanged, EMPTY, merge} from 'rxjs';\n\nimport {AbstractTuiTableFilter} from './abstract-table-filter';\nimport {type TuiTableFilter} from './table-filter';\nimport {TuiTableFiltersDirective} from './table-filters.directive';\n\n@Directive({\n selector: '[tuiTableFilter]',\n})\nexport class TuiTableFilterDirective<T> implements OnInit, OnDestroy, TuiTableFilter<T> {\n private readonly head = inject(TuiTableHead<T>, {optional: true});\n private readonly delegate = inject(AbstractTuiTableFilter<TuiValuesOf<T>, unknown>);\n private readonly control = inject(NgControl);\n protected readonly filters = inject(TuiTableFiltersDirective<T>);\n\n @Input()\n public tuiTableFilter?: keyof T;\n\n public readonly refresh$ = defer(() =>\n merge(\n this.control.valueChanges || EMPTY,\n this.control.statusChanges?.pipe(distinctUntilChanged()) || EMPTY,\n ),\n );\n\n public ngOnInit(): void {\n this.filters.register(this);\n }\n\n public ngOnDestroy(): void {\n this.filters.unregister(this);\n }\n\n public filter(item: T): boolean {\n const {disabled, value} = this.control;\n\n return (\n !!disabled ||\n !this.key ||\n this.delegate.filter(item[this.key as keyof T], value)\n );\n }\n\n private get key(): string | keyof T | undefined {\n return this.tuiTableFilter || this.head?.tuiHead;\n }\n}\n","import {inject, Pipe, type PipeTransform} from '@angular/core';\nimport {type Observable} from 'rxjs';\n\nimport {TuiTableFiltersDirective} from './table-filters.directive';\n\n@Pipe({\n name: 'tuiTableFilters',\n})\nexport class TuiTableFiltersPipe<T> implements PipeTransform {\n private readonly filters = inject(TuiTableFiltersDirective<T>);\n\n public transform<T>(items: readonly T[]): Observable<readonly T[]> {\n return this.filters.filter(items);\n }\n}\n","import {TuiGenericFilter} from './generic-filter.directive';\nimport {TuiTableFilterDirective} from './table-filter.directive';\nimport {TuiTableFiltersDirective} from './table-filters.directive';\nimport {TuiTableFiltersPipe} from './table-filters.pipe';\n\nexport const TuiTableFilters = [\n TuiTableFiltersDirective,\n TuiTableFilterDirective,\n TuiTableFiltersPipe,\n TuiGenericFilter,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/addon-table",
|
|
3
|
-
"version": "4.52.0-canary.
|
|
3
|
+
"version": "4.52.0-canary.974ca4b",
|
|
4
4
|
"description": "A library to display tabled data with filters, search, group actions, etc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
"action"
|
|
11
11
|
],
|
|
12
12
|
"homepage": "https://github.com/taiga-family/taiga-ui",
|
|
13
|
-
"repository":
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/taiga-family/taiga-ui"
|
|
16
|
+
},
|
|
14
17
|
"license": "Apache-2.0",
|
|
15
18
|
"peerDependencies": {
|
|
16
19
|
"@angular/common": ">=19.0.0",
|
|
@@ -53,14 +56,14 @@
|
|
|
53
56
|
"types": "./components/reorder/index.d.ts",
|
|
54
57
|
"default": "./fesm2022/taiga-ui-addon-table-components-reorder.mjs"
|
|
55
58
|
},
|
|
56
|
-
"./components/table-pagination": {
|
|
57
|
-
"types": "./components/table-pagination/index.d.ts",
|
|
58
|
-
"default": "./fesm2022/taiga-ui-addon-table-components-table-pagination.mjs"
|
|
59
|
-
},
|
|
60
59
|
"./components/table": {
|
|
61
60
|
"types": "./components/table/index.d.ts",
|
|
62
61
|
"default": "./fesm2022/taiga-ui-addon-table-components-table.mjs"
|
|
63
62
|
},
|
|
63
|
+
"./components/table-pagination": {
|
|
64
|
+
"types": "./components/table-pagination/index.d.ts",
|
|
65
|
+
"default": "./fesm2022/taiga-ui-addon-table-components-table-pagination.mjs"
|
|
66
|
+
},
|
|
64
67
|
"./directives/table-control": {
|
|
65
68
|
"types": "./directives/table-control/index.d.ts",
|
|
66
69
|
"default": "./fesm2022/taiga-ui-addon-table-directives-table-control.mjs"
|