@testgorilla/tgo-ui 9.3.3 → 10.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs +8 -8
- package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs +15 -15
- package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs +23 -23
- package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs +23 -23
- package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs +84 -84
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs +21 -21
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs +10 -10
- package/fesm2022/testgorilla-tgo-ui-components-badge.mjs +10 -10
- package/fesm2022/testgorilla-tgo-ui-components-badge.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs +20 -20
- package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-button.mjs +8 -8
- package/fesm2022/testgorilla-tgo-ui-components-card.mjs +8 -8
- package/fesm2022/testgorilla-tgo-ui-components-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs +12 -12
- package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs +15 -15
- package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-core.mjs +44 -44
- package/fesm2022/testgorilla-tgo-ui-components-core.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs +20 -20
- package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs +25 -25
- package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-divider.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs +10 -10
- package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs +11 -11
- package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-field.mjs +14 -14
- package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs +10 -10
- package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs +20 -20
- package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs +8 -8
- package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-icon.mjs +23 -15
- package/fesm2022/testgorilla-tgo-ui-components-icon.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-infinite-scroll-table.mjs +369 -0
- package/fesm2022/testgorilla-tgo-ui-components-infinite-scroll-table.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs +33 -33
- package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-logo.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs +3 -3
- package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs +3 -3
- package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs +23 -23
- package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs +14 -14
- package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs +10 -10
- package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs +8 -8
- package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs +12 -12
- package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-popover.mjs +15 -15
- package/fesm2022/testgorilla-tgo-ui-components-popover.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs +42 -42
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-rating.mjs +10 -10
- package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs +8 -8
- package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-scale.mjs +8 -8
- package/fesm2022/testgorilla-tgo-ui-components-scale.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs +17 -17
- package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs +14 -14
- package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs +31 -31
- package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs +12 -12
- package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs +12 -12
- package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs +3 -3
- package/fesm2022/testgorilla-tgo-ui-components-slider.mjs +12 -12
- package/fesm2022/testgorilla-tgo-ui-components-slider.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs +10 -10
- package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs +21 -21
- package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-table.mjs +11 -11
- package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs +25 -25
- package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-tag.mjs +26 -26
- package/fesm2022/testgorilla-tgo-ui-components-tag.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs +10 -10
- package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs +17 -17
- package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs +7 -7
- package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs +40 -40
- package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui.mjs +7 -7
- package/mcp/catalog.json +1 -1
- package/package.json +96 -101
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Grid-list-view-filled.svg +3 -0
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Grid-list-view-in-line.svg +3 -0
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Table-view-filled.svg +3 -0
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Table-view-in-line.svg +3 -0
- package/{components/icon/index.d.ts → types/testgorilla-tgo-ui-components-icon.d.ts} +1 -1
- package/types/testgorilla-tgo-ui-components-infinite-scroll-table.d.ts +225 -0
- package/{components/inline-field/index.d.ts → types/testgorilla-tgo-ui-components-inline-field.d.ts} +8 -7
- package/{components/side-sheet/index.d.ts → types/testgorilla-tgo-ui-components-side-sheet.d.ts} +1 -1
- /package/{components/accordion/index.d.ts → types/testgorilla-tgo-ui-components-accordion.d.ts} +0 -0
- /package/{components/ai-audio-circle/index.d.ts → types/testgorilla-tgo-ui-components-ai-audio-circle.d.ts} +0 -0
- /package/{components/ai-caveat/index.d.ts → types/testgorilla-tgo-ui-components-ai-caveat.d.ts} +0 -0
- /package/{components/ai-feedback/index.d.ts → types/testgorilla-tgo-ui-components-ai-feedback.d.ts} +0 -0
- /package/{components/alert-banner/index.d.ts → types/testgorilla-tgo-ui-components-alert-banner.d.ts} +0 -0
- /package/{components/audio-waveform/index.d.ts → types/testgorilla-tgo-ui-components-audio-waveform.d.ts} +0 -0
- /package/{components/autocomplete-v2/index.d.ts → types/testgorilla-tgo-ui-components-autocomplete-v2.d.ts} +0 -0
- /package/{components/autocomplete/index.d.ts → types/testgorilla-tgo-ui-components-autocomplete.d.ts} +0 -0
- /package/{components/avatar/index.d.ts → types/testgorilla-tgo-ui-components-avatar.d.ts} +0 -0
- /package/{components/badge/index.d.ts → types/testgorilla-tgo-ui-components-badge.d.ts} +0 -0
- /package/{components/breadcrumb/index.d.ts → types/testgorilla-tgo-ui-components-breadcrumb.d.ts} +0 -0
- /package/{components/button/index.d.ts → types/testgorilla-tgo-ui-components-button.d.ts} +0 -0
- /package/{components/card/index.d.ts → types/testgorilla-tgo-ui-components-card.d.ts} +0 -0
- /package/{components/checkbox/index.d.ts → types/testgorilla-tgo-ui-components-checkbox.d.ts} +0 -0
- /package/{components/checklist/index.d.ts → types/testgorilla-tgo-ui-components-checklist.d.ts} +0 -0
- /package/{components/core/index.d.ts → types/testgorilla-tgo-ui-components-core.d.ts} +0 -0
- /package/{components/datepicker/index.d.ts → types/testgorilla-tgo-ui-components-datepicker.d.ts} +0 -0
- /package/{components/dialog/index.d.ts → types/testgorilla-tgo-ui-components-dialog.d.ts} +0 -0
- /package/{components/divider/index.d.ts → types/testgorilla-tgo-ui-components-divider.d.ts} +0 -0
- /package/{components/donut-chart/index.d.ts → types/testgorilla-tgo-ui-components-donut-chart.d.ts} +0 -0
- /package/{components/dropdown/index.d.ts → types/testgorilla-tgo-ui-components-dropdown.d.ts} +0 -0
- /package/{components/elevation-shadow/index.d.ts → types/testgorilla-tgo-ui-components-elevation-shadow.d.ts} +0 -0
- /package/{components/empty-state/index.d.ts → types/testgorilla-tgo-ui-components-empty-state.d.ts} +0 -0
- /package/{components/field/index.d.ts → types/testgorilla-tgo-ui-components-field.d.ts} +0 -0
- /package/{components/file-upload/index.d.ts → types/testgorilla-tgo-ui-components-file-upload.d.ts} +0 -0
- /package/{components/filter-button/index.d.ts → types/testgorilla-tgo-ui-components-filter-button.d.ts} +0 -0
- /package/{components/gaussian-chart/index.d.ts → types/testgorilla-tgo-ui-components-gaussian-chart.d.ts} +0 -0
- /package/{components/icon-label/index.d.ts → types/testgorilla-tgo-ui-components-icon-label.d.ts} +0 -0
- /package/{components/logo/index.d.ts → types/testgorilla-tgo-ui-components-logo.d.ts} +0 -0
- /package/{components/media-card/index.d.ts → types/testgorilla-tgo-ui-components-media-card.d.ts} +0 -0
- /package/{components/media-dialog/index.d.ts → types/testgorilla-tgo-ui-components-media-dialog.d.ts} +0 -0
- /package/{components/multi-input/index.d.ts → types/testgorilla-tgo-ui-components-multi-input.d.ts} +0 -0
- /package/{components/navbar/index.d.ts → types/testgorilla-tgo-ui-components-navbar.d.ts} +0 -0
- /package/{components/overflow-menu/index.d.ts → types/testgorilla-tgo-ui-components-overflow-menu.d.ts} +0 -0
- /package/{components/page-header/index.d.ts → types/testgorilla-tgo-ui-components-page-header.d.ts} +0 -0
- /package/{components/paginator/index.d.ts → types/testgorilla-tgo-ui-components-paginator.d.ts} +0 -0
- /package/{components/password-criteria/index.d.ts → types/testgorilla-tgo-ui-components-password-criteria.d.ts} +0 -0
- /package/{components/password-strength/index.d.ts → types/testgorilla-tgo-ui-components-password-strength.d.ts} +0 -0
- /package/{components/phone-input/index.d.ts → types/testgorilla-tgo-ui-components-phone-input.d.ts} +0 -0
- /package/{components/popover/index.d.ts → types/testgorilla-tgo-ui-components-popover.d.ts} +0 -0
- /package/{components/progress-bar/index.d.ts → types/testgorilla-tgo-ui-components-progress-bar.d.ts} +0 -0
- /package/{components/prompt/index.d.ts → types/testgorilla-tgo-ui-components-prompt.d.ts} +0 -0
- /package/{components/radial-progress/index.d.ts → types/testgorilla-tgo-ui-components-radial-progress.d.ts} +0 -0
- /package/{components/radio-button/index.d.ts → types/testgorilla-tgo-ui-components-radio-button.d.ts} +0 -0
- /package/{components/rating/index.d.ts → types/testgorilla-tgo-ui-components-rating.d.ts} +0 -0
- /package/{components/scale-table/index.d.ts → types/testgorilla-tgo-ui-components-scale-table.d.ts} +0 -0
- /package/{components/scale/index.d.ts → types/testgorilla-tgo-ui-components-scale.d.ts} +0 -0
- /package/{components/segmented-bar/index.d.ts → types/testgorilla-tgo-ui-components-segmented-bar.d.ts} +0 -0
- /package/{components/segmented-button/index.d.ts → types/testgorilla-tgo-ui-components-segmented-button.d.ts} +0 -0
- /package/{components/segmented-toggle/index.d.ts → types/testgorilla-tgo-ui-components-segmented-toggle.d.ts} +0 -0
- /package/{components/selectable-card/index.d.ts → types/testgorilla-tgo-ui-components-selectable-card.d.ts} +0 -0
- /package/{components/side-navigation/index.d.ts → types/testgorilla-tgo-ui-components-side-navigation.d.ts} +0 -0
- /package/{components/side-panel/index.d.ts → types/testgorilla-tgo-ui-components-side-panel.d.ts} +0 -0
- /package/{components/skeleton/index.d.ts → types/testgorilla-tgo-ui-components-skeleton.d.ts} +0 -0
- /package/{components/slider/index.d.ts → types/testgorilla-tgo-ui-components-slider.d.ts} +0 -0
- /package/{components/snackbar/index.d.ts → types/testgorilla-tgo-ui-components-snackbar.d.ts} +0 -0
- /package/{components/spider-chart/index.d.ts → types/testgorilla-tgo-ui-components-spider-chart.d.ts} +0 -0
- /package/{components/spinner/index.d.ts → types/testgorilla-tgo-ui-components-spinner.d.ts} +0 -0
- /package/{components/stepper/index.d.ts → types/testgorilla-tgo-ui-components-stepper.d.ts} +0 -0
- /package/{components/table/index.d.ts → types/testgorilla-tgo-ui-components-table.d.ts} +0 -0
- /package/{components/tabs/index.d.ts → types/testgorilla-tgo-ui-components-tabs.d.ts} +0 -0
- /package/{components/tag/index.d.ts → types/testgorilla-tgo-ui-components-tag.d.ts} +0 -0
- /package/{components/toggle/index.d.ts → types/testgorilla-tgo-ui-components-toggle.d.ts} +0 -0
- /package/{components/tooltip/index.d.ts → types/testgorilla-tgo-ui-components-tooltip.d.ts} +0 -0
- /package/{components/universal-skills/index.d.ts → types/testgorilla-tgo-ui-components-universal-skills.d.ts} +0 -0
- /package/{components/validation-error/index.d.ts → types/testgorilla-tgo-ui-components-validation-error.d.ts} +0 -0
- /package/{components/write-with-ai/index.d.ts → types/testgorilla-tgo-ui-components-write-with-ai.d.ts} +0 -0
- /package/{index.d.ts → types/testgorilla-tgo-ui.d.ts} +0 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { TemplateRef, TrackByFunction, ElementRef } from '@angular/core';
|
|
3
|
+
import * as i2 from '@angular/cdk/scrolling';
|
|
4
|
+
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
|
|
5
|
+
import * as i1 from '@angular/common';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Column definition for the infinite-scroll table.
|
|
9
|
+
*
|
|
10
|
+
* The shape intentionally mirrors the existing `ui-table` `TableColumn` (the fields that carry
|
|
11
|
+
* over to a virtualized body) so consumers can migrate their column configs and cell templates
|
|
12
|
+
* with a selector swap. Types have no runtime footprint, so this is a deliberate duplication
|
|
13
|
+
* rather than a shared import — it keeps the new component fully independent of `ui-table`.
|
|
14
|
+
*/
|
|
15
|
+
interface InfiniteScrollTableColumn<T = any> {
|
|
16
|
+
/** Stable identifier for the column; also used to read the default cell value from a row. */
|
|
17
|
+
key: string;
|
|
18
|
+
/** Header label rendered when no `headerCellTemplate` is provided. */
|
|
19
|
+
title?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Consumer-supplied header cell template.
|
|
22
|
+
* Context: `{ $implicit: column.title, column, colIndex }` — matches `ui-table`.
|
|
23
|
+
*/
|
|
24
|
+
headerCellTemplate?: TemplateRef<unknown>;
|
|
25
|
+
/**
|
|
26
|
+
* Consumer-supplied row cell template.
|
|
27
|
+
* Context: `{ $implicit: element, rowIndex }` — matches `ui-table`.
|
|
28
|
+
*/
|
|
29
|
+
rowCellTemplate?: TemplateRef<unknown>;
|
|
30
|
+
/** When set, the first sticky column pins to the left and the last sticky column pins to the right. */
|
|
31
|
+
isSticky?: boolean;
|
|
32
|
+
styles?: InfiniteScrollTableColumnStyles;
|
|
33
|
+
}
|
|
34
|
+
interface InfiniteScrollTableColumnStyles {
|
|
35
|
+
'min-width'?: string;
|
|
36
|
+
width?: string;
|
|
37
|
+
alignment?: InfiniteScrollTableColumnAlignment;
|
|
38
|
+
}
|
|
39
|
+
type InfiniteScrollTableColumnAlignment = 'left' | 'right' | 'center';
|
|
40
|
+
/** Context object passed to the error template so it can trigger a retry. */
|
|
41
|
+
interface InfiniteScrollTableErrorContext {
|
|
42
|
+
$implicit: () => void;
|
|
43
|
+
retry: () => void;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Payload emitted on `rowClick`: the row plus its data index.
|
|
47
|
+
*
|
|
48
|
+
* Note: this is a **shallow copy** (`{ ...row, index }`, matching `ui-table`), so a class instance's
|
|
49
|
+
* prototype is not preserved and any pre-existing `index` field on the row is overwritten.
|
|
50
|
+
*/
|
|
51
|
+
type InfiniteScrollTableRowClick<T> = T & {
|
|
52
|
+
index: number;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Payload emitted on `selectionChange`: the row, its data index, and the new selected state.
|
|
56
|
+
*
|
|
57
|
+
* As with `rowClick`, this is a **shallow copy** (`{ ...row, index, selected }`) — no prototype, and
|
|
58
|
+
* any pre-existing `index` / `selected` field on the row is overwritten.
|
|
59
|
+
*/
|
|
60
|
+
type InfiniteScrollTableRowSelection<T> = T & {
|
|
61
|
+
index: number;
|
|
62
|
+
selected: boolean;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
/** Internal row wrapper so real rows and skeleton placeholders flow through one virtual list. */
|
|
66
|
+
type RenderRow<T> = {
|
|
67
|
+
kind: 'data';
|
|
68
|
+
item: T;
|
|
69
|
+
index: number;
|
|
70
|
+
} | {
|
|
71
|
+
kind: 'skeleton';
|
|
72
|
+
id: string;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* A generic, virtualized table with scroll-driven infinite loading.
|
|
76
|
+
*
|
|
77
|
+
* Owns rendering, fixed-height vertical virtualization (CDK), horizontal scroll, a pinned header,
|
|
78
|
+
* sticky first/last columns, first-load and load-more skeletons, and a guarded `loadMore` event.
|
|
79
|
+
* All content and layout come from consumer inputs — nothing domain-specific lives here.
|
|
80
|
+
*
|
|
81
|
+
* Independent of `ui-table`: it reuses only stable leaf primitives (`ui-skeleton`) and duplicates
|
|
82
|
+
* the column/context type shapes so consumers can migrate with a selector swap.
|
|
83
|
+
*/
|
|
84
|
+
declare class InfiniteScrollTableComponent<T> {
|
|
85
|
+
/** Rows loaded so far. The consumer appends pages to this array. */
|
|
86
|
+
readonly data: _angular_core.InputSignal<T[]>;
|
|
87
|
+
/** Column definitions. The first `isSticky` column pins left; the last `isSticky` column pins right. */
|
|
88
|
+
readonly columns: _angular_core.InputSignal<InfiniteScrollTableColumn<T>[]>;
|
|
89
|
+
/**
|
|
90
|
+
* Fixed row height in px — used as the virtualization `itemSize`.
|
|
91
|
+
* Variable / multi-line row heights are unsupported in this variant.
|
|
92
|
+
*/
|
|
93
|
+
readonly rowHeight: _angular_core.InputSignal<number>;
|
|
94
|
+
/** Optional stable row identity so recycled rows re-render correctly. Takes precedence over `rowIdKey`. */
|
|
95
|
+
readonly trackBy: _angular_core.InputSignal<TrackByFunction<T> | undefined>;
|
|
96
|
+
/** Optional key on each row that holds a stable id. Used when `trackBy` is not provided. */
|
|
97
|
+
readonly rowIdKey: _angular_core.InputSignal<string | undefined>;
|
|
98
|
+
/**
|
|
99
|
+
* Accepted for API parity with `ui-table`. In this bounded layout the header is always rendered
|
|
100
|
+
* above the internal scroll region and stays visible regardless — `.ui-ist` has `overflow: hidden`,
|
|
101
|
+
* so the header cannot stick to an outer scrolling page. Kept so `ui-table` templates migrate
|
|
102
|
+
* unchanged. Default `true`.
|
|
103
|
+
*/
|
|
104
|
+
readonly stickyHeader: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
105
|
+
/** Max height of the internal scroll region (e.g. `'70vh'`). The body shrinks to fit fewer rows. */
|
|
106
|
+
readonly maxHeight: _angular_core.InputSignal<string>;
|
|
107
|
+
/** Condensed spacing. */
|
|
108
|
+
readonly isCondensed: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
109
|
+
/**
|
|
110
|
+
* Enables row selection. When `true`, a dedicated checkbox column is prepended (pinned to the left)
|
|
111
|
+
* and each row's checkbox reflects the row's `selected` property; toggling it emits `selectionChange`.
|
|
112
|
+
* Selection stays data-driven and consumer-managed, exactly like `ui-table`. Default `false`.
|
|
113
|
+
*/
|
|
114
|
+
readonly selectable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
115
|
+
/** First-load state: renders a full body of skeleton rows. */
|
|
116
|
+
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
117
|
+
/** Appends skeleton rows below the existing rows while the next page is fetched. */
|
|
118
|
+
readonly loadingMore: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
119
|
+
/** Whether more pages exist. When `false`, `loadMore` never fires and the load-more skeleton is hidden. */
|
|
120
|
+
readonly hasMore: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
121
|
+
/** Number of skeleton rows for the first-load state. */
|
|
122
|
+
readonly skeletonRowCount: _angular_core.InputSignal<number>;
|
|
123
|
+
/** How many rows from the end trigger `loadMore`. */
|
|
124
|
+
readonly loadMoreThreshold: _angular_core.InputSignal<number>;
|
|
125
|
+
/** Empty-state template, shown when `data` is empty and not loading. */
|
|
126
|
+
readonly noDataTemplate: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
|
|
127
|
+
/** Error template, shown when `error` is `true`. Receives `{ $implicit: retry, retry }` as context. */
|
|
128
|
+
readonly errorTemplate: _angular_core.InputSignal<TemplateRef<InfiniteScrollTableErrorContext> | undefined>;
|
|
129
|
+
/** Whether a page fetch failed. */
|
|
130
|
+
readonly error: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
131
|
+
/**
|
|
132
|
+
* Fires when the user scrolls within `loadMoreThreshold` rows of the end.
|
|
133
|
+
* Guarded: emits only when `hasMore && !loading && !loadingMore`, and only once per approach.
|
|
134
|
+
*/
|
|
135
|
+
readonly loadMore: _angular_core.OutputEmitterRef<void>;
|
|
136
|
+
/** Fires from the error template's retry affordance. */
|
|
137
|
+
readonly retry: _angular_core.OutputEmitterRef<void>;
|
|
138
|
+
/** Fires when a data row is clicked; payload is the row plus its data index. */
|
|
139
|
+
readonly rowClick: _angular_core.OutputEmitterRef<InfiniteScrollTableRowClick<T>>;
|
|
140
|
+
/**
|
|
141
|
+
* Fires when a row's selection checkbox is toggled (only when `selectable`). Payload is the row,
|
|
142
|
+
* its data index, and the new selected state. The consumer updates its data's `selected` property.
|
|
143
|
+
*/
|
|
144
|
+
readonly selectionChange: _angular_core.OutputEmitterRef<InfiniteScrollTableRowSelection<T>>;
|
|
145
|
+
/** Fixed width of the checkbox column; exposed so the template can offset a sticky first column. */
|
|
146
|
+
protected readonly checkboxColumnWidth = 56;
|
|
147
|
+
protected readonly viewport: _angular_core.Signal<CdkVirtualScrollViewport | undefined>;
|
|
148
|
+
protected readonly headerScroll: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
|
|
149
|
+
/** Horizontal-scroll state, mirroring the existing table's `scrollSettings`. */
|
|
150
|
+
protected readonly scrollStart: _angular_core.WritableSignal<boolean>;
|
|
151
|
+
protected readonly scrollEnd: _angular_core.WritableSignal<boolean>;
|
|
152
|
+
protected readonly horizontalScroll: _angular_core.WritableSignal<boolean>;
|
|
153
|
+
/**
|
|
154
|
+
* Measured width (px) of the body viewport's vertical scrollbar. Reserved as right padding on the
|
|
155
|
+
* header so the header's content width exactly equals the body's, keeping every column — including
|
|
156
|
+
* the last — aligned between header and body regardless of browser/scrollbar behaviour.
|
|
157
|
+
*/
|
|
158
|
+
protected readonly scrollbarWidth: _angular_core.WritableSignal<number>;
|
|
159
|
+
/** Guards `loadMore` to a single emission per approach to the end. */
|
|
160
|
+
private loadMoreArmed;
|
|
161
|
+
protected readonly skeletonTheme: {
|
|
162
|
+
background: string;
|
|
163
|
+
'border-radius': string;
|
|
164
|
+
height: string;
|
|
165
|
+
'margin-bottom': string;
|
|
166
|
+
};
|
|
167
|
+
protected readonly lastStickyKey: _angular_core.Signal<string | undefined>;
|
|
168
|
+
protected readonly firstStickyKey: _angular_core.Signal<string | undefined>;
|
|
169
|
+
/** Real rows, with skeleton placeholders in first-load / load-more states, as one virtual list. */
|
|
170
|
+
protected readonly renderRows: _angular_core.Signal<RenderRow<T>[]>;
|
|
171
|
+
protected readonly hasData: _angular_core.Signal<boolean>;
|
|
172
|
+
/** The virtualized body is shown for the first-load skeletons and whenever there are rows. */
|
|
173
|
+
protected readonly showViewport: _angular_core.Signal<boolean>;
|
|
174
|
+
protected readonly showEmptyState: _angular_core.Signal<boolean>;
|
|
175
|
+
protected readonly showErrorState: _angular_core.Signal<boolean>;
|
|
176
|
+
protected readonly showErrorFooter: _angular_core.Signal<boolean>;
|
|
177
|
+
/** Viewport height shrinks to the content and is capped at `maxHeight` (CSS `min()` mixes units). */
|
|
178
|
+
protected readonly viewportHeight: _angular_core.Signal<string>;
|
|
179
|
+
/** Screen-reader announcement for the busy states. */
|
|
180
|
+
protected readonly statusMessage: _angular_core.Signal<"Loading" | "Loading more rows" | "">;
|
|
181
|
+
protected readonly errorContext: InfiniteScrollTableErrorContext;
|
|
182
|
+
protected readonly renderRowTrackBy: TrackByFunction<RenderRow<T>>;
|
|
183
|
+
constructor();
|
|
184
|
+
protected getCellValue(item: T, key: string): unknown;
|
|
185
|
+
/**
|
|
186
|
+
* Content-independent flex-basis for a column: its declared width, else its min-width, else the
|
|
187
|
+
* default. Using this (instead of `flex-basis: auto`) makes header and body cells size identically
|
|
188
|
+
* so every column stays aligned regardless of the text inside header vs body cells.
|
|
189
|
+
*/
|
|
190
|
+
protected cellBasis(column: InfiniteScrollTableColumn<T>): string;
|
|
191
|
+
protected onRowClick(row: RenderRow<T>): void;
|
|
192
|
+
/**
|
|
193
|
+
* Whether a row should show the selected highlight. Mirrors `ui-table`: only when `selectable` is
|
|
194
|
+
* enabled and the row's data carries a truthy `selected` property. Skeleton rows are never selected.
|
|
195
|
+
*/
|
|
196
|
+
protected isRowSelected(row: RenderRow<T>): boolean;
|
|
197
|
+
/** Emits the new selection state when a row's checkbox is toggled. Consumer-managed, like `ui-table`. */
|
|
198
|
+
protected onSelectionToggle(row: RenderRow<T>, selected: boolean): void;
|
|
199
|
+
/**
|
|
200
|
+
* Left offset (px) for a sticky-start consumer column: when the checkbox column is present it must
|
|
201
|
+
* sit to the right of it, so the first sticky column is pushed over by the checkbox column width.
|
|
202
|
+
*/
|
|
203
|
+
protected stickyStartOffset(column: InfiniteScrollTableColumn<T>): number | null;
|
|
204
|
+
/** Keyboard equivalent of a row click (Enter/Space) for the currently focused data row. */
|
|
205
|
+
protected onRowActivate(event: Event, row: RenderRow<T>): void;
|
|
206
|
+
private onRetry;
|
|
207
|
+
/** Keep the header horizontally aligned with the body and update the sticky-shadow state. */
|
|
208
|
+
private syncHorizontalScroll;
|
|
209
|
+
/**
|
|
210
|
+
* Emits `loadMore` once when the rendered range reaches the trigger zone near the end,
|
|
211
|
+
* re-arming when the user scrolls back out. Mirrors the app's `ngx-infinite-scroll` semantics.
|
|
212
|
+
*/
|
|
213
|
+
private checkLoadMore;
|
|
214
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InfiniteScrollTableComponent<any>, never>;
|
|
215
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InfiniteScrollTableComponent<any>, "ui-infinite-scroll-table", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": true; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "rowIdKey": { "alias": "rowIdKey"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "isCondensed": { "alias": "isCondensed"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingMore": { "alias": "loadingMore"; "required": false; "isSignal": true; }; "hasMore": { "alias": "hasMore"; "required": false; "isSignal": true; }; "skeletonRowCount": { "alias": "skeletonRowCount"; "required": false; "isSignal": true; }; "loadMoreThreshold": { "alias": "loadMoreThreshold"; "required": false; "isSignal": true; }; "noDataTemplate": { "alias": "noDataTemplate"; "required": false; "isSignal": true; }; "errorTemplate": { "alias": "errorTemplate"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; }, { "loadMore": "loadMore"; "retry": "retry"; "rowClick": "rowClick"; "selectionChange": "selectionChange"; }, never, never, true, never>;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
declare class InfiniteScrollTableComponentModule {
|
|
219
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InfiniteScrollTableComponentModule, never>;
|
|
220
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<InfiniteScrollTableComponentModule, never, [typeof i1.CommonModule, typeof i2.ScrollingModule, typeof InfiniteScrollTableComponent], [typeof InfiniteScrollTableComponent]>;
|
|
221
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<InfiniteScrollTableComponentModule>;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
export { InfiniteScrollTableComponent, InfiniteScrollTableComponentModule };
|
|
225
|
+
export type { InfiniteScrollTableColumn, InfiniteScrollTableColumnAlignment, InfiniteScrollTableColumnStyles, InfiniteScrollTableErrorContext, InfiniteScrollTableRowClick, InfiniteScrollTableRowSelection };
|
package/{components/inline-field/index.d.ts → types/testgorilla-tgo-ui-components-inline-field.d.ts}
RENAMED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import { IconName } from '@testgorilla/tgo-ui/components/icon';
|
|
1
|
+
import * as ______dist_tgo_ui_types_testgorilla_tgo_ui_components_icon from '../../dist/tgo-ui/types/testgorilla-tgo-ui-components-icon';
|
|
3
2
|
import * as _angular_core from '@angular/core';
|
|
4
3
|
import { EventEmitter, OnInit, ChangeDetectorRef, DestroyRef, ElementRef } from '@angular/core';
|
|
5
4
|
import * as i2 from '@angular/forms';
|
|
@@ -8,6 +7,8 @@ import { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';
|
|
|
8
7
|
export { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';
|
|
9
8
|
import * as i5 from '@testgorilla/tgo-ui/components/field';
|
|
10
9
|
import { FieldType, FieldComponent } from '@testgorilla/tgo-ui/components/field';
|
|
10
|
+
import * as i6 from '@testgorilla/tgo-ui/components/icon';
|
|
11
|
+
import { IconName } from '@testgorilla/tgo-ui/components/icon';
|
|
11
12
|
import * as i1 from '@angular/common';
|
|
12
13
|
import * as i3 from '@angular/material/input';
|
|
13
14
|
import * as i4 from '@testgorilla/tgo-ui/components/button';
|
|
@@ -218,14 +219,14 @@ declare class InlineFieldComponent implements OnInit, ControlValueAccessor {
|
|
|
218
219
|
state: _angular_core.Signal<InlineFieldState>;
|
|
219
220
|
saveButtonConfig: _angular_core.Signal<{
|
|
220
221
|
label: string;
|
|
221
|
-
iconName:
|
|
222
|
+
iconName: ______dist_tgo_ui_types_testgorilla_tgo_ui_components_icon.IconName;
|
|
222
223
|
variant: "secondary-inverted";
|
|
223
224
|
size: "small";
|
|
224
225
|
disabled: boolean;
|
|
225
226
|
}>;
|
|
226
227
|
cancelButtonConfig: _angular_core.Signal<{
|
|
227
228
|
label: string;
|
|
228
|
-
iconName:
|
|
229
|
+
iconName: ______dist_tgo_ui_types_testgorilla_tgo_ui_components_icon.IconName;
|
|
229
230
|
variant: "secondary-inverted";
|
|
230
231
|
size: "small";
|
|
231
232
|
disabled: boolean;
|
|
@@ -239,8 +240,8 @@ declare class InlineFieldComponent implements OnInit, ControlValueAccessor {
|
|
|
239
240
|
registerOnTouched(fn: () => void): void;
|
|
240
241
|
setDisabledState(_isDisabled: boolean): void;
|
|
241
242
|
onComponentFocusOut(event: FocusEvent): void;
|
|
242
|
-
onEscapePressed(event:
|
|
243
|
-
onEnterPressed(event:
|
|
243
|
+
onEscapePressed(event: Event): void;
|
|
244
|
+
onEnterPressed(event: Event): void;
|
|
244
245
|
onTabPressed(): void;
|
|
245
246
|
onInputFocus(): void;
|
|
246
247
|
onInputBlur(): void;
|
|
@@ -263,7 +264,7 @@ declare class InlineFieldComponent implements OnInit, ControlValueAccessor {
|
|
|
263
264
|
|
|
264
265
|
declare class InlineFieldComponentModule {
|
|
265
266
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InlineFieldComponentModule, never>;
|
|
266
|
-
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<InlineFieldComponentModule, never, [typeof i1.CommonModule, typeof i2.FormsModule, typeof i2.ReactiveFormsModule, typeof i3.MatInputModule, typeof i4.ButtonComponentModule, typeof i5.FieldComponentModule, typeof
|
|
267
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<InlineFieldComponentModule, never, [typeof i1.CommonModule, typeof i2.FormsModule, typeof i2.ReactiveFormsModule, typeof i3.MatInputModule, typeof i4.ButtonComponentModule, typeof i5.FieldComponentModule, typeof i6.IconComponentModule, typeof InlineFieldComponent], [typeof InlineFieldComponent]>;
|
|
267
268
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<InlineFieldComponentModule>;
|
|
268
269
|
}
|
|
269
270
|
|
package/{components/side-sheet/index.d.ts → types/testgorilla-tgo-ui-components-side-sheet.d.ts}
RENAMED
|
@@ -57,7 +57,7 @@ declare class SideSheetComponent implements OnInit {
|
|
|
57
57
|
openChange: EventEmitter<boolean>;
|
|
58
58
|
drawer: MatDrawer;
|
|
59
59
|
container: ViewContainerRef;
|
|
60
|
-
onEscPress(
|
|
60
|
+
onEscPress(): void;
|
|
61
61
|
protected title: string;
|
|
62
62
|
protected showBackButton: boolean;
|
|
63
63
|
protected showTitleTooltip: boolean;
|
/package/{components/accordion/index.d.ts → types/testgorilla-tgo-ui-components-accordion.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
/package/{components/ai-caveat/index.d.ts → types/testgorilla-tgo-ui-components-ai-caveat.d.ts}
RENAMED
|
File without changes
|
/package/{components/ai-feedback/index.d.ts → types/testgorilla-tgo-ui-components-ai-feedback.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{components/breadcrumb/index.d.ts → types/testgorilla-tgo-ui-components-breadcrumb.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{components/checkbox/index.d.ts → types/testgorilla-tgo-ui-components-checkbox.d.ts}
RENAMED
|
File without changes
|
/package/{components/checklist/index.d.ts → types/testgorilla-tgo-ui-components-checklist.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
/package/{components/datepicker/index.d.ts → types/testgorilla-tgo-ui-components-datepicker.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{components/donut-chart/index.d.ts → types/testgorilla-tgo-ui-components-donut-chart.d.ts}
RENAMED
|
File without changes
|
/package/{components/dropdown/index.d.ts → types/testgorilla-tgo-ui-components-dropdown.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
/package/{components/empty-state/index.d.ts → types/testgorilla-tgo-ui-components-empty-state.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
/package/{components/file-upload/index.d.ts → types/testgorilla-tgo-ui-components-file-upload.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{components/icon-label/index.d.ts → types/testgorilla-tgo-ui-components-icon-label.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
/package/{components/media-card/index.d.ts → types/testgorilla-tgo-ui-components-media-card.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
/package/{components/multi-input/index.d.ts → types/testgorilla-tgo-ui-components-multi-input.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{components/page-header/index.d.ts → types/testgorilla-tgo-ui-components-page-header.d.ts}
RENAMED
|
File without changes
|
/package/{components/paginator/index.d.ts → types/testgorilla-tgo-ui-components-paginator.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{components/phone-input/index.d.ts → types/testgorilla-tgo-ui-components-phone-input.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{components/scale-table/index.d.ts → types/testgorilla-tgo-ui-components-scale-table.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{components/side-panel/index.d.ts → types/testgorilla-tgo-ui-components-side-panel.d.ts}
RENAMED
|
File without changes
|
/package/{components/skeleton/index.d.ts → types/testgorilla-tgo-ui-components-skeleton.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
/package/{components/snackbar/index.d.ts → types/testgorilla-tgo-ui-components-snackbar.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|