@tedi-design-system/angular 6.4.0 → 6.5.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/community/components/navigation/pagination/pagination.component.d.ts +3 -0
  2. package/community/components/navigation/pagination/pagination.component.d.ts.map +1 -1
  3. package/fesm2022/tedi-design-system-angular-community.mjs +3 -0
  4. package/fesm2022/tedi-design-system-angular-community.mjs.map +1 -1
  5. package/fesm2022/tedi-design-system-angular-tedi.mjs +3012 -784
  6. package/fesm2022/tedi-design-system-angular-tedi.mjs.map +1 -1
  7. package/package.json +2 -1
  8. package/tedi/components/buttons/collapse/collapse.component.d.ts +21 -5
  9. package/tedi/components/buttons/collapse/collapse.component.d.ts.map +1 -1
  10. package/tedi/components/buttons/collapse-button/collapse-button.component.d.ts +76 -0
  11. package/tedi/components/buttons/collapse-button/collapse-button.component.d.ts.map +1 -0
  12. package/tedi/components/buttons/index.d.ts +1 -0
  13. package/tedi/components/buttons/index.d.ts.map +1 -1
  14. package/tedi/components/content/index.d.ts +1 -0
  15. package/tedi/components/content/index.d.ts.map +1 -1
  16. package/tedi/components/content/table/index.d.ts +9 -0
  17. package/tedi/components/content/table/index.d.ts.map +1 -0
  18. package/tedi/components/content/table/row-span.utils.d.ts +10 -0
  19. package/tedi/components/content/table/row-span.utils.d.ts.map +1 -0
  20. package/tedi/components/content/table/table-columns-menu/index.d.ts +2 -0
  21. package/tedi/components/content/table/table-columns-menu/index.d.ts.map +1 -0
  22. package/tedi/components/content/table/table-columns-menu/table-columns-menu.component.d.ts +19 -0
  23. package/tedi/components/content/table/table-columns-menu/table-columns-menu.component.d.ts.map +1 -0
  24. package/tedi/components/content/table/table-header-button/index.d.ts +2 -0
  25. package/tedi/components/content/table/table-header-button/index.d.ts.map +1 -0
  26. package/tedi/components/content/table/table-header-button/table-header-button.component.d.ts +36 -0
  27. package/tedi/components/content/table/table-header-button/table-header-button.component.d.ts.map +1 -0
  28. package/tedi/components/content/table/table-toolbar/index.d.ts +2 -0
  29. package/tedi/components/content/table/table-toolbar/index.d.ts.map +1 -0
  30. package/tedi/components/content/table/table-toolbar/table-toolbar.component.d.ts +6 -0
  31. package/tedi/components/content/table/table-toolbar/table-toolbar.component.d.ts.map +1 -0
  32. package/tedi/components/content/table/table.component.d.ts +499 -0
  33. package/tedi/components/content/table/table.component.d.ts.map +1 -0
  34. package/tedi/components/content/table/table.context.d.ts +5 -0
  35. package/tedi/components/content/table/table.context.d.ts.map +1 -0
  36. package/tedi/components/content/table/table.persistence.d.ts +21 -0
  37. package/tedi/components/content/table/table.persistence.d.ts.map +1 -0
  38. package/tedi/components/content/table/table.types.d.ts +196 -0
  39. package/tedi/components/content/table/table.types.d.ts.map +1 -0
  40. package/tedi/components/helpers/empty-state/empty-state.component.d.ts +54 -0
  41. package/tedi/components/helpers/empty-state/empty-state.component.d.ts.map +1 -0
  42. package/tedi/components/helpers/empty-state/index.d.ts +2 -0
  43. package/tedi/components/helpers/empty-state/index.d.ts.map +1 -0
  44. package/tedi/components/helpers/index.d.ts +1 -0
  45. package/tedi/components/helpers/index.d.ts.map +1 -1
  46. package/tedi/components/navigation/index.d.ts +1 -0
  47. package/tedi/components/navigation/index.d.ts.map +1 -1
  48. package/tedi/components/navigation/pagination/index.d.ts +5 -0
  49. package/tedi/components/navigation/pagination/index.d.ts.map +1 -0
  50. package/tedi/components/navigation/pagination/pagination-option-picker-modal/pagination-option-picker-modal.component.d.ts +31 -0
  51. package/tedi/components/navigation/pagination/pagination-option-picker-modal/pagination-option-picker-modal.component.d.ts.map +1 -0
  52. package/tedi/components/navigation/pagination/pagination-results.directive.d.ts +17 -0
  53. package/tedi/components/navigation/pagination/pagination-results.directive.d.ts.map +1 -0
  54. package/tedi/components/navigation/pagination/pagination.component.d.ts +182 -0
  55. package/tedi/components/navigation/pagination/pagination.component.d.ts.map +1 -0
  56. package/tedi/components/navigation/pagination/pagination.types.d.ts +48 -0
  57. package/tedi/components/navigation/pagination/pagination.types.d.ts.map +1 -0
  58. package/tedi/components/navigation/pagination/pagination.utils.d.ts +24 -0
  59. package/tedi/components/navigation/pagination/pagination.utils.d.ts.map +1 -0
  60. package/tedi/components/overlay/dropdown/dropdown-item/dropdown-item.component.d.ts +14 -1
  61. package/tedi/components/overlay/dropdown/dropdown-item/dropdown-item.component.d.ts.map +1 -1
  62. package/tedi/components/overlay/modal/modal-header/modal-header.component.d.ts +15 -1
  63. package/tedi/components/overlay/modal/modal-header/modal-header.component.d.ts.map +1 -1
  64. package/tedi/components/overlay/modal/modal.component.d.ts +3 -3
  65. package/tedi/components/overlay/modal/modal.component.d.ts.map +1 -1
  66. package/tedi/components/overlay/modal/modal.service.d.ts.map +1 -1
  67. package/tedi/components/overlay/modal/modal.types.d.ts +9 -2
  68. package/tedi/components/overlay/modal/modal.types.d.ts.map +1 -1
  69. package/tedi/services/translation/translations.d.ts +108 -3
  70. package/tedi/services/translation/translations.d.ts.map +1 -1
