@dxos/plugin-sheet 0.8.4-main.c85a9c8dae → 0.8.4-main.d9fc60f731
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/LICENSE +102 -5
- package/PLUGIN.mdl +359 -0
- package/dist/lib/{browser/RangeList-S3SHV7T6.mjs → neutral/RangeList-HYB5S6KQ.mjs} +21 -28
- package/dist/lib/neutral/RangeList-HYB5S6KQ.mjs.map +7 -0
- package/dist/lib/neutral/SheetArticle-5AJRM3V3.mjs +33 -0
- package/dist/lib/neutral/SheetArticle-5AJRM3V3.mjs.map +7 -0
- package/dist/lib/neutral/SheetPlugin.mjs +59 -0
- package/dist/lib/neutral/SheetPlugin.mjs.map +7 -0
- package/dist/lib/neutral/SheetPlugin.node.mjs +27 -0
- package/dist/lib/neutral/SheetPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/SheetPlugin.workerd.mjs +21 -0
- package/dist/lib/neutral/SheetPlugin.workerd.mjs.map +7 -0
- package/dist/lib/{browser/anchor-sort-DZ3IHHJJ.mjs → neutral/anchor-sort-2POWTKTD.mjs} +6 -8
- package/dist/lib/neutral/anchor-sort-2POWTKTD.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +25 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/chunk-3AIMSE7U.mjs +83 -0
- package/dist/lib/neutral/chunk-3AIMSE7U.mjs.map +7 -0
- package/dist/lib/neutral/chunk-7ZUM64KO.mjs +8 -0
- package/dist/lib/neutral/chunk-7ZUM64KO.mjs.map +7 -0
- package/dist/lib/{browser/chunk-NNWF7EKC.mjs → neutral/chunk-ERHMBRSU.mjs} +4 -4
- package/dist/lib/neutral/chunk-ERHMBRSU.mjs.map +7 -0
- package/dist/lib/{browser/chunk-S445OQGW.mjs → neutral/chunk-EUM3RVML.mjs} +173 -196
- package/dist/lib/neutral/chunk-EUM3RVML.mjs.map +7 -0
- package/dist/lib/neutral/chunk-FQHTXKMF.mjs +34 -0
- package/dist/lib/neutral/chunk-FQHTXKMF.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/comment-config-6JAROASH.mjs +21 -0
- package/dist/lib/neutral/comment-config-6JAROASH.mjs.map +7 -0
- package/dist/lib/{browser/SheetContainer-I3NFVVDQ.mjs → neutral/components/index.mjs} +163 -416
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/compute-graph-registry-YYINTFC2.mjs +26 -0
- package/dist/lib/neutral/compute-graph-registry-YYINTFC2.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +11 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/neutral/create-object-6FZSSROF.mjs +28 -0
- package/dist/lib/neutral/create-object-6FZSSROF.mjs.map +7 -0
- package/dist/lib/neutral/drop-axis-MO3KUU4C.mjs +23 -0
- package/dist/lib/neutral/drop-axis-MO3KUU4C.mjs.map +7 -0
- package/dist/lib/{browser/types → neutral}/index.mjs +14 -5
- package/dist/lib/neutral/insert-axis-V7E5PTMG.mjs +16 -0
- package/dist/lib/neutral/insert-axis-V7E5PTMG.mjs.map +7 -0
- package/dist/lib/{browser/markdown-S6GVLHB4.mjs → neutral/markdown-O37EE3ER.mjs} +5 -6
- package/dist/lib/neutral/markdown-O37EE3ER.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +8 -0
- package/dist/lib/neutral/meta.mjs.map +7 -0
- package/dist/lib/neutral/operation-handler-TB6LFV2H.mjs +13 -0
- package/dist/lib/neutral/operation-handler-TB6LFV2H.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +8 -0
- package/dist/lib/neutral/operations/index.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +16 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/{browser/react-surface-KIU6DGKW.mjs → neutral/react-surface-4H3PC4WG.mjs} +13 -20
- package/dist/lib/neutral/react-surface-4H3PC4WG.mjs.map +7 -0
- package/dist/lib/neutral/restore-axis-BAM44OPG.mjs +16 -0
- package/dist/lib/neutral/restore-axis-BAM44OPG.mjs.map +7 -0
- package/dist/lib/neutral/scroll-to-anchor-TBE2FTTT.mjs +33 -0
- package/dist/lib/neutral/scroll-to-anchor-TBE2FTTT.mjs.map +7 -0
- package/dist/lib/neutral/state-HPA27MX2.mjs +29 -0
- package/dist/lib/neutral/state-HPA27MX2.mjs.map +7 -0
- package/dist/lib/neutral/testing/index.mjs +103 -0
- package/dist/lib/neutral/testing/index.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +56 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/{node-esm → neutral}/types/index.mjs +6 -6
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/lib/neutral/undo-mappings-3FQLSTCZ.mjs +31 -0
- package/dist/lib/neutral/undo-mappings-3FQLSTCZ.mjs.map +7 -0
- package/dist/types/src/SheetPlugin.d.ts +1 -0
- package/dist/types/src/SheetPlugin.d.ts.map +1 -1
- package/dist/types/src/SheetPlugin.node.d.ts +4 -0
- package/dist/types/src/SheetPlugin.node.d.ts.map +1 -0
- package/dist/types/src/SheetPlugin.test.d.ts +2 -0
- package/dist/types/src/SheetPlugin.test.d.ts.map +1 -0
- package/dist/types/src/SheetPlugin.workerd.d.ts +4 -0
- package/dist/types/src/SheetPlugin.workerd.d.ts.map +1 -0
- package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -0
- package/dist/types/src/capabilities/comment-config.d.ts +12 -0
- package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
- package/dist/types/src/capabilities/compute-graph-registry.d.ts +11 -0
- package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -0
- package/dist/types/src/capabilities/create-object.d.ts +11 -0
- package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +23 -5
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/{compute-graph-registry/compute-graph-registry.d.ts → state.d.ts} +3 -2
- package/dist/types/src/capabilities/state.d.ts.map +1 -0
- package/dist/types/src/capabilities/undo-mappings.d.ts +5 -0
- package/dist/types/src/capabilities/undo-mappings.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 -1
- package/dist/types/src/components/Sheet/Sheet.d.ts +10 -4
- package/dist/types/src/components/Sheet/Sheet.d.ts.map +1 -1
- package/dist/types/src/components/SheetContent/SheetCellEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetContent/SheetContent.d.ts +4 -3
- package/dist/types/src/components/SheetContent/SheetContent.d.ts.map +1 -1
- package/dist/types/src/components/SheetContent/SheetContent.stories.d.ts +77 -39
- package/dist/types/src/components/SheetContent/SheetContent.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetContent/util.d.ts +1 -1
- package/dist/types/src/components/SheetContent/util.d.ts.map +1 -1
- package/dist/types/src/components/SheetRoot/SheetRoot.d.ts +5 -3
- package/dist/types/src/components/SheetRoot/SheetRoot.d.ts.map +1 -1
- package/dist/types/src/components/SheetStatusbar/SheetStatusbar.d.ts +4 -3
- package/dist/types/src/components/SheetStatusbar/SheetStatusbar.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +5 -8
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +72 -68
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/align.d.ts +2 -2
- package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/style.d.ts +2 -2
- package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -1
- package/dist/types/src/containers/RangeList/RangeList.d.ts +2 -2
- package/dist/types/src/containers/RangeList/RangeList.d.ts.map +1 -1
- package/dist/types/src/containers/RangeList/index.d.ts +1 -2
- package/dist/types/src/containers/RangeList/index.d.ts.map +1 -1
- package/dist/types/src/containers/SheetArticle/SheetArticle.d.ts +12 -0
- package/dist/types/src/containers/SheetArticle/SheetArticle.d.ts.map +1 -0
- package/dist/types/src/containers/SheetArticle/SheetArticle.stories.d.ts +92 -0
- package/dist/types/src/containers/SheetArticle/SheetArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/SheetArticle/index.d.ts +2 -0
- package/dist/types/src/containers/SheetArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +1 -1
- package/dist/types/src/containers/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/compute.stories.d.ts.map +1 -1
- package/dist/types/src/extensions/editor/sheet-extension.d.ts +1 -1
- package/dist/types/src/extensions/editor/sheet-extension.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/integrations/thread-ranges.d.ts +1 -3
- package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +1 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/model/sheet-model.d.ts +27 -3
- 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 +2 -2
- package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
- package/dist/types/src/operations/drop-axis.d.ts +5 -0
- package/dist/types/src/operations/drop-axis.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts +3 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- package/dist/types/src/operations/insert-axis.d.ts +5 -0
- package/dist/types/src/operations/insert-axis.d.ts.map +1 -0
- package/dist/types/src/operations/restore-axis.d.ts +5 -0
- package/dist/types/src/operations/restore-axis.d.ts.map +1 -0
- package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
- package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
- package/dist/types/src/playwright/playwright.config.d.ts.map +1 -1
- package/dist/types/src/playwright/sheet-manager.d.ts.map +1 -1
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/serializer.d.ts +2 -2
- package/dist/types/src/serializer.d.ts.map +1 -1
- package/dist/types/src/testing/data.d.ts +1 -1
- package/dist/types/src/testing/data.d.ts.map +1 -1
- package/dist/types/src/testing/testing.d.ts +5 -5
- package/dist/types/src/testing/testing.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +74 -39
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Sheet.d.ts +5 -6
- package/dist/types/src/types/Sheet.d.ts.map +1 -1
- package/dist/types/src/types/SheetCapabilities.d.ts +16 -0
- package/dist/types/src/types/SheetCapabilities.d.ts.map +1 -0
- package/dist/types/src/types/SheetOperation.d.ts +45 -0
- package/dist/types/src/types/SheetOperation.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +3 -2
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/sheet-range-types.d.ts +1 -1
- package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +0 -92
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/types/util.d.ts +1 -1
- package/dist/types/src/types/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +120 -94
- package/src/SheetPlugin.node.ts +21 -0
- package/src/SheetPlugin.test.ts +30 -0
- package/src/SheetPlugin.tsx +31 -36
- package/src/SheetPlugin.workerd.ts +18 -0
- package/src/capabilities/{anchor-sort/anchor-sort.ts → anchor-sort.ts} +3 -3
- package/src/capabilities/comment-config.ts +25 -0
- package/src/capabilities/compute-graph-registry.ts +42 -0
- package/src/capabilities/create-object.ts +31 -0
- package/src/capabilities/index.ts +17 -5
- package/src/capabilities/{markdown/markdown.ts → markdown.ts} +3 -2
- package/src/capabilities/operation-handler.ts +16 -0
- package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +13 -10
- package/src/capabilities/state.ts +29 -0
- package/src/capabilities/undo-mappings.ts +30 -0
- package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +1 -1
- package/src/components/ComputeGraph/compute-graph.stories.tsx +23 -15
- package/src/components/SheetContent/SheetCellEditor.stories.tsx +8 -7
- package/src/components/SheetContent/SheetContent.stories.tsx +11 -11
- package/src/components/SheetContent/SheetContent.tsx +40 -23
- package/src/components/SheetContent/util.ts +4 -3
- package/src/components/SheetRoot/SheetRoot.tsx +18 -7
- package/src/components/SheetStatusbar/SheetStatusbar.tsx +16 -8
- package/src/components/SheetToolbar/SheetToolbar.stories.tsx +1 -1
- package/src/components/SheetToolbar/SheetToolbar.tsx +15 -20
- package/src/components/SheetToolbar/align.ts +9 -9
- package/src/components/SheetToolbar/style.ts +7 -7
- package/src/containers/RangeList/RangeList.tsx +17 -17
- package/src/containers/RangeList/index.ts +1 -3
- package/src/containers/{SheetContainer/SheetContainer.stories.tsx → SheetArticle/SheetArticle.stories.tsx} +42 -26
- package/src/containers/{SheetContainer/SheetContainer.tsx → SheetArticle/SheetArticle.tsx} +12 -12
- package/src/containers/SheetArticle/index.ts +5 -0
- package/src/containers/index.ts +1 -1
- package/src/extensions/compute.stories.tsx +11 -11
- package/src/extensions/compute.ts +1 -1
- package/src/extensions/editor/sheet-extension.test.ts +1 -1
- package/src/extensions/editor/sheet-extension.ts +3 -3
- package/src/index.ts +2 -2
- package/src/integrations/thread-ranges.ts +10 -42
- package/src/meta.ts +18 -6
- package/src/model/sheet-model.test.ts +5 -5
- package/src/model/sheet-model.ts +19 -19
- package/src/model/testing.ts +2 -2
- package/src/model/useSheetModel.ts +3 -2
- package/src/operations/drop-axis.ts +26 -0
- package/src/operations/index.ts +12 -0
- package/src/operations/insert-axis.ts +19 -0
- package/src/operations/restore-axis.ts +19 -0
- package/src/operations/scroll-to-anchor.ts +30 -0
- package/src/playwright/sheet.spec.ts +3 -3
- package/src/plugin.ts +11 -0
- package/src/sanity.test.ts +10 -3
- package/src/serializer.ts +2 -2
- package/src/testing/data.ts +1 -1
- package/src/testing/testing.tsx +4 -4
- package/src/translations.ts +43 -37
- package/src/types/Sheet.ts +13 -13
- package/src/types/SheetCapabilities.ts +26 -0
- package/src/types/SheetOperation.ts +84 -0
- package/src/types/index.ts +4 -2
- package/src/types/types.ts +0 -80
- package/src/types/util.ts +4 -4
- package/src/vite-env.d.ts +10 -0
- package/dist/lib/browser/RangeList-S3SHV7T6.mjs.map +0 -7
- package/dist/lib/browser/SheetContainer-I3NFVVDQ.mjs.map +0 -7
- package/dist/lib/browser/anchor-sort-DZ3IHHJJ.mjs.map +0 -7
- package/dist/lib/browser/chunk-NNWF7EKC.mjs.map +0 -7
- package/dist/lib/browser/chunk-S445OQGW.mjs.map +0 -7
- package/dist/lib/browser/compute-graph-registry-W6HO2G3P.mjs +0 -21
- package/dist/lib/browser/compute-graph-registry-W6HO2G3P.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -145
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/markdown-S6GVLHB4.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/operation-resolver-Z4X4UWNR.mjs +0 -79
- package/dist/lib/browser/operation-resolver-Z4X4UWNR.mjs.map +0 -7
- package/dist/lib/browser/react-surface-KIU6DGKW.mjs.map +0 -7
- package/dist/lib/node-esm/RangeList-IB23OJK2.mjs +0 -54
- package/dist/lib/node-esm/RangeList-IB23OJK2.mjs.map +0 -7
- package/dist/lib/node-esm/SheetContainer-KUXNCSFP.mjs +0 -1806
- package/dist/lib/node-esm/SheetContainer-KUXNCSFP.mjs.map +0 -7
- package/dist/lib/node-esm/anchor-sort-24OXMOSX.mjs +0 -25
- package/dist/lib/node-esm/anchor-sort-24OXMOSX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-M52YLLWU.mjs +0 -236
- package/dist/lib/node-esm/chunk-M52YLLWU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NKZ3O4OR.mjs +0 -398
- package/dist/lib/node-esm/chunk-NKZ3O4OR.mjs.map +0 -7
- package/dist/lib/node-esm/compute-graph-registry-2C3Y2RPQ.mjs +0 -22
- package/dist/lib/node-esm/compute-graph-registry-2C3Y2RPQ.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -146
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-YT5KJTQT.mjs +0 -30
- package/dist/lib/node-esm/markdown-YT5KJTQT.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/operation-resolver-7VD2YXSQ.mjs +0 -80
- package/dist/lib/node-esm/operation-resolver-7VD2YXSQ.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-7FZAE3S7.mjs +0 -52
- package/dist/lib/node-esm/react-surface-7FZAE3S7.mjs.map +0 -7
- package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +0 -1
- package/dist/types/src/capabilities/anchor-sort/index.d.ts +0 -3
- package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/compute-graph-registry/compute-graph-registry.d.ts.map +0 -1
- package/dist/types/src/capabilities/compute-graph-registry/index.d.ts +0 -3
- package/dist/types/src/capabilities/compute-graph-registry/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/markdown/index.d.ts +0 -3
- package/dist/types/src/capabilities/markdown/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/markdown/markdown.d.ts.map +0 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
- package/dist/types/src/containers/SheetContainer/SheetContainer.d.ts +0 -12
- package/dist/types/src/containers/SheetContainer/SheetContainer.d.ts.map +0 -1
- package/dist/types/src/containers/SheetContainer/SheetContainer.stories.d.ts +0 -56
- package/dist/types/src/containers/SheetContainer/SheetContainer.stories.d.ts.map +0 -1
- package/dist/types/src/containers/SheetContainer/index.d.ts +0 -3
- package/dist/types/src/containers/SheetContainer/index.d.ts.map +0 -1
- package/dist/types/src/types/capabilities.d.ts +0 -6
- package/dist/types/src/types/capabilities.d.ts.map +0 -1
- package/src/capabilities/anchor-sort/index.ts +0 -7
- package/src/capabilities/compute-graph-registry/compute-graph-registry.ts +0 -27
- package/src/capabilities/compute-graph-registry/index.ts +0 -7
- package/src/capabilities/markdown/index.ts +0 -7
- package/src/capabilities/operation-resolver/index.ts +0 -7
- package/src/capabilities/operation-resolver/operation-resolver.ts +0 -77
- package/src/capabilities/react-surface/index.ts +0 -7
- package/src/containers/SheetContainer/index.ts +0 -7
- package/src/types/capabilities.ts +0 -14
- /package/dist/lib/{browser/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
- /package/dist/types/src/capabilities/{anchor-sort/anchor-sort.d.ts → anchor-sort.d.ts} +0 -0
- /package/dist/types/src/capabilities/{markdown/markdown.d.ts → markdown.d.ts} +0 -0
- /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
|
@@ -1,31 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useSelectThreadOnCellFocus
|
|
3
|
+
} from "../chunk-3AIMSE7U.mjs";
|
|
1
4
|
import {
|
|
2
5
|
rangeExtension,
|
|
3
6
|
sheetExtension
|
|
4
|
-
} from "
|
|
5
|
-
import
|
|
6
|
-
DEFAULT_COLS,
|
|
7
|
-
DEFAULT_ROWS,
|
|
8
|
-
MAX_COLS,
|
|
9
|
-
MAX_ROWS,
|
|
10
|
-
ReadonlyException,
|
|
11
|
-
SheetOperation,
|
|
12
|
-
addressFromIndex,
|
|
13
|
-
addressToIndex,
|
|
14
|
-
alignKey,
|
|
15
|
-
cellClassNameForRange,
|
|
16
|
-
initialize,
|
|
17
|
-
insertIndices,
|
|
18
|
-
mapFormulaIndicesToRefs,
|
|
19
|
-
mapFormulaRefsToIndices,
|
|
20
|
-
meta,
|
|
21
|
-
rangeFromIndex,
|
|
22
|
-
rangeToIndex
|
|
23
|
-
} from "./chunk-S445OQGW.mjs";
|
|
24
|
-
|
|
25
|
-
// src/containers/SheetContainer/SheetContainer.tsx
|
|
26
|
-
import React6 from "react";
|
|
27
|
-
import { Obj as Obj7 } from "@dxos/echo";
|
|
28
|
-
import { Panel } from "@dxos/react-ui";
|
|
7
|
+
} from "../chunk-ERHMBRSU.mjs";
|
|
8
|
+
import "../chunk-J5LGTIGS.mjs";
|
|
29
9
|
|
|
30
10
|
// src/components/ComputeGraph/ComputeGraphContextProvider.tsx
|
|
31
11
|
import React, { createContext, useContext } from "react";
|
|
@@ -55,136 +35,34 @@ var useComputeGraph = (space) => {
|
|
|
55
35
|
};
|
|
56
36
|
|
|
57
37
|
// src/components/SheetContent/SheetContent.tsx
|
|
58
|
-
import React3, { useCallback as
|
|
59
|
-
import { useOperationInvoker
|
|
60
|
-
import { rangeToA1Notation } from "@dxos/compute";
|
|
61
|
-
import { Obj as
|
|
38
|
+
import React3, { useCallback as useCallback2, useEffect as useEffect3, useMemo, useRef, useState as useState4 } from "react";
|
|
39
|
+
import { useCapabilities, useOperationInvoker } from "@dxos/app-framework/ui";
|
|
40
|
+
import { rangeToA1Notation } from "@dxos/compute-hyperformula";
|
|
41
|
+
import { Obj as Obj2 } from "@dxos/echo";
|
|
62
42
|
import { defaultColSize, defaultRowSize } from "@dxos/lit-grid";
|
|
63
43
|
import { DropdownMenu, Icon, useTranslation } from "@dxos/react-ui";
|
|
44
|
+
import { composable, composableProps } from "@dxos/react-ui";
|
|
64
45
|
import { useAttention } from "@dxos/react-ui-attention";
|
|
65
46
|
import { Grid as Grid2, GridCellEditor, closestCell, editorKeys, parseCellIndex } from "@dxos/react-ui-grid";
|
|
66
|
-
import {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
import * as Effect from "effect/Effect";
|
|
70
|
-
import { useCallback, useEffect, useMemo } from "react";
|
|
71
|
-
import { useOperationInvoker, useOperationResolver } from "@dxos/app-framework/ui";
|
|
72
|
-
import { LayoutOperation } from "@dxos/app-toolkit";
|
|
73
|
-
import { debounce } from "@dxos/async";
|
|
74
|
-
import { inRange } from "@dxos/compute";
|
|
75
|
-
import { Obj, Relation } from "@dxos/echo";
|
|
76
|
-
import { OperationResolver } from "@dxos/operation";
|
|
77
|
-
import { ATTENDABLE_PATH_SEPARATOR, DeckOperation } from "@dxos/plugin-deck/types";
|
|
78
|
-
import { ThreadOperation } from "@dxos/plugin-thread/types";
|
|
79
|
-
import { Filter, Query, useQuery } from "@dxos/react-client/echo";
|
|
80
|
-
import { AnchoredTo, Thread } from "@dxos/types";
|
|
81
|
-
var parseThreadAnchorAsCellRange = (cursor) => {
|
|
82
|
-
const coords = cursor.split(",");
|
|
83
|
-
if (coords.length !== 4) {
|
|
84
|
-
return null;
|
|
85
|
-
} else {
|
|
86
|
-
const [fromCol, fromRow, toCol, toRow] = coords;
|
|
87
|
-
return {
|
|
88
|
-
from: {
|
|
89
|
-
col: parseInt(fromCol),
|
|
90
|
-
row: parseInt(fromRow)
|
|
91
|
-
},
|
|
92
|
-
to: {
|
|
93
|
-
col: parseInt(toCol),
|
|
94
|
-
row: parseInt(toRow)
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
var useUpdateFocusedCellOnThreadSelection = (grid) => {
|
|
100
|
-
const { model, setActiveRefs } = useSheetContext();
|
|
101
|
-
const sheetId = Obj.getDXN(model.sheet).toString();
|
|
102
|
-
const scrollIntoViewHandler = useMemo(() => OperationResolver.make({
|
|
103
|
-
operation: LayoutOperation.ScrollIntoView,
|
|
104
|
-
position: "hoist",
|
|
105
|
-
filter: (input) => input.subject === sheetId && !!input.cursor,
|
|
106
|
-
handler: (input) => Effect.sync(() => {
|
|
107
|
-
const { cursor, ref } = input;
|
|
108
|
-
if (cursor) {
|
|
109
|
-
setActiveRefs(ref);
|
|
110
|
-
const range = parseThreadAnchorAsCellRange(cursor);
|
|
111
|
-
range && grid?.setFocus({
|
|
112
|
-
...range.to,
|
|
113
|
-
plane: "grid"
|
|
114
|
-
}, true);
|
|
115
|
-
}
|
|
116
|
-
})
|
|
117
|
-
}), [
|
|
118
|
-
sheetId,
|
|
119
|
-
setActiveRefs,
|
|
120
|
-
grid
|
|
121
|
-
]);
|
|
122
|
-
useOperationResolver(meta.id, scrollIntoViewHandler);
|
|
123
|
-
};
|
|
124
|
-
var useSelectThreadOnCellFocus = () => {
|
|
125
|
-
const { model, cursor } = useSheetContext();
|
|
126
|
-
const { invokePromise } = useOperationInvoker();
|
|
127
|
-
const db = Obj.getDatabase(model.sheet);
|
|
128
|
-
const anchors = useQuery(db, Query.select(Filter.id(model.sheet.id)).targetOf(AnchoredTo.AnchoredTo));
|
|
129
|
-
const selectClosestThread = useCallback((cellAddress) => {
|
|
130
|
-
if (!cellAddress) {
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
const closestThread = anchors.find((anchor) => {
|
|
134
|
-
const source = Relation.getSource(anchor);
|
|
135
|
-
if (anchor.anchor && Obj.instanceOf(Thread.Thread, source)) {
|
|
136
|
-
const range = parseThreadAnchorAsCellRange(anchor.anchor);
|
|
137
|
-
return range ? inRange(range, cellAddress) : false;
|
|
138
|
-
} else {
|
|
139
|
-
return false;
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
if (closestThread) {
|
|
143
|
-
const primary = Obj.getDXN(model.sheet).toString();
|
|
144
|
-
void (async () => {
|
|
145
|
-
await invokePromise(ThreadOperation.Select, {
|
|
146
|
-
current: Relation.getDXN(closestThread).toString()
|
|
147
|
-
});
|
|
148
|
-
await invokePromise(DeckOperation.ChangeCompanion, {
|
|
149
|
-
companion: `${primary}${ATTENDABLE_PATH_SEPARATOR}comments`
|
|
150
|
-
});
|
|
151
|
-
})();
|
|
152
|
-
}
|
|
153
|
-
}, [
|
|
154
|
-
invokePromise,
|
|
155
|
-
anchors
|
|
156
|
-
]);
|
|
157
|
-
const debounced = useMemo(() => {
|
|
158
|
-
return debounce((cellCoords) => requestAnimationFrame(() => selectClosestThread(cellCoords)), 50);
|
|
159
|
-
}, [
|
|
160
|
-
selectClosestThread
|
|
161
|
-
]);
|
|
162
|
-
useEffect(() => {
|
|
163
|
-
if (!cursor) {
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
debounced(cursor);
|
|
167
|
-
}, [
|
|
168
|
-
cursor,
|
|
169
|
-
debounced
|
|
170
|
-
]);
|
|
171
|
-
};
|
|
47
|
+
import { meta } from "#meta";
|
|
48
|
+
import { SheetOperation } from "#types";
|
|
49
|
+
import { DEFAULT_COLS, DEFAULT_ROWS, SheetCapabilities } from "#types";
|
|
172
50
|
|
|
173
51
|
// src/components/SheetRoot/SheetRoot.tsx
|
|
174
|
-
import React2, { createContext as createContext2, useCallback
|
|
52
|
+
import React2, { createContext as createContext2, useCallback, useContext as useContext2, useState as useState2 } from "react";
|
|
175
53
|
import { raise as raise2 } from "@dxos/debug";
|
|
176
|
-
import { Obj as Obj3 } from "@dxos/echo";
|
|
177
54
|
import { Grid, useGridContext } from "@dxos/react-ui-grid";
|
|
178
55
|
|
|
179
56
|
// src/model/sheet-model.ts
|
|
180
57
|
import { Event } from "@dxos/async";
|
|
181
|
-
import { DetailedCellError, ExportedCellChange, addressFromA1Notation, addressToA1Notation, createSheetName, isFormula } from "@dxos/compute";
|
|
58
|
+
import { DetailedCellError, ExportedCellChange, addressFromA1Notation, addressToA1Notation, createSheetName, isFormula } from "@dxos/compute-hyperformula";
|
|
182
59
|
import { Resource } from "@dxos/context";
|
|
183
|
-
import { Obj
|
|
60
|
+
import { Obj } from "@dxos/echo";
|
|
184
61
|
import { Format, TypeEnum } from "@dxos/echo/internal";
|
|
185
|
-
import { invariant } from "@dxos/invariant";
|
|
62
|
+
import { assertArgument, invariant } from "@dxos/invariant";
|
|
186
63
|
import { PublicKey } from "@dxos/keys";
|
|
187
64
|
import { log } from "@dxos/log";
|
|
65
|
+
import { MAX_COLS, MAX_ROWS, ReadonlyException, addressFromIndex, addressToIndex, initialize, insertIndices, mapFormulaIndicesToRefs, mapFormulaRefsToIndices } from "#types";
|
|
188
66
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-sheet/src/model/sheet-model.ts";
|
|
189
67
|
var typeMap = {
|
|
190
68
|
BOOLEAN: {
|
|
@@ -262,13 +140,8 @@ var SheetModel = class extends Resource {
|
|
|
262
140
|
async _open() {
|
|
263
141
|
log("initialize", {
|
|
264
142
|
id: this.id
|
|
265
|
-
}, {
|
|
266
|
-
|
|
267
|
-
L: 124,
|
|
268
|
-
S: this,
|
|
269
|
-
C: (f, a) => f(...a)
|
|
270
|
-
});
|
|
271
|
-
Obj2.change(this._sheet, (obj) => {
|
|
143
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 96, S: this });
|
|
144
|
+
Obj.update(this._sheet, (obj) => {
|
|
272
145
|
initialize(obj);
|
|
273
146
|
});
|
|
274
147
|
this._graph.update.on((event) => {
|
|
@@ -277,7 +150,7 @@ var SheetModel = class extends Resource {
|
|
|
277
150
|
}
|
|
278
151
|
});
|
|
279
152
|
this._node = this._graph.getOrCreateNode(createSheetName({
|
|
280
|
-
type:
|
|
153
|
+
type: Obj.getTypename(this._sheet),
|
|
281
154
|
id: this._sheet.id
|
|
282
155
|
}));
|
|
283
156
|
await this._node.open();
|
|
@@ -291,26 +164,10 @@ var SheetModel = class extends Resource {
|
|
|
291
164
|
* @deprecated
|
|
292
165
|
*/
|
|
293
166
|
reset() {
|
|
294
|
-
invariant(this._node, void 0, {
|
|
295
|
-
F: __dxlog_file,
|
|
296
|
-
L: 154,
|
|
297
|
-
S: this,
|
|
298
|
-
A: [
|
|
299
|
-
"this._node",
|
|
300
|
-
""
|
|
301
|
-
]
|
|
302
|
-
});
|
|
167
|
+
invariant(this._node, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 123, S: this, A: ["this._node", ""] });
|
|
303
168
|
this._node.graph.hf.clearSheet(this._node.sheetId);
|
|
304
169
|
Object.entries(this._sheet.cells).forEach(([key, { value }]) => {
|
|
305
|
-
invariant(this._node, void 0, {
|
|
306
|
-
F: __dxlog_file,
|
|
307
|
-
L: 157,
|
|
308
|
-
S: this,
|
|
309
|
-
A: [
|
|
310
|
-
"this._node",
|
|
311
|
-
""
|
|
312
|
-
]
|
|
313
|
-
});
|
|
170
|
+
invariant(this._node, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 126, S: this, A: ["this._node", ""] });
|
|
314
171
|
const { col, row } = addressFromIndex(this._sheet, key);
|
|
315
172
|
if (isFormula(value)) {
|
|
316
173
|
const binding = this._graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(this._sheet, value));
|
|
@@ -339,7 +196,7 @@ var SheetModel = class extends Resource {
|
|
|
339
196
|
}
|
|
340
197
|
insertRows(i, n = 1) {
|
|
341
198
|
let idx = [];
|
|
342
|
-
|
|
199
|
+
Obj.update(this._sheet, (obj) => {
|
|
343
200
|
idx = insertIndices(obj.rows, i, n, MAX_ROWS);
|
|
344
201
|
});
|
|
345
202
|
this.reset();
|
|
@@ -347,7 +204,7 @@ var SheetModel = class extends Resource {
|
|
|
347
204
|
}
|
|
348
205
|
insertColumns(i, n = 1) {
|
|
349
206
|
let idx = [];
|
|
350
|
-
|
|
207
|
+
Obj.update(this._sheet, (obj) => {
|
|
351
208
|
idx = insertIndices(obj.columns, i, n, MAX_COLS);
|
|
352
209
|
});
|
|
353
210
|
this.reset();
|
|
@@ -361,7 +218,7 @@ var SheetModel = class extends Resource {
|
|
|
361
218
|
const values = this.getCellValues(range).flat();
|
|
362
219
|
const index = this._sheet.rows.indexOf(rowIndex);
|
|
363
220
|
this.clear(range);
|
|
364
|
-
|
|
221
|
+
Obj.update(this._sheet, (obj) => {
|
|
365
222
|
obj.rows.splice(index, 1);
|
|
366
223
|
delete obj.rowMeta[rowIndex];
|
|
367
224
|
});
|
|
@@ -382,7 +239,7 @@ var SheetModel = class extends Resource {
|
|
|
382
239
|
const values = this.getCellValues(range).flat();
|
|
383
240
|
const index = this._sheet.columns.indexOf(colIndex);
|
|
384
241
|
this.clear(range);
|
|
385
|
-
|
|
242
|
+
Obj.update(this._sheet, (obj) => {
|
|
386
243
|
obj.columns.splice(index, 1);
|
|
387
244
|
delete obj.columnMeta[colIndex];
|
|
388
245
|
});
|
|
@@ -396,7 +253,7 @@ var SheetModel = class extends Resource {
|
|
|
396
253
|
};
|
|
397
254
|
}
|
|
398
255
|
restoreRow({ index, axisIndex, axisMeta, values }) {
|
|
399
|
-
|
|
256
|
+
Obj.update(this._sheet, (obj) => {
|
|
400
257
|
obj.rows.splice(index, 0, axisIndex);
|
|
401
258
|
values.forEach((value, col) => {
|
|
402
259
|
if (value) {
|
|
@@ -412,7 +269,7 @@ var SheetModel = class extends Resource {
|
|
|
412
269
|
this.reset();
|
|
413
270
|
}
|
|
414
271
|
restoreColumn({ index, axisIndex, axisMeta, values }) {
|
|
415
|
-
|
|
272
|
+
Obj.update(this._sheet, (obj) => {
|
|
416
273
|
obj.columns.splice(index, 0, axisIndex);
|
|
417
274
|
values.forEach((value, row) => {
|
|
418
275
|
if (value) {
|
|
@@ -435,19 +292,11 @@ var SheetModel = class extends Resource {
|
|
|
435
292
|
* Clear range of values.
|
|
436
293
|
*/
|
|
437
294
|
clear(range) {
|
|
438
|
-
invariant(this._node, void 0, {
|
|
439
|
-
F: __dxlog_file,
|
|
440
|
-
L: 276,
|
|
441
|
-
S: this,
|
|
442
|
-
A: [
|
|
443
|
-
"this._node",
|
|
444
|
-
""
|
|
445
|
-
]
|
|
446
|
-
});
|
|
295
|
+
invariant(this._node, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 251, S: this, A: ["this._node", ""] });
|
|
447
296
|
const topLeft = getTopLeft(range);
|
|
448
297
|
const values = this._iterRange(range, () => null);
|
|
449
298
|
this._node.graph.hf.setCellContents(toSimpleCellAddress(this._node.sheetId, topLeft), values);
|
|
450
|
-
|
|
299
|
+
Obj.update(this._sheet, (obj) => {
|
|
451
300
|
this._iterRange(range, (cell) => {
|
|
452
301
|
const idx = addressToIndex(this._sheet, cell);
|
|
453
302
|
delete obj.cells[idx];
|
|
@@ -455,17 +304,9 @@ var SheetModel = class extends Resource {
|
|
|
455
304
|
});
|
|
456
305
|
}
|
|
457
306
|
cut(range) {
|
|
458
|
-
invariant(this._node, void 0, {
|
|
459
|
-
F: __dxlog_file,
|
|
460
|
-
L: 289,
|
|
461
|
-
S: this,
|
|
462
|
-
A: [
|
|
463
|
-
"this._node",
|
|
464
|
-
""
|
|
465
|
-
]
|
|
466
|
-
});
|
|
307
|
+
invariant(this._node, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 263, S: this, A: ["this._node", ""] });
|
|
467
308
|
this._node.graph.hf.cut(toModelRange(this._node.sheetId, range));
|
|
468
|
-
|
|
309
|
+
Obj.update(this._sheet, (obj) => {
|
|
469
310
|
this._iterRange(range, (cell) => {
|
|
470
311
|
const idx = addressToIndex(this._sheet, cell);
|
|
471
312
|
delete obj.cells[idx];
|
|
@@ -473,30 +314,14 @@ var SheetModel = class extends Resource {
|
|
|
473
314
|
});
|
|
474
315
|
}
|
|
475
316
|
copy(range) {
|
|
476
|
-
invariant(this._node, void 0, {
|
|
477
|
-
F: __dxlog_file,
|
|
478
|
-
L: 300,
|
|
479
|
-
S: this,
|
|
480
|
-
A: [
|
|
481
|
-
"this._node",
|
|
482
|
-
""
|
|
483
|
-
]
|
|
484
|
-
});
|
|
317
|
+
invariant(this._node, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 273, S: this, A: ["this._node", ""] });
|
|
485
318
|
this._node.graph.hf.copy(toModelRange(this._node.sheetId, range));
|
|
486
319
|
}
|
|
487
320
|
paste(cell) {
|
|
488
|
-
invariant(this._node, void 0, {
|
|
489
|
-
F: __dxlog_file,
|
|
490
|
-
L: 305,
|
|
491
|
-
S: this,
|
|
492
|
-
A: [
|
|
493
|
-
"this._node",
|
|
494
|
-
""
|
|
495
|
-
]
|
|
496
|
-
});
|
|
321
|
+
invariant(this._node, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 277, S: this, A: ["this._node", ""] });
|
|
497
322
|
if (!this._node.graph.hf.isClipboardEmpty()) {
|
|
498
323
|
const changes = this._node.graph.hf.paste(toSimpleCellAddress(this._node.sheetId, cell));
|
|
499
|
-
|
|
324
|
+
Obj.update(this._sheet, (obj) => {
|
|
500
325
|
for (const change of changes) {
|
|
501
326
|
if (change instanceof ExportedCellChange) {
|
|
502
327
|
const { address, newValue } = change;
|
|
@@ -514,29 +339,13 @@ var SheetModel = class extends Resource {
|
|
|
514
339
|
}
|
|
515
340
|
// TODO(burdon): Display undo/redo state.
|
|
516
341
|
undo() {
|
|
517
|
-
invariant(this._node, void 0, {
|
|
518
|
-
F: __dxlog_file,
|
|
519
|
-
L: 322,
|
|
520
|
-
S: this,
|
|
521
|
-
A: [
|
|
522
|
-
"this._node",
|
|
523
|
-
""
|
|
524
|
-
]
|
|
525
|
-
});
|
|
342
|
+
invariant(this._node, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 298, S: this, A: ["this._node", ""] });
|
|
526
343
|
if (this._node.graph.hf.isThereSomethingToUndo()) {
|
|
527
344
|
this._node.graph.hf.undo();
|
|
528
345
|
}
|
|
529
346
|
}
|
|
530
347
|
redo() {
|
|
531
|
-
invariant(this._node, void 0, {
|
|
532
|
-
F: __dxlog_file,
|
|
533
|
-
L: 330,
|
|
534
|
-
S: this,
|
|
535
|
-
A: [
|
|
536
|
-
"this._node",
|
|
537
|
-
""
|
|
538
|
-
]
|
|
539
|
-
});
|
|
348
|
+
invariant(this._node, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 305, S: this, A: ["this._node", ""] });
|
|
540
349
|
if (this._node.graph.hf.isThereSomethingToRedo()) {
|
|
541
350
|
this._node.graph.hf.redo();
|
|
542
351
|
}
|
|
@@ -572,27 +381,14 @@ var SheetModel = class extends Resource {
|
|
|
572
381
|
* Gets the regular or computed value from the engine.
|
|
573
382
|
*/
|
|
574
383
|
getValue(cell) {
|
|
575
|
-
invariant(this._node, void 0, {
|
|
576
|
-
F: __dxlog_file,
|
|
577
|
-
L: 373,
|
|
578
|
-
S: this,
|
|
579
|
-
A: [
|
|
580
|
-
"this._node",
|
|
581
|
-
""
|
|
582
|
-
]
|
|
583
|
-
});
|
|
384
|
+
invariant(this._node, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 339, S: this, A: ["this._node", ""] });
|
|
584
385
|
const address = toSimpleCellAddress(this._node.sheetId, cell);
|
|
585
386
|
const value = this._node.graph.hf.getCellValue(address);
|
|
586
387
|
if (value instanceof DetailedCellError) {
|
|
587
388
|
log.warn("cell error", {
|
|
588
389
|
cell,
|
|
589
390
|
error: value
|
|
590
|
-
}, {
|
|
591
|
-
F: __dxlog_file,
|
|
592
|
-
L: 378,
|
|
593
|
-
S: this,
|
|
594
|
-
C: (f, a) => f(...a)
|
|
595
|
-
});
|
|
391
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 344, S: this });
|
|
596
392
|
return value.toString();
|
|
597
393
|
}
|
|
598
394
|
return value;
|
|
@@ -601,15 +397,7 @@ var SheetModel = class extends Resource {
|
|
|
601
397
|
* Get value type.
|
|
602
398
|
*/
|
|
603
399
|
getValueDescription(cell) {
|
|
604
|
-
invariant(this._node, void 0, {
|
|
605
|
-
F: __dxlog_file,
|
|
606
|
-
L: 389,
|
|
607
|
-
S: this,
|
|
608
|
-
A: [
|
|
609
|
-
"this._node",
|
|
610
|
-
""
|
|
611
|
-
]
|
|
612
|
-
});
|
|
400
|
+
invariant(this._node, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 355, S: this, A: ["this._node", ""] });
|
|
613
401
|
const addr = toSimpleCellAddress(this._node.sheetId, cell);
|
|
614
402
|
const type = this._node.graph.hf.getCellValueDetailedType(addr);
|
|
615
403
|
return typeMap[type];
|
|
@@ -618,27 +406,19 @@ var SheetModel = class extends Resource {
|
|
|
618
406
|
* Sets the value, updating the sheet and engine.
|
|
619
407
|
*/
|
|
620
408
|
setValue(cell, value) {
|
|
621
|
-
invariant(this._node, void 0, {
|
|
622
|
-
F: __dxlog_file,
|
|
623
|
-
L: 399,
|
|
624
|
-
S: this,
|
|
625
|
-
A: [
|
|
626
|
-
"this._node",
|
|
627
|
-
""
|
|
628
|
-
]
|
|
629
|
-
});
|
|
409
|
+
invariant(this._node, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 363, S: this, A: ["this._node", ""] });
|
|
630
410
|
if (this._options.readonly) {
|
|
631
411
|
throw new ReadonlyException();
|
|
632
412
|
}
|
|
633
413
|
let refresh = false;
|
|
634
414
|
if (cell.row >= this._sheet.rows.length) {
|
|
635
|
-
|
|
415
|
+
Obj.update(this._sheet, (obj) => {
|
|
636
416
|
insertIndices(obj.rows, cell.row, 1, MAX_ROWS);
|
|
637
417
|
});
|
|
638
418
|
refresh = true;
|
|
639
419
|
}
|
|
640
420
|
if (cell.col >= this._sheet.columns.length) {
|
|
641
|
-
|
|
421
|
+
Obj.update(this._sheet, (obj) => {
|
|
642
422
|
insertIndices(obj.columns, cell.col, 1, MAX_COLS);
|
|
643
423
|
});
|
|
644
424
|
refresh = true;
|
|
@@ -657,14 +437,14 @@ var SheetModel = class extends Resource {
|
|
|
657
437
|
]);
|
|
658
438
|
const idx = addressToIndex(this._sheet, cell);
|
|
659
439
|
if (value === void 0 || value === null) {
|
|
660
|
-
|
|
440
|
+
Obj.update(this._sheet, (obj) => {
|
|
661
441
|
delete obj.cells[idx];
|
|
662
442
|
});
|
|
663
443
|
} else {
|
|
664
444
|
if (isFormula(value)) {
|
|
665
445
|
value = this._graph.mapFunctionBindingToId(mapFormulaRefsToIndices(this._sheet, value));
|
|
666
446
|
}
|
|
667
|
-
|
|
447
|
+
Obj.update(this._sheet, (obj) => {
|
|
668
448
|
obj.cells[idx] = {
|
|
669
449
|
value
|
|
670
450
|
};
|
|
@@ -720,15 +500,7 @@ var SheetModel = class extends Resource {
|
|
|
720
500
|
* Map from indices to A1 notation.
|
|
721
501
|
*/
|
|
722
502
|
mapFormulaIndicesToRefs(formula) {
|
|
723
|
-
|
|
724
|
-
F: __dxlog_file,
|
|
725
|
-
L: 492,
|
|
726
|
-
S: this,
|
|
727
|
-
A: [
|
|
728
|
-
"isFormula(formula)",
|
|
729
|
-
""
|
|
730
|
-
]
|
|
731
|
-
});
|
|
503
|
+
assertArgument(isFormula(formula), "formula");
|
|
732
504
|
return formula.replace(/([a-zA-Z0-9]+)@([a-zA-Z0-9]+)/g, (idx) => {
|
|
733
505
|
return addressToA1Notation(addressFromIndex(this._sheet, idx));
|
|
734
506
|
});
|
|
@@ -746,48 +518,24 @@ var SheetModel = class extends Resource {
|
|
|
746
518
|
return new Date(year, month - 1, day, hours, minutes, seconds);
|
|
747
519
|
}
|
|
748
520
|
toDateTime(num) {
|
|
749
|
-
invariant(this._node, void 0, {
|
|
750
|
-
F: __dxlog_file,
|
|
751
|
-
L: 513,
|
|
752
|
-
S: this,
|
|
753
|
-
A: [
|
|
754
|
-
"this._node",
|
|
755
|
-
""
|
|
756
|
-
]
|
|
757
|
-
});
|
|
521
|
+
invariant(this._node, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 475, S: this, A: ["this._node", ""] });
|
|
758
522
|
return this._node.graph.hf.numberToDateTime(num);
|
|
759
523
|
}
|
|
760
524
|
toDate(num) {
|
|
761
|
-
invariant(this._node, void 0, {
|
|
762
|
-
F: __dxlog_file,
|
|
763
|
-
L: 518,
|
|
764
|
-
S: this,
|
|
765
|
-
A: [
|
|
766
|
-
"this._node",
|
|
767
|
-
""
|
|
768
|
-
]
|
|
769
|
-
});
|
|
525
|
+
invariant(this._node, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 479, S: this, A: ["this._node", ""] });
|
|
770
526
|
return this._node.graph.hf.numberToDate(num);
|
|
771
527
|
}
|
|
772
528
|
toTime(num) {
|
|
773
|
-
invariant(this._node, void 0, {
|
|
774
|
-
F: __dxlog_file,
|
|
775
|
-
L: 523,
|
|
776
|
-
S: this,
|
|
777
|
-
A: [
|
|
778
|
-
"this._node",
|
|
779
|
-
""
|
|
780
|
-
]
|
|
781
|
-
});
|
|
529
|
+
invariant(this._node, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 483, S: this, A: ["this._node", ""] });
|
|
782
530
|
return this._node.graph.hf.numberToTime(num);
|
|
783
531
|
}
|
|
784
532
|
};
|
|
785
533
|
|
|
786
534
|
// src/model/useSheetModel.ts
|
|
787
|
-
import { useEffect
|
|
535
|
+
import { useEffect, useState } from "react";
|
|
788
536
|
var useSheetModel = (graph, sheet, { readonly } = {}) => {
|
|
789
537
|
const [model, setModel] = useState();
|
|
790
|
-
|
|
538
|
+
useEffect(() => {
|
|
791
539
|
if (!graph || !sheet) {
|
|
792
540
|
return;
|
|
793
541
|
}
|
|
@@ -816,7 +564,7 @@ var SheetContext = /* @__PURE__ */ createContext2(void 0);
|
|
|
816
564
|
var useSheetContext = () => {
|
|
817
565
|
return useContext2(SheetContext) ?? raise2(new Error("Missing SheetContext"));
|
|
818
566
|
};
|
|
819
|
-
var SheetRoot = ({ children, graph, sheet, readonly, ignoreAttention, onInfo }) => {
|
|
567
|
+
var SheetRoot = ({ children, graph, sheet, attendableId, readonly, ignoreAttention, onInfo }) => {
|
|
820
568
|
const model = useSheetModel(graph, sheet, {
|
|
821
569
|
readonly
|
|
822
570
|
});
|
|
@@ -824,20 +572,21 @@ var SheetRoot = ({ children, graph, sheet, readonly, ignoreAttention, onInfo })
|
|
|
824
572
|
return null;
|
|
825
573
|
}
|
|
826
574
|
return /* @__PURE__ */ React2.createElement(Grid.Root, {
|
|
827
|
-
id:
|
|
575
|
+
id: attendableId
|
|
828
576
|
}, /* @__PURE__ */ React2.createElement(SheetProviderImpl, {
|
|
829
577
|
model,
|
|
578
|
+
attendableId,
|
|
830
579
|
onInfo,
|
|
831
580
|
ignoreAttention
|
|
832
581
|
}, children));
|
|
833
582
|
};
|
|
834
|
-
var SheetProviderImpl = ({ __gridScope, children, ignoreAttention, model, onInfo }) => {
|
|
583
|
+
var SheetProviderImpl = ({ __gridScope, children, attendableId, ignoreAttention, model, onInfo }) => {
|
|
835
584
|
const { id, editing, setEditing } = useGridContext("SheetProvider", __gridScope);
|
|
836
585
|
const [cursor, setCursorInternal] = useState2();
|
|
837
586
|
const [range, setRangeInternal] = useState2();
|
|
838
587
|
const [cursorFallbackRange, setCursorFallbackRange] = useState2();
|
|
839
588
|
const [activeRefs, setActiveRefs] = useState2("");
|
|
840
|
-
const setCursor =
|
|
589
|
+
const setCursor = useCallback((nextCursor) => {
|
|
841
590
|
setCursorInternal(nextCursor);
|
|
842
591
|
setCursorFallbackRange(range?.to ? range : nextCursor ? {
|
|
843
592
|
from: nextCursor,
|
|
@@ -846,7 +595,7 @@ var SheetProviderImpl = ({ __gridScope, children, ignoreAttention, model, onInfo
|
|
|
846
595
|
}, [
|
|
847
596
|
range
|
|
848
597
|
]);
|
|
849
|
-
const setRange =
|
|
598
|
+
const setRange = useCallback((nextRange) => {
|
|
850
599
|
setRangeInternal(nextRange);
|
|
851
600
|
setCursorFallbackRange(nextRange?.to ? nextRange : cursor ? {
|
|
852
601
|
from: cursor,
|
|
@@ -858,6 +607,7 @@ var SheetProviderImpl = ({ __gridScope, children, ignoreAttention, model, onInfo
|
|
|
858
607
|
return /* @__PURE__ */ React2.createElement(SheetContext.Provider, {
|
|
859
608
|
value: {
|
|
860
609
|
id,
|
|
610
|
+
attendableId,
|
|
861
611
|
model,
|
|
862
612
|
editing,
|
|
863
613
|
setEditing,
|
|
@@ -876,12 +626,13 @@ var SheetProviderImpl = ({ __gridScope, children, ignoreAttention, model, onInfo
|
|
|
876
626
|
};
|
|
877
627
|
|
|
878
628
|
// src/components/SheetContent/util.ts
|
|
879
|
-
import { useEffect as
|
|
880
|
-
import { inRange
|
|
629
|
+
import { useEffect as useEffect2, useState as useState3 } from "react";
|
|
630
|
+
import { inRange } from "@dxos/compute-hyperformula";
|
|
881
631
|
import { createDocAccessor } from "@dxos/echo-db";
|
|
882
632
|
import { cellClassesForFieldType, parseValue } from "@dxos/react-ui-form";
|
|
883
633
|
import { colToA1Notation, commentedClassName, rowToA1Notation } from "@dxos/react-ui-grid";
|
|
884
634
|
import { mx } from "@dxos/ui-theme";
|
|
635
|
+
import { cellClassNameForRange, rangeFromIndex } from "#types";
|
|
885
636
|
var createDxGridColumns = (model) => {
|
|
886
637
|
return model.sheet.columns.reduce((acc, columnId, numericIndex) => {
|
|
887
638
|
if (model.sheet.columnMeta[columnId] && model.sheet.columnMeta[columnId].size) {
|
|
@@ -914,7 +665,7 @@ var projectCellProps = (model, col, row) => {
|
|
|
914
665
|
row
|
|
915
666
|
};
|
|
916
667
|
const rawValue = model.getValue(address);
|
|
917
|
-
const ranges = model.sheet.ranges?.filter(({ range }) =>
|
|
668
|
+
const ranges = model.sheet.ranges?.filter(({ range }) => inRange(rangeFromIndex(model.sheet, range), address));
|
|
918
669
|
const threadRefs = void 0;
|
|
919
670
|
const description = model.getValueDescription(address);
|
|
920
671
|
const type = description?.type;
|
|
@@ -997,7 +748,7 @@ var cellGetter = (model) => {
|
|
|
997
748
|
var useSheetModelDxGridProps = (dxGrid, model) => {
|
|
998
749
|
const [columns, setColumns] = useState3(createDxGridColumns(model));
|
|
999
750
|
const [rows, setRows] = useState3(createDxGridRows(model));
|
|
1000
|
-
|
|
751
|
+
useEffect2(() => {
|
|
1001
752
|
const cellsAccessor = createDocAccessor(model.sheet, [
|
|
1002
753
|
"cells"
|
|
1003
754
|
]);
|
|
@@ -1017,7 +768,7 @@ var useSheetModelDxGridProps = (dxGrid, model) => {
|
|
|
1017
768
|
model,
|
|
1018
769
|
dxGrid
|
|
1019
770
|
]);
|
|
1020
|
-
|
|
771
|
+
useEffect2(() => {
|
|
1021
772
|
const columnMetaAccessor = createDocAccessor(model.sheet, [
|
|
1022
773
|
"columnMeta"
|
|
1023
774
|
]);
|
|
@@ -1093,16 +844,15 @@ var sheetRowDefault = {
|
|
|
1093
844
|
resizeable: true
|
|
1094
845
|
}
|
|
1095
846
|
};
|
|
1096
|
-
var SheetContent = (props) => {
|
|
847
|
+
var SheetContent = composable((props, forwardedRef) => {
|
|
1097
848
|
const { t } = useTranslation(meta.id);
|
|
1098
|
-
const { id, model, editing, setCursor, setRange, cursor, cursorFallbackRange, activeRefs, ignoreAttention } = useSheetContext();
|
|
849
|
+
const { id, attendableId, model, editing, setCursor, setRange, cursor, cursorFallbackRange, activeRefs, setActiveRefs, ignoreAttention } = useSheetContext();
|
|
1099
850
|
const [dxGrid, setDxGrid] = useState4(null);
|
|
1100
851
|
const [extraplanarFocus, setExtraplanarFocus] = useState4(null);
|
|
1101
|
-
const { invokePromise } =
|
|
852
|
+
const { invokePromise } = useOperationInvoker();
|
|
1102
853
|
const rangeController = useRef(null);
|
|
1103
854
|
const { hasAttention } = useAttention(id);
|
|
1104
|
-
const
|
|
1105
|
-
const handleFocus = useCallback3((event) => {
|
|
855
|
+
const handleFocus = useCallback2((event) => {
|
|
1106
856
|
if (!editing) {
|
|
1107
857
|
const cell = closestCell(event.target);
|
|
1108
858
|
if (cell) {
|
|
@@ -1122,7 +872,7 @@ var SheetContent = (props) => {
|
|
|
1122
872
|
}, [
|
|
1123
873
|
editing
|
|
1124
874
|
]);
|
|
1125
|
-
const handleClose =
|
|
875
|
+
const handleClose = useCallback2((_value, event) => {
|
|
1126
876
|
if (event) {
|
|
1127
877
|
const { key, shift } = event;
|
|
1128
878
|
const axis = [
|
|
@@ -1145,7 +895,7 @@ var SheetContent = (props) => {
|
|
|
1145
895
|
editing,
|
|
1146
896
|
dxGrid
|
|
1147
897
|
]);
|
|
1148
|
-
const handleBlur =
|
|
898
|
+
const handleBlur = useCallback2((value) => {
|
|
1149
899
|
if (value !== void 0) {
|
|
1150
900
|
model.setValue(parseCellIndex(editing.index), value);
|
|
1151
901
|
}
|
|
@@ -1153,8 +903,8 @@ var SheetContent = (props) => {
|
|
|
1153
903
|
model,
|
|
1154
904
|
editing
|
|
1155
905
|
]);
|
|
1156
|
-
const handleAxisResize =
|
|
1157
|
-
|
|
906
|
+
const handleAxisResize = useCallback2(({ axis, size, index: numericIndex }) => {
|
|
907
|
+
Obj2.update(model.sheet, (sheet) => {
|
|
1158
908
|
if (axis === "row") {
|
|
1159
909
|
const rowId = sheet.rows[parseInt(numericIndex)];
|
|
1160
910
|
sheet.rowMeta[rowId] ??= {};
|
|
@@ -1168,7 +918,7 @@ var SheetContent = (props) => {
|
|
|
1168
918
|
}, [
|
|
1169
919
|
model
|
|
1170
920
|
]);
|
|
1171
|
-
const handleSelect =
|
|
921
|
+
const handleSelect = useCallback2(({ minCol, maxCol, minRow, maxRow }) => {
|
|
1172
922
|
const range = {
|
|
1173
923
|
from: {
|
|
1174
924
|
col: minCol,
|
|
@@ -1189,7 +939,7 @@ var SheetContent = (props) => {
|
|
|
1189
939
|
}, [
|
|
1190
940
|
editing
|
|
1191
941
|
]);
|
|
1192
|
-
const handleWheel =
|
|
942
|
+
const handleWheel = useCallback2((event) => {
|
|
1193
943
|
if (!ignoreAttention && !hasAttention) {
|
|
1194
944
|
event.stopPropagation();
|
|
1195
945
|
}
|
|
@@ -1197,7 +947,7 @@ var SheetContent = (props) => {
|
|
|
1197
947
|
hasAttention,
|
|
1198
948
|
ignoreAttention
|
|
1199
949
|
]);
|
|
1200
|
-
const selectEntireAxis =
|
|
950
|
+
const selectEntireAxis = useCallback2((pos) => {
|
|
1201
951
|
switch (pos.plane) {
|
|
1202
952
|
case "frozenRowsStart":
|
|
1203
953
|
return dxGrid?.setSelection({
|
|
@@ -1230,7 +980,7 @@ var SheetContent = (props) => {
|
|
|
1230
980
|
dxGrid,
|
|
1231
981
|
model.sheet
|
|
1232
982
|
]);
|
|
1233
|
-
const handleClick =
|
|
983
|
+
const handleClick = useCallback2((event) => {
|
|
1234
984
|
const cell = closestCell(event.target);
|
|
1235
985
|
if (cell) {
|
|
1236
986
|
selectEntireAxis(cell);
|
|
@@ -1238,7 +988,7 @@ var SheetContent = (props) => {
|
|
|
1238
988
|
}, [
|
|
1239
989
|
selectEntireAxis
|
|
1240
990
|
]);
|
|
1241
|
-
const handleKeyDown =
|
|
991
|
+
const handleKeyDown = useCallback2((event) => {
|
|
1242
992
|
switch (event.key) {
|
|
1243
993
|
case "Backspace":
|
|
1244
994
|
case "Delete":
|
|
@@ -1288,7 +1038,7 @@ var SheetContent = (props) => {
|
|
|
1288
1038
|
const contextMenuAnchorRef = useRef(null);
|
|
1289
1039
|
const [contextMenuOpen, setContextMenuOpen] = useState4(null);
|
|
1290
1040
|
const contextMenuAxis = contextMenuOpen?.plane.startsWith("frozenRows") ? "col" : "row";
|
|
1291
|
-
const handleContextMenu =
|
|
1041
|
+
const handleContextMenu = useCallback2((event) => {
|
|
1292
1042
|
const cell = closestCell(event.target);
|
|
1293
1043
|
if (cell && cell.plane.startsWith("frozen")) {
|
|
1294
1044
|
event.preventDefault();
|
|
@@ -1296,7 +1046,7 @@ var SheetContent = (props) => {
|
|
|
1296
1046
|
setContextMenuOpen(cell);
|
|
1297
1047
|
}
|
|
1298
1048
|
}, []);
|
|
1299
|
-
const handleAxisMenuAction =
|
|
1049
|
+
const handleAxisMenuAction = useCallback2((operation) => {
|
|
1300
1050
|
switch (operation) {
|
|
1301
1051
|
case "insert-before":
|
|
1302
1052
|
case "insert-after":
|
|
@@ -1319,7 +1069,7 @@ var SheetContent = (props) => {
|
|
|
1319
1069
|
invokePromise
|
|
1320
1070
|
]);
|
|
1321
1071
|
const { columns, rows } = useSheetModelDxGridProps(dxGrid, model);
|
|
1322
|
-
const extensions =
|
|
1072
|
+
const extensions = useMemo(() => [
|
|
1323
1073
|
editorKeys({
|
|
1324
1074
|
onClose: handleClose,
|
|
1325
1075
|
...editing?.initialContent && {
|
|
@@ -1342,17 +1092,29 @@ var SheetContent = (props) => {
|
|
|
1342
1092
|
handleClose,
|
|
1343
1093
|
editing
|
|
1344
1094
|
]);
|
|
1345
|
-
const getCellContent =
|
|
1095
|
+
const getCellContent = useCallback2((index) => {
|
|
1346
1096
|
return model.getCellText(parseCellIndex(index));
|
|
1347
1097
|
}, [
|
|
1348
1098
|
model
|
|
1349
1099
|
]);
|
|
1350
|
-
|
|
1100
|
+
const [gridInstances] = useCapabilities(SheetCapabilities.GridInstances);
|
|
1101
|
+
useEffect3(() => {
|
|
1102
|
+
if (dxGrid && gridInstances) {
|
|
1103
|
+
gridInstances.register(attendableId, dxGrid, setActiveRefs);
|
|
1104
|
+
return () => gridInstances.unregister(attendableId);
|
|
1105
|
+
}
|
|
1106
|
+
}, [
|
|
1107
|
+
dxGrid,
|
|
1108
|
+
gridInstances,
|
|
1109
|
+
attendableId,
|
|
1110
|
+
setActiveRefs
|
|
1111
|
+
]);
|
|
1351
1112
|
useSelectThreadOnCellFocus();
|
|
1352
1113
|
return /* @__PURE__ */ React3.createElement("div", {
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1114
|
+
ref: forwardedRef,
|
|
1115
|
+
...composableProps(props, {
|
|
1116
|
+
classNames: "relative min-h-0"
|
|
1117
|
+
})
|
|
1356
1118
|
}, /* @__PURE__ */ React3.createElement(GridCellEditor, {
|
|
1357
1119
|
getCellContent,
|
|
1358
1120
|
extensions,
|
|
@@ -1391,43 +1153,45 @@ var SheetContent = (props) => {
|
|
|
1391
1153
|
onClick: () => handleAxisMenuAction("insert-before"),
|
|
1392
1154
|
"data-testid": `grid.${contextMenuAxis}.insert-before`
|
|
1393
1155
|
}, /* @__PURE__ */ React3.createElement(Icon, {
|
|
1394
|
-
size: 5,
|
|
1395
1156
|
icon: contextMenuAxis === "col" ? "ph--columns-plus-left--regular" : "ph--rows-plus-top--regular"
|
|
1396
|
-
}), /* @__PURE__ */ React3.createElement("span", null, t(`add
|
|
1157
|
+
}), /* @__PURE__ */ React3.createElement("span", null, t(`add-${contextMenuAxis}-before.label`))), /* @__PURE__ */ React3.createElement(DropdownMenu.Item, {
|
|
1397
1158
|
onClick: () => handleAxisMenuAction("insert-after"),
|
|
1398
1159
|
"data-testid": `grid.${contextMenuAxis}.insert-after`
|
|
1399
1160
|
}, /* @__PURE__ */ React3.createElement(Icon, {
|
|
1400
|
-
size: 5,
|
|
1401
1161
|
icon: contextMenuAxis === "col" ? "ph--columns-plus-right--regular" : "ph--rows-plus-bottom--regular"
|
|
1402
|
-
}), /* @__PURE__ */ React3.createElement("span", null, t(`add
|
|
1162
|
+
}), /* @__PURE__ */ React3.createElement("span", null, t(`add-${contextMenuAxis}-after.label`))), /* @__PURE__ */ React3.createElement(DropdownMenu.Item, {
|
|
1403
1163
|
onClick: () => handleAxisMenuAction("drop"),
|
|
1404
1164
|
"data-testid": `grid.${contextMenuAxis}.drop`
|
|
1405
1165
|
}, /* @__PURE__ */ React3.createElement(Icon, {
|
|
1406
|
-
size: 5,
|
|
1407
1166
|
icon: "ph--backspace--regular"
|
|
1408
|
-
}), /* @__PURE__ */ React3.createElement("span", null, t(`delete
|
|
1409
|
-
};
|
|
1167
|
+
}), /* @__PURE__ */ React3.createElement("span", null, t(`delete-${contextMenuAxis}.label`)))), /* @__PURE__ */ React3.createElement(DropdownMenu.Arrow, null))));
|
|
1168
|
+
});
|
|
1410
1169
|
|
|
1411
1170
|
// src/components/SheetStatusbar/SheetStatusbar.tsx
|
|
1412
1171
|
import React4 from "react";
|
|
1413
|
-
import { addressToA1Notation as addressToA1Notation2, isFormula as isFormula2, rangeToA1Notation as rangeToA1Notation2 } from "@dxos/compute";
|
|
1172
|
+
import { addressToA1Notation as addressToA1Notation2, isFormula as isFormula2, rangeToA1Notation as rangeToA1Notation2 } from "@dxos/compute-hyperformula";
|
|
1414
1173
|
import { Icon as Icon2 } from "@dxos/react-ui";
|
|
1415
|
-
|
|
1174
|
+
import { composable as composable2, composableProps as composableProps2 } from "@dxos/react-ui";
|
|
1175
|
+
import { mx as mx2 } from "@dxos/ui-theme";
|
|
1176
|
+
import { mapFormulaIndicesToRefs as mapFormulaIndicesToRefs2 } from "#types";
|
|
1177
|
+
var SheetStatusbar = composable2((props, forwardedRef) => {
|
|
1178
|
+
const { className, ...rest } = composableProps2(props);
|
|
1416
1179
|
const { model, cursor, range } = useSheetContext();
|
|
1417
1180
|
let value;
|
|
1418
1181
|
let formula = false;
|
|
1419
1182
|
if (cursor) {
|
|
1420
1183
|
value = model.getCellValue(cursor);
|
|
1421
1184
|
if (isFormula2(value)) {
|
|
1422
|
-
value = model.graph.mapFunctionBindingFromId(
|
|
1185
|
+
value = model.graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs2(model.sheet, value));
|
|
1423
1186
|
formula = true;
|
|
1424
1187
|
} else if (value != null) {
|
|
1425
1188
|
value = String(value);
|
|
1426
1189
|
}
|
|
1427
1190
|
}
|
|
1428
1191
|
return /* @__PURE__ */ React4.createElement("div", {
|
|
1429
|
-
|
|
1430
|
-
|
|
1192
|
+
ref: forwardedRef,
|
|
1193
|
+
...rest,
|
|
1194
|
+
className: mx2("flex shrink-0 justify-between items-center px-4 py-1 text-sm bg-toolbar-surface border-y !border-subdued-separator", className)
|
|
1431
1195
|
}, /* @__PURE__ */ React4.createElement("div", {
|
|
1432
1196
|
className: "flex gap-4 items-center"
|
|
1433
1197
|
}, /* @__PURE__ */ React4.createElement("div", {
|
|
@@ -1443,20 +1207,23 @@ var SheetStatusbar = (props) => {
|
|
|
1443
1207
|
}), /* @__PURE__ */ React4.createElement("span", {
|
|
1444
1208
|
className: "font-mono"
|
|
1445
1209
|
}, value))));
|
|
1446
|
-
};
|
|
1210
|
+
});
|
|
1447
1211
|
|
|
1448
1212
|
// src/components/SheetToolbar/SheetToolbar.tsx
|
|
1449
1213
|
import { Atom as Atom2, RegistryContext as RegistryContext4 } from "@effect-atom/atom-react";
|
|
1450
|
-
import React5, { useContext as useContext6, useMemo as
|
|
1214
|
+
import React5, { useContext as useContext6, useMemo as useMemo3 } from "react";
|
|
1451
1215
|
import { useAppGraph } from "@dxos/app-toolkit/ui";
|
|
1216
|
+
import { composable as composable3, composableProps as composableProps3 } from "@dxos/react-ui";
|
|
1452
1217
|
import { Menu, createGapSeparator, useMenuActions } from "@dxos/react-ui-menu";
|
|
1453
1218
|
|
|
1454
1219
|
// src/components/SheetToolbar/align.ts
|
|
1455
1220
|
import { RegistryContext } from "@effect-atom/atom-react";
|
|
1456
1221
|
import { useContext as useContext3, useEffect as useEffect4 } from "react";
|
|
1457
|
-
import { inRange as
|
|
1458
|
-
import { Obj as
|
|
1222
|
+
import { inRange as inRange2 } from "@dxos/compute-hyperformula";
|
|
1223
|
+
import { Obj as Obj3 } from "@dxos/echo";
|
|
1459
1224
|
import { createMenuAction, createMenuItemGroup } from "@dxos/react-ui-menu";
|
|
1225
|
+
import { meta as meta2 } from "#meta";
|
|
1226
|
+
import { alignKey, rangeFromIndex as rangeFromIndex2, rangeToIndex } from "#types";
|
|
1460
1227
|
var aligns = {
|
|
1461
1228
|
start: "ph--text-align-left--regular",
|
|
1462
1229
|
center: "ph--text-align-center--regular",
|
|
@@ -1466,7 +1233,7 @@ var useAlignState = (stateAtom) => {
|
|
|
1466
1233
|
const registry = useContext3(RegistryContext);
|
|
1467
1234
|
const { cursor, model } = useSheetContext();
|
|
1468
1235
|
useEffect4(() => {
|
|
1469
|
-
const alignValue = cursor ? model.sheet.ranges?.findLast(({ range, key }) => key === alignKey &&
|
|
1236
|
+
const alignValue = cursor ? model.sheet.ranges?.findLast(({ range, key }) => key === alignKey && inRange2(rangeFromIndex2(model.sheet, range), cursor))?.value : void 0;
|
|
1470
1237
|
const prev = registry.get(stateAtom);
|
|
1471
1238
|
registry.set(stateAtom, {
|
|
1472
1239
|
...prev,
|
|
@@ -1481,9 +1248,9 @@ var useAlignState = (stateAtom) => {
|
|
|
1481
1248
|
};
|
|
1482
1249
|
var createAlignGroupAction = (value) => createMenuItemGroup("align", {
|
|
1483
1250
|
label: [
|
|
1484
|
-
"align
|
|
1251
|
+
"align.label",
|
|
1485
1252
|
{
|
|
1486
|
-
ns:
|
|
1253
|
+
ns: meta2.id
|
|
1487
1254
|
}
|
|
1488
1255
|
],
|
|
1489
1256
|
variant: "toggleGroup",
|
|
@@ -1495,7 +1262,7 @@ var createAlignActions = ({ model, state, stateAtom, registry, cursorFallbackRan
|
|
|
1495
1262
|
if (!cursorFallbackRange) {
|
|
1496
1263
|
return;
|
|
1497
1264
|
}
|
|
1498
|
-
const index = model.sheet.ranges?.findIndex((range) => range.key === alignKey &&
|
|
1265
|
+
const index = model.sheet.ranges?.findIndex((range) => range.key === alignKey && inRange2(rangeFromIndex2(model.sheet, range.range), cursorFallbackRange.from)) ?? -1;
|
|
1499
1266
|
const nextRangeEntity = {
|
|
1500
1267
|
range: rangeToIndex(model.sheet, cursorFallbackRange),
|
|
1501
1268
|
key: alignKey,
|
|
@@ -1503,7 +1270,7 @@ var createAlignActions = ({ model, state, stateAtom, registry, cursorFallbackRan
|
|
|
1503
1270
|
};
|
|
1504
1271
|
const currentState = registry.get(stateAtom);
|
|
1505
1272
|
if (index < 0) {
|
|
1506
|
-
|
|
1273
|
+
Obj3.update(model.sheet, (obj) => {
|
|
1507
1274
|
obj.ranges?.push(nextRangeEntity);
|
|
1508
1275
|
});
|
|
1509
1276
|
registry.set(stateAtom, {
|
|
@@ -1511,7 +1278,7 @@ var createAlignActions = ({ model, state, stateAtom, registry, cursorFallbackRan
|
|
|
1511
1278
|
[alignKey]: nextRangeEntity.value
|
|
1512
1279
|
});
|
|
1513
1280
|
} else if (model.sheet.ranges[index].value === nextRangeEntity.value) {
|
|
1514
|
-
|
|
1281
|
+
Obj3.update(model.sheet, (obj) => {
|
|
1515
1282
|
obj.ranges?.splice(index, 1);
|
|
1516
1283
|
});
|
|
1517
1284
|
registry.set(stateAtom, {
|
|
@@ -1519,7 +1286,7 @@ var createAlignActions = ({ model, state, stateAtom, registry, cursorFallbackRan
|
|
|
1519
1286
|
[alignKey]: void 0
|
|
1520
1287
|
});
|
|
1521
1288
|
} else {
|
|
1522
|
-
|
|
1289
|
+
Obj3.update(model.sheet, (obj) => {
|
|
1523
1290
|
obj.ranges?.splice(index, 1, nextRangeEntity);
|
|
1524
1291
|
});
|
|
1525
1292
|
registry.set(stateAtom, {
|
|
@@ -1532,9 +1299,9 @@ var createAlignActions = ({ model, state, stateAtom, registry, cursorFallbackRan
|
|
|
1532
1299
|
value: alignValue,
|
|
1533
1300
|
checked: state[alignKey] === alignValue,
|
|
1534
1301
|
label: [
|
|
1535
|
-
`range
|
|
1302
|
+
`range-value.${alignValue}.label`,
|
|
1536
1303
|
{
|
|
1537
|
-
ns:
|
|
1304
|
+
ns: meta2.id
|
|
1538
1305
|
}
|
|
1539
1306
|
],
|
|
1540
1307
|
icon,
|
|
@@ -1567,9 +1334,11 @@ var createAlign = (context) => {
|
|
|
1567
1334
|
// src/components/SheetToolbar/style.ts
|
|
1568
1335
|
import { RegistryContext as RegistryContext2 } from "@effect-atom/atom-react";
|
|
1569
1336
|
import { useContext as useContext4, useEffect as useEffect5 } from "react";
|
|
1570
|
-
import { inRange as
|
|
1571
|
-
import { Obj as
|
|
1337
|
+
import { inRange as inRange3 } from "@dxos/compute-hyperformula";
|
|
1338
|
+
import { Obj as Obj4 } from "@dxos/echo";
|
|
1572
1339
|
import { createMenuAction as createMenuAction2, createMenuItemGroup as createMenuItemGroup2 } from "@dxos/react-ui-menu";
|
|
1340
|
+
import { meta as meta3 } from "#meta";
|
|
1341
|
+
import { rangeFromIndex as rangeFromIndex3, rangeToIndex as rangeToIndex2 } from "#types";
|
|
1573
1342
|
var styles = {
|
|
1574
1343
|
highlight: "ph--highlighter--regular",
|
|
1575
1344
|
softwrap: "ph--paragraph--regular"
|
|
@@ -1581,7 +1350,7 @@ var useStyleState = (stateAtom) => {
|
|
|
1581
1350
|
let highlight = false;
|
|
1582
1351
|
let softwrap = false;
|
|
1583
1352
|
if (cursorFallbackRange && model.sheet.ranges) {
|
|
1584
|
-
model.sheet.ranges.filter(({ range, key }) => key === "style" &&
|
|
1353
|
+
model.sheet.ranges.filter(({ range, key }) => key === "style" && inRange3(rangeFromIndex3(model.sheet, range), cursorFallbackRange.from)).forEach(({ value }) => {
|
|
1585
1354
|
if (value === "highlight") {
|
|
1586
1355
|
highlight = true;
|
|
1587
1356
|
}
|
|
@@ -1615,16 +1384,16 @@ var createStyleActions = ({ model, state, stateAtom, registry, cursorFallbackRan
|
|
|
1615
1384
|
if (!cursorFallbackRange) {
|
|
1616
1385
|
return;
|
|
1617
1386
|
}
|
|
1618
|
-
const index = model.sheet.ranges?.findIndex((range) => range.key === "style" &&
|
|
1387
|
+
const index = model.sheet.ranges?.findIndex((range) => range.key === "style" && inRange3(rangeFromIndex3(model.sheet, range.range), cursorFallbackRange.from)) ?? -1;
|
|
1619
1388
|
const nextRangeEntity = {
|
|
1620
|
-
range:
|
|
1389
|
+
range: rangeToIndex2(model.sheet, cursorFallbackRange),
|
|
1621
1390
|
key: "style",
|
|
1622
1391
|
value: styleValue
|
|
1623
1392
|
};
|
|
1624
1393
|
const currentState = registry.get(stateAtom);
|
|
1625
|
-
if (model.sheet.ranges.filter(({ range, key: rangeKey }) => rangeKey === "style" &&
|
|
1394
|
+
if (model.sheet.ranges.filter(({ range, key: rangeKey }) => rangeKey === "style" && inRange3(rangeFromIndex3(model.sheet, range), cursorFallbackRange.from)).some(({ value: rangeValue }) => rangeValue === styleValue)) {
|
|
1626
1395
|
if (index >= 0) {
|
|
1627
|
-
|
|
1396
|
+
Obj4.update(model.sheet, (obj) => {
|
|
1628
1397
|
obj.ranges?.splice(index, 1);
|
|
1629
1398
|
});
|
|
1630
1399
|
}
|
|
@@ -1633,7 +1402,7 @@ var createStyleActions = ({ model, state, stateAtom, registry, cursorFallbackRan
|
|
|
1633
1402
|
[nextRangeEntity.value]: false
|
|
1634
1403
|
});
|
|
1635
1404
|
} else {
|
|
1636
|
-
|
|
1405
|
+
Obj4.update(model.sheet, (obj) => {
|
|
1637
1406
|
obj.ranges?.push(nextRangeEntity);
|
|
1638
1407
|
});
|
|
1639
1408
|
registry.set(stateAtom, {
|
|
@@ -1646,9 +1415,9 @@ var createStyleActions = ({ model, state, stateAtom, registry, cursorFallbackRan
|
|
|
1646
1415
|
value: styleValue,
|
|
1647
1416
|
icon,
|
|
1648
1417
|
label: [
|
|
1649
|
-
`range
|
|
1418
|
+
`range-value.${styleValue}.label`,
|
|
1650
1419
|
{
|
|
1651
|
-
ns:
|
|
1420
|
+
ns: meta3.id
|
|
1652
1421
|
}
|
|
1653
1422
|
],
|
|
1654
1423
|
checked: !!state[styleValue]
|
|
@@ -1679,9 +1448,9 @@ var createStyle = (context) => {
|
|
|
1679
1448
|
|
|
1680
1449
|
// src/components/SheetToolbar/useToolbarState.ts
|
|
1681
1450
|
import { Atom, RegistryContext as RegistryContext3, useAtomValue } from "@effect-atom/atom-react";
|
|
1682
|
-
import { useContext as useContext5, useMemo as
|
|
1451
|
+
import { useContext as useContext5, useMemo as useMemo2 } from "react";
|
|
1683
1452
|
var useToolbarState = (initialState = {}) => {
|
|
1684
|
-
return
|
|
1453
|
+
return useMemo2(() => Atom.make(initialState).pipe(Atom.keepAlive), []);
|
|
1685
1454
|
};
|
|
1686
1455
|
|
|
1687
1456
|
// src/components/SheetToolbar/SheetToolbar.tsx
|
|
@@ -1718,16 +1487,16 @@ var createToolbarActions = ({ model, stateAtom, registry, cursorFallbackRange, c
|
|
|
1718
1487
|
return graph;
|
|
1719
1488
|
});
|
|
1720
1489
|
};
|
|
1721
|
-
var SheetToolbar = (
|
|
1722
|
-
const { model, cursorFallbackRange } = useSheetContext();
|
|
1490
|
+
var SheetToolbar = composable3((props, forwardedRef) => {
|
|
1491
|
+
const { attendableId, model, cursorFallbackRange } = useSheetContext();
|
|
1723
1492
|
const stateAtom = useToolbarState({});
|
|
1724
1493
|
const registry = useContext6(RegistryContext4);
|
|
1725
1494
|
useAlignState(stateAtom);
|
|
1726
1495
|
useStyleState(stateAtom);
|
|
1727
1496
|
const { graph } = useAppGraph();
|
|
1728
|
-
const customActions =
|
|
1497
|
+
const customActions = useMemo3(() => {
|
|
1729
1498
|
return Atom2.make((get) => {
|
|
1730
|
-
const actions = get(graph.actions(
|
|
1499
|
+
const actions = get(graph.actions(attendableId));
|
|
1731
1500
|
const nodes = actions.filter((action) => action.properties.disposition === "toolbar");
|
|
1732
1501
|
return {
|
|
1733
1502
|
nodes,
|
|
@@ -1740,9 +1509,9 @@ var SheetToolbar = ({ id, ...props }) => {
|
|
|
1740
1509
|
});
|
|
1741
1510
|
}, [
|
|
1742
1511
|
graph,
|
|
1743
|
-
|
|
1512
|
+
attendableId
|
|
1744
1513
|
]);
|
|
1745
|
-
const actionsCreator =
|
|
1514
|
+
const actionsCreator = useMemo3(() => createToolbarActions({
|
|
1746
1515
|
model,
|
|
1747
1516
|
stateAtom,
|
|
1748
1517
|
registry,
|
|
@@ -1755,13 +1524,16 @@ var SheetToolbar = ({ id, ...props }) => {
|
|
|
1755
1524
|
cursorFallbackRange,
|
|
1756
1525
|
customActions
|
|
1757
1526
|
]);
|
|
1758
|
-
const
|
|
1527
|
+
const menuActions = useMenuActions(actionsCreator);
|
|
1759
1528
|
return /* @__PURE__ */ React5.createElement(Menu.Root, {
|
|
1760
|
-
...
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1529
|
+
...menuActions,
|
|
1530
|
+
attendableId
|
|
1531
|
+
}, /* @__PURE__ */ React5.createElement(Menu.Toolbar, {
|
|
1532
|
+
...composableProps3(props),
|
|
1533
|
+
ref: forwardedRef
|
|
1534
|
+
}));
|
|
1535
|
+
});
|
|
1536
|
+
SheetToolbar.displayName = "SheetToolbar";
|
|
1765
1537
|
|
|
1766
1538
|
// src/components/Sheet/Sheet.tsx
|
|
1767
1539
|
var Sheet = {
|
|
@@ -1770,36 +1542,11 @@ var Sheet = {
|
|
|
1770
1542
|
Content: SheetContent,
|
|
1771
1543
|
Statusbar: SheetStatusbar
|
|
1772
1544
|
};
|
|
1773
|
-
|
|
1774
|
-
// src/containers/SheetContainer/SheetContainer.tsx
|
|
1775
|
-
var SheetContainer = ({ registry, ...props }) => /* @__PURE__ */ React6.createElement(ComputeGraphContextProvider, {
|
|
1776
|
-
registry
|
|
1777
|
-
}, /* @__PURE__ */ React6.createElement(SheetContainerInner, props));
|
|
1778
|
-
var SheetContainerInner = ({ role, subject: sheet, space, ignoreAttention }) => {
|
|
1779
|
-
const graph = useComputeGraph(space);
|
|
1780
|
-
if (!graph) {
|
|
1781
|
-
return null;
|
|
1782
|
-
}
|
|
1783
|
-
return /* @__PURE__ */ React6.createElement(Sheet.Root, {
|
|
1784
|
-
graph,
|
|
1785
|
-
sheet,
|
|
1786
|
-
ignoreAttention
|
|
1787
|
-
}, /* @__PURE__ */ React6.createElement(Panel.Root, {
|
|
1788
|
-
classNames: role === "section" && "aspect-aquare"
|
|
1789
|
-
}, /* @__PURE__ */ React6.createElement(Panel.Toolbar, {
|
|
1790
|
-
asChild: true
|
|
1791
|
-
}, /* @__PURE__ */ React6.createElement(Sheet.Toolbar, {
|
|
1792
|
-
id: Obj7.getDXN(sheet).toString()
|
|
1793
|
-
})), /* @__PURE__ */ React6.createElement(Panel.Content, {
|
|
1794
|
-
asChild: true
|
|
1795
|
-
}, /* @__PURE__ */ React6.createElement(Sheet.Content, null)), /* @__PURE__ */ React6.createElement(Panel.Statusbar, {
|
|
1796
|
-
asChild: true
|
|
1797
|
-
}, /* @__PURE__ */ React6.createElement(Sheet.Statusbar, null))));
|
|
1798
|
-
};
|
|
1799
|
-
|
|
1800
|
-
// src/containers/SheetContainer/index.ts
|
|
1801
|
-
var SheetContainer_default = SheetContainer;
|
|
1802
1545
|
export {
|
|
1803
|
-
|
|
1546
|
+
ComputeGraphContext,
|
|
1547
|
+
ComputeGraphContextProvider,
|
|
1548
|
+
Sheet,
|
|
1549
|
+
useComputeGraph,
|
|
1550
|
+
useSheetContext
|
|
1804
1551
|
};
|
|
1805
|
-
//# sourceMappingURL=
|
|
1552
|
+
//# sourceMappingURL=index.mjs.map
|