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