@dxos/plugin-sheet 0.7.4 → 0.7.5-labs.071a3e2
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.
- package/dist/lib/browser/SheetContainer-IMHGS7Z4.mjs +370 -0
- package/dist/lib/browser/SheetContainer-IMHGS7Z4.mjs.map +7 -0
- package/dist/lib/browser/chunk-AT7F2WDW.mjs +808 -0
- package/dist/lib/browser/chunk-AT7F2WDW.mjs.map +7 -0
- package/dist/lib/browser/chunk-FOO6NGBM.mjs +229 -0
- package/dist/lib/browser/chunk-FOO6NGBM.mjs.map +7 -0
- package/dist/lib/browser/chunk-GAFHJBCU.mjs +18 -0
- package/dist/lib/browser/chunk-GAFHJBCU.mjs.map +7 -0
- package/dist/lib/browser/chunk-LXHRT3CC.mjs +15 -0
- package/dist/lib/browser/chunk-LXHRT3CC.mjs.map +7 -0
- package/dist/lib/browser/chunk-OOSRC36N.mjs +900 -0
- package/dist/lib/browser/chunk-OOSRC36N.mjs.map +7 -0
- package/dist/lib/browser/compute-graph-registry-EGPD4HEX.mjs +27 -0
- package/dist/lib/browser/compute-graph-registry-EGPD4HEX.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +80 -324
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/intent-resolver-6S2RMLQF.mjs +56 -0
- package/dist/lib/browser/intent-resolver-6S2RMLQF.mjs.map +7 -0
- package/dist/lib/browser/markdown-CFJIWHZX.mjs +26 -0
- package/dist/lib/browser/markdown-CFJIWHZX.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-surface-PHKJZYFB.mjs +52 -0
- package/dist/lib/browser/react-surface-PHKJZYFB.mjs.map +7 -0
- package/dist/lib/browser/thread-7ZWW5EA7.mjs +17 -0
- package/dist/lib/browser/thread-7ZWW5EA7.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +62 -0
- package/dist/lib/node/SheetContainer-NNIZN4AK.cjs +364 -0
- package/dist/lib/node/SheetContainer-NNIZN4AK.cjs.map +7 -0
- package/dist/lib/node/chunk-2KCZUH72.cjs +815 -0
- package/dist/lib/node/chunk-2KCZUH72.cjs.map +7 -0
- package/dist/lib/node/chunk-4LSYTNS4.cjs +935 -0
- package/dist/lib/node/chunk-4LSYTNS4.cjs.map +7 -0
- package/dist/lib/node/{chunk-2ZVZI2KJ.cjs → chunk-MLU6KRQN.cjs} +12 -9
- package/dist/lib/node/chunk-MLU6KRQN.cjs.map +7 -0
- package/dist/lib/node/chunk-P4KSGZSS.cjs +251 -0
- package/dist/lib/node/chunk-P4KSGZSS.cjs.map +7 -0
- package/dist/lib/node/{types.cjs → chunk-ZV2RS3QH.cjs} +12 -16
- package/dist/lib/node/chunk-ZV2RS3QH.cjs.map +7 -0
- package/dist/lib/node/compute-graph-registry-GJK5H264.cjs +53 -0
- package/dist/lib/node/compute-graph-registry-GJK5H264.cjs.map +7 -0
- package/dist/lib/node/index.cjs +81 -318
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/intent-resolver-I25V7SBT.cjs +69 -0
- package/dist/lib/node/intent-resolver-I25V7SBT.cjs.map +7 -0
- package/dist/lib/node/markdown-YTCSW66K.cjs +40 -0
- package/dist/lib/node/markdown-YTCSW66K.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/react-surface-HLE6CRA6.cjs +70 -0
- package/dist/lib/node/react-surface-HLE6CRA6.cjs.map +7 -0
- package/dist/lib/node/{meta.cjs → thread-DRNYTR6M.cjs} +12 -10
- package/dist/lib/node/thread-DRNYTR6M.cjs.map +7 -0
- package/dist/lib/node/types/index.cjs +84 -0
- package/dist/lib/node/types/index.cjs.map +7 -0
- package/dist/lib/node-esm/SheetContainer-PGDJKGTZ.mjs +371 -0
- package/dist/lib/node-esm/SheetContainer-PGDJKGTZ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HPAMZ6SP.mjs +901 -0
- package/dist/lib/node-esm/chunk-HPAMZ6SP.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-PTOI45NK.mjs +231 -0
- package/dist/lib/node-esm/chunk-PTOI45NK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-RTZXXOS2.mjs +20 -0
- package/dist/lib/node-esm/chunk-RTZXXOS2.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-SX3S7UKU.mjs +16 -0
- package/dist/lib/node-esm/chunk-SX3S7UKU.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-ZM7XLUGL.mjs +809 -0
- package/dist/lib/node-esm/chunk-ZM7XLUGL.mjs.map +7 -0
- package/dist/lib/node-esm/compute-graph-registry-3F5JCYEN.mjs +28 -0
- package/dist/lib/node-esm/compute-graph-registry-3F5JCYEN.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +80 -324
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/intent-resolver-IPRSINII.mjs +57 -0
- package/dist/lib/node-esm/intent-resolver-IPRSINII.mjs.map +7 -0
- package/dist/lib/node-esm/markdown-CGSK44XJ.mjs +27 -0
- package/dist/lib/node-esm/markdown-CGSK44XJ.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-surface-PFRJ7V5N.mjs +53 -0
- package/dist/lib/node-esm/react-surface-PFRJ7V5N.mjs.map +7 -0
- package/dist/lib/node-esm/thread-6T5VXPAF.mjs +18 -0
- package/dist/lib/node-esm/thread-6T5VXPAF.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +63 -0
- package/dist/types/src/SheetPlugin.d.ts +1 -3
- package/dist/types/src/SheetPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +5 -0
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
- package/dist/types/src/capabilities/compute-graph-registry.d.ts +4 -0
- package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +12 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/intent-resolver.d.ts +4 -0
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/markdown.d.ts +6 -0
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +4 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/thread.d.ts +6 -0
- package/dist/types/src/capabilities/thread.d.ts.map +1 -0
- package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts +1 -1
- package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
- package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -0
- package/dist/types/src/components/FunctionEditor/FunctionEditor.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
- package/dist/types/src/components/RangeList/RangeList.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetContext/SheetContext.d.ts +1 -2
- package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +7 -0
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +6 -0
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/align.d.ts +28 -0
- package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/comment.d.ts +23 -0
- package/dist/types/src/components/SheetToolbar/comment.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/index.d.ts +2 -0
- package/dist/types/src/components/SheetToolbar/index.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/style.d.ts +26 -0
- package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/useToolbarAction.d.ts +8 -0
- package/dist/types/src/components/SheetToolbar/useToolbarAction.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts +6 -0
- package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +0 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/extensions/compute.d.ts +1 -1
- package/dist/types/src/extensions/compute.d.ts.map +1 -1
- package/dist/types/src/extensions/editor/extension.d.ts +1 -1
- package/dist/types/src/extensions/editor/extension.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/integrations/thread-ranges.d.ts +1 -1
- package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/model/sheet-model.d.ts +6 -8
- package/dist/types/src/model/sheet-model.d.ts.map +1 -1
- package/dist/types/src/model/testing.d.ts +1 -1
- package/dist/types/src/model/testing.d.ts.map +1 -1
- package/dist/types/src/model/useSheetModel.d.ts +1 -1
- package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
- package/dist/types/src/testing/testing.d.ts +1 -1
- package/dist/types/src/testing/testing.d.ts.map +1 -1
- package/dist/types/src/{defs → types}/index.d.ts +1 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/src/types/schema.d.ts +105 -0
- package/dist/types/src/types/schema.d.ts.map +1 -0
- package/dist/types/src/{defs → types}/sheet-range-types.d.ts +1 -1
- package/dist/types/src/types/sheet-range-types.d.ts.map +1 -0
- package/dist/types/src/types/types.d.ts +71 -0
- package/dist/types/src/types/types.d.ts.map +1 -0
- package/dist/types/src/{defs → types}/util.d.ts +5 -1
- package/dist/types/src/types/util.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/package.json +48 -62
- package/src/SheetPlugin.tsx +57 -176
- package/src/capabilities/capabilities.ts +14 -0
- package/src/capabilities/compute-graph-registry.ts +25 -0
- package/src/capabilities/index.ts +13 -0
- package/src/capabilities/intent-resolver.ts +38 -0
- package/src/capabilities/markdown.ts +22 -0
- package/src/capabilities/react-surface.tsx +37 -0
- package/src/capabilities/thread.ts +14 -0
- package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +1 -2
- package/src/{compute-graph → components/ComputeGraph}/compute-graph.stories.tsx +6 -7
- package/src/components/FunctionEditor/FunctionEditor.tsx +2 -1
- package/src/components/GridSheet/GridSheet.stories.tsx +2 -0
- package/src/components/GridSheet/GridSheet.tsx +15 -18
- package/src/components/GridSheet/SheetCellEditor.stories.tsx +6 -7
- package/src/components/GridSheet/util.ts +4 -3
- package/src/components/RangeList/RangeList.tsx +2 -1
- package/src/components/SheetContainer/SheetContainer.stories.tsx +28 -23
- package/src/components/SheetContainer/SheetContainer.tsx +3 -8
- package/src/components/SheetContext/SheetContext.tsx +1 -2
- package/src/components/{Toolbar/Toolbar.stories.tsx → SheetToolbar/SheetToolbar.stories.tsx} +4 -8
- package/src/components/SheetToolbar/SheetToolbar.tsx +48 -0
- package/src/components/SheetToolbar/align.ts +68 -0
- package/src/components/SheetToolbar/comment.ts +56 -0
- package/src/components/{Toolbar → SheetToolbar}/index.ts +1 -1
- package/src/components/SheetToolbar/style.ts +72 -0
- package/src/components/SheetToolbar/useToolbarAction.ts +87 -0
- package/src/components/SheetToolbar/useToolbarState.ts +17 -0
- package/src/components/index.ts +0 -1
- package/src/extensions/compute.ts +7 -4
- package/src/extensions/editor/extension.test.ts +2 -1
- package/src/extensions/editor/extension.ts +2 -3
- package/src/index.ts +2 -7
- package/src/integrations/thread-ranges.ts +39 -24
- package/src/meta.ts +4 -2
- package/src/model/sheet-model.test.ts +4 -10
- package/src/model/sheet-model.ts +30 -22
- package/src/model/testing.ts +3 -2
- package/src/model/useSheetModel.ts +2 -1
- package/src/sanity.test.ts +1 -1
- package/src/testing/testing.tsx +2 -3
- package/src/{defs → types}/index.ts +1 -0
- package/src/types/schema.ts +56 -0
- package/src/{defs → types}/sheet-range-types.ts +1 -1
- package/src/types/types.ts +67 -0
- package/src/{defs → types}/util.ts +13 -13
- package/dist/lib/browser/SheetContainer-KCLT6PEO.mjs +0 -296
- package/dist/lib/browser/SheetContainer-KCLT6PEO.mjs.map +0 -7
- package/dist/lib/browser/chunk-E5WQ7U7G.mjs +0 -1675
- package/dist/lib/browser/chunk-E5WQ7U7G.mjs.map +0 -7
- package/dist/lib/browser/chunk-F3HE6D3J.mjs +0 -3269
- package/dist/lib/browser/chunk-F3HE6D3J.mjs.map +0 -7
- package/dist/lib/browser/chunk-JXFPOYNA.mjs +0 -67
- package/dist/lib/browser/chunk-JXFPOYNA.mjs.map +0 -7
- package/dist/lib/browser/chunk-RABELMEQ.mjs +0 -15
- package/dist/lib/browser/chunk-RABELMEQ.mjs.map +0 -7
- package/dist/lib/browser/compute-graph-SNUS7HOH.mjs +0 -35
- package/dist/lib/browser/meta.mjs +0 -9
- package/dist/lib/browser/types.mjs +0 -16
- package/dist/lib/browser/types.mjs.map +0 -7
- package/dist/lib/node/SheetContainer-VVVRYTQG.cjs +0 -298
- package/dist/lib/node/SheetContainer-VVVRYTQG.cjs.map +0 -7
- package/dist/lib/node/chunk-2ZVZI2KJ.cjs.map +0 -7
- package/dist/lib/node/chunk-45YW2DX2.cjs +0 -1656
- package/dist/lib/node/chunk-45YW2DX2.cjs.map +0 -7
- package/dist/lib/node/chunk-KSEEI5VC.cjs +0 -3323
- package/dist/lib/node/chunk-KSEEI5VC.cjs.map +0 -7
- package/dist/lib/node/chunk-OWH2EUHZ.cjs +0 -90
- package/dist/lib/node/chunk-OWH2EUHZ.cjs.map +0 -7
- package/dist/lib/node/compute-graph-WILPHO4A.cjs +0 -57
- package/dist/lib/node/compute-graph-WILPHO4A.cjs.map +0 -7
- package/dist/lib/node/meta.cjs.map +0 -7
- package/dist/lib/node/types.cjs.map +0 -7
- package/dist/lib/node-esm/SheetContainer-LSBE6Q4X.mjs +0 -297
- package/dist/lib/node-esm/SheetContainer-LSBE6Q4X.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-6JF2AHKO.mjs +0 -3270
- package/dist/lib/node-esm/chunk-6JF2AHKO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-BM2Q3FFC.mjs +0 -17
- package/dist/lib/node-esm/chunk-BM2Q3FFC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-BVS2IQRO.mjs +0 -68
- package/dist/lib/node-esm/chunk-BVS2IQRO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NYDNXI7L.mjs +0 -1676
- package/dist/lib/node-esm/chunk-NYDNXI7L.mjs.map +0 -7
- package/dist/lib/node-esm/compute-graph-S6CVN7RS.mjs +0 -36
- package/dist/lib/node-esm/compute-graph-S6CVN7RS.mjs.map +0 -7
- package/dist/lib/node-esm/meta.mjs +0 -10
- package/dist/lib/node-esm/meta.mjs.map +0 -7
- package/dist/lib/node-esm/types.mjs +0 -17
- package/dist/lib/node-esm/types.mjs.map +0 -7
- package/dist/types/src/components/SheetObjectSettings.d.ts +0 -7
- package/dist/types/src/components/SheetObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/Toolbar/Toolbar.d.ts +0 -48
- package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +0 -1
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +0 -7
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +0 -1
- package/dist/types/src/components/Toolbar/index.d.ts +0 -2
- package/dist/types/src/components/Toolbar/index.d.ts.map +0 -1
- package/dist/types/src/compute-graph/compute-graph-registry.d.ts +0 -34
- package/dist/types/src/compute-graph/compute-graph-registry.d.ts.map +0 -1
- package/dist/types/src/compute-graph/compute-graph.d.ts +0 -64
- package/dist/types/src/compute-graph/compute-graph.d.ts.map +0 -1
- package/dist/types/src/compute-graph/compute-graph.stories.d.ts.map +0 -1
- package/dist/types/src/compute-graph/compute-graph.test.d.ts +0 -2
- package/dist/types/src/compute-graph/compute-graph.test.d.ts.map +0 -1
- package/dist/types/src/compute-graph/compute-node.d.ts +0 -26
- package/dist/types/src/compute-graph/compute-node.d.ts.map +0 -1
- package/dist/types/src/compute-graph/functions/async-function.d.ts +0 -66
- package/dist/types/src/compute-graph/functions/async-function.d.ts.map +0 -1
- package/dist/types/src/compute-graph/functions/edge-function.d.ts +0 -21
- package/dist/types/src/compute-graph/functions/edge-function.d.ts.map +0 -1
- package/dist/types/src/compute-graph/functions/function-defs.d.ts +0 -11
- package/dist/types/src/compute-graph/functions/function-defs.d.ts.map +0 -1
- package/dist/types/src/compute-graph/functions/index.d.ts +0 -4
- package/dist/types/src/compute-graph/functions/index.d.ts.map +0 -1
- package/dist/types/src/compute-graph/hyperformula.test.d.ts +0 -2
- package/dist/types/src/compute-graph/hyperformula.test.d.ts.map +0 -1
- package/dist/types/src/compute-graph/index.d.ts +0 -5
- package/dist/types/src/compute-graph/index.d.ts.map +0 -1
- package/dist/types/src/compute-graph/testing/index.d.ts +0 -3
- package/dist/types/src/compute-graph/testing/index.d.ts.map +0 -1
- package/dist/types/src/compute-graph/testing/test-builder.d.ts +0 -15
- package/dist/types/src/compute-graph/testing/test-builder.d.ts.map +0 -1
- package/dist/types/src/compute-graph/testing/test-plugin.d.ts +0 -36
- package/dist/types/src/compute-graph/testing/test-plugin.d.ts.map +0 -1
- package/dist/types/src/compute-graph/util.d.ts +0 -2
- package/dist/types/src/compute-graph/util.d.ts.map +0 -1
- package/dist/types/src/defs/index.d.ts.map +0 -1
- package/dist/types/src/defs/sheet-range-types.d.ts.map +0 -1
- package/dist/types/src/defs/types.d.ts +0 -26
- package/dist/types/src/defs/types.d.ts.map +0 -1
- package/dist/types/src/defs/types.test.d.ts +0 -2
- package/dist/types/src/defs/types.test.d.ts.map +0 -1
- package/dist/types/src/defs/util.d.ts.map +0 -1
- package/dist/types/src/types.d.ts +0 -182
- package/dist/types/src/types.d.ts.map +0 -1
- package/dist/vendor/hyperformula.mjs +0 -37145
- package/src/components/SheetObjectSettings.tsx +0 -38
- package/src/components/Toolbar/Toolbar.tsx +0 -346
- package/src/compute-graph/compute-graph-registry.ts +0 -90
- package/src/compute-graph/compute-graph.test.ts +0 -87
- package/src/compute-graph/compute-graph.ts +0 -260
- package/src/compute-graph/compute-node.ts +0 -62
- package/src/compute-graph/functions/async-function.ts +0 -179
- package/src/compute-graph/functions/edge-function.ts +0 -102
- package/src/compute-graph/functions/function-defs.ts +0 -2427
- package/src/compute-graph/functions/index.ts +0 -7
- package/src/compute-graph/hyperformula.test.ts +0 -14
- package/src/compute-graph/index.ts +0 -8
- package/src/compute-graph/testing/index.ts +0 -6
- package/src/compute-graph/testing/test-builder.ts +0 -54
- package/src/compute-graph/testing/test-plugin.ts +0 -100
- package/src/compute-graph/util.ts +0 -8
- package/src/defs/types.test.ts +0 -91
- package/src/defs/types.ts +0 -88
- package/src/types.ts +0 -125
- /package/dist/lib/browser/{compute-graph-SNUS7HOH.mjs.map → types/index.mjs.map} +0 -0
- /package/dist/lib/{browser/meta.mjs.map → node-esm/types/index.mjs.map} +0 -0
- /package/dist/types/src/{compute-graph → components/ComputeGraph}/compute-graph.stories.d.ts +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/schema.ts", "../../../src/types/sheet-range-types.ts", "../../../src/types/types.ts", "../../../src/model/sheet-model.ts", "../../../src/model/useSheetModel.ts", "../../../src/types/util.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Ref, S, TypedObject } from '@dxos/echo-schema';\nimport { ThreadType } from '@dxos/plugin-space/types';\n\nexport const CellValue = S.Struct({\n // TODO(burdon): How to store dates (datetime, date, time), percentages, etc.\n // Consider import/export; natural access for other plugins. Special handling for currency (precision).\n // TODO(burdon): Automerge (long string) or short string or number.\n value: S.Any,\n});\n\nexport type CellValue = S.Schema.Type<typeof CellValue>;\n\n// TODO(burdon): IMPORTANT: Reconcile with Field definition.\nexport const Range = S.Struct({\n range: S.String,\n key: S.String,\n value: S.String,\n});\n\nexport type Range = S.Schema.Type<typeof Range>;\n\n// TODO(burdon): Visibility, locked, frozen, etc.\nexport const RowColumnMeta = S.Struct({\n size: S.optional(S.Number),\n});\n\n// TODO(burdon): Reconcile col/column (across packages).\n// TODO(burdon): Index to all updates when rows/columns are inserted/deleted.\nexport class SheetType extends TypedObject({ typename: 'dxos.org/type/Sheet', version: '0.1.0' })({\n name: S.optional(S.String),\n\n // Sparse map of cells referenced by index.\n cells: S.mutable(S.Record({ key: S.String, value: S.mutable(CellValue) })),\n\n // Ordered row indices.\n rows: S.mutable(S.Array(S.String)),\n\n // Ordered column indices.\n columns: S.mutable(S.Array(S.String)),\n\n // Row metadata referenced by index.\n rowMeta: S.mutable(S.Record({ key: S.String, value: S.mutable(RowColumnMeta) })),\n\n // Column metadata referenced by index.\n columnMeta: S.mutable(S.Record({ key: S.String, value: S.mutable(RowColumnMeta) })),\n\n // Cell formatting referenced by indexed range.\n ranges: S.mutable(S.Array(Range)),\n\n // Threads associated with the sheet\n threads: S.optional(S.mutable(S.Array(Ref(ThreadType)))),\n}) {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type ClassNameValue } from '@dxos/react-ui';\n\nimport { type SheetType } from '../types';\n\nexport const alignKey = 'alignment';\nexport type AlignKey = typeof alignKey;\nexport type AlignValue = 'start' | 'center' | 'end';\n\nexport const commentKey = 'comment';\nexport type CommentKey = typeof commentKey;\nexport type CommentValue = string;\n\nexport const styleKey = 'style';\nexport type StyleKey = typeof styleKey;\nexport type StyleValue = 'highlight' | 'softwrap';\n\n// TODO(burdon): Reconcile with plugin-table.\nexport const cellClassNameForRange = ({ key, value }: SheetType['ranges'][number]): ClassNameValue => {\n switch (key) {\n case alignKey:\n switch (value) {\n case 'start':\n return 'text-start';\n case 'center':\n return 'text-center';\n case 'end':\n return 'text-end';\n default:\n return undefined;\n }\n\n case commentKey:\n return 'bg-gridComment';\n\n case styleKey:\n switch (value) {\n case 'highlight':\n return '!bg-gridHighlight';\n case 'softwrap':\n return '!whitespace-normal';\n default:\n return undefined;\n }\n\n default:\n return undefined;\n }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { S } from '@dxos/echo-schema';\n\nimport { type CellValue, RowColumnMeta, SheetType } from './schema';\nimport { SHEET_PLUGIN } from '../meta';\nimport { SheetModel } from '../model';\n\nexport type SheetSize = {\n rows: number;\n columns: number;\n};\n\nexport type CreateSheetOptions = {\n name?: string;\n cells?: Record<string, CellValue>;\n} & Partial<SheetSize>;\n\nexport namespace SheetAction {\n const SHEET_ACTION = `${SHEET_PLUGIN}/action`;\n\n export class Create extends S.TaggedClass<Create>()(`${SHEET_ACTION}/create`, {\n input: S.Struct({\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: SheetType,\n }),\n }) {}\n\n // TODO(wittjosiah): Factor out. This is `DxGridAxis` from `@dxos/react-ui-grid`.\n const Axis = S.Union(S.Literal('row'), S.Literal('col'));\n\n export class InsertAxis extends S.TaggedClass<InsertAxis>()(`${SHEET_ACTION}/axis-insert`, {\n input: S.Struct({\n // TODO(wittjosiah): S.instanceOf(SheetModel) throws when running tests.\n model: S.Any.pipe(S.filter((model) => model instanceof SheetModel)) as S.Schema<SheetModel>,\n axis: Axis,\n index: S.Number,\n count: S.optional(S.Number),\n }),\n output: S.Void,\n }) {}\n\n export const RestoreAxis = S.Struct({\n axis: Axis,\n axisIndex: S.String,\n index: S.Number,\n axisMeta: RowColumnMeta,\n values: S.Array(S.Any),\n });\n\n export type RestoreAxis = S.Schema.Type<typeof RestoreAxis>;\n\n export class DropAxis extends S.TaggedClass<DropAxis>()(`${SHEET_ACTION}/axis-drop`, {\n input: S.Struct({\n // TODO(wittjosiah): S.instanceOf(SheetModel) throws when running tests.\n model: S.Any.pipe(S.filter((model) => model instanceof SheetModel)) as S.Schema<SheetModel>,\n axis: Axis,\n axisIndex: S.String,\n deletionData: S.optional(RestoreAxis),\n }),\n output: S.Void,\n }) {}\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Event } from '@dxos/async';\nimport {\n addressFromA1Notation,\n addressToA1Notation,\n createSheetName,\n isFormula,\n type CellAddress,\n type CellRange,\n type CellScalarValue,\n type ComputeGraph,\n type ComputeNode,\n type ComputeNodeEvent,\n DetailedCellError,\n ExportedCellChange,\n type SimpleCellRange,\n type SimpleCellAddress,\n type SimpleDate,\n type SimpleDateTime,\n} from '@dxos/compute';\nimport { Resource } from '@dxos/context';\nimport { getTypename, FormatEnum, TypeEnum } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\n\nimport {\n ReadonlyException,\n addressFromIndex,\n addressToIndex,\n initialize,\n insertIndices,\n mapFormulaIndicesToRefs,\n mapFormulaRefsToIndices,\n MAX_ROWS,\n MAX_COLS,\n} from '../types';\nimport { type SheetAction, type CellValue, type SheetType } from '../types';\n\n// TODO(burdon): Move to compute.\n// Map sheet types to system types.\n// https://hyperformula.handsontable.com/guide/types-of-values.html\n// - https://github.com/handsontable/hyperformula/blob/master/src/Cell.ts (CellValueType)\n// - https://github.com/handsontable/hyperformula/blob/master/src/interpreter/InterpreterValue.ts (NumberType)\nconst typeMap: Record<string, { type: TypeEnum; format?: FormatEnum }> = {\n BOOLEAN: { type: TypeEnum.Boolean },\n NUMBER_RAW: { type: TypeEnum.Number },\n NUMBER_PERCENT: { type: TypeEnum.Number, format: FormatEnum.Percent },\n NUMBER_CURRENCY: { type: TypeEnum.Number, format: FormatEnum.Currency },\n NUMBER_DATETIME: { type: TypeEnum.String, format: FormatEnum.DateTime },\n NUMBER_DATE: { type: TypeEnum.String, format: FormatEnum.Date },\n NUMBER_TIME: { type: TypeEnum.String, format: FormatEnum.Time },\n};\n\nconst getTopLeft = (range: CellRange): CellAddress => {\n const to = range.to ?? range.from;\n return { row: Math.min(range.from.row, to.row), col: Math.min(range.from.col, to.col) };\n};\n\nconst toSimpleCellAddress = (sheet: number, cell: CellAddress): SimpleCellAddress => ({\n sheet,\n row: cell.row,\n col: cell.col,\n});\n\nconst toModelRange = (sheet: number, range: CellRange): SimpleCellRange => ({\n start: toSimpleCellAddress(sheet, range.from),\n end: toSimpleCellAddress(sheet, range.to ?? range.from),\n});\n\nexport type SheetModelOptions = {\n readonly?: boolean;\n};\n\n/**\n * Spreadsheet data model.\n *\n * [ComputeGraphContext] > [SheetContext]:[SheetModel] > [Sheet.Root]\n */\n// TODO(burdon): Factor out commonality with ComputeNode. Factor out HF.\nexport class SheetModel extends Resource {\n public readonly id = `model-${PublicKey.random().truncate()}`;\n\n // Wraps compute node.\n public readonly update = new Event<ComputeNodeEvent>();\n\n private _node?: ComputeNode;\n\n constructor(\n private readonly _graph: ComputeGraph,\n private readonly _sheet: SheetType,\n private readonly _options: SheetModelOptions = {},\n ) {\n super();\n }\n\n get graph() {\n return this._graph;\n }\n\n get sheet() {\n return this._sheet;\n }\n\n get readonly() {\n return this._options.readonly;\n }\n\n get bounds() {\n return {\n rows: this._sheet.rows.length,\n columns: this._sheet.columns.length,\n };\n }\n\n /**\n * Initialize sheet and engine.\n */\n protected override async _open() {\n log('initialize', { id: this.id });\n initialize(this._sheet);\n\n this._graph.update.on((event) => {\n if (event.type === 'functionsUpdated') {\n this.reset();\n }\n });\n\n // TODO(burdon): SheetModel should extend ComputeNode and be constructed via the graph.\n this._node = this._graph.getOrCreateNode(createSheetName({ type: getTypename(this._sheet)!, id: this._sheet.id }));\n await this._node.open();\n\n // Listen for model updates (e.g., async calculations).\n const unsubscribe = this._node.update.on((event) => this.update.emit(event));\n this._ctx.onDispose(unsubscribe);\n\n this.reset();\n }\n\n /**\n * Update engine.\n * NOTE: This resets the undo history.\n * @deprecated\n */\n reset() {\n invariant(this._node);\n this._node.graph.hf.clearSheet(this._node.sheetId);\n Object.entries(this._sheet.cells).forEach(([key, { value }]) => {\n invariant(this._node);\n const { col, row } = addressFromIndex(this._sheet, key);\n if (isFormula(value)) {\n const binding = this._graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(this._sheet, value));\n if (binding) {\n value = this._graph.mapFormulaToNative(binding);\n } else {\n // If binding is not found, render the cell as empty.\n // This prevents the cell from momentarily rendering an error while the binding is being loaded.\n value = '';\n }\n }\n\n this._node.graph.hf.setCellContents({ sheet: this._node.sheetId, row, col }, value);\n });\n }\n\n /**\n * Recalculate formulas.\n * NOTE: This resets the undo history.\n * https://hyperformula.handsontable.com/guide/volatile-functions.html#volatile-actions\n * @deprecated\n */\n // TODO(burdon): Remove.\n recalculate() {\n this._node?.graph.hf.rebuildAndRecalculate();\n }\n\n insertRows(i: number, n = 1) {\n const idx = insertIndices(this._sheet.rows, i, n, MAX_ROWS);\n this.reset();\n return idx;\n }\n\n insertColumns(i: number, n = 1) {\n const idx = insertIndices(this._sheet.columns, i, n, MAX_COLS);\n this.reset();\n return idx;\n }\n\n dropRow(rowIndex: string): SheetAction.RestoreAxis {\n const range = {\n from: addressFromIndex(this._sheet, `${this._sheet.columns[0]}@${rowIndex}`),\n to: addressFromIndex(this._sheet, `${this._sheet.columns[this._sheet.columns.length - 1]}@${rowIndex}`),\n };\n const values = this.getCellValues(range).flat();\n const index = this._sheet.rows.indexOf(rowIndex);\n this.clear(range);\n this._sheet.rows.splice(index, 1);\n delete this._sheet.rowMeta[rowIndex];\n this.reset();\n return { axis: 'row', index, axisIndex: rowIndex, axisMeta: this._sheet.rowMeta[rowIndex], values };\n }\n\n dropColumn(colIndex: string): SheetAction.RestoreAxis {\n const range = {\n from: addressFromIndex(this._sheet, `${colIndex}@${this._sheet.rows[0]}`),\n to: addressFromIndex(this._sheet, `${colIndex}@${this._sheet.rows[this._sheet.rows.length - 1]}`),\n };\n const values = this.getCellValues(range).flat();\n const index = this._sheet.columns.indexOf(colIndex);\n this.clear(range);\n this._sheet.columns.splice(index, 1);\n delete this._sheet.columnMeta[colIndex];\n this.reset();\n return { axis: 'col', index, axisIndex: colIndex, axisMeta: this._sheet.rowMeta[colIndex], values };\n }\n\n restoreRow({ index, axisIndex, axisMeta, values }: SheetAction.RestoreAxis) {\n this._sheet.rows.splice(index, 0, axisIndex);\n values.forEach((value, col) => {\n if (value) {\n this._sheet.cells[`${this._sheet.columns[col]}@${axisIndex}`] = { value };\n }\n });\n if (axisMeta) {\n this._sheet.rowMeta[axisIndex] = axisMeta;\n }\n this.reset();\n }\n\n restoreColumn({ index, axisIndex, axisMeta, values }: SheetAction.RestoreAxis) {\n this._sheet.columns.splice(index, 0, axisIndex);\n values.forEach((value, row) => {\n if (value) {\n this._sheet.cells[`${axisIndex}@${this._sheet.rows[row]}`] = { value };\n }\n });\n if (axisMeta) {\n this._sheet.columnMeta[axisIndex] = axisMeta;\n }\n this.reset();\n }\n\n //\n // Undoable actions.\n // TODO(burdon): Group undoable methods; consistently update hf/sheet.\n //\n\n /**\n * Clear range of values.\n */\n clear(range: CellRange) {\n invariant(this._node);\n const topLeft = getTopLeft(range);\n const values = this._iterRange(range, () => null);\n this._node.graph.hf.setCellContents(toSimpleCellAddress(this._node.sheetId, topLeft), values);\n this._iterRange(range, (cell) => {\n const idx = addressToIndex(this._sheet, cell);\n delete this._sheet.cells[idx];\n });\n }\n\n cut(range: CellRange) {\n invariant(this._node);\n this._node.graph.hf.cut(toModelRange(this._node.sheetId, range));\n this._iterRange(range, (cell) => {\n const idx = addressToIndex(this._sheet, cell);\n delete this._sheet.cells[idx];\n });\n }\n\n copy(range: CellRange) {\n invariant(this._node);\n this._node.graph.hf.copy(toModelRange(this._node.sheetId, range));\n }\n\n paste(cell: CellAddress) {\n invariant(this._node);\n if (!this._node.graph.hf.isClipboardEmpty()) {\n const changes = this._node.graph.hf.paste(toSimpleCellAddress(this._node.sheetId, cell));\n for (const change of changes) {\n if (change instanceof ExportedCellChange) {\n const { address, newValue } = change;\n const idx = addressToIndex(this._sheet, { row: address.row, col: address.col });\n this._sheet.cells[idx] = { value: newValue };\n }\n }\n }\n }\n\n // TODO(burdon): Display undo/redo state.\n undo() {\n invariant(this._node);\n if (this._node.graph.hf.isThereSomethingToUndo()) {\n this._node.graph.hf.undo();\n // this.update.emit();\n }\n }\n\n redo() {\n invariant(this._node);\n if (this._node.graph.hf.isThereSomethingToRedo()) {\n this._node.graph.hf.redo();\n // this.update.emit();\n }\n }\n\n /**\n * Get value from sheet.\n */\n getCellValue(cell: CellAddress): CellScalarValue {\n const idx = addressToIndex(this._sheet, cell);\n return this._sheet.cells[idx]?.value ?? null;\n }\n\n /**\n * Get value as a string for editing.\n */\n getCellText(cell: CellAddress): string | undefined {\n const value = this.getCellValue(cell);\n if (value == null) {\n return undefined;\n }\n\n if (isFormula(value)) {\n return this._graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(this._sheet, value));\n } else {\n return String(value);\n }\n }\n\n /**\n * Get array of raw values from sheet.\n */\n getCellValues(range: CellRange): CellScalarValue[][] {\n return this._iterRange(range, (cell) => this.getCellValue(cell));\n }\n\n /**\n * Gets the regular or computed value from the engine.\n */\n getValue(cell: CellAddress): CellScalarValue {\n // Applies rounding and post-processing.\n invariant(this._node);\n const address = toSimpleCellAddress(this._node.sheetId, cell);\n const value = this._node.graph.hf.getCellValue(address);\n if (value instanceof DetailedCellError) {\n // TODO(wittjosiah): Error details should be shown in cell `title`.\n log.info('cell error', { cell, error: value });\n return value.toString();\n }\n\n return value;\n }\n\n /**\n * Get value type.\n */\n getValueDescription(cell: CellAddress): { type: TypeEnum; format?: FormatEnum } | undefined {\n invariant(this._node);\n const addr = toSimpleCellAddress(this._node.sheetId, cell);\n const type = this._node.graph.hf.getCellValueDetailedType(addr);\n return typeMap[type];\n }\n\n /**\n * Sets the value, updating the sheet and engine.\n */\n setValue(cell: CellAddress, value: CellScalarValue) {\n invariant(this._node);\n if (this._options.readonly) {\n throw new ReadonlyException();\n }\n\n // Reallocate if > current bounds.\n let refresh = false;\n if (cell.row >= this._sheet.rows.length) {\n insertIndices(this._sheet.rows, cell.row, 1, MAX_ROWS);\n refresh = true;\n }\n if (cell.col >= this._sheet.columns.length) {\n insertIndices(this._sheet.columns, cell.col, 1, MAX_COLS);\n refresh = true;\n }\n\n if (refresh) {\n // TODO(burdon): Remove.\n this.reset();\n }\n\n // Insert into engine.\n this._node.graph.hf.setCellContents({ sheet: this._node.sheetId, row: cell.row, col: cell.col }, [\n [isFormula(value) ? this._graph.mapFormulaToNative(value) : value],\n ]);\n\n // Insert into sheet.\n const idx = addressToIndex(this._sheet, cell);\n if (value === undefined || value === null) {\n delete this._sheet.cells[idx];\n } else {\n if (isFormula(value)) {\n value = this._graph.mapFunctionBindingToId(mapFormulaRefsToIndices(this._sheet, value));\n }\n\n this._sheet.cells[idx] = { value };\n }\n }\n\n /**\n * Sets values from a simple map.\n */\n setValues(values: Record<string, CellValue>) {\n Object.entries(values).forEach(([key, { value }]) => {\n this.setValue(addressFromA1Notation(key), value);\n });\n }\n\n /**\n * Iterate range.\n */\n private _iterRange(range: CellRange, cb: (cell: CellAddress) => CellScalarValue | void): CellScalarValue[][] {\n const to = range.to ?? range.from;\n const rowRange = [Math.min(range.from.row, to.row), Math.max(range.from.row, to.row)];\n const columnRange = [Math.min(range.from.col, to.col), Math.max(range.from.col, to.col)];\n const rows: CellScalarValue[][] = [];\n for (let row = rowRange[0]; row <= rowRange[1]; row++) {\n const rowCells: CellScalarValue[] = [];\n for (let column = columnRange[0]; column <= columnRange[1]; column++) {\n const value = cb({ row, col: column });\n if (value !== undefined) {\n rowCells.push(value);\n }\n }\n\n rows.push(rowCells);\n }\n\n return rows;\n }\n\n // TODO(burdon): Delete index.\n private _deleteIndices(indices: string[], i: number, n: number) {\n throw new Error('Not implemented');\n }\n\n // TODO(burdon): Move. Cannot use fractional without changing. Switch back to using unique IDs?\n private _moveIndices(indices: string[], i: number, j: number, n: number) {\n throw new Error('Not implemented');\n }\n\n /**\n * Map from indices to A1 notation.\n */\n mapFormulaIndicesToRefs(formula: string): string {\n invariant(isFormula(formula));\n return formula.replace(/([a-zA-Z0-9]+)@([a-zA-Z0-9]+)/g, (idx) => {\n return addressToA1Notation(addressFromIndex(this._sheet, idx));\n });\n }\n\n //\n // Values\n //\n\n /**\n * https://hyperformula.handsontable.com/guide/date-and-time-handling.html#example\n * https://hyperformula.handsontable.com/api/interfaces/configparams.html#nulldate\n * NOTE: TODAY() is number of FULL days since nullDate. It will typically be -1 days from NOW().\n */\n toLocalDate(num: number): Date {\n const { year, month, day, hours, minutes, seconds } = this.toDateTime(num);\n return new Date(year, month - 1, day, hours, minutes, seconds);\n }\n\n toDateTime(num: number): SimpleDateTime {\n invariant(this._node);\n return this._node.graph.hf.numberToDateTime(num) as SimpleDateTime;\n }\n\n toDate(num: number): SimpleDate {\n invariant(this._node);\n return this._node.graph.hf.numberToDate(num) as SimpleDate;\n }\n\n toTime(num: number): SimpleDate {\n invariant(this._node);\n return this._node.graph.hf.numberToTime(num) as SimpleDate;\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { type ComputeGraph } from '@dxos/compute';\n\nimport { SheetModel } from '../model';\nimport { type SheetType } from '../types';\n\nexport type UseSheetModelOptions = {\n readonly?: boolean;\n};\n\nexport const useSheetModel = (\n graph?: ComputeGraph,\n sheet?: SheetType,\n { readonly }: UseSheetModelOptions = {},\n): SheetModel | undefined => {\n const [model, setModel] = useState<SheetModel>();\n useEffect(() => {\n if (!graph || !sheet) {\n return;\n }\n\n let model: SheetModel | undefined;\n const t = setTimeout(async () => {\n model = new SheetModel(graph, sheet, { readonly });\n await model.open();\n setModel(model);\n });\n\n return () => {\n clearTimeout(t);\n void model?.close();\n };\n }, [graph, sheet, readonly]);\n\n return model;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n addressFromA1Notation,\n addressToA1Notation,\n isFormula,\n type CellAddress,\n type CellRange,\n type CompleteCellRange,\n} from '@dxos/compute';\nimport { randomBytes } from '@dxos/crypto';\nimport { invariant } from '@dxos/invariant';\nimport { create } from '@dxos/live-object';\n\nimport { type CreateSheetOptions, type SheetSize, SheetType } from '../types';\n\nexport const MAX_ROWS = 500;\nexport const MAX_COLS = 676; // 26^2;\n\nexport const DEFAULT_ROWS = 50;\nexport const DEFAULT_COLS = 26;\n\n// TODO(burdon): Factor out from dxos/protocols to new common package.\nexport class ApiError extends Error {}\n\nexport class ReadonlyException extends ApiError {}\n\nexport class RangeException extends ApiError {\n constructor(n: number) {\n super();\n }\n}\n\n/**\n * With a string length of 8, the chance of a collision is 0.02% for a sheet with 10,000 strings.\n */\nexport const createIndex = (length = 8): string => {\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n const charactersLength = characters.length;\n const randomBuffer = randomBytes(length);\n return Array.from(randomBuffer, (byte) => characters[byte % charactersLength]).join('');\n};\n\nexport const createIndices = (length: number): string[] => Array.from({ length }).map(() => createIndex());\n\nexport const insertIndices = (indices: string[], i: number, n: number, max: number) => {\n if (i + n > max) {\n throw new RangeException(i + n);\n }\n\n const idx = createIndices(n);\n indices.splice(i, 0, ...idx);\n return idx;\n};\n\nexport const initialize = (\n sheet: SheetType,\n { rows = DEFAULT_ROWS, columns = DEFAULT_COLS }: Partial<SheetSize> = {},\n) => {\n if (!sheet.rows.length) {\n insertIndices(sheet.rows, 0, rows, MAX_ROWS);\n }\n if (!sheet.columns.length) {\n insertIndices(sheet.columns, 0, columns, MAX_COLS);\n }\n};\n\nexport const createSheet = ({ name, cells, ...size }: CreateSheetOptions = {}): SheetType => {\n const sheet = create(SheetType, {\n name,\n cells: {},\n rows: [],\n columns: [],\n rowMeta: {},\n columnMeta: {},\n ranges: [],\n threads: [],\n });\n\n initialize(sheet, size);\n\n if (cells) {\n Object.entries(cells).forEach(([key, { value }]) => {\n const idx = addressToIndex(sheet, addressFromA1Notation(key));\n if (isFormula(value)) {\n value = mapFormulaRefsToIndices(sheet, value);\n }\n\n sheet.cells[idx] = { value };\n });\n }\n\n return sheet;\n};\n\n/**\n * E.g., \"A1\" => \"CA2@CB3\".\n */\nexport const addressToIndex = (sheet: SheetType, cell: CellAddress): string => {\n return `${sheet.columns[cell.col]}@${sheet.rows[cell.row]}`;\n};\n\n/**\n * E.g., \"CA2@CB3\" => \"A1\".\n */\nexport const addressFromIndex = (sheet: SheetType, idx: string): CellAddress => {\n const [column, row] = idx.split('@');\n return {\n col: sheet.columns.indexOf(column),\n row: sheet.rows.indexOf(row),\n };\n};\n\n/**\n * E.g., \"A1:B2\" => \"CA2@CB3:CC4@CD5\".\n */\nexport const rangeToIndex = (sheet: SheetType, range: CellRange): string => {\n return [range.from, range.to ?? range.from].map((cell) => addressToIndex(sheet, cell)).join(':');\n};\n\n/**\n * E.g., \"CA2@CB3:CC4@CD5\" => \"A1:B2\".\n */\nexport const rangeFromIndex = (sheet: SheetType, idx: string): CompleteCellRange => {\n const [from, to] = idx.split(':').map((index) => addressFromIndex(sheet, index));\n return { from, to };\n};\n\n/**\n * Compares the positions of two cell indexes in a sheet.\n * Sorts primarily by row, then by column if rows are equal.\n */\nexport const compareIndexPositions = (sheet: SheetType, indexA: string, indexB: string): number => {\n const { row: rowA, col: columnA } = addressFromIndex(sheet, indexA);\n const { row: rowB, col: columnB } = addressFromIndex(sheet, indexB);\n\n // Sort by row first, then by column.\n if (rowA !== rowB) {\n return rowA - rowB;\n } else {\n return columnA - columnB;\n }\n};\n\n// TODO(burdon): Tests.\n\n/**\n * Map from A1 notation to indices.\n */\nexport const mapFormulaRefsToIndices = (sheet: SheetType, formula: string): string => {\n invariant(isFormula(formula));\n return formula.replace(/([a-zA-Z]+)([0-9]+)/g, (match) => {\n return addressToIndex(sheet, addressFromA1Notation(match));\n });\n};\n\n/**\n * Map from indices to A1 notation.\n */\nexport const mapFormulaIndicesToRefs = (sheet: SheetType, formula: string): string => {\n invariant(isFormula(formula));\n return formula.replace(/([a-zA-Z0-9]+)@([a-zA-Z0-9]+)/g, (idx) => {\n return addressToA1Notation(addressFromIndex(sheet, idx));\n });\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Ref", "S", "TypedObject", "ThreadType", "CellValue", "S", "Struct", "value", "Any", "Range", "range", "String", "key", "RowColumnMeta", "size", "optional", "Number", "SheetType", "TypedObject", "typename", "version", "name", "cells", "mutable", "Record", "rows", "Array", "columns", "rowMeta", "columnMeta", "ranges", "threads", "Ref", "ThreadType", "alignKey", "commentKey", "styleKey", "cellClassNameForRange", "key", "value", "undefined", "S", "Event", "addressFromA1Notation", "addressToA1Notation", "createSheetName", "isFormula", "DetailedCellError", "ExportedCellChange", "Resource", "getTypename", "FormatEnum", "TypeEnum", "invariant", "PublicKey", "log", "typeMap", "BOOLEAN", "type", "TypeEnum", "Boolean", "NUMBER_RAW", "Number", "NUMBER_PERCENT", "format", "FormatEnum", "Percent", "NUMBER_CURRENCY", "Currency", "NUMBER_DATETIME", "String", "DateTime", "NUMBER_DATE", "Date", "NUMBER_TIME", "Time", "getTopLeft", "range", "to", "from", "row", "Math", "min", "col", "toSimpleCellAddress", "sheet", "cell", "toModelRange", "start", "end", "SheetModel", "Resource", "constructor", "_graph", "_sheet", "_options", "id", "PublicKey", "random", "truncate", "update", "Event", "graph", "readonly", "bounds", "rows", "length", "columns", "_open", "log", "initialize", "on", "event", "reset", "_node", "getOrCreateNode", "createSheetName", "getTypename", "open", "unsubscribe", "emit", "_ctx", "onDispose", "invariant", "hf", "clearSheet", "sheetId", "Object", "entries", "cells", "forEach", "key", "value", "addressFromIndex", "isFormula", "binding", "mapFunctionBindingFromId", "mapFormulaIndicesToRefs", "mapFormulaToNative", "setCellContents", "recalculate", "rebuildAndRecalculate", "insertRows", "i", "n", "idx", "insertIndices", "MAX_ROWS", "insertColumns", "MAX_COLS", "dropRow", "rowIndex", "values", "getCellValues", "flat", "index", "indexOf", "clear", "splice", "rowMeta", "axis", "axisIndex", "axisMeta", "dropColumn", "colIndex", "columnMeta", "restoreRow", "restoreColumn", "topLeft", "_iterRange", "addressToIndex", "cut", "copy", "paste", "isClipboardEmpty", "changes", "change", "ExportedCellChange", "address", "newValue", "undo", "isThereSomethingToUndo", "redo", "isThereSomethingToRedo", "getCellValue", "getCellText", "undefined", "getValue", "DetailedCellError", "info", "error", "toString", "getValueDescription", "addr", "getCellValueDetailedType", "setValue", "ReadonlyException", "refresh", "mapFunctionBindingToId", "mapFormulaRefsToIndices", "setValues", "addressFromA1Notation", "cb", "rowRange", "max", "columnRange", "rowCells", "column", "push", "_deleteIndices", "indices", "Error", "_moveIndices", "j", "formula", "replace", "addressToA1Notation", "toLocalDate", "num", "year", "month", "day", "hours", "minutes", "seconds", "toDateTime", "numberToDateTime", "toDate", "numberToDate", "toTime", "numberToTime", "useEffect", "useState", "useSheetModel", "graph", "sheet", "readonly", "model", "setModel", "useState", "useEffect", "t", "setTimeout", "SheetModel", "open", "clearTimeout", "close", "SheetAction", "SHEET_ACTION", "SHEET_PLUGIN", "Create", "S", "TaggedClass", "input", "Struct", "name", "optional", "String", "output", "object", "SheetType", "Axis", "Union", "Literal", "InsertAxis", "model", "Any", "pipe", "filter", "SheetModel", "axis", "index", "Number", "count", "Void", "RestoreAxis", "axisIndex", "axisMeta", "RowColumnMeta", "values", "Array", "DropAxis", "deletionData", "addressFromA1Notation", "addressToA1Notation", "isFormula", "randomBytes", "invariant", "create", "MAX_ROWS", "MAX_COLS", "DEFAULT_ROWS", "DEFAULT_COLS", "ApiError", "Error", "ReadonlyException", "RangeException", "constructor", "n", "createIndex", "length", "characters", "charactersLength", "randomBuffer", "randomBytes", "Array", "from", "byte", "join", "createIndices", "map", "insertIndices", "indices", "i", "max", "idx", "splice", "initialize", "sheet", "rows", "columns", "createSheet", "name", "cells", "size", "create", "SheetType", "rowMeta", "columnMeta", "ranges", "threads", "Object", "entries", "forEach", "key", "value", "addressToIndex", "addressFromA1Notation", "isFormula", "mapFormulaRefsToIndices", "cell", "col", "row", "addressFromIndex", "column", "split", "indexOf", "rangeToIndex", "range", "to", "rangeFromIndex", "index", "compareIndexPositions", "indexA", "indexB", "rowA", "columnA", "rowB", "columnB", "formula", "invariant", "replace", "match", "mapFormulaIndicesToRefs", "addressToA1Notation"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SheetCapabilities
|
|
3
|
+
} from "./chunk-LXHRT3CC.mjs";
|
|
4
|
+
import "./chunk-GAFHJBCU.mjs";
|
|
5
|
+
|
|
6
|
+
// packages/plugins/plugin-sheet/src/capabilities/compute-graph-registry.ts
|
|
7
|
+
import { contributes } from "@dxos/app-framework";
|
|
8
|
+
import { ClientCapabilities } from "@dxos/plugin-client";
|
|
9
|
+
var compute_graph_registry_default = async (context) => {
|
|
10
|
+
const client = context.requestCapability(ClientCapabilities.Client);
|
|
11
|
+
let remoteFunctionUrl;
|
|
12
|
+
if (client.config.values.runtime?.services?.edge?.url) {
|
|
13
|
+
const url = new URL("/functions", client.config.values.runtime?.services?.edge?.url);
|
|
14
|
+
url.protocol = "https";
|
|
15
|
+
remoteFunctionUrl = url.toString();
|
|
16
|
+
}
|
|
17
|
+
const { defaultPlugins, ComputeGraphRegistry } = await import("@dxos/compute");
|
|
18
|
+
const computeGraphRegistry = new ComputeGraphRegistry({
|
|
19
|
+
plugins: defaultPlugins,
|
|
20
|
+
remoteFunctionUrl
|
|
21
|
+
});
|
|
22
|
+
return contributes(SheetCapabilities.ComputeGraphRegistry, computeGraphRegistry);
|
|
23
|
+
};
|
|
24
|
+
export {
|
|
25
|
+
compute_graph_registry_default as default
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=compute-graph-registry-EGPD4HEX.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/compute-graph-registry.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, type PluginsContext } from '@dxos/app-framework';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { SheetCapabilities } from './capabilities';\n\nexport default async (context: PluginsContext) => {\n const client = context.requestCapability(ClientCapabilities.Client);\n let remoteFunctionUrl: string | undefined;\n if (client.config.values.runtime?.services?.edge?.url) {\n const url = new URL('/functions', client.config.values.runtime?.services?.edge?.url);\n url.protocol = 'https';\n remoteFunctionUrl = url.toString();\n }\n\n // TODO(wittjosiah): This can probably be a module level import now due to lazy capability loading.\n // Async import removes direct dependency on hyperformula.\n const { defaultPlugins, ComputeGraphRegistry } = await import('@dxos/compute');\n const computeGraphRegistry = new ComputeGraphRegistry({ plugins: defaultPlugins, remoteFunctionUrl });\n\n return contributes(SheetCapabilities.ComputeGraphRegistry, computeGraphRegistry);\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;AAIA,SAASA,mBAAwC;AACjD,SAASC,0BAA0B;AAInC,IAAA,iCAAe,OAAOC,YAAAA;AACpB,QAAMC,SAASD,QAAQE,kBAAkBC,mBAAmBC,MAAM;AAClE,MAAIC;AACJ,MAAIJ,OAAOK,OAAOC,OAAOC,SAASC,UAAUC,MAAMC,KAAK;AACrD,UAAMA,MAAM,IAAIC,IAAI,cAAcX,OAAOK,OAAOC,OAAOC,SAASC,UAAUC,MAAMC,GAAAA;AAChFA,QAAIE,WAAW;AACfR,wBAAoBM,IAAIG,SAAQ;EAClC;AAIA,QAAM,EAAEC,gBAAgBC,qBAAoB,IAAK,MAAM,OAAO,eAAA;AAC9D,QAAMC,uBAAuB,IAAID,qBAAqB;IAAEE,SAASH;IAAgBV;EAAkB,CAAA;AAEnG,SAAOc,YAAYC,kBAAkBJ,sBAAsBC,oBAAAA;AAC7D;",
|
|
6
|
+
"names": ["contributes", "ClientCapabilities", "context", "client", "requestCapability", "ClientCapabilities", "Client", "remoteFunctionUrl", "config", "values", "runtime", "services", "edge", "url", "URL", "protocol", "toString", "defaultPlugins", "ComputeGraphRegistry", "computeGraphRegistry", "plugins", "contributes", "SheetCapabilities"]
|
|
7
|
+
}
|
|
@@ -1,62 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
SheetObjectSettings,
|
|
5
|
-
computeGraphFacet
|
|
6
|
-
} from "./chunk-E5WQ7U7G.mjs";
|
|
7
|
-
import {
|
|
8
|
-
ApiError,
|
|
9
|
-
DEFAULT_COLUMNS,
|
|
10
|
-
DEFAULT_ROWS,
|
|
11
|
-
MAX_COLUMNS,
|
|
12
|
-
MAX_ROWS,
|
|
13
|
-
RANGE_NOTATION,
|
|
14
|
-
RangeException,
|
|
15
|
-
ReadonlyException,
|
|
16
|
-
addressFromA1Notation,
|
|
17
|
-
addressFromIndex,
|
|
18
|
-
addressToA1Notation,
|
|
19
|
-
addressToIndex,
|
|
20
|
-
alignKey,
|
|
21
|
-
cellClassNameForRange,
|
|
22
|
-
columnLetter,
|
|
23
|
-
commentKey,
|
|
24
|
-
compareIndexPositions,
|
|
25
|
-
createIndex,
|
|
26
|
-
createIndices,
|
|
27
|
-
createSheet,
|
|
28
|
-
inRange,
|
|
29
|
-
initialize,
|
|
30
|
-
insertIndices,
|
|
31
|
-
isFormula,
|
|
32
|
-
mapFormulaIndicesToRefs,
|
|
33
|
-
mapFormulaRefsToIndices,
|
|
34
|
-
posEquals,
|
|
35
|
-
rangeFromA1Notation,
|
|
36
|
-
rangeFromIndex,
|
|
37
|
-
rangeToA1Notation,
|
|
38
|
-
rangeToIndex,
|
|
39
|
-
styleKey
|
|
40
|
-
} from "./chunk-F3HE6D3J.mjs";
|
|
2
|
+
SheetCapabilities
|
|
3
|
+
} from "./chunk-LXHRT3CC.mjs";
|
|
41
4
|
import {
|
|
42
5
|
SheetAction,
|
|
43
6
|
SheetType
|
|
44
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-OOSRC36N.mjs";
|
|
45
8
|
import {
|
|
46
9
|
SHEET_PLUGIN,
|
|
47
|
-
|
|
48
|
-
} from "./chunk-
|
|
10
|
+
meta
|
|
11
|
+
} from "./chunk-GAFHJBCU.mjs";
|
|
12
|
+
|
|
13
|
+
// packages/plugins/plugin-sheet/src/capabilities/index.ts
|
|
14
|
+
import { lazy } from "@dxos/app-framework";
|
|
15
|
+
var ComputeGraphRegistry = lazy(() => import("./compute-graph-registry-EGPD4HEX.mjs"));
|
|
16
|
+
var IntentResolver = lazy(() => import("./intent-resolver-6S2RMLQF.mjs"));
|
|
17
|
+
var Markdown = lazy(() => import("./markdown-CFJIWHZX.mjs"));
|
|
18
|
+
var ReactSurface = lazy(() => import("./react-surface-PHKJZYFB.mjs"));
|
|
19
|
+
var Thread = lazy(() => import("./thread-7ZWW5EA7.mjs"));
|
|
49
20
|
|
|
50
21
|
// packages/plugins/plugin-sheet/src/SheetPlugin.tsx
|
|
51
|
-
import
|
|
52
|
-
import {
|
|
53
|
-
import {
|
|
54
|
-
import { parseClientPlugin } from "@dxos/plugin-client";
|
|
55
|
-
import { createExtension, isActionGroup } from "@dxos/plugin-graph";
|
|
56
|
-
import { FunctionType } from "@dxos/plugin-script/types";
|
|
57
|
-
import { SpaceAction } from "@dxos/plugin-space";
|
|
58
|
-
import { getSpace, isEchoObject } from "@dxos/react-client/echo";
|
|
59
|
-
import { Icon } from "@dxos/react-ui";
|
|
22
|
+
import { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from "@dxos/app-framework";
|
|
23
|
+
import { FunctionType } from "@dxos/functions";
|
|
24
|
+
import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
|
|
60
25
|
|
|
61
26
|
// packages/plugins/plugin-sheet/src/serializer.ts
|
|
62
27
|
import { create, getObjectCore } from "@dxos/react-client/echo";
|
|
@@ -118,284 +83,75 @@ var translations_default = [
|
|
|
118
83
|
];
|
|
119
84
|
|
|
120
85
|
// packages/plugins/plugin-sheet/src/SheetPlugin.tsx
|
|
121
|
-
var
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
let remoteFunctionUrl;
|
|
138
|
-
if (client.config.values.runtime?.services?.edge?.url) {
|
|
139
|
-
const url = new URL("/functions", client.config.values.runtime?.services?.edge?.url);
|
|
140
|
-
url.protocol = "https";
|
|
141
|
-
remoteFunctionUrl = url.toString();
|
|
142
|
-
}
|
|
143
|
-
const { defaultPlugins, ComputeGraphRegistry } = await import("./compute-graph-SNUS7HOH.mjs");
|
|
144
|
-
computeGraphRegistry = new ComputeGraphRegistry({
|
|
145
|
-
plugins: defaultPlugins,
|
|
146
|
-
remoteFunctionUrl
|
|
147
|
-
});
|
|
148
|
-
},
|
|
149
|
-
provides: {
|
|
150
|
-
context: ({ children }) => {
|
|
151
|
-
invariant(computeGraphRegistry, void 0, {
|
|
152
|
-
F: __dxlog_file,
|
|
153
|
-
L: 46,
|
|
154
|
-
S: void 0,
|
|
155
|
-
A: [
|
|
156
|
-
"computeGraphRegistry",
|
|
157
|
-
""
|
|
158
|
-
]
|
|
159
|
-
});
|
|
160
|
-
return /* @__PURE__ */ React.createElement(ComputeGraphContextProvider, {
|
|
161
|
-
registry: computeGraphRegistry
|
|
162
|
-
}, children);
|
|
163
|
-
},
|
|
86
|
+
var SheetPlugin = () => definePlugin(meta, [
|
|
87
|
+
defineModule({
|
|
88
|
+
id: `${meta.id}/module/compute-graph-registry`,
|
|
89
|
+
activatesOn: ClientEvents.ClientReady,
|
|
90
|
+
activate: ComputeGraphRegistry
|
|
91
|
+
}),
|
|
92
|
+
defineModule({
|
|
93
|
+
id: `${meta.id}/module/translations`,
|
|
94
|
+
activatesOn: Events.SetupTranslations,
|
|
95
|
+
activate: () => contributes(Capabilities.Translations, translations_default)
|
|
96
|
+
}),
|
|
97
|
+
defineModule({
|
|
98
|
+
id: `${meta.id}/module/metadata`,
|
|
99
|
+
activatesOn: Events.SetupMetadata,
|
|
100
|
+
activate: () => contributes(Capabilities.Metadata, {
|
|
101
|
+
id: SheetType.typename,
|
|
164
102
|
metadata: {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
placeholder: [
|
|
170
|
-
"sheet title placeholder",
|
|
171
|
-
{
|
|
172
|
-
ns: SHEET_PLUGIN
|
|
173
|
-
}
|
|
174
|
-
],
|
|
175
|
-
icon: "ph--grid-nine--regular",
|
|
176
|
-
serializer
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
translations: translations_default,
|
|
181
|
-
echo: {
|
|
182
|
-
schema: [
|
|
183
|
-
SheetType
|
|
184
|
-
],
|
|
185
|
-
// TODO(wittjosiah): Factor out to common package/plugin.
|
|
186
|
-
// FunctionType is currently registered here in case script plugin isn't enabled.
|
|
187
|
-
system: [
|
|
188
|
-
FunctionType
|
|
189
|
-
]
|
|
190
|
-
},
|
|
191
|
-
graph: {
|
|
192
|
-
builder: (plugins) => {
|
|
193
|
-
const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;
|
|
194
|
-
const dispatch = resolvePlugin(plugins, parseIntentPlugin)?.provides.intent.dispatch;
|
|
195
|
-
if (!client || !dispatch) {
|
|
196
|
-
return [];
|
|
197
|
-
}
|
|
198
|
-
return createExtension({
|
|
199
|
-
id: SheetAction.CREATE,
|
|
200
|
-
filter: (node) => isActionGroup(node) && node.id.startsWith(SpaceAction.ADD_OBJECT),
|
|
201
|
-
actions: ({ node }) => {
|
|
202
|
-
const id = node.id.split("/").at(-1);
|
|
203
|
-
const [spaceId, objectId] = id?.split(":") ?? [];
|
|
204
|
-
const space = client.spaces.get().find((space2) => space2.id === spaceId);
|
|
205
|
-
const object = objectId && space?.db.getObjectById(objectId);
|
|
206
|
-
const target = objectId ? object : space;
|
|
207
|
-
if (!target) {
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
return [
|
|
211
|
-
{
|
|
212
|
-
id: `${SHEET_PLUGIN}/create/${node.id}`,
|
|
213
|
-
data: async () => {
|
|
214
|
-
await dispatch([
|
|
215
|
-
{
|
|
216
|
-
plugin: SHEET_PLUGIN,
|
|
217
|
-
action: SheetAction.CREATE,
|
|
218
|
-
data: {
|
|
219
|
-
space
|
|
220
|
-
}
|
|
221
|
-
},
|
|
222
|
-
{
|
|
223
|
-
action: SpaceAction.ADD_OBJECT,
|
|
224
|
-
data: {
|
|
225
|
-
target
|
|
226
|
-
}
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
action: NavigationAction.OPEN
|
|
230
|
-
}
|
|
231
|
-
]);
|
|
232
|
-
},
|
|
233
|
-
properties: {
|
|
234
|
-
label: [
|
|
235
|
-
"create sheet label",
|
|
236
|
-
{
|
|
237
|
-
ns: SHEET_PLUGIN
|
|
238
|
-
}
|
|
239
|
-
],
|
|
240
|
-
icon: "ph--grid-nine--regular",
|
|
241
|
-
testId: "sheetPlugin.createObject"
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
];
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
},
|
|
249
|
-
markdown: {
|
|
250
|
-
extensions: ({ document: doc }) => {
|
|
251
|
-
invariant(computeGraphRegistry, void 0, {
|
|
252
|
-
F: __dxlog_file,
|
|
253
|
-
L: 111,
|
|
254
|
-
S: void 0,
|
|
255
|
-
A: [
|
|
256
|
-
"computeGraphRegistry",
|
|
257
|
-
""
|
|
258
|
-
]
|
|
259
|
-
});
|
|
260
|
-
const space = getSpace(doc);
|
|
261
|
-
if (space) {
|
|
262
|
-
const computeGraph = computeGraphRegistry.getOrCreateGraph(space);
|
|
263
|
-
return computeGraphFacet.of(computeGraph);
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
},
|
|
267
|
-
stack: {
|
|
268
|
-
creators: [
|
|
103
|
+
createObject: (props) => createIntent(SheetAction.Create, props),
|
|
104
|
+
label: (object) => object instanceof SheetType ? object.name : void 0,
|
|
105
|
+
placeholder: [
|
|
106
|
+
"sheet title placeholder",
|
|
269
107
|
{
|
|
270
|
-
|
|
271
|
-
testId: "sheetPlugin.createSection",
|
|
272
|
-
type: [
|
|
273
|
-
"plugin name",
|
|
274
|
-
{
|
|
275
|
-
ns: SHEET_PLUGIN
|
|
276
|
-
}
|
|
277
|
-
],
|
|
278
|
-
label: [
|
|
279
|
-
"create sheet section label",
|
|
280
|
-
{
|
|
281
|
-
ns: SHEET_PLUGIN
|
|
282
|
-
}
|
|
283
|
-
],
|
|
284
|
-
// TODO(thure): Refactor to use strings
|
|
285
|
-
icon: (props) => /* @__PURE__ */ React.createElement(Icon, {
|
|
286
|
-
icon: "ph--grid-nine--regular",
|
|
287
|
-
...props
|
|
288
|
-
}),
|
|
289
|
-
intent: {
|
|
290
|
-
plugin: SHEET_PLUGIN,
|
|
291
|
-
action: SheetAction.CREATE
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
]
|
|
295
|
-
},
|
|
296
|
-
thread: {
|
|
297
|
-
predicate: (data) => data instanceof SheetType,
|
|
298
|
-
createSort: (sheet) => (indexA, indexB) => !indexA || !indexB ? 0 : compareIndexPositions(sheet, indexA, indexB)
|
|
299
|
-
},
|
|
300
|
-
surface: {
|
|
301
|
-
component: ({ data, role }) => {
|
|
302
|
-
const space = isEchoObject(data.object) ? getSpace(data.object) : void 0;
|
|
303
|
-
switch (role) {
|
|
304
|
-
case "article":
|
|
305
|
-
case "section":
|
|
306
|
-
if (space && data.object instanceof SheetType) {
|
|
307
|
-
return /* @__PURE__ */ React.createElement(SheetContainer, {
|
|
308
|
-
space,
|
|
309
|
-
sheet: data.object,
|
|
310
|
-
role
|
|
311
|
-
});
|
|
312
|
-
}
|
|
313
|
-
break;
|
|
314
|
-
case "complementary--settings":
|
|
315
|
-
if (data.subject instanceof SheetType) {
|
|
316
|
-
return /* @__PURE__ */ React.createElement(SheetObjectSettings, {
|
|
317
|
-
sheet: data.subject
|
|
318
|
-
});
|
|
319
|
-
}
|
|
320
|
-
break;
|
|
321
|
-
}
|
|
322
|
-
return null;
|
|
323
|
-
}
|
|
324
|
-
},
|
|
325
|
-
intent: {
|
|
326
|
-
resolver: async (intent) => {
|
|
327
|
-
switch (intent.action) {
|
|
328
|
-
case SheetAction.CREATE: {
|
|
329
|
-
return {
|
|
330
|
-
data: createSheet()
|
|
331
|
-
};
|
|
332
|
-
}
|
|
333
|
-
case SheetAction.INSERT_AXIS: {
|
|
334
|
-
const { model, axis, index, count } = intent.data;
|
|
335
|
-
const _indices = model[axis === "col" ? "insertColumns" : "insertRows"](index, count);
|
|
336
|
-
return;
|
|
337
|
-
}
|
|
338
|
-
case SheetAction.DROP_AXIS: {
|
|
339
|
-
if (!intent.undo) {
|
|
340
|
-
const { model, axis, axisIndex } = intent.data;
|
|
341
|
-
const undoData = model[axis === "col" ? "dropColumn" : "dropRow"](axisIndex);
|
|
342
|
-
return {
|
|
343
|
-
undoable: {
|
|
344
|
-
message: translations_default[0]["en-US"][SHEET_PLUGIN][`${axis} dropped label`],
|
|
345
|
-
data: {
|
|
346
|
-
...undoData,
|
|
347
|
-
model
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
};
|
|
351
|
-
} else {
|
|
352
|
-
const { model, ...undoData } = intent.data;
|
|
353
|
-
model[undoData.axis === "col" ? "restoreColumn" : "restoreRow"](undoData);
|
|
354
|
-
}
|
|
355
|
-
}
|
|
108
|
+
ns: SHEET_PLUGIN
|
|
356
109
|
}
|
|
357
|
-
|
|
110
|
+
],
|
|
111
|
+
icon: "ph--grid-nine--regular",
|
|
112
|
+
serializer
|
|
358
113
|
}
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
114
|
+
})
|
|
115
|
+
}),
|
|
116
|
+
defineModule({
|
|
117
|
+
id: `${meta.id}/module/schema`,
|
|
118
|
+
activatesOn: ClientEvents.SetupSchema,
|
|
119
|
+
activate: () => [
|
|
120
|
+
contributes(ClientCapabilities.Schema, [
|
|
121
|
+
SheetType
|
|
122
|
+
]),
|
|
123
|
+
// TODO(wittjosiah): Factor out to common package/plugin.
|
|
124
|
+
// FunctionType is currently registered here in case script plugin isn't enabled.
|
|
125
|
+
contributes(ClientCapabilities.SystemSchema, [
|
|
126
|
+
FunctionType
|
|
127
|
+
])
|
|
128
|
+
]
|
|
129
|
+
}),
|
|
130
|
+
defineModule({
|
|
131
|
+
id: `${meta.id}/module/markdown`,
|
|
132
|
+
activatesOn: Events.Startup,
|
|
133
|
+
activate: Markdown
|
|
134
|
+
}),
|
|
135
|
+
defineModule({
|
|
136
|
+
id: `${meta.id}/module/thread`,
|
|
137
|
+
activatesOn: Events.Startup,
|
|
138
|
+
activate: Thread
|
|
139
|
+
}),
|
|
140
|
+
defineModule({
|
|
141
|
+
id: `${meta.id}/module/react-surface`,
|
|
142
|
+
activatesOn: Events.SetupSurfaces,
|
|
143
|
+
activate: ReactSurface
|
|
144
|
+
}),
|
|
145
|
+
defineModule({
|
|
146
|
+
id: `${meta.id}/module/intent-resolver`,
|
|
147
|
+
activatesOn: Events.SetupIntents,
|
|
148
|
+
activate: IntentResolver
|
|
149
|
+
})
|
|
150
|
+
]);
|
|
365
151
|
export {
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
DEFAULT_ROWS,
|
|
369
|
-
MAX_COLUMNS,
|
|
370
|
-
MAX_ROWS,
|
|
371
|
-
RANGE_NOTATION,
|
|
372
|
-
RangeException,
|
|
373
|
-
ReadonlyException,
|
|
152
|
+
SHEET_PLUGIN,
|
|
153
|
+
SheetCapabilities,
|
|
374
154
|
SheetPlugin,
|
|
375
|
-
|
|
376
|
-
addressFromIndex,
|
|
377
|
-
addressToA1Notation,
|
|
378
|
-
addressToIndex,
|
|
379
|
-
alignKey,
|
|
380
|
-
cellClassNameForRange,
|
|
381
|
-
columnLetter,
|
|
382
|
-
commentKey,
|
|
383
|
-
compareIndexPositions,
|
|
384
|
-
createIndex,
|
|
385
|
-
createIndices,
|
|
386
|
-
createSheet,
|
|
387
|
-
src_default as default,
|
|
388
|
-
inRange,
|
|
389
|
-
initialize,
|
|
390
|
-
insertIndices,
|
|
391
|
-
isFormula,
|
|
392
|
-
mapFormulaIndicesToRefs,
|
|
393
|
-
mapFormulaRefsToIndices,
|
|
394
|
-
posEquals,
|
|
395
|
-
rangeFromA1Notation,
|
|
396
|
-
rangeFromIndex,
|
|
397
|
-
rangeToA1Notation,
|
|
398
|
-
rangeToIndex,
|
|
399
|
-
styleKey
|
|
155
|
+
meta
|
|
400
156
|
};
|
|
401
157
|
//# sourceMappingURL=index.mjs.map
|