@ishibashi0112/spreadsheet-grid 0.38.0 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/SpreadsheetGrid.d.ts +1 -2
  2. package/dist/hooks/useCellContextMenuController.d.ts +4 -4
  3. package/dist/hooks/useColumnAutosizeRunner.d.ts +2 -2
  4. package/dist/hooks/useColumnHeaderDragController.d.ts +2 -2
  5. package/dist/hooks/useColumnMenuController.d.ts +5 -5
  6. package/dist/hooks/useColumnSelectOptionsCollector.d.ts +2 -2
  7. package/dist/hooks/useFilterPopoverController.d.ts +8 -8
  8. package/dist/hooks/useGlobalFilteredOrder.d.ts +3 -3
  9. package/dist/hooks/useGridBarContext.d.ts +3 -2
  10. package/dist/hooks/useGridClipboardController.d.ts +1 -1
  11. package/dist/hooks/useGridEditController.d.ts +4 -4
  12. package/dist/hooks/useGridHistoryController.d.ts +1 -1
  13. package/dist/hooks/useGridKeyboardInteractions.d.ts +1 -1
  14. package/dist/hooks/useGridPointerInteractions.d.ts +8 -8
  15. package/dist/hooks/useGridStore.d.ts +1 -1
  16. package/dist/hooks/useGridViewportSync.d.ts +1 -1
  17. package/dist/hooks/useResolvedGridTheme.d.ts +1 -1
  18. package/dist/hooks/useRowDragController.d.ts +2 -2
  19. package/dist/hooks/useServerSideRowModel.d.ts +3 -3
  20. package/dist/hooks/useToolPanelController.d.ts +2 -2
  21. package/dist/index.cjs +1 -10
  22. package/dist/index.d.ts +3 -3
  23. package/dist/index.js +2841 -8666
  24. package/dist/model/gridTypes.d.ts +3 -2
  25. package/dist/style.css +1 -1
  26. package/dist/testing/index.d.ts +1 -5
  27. package/dist/testing.cjs +1 -1
  28. package/dist/testing.js +1 -51
  29. package/dist/view/ColumnChooserPanel.d.ts +1 -1
  30. package/dist/view/ColumnFilterPopover.d.ts +5 -5
  31. package/dist/view/GridBodyLabelRow.d.ts +24 -0
  32. package/dist/view/GridBodyLayer.d.ts +13 -4
  33. package/dist/view/GridDetailLayer.d.ts +1 -1
  34. package/dist/view/GridHeaderRow.d.ts +2 -2
  35. package/dist/view/GridScrollHint.d.ts +2 -2
  36. package/dist/view/GridStickyLabelLayer.d.ts +28 -0
  37. package/dist/view/gridBarHelpers.d.ts +2 -2
  38. package/package.json +8 -28
  39. package/README.md +0 -582
  40. package/dist/controllers/autoHeightMeasurer.d.ts +0 -30
  41. package/dist/controllers/clipboardController.d.ts +0 -31
  42. package/dist/controllers/columnAutosizeRunner.d.ts +0 -31
  43. package/dist/controllers/columnHeaderDragController.d.ts +0 -44
  44. package/dist/controllers/columnMenuController.d.ts +0 -49
  45. package/dist/controllers/contextMenuController.d.ts +0 -30
  46. package/dist/controllers/debouncedValueStore.d.ts +0 -11
  47. package/dist/controllers/editController.d.ts +0 -27
  48. package/dist/controllers/filterPopoverController.d.ts +0 -53
  49. package/dist/controllers/globalFilteredOrder.d.ts +0 -38
  50. package/dist/controllers/historyController.d.ts +0 -28
  51. package/dist/controllers/keyboardController.d.ts +0 -36
  52. package/dist/controllers/panelHeaderDragController.d.ts +0 -21
  53. package/dist/controllers/pointerInteractionsController.d.ts +0 -74
  54. package/dist/controllers/popoverSupport.d.ts +0 -18
  55. package/dist/controllers/rowDragController.d.ts +0 -40
  56. package/dist/controllers/scrollSyncController.d.ts +0 -17
  57. package/dist/controllers/selectOptionsCollector.d.ts +0 -31
  58. package/dist/controllers/serverSideRowModel.d.ts +0 -36
  59. package/dist/controllers/systemColorSchemeStore.d.ts +0 -5
  60. package/dist/controllers/toolPanelController.d.ts +0 -36
  61. package/dist/controllers/tooltipController.d.ts +0 -6
  62. package/dist/controllers/viewportSyncController.d.ts +0 -30
  63. package/dist/engine/columnCommands.d.ts +0 -56
  64. package/dist/engine/columnLayout.d.ts +0 -43
  65. package/dist/engine/createGridEngine.d.ts +0 -46
  66. package/dist/engine/filterPopoverCommands.d.ts +0 -56
  67. package/dist/engine/gridApi.d.ts +0 -61
  68. package/dist/engine/memo.d.ts +0 -2
  69. package/dist/engine/notifiers.d.ts +0 -35
  70. package/dist/engine/rowPipeline.d.ts +0 -50
  71. package/dist/engine/rowSelectionCommands.d.ts +0 -21
  72. package/dist/engine/verticalLayout.d.ts +0 -52
  73. package/dist/logic/aggregation.d.ts +0 -13
  74. package/dist/logic/autoScrollGeometry.d.ts +0 -27
  75. package/dist/logic/autoSizeOnData.d.ts +0 -10
  76. package/dist/logic/cellOverflowTooltip.d.ts +0 -5
  77. package/dist/logic/checkboxEditor.d.ts +0 -12
  78. package/dist/logic/chunkedLoop.d.ts +0 -8
  79. package/dist/logic/clearCells.d.ts +0 -31
  80. package/dist/logic/columnAutosize.d.ts +0 -18
  81. package/dist/logic/columnFlex.d.ts +0 -4
  82. package/dist/logic/columnReset.d.ts +0 -7
  83. package/dist/logic/contextMenuTarget.d.ts +0 -4
  84. package/dist/logic/cx.d.ts +0 -1
  85. package/dist/logic/dateFilterCondition.d.ts +0 -26
  86. package/dist/logic/dateFilterPresets.d.ts +0 -13
  87. package/dist/logic/dateFilterTree.d.ts +0 -17
  88. package/dist/logic/datePickerCalendar.d.ts +0 -12
  89. package/dist/logic/detailRow.d.ts +0 -38
  90. package/dist/logic/domGuards.d.ts +0 -7
  91. package/dist/logic/editorValues.d.ts +0 -5
  92. package/dist/logic/exportCsv.d.ts +0 -12
  93. package/dist/logic/exportData.d.ts +0 -9
  94. package/dist/logic/exportScope.d.ts +0 -3
  95. package/dist/logic/filterPopoverLayout.d.ts +0 -17
  96. package/dist/logic/filterPopoverOutsideClick.d.ts +0 -2
  97. package/dist/logic/filterSummary.d.ts +0 -3
  98. package/dist/logic/filtering.d.ts +0 -33
  99. package/dist/logic/geometry.d.ts +0 -72
  100. package/dist/logic/gridState.d.ts +0 -13
  101. package/dist/logic/grouping.d.ts +0 -34
  102. package/dist/logic/history.d.ts +0 -16
  103. package/dist/logic/inferFilterType.d.ts +0 -19
  104. package/dist/logic/numberFilterCondition.d.ts +0 -21
  105. package/dist/logic/panelDragGeometry.d.ts +0 -13
  106. package/dist/logic/rowHeightStore.d.ts +0 -13
  107. package/dist/logic/rowReorder.d.ts +0 -18
  108. package/dist/logic/rowSelection.d.ts +0 -16
  109. package/dist/logic/scrollHint.d.ts +0 -41
  110. package/dist/logic/scrollTargets.d.ts +0 -22
  111. package/dist/logic/selectEditorState.d.ts +0 -28
  112. package/dist/logic/selectOptions.d.ts +0 -9
  113. package/dist/logic/serverSideBlocks.d.ts +0 -2
  114. package/dist/logic/serverSideCache.d.ts +0 -14
  115. package/dist/logic/serverSideEdits.d.ts +0 -16
  116. package/dist/logic/serverSideQuery.d.ts +0 -7
  117. package/dist/logic/setFilterSearch.d.ts +0 -14
  118. package/dist/logic/setFilterSelection.d.ts +0 -5
  119. package/dist/logic/slotDom.d.ts +0 -8
  120. package/dist/logic/slotProps.d.ts +0 -18
  121. package/dist/logic/sorting.d.ts +0 -11
  122. package/dist/logic/textFilterCondition.d.ts +0 -18
  123. package/dist/logic/theme.d.ts +0 -3
  124. package/dist/logic/tooltipGeometry.d.ts +0 -19
  125. package/dist/logic/validation.d.ts +0 -14
  126. package/dist/logic/valueFormatters.d.ts +0 -9
  127. package/dist/logic/valueStore.d.ts +0 -6
  128. package/dist/logic/verticalGeometry.d.ts +0 -58
  129. package/dist/model/gridActions.d.ts +0 -125
  130. package/dist/model/gridReducer.d.ts +0 -4
  131. package/dist/model/gridSelectors.d.ts +0 -40
  132. package/dist/model/gridStore.d.ts +0 -24
  133. package/dist/model/gridTypes.core.d.ts +0 -796
  134. package/dist/utils/clipboard.d.ts +0 -29
  135. package/dist/utils/excelColumnName.d.ts +0 -1
  136. package/dist/utils/permissions.d.ts +0 -4
  137. package/dist/utils/scheduler.d.ts +0 -1
