@simple-table/react 4.0.1 → 4.0.3

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 (196) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/index.es.js +1 -1
  3. package/dist/types/{react/src/PortalBridge.d.ts → PortalBridge.d.ts} +96 -96
  4. package/dist/types/{react/src/SimpleTable.d.ts → SimpleTable.d.ts} +27 -27
  5. package/dist/types/buildVanillaConfig.d.ts +6 -0
  6. package/dist/types/index.d.ts +5 -0
  7. package/dist/types/{react/src/types.d.ts → types.d.ts} +111 -103
  8. package/dist/types/{react/src/utils → utils}/ImperativeDomSlot.d.ts +46 -46
  9. package/dist/types/{react/src/utils → utils}/headersEqual.d.ts +6 -6
  10. package/dist/types/{react/src/utils → utils}/rowsEqual.d.ts +6 -6
  11. package/dist/types/{react/src/utils → utils}/wrapReactRenderer.d.ts +95 -95
  12. package/package.json +12 -7
  13. package/styles.css.d.ts +1 -0
  14. package/dist/types/core/src/consts/column-constraints.d.ts +0 -58
  15. package/dist/types/core/src/consts/general-consts.d.ts +0 -32
  16. package/dist/types/core/src/core/SimpleTableVanilla.d.ts +0 -369
  17. package/dist/types/core/src/core/api/TableAPIImpl.d.ts +0 -78
  18. package/dist/types/core/src/core/dom/DOMManager.d.ts +0 -52
  19. package/dist/types/core/src/core/initialization/TableInitializer.d.ts +0 -34
  20. package/dist/types/core/src/core/rendering/RenderOrchestrator.d.ts +0 -172
  21. package/dist/types/core/src/core/rendering/SectionRenderer.d.ts +0 -119
  22. package/dist/types/core/src/core/rendering/TableRenderer.d.ts +0 -120
  23. package/dist/types/core/src/hooks/ariaAnnouncements.d.ts +0 -37
  24. package/dist/types/core/src/hooks/contentHeight.d.ts +0 -29
  25. package/dist/types/core/src/hooks/expandedDepths.d.ts +0 -69
  26. package/dist/types/core/src/hooks/handleOutsideClick.d.ts +0 -50
  27. package/dist/types/core/src/hooks/previousValue.d.ts +0 -30
  28. package/dist/types/core/src/hooks/scrollbarVisibility.d.ts +0 -65
  29. package/dist/types/core/src/hooks/scrollbarWidth.d.ts +0 -52
  30. package/dist/types/core/src/hooks/useAggregatedRows.d.ts +0 -14
  31. package/dist/types/core/src/hooks/useQuickFilter.d.ts +0 -14
  32. package/dist/types/core/src/hooks/windowResize.d.ts +0 -31
  33. package/dist/types/core/src/icons/AngleDownIcon.d.ts +0 -1
  34. package/dist/types/core/src/icons/AngleLeftIcon.d.ts +0 -1
  35. package/dist/types/core/src/icons/AngleRightIcon.d.ts +0 -1
  36. package/dist/types/core/src/icons/AngleUpIcon.d.ts +0 -1
  37. package/dist/types/core/src/icons/AscIcon.d.ts +0 -1
  38. package/dist/types/core/src/icons/CheckIcon.d.ts +0 -1
  39. package/dist/types/core/src/icons/DescIcon.d.ts +0 -1
  40. package/dist/types/core/src/icons/DragIcon.d.ts +0 -1
  41. package/dist/types/core/src/icons/FilterIcon.d.ts +0 -1
  42. package/dist/types/core/src/icons/SelectIcon.d.ts +0 -1
  43. package/dist/types/core/src/icons/index.d.ts +0 -14
  44. package/dist/types/core/src/index.d.ts +0 -58
  45. package/dist/types/core/src/managers/AnimationCoordinator.d.ts +0 -356
  46. package/dist/types/core/src/managers/AutoScaleManager.d.ts +0 -33
  47. package/dist/types/core/src/managers/DimensionManager.d.ts +0 -84
  48. package/dist/types/core/src/managers/DragHandlerManager.d.ts +0 -44
  49. package/dist/types/core/src/managers/FilterManager.d.ts +0 -36
  50. package/dist/types/core/src/managers/PivotManager.d.ts +0 -35
  51. package/dist/types/core/src/managers/RowManager.d.ts +0 -56
  52. package/dist/types/core/src/managers/RowSelectionManager.d.ts +0 -72
  53. package/dist/types/core/src/managers/ScrollManager.d.ts +0 -38
  54. package/dist/types/core/src/managers/SectionScrollController.d.ts +0 -74
  55. package/dist/types/core/src/managers/SelectionManager/SelectionManager.d.ts +0 -251
  56. package/dist/types/core/src/managers/SelectionManager/index.d.ts +0 -2
  57. package/dist/types/core/src/managers/SelectionManager/keyboardUtils.d.ts +0 -7
  58. package/dist/types/core/src/managers/SelectionManager/mouseUtils.d.ts +0 -16
  59. package/dist/types/core/src/managers/SelectionManager/selectionRangeUtils.d.ts +0 -7
  60. package/dist/types/core/src/managers/SelectionManager/types.d.ts +0 -28
  61. package/dist/types/core/src/managers/SortManager.d.ts +0 -42
  62. package/dist/types/core/src/types/AggregationTypes.d.ts +0 -8
  63. package/dist/types/core/src/types/AnimationsConfig.d.ts +0 -16
  64. package/dist/types/core/src/types/BoundingBox.d.ts +0 -11
  65. package/dist/types/core/src/types/Cell.d.ts +0 -7
  66. package/dist/types/core/src/types/CellChangeProps.d.ts +0 -9
  67. package/dist/types/core/src/types/CellClickProps.d.ts +0 -11
  68. package/dist/types/core/src/types/CellRendererProps.d.ts +0 -32
  69. package/dist/types/core/src/types/CellValue.d.ts +0 -2
  70. package/dist/types/core/src/types/ColumnEditorConfig.d.ts +0 -42
  71. package/dist/types/core/src/types/ColumnEditorCustomRendererProps.d.ts +0 -14
  72. package/dist/types/core/src/types/ColumnEditorRowRendererProps.d.ts +0 -39
  73. package/dist/types/core/src/types/ColumnVisibilityTypes.d.ts +0 -4
  74. package/dist/types/core/src/types/CustomTheme.d.ts +0 -28
  75. package/dist/types/core/src/types/DragHandlerProps.d.ts +0 -14
  76. package/dist/types/core/src/types/EnumOption.d.ts +0 -5
  77. package/dist/types/core/src/types/FilterTypes.d.ts +0 -31
  78. package/dist/types/core/src/types/FlattenedHeader.d.ts +0 -10
  79. package/dist/types/core/src/types/FooterPosition.d.ts +0 -3
  80. package/dist/types/core/src/types/FooterRendererProps.d.ts +0 -17
  81. package/dist/types/core/src/types/GenerateRowIdParams.d.ts +0 -11
  82. package/dist/types/core/src/types/GetRowId.d.ts +0 -16
  83. package/dist/types/core/src/types/HandleResizeStartProps.d.ts +0 -25
  84. package/dist/types/core/src/types/HeaderDropdownProps.d.ts +0 -14
  85. package/dist/types/core/src/types/HeaderObject.d.ts +0 -133
  86. package/dist/types/core/src/types/HeaderRendererProps.d.ts +0 -17
  87. package/dist/types/core/src/types/IconsConfig.d.ts +0 -19
  88. package/dist/types/core/src/types/OnNextPage.d.ts +0 -2
  89. package/dist/types/core/src/types/OnRowGroupExpandProps.d.ts +0 -16
  90. package/dist/types/core/src/types/OnSortProps.d.ts +0 -3
  91. package/dist/types/core/src/types/PanelSection.d.ts +0 -1
  92. package/dist/types/core/src/types/Pinned.d.ts +0 -1
  93. package/dist/types/core/src/types/PinnedSectionsState.d.ts +0 -6
  94. package/dist/types/core/src/types/PivotTypes.d.ts +0 -37
  95. package/dist/types/core/src/types/QuickFilterTypes.d.ts +0 -21
  96. package/dist/types/core/src/types/Row.d.ts +0 -3
  97. package/dist/types/core/src/types/RowButton.d.ts +0 -6
  98. package/dist/types/core/src/types/RowId.d.ts +0 -1
  99. package/dist/types/core/src/types/RowSelectionChangeProps.d.ts +0 -7
  100. package/dist/types/core/src/types/RowSelectionMode.d.ts +0 -8
  101. package/dist/types/core/src/types/RowState.d.ts +0 -12
  102. package/dist/types/core/src/types/RowStateRendererProps.d.ts +0 -18
  103. package/dist/types/core/src/types/SharedTableProps.d.ts +0 -24
  104. package/dist/types/core/src/types/SimpleTableConfig.d.ts +0 -124
  105. package/dist/types/core/src/types/SimpleTableProps.d.ts +0 -125
  106. package/dist/types/core/src/types/SortColumn.d.ts +0 -8
  107. package/dist/types/core/src/types/TableAPI.d.ts +0 -82
  108. package/dist/types/core/src/types/TableHeaderProps.d.ts +0 -17
  109. package/dist/types/core/src/types/TableRow.d.ts +0 -39
  110. package/dist/types/core/src/types/TableRowProps.d.ts +0 -29
  111. package/dist/types/core/src/types/Theme.d.ts +0 -2
  112. package/dist/types/core/src/types/UpdateCellProps.d.ts +0 -8
  113. package/dist/types/core/src/utils/accordionAnimation.d.ts +0 -25
  114. package/dist/types/core/src/utils/aggregationUtils.d.ts +0 -7
  115. package/dist/types/core/src/utils/ariaRowOwnership.d.ts +0 -37
  116. package/dist/types/core/src/utils/asRows.d.ts +0 -7
  117. package/dist/types/core/src/utils/bodyCell/cellLiveRef.d.ts +0 -9
  118. package/dist/types/core/src/utils/bodyCell/content.d.ts +0 -5
  119. package/dist/types/core/src/utils/bodyCell/editing.d.ts +0 -4
  120. package/dist/types/core/src/utils/bodyCell/editors/booleanDropdown.d.ts +0 -2
  121. package/dist/types/core/src/utils/bodyCell/editors/datePicker.d.ts +0 -2
  122. package/dist/types/core/src/utils/bodyCell/editors/dropdown.d.ts +0 -18
  123. package/dist/types/core/src/utils/bodyCell/editors/enumDropdown.d.ts +0 -2
  124. package/dist/types/core/src/utils/bodyCell/eventTracking.d.ts +0 -3
  125. package/dist/types/core/src/utils/bodyCell/expansion.d.ts +0 -12
  126. package/dist/types/core/src/utils/bodyCell/selection.d.ts +0 -7
  127. package/dist/types/core/src/utils/bodyCell/styling.d.ts +0 -11
  128. package/dist/types/core/src/utils/bodyCell/types.d.ts +0 -170
  129. package/dist/types/core/src/utils/bodyCellRenderer.d.ts +0 -6
  130. package/dist/types/core/src/utils/cellClipboardUtils.d.ts +0 -25
  131. package/dist/types/core/src/utils/cellScrollUtils.d.ts +0 -10
  132. package/dist/types/core/src/utils/cellUtils.d.ts +0 -18
  133. package/dist/types/core/src/utils/charts/createBarChart.d.ts +0 -20
  134. package/dist/types/core/src/utils/charts/createLineAreaChart.d.ts +0 -25
  135. package/dist/types/core/src/utils/collapseUtils.d.ts +0 -31
  136. package/dist/types/core/src/utils/columnEditor/columnEditorUtils.d.ts +0 -27
  137. package/dist/types/core/src/utils/columnEditor/createCheckbox.d.ts +0 -21
  138. package/dist/types/core/src/utils/columnEditor/createColumnEditor.d.ts +0 -26
  139. package/dist/types/core/src/utils/columnEditor/createColumnEditorPopout.d.ts +0 -23
  140. package/dist/types/core/src/utils/columnEditor/createColumnEditorRow.d.ts +0 -41
  141. package/dist/types/core/src/utils/csvExportUtils.d.ts +0 -14
  142. package/dist/types/core/src/utils/dateUtils.d.ts +0 -18
  143. package/dist/types/core/src/utils/externalScroll.d.ts +0 -58
  144. package/dist/types/core/src/utils/filterUtils.d.ts +0 -5
  145. package/dist/types/core/src/utils/filters/createBooleanFilter.d.ts +0 -15
  146. package/dist/types/core/src/utils/filters/createCustomSelect.d.ts +0 -20
  147. package/dist/types/core/src/utils/filters/createDateFilter.d.ts +0 -15
  148. package/dist/types/core/src/utils/filters/createDatePicker.d.ts +0 -10
  149. package/dist/types/core/src/utils/filters/createDropdown.d.ts +0 -33
  150. package/dist/types/core/src/utils/filters/createEnumFilter.d.ts +0 -15
  151. package/dist/types/core/src/utils/filters/createFilterActions.d.ts +0 -12
  152. package/dist/types/core/src/utils/filters/createFilterDropdown.d.ts +0 -15
  153. package/dist/types/core/src/utils/filters/createFilterInput.d.ts +0 -16
  154. package/dist/types/core/src/utils/filters/createNumberFilter.d.ts +0 -15
  155. package/dist/types/core/src/utils/filters/createStringFilter.d.ts +0 -15
  156. package/dist/types/core/src/utils/footer/createTableFooter.d.ts +0 -21
  157. package/dist/types/core/src/utils/formatters.d.ts +0 -3
  158. package/dist/types/core/src/utils/generalUtils.d.ts +0 -4
  159. package/dist/types/core/src/utils/headerCell/collapsing.d.ts +0 -6
  160. package/dist/types/core/src/utils/headerCell/dragging.d.ts +0 -5
  161. package/dist/types/core/src/utils/headerCell/editing.d.ts +0 -4
  162. package/dist/types/core/src/utils/headerCell/eventTracking.d.ts +0 -28
  163. package/dist/types/core/src/utils/headerCell/filtering.d.ts +0 -3
  164. package/dist/types/core/src/utils/headerCell/resizing.d.ts +0 -3
  165. package/dist/types/core/src/utils/headerCell/selection.d.ts +0 -10
  166. package/dist/types/core/src/utils/headerCell/sorting.d.ts +0 -3
  167. package/dist/types/core/src/utils/headerCell/styling.d.ts +0 -7
  168. package/dist/types/core/src/utils/headerCell/types.d.ts +0 -110
  169. package/dist/types/core/src/utils/headerCellRenderer.d.ts +0 -4
  170. package/dist/types/core/src/utils/headerUtils.d.ts +0 -41
  171. package/dist/types/core/src/utils/headerWidthUtils.d.ts +0 -121
  172. package/dist/types/core/src/utils/horizontalScrollbarRenderer.d.ts +0 -27
  173. package/dist/types/core/src/utils/infiniteScrollUtils.d.ts +0 -145
  174. package/dist/types/core/src/utils/loadingPlaceholderUtils.d.ts +0 -11
  175. package/dist/types/core/src/utils/nestedGridRowRenderer.d.ts +0 -50
  176. package/dist/types/core/src/utils/pinnedColumnUtils.d.ts +0 -29
  177. package/dist/types/core/src/utils/pivot/pivotRows.d.ts +0 -16
  178. package/dist/types/core/src/utils/propSyncEqual.d.ts +0 -60
  179. package/dist/types/core/src/utils/quickFilterUtils.d.ts +0 -14
  180. package/dist/types/core/src/utils/resizeUtils/autoExpandResize.d.ts +0 -32
  181. package/dist/types/core/src/utils/resizeUtils/compensation.d.ts +0 -17
  182. package/dist/types/core/src/utils/resizeUtils/domUpdates.d.ts +0 -15
  183. package/dist/types/core/src/utils/resizeUtils/index.d.ts +0 -26
  184. package/dist/types/core/src/utils/resizeUtils/maxWidth.d.ts +0 -9
  185. package/dist/types/core/src/utils/resizeUtils/parentHeaderResize.d.ts +0 -11
  186. package/dist/types/core/src/utils/resizeUtils/sectionWidths.d.ts +0 -36
  187. package/dist/types/core/src/utils/rowFlattening.d.ts +0 -30
  188. package/dist/types/core/src/utils/rowProcessing.d.ts +0 -65
  189. package/dist/types/core/src/utils/rowSelectionUtils.d.ts +0 -62
  190. package/dist/types/core/src/utils/rowSeparatorRenderer.d.ts +0 -16
  191. package/dist/types/core/src/utils/rowUtils.d.ts +0 -187
  192. package/dist/types/core/src/utils/sortUtils.d.ts +0 -8
  193. package/dist/types/core/src/utils/stateRowRenderer.d.ts +0 -15
  194. package/dist/types/core/src/utils/stickyParentsRenderer.d.ts +0 -53
  195. package/dist/types/react/src/buildVanillaConfig.d.ts +0 -4
  196. package/dist/types/react/src/index.d.ts +0 -5
