@ishibashi0112/spreadsheet-grid-core 0.39.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 (305) hide show
  1. package/LICENSE +21 -0
  2. package/dist/controllers/autoHeightMeasurer.cjs +1 -0
  3. package/dist/controllers/autoHeightMeasurer.d.ts +30 -0
  4. package/dist/controllers/autoHeightMeasurer.js +74 -0
  5. package/dist/controllers/clipboardController.cjs +2 -0
  6. package/dist/controllers/clipboardController.d.ts +31 -0
  7. package/dist/controllers/clipboardController.js +88 -0
  8. package/dist/controllers/columnAutosizeRunner.cjs +1 -0
  9. package/dist/controllers/columnAutosizeRunner.d.ts +31 -0
  10. package/dist/controllers/columnAutosizeRunner.js +61 -0
  11. package/dist/controllers/columnHeaderDragController.cjs +1 -0
  12. package/dist/controllers/columnHeaderDragController.d.ts +44 -0
  13. package/dist/controllers/columnHeaderDragController.js +256 -0
  14. package/dist/controllers/columnMenuController.cjs +1 -0
  15. package/dist/controllers/columnMenuController.d.ts +49 -0
  16. package/dist/controllers/columnMenuController.js +110 -0
  17. package/dist/controllers/contextMenuController.cjs +1 -0
  18. package/dist/controllers/contextMenuController.d.ts +30 -0
  19. package/dist/controllers/contextMenuController.js +65 -0
  20. package/dist/controllers/debouncedValueStore.cjs +1 -0
  21. package/dist/controllers/debouncedValueStore.d.ts +11 -0
  22. package/dist/controllers/debouncedValueStore.js +22 -0
  23. package/dist/controllers/editController.cjs +1 -0
  24. package/dist/controllers/editController.d.ts +27 -0
  25. package/dist/controllers/editController.js +76 -0
  26. package/dist/controllers/filterPopoverController.cjs +1 -0
  27. package/dist/controllers/filterPopoverController.d.ts +53 -0
  28. package/dist/controllers/filterPopoverController.js +146 -0
  29. package/dist/controllers/globalFilteredOrder.cjs +1 -0
  30. package/dist/controllers/globalFilteredOrder.d.ts +38 -0
  31. package/dist/controllers/globalFilteredOrder.js +78 -0
  32. package/dist/controllers/historyController.cjs +1 -0
  33. package/dist/controllers/historyController.d.ts +28 -0
  34. package/dist/controllers/historyController.js +52 -0
  35. package/dist/controllers/keyboardController.cjs +1 -0
  36. package/dist/controllers/keyboardController.d.ts +36 -0
  37. package/dist/controllers/keyboardController.js +111 -0
  38. package/dist/controllers/panelHeaderDragController.cjs +1 -0
  39. package/dist/controllers/panelHeaderDragController.d.ts +21 -0
  40. package/dist/controllers/panelHeaderDragController.js +32 -0
  41. package/dist/controllers/pointerInteractionsController.cjs +1 -0
  42. package/dist/controllers/pointerInteractionsController.d.ts +74 -0
  43. package/dist/controllers/pointerInteractionsController.js +262 -0
  44. package/dist/controllers/popoverSupport.cjs +1 -0
  45. package/dist/controllers/popoverSupport.d.ts +18 -0
  46. package/dist/controllers/popoverSupport.js +25 -0
  47. package/dist/controllers/rowDragController.cjs +1 -0
  48. package/dist/controllers/rowDragController.d.ts +40 -0
  49. package/dist/controllers/rowDragController.js +192 -0
  50. package/dist/controllers/scrollSyncController.cjs +1 -0
  51. package/dist/controllers/scrollSyncController.d.ts +17 -0
  52. package/dist/controllers/scrollSyncController.js +51 -0
  53. package/dist/controllers/selectOptionsCollector.cjs +1 -0
  54. package/dist/controllers/selectOptionsCollector.d.ts +31 -0
  55. package/dist/controllers/selectOptionsCollector.js +88 -0
  56. package/dist/controllers/serverSideRowModel.cjs +1 -0
  57. package/dist/controllers/serverSideRowModel.d.ts +36 -0
  58. package/dist/controllers/serverSideRowModel.js +153 -0
  59. package/dist/controllers/systemColorSchemeStore.cjs +1 -0
  60. package/dist/controllers/systemColorSchemeStore.d.ts +5 -0
  61. package/dist/controllers/systemColorSchemeStore.js +18 -0
  62. package/dist/controllers/toolPanelController.cjs +1 -0
  63. package/dist/controllers/toolPanelController.d.ts +36 -0
  64. package/dist/controllers/toolPanelController.js +112 -0
  65. package/dist/controllers/tooltipController.cjs +1 -0
  66. package/dist/controllers/tooltipController.d.ts +6 -0
  67. package/dist/controllers/tooltipController.js +75 -0
  68. package/dist/controllers/viewportSyncController.cjs +1 -0
  69. package/dist/controllers/viewportSyncController.d.ts +30 -0
  70. package/dist/controllers/viewportSyncController.js +40 -0
  71. package/dist/engine/columnCommands.cjs +1 -0
  72. package/dist/engine/columnCommands.d.ts +56 -0
  73. package/dist/engine/columnCommands.js +199 -0
  74. package/dist/engine/columnLayout.cjs +1 -0
  75. package/dist/engine/columnLayout.d.ts +43 -0
  76. package/dist/engine/columnLayout.js +91 -0
  77. package/dist/engine/createGridEngine.cjs +1 -0
  78. package/dist/engine/createGridEngine.d.ts +46 -0
  79. package/dist/engine/createGridEngine.js +52 -0
  80. package/dist/engine/filterPopoverCommands.cjs +1 -0
  81. package/dist/engine/filterPopoverCommands.d.ts +56 -0
  82. package/dist/engine/filterPopoverCommands.js +303 -0
  83. package/dist/engine/gridApi.cjs +1 -0
  84. package/dist/engine/gridApi.d.ts +61 -0
  85. package/dist/engine/gridApi.js +389 -0
  86. package/dist/engine/memo.cjs +1 -0
  87. package/dist/engine/memo.d.ts +2 -0
  88. package/dist/engine/memo.js +18 -0
  89. package/dist/engine/notifiers.cjs +1 -0
  90. package/dist/engine/notifiers.d.ts +35 -0
  91. package/dist/engine/notifiers.js +34 -0
  92. package/dist/engine/rowPipeline.cjs +1 -0
  93. package/dist/engine/rowPipeline.d.ts +50 -0
  94. package/dist/engine/rowPipeline.js +84 -0
  95. package/dist/engine/rowSelectionCommands.cjs +1 -0
  96. package/dist/engine/rowSelectionCommands.d.ts +21 -0
  97. package/dist/engine/rowSelectionCommands.js +57 -0
  98. package/dist/engine/verticalLayout.cjs +1 -0
  99. package/dist/engine/verticalLayout.d.ts +52 -0
  100. package/dist/engine/verticalLayout.js +60 -0
  101. package/dist/index.cjs +1 -0
  102. package/dist/index.d.ts +8 -0
  103. package/dist/index.js +5 -0
  104. package/dist/logic/aggregation.cjs +1 -0
  105. package/dist/logic/aggregation.d.ts +13 -0
  106. package/dist/logic/aggregation.js +28 -0
  107. package/dist/logic/autoScrollGeometry.cjs +1 -0
  108. package/dist/logic/autoScrollGeometry.d.ts +27 -0
  109. package/dist/logic/autoScrollGeometry.js +19 -0
  110. package/dist/logic/autoSizeOnData.cjs +1 -0
  111. package/dist/logic/autoSizeOnData.d.ts +10 -0
  112. package/dist/logic/autoSizeOnData.js +19 -0
  113. package/dist/logic/cellOverflowTooltip.cjs +1 -0
  114. package/dist/logic/cellOverflowTooltip.d.ts +5 -0
  115. package/dist/logic/cellOverflowTooltip.js +4 -0
  116. package/dist/logic/checkboxEditor.cjs +1 -0
  117. package/dist/logic/checkboxEditor.d.ts +12 -0
  118. package/dist/logic/checkboxEditor.js +17 -0
  119. package/dist/logic/chunkedLoop.cjs +1 -0
  120. package/dist/logic/chunkedLoop.d.ts +8 -0
  121. package/dist/logic/chunkedLoop.js +18 -0
  122. package/dist/logic/clearCells.cjs +1 -0
  123. package/dist/logic/clearCells.d.ts +31 -0
  124. package/dist/logic/clearCells.js +91 -0
  125. package/dist/logic/columnAutosize.cjs +1 -0
  126. package/dist/logic/columnAutosize.d.ts +18 -0
  127. package/dist/logic/columnAutosize.js +150 -0
  128. package/dist/logic/columnFlex.cjs +1 -0
  129. package/dist/logic/columnFlex.d.ts +4 -0
  130. package/dist/logic/columnFlex.js +60 -0
  131. package/dist/logic/columnReset.cjs +1 -0
  132. package/dist/logic/columnReset.d.ts +7 -0
  133. package/dist/logic/columnReset.js +25 -0
  134. package/dist/logic/contextMenuTarget.cjs +1 -0
  135. package/dist/logic/contextMenuTarget.d.ts +4 -0
  136. package/dist/logic/contextMenuTarget.js +18 -0
  137. package/dist/logic/cx.cjs +1 -0
  138. package/dist/logic/cx.d.ts +1 -0
  139. package/dist/logic/cx.js +6 -0
  140. package/dist/logic/dateFilterCondition.cjs +1 -0
  141. package/dist/logic/dateFilterCondition.d.ts +26 -0
  142. package/dist/logic/dateFilterCondition.js +110 -0
  143. package/dist/logic/dateFilterPresets.cjs +1 -0
  144. package/dist/logic/dateFilterPresets.d.ts +13 -0
  145. package/dist/logic/dateFilterPresets.js +30 -0
  146. package/dist/logic/dateFilterTree.cjs +1 -0
  147. package/dist/logic/dateFilterTree.d.ts +17 -0
  148. package/dist/logic/dateFilterTree.js +75 -0
  149. package/dist/logic/datePickerCalendar.cjs +1 -0
  150. package/dist/logic/datePickerCalendar.d.ts +12 -0
  151. package/dist/logic/datePickerCalendar.js +41 -0
  152. package/dist/logic/detailRow.cjs +1 -0
  153. package/dist/logic/detailRow.d.ts +38 -0
  154. package/dist/logic/detailRow.js +78 -0
  155. package/dist/logic/domGuards.cjs +1 -0
  156. package/dist/logic/domGuards.d.ts +7 -0
  157. package/dist/logic/domGuards.js +4 -0
  158. package/dist/logic/editorValues.cjs +1 -0
  159. package/dist/logic/editorValues.d.ts +5 -0
  160. package/dist/logic/editorValues.js +32 -0
  161. package/dist/logic/exportCsv.cjs +3 -0
  162. package/dist/logic/exportCsv.d.ts +12 -0
  163. package/dist/logic/exportCsv.js +19 -0
  164. package/dist/logic/exportData.cjs +1 -0
  165. package/dist/logic/exportData.d.ts +9 -0
  166. package/dist/logic/exportData.js +24 -0
  167. package/dist/logic/exportScope.cjs +1 -0
  168. package/dist/logic/exportScope.d.ts +3 -0
  169. package/dist/logic/exportScope.js +4 -0
  170. package/dist/logic/filterPopoverLayout.cjs +1 -0
  171. package/dist/logic/filterPopoverLayout.d.ts +17 -0
  172. package/dist/logic/filterPopoverLayout.js +13 -0
  173. package/dist/logic/filterPopoverOutsideClick.cjs +1 -0
  174. package/dist/logic/filterPopoverOutsideClick.d.ts +2 -0
  175. package/dist/logic/filterPopoverOutsideClick.js +4 -0
  176. package/dist/logic/filterSummary.cjs +1 -0
  177. package/dist/logic/filterSummary.d.ts +3 -0
  178. package/dist/logic/filterSummary.js +22 -0
  179. package/dist/logic/filtering.cjs +1 -0
  180. package/dist/logic/filtering.d.ts +33 -0
  181. package/dist/logic/filtering.js +313 -0
  182. package/dist/logic/geometry.cjs +1 -0
  183. package/dist/logic/geometry.d.ts +72 -0
  184. package/dist/logic/geometry.js +161 -0
  185. package/dist/logic/gridState.cjs +1 -0
  186. package/dist/logic/gridState.d.ts +13 -0
  187. package/dist/logic/gridState.js +165 -0
  188. package/dist/logic/grouping.cjs +1 -0
  189. package/dist/logic/grouping.d.ts +34 -0
  190. package/dist/logic/grouping.js +93 -0
  191. package/dist/logic/history.cjs +1 -0
  192. package/dist/logic/history.d.ts +16 -0
  193. package/dist/logic/history.js +34 -0
  194. package/dist/logic/inferFilterType.cjs +1 -0
  195. package/dist/logic/inferFilterType.d.ts +19 -0
  196. package/dist/logic/inferFilterType.js +54 -0
  197. package/dist/logic/numberFilterCondition.cjs +1 -0
  198. package/dist/logic/numberFilterCondition.d.ts +21 -0
  199. package/dist/logic/numberFilterCondition.js +130 -0
  200. package/dist/logic/panelDragGeometry.cjs +1 -0
  201. package/dist/logic/panelDragGeometry.d.ts +13 -0
  202. package/dist/logic/panelDragGeometry.js +10 -0
  203. package/dist/logic/rowHeightStore.cjs +1 -0
  204. package/dist/logic/rowHeightStore.d.ts +13 -0
  205. package/dist/logic/rowHeightStore.js +41 -0
  206. package/dist/logic/rowReorder.cjs +1 -0
  207. package/dist/logic/rowReorder.d.ts +18 -0
  208. package/dist/logic/rowReorder.js +22 -0
  209. package/dist/logic/rowSelection.cjs +1 -0
  210. package/dist/logic/rowSelection.d.ts +16 -0
  211. package/dist/logic/rowSelection.js +49 -0
  212. package/dist/logic/scrollHint.cjs +1 -0
  213. package/dist/logic/scrollHint.d.ts +41 -0
  214. package/dist/logic/scrollHint.js +66 -0
  215. package/dist/logic/scrollTargets.cjs +1 -0
  216. package/dist/logic/scrollTargets.d.ts +22 -0
  217. package/dist/logic/scrollTargets.js +24 -0
  218. package/dist/logic/selectEditorState.cjs +1 -0
  219. package/dist/logic/selectEditorState.d.ts +28 -0
  220. package/dist/logic/selectEditorState.js +31 -0
  221. package/dist/logic/selectOptions.cjs +1 -0
  222. package/dist/logic/selectOptions.d.ts +9 -0
  223. package/dist/logic/selectOptions.js +23 -0
  224. package/dist/logic/serverSideBlocks.cjs +1 -0
  225. package/dist/logic/serverSideBlocks.d.ts +2 -0
  226. package/dist/logic/serverSideBlocks.js +14 -0
  227. package/dist/logic/serverSideCache.cjs +1 -0
  228. package/dist/logic/serverSideCache.d.ts +14 -0
  229. package/dist/logic/serverSideCache.js +42 -0
  230. package/dist/logic/serverSideEdits.cjs +1 -0
  231. package/dist/logic/serverSideEdits.d.ts +16 -0
  232. package/dist/logic/serverSideEdits.js +47 -0
  233. package/dist/logic/serverSideQuery.cjs +1 -0
  234. package/dist/logic/serverSideQuery.d.ts +7 -0
  235. package/dist/logic/serverSideQuery.js +21 -0
  236. package/dist/logic/setFilterSearch.cjs +1 -0
  237. package/dist/logic/setFilterSearch.d.ts +14 -0
  238. package/dist/logic/setFilterSearch.js +14 -0
  239. package/dist/logic/setFilterSelection.cjs +1 -0
  240. package/dist/logic/setFilterSelection.d.ts +5 -0
  241. package/dist/logic/setFilterSelection.js +4 -0
  242. package/dist/logic/slotDom.cjs +1 -0
  243. package/dist/logic/slotDom.d.ts +8 -0
  244. package/dist/logic/slotDom.js +22 -0
  245. package/dist/logic/slotProps.cjs +1 -0
  246. package/dist/logic/slotProps.d.ts +18 -0
  247. package/dist/logic/slotProps.js +63 -0
  248. package/dist/logic/sorting.cjs +1 -0
  249. package/dist/logic/sorting.d.ts +11 -0
  250. package/dist/logic/sorting.js +96 -0
  251. package/dist/logic/textFilterCondition.cjs +1 -0
  252. package/dist/logic/textFilterCondition.d.ts +18 -0
  253. package/dist/logic/textFilterCondition.js +55 -0
  254. package/dist/logic/theme.cjs +1 -0
  255. package/dist/logic/theme.d.ts +3 -0
  256. package/dist/logic/theme.js +4 -0
  257. package/dist/logic/tooltipGeometry.cjs +1 -0
  258. package/dist/logic/tooltipGeometry.d.ts +19 -0
  259. package/dist/logic/tooltipGeometry.js +16 -0
  260. package/dist/logic/validation.cjs +1 -0
  261. package/dist/logic/validation.d.ts +14 -0
  262. package/dist/logic/validation.js +47 -0
  263. package/dist/logic/valueFormatters.cjs +1 -0
  264. package/dist/logic/valueFormatters.d.ts +9 -0
  265. package/dist/logic/valueFormatters.js +17 -0
  266. package/dist/logic/valueStore.cjs +1 -0
  267. package/dist/logic/valueStore.d.ts +6 -0
  268. package/dist/logic/valueStore.js +18 -0
  269. package/dist/logic/verticalGeometry.cjs +1 -0
  270. package/dist/logic/verticalGeometry.d.ts +58 -0
  271. package/dist/logic/verticalGeometry.js +90 -0
  272. package/dist/model/gridActions.cjs +1 -0
  273. package/dist/model/gridActions.d.ts +125 -0
  274. package/dist/model/gridActions.js +114 -0
  275. package/dist/model/gridReducer.cjs +1 -0
  276. package/dist/model/gridReducer.d.ts +4 -0
  277. package/dist/model/gridReducer.js +247 -0
  278. package/dist/model/gridSelectors.cjs +1 -0
  279. package/dist/model/gridSelectors.d.ts +40 -0
  280. package/dist/model/gridSelectors.js +68 -0
  281. package/dist/model/gridStore.cjs +1 -0
  282. package/dist/model/gridStore.d.ts +24 -0
  283. package/dist/model/gridStore.js +38 -0
  284. package/dist/model/gridTypes.core.cjs +1 -0
  285. package/dist/model/gridTypes.core.d.ts +797 -0
  286. package/dist/model/gridTypes.core.js +0 -0
  287. package/dist/model/gridTypes.unbound.cjs +1 -0
  288. package/dist/model/gridTypes.unbound.d.ts +31 -0
  289. package/dist/model/gridTypes.unbound.js +0 -0
  290. package/dist/testing/index.cjs +1 -0
  291. package/dist/testing/index.d.ts +5 -0
  292. package/dist/testing/index.js +51 -0
  293. package/dist/utils/clipboard.cjs +7 -0
  294. package/dist/utils/clipboard.d.ts +29 -0
  295. package/dist/utils/clipboard.js +110 -0
  296. package/dist/utils/excelColumnName.cjs +1 -0
  297. package/dist/utils/excelColumnName.d.ts +1 -0
  298. package/dist/utils/excelColumnName.js +9 -0
  299. package/dist/utils/permissions.cjs +1 -0
  300. package/dist/utils/permissions.d.ts +4 -0
  301. package/dist/utils/permissions.js +7 -0
  302. package/dist/utils/scheduler.cjs +1 -0
  303. package/dist/utils/scheduler.d.ts +1 -0
  304. package/dist/utils/scheduler.js +13 -0
  305. package/package.json +58 -0