@@ -1,36 +0,0 @@
1
- import { type ReadonlyElementRef } from './popoverSupport';
2
- export type ToolPanelTab = 'filter' | 'columns' | 'sort';
3
- export type ToolPanelLayout = {
4
- top: number;
5
- left: number;
6
- width: number;
7
- };
8
- export type ToolPanelControllerArgs = {
9
- canUseFilterTab: boolean;
10
- canUseColumnsTab: boolean;
11
- canUseSortTab: boolean;
12
- gridRootRef: ReadonlyElementRef;
13
- alliedRef?: ReadonlyElementRef;
14
- suppressEscape?: boolean;
15
- onSuppressedEscape?: () => void;
16
- };
17
- export type ToolPanelSnapshot = {
18
- requestedTab: ToolPanelTab | null;
19
- layout: ToolPanelLayout | null;
20
- flashTick: number;
21
- };
22
- export type ToolPanelController = {
23
- update: (args: ToolPanelControllerArgs) => void;
24
- subscribe: (listener: () => void) => () => void;
25
- getSnapshot: () => ToolPanelSnapshot;
26
- panelRef: {
27
- current: HTMLDivElement | null;
28
- };
29
- open: (tab: ToolPanelTab) => void;
30
- close: () => void;
31
- move: (top: number, left: number) => void;
32
- dispose: () => void;
33
- };
34
- export declare const resolveAvailableToolPanelTabs: (args: Pick<ToolPanelControllerArgs, "canUseFilterTab" | "canUseColumnsTab" | "canUseSortTab">) => ToolPanelTab[];
35
- export declare const resolveActiveToolPanelTab: (requestedTab: ToolPanelTab | null, availableTabs: ToolPanelTab[]) => ToolPanelTab | null;
36
- export declare const createToolPanelController: () => ToolPanelController;
@@ -1,6 +0,0 @@
1
- import type { GridResolvedSlot } from '../model/gridTypes.core';
2
- export type TooltipController = {
3
- setSlot: (slot: GridResolvedSlot | undefined) => void;
4
- dispose: () => void;
5
- };
6
- export declare function acquireTooltipController(slot?: GridResolvedSlot): TooltipController;
@@ -1,30 +0,0 @@
1
- import type { ColumnMeasurement } from '../logic/geometry';
2
- import type { CellCoord } from '../model/gridTypes.core';
3
- export type ViewportCellRect = {
4
- left: number;
5
- top: number;
6
- width: number;
7
- height: number;
8
- };
9
- export type ViewportSyncArgs<T> = {
10
- scrollElement: HTMLElement | null;
11
- columnVirtualizer: {
12
- measure: () => void;
13
- };
14
- columnMeasurements: ColumnMeasurement<T>[];
15
- totalScrollWidth: number;
16
- physicalBodyHeight: number;
17
- headerHeight: number;
18
- leftPaneWidth: number;
19
- rightPaneWidth: number;
20
- centerLeadingWidth: number;
21
- activeCellRect: ViewportCellRect | null;
22
- activeCell: CellCoord | null;
23
- verticalScaleFactor: number;
24
- };
25
- export type ViewportSyncController<T> = {
26
- update: (args: ViewportSyncArgs<T>) => void;
27
- };
28
- export declare const clampScrollToContent: (scrollElement: HTMLElement, args: Pick<ViewportSyncArgs<unknown>, "totalScrollWidth" | "physicalBodyHeight" | "headerHeight">) => void;
29
- export declare const scrollCellIntoView: (scrollElement: HTMLElement, rect: ViewportCellRect, args: Pick<ViewportSyncArgs<unknown>, "headerHeight" | "leftPaneWidth" | "rightPaneWidth" | "centerLeadingWidth" | "verticalScaleFactor">) => void;
30
- export declare const createViewportSyncController: <T>() => ViewportSyncController<T>;
@@ -1,56 +0,0 @@
1
- import type { GridColumn, GridColumnPinned, GridSortState } from '../model/gridTypes';
2
- import { type GridUiAction } from '../model/gridActions';
3
- import { type InitialColumnState } from '../logic/columnReset';
4
- import type { ToolPanelTab } from '../controllers/toolPanelController';
5
- export type ColumnCommandsArgs<T> = {
6
- columns: GridColumn<T>[];
7
- visibleColumns: GridColumn<T>[];
8
- orderedColumns: GridColumn<T>[];
9
- columnWidths: Record<string, number>;
10
- onColumnsChange: ((columns: GridColumn<T>[]) => void) | undefined;
11
- dispatch: (action: GridUiAction) => void;
12
- enableSorting: boolean;
13
- sort: GridSortState;
14
- globalFilterText: string;
15
- closeColumnMenu: () => void;
16
- openToolPanel: (tab: ToolPanelTab) => void;
17
- openColumnFilterPopover: (column: GridColumn<T>) => void;
18
- runAutosize: (columns: GridColumn<T>[]) => Promise<void> | void;
19
- };
20
- export type SortDirection = 'asc' | 'desc';
21
- export type ColumnCommands<T> = {
22
- update: (args: ColumnCommandsArgs<T>) => void;
23
- handleColumnMenuPinnedChange: (columnKey: string, nextPinned: GridColumnPinned | undefined) => void;
24
- handleColumnMenuAutosizeColumn: (columnKey: string) => void;
25
- handleColumnMenuAutosizeAllColumns: () => void;
26
- handleColumnMenuOpenChooser: () => void;
27
- handleColumnMenuOpenSortManager: () => void;
28
- handleColumnMenuOpenFilter: (column: GridColumn<T>) => void;
29
- handleColumnMenuOpenFilterManager: () => void;
30
- handleColumnMenuResetColumns: () => void;
31
- handleColumnMenuSortChange: (columnKey: string, direction: SortDirection) => void;
32
- handleFilterManagerClearFilter: (columnKey: string) => void;
33
- handleFilterManagerClearAll: () => void;
34
- handleFilterManagerClearGlobal: () => void;
35
- handleColumnChooserToggleVisibility: (columnKey: string, nextVisible: boolean) => void;
36
- handleColumnChooserShowAll: () => void;
37
- handleColumnChooserHideAll: () => void;
38
- handleColumnChooserReorder: (orderedKeys: string[]) => void;
39
- handleColumnChooserReset: () => void;
40
- applyColumnOrderAndPin: (orderedKeys: string[], pinOverride?: Map<string, GridColumnPinned | undefined>) => void;
41
- handleSortManagerAddLevel: (columnKey: string, direction: SortDirection) => void;
42
- handleSortManagerChangeDirection: (index: number, direction: SortDirection) => void;
43
- handleSortManagerChangeColumn: (index: number, columnKey: string) => void;
44
- handleSortManagerRemoveLevel: (index: number) => void;
45
- handleSortManagerClearAll: () => void;
46
- handleSortManagerMove: (from: number, to: number) => void;
47
- handleColumnResizePointerDown: (column: GridColumn<T>, event: ColumnResizePointerEvent) => void;
48
- getInitialColumnState: () => Map<string, InitialColumnState> | null;
49
- };
50
- export type ColumnResizePointerEvent = {
51
- timeStamp: number;
52
- clientX: number;
53
- preventDefault: () => void;
54
- stopPropagation: () => void;
55
- };
56
- export declare const createColumnCommands: <T>() => ColumnCommands<T>;
@@ -1,43 +0,0 @@
1
- import type { GridColumn } from '../model/gridTypes';
2
- import { type GridPaneLayout, type PaneSourceColumns } from '../logic/geometry';
3
- export type ColumnResolutionInputs<T> = {
4
- columns: GridColumn<T>[];
5
- isServerSide: boolean;
6
- enableRowDrag: boolean;
7
- hasRowsChange: boolean;
8
- detailToggleColumnActive: boolean;
9
- renderDetailToggleCell: NonNullable<GridColumn<T>['renderCell']>;
10
- };
11
- export type ColumnResolution<T> = {
12
- groupColumns: GridColumn<T>[];
13
- aggColumns: GridColumn<T>[];
14
- rowGroupingActive: boolean;
15
- rowDragAvailable: boolean;
16
- effectiveColumns: GridColumn<T>[];
17
- visibleColumns: GridColumn<T>[];
18
- orderedColumns: GridColumn<T>[];
19
- };
20
- export declare const createColumnResolver: <T>() => (inputs: ColumnResolutionInputs<T>) => ColumnResolution<T>;
21
- export type PaneLayoutInputs<T> = {
22
- orderedColumns: GridColumn<T>[];
23
- columnWidths: Record<string, number>;
24
- viewportWidth: number;
25
- rowHeaderWidth: number;
26
- };
27
- export type PaneLayoutResolution<T> = {
28
- paneSourceColumns: PaneSourceColumns<T>;
29
- hasFlexColumn: boolean;
30
- effectiveColumnWidths: Record<string, number>;
31
- paneLayout: GridPaneLayout<T>;
32
- hasLeftPane: boolean;
33
- hasRightPane: boolean;
34
- centerOwnsRowHeader: boolean;
35
- leftLeadingWidth: number;
36
- centerLeadingWidth: number;
37
- rightLeadingWidth: number;
38
- leftPaneTotalWidth: number;
39
- rightPaneTotalWidth: number;
40
- centerContentWidth: number;
41
- totalScrollWidth: number;
42
- };
43
- export declare const createPaneLayoutResolver: <T>() => (inputs: PaneLayoutInputs<T>) => PaneLayoutResolution<T>;
@@ -1,46 +0,0 @@
1
- import { type GridStore } from '../model/gridStore';
2
- import { type DetailIndexCacheHolder } from '../logic/detailRow';
3
- import { type AutoHeightMeasurer } from '../controllers/autoHeightMeasurer';
4
- import { type ScrollSyncController } from '../controllers/scrollSyncController';
5
- import { type DebouncedValueStore } from '../controllers/debouncedValueStore';
6
- import { type AutoSizeOnDataTrigger } from '../controllers/columnAutosizeRunner';
7
- import { type ColumnResolution, type ColumnResolutionInputs, type PaneLayoutInputs, type PaneLayoutResolution } from './columnLayout';
8
- import { type RowPipelineResolver, type ServerSideQueryResolution } from './rowPipeline';
9
- import { type VerticalLayoutInputs, type VerticalLayoutResolution } from './verticalLayout';
10
- import { type ColumnCommands } from './columnCommands';
11
- import { type FilterPopoverCommands, type FilterPopoverDerived, type FilterPopoverDerivedInputs } from './filterPopoverCommands';
12
- import { type RowSelectionCommands } from './rowSelectionCommands';
13
- import { type GridApi } from './gridApi';
14
- import { type DetailKeysNotifier, type HoverRowNotifier, type StateChangeNotifier } from './notifiers';
15
- export declare const SERVER_SIDE_QUERY_DEBOUNCE_MS = 300;
16
- export type GridEngineInit<T> = {
17
- columnInputs: ColumnResolutionInputs<T>;
18
- serverSide: {
19
- isServerSide: boolean;
20
- enableGlobalFilter: boolean;
21
- enableColumnFilter: boolean;
22
- enableSorting: boolean;
23
- };
24
- };
25
- export type GridEngine<T> = {
26
- store: GridStore;
27
- resolveColumns: (inputs: ColumnResolutionInputs<T>) => ColumnResolution<T>;
28
- resolvePaneLayout: (inputs: PaneLayoutInputs<T>) => PaneLayoutResolution<T>;
29
- rowPipeline: RowPipelineResolver<T>;
30
- resolveVerticalLayout: (inputs: VerticalLayoutInputs<T>) => VerticalLayoutResolution;
31
- resolveFilterPopoverDerived: (inputs: FilterPopoverDerivedInputs<T>) => FilterPopoverDerived;
32
- columnCommands: ColumnCommands<T>;
33
- filterPopoverCommands: FilterPopoverCommands<T>;
34
- rowSelectionCommands: RowSelectionCommands<T>;
35
- gridApi: GridApi<T>;
36
- hoverRowNotifier: HoverRowNotifier;
37
- detailKeysNotifier: DetailKeysNotifier;
38
- stateChangeNotifier: StateChangeNotifier<T>;
39
- autoHeightMeasurer: AutoHeightMeasurer<T>;
40
- scrollSync: ScrollSyncController;
41
- serverSideQueryStore: DebouncedValueStore<ServerSideQueryResolution>;
42
- autoSizeOnData: AutoSizeOnDataTrigger<T>;
43
- detailIndexCache: DetailIndexCacheHolder;
44
- dispose: () => void;
45
- };
46
- export declare const createGridEngine: <T>(init: GridEngineInit<T>) => GridEngine<T>;
@@ -1,56 +0,0 @@
1
- import type { ColumnFilterUiType, ColumnFilterValue, GridColumn } from '../model/gridTypes';
2
- import { type GridUiAction } from '../model/gridActions';
3
- import { type ColumnFilterSetSelection } from '../logic/setFilterSelection';
4
- import { type NumberFilterConditionDraft } from '../logic/numberFilterCondition';
5
- import { type TextFilterConditionDraft } from '../logic/textFilterCondition';
6
- import { type DateFilterConditionDraft } from '../logic/dateFilterCondition';
7
- import type { SelectOptionEntry } from '../logic/selectOptions';
8
- export type FilterPopoverDerivedInputs<T> = {
9
- openedFilterColumn: GridColumn<T> | null;
10
- openedFilterType: ColumnFilterUiType | null;
11
- openedFilterSelectOptions: SelectOptionEntry[];
12
- openedFilterAllValues: ReadonlySet<string>;
13
- columnFilters: Record<string, ColumnFilterValue>;
14
- };
15
- export type FilterPopoverDerived = {
16
- isDateSetFilterColumn: boolean;
17
- openedPopoverSelectOptions: SelectOptionEntry[];
18
- openedPopoverAllValues: ReadonlySet<string>;
19
- openedSetFilterValue: ColumnFilterValue | undefined;
20
- openedSetSelection: ColumnFilterSetSelection | null;
21
- openedColumnCanInvert: boolean;
22
- isComboFilterColumn: boolean;
23
- };
24
- export declare const createFilterPopoverDerivedResolver: <T>() => (inputs: FilterPopoverDerivedInputs<T>) => FilterPopoverDerived;
25
- export type FilterPopoverStateLike = {
26
- columnKey: string;
27
- draftValue: string;
28
- numberDraft: NumberFilterConditionDraft | null;
29
- };
30
- export type FilterPopoverCommandsArgs<T> = {
31
- filterPopoverState: FilterPopoverStateLike | null;
32
- openedFilterColumn: GridColumn<T> | null;
33
- openedFilterType: ColumnFilterUiType | null;
34
- columnFilters: Record<string, ColumnFilterValue>;
35
- derived: FilterPopoverDerived;
36
- dispatch: (action: GridUiAction) => void;
37
- closeColumnFilterPopover: () => void;
38
- updateNumberDraft: (draft: NumberFilterConditionDraft) => void;
39
- updateTextDraft: (draft: TextFilterConditionDraft) => void;
40
- updateDateDraft: (draft: DateFilterConditionDraft) => void;
41
- };
42
- export type FilterPopoverCommands<T> = {
43
- update: (args: FilterPopoverCommandsArgs<T>) => void;
44
- handleSetFilterValueToggle: (value: string) => void;
45
- handleSetFilterSelectAllChange: (scope: 'all' | string[], nextChecked: boolean) => void;
46
- handleSetFilterReplaceSelection: (values: string[]) => void;
47
- clearSetFilterPopoverValue: () => void;
48
- handleNumberConditionDraftChange: (draft: NumberFilterConditionDraft) => void;
49
- handleTextConditionDraftChange: (draft: TextFilterConditionDraft) => void;
50
- handleDateConditionDraftChange: (draft: DateFilterConditionDraft) => void;
51
- handleComboConditionClear: () => void;
52
- handleComboSelectionClear: () => void;
53
- applyFilterPopoverValue: () => void;
54
- clearFilterPopoverValue: () => void;
55
- };
56
- export declare const createFilterPopoverCommands: <T>() => FilterPopoverCommands<T>;
@@ -1,61 +0,0 @@
1
- import type { DetailRowOptions, GridColumn, GridRowKey, GridUiState, RowModel, RowSelectionState, ScrollAlign, SpreadsheetGridHandle, SpreadsheetGridProps } from '../model/gridTypes';
2
- import { type GridUiAction } from '../model/gridActions';
3
- import { type GridPaneLayout } from '../logic/geometry';
4
- import { type RowMetrics } from '../logic/verticalGeometry';
5
- import { type DetailIndexCache } from '../logic/detailRow';
6
- import { type GroupTree } from '../logic/grouping';
7
- import type { ToolPanelTab } from '../controllers/toolPanelController';
8
- type ReadonlyRef<V> = {
9
- readonly current: V;
10
- };
11
- export type GridApiArgs<T> = {
12
- scrollContainerRef: ReadonlyRef<HTMLElement | null>;
13
- dispatch: (action: GridUiAction) => void;
14
- rowModel: RowModel<T>;
15
- viewRowCount: number;
16
- leafRowCount: number;
17
- groupTree: GroupTree<T> | null;
18
- rowMetrics: RowMetrics;
19
- paneLayout: GridPaneLayout<T>;
20
- orderedColumns: GridColumn<T>[];
21
- columns: GridColumn<T>[];
22
- onColumnsChange: ((nextColumns: GridColumn<T>[]) => void) | undefined;
23
- uiState: GridUiState;
24
- headerHeight: number;
25
- verticalScaleFactor: number;
26
- leftPaneTotalWidth: number;
27
- rightPaneTotalWidth: number;
28
- centerLeadingWidth: number;
29
- windowFirstRow: number;
30
- windowLastRow: number;
31
- physicalBodyHeight: number;
32
- rows: T[];
33
- isServerSide: boolean;
34
- serverSideRefresh: () => void;
35
- resolvedRowKeyGetter: (row: T, sourceRowIndex: number) => GridRowKey;
36
- isRowExportable: SpreadsheetGridProps<T>['isRowExportable'];
37
- activeToolPanelTab: ToolPanelTab | null;
38
- openToolPanel: (tab: ToolPanelTab) => void;
39
- closeToolPanel: () => void;
40
- undoRows: () => void;
41
- redoRows: () => void;
42
- canUndoRows: () => boolean;
43
- canRedoRows: () => boolean;
44
- clearUndoHistory: () => void;
45
- detailRowEnabled: boolean;
46
- detailIsExpandable: DetailRowOptions<T>['isExpandable'];
47
- detailIndexCacheRef: ReadonlyRef<DetailIndexCache>;
48
- moveRowByKey: (rowKey: GridRowKey, toIndex: number) => void;
49
- commitRowSelection: (next: RowSelectionState) => void;
50
- markApiScroll: () => void;
51
- };
52
- export type GridApi<T> = {
53
- update: (args: GridApiArgs<T>) => void;
54
- handle: SpreadsheetGridHandle<T>;
55
- applyScroll: (logicalTop: number | null, left: number | null) => void;
56
- verticalTargetFor: (viewRowIndex: number, align: ScrollAlign) => number | null;
57
- horizontalTargetFor: (colIndex: number, align: ScrollAlign) => number | null;
58
- scrollToCellInternal: (viewRowIndex: number, colIndex: number, align: ScrollAlign) => void;
59
- };
60
- export declare const createGridApi: <T>() => GridApi<T>;
61
- export {};
@@ -1,2 +0,0 @@
1
- export type MemoFn<Args extends readonly unknown[], R> = (...args: Args) => R;
2
- export declare const createMemo: <Args extends readonly unknown[], R>(compute: (...args: Args) => R) => MemoFn<Args, R>;
@@ -1,35 +0,0 @@
1
- import type { GridColumn, GridRowKey, GridSortState, GridState, GridUiState } from '../model/gridTypes';
2
- export type HoverRowNotifierArgs = {
3
- enableRowHover: boolean;
4
- isHoverControlled: boolean;
5
- onHoveredRowChange: ((index: number | null, meta: {
6
- source: 'pointer';
7
- }) => void) | undefined;
8
- setHoveredRowIndex: (index: number | null) => void;
9
- };
10
- export type HoverRowAction = number | null | ((current: number | null) => number | null);
11
- export type HoverRowNotifier = {
12
- update: (args: HoverRowNotifierArgs) => void;
13
- applyHoveredRowChange: (action: HoverRowAction) => void;
14
- };
15
- export declare const createHoverRowNotifier: () => HoverRowNotifier;
16
- export type DetailKeysNotifierArgs = {
17
- expandedKeys: ReadonlySet<GridRowKey>;
18
- onChange: ((keys: GridRowKey[]) => void) | undefined;
19
- };
20
- export type DetailKeysNotifier = {
21
- update: (args: DetailKeysNotifierArgs) => void;
22
- };
23
- export declare const createDetailKeysNotifier: () => DetailKeysNotifier;
24
- export type StateChangeNotifierArgs<T> = {
25
- columnWidths: GridUiState['columnWidths'];
26
- filters: GridUiState['filters'];
27
- sort: GridSortState;
28
- dragState: GridUiState['dragState'];
29
- columns: GridColumn<T>[];
30
- onStateChange: ((state: GridState) => void) | undefined;
31
- };
32
- export type StateChangeNotifier<T> = {
33
- update: (args: StateChangeNotifierArgs<T>) => void;
34
- };
35
- export declare const createStateChangeNotifier: <T>() => StateChangeNotifier<T>;
@@ -1,50 +0,0 @@
1
- import type { ColumnFilterValue, GridColumn, GridRowKey, GridSortState, RowModel, ServerSideQuery } from '../model/gridTypes';
2
- import { type RowOrder } from '../logic/filtering';
3
- import { type GroupTree, type GroupedDisplay } from '../logic/grouping';
4
- export type RowOrderInputs<T> = {
5
- rows: T[];
6
- visibleColumns: GridColumn<T>[];
7
- columnFilters: Record<string, ColumnFilterValue>;
8
- globalFilteredOrder: RowOrder;
9
- sort: GridSortState;
10
- rowDragAvailable: boolean;
11
- };
12
- export type RowOrderResolution = {
13
- order: RowOrder;
14
- orderIsIdentity: boolean;
15
- rowDragOperable: boolean;
16
- };
17
- export type ClientSideRowModelInputs<T> = {
18
- rows: T[];
19
- order: RowOrder;
20
- rowGroupingActive: boolean;
21
- groupColumns: GridColumn<T>[];
22
- aggColumns: GridColumn<T>[];
23
- collapsedGroupKeys: ReadonlySet<string>;
24
- rowKeyGetter: (row: T, index: number) => GridRowKey;
25
- };
26
- export type ClientSideRowModelResolution<T> = {
27
- groupTree: GroupTree<T> | null;
28
- groupedDisplay: GroupedDisplay | null;
29
- rowModel: RowModel<T>;
30
- };
31
- export type ServerSideQueryInputs = {
32
- isServerSide: boolean;
33
- globalFilterEnabled: boolean;
34
- globalText: string;
35
- columnFilterEnabled: boolean;
36
- columnFilters: Record<string, ColumnFilterValue>;
37
- sortingEnabled: boolean;
38
- sort: GridSortState;
39
- };
40
- export type ServerSideQueryResolution = {
41
- query: ServerSideQuery;
42
- queryKey: string;
43
- };
44
- export declare const createRowPipelineResolver: <T>() => {
45
- resolveBaseOrder: (rowCount: number) => RowOrder;
46
- resolveOrder: (inputs: RowOrderInputs<T>) => RowOrderResolution;
47
- resolveClientSideRowModel: (inputs: ClientSideRowModelInputs<T>) => ClientSideRowModelResolution<T>;
48
- resolveServerSideQuery: (inputs: ServerSideQueryInputs) => ServerSideQueryResolution;
49
- };
50
- export type RowPipelineResolver<T> = ReturnType<typeof createRowPipelineResolver<T>>;
@@ -1,21 +0,0 @@
1
- import type { RowModel, RowSelectionModel, RowSelectionState } from '../model/gridTypes';
2
- import { type GridUiAction } from '../model/gridActions';
3
- export type RowSelectionCommandsArgs<T> = {
4
- rowModel: RowModel<T>;
5
- rowSelectionState: RowSelectionState;
6
- rowSelectionMode: 'single' | 'multiple';
7
- onRowSelectionChange: ((model: RowSelectionModel) => void) | undefined;
8
- controlledRowSelectionModel: RowSelectionModel | undefined;
9
- leafRowCount: number;
10
- dispatch: (action: GridUiAction) => void;
11
- };
12
- export type RowSelectionCommands<T> = {
13
- update: (args: RowSelectionCommandsArgs<T>) => void;
14
- commitRowSelection: (next: RowSelectionState) => void;
15
- handleGutterRowSelect: (viewIndex: number, opts: {
16
- shiftKey: boolean;
17
- }) => void;
18
- handleGutterRowSelectDrag: (viewIndex: number) => void;
19
- handleToggleSelectAllRows: () => void;
20
- };
21
- export declare const createRowSelectionCommands: <T>() => RowSelectionCommands<T>;
@@ -1,52 +0,0 @@
1
- import type { GridColumn, GridRowKey, RowModel } from '../model/gridTypes';
2
- import { type DetailRowExtra, type RowMetrics, type VerticalGeometry, type VerticalRow } from '../logic/verticalGeometry';
3
- import { type RowHeightStore } from '../logic/rowHeightStore';
4
- import { resolveDetailRowExtras, type DetailIndexCache } from '../logic/detailRow';
5
- type ReadonlyRef<V> = {
6
- readonly current: V;
7
- };
8
- export type DetailLayerEntry = {
9
- rowKey: GridRowKey;
10
- virtualRow: VerticalRow;
11
- };
12
- type DetailIsExpandable<T> = Parameters<typeof resolveDetailRowExtras<T>>[0]['isExpandable'];
13
- export type VerticalLayoutInputs<T> = {
14
- isServerSide: boolean;
15
- autoHeight: boolean;
16
- visibleColumns: GridColumn<T>[];
17
- viewRowCount: number;
18
- estimateRowHeight: number;
19
- rowHeight: number;
20
- headerHeight: number;
21
- viewportHeight: number;
22
- scrollTop: number;
23
- rowModel: RowModel<T>;
24
- measuredHeights: Map<GridRowKey, number>;
25
- autoHeightVersion: number;
26
- detailRowEnabled: boolean;
27
- expandedDetailRowKeys: ReadonlySet<GridRowKey>;
28
- detailHeight: number;
29
- detailIsExpandable: DetailIsExpandable<T>;
30
- detailIndexCacheRef: ReadonlyRef<DetailIndexCache>;
31
- };
32
- export type VerticalLayoutResolution = {
33
- hasAutoHeightColumn: boolean;
34
- autoHeightActive: boolean;
35
- rowHeightStore: RowHeightStore | null;
36
- baseRowMetrics: RowMetrics;
37
- detailExtras: readonly DetailRowExtra[];
38
- detailActive: boolean;
39
- rowMetrics: RowMetrics;
40
- verticalGeometry: VerticalGeometry;
41
- virtualRows: VerticalGeometry['rows'];
42
- virtualRowIndexes: VerticalGeometry['rowIndexSet'];
43
- detailEntries: readonly DetailLayerEntry[];
44
- windowFirstRow: number;
45
- windowLastRow: number;
46
- physicalBodyHeight: number;
47
- bodyLayerTransform: string | undefined;
48
- verticalScaleFactor: number;
49
- overlayBaseOffset: number;
50
- };
51
- export declare const createVerticalLayoutResolver: <T>() => (inputs: VerticalLayoutInputs<T>) => VerticalLayoutResolution;
52
- export {};
@@ -1,13 +0,0 @@
1
- import type { GridAggFuncName } from '../model/gridTypes';
2
- export declare const BUILTIN_AGG_FUNC_NAMES: readonly GridAggFuncName[];
3
- export declare const isBuiltinAggFuncName: (value: unknown) => value is GridAggFuncName;
4
- export type BuiltinAggAccumulator = {
5
- count: number;
6
- numericCount: number;
7
- sum: number;
8
- min: number;
9
- max: number;
10
- };
11
- export declare const createBuiltinAggAccumulator: () => BuiltinAggAccumulator;
12
- export declare const accumulateBuiltinAgg: (accumulator: BuiltinAggAccumulator, value: unknown) => void;
13
- export declare const finalizeBuiltinAgg: (name: GridAggFuncName, accumulator: BuiltinAggAccumulator) => unknown;
@@ -1,27 +0,0 @@
1
- export declare const AUTO_SCROLL_EDGE_THRESHOLD = 24;
2
- export declare const AUTO_SCROLL_STEP = 18;
3
- export declare const AUTO_SCROLL_ACTIVATION_DISTANCE = 6;
4
- export type AutoScrollAxisDirection = -1 | 0 | 1;
5
- export type AutoScrollContentBox = {
6
- left: number;
7
- top: number;
8
- right: number;
9
- bottom: number;
10
- };
11
- export declare const resolveScrollContentBox: ({ rectLeft, rectTop, clientLeft, clientTop, clientWidth, clientHeight, }: {
12
- rectLeft: number;
13
- rectTop: number;
14
- clientLeft: number;
15
- clientTop: number;
16
- clientWidth: number;
17
- clientHeight: number;
18
- }) => AutoScrollContentBox;
19
- export declare const resolveAutoScrollAxisDirection: (pointer: number, start: number, end: number, edgeThreshold: number) => AutoScrollAxisDirection;
20
- export declare const computeNextScrollPosition: (current: number, direction: AutoScrollAxisDirection, step: number, max: number) => number;
21
- export declare const hasPointerLeftActivationRadius: (origin: {
22
- x: number;
23
- y: number;
24
- }, pointer: {
25
- x: number;
26
- y: number;
27
- }, activationDistance: number) => boolean;
@@ -1,10 +0,0 @@
1
- import type { AutoSizeColumnsMode } from '../model/gridTypes';
2
- export declare const resolveAutoSizeOnData: (params: {
3
- mode: AutoSizeColumnsMode;
4
- isServerSide: boolean;
5
- rowCount: number;
6
- hasAutoSizedOnMount: boolean;
7
- }) => {
8
- shouldRun: boolean;
9
- nextHasAutoSizedOnMount: boolean;
10
- };
@@ -1,5 +0,0 @@
1
- export declare const shouldMarkCellOverflowTooltip: (params: {
2
- enabled: boolean;
3
- isAutoHeightCell: boolean;
4
- hasRenderCell: boolean;
5
- }) => boolean;
@@ -1,12 +0,0 @@
1
- type CheckboxValueOptions = {
2
- checkedValue?: unknown;
3
- uncheckedValue?: unknown;
4
- };
5
- export declare const resolveCheckboxValues: (editor: CheckboxValueOptions) => {
6
- checkedValue: unknown;
7
- uncheckedValue: unknown;
8
- };
9
- export declare const isCheckboxChecked: (value: unknown, editor: CheckboxValueOptions) => boolean;
10
- export declare const toggleCheckboxValue: (value: unknown, editor: CheckboxValueOptions) => unknown;
11
- export declare const parseCheckboxEditorValue: (raw: string, editor: CheckboxValueOptions) => unknown;
12
- export {};
@@ -1,8 +0,0 @@
1
- export declare const CHUNK_BUDGET_MS = 10;
2
- export declare const nowMs: () => number;
3
- export type RunChunkedOptions = {
4
- budgetMs?: number;
5
- isCancelled?: () => boolean;
6
- onYield?: (done: number, total: number) => void;
7
- };
8
- export declare const runChunked: (total: number, visit: (index: number) => void, { budgetMs, isCancelled, onYield }?: RunChunkedOptions) => Promise<boolean>;
@@ -1,31 +0,0 @@
1
- import type { CellCoord, GridColumn, GridSelection } from '../model/gridTypes';
2
- import type { ServerSideCellEditInput } from './serverSideEdits';
3
- type ClearTarget = {
4
- startRow: number;
5
- endRow: number;
6
- startCol: number;
7
- endCol: number;
8
- };
9
- export declare const resolveClearTarget: (selection: GridSelection, activeCell: CellCoord | null, viewRowCount: number, columnCount: number) => ClearTarget | null;
10
- type ClearCellsArgs<T extends object> = {
11
- rows: T[];
12
- resolveSourceIndex: (viewIndex: number) => number | undefined;
13
- columns: GridColumn<T>[];
14
- selection: GridSelection;
15
- activeCell: CellCoord | null;
16
- viewRowCount: number;
17
- canWriteCell: (originalRowIndex: number, colIndex: number, row: T, column: GridColumn<T>) => boolean;
18
- };
19
- export declare const clearCellsInSelection: <T extends object>({ rows, resolveSourceIndex, columns, selection, activeCell, viewRowCount, canWriteCell, }: ClearCellsArgs<T>) => {
20
- nextRows: T[];
21
- changed: boolean;
22
- };
23
- export declare const buildClearCellEdits: <T extends object>({ getRow, columns, selection, activeCell, viewRowCount, canWriteCell, }: {
24
- getRow: (viewIndex: number) => T | undefined;
25
- columns: GridColumn<T>[];
26
- selection: GridSelection;
27
- activeCell: CellCoord | null;
28
- viewRowCount: number;
29
- canWriteCell: (viewIndex: number, colIndex: number, row: T, column: GridColumn<T>) => boolean;
30
- }) => ServerSideCellEditInput<T>[];
31
- export {};
@@ -1,18 +0,0 @@
1
- import type { GridColumn } from '../model/gridTypes';
2
- export type ColumnAutosizeParams<T> = {
3
- columns: GridColumn<T>[];
4
- getRow: (viewIndex: number) => T;
5
- viewRowCount: number;
6
- gridRoot: HTMLElement | null;
7
- currentWidths: Record<string, number>;
8
- };
9
- export type ColumnWidthAccumulator<T> = {
10
- collect: (row: T) => void;
11
- finalize: (params: {
12
- gridRoot: HTMLElement | null;
13
- currentWidths: Record<string, number>;
14
- }) => Record<string, number>;
15
- };
16
- export declare function createColumnWidthAccumulator<T>(columns: GridColumn<T>[]): ColumnWidthAccumulator<T>;
17
- export declare function canMeasureAutosize(): boolean;
18
- export declare function computeAutosizedColumnWidths<T>({ columns, getRow, viewRowCount, gridRoot, currentWidths, }: ColumnAutosizeParams<T>): Record<string, number>;
@@ -1,4 +0,0 @@
1
- import type { GridColumn } from '../model/gridTypes';
2
- export declare const DEFAULT_FLEX_MIN_WIDTH = 50;
3
- export declare const isFlexingColumn: <T>(column: GridColumn<T>) => boolean;
4
- export declare const computeCenterFlexWidths: <T>(centerColumns: GridColumn<T>[], columnWidths: Record<string, number>, availableWidth: number) => Record<string, number>;