@@ -0,0 +1,499 @@
1
+ import { Injector, Signal, TemplateRef } from "@angular/core";
2
+ import { type CdkDragDrop } from "@angular/cdk/drag-drop";
3
+ import { type CellContext, type Column, type ColumnDef, type Row, type Table as TanstackTable } from "@tanstack/angular-table";
4
+ import { type CollapseButtonArrowType } from "../../buttons/collapse-button/collapse-button.component";
5
+ import { PopoverComponent } from "../../overlay/popover/popover.component";
6
+ import type { TableColumnMeta, TableExpandTrigger, TablePaginationOptions, TablePersistOptions, TableSelectionMode, TableSize, TableState, TediColumnDef, TediTableContextValue, TediTableFilterContext } from "./table.types";
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * Per-slot visual config forwarded to a `tedi-pagination` instance rendered by
10
+ * the table. Mirrors the pagination component's inputs (defaults applied so the
11
+ * template binds plain values, not `T | undefined`).
12
+ */
13
+ interface ResolvedPaginationSlot {
14
+ boundaryCount: number;
15
+ siblingCount: number;
16
+ labels: TablePaginationOptions["labels"];
17
+ background: NonNullable<TablePaginationOptions["background"]>;
18
+ dividerPosition: NonNullable<TablePaginationOptions["dividerPosition"]>;
19
+ hideResults: NonNullable<TablePaginationOptions["hideResults"]>;
20
+ hidePageSize: NonNullable<TablePaginationOptions["hidePageSize"]>;
21
+ hidePager: NonNullable<TablePaginationOptions["hidePager"]>;
22
+ hideArrows: NonNullable<TablePaginationOptions["hideArrows"]>;
23
+ disableArrowsAtBoundary: boolean;
24
+ arrowVariant: NonNullable<TablePaginationOptions["arrowVariant"]>;
25
+ showArrowLabels: boolean;
26
+ previousIcon: NonNullable<TablePaginationOptions["previousIcon"]>;
27
+ nextIcon: NonNullable<TablePaginationOptions["nextIcon"]>;
28
+ showModalTitle: boolean;
29
+ }
30
+ export declare class TediTableComponent<TData> {
31
+ /** Stable identifier used for synthetic ids. */
32
+ readonly id: import("@angular/core").InputSignal<string | undefined>;
33
+ /** Row data. */
34
+ readonly data: import("@angular/core").InputSignal<TData[]>;
35
+ /** Column definitions. */
36
+ readonly columns: import("@angular/core").InputSignal<TediColumnDef<TData>[]>;
37
+ /** Visual size. @default 'medium' */
38
+ readonly size: import("@angular/core").InputSignal<TableSize>;
39
+ /** Caption rendered above the table. */
40
+ readonly caption: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
41
+ readonly striped: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
42
+ readonly verticalBorders: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
43
+ readonly borderless: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
44
+ readonly stickyFirstColumn: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
45
+ readonly stickyHeader: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
46
+ /**
47
+ * Switches the table to `table-layout: fixed`, making column `size` /
48
+ * `minSize` / `maxSize` authoritative — cell content wraps inside the
49
+ * allotted width instead of stretching the column. With the default auto
50
+ * layout, browsers size columns to content and the widths are only hints.
51
+ * @default false
52
+ */
53
+ readonly fixedLayout: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
54
+ readonly maxHeight: import("@angular/core").InputSignal<string | number | undefined>;
55
+ readonly activeRowId: import("@angular/core").InputSignal<string | undefined>;
56
+ readonly rowHover: import("@angular/core").InputSignal<boolean | undefined>;
57
+ /**
58
+ * Enables row selection and renders the selection column. Pass `true` to
59
+ * allow selecting any row, or a predicate `(row) => boolean` to gate which
60
+ * rows are selectable. Pair with `selectionMode` for checkbox vs radio.
61
+ * @default undefined
62
+ */
63
+ readonly enableRowSelection: import("@angular/core").InputSignal<boolean | ((row: Row<TData>) => boolean) | undefined>;
64
+ /**
65
+ * Whether row selection is multi- or single-row. `'multiple'` (default)
66
+ * renders a checkbox per row + a select-all checkbox in the header.
67
+ * `'single'` renders a radio per row (sharing one `name` so native HTML
68
+ * group behaviour auto-deselects siblings) and omits the header control —
69
+ * select-all is meaningless in single-select mode. Mirrors the React
70
+ * Table's `selectionMode` prop.
71
+ * @default 'multiple'
72
+ */
73
+ readonly selectionMode: import("@angular/core").InputSignal<TableSelectionMode>;
74
+ readonly enableColumnFilters: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
75
+ /**
76
+ * Template rendered as an expandable detail row beneath each expandable row.
77
+ * Receives the TanStack `Row` as `$implicit` (`let-row`). Providing it
78
+ * auto-adds the expand column; pair with `getRowCanExpand` to gate which
79
+ * rows expand.
80
+ * @default undefined
81
+ */
82
+ readonly renderSubComponent: import("@angular/core").InputSignal<TemplateRef<{
83
+ $implicit: Row<TData>;
84
+ }> | undefined>;
85
+ /**
86
+ * Predicate deciding whether a given row can expand. When omitted, every row
87
+ * with a `renderSubComponent` / sub-rows is expandable.
88
+ * @default undefined
89
+ */
90
+ readonly getRowCanExpand: import("@angular/core").InputSignal<((row: Row<TData>) => boolean) | undefined>;
91
+ /**
92
+ * How an expandable row is toggled. `button` (default) — only the chevron
93
+ * button toggles. `row` — clicking anywhere on the row toggles. The chevron
94
+ * renders in the bordered `secondary` style regardless; use
95
+ * `expandButtonVariant` to change it.
96
+ * @default 'button'
97
+ */
98
+ readonly expandTrigger: import("@angular/core").InputSignal<TableExpandTrigger>;
99
+ /**
100
+ * Overrides the expand toggle button's arrow style. Defaults to the bordered
101
+ * `secondary` style; set `default` for the neutral (borderless) chevron.
102
+ * Only affects the icon-only button (i.e. when `expandButtonLabel` is unset).
103
+ * @default undefined
104
+ */
105
+ readonly expandButtonVariant: import("@angular/core").InputSignal<CollapseButtonArrowType | undefined>;
106
+ /**
107
+ * Renders a visible label next to the expand chevron instead of an icon-only
108
+ * button. Pass a single string to use the same label in both states, or an
109
+ * `{ open, close }` pair for distinct collapsed / expanded labels (`open` is
110
+ * shown while collapsed, `close` while expanded). When unset, the button is
111
+ * icon-only and its accessible name comes from the translated
112
+ * expand/collapse-row labels.
113
+ * @default undefined
114
+ */
115
+ readonly expandButtonLabel: import("@angular/core").InputSignal<string | {
116
+ open: string;
117
+ close: string;
118
+ } | undefined>;
119
+ /**
120
+ * Accessor returning a row's child rows, enabling hierarchical / tree data.
121
+ * Children render as nested sub-rows under their parent and expand via the
122
+ * same chevron.
123
+ * @default undefined
124
+ */
125
+ readonly getSubRows: import("@angular/core").InputSignal<((row: TData) => TData[] | undefined) | undefined>;
126
+ /**
127
+ * Enables pagination and configures the bottom paginator slot. This is also
128
+ * the source of truth for `pageSize` / `pageSizeOptions` — the top slot
129
+ * (if any) shares the same state. Pass `true` to enable with defaults,
130
+ * `false` / omit to disable entirely.
131
+ */
132
+ readonly pagination: import("@angular/core").InputSignal<boolean | TablePaginationOptions | undefined>;
133
+ /**
134
+ * Opt-in top paginator slot. Independent visual config from the bottom slot
135
+ * (different `hide*` toggles, divider position, labels, etc.) but shares
136
+ * page / page-size state with the bottom slot. Requires `pagination` to be
137
+ * truthy — if pagination as a feature is off, the top slot does not render.
138
+ * @default undefined
139
+ */
140
+ readonly paginationTop: import("@angular/core").InputSignal<boolean | TablePaginationOptions | undefined>;
141
+ /**
142
+ * Switch pagination to server-side mode: the table renders `data` as the
143
+ * current page as-is and does not slice it. Supply `pageCount` or `rowCount`.
144
+ * @default false
145
+ */
146
+ readonly manualPagination: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
147
+ /**
148
+ * Switch sorting to server-side mode: the table emits sort state via
149
+ * `(stateChange)` but does not reorder `data` itself.
150
+ * @default false
151
+ */
152
+ readonly manualSorting: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
153
+ /**
154
+ * Switch filtering to server-side mode: the table emits filter state via
155
+ * `(stateChange)` but does not filter `data` itself.
156
+ * @default false
157
+ */
158
+ readonly manualFiltering: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
159
+ /** Total page count for server-side pagination (`manualPagination`). */
160
+ readonly pageCount: import("@angular/core").InputSignal<number | undefined>;
161
+ /** Total row count for server-side pagination (`manualPagination`). */
162
+ readonly rowCount: import("@angular/core").InputSignal<number | undefined>;
163
+ /**
164
+ * Controlled state. When provided, the table is fully controlled — render the
165
+ * given slices and emit every change via `(stateChange)` for the consumer to
166
+ * apply back.
167
+ * @default undefined
168
+ */
169
+ readonly state: import("@angular/core").InputSignal<Partial<TableState> | undefined>;
170
+ /**
171
+ * Initial state for uncontrolled mode (seeds sorting / filters / pagination /
172
+ * selection etc. on first render). Ignored once `state` is provided.
173
+ * @default undefined
174
+ */
175
+ readonly defaultState: import("@angular/core").InputSignal<Partial<TableState> | undefined>;
176
+ /**
177
+ * Persist selected state slices to storage. `{ key, storage?, include? }` —
178
+ * defaults to persisting user-preference slices (`columnVisibility`,
179
+ * `columnOrder`, `rowOrder`, `columnSizing`).
180
+ * @default undefined
181
+ */
182
+ readonly persist: import("@angular/core").InputSignal<TablePersistOptions | undefined>;
183
+ /**
184
+ * Empty-state content shown when there are no rows — a string or a
185
+ * `TemplateRef`. Defaults to the translated `table.no-data` label.
186
+ * @default undefined
187
+ */
188
+ readonly placeholder: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
189
+ /**
190
+ * ARIA live-region role wrapping the empty-state placeholder — `'status'`
191
+ * (polite) or `'alert'` (assertive). Omit for no live region.
192
+ * @default undefined
193
+ */
194
+ readonly placeholderRole: import("@angular/core").InputSignal<"alert" | "status" | undefined>;
195
+ /**
196
+ * Adds clickable styling, role="button", and keyboard activation to rows.
197
+ * Subscribe to `rowClick` to react when a row is activated. Defaults to
198
+ * `false` — turn on when rows should behave like buttons.
199
+ * @default false
200
+ */
201
+ readonly interactive: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
202
+ /**
203
+ * Makes data rows reorderable via drag-and-drop. The consumer reorders the
204
+ * `data` array in `(rowDrop)` (typically with `moveItemInArray`) and passes
205
+ * the new array back via `[data]`. Pair with `table-layout: fixed` (via the
206
+ * `tedi-table--draggable-rows` host modifier added automatically) so the
207
+ * drag preview preserves cell widths.
208
+ * @default false
209
+ */
210
+ readonly draggableRows: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
211
+ /**
212
+ * Makes columns reorderable via drag-and-drop on the header row. Reorders
213
+ * the table's internal `columnOrder` state directly — no consumer wiring
214
+ * needed beyond persisting the state slice if desired.
215
+ * @default false
216
+ */
217
+ readonly draggableColumns: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
218
+ /**
219
+ * Emits the full merged table state whenever any slice changes (sorting,
220
+ * filters, pagination, selection, expansion, column visibility / order).
221
+ * Use with `state` for controlled mode or to persist externally.
222
+ */
223
+ readonly stateChange: import("@angular/core").OutputEmitterRef<TableState>;
224
+ /**
225
+ * Emits the activated row. Only fires when `interactive` is `true` (click or
226
+ * Enter/Space on a focused row).
227
+ */
228
+ readonly rowClick: import("@angular/core").OutputEmitterRef<Row<TData>>;
229
+ /**
230
+ * Fires when a row is dropped to a new position. `previousIndex` and
231
+ * `currentIndex` are normalised to **source `data` array** positions — even
232
+ * when the table is sorted, filtered, or paginated — so consumers can call
233
+ * `moveItemInArray(data, previousIndex, currentIndex)` directly and pass the
234
+ * reordered array back via `[data]`.
235
+ */
236
+ readonly rowDrop: import("@angular/core").OutputEmitterRef<CdkDragDrop<TData[], TData[], any>>;
237
+ protected readonly injector: Injector;
238
+ private readonly translation;
239
+ private readonly _hoveredRowId;
240
+ /**
241
+ * Id of the data row currently under the pointer, or `null`. Exposed so
242
+ * cell templates can react to hover (e.g. emphasise a badge while its row is
243
+ * hovered). Read it via a template reference: `#table` →
244
+ * `table.hoveredRowId()`. Also available through `TEDI_TABLE_CONTEXT`.
245
+ */
246
+ readonly hoveredRowId: Signal<string | null>;
247
+ private readonly internalId;
248
+ protected readonly resolvedId: Signal<string>;
249
+ protected readonly placeholderLabel: Signal<string>;
250
+ protected readonly rowDetailsLabel: Signal<string>;
251
+ protected readonly dragColumnLabel: Signal<string>;
252
+ protected readonly dragRowLabel: Signal<string>;
253
+ private readonly persistence;
254
+ protected readonly tableState: Signal<TableState>;
255
+ protected readonly SELECT_COLUMN_ID = "__select__";
256
+ protected readonly EXPAND_COLUMN_ID = "__expand__";
257
+ protected readonly DRAG_COLUMN_ID = "__drag__";
258
+ private readonly paginationOptions;
259
+ protected readonly paginationEnabled: Signal<boolean>;
260
+ protected readonly paginationPageSizeOptions: Signal<number[]>;
261
+ protected readonly resolvedBottomSlot: Signal<ResolvedPaginationSlot | null>;
262
+ protected readonly resolvedTopSlot: Signal<ResolvedPaginationSlot | null>;
263
+ /**
264
+ * Which slot the `[tediPaginationResults]` projection should be rendered in.
265
+ * Picks whichever paginator actually shows results; defaults to the bottom
266
+ * when both do, falls back to the top when bottom hides results.
267
+ */
268
+ protected readonly resultsRenderTarget: Signal<"top" | "bottom" | null>;
269
+ /**
270
+ * Captures a `<ng-template tediPaginationResults>` declared inside the
271
+ * `<tedi-table>` host. Read as a `TemplateRef` (the directive is a bare
272
+ * marker) and forwarded — projected as `<span tediPaginationResults>` — into
273
+ * whichever paginator slot is set to display results.
274
+ */
275
+ private readonly customResultsTemplateRef;
276
+ protected readonly customResultsTemplate: Signal<TemplateRef<any> | null>;
277
+ protected readonly topResultsTemplate: Signal<TemplateRef<any> | null>;
278
+ protected readonly bottomResultsTemplate: Signal<TemplateRef<any> | null>;
279
+ private readonly paginationHostClasses;
280
+ private readonly hasExpansion;
281
+ private readonly hasSelection;
282
+ /**
283
+ * True when any column has `filterable` truthy. The table forces TanStack's
284
+ * column-filter machinery on in this case so per-column `getCanFilter()`
285
+ * returns true and the trigger button renders — without forcing the
286
+ * legacy inline filter row.
287
+ */
288
+ private readonly hasFilterableColumns;
289
+ private readonly augmentedColumns;
290
+ private buildStateChangeHandlers;
291
+ private readonly defaultPagination;
292
+ private buildResolvedState;
293
+ protected readonly table: TanstackTable<TData>;
294
+ readonly contextValue: TediTableContextValue<TData>;
295
+ private trackTableInputs;
296
+ protected readonly hostClasses: Signal<string>;
297
+ protected readonly headerGroups: Signal<import("@tanstack/angular-table").HeaderGroup<TData>[]>;
298
+ protected readonly rows: Signal<Row<TData>[]>;
299
+ protected readonly leafColumns: Signal<Column<TData, unknown>[]>;
300
+ protected readonly leafColumnCount: Signal<number>;
301
+ protected readonly footerGroups: Signal<import("@tanstack/angular-table").HeaderGroup<TData>[]>;
302
+ protected readonly hasFooter: Signal<boolean>;
303
+ protected readonly headerRowCount: Signal<number>;
304
+ protected readonly totalDataRowCount: Signal<number>;
305
+ /**
306
+ * `aria-rowcount` / `aria-rowindex` only apply to genuine grid rows (role
307
+ * `row`). When `interactive` is on, each `<tr>` takes `role="button"`, which
308
+ * does not allow `aria-rowindex` — so the whole row-indexing scheme is
309
+ * disabled to avoid an invalid-ARIA violation.
310
+ */
311
+ protected readonly ariaRowIndexingEnabled: Signal<boolean>;
312
+ protected readonly ariaRowCount: Signal<number | null>;
313
+ protected readonly rowAriaIndexById: Signal<Map<string, number | null>>;
314
+ protected readonly paginationPage: Signal<number>;
315
+ protected readonly paginationPageSize: Signal<number>;
316
+ protected readonly paginationTotalItems: Signal<number>;
317
+ protected readonly paginationPageCount: Signal<number>;
318
+ protected readonly maxHeightStyle: Signal<string | null>;
319
+ protected readonly isAllPageRowsSelected: Signal<boolean>;
320
+ protected readonly isSomePageRowsSelected: Signal<boolean>;
321
+ constructor();
322
+ private applyPatch;
323
+ protected handleRowClick(row: Row<TData>): void;
324
+ protected rowExpandsOnClick(row: Row<TData>): boolean;
325
+ protected handleRowMouseEnter(row: Row<TData>): void;
326
+ protected handleRowMouseLeave(): void;
327
+ /**
328
+ * Consumer-authored sizing per column id, read from the *original* column
329
+ * defs (`augmentedColumns`) — TanStack merges its defaults
330
+ * (`size: 150`, `minSize: 20`, `maxSize: Number.MAX_SAFE_INTEGER`) into the
331
+ * resolved `column.columnDef`, so that copy can't tell "set" from "default".
332
+ */
333
+ private readonly authoredColumnSizing;
334
+ /**
335
+ * Rendered `width` (px) for a column's cells. Under `fixedLayout`, only
336
+ * explicitly-sized columns get a width so the unsized ones absorb the
337
+ * leftover space (otherwise fixed layout scales every column up to fill the
338
+ * table). In auto layout the (clamped) size is emitted as a hint for all.
339
+ */
340
+ protected headerCellWidth(column: {
341
+ id: string;
342
+ getSize: () => number;
343
+ }): number | null;
344
+ /** Consumer-set `min-width` (px); `null` when not set (TanStack's default
345
+ * `20` is not emitted as CSS). */
346
+ protected columnMinWidth(column: {
347
+ id: string;
348
+ }): number | null;
349
+ /** Consumer-set `max-width` (px); `null` when not set (TanStack's default
350
+ * `Number.MAX_SAFE_INTEGER` is not emitted as CSS). */
351
+ protected columnMaxWidth(column: {
352
+ id: string;
353
+ }): number | null;
354
+ protected handleRowKeydown(event: KeyboardEvent, row: Row<TData>): void;
355
+ protected handleRowDrop(event: CdkDragDrop<TData[]>): void;
356
+ protected handleColumnDrop(event: CdkDragDrop<unknown>): void;
357
+ protected handlePaginationPageChange(nextPage: number): void;
358
+ protected handlePaginationPageSizeChange(nextSize: number | undefined): void;
359
+ protected getColumnMeta(column: {
360
+ columnDef: {
361
+ meta?: unknown;
362
+ };
363
+ }): TableColumnMeta | undefined;
364
+ protected getHeaderAriaSort(column: ReturnType<TanstackTable<TData>["getAllLeafColumns"]>[number]): "ascending" | "descending" | "none" | null;
365
+ protected getHeaderLabel(column: ReturnType<TanstackTable<TData>["getAllLeafColumns"]>[number]): string | null;
366
+ protected resolveColumnLabel(column: ReturnType<TanstackTable<TData>["getAllLeafColumns"]>[number]): string;
367
+ protected filterLabel(column: ReturnType<TanstackTable<TData>["getAllLeafColumns"]>[number]): string;
368
+ protected filterPlaceholder(): string;
369
+ protected selectAllLabel(): string;
370
+ protected selectRowLabel(row: Row<TData>): string;
371
+ protected expandRowLabel(isOpen: boolean): string;
372
+ /** Whether the consumer opted the expand button into visible-label mode. */
373
+ protected readonly expandButtonHasLabel: Signal<boolean>;
374
+ /**
375
+ * Arrow style for the expand toggle button. Defaults to the bordered
376
+ * `secondary` style regardless of `expandTrigger`; honours
377
+ * `expandButtonVariant` when the consumer sets it.
378
+ */
379
+ protected readonly resolvedExpandVariant: Signal<CollapseButtonArrowType>;
380
+ /** Visible label shown while a row is collapsed (`open` action). */
381
+ protected readonly expandButtonOpenText: Signal<string | undefined>;
382
+ /** Visible label shown while a row is expanded (`close` action). */
383
+ protected readonly expandButtonCloseText: Signal<string | undefined>;
384
+ protected handleSelectAll(checked: boolean): void;
385
+ protected handleSelectRow(row: Row<TData>, checked: boolean): void;
386
+ protected handleExpandToggle(row: Row<TData>): void;
387
+ protected handleExpandKeydown(event: KeyboardEvent): void;
388
+ protected handleColumnFilter(column: ReturnType<TanstackTable<TData>["getAllLeafColumns"]>[number], value: string): void;
389
+ protected shouldRenderHeader(header: {
390
+ isPlaceholder: boolean;
391
+ column: {
392
+ columnDef: ColumnDef<TData> & {
393
+ columns?: unknown[];
394
+ };
395
+ parent?: unknown;
396
+ };
397
+ }, rowIndex: number): boolean;
398
+ protected getHeaderRowSpan(header: {
399
+ isPlaceholder: boolean;
400
+ column: {
401
+ columnDef: ColumnDef<TData> & {
402
+ columns?: unknown[];
403
+ };
404
+ parent?: unknown;
405
+ };
406
+ }, rowIndex: number): number | null;
407
+ protected isHeaderGroup(header: {
408
+ subHeaders: unknown[];
409
+ }): boolean;
410
+ protected getFilterValue(column: ReturnType<TanstackTable<TData>["getAllLeafColumns"]>[number]): string;
411
+ protected isString(value: unknown): value is string;
412
+ protected isNumber(value: unknown): value is number;
413
+ /**
414
+ * Returns true when the column opted into the built-in sort affordance
415
+ * (`sortable: true` on its `TediColumnDef`), TanStack reports it can sort
416
+ * (`enableSorting !== false`), and the rendered header content is a plain
417
+ * string / number. Custom header `TemplateRef`s and functions bow out of
418
+ * the shorthand and render via `flexRender` as-is.
419
+ */
420
+ protected shouldRenderSortableHeader(column: Column<TData, unknown>, content: unknown): boolean;
421
+ /**
422
+ * Material icon name reflecting the column's current sort state.
423
+ * `asc → arrow_upward`, `desc → arrow_downward`, otherwise `unfold_more`.
424
+ */
425
+ protected sortIcon(column: Column<TData, unknown>): string;
426
+ protected handleSortToggle(column: Column<TData, unknown>): void;
427
+ /**
428
+ * Per-column in-popover filter draft. Keyed by `column.id`. The signal
429
+ * carries the unapplied value while the popover is open; `Apply` calls
430
+ * `column.setFilterValue(draft())`, `Clear` resets both the draft and the
431
+ * applied value. Lazy-initialised so columns without `filterable` pay
432
+ * nothing.
433
+ */
434
+ private readonly filterDrafts;
435
+ /**
436
+ * Normalises `filterable: true | TableFilterOptions | undefined | false`
437
+ * into `TableFilterOptions | null`. `null` means the column did not opt in.
438
+ */
439
+ private resolveFilterOptions;
440
+ /**
441
+ * Typed accessor for the consumer-provided filter template — pulls
442
+ * `TediColumnDef.filterTemplate` off a TanStack `Column.columnDef` (whose
443
+ * static type is the base `ColumnDef`, so the property would otherwise
444
+ * read as `unknown` in strict templates).
445
+ */
446
+ protected filterTemplateFor(col: Column<TData, unknown>): TemplateRef<TediTableFilterContext<unknown, TData>> | undefined;
447
+ /**
448
+ * True when the column opted into the built-in filter affordance
449
+ * (`filterable: true | TableFilterOptions`) AND TanStack reports it can
450
+ * filter (`enableColumnFilter !== false`, etc.).
451
+ */
452
+ protected shouldRenderFilterButton(col: Column<TData, unknown>): boolean;
453
+ /** Whether the column currently has a filter applied. Drives the trigger's
454
+ * selected / filled state. */
455
+ protected filterIsActive(col: Column<TData, unknown>): boolean;
456
+ /** Translated aria-label for the filter trigger button — uses the column
457
+ * label (header text or `meta.label`). */
458
+ protected filterAriaLabel(col: ReturnType<TanstackTable<TData>["getAllLeafColumns"]>[number]): string;
459
+ protected filterApplyLabel(): string;
460
+ protected filterClearLabel(): string;
461
+ private getFilterDraft;
462
+ /**
463
+ * Called when the filter trigger button is clicked. If `clearOnClose` is
464
+ * set, the draft is reset to the currently-applied value every time the
465
+ * popover opens — otherwise the draft persists across opens until the user
466
+ * Applies or Clears.
467
+ */
468
+ protected handleFilterTriggerClick(col: Column<TData, unknown>): void;
469
+ /**
470
+ * Builds the per-column context object handed to the consumer's
471
+ * `filterTemplate`. Calling `setValue` writes to the draft; `apply` /
472
+ * `clear` commit the draft and close the popover.
473
+ */
474
+ /**
475
+ * Builds the per-column context object handed to the consumer's
476
+ * `filterTemplate`. `$implicit` is wired to the context itself so
477
+ * `<ng-template let-ctx>` resolves `ctx.value`, `ctx.setValue`,
478
+ * `ctx.apply()`, `ctx.clear()` and `ctx.column` without extra `let-*`
479
+ * destructuring.
480
+ */
481
+ protected filterContextFor(col: Column<TData, unknown>, popover: PopoverComponent): TediTableFilterContext<unknown, TData>;
482
+ protected handleFilterApply(col: Column<TData, unknown>, popover: PopoverComponent): void;
483
+ protected handleFilterClear(col: Column<TData, unknown>, popover: PopoverComponent): void;
484
+ /**
485
+ * Resolve `rowSpan` for a body cell.
486
+ * - `null` → render normal `<td>`
487
+ * - `0` → skip rendering (covered by a previous spanning cell)
488
+ * - `N>1` → emit `rowspan="N"`
489
+ */
490
+ protected resolveRowSpan(cell: {
491
+ column: {
492
+ columnDef: TediColumnDef<TData>;
493
+ };
494
+ }, cellContext: CellContext<TData, unknown>): number | null;
495
+ static ɵfac: i0.ɵɵFactoryDeclaration<TediTableComponent<any>, never>;
496
+ static ɵcmp: i0.ɵɵComponentDeclaration<TediTableComponent<any>, "tedi-table", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "verticalBorders": { "alias": "verticalBorders"; "required": false; "isSignal": true; }; "borderless": { "alias": "borderless"; "required": false; "isSignal": true; }; "stickyFirstColumn": { "alias": "stickyFirstColumn"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "fixedLayout": { "alias": "fixedLayout"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "activeRowId": { "alias": "activeRowId"; "required": false; "isSignal": true; }; "rowHover": { "alias": "rowHover"; "required": false; "isSignal": true; }; "enableRowSelection": { "alias": "enableRowSelection"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "enableColumnFilters": { "alias": "enableColumnFilters"; "required": false; "isSignal": true; }; "renderSubComponent": { "alias": "renderSubComponent"; "required": false; "isSignal": true; }; "getRowCanExpand": { "alias": "getRowCanExpand"; "required": false; "isSignal": true; }; "expandTrigger": { "alias": "expandTrigger"; "required": false; "isSignal": true; }; "expandButtonVariant": { "alias": "expandButtonVariant"; "required": false; "isSignal": true; }; "expandButtonLabel": { "alias": "expandButtonLabel"; "required": false; "isSignal": true; }; "getSubRows": { "alias": "getSubRows"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "paginationTop": { "alias": "paginationTop"; "required": false; "isSignal": true; }; "manualPagination": { "alias": "manualPagination"; "required": false; "isSignal": true; }; "manualSorting": { "alias": "manualSorting"; "required": false; "isSignal": true; }; "manualFiltering": { "alias": "manualFiltering"; "required": false; "isSignal": true; }; "pageCount": { "alias": "pageCount"; "required": false; "isSignal": true; }; "rowCount": { "alias": "rowCount"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "defaultState": { "alias": "defaultState"; "required": false; "isSignal": true; }; "persist": { "alias": "persist"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "placeholderRole": { "alias": "placeholderRole"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "draggableRows": { "alias": "draggableRows"; "required": false; "isSignal": true; }; "draggableColumns": { "alias": "draggableColumns"; "required": false; "isSignal": true; }; }, { "stateChange": "stateChange"; "rowClick": "rowClick"; "rowDrop": "rowDrop"; }, ["customResultsTemplateRef"], ["tedi-table-toolbar", "tedi-table-columns-menu"], true, never>;
497
+ }
498
+ export {};
499
+ //# sourceMappingURL=table.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.component.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/content/table/table.component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ import type { TediTableContextValue } from "./table.types";
3
+ export declare const TEDI_TABLE_CONTEXT: InjectionToken<TediTableContextValue<unknown>>;
4
+ export declare function injectTediTableContext<TData = unknown>(): TediTableContextValue<TData>;
5
+ //# sourceMappingURL=table.context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.context.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/content/table/table.context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,cAAc,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,eAAO,MAAM,kBAAkB,gDAE9B,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,KAAK,GAAG,OAAO,KACZ,qBAAqB,CAAC,KAAK,CAAC,CAQhC"}
@@ -0,0 +1,21 @@
1
+ import { type Signal } from "@angular/core";
2
+ import type { TablePersistOptions, TableState, TableStatePatch } from "./table.types";
3
+ export interface TablePersistenceController {
4
+ /** Merged state signal (internal ∪ controlled). Reactive. */
5
+ state: Signal<TableState>;
6
+ /** Apply a patch — updates internal state, persists, fires onStateChange. */
7
+ patch(next: TableStatePatch): void;
8
+ /** Replace the controlled slice. */
9
+ setControlled(controlled: Partial<TableState> | undefined): void;
10
+ /** Replace persist options. */
11
+ setPersist(persist: TablePersistOptions | undefined): void;
12
+ /** Replace onStateChange callback. */
13
+ setOnStateChange(cb: ((state: TableState) => void) | undefined): void;
14
+ }
15
+ export declare function createTablePersistence(options: {
16
+ persist?: TablePersistOptions;
17
+ controlled?: Partial<TableState>;
18
+ defaultState?: Partial<TableState>;
19
+ onStateChange?: (state: TableState) => void;
20
+ }): TablePersistenceController;
21
+ //# sourceMappingURL=table.persistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.persistence.d.ts","sourceRoot":"","sources":["../../../../../tedi/components/content/table/table.persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EACV,mBAAmB,EACnB,UAAU,EACV,eAAe,EAChB,MAAM,eAAe,CAAC;AAiDvB,MAAM,WAAW,0BAA0B;IACzC,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1B,6EAA6E;IAC7E,KAAK,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,oCAAoC;IACpC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IACjE,+BAA+B;IAC/B,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,GAAG,IAAI,CAAC;IAC3D,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;CACvE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CAC7C,GAAG,0BAA0B,CA0E7B"}