@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,41 @@
1
+ //#region src/logic/rowHeightStore.ts
2
+ var e = (e, t) => {
3
+ let { heights: n, prefix: r, rowCount: i } = e, a = Math.max(t, 0);
4
+ for (let e = a; e < i; e += 1) r[e + 1] = r[e] + n[e];
5
+ }, t = (t, n, r, i) => {
6
+ let a = i ?? /* @__PURE__ */ new Map(), o = Math.max(t, 0), s = new Float64Array(o);
7
+ for (let e = 0; e < o; e += 1) {
8
+ let t = a.get(r(e));
9
+ s[e] = t === void 0 ? n : t;
10
+ }
11
+ let c = {
12
+ rowCount: o,
13
+ estimate: n,
14
+ heights: s,
15
+ prefix: new Float64Array(o + 1),
16
+ measured: a
17
+ };
18
+ return e(c, 0), c;
19
+ }, n = (e, t, n, r) => t < 0 || t >= e.rowCount || (e.measured.set(n, r), e.heights[t] === r) ? !1 : (e.heights[t] = r, !0), r = (e, t, n) => {
20
+ if (t <= 0 || n <= 0) return 0;
21
+ if (n >= e[t]) return t - 1;
22
+ let r = 0, i = t;
23
+ for (; r < i;) {
24
+ let t = r + i + 1 >> 1;
25
+ e[t] <= n ? r = t : i = t - 1;
26
+ }
27
+ return Math.min(Math.max(r, 0), t - 1);
28
+ }, i = (e) => {
29
+ let { prefix: t, rowCount: n } = e;
30
+ return {
31
+ rowCount: n,
32
+ rowTop: (e) => t[Math.min(Math.max(e, 0), n)],
33
+ rowsHeight: (e, r) => t[Math.min(Math.max(r + 1, 0), n)] - t[Math.min(Math.max(e, 0), n)],
34
+ totalBodyHeight: t[n],
35
+ rowAtContentY: (e) => r(t, n, e),
36
+ cellHeight: (e) => t[Math.min(Math.max(e + 1, 0), n)] - t[Math.min(Math.max(e, 0), n)],
37
+ detailHeight: () => 0
38
+ };
39
+ };
40
+ //#endregion
41
+ export { t as buildRowHeightStore, i as createAutoHeightRowMetrics, e as rebuildPrefixFrom, n as setMeasuredRowHeight };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=`__ssg_row_drag_handle__`,t=28,n=(e,t,n)=>{let r=e.length;if(!Number.isInteger(t)||!Number.isInteger(n)||t<0||t>=r||n<0||n>=r||t===n)return e;let i=e.slice(),[a]=i.splice(t,1);return i.splice(n,0,a),i},r=(e,t)=>t===e||t===e+1?null:t>e?t-1:t,i=(e,t)=>{let{rowCount:n}=t;if(n<=0||e<=0)return 0;if(e>=t.totalBodyHeight)return n;let r=t.rowAtContentY(e);return e-t.rowTop(r)<t.cellHeight(r)/2?r:r+1},a=(e,t)=>{let{rowCount:n}=t;return n<=0||e<=0?0:e>=n?t.totalBodyHeight:t.rowTop(e)},o=(e,t)=>{if(e.length!==t)return!1;for(let n=0;n<t;n+=1)if(e[n]!==n)return!1;return!0},s=({enableRowDrag:e,isServerSide:t,rowGroupingActive:n,hasRowsChange:r})=>e&&!t&&!n&&r,c=(e,t)=>e&&t,l=`ソート / フィルター適用中は行を並び替えできません`,u=`ドラッグで行を移動`;exports.ROW_DRAG_DISABLED_TOOLTIP=l,exports.ROW_DRAG_HANDLE_COLUMN_KEY=e,exports.ROW_DRAG_HANDLE_COLUMN_WIDTH=t,exports.ROW_DRAG_HANDLE_TOOLTIP=u,exports.isIdentityOrder=o,exports.isRowDragAvailable=s,exports.isRowDragOperable=c,exports.moveArrayItem=n,exports.resolveMoveTargetIndex=r,exports.resolveRowDropSlot=i,exports.resolveRowDropSlotTop=a;
@@ -0,0 +1,18 @@
1
+ import type { RowMetrics } from './verticalGeometry';
2
+ export declare const ROW_DRAG_HANDLE_COLUMN_KEY = "__ssg_row_drag_handle__";
3
+ export declare const ROW_DRAG_HANDLE_COLUMN_WIDTH = 28;
4
+ export declare const moveArrayItem: <T>(items: readonly T[], fromIndex: number, toIndex: number) => readonly T[];
5
+ export declare const resolveMoveTargetIndex: (fromIndex: number, dropSlot: number) => number | null;
6
+ export declare const resolveRowDropSlot: (contentY: number, rowMetrics: RowMetrics) => number;
7
+ export declare const resolveRowDropSlotTop: (slot: number, rowMetrics: RowMetrics) => number;
8
+ export declare const isIdentityOrder: (order: ArrayLike<number>, rowCount: number) => boolean;
9
+ export type RowDragAvailabilityArgs = {
10
+ enableRowDrag: boolean;
11
+ isServerSide: boolean;
12
+ rowGroupingActive: boolean;
13
+ hasRowsChange: boolean;
14
+ };
15
+ export declare const isRowDragAvailable: ({ enableRowDrag, isServerSide, rowGroupingActive, hasRowsChange, }: RowDragAvailabilityArgs) => boolean;
16
+ export declare const isRowDragOperable: (available: boolean, orderIsIdentity: boolean) => boolean;
17
+ export declare const ROW_DRAG_DISABLED_TOOLTIP = "\u30BD\u30FC\u30C8 / \u30D5\u30A3\u30EB\u30BF\u30FC\u9069\u7528\u4E2D\u306F\u884C\u3092\u4E26\u3073\u66FF\u3048\u3067\u304D\u307E\u305B\u3093";
18
+ export declare const ROW_DRAG_HANDLE_TOOLTIP = "\u30C9\u30E9\u30C3\u30B0\u3067\u884C\u3092\u79FB\u52D5";
@@ -0,0 +1,22 @@
1
+ //#region src/logic/rowReorder.ts
2
+ var e = "__ssg_row_drag_handle__", t = 28, n = (e, t, n) => {
3
+ let r = e.length;
4
+ if (!Number.isInteger(t) || !Number.isInteger(n) || t < 0 || t >= r || n < 0 || n >= r || t === n) return e;
5
+ let i = e.slice(), [a] = i.splice(t, 1);
6
+ return i.splice(n, 0, a), i;
7
+ }, r = (e, t) => t === e || t === e + 1 ? null : t > e ? t - 1 : t, i = (e, t) => {
8
+ let { rowCount: n } = t;
9
+ if (n <= 0 || e <= 0) return 0;
10
+ if (e >= t.totalBodyHeight) return n;
11
+ let r = t.rowAtContentY(e);
12
+ return e - t.rowTop(r) < t.cellHeight(r) / 2 ? r : r + 1;
13
+ }, a = (e, t) => {
14
+ let { rowCount: n } = t;
15
+ return n <= 0 || e <= 0 ? 0 : e >= n ? t.totalBodyHeight : t.rowTop(e);
16
+ }, o = (e, t) => {
17
+ if (e.length !== t) return !1;
18
+ for (let n = 0; n < t; n += 1) if (e[n] !== n) return !1;
19
+ return !0;
20
+ }, s = ({ enableRowDrag: e, isServerSide: t, rowGroupingActive: n, hasRowsChange: r }) => e && !t && !n && r, c = (e, t) => e && t, l = "ソート / フィルター適用中は行を並び替えできません", u = "ドラッグで行を移動";
21
+ //#endregion
22
+ export { l as ROW_DRAG_DISABLED_TOOLTIP, e as ROW_DRAG_HANDLE_COLUMN_KEY, t as ROW_DRAG_HANDLE_COLUMN_WIDTH, u as ROW_DRAG_HANDLE_TOOLTIP, o as isIdentityOrder, s as isRowDragAvailable, c as isRowDragOperable, n as moveArrayItem, r as resolveMoveTargetIndex, i as resolveRowDropSlot, a as resolveRowDropSlotTop };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=()=>({mode:`include`,keys:new Set}),t=(e,t)=>e.mode===`exclude`?!e.keys.has(t):e.keys.has(t),n=(e,t)=>{let n=new Set(e.keys);return n.has(t)?n.delete(t):n.add(t),{mode:e.mode,keys:n}},r=e=>({mode:`include`,keys:new Set([e])}),i=e=>({mode:`include`,keys:new Set(e)}),a=(e,t)=>{let n=new Set(e.keys);if(e.mode===`exclude`){for(let e of t)n.delete(e);return{mode:`exclude`,keys:n}}for(let e of t)n.add(e);return{mode:`include`,keys:n}},o=()=>({mode:`exclude`,keys:new Set}),s=()=>e(),c=(e,t)=>e.mode===`exclude`?Math.max(0,t-e.keys.size):e.keys.size,l=(e,t)=>{let n=c(e,t);return n<=0?`none`:t>0&&n>=t?`all`:`some`},u=e=>({type:e.mode,rowKeys:Array.from(e.keys)}),d=e=>({mode:e.type,keys:new Set(e.rowKeys)}),f=(e,t)=>{if(e.mode!==t.mode||e.keys.size!==t.keys.size)return!1;for(let n of e.keys)if(!t.keys.has(n))return!1;return!0},p=(e,t)=>f(d(e),d(t));exports.addRowRange=a,exports.clearRowSelection=s,exports.countSelectedRows=c,exports.createEmptyRowSelection=e,exports.getSelectAllState=l,exports.resolveIsRowSelected=t,exports.rowSelectionFromModel=d,exports.rowSelectionModelEquals=p,exports.rowSelectionStateEquals=f,exports.rowSelectionToModel=u,exports.selectAllRows=o,exports.selectRowRange=i,exports.selectSingleRow=r,exports.toggleRowKey=n;
@@ -0,0 +1,16 @@
1
+ import type { GridRowKey, RowSelectionModel, RowSelectionState, SelectAllState } from '../model/gridTypes.unbound';
2
+ export type { RowSelectionModel, RowSelectionState, SelectAllState };
3
+ export declare const createEmptyRowSelection: () => RowSelectionState;
4
+ export declare const resolveIsRowSelected: (state: RowSelectionState, rowKey: GridRowKey) => boolean;
5
+ export declare const toggleRowKey: (state: RowSelectionState, rowKey: GridRowKey) => RowSelectionState;
6
+ export declare const selectSingleRow: (rowKey: GridRowKey) => RowSelectionState;
7
+ export declare const selectRowRange: (rangeKeys: GridRowKey[]) => RowSelectionState;
8
+ export declare const addRowRange: (base: RowSelectionState, rangeKeys: GridRowKey[]) => RowSelectionState;
9
+ export declare const selectAllRows: () => RowSelectionState;
10
+ export declare const clearRowSelection: () => RowSelectionState;
11
+ export declare const countSelectedRows: (state: RowSelectionState, totalRowCount: number) => number;
12
+ export declare const getSelectAllState: (state: RowSelectionState, totalRowCount: number) => SelectAllState;
13
+ export declare const rowSelectionToModel: (state: RowSelectionState) => RowSelectionModel;
14
+ export declare const rowSelectionFromModel: (model: RowSelectionModel) => RowSelectionState;
15
+ export declare const rowSelectionStateEquals: (a: RowSelectionState, b: RowSelectionState) => boolean;
16
+ export declare const rowSelectionModelEquals: (a: RowSelectionModel, b: RowSelectionModel) => boolean;
@@ -0,0 +1,49 @@
1
+ //#region src/logic/rowSelection.ts
2
+ var e = () => ({
3
+ mode: "include",
4
+ keys: /* @__PURE__ */ new Set()
5
+ }), t = (e, t) => e.mode === "exclude" ? !e.keys.has(t) : e.keys.has(t), n = (e, t) => {
6
+ let n = new Set(e.keys);
7
+ return n.has(t) ? n.delete(t) : n.add(t), {
8
+ mode: e.mode,
9
+ keys: n
10
+ };
11
+ }, r = (e) => ({
12
+ mode: "include",
13
+ keys: /* @__PURE__ */ new Set([e])
14
+ }), i = (e) => ({
15
+ mode: "include",
16
+ keys: new Set(e)
17
+ }), a = (e, t) => {
18
+ let n = new Set(e.keys);
19
+ if (e.mode === "exclude") {
20
+ for (let e of t) n.delete(e);
21
+ return {
22
+ mode: "exclude",
23
+ keys: n
24
+ };
25
+ }
26
+ for (let e of t) n.add(e);
27
+ return {
28
+ mode: "include",
29
+ keys: n
30
+ };
31
+ }, o = () => ({
32
+ mode: "exclude",
33
+ keys: /* @__PURE__ */ new Set()
34
+ }), s = () => e(), c = (e, t) => e.mode === "exclude" ? Math.max(0, t - e.keys.size) : e.keys.size, l = (e, t) => {
35
+ let n = c(e, t);
36
+ return n <= 0 ? "none" : t > 0 && n >= t ? "all" : "some";
37
+ }, u = (e) => ({
38
+ type: e.mode,
39
+ rowKeys: Array.from(e.keys)
40
+ }), d = (e) => ({
41
+ mode: e.type,
42
+ keys: new Set(e.rowKeys)
43
+ }), f = (e, t) => {
44
+ if (e.mode !== t.mode || e.keys.size !== t.keys.size) return !1;
45
+ for (let n of e.keys) if (!t.keys.has(n)) return !1;
46
+ return !0;
47
+ }, p = (e, t) => f(d(e), d(t));
48
+ //#endregion
49
+ export { a as addRowRange, s as clearRowSelection, c as countSelectedRows, e as createEmptyRowSelection, l as getSelectAllState, t as resolveIsRowSelected, d as rowSelectionFromModel, p as rowSelectionModelEquals, f as rowSelectionStateEquals, u as rowSelectionToModel, o as selectAllRows, i as selectRowRange, r as selectSingleRow, n as toggleRowKey };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=e=>{if(e===void 0||e===!1)return null;let t=e===!0?{}:e,n=t.bubble??!0,r=t.ruler??!0,i=t.scrollbar??!0;return!n&&!r&&!i?null:{bubble:n,ruler:r,scrollbar:i,trigger:t.trigger??`scroll`,minRows:t.minRows??0,hintColumn:t.hintColumn,renderHint:t.renderHint}},t=30,n=({scrollTop:e,contentHeight:t,viewportHeight:n,trackHeight:r=n})=>{let i=t-n;if(n<=0||r<=0||i<=0)return null;let a=Math.min(Math.max(r*n/t,30),r),o=Math.min(Math.max(e,0),i)/i*(r-a);return{maxScroll:i,thumbTop:o,thumbHeight:a,centerY:o+a/2}},r=44,i=e=>{let t=Math.max(e,1),n=10**Math.floor(Math.log10(t)),r=n<10?[1,2,5,10]:[1,2,2.5,5,10];for(let e of r){let r=n*e;if(r>=t)return r}return n*10},a=(e,t=e>=1e4&&e%1e4==0)=>e!==0&&t?`${(e/1e4).toLocaleString()}万`:e.toLocaleString(),o=({rowCount:e,rulerHeight:t,minTickSpacingPx:n=44})=>{if(e<=0||t<=0)return[];let r=i(e/Math.max(Math.floor(t/n),2)),o=r%1e4==0,s=[];for(let n=0;n<=e;n+=r)s.push({row:n,y:n/e*t,label:a(n,o)});return s},s=(e,t,n)=>{let r=n-t.thumbHeight;return r<=0?0:Math.min(Math.max((e-t.thumbHeight/2)/r,0),1)*t.maxScroll},c=(e,t)=>{if(e.renderHint!==void 0){let n=e.renderHint(t);return n==null||n===!1?null:n}if(e.hintColumn!==void 0&&t.rowData!==void 0){let n=t.rowData[e.hintColumn];return n==null||n===``?null:String(n)}return null};exports.SCROLL_HINT_MIN_THUMB_PX=t,exports.SCROLL_HINT_RULER_MIN_TICK_SPACING_PX=r,exports.computeScrollHintRulerTicks=o,exports.computeScrollHintTrack=n,exports.computeScrollHintTrackPointerScrollTop=s,exports.formatScrollHintRulerValue=a,exports.niceStepAtLeast=i,exports.resolveScrollHintDetail=c,exports.resolveScrollHintOptions=e;
@@ -0,0 +1,41 @@
1
+ import type { GridFrameworkTypes, ScrollHintOptions, ScrollHintRenderArgs, ScrollHintTrigger } from '../model/gridTypes.core';
2
+ export type ResolvedScrollHintOptions<T, F extends GridFrameworkTypes = GridFrameworkTypes> = {
3
+ bubble: boolean;
4
+ ruler: boolean;
5
+ scrollbar: boolean;
6
+ trigger: ScrollHintTrigger;
7
+ minRows: number;
8
+ hintColumn: string | undefined;
9
+ renderHint: ((args: ScrollHintRenderArgs<T>) => F['node']) | undefined;
10
+ };
11
+ export declare const resolveScrollHintOptions: <T, F extends GridFrameworkTypes = GridFrameworkTypes>(input: boolean | ScrollHintOptions<T, F> | undefined) => ResolvedScrollHintOptions<T, F> | null;
12
+ export declare const SCROLL_HINT_MIN_THUMB_PX = 30;
13
+ export type ScrollHintTrackParams = {
14
+ scrollTop: number;
15
+ contentHeight: number;
16
+ viewportHeight: number;
17
+ trackHeight?: number;
18
+ };
19
+ export type ScrollHintTrack = {
20
+ maxScroll: number;
21
+ thumbTop: number;
22
+ thumbHeight: number;
23
+ centerY: number;
24
+ };
25
+ export declare const computeScrollHintTrack: ({ scrollTop, contentHeight, viewportHeight, trackHeight, }: ScrollHintTrackParams) => ScrollHintTrack | null;
26
+ export declare const SCROLL_HINT_RULER_MIN_TICK_SPACING_PX = 44;
27
+ export declare const niceStepAtLeast: (raw: number) => number;
28
+ export declare const formatScrollHintRulerValue: (value: number, useManUnit?: boolean) => string;
29
+ export type ScrollHintRulerTick = {
30
+ row: number;
31
+ y: number;
32
+ label: string;
33
+ };
34
+ export type ScrollHintRulerParams = {
35
+ rowCount: number;
36
+ rulerHeight: number;
37
+ minTickSpacingPx?: number;
38
+ };
39
+ export declare const computeScrollHintRulerTicks: ({ rowCount, rulerHeight, minTickSpacingPx, }: ScrollHintRulerParams) => ScrollHintRulerTick[];
40
+ export declare const computeScrollHintTrackPointerScrollTop: (pointerY: number, track: ScrollHintTrack, trackHeight: number) => number;
41
+ export declare const resolveScrollHintDetail: <T, F extends GridFrameworkTypes = GridFrameworkTypes>(options: Pick<ResolvedScrollHintOptions<T, F>, "hintColumn" | "renderHint">, args: ScrollHintRenderArgs<T>) => F["node"] | string | null;
@@ -0,0 +1,66 @@
1
+ //#region src/logic/scrollHint.ts
2
+ var e = (e) => {
3
+ if (e === void 0 || e === !1) return null;
4
+ let t = e === !0 ? {} : e, n = t.bubble ?? !0, r = t.ruler ?? !0, i = t.scrollbar ?? !0;
5
+ return !n && !r && !i ? null : {
6
+ bubble: n,
7
+ ruler: r,
8
+ scrollbar: i,
9
+ trigger: t.trigger ?? "scroll",
10
+ minRows: t.minRows ?? 0,
11
+ hintColumn: t.hintColumn,
12
+ renderHint: t.renderHint
13
+ };
14
+ }, t = 30, n = ({ scrollTop: e, contentHeight: t, viewportHeight: n, trackHeight: r = n }) => {
15
+ let i = t - n;
16
+ if (n <= 0 || r <= 0 || i <= 0) return null;
17
+ let a = Math.min(Math.max(r * n / t, 30), r), o = Math.min(Math.max(e, 0), i) / i * (r - a);
18
+ return {
19
+ maxScroll: i,
20
+ thumbTop: o,
21
+ thumbHeight: a,
22
+ centerY: o + a / 2
23
+ };
24
+ }, r = 44, i = (e) => {
25
+ let t = Math.max(e, 1), n = 10 ** Math.floor(Math.log10(t)), r = n < 10 ? [
26
+ 1,
27
+ 2,
28
+ 5,
29
+ 10
30
+ ] : [
31
+ 1,
32
+ 2,
33
+ 2.5,
34
+ 5,
35
+ 10
36
+ ];
37
+ for (let e of r) {
38
+ let r = n * e;
39
+ if (r >= t) return r;
40
+ }
41
+ return n * 10;
42
+ }, a = (e, t = e >= 1e4 && e % 1e4 == 0) => e !== 0 && t ? `${(e / 1e4).toLocaleString()}万` : e.toLocaleString(), o = ({ rowCount: e, rulerHeight: t, minTickSpacingPx: n = 44 }) => {
43
+ if (e <= 0 || t <= 0) return [];
44
+ let r = i(e / Math.max(Math.floor(t / n), 2)), o = r % 1e4 == 0, s = [];
45
+ for (let n = 0; n <= e; n += r) s.push({
46
+ row: n,
47
+ y: n / e * t,
48
+ label: a(n, o)
49
+ });
50
+ return s;
51
+ }, s = (e, t, n) => {
52
+ let r = n - t.thumbHeight;
53
+ return r <= 0 ? 0 : Math.min(Math.max((e - t.thumbHeight / 2) / r, 0), 1) * t.maxScroll;
54
+ }, c = (e, t) => {
55
+ if (e.renderHint !== void 0) {
56
+ let n = e.renderHint(t);
57
+ return n == null || n === !1 ? null : n;
58
+ }
59
+ if (e.hintColumn !== void 0 && t.rowData !== void 0) {
60
+ let n = t.rowData[e.hintColumn];
61
+ return n == null || n === "" ? null : String(n);
62
+ }
63
+ return null;
64
+ };
65
+ //#endregion
66
+ export { t as SCROLL_HINT_MIN_THUMB_PX, r as SCROLL_HINT_RULER_MIN_TICK_SPACING_PX, o as computeScrollHintRulerTicks, n as computeScrollHintTrack, s as computeScrollHintTrackPointerScrollTop, a as formatScrollHintRulerValue, i as niceStepAtLeast, c as resolveScrollHintDetail, e as resolveScrollHintOptions };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=({rowTop:e,rowHeight:t,headerHeight:n,viewportHeight:r,currentScrollTop:i,align:a,maxScrollTop:o})=>{let s=n+e,c=s+t,l;if(a===`start`)l=s-n;else if(a===`end`)l=c-r;else if(a===`center`)l=(s+c)/2-(n+r)/2;else{let e=i+n,t=i+r;l=s>=e&&c<=t?i:s<e?s-n:c-r}return Math.min(Math.max(l,0),Math.max(o??1/0,0))},t=({cellLeft:e,cellWidth:t,leftPaneWidth:n,rightPaneWidth:r,viewportWidth:i,currentScrollLeft:a,align:o,maxScrollLeft:s})=>{let c=e+t,l=i-n-r,u;if(o===`start`)u=e-n;else if(o===`end`)u=c-i+r;else if(o===`center`)u=(e+c)/2-n-l/2;else{let t=a+n,o=a+i-r;u=e>=t&&c<=o?a:e<t?e-n:c-i+r}return Math.min(Math.max(u,0),Math.max(s??1/0,0))};exports.computeHorizontalScrollTarget=t,exports.computeVerticalScrollTarget=e;
@@ -0,0 +1,22 @@
1
+ import type { ScrollAlign } from '../model/gridTypes.unbound';
2
+ export type VerticalScrollTargetParams = {
3
+ rowTop: number;
4
+ rowHeight: number;
5
+ headerHeight: number;
6
+ viewportHeight: number;
7
+ currentScrollTop: number;
8
+ align: ScrollAlign;
9
+ maxScrollTop?: number;
10
+ };
11
+ export declare const computeVerticalScrollTarget: ({ rowTop, rowHeight, headerHeight, viewportHeight, currentScrollTop, align, maxScrollTop, }: VerticalScrollTargetParams) => number;
12
+ export type HorizontalScrollTargetParams = {
13
+ cellLeft: number;
14
+ cellWidth: number;
15
+ leftPaneWidth: number;
16
+ rightPaneWidth: number;
17
+ viewportWidth: number;
18
+ currentScrollLeft: number;
19
+ align: ScrollAlign;
20
+ maxScrollLeft?: number;
21
+ };
22
+ export declare const computeHorizontalScrollTarget: ({ cellLeft, cellWidth, leftPaneWidth, rightPaneWidth, viewportWidth, currentScrollLeft, align, maxScrollLeft, }: HorizontalScrollTargetParams) => number;
@@ -0,0 +1,24 @@
1
+ //#region src/logic/scrollTargets.ts
2
+ var e = ({ rowTop: e, rowHeight: t, headerHeight: n, viewportHeight: r, currentScrollTop: i, align: a, maxScrollTop: o }) => {
3
+ let s = n + e, c = s + t, l;
4
+ if (a === "start") l = s - n;
5
+ else if (a === "end") l = c - r;
6
+ else if (a === "center") l = (s + c) / 2 - (n + r) / 2;
7
+ else {
8
+ let e = i + n, t = i + r;
9
+ l = s >= e && c <= t ? i : s < e ? s - n : c - r;
10
+ }
11
+ return Math.min(Math.max(l, 0), Math.max(o ?? Infinity, 0));
12
+ }, t = ({ cellLeft: e, cellWidth: t, leftPaneWidth: n, rightPaneWidth: r, viewportWidth: i, currentScrollLeft: a, align: o, maxScrollLeft: s }) => {
13
+ let c = e + t, l = i - n - r, u;
14
+ if (o === "start") u = e - n;
15
+ else if (o === "end") u = c - i + r;
16
+ else if (o === "center") u = (e + c) / 2 - n - l / 2;
17
+ else {
18
+ let t = a + n, o = a + i - r;
19
+ u = e >= t && c <= o ? a : e < t ? e - n : c - i + r;
20
+ }
21
+ return Math.min(Math.max(u, 0), Math.max(s ?? Infinity, 0));
22
+ };
23
+ //#endregion
24
+ export { t as computeHorizontalScrollTarget, e as computeVerticalScrollTarget };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=180,t=28,n=4,r=8,i=8,a=2,o=700,s=(e,t)=>{let n=String(t??``),r=e.findIndex(e=>e.value===n);return r>=0?r:0},c=(e,t,n)=>{if(n<=0)return 0;let r=e+t;return r<0?0:r>n-1?n-1:r},l=()=>({buffer:``,lastInputTime:0}),u=(e,t,n,r)=>{let i=(n-e.lastInputTime>700?``:e.buffer)+t.toLocaleLowerCase(),a=r.findIndex(e=>e.label.toLocaleLowerCase().startsWith(i));return{state:{buffer:i,lastInputTime:n},index:a>=0?a:null}},d=(e,t,n,o)=>{let s=Math.max(e.width,180),c=Math.max(i,n-s-i),l=Math.min(Math.max(e.left,i),c),u=Math.min(Math.max(t,1),r)*28+8,d=e.bottom+a;return{left:l,top:d+u<=o-i?d:Math.max(i,e.top-a-u),width:s,maxHeight:u}};exports.SELECT_OPTION_ROW_HEIGHT=t,exports.SELECT_POPOVER_MIN_WIDTH=e,exports.SELECT_POPOVER_PADDING_Y=n,exports.SELECT_TYPEAHEAD_RESET_MS=o,exports.computeSelectPopoverPlacement=d,exports.createTypeaheadState=l,exports.moveHighlight=c,exports.resolveInitialHighlight=s,exports.typeaheadJump=u;
@@ -0,0 +1,28 @@
1
+ import type { GridSelectEditorOption } from '../model/gridTypes.unbound';
2
+ export declare const SELECT_POPOVER_MIN_WIDTH = 180;
3
+ export declare const SELECT_OPTION_ROW_HEIGHT = 28;
4
+ export declare const SELECT_POPOVER_PADDING_Y = 4;
5
+ export declare const SELECT_TYPEAHEAD_RESET_MS = 700;
6
+ export declare const resolveInitialHighlight: (options: GridSelectEditorOption[], currentValue: unknown) => number;
7
+ export declare const moveHighlight: (current: number, delta: number, optionCount: number) => number;
8
+ export type SelectTypeaheadState = {
9
+ buffer: string;
10
+ lastInputTime: number;
11
+ };
12
+ export declare const createTypeaheadState: () => SelectTypeaheadState;
13
+ export declare const typeaheadJump: (state: SelectTypeaheadState, key: string, now: number, options: GridSelectEditorOption[]) => {
14
+ state: SelectTypeaheadState;
15
+ index: number | null;
16
+ };
17
+ export type SelectPopoverPlacement = {
18
+ left: number;
19
+ top: number;
20
+ width: number;
21
+ maxHeight: number;
22
+ };
23
+ export declare const computeSelectPopoverPlacement: (anchorRect: {
24
+ left: number;
25
+ top: number;
26
+ bottom: number;
27
+ width: number;
28
+ }, optionCount: number, viewportWidth: number, viewportHeight: number) => SelectPopoverPlacement;
@@ -0,0 +1,31 @@
1
+ //#region src/logic/selectEditorState.ts
2
+ var e = 180, t = 28, n = 4, r = 700, i = (e, t) => {
3
+ let n = String(t ?? ""), r = e.findIndex((e) => e.value === n);
4
+ return r >= 0 ? r : 0;
5
+ }, a = (e, t, n) => {
6
+ if (n <= 0) return 0;
7
+ let r = e + t;
8
+ return r < 0 ? 0 : r > n - 1 ? n - 1 : r;
9
+ }, o = () => ({
10
+ buffer: "",
11
+ lastInputTime: 0
12
+ }), s = (e, t, n, r) => {
13
+ let i = (n - e.lastInputTime > 700 ? "" : e.buffer) + t.toLocaleLowerCase(), a = r.findIndex((e) => e.label.toLocaleLowerCase().startsWith(i));
14
+ return {
15
+ state: {
16
+ buffer: i,
17
+ lastInputTime: n
18
+ },
19
+ index: a >= 0 ? a : null
20
+ };
21
+ }, c = (e, t, n, r) => {
22
+ let i = Math.max(e.width, 180), a = Math.max(8, n - i - 8), o = Math.min(Math.max(e.left, 8), a), s = Math.min(Math.max(t, 1), 8) * 28 + 8, c = e.bottom + 2;
23
+ return {
24
+ left: o,
25
+ top: c + s <= r - 8 ? c : Math.max(8, e.top - 2 - s),
26
+ width: i,
27
+ maxHeight: s
28
+ };
29
+ };
30
+ //#endregion
31
+ export { t as SELECT_OPTION_ROW_HEIGHT, e as SELECT_POPOVER_MIN_WIDTH, n as SELECT_POPOVER_PADDING_Y, r as SELECT_TYPEAHEAD_RESET_MS, c as computeSelectPopoverPlacement, o as createTypeaheadState, a as moveHighlight, i as resolveInitialHighlight, s as typeaheadJump };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./sorting.cjs");var t=()=>{let t=new Set,n=[];return{collect(e){let r=String(e??``);t.has(r)||(t.add(r),n.push({value:r,label:r||`(空白)`}))},finalize(){return n.sort((t,n)=>e.STRING_COLLATOR.compare(t.label,n.label))}}},n=(e,n)=>{let r=t();for(let t=0;t<e;t+=1)r.collect(n(t));return r.finalize()};exports.collectSelectOptions=n,exports.createSelectOptionsAccumulator=t;
@@ -0,0 +1,9 @@
1
+ export type SelectOptionEntry = {
2
+ label: string;
3
+ value: string;
4
+ };
5
+ export declare const createSelectOptionsAccumulator: () => {
6
+ collect(rawValue: unknown): void;
7
+ finalize(): SelectOptionEntry[];
8
+ };
9
+ export declare const collectSelectOptions: (rowCount: number, getRawValueAt: (index: number) => unknown) => SelectOptionEntry[];
@@ -0,0 +1,23 @@
1
+ import { STRING_COLLATOR as e } from "./sorting.js";
2
+ //#region src/logic/selectOptions.ts
3
+ var t = () => {
4
+ let t = /* @__PURE__ */ new Set(), n = [];
5
+ return {
6
+ collect(e) {
7
+ let r = String(e ?? "");
8
+ t.has(r) || (t.add(r), n.push({
9
+ value: r,
10
+ label: r || "(空白)"
11
+ }));
12
+ },
13
+ finalize() {
14
+ return n.sort((t, n) => e.compare(t.label, n.label));
15
+ }
16
+ };
17
+ }, n = (e, n) => {
18
+ let r = t();
19
+ for (let t = 0; t < e; t += 1) r.collect(n(t));
20
+ return r.finalize();
21
+ };
22
+ //#endregion
23
+ export { n as collectSelectOptions, t as createSelectOptionsAccumulator };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});function e(e,t){return Math.floor(e/t)}function t(t,n,r,i){if(r<=0||i<=0)return[];let a=Math.max(0,Math.floor(t)),o=Math.min(i,Math.floor(n));if(o<=a)return[];let s=e(a,r),c=e(o-1,r),l=[];for(let e=s;e<=c;e+=1)l.push(e);return l}exports.blockIndexForRow=e,exports.computeBlockIndexes=t;
@@ -0,0 +1,2 @@
1
+ export declare function blockIndexForRow(viewIndex: number, blockSize: number): number;
2
+ export declare function computeBlockIndexes(startIndex: number, endIndex: number, blockSize: number, rowCount: number): number[];
@@ -0,0 +1,14 @@
1
+ //#region src/logic/serverSideBlocks.ts
2
+ function e(e, t) {
3
+ return Math.floor(e / t);
4
+ }
5
+ function t(t, n, r, i) {
6
+ if (r <= 0 || i <= 0) return [];
7
+ let a = Math.max(0, Math.floor(t)), o = Math.min(i, Math.floor(n));
8
+ if (o <= a) return [];
9
+ let s = e(a, r), c = e(o - 1, r), l = [];
10
+ for (let e = s; e <= c; e += 1) l.push(e);
11
+ return l;
12
+ }
13
+ //#endregion
14
+ export { e as blockIndexForRow, t as computeBlockIndexes };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});function e(e){let t=e.blockSize,n=e.maxBlocks,r=new Map,i=e=>{let t=r.get(e);t!==void 0&&(r.delete(e),r.set(e,t))},a=()=>{for(;r.size>n;){let e=r.keys().next().value;if(e===void 0)break;r.delete(e)}};return{getRow:e=>{if(t<=0||e<0)return;let n=Math.floor(e/t),i=r.get(n);if(i!==void 0)return i[e-n*t]},hasBlock:e=>r.has(e),setBlock:(e,t)=>{r.has(e)&&r.delete(e),r.set(e,t),a()},updateRow:(e,n)=>{if(t<=0||e<0)return!1;let i=Math.floor(e/t),a=r.get(i);if(a===void 0)return!1;let o=e-i*t;if(o>=a.length)return!1;let s=a.slice();return s[o]=n,r.set(i,s),!0},touchBlocks:e=>{for(let t of e)i(t)},clear:()=>{r.clear()},loadedBlockIndexes:()=>Array.from(r.keys())}}exports.createServerSideRowCache=e;
@@ -0,0 +1,14 @@
1
+ export type ServerSideRowCacheOptions = {
2
+ blockSize: number;
3
+ maxBlocks: number;
4
+ };
5
+ export type ServerSideRowCache<T> = {
6
+ getRow: (viewIndex: number) => T | undefined;
7
+ hasBlock: (blockIndex: number) => boolean;
8
+ setBlock: (blockIndex: number, rows: T[]) => void;
9
+ updateRow: (viewIndex: number, row: T) => boolean;
10
+ touchBlocks: (blockIndexes: number[]) => void;
11
+ clear: () => void;
12
+ loadedBlockIndexes: () => number[];
13
+ };
14
+ export declare function createServerSideRowCache<T>(options: ServerSideRowCacheOptions): ServerSideRowCache<T>;
@@ -0,0 +1,42 @@
1
+ //#region src/logic/serverSideCache.ts
2
+ function e(e) {
3
+ let t = e.blockSize, n = e.maxBlocks, r = /* @__PURE__ */ new Map(), i = (e) => {
4
+ let t = r.get(e);
5
+ t !== void 0 && (r.delete(e), r.set(e, t));
6
+ }, a = () => {
7
+ for (; r.size > n;) {
8
+ let e = r.keys().next().value;
9
+ if (e === void 0) break;
10
+ r.delete(e);
11
+ }
12
+ };
13
+ return {
14
+ getRow: (e) => {
15
+ if (t <= 0 || e < 0) return;
16
+ let n = Math.floor(e / t), i = r.get(n);
17
+ if (i !== void 0) return i[e - n * t];
18
+ },
19
+ hasBlock: (e) => r.has(e),
20
+ setBlock: (e, t) => {
21
+ r.has(e) && r.delete(e), r.set(e, t), a();
22
+ },
23
+ updateRow: (e, n) => {
24
+ if (t <= 0 || e < 0) return !1;
25
+ let i = Math.floor(e / t), a = r.get(i);
26
+ if (a === void 0) return !1;
27
+ let o = e - i * t;
28
+ if (o >= a.length) return !1;
29
+ let s = a.slice();
30
+ return s[o] = n, r.set(i, s), !0;
31
+ },
32
+ touchBlocks: (e) => {
33
+ for (let t of e) i(t);
34
+ },
35
+ clear: () => {
36
+ r.clear();
37
+ },
38
+ loadedBlockIndexes: () => Array.from(r.keys())
39
+ };
40
+ }
41
+ //#endregion
42
+ export { e as createServerSideRowCache };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils/permissions.cjs");var t=()=>{let e=new Map,t=1,n=t=>e.get(t)?.row,r=(n,r)=>{let i=t;return t+=1,e.set(n,{row:r,writeId:i}),i},i=(t,n)=>e.get(t)?.writeId===n;return{getRow:n,beginWrite:r,isLatestWrite:i,settleWrite:(t,n)=>{i(t,n)&&e.delete(t)},clear:()=>{e.clear()},pendingCount:()=>e.size}},n=(t,n,r)=>{let i=new Map;for(let a of t){let t=i.get(a.viewIndex);if(t===void 0){let e=n(a.viewIndex);if(e===void 0)continue;t={rowKey:r(e,a.viewIndex),rowIndex:a.viewIndex,row:e,previousRow:e,changes:[]},i.set(a.viewIndex,t)}t.changes.push({columnKey:a.column.key,previousValue:e.getCellValue(t.row,a.column),newValue:a.value}),t.row=e.setCellValue(t.row,a.column,a.value)}return Array.from(i.values())};exports.buildServerSideRowUpdates=n,exports.createServerSidePendingEdits=t;
@@ -0,0 +1,16 @@
1
+ import type { GridColumn, GridRowKey, ServerSideRowUpdate } from '../model/gridTypes.unbound';
2
+ export type ServerSideCellEditInput<T> = {
3
+ viewIndex: number;
4
+ column: GridColumn<T>;
5
+ value: unknown;
6
+ };
7
+ export type ServerSidePendingEdits<T> = {
8
+ getRow: (viewIndex: number) => T | undefined;
9
+ beginWrite: (viewIndex: number, row: T) => number;
10
+ isLatestWrite: (viewIndex: number, writeId: number) => boolean;
11
+ settleWrite: (viewIndex: number, writeId: number) => void;
12
+ clear: () => void;
13
+ pendingCount: () => number;
14
+ };
15
+ export declare const createServerSidePendingEdits: <T>() => ServerSidePendingEdits<T>;
16
+ export declare const buildServerSideRowUpdates: <T>(edits: ServerSideCellEditInput<T>[], getBaseRow: (viewIndex: number) => T | undefined, getRowKey: (row: T, viewIndex: number) => GridRowKey) => ServerSideRowUpdate<T>[];
@@ -0,0 +1,47 @@
1
+ import { getCellValue as e, setCellValue as t } from "../utils/permissions.js";
2
+ //#region src/logic/serverSideEdits.ts
3
+ var n = () => {
4
+ let e = /* @__PURE__ */ new Map(), t = 1, n = (t) => e.get(t)?.row, r = (n, r) => {
5
+ let i = t;
6
+ return t += 1, e.set(n, {
7
+ row: r,
8
+ writeId: i
9
+ }), i;
10
+ }, i = (t, n) => e.get(t)?.writeId === n;
11
+ return {
12
+ getRow: n,
13
+ beginWrite: r,
14
+ isLatestWrite: i,
15
+ settleWrite: (t, n) => {
16
+ i(t, n) && e.delete(t);
17
+ },
18
+ clear: () => {
19
+ e.clear();
20
+ },
21
+ pendingCount: () => e.size
22
+ };
23
+ }, r = (n, r, i) => {
24
+ let a = /* @__PURE__ */ new Map();
25
+ for (let o of n) {
26
+ let n = a.get(o.viewIndex);
27
+ if (n === void 0) {
28
+ let e = r(o.viewIndex);
29
+ if (e === void 0) continue;
30
+ n = {
31
+ rowKey: i(e, o.viewIndex),
32
+ rowIndex: o.viewIndex,
33
+ row: e,
34
+ previousRow: e,
35
+ changes: []
36
+ }, a.set(o.viewIndex, n);
37
+ }
38
+ n.changes.push({
39
+ columnKey: o.column.key,
40
+ previousValue: e(n.row, o.column),
41
+ newValue: o.value
42
+ }), n.row = t(n.row, o.column, o.value);
43
+ }
44
+ return Array.from(a.values());
45
+ };
46
+ //#endregion
47
+ export { r as buildServerSideRowUpdates, n as createServerSidePendingEdits };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./filtering.cjs");var t=t=>{let n={},r=t.globalText.trim();r.length>0&&(n.globalText=r);let i={},a=!1;for(let n of Object.keys(t.columnFilters)){let r=t.columnFilters[n];e.isActiveColumnFilterValue(r)&&(i[n]=r,a=!0)}return a&&(n.columnFilters=i),t.sort.length>0&&(n.sort=t.sort),n},n=e=>{let t=e.columnFilters??{},n=Object.keys(t).sort().map(e=>[e,t[e]]),r=e.sort??[];return JSON.stringify({g:e.globalText??``,s:r.map(e=>[e.columnKey,e.direction]),c:n})};exports.buildServerSideQuery=t,exports.serializeServerSideQuery=n;
@@ -0,0 +1,7 @@
1
+ import type { ColumnFilterValue, GridSortState, ServerSideQuery } from '../model/gridTypes.unbound';
2
+ export declare const buildServerSideQuery: (input: {
3
+ globalText: string;
4
+ columnFilters: Record<string, ColumnFilterValue>;
5
+ sort: GridSortState;
6
+ }) => ServerSideQuery;
7
+ export declare const serializeServerSideQuery: (query: ServerSideQuery) => string;
@@ -0,0 +1,21 @@
1
+ import { isActiveColumnFilterValue as e } from "./filtering.js";
2
+ //#region src/logic/serverSideQuery.ts
3
+ var t = (t) => {
4
+ let n = {}, r = t.globalText.trim();
5
+ r.length > 0 && (n.globalText = r);
6
+ let i = {}, a = !1;
7
+ for (let n of Object.keys(t.columnFilters)) {
8
+ let r = t.columnFilters[n];
9
+ e(r) && (i[n] = r, a = !0);
10
+ }
11
+ return a && (n.columnFilters = i), t.sort.length > 0 && (n.sort = t.sort), n;
12
+ }, n = (e) => {
13
+ let t = e.columnFilters ?? {}, n = Object.keys(t).sort().map((e) => [e, t[e]]), r = e.sort ?? [];
14
+ return JSON.stringify({
15
+ g: e.globalText ?? "",
16
+ s: r.map((e) => [e.columnKey, e.direction]),
17
+ c: n
18
+ });
19
+ };
20
+ //#endregion
21
+ export { t as buildServerSideQuery, n as serializeServerSideQuery };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t)=>{let n=t.trim().toLowerCase();return n?e.filter(e=>e.label.toLowerCase().includes(n)):e},t=(t,n)=>{if(!n.trim())return{kind:`close`};let r=e(t,n);return r.length===0?{kind:`none`}:{kind:`replace`,values:r.map(e=>e.value)}};exports.filterSetOptionsBySearch=e,exports.resolveSetFilterEnterAction=t;
@@ -0,0 +1,14 @@
1
+ export type SetFilterSearchOption = {
2
+ label: string;
3
+ value: string;
4
+ };
5
+ export declare const filterSetOptionsBySearch: <O extends SetFilterSearchOption>(options: O[], searchText: string) => O[];
6
+ export type SetFilterEnterAction = {
7
+ kind: 'close';
8
+ } | {
9
+ kind: 'none';
10
+ } | {
11
+ kind: 'replace';
12
+ values: string[];
13
+ };
14
+ export declare const resolveSetFilterEnterAction: (options: SetFilterSearchOption[], searchText: string) => SetFilterEnterAction;