@@ -1,170 +0,0 @@
1
- import HeaderObject, { Accessor } from "../../types/HeaderObject";
2
- import CellValue from "../../types/CellValue";
3
- import { IconsConfig } from "../../types/IconsConfig";
4
- import OnRowGroupExpandProps from "../../types/OnRowGroupExpandProps";
5
- import type Row from "../../types/Row";
6
- import type TableRow from "../../types/TableRow";
7
- import type RowState from "../../types/RowState";
8
- import type { RowButton } from "../../types/RowButton";
9
- import type { CustomTheme } from "../../types/CustomTheme";
10
- import type { HeightOffsets } from "../infiniteScrollUtils";
11
- import type { AccordionAxis } from "../accordionAnimation";
12
- import type { VanillaEmptyStateRenderer, VanillaErrorStateRenderer, VanillaLoadingStateRenderer } from "../../types/RowStateRendererProps";
13
- import type { NestedTableFactory } from "../nestedGridRowRenderer";
14
- type SetStateAction<T> = T | ((prevState: T) => T);
15
- type Dispatch<A> = (value: A) => void;
16
- export interface AbsoluteBodyCell {
17
- header: HeaderObject;
18
- row: Row;
19
- rowIndex: number;
20
- colIndex: number;
21
- rowId: string;
22
- /**
23
- * Position-independent stable key (mirror of `tableRow.stableRowKey`),
24
- * used to compute the cell DOM `id` and the animation snapshot key when
25
- * `getRowId` is provided. Falls back to `rowId` (positional) when absent.
26
- */
27
- stableRowKey?: string;
28
- displayRowNumber: number;
29
- depth: number;
30
- isOdd: boolean;
31
- tableRow: TableRow;
32
- left: number;
33
- top: number;
34
- width: number;
35
- height: number;
36
- }
37
- export interface CellData {
38
- rowIndex: number;
39
- colIndex: number;
40
- rowId: string;
41
- }
42
- export interface CellEditParams {
43
- accessor: Accessor;
44
- newValue: CellValue;
45
- row: Row;
46
- rowIndex: number;
47
- }
48
- export interface CellClickParams {
49
- accessor: Accessor;
50
- colIndex: number;
51
- row: Row;
52
- rowIndex: number;
53
- value: CellValue;
54
- }
55
- export interface CellRegistryEntry {
56
- updateContent: (newValue: CellValue) => void;
57
- }
58
- export interface CellRenderContext {
59
- collapsedHeaders: Set<Accessor>;
60
- collapsedRows: Map<string, number>;
61
- expandedRows: Map<string, number>;
62
- expandedDepths: number[];
63
- selectedColumns: Set<number>;
64
- rowsWithSelectedCells: Set<string>;
65
- columnBorders: boolean;
66
- enableRowSelection?: boolean;
67
- /** When true, clicking a data cell selects/toggles the row. */
68
- selectRowOnClick?: boolean;
69
- rowSelectionMode?: "single" | "multiple";
70
- /** Used for context cache invalidation when row selection changes */
71
- selectedRowCount?: number;
72
- /** Keyboard active row id for focus styling */
73
- activeRowId?: string | null;
74
- cellUpdateFlash?: boolean;
75
- useOddColumnBackground?: boolean;
76
- useHoverRowBackground?: boolean;
77
- /**
78
- * Unique id for this table instance. Scopes the module-level row-hover cell
79
- * map so multiple tables on one page with overlapping rowIds don't cross-hover.
80
- */
81
- hoverScopeId: string;
82
- useOddEvenRowBackground?: boolean;
83
- rowGrouping?: string[];
84
- headers: HeaderObject[];
85
- /**
86
- * Accessor of the column whose body cells identify the row and should carry
87
- * `role="rowheader"` (the first non-selection leaf column). Other data cells
88
- * remain `role="gridcell"`.
89
- */
90
- rowHeaderAccessor?: Accessor;
91
- rowHeight: number;
92
- /** Number of header rows (for aria-rowindex: position + maxHeaderDepth + 1) */
93
- maxHeaderDepth?: number;
94
- heightOffsets?: HeightOffsets;
95
- customTheme?: CustomTheme;
96
- containerWidth?: number;
97
- /**
98
- * Main section *content* width (sum of all non-pinned column widths). Drives
99
- * the body section / row-separator width so the body is as wide as its
100
- * content and scrolls horizontally. NOT the virtualization viewport — use
101
- * `mainSectionViewportWidth` for getVisibleBodyCells.
102
- */
103
- mainSectionContainerWidth?: number;
104
- /**
105
- * Main section *visible* viewport width (container minus pinned sections).
106
- * Used by getVisibleBodyCells to decide which cells intersect the viewport
107
- * (column virtualization). NOT the content width — using the content width
108
- * here makes every column count as visible, disabling virtualization.
109
- */
110
- mainSectionViewportWidth?: number;
111
- /**
112
- * When false, skip column virtualization and render every body cell in the
113
- * main section. Default true. Mirrors {@link SimpleTableProps.enableVirtualization}.
114
- */
115
- enableVirtualization?: boolean;
116
- onCellEdit?: (params: CellEditParams) => void;
117
- onCellClick?: (params: CellClickParams) => void;
118
- onRowGroupExpand?: (props: OnRowGroupExpandProps) => void | Promise<void>;
119
- handleRowSelect?: (rowId: string, checked: boolean) => void;
120
- /** Click-to-select / keyboard toggle entry point (mode-aware). */
121
- handleToggleRow?: (rowId: string) => void;
122
- handleMouseDown: (cell: CellData) => void;
123
- handleMouseOver: (cell: CellData, clientX: number, clientY: number) => void;
124
- /**
125
- * Called immediately BEFORE the renderer permanently discards a host element
126
- * (e.g. `innerHTML = ""` on cell rebuild/edit, or a plain `element.remove()`).
127
- * Framework adapters use this to tear down any renderer subtree (React
128
- * portal, etc.) mounted into `host` or one of its descendants. Reuse paths
129
- * never call it, so a reused node keeps its content.
130
- */
131
- onRendererHostDiscard?: (host: HTMLElement) => void;
132
- cellRegistry?: Map<string, CellRegistryEntry>;
133
- setCollapsedRows: Dispatch<SetStateAction<Map<string, number>>>;
134
- setExpandedRows: Dispatch<SetStateAction<Map<string, number>>>;
135
- setRowStateMap: Dispatch<SetStateAction<Map<string | number, RowState>>>;
136
- getCollapsedRows?: () => Map<string, number>;
137
- getExpandedRows?: () => Map<string, number>;
138
- icons: IconsConfig;
139
- theme: string;
140
- rowButtons?: RowButton[];
141
- loadingStateRenderer?: VanillaLoadingStateRenderer;
142
- errorStateRenderer?: VanillaErrorStateRenderer;
143
- emptyStateRenderer?: VanillaEmptyStateRenderer;
144
- /**
145
- * Factory used to instantiate nested grid tables. Injected by the host table
146
- * so {@link nestedGridRowRenderer} never has to import the concrete
147
- * `SimpleTableVanilla` class (which would create a render-module import cycle).
148
- */
149
- createNestedTable?: NestedTableFactory;
150
- getBorderClass: (cell: CellData) => string;
151
- isSelected: (cell: CellData) => boolean;
152
- isInitialFocusedCell: (cell: CellData) => boolean;
153
- isCopyFlashing: (cell: CellData) => boolean;
154
- isWarningFlashing: (cell: CellData) => boolean;
155
- isRowSelected?: (rowId: string) => boolean;
156
- canExpandRowGroup?: (row: Row) => boolean;
157
- isLoading?: boolean;
158
- pinned?: "left" | "right";
159
- /** Pinned section viewport width (px); used for row separators so they match the section, not the full table. */
160
- pinnedSectionWidthPx?: number;
161
- /**
162
- * When set, this render is the post-state pass of a row-grouping (vertical)
163
- * or nested-column (horizontal) expand/collapse. Newly-created cells whose
164
- * cellId has no entry in the animation snapshot start at zero size in the
165
- * named axis so the CSS transition can grow them to their final size while
166
- * sibling rows/cells FLIP into their new positions.
167
- */
168
- accordionAxis?: AccordionAxis;
169
- }
170
- export {};
@@ -1,6 +0,0 @@
1
- import { AbsoluteBodyCell, CellRenderContext } from "./bodyCell/types";
2
- import type TableRow from "../types/TableRow";
3
- import type { AnimationCoordinator, CellPosition } from "../managers/AnimationCoordinator";
4
- export type { AbsoluteBodyCell, CellData, CellEditParams, CellClickParams, CellRegistryEntry, CellRenderContext, } from "./bodyCell/types";
5
- export { cleanupBodyCellRendering } from "./bodyCell/eventTracking";
6
- export declare const renderBodyCells: (container: HTMLElement, cells: AbsoluteBodyCell[], context: CellRenderContext, scrollLeft?: number, allRows?: TableRow[], positionOnly?: boolean, animationCoordinator?: AnimationCoordinator, fullCellLayout?: Map<string, CellPosition>) => void;
@@ -1,25 +0,0 @@
1
- import Cell from "../types/Cell";
2
- import HeaderObject from "../types/HeaderObject";
3
- import type TableRowType from "../types/TableRow";
4
- interface CellRegistryEntry {
5
- updateContent: (newValue: any) => void;
6
- }
7
- /**
8
- * Copies selected cells to clipboard in tab-separated format
9
- */
10
- export declare const copySelectedCellsToClipboard: (selectedCells: Set<string>, leafHeaders: HeaderObject[], tableRows: TableRowType[], copyHeadersToClipboard?: boolean) => string;
11
- /**
12
- * Pastes clipboard data into cells starting from the initial focused cell
13
- */
14
- export declare const pasteClipboardDataToCells: (clipboardText: string, initialFocusedCell: Cell, leafHeaders: HeaderObject[], tableRows: TableRowType[], onCellEdit?: ((props: any) => void) | undefined, cellRegistry?: Map<string, CellRegistryEntry>) => {
15
- updatedCells: Set<string>;
16
- warningCells: Set<string>;
17
- };
18
- /**
19
- * Deletes content from selected cells (sets them to appropriate empty values)
20
- */
21
- export declare const deleteSelectedCellsContent: (selectedCells: Set<string>, leafHeaders: HeaderObject[], tableRows: TableRowType[], onCellEdit?: ((props: any) => void) | undefined, cellRegistry?: Map<string, CellRegistryEntry>) => {
22
- deletedCells: Set<string>;
23
- warningCells: Set<string>;
24
- };
25
- export {};
@@ -1,10 +0,0 @@
1
- import Cell from "../types/Cell";
2
- import TableRow from "../types/TableRow";
3
- import { CustomTheme } from "../types/CustomTheme";
4
- /**
5
- * Scrolls a cell into view, handling virtualization by calculating
6
- * approximate positions when cells are not yet rendered.
7
- * Uses viewport calculations to check if the cell is already fully visible
8
- * before performing any scroll operations.
9
- */
10
- export declare const scrollCellIntoView: (cell: Cell, rowHeight: number, customTheme: CustomTheme, tableRows?: TableRow[]) => void;
@@ -1,18 +0,0 @@
1
- import HeaderObject, { Accessor } from "../types/HeaderObject";
2
- import { Pinned } from "../types/Pinned";
3
- import { RowId } from "../types/RowId";
4
- export declare const getCellId: ({ accessor, rowId }: {
5
- accessor: Accessor;
6
- rowId: RowId;
7
- }) => string;
8
- export declare const displayCell: ({ header, pinned, headers, collapsedHeaders, rootPinned, }: {
9
- header: HeaderObject;
10
- pinned?: Pinned | undefined;
11
- headers?: HeaderObject[] | undefined;
12
- collapsedHeaders?: Set<string> | undefined;
13
- rootPinned?: Pinned | undefined;
14
- }) => true | null;
15
- export declare const getCellKey: ({ rowId, accessor }: {
16
- rowId: RowId;
17
- accessor: Accessor;
18
- }) => string;
@@ -1,20 +0,0 @@
1
- export interface BarChartProps {
2
- data: number[];
3
- width?: number | string;
4
- height?: number;
5
- color?: string;
6
- gap?: number;
7
- className?: string;
8
- min?: number;
9
- max?: number;
10
- }
11
- /**
12
- * Renders a sparkline bar chart in pixel space: the viewBox always matches the
13
- * actual rendered size (tracked via ResizeObserver), and bar edges are snapped
14
- * to whole pixels so bars and gaps stay uniform and crisp at any column width.
15
- */
16
- export declare const createBarChart: (options: BarChartProps) => {
17
- element: SVGSVGElement;
18
- update: (newOptions: Partial<BarChartProps>) => void;
19
- destroy: () => void;
20
- } | null;
@@ -1,25 +0,0 @@
1
- export interface LineAreaChartProps {
2
- data: number[];
3
- width?: number | string;
4
- height?: number;
5
- color?: string;
6
- fillColor?: string;
7
- fillOpacity?: number;
8
- strokeWidth?: number;
9
- className?: string;
10
- min?: number;
11
- max?: number;
12
- }
13
- /**
14
- * Renders a sparkline line/area chart in pixel space: the viewBox always
15
- * matches the actual rendered size (tracked via ResizeObserver), so the stroke
16
- * keeps a uniform width instead of being smeared by non-uniform scaling. The
17
- * line is inset by half the stroke width so peaks and valleys aren't clipped,
18
- * and the area is filled with a vertical gradient that fades toward the
19
- * baseline.
20
- */
21
- export declare const createLineAreaChart: (options: LineAreaChartProps) => {
22
- element: SVGSVGElement;
23
- update: (newOptions: Partial<LineAreaChartProps>) => void;
24
- destroy: () => void;
25
- } | null;
@@ -1,31 +0,0 @@
1
- import HeaderObject, { Accessor } from "../types/HeaderObject";
2
- /**
3
- * Find the parent header that contains the given child header
4
- * Optimized using flattenAllHeaders for better performance
5
- */
6
- export declare const findParentHeader: (headers: HeaderObject[], childAccessor: Accessor) => HeaderObject | null;
7
- /**
8
- * Check if a header should be hidden based on its parent's collapsed state
9
- */
10
- export declare const shouldHideWhenParentCollapsed: (header: HeaderObject, headers: HeaderObject[], collapsedHeaders: Set<Accessor>) => boolean;
11
- /**
12
- * Get all child headers of a parent header (recursively)
13
- * Uses flattenAllHeaders for consistency and better performance
14
- */
15
- export declare const getAllChildHeaders: (header: HeaderObject) => HeaderObject[];
16
- /**
17
- * Check if a header has collapsible children
18
- */
19
- export declare const hasCollapsibleChildren: (header: HeaderObject) => boolean;
20
- /**
21
- * Number of visible leaf (bottom-level) columns a header spans, for
22
- * `aria-colspan` on grouped/nested header cells. Leaf headers that are hidden
23
- * (`hide`) or suppressed by their parent's collapsed state are excluded so the
24
- * announced span matches the columns actually rendered. Leaf headers return 1.
25
- */
26
- export declare const getHeaderColspan: (header: HeaderObject, rootHeaders: HeaderObject[], collapsedHeaders: Set<Accessor>) => number;
27
- /**
28
- * Get all leaf (bottom-level) headers that should be visible when a parent is collapsed
29
- * Uses flattenHeaders for consistent leaf detection
30
- */
31
- export declare const getVisibleLeafHeadersWhenCollapsed: (header: HeaderObject) => HeaderObject[];
@@ -1,27 +0,0 @@
1
- import HeaderObject, { Accessor } from "../../types/HeaderObject";
2
- import { ColumnVisibilityState } from "../../types/ColumnVisibilityTypes";
3
- import { FlattenedHeader } from "../../types/FlattenedHeader";
4
- import { PanelSection } from "../../types/PanelSection";
5
- export type { FlattenedHeader };
6
- /**
7
- * Tracks which drop separator is currently highlighted during a column-editor
8
- * drag. The `index` is **section-relative** (matches the per-section
9
- * `visualIndex`, or `-1` for the separator above the first row), so it must be
10
- * paired with the `panelSection` it belongs to. Without the section, the same
11
- * index is ambiguous across the pinned-left / main / pinned-right lists and the
12
- * divider renders in the wrong section.
13
- */
14
- export type HoveredSeparator = {
15
- panelSection: PanelSection;
16
- index: number;
17
- } | null;
18
- export declare const findAndMarkParentsVisible: (headers: HeaderObject[], childAccessor: Accessor, visited?: Set<string>) => void;
19
- export declare const areAllChildrenHidden: (children: HeaderObject[]) => boolean;
20
- export declare const updateParentHeaders: (headers: HeaderObject[]) => void;
21
- export declare const buildColumnVisibilityState: (headers: HeaderObject[]) => ColumnVisibilityState;
22
- export declare const findClosestValidSeparatorIndex: ({ flattenedHeaders, draggingRow, hoveredRowIndex, isTopHalfOfRow, }: {
23
- flattenedHeaders: FlattenedHeader[];
24
- draggingRow: FlattenedHeader;
25
- hoveredRowIndex: number;
26
- isTopHalfOfRow: boolean;
27
- }) => number | null;
@@ -1,21 +0,0 @@
1
- /**
2
- * Creates a vanilla JS checkbox element
3
- */
4
- export interface CreateCheckboxOptions {
5
- checked: boolean;
6
- onChange: (checked: boolean) => void;
7
- ariaLabel?: string;
8
- }
9
- /** Shared checkmark SVG for checkbox custom visual (used by createCheckbox and update helpers). */
10
- export declare const createCheckmarkSVG: () => SVGSVGElement;
11
- /**
12
- * Updates an existing checkbox DOM (created by createCheckbox) to match the given checked state.
13
- * Use when the checkbox element is reused (e.g. from cache) and selection state changed.
14
- * @param container - Element that contains .st-checkbox-input and .st-checkbox-custom (the label or a parent)
15
- */
16
- export declare const updateCheckboxElement: (container: HTMLElement, checked: boolean) => void;
17
- export declare const createCheckbox: ({ checked, onChange, ariaLabel }: CreateCheckboxOptions) => {
18
- element: HTMLLabelElement;
19
- update: (newChecked: boolean) => void;
20
- destroy: () => void;
21
- };
@@ -1,26 +0,0 @@
1
- import HeaderObject from "../../types/HeaderObject";
2
- import { ColumnEditorSearchFunction, ColumnEditorConfig } from "../../types/ColumnEditorConfig";
3
- import { ColumnVisibilityState } from "../../types/ColumnVisibilityTypes";
4
- import { IconsConfig } from "../../types/IconsConfig";
5
- export interface CreateColumnEditorOptions {
6
- columnEditorText: string;
7
- editColumns: boolean;
8
- headers: HeaderObject[];
9
- open: boolean;
10
- searchEnabled: boolean;
11
- searchPlaceholder: string;
12
- searchFunction?: ColumnEditorSearchFunction;
13
- columnEditorConfig: ColumnEditorConfig;
14
- icons?: IconsConfig;
15
- essentialAccessors?: ReadonlySet<string>;
16
- resetColumns?: () => void;
17
- setHeaders: (headers: HeaderObject[]) => void;
18
- onColumnVisibilityChange?: (state: ColumnVisibilityState) => void;
19
- onColumnOrderChange?: (headers: HeaderObject[]) => void;
20
- setOpen: (open: boolean) => void;
21
- }
22
- export declare const createColumnEditor: (options: CreateColumnEditorOptions) => {
23
- update: (newOptions: Partial<CreateColumnEditorOptions>) => void;
24
- destroy: () => void;
25
- element: HTMLDivElement;
26
- };
@@ -1,23 +0,0 @@
1
- import HeaderObject from "../../types/HeaderObject";
2
- import { ColumnEditorSearchFunction, ColumnEditorConfig } from "../../types/ColumnEditorConfig";
3
- import { ColumnVisibilityState } from "../../types/ColumnVisibilityTypes";
4
- import { IconsConfig } from "../../types/IconsConfig";
5
- export interface CreateColumnEditorPopoutOptions {
6
- headers: HeaderObject[];
7
- open: boolean;
8
- searchEnabled: boolean;
9
- searchPlaceholder: string;
10
- searchFunction?: ColumnEditorSearchFunction;
11
- columnEditorConfig: ColumnEditorConfig;
12
- icons?: IconsConfig;
13
- essentialAccessors?: ReadonlySet<string>;
14
- setHeaders: (headers: HeaderObject[]) => void;
15
- onColumnVisibilityChange?: (state: ColumnVisibilityState) => void;
16
- onColumnOrderChange?: (headers: HeaderObject[]) => void;
17
- resetColumns?: () => void;
18
- }
19
- export declare const createColumnEditorPopout: (initialOptions: CreateColumnEditorPopoutOptions) => {
20
- element: HTMLDivElement;
21
- update: (newOptions: Partial<CreateColumnEditorPopoutOptions>) => void;
22
- destroy: () => void;
23
- };
@@ -1,41 +0,0 @@
1
- import HeaderObject from "../../types/HeaderObject";
2
- import { ColumnEditorConfig } from "../../types/ColumnEditorConfig";
3
- import { IconsConfig } from "../../types/IconsConfig";
4
- import { FlattenedHeader, HoveredSeparator } from "./columnEditorUtils";
5
- import { ColumnVisibilityState } from "../../types/ColumnVisibilityTypes";
6
- import { PanelSection } from "../pinnedColumnUtils";
7
- export interface CreateColumnEditorRowOptions {
8
- allHeaders: HeaderObject[];
9
- clearHoverSeparator?: () => void;
10
- depth: number;
11
- doesAnyHeaderHaveChildren: boolean;
12
- draggingRow: FlattenedHeader | null;
13
- getDraggingRow?: () => FlattenedHeader | null;
14
- getHoveredSeparator?: () => HoveredSeparator;
15
- expandedHeaders: Set<string>;
16
- flattenedHeaders: FlattenedHeader[];
17
- forceExpanded: boolean;
18
- header: HeaderObject;
19
- hoveredSeparator: HoveredSeparator;
20
- panelSection?: PanelSection;
21
- rowIndex: number;
22
- setDraggingRow: (row: FlattenedHeader | null) => void;
23
- setExpandedHeaders: (headers: Set<string>) => void;
24
- setHoveredSeparator: (value: HoveredSeparator) => void;
25
- columnEditorConfig: ColumnEditorConfig;
26
- /** Resolved table icons; `icons.drag` overrides the default column-editor drag handle. */
27
- icons?: IconsConfig;
28
- essentialAccessors?: ReadonlySet<string>;
29
- headers: HeaderObject[];
30
- setHeaders: (headers: HeaderObject[]) => void;
31
- onColumnVisibilityChange?: (state: ColumnVisibilityState) => void;
32
- onColumnOrderChange?: (headers: HeaderObject[]) => void;
33
- /** When set (e.g. after expand toggle), used with updateExpandIconState so the chevron animates like table cells. */
34
- previousExpandedHeaders?: ReadonlySet<string>;
35
- }
36
- export interface CreateColumnEditorRowResult {
37
- fragment: DocumentFragment;
38
- /** Run after the row fragment is connected to the document (e.g. listEl.appendChild). */
39
- scheduleExpandIconAnimation?: () => void;
40
- }
41
- export declare const createColumnEditorRow: (options: CreateColumnEditorRowOptions) => CreateColumnEditorRowResult;
@@ -1,14 +0,0 @@
1
- import HeaderObject from "../types/HeaderObject";
2
- import TableRow from "../types/TableRow";
3
- /**
4
- * Converts table data to CSV format
5
- */
6
- export declare const convertToCSV: (visibleRows: TableRow[], headers: HeaderObject[], includeHeadersInCSVExport?: boolean) => string;
7
- /**
8
- * Triggers a download of the CSV file
9
- */
10
- export declare const downloadCSV: (csvContent: string, filename?: string) => void;
11
- /**
12
- * Main export function that combines CSV conversion and download
13
- */
14
- export declare const exportTableToCSV: (visibleRows: TableRow[], headers: HeaderObject[], filename?: string, includeHeadersInCSVExport?: boolean) => void;
@@ -1,18 +0,0 @@
1
- /**
2
- * Utility functions for safe date handling to avoid timezone issues
3
- */
4
- /**
5
- * Safely parses a date string in YYYY-MM-DD format to a Date object at noon local time
6
- * This prevents timezone edge cases where midnight UTC becomes the previous day in local time
7
- */
8
- export declare const parseDateString: (dateString: string) => Date;
9
- /**
10
- * Normalizes a date to remove time component for accurate date-only comparison
11
- * Creates the date at noon to avoid timezone edge cases
12
- */
13
- export declare const normalizeDate: (date: Date) => Date;
14
- /**
15
- * Safely creates a Date object from various input types
16
- * Always creates dates at noon local time to avoid timezone issues
17
- */
18
- export declare const createSafeDate: (input: string | number | Date | null | undefined) => Date;
@@ -1,58 +0,0 @@
1
- /**
2
- * Helpers for the "external scroll parent" virtualization mode.
3
- *
4
- * When a consumer supplies `scrollParent` and the table has neither `height`
5
- * nor `maxHeight`, the table grows to its natural height inside the parent
6
- * and we look at the parent's scroll position / viewport to drive
7
- * virtualization and `onLoadMore`.
8
- */
9
- export type ScrollParentValue = HTMLElement | "window" | (() => HTMLElement | null) | undefined | null;
10
- export type ResolvedScrollParent = HTMLElement | Window | null;
11
- export interface ExternalScrollMetrics {
12
- /** Scroll offset translated into the table's own coordinate space, clamped to [0, tableTotalHeight]. */
13
- relativeScrollTop: number;
14
- /** Height of the table portion that is actually visible inside the parent viewport, in pixels. */
15
- visibleViewportHeight: number;
16
- /** Distance in pixels from the current visible-bottom edge to the table's bottom edge. */
17
- distanceFromTableBottom: number;
18
- /** Full pixel height of the table root element. */
19
- tableTotalHeight: number;
20
- /** Width of the parent viewport, in pixels. */
21
- viewportWidth: number;
22
- }
23
- /**
24
- * Resolve a `scrollParent` config value to a usable element or window reference.
25
- * Returns `null` if the value cannot be resolved this tick (e.g. a ref that
26
- * has not yet been attached). Never throws.
27
- */
28
- export declare const resolveScrollParent: (value: ScrollParentValue) => ResolvedScrollParent;
29
- /**
30
- * Returns true if external scroll mode should be active for the given props.
31
- * External mode is only enabled when no explicit height constraint is set;
32
- * `height` / `maxHeight` always win.
33
- */
34
- export declare const isExternalScrollActive: (scrollParent: ScrollParentValue, height: string | number | undefined, maxHeight: string | number | undefined) => boolean;
35
- /**
36
- * Compute scroll metrics translated into the table's coordinate space.
37
- *
38
- * The math: position the table's bounding rect within the parent's viewport rect,
39
- * then intersect with the visible band of the parent. The intersection's top edge
40
- * (relative to the table) is the effective `scrollTop` for virtualization, and the
41
- * intersection's height is the effective `clientHeight`.
42
- */
43
- export declare const getExternalScrollMetrics: (parent: ResolvedScrollParent, tableRoot: HTMLElement | null) => ExternalScrollMetrics | null;
44
- /**
45
- * Returns the raw scroll-top of the parent (used for direction tracking only).
46
- */
47
- export declare const getParentScrollTop: (parent: ResolvedScrollParent) => number;
48
- /**
49
- * Height of the parent's own viewport (window.innerHeight, or the element's
50
- * border-box height), independent of where the table sits inside it.
51
- *
52
- * Used as a provisional virtualization viewport before the table has been laid
53
- * out: at that point the table∩viewport intersection is 0, which would disable
54
- * virtualization and render every row at once. Seeding with the parent viewport
55
- * keeps virtualization active on the first paint; a later precise recompute
56
- * refines it. Returns 0 when the parent can't be measured.
57
- */
58
- export declare const getParentViewportHeight: (parent: ResolvedScrollParent) => number;
@@ -1,5 +0,0 @@
1
- import { FilterCondition } from "../types/FilterTypes";
2
- /**
3
- * Applies a filter condition to a cell value
4
- */
5
- export declare const applyFilterToValue: (cellValue: any, filter: FilterCondition) => boolean;
@@ -1,15 +0,0 @@
1
- import HeaderObject from "../../types/HeaderObject";
2
- import { FilterCondition } from "../../types/FilterTypes";
3
- export interface CreateBooleanFilterOptions {
4
- header: HeaderObject;
5
- currentFilter?: FilterCondition;
6
- onApplyFilter: (filter: FilterCondition) => void;
7
- onClearFilter: () => void;
8
- containerRef?: HTMLElement;
9
- mainBodyRef?: HTMLElement;
10
- }
11
- export declare const createBooleanFilter: (options: CreateBooleanFilterOptions) => {
12
- element: HTMLDivElement;
13
- update: (newOptions: Partial<CreateBooleanFilterOptions>) => void;
14
- destroy: () => void;
15
- };
@@ -1,20 +0,0 @@
1
- export interface CustomSelectOption {
2
- value: string;
3
- label: string;
4
- }
5
- export interface CreateCustomSelectOptions {
6
- value: string;
7
- onChange: (value: string) => void;
8
- options: CustomSelectOption[];
9
- placeholder?: string;
10
- className?: string;
11
- disabled?: boolean;
12
- containerRef?: HTMLElement;
13
- mainBodyRef?: HTMLElement;
14
- }
15
- export declare const createCustomSelect: (options: CreateCustomSelectOptions) => {
16
- element: HTMLDivElement;
17
- update: (newOptions: Partial<CreateCustomSelectOptions>) => void;
18
- destroy: () => void;
19
- setOpen: (newOpen: boolean) => void;
20
- };
@@ -1,15 +0,0 @@
1
- import HeaderObject from "../../types/HeaderObject";
2
- import { FilterCondition } from "../../types/FilterTypes";
3
- export interface CreateDateFilterOptions {
4
- header: HeaderObject;
5
- currentFilter?: FilterCondition;
6
- onApplyFilter: (filter: FilterCondition) => void;
7
- onClearFilter: () => void;
8
- containerRef?: HTMLElement;
9
- mainBodyRef?: HTMLElement;
10
- }
11
- export declare const createDateFilter: (options: CreateDateFilterOptions) => {
12
- element: HTMLDivElement;
13
- update: (newOptions: Partial<CreateDateFilterOptions>) => void;
14
- destroy: () => void;
15
- };
@@ -1,10 +0,0 @@
1
- export interface CreateDatePickerOptions {
2
- onChange: (date: Date) => void;
3
- onClose?: () => void;
4
- value: Date;
5
- }
6
- export declare const createDatePicker: (options: CreateDatePickerOptions) => {
7
- element: HTMLDivElement;
8
- update: (newOptions: Partial<CreateDatePickerOptions>) => void;
9
- destroy: () => void;
10
- };