@@ -0,0 +1,56 @@
1
+ import type { ColumnFilterUiType, ColumnFilterValue, GridColumn } from '../model/gridTypes.unbound';
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>;
@@ -0,0 +1,303 @@
1
+ import { gridActions as e } from "../model/gridActions.js";
2
+ import { isDateSetColumnFilterValue as t, isNumberSetColumnFilterValue as n, isSetColumnFilterValue as r, isTextSetColumnFilterValue as i } from "../logic/filtering.js";
3
+ import { DEFAULT_NUMBER_FILTER_DRAFT as a, buildNumberColumnFilterValueFromDraft as o, buildParsedNumberFilterFromDraft as s } from "../logic/numberFilterCondition.js";
4
+ import { DEFAULT_TEXT_FILTER_DRAFT as c, buildParsedTextFilterFromDraft as l } from "../logic/textFilterCondition.js";
5
+ import { DEFAULT_DATE_FILTER_DRAFT as u, buildParsedDateFilterFromDraft as d } from "../logic/dateFilterCondition.js";
6
+ import { createMemo as f } from "./memo.js";
7
+ import { isSetValueSelected as p } from "../logic/setFilterSelection.js";
8
+ import { normalizeDateSetOptions as m } from "../logic/dateFilterTree.js";
9
+ //#region src/engine/filterPopoverCommands.ts
10
+ var h = (e, t) => {
11
+ let n = new Set(e);
12
+ return n.add(t), n;
13
+ }, g = (e, t) => {
14
+ let n = new Set(e);
15
+ return n.delete(t), n;
16
+ }, _ = (e, t) => {
17
+ let n = new Set(e);
18
+ for (let e of t) n.add(e);
19
+ return n;
20
+ }, v = (e, t) => {
21
+ let n = new Set(e);
22
+ for (let e of t) n.delete(e);
23
+ return n;
24
+ }, y = () => {
25
+ let e = f((e, t) => e ? m(t) : t), a = f((e, t, n) => e ? new Set(t.map((e) => e.value)) : n), o = f((e) => {
26
+ let a = r(e) ? e : n(e) || i(e) || t(e) ? e.set : null;
27
+ return a ? {
28
+ mode: a.mode === "exclude" ? "exclude" : "include",
29
+ values: new Set(a.values)
30
+ } : null;
31
+ });
32
+ return (t) => {
33
+ let { openedFilterColumn: n, openedFilterType: r, openedFilterSelectOptions: i, openedFilterAllValues: s, columnFilters: c } = t, l = r === "dateSet", u = e(l, i), d = a(l, u, s), f = n ? c[n.key] : void 0;
34
+ return {
35
+ isDateSetFilterColumn: l,
36
+ openedPopoverSelectOptions: u,
37
+ openedPopoverAllValues: d,
38
+ openedSetFilterValue: f,
39
+ openedSetSelection: o(f),
40
+ openedColumnCanInvert: !(n?.filterOptions && n.filterOptions.length > 0),
41
+ isComboFilterColumn: r === "numberSet" || r === "textSet" || r === "dateSet"
42
+ };
43
+ };
44
+ }, b = () => {
45
+ let f = null, m = () => {
46
+ if (f === null) throw Error("[SpreadsheetGrid] filterPopoverCommands は update 前に呼べません。");
47
+ return f;
48
+ }, y = (e, r) => {
49
+ let { openedFilterColumn: a, openedFilterType: o, columnFilters: s } = m(), c = a?.key === e ? o : void 0, l = s[e];
50
+ if (c === "numberSet") {
51
+ let e = n(l) ? l.condition : null;
52
+ return !e && !r ? null : {
53
+ kind: "numberSet",
54
+ condition: e,
55
+ set: r
56
+ };
57
+ }
58
+ if (c === "textSet") {
59
+ let e = i(l) ? l.condition : null;
60
+ return !e && !r ? null : {
61
+ kind: "textSet",
62
+ condition: e,
63
+ set: r
64
+ };
65
+ }
66
+ if (c === "dateSet") {
67
+ let e = t(l) ? l.condition : null;
68
+ return !e && !r ? null : {
69
+ kind: "dateSet",
70
+ condition: e,
71
+ set: r
72
+ };
73
+ }
74
+ return null;
75
+ }, b = (t, n, r) => {
76
+ let { openedFilterColumn: i, derived: a, dispatch: o } = m(), s = i?.key === t && a.isComboFilterColumn, c = n.mode === "include" ? n.values.size : r - n.values.size;
77
+ if (c >= r) {
78
+ if (s) {
79
+ let n = y(t, null);
80
+ if (n) {
81
+ o(e.setColumnFilter(t, n));
82
+ return;
83
+ }
84
+ }
85
+ o(e.clearColumnFilter(t));
86
+ return;
87
+ }
88
+ let l = c <= 0 ? {
89
+ mode: "include",
90
+ values: []
91
+ } : {
92
+ mode: n.mode,
93
+ values: Array.from(n.values)
94
+ };
95
+ if (s) {
96
+ let n = y(t, l);
97
+ if (n) {
98
+ o(e.setColumnFilter(t, n));
99
+ return;
100
+ }
101
+ }
102
+ let u = {
103
+ kind: "set",
104
+ ...l
105
+ };
106
+ o(e.setColumnFilter(t, u));
107
+ }, x = (e) => {
108
+ let { filterPopoverState: t, derived: n } = m();
109
+ if (!t) return;
110
+ let { openedPopoverSelectOptions: r, openedSetSelection: i, openedColumnCanInvert: a, openedPopoverAllValues: o } = n, s = r.length, c;
111
+ c = p(i, e) ? i === null ? a ? {
112
+ mode: "exclude",
113
+ values: /* @__PURE__ */ new Set([e])
114
+ } : {
115
+ mode: "include",
116
+ values: g(o, e)
117
+ } : i.mode === "include" ? {
118
+ mode: "include",
119
+ values: g(i.values, e)
120
+ } : {
121
+ mode: "exclude",
122
+ values: h(i.values, e)
123
+ } : i.mode === "include" ? {
124
+ mode: "include",
125
+ values: h(i.values, e)
126
+ } : {
127
+ mode: "exclude",
128
+ values: g(i.values, e)
129
+ }, b(t.columnKey, c, s);
130
+ }, S = (e, t) => {
131
+ let { filterPopoverState: n, derived: r } = m();
132
+ if (!n) return;
133
+ let i = n.columnKey, { openedPopoverSelectOptions: a, openedSetSelection: o, openedColumnCanInvert: s, openedPopoverAllValues: c } = r, l = a.length;
134
+ if (e === "all") {
135
+ b(i, t ? {
136
+ mode: "exclude",
137
+ values: /* @__PURE__ */ new Set()
138
+ } : {
139
+ mode: "include",
140
+ values: /* @__PURE__ */ new Set()
141
+ }, l);
142
+ return;
143
+ }
144
+ let u;
145
+ if (t) {
146
+ if (o === null) {
147
+ b(i, {
148
+ mode: "exclude",
149
+ values: /* @__PURE__ */ new Set()
150
+ }, l);
151
+ return;
152
+ }
153
+ u = o.mode === "include" ? {
154
+ mode: "include",
155
+ values: _(o.values, e)
156
+ } : {
157
+ mode: "exclude",
158
+ values: v(o.values, e)
159
+ };
160
+ } else u = o === null ? s ? {
161
+ mode: "exclude",
162
+ values: new Set(e)
163
+ } : {
164
+ mode: "include",
165
+ values: v(c, e)
166
+ } : o.mode === "include" ? {
167
+ mode: "include",
168
+ values: v(o.values, e)
169
+ } : {
170
+ mode: "exclude",
171
+ values: _(o.values, e)
172
+ };
173
+ b(i, u, l);
174
+ }, C = (e) => {
175
+ let { filterPopoverState: t, derived: n } = m();
176
+ t && b(t.columnKey, {
177
+ mode: "include",
178
+ values: new Set(e)
179
+ }, n.openedPopoverSelectOptions.length);
180
+ }, w = () => {
181
+ let { filterPopoverState: t, openedFilterType: n, dispatch: r, updateNumberDraft: i, updateTextDraft: o, updateDateDraft: s } = m();
182
+ t && (r(e.clearColumnFilter(t.columnKey)), n === "numberSet" && i(a), n === "textSet" && o(c), n === "dateSet" && s(u));
183
+ }, T = (e) => {
184
+ let a = m().columnFilters[e];
185
+ return n(a) || i(a) || t(a) ? a.set : r(a) ? {
186
+ mode: a.mode,
187
+ values: a.values
188
+ } : null;
189
+ }, E = (t, n) => {
190
+ let { filterPopoverState: r, columnFilters: i, dispatch: a } = m();
191
+ if (!r) return;
192
+ let o = r.columnKey, s = T(o);
193
+ if (!t && !s) {
194
+ i[o] && a(e.clearColumnFilter(o));
195
+ return;
196
+ }
197
+ a(e.setColumnFilter(o, n(s)));
198
+ }, D = (e) => {
199
+ let { updateNumberDraft: t, openedFilterType: n } = m();
200
+ if (t(e), n !== "numberSet") return;
201
+ let r = s(e);
202
+ E(r !== null, (e) => ({
203
+ kind: "numberSet",
204
+ condition: r,
205
+ set: e
206
+ }));
207
+ }, O = (e) => {
208
+ let { updateTextDraft: t, openedFilterType: n } = m();
209
+ if (t(e), n !== "textSet") return;
210
+ let r = l(e);
211
+ E(r !== null, (e) => ({
212
+ kind: "textSet",
213
+ condition: r,
214
+ set: e
215
+ }));
216
+ }, k = (e) => {
217
+ let { updateDateDraft: t, openedFilterType: n } = m();
218
+ if (t(e), n !== "dateSet") return;
219
+ let r = d(e);
220
+ E(r !== null, (e) => ({
221
+ kind: "dateSet",
222
+ condition: r,
223
+ set: e
224
+ }));
225
+ };
226
+ return {
227
+ update: (e) => {
228
+ f = e;
229
+ },
230
+ handleSetFilterValueToggle: x,
231
+ handleSetFilterSelectAllChange: S,
232
+ handleSetFilterReplaceSelection: C,
233
+ clearSetFilterPopoverValue: w,
234
+ handleNumberConditionDraftChange: D,
235
+ handleTextConditionDraftChange: O,
236
+ handleDateConditionDraftChange: k,
237
+ handleComboConditionClear: () => {
238
+ let { openedFilterType: e } = m();
239
+ if (e === "textSet") {
240
+ O(c);
241
+ return;
242
+ }
243
+ if (e === "dateSet") {
244
+ k(u);
245
+ return;
246
+ }
247
+ D(a);
248
+ },
249
+ handleComboSelectionClear: () => {
250
+ let { filterPopoverState: t, dispatch: n } = m();
251
+ if (!t) return;
252
+ let r = t.columnKey, i = y(r, null);
253
+ if (i) {
254
+ n(e.setColumnFilter(r, i));
255
+ return;
256
+ }
257
+ n(e.clearColumnFilter(r));
258
+ },
259
+ applyFilterPopoverValue: () => {
260
+ let { filterPopoverState: t, openedFilterType: n, dispatch: r, closeColumnFilterPopover: i } = m();
261
+ if (!t) return;
262
+ let a = n ?? "text";
263
+ if (a === "set" || a === "numberSet" || a === "textSet" || a === "dateSet") {
264
+ i();
265
+ return;
266
+ }
267
+ if (a === "number") {
268
+ let n = t.numberDraft ? o(t.numberDraft) : null;
269
+ if (!n) {
270
+ r(e.clearColumnFilter(t.columnKey)), i();
271
+ return;
272
+ }
273
+ r(e.setColumnFilter(t.columnKey, n)), i();
274
+ return;
275
+ }
276
+ let s = a === "select" ? t.draftValue : t.draftValue.trim();
277
+ if (!s) {
278
+ r(e.clearColumnFilter(t.columnKey)), i();
279
+ return;
280
+ }
281
+ let c = a === "select" ? {
282
+ kind: "select",
283
+ value: s
284
+ } : a === "date" ? {
285
+ kind: "date",
286
+ value: s
287
+ } : a === "custom" ? {
288
+ kind: "custom",
289
+ value: s
290
+ } : {
291
+ kind: "text",
292
+ value: s
293
+ };
294
+ r(e.setColumnFilter(t.columnKey, c)), i();
295
+ },
296
+ clearFilterPopoverValue: () => {
297
+ let { filterPopoverState: t, dispatch: n, closeColumnFilterPopover: r } = m();
298
+ t && (n(e.clearColumnFilter(t.columnKey)), r());
299
+ }
300
+ };
301
+ };
302
+ //#endregion
303
+ export { b as createFilterPopoverCommands, y as createFilterPopoverDerivedResolver };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../logic/grouping.cjs"),t=require("../logic/detailRow.cjs"),n=require("../model/gridActions.cjs"),r=require("../logic/geometry.cjs"),i=require("../model/gridSelectors.cjs"),a=require("../logic/validation.cjs"),o=require("../logic/verticalGeometry.cjs"),s=require("../logic/rowSelection.cjs"),c=require("../logic/gridState.cjs"),l=require("../logic/scrollTargets.cjs"),u=require("../logic/exportCsv.cjs"),d=require("../logic/exportData.cjs"),f=require("../logic/exportScope.cjs");var p=()=>{let p=null,m=(e,t,n=`auto`)=>{let r=Math.max(e.scrollHeight-e.clientHeight,0),i=Math.max(e.scrollWidth-e.clientWidth,0),a=Math.min(Math.max(t.top,0),r),o=Math.min(Math.max(t.left,0),i);(Math.round(a)!==Math.round(e.scrollTop)||Math.round(o)!==Math.round(e.scrollLeft))&&p?.markApiScroll(),e.scrollTo({top:a,left:o,behavior:n})},h=(e,t)=>{let n=p?.scrollContainerRef.current??null,r=p;!n||!r||m(n,{top:e===null?n.scrollTop:o.logicalToPhysicalScrollTop(e,r.verticalScaleFactor),left:t===null?n.scrollLeft:t})},g=(e,t)=>{let n=p?.scrollContainerRef.current??null,r=p;if(!n||!r||r.viewRowCount===0)return null;let i=Math.min(Math.max(e,0),r.viewRowCount-1);return l.computeVerticalScrollTarget({rowTop:r.rowMetrics.rowTop(i),rowHeight:r.rowMetrics.cellHeight(i),headerHeight:r.headerHeight,viewportHeight:n.clientHeight,currentScrollTop:o.physicalToLogicalScrollTop(n.scrollTop,r.verticalScaleFactor),align:t})},_=(e,t)=>{let n=p?.scrollContainerRef.current??null,i=p;if(!n||!i)return null;let a=r.computeSinglePaneColumnExtent(i.paneLayout,e);return!a||a.pane!==`center`?null:l.computeHorizontalScrollTarget({cellLeft:i.leftPaneTotalWidth+i.centerLeadingWidth+a.extent.start,cellWidth:a.extent.width,leftPaneWidth:i.leftPaneTotalWidth,rightPaneWidth:i.rightPaneTotalWidth,viewportWidth:n.clientWidth,currentScrollLeft:n.scrollLeft,align:t})},v=(e,t,n)=>{h(g(e,n),_(t,n))},y=e=>{let t=p;if(!t)return null;let n=e=>t.rowModel.getRow(e),r=t.isRowExportable,a=r?(e,n)=>r(e,{viewRowIndex:n,rowKey:t.rowModel.getRowKey(n)??n}):void 0,o=r?(e,n)=>r(e,{viewRowIndex:n,rowKey:t.resolvedRowKeyGetter(e,n)}):void 0,s=f.normalizeExportScope(e);if(s===`raw`)return t.isServerSide?(console.warn(`SpreadsheetGrid: scope 'raw' は serverSide では未ロード行を取得できないため、'view'(ロード済みビュー行)として扱います。全件エクスポートはサーバ側での実施を推奨します。`),{getRow:n,startRow:0,endRow:t.viewRowCount,columns:t.orderedColumns,isRowIncluded:a}):{getRow:e=>t.rows[e],startRow:0,endRow:t.rows.length,columns:t.orderedColumns,isRowIncluded:o};if(s===`rendered`)return{getRow:n,startRow:t.windowFirstRow,endRow:t.windowLastRow>=t.windowFirstRow?t.windowLastRow+1:t.windowFirstRow,columns:t.orderedColumns,isRowIncluded:a};if(s===`selection`){let e=t.uiState.selection;if(!e)return null;if(e.type===`cell`){let r=i.normalizeCellRange(e.range);return{getRow:n,startRow:r.start.row,endRow:r.end.row+1,columns:t.orderedColumns.slice(r.start.col,r.end.col+1),isRowIncluded:a}}if(e.type===`row`){let r=i.normalizeRowRange(e.startRow,e.endRow);return{getRow:n,startRow:r.startRow,endRow:r.endRow+1,columns:t.orderedColumns,isRowIncluded:a}}let r=i.normalizeColumnRange(e.startCol,e.endCol);return{getRow:n,startRow:0,endRow:t.viewRowCount,columns:t.orderedColumns.slice(r.startCol,r.endCol+1),isRowIncluded:a}}return{getRow:n,startRow:0,endRow:t.viewRowCount,columns:t.orderedColumns,isRowIncluded:a}},b=e=>e.filter(e=>!t.isSyntheticColumnKey(e.key)),x=e=>{let t=y(e?.scope??`view`);return t?u.serializeRowsToCsv({getRow:t.getRow,startRow:t.startRow,endRow:t.endRow,columns:b(t.columns),delimiter:e?.delimiter,includeHeaders:e?.includeHeaders,bom:e?.bom,isRowIncluded:t.isRowIncluded}):e?.bom?``:``},S=e=>{let t=y(e?.scope??`view`);return t?d.buildGridExportData({getRow:t.getRow,startRow:t.startRow,endRow:t.endRow,columns:b(t.columns),isRowIncluded:t.isRowIncluded}):{columns:[],rows:[]}};return{update:e=>{p=e},handle:{scrollToRow:(e,t)=>h(g(e,t?.align??`auto`),null),scrollToCell:(e,t,n)=>v(e,t,n?.align??`auto`),scrollToTop:()=>{let e=p?.scrollContainerRef.current??null;e&&m(e,{top:0,left:e.scrollLeft})},scrollToBottom:()=>{let e=p?.scrollContainerRef.current??null,t=p;!e||!t||m(e,{top:Math.max(t.headerHeight+t.physicalBodyHeight-e.clientHeight,0),left:e.scrollLeft})},getScrollPosition:()=>{let e=p?.scrollContainerRef.current??null;return e?{top:e.scrollTop,left:e.scrollLeft}:null},setScrollPosition:(e,t)=>{let n=p?.scrollContainerRef.current??null;n&&m(n,{top:e.top??n.scrollTop,left:e.left??n.scrollLeft},t?.behavior??`auto`)},getVisibleRowRange:()=>{let e=p;return!e||e.windowLastRow<e.windowFirstRow?null:{startIndex:e.windowFirstRow,endIndex:e.windowLastRow+1}},getActiveCell:()=>{let e=p?.uiState.activeCell;return e?{row:e.row,col:e.col}:null},setActiveCell:(e,t)=>{let r=p;r&&(r.dispatch(n.gridActions.activateCell(e)),e&&t?.scrollIntoView&&v(e.row,e.col,`auto`))},getSelection:()=>p?.uiState.selection??null,selectCell:(e,t,r)=>{let i=p;if(!i)return;let a={row:e,col:t};i.dispatch(n.gridActions.startSelection(a)),i.dispatch(n.gridActions.endSelection()),r?.scrollIntoView&&v(e,t,`auto`)},selectRange:(e,t)=>{let r=p;r&&(r.dispatch(n.gridActions.startSelection(e.start)),r.dispatch(n.gridActions.updateSelection(e.end)),r.dispatch(n.gridActions.endSelection()),t?.scrollIntoView&&v(e.end.row,e.end.col,`auto`))},clearSelection:()=>{p?.dispatch(n.gridActions.clearSelection())},getSelectedRows:()=>{let e=p;if(!e)return[];let t=e.uiState.selection;if(!t)return[];let n=[],r=t=>{let r=e.rowModel.getRow(t);r&&n.push(r)};if(t.type===`cell`){let e=i.normalizeCellRange(t.range);for(let t=e.start.row;t<=e.end.row;t+=1)r(t)}else if(t.type===`row`){let e=i.normalizeRowRange(t.startRow,t.endRow);for(let t=e.startRow;t<=e.endRow;t+=1)r(t)}else for(let t=0;t<e.viewRowCount;t+=1)r(t);return n},exportCsv:e=>x(e),downloadCsv:(e,t)=>{if(typeof document>`u`)return;let n=x({...t,bom:t?.bom??!0}),r=new Blob([n],{type:`text/csv;charset=utf-8;`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=e??`export.csv`,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(i)},getExportData:e=>S(e),getState:()=>{let e=p;return e?c.buildGridState(e.uiState.columnWidths,e.uiState.filters,e.uiState.sort,c.extractColumnState(e.columns)):c.buildGridState({},{globalText:``,columnFilters:{}},[],[])},applyState:e=>{let t=p;if(!t)return;let r=c.migrateGridState(e);t.onColumnsChange&&r.columns&&t.onColumnsChange(c.applyColumnState(t.columns,r.columns,r.columnWidths)),t.dispatch(n.gridActions.resetColumnWidths(r.columnWidths)),t.dispatch(n.gridActions.setAllFilters(r.filters)),t.dispatch(n.gridActions.setSort(r.sort))},getRowSelection:()=>{let e=p;return e?s.rowSelectionToModel(e.uiState.rowSelection):{type:`include`,rowKeys:[]}},setRowSelection:e=>{p?.commitRowSelection(s.rowSelectionFromModel(e))},getSelectedRowKeys:()=>{let e=p;if(!e)return[];let t=e.uiState.rowSelection;if(t.mode===`include`)return Array.from(t.keys);let n=[],r=e.rowModel.getRowCount();for(let i=0;i<r;i+=1){if(!e.rowModel.getRow(i))continue;let r=e.rowModel.getRowKey(i)??i;t.keys.has(r)||n.push(r)}return n},getSelectedRowData:()=>{let e=p;if(!e)return[];let t=e.uiState.rowSelection,n=[],r=e.rowModel.getRowCount();for(let i=0;i<r;i+=1){let r=e.rowModel.getRow(i);r&&s.resolveIsRowSelected(t,e.rowModel.getRowKey(i)??i)&&n.push(r)}return n},getSelectedRowCount:()=>{let e=p;return e?s.countSelectedRows(e.uiState.rowSelection,e.leafRowCount):0},isRowSelected:e=>{let t=p;return t?s.resolveIsRowSelected(t.uiState.rowSelection,e):!1},selectAllRows:()=>{p?.commitRowSelection(s.selectAllRows())},clearRowSelection:()=>{p?.commitRowSelection(s.clearRowSelection())},undo:()=>{p?.undoRows()},redo:()=>{p?.redoRows()},canUndo:()=>p?.canUndoRows()??!1,canRedo:()=>p?.canRedoRows()??!1,clearUndoHistory:()=>{p?.clearUndoHistory()},setGroupCollapsed:(e,t)=>{p?.dispatch(n.gridActions.setGroupCollapsed(e,t))},expandAllGroups:()=>{p?.dispatch(n.gridActions.setCollapsedGroupKeys(new Set))},collapseAllGroups:()=>{let t=p;!t||!t.groupTree||t.dispatch(n.gridActions.setCollapsedGroupKeys(new Set(e.collectAllGroupKeys(t.groupTree))))},getGroupRows:()=>{let t=p;return t?.groupTree?e.collectAllGroupRows(t.groupTree):[]},setDetailRowExpanded:(e,r)=>{let i=p;if(!(!i||!i.detailRowEnabled)){if(r&&i.detailIsExpandable){let n=t.findDetailRowIndex(i.rowModel,e,i.detailIndexCacheRef.current,!i.isServerSide);if(n>=0){let t=i.rowModel.getRow(n);if(t!=null&&!i.detailIsExpandable(t,{rowKey:e,sourceRowIndex:i.rowModel.getSourceIndex(n)}))return}}i.dispatch(n.gridActions.setDetailRowExpanded(e,r))}},getExpandedDetailRowKeys:()=>{let e=p;return e&&e.detailRowEnabled?Array.from(e.uiState.expandedDetailRowKeys):[]},collapseAllDetailRows:()=>{let e=p;!e||!e.detailRowEnabled||e.dispatch(n.gridActions.setExpandedDetailRowKeys(new Set))},moveRow:(e,t)=>{p?.moveRowByKey(e,t)},getInvalidCells:()=>{let e=p;return e?e.isServerSide?(console.warn(`[SpreadsheetGrid] getInvalidCells は serverSide モードでは利用できません(空配列を返します)。`),[]):a.scanInvalidCells(e.rows,e.columns,e.resolvedRowKeyGetter):[]},refreshServerSide:()=>{let e=p;if(e){if(!e.isServerSide){console.warn(`[SpreadsheetGrid] refreshServerSide は clientSide(rows)モードでは何もしません(dataSource 指定時のみ有効です)。`);return}e.serverSideRefresh()}},openFilterManager:()=>{p?.openToolPanel(`filter`)},closeFilterManager:()=>{let e=p;e&&e.activeToolPanelTab===`filter`&&e.closeToolPanel()}},applyScroll:h,verticalTargetFor:g,horizontalTargetFor:_,scrollToCellInternal:v}};exports.createGridApi=p;
@@ -0,0 +1,61 @@
1
+ import type { DetailRowOptions, GridColumn, GridRowKey, GridUiState, RowModel, RowSelectionState, ScrollAlign, SpreadsheetGridHandle, SpreadsheetGridProps } from '../model/gridTypes.unbound';
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 {};