@dxos/plugin-sheet 0.8.4-main.fd6878d → 0.8.4-staging.60fe92afc8

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 (393) hide show
  1. package/LICENSE +102 -5
  2. package/PLUGIN.mdl +359 -0
  3. package/dist/lib/neutral/RangeList-HYB5S6KQ.mjs +46 -0
  4. package/dist/lib/neutral/RangeList-HYB5S6KQ.mjs.map +7 -0
  5. package/dist/lib/neutral/SheetArticle-5AJRM3V3.mjs +33 -0
  6. package/dist/lib/neutral/SheetArticle-5AJRM3V3.mjs.map +7 -0
  7. package/dist/lib/neutral/SheetPlugin.mjs +63 -0
  8. package/dist/lib/neutral/SheetPlugin.mjs.map +7 -0
  9. package/dist/lib/neutral/SheetPlugin.node.mjs +27 -0
  10. package/dist/lib/neutral/SheetPlugin.node.mjs.map +7 -0
  11. package/dist/lib/neutral/SheetPlugin.workerd.mjs +21 -0
  12. package/dist/lib/neutral/SheetPlugin.workerd.mjs.map +7 -0
  13. package/dist/lib/neutral/anchor-sort-2POWTKTD.mjs +22 -0
  14. package/dist/lib/neutral/anchor-sort-2POWTKTD.mjs.map +7 -0
  15. package/dist/lib/neutral/app-graph-builder-2QP6GYB2.mjs +67 -0
  16. package/dist/lib/neutral/app-graph-builder-2QP6GYB2.mjs.map +7 -0
  17. package/dist/lib/neutral/capabilities/index.mjs +29 -0
  18. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  19. package/dist/lib/neutral/chunk-BGR7FVNF.mjs +8 -0
  20. package/dist/lib/neutral/chunk-BGR7FVNF.mjs.map +7 -0
  21. package/dist/lib/{browser/chunk-VTTKAHAY.mjs → neutral/chunk-ERHMBRSU.mjs} +16 -16
  22. package/dist/lib/neutral/chunk-ERHMBRSU.mjs.map +7 -0
  23. package/dist/lib/neutral/chunk-FQHTXKMF.mjs +34 -0
  24. package/dist/lib/neutral/chunk-FQHTXKMF.mjs.map +7 -0
  25. package/dist/lib/neutral/chunk-HEN74ZWI.mjs +83 -0
  26. package/dist/lib/neutral/chunk-HEN74ZWI.mjs.map +7 -0
  27. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  28. package/dist/lib/neutral/chunk-KUWATEHB.mjs +374 -0
  29. package/dist/lib/neutral/chunk-KUWATEHB.mjs.map +7 -0
  30. package/dist/lib/neutral/chunk-S2UNH6VD.mjs +10 -0
  31. package/dist/lib/neutral/chunk-S2UNH6VD.mjs.map +7 -0
  32. package/dist/lib/neutral/comment-config-WGXXX5FG.mjs +22 -0
  33. package/dist/lib/neutral/comment-config-WGXXX5FG.mjs.map +7 -0
  34. package/dist/lib/neutral/components/index.mjs +1552 -0
  35. package/dist/lib/neutral/components/index.mjs.map +7 -0
  36. package/dist/lib/neutral/compute-graph-registry-YYINTFC2.mjs +26 -0
  37. package/dist/lib/neutral/compute-graph-registry-YYINTFC2.mjs.map +7 -0
  38. package/dist/lib/neutral/containers/index.mjs +11 -0
  39. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  40. package/dist/lib/neutral/create-object-TDQQ24IB.mjs +31 -0
  41. package/dist/lib/neutral/create-object-TDQQ24IB.mjs.map +7 -0
  42. package/dist/lib/neutral/drop-axis-WSWFOLQN.mjs +23 -0
  43. package/dist/lib/neutral/drop-axis-WSWFOLQN.mjs.map +7 -0
  44. package/dist/lib/{node-esm/types → neutral}/index.mjs +22 -13
  45. package/dist/lib/neutral/insert-axis-6UQJTIWC.mjs +16 -0
  46. package/dist/lib/neutral/insert-axis-6UQJTIWC.mjs.map +7 -0
  47. package/dist/lib/neutral/markdown-extension-HTJDICGT.mjs +28 -0
  48. package/dist/lib/neutral/markdown-extension-HTJDICGT.mjs.map +7 -0
  49. package/dist/lib/neutral/meta.json +1 -0
  50. package/dist/lib/neutral/meta.mjs +8 -0
  51. package/dist/lib/neutral/meta.mjs.map +7 -0
  52. package/dist/lib/neutral/navigation-resolver-FXEZYO7G.mjs +14 -0
  53. package/dist/lib/neutral/navigation-resolver-FXEZYO7G.mjs.map +7 -0
  54. package/dist/lib/neutral/operation-handler-TB6LFV2H.mjs +13 -0
  55. package/dist/lib/neutral/operation-handler-TB6LFV2H.mjs.map +7 -0
  56. package/dist/lib/neutral/operations/index.mjs +8 -0
  57. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  58. package/dist/lib/neutral/plugin.mjs +16 -0
  59. package/dist/lib/neutral/plugin.mjs.map +7 -0
  60. package/dist/lib/neutral/react-surface-4H3PC4WG.mjs +44 -0
  61. package/dist/lib/neutral/react-surface-4H3PC4WG.mjs.map +7 -0
  62. package/dist/lib/neutral/restore-axis-AMMVTPS3.mjs +16 -0
  63. package/dist/lib/neutral/restore-axis-AMMVTPS3.mjs.map +7 -0
  64. package/dist/lib/neutral/scroll-to-anchor-FK2CXCQR.mjs +33 -0
  65. package/dist/lib/neutral/scroll-to-anchor-FK2CXCQR.mjs.map +7 -0
  66. package/dist/lib/neutral/state-HPA27MX2.mjs +29 -0
  67. package/dist/lib/neutral/state-HPA27MX2.mjs.map +7 -0
  68. package/dist/lib/neutral/testing/index.mjs +103 -0
  69. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  70. package/dist/lib/neutral/translations.mjs +56 -0
  71. package/dist/lib/neutral/translations.mjs.map +7 -0
  72. package/dist/lib/{browser → neutral}/types/index.mjs +8 -12
  73. package/dist/lib/neutral/types/index.mjs.map +7 -0
  74. package/dist/lib/neutral/undo-mappings-3FQLSTCZ.mjs +31 -0
  75. package/dist/lib/neutral/undo-mappings-3FQLSTCZ.mjs.map +7 -0
  76. package/dist/types/src/SheetPlugin.d.ts +3 -1
  77. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  78. package/dist/types/src/SheetPlugin.node.d.ts +4 -0
  79. package/dist/types/src/SheetPlugin.node.d.ts.map +1 -0
  80. package/dist/types/src/SheetPlugin.test.d.ts +2 -0
  81. package/dist/types/src/SheetPlugin.test.d.ts.map +1 -0
  82. package/dist/types/src/SheetPlugin.workerd.d.ts +4 -0
  83. package/dist/types/src/SheetPlugin.workerd.d.ts.map +1 -0
  84. package/dist/types/src/capabilities/anchor-sort.d.ts +4 -4
  85. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  86. package/dist/types/src/capabilities/app-graph-builder.d.ts +6 -0
  87. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  88. package/dist/types/src/capabilities/comment-config.d.ts +6 -0
  89. package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
  90. package/dist/types/src/capabilities/compute-graph-registry.d.ts +9 -2
  91. package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  93. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  94. package/dist/types/src/capabilities/index.d.ts +19 -11
  95. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/markdown-extension.d.ts +5 -0
  97. package/dist/types/src/capabilities/markdown-extension.d.ts.map +1 -0
  98. package/dist/types/src/capabilities/navigation-resolver.d.ts +6 -0
  99. package/dist/types/src/capabilities/navigation-resolver.d.ts.map +1 -0
  100. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  101. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  102. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  103. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/state.d.ts +6 -0
  105. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  106. package/dist/types/src/capabilities/undo-mappings.d.ts +5 -0
  107. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
  108. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts +1 -1
  109. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
  110. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts +9 -4
  111. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -1
  112. package/dist/types/src/components/Sheet/Sheet.d.ts +17 -0
  113. package/dist/types/src/components/Sheet/Sheet.d.ts.map +1 -0
  114. package/dist/types/src/components/Sheet/index.d.ts +2 -0
  115. package/dist/types/src/components/Sheet/index.d.ts.map +1 -0
  116. package/dist/types/src/components/SheetContent/SheetCellEditor.stories.d.ts +16 -0
  117. package/dist/types/src/components/SheetContent/SheetCellEditor.stories.d.ts.map +1 -0
  118. package/dist/types/src/components/SheetContent/SheetContent.d.ts +6 -0
  119. package/dist/types/src/components/SheetContent/SheetContent.d.ts.map +1 -0
  120. package/dist/types/src/components/SheetContent/SheetContent.stories.d.ts +93 -0
  121. package/dist/types/src/components/SheetContent/SheetContent.stories.d.ts.map +1 -0
  122. package/dist/types/src/components/SheetContent/index.d.ts +2 -0
  123. package/dist/types/src/components/SheetContent/index.d.ts.map +1 -0
  124. package/dist/types/src/components/{GridSheet → SheetContent}/util.d.ts +1 -1
  125. package/dist/types/src/components/SheetContent/util.d.ts.map +1 -0
  126. package/dist/types/src/components/{SheetContext/SheetContext.d.ts → SheetRoot/SheetRoot.d.ts} +9 -7
  127. package/dist/types/src/components/SheetRoot/SheetRoot.d.ts.map +1 -0
  128. package/dist/types/src/components/SheetRoot/index.d.ts +2 -0
  129. package/dist/types/src/components/SheetRoot/index.d.ts.map +1 -0
  130. package/dist/types/src/components/SheetStatusbar/SheetStatusbar.d.ts +6 -0
  131. package/dist/types/src/components/SheetStatusbar/SheetStatusbar.d.ts.map +1 -0
  132. package/dist/types/src/components/SheetStatusbar/index.d.ts +2 -0
  133. package/dist/types/src/components/SheetStatusbar/index.d.ts.map +1 -0
  134. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +5 -6
  135. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
  136. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +92 -4
  137. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
  138. package/dist/types/src/components/SheetToolbar/align.d.ts +14 -21
  139. package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -1
  140. package/dist/types/src/components/SheetToolbar/style.d.ts +14 -20
  141. package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -1
  142. package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts +14 -1
  143. package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -1
  144. package/dist/types/src/components/index.d.ts +1 -4
  145. package/dist/types/src/components/index.d.ts.map +1 -1
  146. package/dist/types/src/containers/RangeList/RangeList.d.ts +7 -0
  147. package/dist/types/src/containers/RangeList/RangeList.d.ts.map +1 -0
  148. package/dist/types/src/containers/RangeList/index.d.ts +2 -0
  149. package/dist/types/src/containers/RangeList/index.d.ts.map +1 -0
  150. package/dist/types/src/containers/SheetArticle/SheetArticle.d.ts +12 -0
  151. package/dist/types/src/containers/SheetArticle/SheetArticle.d.ts.map +1 -0
  152. package/dist/types/src/containers/SheetArticle/SheetArticle.stories.d.ts +92 -0
  153. package/dist/types/src/containers/SheetArticle/SheetArticle.stories.d.ts.map +1 -0
  154. package/dist/types/src/containers/SheetArticle/index.d.ts +2 -0
  155. package/dist/types/src/containers/SheetArticle/index.d.ts.map +1 -0
  156. package/dist/types/src/containers/index.d.ts +4 -0
  157. package/dist/types/src/containers/index.d.ts.map +1 -0
  158. package/dist/types/src/extensions/compute.d.ts +2 -2
  159. package/dist/types/src/extensions/compute.d.ts.map +1 -1
  160. package/dist/types/src/extensions/compute.stories.d.ts +10 -13
  161. package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
  162. package/dist/types/src/extensions/editor/index.d.ts +1 -1
  163. package/dist/types/src/extensions/editor/index.d.ts.map +1 -1
  164. package/dist/types/src/extensions/editor/{extension.d.ts → sheet-extension.d.ts} +2 -2
  165. package/dist/types/src/extensions/editor/sheet-extension.d.ts.map +1 -0
  166. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts +2 -0
  167. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts.map +1 -0
  168. package/dist/types/src/index.d.ts +3 -2
  169. package/dist/types/src/index.d.ts.map +1 -1
  170. package/dist/types/src/integrations/thread-ranges.d.ts +1 -3
  171. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
  172. package/dist/types/src/meta.d.ts +2 -3
  173. package/dist/types/src/meta.d.ts.map +1 -1
  174. package/dist/types/src/model/sheet-model.d.ts +31 -7
  175. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  176. package/dist/types/src/model/testing.d.ts +2 -2
  177. package/dist/types/src/model/testing.d.ts.map +1 -1
  178. package/dist/types/src/model/useSheetModel.d.ts +3 -3
  179. package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
  180. package/dist/types/src/operations/drop-axis.d.ts +5 -0
  181. package/dist/types/src/operations/drop-axis.d.ts.map +1 -0
  182. package/dist/types/src/operations/index.d.ts +3 -0
  183. package/dist/types/src/operations/index.d.ts.map +1 -0
  184. package/dist/types/src/operations/insert-axis.d.ts +5 -0
  185. package/dist/types/src/operations/insert-axis.d.ts.map +1 -0
  186. package/dist/types/src/operations/restore-axis.d.ts +5 -0
  187. package/dist/types/src/operations/restore-axis.d.ts.map +1 -0
  188. package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
  189. package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
  190. package/dist/types/src/paths.d.ts +3 -0
  191. package/dist/types/src/paths.d.ts.map +1 -0
  192. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -1
  193. package/dist/types/src/playwright/sheet-manager.d.ts.map +1 -1
  194. package/dist/types/src/plugin.d.ts +4 -0
  195. package/dist/types/src/plugin.d.ts.map +1 -0
  196. package/dist/types/src/serializer.d.ts +3 -3
  197. package/dist/types/src/serializer.d.ts.map +1 -1
  198. package/dist/types/src/testing/data.d.ts +2 -2
  199. package/dist/types/src/testing/data.d.ts.map +1 -1
  200. package/dist/types/src/testing/testing.d.ts +28 -4
  201. package/dist/types/src/testing/testing.d.ts.map +1 -1
  202. package/dist/types/src/translations.d.ts +74 -38
  203. package/dist/types/src/translations.d.ts.map +1 -1
  204. package/dist/types/src/types/Sheet.d.ts +75 -0
  205. package/dist/types/src/types/Sheet.d.ts.map +1 -0
  206. package/dist/types/src/types/SheetCapabilities.d.ts +16 -0
  207. package/dist/types/src/types/SheetCapabilities.d.ts.map +1 -0
  208. package/dist/types/src/types/SheetOperation.d.ts +45 -0
  209. package/dist/types/src/types/SheetOperation.d.ts.map +1 -0
  210. package/dist/types/src/types/index.d.ts +3 -1
  211. package/dist/types/src/types/index.d.ts.map +1 -1
  212. package/dist/types/src/types/sheet-range-types.d.ts +2 -2
  213. package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
  214. package/dist/types/src/types/types.d.ts +3 -78
  215. package/dist/types/src/types/types.d.ts.map +1 -1
  216. package/dist/types/src/types/util.d.ts +11 -11
  217. package/dist/types/src/types/util.d.ts.map +1 -1
  218. package/dist/types/tsconfig.tsbuildinfo +1 -1
  219. package/package.json +132 -98
  220. package/src/SheetPlugin.node.ts +21 -0
  221. package/src/SheetPlugin.test.ts +30 -0
  222. package/src/SheetPlugin.tsx +55 -68
  223. package/src/SheetPlugin.workerd.ts +18 -0
  224. package/src/capabilities/anchor-sort.ts +20 -15
  225. package/src/capabilities/app-graph-builder.ts +63 -0
  226. package/src/capabilities/comment-config.ts +28 -0
  227. package/src/capabilities/compute-graph-registry.ts +34 -20
  228. package/src/capabilities/create-object.ts +33 -0
  229. package/src/capabilities/index.ts +22 -8
  230. package/src/capabilities/markdown-extension.ts +31 -0
  231. package/src/capabilities/navigation-resolver.ts +16 -0
  232. package/src/capabilities/operation-handler.ts +16 -0
  233. package/src/capabilities/react-surface.tsx +38 -29
  234. package/src/capabilities/state.ts +29 -0
  235. package/src/capabilities/undo-mappings.ts +30 -0
  236. package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +1 -1
  237. package/src/components/ComputeGraph/compute-graph.stories.tsx +35 -27
  238. package/src/components/Sheet/Sheet.tsx +20 -0
  239. package/src/components/Sheet/index.ts +5 -0
  240. package/src/components/SheetContent/SheetCellEditor.stories.tsx +95 -0
  241. package/src/components/SheetContent/SheetContent.stories.tsx +60 -0
  242. package/src/components/{GridSheet/GridSheet.tsx → SheetContent/SheetContent.tsx} +88 -58
  243. package/src/components/{RangeList → SheetContent}/index.ts +1 -1
  244. package/src/components/{GridSheet → SheetContent}/util.ts +17 -10
  245. package/src/components/{SheetContext/SheetContext.tsx → SheetRoot/SheetRoot.tsx} +55 -42
  246. package/src/components/{GridSheet → SheetRoot}/index.ts +1 -1
  247. package/src/components/{FunctionEditor/FunctionEditor.tsx → SheetStatusbar/SheetStatusbar.tsx} +20 -7
  248. package/src/components/{FunctionEditor → SheetStatusbar}/index.ts +1 -1
  249. package/src/components/SheetToolbar/SheetToolbar.stories.tsx +19 -14
  250. package/src/components/SheetToolbar/SheetToolbar.tsx +61 -56
  251. package/src/components/SheetToolbar/align.ts +50 -25
  252. package/src/components/SheetToolbar/style.ts +52 -22
  253. package/src/components/SheetToolbar/useToolbarState.ts +22 -5
  254. package/src/components/index.ts +1 -7
  255. package/src/containers/RangeList/RangeList.tsx +65 -0
  256. package/src/containers/RangeList/index.ts +5 -0
  257. package/src/containers/SheetArticle/SheetArticle.stories.tsx +110 -0
  258. package/src/containers/SheetArticle/SheetArticle.tsx +57 -0
  259. package/src/containers/SheetArticle/index.ts +5 -0
  260. package/src/containers/index.ts +8 -0
  261. package/src/extensions/compute.stories.tsx +49 -36
  262. package/src/extensions/compute.ts +3 -4
  263. package/src/extensions/editor/index.ts +1 -1
  264. package/src/extensions/editor/{extension.test.ts → sheet-extension.test.ts} +2 -2
  265. package/src/extensions/editor/{extension.ts → sheet-extension.ts} +18 -15
  266. package/src/index.ts +3 -2
  267. package/src/integrations/thread-ranges.ts +20 -62
  268. package/src/meta.ts +22 -8
  269. package/src/model/sheet-model.test.ts +34 -6
  270. package/src/model/sheet-model.ts +84 -52
  271. package/src/model/testing.ts +5 -5
  272. package/src/model/useSheetModel.ts +4 -3
  273. package/src/operations/drop-axis.ts +26 -0
  274. package/src/operations/index.ts +12 -0
  275. package/src/operations/insert-axis.ts +19 -0
  276. package/src/operations/restore-axis.ts +19 -0
  277. package/src/operations/scroll-to-anchor.ts +30 -0
  278. package/src/paths.ts +11 -0
  279. package/src/playwright/playwright.config.ts +1 -1
  280. package/src/playwright/sheet.spec.ts +4 -3
  281. package/src/plugin.ts +11 -0
  282. package/src/sanity.test.ts +9 -3
  283. package/src/serializer.ts +4 -12
  284. package/src/testing/data.ts +2 -2
  285. package/src/testing/testing.tsx +13 -7
  286. package/src/translations.ts +43 -36
  287. package/src/types/Sheet.ts +97 -0
  288. package/src/types/SheetCapabilities.ts +26 -0
  289. package/src/types/SheetOperation.ts +84 -0
  290. package/src/types/index.ts +4 -1
  291. package/src/types/sheet-range-types.ts +5 -5
  292. package/src/types/types.ts +6 -52
  293. package/src/types/util.ts +15 -42
  294. package/src/vite-env.d.ts +10 -0
  295. package/dist/lib/browser/SheetContainer-JZNFXBW3.mjs +0 -351
  296. package/dist/lib/browser/SheetContainer-JZNFXBW3.mjs.map +0 -7
  297. package/dist/lib/browser/anchor-sort-VRX3YZKT.mjs +0 -24
  298. package/dist/lib/browser/anchor-sort-VRX3YZKT.mjs.map +0 -7
  299. package/dist/lib/browser/chunk-6AKBCBL4.mjs +0 -18
  300. package/dist/lib/browser/chunk-6AKBCBL4.mjs.map +0 -7
  301. package/dist/lib/browser/chunk-BVTHIA5U.mjs +0 -847
  302. package/dist/lib/browser/chunk-BVTHIA5U.mjs.map +0 -7
  303. package/dist/lib/browser/chunk-ELAASQ5H.mjs +0 -899
  304. package/dist/lib/browser/chunk-ELAASQ5H.mjs.map +0 -7
  305. package/dist/lib/browser/chunk-KJWZUQVA.mjs +0 -15
  306. package/dist/lib/browser/chunk-KJWZUQVA.mjs.map +0 -7
  307. package/dist/lib/browser/chunk-VTTKAHAY.mjs.map +0 -7
  308. package/dist/lib/browser/compute-graph-registry-6YJHXORG.mjs +0 -30
  309. package/dist/lib/browser/compute-graph-registry-6YJHXORG.mjs.map +0 -7
  310. package/dist/lib/browser/index.mjs +0 -155
  311. package/dist/lib/browser/index.mjs.map +0 -7
  312. package/dist/lib/browser/intent-resolver-SSLPTP5O.mjs +0 -56
  313. package/dist/lib/browser/intent-resolver-SSLPTP5O.mjs.map +0 -7
  314. package/dist/lib/browser/markdown-3VPZYNGU.mjs +0 -26
  315. package/dist/lib/browser/markdown-3VPZYNGU.mjs.map +0 -7
  316. package/dist/lib/browser/meta.json +0 -1
  317. package/dist/lib/browser/react-surface-Y7KTPJW2.mjs +0 -53
  318. package/dist/lib/browser/react-surface-Y7KTPJW2.mjs.map +0 -7
  319. package/dist/lib/node-esm/SheetContainer-GOIBAE2P.mjs +0 -352
  320. package/dist/lib/node-esm/SheetContainer-GOIBAE2P.mjs.map +0 -7
  321. package/dist/lib/node-esm/anchor-sort-YM2UBIKL.mjs +0 -25
  322. package/dist/lib/node-esm/anchor-sort-YM2UBIKL.mjs.map +0 -7
  323. package/dist/lib/node-esm/chunk-3K5VNYOF.mjs +0 -20
  324. package/dist/lib/node-esm/chunk-3K5VNYOF.mjs.map +0 -7
  325. package/dist/lib/node-esm/chunk-4L5CIB7E.mjs +0 -900
  326. package/dist/lib/node-esm/chunk-4L5CIB7E.mjs.map +0 -7
  327. package/dist/lib/node-esm/chunk-56HYMW55.mjs +0 -848
  328. package/dist/lib/node-esm/chunk-56HYMW55.mjs.map +0 -7
  329. package/dist/lib/node-esm/chunk-6SK5LJ5S.mjs +0 -16
  330. package/dist/lib/node-esm/chunk-6SK5LJ5S.mjs.map +0 -7
  331. package/dist/lib/node-esm/chunk-FXRXBHWM.mjs +0 -236
  332. package/dist/lib/node-esm/chunk-FXRXBHWM.mjs.map +0 -7
  333. package/dist/lib/node-esm/compute-graph-registry-ET5KJNLV.mjs +0 -31
  334. package/dist/lib/node-esm/compute-graph-registry-ET5KJNLV.mjs.map +0 -7
  335. package/dist/lib/node-esm/index.mjs +0 -156
  336. package/dist/lib/node-esm/index.mjs.map +0 -7
  337. package/dist/lib/node-esm/intent-resolver-5P6DBGK2.mjs +0 -57
  338. package/dist/lib/node-esm/intent-resolver-5P6DBGK2.mjs.map +0 -7
  339. package/dist/lib/node-esm/markdown-SFDGQWYE.mjs +0 -27
  340. package/dist/lib/node-esm/markdown-SFDGQWYE.mjs.map +0 -7
  341. package/dist/lib/node-esm/meta.json +0 -1
  342. package/dist/lib/node-esm/react-surface-6Z5FAOBH.mjs +0 -54
  343. package/dist/lib/node-esm/react-surface-6Z5FAOBH.mjs.map +0 -7
  344. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  345. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  346. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  347. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  348. package/dist/types/src/capabilities/markdown.d.ts +0 -6
  349. package/dist/types/src/capabilities/markdown.d.ts.map +0 -1
  350. package/dist/types/src/components/FunctionEditor/FunctionEditor.d.ts +0 -3
  351. package/dist/types/src/components/FunctionEditor/FunctionEditor.d.ts.map +0 -1
  352. package/dist/types/src/components/FunctionEditor/index.d.ts +0 -2
  353. package/dist/types/src/components/FunctionEditor/index.d.ts.map +0 -1
  354. package/dist/types/src/components/GridSheet/GridSheet.d.ts +0 -3
  355. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +0 -1
  356. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +0 -7
  357. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +0 -1
  358. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts +0 -25
  359. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +0 -1
  360. package/dist/types/src/components/GridSheet/index.d.ts +0 -2
  361. package/dist/types/src/components/GridSheet/index.d.ts.map +0 -1
  362. package/dist/types/src/components/GridSheet/util.d.ts.map +0 -1
  363. package/dist/types/src/components/RangeList/RangeList.d.ts +0 -7
  364. package/dist/types/src/components/RangeList/RangeList.d.ts.map +0 -1
  365. package/dist/types/src/components/RangeList/index.d.ts +0 -2
  366. package/dist/types/src/components/RangeList/index.d.ts.map +0 -1
  367. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +0 -11
  368. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +0 -1
  369. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts +0 -8
  370. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +0 -1
  371. package/dist/types/src/components/SheetContainer/index.d.ts +0 -3
  372. package/dist/types/src/components/SheetContainer/index.d.ts.map +0 -1
  373. package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +0 -1
  374. package/dist/types/src/components/SheetContext/index.d.ts +0 -2
  375. package/dist/types/src/components/SheetContext/index.d.ts.map +0 -1
  376. package/dist/types/src/extensions/editor/extension.d.ts.map +0 -1
  377. package/dist/types/src/extensions/editor/extension.test.d.ts +0 -2
  378. package/dist/types/src/extensions/editor/extension.test.d.ts.map +0 -1
  379. package/dist/types/src/types/schema.d.ts +0 -37
  380. package/dist/types/src/types/schema.d.ts.map +0 -1
  381. package/src/capabilities/capabilities.ts +0 -14
  382. package/src/capabilities/intent-resolver.ts +0 -38
  383. package/src/capabilities/markdown.ts +0 -23
  384. package/src/components/GridSheet/GridSheet.stories.tsx +0 -54
  385. package/src/components/GridSheet/SheetCellEditor.stories.tsx +0 -93
  386. package/src/components/RangeList/RangeList.tsx +0 -60
  387. package/src/components/SheetContainer/SheetContainer.stories.tsx +0 -90
  388. package/src/components/SheetContainer/SheetContainer.tsx +0 -36
  389. package/src/components/SheetContainer/index.ts +0 -7
  390. package/src/components/SheetContext/index.ts +0 -5
  391. package/src/types/schema.ts +0 -61
  392. /package/dist/lib/{browser/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  393. /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
@@ -1,900 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- SHEET_PLUGIN
4
- } from "./chunk-3K5VNYOF.mjs";
5
-
6
- // src/types/schema.ts
7
- import { Schema } from "effect";
8
- import { Type } from "@dxos/echo";
9
- var CellValue = Schema.Struct({
10
- // TODO(burdon): How to store dates (datetime, date, time), percentages, etc.
11
- // Consider import/export; natural access for other plugins. Special handling for currency (precision).
12
- // TODO(burdon): Automerge (long string) or short string or number.
13
- value: Schema.Any
14
- });
15
- var Range = Schema.Struct({
16
- range: Schema.String,
17
- key: Schema.String,
18
- value: Schema.String
19
- });
20
- var RowColumnMeta = Schema.Struct({
21
- size: Schema.optional(Schema.Number)
22
- });
23
- var SheetType = Schema.Struct({
24
- name: Schema.optional(Schema.String),
25
- // Sparse map of cells referenced by index.
26
- cells: Schema.mutable(Schema.Record({
27
- key: Schema.String,
28
- value: Schema.mutable(CellValue)
29
- })),
30
- // Ordered row indices.
31
- rows: Schema.mutable(Schema.Array(Schema.String)),
32
- // Ordered column indices.
33
- columns: Schema.mutable(Schema.Array(Schema.String)),
34
- // Row metadata referenced by index.
35
- rowMeta: Schema.mutable(Schema.Record({
36
- key: Schema.String,
37
- value: Schema.mutable(RowColumnMeta)
38
- })),
39
- // Column metadata referenced by index.
40
- columnMeta: Schema.mutable(Schema.Record({
41
- key: Schema.String,
42
- value: Schema.mutable(RowColumnMeta)
43
- })),
44
- // Cell formatting referenced by indexed range.
45
- ranges: Schema.mutable(Schema.Array(Range))
46
- }).pipe(Type.Obj({
47
- typename: "dxos.org/type/Sheet",
48
- version: "0.1.0"
49
- }));
50
-
51
- // src/types/sheet-range-types.ts
52
- var alignKey = "alignment";
53
- var commentKey = "comment";
54
- var styleKey = "style";
55
- var cellClassNameForRange = ({ key, value }) => {
56
- switch (key) {
57
- case alignKey:
58
- switch (value) {
59
- case "start":
60
- return "text-start";
61
- case "center":
62
- return "text-center";
63
- case "end":
64
- return "text-end";
65
- default:
66
- return void 0;
67
- }
68
- case commentKey:
69
- return "bg-gridComment";
70
- case styleKey:
71
- switch (value) {
72
- case "highlight":
73
- return "!bg-gridHighlight";
74
- case "softwrap":
75
- return "!whitespace-normal";
76
- default:
77
- return void 0;
78
- }
79
- default:
80
- return void 0;
81
- }
82
- };
83
-
84
- // src/types/types.ts
85
- import { Schema as Schema2 } from "effect";
86
-
87
- // src/model/sheet-model.ts
88
- import { Event } from "@dxos/async";
89
- import { DetailedCellError, ExportedCellChange, addressFromA1Notation, addressToA1Notation, createSheetName, isFormula } from "@dxos/compute";
90
- import { Resource } from "@dxos/context";
91
- import { Obj } from "@dxos/echo";
92
- import { FormatEnum, TypeEnum } from "@dxos/echo-schema";
93
- import { invariant } from "@dxos/invariant";
94
- import { PublicKey } from "@dxos/keys";
95
- import { log } from "@dxos/log";
96
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-sheet/src/model/sheet-model.ts";
97
- var typeMap = {
98
- BOOLEAN: {
99
- type: TypeEnum.Boolean
100
- },
101
- NUMBER_RAW: {
102
- type: TypeEnum.Number
103
- },
104
- NUMBER_PERCENT: {
105
- type: TypeEnum.Number,
106
- format: FormatEnum.Percent
107
- },
108
- NUMBER_CURRENCY: {
109
- type: TypeEnum.Number,
110
- format: FormatEnum.Currency
111
- },
112
- NUMBER_DATETIME: {
113
- type: TypeEnum.String,
114
- format: FormatEnum.DateTime
115
- },
116
- NUMBER_DATE: {
117
- type: TypeEnum.String,
118
- format: FormatEnum.Date
119
- },
120
- NUMBER_TIME: {
121
- type: TypeEnum.String,
122
- format: FormatEnum.Time
123
- }
124
- };
125
- var getTopLeft = (range) => {
126
- const to = range.to ?? range.from;
127
- return {
128
- row: Math.min(range.from.row, to.row),
129
- col: Math.min(range.from.col, to.col)
130
- };
131
- };
132
- var toSimpleCellAddress = (sheet, cell) => ({
133
- sheet,
134
- row: cell.row,
135
- col: cell.col
136
- });
137
- var toModelRange = (sheet, range) => ({
138
- start: toSimpleCellAddress(sheet, range.from),
139
- end: toSimpleCellAddress(sheet, range.to ?? range.from)
140
- });
141
- var SheetModel = class extends Resource {
142
- _graph;
143
- _sheet;
144
- _options;
145
- id;
146
- // Wraps compute node.
147
- update;
148
- _node;
149
- constructor(_graph, _sheet, _options = {}) {
150
- super(), this._graph = _graph, this._sheet = _sheet, this._options = _options, this.id = `model-${PublicKey.random().truncate()}`, this.update = new Event();
151
- }
152
- get graph() {
153
- return this._graph;
154
- }
155
- get sheet() {
156
- return this._sheet;
157
- }
158
- get readonly() {
159
- return this._options.readonly;
160
- }
161
- get bounds() {
162
- return {
163
- rows: this._sheet.rows.length,
164
- columns: this._sheet.columns.length
165
- };
166
- }
167
- /**
168
- * Initialize sheet and engine.
169
- */
170
- async _open() {
171
- log("initialize", {
172
- id: this.id
173
- }, {
174
- F: __dxlog_file,
175
- L: 124,
176
- S: this,
177
- C: (f, a) => f(...a)
178
- });
179
- initialize(this._sheet);
180
- this._graph.update.on((event) => {
181
- if (event.type === "functionsUpdated") {
182
- this.reset();
183
- }
184
- });
185
- this._node = this._graph.getOrCreateNode(createSheetName({
186
- type: Obj.getTypename(this._sheet),
187
- id: this._sheet.id
188
- }));
189
- await this._node.open();
190
- const unsubscribe = this._node.update.on((event) => this.update.emit(event));
191
- this._ctx.onDispose(unsubscribe);
192
- this.reset();
193
- }
194
- /**
195
- * Update engine.
196
- * NOTE: This resets the undo history.
197
- * @deprecated
198
- */
199
- reset() {
200
- invariant(this._node, void 0, {
201
- F: __dxlog_file,
202
- L: 152,
203
- S: this,
204
- A: [
205
- "this._node",
206
- ""
207
- ]
208
- });
209
- this._node.graph.hf.clearSheet(this._node.sheetId);
210
- Object.entries(this._sheet.cells).forEach(([key, { value }]) => {
211
- invariant(this._node, void 0, {
212
- F: __dxlog_file,
213
- L: 155,
214
- S: this,
215
- A: [
216
- "this._node",
217
- ""
218
- ]
219
- });
220
- const { col, row } = addressFromIndex(this._sheet, key);
221
- if (isFormula(value)) {
222
- const binding = this._graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(this._sheet, value));
223
- if (binding) {
224
- value = this._graph.mapFormulaToNative(binding);
225
- } else {
226
- value = "";
227
- }
228
- }
229
- this._node.graph.hf.setCellContents({
230
- sheet: this._node.sheetId,
231
- row,
232
- col
233
- }, value);
234
- });
235
- }
236
- /**
237
- * Recalculate formulas.
238
- * NOTE: This resets the undo history.
239
- * https://hyperformula.handsontable.com/guide/volatile-functions.html#volatile-actions
240
- * @deprecated
241
- */
242
- // TODO(burdon): Remove.
243
- recalculate() {
244
- this._node?.graph.hf.rebuildAndRecalculate();
245
- }
246
- insertRows(i, n = 1) {
247
- const idx = insertIndices(this._sheet.rows, i, n, MAX_ROWS);
248
- this.reset();
249
- return idx;
250
- }
251
- insertColumns(i, n = 1) {
252
- const idx = insertIndices(this._sheet.columns, i, n, MAX_COLS);
253
- this.reset();
254
- return idx;
255
- }
256
- dropRow(rowIndex) {
257
- const range = {
258
- from: addressFromIndex(this._sheet, `${this._sheet.columns[0]}@${rowIndex}`),
259
- to: addressFromIndex(this._sheet, `${this._sheet.columns[this._sheet.columns.length - 1]}@${rowIndex}`)
260
- };
261
- const values = this.getCellValues(range).flat();
262
- const index = this._sheet.rows.indexOf(rowIndex);
263
- this.clear(range);
264
- this._sheet.rows.splice(index, 1);
265
- delete this._sheet.rowMeta[rowIndex];
266
- this.reset();
267
- return {
268
- axis: "row",
269
- index,
270
- axisIndex: rowIndex,
271
- axisMeta: this._sheet.rowMeta[rowIndex],
272
- values
273
- };
274
- }
275
- dropColumn(colIndex) {
276
- const range = {
277
- from: addressFromIndex(this._sheet, `${colIndex}@${this._sheet.rows[0]}`),
278
- to: addressFromIndex(this._sheet, `${colIndex}@${this._sheet.rows[this._sheet.rows.length - 1]}`)
279
- };
280
- const values = this.getCellValues(range).flat();
281
- const index = this._sheet.columns.indexOf(colIndex);
282
- this.clear(range);
283
- this._sheet.columns.splice(index, 1);
284
- delete this._sheet.columnMeta[colIndex];
285
- this.reset();
286
- return {
287
- axis: "col",
288
- index,
289
- axisIndex: colIndex,
290
- axisMeta: this._sheet.rowMeta[colIndex],
291
- values
292
- };
293
- }
294
- restoreRow({ index, axisIndex, axisMeta, values }) {
295
- this._sheet.rows.splice(index, 0, axisIndex);
296
- values.forEach((value, col) => {
297
- if (value) {
298
- this._sheet.cells[`${this._sheet.columns[col]}@${axisIndex}`] = {
299
- value
300
- };
301
- }
302
- });
303
- if (axisMeta) {
304
- this._sheet.rowMeta[axisIndex] = axisMeta;
305
- }
306
- this.reset();
307
- }
308
- restoreColumn({ index, axisIndex, axisMeta, values }) {
309
- this._sheet.columns.splice(index, 0, axisIndex);
310
- values.forEach((value, row) => {
311
- if (value) {
312
- this._sheet.cells[`${axisIndex}@${this._sheet.rows[row]}`] = {
313
- value
314
- };
315
- }
316
- });
317
- if (axisMeta) {
318
- this._sheet.columnMeta[axisIndex] = axisMeta;
319
- }
320
- this.reset();
321
- }
322
- //
323
- // Undoable actions.
324
- // TODO(burdon): Group undoable methods; consistently update hf/sheet.
325
- //
326
- /**
327
- * Clear range of values.
328
- */
329
- clear(range) {
330
- invariant(this._node, void 0, {
331
- F: __dxlog_file,
332
- L: 258,
333
- S: this,
334
- A: [
335
- "this._node",
336
- ""
337
- ]
338
- });
339
- const topLeft = getTopLeft(range);
340
- const values = this._iterRange(range, () => null);
341
- this._node.graph.hf.setCellContents(toSimpleCellAddress(this._node.sheetId, topLeft), values);
342
- this._iterRange(range, (cell) => {
343
- const idx = addressToIndex(this._sheet, cell);
344
- delete this._sheet.cells[idx];
345
- });
346
- }
347
- cut(range) {
348
- invariant(this._node, void 0, {
349
- F: __dxlog_file,
350
- L: 269,
351
- S: this,
352
- A: [
353
- "this._node",
354
- ""
355
- ]
356
- });
357
- this._node.graph.hf.cut(toModelRange(this._node.sheetId, range));
358
- this._iterRange(range, (cell) => {
359
- const idx = addressToIndex(this._sheet, cell);
360
- delete this._sheet.cells[idx];
361
- });
362
- }
363
- copy(range) {
364
- invariant(this._node, void 0, {
365
- F: __dxlog_file,
366
- L: 278,
367
- S: this,
368
- A: [
369
- "this._node",
370
- ""
371
- ]
372
- });
373
- this._node.graph.hf.copy(toModelRange(this._node.sheetId, range));
374
- }
375
- paste(cell) {
376
- invariant(this._node, void 0, {
377
- F: __dxlog_file,
378
- L: 283,
379
- S: this,
380
- A: [
381
- "this._node",
382
- ""
383
- ]
384
- });
385
- if (!this._node.graph.hf.isClipboardEmpty()) {
386
- const changes = this._node.graph.hf.paste(toSimpleCellAddress(this._node.sheetId, cell));
387
- for (const change of changes) {
388
- if (change instanceof ExportedCellChange) {
389
- const { address, newValue } = change;
390
- const idx = addressToIndex(this._sheet, {
391
- row: address.row,
392
- col: address.col
393
- });
394
- this._sheet.cells[idx] = {
395
- value: newValue
396
- };
397
- }
398
- }
399
- }
400
- }
401
- // TODO(burdon): Display undo/redo state.
402
- undo() {
403
- invariant(this._node, void 0, {
404
- F: __dxlog_file,
405
- L: 298,
406
- S: this,
407
- A: [
408
- "this._node",
409
- ""
410
- ]
411
- });
412
- if (this._node.graph.hf.isThereSomethingToUndo()) {
413
- this._node.graph.hf.undo();
414
- }
415
- }
416
- redo() {
417
- invariant(this._node, void 0, {
418
- F: __dxlog_file,
419
- L: 306,
420
- S: this,
421
- A: [
422
- "this._node",
423
- ""
424
- ]
425
- });
426
- if (this._node.graph.hf.isThereSomethingToRedo()) {
427
- this._node.graph.hf.redo();
428
- }
429
- }
430
- /**
431
- * Get value from sheet.
432
- */
433
- getCellValue(cell) {
434
- const idx = addressToIndex(this._sheet, cell);
435
- return this._sheet.cells[idx]?.value ?? null;
436
- }
437
- /**
438
- * Get value as a string for editing.
439
- */
440
- getCellText(cell) {
441
- const value = this.getCellValue(cell);
442
- if (value == null) {
443
- return void 0;
444
- }
445
- if (isFormula(value)) {
446
- return this._graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(this._sheet, value));
447
- } else {
448
- return String(value);
449
- }
450
- }
451
- /**
452
- * Get array of raw values from sheet.
453
- */
454
- getCellValues(range) {
455
- return this._iterRange(range, (cell) => this.getCellValue(cell));
456
- }
457
- /**
458
- * Gets the regular or computed value from the engine.
459
- */
460
- getValue(cell) {
461
- invariant(this._node, void 0, {
462
- F: __dxlog_file,
463
- L: 349,
464
- S: this,
465
- A: [
466
- "this._node",
467
- ""
468
- ]
469
- });
470
- const address = toSimpleCellAddress(this._node.sheetId, cell);
471
- const value = this._node.graph.hf.getCellValue(address);
472
- if (value instanceof DetailedCellError) {
473
- log.warn("cell error", {
474
- cell,
475
- error: value
476
- }, {
477
- F: __dxlog_file,
478
- L: 354,
479
- S: this,
480
- C: (f, a) => f(...a)
481
- });
482
- return value.toString();
483
- }
484
- return value;
485
- }
486
- /**
487
- * Get value type.
488
- */
489
- getValueDescription(cell) {
490
- invariant(this._node, void 0, {
491
- F: __dxlog_file,
492
- L: 365,
493
- S: this,
494
- A: [
495
- "this._node",
496
- ""
497
- ]
498
- });
499
- const addr = toSimpleCellAddress(this._node.sheetId, cell);
500
- const type = this._node.graph.hf.getCellValueDetailedType(addr);
501
- return typeMap[type];
502
- }
503
- /**
504
- * Sets the value, updating the sheet and engine.
505
- */
506
- setValue(cell, value) {
507
- invariant(this._node, void 0, {
508
- F: __dxlog_file,
509
- L: 375,
510
- S: this,
511
- A: [
512
- "this._node",
513
- ""
514
- ]
515
- });
516
- if (this._options.readonly) {
517
- throw new ReadonlyException();
518
- }
519
- let refresh = false;
520
- if (cell.row >= this._sheet.rows.length) {
521
- insertIndices(this._sheet.rows, cell.row, 1, MAX_ROWS);
522
- refresh = true;
523
- }
524
- if (cell.col >= this._sheet.columns.length) {
525
- insertIndices(this._sheet.columns, cell.col, 1, MAX_COLS);
526
- refresh = true;
527
- }
528
- if (refresh) {
529
- this.reset();
530
- }
531
- this._node.graph.hf.setCellContents({
532
- sheet: this._node.sheetId,
533
- row: cell.row,
534
- col: cell.col
535
- }, [
536
- [
537
- isFormula(value) ? this._graph.mapFormulaToNative(value) : value
538
- ]
539
- ]);
540
- const idx = addressToIndex(this._sheet, cell);
541
- if (value === void 0 || value === null) {
542
- delete this._sheet.cells[idx];
543
- } else {
544
- if (isFormula(value)) {
545
- value = this._graph.mapFunctionBindingToId(mapFormulaRefsToIndices(this._sheet, value));
546
- }
547
- this._sheet.cells[idx] = {
548
- value
549
- };
550
- }
551
- }
552
- /**
553
- * Sets values from a simple map.
554
- */
555
- setValues(values) {
556
- Object.entries(values).forEach(([key, { value }]) => {
557
- this.setValue(addressFromA1Notation(key), value);
558
- });
559
- }
560
- /**
561
- * Iterate range.
562
- */
563
- _iterRange(range, cb) {
564
- const to = range.to ?? range.from;
565
- const rowRange = [
566
- Math.min(range.from.row, to.row),
567
- Math.max(range.from.row, to.row)
568
- ];
569
- const columnRange = [
570
- Math.min(range.from.col, to.col),
571
- Math.max(range.from.col, to.col)
572
- ];
573
- const rows = [];
574
- for (let row = rowRange[0]; row <= rowRange[1]; row++) {
575
- const rowCells = [];
576
- for (let column = columnRange[0]; column <= columnRange[1]; column++) {
577
- const value = cb({
578
- row,
579
- col: column
580
- });
581
- if (value !== void 0) {
582
- rowCells.push(value);
583
- }
584
- }
585
- rows.push(rowCells);
586
- }
587
- return rows;
588
- }
589
- // TODO(burdon): Delete index.
590
- _deleteIndices(indices, i, n) {
591
- throw new Error("Not implemented");
592
- }
593
- // TODO(burdon): Move. Cannot use fractional without changing. Switch back to using unique IDs?
594
- _moveIndices(indices, i, j, n) {
595
- throw new Error("Not implemented");
596
- }
597
- /**
598
- * Map from indices to A1 notation.
599
- */
600
- mapFormulaIndicesToRefs(formula) {
601
- invariant(isFormula(formula), void 0, {
602
- F: __dxlog_file,
603
- L: 460,
604
- S: this,
605
- A: [
606
- "isFormula(formula)",
607
- ""
608
- ]
609
- });
610
- return formula.replace(/([a-zA-Z0-9]+)@([a-zA-Z0-9]+)/g, (idx) => {
611
- return addressToA1Notation(addressFromIndex(this._sheet, idx));
612
- });
613
- }
614
- //
615
- // Values
616
- //
617
- /**
618
- * https://hyperformula.handsontable.com/guide/date-and-time-handling.html#example
619
- * https://hyperformula.handsontable.com/api/interfaces/configparams.html#nulldate
620
- * NOTE: TODAY() is number of FULL days since nullDate. It will typically be -1 days from NOW().
621
- */
622
- toLocalDate(num) {
623
- const { year, month, day, hours, minutes, seconds } = this.toDateTime(num);
624
- return new Date(year, month - 1, day, hours, minutes, seconds);
625
- }
626
- toDateTime(num) {
627
- invariant(this._node, void 0, {
628
- F: __dxlog_file,
629
- L: 481,
630
- S: this,
631
- A: [
632
- "this._node",
633
- ""
634
- ]
635
- });
636
- return this._node.graph.hf.numberToDateTime(num);
637
- }
638
- toDate(num) {
639
- invariant(this._node, void 0, {
640
- F: __dxlog_file,
641
- L: 486,
642
- S: this,
643
- A: [
644
- "this._node",
645
- ""
646
- ]
647
- });
648
- return this._node.graph.hf.numberToDate(num);
649
- }
650
- toTime(num) {
651
- invariant(this._node, void 0, {
652
- F: __dxlog_file,
653
- L: 491,
654
- S: this,
655
- A: [
656
- "this._node",
657
- ""
658
- ]
659
- });
660
- return this._node.graph.hf.numberToTime(num);
661
- }
662
- };
663
-
664
- // src/model/useSheetModel.ts
665
- import { useEffect, useState } from "react";
666
- var useSheetModel = (graph, sheet, { readonly } = {}) => {
667
- const [model, setModel] = useState();
668
- useEffect(() => {
669
- if (!graph || !sheet) {
670
- return;
671
- }
672
- let model2;
673
- const t = setTimeout(async () => {
674
- model2 = new SheetModel(graph, sheet, {
675
- readonly
676
- });
677
- await model2.open();
678
- setModel(model2);
679
- });
680
- return () => {
681
- clearTimeout(t);
682
- void model2?.close();
683
- };
684
- }, [
685
- graph,
686
- sheet,
687
- readonly
688
- ]);
689
- return model;
690
- };
691
-
692
- // src/types/types.ts
693
- (function(SheetAction2) {
694
- const SHEET_ACTION = `${SHEET_PLUGIN}/action`;
695
- class Create extends Schema2.TaggedClass()(`${SHEET_ACTION}/create`, {
696
- input: Schema2.Struct({
697
- name: Schema2.optional(Schema2.String)
698
- }),
699
- output: Schema2.Struct({
700
- object: SheetType
701
- })
702
- }) {
703
- }
704
- SheetAction2.Create = Create;
705
- const Axis = Schema2.Union(Schema2.Literal("row"), Schema2.Literal("col"));
706
- class InsertAxis extends Schema2.TaggedClass()(`${SHEET_ACTION}/axis-insert`, {
707
- input: Schema2.Struct({
708
- // TODO(wittjosiah): Schema.instanceOf(SheetModel) throws when running tests.
709
- model: Schema2.Any.pipe(Schema2.filter((model) => model instanceof SheetModel)),
710
- axis: Axis,
711
- index: Schema2.Number,
712
- count: Schema2.optional(Schema2.Number)
713
- }),
714
- output: Schema2.Void
715
- }) {
716
- }
717
- SheetAction2.InsertAxis = InsertAxis;
718
- SheetAction2.RestoreAxis = Schema2.Struct({
719
- axis: Axis,
720
- axisIndex: Schema2.String,
721
- index: Schema2.Number,
722
- axisMeta: RowColumnMeta,
723
- values: Schema2.Array(Schema2.Any)
724
- });
725
- class DropAxis extends Schema2.TaggedClass()(`${SHEET_ACTION}/axis-drop`, {
726
- input: Schema2.Struct({
727
- // TODO(wittjosiah): Schema.instanceOf(SheetModel) throws when running tests.
728
- model: Schema2.Any.pipe(Schema2.filter((model) => model instanceof SheetModel)),
729
- axis: Axis,
730
- axisIndex: Schema2.String,
731
- deletionData: Schema2.optional(SheetAction2.RestoreAxis)
732
- }),
733
- output: Schema2.Void
734
- }) {
735
- }
736
- SheetAction2.DropAxis = DropAxis;
737
- })(SheetAction || (SheetAction = {}));
738
- var SheetAction;
739
-
740
- // src/types/util.ts
741
- import { addressFromA1Notation as addressFromA1Notation2, addressToA1Notation as addressToA1Notation2, isFormula as isFormula2 } from "@dxos/compute";
742
- import { randomBytes } from "@dxos/crypto";
743
- import { Obj as Obj2 } from "@dxos/echo";
744
- import { invariant as invariant2 } from "@dxos/invariant";
745
- var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-sheet/src/types/util.ts";
746
- var MAX_ROWS = 500;
747
- var MAX_COLS = 676;
748
- var DEFAULT_ROWS = 50;
749
- var DEFAULT_COLS = 26;
750
- var ApiError = class extends Error {
751
- };
752
- var ReadonlyException = class extends ApiError {
753
- };
754
- var RangeException = class extends ApiError {
755
- constructor(n) {
756
- super();
757
- }
758
- };
759
- var createIndex = (length = 8) => {
760
- const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
761
- const charactersLength = characters.length;
762
- const randomBuffer = randomBytes(length);
763
- return Array.from(randomBuffer, (byte) => characters[byte % charactersLength]).join("");
764
- };
765
- var createIndices = (length) => Array.from({
766
- length
767
- }).map(() => createIndex());
768
- var insertIndices = (indices, i, n, max) => {
769
- if (i + n > max) {
770
- throw new RangeException(i + n);
771
- }
772
- const idx = createIndices(n);
773
- indices.splice(i, 0, ...idx);
774
- return idx;
775
- };
776
- var initialize = (sheet, { rows = DEFAULT_ROWS, columns = DEFAULT_COLS } = {}) => {
777
- if (!sheet.rows.length) {
778
- insertIndices(sheet.rows, 0, rows, MAX_ROWS);
779
- }
780
- if (!sheet.columns.length) {
781
- insertIndices(sheet.columns, 0, columns, MAX_COLS);
782
- }
783
- };
784
- var createSheet = ({ name, cells, ...size } = {}) => {
785
- const sheet = Obj2.make(SheetType, {
786
- name,
787
- cells: {},
788
- rows: [],
789
- columns: [],
790
- rowMeta: {},
791
- columnMeta: {},
792
- ranges: []
793
- });
794
- initialize(sheet, size);
795
- if (cells) {
796
- Object.entries(cells).forEach(([key, { value }]) => {
797
- const idx = addressToIndex(sheet, addressFromA1Notation2(key));
798
- if (isFormula2(value)) {
799
- value = mapFormulaRefsToIndices(sheet, value);
800
- }
801
- sheet.cells[idx] = {
802
- value
803
- };
804
- });
805
- }
806
- return sheet;
807
- };
808
- var addressToIndex = (sheet, cell) => {
809
- return `${sheet.columns[cell.col]}@${sheet.rows[cell.row]}`;
810
- };
811
- var addressFromIndex = (sheet, idx) => {
812
- const [column, row] = idx.split("@");
813
- return {
814
- col: sheet.columns.indexOf(column),
815
- row: sheet.rows.indexOf(row)
816
- };
817
- };
818
- var rangeToIndex = (sheet, range) => {
819
- return [
820
- range.from,
821
- range.to ?? range.from
822
- ].map((cell) => addressToIndex(sheet, cell)).join(":");
823
- };
824
- var rangeFromIndex = (sheet, idx) => {
825
- const [from, to] = idx.split(":").map((index) => addressFromIndex(sheet, index));
826
- return {
827
- from,
828
- to
829
- };
830
- };
831
- var compareIndexPositions = (sheet, indexA, indexB) => {
832
- const { row: rowA, col: columnA } = addressFromIndex(sheet, indexA);
833
- const { row: rowB, col: columnB } = addressFromIndex(sheet, indexB);
834
- if (rowA !== rowB) {
835
- return rowA - rowB;
836
- } else {
837
- return columnA - columnB;
838
- }
839
- };
840
- var mapFormulaRefsToIndices = (sheet, formula) => {
841
- invariant2(isFormula2(formula), void 0, {
842
- F: __dxlog_file2,
843
- L: 152,
844
- S: void 0,
845
- A: [
846
- "isFormula(formula)",
847
- ""
848
- ]
849
- });
850
- return formula.replace(/([a-zA-Z]+)([0-9]+)/g, (match) => {
851
- return addressToIndex(sheet, addressFromA1Notation2(match));
852
- });
853
- };
854
- var mapFormulaIndicesToRefs = (sheet, formula) => {
855
- invariant2(isFormula2(formula), void 0, {
856
- F: __dxlog_file2,
857
- L: 162,
858
- S: void 0,
859
- A: [
860
- "isFormula(formula)",
861
- ""
862
- ]
863
- });
864
- return formula.replace(/([a-zA-Z0-9]+)@([a-zA-Z0-9]+)/g, (idx) => {
865
- return addressToA1Notation2(addressFromIndex(sheet, idx));
866
- });
867
- };
868
-
869
- export {
870
- CellValue,
871
- Range,
872
- RowColumnMeta,
873
- SheetType,
874
- alignKey,
875
- commentKey,
876
- styleKey,
877
- cellClassNameForRange,
878
- useSheetModel,
879
- SheetAction,
880
- MAX_ROWS,
881
- MAX_COLS,
882
- DEFAULT_ROWS,
883
- DEFAULT_COLS,
884
- ApiError,
885
- ReadonlyException,
886
- RangeException,
887
- createIndex,
888
- createIndices,
889
- insertIndices,
890
- initialize,
891
- createSheet,
892
- addressToIndex,
893
- addressFromIndex,
894
- rangeToIndex,
895
- rangeFromIndex,
896
- compareIndexPositions,
897
- mapFormulaRefsToIndices,
898
- mapFormulaIndicesToRefs
899
- };
900
- //# sourceMappingURL=chunk-4L5CIB7E.mjs.map