@testgorilla/tgo-ui 11.22.2 → 12.0.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 +335 -229
- package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs +547 -465
- package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs +160 -75
- package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs +678 -278
- package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs +337 -274
- package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs +351 -192
- package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs +1950 -960
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs +1206 -1044
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs +328 -182
- package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-badge.mjs +383 -203
- package/fesm2022/testgorilla-tgo-ui-components-badge.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs +553 -261
- package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-button.mjs +709 -739
- package/fesm2022/testgorilla-tgo-ui-components-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-card.mjs +219 -184
- package/fesm2022/testgorilla-tgo-ui-components-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs +515 -458
- package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs +423 -162
- package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-core.mjs +10784 -10996
- package/fesm2022/testgorilla-tgo-ui-components-core.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs +810 -533
- package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-device-control.mjs +473 -116
- package/fesm2022/testgorilla-tgo-ui-components-device-control.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs +1149 -540
- package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-divider.mjs +148 -84
- package/fesm2022/testgorilla-tgo-ui-components-divider.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs +239 -142
- package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs +599 -467
- package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs +126 -70
- package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs +324 -329
- package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-field.mjs +969 -648
- package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs +553 -419
- package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs +847 -452
- package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs +398 -302
- package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs +162 -95
- package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-icon.mjs +1825 -1789
- package/fesm2022/testgorilla-tgo-ui-components-icon.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-infinite-scroll-table.mjs +1018 -672
- package/fesm2022/testgorilla-tgo-ui-components-infinite-scroll-table.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs +758 -368
- package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-logo.mjs +204 -212
- package/fesm2022/testgorilla-tgo-ui-components-logo.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs +183 -48
- package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs +243 -79
- package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs +751 -361
- package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs +1122 -385
- package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs +689 -413
- package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs +227 -92
- package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs +174 -113
- package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs +367 -165
- package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs +253 -118
- package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs +730 -444
- package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-popover.mjs +533 -221
- package/fesm2022/testgorilla-tgo-ui-components-popover.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-popup-tip.mjs +274 -76
- package/fesm2022/testgorilla-tgo-ui-components-popup-tip.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs +184 -124
- package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs +1223 -574
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs +249 -160
- package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs +447 -439
- package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-rating.mjs +226 -150
- package/fesm2022/testgorilla-tgo-ui-components-rating.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs +255 -67
- package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-scale.mjs +205 -162
- package/fesm2022/testgorilla-tgo-ui-components-scale.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs +245 -153
- package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs +274 -140
- package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs +319 -147
- package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs +286 -84
- package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs +660 -208
- package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs +579 -320
- package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs +419 -200
- package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs +132 -80
- package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-slider.mjs +741 -390
- package/fesm2022/testgorilla-tgo-ui-components-slider.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs +455 -329
- package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs +543 -514
- package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs +193 -104
- package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs +760 -524
- package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-table.mjs +714 -415
- package/fesm2022/testgorilla-tgo-ui-components-table.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs +847 -438
- package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-tag.mjs +535 -275
- package/fesm2022/testgorilla-tgo-ui-components-tag.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs +316 -246
- package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs +404 -284
- package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs +664 -383
- package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs +201 -112
- package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs +1014 -458
- package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui.mjs +147 -155
- package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
- package/mcp/catalog.json +1 -1
- package/package.json +16 -17
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Sequences-filled.svg +3 -0
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Sequences-in-line.svg +3 -0
- package/projects/tgo-canopy-ui/theme/_palette.scss +23 -18
- package/types/testgorilla-tgo-ui-components-accordion.d.ts +214 -158
- package/types/testgorilla-tgo-ui-components-ai-audio-circle.d.ts +93 -69
- package/types/testgorilla-tgo-ui-components-ai-caveat.d.ts +37 -34
- package/types/testgorilla-tgo-ui-components-ai-feedback.d.ts +126 -86
- package/types/testgorilla-tgo-ui-components-alert-banner.d.ts +260 -185
- package/types/testgorilla-tgo-ui-components-audio-waveform.d.ts +96 -67
- package/types/testgorilla-tgo-ui-components-autocomplete-v2.d.ts +455 -256
- package/types/testgorilla-tgo-ui-components-autocomplete.d.ts +545 -390
- package/types/testgorilla-tgo-ui-components-avatar.d.ts +128 -102
- package/types/testgorilla-tgo-ui-components-badge.d.ts +191 -139
- package/types/testgorilla-tgo-ui-components-breadcrumb.d.ts +100 -62
- package/types/testgorilla-tgo-ui-components-button.d.ts +479 -340
- package/types/testgorilla-tgo-ui-components-card.d.ts +153 -114
- package/types/testgorilla-tgo-ui-components-checkbox.d.ts +299 -223
- package/types/testgorilla-tgo-ui-components-checklist.d.ts +149 -97
- package/types/testgorilla-tgo-ui-components-core.d.ts +307 -295
- package/types/testgorilla-tgo-ui-components-datepicker.d.ts +404 -299
- package/types/testgorilla-tgo-ui-components-device-control.d.ts +151 -81
- package/types/testgorilla-tgo-ui-components-dialog.d.ts +442 -329
- package/types/testgorilla-tgo-ui-components-divider.d.ts +64 -51
- package/types/testgorilla-tgo-ui-components-donut-chart.d.ts +41 -37
- package/types/testgorilla-tgo-ui-components-dropdown.d.ts +335 -241
- package/types/testgorilla-tgo-ui-components-elevation-shadow.d.ts +48 -43
- package/types/testgorilla-tgo-ui-components-empty-state.d.ts +317 -215
- package/types/testgorilla-tgo-ui-components-field.d.ts +559 -388
- package/types/testgorilla-tgo-ui-components-file-upload.d.ts +230 -168
- package/types/testgorilla-tgo-ui-components-filter-button.d.ts +263 -206
- package/types/testgorilla-tgo-ui-components-gaussian-chart.d.ts +107 -94
- package/types/testgorilla-tgo-ui-components-icon-label.d.ts +84 -61
- package/types/testgorilla-tgo-ui-components-icon.d.ts +137 -110
- package/types/testgorilla-tgo-ui-components-infinite-scroll-table.d.ts +429 -303
- package/types/testgorilla-tgo-ui-components-inline-field.d.ts +338 -254
- package/types/testgorilla-tgo-ui-components-logo.d.ts +119 -101
- package/types/testgorilla-tgo-ui-components-media-card.d.ts +51 -35
- package/types/testgorilla-tgo-ui-components-media-dialog.d.ts +40 -45
- package/types/testgorilla-tgo-ui-components-multi-input.d.ts +283 -194
- package/types/testgorilla-tgo-ui-components-navbar.d.ts +326 -208
- package/types/testgorilla-tgo-ui-components-overflow-menu.d.ts +276 -204
- package/types/testgorilla-tgo-ui-components-page-header.d.ts +67 -50
- package/types/testgorilla-tgo-ui-components-paginator.d.ts +103 -70
- package/types/testgorilla-tgo-ui-components-password-criteria.d.ts +67 -58
- package/types/testgorilla-tgo-ui-components-password-strength.d.ts +66 -57
- package/types/testgorilla-tgo-ui-components-phone-input.d.ts +217 -175
- package/types/testgorilla-tgo-ui-components-popover.d.ts +94 -53
- package/types/testgorilla-tgo-ui-components-popup-tip.d.ts +81 -44
- package/types/testgorilla-tgo-ui-components-progress-bar.d.ts +115 -84
- package/types/testgorilla-tgo-ui-components-prompt.d.ts +315 -219
- package/types/testgorilla-tgo-ui-components-radial-progress.d.ts +146 -107
- package/types/testgorilla-tgo-ui-components-radio-button.d.ts +296 -219
- package/types/testgorilla-tgo-ui-components-rating.d.ts +134 -95
- package/types/testgorilla-tgo-ui-components-scale-table.d.ts +67 -47
- package/types/testgorilla-tgo-ui-components-scale.d.ts +91 -66
- package/types/testgorilla-tgo-ui-components-segmented-bar.d.ts +118 -89
- package/types/testgorilla-tgo-ui-components-segmented-button.d.ts +107 -80
- package/types/testgorilla-tgo-ui-components-segmented-toggle.d.ts +138 -105
- package/types/testgorilla-tgo-ui-components-selectable-card.d.ts +90 -56
- package/types/testgorilla-tgo-ui-components-side-navigation.d.ts +183 -107
- package/types/testgorilla-tgo-ui-components-side-panel.d.ts +156 -145
- package/types/testgorilla-tgo-ui-components-side-sheet.d.ts +98 -89
- package/types/testgorilla-tgo-ui-components-skeleton.d.ts +50 -33
- package/types/testgorilla-tgo-ui-components-slider.d.ts +278 -198
- package/types/testgorilla-tgo-ui-components-snackbar.d.ts +211 -159
- package/types/testgorilla-tgo-ui-components-spider-chart.d.ts +140 -121
- package/types/testgorilla-tgo-ui-components-spinner.d.ts +93 -72
- package/types/testgorilla-tgo-ui-components-stepper.d.ts +480 -338
- package/types/testgorilla-tgo-ui-components-table.d.ts +280 -233
- package/types/testgorilla-tgo-ui-components-tabs.d.ts +282 -183
- package/types/testgorilla-tgo-ui-components-tag.d.ts +266 -193
- package/types/testgorilla-tgo-ui-components-toggle.d.ts +180 -132
- package/types/testgorilla-tgo-ui-components-tooltip.d.ts +142 -105
- package/types/testgorilla-tgo-ui-components-universal-skills.d.ts +165 -144
- package/types/testgorilla-tgo-ui-components-validation-error.d.ts +70 -51
- package/types/testgorilla-tgo-ui-components-write-with-ai.d.ts +210 -133
- package/types/testgorilla-tgo-ui.d.ts +52 -45
|
@@ -1,332 +1,458 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import {
|
|
3
|
-
import * as
|
|
4
|
-
import {
|
|
5
|
-
import * as i1 from
|
|
6
|
-
|
|
1
|
+
import * as i2 from "@angular/cdk/scrolling";
|
|
2
|
+
import { CdkVirtualScrollViewport } from "@angular/cdk/scrolling";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import { ElementRef, TemplateRef, TrackByFunction } from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
7
6
|
/**
|
|
8
7
|
* The structural contract `selectable` puts on a row: the checkbox reflects `selected`, and `key` /
|
|
9
8
|
* `rowIdKey` lookups read arbitrary fields. Declared once here rather than asserted at each read site, so
|
|
10
9
|
* the requirement is discoverable from the types instead of only from the docs.
|
|
11
10
|
*/
|
|
12
|
-
type InfiniteScrollTableRowLike = Record<string, unknown> & {
|
|
13
|
-
|
|
11
|
+
export type InfiniteScrollTableRowLike = Record<string, unknown> & {
|
|
12
|
+
selected?: boolean;
|
|
14
13
|
};
|
|
15
|
-
interface InfiniteScrollTableColumn<T> {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
14
|
+
export interface InfiniteScrollTableColumn<T> {
|
|
15
|
+
/** Also reads the default cell value. A plain string, so a synthetic column can have no matching field. */
|
|
16
|
+
key: string;
|
|
17
|
+
/** Header label rendered when no `headerCellTemplate` is provided. */
|
|
18
|
+
title?: string;
|
|
19
|
+
headerCellTemplate?: TemplateRef<InfiniteScrollTableHeaderCellContext<T>>;
|
|
20
|
+
rowCellTemplate?: TemplateRef<InfiniteScrollTableRowCellContext<T>>;
|
|
21
|
+
/**
|
|
22
|
+
* Pins the column. Only honoured on the **first** column (pins left) and the **last** column (pins
|
|
23
|
+
* right); anywhere else it is ignored, with a dev-mode warning.
|
|
24
|
+
*/
|
|
25
|
+
isSticky?: boolean;
|
|
26
|
+
styles?: InfiniteScrollTableColumnStyles;
|
|
28
27
|
}
|
|
29
|
-
interface InfiniteScrollTableColumnStyles {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
28
|
+
export interface InfiniteScrollTableColumnStyles {
|
|
29
|
+
/**
|
|
30
|
+
* Authoritative column width (default `160px`), applied as `flex-basis`, `min-width` AND `max-width`:
|
|
31
|
+
* the column never grows or shrinks and overflowing content is clipped, which is what keeps the header
|
|
32
|
+
* and body scroll containers pixel-aligned. Leftover row width goes to a trailing spacer instead.
|
|
33
|
+
*/
|
|
34
|
+
width?: string;
|
|
35
|
+
alignment?: InfiniteScrollTableColumnAlignment;
|
|
37
36
|
}
|
|
38
|
-
type InfiniteScrollTableColumnAlignment = 'left' | 'right' | 'center';
|
|
39
|
-
interface InfiniteScrollTableRowCellContext<T> {
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
export type InfiniteScrollTableColumnAlignment = 'left' | 'right' | 'center';
|
|
38
|
+
export interface InfiniteScrollTableRowCellContext<T> {
|
|
39
|
+
$implicit: T;
|
|
40
|
+
rowIndex: number;
|
|
42
41
|
}
|
|
43
|
-
interface InfiniteScrollTableHeaderCellContext<T> {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
export interface InfiniteScrollTableHeaderCellContext<T> {
|
|
43
|
+
$implicit: string | undefined;
|
|
44
|
+
column: InfiniteScrollTableColumn<T>;
|
|
45
|
+
colIndex: number;
|
|
47
46
|
}
|
|
48
|
-
interface InfiniteScrollTableErrorContext {
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
export interface InfiniteScrollTableErrorContext {
|
|
48
|
+
$implicit: () => void;
|
|
49
|
+
retry: () => void;
|
|
51
50
|
}
|
|
52
51
|
/**
|
|
53
52
|
* `row` is the consumer's own object by reference — not a copy — so class prototypes survive and a row's
|
|
54
53
|
* own `index` field is never shadowed. Same for `InfiniteScrollTableRowSelection`.
|
|
55
54
|
*/
|
|
56
|
-
interface InfiniteScrollTableRowClick<T> {
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
export interface InfiniteScrollTableRowClick<T> {
|
|
56
|
+
row: T;
|
|
57
|
+
index: number;
|
|
59
58
|
}
|
|
60
|
-
interface InfiniteScrollTableRowSelection<T> {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
export interface InfiniteScrollTableRowSelection<T> {
|
|
60
|
+
row: T;
|
|
61
|
+
index: number;
|
|
62
|
+
selected: boolean;
|
|
64
63
|
}
|
|
65
|
-
|
|
66
64
|
/** Internal row wrapper so real rows and skeleton placeholders flow through one virtual list. */
|
|
67
65
|
type RenderRow<T> = {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
66
|
+
kind: 'data';
|
|
67
|
+
item: T;
|
|
68
|
+
index: number;
|
|
71
69
|
} | {
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
kind: 'skeleton';
|
|
71
|
+
id: string;
|
|
74
72
|
};
|
|
75
73
|
/**
|
|
76
74
|
* A generic, virtualized table with scroll-driven infinite loading. Independent of `ui-table`: it reuses
|
|
77
75
|
* only stable leaf primitives (`ui-skeleton`) and duplicates the column/context type shapes so consumers
|
|
78
76
|
* can migrate with a selector swap.
|
|
79
77
|
*/
|
|
80
|
-
declare class InfiniteScrollTableComponent<T> {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
78
|
+
export declare class InfiniteScrollTableComponent<T> {
|
|
79
|
+
/**
|
|
80
|
+
* Rows loaded so far. **Must change by reference** (`[...rows, ...page]`): a signal input cannot observe
|
|
81
|
+
* `rows.push(...)`, so an in-place append renders nothing and leaves `loadMore` disarmed.
|
|
82
|
+
*/
|
|
83
|
+
readonly data: import("@angular/core").InputSignal<readonly T[]>;
|
|
84
|
+
readonly columns: import("@angular/core").InputSignal<InfiniteScrollTableColumn<T>[]>;
|
|
85
|
+
/** Fixed row height in px (the virtualization `itemSize`). Variable row heights are unsupported. */
|
|
86
|
+
readonly rowHeight: import("@angular/core").InputSignal<number>;
|
|
87
|
+
/** Stable row identity so recycled rows re-render correctly. Takes precedence over `rowIdKey`. */
|
|
88
|
+
readonly trackBy: import("@angular/core").InputSignal<TrackByFunction<T> | undefined>;
|
|
89
|
+
/** Key on each row holding a stable id. Used when `trackBy` is not provided. */
|
|
90
|
+
readonly rowIdKey: import("@angular/core").InputSignal<string | undefined>;
|
|
91
|
+
/**
|
|
92
|
+
* CDK's rendered buffers. Both default to a multiple of `rowHeight` (~5 and ~10 rows) rather than a
|
|
93
|
+
* fixed px value, which would mean a different row count at every `rowHeight`.
|
|
94
|
+
*/
|
|
95
|
+
readonly minBufferPx: import("@angular/core").InputSignal<number | undefined>;
|
|
96
|
+
readonly maxBufferPx: import("@angular/core").InputSignal<number | undefined>;
|
|
97
|
+
/** Max height of the internal scroll region (e.g. `'70vh'`). The body shrinks to fit fewer rows. */
|
|
98
|
+
readonly maxHeight: import("@angular/core").InputSignal<string>;
|
|
99
|
+
/** Stretch to the parent's height instead of the content's; `maxHeight` becomes a cap, not the target. */
|
|
100
|
+
readonly fillHeight: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
101
|
+
readonly isCondensed: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
102
|
+
/**
|
|
103
|
+
* Prepends a left-pinned checkbox column driven by each row's `selected` property. Consumer-managed
|
|
104
|
+
* (like `ui-table`): toggling only emits `selectionChange`.
|
|
105
|
+
*/
|
|
106
|
+
readonly selectable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
107
|
+
/**
|
|
108
|
+
* Makes rows focusable and activatable by click or Enter/Space. Off by default: a read-only table
|
|
109
|
+
* must not create a tab stop per rendered row or imply interactivity it does not have.
|
|
110
|
+
*/
|
|
111
|
+
readonly rowsClickable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
112
|
+
/** First-load state: renders a full body of skeleton rows. */
|
|
113
|
+
readonly loading: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
114
|
+
/** Appends skeleton rows below the existing rows while the next page is fetched. */
|
|
115
|
+
readonly loadingMore: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
116
|
+
/** Required, not defaulted: a silent "never load" default would disable the headline behaviour. */
|
|
117
|
+
readonly hasMore: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
118
|
+
readonly skeletonRowCount: import("@angular/core").InputSignal<number>;
|
|
119
|
+
/** Number of skeleton rows appended below the loaded rows while `loadingMore` is true. */
|
|
120
|
+
readonly loadMoreSkeletonCount: import("@angular/core").InputSignal<number>;
|
|
121
|
+
/**
|
|
122
|
+
* Skeleton placeholder columns for a lazily-loaded column set. They deliberately sit OUTSIDE `columns`,
|
|
123
|
+
* so they cannot change which column is last and unpin a sticky last column.
|
|
124
|
+
*/
|
|
125
|
+
readonly loadingColumnCount: import("@angular/core").InputSignalWithTransform<number, unknown>;
|
|
126
|
+
readonly loadMoreThreshold: import("@angular/core").InputSignal<number>;
|
|
127
|
+
/** Shown when `data` is empty and not loading. */
|
|
128
|
+
readonly noDataTemplate: import("@angular/core").InputSignal<TemplateRef<unknown> | undefined>;
|
|
129
|
+
/** Shown when `error` is `true`. Receives `{ $implicit: retry, retry }` as context. */
|
|
130
|
+
readonly errorTemplate: import("@angular/core").InputSignal<TemplateRef<InfiniteScrollTableErrorContext> | undefined>;
|
|
131
|
+
readonly error: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
132
|
+
/**
|
|
133
|
+
* Shown once `hasMore` goes `false` with rows loaded. Deliberately has NO built-in fallback (unlike
|
|
134
|
+
* `noDataTemplate` / `errorTemplate`): a single-page list would otherwise flash "no more results".
|
|
135
|
+
*/
|
|
136
|
+
readonly endOfListTemplate: import("@angular/core").InputSignal<TemplateRef<unknown> | undefined>;
|
|
137
|
+
readonly testId: import("@angular/core").InputSignal<string | null>;
|
|
138
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
139
|
+
/** Guarded: only when `hasMore && !loading && !loadingMore`, and only once per approach to the end. */
|
|
140
|
+
readonly loadMore: import("@angular/core").OutputEmitterRef<void>;
|
|
141
|
+
readonly retry: import("@angular/core").OutputEmitterRef<void>;
|
|
142
|
+
readonly rowClick: import("@angular/core").OutputEmitterRef<InfiniteScrollTableRowClick<T>>;
|
|
143
|
+
/** The consumer is expected to apply `selected` back onto its own data. */
|
|
144
|
+
readonly selectionChange: import("@angular/core").OutputEmitterRef<InfiniteScrollTableRowSelection<T>>;
|
|
145
|
+
protected readonly viewport: import("@angular/core").Signal<CdkVirtualScrollViewport | undefined>;
|
|
146
|
+
protected readonly headerScroll: import("@angular/core").Signal<ElementRef<HTMLElement> | undefined>;
|
|
147
|
+
protected readonly scrollStart: import("@angular/core").WritableSignal<boolean>;
|
|
148
|
+
protected readonly scrollEnd: import("@angular/core").WritableSignal<boolean>;
|
|
149
|
+
protected readonly horizontalScroll: import("@angular/core").WritableSignal<boolean>;
|
|
150
|
+
/** Reserved as right padding on the header, so its content width exactly equals the body's. */
|
|
151
|
+
protected readonly scrollbarWidth: import("@angular/core").WritableSignal<number>;
|
|
152
|
+
/** Added to the viewport height so on a short list the scrollbar doesn't eat into the rows. */
|
|
153
|
+
protected readonly hScrollbarHeight: import("@angular/core").WritableSignal<number>;
|
|
154
|
+
/**
|
|
155
|
+
* Paging latch. Three fields, one rule: `loadMore` emits at most once per page that lands while the
|
|
156
|
+
* user is inside the trigger zone. `isLoadMoreArmed` is the latch itself, written here and by
|
|
157
|
+
* `checkLoadMore`; `dataLengthAtEmit` records how long `data` was when the last emission went out, so
|
|
158
|
+
* "the requested page arrived" is a length comparison rather than a guess about scroll positions;
|
|
159
|
+
* `firstVisibleIndex` is where the user actually is.
|
|
160
|
+
*
|
|
161
|
+
* The invariant that matters: arming and firing must read the SAME trigger zone. They used to derive it
|
|
162
|
+
* from two different thresholds, which opened bands the latch could never leave.
|
|
163
|
+
*/
|
|
164
|
+
private isLoadMoreArmed;
|
|
165
|
+
private dataLengthAtEmit;
|
|
166
|
+
/** In-place-mutation detector; see the effect that reads these for the discriminator. */
|
|
167
|
+
private wasLoadingMore;
|
|
168
|
+
private lastDataReference;
|
|
169
|
+
private lastDataLength;
|
|
170
|
+
/** Pending frame for a deferred CDK viewport re-measure, so repeated triggers coalesce to one. */
|
|
171
|
+
private remeasureFrame;
|
|
172
|
+
/** Pending frame for the deferred scroll reset. Cancelled on destroy, like every other frame here. */
|
|
173
|
+
private resetScrollFrame;
|
|
174
|
+
private previousHeadIdentity;
|
|
175
|
+
/** Latches once any non-empty `data` is seen, so only the very first render is exempt from resetting. */
|
|
176
|
+
private hasSeenHead;
|
|
177
|
+
/** Previous `loading` value, for spotting the false -> true edge that starts a reset. */
|
|
178
|
+
private wasLoading;
|
|
179
|
+
/**
|
|
180
|
+
* First visible row index, kept current from `viewport.scrolledIndexChange` (no layout read) rather
|
|
181
|
+
* than `viewport.getRenderedRange().start`, which includes CDK's read-ahead buffer.
|
|
182
|
+
*/
|
|
183
|
+
private firstVisibleIndex;
|
|
184
|
+
protected readonly skeletonTheme: {
|
|
185
|
+
background: string;
|
|
186
|
+
'border-radius': string;
|
|
187
|
+
height: string;
|
|
188
|
+
'margin-bottom': string;
|
|
189
|
+
};
|
|
190
|
+
protected readonly stickyStartKey: import("@angular/core").Signal<string | undefined>;
|
|
191
|
+
protected readonly stickyEndKey: import("@angular/core").Signal<string | undefined>;
|
|
192
|
+
protected readonly defaultColumnWidth = "160px";
|
|
193
|
+
protected readonly effectiveMinBufferPx: import("@angular/core").Signal<number>;
|
|
194
|
+
/**
|
|
195
|
+
* The `Math.max` is load-bearing: CDK throws in dev mode when `maxBufferPx < minBufferPx`, which a
|
|
196
|
+
* consumer triggers just by raising `minBufferPx` above the derived default.
|
|
197
|
+
*/
|
|
198
|
+
protected readonly effectiveMaxBufferPx: import("@angular/core").Signal<number>;
|
|
199
|
+
/** Stable keys for the placeholder columns, so `@for` can track them across renders. */
|
|
200
|
+
protected readonly loadingColumns: import("@angular/core").Signal<string[]>;
|
|
201
|
+
protected readonly renderRows: import("@angular/core").Signal<RenderRow<T>[]>;
|
|
202
|
+
protected readonly hasData: import("@angular/core").Signal<boolean>;
|
|
203
|
+
protected readonly showViewport: import("@angular/core").Signal<boolean>;
|
|
204
|
+
/**
|
|
205
|
+
* `loadingMore` counts as loading here too: a consumer that retries a failed first page through the same
|
|
206
|
+
* flag it uses for every page would otherwise render "no rows" with `aria-busy` set and the live region
|
|
207
|
+
* announcing a fetch.
|
|
208
|
+
*/
|
|
209
|
+
protected readonly showEmptyState: import("@angular/core").Signal<boolean>;
|
|
210
|
+
protected readonly showErrorState: import("@angular/core").Signal<boolean>;
|
|
211
|
+
protected readonly showErrorFooter: import("@angular/core").Signal<boolean>;
|
|
212
|
+
/**
|
|
213
|
+
* The negative clauses keep this out of slots other states own, and `!loadingMore()` closes a one-tick
|
|
214
|
+
* flash: a fetch completing and the consumer flipping `hasMore` need not land in the same cycle.
|
|
215
|
+
*/
|
|
216
|
+
protected readonly showEndOfList: import("@angular/core").Signal<boolean>;
|
|
217
|
+
/**
|
|
218
|
+
* CSS `min()` because the cap mixes units. The scrollbar reserve stops a short list from growing a
|
|
219
|
+
* spurious vertical scrollbar; fill mode returns `null` so flex owns the sizing and the reserve is moot.
|
|
220
|
+
*/
|
|
221
|
+
protected readonly viewportHeight: import("@angular/core").Signal<string | null>;
|
|
222
|
+
protected readonly translationContext = "INFINITE_SCROLL_TABLE.";
|
|
223
|
+
/** A translation key, resolved in the template: screen-reader users are not all English speakers. */
|
|
224
|
+
protected readonly statusMessageKey: import("@angular/core").Signal<string>;
|
|
225
|
+
protected readonly errorContext: InfiniteScrollTableErrorContext;
|
|
226
|
+
protected readonly renderRowTrackBy: TrackByFunction<RenderRow<T>>;
|
|
227
|
+
constructor();
|
|
228
|
+
private cancelResetScrollFrame;
|
|
229
|
+
/** No-ops only when no rows are rendered: the empty state, or an error with no rows. */
|
|
230
|
+
scrollToIndex(index: number, behavior?: ScrollBehavior): void;
|
|
231
|
+
scrollToTop(behavior?: ScrollBehavior): void;
|
|
232
|
+
/**
|
|
233
|
+
* The single place `T` is widened to its structural contract. Every field read on a row goes through
|
|
234
|
+
* here, so the assertion exists once instead of at each call site.
|
|
235
|
+
*/
|
|
236
|
+
private asRowLike;
|
|
237
|
+
protected getCellValue(item: T, key: string): unknown;
|
|
238
|
+
/** Applied as `flex-basis`, `min-width` AND `max-width` on header and body cells alike — see the SCSS. */
|
|
239
|
+
protected columnWidth(column: InfiniteScrollTableColumn<T>): string;
|
|
240
|
+
protected emitRowClick(event: Event, row: RenderRow<T>): void;
|
|
241
|
+
protected rowTestId(row: RenderRow<T>): string | null;
|
|
242
|
+
protected cellTestId(row: RenderRow<T>, columnKey: string): string | null;
|
|
243
|
+
protected rowCheckboxTestId(row: RenderRow<T>): string | null;
|
|
244
|
+
protected isRowSelected(row: RenderRow<T>): boolean;
|
|
245
|
+
protected emitSelectionChange(row: RenderRow<T>, selected: boolean): void;
|
|
246
|
+
/** Reads `--ui-ist-checkbox-width` so the offset cannot drift from the checkbox column's own width. */
|
|
247
|
+
protected stickyStartLeft(column: InfiniteScrollTableColumn<T>): string | null;
|
|
248
|
+
/**
|
|
249
|
+
* Only the outermost start-pinned cell may cast the sticky shadow: the checkbox cell is pinned too, and
|
|
250
|
+
* shadowing both would drop a shadow across the column beside it.
|
|
251
|
+
*/
|
|
252
|
+
protected isStickyStartEdge(column: InfiniteScrollTableColumn<T>): boolean;
|
|
253
|
+
protected activateRow(event: Event, row: RenderRow<T>): void;
|
|
254
|
+
/** A clickable row matches `[tabindex]` itself, so `currentTarget` must be excluded explicitly. */
|
|
255
|
+
private isInteractiveTarget;
|
|
256
|
+
/** Whether the user is selecting text, in which case a click is a selection gesture, not activation. */
|
|
257
|
+
private hasTextSelection;
|
|
258
|
+
/**
|
|
259
|
+
* Deferred a frame to read the settled layout and never trip "ResizeObserver loop limit exceeded";
|
|
260
|
+
* repeated triggers coalesce to one measure.
|
|
261
|
+
*/
|
|
262
|
+
private scheduleViewportRemeasure;
|
|
263
|
+
/**
|
|
264
|
+
* The third `checkLoadMore` trigger, and the only one that survives a page landing without a rendered-range
|
|
265
|
+
* change. CDK emits a range only when the virtual-for LENGTH changes, so a page whose row count exactly
|
|
266
|
+
* replaces the load-more skeletons (`data + skeletons` before, `data` after) moves nothing CDK watches —
|
|
267
|
+
* and when the new rows add no scrollable height, no scroll event can ever arrive either. Runs after the
|
|
268
|
+
* re-measure so the zone is tested against the size CDK just settled on.
|
|
269
|
+
*/
|
|
270
|
+
private settleLoadMore;
|
|
271
|
+
private emitRetry;
|
|
272
|
+
/**
|
|
273
|
+
* The index fallback is identity-in-name-only — it cannot tell rows apart after a reorder — which is why
|
|
274
|
+
* the automatic scroll reset cannot work without `trackBy` or `rowIdKey`.
|
|
275
|
+
*/
|
|
276
|
+
private rowIdentity;
|
|
277
|
+
/**
|
|
278
|
+
* Assigning an absolute `scrollLeft` is drift-free by construction: it self-corrects every scroll event
|
|
279
|
+
* and the browser clamps when the header's maximum is momentarily smaller. A progress-normalized CSS
|
|
280
|
+
* scroll-timeline cannot guarantee that, which is why it was removed — do not reintroduce one.
|
|
281
|
+
*/
|
|
282
|
+
private syncHorizontalScroll;
|
|
283
|
+
/**
|
|
284
|
+
* How many rows the viewport shows. Zero until CDK has measured, which callers must treat as
|
|
285
|
+
* "unknown" rather than "none".
|
|
286
|
+
*/
|
|
287
|
+
private visibleRowCount;
|
|
288
|
+
/**
|
|
289
|
+
* Rows from the end that count as "approaching it". Capped at a screenful: a threshold wider than the
|
|
290
|
+
* viewport cannot mean approaching, and uncapped it made the zone unleavable at every scroll position,
|
|
291
|
+
* which is how an oversized `loadMoreThreshold` used to walk a whole dataset unattended. Clamped at 0 so
|
|
292
|
+
* a negative value can't push the trigger point past the end and disable paging outright.
|
|
293
|
+
*/
|
|
294
|
+
private triggerZoneRows;
|
|
295
|
+
/**
|
|
296
|
+
* The rendered range includes CDK's read-ahead buffer, so measuring it conflates the user reaching the
|
|
297
|
+
* end with CDK merely pre-rendering it. The visible end has no such slack, so it tracks the user's
|
|
298
|
+
* actual scroll position instead.
|
|
299
|
+
*/
|
|
300
|
+
private isInTriggerZone;
|
|
301
|
+
/**
|
|
302
|
+
* Re-arms the latch when something other than scrolling has to do it. Two cases, both of which used to
|
|
303
|
+
* be terminal stalls:
|
|
304
|
+
*
|
|
305
|
+
* - **The requested page landed.** `data` grew past its length at the last emission, so that emission is
|
|
306
|
+
* spent. Without this, re-arming needed the user to scroll *out* of the zone and back — impossible when
|
|
307
|
+
* the page was smaller than the threshold, and impossible to even attempt when the new rows added no
|
|
308
|
+
* scrollable height.
|
|
309
|
+
* - **The zone can't be left.** `visibleEnd` bottoms out at `visibleRows`, so while that floor sits
|
|
310
|
+
* inside the zone no amount of scrolling re-arms anything. Also covers a not-yet-measured viewport,
|
|
311
|
+
* which must count as unleavable or the first fill never starts.
|
|
312
|
+
*
|
|
313
|
+
* Deliberately not driven by `loadingMore` or `error`: a failed fetch clears `loadingMore` without
|
|
314
|
+
* growing `data`, and must stay disarmed rather than re-fire in a loop.
|
|
315
|
+
*/
|
|
316
|
+
private rearmLoadMoreIfUnreachable;
|
|
317
|
+
/** Emits at most once per page that lands while the user is inside the trigger zone. */
|
|
318
|
+
private checkLoadMore;
|
|
319
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InfiniteScrollTableComponent<any>, never>;
|
|
320
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InfiniteScrollTableComponent<any>, "ui-infinite-scroll-table", never, {
|
|
321
|
+
"data": {
|
|
322
|
+
"alias": "data";
|
|
323
|
+
"required": true;
|
|
324
|
+
"isSignal": true;
|
|
191
325
|
};
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
private rearmLoadMoreIfUnreachable;
|
|
319
|
-
/** Emits at most once per page that lands while the user is inside the trigger zone. */
|
|
320
|
-
private checkLoadMore;
|
|
321
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InfiniteScrollTableComponent<any>, never>;
|
|
322
|
-
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; }; "minBufferPx": { "alias": "minBufferPx"; "required": false; "isSignal": true; }; "maxBufferPx": { "alias": "maxBufferPx"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "fillHeight": { "alias": "fillHeight"; "required": false; "isSignal": true; }; "isCondensed": { "alias": "isCondensed"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "rowsClickable": { "alias": "rowsClickable"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingMore": { "alias": "loadingMore"; "required": false; "isSignal": true; }; "hasMore": { "alias": "hasMore"; "required": true; "isSignal": true; }; "skeletonRowCount": { "alias": "skeletonRowCount"; "required": false; "isSignal": true; }; "loadMoreSkeletonCount": { "alias": "loadMoreSkeletonCount"; "required": false; "isSignal": true; }; "loadingColumnCount": { "alias": "loadingColumnCount"; "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; }; "endOfListTemplate": { "alias": "endOfListTemplate"; "required": false; "isSignal": true; }; "testId": { "alias": "testId"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "loadMore": "loadMore"; "retry": "retry"; "rowClick": "rowClick"; "selectionChange": "selectionChange"; }, never, never, true, never>;
|
|
326
|
+
"columns": {
|
|
327
|
+
"alias": "columns";
|
|
328
|
+
"required": true;
|
|
329
|
+
"isSignal": true;
|
|
330
|
+
};
|
|
331
|
+
"rowHeight": {
|
|
332
|
+
"alias": "rowHeight";
|
|
333
|
+
"required": true;
|
|
334
|
+
"isSignal": true;
|
|
335
|
+
};
|
|
336
|
+
"trackBy": {
|
|
337
|
+
"alias": "trackBy";
|
|
338
|
+
"required": false;
|
|
339
|
+
"isSignal": true;
|
|
340
|
+
};
|
|
341
|
+
"rowIdKey": {
|
|
342
|
+
"alias": "rowIdKey";
|
|
343
|
+
"required": false;
|
|
344
|
+
"isSignal": true;
|
|
345
|
+
};
|
|
346
|
+
"minBufferPx": {
|
|
347
|
+
"alias": "minBufferPx";
|
|
348
|
+
"required": false;
|
|
349
|
+
"isSignal": true;
|
|
350
|
+
};
|
|
351
|
+
"maxBufferPx": {
|
|
352
|
+
"alias": "maxBufferPx";
|
|
353
|
+
"required": false;
|
|
354
|
+
"isSignal": true;
|
|
355
|
+
};
|
|
356
|
+
"maxHeight": {
|
|
357
|
+
"alias": "maxHeight";
|
|
358
|
+
"required": false;
|
|
359
|
+
"isSignal": true;
|
|
360
|
+
};
|
|
361
|
+
"fillHeight": {
|
|
362
|
+
"alias": "fillHeight";
|
|
363
|
+
"required": false;
|
|
364
|
+
"isSignal": true;
|
|
365
|
+
};
|
|
366
|
+
"isCondensed": {
|
|
367
|
+
"alias": "isCondensed";
|
|
368
|
+
"required": false;
|
|
369
|
+
"isSignal": true;
|
|
370
|
+
};
|
|
371
|
+
"selectable": {
|
|
372
|
+
"alias": "selectable";
|
|
373
|
+
"required": false;
|
|
374
|
+
"isSignal": true;
|
|
375
|
+
};
|
|
376
|
+
"rowsClickable": {
|
|
377
|
+
"alias": "rowsClickable";
|
|
378
|
+
"required": false;
|
|
379
|
+
"isSignal": true;
|
|
380
|
+
};
|
|
381
|
+
"loading": {
|
|
382
|
+
"alias": "loading";
|
|
383
|
+
"required": false;
|
|
384
|
+
"isSignal": true;
|
|
385
|
+
};
|
|
386
|
+
"loadingMore": {
|
|
387
|
+
"alias": "loadingMore";
|
|
388
|
+
"required": false;
|
|
389
|
+
"isSignal": true;
|
|
390
|
+
};
|
|
391
|
+
"hasMore": {
|
|
392
|
+
"alias": "hasMore";
|
|
393
|
+
"required": true;
|
|
394
|
+
"isSignal": true;
|
|
395
|
+
};
|
|
396
|
+
"skeletonRowCount": {
|
|
397
|
+
"alias": "skeletonRowCount";
|
|
398
|
+
"required": false;
|
|
399
|
+
"isSignal": true;
|
|
400
|
+
};
|
|
401
|
+
"loadMoreSkeletonCount": {
|
|
402
|
+
"alias": "loadMoreSkeletonCount";
|
|
403
|
+
"required": false;
|
|
404
|
+
"isSignal": true;
|
|
405
|
+
};
|
|
406
|
+
"loadingColumnCount": {
|
|
407
|
+
"alias": "loadingColumnCount";
|
|
408
|
+
"required": false;
|
|
409
|
+
"isSignal": true;
|
|
410
|
+
};
|
|
411
|
+
"loadMoreThreshold": {
|
|
412
|
+
"alias": "loadMoreThreshold";
|
|
413
|
+
"required": false;
|
|
414
|
+
"isSignal": true;
|
|
415
|
+
};
|
|
416
|
+
"noDataTemplate": {
|
|
417
|
+
"alias": "noDataTemplate";
|
|
418
|
+
"required": false;
|
|
419
|
+
"isSignal": true;
|
|
420
|
+
};
|
|
421
|
+
"errorTemplate": {
|
|
422
|
+
"alias": "errorTemplate";
|
|
423
|
+
"required": false;
|
|
424
|
+
"isSignal": true;
|
|
425
|
+
};
|
|
426
|
+
"error": {
|
|
427
|
+
"alias": "error";
|
|
428
|
+
"required": false;
|
|
429
|
+
"isSignal": true;
|
|
430
|
+
};
|
|
431
|
+
"endOfListTemplate": {
|
|
432
|
+
"alias": "endOfListTemplate";
|
|
433
|
+
"required": false;
|
|
434
|
+
"isSignal": true;
|
|
435
|
+
};
|
|
436
|
+
"testId": {
|
|
437
|
+
"alias": "testId";
|
|
438
|
+
"required": false;
|
|
439
|
+
"isSignal": true;
|
|
440
|
+
};
|
|
441
|
+
"ariaLabel": {
|
|
442
|
+
"alias": "ariaLabel";
|
|
443
|
+
"required": false;
|
|
444
|
+
"isSignal": true;
|
|
445
|
+
};
|
|
446
|
+
}, {
|
|
447
|
+
"loadMore": "loadMore";
|
|
448
|
+
"retry": "retry";
|
|
449
|
+
"rowClick": "rowClick";
|
|
450
|
+
"selectionChange": "selectionChange";
|
|
451
|
+
}, never, never, true, never>;
|
|
323
452
|
}
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
static ɵinj: _angular_core.ɵɵInjectorDeclaration<InfiniteScrollTableComponentModule>;
|
|
453
|
+
export declare class InfiniteScrollTableComponentModule {
|
|
454
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InfiniteScrollTableComponentModule, never>;
|
|
455
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<InfiniteScrollTableComponentModule, never, [typeof i1.CommonModule, typeof i2.ScrollingModule, typeof InfiniteScrollTableComponent], [typeof InfiniteScrollTableComponent]>;
|
|
456
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<InfiniteScrollTableComponentModule>;
|
|
329
457
|
}
|
|
330
|
-
|
|
331
|
-
export { InfiniteScrollTableComponent, InfiniteScrollTableComponentModule };
|
|
332
|
-
export type { InfiniteScrollTableColumn, InfiniteScrollTableColumnAlignment, InfiniteScrollTableColumnStyles, InfiniteScrollTableErrorContext, InfiniteScrollTableHeaderCellContext, InfiniteScrollTableRowCellContext, InfiniteScrollTableRowClick, InfiniteScrollTableRowLike, InfiniteScrollTableRowSelection };
|
|
458
|
+
export {};
|