@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.
Files changed (190) hide show
  1. package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs +8 -8
  2. package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs.map +1 -1
  3. package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs +15 -15
  4. package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs.map +1 -1
  5. package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs +7 -7
  6. package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs +23 -23
  7. package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs.map +1 -1
  8. package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs +7 -7
  9. package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs +23 -23
  10. package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs.map +1 -1
  11. package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs +84 -84
  12. package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs.map +1 -1
  13. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs +21 -21
  14. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs.map +1 -1
  15. package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs +10 -10
  16. package/fesm2022/testgorilla-tgo-ui-components-badge.mjs +10 -10
  17. package/fesm2022/testgorilla-tgo-ui-components-badge.mjs.map +1 -1
  18. package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs +20 -20
  19. package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs.map +1 -1
  20. package/fesm2022/testgorilla-tgo-ui-components-button.mjs +8 -8
  21. package/fesm2022/testgorilla-tgo-ui-components-card.mjs +8 -8
  22. package/fesm2022/testgorilla-tgo-ui-components-card.mjs.map +1 -1
  23. package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs +12 -12
  24. package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs.map +1 -1
  25. package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs +15 -15
  26. package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs.map +1 -1
  27. package/fesm2022/testgorilla-tgo-ui-components-core.mjs +44 -44
  28. package/fesm2022/testgorilla-tgo-ui-components-core.mjs.map +1 -1
  29. package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs +20 -20
  30. package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs.map +1 -1
  31. package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs +25 -25
  32. package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs.map +1 -1
  33. package/fesm2022/testgorilla-tgo-ui-components-divider.mjs +7 -7
  34. package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs +10 -10
  35. package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs.map +1 -1
  36. package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs +11 -11
  37. package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs.map +1 -1
  38. package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs +7 -7
  39. package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs +7 -7
  40. package/fesm2022/testgorilla-tgo-ui-components-field.mjs +14 -14
  41. package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +1 -1
  42. package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs +10 -10
  43. package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs +20 -20
  44. package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs.map +1 -1
  45. package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs +8 -8
  46. package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs.map +1 -1
  47. package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs +7 -7
  48. package/fesm2022/testgorilla-tgo-ui-components-icon.mjs +23 -15
  49. package/fesm2022/testgorilla-tgo-ui-components-icon.mjs.map +1 -1
  50. package/fesm2022/testgorilla-tgo-ui-components-infinite-scroll-table.mjs +369 -0
  51. package/fesm2022/testgorilla-tgo-ui-components-infinite-scroll-table.mjs.map +1 -0
  52. package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs +33 -33
  53. package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs.map +1 -1
  54. package/fesm2022/testgorilla-tgo-ui-components-logo.mjs +7 -7
  55. package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs +3 -3
  56. package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs +3 -3
  57. package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs +23 -23
  58. package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs.map +1 -1
  59. package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs +14 -14
  60. package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs.map +1 -1
  61. package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs +10 -10
  62. package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs.map +1 -1
  63. package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs +7 -7
  64. package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs +8 -8
  65. package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs +7 -7
  66. package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs +7 -7
  67. package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs +12 -12
  68. package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs.map +1 -1
  69. package/fesm2022/testgorilla-tgo-ui-components-popover.mjs +15 -15
  70. package/fesm2022/testgorilla-tgo-ui-components-popover.mjs.map +1 -1
  71. package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs +7 -7
  72. package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs +42 -42
  73. package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs.map +1 -1
  74. package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs +7 -7
  75. package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs +7 -7
  76. package/fesm2022/testgorilla-tgo-ui-components-rating.mjs +10 -10
  77. package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs +8 -8
  78. package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs.map +1 -1
  79. package/fesm2022/testgorilla-tgo-ui-components-scale.mjs +8 -8
  80. package/fesm2022/testgorilla-tgo-ui-components-scale.mjs.map +1 -1
  81. package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs +7 -7
  82. package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs +7 -7
  83. package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs +17 -17
  84. package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs.map +1 -1
  85. package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs +14 -14
  86. package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs.map +1 -1
  87. package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs +31 -31
  88. package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs.map +1 -1
  89. package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs +12 -12
  90. package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs.map +1 -1
  91. package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs +12 -12
  92. package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs.map +1 -1
  93. package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs +3 -3
  94. package/fesm2022/testgorilla-tgo-ui-components-slider.mjs +12 -12
  95. package/fesm2022/testgorilla-tgo-ui-components-slider.mjs.map +1 -1
  96. package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs +10 -10
  97. package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs +7 -7
  98. package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs +7 -7
  99. package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs +21 -21
  100. package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs.map +1 -1
  101. package/fesm2022/testgorilla-tgo-ui-components-table.mjs +11 -11
  102. package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs +25 -25
  103. package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs.map +1 -1
  104. package/fesm2022/testgorilla-tgo-ui-components-tag.mjs +26 -26
  105. package/fesm2022/testgorilla-tgo-ui-components-tag.mjs.map +1 -1
  106. package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs +7 -7
  107. package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs +10 -10
  108. package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs +17 -17
  109. package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs +7 -7
  110. package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs +40 -40
  111. package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs.map +1 -1
  112. package/fesm2022/testgorilla-tgo-ui.mjs +7 -7
  113. package/mcp/catalog.json +1 -1
  114. package/package.json +96 -101
  115. package/projects/tgo-canopy-ui/assets/icons/rebrand/Grid-list-view-filled.svg +3 -0
  116. package/projects/tgo-canopy-ui/assets/icons/rebrand/Grid-list-view-in-line.svg +3 -0
  117. package/projects/tgo-canopy-ui/assets/icons/rebrand/Table-view-filled.svg +3 -0
  118. package/projects/tgo-canopy-ui/assets/icons/rebrand/Table-view-in-line.svg +3 -0
  119. package/{components/icon/index.d.ts → types/testgorilla-tgo-ui-components-icon.d.ts} +1 -1
  120. package/types/testgorilla-tgo-ui-components-infinite-scroll-table.d.ts +225 -0
  121. package/{components/inline-field/index.d.ts → types/testgorilla-tgo-ui-components-inline-field.d.ts} +8 -7
  122. package/{components/side-sheet/index.d.ts → types/testgorilla-tgo-ui-components-side-sheet.d.ts} +1 -1
  123. /package/{components/accordion/index.d.ts → types/testgorilla-tgo-ui-components-accordion.d.ts} +0 -0
  124. /package/{components/ai-audio-circle/index.d.ts → types/testgorilla-tgo-ui-components-ai-audio-circle.d.ts} +0 -0
  125. /package/{components/ai-caveat/index.d.ts → types/testgorilla-tgo-ui-components-ai-caveat.d.ts} +0 -0
  126. /package/{components/ai-feedback/index.d.ts → types/testgorilla-tgo-ui-components-ai-feedback.d.ts} +0 -0
  127. /package/{components/alert-banner/index.d.ts → types/testgorilla-tgo-ui-components-alert-banner.d.ts} +0 -0
  128. /package/{components/audio-waveform/index.d.ts → types/testgorilla-tgo-ui-components-audio-waveform.d.ts} +0 -0
  129. /package/{components/autocomplete-v2/index.d.ts → types/testgorilla-tgo-ui-components-autocomplete-v2.d.ts} +0 -0
  130. /package/{components/autocomplete/index.d.ts → types/testgorilla-tgo-ui-components-autocomplete.d.ts} +0 -0
  131. /package/{components/avatar/index.d.ts → types/testgorilla-tgo-ui-components-avatar.d.ts} +0 -0
  132. /package/{components/badge/index.d.ts → types/testgorilla-tgo-ui-components-badge.d.ts} +0 -0
  133. /package/{components/breadcrumb/index.d.ts → types/testgorilla-tgo-ui-components-breadcrumb.d.ts} +0 -0
  134. /package/{components/button/index.d.ts → types/testgorilla-tgo-ui-components-button.d.ts} +0 -0
  135. /package/{components/card/index.d.ts → types/testgorilla-tgo-ui-components-card.d.ts} +0 -0
  136. /package/{components/checkbox/index.d.ts → types/testgorilla-tgo-ui-components-checkbox.d.ts} +0 -0
  137. /package/{components/checklist/index.d.ts → types/testgorilla-tgo-ui-components-checklist.d.ts} +0 -0
  138. /package/{components/core/index.d.ts → types/testgorilla-tgo-ui-components-core.d.ts} +0 -0
  139. /package/{components/datepicker/index.d.ts → types/testgorilla-tgo-ui-components-datepicker.d.ts} +0 -0
  140. /package/{components/dialog/index.d.ts → types/testgorilla-tgo-ui-components-dialog.d.ts} +0 -0
  141. /package/{components/divider/index.d.ts → types/testgorilla-tgo-ui-components-divider.d.ts} +0 -0
  142. /package/{components/donut-chart/index.d.ts → types/testgorilla-tgo-ui-components-donut-chart.d.ts} +0 -0
  143. /package/{components/dropdown/index.d.ts → types/testgorilla-tgo-ui-components-dropdown.d.ts} +0 -0
  144. /package/{components/elevation-shadow/index.d.ts → types/testgorilla-tgo-ui-components-elevation-shadow.d.ts} +0 -0
  145. /package/{components/empty-state/index.d.ts → types/testgorilla-tgo-ui-components-empty-state.d.ts} +0 -0
  146. /package/{components/field/index.d.ts → types/testgorilla-tgo-ui-components-field.d.ts} +0 -0
  147. /package/{components/file-upload/index.d.ts → types/testgorilla-tgo-ui-components-file-upload.d.ts} +0 -0
  148. /package/{components/filter-button/index.d.ts → types/testgorilla-tgo-ui-components-filter-button.d.ts} +0 -0
  149. /package/{components/gaussian-chart/index.d.ts → types/testgorilla-tgo-ui-components-gaussian-chart.d.ts} +0 -0
  150. /package/{components/icon-label/index.d.ts → types/testgorilla-tgo-ui-components-icon-label.d.ts} +0 -0
  151. /package/{components/logo/index.d.ts → types/testgorilla-tgo-ui-components-logo.d.ts} +0 -0
  152. /package/{components/media-card/index.d.ts → types/testgorilla-tgo-ui-components-media-card.d.ts} +0 -0
  153. /package/{components/media-dialog/index.d.ts → types/testgorilla-tgo-ui-components-media-dialog.d.ts} +0 -0
  154. /package/{components/multi-input/index.d.ts → types/testgorilla-tgo-ui-components-multi-input.d.ts} +0 -0
  155. /package/{components/navbar/index.d.ts → types/testgorilla-tgo-ui-components-navbar.d.ts} +0 -0
  156. /package/{components/overflow-menu/index.d.ts → types/testgorilla-tgo-ui-components-overflow-menu.d.ts} +0 -0
  157. /package/{components/page-header/index.d.ts → types/testgorilla-tgo-ui-components-page-header.d.ts} +0 -0
  158. /package/{components/paginator/index.d.ts → types/testgorilla-tgo-ui-components-paginator.d.ts} +0 -0
  159. /package/{components/password-criteria/index.d.ts → types/testgorilla-tgo-ui-components-password-criteria.d.ts} +0 -0
  160. /package/{components/password-strength/index.d.ts → types/testgorilla-tgo-ui-components-password-strength.d.ts} +0 -0
  161. /package/{components/phone-input/index.d.ts → types/testgorilla-tgo-ui-components-phone-input.d.ts} +0 -0
  162. /package/{components/popover/index.d.ts → types/testgorilla-tgo-ui-components-popover.d.ts} +0 -0
  163. /package/{components/progress-bar/index.d.ts → types/testgorilla-tgo-ui-components-progress-bar.d.ts} +0 -0
  164. /package/{components/prompt/index.d.ts → types/testgorilla-tgo-ui-components-prompt.d.ts} +0 -0
  165. /package/{components/radial-progress/index.d.ts → types/testgorilla-tgo-ui-components-radial-progress.d.ts} +0 -0
  166. /package/{components/radio-button/index.d.ts → types/testgorilla-tgo-ui-components-radio-button.d.ts} +0 -0
  167. /package/{components/rating/index.d.ts → types/testgorilla-tgo-ui-components-rating.d.ts} +0 -0
  168. /package/{components/scale-table/index.d.ts → types/testgorilla-tgo-ui-components-scale-table.d.ts} +0 -0
  169. /package/{components/scale/index.d.ts → types/testgorilla-tgo-ui-components-scale.d.ts} +0 -0
  170. /package/{components/segmented-bar/index.d.ts → types/testgorilla-tgo-ui-components-segmented-bar.d.ts} +0 -0
  171. /package/{components/segmented-button/index.d.ts → types/testgorilla-tgo-ui-components-segmented-button.d.ts} +0 -0
  172. /package/{components/segmented-toggle/index.d.ts → types/testgorilla-tgo-ui-components-segmented-toggle.d.ts} +0 -0
  173. /package/{components/selectable-card/index.d.ts → types/testgorilla-tgo-ui-components-selectable-card.d.ts} +0 -0
  174. /package/{components/side-navigation/index.d.ts → types/testgorilla-tgo-ui-components-side-navigation.d.ts} +0 -0
  175. /package/{components/side-panel/index.d.ts → types/testgorilla-tgo-ui-components-side-panel.d.ts} +0 -0
  176. /package/{components/skeleton/index.d.ts → types/testgorilla-tgo-ui-components-skeleton.d.ts} +0 -0
  177. /package/{components/slider/index.d.ts → types/testgorilla-tgo-ui-components-slider.d.ts} +0 -0
  178. /package/{components/snackbar/index.d.ts → types/testgorilla-tgo-ui-components-snackbar.d.ts} +0 -0
  179. /package/{components/spider-chart/index.d.ts → types/testgorilla-tgo-ui-components-spider-chart.d.ts} +0 -0
  180. /package/{components/spinner/index.d.ts → types/testgorilla-tgo-ui-components-spinner.d.ts} +0 -0
  181. /package/{components/stepper/index.d.ts → types/testgorilla-tgo-ui-components-stepper.d.ts} +0 -0
  182. /package/{components/table/index.d.ts → types/testgorilla-tgo-ui-components-table.d.ts} +0 -0
  183. /package/{components/tabs/index.d.ts → types/testgorilla-tgo-ui-components-tabs.d.ts} +0 -0
  184. /package/{components/tag/index.d.ts → types/testgorilla-tgo-ui-components-tag.d.ts} +0 -0
  185. /package/{components/toggle/index.d.ts → types/testgorilla-tgo-ui-components-toggle.d.ts} +0 -0
  186. /package/{components/tooltip/index.d.ts → types/testgorilla-tgo-ui-components-tooltip.d.ts} +0 -0
  187. /package/{components/universal-skills/index.d.ts → types/testgorilla-tgo-ui-components-universal-skills.d.ts} +0 -0
  188. /package/{components/validation-error/index.d.ts → types/testgorilla-tgo-ui-components-validation-error.d.ts} +0 -0
  189. /package/{components/write-with-ai/index.d.ts → types/testgorilla-tgo-ui-components-write-with-ai.d.ts} +0 -0
  190. /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 };
@@ -1,5 +1,4 @@
1
- import * as _testgorilla_tgo_ui_components_icon from '@testgorilla/tgo-ui/components/icon';
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: _testgorilla_tgo_ui_components_icon.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: _testgorilla_tgo_ui_components_icon.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: KeyboardEvent): void;
243
- onEnterPressed(event: KeyboardEvent): void;
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 _testgorilla_tgo_ui_components_icon.IconComponentModule, typeof InlineFieldComponent], [typeof InlineFieldComponent]>;
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
 
@@ -57,7 +57,7 @@ declare class SideSheetComponent implements OnInit {
57
57
  openChange: EventEmitter<boolean>;
58
58
  drawer: MatDrawer;
59
59
  container: ViewContainerRef;
60
- onEscPress(_event: KeyboardEvent): void;
60
+ onEscPress(): void;
61
61
  protected title: string;
62
62
  protected showBackButton: boolean;
63
63
  protected showTitleTooltip: boolean;
File without changes