@dxos/plugin-sheet 0.6.12-main.5cc132e → 0.6.12-main.7907542
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-T2QWJOFD.mjs +262 -0
- package/dist/lib/browser/SheetContainer-T2QWJOFD.mjs.map +7 -0
- package/dist/lib/browser/{chunk-WUPTZUTX.mjs → chunk-5ZMVZYGB.mjs} +21 -19
- package/dist/lib/browser/chunk-5ZMVZYGB.mjs.map +7 -0
- package/dist/lib/browser/{chunk-GNNVBNCX.mjs → chunk-GSV5QNLD.mjs} +409 -686
- package/dist/lib/browser/chunk-GSV5QNLD.mjs.map +7 -0
- package/dist/lib/browser/{chunk-JRL5LGCE.mjs → chunk-QILRZNE5.mjs} +2 -5
- package/dist/lib/browser/chunk-QILRZNE5.mjs.map +7 -0
- package/dist/lib/browser/{SheetContainer-Y7ZMFBAP.mjs → chunk-ZL2V5UJR.mjs} +982 -508
- package/dist/lib/browser/chunk-ZL2V5UJR.mjs.map +7 -0
- package/dist/lib/browser/graph-M4IQ76QX.mjs +33 -0
- package/dist/lib/browser/graph-M4IQ76QX.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +86 -59
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/meta.mjs +1 -1
- package/dist/lib/browser/types.mjs +4 -6
- package/dist/lib/node/SheetContainer-PV5ET4UJ.cjs +280 -0
- package/dist/lib/node/SheetContainer-PV5ET4UJ.cjs.map +7 -0
- package/dist/lib/node/{SheetContainer-KEOKUKAQ.cjs → chunk-2K53Z2TU.cjs} +1036 -558
- package/dist/lib/node/chunk-2K53Z2TU.cjs.map +7 -0
- package/dist/lib/node/{chunk-ZRQZFV5T.cjs → chunk-5XPK2V4A.cjs} +418 -691
- package/dist/lib/node/chunk-5XPK2V4A.cjs.map +7 -0
- package/dist/lib/node/{chunk-BJ6ZD7MN.cjs → chunk-BNARJ5GM.cjs} +5 -18
- package/dist/lib/node/chunk-BNARJ5GM.cjs.map +7 -0
- package/dist/lib/node/{chunk-VJU3NPUJ.cjs → chunk-STAVQ2JE.cjs} +25 -24
- package/dist/lib/node/chunk-STAVQ2JE.cjs.map +7 -0
- package/dist/lib/node/graph-Q3N2X26H.cjs +55 -0
- package/dist/lib/node/graph-Q3N2X26H.cjs.map +7 -0
- package/dist/lib/node/index.cjs +98 -66
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.cjs +3 -3
- package/dist/lib/node/meta.cjs.map +1 -1
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/types.cjs +10 -12
- package/dist/lib/node/types.cjs.map +2 -2
- package/dist/lib/node-esm/SheetContainer-FOZD2WLT.mjs +263 -0
- package/dist/lib/node-esm/SheetContainer-FOZD2WLT.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-WUPTZUTX.mjs → chunk-2HAM45RC.mjs} +22 -19
- package/dist/lib/node-esm/chunk-2HAM45RC.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-GNNVBNCX.mjs → chunk-5WPZCXNS.mjs} +411 -686
- package/dist/lib/node-esm/chunk-5WPZCXNS.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-JRL5LGCE.mjs → chunk-IU2L277A.mjs} +4 -5
- package/dist/lib/node-esm/chunk-IU2L277A.mjs.map +7 -0
- package/dist/lib/node-esm/{SheetContainer-Y7ZMFBAP.mjs → chunk-QEUCIHIN.mjs} +983 -508
- package/dist/lib/node-esm/chunk-QEUCIHIN.mjs.map +7 -0
- package/dist/lib/node-esm/graph-SMPUMOV2.mjs +34 -0
- package/dist/lib/node-esm/graph-SMPUMOV2.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +87 -59
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/meta.mjs +2 -1
- package/dist/lib/node-esm/types.mjs +5 -6
- package/dist/types/src/SheetPlugin.d.ts.map +1 -1
- package/dist/types/src/components/CellEditor/CellEditor.d.ts +23 -3
- package/dist/types/src/components/CellEditor/CellEditor.d.ts.map +1 -1
- package/dist/types/src/components/CellEditor/CellEditor.stories.d.ts +2 -2
- package/dist/types/src/components/CellEditor/CellEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/CellEditor/extension.d.ts +1 -1
- package/dist/types/src/components/CellEditor/extension.d.ts.map +1 -1
- package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts +11 -0
- package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -0
- package/dist/types/src/components/ComputeGraph/index.d.ts +1 -3
- package/dist/types/src/components/ComputeGraph/index.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/GridSheet.d.ts +10 -0
- package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -0
- package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +9 -0
- package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -0
- package/dist/types/src/components/GridSheet/util.d.ts +16 -0
- package/dist/types/src/components/GridSheet/util.d.ts.map +1 -0
- package/dist/types/src/components/Sheet/Sheet.d.ts +1 -1
- package/dist/types/src/components/Sheet/Sheet.d.ts.map +1 -1
- package/dist/types/src/components/Sheet/Sheet.stories.d.ts +5 -6
- package/dist/types/src/components/Sheet/Sheet.stories.d.ts.map +1 -1
- package/dist/types/src/components/Sheet/grid.d.ts +2 -2
- package/dist/types/src/components/Sheet/grid.d.ts.map +1 -1
- package/dist/types/src/components/Sheet/nav.d.ts +3 -3
- package/dist/types/src/components/Sheet/nav.d.ts.map +1 -1
- package/dist/types/src/components/Sheet/sheet-context.d.ts +6 -7
- package/dist/types/src/components/Sheet/sheet-context.d.ts.map +1 -1
- package/dist/types/src/components/Sheet/threads.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer.d.ts +1 -1
- package/dist/types/src/components/SheetContainer.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +1 -1
- package/dist/types/src/components/index.d.ts +2 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/defs/index.d.ts +3 -0
- package/dist/types/src/defs/index.d.ts.map +1 -0
- package/dist/types/src/{model → defs}/types.d.ts +8 -3
- package/dist/types/src/defs/types.d.ts.map +1 -0
- package/dist/types/src/defs/types.test.d.ts.map +1 -0
- package/dist/types/src/{model → defs}/util.d.ts +8 -4
- package/dist/types/src/defs/util.d.ts.map +1 -0
- package/dist/types/src/extensions/compute.d.ts +6 -0
- package/dist/types/src/extensions/compute.d.ts.map +1 -0
- package/dist/types/src/extensions/compute.stories.d.ts +26 -0
- package/dist/types/src/extensions/compute.stories.d.ts.map +1 -0
- package/dist/types/src/extensions/index.d.ts +2 -0
- package/dist/types/src/extensions/index.d.ts.map +1 -0
- package/dist/types/src/graph/compute-graph-registry.d.ts +34 -0
- package/dist/types/src/graph/compute-graph-registry.d.ts.map +1 -0
- package/dist/types/src/graph/compute-graph.d.ts +64 -0
- package/dist/types/src/graph/compute-graph.d.ts.map +1 -0
- package/dist/types/src/graph/compute-graph.stories.d.ts +10 -0
- package/dist/types/src/graph/compute-graph.stories.d.ts.map +1 -0
- package/dist/types/src/graph/compute-graph.test.d.ts +2 -0
- package/dist/types/src/graph/compute-graph.test.d.ts.map +1 -0
- package/dist/types/src/graph/compute-node.d.ts +26 -0
- package/dist/types/src/graph/compute-node.d.ts.map +1 -0
- package/dist/types/src/{components/ComputeGraph → graph/functions}/async-function.d.ts +14 -5
- package/dist/types/src/graph/functions/async-function.d.ts.map +1 -0
- package/dist/types/src/graph/functions/edge-function.d.ts +21 -0
- package/dist/types/src/graph/functions/edge-function.d.ts.map +1 -0
- package/dist/types/src/{model/functions.d.ts → graph/functions/function-defs.d.ts} +1 -1
- package/dist/types/src/graph/functions/function-defs.d.ts.map +1 -0
- package/dist/types/src/graph/functions/index.d.ts +4 -0
- package/dist/types/src/graph/functions/index.d.ts.map +1 -0
- package/dist/types/src/graph/hyperformula.test.d.ts +2 -0
- package/dist/types/src/graph/hyperformula.test.d.ts.map +1 -0
- package/dist/types/src/graph/index.d.ts +5 -0
- package/dist/types/src/graph/index.d.ts.map +1 -0
- package/dist/types/src/graph/testing/index.d.ts +3 -0
- package/dist/types/src/graph/testing/index.d.ts.map +1 -0
- package/dist/types/src/graph/testing/test-builder.d.ts +15 -0
- package/dist/types/src/graph/testing/test-builder.d.ts.map +1 -0
- package/dist/types/src/graph/testing/test-plugin.d.ts +36 -0
- package/dist/types/src/graph/testing/test-plugin.d.ts.map +1 -0
- package/dist/types/src/graph/util.d.ts +2 -0
- package/dist/types/src/graph/util.d.ts.map +1 -0
- package/dist/types/src/hooks/hooks.stories.d.ts +11 -0
- package/dist/types/src/hooks/hooks.stories.d.ts.map +1 -0
- package/dist/types/src/hooks/index.d.ts +4 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -0
- package/dist/types/src/hooks/useComputeGraph.d.ts +7 -0
- package/dist/types/src/hooks/useComputeGraph.d.ts.map +1 -0
- package/dist/types/src/hooks/useFormattingModel.d.ts +3 -0
- package/dist/types/src/hooks/useFormattingModel.d.ts.map +1 -0
- package/dist/types/src/hooks/useSheetModel.d.ts +8 -0
- package/dist/types/src/hooks/useSheetModel.d.ts.map +1 -0
- package/dist/types/src/meta.d.ts +1 -4
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/model/formatting-model.d.ts +16 -0
- package/dist/types/src/model/formatting-model.d.ts.map +1 -0
- package/dist/types/src/model/index.d.ts +2 -4
- package/dist/types/src/model/index.d.ts.map +1 -1
- package/dist/types/src/model/{model.d.ts → sheet-model.d.ts} +10 -49
- package/dist/types/src/model/sheet-model.d.ts.map +1 -0
- package/dist/types/src/model/sheet-model.test.d.ts +2 -0
- package/dist/types/src/model/sheet-model.test.d.ts.map +1 -0
- package/dist/types/src/sanity.test.d.ts +2 -0
- package/dist/types/src/sanity.test.d.ts.map +1 -0
- package/dist/types/src/testing/index.d.ts +2 -0
- package/dist/types/src/testing/index.d.ts.map +1 -0
- package/dist/types/src/testing/testing.d.ts +8 -0
- package/dist/types/src/testing/testing.d.ts.map +1 -0
- package/dist/types/src/types.d.ts +15 -4
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/vendor/hyperformula.mjs +37145 -0
- package/package.json +48 -44
- package/src/SheetPlugin.tsx +46 -62
- package/src/components/CellEditor/CellEditor.stories.tsx +6 -6
- package/src/components/CellEditor/CellEditor.tsx +59 -9
- package/src/components/CellEditor/extension.test.ts +3 -4
- package/src/components/CellEditor/extension.ts +5 -6
- package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +20 -0
- package/src/components/ComputeGraph/index.ts +1 -3
- package/src/components/GridSheet/GridSheet.stories.tsx +36 -0
- package/src/components/GridSheet/GridSheet.tsx +171 -0
- package/src/components/GridSheet/util.ts +148 -0
- package/src/components/Sheet/Sheet.stories.tsx +48 -88
- package/src/components/Sheet/Sheet.tsx +42 -24
- package/src/components/Sheet/grid.ts +3 -3
- package/src/components/Sheet/nav.ts +19 -19
- package/src/components/Sheet/sheet-context.tsx +12 -82
- package/src/components/Sheet/threads.tsx +10 -6
- package/src/components/SheetContainer.tsx +13 -15
- package/src/components/Toolbar/Toolbar.tsx +1 -2
- package/src/components/index.ts +1 -0
- package/src/defs/index.ts +6 -0
- package/src/{model → defs}/types.test.ts +7 -7
- package/src/{model → defs}/types.ts +24 -14
- package/src/{model → defs}/util.ts +65 -17
- package/src/extensions/compute.stories.tsx +151 -0
- package/src/extensions/compute.ts +147 -0
- package/src/extensions/index.ts +5 -0
- package/src/graph/compute-graph-registry.ts +90 -0
- package/src/graph/compute-graph.stories.tsx +93 -0
- package/src/graph/compute-graph.test.ts +87 -0
- package/src/graph/compute-graph.ts +242 -0
- package/src/graph/compute-node.ts +63 -0
- package/src/{components/ComputeGraph → graph/functions}/async-function.ts +25 -15
- package/src/{components/ComputeGraph → graph/functions}/edge-function.ts +16 -14
- package/src/graph/functions/index.ts +7 -0
- package/src/graph/hyperformula.test.ts +14 -0
- package/src/graph/index.ts +8 -0
- package/src/graph/testing/index.ts +6 -0
- package/src/graph/testing/test-builder.ts +54 -0
- package/src/{components/ComputeGraph/custom.ts → graph/testing/test-plugin.ts} +44 -14
- package/src/graph/util.ts +8 -0
- package/src/hooks/hooks.stories.tsx +50 -0
- package/src/hooks/index.ts +7 -0
- package/src/hooks/useComputeGraph.ts +28 -0
- package/src/hooks/useFormattingModel.ts +11 -0
- package/src/hooks/useSheetModel.ts +40 -0
- package/src/meta.tsx +1 -5
- package/src/{components/Sheet/formatting.ts → model/formatting-model.ts} +20 -13
- package/src/model/index.ts +2 -4
- package/src/model/sheet-model.test.ts +57 -0
- package/src/model/{model.ts → sheet-model.ts} +88 -188
- package/src/sanity.test.ts +40 -0
- package/src/testing/index.ts +5 -0
- package/src/testing/testing.tsx +68 -0
- package/src/types.ts +19 -17
- package/dist/lib/browser/SheetContainer-Y7ZMFBAP.mjs.map +0 -7
- package/dist/lib/browser/chunk-GNNVBNCX.mjs.map +0 -7
- package/dist/lib/browser/chunk-JRL5LGCE.mjs.map +0 -7
- package/dist/lib/browser/chunk-PGKZPKUD.mjs +0 -175
- package/dist/lib/browser/chunk-PGKZPKUD.mjs.map +0 -7
- package/dist/lib/browser/chunk-VBF7YENS.mjs +0 -8
- package/dist/lib/browser/chunk-VBF7YENS.mjs.map +0 -7
- package/dist/lib/browser/chunk-WUPTZUTX.mjs.map +0 -7
- package/dist/lib/browser/testing.mjs +0 -92
- package/dist/lib/browser/testing.mjs.map +0 -7
- package/dist/lib/node/SheetContainer-KEOKUKAQ.cjs.map +0 -7
- package/dist/lib/node/chunk-57PB2HPY.cjs +0 -40
- package/dist/lib/node/chunk-57PB2HPY.cjs.map +0 -7
- package/dist/lib/node/chunk-6LWBQAQZ.cjs +0 -202
- package/dist/lib/node/chunk-6LWBQAQZ.cjs.map +0 -7
- package/dist/lib/node/chunk-BJ6ZD7MN.cjs.map +0 -7
- package/dist/lib/node/chunk-VJU3NPUJ.cjs.map +0 -7
- package/dist/lib/node/chunk-ZRQZFV5T.cjs.map +0 -7
- package/dist/lib/node/testing.cjs +0 -111
- package/dist/lib/node/testing.cjs.map +0 -7
- package/dist/lib/node-esm/SheetContainer-Y7ZMFBAP.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GNNVBNCX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JRL5LGCE.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PGKZPKUD.mjs +0 -175
- package/dist/lib/node-esm/chunk-PGKZPKUD.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-VBF7YENS.mjs +0 -8
- package/dist/lib/node-esm/chunk-VBF7YENS.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-WUPTZUTX.mjs.map +0 -7
- package/dist/lib/node-esm/testing.mjs +0 -92
- package/dist/lib/node-esm/testing.mjs.map +0 -7
- package/dist/types/src/components/ComputeGraph/async-function.d.ts.map +0 -1
- package/dist/types/src/components/ComputeGraph/custom.d.ts +0 -21
- package/dist/types/src/components/ComputeGraph/custom.d.ts.map +0 -1
- package/dist/types/src/components/ComputeGraph/edge-function.d.ts +0 -20
- package/dist/types/src/components/ComputeGraph/edge-function.d.ts.map +0 -1
- package/dist/types/src/components/ComputeGraph/graph-context.d.ts +0 -12
- package/dist/types/src/components/ComputeGraph/graph-context.d.ts.map +0 -1
- package/dist/types/src/components/ComputeGraph/graph.browser.test.d.ts +0 -2
- package/dist/types/src/components/ComputeGraph/graph.browser.test.d.ts.map +0 -1
- package/dist/types/src/components/ComputeGraph/graph.d.ts +0 -26
- package/dist/types/src/components/ComputeGraph/graph.d.ts.map +0 -1
- package/dist/types/src/components/Sheet/formatting.d.ts +0 -14
- package/dist/types/src/components/Sheet/formatting.d.ts.map +0 -1
- package/dist/types/src/model/functions.d.ts.map +0 -1
- package/dist/types/src/model/model.browser.test.d.ts +0 -2
- package/dist/types/src/model/model.browser.test.d.ts.map +0 -1
- package/dist/types/src/model/model.d.ts.map +0 -1
- package/dist/types/src/model/types.d.ts.map +0 -1
- package/dist/types/src/model/types.test.d.ts.map +0 -1
- package/dist/types/src/model/util.d.ts.map +0 -1
- package/dist/types/src/testing.d.ts +0 -9
- package/dist/types/src/testing.d.ts.map +0 -1
- package/src/components/ComputeGraph/graph-context.tsx +0 -50
- package/src/components/ComputeGraph/graph.browser.test.ts +0 -49
- package/src/components/ComputeGraph/graph.ts +0 -62
- package/src/model/model.browser.test.ts +0 -99
- package/src/testing.ts +0 -50
- /package/dist/types/src/{model → defs}/types.test.d.ts +0 -0
- /package/src/{model/functions.ts → graph/functions/function-defs.ts} +0 -0
|
@@ -1,39 +1,41 @@
|
|
|
1
|
-
import {
|
|
2
|
-
SheetContainer
|
|
3
|
-
} from "./chunk-VBF7YENS.mjs";
|
|
4
1
|
import {
|
|
5
2
|
ComputeGraphContextProvider,
|
|
6
|
-
|
|
7
|
-
EdgeFunctionPluginTranslations
|
|
8
|
-
} from "./chunk-PGKZPKUD.mjs";
|
|
9
|
-
import {
|
|
10
|
-
CustomPlugin,
|
|
11
|
-
CustomPluginTranslations,
|
|
12
|
-
SheetModel,
|
|
3
|
+
SheetContainer,
|
|
13
4
|
compareIndexPositions,
|
|
14
|
-
|
|
15
|
-
|
|
5
|
+
createSheet,
|
|
6
|
+
useComputeGraph
|
|
7
|
+
} from "./chunk-ZL2V5UJR.mjs";
|
|
16
8
|
import {
|
|
17
9
|
SheetAction,
|
|
18
|
-
SheetType
|
|
19
|
-
|
|
20
|
-
} from "./chunk-WUPTZUTX.mjs";
|
|
10
|
+
SheetType
|
|
11
|
+
} from "./chunk-5ZMVZYGB.mjs";
|
|
21
12
|
import {
|
|
22
13
|
SHEET_PLUGIN,
|
|
23
14
|
meta_default
|
|
24
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-QILRZNE5.mjs";
|
|
16
|
+
import "./chunk-GSV5QNLD.mjs";
|
|
25
17
|
|
|
26
18
|
// packages/plugins/plugin-sheet/src/SheetPlugin.tsx
|
|
27
19
|
import { GridNine } from "@phosphor-icons/react";
|
|
28
20
|
import React from "react";
|
|
29
21
|
import { NavigationAction, parseIntentPlugin, resolvePlugin } from "@dxos/app-framework";
|
|
30
|
-
import {
|
|
22
|
+
import { invariant as invariant2 } from "@dxos/invariant";
|
|
31
23
|
import { parseClientPlugin } from "@dxos/plugin-client";
|
|
32
24
|
import { createExtension, isActionGroup } from "@dxos/plugin-graph";
|
|
33
25
|
import { FunctionType } from "@dxos/plugin-script/types";
|
|
34
26
|
import { SpaceAction } from "@dxos/plugin-space";
|
|
35
27
|
import { getSpace, isEchoObject } from "@dxos/react-client/echo";
|
|
36
28
|
|
|
29
|
+
// packages/plugins/plugin-sheet/src/extensions/compute.ts
|
|
30
|
+
import { syntaxTree } from "@codemirror/language";
|
|
31
|
+
import { RangeSetBuilder, StateEffect, StateField } from "@codemirror/state";
|
|
32
|
+
import { Decoration, EditorView, ViewPlugin, WidgetType } from "@codemirror/view";
|
|
33
|
+
import { debounce } from "@dxos/async";
|
|
34
|
+
import { invariant } from "@dxos/invariant";
|
|
35
|
+
import { documentId, singleValueFacet } from "@dxos/react-ui-editor/state";
|
|
36
|
+
var updateAllDecorations = StateEffect.define();
|
|
37
|
+
var computeGraphFacet = singleValueFacet();
|
|
38
|
+
|
|
37
39
|
// packages/plugins/plugin-sheet/src/translations.ts
|
|
38
40
|
var translations_default = [
|
|
39
41
|
{
|
|
@@ -58,56 +60,82 @@ var translations_default = [
|
|
|
58
60
|
];
|
|
59
61
|
|
|
60
62
|
// packages/plugins/plugin-sheet/src/SheetPlugin.tsx
|
|
63
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/SheetPlugin.tsx";
|
|
61
64
|
var SheetPlugin = () => {
|
|
62
|
-
let
|
|
63
|
-
const graphs = create({});
|
|
64
|
-
const setGraph = (key, graph) => {
|
|
65
|
-
graphs[key] = graph;
|
|
66
|
-
};
|
|
65
|
+
let computeGraphRegistry;
|
|
67
66
|
return {
|
|
68
67
|
meta: meta_default,
|
|
69
68
|
ready: async (plugins) => {
|
|
70
69
|
const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
invariant2(client, void 0, {
|
|
71
|
+
F: __dxlog_file,
|
|
72
|
+
L: 32,
|
|
73
|
+
S: void 0,
|
|
74
|
+
A: [
|
|
75
|
+
"client",
|
|
76
|
+
""
|
|
77
|
+
]
|
|
78
|
+
});
|
|
79
|
+
let remoteFunctionUrl;
|
|
74
80
|
if (client.config.values.runtime?.services?.edge?.url) {
|
|
75
81
|
const url = new URL("/functions", client.config.values.runtime?.services?.edge?.url);
|
|
76
82
|
url.protocol = "https";
|
|
77
83
|
remoteFunctionUrl = url.toString();
|
|
78
84
|
}
|
|
85
|
+
const { ComputeGraphRegistry } = await import("./graph-M4IQ76QX.mjs");
|
|
86
|
+
computeGraphRegistry = new ComputeGraphRegistry({
|
|
87
|
+
remoteFunctionUrl
|
|
88
|
+
});
|
|
79
89
|
},
|
|
80
90
|
provides: {
|
|
81
91
|
context: ({ children }) => {
|
|
92
|
+
invariant2(computeGraphRegistry, void 0, {
|
|
93
|
+
F: __dxlog_file,
|
|
94
|
+
L: 46,
|
|
95
|
+
S: void 0,
|
|
96
|
+
A: [
|
|
97
|
+
"computeGraphRegistry",
|
|
98
|
+
""
|
|
99
|
+
]
|
|
100
|
+
});
|
|
82
101
|
return /* @__PURE__ */ React.createElement(ComputeGraphContextProvider, {
|
|
83
|
-
|
|
84
|
-
setGraph
|
|
102
|
+
registry: computeGraphRegistry
|
|
85
103
|
}, children);
|
|
86
104
|
},
|
|
87
105
|
metadata: {
|
|
88
106
|
records: {
|
|
89
107
|
[SheetType.typename]: {
|
|
90
|
-
label: (object) => object instanceof SheetType ? object.
|
|
108
|
+
label: (object) => object instanceof SheetType ? object.name : void 0,
|
|
91
109
|
placeholder: [
|
|
92
110
|
"sheet title placeholder",
|
|
93
111
|
{
|
|
94
112
|
ns: SHEET_PLUGIN
|
|
95
113
|
}
|
|
96
114
|
],
|
|
97
|
-
icon:
|
|
98
|
-
iconSymbol: "ph--grid-nine--regular"
|
|
115
|
+
icon: "ph--grid-nine--regular"
|
|
99
116
|
}
|
|
100
117
|
}
|
|
101
118
|
},
|
|
102
119
|
translations: translations_default,
|
|
103
120
|
echo: {
|
|
104
121
|
// TODO(wittjosiah): Factor out to common package/plugin.
|
|
105
|
-
//
|
|
122
|
+
// FunctionType is currently registered here in case script plugin isn't enabled.
|
|
106
123
|
schema: [
|
|
107
124
|
SheetType,
|
|
108
125
|
FunctionType
|
|
109
126
|
]
|
|
110
127
|
},
|
|
128
|
+
space: {
|
|
129
|
+
onSpaceCreate: {
|
|
130
|
+
label: [
|
|
131
|
+
"create sheet label",
|
|
132
|
+
{
|
|
133
|
+
ns: SHEET_PLUGIN
|
|
134
|
+
}
|
|
135
|
+
],
|
|
136
|
+
action: SheetAction.CREATE
|
|
137
|
+
}
|
|
138
|
+
},
|
|
111
139
|
graph: {
|
|
112
140
|
builder: (plugins) => {
|
|
113
141
|
const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;
|
|
@@ -157,8 +185,7 @@ var SheetPlugin = () => {
|
|
|
157
185
|
ns: SHEET_PLUGIN
|
|
158
186
|
}
|
|
159
187
|
],
|
|
160
|
-
icon:
|
|
161
|
-
iconSymbol: "ph--grid-nine--regular",
|
|
188
|
+
icon: "ph--grid-nine--regular",
|
|
162
189
|
testId: "sheetPlugin.createObject"
|
|
163
190
|
}
|
|
164
191
|
}
|
|
@@ -167,6 +194,24 @@ var SheetPlugin = () => {
|
|
|
167
194
|
});
|
|
168
195
|
}
|
|
169
196
|
},
|
|
197
|
+
markdown: {
|
|
198
|
+
extensions: ({ document: doc }) => {
|
|
199
|
+
invariant2(computeGraphRegistry, void 0, {
|
|
200
|
+
F: __dxlog_file,
|
|
201
|
+
L: 114,
|
|
202
|
+
S: void 0,
|
|
203
|
+
A: [
|
|
204
|
+
"computeGraphRegistry",
|
|
205
|
+
""
|
|
206
|
+
]
|
|
207
|
+
});
|
|
208
|
+
const space = getSpace(doc);
|
|
209
|
+
if (space) {
|
|
210
|
+
const computeGraph = computeGraphRegistry.getOrCreateGraph(space);
|
|
211
|
+
return computeGraphFacet.of(computeGraph);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
},
|
|
170
215
|
stack: {
|
|
171
216
|
creators: [
|
|
172
217
|
{
|
|
@@ -194,20 +239,20 @@ var SheetPlugin = () => {
|
|
|
194
239
|
},
|
|
195
240
|
thread: {
|
|
196
241
|
predicate: (data) => data instanceof SheetType,
|
|
197
|
-
createSort: (sheet) => (
|
|
242
|
+
createSort: (sheet) => (indexA, indexB) => !indexA || !indexB ? 0 : compareIndexPositions(sheet, indexA, indexB)
|
|
198
243
|
},
|
|
199
244
|
surface: {
|
|
200
|
-
component: ({ data, role
|
|
201
|
-
const space = isEchoObject(data.object)
|
|
202
|
-
|
|
245
|
+
component: ({ data, role }) => {
|
|
246
|
+
const space = isEchoObject(data.object) ? getSpace(data.object) : void 0;
|
|
247
|
+
const graph = useComputeGraph(space);
|
|
248
|
+
if (graph && data.object instanceof SheetType) {
|
|
203
249
|
switch (role) {
|
|
204
250
|
case "article":
|
|
205
251
|
case "section": {
|
|
206
252
|
return /* @__PURE__ */ React.createElement(SheetContainer, {
|
|
253
|
+
graph,
|
|
207
254
|
sheet: data.object,
|
|
208
|
-
|
|
209
|
-
role,
|
|
210
|
-
remoteFunctionUrl
|
|
255
|
+
role
|
|
211
256
|
});
|
|
212
257
|
}
|
|
213
258
|
}
|
|
@@ -219,26 +264,8 @@ var SheetPlugin = () => {
|
|
|
219
264
|
resolver: async (intent) => {
|
|
220
265
|
switch (intent.action) {
|
|
221
266
|
case SheetAction.CREATE: {
|
|
222
|
-
const space = intent.data?.space;
|
|
223
|
-
const sheet = createSheet();
|
|
224
|
-
const graph = graphs[space.id] ?? createComputeGraph([
|
|
225
|
-
{
|
|
226
|
-
plugin: EdgeFunctionPlugin,
|
|
227
|
-
translations: EdgeFunctionPluginTranslations
|
|
228
|
-
},
|
|
229
|
-
// TODO(wittjosiah): Remove. Needed for current test sheet generated data.
|
|
230
|
-
{
|
|
231
|
-
plugin: CustomPlugin,
|
|
232
|
-
translations: CustomPluginTranslations
|
|
233
|
-
}
|
|
234
|
-
], space, {
|
|
235
|
-
remoteFunctionUrl
|
|
236
|
-
});
|
|
237
|
-
const model = new SheetModel(graph, sheet);
|
|
238
|
-
await model.initialize();
|
|
239
|
-
await model.destroy();
|
|
240
267
|
return {
|
|
241
|
-
data:
|
|
268
|
+
data: createSheet()
|
|
242
269
|
};
|
|
243
270
|
}
|
|
244
271
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/SheetPlugin.tsx", "../../../src/translations.ts", "../../../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type IconProps, GridNine } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { NavigationAction, parseIntentPlugin, resolvePlugin, type PluginDefinition } from '@dxos/app-framework';\nimport { create } from '@dxos/echo-schema';\nimport { parseClientPlugin } from '@dxos/plugin-client';\nimport { type ActionGroup, createExtension, isActionGroup } from '@dxos/plugin-graph';\nimport { FunctionType } from '@dxos/plugin-script/types';\nimport { SpaceAction } from '@dxos/plugin-space';\nimport { getSpace, isEchoObject } from '@dxos/react-client/echo';\n\nimport {\n createComputeGraph,\n CustomPlugin,\n CustomPluginTranslations,\n SheetContainer,\n type ComputeGraph,\n} from './components';\n// TODO(wittjosiah): Refactor. These are not exported from ./components due to depending on ECHO.\nimport { EdgeFunctionPlugin, EdgeFunctionPluginTranslations } from './components/ComputeGraph/edge-function';\nimport { ComputeGraphContextProvider } from './components/ComputeGraph/graph-context';\nimport meta, { SHEET_PLUGIN } from './meta';\nimport { compareIndexPositions, SheetModel } from './model';\nimport translations from './translations';\nimport { createSheet, SheetAction, type SheetPluginProvides, SheetType } from './types';\n\nexport const SheetPlugin = (): PluginDefinition<SheetPluginProvides> => {\n let remoteFunctionUrl: string | undefined;\n\n const graphs = create<Record<string, ComputeGraph>>({});\n const setGraph = (key: string, graph: ComputeGraph) => {\n graphs[key] = graph;\n };\n\n return {\n meta,\n ready: async (plugins) => {\n const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;\n if (!client) {\n return;\n }\n\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 provides: {\n context: ({ children }) => {\n return (\n <ComputeGraphContextProvider graphs={graphs} setGraph={setGraph}>\n {children}\n </ComputeGraphContextProvider>\n );\n },\n metadata: {\n records: {\n [SheetType.typename]: {\n label: (object: any) => (object instanceof SheetType ? object.title : undefined),\n placeholder: ['sheet title placeholder', { ns: SHEET_PLUGIN }],\n icon: (props: IconProps) => <GridNine {...props} />,\n iconSymbol: 'ph--grid-nine--regular',\n },\n },\n },\n translations,\n echo: {\n // TODO(wittjosiah): Factor out to common package/plugin.\n // FunctionType is currently registered here in case script plugin isn't enabled.\n schema: [SheetType, FunctionType],\n },\n graph: {\n builder: (plugins) => {\n const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;\n const dispatch = resolvePlugin(plugins, parseIntentPlugin)?.provides.intent.dispatch;\n if (!client || !dispatch) {\n return [];\n }\n\n return createExtension({\n id: SheetAction.CREATE,\n filter: (node): node is ActionGroup => isActionGroup(node) && node.id.startsWith(SpaceAction.ADD_OBJECT),\n actions: ({ node }) => {\n const id = node.id.split('/').at(-1);\n const [spaceId, objectId] = id?.split(':') ?? [];\n const space = client.spaces.get().find((space) => space.id === spaceId);\n const object = objectId && space?.db.getObjectById(objectId);\n const target = objectId ? object : space;\n if (!target) {\n return;\n }\n\n return [\n {\n id: `${SHEET_PLUGIN}/create/${node.id}`,\n data: async () => {\n await dispatch([\n { plugin: SHEET_PLUGIN, action: SheetAction.CREATE, data: { space } },\n { action: SpaceAction.ADD_OBJECT, data: { target } },\n { action: NavigationAction.OPEN },\n ]);\n },\n properties: {\n label: ['create sheet label', { ns: SHEET_PLUGIN }],\n icon: (props: IconProps) => <GridNine {...props} />,\n iconSymbol: 'ph--grid-nine--regular',\n testId: 'sheetPlugin.createObject',\n },\n },\n ];\n },\n });\n },\n },\n stack: {\n creators: [\n {\n id: 'create-stack-section-sheet',\n testId: 'sheetPlugin.createSection',\n type: ['plugin name', { ns: SHEET_PLUGIN }],\n label: ['create sheet section label', { ns: SHEET_PLUGIN }],\n icon: (props: any) => <GridNine {...props} />,\n intent: {\n plugin: SHEET_PLUGIN,\n action: SheetAction.CREATE,\n },\n },\n ],\n },\n thread: {\n predicate: (data) => data instanceof SheetType,\n createSort: (sheet) => (anchorA, anchorB) =>\n !anchorA || !anchorB ? 0 : compareIndexPositions(sheet, anchorA, anchorB),\n },\n surface: {\n component: ({ data, role = 'never' }) => {\n // TODO(burdon): Standardize wrapper (with room for toolbar).\n const space = isEchoObject(data.object) && getSpace(data.object);\n if (space && data.object instanceof SheetType) {\n switch (role) {\n case 'article':\n case 'section': {\n return (\n <SheetContainer sheet={data.object} space={space} role={role} remoteFunctionUrl={remoteFunctionUrl} />\n );\n }\n }\n }\n\n return null;\n },\n },\n intent: {\n resolver: async (intent) => {\n switch (intent.action) {\n case SheetAction.CREATE: {\n const space = intent.data?.space;\n const sheet = createSheet();\n const graph =\n graphs[space.id] ??\n createComputeGraph(\n [\n { plugin: EdgeFunctionPlugin, translations: EdgeFunctionPluginTranslations },\n // TODO(wittjosiah): Remove. Needed for current test sheet generated data.\n { plugin: CustomPlugin, translations: CustomPluginTranslations },\n ],\n space,\n { remoteFunctionUrl },\n );\n const model = new SheetModel(graph, sheet);\n await model.initialize();\n await model.destroy();\n return { data: sheet };\n }\n }\n },\n },\n },\n };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { SHEET_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [SHEET_PLUGIN]: {\n 'plugin name': 'Sheets',\n 'sheet title placeholder': 'New sheet',\n 'create sheet label': 'Create sheet',\n 'create sheet section label': 'Create sheet',\n 'cell placeholder': 'Cell value...',\n 'toolbar left label': 'Align left',\n 'toolbar left center': 'Align center',\n 'toolbar left right': 'Align right',\n 'selection overlaps existing comment label': 'Selected cell already has a comment',\n 'comment label': 'Add comment',\n 'comment ranges not supported label': 'Commenting on ranges is not yet supported',\n 'no cursor label': 'Select a cell to comment',\n 'open comment for sheet cell': 'View comments for cell',\n },\n },\n },\n] as const;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { SheetPlugin } from './SheetPlugin';\n\nexport default SheetPlugin;\n\nexport * from './SheetPlugin';\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["GridNine", "React", "NavigationAction", "parseIntentPlugin", "resolvePlugin", "
|
|
3
|
+
"sources": ["../../../src/SheetPlugin.tsx", "../../../src/extensions/compute.ts", "../../../src/translations.ts", "../../../src/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { GridNine } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { NavigationAction, parseIntentPlugin, resolvePlugin, type PluginDefinition } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { parseClientPlugin } from '@dxos/plugin-client';\nimport { createExtension, isActionGroup, type ActionGroup } from '@dxos/plugin-graph';\nimport { FunctionType } from '@dxos/plugin-script/types';\nimport { SpaceAction } from '@dxos/plugin-space';\nimport { getSpace, isEchoObject } from '@dxos/react-client/echo';\n\nimport { ComputeGraphContextProvider, SheetContainer } from './components';\nimport { compareIndexPositions, createSheet } from './defs';\nimport { computeGraphFacet } from './extensions';\nimport { type ComputeGraphRegistry } from './graph';\nimport { useComputeGraph } from './hooks';\nimport meta, { SHEET_PLUGIN } from './meta';\nimport translations from './translations';\nimport { SheetAction, SheetType, type SheetPluginProvides } from './types';\n\nexport const SheetPlugin = (): PluginDefinition<SheetPluginProvides> => {\n let computeGraphRegistry: ComputeGraphRegistry | undefined;\n\n return {\n meta,\n ready: async (plugins) => {\n const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;\n invariant(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 // Async import removes direct dependency on hyperformula.\n const { ComputeGraphRegistry } = await import('./graph');\n computeGraphRegistry = new ComputeGraphRegistry({ remoteFunctionUrl });\n },\n provides: {\n context: ({ children }) => {\n invariant(computeGraphRegistry);\n return <ComputeGraphContextProvider registry={computeGraphRegistry}>{children}</ComputeGraphContextProvider>;\n },\n metadata: {\n records: {\n [SheetType.typename]: {\n label: (object: any) => (object instanceof SheetType ? object.name : undefined),\n placeholder: ['sheet title placeholder', { ns: SHEET_PLUGIN }],\n icon: 'ph--grid-nine--regular',\n },\n },\n },\n translations,\n echo: {\n // TODO(wittjosiah): Factor out to common package/plugin.\n // FunctionType is currently registered here in case script plugin isn't enabled.\n schema: [SheetType, FunctionType],\n },\n space: {\n onSpaceCreate: {\n label: ['create sheet label', { ns: SHEET_PLUGIN }],\n action: SheetAction.CREATE,\n },\n },\n graph: {\n builder: (plugins) => {\n const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;\n const dispatch = resolvePlugin(plugins, parseIntentPlugin)?.provides.intent.dispatch;\n if (!client || !dispatch) {\n return [];\n }\n\n return createExtension({\n id: SheetAction.CREATE,\n filter: (node): node is ActionGroup => isActionGroup(node) && node.id.startsWith(SpaceAction.ADD_OBJECT),\n actions: ({ node }) => {\n const id = node.id.split('/').at(-1);\n const [spaceId, objectId] = id?.split(':') ?? [];\n const space = client.spaces.get().find((space) => space.id === spaceId);\n const object = objectId && space?.db.getObjectById(objectId);\n const target = objectId ? object : space;\n if (!target) {\n return;\n }\n\n return [\n {\n id: `${SHEET_PLUGIN}/create/${node.id}`,\n data: async () => {\n await dispatch([\n { plugin: SHEET_PLUGIN, action: SheetAction.CREATE, data: { space } },\n { action: SpaceAction.ADD_OBJECT, data: { target } },\n { action: NavigationAction.OPEN },\n ]);\n },\n properties: {\n label: ['create sheet label', { ns: SHEET_PLUGIN }],\n icon: 'ph--grid-nine--regular',\n testId: 'sheetPlugin.createObject',\n },\n },\n ];\n },\n });\n },\n },\n markdown: {\n extensions: ({ document: doc }) => {\n invariant(computeGraphRegistry);\n const space = getSpace(doc);\n if (space) {\n const computeGraph = computeGraphRegistry.getOrCreateGraph(space);\n return computeGraphFacet.of(computeGraph);\n }\n },\n },\n stack: {\n creators: [\n {\n id: 'create-stack-section-sheet',\n testId: 'sheetPlugin.createSection',\n type: ['plugin name', { ns: SHEET_PLUGIN }],\n label: ['create sheet section label', { ns: SHEET_PLUGIN }],\n icon: (props: any) => <GridNine {...props} />,\n intent: {\n plugin: SHEET_PLUGIN,\n action: SheetAction.CREATE,\n },\n },\n ],\n },\n thread: {\n predicate: (data) => data instanceof SheetType,\n createSort: (sheet) => (indexA, indexB) =>\n !indexA || !indexB ? 0 : compareIndexPositions(sheet, indexA, indexB),\n },\n surface: {\n component: ({ data, role }) => {\n const space = isEchoObject(data.object) ? getSpace(data.object) : undefined;\n const graph = useComputeGraph(space);\n if (graph && data.object instanceof SheetType) {\n switch (role) {\n case 'article':\n case 'section': {\n return <SheetContainer graph={graph} sheet={data.object} role={role} />;\n }\n }\n }\n\n return null;\n },\n },\n intent: {\n resolver: async (intent) => {\n switch (intent.action) {\n case SheetAction.CREATE: {\n return { data: createSheet() };\n }\n }\n },\n },\n },\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { syntaxTree } from '@codemirror/language';\nimport {\n type EditorState,\n type Extension,\n type RangeSet,\n RangeSetBuilder,\n StateEffect,\n StateField,\n type Transaction,\n} from '@codemirror/state';\nimport { Decoration, EditorView, ViewPlugin, WidgetType } from '@codemirror/view';\n\nimport { type UnsubscribeCallback, debounce } from '@dxos/async';\nimport { invariant } from '@dxos/invariant';\nimport { documentId, singleValueFacet } from '@dxos/react-ui-editor/state';\n\nimport { type CellAddress } from '../defs';\nimport { type ComputeGraph, type ComputeNode, createSheetName } from '../graph';\nimport { type CellScalarValue } from '../types';\n\nconst LANGUAGE_TAG = 'dx';\n\n// TODO(burdon): Create marker just for our decorator?\nconst updateAllDecorations = StateEffect.define<void>();\n\nexport const computeGraphFacet = singleValueFacet<ComputeGraph>();\n\nexport type ComputeOptions = {};\n\nexport const compute = (options: ComputeOptions = {}): Extension => {\n let computeNode: ComputeNode | undefined;\n\n const update = (state: EditorState, current?: RangeSet<Decoration>) => {\n const builder = new RangeSetBuilder<Decoration>();\n if (computeNode) {\n computeNode.clear();\n syntaxTree(state).iterate({\n enter: (node) => {\n switch (node.name) {\n case 'FencedCode': {\n const cursor = state.selection.main.head;\n if (state.readOnly || cursor < node.from || cursor > node.to) {\n const info = node.node.getChild('CodeInfo');\n if (info) {\n const type = state.sliceDoc(info.from, info.to);\n const text = node.node.getChild('CodeText');\n if (type === LANGUAGE_TAG && text) {\n const formula = state.sliceDoc(text.from, text.to);\n\n const iter = current?.iter(node.node.from);\n if (iter?.value && iter?.value.spec.formula === formula) {\n // Add existing widget.\n builder.add(node.from, node.to, iter.value);\n } else {\n // TODO(burdon): Create ordered list of cells on each decoration run.\n const cell: CellAddress = { col: node.node.from, row: 0 };\n invariant(computeNode);\n // NOTE: This triggers re-render (below).\n computeNode.setValue(cell, formula);\n const value = computeNode.getValue(cell);\n builder.add(\n node.from,\n node.to,\n Decoration.replace({\n widget: new ComputeWidget(formula, value),\n formula,\n }),\n );\n }\n }\n }\n }\n\n break;\n }\n }\n },\n });\n }\n\n return builder.finish();\n };\n\n return [\n ViewPlugin.fromClass(\n class {\n // Graph subscription.\n private _subscription?: UnsubscribeCallback;\n constructor(view: EditorView) {\n const id = view.state.facet(documentId);\n const computeGraph = view.state.facet(computeGraphFacet);\n if (id && computeGraph) {\n queueMicrotask(async () => {\n computeNode = computeGraph.getOrCreateNode(createSheetName({ type: '', id }));\n await computeNode.open();\n\n // Trigger re-render if values updated.\n // TODO(burdon): Trigger only if formula value updated (currently triggered during render).\n this._subscription = computeNode.update.on(\n debounce(({ type, ...rest }) => {\n if (type === 'valuesUpdated') {\n view.dispatch({\n effects: updateAllDecorations.of(),\n });\n }\n }, 250),\n );\n });\n }\n }\n\n destroy() {\n this._subscription?.();\n void computeNode?.close();\n computeNode = undefined;\n }\n },\n ),\n\n StateField.define<RangeSet<Decoration>>({\n create: (state) => update(state),\n update: (rangeSet: RangeSet<Decoration>, tr: Transaction) => update(tr.state, rangeSet),\n provide: (field) => EditorView.decorations.from(field),\n }),\n ];\n};\n\n// TODO(burdon): Click to edit.\nclass ComputeWidget extends WidgetType {\n constructor(\n private readonly formula: string,\n private readonly value: CellScalarValue,\n ) {\n super();\n }\n\n override toDOM(_view: EditorView) {\n const div = document.createElement('div');\n div.setAttribute('title', this.formula);\n div.innerText = String(this.value);\n return div;\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { SHEET_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [SHEET_PLUGIN]: {\n 'plugin name': 'Sheets',\n 'sheet title placeholder': 'New sheet',\n 'create sheet label': 'Create sheet',\n 'create sheet section label': 'Create sheet',\n 'cell placeholder': 'Cell value...',\n 'toolbar left label': 'Align left',\n 'toolbar left center': 'Align center',\n 'toolbar left right': 'Align right',\n 'selection overlaps existing comment label': 'Selected cell already has a comment',\n 'comment label': 'Add comment',\n 'comment ranges not supported label': 'Commenting on ranges is not yet supported',\n 'no cursor label': 'Select a cell to comment',\n 'open comment for sheet cell': 'View comments for cell',\n },\n },\n },\n] as const;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { SheetPlugin } from './SheetPlugin';\n\nexport default SheetPlugin;\n\nexport * from './SheetPlugin';\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["GridNine", "React", "NavigationAction", "parseIntentPlugin", "resolvePlugin", "invariant", "parseClientPlugin", "createExtension", "isActionGroup", "FunctionType", "SpaceAction", "getSpace", "isEchoObject", "syntaxTree", "RangeSetBuilder", "StateEffect", "StateField", "Decoration", "EditorView", "ViewPlugin", "WidgetType", "debounce", "invariant", "documentId", "singleValueFacet", "updateAllDecorations", "StateEffect", "define", "computeGraphFacet", "singleValueFacet", "SHEET_PLUGIN", "SheetPlugin", "computeGraphRegistry", "meta", "ready", "plugins", "client", "resolvePlugin", "parseClientPlugin", "provides", "invariant", "remoteFunctionUrl", "config", "values", "runtime", "services", "edge", "url", "URL", "protocol", "toString", "ComputeGraphRegistry", "context", "children", "ComputeGraphContextProvider", "registry", "metadata", "records", "SheetType", "typename", "label", "object", "name", "undefined", "placeholder", "ns", "SHEET_PLUGIN", "icon", "translations", "echo", "schema", "FunctionType", "space", "onSpaceCreate", "action", "SheetAction", "CREATE", "graph", "builder", "dispatch", "parseIntentPlugin", "intent", "createExtension", "id", "filter", "node", "isActionGroup", "startsWith", "SpaceAction", "ADD_OBJECT", "actions", "split", "at", "spaceId", "objectId", "spaces", "get", "find", "db", "getObjectById", "target", "data", "plugin", "NavigationAction", "OPEN", "properties", "testId", "markdown", "extensions", "document", "doc", "getSpace", "computeGraph", "getOrCreateGraph", "computeGraphFacet", "of", "stack", "creators", "type", "props", "GridNine", "thread", "predicate", "createSort", "sheet", "indexA", "indexB", "compareIndexPositions", "surface", "component", "role", "isEchoObject", "useComputeGraph", "SheetContainer", "resolver", "createSheet", "SheetPlugin"]
|
|
7
7
|
}
|