@simple-table/react 4.0.1 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,33 +0,0 @@
1
- import HeaderObject, { Accessor } from "../types/HeaderObject";
2
- interface AutoScaleConfig {
3
- autoExpandColumns: boolean;
4
- containerWidth: number;
5
- pinnedLeftWidth: number;
6
- pinnedRightWidth: number;
7
- mainBodyRef: {
8
- current: HTMLDivElement | null;
9
- };
10
- isResizing?: boolean;
11
- /**
12
- * Currently collapsed header accessors. Auto-scale must only account for the
13
- * leaf columns that are actually visible for the current collapsed state —
14
- * otherwise it sums the widths of hidden child columns and under-expands,
15
- * leaving empty space on the right.
16
- */
17
- collapsedHeaders?: Set<Accessor>;
18
- }
19
- type HeaderUpdateCallback = (headers: HeaderObject[]) => void;
20
- export declare const applyAutoScaleToHeaders: (headers: HeaderObject[], options: AutoScaleConfig) => HeaderObject[];
21
- export declare class AutoScaleManager {
22
- private config;
23
- private onHeadersUpdate;
24
- private isResizingTracker;
25
- private containerWidthTracker;
26
- constructor(config: AutoScaleConfig, onHeadersUpdate: HeaderUpdateCallback);
27
- updateConfig(config: Partial<AutoScaleConfig>): void;
28
- private triggerAutoScale;
29
- applyAutoScale(headers: HeaderObject[]): HeaderObject[];
30
- setHeaders(headersOrUpdater: HeaderObject[] | ((prev: HeaderObject[]) => HeaderObject[]), currentHeaders: HeaderObject[]): HeaderObject[];
31
- destroy(): void;
32
- }
33
- export {};
@@ -1,84 +0,0 @@
1
- import HeaderObject from "../types/HeaderObject";
2
- export interface DimensionManagerConfig {
3
- effectiveHeaders: HeaderObject[];
4
- headerHeight?: number;
5
- rowHeight: number;
6
- height?: string | number;
7
- maxHeight?: string | number;
8
- totalRowCount: number;
9
- footerHeight?: number;
10
- containerElement?: HTMLElement;
11
- /**
12
- * Visible portion of the table inside an external scroll parent (in pixels).
13
- * Drives virtualization when neither `height` nor `maxHeight` is set.
14
- */
15
- externalViewportHeight?: number;
16
- }
17
- export interface DimensionManagerState {
18
- containerWidth: number;
19
- calculatedHeaderHeight: number;
20
- maxHeaderDepth: number;
21
- contentHeight: number | undefined;
22
- }
23
- type StateChangeCallback = (state: DimensionManagerState) => void;
24
- /**
25
- * Wait this long after the last container-width ResizeObserver tick before
26
- * notifying subscribers. Coalesces CSS-transition / animated layout shifts
27
- * (e.g. a collapsible nav) into a single trailing update instead of one full
28
- * table render per animation frame.
29
- *
30
- * Kept above typical frame-budget jank (~50–80ms) so a hitch mid-transition
31
- * does not look like "animation ended" and fire an extra full relayout.
32
- */
33
- export declare const CONTAINER_RESIZE_NOTIFY_DEBOUNCE_MS = 100;
34
- /**
35
- * After a trailing notify, keep the burst open this long. A jank-sized quiet
36
- * gap mid-animation must not start a fresh burst (which would allow another
37
- * pair of notifies and thrash subscribers).
38
- */
39
- export declare const CONTAINER_RESIZE_BURST_END_MS = 150;
40
- export declare class DimensionManager {
41
- private config;
42
- private state;
43
- private subscribers;
44
- private resizeObserver;
45
- private rafId;
46
- private resizeNotifyDebounceId;
47
- private resizeBurstEndId;
48
- /** Notifies emitted in the current continuous resize burst (capped at 2). */
49
- private resizeBurstNotifyCount;
50
- /** True when a 3rd+ trailing tick was suppressed; flush latest width on burst end. */
51
- private resizeBurstNeedsFinalFlush;
52
- /** Set when applyContainerWidthSync updates state before any subscriber exists. */
53
- private initialNotifyPending;
54
- constructor(config: DimensionManagerConfig);
55
- private getHeaderDepth;
56
- private calculateMaxHeaderDepth;
57
- private calculateHeaderHeight;
58
- private convertHeightToPixels;
59
- private calculateContentHeight;
60
- private cancelPendingResizeNotify;
61
- private cancelResizeBurstEnd;
62
- private scheduleResizeBurstEnd;
63
- /**
64
- * Trailing debounce for animated / continuous container resizes.
65
- *
66
- * Per burst (continuous RO ticks separated by less than {@link CONTAINER_RESIZE_BURST_END_MS}):
67
- * - 1st quiet gap → notify immediately (sole update, or mid-animation pass)
68
- * - later quiet gaps → defer to burst-end so subscribers always see the final
69
- * width without a 3rd+ notify when frame timing is janky
70
- */
71
- private scheduleResizeNotify;
72
- private observeContainer;
73
- private applyContainerWidthSync;
74
- updateConfig(config: Partial<DimensionManagerConfig>): void;
75
- subscribe(callback: StateChangeCallback): () => void;
76
- private notifySubscribers;
77
- getState(): DimensionManagerState;
78
- getContainerWidth(): number;
79
- getCalculatedHeaderHeight(): number;
80
- getMaxHeaderDepth(): number;
81
- getContentHeight(): number | undefined;
82
- destroy(): void;
83
- }
84
- export {};
@@ -1,44 +0,0 @@
1
- import HeaderObject, { Accessor } from "../types/HeaderObject";
2
- export declare const getHeaderIndexPath: (headers: HeaderObject[], targetAccessor: Accessor, currentPath?: number[]) => number[] | null;
3
- export declare const getSiblingArray: (headers: HeaderObject[], indexPath: number[]) => HeaderObject[];
4
- export declare const setSiblingArray: (headers: HeaderObject[], indexPath: number[], newSiblings: HeaderObject[]) => HeaderObject[];
5
- export declare const getHeaderSection: (header: HeaderObject, rootHeaders: HeaderObject[]) => "left" | "main" | "right";
6
- export declare const updateHeaderPinnedProperty: (header: HeaderObject, targetSection: "left" | "main" | "right") => HeaderObject;
7
- export declare function swapHeaders(headers: HeaderObject[], draggedPath: number[], hoveredPath: number[]): {
8
- newHeaders: HeaderObject[];
9
- emergencyBreak: boolean;
10
- };
11
- export declare function insertHeaderAcrossSections({ headers, draggedHeader, hoveredHeader, }: {
12
- headers: HeaderObject[];
13
- draggedHeader: HeaderObject;
14
- hoveredHeader: HeaderObject;
15
- }): {
16
- newHeaders: HeaderObject[];
17
- emergencyBreak: boolean;
18
- };
19
- export interface DragHandlerManagerConfig {
20
- headers: HeaderObject[];
21
- essentialAccessors?: ReadonlySet<string>;
22
- onTableHeaderDragEnd: (newHeaders: HeaderObject[]) => void;
23
- onColumnOrderChange?: (newHeaders: HeaderObject[]) => void;
24
- onHeadersChange?: (newHeaders: HeaderObject[]) => void;
25
- }
26
- export declare class DragHandlerManager {
27
- private config;
28
- private draggedHeader;
29
- private hoveredHeader;
30
- private prevUpdateTime;
31
- private prevDraggingPosition;
32
- private prevHeadersTracker;
33
- constructor(config: DragHandlerManagerConfig);
34
- updateConfig(config: Partial<DragHandlerManagerConfig>): void;
35
- getDraggedHeader(): HeaderObject | null;
36
- getHoveredHeader(): HeaderObject | null;
37
- handleDragStart(header: HeaderObject): void;
38
- handleDragOver({ event, hoveredHeader, }: {
39
- event: DragEvent;
40
- hoveredHeader: HeaderObject;
41
- }): void;
42
- handleDragEnd(): void;
43
- destroy(): void;
44
- }
@@ -1,36 +0,0 @@
1
- import { TableFilterState, FilterCondition } from "../types/FilterTypes";
2
- import Row from "../types/Row";
3
- import HeaderObject, { Accessor } from "../types/HeaderObject";
4
- export interface FilterManagerConfig {
5
- rows: Row[];
6
- headers: HeaderObject[];
7
- externalFilterHandling: boolean;
8
- onFilterChange?: (filters: TableFilterState) => void;
9
- announce?: (message: string) => void;
10
- }
11
- export interface FilterManagerState {
12
- filters: TableFilterState;
13
- filteredRows: Row[];
14
- }
15
- type StateChangeCallback = (state: FilterManagerState) => void;
16
- export declare class FilterManager {
17
- private config;
18
- private state;
19
- private subscribers;
20
- private headerLookup;
21
- constructor(config: FilterManagerConfig);
22
- private updateHeaderLookup;
23
- private computeFilteredRows;
24
- updateConfig(config: Partial<FilterManagerConfig>): void;
25
- subscribe(callback: StateChangeCallback): () => void;
26
- private notifySubscribers;
27
- updateFilter(filter: FilterCondition): void;
28
- clearFilter(accessor: Accessor): void;
29
- clearAllFilters(): void;
30
- computeFilteredRowsPreview(filter: FilterCondition): Row[];
31
- getState(): FilterManagerState;
32
- getFilters(): TableFilterState;
33
- getFilteredRows(): Row[];
34
- destroy(): void;
35
- }
36
- export {};
@@ -1,35 +0,0 @@
1
- import type HeaderObject from "../types/HeaderObject";
2
- import type { Accessor } from "../types/HeaderObject";
3
- import type Row from "../types/Row";
4
- import type { PivotConfig } from "../types/PivotTypes";
5
- export interface PivotManagerConfig {
6
- sourceRows: Row[];
7
- fieldHeaders: HeaderObject[];
8
- pivot: PivotConfig | null;
9
- }
10
- export interface PivotManagerState {
11
- active: boolean;
12
- pivotedRows: Row[];
13
- headers: HeaderObject[];
14
- rowGrouping?: Accessor[];
15
- pivot: PivotConfig | null;
16
- }
17
- type StateChangeCallback = (state: PivotManagerState) => void;
18
- export declare class PivotManager {
19
- private config;
20
- private state;
21
- private subscribers;
22
- private cacheKey;
23
- constructor(config: PivotManagerConfig);
24
- private buildCacheKey;
25
- private computeState;
26
- getState(): PivotManagerState;
27
- isActive(): boolean;
28
- getPivot(): PivotConfig | null;
29
- updateConfig(partial: Partial<PivotManagerConfig>): void;
30
- setPivot(pivot: PivotConfig | null): void;
31
- subscribe(callback: StateChangeCallback): () => void;
32
- private notifySubscribers;
33
- destroy(): void;
34
- }
35
- export {};
@@ -1,56 +0,0 @@
1
- import HeaderObject, { Accessor } from "../types/HeaderObject";
2
- import Row from "../types/Row";
3
- import RowState from "../types/RowState";
4
- import TableRow from "../types/TableRow";
5
- import { HeightOffsets } from "../utils/infiniteScrollUtils";
6
- import { CustomTheme } from "../types/CustomTheme";
7
- import { GetRowId } from "../types/GetRowId";
8
- export interface RowManagerConfig {
9
- rows: Row[];
10
- headers: HeaderObject[];
11
- rowGrouping?: Accessor[];
12
- getRowId?: GetRowId;
13
- rowHeight: number;
14
- headerHeight: number;
15
- customTheme: CustomTheme;
16
- hasLoadingRenderer: boolean;
17
- hasErrorRenderer: boolean;
18
- hasEmptyRenderer: boolean;
19
- }
20
- export interface RowManagerState {
21
- expandedRows: Map<string, number>;
22
- collapsedRows: Map<string, number>;
23
- expandedDepths: Set<number>;
24
- rowStateMap: Map<string | number, RowState>;
25
- aggregatedRows: Row[];
26
- flattenedRows: TableRow[];
27
- heightOffsets: HeightOffsets;
28
- paginatableRows: TableRow[];
29
- parentEndPositions: number[];
30
- }
31
- type StateChangeCallback = (state: RowManagerState) => void;
32
- export declare class RowManager {
33
- private config;
34
- private state;
35
- private subscribers;
36
- constructor(config: RowManagerConfig);
37
- private getAllAggregationHeaders;
38
- private calculateAggregation;
39
- private computeAggregatedRows;
40
- private computeFlattenedRows;
41
- updateConfig(config: Partial<RowManagerConfig>): void;
42
- subscribe(callback: StateChangeCallback): () => void;
43
- private notifySubscribers;
44
- setExpandedRows(expandedRows: Map<string, number>): void;
45
- setCollapsedRows(collapsedRows: Map<string, number>): void;
46
- setExpandedDepths(expandedDepths: Set<number>): void;
47
- setRowStateMap(rowStateMap: Map<string | number, RowState>): void;
48
- getState(): RowManagerState;
49
- getAggregatedRows(): Row[];
50
- getFlattenedRows(): TableRow[];
51
- getHeightOffsets(): HeightOffsets;
52
- getPaginatableRows(): TableRow[];
53
- getParentEndPositions(): number[];
54
- destroy(): void;
55
- }
56
- export {};
@@ -1,72 +0,0 @@
1
- import TableRow from "../types/TableRow";
2
- import Row from "../types/Row";
3
- import RowSelectionChangeProps from "../types/RowSelectionChangeProps";
4
- import type { RowSelectionMode } from "../types/RowSelectionMode";
5
- export interface RowSelectionManagerConfig {
6
- tableRows: TableRow[];
7
- onRowSelectionChange?: (props: RowSelectionChangeProps) => void;
8
- enableRowSelection?: boolean;
9
- rowSelectionMode?: RowSelectionMode;
10
- selectRowOnClick?: boolean;
11
- showRowSelectionColumn?: boolean;
12
- /** When true, Arrow/Home/End/Ctrl+A are left to SelectionManager; Space still toggles rows. */
13
- selectableCells?: boolean;
14
- /** Table root element used to decide whether keyboard events apply. */
15
- tableRoot?: HTMLElement | null;
16
- }
17
- export interface RowSelectionManagerState {
18
- selectedRows: Set<string>;
19
- selectedRowCount: number;
20
- selectedRowsData: Row[];
21
- /** Keyboard focus / navigation target row id */
22
- activeRowId: string | null;
23
- }
24
- type StateChangeCallback = (state: RowSelectionManagerState) => void;
25
- export declare class RowSelectionManager {
26
- private config;
27
- private state;
28
- private subscribers;
29
- /** Anchor for Shift+range selection */
30
- private anchorRowId;
31
- private keydownHandler;
32
- constructor(config: RowSelectionManagerConfig);
33
- updateConfig(config: Partial<RowSelectionManagerConfig>): void;
34
- private getMode;
35
- private updateDerivedState;
36
- subscribe(callback: StateChangeCallback): () => void;
37
- private notifySubscribers;
38
- private fireChange;
39
- private applySelection;
40
- isRowSelected(rowId: string): boolean;
41
- areAllRowsSelected(): boolean;
42
- getSelectedRows(): Set<string>;
43
- getSelectedRowCount(): number;
44
- getSelectedRowsData(): Row[];
45
- getRow(rowId: string): Row | undefined;
46
- getActiveRowId(): string | null;
47
- setActiveRowId(rowId: string | null): void;
48
- setSelectedRows(selectedRows: Set<string>): void;
49
- /**
50
- * Set a row's selected state (does not toggle). Respects single/multiple mode.
51
- */
52
- handleRowSelect(rowId: string, isSelected: boolean): void;
53
- selectRow(rowId: string): void;
54
- deselectRow(rowId: string): void;
55
- handleSelectAll(isSelected: boolean): void;
56
- handleToggleRow(rowId: string): void;
57
- /**
58
- * Click-to-select: multiple toggles; single replaces.
59
- */
60
- handleRowClickSelect(rowId: string): void;
61
- clearSelection(): void;
62
- getState(): RowSelectionManagerState;
63
- private setupKeyboardNavigation;
64
- private isEventInsideTable;
65
- private isTypingInFormField;
66
- private findRowIndex;
67
- private resolveActiveRowId;
68
- private moveActiveRow;
69
- private handleKeyDown;
70
- destroy(): void;
71
- }
72
- export {};
@@ -1,38 +0,0 @@
1
- export interface ScrollManagerConfig {
2
- onLoadMore?: () => void;
3
- infiniteScrollThreshold?: number;
4
- }
5
- export interface ScrollManagerState {
6
- scrollTop: number;
7
- scrollLeft: number;
8
- scrollDirection: "up" | "down" | "none";
9
- isScrolling: boolean;
10
- }
11
- type StateChangeCallback = (state: ScrollManagerState) => void;
12
- /**
13
- * Manages vertical scroll state (scrollTop, direction, isScrolling) and infinite scroll.
14
- * Horizontal header/body/scrollbar sync is handled by SectionScrollController.
15
- */
16
- export declare class ScrollManager {
17
- private config;
18
- private state;
19
- private subscribers;
20
- private lastScrollTop;
21
- private scrollTimeoutId;
22
- /** Coalesce scroll-driven subscriber notifications to one rAF (avoids sync storms + reflow). */
23
- private notifySubscribersRafId;
24
- constructor(config: ScrollManagerConfig);
25
- updateConfig(config: Partial<ScrollManagerConfig>): void;
26
- subscribe(callback: StateChangeCallback): () => void;
27
- private notifySubscribers;
28
- private scheduleNotifySubscribersFromScroll;
29
- handleScroll(scrollTop: number, scrollLeft: number, containerHeight: number, contentHeight: number): void;
30
- setScrolling(isScrolling: boolean): void;
31
- getState(): ScrollManagerState;
32
- getScrollTop(): number;
33
- getScrollLeft(): number;
34
- getScrollDirection(): "up" | "down" | "none";
35
- isScrolling(): boolean;
36
- destroy(): void;
37
- }
38
- export {};
@@ -1,74 +0,0 @@
1
- export type SectionId = "pinned-left" | "main" | "pinned-right";
2
- export type SectionPaneRole = "sticky" | "scrollbar" | "header" | "body";
3
- export interface SectionScrollControllerConfig {
4
- /** Heavy body virtualization. Throttled to every {@link VIRTUALIZATION_THRESHOLD_PX}px. */
5
- onMainSectionScrollLeft?: (scrollLeft: number) => void;
6
- }
7
- /**
8
- * Single controller for horizontal scroll sync across all four panes per section:
9
- * sticky parent, horizontal scrollbar segment, header, and body.
10
- * Scrolling any one pane updates the other three in that section.
11
- * All four panes must have the same scroll width (enforced by renderers).
12
- */
13
- export declare class SectionScrollController {
14
- private scrollLeftBySection;
15
- private panesBySection;
16
- private scrollHandlers;
17
- /** Non-passive touchmove handlers on header panes that cancel iOS touch scrolling. */
18
- private headerTouchMoveHandlers;
19
- private config;
20
- /** Guard to avoid re-entrancy when we programmatically set scrollLeft on other panes */
21
- private isSyncing;
22
- /** Last scrollLeft at which we ran main-section virtualization; used to run heavy ops only every N px. */
23
- private lastMainVirtualizationScrollLeft;
24
- /**
25
- * True while a touch-driven scroll (including post-release momentum) is in progress on a body
26
- * pane. While true, we must not write scrollLeft to scroll-container followers (the horizontal
27
- * scrollbar), because on iOS that cancels the body's inertial momentum. Such followers are
28
- * reconciled once scrolling settles.
29
- */
30
- private isTouchScrolling;
31
- /** Scroll-idle timer used to detect the end of a touch-driven scroll (incl. momentum). */
32
- private touchSettleTimeoutId;
33
- constructor(config?: SectionScrollControllerConfig);
34
- updateConfig(config: Partial<SectionScrollControllerConfig>): void;
35
- /**
36
- * Register a pane (sticky, scrollbar, header, or body) for a section.
37
- * When any registered pane scrolls, the others in the same section are updated.
38
- * If a pane with the same role was already registered (e.g. after re-render), it is replaced.
39
- */
40
- registerPane(sectionId: SectionId, element: HTMLElement, role: SectionPaneRole): void;
41
- /**
42
- * Unregister a pane (e.g. when section is removed or re-created).
43
- */
44
- unregisterPane(sectionId: SectionId, element: HTMLElement): void;
45
- /**
46
- * Unregister all panes for a section (e.g. on cleanup).
47
- */
48
- unregisterSection(sectionId: SectionId): void;
49
- /**
50
- * Set scroll position for a section. Updates state and all registered panes.
51
- * Used when a pane fires scroll and when restoring after render.
52
- */
53
- setSectionScrollLeft(sectionId: SectionId, value: number): void;
54
- getSectionScrollLeft(sectionId: SectionId): number;
55
- /**
56
- * Restore scroll position to all registered panes from stored state (e.g. after render).
57
- */
58
- restoreAll(): void;
59
- private addScrollListener;
60
- /**
61
- * Track touch-driven scrolling on a body pane. While a touch (and its post-release momentum) is
62
- * active, scroll-container followers (the horizontal scrollbar) are not written, to preserve iOS
63
- * momentum; they are reconciled when scrolling settles.
64
- */
65
- private addTouchTracking;
66
- /**
67
- * (Re)arm the scroll-idle timer that marks the end of a touch-driven scroll. When it fires (no
68
- * scroll for the idle window, i.e. momentum has stopped), reconcile scroll-container followers
69
- * (the scrollbar) to the final position, which we deliberately skipped during the touch scroll.
70
- */
71
- private scheduleTouchSettle;
72
- private removeScrollListener;
73
- destroy(): void;
74
- }