simple-table-core 4.1.5 → 4.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -7
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/styles.css +1 -1
- package/dist/consts/general-consts.d.ts +0 -4
- package/dist/core/SimpleTableVanilla.d.ts +19 -272
- package/dist/core/api/TableAPIContext.d.ts +74 -0
- package/dist/core/api/TableAPIImpl.d.ts +2 -74
- package/dist/core/api/buildTableAPIContext.d.ts +61 -0
- package/dist/core/dev/UnvirtualizedRowsWarning.d.ts +20 -0
- package/dist/core/initialization/createDataManagers.d.ts +37 -0
- package/dist/core/initialization/wireMountManagers.d.ts +43 -0
- package/dist/core/pipeline/syncPivotPipeline.d.ts +41 -0
- package/dist/core/rendering/RenderContext.d.ts +125 -0
- package/dist/core/rendering/RenderOrchestrator.d.ts +8 -116
- package/dist/core/rendering/SectionRenderer.d.ts +21 -15
- package/dist/core/rendering/TableRenderer.d.ts +6 -95
- package/dist/core/rendering/TableRendererDeps.d.ts +98 -0
- package/dist/core/rendering/buildRenderContext.d.ts +94 -0
- package/dist/core/rendering/cellRenderContexts.d.ts +11 -0
- package/dist/core/rendering/renderBodySections.d.ts +14 -0
- package/dist/core/rendering/renderHeaderSections.d.ts +13 -0
- package/dist/core/rendering/sectionCaches.d.ts +24 -0
- package/dist/core/rendering/sectionExtraRows.d.ts +19 -0
- package/dist/core/rendering/sectionLayout.d.ts +42 -0
- package/dist/core/vanilla/VanillaLiveHost.d.ts +103 -0
- package/dist/core/vanilla/applyTableUpdate.d.ts +10 -0
- package/dist/core/vanilla/createVanillaRenderContext.d.ts +4 -0
- package/dist/core/vanilla/destroyTableResources.d.ts +26 -0
- package/dist/core/vanilla/syncRowSelectionManager.d.ts +13 -0
- package/dist/core/vanilla/tableContainers.d.ts +5 -0
- package/dist/core/vanilla/toTableAPIContextHost.d.ts +3 -0
- package/dist/hooks/contentHeight.d.ts +3 -1
- package/dist/hooks/expandedDepths.d.ts +4 -3
- package/dist/hooks/scrollbarWidth.d.ts +0 -43
- package/dist/hooks/useAggregatedRows.d.ts +0 -2
- package/dist/icons/CloseIcon.d.ts +2 -0
- package/dist/icons/index.d.ts +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.es.js +1 -1
- package/dist/managers/AccordionController.d.ts +39 -0
- package/dist/managers/AnimationCoordinator.d.ts +15 -1
- package/dist/managers/AutoSizeManager.d.ts +64 -0
- package/dist/managers/CellSlideAnimator.d.ts +54 -0
- package/dist/managers/DragHandlerManager.d.ts +4 -26
- package/dist/managers/ExternalScrollController.d.ts +68 -0
- package/dist/managers/PivotManager.d.ts +0 -2
- package/dist/managers/ScrollRenderCoalescer.d.ts +32 -0
- package/dist/managers/SelectionManager/mouseUtils.d.ts +3 -3
- package/dist/styles.css +1 -1
- package/dist/types/ColumnEditorCustomRendererProps.d.ts +5 -0
- package/dist/types/PivotTypes.d.ts +1 -8
- package/dist/types/SimpleTableConfig.d.ts +3 -1
- package/dist/types/SimpleTableProps.d.ts +8 -2
- package/dist/types/TableAPI.d.ts +2 -2
- package/dist/utils/accordionAnimation.d.ts +0 -5
- package/dist/utils/bodyCell/editing.d.ts +1 -1
- package/dist/utils/bodyCell/editors/booleanDropdown.d.ts +1 -1
- package/dist/utils/bodyCell/editors/datePicker.d.ts +1 -1
- package/dist/utils/bodyCell/editors/enumDropdown.d.ts +1 -1
- package/dist/utils/bodyCell/selection.d.ts +0 -1
- package/dist/utils/bodyCell/styling.d.ts +2 -0
- package/dist/utils/cellScrollUtils.d.ts +1 -1
- package/dist/utils/cellUtils.d.ts +0 -4
- package/dist/utils/collapseUtils.d.ts +0 -10
- package/dist/utils/columnEditor/createColumnEditor.d.ts +6 -0
- package/dist/utils/columnEditor/createColumnEditorPopout.d.ts +6 -0
- package/dist/utils/columnEditor/createPivotPanel.d.ts +16 -0
- package/dist/utils/externalScroll.d.ts +0 -10
- package/dist/utils/filters/createDropdown.d.ts +2 -0
- package/dist/utils/formatters.d.ts +0 -2
- package/dist/utils/headerCell/eventTracking.d.ts +2 -2
- package/dist/utils/headerCell/styling.d.ts +0 -1
- package/dist/utils/headerWidthUtils.d.ts +2 -2
- package/dist/utils/infiniteScrollUtils.d.ts +0 -1
- package/dist/utils/parkAndStagger.d.ts +44 -0
- package/dist/utils/resizeUtils/domUpdates.d.ts +1 -1
- package/dist/utils/resizeUtils/maxWidth.d.ts +2 -1
- package/dist/utils/rowSelectionUtils.d.ts +0 -4
- package/dist/utils/rowSeparatorRenderer.d.ts +0 -1
- package/dist/utils/rowUtils.d.ts +1 -27
- package/dist/utils/setAbsoluteCellPosition.d.ts +31 -0
- package/dist/utils/stateRowRenderer.d.ts +0 -1
- package/dist/utils/tableDomScope.d.ts +20 -0
- package/package.json +4 -3
- package/src/styles/base.css +144 -147
- package/dist/managers/ColumnManager.d.ts +0 -42
- package/dist/managers/RowManager.d.ts +0 -56
- package/dist/managers/TableManager.d.ts +0 -72
- package/dist/types/BoundingBox.d.ts +0 -11
- package/dist/types/DragHandlerProps.d.ts +0 -14
- package/dist/types/OnSortProps.d.ts +0 -3
- package/dist/types/SharedTableProps.d.ts +0 -24
- package/dist/types/TableBodyProps.d.ts +0 -20
- package/dist/types/TableHeaderProps.d.ts +0 -17
- package/dist/types/TableHeaderSectionProps.d.ts +0 -19
- package/dist/types/TableRowProps.d.ts +0 -29
- package/dist/utils/columnIndicesUtils.d.ts +0 -15
- package/dist/utils/columnVirtualizationUtils.d.ts +0 -128
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type ColumnDef from "../../types/ColumnDef";
|
|
2
|
+
import type { Accessor } from "../../types/ColumnDef";
|
|
3
|
+
import type { SimpleTableConfig } from "../../types/SimpleTableConfig";
|
|
4
|
+
import type { CustomTheme } from "../../types/CustomTheme";
|
|
5
|
+
import type Row from "../../types/Row";
|
|
6
|
+
import type { PivotManager } from "../../managers/PivotManager";
|
|
7
|
+
import type { FilterManager } from "../../managers/FilterManager";
|
|
8
|
+
import type { SortManager } from "../../managers/SortManager";
|
|
9
|
+
import type { SelectionManager } from "../../managers/SelectionManager";
|
|
10
|
+
import type { DimensionManager } from "../../managers/DimensionManager";
|
|
11
|
+
import type ExpandedDepthsManager from "../../hooks/expandedDepths";
|
|
12
|
+
import type { RenderOrchestrator } from "../rendering/RenderOrchestrator";
|
|
13
|
+
/** Pivot emits a flat matrix, so consumer row grouping is off while pivot is active. */
|
|
14
|
+
export declare const getEffectiveRowGrouping: (pivotActive: boolean | undefined, rowGrouping: Accessor[] | undefined) => Accessor[] | undefined;
|
|
15
|
+
export interface PivotPipelineInput {
|
|
16
|
+
pivotManager: PivotManager;
|
|
17
|
+
filterManager: FilterManager | null;
|
|
18
|
+
sortManager: SortManager | null;
|
|
19
|
+
selectionManager: SelectionManager | null;
|
|
20
|
+
dimensionManager: DimensionManager | null;
|
|
21
|
+
expandedDepthsManager: ExpandedDepthsManager | null;
|
|
22
|
+
renderOrchestrator: RenderOrchestrator;
|
|
23
|
+
config: SimpleTableConfig;
|
|
24
|
+
customTheme: CustomTheme;
|
|
25
|
+
localRows: Row[];
|
|
26
|
+
pristineDefaultHeaders: ColumnDef[];
|
|
27
|
+
headers: ColumnDef[];
|
|
28
|
+
essentialAccessors: Set<string>;
|
|
29
|
+
collapsedHeaders: Set<Accessor>;
|
|
30
|
+
filteredSourceRows?: Row[];
|
|
31
|
+
}
|
|
32
|
+
export interface PivotPipelineResult {
|
|
33
|
+
headers: ColumnDef[];
|
|
34
|
+
essentialAccessors: Set<string>;
|
|
35
|
+
collapsedHeaders: Set<Accessor>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Recomputes pivot from filtered source rows and updates sort, selection, and
|
|
39
|
+
* dimension managers. When pivot is off, sort sees the filtered source rows.
|
|
40
|
+
*/
|
|
41
|
+
export declare const syncPivotPipeline: (input: PivotPipelineInput) => PivotPipelineResult;
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { SimpleTableConfig } from "../../types/SimpleTableConfig";
|
|
2
|
+
import { CustomTheme } from "../../types/CustomTheme";
|
|
3
|
+
import ColumnDef, { Accessor } from "../../types/ColumnDef";
|
|
4
|
+
import type { PivotConfig } from "../../types/PivotTypes";
|
|
5
|
+
import Row from "../../types/Row";
|
|
6
|
+
import RowState from "../../types/RowState";
|
|
7
|
+
import { DimensionManager } from "../../managers/DimensionManager";
|
|
8
|
+
import { ScrollManager } from "../../managers/ScrollManager";
|
|
9
|
+
import type { SectionScrollController } from "../../managers/SectionScrollController";
|
|
10
|
+
import { SortManager } from "../../managers/SortManager";
|
|
11
|
+
import { FilterManager } from "../../managers/FilterManager";
|
|
12
|
+
import { SelectionManager } from "../../managers/SelectionManager";
|
|
13
|
+
import { RowSelectionManager } from "../../managers/RowSelectionManager";
|
|
14
|
+
import type { AnimationCoordinator } from "../../managers/AnimationCoordinator";
|
|
15
|
+
import type { AccordionAxis } from "../../utils/accordionAnimation";
|
|
16
|
+
import type { NestedTableFactory } from "../../utils/nestedGridRowRenderer";
|
|
17
|
+
import { ResolvedIcons } from "../initialization/TableInitializer";
|
|
18
|
+
export interface RenderContext {
|
|
19
|
+
/**
|
|
20
|
+
* Active accordion animation axis for this render. Set on row-grouping or
|
|
21
|
+
* nested-column collapse/expand toggles. Cell renderers use it to initialize
|
|
22
|
+
* incoming cells at zero size in the named axis so the CSS size transition
|
|
23
|
+
* can grow them while sibling cells FLIP into place.
|
|
24
|
+
*/
|
|
25
|
+
accordionAxis?: AccordionAxis;
|
|
26
|
+
animationCoordinator?: AnimationCoordinator;
|
|
27
|
+
cellRegistry: Map<string, any>;
|
|
28
|
+
collapsedHeaders: Set<Accessor>;
|
|
29
|
+
collapsedRows: Map<string, number>;
|
|
30
|
+
config: SimpleTableConfig;
|
|
31
|
+
customTheme: CustomTheme;
|
|
32
|
+
dimensionManager: DimensionManager | null;
|
|
33
|
+
draggedHeaderRef: {
|
|
34
|
+
current: ColumnDef | null;
|
|
35
|
+
};
|
|
36
|
+
effectiveHeaders: ColumnDef[];
|
|
37
|
+
essentialAccessors: Set<string>;
|
|
38
|
+
expandedDepths: Set<number>;
|
|
39
|
+
expandedRows: Map<string, number>;
|
|
40
|
+
filterManager: FilterManager | null;
|
|
41
|
+
getCollapsedRows: () => Map<string, number>;
|
|
42
|
+
getCollapsedHeaders?: () => Set<Accessor>;
|
|
43
|
+
getExpandedRows: () => Map<string, number>;
|
|
44
|
+
getHeaders: () => ColumnDef[];
|
|
45
|
+
/** Last ingested column definitions — the reset target for the column editor's reset button. */
|
|
46
|
+
getPristineDefaultHeaders: () => ColumnDef[];
|
|
47
|
+
getPivot: () => PivotConfig | null;
|
|
48
|
+
setPivot: (pivot: PivotConfig | null) => void;
|
|
49
|
+
getRowStateMap: () => Map<string | number, RowState>;
|
|
50
|
+
headerRegistry: Map<string, any>;
|
|
51
|
+
headers: ColumnDef[];
|
|
52
|
+
/**
|
|
53
|
+
* Unique id for this table instance. Scopes row-hover cell tracking so
|
|
54
|
+
* multiple tables on one page with overlapping rowIds don't cross-hover.
|
|
55
|
+
*/
|
|
56
|
+
hoverScopeId: string;
|
|
57
|
+
hoveredHeaderRef: {
|
|
58
|
+
current: ColumnDef | null;
|
|
59
|
+
};
|
|
60
|
+
internalIsLoading: boolean;
|
|
61
|
+
isResizing: boolean;
|
|
62
|
+
localRows: Row[];
|
|
63
|
+
/** Injected factory for nested grid tables (breaks the SimpleTableVanilla import cycle). */
|
|
64
|
+
createNestedTable?: NestedTableFactory;
|
|
65
|
+
mainBodyRef: {
|
|
66
|
+
current: HTMLDivElement | null;
|
|
67
|
+
};
|
|
68
|
+
mainHeaderRef: {
|
|
69
|
+
current: HTMLDivElement | null;
|
|
70
|
+
};
|
|
71
|
+
onRender: () => void;
|
|
72
|
+
/** Natural-width shrink floors (accessor -> px) for auto-expand column resize. */
|
|
73
|
+
getShrinkFloors?: () => Map<string, number>;
|
|
74
|
+
/** Persist user-set widths (drag / double-click auto-fit) as natural widths. */
|
|
75
|
+
onAutoExpandNaturalWidths?: (widths: Map<string, number>) => void;
|
|
76
|
+
pinnedLeftHeaderRef: {
|
|
77
|
+
current: HTMLDivElement | null;
|
|
78
|
+
};
|
|
79
|
+
pinnedLeftRef: {
|
|
80
|
+
current: HTMLDivElement | null;
|
|
81
|
+
};
|
|
82
|
+
pinnedRightHeaderRef: {
|
|
83
|
+
current: HTMLDivElement | null;
|
|
84
|
+
};
|
|
85
|
+
pinnedRightRef: {
|
|
86
|
+
current: HTMLDivElement | null;
|
|
87
|
+
};
|
|
88
|
+
resolvedIcons: ResolvedIcons;
|
|
89
|
+
rowSelectionManager: RowSelectionManager | null;
|
|
90
|
+
rowStateMap: Map<string | number, RowState>;
|
|
91
|
+
scrollManager: ScrollManager | null;
|
|
92
|
+
sectionScrollController: SectionScrollController | null;
|
|
93
|
+
selectionManager: SelectionManager | null;
|
|
94
|
+
setCollapsedHeaders: (headers: Set<Accessor>) => void;
|
|
95
|
+
setCollapsedRows: (rows: Map<string, number>) => void;
|
|
96
|
+
setColumnEditorOpen: (open: boolean) => void;
|
|
97
|
+
setCurrentPage: (page: number) => void;
|
|
98
|
+
setExpandedRows: (rows: Map<string, number>) => void;
|
|
99
|
+
setHeaders: (headers: ColumnDef[]) => void;
|
|
100
|
+
setIsResizing: (value: boolean) => void;
|
|
101
|
+
setRowStateMap: (map: Map<string | number, any>) => void;
|
|
102
|
+
sortManager: SortManager | null;
|
|
103
|
+
/** When true, body cells that stay visible get only position updates (no content/selection recalc). Used during vertical scroll for performance. */
|
|
104
|
+
positionOnlyBody?: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Mid column-header drag. Row model is unchanged — reuse last flatten/process
|
|
107
|
+
* results and only repaint header/body lefts.
|
|
108
|
+
*/
|
|
109
|
+
columnDragging?: boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Visible portion of the table inside an external scroll parent (in pixels).
|
|
112
|
+
* Set per render when `config.scrollParent` is active and no explicit
|
|
113
|
+
* `height`/`maxHeight` is set. Drives virtualization the same way an
|
|
114
|
+
* explicit `height` does, but the scroll source is external.
|
|
115
|
+
*/
|
|
116
|
+
externalViewportHeight?: number;
|
|
117
|
+
}
|
|
118
|
+
export interface RenderState {
|
|
119
|
+
currentPage: number;
|
|
120
|
+
scrollTop: number;
|
|
121
|
+
scrollDirection: "up" | "down" | "none";
|
|
122
|
+
scrollbarWidth: number;
|
|
123
|
+
isMainSectionScrollable: boolean;
|
|
124
|
+
columnEditorOpen: boolean;
|
|
125
|
+
}
|
|
@@ -1,123 +1,13 @@
|
|
|
1
1
|
import { SimpleTableConfig } from "../../types/SimpleTableConfig";
|
|
2
2
|
import { CustomTheme } from "../../types/CustomTheme";
|
|
3
|
-
import ColumnDef
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import { ScrollManager } from "../../managers/ScrollManager";
|
|
8
|
-
import type { SectionScrollController } from "../../managers/SectionScrollController";
|
|
9
|
-
import { SortManager } from "../../managers/SortManager";
|
|
10
|
-
import { FilterManager } from "../../managers/FilterManager";
|
|
11
|
-
import { SelectionManager } from "../../managers/SelectionManager";
|
|
12
|
-
import { RowSelectionManager } from "../../managers/RowSelectionManager";
|
|
13
|
-
import type { AnimationCoordinator, CellPosition } from "../../managers/AnimationCoordinator";
|
|
14
|
-
import type { AccordionAxis } from "../../utils/accordionAnimation";
|
|
15
|
-
import type { NestedTableFactory } from "../../utils/nestedGridRowRenderer";
|
|
3
|
+
import ColumnDef from "../../types/ColumnDef";
|
|
4
|
+
import type { CellPosition } from "../../managers/AnimationCoordinator";
|
|
5
|
+
import type { HeaderScrollLiveSelection } from "./SectionRenderer";
|
|
6
|
+
import { MergedColumnEditorConfig } from "../initialization/TableInitializer";
|
|
16
7
|
import { FlattenRowsResult } from "../../utils/rowFlattening";
|
|
17
8
|
import { ProcessRowsResult } from "../../utils/rowProcessing";
|
|
18
|
-
import {
|
|
19
|
-
export
|
|
20
|
-
/**
|
|
21
|
-
* Active accordion animation axis for this render. Set on row-grouping or
|
|
22
|
-
* nested-column collapse/expand toggles (see
|
|
23
|
-
* {@link SimpleTableVanilla.beginAccordionAnimation}). Cell renderers use it
|
|
24
|
-
* to initialize incoming cells at zero size in the named axis so the CSS
|
|
25
|
-
* size transition can grow them while sibling cells FLIP into place.
|
|
26
|
-
*/
|
|
27
|
-
accordionAxis?: AccordionAxis;
|
|
28
|
-
animationCoordinator?: AnimationCoordinator;
|
|
29
|
-
cellRegistry: Map<string, any>;
|
|
30
|
-
collapsedHeaders: Set<Accessor>;
|
|
31
|
-
collapsedRows: Map<string, number>;
|
|
32
|
-
config: SimpleTableConfig;
|
|
33
|
-
customTheme: CustomTheme;
|
|
34
|
-
dimensionManager: DimensionManager | null;
|
|
35
|
-
draggedHeaderRef: {
|
|
36
|
-
current: ColumnDef | null;
|
|
37
|
-
};
|
|
38
|
-
effectiveHeaders: ColumnDef[];
|
|
39
|
-
essentialAccessors: Set<string>;
|
|
40
|
-
expandedDepths: Set<number>;
|
|
41
|
-
expandedRows: Map<string, number>;
|
|
42
|
-
filterManager: FilterManager | null;
|
|
43
|
-
getCollapsedRows: () => Map<string, number>;
|
|
44
|
-
getCollapsedHeaders?: () => Set<Accessor>;
|
|
45
|
-
getExpandedRows: () => Map<string, number>;
|
|
46
|
-
getHeaders: () => ColumnDef[];
|
|
47
|
-
/** Pristine snapshot of the configured column definitions — the reset target for the column editor's reset button. */
|
|
48
|
-
getPristineDefaultHeaders: () => ColumnDef[];
|
|
49
|
-
getRowStateMap: () => Map<string | number, RowState>;
|
|
50
|
-
headerRegistry: Map<string, any>;
|
|
51
|
-
headers: ColumnDef[];
|
|
52
|
-
/**
|
|
53
|
-
* Unique id for this table instance. Scopes row-hover cell tracking so
|
|
54
|
-
* multiple tables on one page with overlapping rowIds don't cross-hover.
|
|
55
|
-
*/
|
|
56
|
-
hoverScopeId: string;
|
|
57
|
-
hoveredHeaderRef: {
|
|
58
|
-
current: ColumnDef | null;
|
|
59
|
-
};
|
|
60
|
-
internalIsLoading: boolean;
|
|
61
|
-
isResizing: boolean;
|
|
62
|
-
localRows: Row[];
|
|
63
|
-
/** Injected factory for nested grid tables (breaks the SimpleTableVanilla import cycle). */
|
|
64
|
-
createNestedTable?: NestedTableFactory;
|
|
65
|
-
mainBodyRef: {
|
|
66
|
-
current: HTMLDivElement | null;
|
|
67
|
-
};
|
|
68
|
-
mainHeaderRef: {
|
|
69
|
-
current: HTMLDivElement | null;
|
|
70
|
-
};
|
|
71
|
-
onRender: () => void;
|
|
72
|
-
/** Natural-width shrink floors (accessor -> px) for auto-expand column resize. */
|
|
73
|
-
getShrinkFloors?: () => Map<string, number>;
|
|
74
|
-
/** Persist user-set widths (drag / double-click auto-fit) as natural widths. */
|
|
75
|
-
onAutoExpandNaturalWidths?: (widths: Map<string, number>) => void;
|
|
76
|
-
pinnedLeftHeaderRef: {
|
|
77
|
-
current: HTMLDivElement | null;
|
|
78
|
-
};
|
|
79
|
-
pinnedLeftRef: {
|
|
80
|
-
current: HTMLDivElement | null;
|
|
81
|
-
};
|
|
82
|
-
pinnedRightHeaderRef: {
|
|
83
|
-
current: HTMLDivElement | null;
|
|
84
|
-
};
|
|
85
|
-
pinnedRightRef: {
|
|
86
|
-
current: HTMLDivElement | null;
|
|
87
|
-
};
|
|
88
|
-
resolvedIcons: ResolvedIcons;
|
|
89
|
-
rowSelectionManager: RowSelectionManager | null;
|
|
90
|
-
rowStateMap: Map<string | number, RowState>;
|
|
91
|
-
scrollManager: ScrollManager | null;
|
|
92
|
-
sectionScrollController: SectionScrollController | null;
|
|
93
|
-
selectionManager: SelectionManager | null;
|
|
94
|
-
setCollapsedHeaders: (headers: Set<Accessor>) => void;
|
|
95
|
-
setCollapsedRows: (rows: Map<string, number>) => void;
|
|
96
|
-
setColumnEditorOpen: (open: boolean) => void;
|
|
97
|
-
setCurrentPage: (page: number) => void;
|
|
98
|
-
setExpandedRows: (rows: Map<string, number>) => void;
|
|
99
|
-
setHeaders: (headers: ColumnDef[]) => void;
|
|
100
|
-
setIsResizing: (value: boolean) => void;
|
|
101
|
-
setRowStateMap: (map: Map<string | number, any>) => void;
|
|
102
|
-
sortManager: SortManager | null;
|
|
103
|
-
/** When true, body cells that stay visible get only position updates (no content/selection recalc). Used during vertical scroll for performance. */
|
|
104
|
-
positionOnlyBody?: boolean;
|
|
105
|
-
/**
|
|
106
|
-
* Visible portion of the table inside an external scroll parent (in pixels).
|
|
107
|
-
* Set by {@link SimpleTableVanilla} per render when `config.scrollParent` is
|
|
108
|
-
* active and no explicit `height`/`maxHeight` is set. Drives virtualization
|
|
109
|
-
* the same way an explicit `height` does, but the scroll source is external.
|
|
110
|
-
*/
|
|
111
|
-
externalViewportHeight?: number;
|
|
112
|
-
}
|
|
113
|
-
export interface RenderState {
|
|
114
|
-
currentPage: number;
|
|
115
|
-
scrollTop: number;
|
|
116
|
-
scrollDirection: "up" | "down" | "none";
|
|
117
|
-
scrollbarWidth: number;
|
|
118
|
-
isMainSectionScrollable: boolean;
|
|
119
|
-
columnEditorOpen: boolean;
|
|
120
|
-
}
|
|
9
|
+
import type { RenderContext, RenderState } from "./RenderContext";
|
|
10
|
+
export type { RenderContext, RenderState } from "./RenderContext";
|
|
121
11
|
export declare class RenderOrchestrator {
|
|
122
12
|
private tableRenderer;
|
|
123
13
|
private lastHeadersRef;
|
|
@@ -136,6 +26,8 @@ export declare class RenderOrchestrator {
|
|
|
136
26
|
getLastProcessedResult(): ProcessRowsResult | null;
|
|
137
27
|
/** See {@link TableRenderer.getCurrentBodyLayouts}. */
|
|
138
28
|
getCurrentBodyLayouts(): Map<HTMLElement, Map<string, CellPosition>>;
|
|
29
|
+
/** Re-virtualize main header and body cells for a new horizontal scroll position. */
|
|
30
|
+
virtualizeMainColumnsForScroll(scrollLeft: number, liveSelection?: HeaderScrollLiveSelection): void;
|
|
139
31
|
setOnRendererHostDiscard(cb: ((host: HTMLElement) => void) | undefined): void;
|
|
140
32
|
invalidateCache(type?: "body" | "header" | "context" | "all"): void;
|
|
141
33
|
/** @see TableRenderer.invalidateCustomFooterCache */
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import ColumnDef, { Accessor } from "../../types/ColumnDef";
|
|
2
1
|
import { HeaderRenderContext } from "../../utils/headerCellRenderer";
|
|
3
2
|
import { CellRenderContext } from "../../utils/bodyCellRenderer";
|
|
4
3
|
import TableRow from "../../types/TableRow";
|
|
4
|
+
import ColumnDef, { Accessor } from "../../types/ColumnDef";
|
|
5
5
|
import type { AnimationCoordinator, CellPosition } from "../../managers/AnimationCoordinator";
|
|
6
|
+
/** Live selection sets merged into the last header paint during horizontal scroll. */
|
|
7
|
+
export interface HeaderScrollLiveSelection {
|
|
8
|
+
columnsWithSelectedCells: Set<number>;
|
|
9
|
+
selectedColumns: Set<number>;
|
|
10
|
+
}
|
|
6
11
|
export interface HeaderSectionParams {
|
|
7
12
|
headers: ColumnDef[];
|
|
8
13
|
collapsedHeaders: Set<Accessor>;
|
|
@@ -51,26 +56,27 @@ export declare class SectionRenderer {
|
|
|
51
56
|
* renderer subtrees (React portals, etc.) before the nodes are discarded.
|
|
52
57
|
*/
|
|
53
58
|
private onRendererHostDiscard?;
|
|
54
|
-
private
|
|
55
|
-
private headerCellsCache;
|
|
56
|
-
private contextCache;
|
|
59
|
+
private caches;
|
|
57
60
|
private bodySectionSnapshots;
|
|
58
61
|
private nextColIndexMap;
|
|
59
62
|
private stateRowsMap;
|
|
60
63
|
private nestedGridRowsMap;
|
|
64
|
+
private mainHeaderScrollPaint;
|
|
65
|
+
private mainBodyScrollPaint;
|
|
61
66
|
renderHeaderSection(params: HeaderSectionParams): HTMLElement;
|
|
62
67
|
renderBodySection(params: BodySectionParams): HTMLElement;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
/**
|
|
69
|
+
* Re-virtualize main header cells for a new horizontal scroll position.
|
|
70
|
+
* No-op until the main header has painted. When `liveSelection` is passed,
|
|
71
|
+
* header selected classes use those sets instead of the last painted context.
|
|
72
|
+
*/
|
|
73
|
+
virtualizeMainHeaderForScroll(scrollLeft: number, liveSelection?: HeaderScrollLiveSelection): void;
|
|
74
|
+
/**
|
|
75
|
+
* Re-virtualize main body cells for a new horizontal scroll position.
|
|
76
|
+
* Updates cell positions only (no content/selection refresh). No-op until
|
|
77
|
+
* the main body has painted.
|
|
78
|
+
*/
|
|
79
|
+
virtualizeMainBodyForScroll(scrollLeft: number): void;
|
|
74
80
|
setOnRendererHostDiscard(cb: ((host: HTMLElement) => void) | undefined): void;
|
|
75
81
|
invalidateCache(type?: "body" | "header" | "context" | "all"): void;
|
|
76
82
|
/**
|
|
@@ -1,98 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import type { SectionScrollController } from "../../managers/SectionScrollController";
|
|
6
|
-
import { SortManager } from "../../managers/SortManager";
|
|
7
|
-
import { FilterManager } from "../../managers/FilterManager";
|
|
8
|
-
import { SelectionManager } from "../../managers/SelectionManager";
|
|
9
|
-
import { RowSelectionManager } from "../../managers/RowSelectionManager";
|
|
10
|
-
import type { AnimationCoordinator, CellPosition } from "../../managers/AnimationCoordinator";
|
|
11
|
-
import type { AccordionAxis } from "../../utils/accordionAnimation";
|
|
12
|
-
import type { NestedTableFactory } from "../../utils/nestedGridRowRenderer";
|
|
13
|
-
export interface TableRendererDeps {
|
|
14
|
-
/** Accordion animation axis for the in-flight collapse/expand. See {@link RenderContext.accordionAxis}. */
|
|
15
|
-
accordionAxis?: AccordionAxis;
|
|
16
|
-
animationCoordinator?: AnimationCoordinator;
|
|
17
|
-
/**
|
|
18
|
-
* True when the table is using an external `scrollParent` (no `height`/`maxHeight`).
|
|
19
|
-
* In this mode the main body container does not scroll — the parent does — so
|
|
20
|
-
* the sticky-parents container reads its scrollTop from `stickyParentsScrollTop`
|
|
21
|
-
* (sourced from the table's external-aware state) instead of `mainBodyRef.scrollTop`.
|
|
22
|
-
*/
|
|
23
|
-
externalScrollActive?: boolean;
|
|
24
|
-
/** Externally-tracked scrollTop (already translated into table coordinates). */
|
|
25
|
-
stickyParentsScrollTop?: number;
|
|
26
|
-
cellRegistry: Map<string, any>;
|
|
27
|
-
collapsedHeaders: Set<Accessor>;
|
|
28
|
-
collapsedRows: Map<string, number>;
|
|
29
|
-
config: SimpleTableConfig;
|
|
30
|
-
customTheme: CustomTheme;
|
|
31
|
-
dimensionManager: DimensionManager | null;
|
|
32
|
-
draggedHeaderRef: {
|
|
33
|
-
current: ColumnDef | null;
|
|
34
|
-
};
|
|
35
|
-
effectiveHeaders: ColumnDef[];
|
|
36
|
-
essentialAccessors: Set<string>;
|
|
37
|
-
expandedDepths: Set<number>;
|
|
38
|
-
expandedRows: Map<string, number>;
|
|
39
|
-
filterManager: FilterManager | null;
|
|
40
|
-
getCollapsedHeaders?: () => Set<Accessor>;
|
|
41
|
-
getCollapsedRows: () => Map<string, number>;
|
|
42
|
-
getExpandedRows: () => Map<string, number>;
|
|
43
|
-
getHeaders: () => ColumnDef[];
|
|
44
|
-
/** Pristine snapshot of the configured column definitions — the reset target for the column editor's reset button. */
|
|
45
|
-
getPristineDefaultHeaders: () => ColumnDef[];
|
|
46
|
-
getRowStateMap: () => Map<string | number, any>;
|
|
47
|
-
headerRegistry: Map<string, any>;
|
|
48
|
-
headers: ColumnDef[];
|
|
49
|
-
/** Unique id for this table instance — scopes row-hover cell tracking. */
|
|
50
|
-
hoverScopeId: string;
|
|
51
|
-
hoveredHeaderRef: {
|
|
52
|
-
current: ColumnDef | null;
|
|
53
|
-
};
|
|
54
|
-
internalIsLoading: boolean;
|
|
55
|
-
isResizing: boolean;
|
|
56
|
-
localRows: any[];
|
|
57
|
-
mainBodyRef: {
|
|
58
|
-
current: HTMLDivElement | null;
|
|
59
|
-
};
|
|
60
|
-
mainHeaderRef: {
|
|
61
|
-
current: HTMLDivElement | null;
|
|
62
|
-
};
|
|
63
|
-
onRender: () => void;
|
|
64
|
-
/** Natural-width shrink floors (accessor -> px) for auto-expand column resize. */
|
|
65
|
-
getShrinkFloors?: () => Map<string, number>;
|
|
66
|
-
/** Persist user-set widths (drag / double-click auto-fit) as natural widths. */
|
|
67
|
-
onAutoExpandNaturalWidths?: (widths: Map<string, number>) => void;
|
|
68
|
-
pinnedLeftHeaderRef: {
|
|
69
|
-
current: HTMLDivElement | null;
|
|
70
|
-
};
|
|
71
|
-
pinnedLeftRef: {
|
|
72
|
-
current: HTMLDivElement | null;
|
|
73
|
-
};
|
|
74
|
-
pinnedRightHeaderRef: {
|
|
75
|
-
current: HTMLDivElement | null;
|
|
76
|
-
};
|
|
77
|
-
pinnedRightRef: {
|
|
78
|
-
current: HTMLDivElement | null;
|
|
79
|
-
};
|
|
80
|
-
positionOnlyBody?: boolean; /** When true, scroll path updates cell geometry only (no full content/selection refresh); row separators still sync. */
|
|
81
|
-
resolvedIcons: any;
|
|
82
|
-
rowSelectionManager: RowSelectionManager | null;
|
|
83
|
-
rowStateMap: Map<string | number, any>;
|
|
84
|
-
sectionScrollController: SectionScrollController | null;
|
|
85
|
-
selectionManager: SelectionManager | null;
|
|
86
|
-
setCollapsedHeaders: (headers: Set<Accessor>) => void;
|
|
87
|
-
setCollapsedRows: (rows: Map<string, number>) => void;
|
|
88
|
-
setExpandedRows: (rows: Map<string, number>) => void;
|
|
89
|
-
setHeaders: (headers: ColumnDef[]) => void;
|
|
90
|
-
setIsResizing: (value: boolean) => void;
|
|
91
|
-
setRowStateMap: (map: Map<string | number, any>) => void;
|
|
92
|
-
sortManager: SortManager | null;
|
|
93
|
-
/** Injected factory for nested grid tables (breaks the SimpleTableVanilla import cycle). */
|
|
94
|
-
createNestedTable?: NestedTableFactory;
|
|
95
|
-
}
|
|
1
|
+
import { type HeaderScrollLiveSelection } from "./SectionRenderer";
|
|
2
|
+
import type { CellPosition } from "../../managers/AnimationCoordinator";
|
|
3
|
+
import type { TableRendererDeps } from "./TableRendererDeps";
|
|
4
|
+
export type { TableRendererDeps } from "./TableRendererDeps";
|
|
96
5
|
export declare class TableRenderer {
|
|
97
6
|
private sectionRenderer;
|
|
98
7
|
private footerInstance;
|
|
@@ -117,6 +26,8 @@ export declare class TableRenderer {
|
|
|
117
26
|
invalidateCustomFooterCache(): void;
|
|
118
27
|
/** See {@link SectionRenderer.getCurrentBodyLayouts}. */
|
|
119
28
|
getCurrentBodyLayouts(): Map<HTMLElement, Map<string, CellPosition>>;
|
|
29
|
+
/** Re-virtualize main header and body cells for a new horizontal scroll position. */
|
|
30
|
+
virtualizeMainColumnsForScroll(scrollLeft: number, liveSelection?: HeaderScrollLiveSelection): void;
|
|
120
31
|
renderHeader(container: HTMLElement, calculatedHeaderHeight: number, maxHeaderDepth: number, deps: TableRendererDeps): void;
|
|
121
32
|
renderBody(container: HTMLElement, processedResult: any, deps: TableRendererDeps): void;
|
|
122
33
|
renderFooter(container: HTMLElement, totalRows: number, currentPage: number, onPageChange: (page: number) => void, deps: TableRendererDeps): void;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import ColumnDef, { Accessor } from "../../types/ColumnDef";
|
|
2
|
+
import type { PivotConfig } from "../../types/PivotTypes";
|
|
3
|
+
import { SimpleTableConfig } from "../../types/SimpleTableConfig";
|
|
4
|
+
import { CustomTheme } from "../../types/CustomTheme";
|
|
5
|
+
import { DimensionManager } from "../../managers/DimensionManager";
|
|
6
|
+
import type { SectionScrollController } from "../../managers/SectionScrollController";
|
|
7
|
+
import { SortManager } from "../../managers/SortManager";
|
|
8
|
+
import { FilterManager } from "../../managers/FilterManager";
|
|
9
|
+
import { SelectionManager } from "../../managers/SelectionManager";
|
|
10
|
+
import { RowSelectionManager } from "../../managers/RowSelectionManager";
|
|
11
|
+
import type { AnimationCoordinator } from "../../managers/AnimationCoordinator";
|
|
12
|
+
import type { AccordionAxis } from "../../utils/accordionAnimation";
|
|
13
|
+
import type { NestedTableFactory } from "../../utils/nestedGridRowRenderer";
|
|
14
|
+
export interface TableRendererDeps {
|
|
15
|
+
/** Accordion animation axis for the in-flight collapse/expand. See {@link RenderContext.accordionAxis}. */
|
|
16
|
+
accordionAxis?: AccordionAxis;
|
|
17
|
+
animationCoordinator?: AnimationCoordinator;
|
|
18
|
+
/**
|
|
19
|
+
* True when the table is using an external `scrollParent` (no `height`/`maxHeight`).
|
|
20
|
+
* In this mode the main body container does not scroll — the parent does — so
|
|
21
|
+
* the sticky-parents container reads its scrollTop from `stickyParentsScrollTop`
|
|
22
|
+
* (sourced from the table's external-aware state) instead of `mainBodyRef.scrollTop`.
|
|
23
|
+
*/
|
|
24
|
+
externalScrollActive?: boolean;
|
|
25
|
+
/** Externally-tracked scrollTop (already translated into table coordinates). */
|
|
26
|
+
stickyParentsScrollTop?: number;
|
|
27
|
+
cellRegistry: Map<string, any>;
|
|
28
|
+
collapsedHeaders: Set<Accessor>;
|
|
29
|
+
collapsedRows: Map<string, number>;
|
|
30
|
+
config: SimpleTableConfig;
|
|
31
|
+
customTheme: CustomTheme;
|
|
32
|
+
dimensionManager: DimensionManager | null;
|
|
33
|
+
draggedHeaderRef: {
|
|
34
|
+
current: ColumnDef | null;
|
|
35
|
+
};
|
|
36
|
+
effectiveHeaders: ColumnDef[];
|
|
37
|
+
essentialAccessors: Set<string>;
|
|
38
|
+
expandedDepths: Set<number>;
|
|
39
|
+
expandedRows: Map<string, number>;
|
|
40
|
+
filterManager: FilterManager | null;
|
|
41
|
+
getCollapsedHeaders?: () => Set<Accessor>;
|
|
42
|
+
getCollapsedRows: () => Map<string, number>;
|
|
43
|
+
getExpandedRows: () => Map<string, number>;
|
|
44
|
+
getHeaders: () => ColumnDef[];
|
|
45
|
+
/** Last ingested column definitions — the reset target for the column editor's reset button. */
|
|
46
|
+
getPristineDefaultHeaders: () => ColumnDef[];
|
|
47
|
+
getPivot: () => PivotConfig | null;
|
|
48
|
+
setPivot: (pivot: PivotConfig | null) => void;
|
|
49
|
+
getRowStateMap: () => Map<string | number, any>;
|
|
50
|
+
headerRegistry: Map<string, any>;
|
|
51
|
+
headers: ColumnDef[];
|
|
52
|
+
/** Unique id for this table instance — scopes row-hover cell tracking. */
|
|
53
|
+
hoverScopeId: string;
|
|
54
|
+
hoveredHeaderRef: {
|
|
55
|
+
current: ColumnDef | null;
|
|
56
|
+
};
|
|
57
|
+
internalIsLoading: boolean;
|
|
58
|
+
isResizing: boolean;
|
|
59
|
+
localRows: any[];
|
|
60
|
+
mainBodyRef: {
|
|
61
|
+
current: HTMLDivElement | null;
|
|
62
|
+
};
|
|
63
|
+
mainHeaderRef: {
|
|
64
|
+
current: HTMLDivElement | null;
|
|
65
|
+
};
|
|
66
|
+
onRender: () => void;
|
|
67
|
+
/** Natural-width shrink floors (accessor -> px) for auto-expand column resize. */
|
|
68
|
+
getShrinkFloors?: () => Map<string, number>;
|
|
69
|
+
/** Persist user-set widths (drag / double-click auto-fit) as natural widths. */
|
|
70
|
+
onAutoExpandNaturalWidths?: (widths: Map<string, number>) => void;
|
|
71
|
+
pinnedLeftHeaderRef: {
|
|
72
|
+
current: HTMLDivElement | null;
|
|
73
|
+
};
|
|
74
|
+
pinnedLeftRef: {
|
|
75
|
+
current: HTMLDivElement | null;
|
|
76
|
+
};
|
|
77
|
+
pinnedRightHeaderRef: {
|
|
78
|
+
current: HTMLDivElement | null;
|
|
79
|
+
};
|
|
80
|
+
pinnedRightRef: {
|
|
81
|
+
current: HTMLDivElement | null;
|
|
82
|
+
};
|
|
83
|
+
positionOnlyBody?: boolean; /** When true, scroll path updates cell geometry only (no full content/selection refresh); row separators still sync. */
|
|
84
|
+
resolvedIcons: any;
|
|
85
|
+
rowSelectionManager: RowSelectionManager | null;
|
|
86
|
+
rowStateMap: Map<string | number, any>;
|
|
87
|
+
sectionScrollController: SectionScrollController | null;
|
|
88
|
+
selectionManager: SelectionManager | null;
|
|
89
|
+
setCollapsedHeaders: (headers: Set<Accessor>) => void;
|
|
90
|
+
setCollapsedRows: (rows: Map<string, number>) => void;
|
|
91
|
+
setExpandedRows: (rows: Map<string, number>) => void;
|
|
92
|
+
setHeaders: (headers: ColumnDef[]) => void;
|
|
93
|
+
setIsResizing: (value: boolean) => void;
|
|
94
|
+
setRowStateMap: (map: Map<string | number, any>) => void;
|
|
95
|
+
sortManager: SortManager | null;
|
|
96
|
+
/** Injected factory for nested grid tables (breaks the SimpleTableVanilla import cycle). */
|
|
97
|
+
createNestedTable?: NestedTableFactory;
|
|
98
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type ColumnDef from "../../types/ColumnDef";
|
|
2
|
+
import type { Accessor } from "../../types/ColumnDef";
|
|
3
|
+
import type { SimpleTableConfig } from "../../types/SimpleTableConfig";
|
|
4
|
+
import type { CustomTheme } from "../../types/CustomTheme";
|
|
5
|
+
import type Row from "../../types/Row";
|
|
6
|
+
import type RowState from "../../types/RowState";
|
|
7
|
+
import type { PivotConfig } from "../../types/PivotTypes";
|
|
8
|
+
import type { AnimationCoordinator } from "../../managers/AnimationCoordinator";
|
|
9
|
+
import type { DimensionManager } from "../../managers/DimensionManager";
|
|
10
|
+
import type { ScrollManager } from "../../managers/ScrollManager";
|
|
11
|
+
import type { SectionScrollController } from "../../managers/SectionScrollController";
|
|
12
|
+
import type { SortManager } from "../../managers/SortManager";
|
|
13
|
+
import type { FilterManager } from "../../managers/FilterManager";
|
|
14
|
+
import type { SelectionManager } from "../../managers/SelectionManager";
|
|
15
|
+
import type { RowSelectionManager } from "../../managers/RowSelectionManager";
|
|
16
|
+
import type { AccordionAxis } from "../../utils/accordionAnimation";
|
|
17
|
+
import type { NestedTableFactory } from "../../utils/nestedGridRowRenderer";
|
|
18
|
+
import type { ResolvedIcons } from "../initialization/TableInitializer";
|
|
19
|
+
import type { RenderContext } from "./RenderContext";
|
|
20
|
+
export interface RenderContextSource {
|
|
21
|
+
accordionAxis: AccordionAxis;
|
|
22
|
+
animationCoordinator: AnimationCoordinator;
|
|
23
|
+
cellRegistry: Map<string, any>;
|
|
24
|
+
collapsedHeaders: Set<Accessor>;
|
|
25
|
+
collapsedRows: Map<string, number>;
|
|
26
|
+
config: SimpleTableConfig;
|
|
27
|
+
customTheme: CustomTheme;
|
|
28
|
+
dimensionManager: DimensionManager | null;
|
|
29
|
+
draggedHeaderRef: {
|
|
30
|
+
current: ColumnDef | null;
|
|
31
|
+
};
|
|
32
|
+
essentialAccessors: Set<string>;
|
|
33
|
+
expandedDepths: Set<number>;
|
|
34
|
+
expandedRows: Map<string, number>;
|
|
35
|
+
filterManager: FilterManager | null;
|
|
36
|
+
headerRegistry: Map<string, any>;
|
|
37
|
+
headers: ColumnDef[];
|
|
38
|
+
hoverScopeId: string;
|
|
39
|
+
hoveredHeaderRef: {
|
|
40
|
+
current: ColumnDef | null;
|
|
41
|
+
};
|
|
42
|
+
internalIsLoading: boolean;
|
|
43
|
+
isResizing: boolean;
|
|
44
|
+
localRows: Row[];
|
|
45
|
+
createNestedTable: NestedTableFactory;
|
|
46
|
+
mainBodyRef: {
|
|
47
|
+
current: HTMLDivElement | null;
|
|
48
|
+
};
|
|
49
|
+
mainHeaderRef: {
|
|
50
|
+
current: HTMLDivElement | null;
|
|
51
|
+
};
|
|
52
|
+
pinnedLeftHeaderRef: {
|
|
53
|
+
current: HTMLDivElement | null;
|
|
54
|
+
};
|
|
55
|
+
pinnedLeftRef: {
|
|
56
|
+
current: HTMLDivElement | null;
|
|
57
|
+
};
|
|
58
|
+
pinnedRightHeaderRef: {
|
|
59
|
+
current: HTMLDivElement | null;
|
|
60
|
+
};
|
|
61
|
+
pinnedRightRef: {
|
|
62
|
+
current: HTMLDivElement | null;
|
|
63
|
+
};
|
|
64
|
+
positionOnlyBody?: boolean;
|
|
65
|
+
columnDragging?: boolean;
|
|
66
|
+
externalViewportHeight?: number;
|
|
67
|
+
resolvedIcons: ResolvedIcons;
|
|
68
|
+
rowSelectionManager: RowSelectionManager | null;
|
|
69
|
+
rowStateMap: Map<string | number, RowState>;
|
|
70
|
+
scrollManager: ScrollManager | null;
|
|
71
|
+
sectionScrollController: SectionScrollController | null;
|
|
72
|
+
selectionManager: SelectionManager | null;
|
|
73
|
+
sortManager: SortManager | null;
|
|
74
|
+
onRender: () => void;
|
|
75
|
+
getShrinkFloors: () => Map<string, number>;
|
|
76
|
+
onAutoExpandNaturalWidths: (widths: Map<string, number>) => void;
|
|
77
|
+
setIsResizing: (value: boolean) => void;
|
|
78
|
+
setHeaders: (headers: ColumnDef[]) => void;
|
|
79
|
+
setCollapsedHeaders: (headers: Set<Accessor>) => void;
|
|
80
|
+
setCollapsedRows: (rowsOrUpdater: Map<string, number> | ((prev: Map<string, number>) => Map<string, number>)) => void;
|
|
81
|
+
setExpandedRows: (rowsOrUpdater: Map<string, number> | ((prev: Map<string, number>) => Map<string, number>)) => void;
|
|
82
|
+
setRowStateMap: (mapOrUpdater: Map<string | number, any> | ((prev: Map<string | number, any>) => Map<string | number, any>)) => void;
|
|
83
|
+
getCollapsedRows: () => Map<string, number>;
|
|
84
|
+
getCollapsedHeaders: () => Set<Accessor>;
|
|
85
|
+
getExpandedRows: () => Map<string, number>;
|
|
86
|
+
getHeaders: () => ColumnDef[];
|
|
87
|
+
getPristineDefaultHeaders: () => ColumnDef[];
|
|
88
|
+
getPivot: () => PivotConfig | null;
|
|
89
|
+
setPivot: (pivot: PivotConfig | null) => void;
|
|
90
|
+
getRowStateMap: () => Map<string | number, RowState>;
|
|
91
|
+
setColumnEditorOpen: (open: boolean) => void;
|
|
92
|
+
setCurrentPage: (page: number) => void;
|
|
93
|
+
}
|
|
94
|
+
export declare const buildRenderContext: (source: RenderContextSource) => RenderContext;
|