@dxos/plugin-sheet 0.6.11 → 0.6.12-main.15a606f
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-V4GCCZTX.mjs +261 -0
- package/dist/lib/browser/SheetContainer-V4GCCZTX.mjs.map +7 -0
- package/dist/lib/browser/{chunk-D5AGLXJP.mjs → chunk-6ZMQVB4Z.mjs} +359 -671
- package/dist/lib/browser/chunk-6ZMQVB4Z.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/{chunk-FUAGSXA4.mjs → chunk-T3NJFTD4.mjs} +8 -15
- package/dist/lib/browser/chunk-T3NJFTD4.mjs.map +7 -0
- package/dist/lib/browser/{SheetContainer-U4H5D34A.mjs → chunk-U2JHW3L6.mjs} +1020 -240
- package/dist/lib/browser/chunk-U2JHW3L6.mjs.map +7 -0
- package/dist/lib/browser/graph-T27BOBOV.mjs +21 -0
- package/dist/lib/browser/graph-T27BOBOV.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +68 -56
- package/dist/lib/browser/index.mjs.map +3 -3
- 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-3ZY7MPWJ.cjs +279 -0
- package/dist/lib/node/SheetContainer-3ZY7MPWJ.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-5KKJ4NPP.cjs → chunk-DD6FIXWC.cjs} +360 -667
- package/dist/lib/node/chunk-DD6FIXWC.cjs.map +7 -0
- package/dist/lib/node/{SheetContainer-AXQV3ZT5.cjs → chunk-OTTD7FBK.cjs} +1050 -279
- package/dist/lib/node/chunk-OTTD7FBK.cjs.map +7 -0
- package/dist/lib/node/{chunk-DSYKOI4E.cjs → chunk-Q3HBHPRL.cjs} +12 -20
- package/dist/lib/node/chunk-Q3HBHPRL.cjs.map +7 -0
- package/dist/lib/node/graph-SPKGX7W4.cjs +43 -0
- package/dist/lib/node/graph-SPKGX7W4.cjs.map +7 -0
- package/dist/lib/node/index.cjs +83 -64
- package/dist/lib/node/index.cjs.map +3 -3
- 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-PXSJX6XK.mjs +262 -0
- package/dist/lib/node-esm/SheetContainer-PXSJX6XK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-7HVSOTGA.mjs +2553 -0
- package/dist/lib/node-esm/chunk-7HVSOTGA.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-BMNA27EX.mjs +76 -0
- package/dist/lib/node-esm/chunk-BMNA27EX.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-D6KU5MI7.mjs +2925 -0
- package/dist/lib/node-esm/chunk-D6KU5MI7.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-IU2L277A.mjs +17 -0
- package/dist/lib/node-esm/chunk-IU2L277A.mjs.map +7 -0
- package/dist/lib/node-esm/graph-U67IO4UC.mjs +22 -0
- package/dist/lib/node-esm/graph-U67IO4UC.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +261 -0
- package/dist/lib/node-esm/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -0
- package/dist/lib/node-esm/meta.mjs +10 -0
- package/dist/lib/node-esm/meta.mjs.map +7 -0
- package/dist/lib/node-esm/types.mjs +21 -0
- package/dist/lib/node-esm/types.mjs.map +7 -0
- 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 +6 -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/decorations.d.ts +24 -0
- package/dist/types/src/components/Sheet/decorations.d.ts.map +1 -0
- 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 -5
- package/dist/types/src/components/Sheet/sheet-context.d.ts.map +1 -1
- package/dist/types/src/components/Sheet/threads.d.ts +2 -0
- package/dist/types/src/components/Sheet/threads.d.ts.map +1 -0
- package/dist/types/src/components/SheetContainer.d.ts +2 -3
- package/dist/types/src/components/SheetContainer.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.d.ts +19 -3
- package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +18 -13
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -2
- 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/defs/util.d.ts +43 -0
- package/dist/types/src/defs/util.d.ts.map +1 -0
- package/dist/types/src/extensions/compute.d.ts +5 -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/{components/ComputeGraph → graph}/async-function.d.ts +1 -1
- package/dist/types/src/graph/async-function.d.ts.map +1 -0
- package/dist/types/src/graph/compute-graph.browser.test.d.ts +2 -0
- package/dist/types/src/graph/compute-graph.browser.test.d.ts.map +1 -0
- package/dist/types/src/graph/compute-graph.d.ts +81 -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-node.d.ts +19 -0
- package/dist/types/src/graph/compute-node.d.ts.map +1 -0
- package/dist/types/src/{components/ComputeGraph/custom.d.ts → graph/custom-function.d.ts} +1 -1
- package/dist/types/src/graph/custom-function.d.ts.map +1 -0
- package/dist/types/src/graph/edge-function.d.ts.map +1 -0
- package/dist/types/src/{model/functions.d.ts → graph/function-defs.d.ts} +1 -1
- package/dist/types/src/graph/function-defs.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 +4 -0
- package/dist/types/src/graph/index.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 -3
- package/dist/types/src/model/index.d.ts.map +1 -1
- package/dist/types/src/model/{model.d.ts → sheet-model.d.ts} +9 -64
- package/dist/types/src/model/sheet-model.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 +9 -0
- package/dist/types/src/testing/testing.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +17 -12
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +83 -3
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/vendor/hyperformula.mjs +37145 -0
- package/package.json +48 -41
- package/src/SheetPlugin.tsx +43 -70
- package/src/components/CellEditor/CellEditor.stories.tsx +4 -3
- package/src/components/CellEditor/CellEditor.tsx +59 -9
- package/src/components/CellEditor/extension.test.ts +4 -5
- package/src/components/CellEditor/extension.ts +1 -3
- package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +20 -0
- package/src/components/ComputeGraph/index.ts +1 -3
- package/src/components/GridSheet/GridSheet.stories.tsx +35 -0
- package/src/components/GridSheet/GridSheet.tsx +153 -0
- package/src/components/GridSheet/util.ts +89 -0
- package/src/components/Sheet/Sheet.stories.tsx +45 -82
- package/src/components/Sheet/Sheet.tsx +57 -18
- package/src/components/Sheet/decorations.ts +62 -0
- package/src/components/Sheet/grid.ts +3 -3
- package/src/components/Sheet/nav.ts +19 -19
- package/src/components/Sheet/sheet-context.tsx +16 -78
- package/src/components/Sheet/threads.tsx +205 -0
- package/src/components/SheetContainer.tsx +73 -19
- package/src/components/Toolbar/Toolbar.tsx +53 -12
- package/src/components/index.ts +1 -0
- package/src/defs/index.ts +6 -0
- package/src/{model → defs}/types.test.ts +8 -9
- package/src/{model → defs}/types.ts +23 -14
- package/src/defs/util.ts +135 -0
- package/src/extensions/compute.stories.tsx +151 -0
- package/src/extensions/compute.ts +98 -0
- package/src/extensions/index.ts +5 -0
- package/src/{components/ComputeGraph → graph}/async-function.ts +3 -1
- package/src/graph/compute-graph.browser.test.ts +104 -0
- package/src/graph/compute-graph.stories.tsx +92 -0
- package/src/graph/compute-graph.ts +290 -0
- package/src/graph/compute-node.ts +51 -0
- package/src/{components/ComputeGraph/custom.ts → graph/custom-function.ts} +2 -6
- package/src/{components/ComputeGraph → graph}/edge-function.ts +2 -1
- package/src/graph/hyperformula.test.ts +15 -0
- package/src/graph/index.ts +7 -0
- 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 +20 -0
- package/src/hooks/useFormattingModel.ts +11 -0
- package/src/hooks/useSheetModel.ts +43 -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 -3
- package/src/model/sheet-model.ts +399 -0
- package/src/sanity.test.ts +40 -0
- package/src/testing/index.ts +5 -0
- package/src/testing/testing.tsx +66 -0
- package/src/translations.ts +6 -1
- package/src/types.ts +30 -5
- package/dist/lib/browser/SheetContainer-U4H5D34A.mjs.map +0 -7
- package/dist/lib/browser/chunk-APHOLYUB.mjs +0 -175
- package/dist/lib/browser/chunk-APHOLYUB.mjs.map +0 -7
- package/dist/lib/browser/chunk-D5AGLXJP.mjs.map +0 -7
- package/dist/lib/browser/chunk-FUAGSXA4.mjs.map +0 -7
- package/dist/lib/browser/chunk-JRL5LGCE.mjs.map +0 -7
- package/dist/lib/browser/chunk-NU4PBN33.mjs +0 -8
- package/dist/lib/browser/chunk-NU4PBN33.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-AXQV3ZT5.cjs.map +0 -7
- package/dist/lib/node/chunk-5KKJ4NPP.cjs.map +0 -7
- package/dist/lib/node/chunk-BJ6ZD7MN.cjs.map +0 -7
- package/dist/lib/node/chunk-CN3RPESU.cjs +0 -202
- package/dist/lib/node/chunk-CN3RPESU.cjs.map +0 -7
- package/dist/lib/node/chunk-DSYKOI4E.cjs.map +0 -7
- package/dist/lib/node/chunk-PYXHNAAK.cjs +0 -40
- package/dist/lib/node/chunk-PYXHNAAK.cjs.map +0 -7
- package/dist/lib/node/testing.cjs +0 -111
- package/dist/lib/node/testing.cjs.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.map +0 -1
- 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 +0 -15
- 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 -50
- package/src/components/ComputeGraph/graph.ts +0 -62
- package/src/model/model.browser.test.ts +0 -100
- package/src/model/model.ts +0 -550
- package/src/model/util.ts +0 -36
- package/src/testing.ts +0 -50
- /package/dist/types/src/{model → defs}/types.test.d.ts +0 -0
- /package/dist/types/src/{components/ComputeGraph → graph}/edge-function.d.ts +0 -0
- /package/src/{model/functions.ts → graph/function-defs.ts} +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/ComputeGraph/edge-function.ts", "../../../src/components/ComputeGraph/graph-context.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { effect } from '@preact/signals-core';\nimport { CellError, ErrorType, FunctionArgumentType } from 'hyperformula';\nimport { type InterpreterState } from 'hyperformula/typings/interpreter/InterpreterState';\nimport { type ProcedureAst } from 'hyperformula/typings/parser';\n\nimport { Filter, getMeta } from '@dxos/client/echo';\nimport { log } from '@dxos/log';\nimport { getUserFunctionUrlInMetadata } from '@dxos/plugin-script/edge';\nimport { FunctionType } from '@dxos/plugin-script/types';\nimport { nonNullable } from '@dxos/util';\n\nimport { type AsyncFunction, FunctionPluginAsync } from './async-function';\n\nconst EDGE_FUNCTION_TTL = 10_000;\n\n/**\n * A hyperformula function plugin for calling EDGE functions.\n *\n * https://hyperformula.handsontable.com/guide/custom-functions.html#add-a-simple-custom-function\n */\nexport class EdgeFunctionPlugin extends FunctionPluginAsync {\n edge(ast: ProcedureAst, state: InterpreterState) {\n const handler =\n (subscribe = false): AsyncFunction =>\n async (binding: string, ...args: any) => {\n const space = this.context.space;\n if (!space) {\n return new CellError(ErrorType.REF, 'Missing space');\n }\n\n const {\n objects: [fn],\n } = await space.db.query(Filter.schema(FunctionType, { binding })).run();\n if (!fn) {\n log.info('Function not found', { binding });\n return new CellError(ErrorType.REF, 'Function not found');\n }\n\n if (subscribe) {\n const unsubscribe = effect(() => {\n log.info('function changed', { fn });\n const _ = fn?.version;\n\n // TODO(wittjosiah): `ttl` should be 0 to force a recalculation when a new version is deployed.\n // This needs a ttl to prevent a binding change from causing the function not to be found.\n this.runAsyncFunction(ast, state, handler(false), { ttl: EDGE_FUNCTION_TTL });\n });\n\n this.context.createSubscription(ast.procedureName, unsubscribe);\n }\n\n const path = getUserFunctionUrlInMetadata(getMeta(fn));\n const result = await fetch(`${this.context.remoteFunctionUrl}${path}`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ args: args.filter(nonNullable) }),\n });\n return await result.text();\n };\n\n return this.runAsyncFunction(ast, state, handler(true), { ttl: EDGE_FUNCTION_TTL });\n }\n}\n\nEdgeFunctionPlugin.implementedFunctions = {\n EDGE: {\n method: 'edge',\n parameters: [\n // Binding\n { argumentType: FunctionArgumentType.STRING },\n\n // Remote function arguments (currently supporting up to 9).\n { argumentType: FunctionArgumentType.ANY, optionalArg: true },\n { argumentType: FunctionArgumentType.ANY, optionalArg: true },\n { argumentType: FunctionArgumentType.ANY, optionalArg: true },\n { argumentType: FunctionArgumentType.ANY, optionalArg: true },\n { argumentType: FunctionArgumentType.ANY, optionalArg: true },\n { argumentType: FunctionArgumentType.ANY, optionalArg: true },\n { argumentType: FunctionArgumentType.ANY, optionalArg: true },\n { argumentType: FunctionArgumentType.ANY, optionalArg: true },\n { argumentType: FunctionArgumentType.ANY, optionalArg: true },\n ],\n isVolatile: true,\n },\n};\n\nexport const EdgeFunctionPluginTranslations = {\n enGB: {\n EDGE: 'EDGE',\n },\n enUS: {\n EDGE: 'EDGE',\n },\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { createContext, type PropsWithChildren, useContext, useEffect } from 'react';\n\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { type FunctionContextOptions } from './async-function';\nimport { CustomPlugin, CustomPluginTranslations } from './custom';\nimport { EdgeFunctionPlugin, EdgeFunctionPluginTranslations } from './edge-function';\nimport { createComputeGraph, type ComputeGraph } from './graph';\n\nexport type ComputeGraphContextType = {\n graphs: Record<string, ComputeGraph>;\n setGraph: (key: string, graph: ComputeGraph) => void;\n};\n\nexport const ComputeGraphContext = createContext<ComputeGraphContextType>({ graphs: {}, setGraph: () => {} });\n\nexport const ComputeGraphContextProvider = ({\n children,\n graphs,\n setGraph,\n}: PropsWithChildren<ComputeGraphContextType>) => {\n return <ComputeGraphContext.Provider value={{ graphs, setGraph }}>{children}</ComputeGraphContext.Provider>;\n};\n\nexport const useComputeGraph = (space: Space, options?: Partial<FunctionContextOptions>): ComputeGraph => {\n const { graphs, setGraph } = useContext(ComputeGraphContext);\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 options,\n );\n\n useEffect(() => {\n if (!graphs[space.id]) {\n setGraph(space.id, graph);\n }\n }, [space]);\n\n return graph;\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["EDGE_FUNCTION_TTL", "EdgeFunctionPlugin", "FunctionPluginAsync", "edge", "ast", "state", "handler", "subscribe", "binding", "args", "space", "context", "CellError", "ErrorType", "REF", "objects", "fn", "db", "query", "Filter", "schema", "FunctionType", "run", "log", "info", "unsubscribe", "effect", "_", "version", "runAsyncFunction", "ttl", "createSubscription", "procedureName", "path", "getUserFunctionUrlInMetadata", "getMeta", "result", "fetch", "remoteFunctionUrl", "method", "headers", "body", "JSON", "stringify", "filter", "nonNullable", "text", "implementedFunctions", "EDGE", "parameters", "argumentType", "FunctionArgumentType", "STRING", "ANY", "optionalArg", "isVolatile", "EdgeFunctionPluginTranslations", "enGB", "enUS", "ComputeGraphContext", "createContext", "graphs", "setGraph", "ComputeGraphContextProvider", "children", "React", "Provider", "value", "useComputeGraph", "options", "useContext", "graph", "id", "createComputeGraph", "plugin", "translations", "CustomPlugin", "CustomPluginTranslations", "useEffect"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport type {\n GraphBuilderProvides,\n IntentResolverProvides,\n MetadataRecordsProvides,\n SurfaceProvides,\n TranslationsProvides,\n} from '@dxos/app-framework';\nimport { create, S, TypedObject } from '@dxos/echo-schema';\nimport { type SchemaProvides } from '@dxos/plugin-client';\nimport { type StackProvides } from '@dxos/plugin-stack';\n\nimport { SHEET_PLUGIN } from './meta';\n\nconst SHEET_ACTION = `${SHEET_PLUGIN}/action`;\n\nexport enum SheetAction {\n CREATE = `${SHEET_ACTION}/create`,\n}\n\nexport type SheetPluginProvides = SurfaceProvides &\n IntentResolverProvides &\n GraphBuilderProvides &\n MetadataRecordsProvides &\n TranslationsProvides &\n SchemaProvides &\n StackProvides;\n\nexport type CellScalarValue = number | string | boolean | null;\n\nexport const CellValue = S.Struct({\n // TODO(burdon): How to store dates (datetime, date, time), percentages, etc.\n // Consider import/export; natural access for other plugins. Special handling for currency (precision).\n // TODO(burdon): Automerge (long string) or short string or number.\n // TODO(burdon): Arrays?\n value: S.Any,\n});\n\nexport type CellValue = S.Schema.Type<typeof CellValue>;\n\n/**\n * https://www.tutorialsteacher.com/typescript/typescript-number\n */\n// TODO(burdon): Format vs. value.\nexport enum ValueTypeEnum {\n Null = 0,\n Number = 1,\n Boolean = 2,\n String = 3,\n\n // Special numbers.\n Percent = 10,\n Currency = 11,\n\n // Dates.\n DateTime = 20,\n Date = 21,\n Time = 22,\n\n // Validated string types.\n // TODO(burdon): Define effect types.\n URL = 30,\n DID = 31,\n}\n\nexport const ValueType = S.Enums(ValueTypeEnum);\n\nexport const Formatting = S.Struct({\n type: S.optional(ValueType),\n format: S.optional(S.String),\n precision: S.optional(S.Number),\n classNames: S.optional(S.Array(S.String)),\n});\n\nexport type Formatting = S.Schema.Type<typeof Formatting>;\n\n// TODO(burdon): Visibility, locked, frozen, etc.\nexport const RowColumnMeta = S.Struct({\n size: S.optional(S.Number),\n});\n\n// TODO(burdon): Index to all updates when rows/columns are inserted/deleted.\n// TODO(wittjosiah): Migrate typename to remove `Type` suffix.\n// TODO(wittjosiah): Rename title to name to align with other schemas.\nexport class SheetType extends TypedObject({ typename: 'dxos.org/type/SheetType', version: '0.1.0' })({\n title: S.optional(S.String),\n\n // Sparse map of cells referenced by index.\n cells: S.mutable(S.Record(S.String, S.mutable(CellValue))),\n\n // Ordered row indices.\n rows: S.mutable(S.Array(S.String)),\n\n // Ordered column indices.\n columns: S.mutable(S.Array(S.String)),\n\n // Row metadata referenced by index.\n rowMeta: S.mutable(S.Record(S.String, S.mutable(RowColumnMeta))),\n\n // Column metadata referenced by index.\n columnMeta: S.mutable(S.Record(S.String, S.mutable(RowColumnMeta))),\n\n // Cell formatting referenced by indexed range.\n formatting: S.mutable(S.Record(S.String, S.mutable(Formatting))),\n}) {}\n\n// TODO(burdon): Fix defaults.\nexport const createSheet = (title?: string): SheetType =>\n create(SheetType, { title, cells: {}, rows: [], columns: [], rowMeta: {}, columnMeta: {}, formatting: {} });\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,yBAAuC;AAMvC,IAAMA,eAAe,GAAGC,kCAAAA;;UAEZC,cAAAA;wCACD,GAAGF,YAAAA,SAAqB,IAAA;GADvBE,gBAAAA,cAAAA,CAAAA,EAAAA;AAcL,IAAMC,YAAYC,qBAAEC,OAAO;;;;;EAKhCC,OAAOF,qBAAEG;AACX,CAAA;;UAQYC,gBAAAA;;;;;;;;;;;;GAAAA,kBAAAA,gBAAAA,CAAAA,EAAAA;AAqBL,IAAMC,YAAYL,qBAAEM,MAAMF,aAAAA;AAE1B,IAAMG,aAAaP,qBAAEC,OAAO;EACjCO,MAAMR,qBAAES,SAASJ,SAAAA;EACjBK,QAAQV,qBAAES,SAAST,qBAAEW,MAAM;EAC3BC,WAAWZ,qBAAES,SAAST,qBAAEa,MAAM;EAC9BC,YAAYd,qBAAES,SAAST,qBAAEe,MAAMf,qBAAEW,MAAM,CAAA;AACzC,CAAA;AAKO,IAAMK,gBAAgBhB,qBAAEC,OAAO;EACpCgB,MAAMjB,qBAAES,SAAST,qBAAEa,MAAM;AAC3B,CAAA;AAKO,IAAMK,YAAN,kBAAwBC,gCAAY;EAAEC,UAAU;EAA2BC,SAAS;AAAQ,CAAA,EAAG;EACpGC,OAAOtB,qBAAES,SAAST,qBAAEW,MAAM;;EAG1BY,OAAOvB,qBAAEwB,QAAQxB,qBAAEyB,OAAOzB,qBAAEW,QAAQX,qBAAEwB,QAAQzB,SAAAA,CAAAA,CAAAA;;EAG9C2B,MAAM1B,qBAAEwB,QAAQxB,qBAAEe,MAAMf,qBAAEW,MAAM,CAAA;;EAGhCgB,SAAS3B,qBAAEwB,QAAQxB,qBAAEe,MAAMf,qBAAEW,MAAM,CAAA;;EAGnCiB,SAAS5B,qBAAEwB,QAAQxB,qBAAEyB,OAAOzB,qBAAEW,QAAQX,qBAAEwB,QAAQR,aAAAA,CAAAA,CAAAA;;EAGhDa,YAAY7B,qBAAEwB,QAAQxB,qBAAEyB,OAAOzB,qBAAEW,QAAQX,qBAAEwB,QAAQR,aAAAA,CAAAA,CAAAA;;EAGnDc,YAAY9B,qBAAEwB,QAAQxB,qBAAEyB,OAAOzB,qBAAEW,QAAQX,qBAAEwB,QAAQjB,UAAAA,CAAAA,CAAAA;AACrD,CAAA,EAAA;AAAI;AAGG,IAAMwB,cAAc,CAACT,cAC1BU,2BAAOd,WAAW;EAAEI;EAAOC,OAAO,CAAC;EAAGG,MAAM,CAAA;EAAIC,SAAS,CAAA;EAAIC,SAAS,CAAC;EAAGC,YAAY,CAAC;EAAGC,YAAY,CAAC;AAAE,CAAA;",
|
|
6
|
-
"names": ["SHEET_ACTION", "SHEET_PLUGIN", "SheetAction", "CellValue", "S", "Struct", "value", "Any", "ValueTypeEnum", "ValueType", "Enums", "Formatting", "type", "optional", "format", "String", "precision", "Number", "classNames", "Array", "RowColumnMeta", "size", "SheetType", "TypedObject", "typename", "version", "title", "cells", "mutable", "Record", "rows", "columns", "rowMeta", "columnMeta", "formatting", "createSheet", "create"]
|
|
7
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var chunk_PYXHNAAK_exports = {};
|
|
30
|
-
__export(chunk_PYXHNAAK_exports, {
|
|
31
|
-
SheetContainer: () => SheetContainer
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(chunk_PYXHNAAK_exports);
|
|
34
|
-
var import_react = __toESM(require("react"));
|
|
35
|
-
var SheetContainer = import_react.default.lazy(() => import("./SheetContainer-AXQV3ZT5.cjs"));
|
|
36
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
37
|
-
0 && (module.exports = {
|
|
38
|
-
SheetContainer
|
|
39
|
-
});
|
|
40
|
-
//# sourceMappingURL=chunk-PYXHNAAK.cjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nexport * from './ComputeGraph';\n\n// Lazily load components for content surfaces.\nexport const SheetContainer = React.lazy(() => import('./SheetContainer'));\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAkB;AAKX,IAAMA,iBAAiBC,aAAAA,QAAMC,KAAK,MAAM,OAAO,+BAAA,CAAA;",
|
|
6
|
-
"names": ["SheetContainer", "React", "lazy"]
|
|
7
|
-
}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var testing_exports = {};
|
|
20
|
-
__export(testing_exports, {
|
|
21
|
-
createCells: () => createCells,
|
|
22
|
-
createTestSheet: () => createTestSheet,
|
|
23
|
-
testSheetName: () => testSheetName
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(testing_exports);
|
|
26
|
-
var import_chunk_PYXHNAAK = require("./chunk-PYXHNAAK.cjs");
|
|
27
|
-
var import_chunk_5KKJ4NPP = require("./chunk-5KKJ4NPP.cjs");
|
|
28
|
-
var import_chunk_DSYKOI4E = require("./chunk-DSYKOI4E.cjs");
|
|
29
|
-
var import_chunk_BJ6ZD7MN = require("./chunk-BJ6ZD7MN.cjs");
|
|
30
|
-
var testSheetName = "test";
|
|
31
|
-
var createCells = () => ({
|
|
32
|
-
B1: {
|
|
33
|
-
value: "Qty"
|
|
34
|
-
},
|
|
35
|
-
B3: {
|
|
36
|
-
value: 1
|
|
37
|
-
},
|
|
38
|
-
B4: {
|
|
39
|
-
value: 2
|
|
40
|
-
},
|
|
41
|
-
B5: {
|
|
42
|
-
value: 3
|
|
43
|
-
},
|
|
44
|
-
B7: {
|
|
45
|
-
value: "Total"
|
|
46
|
-
},
|
|
47
|
-
C1: {
|
|
48
|
-
value: "Price"
|
|
49
|
-
},
|
|
50
|
-
C3: {
|
|
51
|
-
value: 2e3
|
|
52
|
-
},
|
|
53
|
-
C4: {
|
|
54
|
-
value: 2500
|
|
55
|
-
},
|
|
56
|
-
C5: {
|
|
57
|
-
value: 3e3
|
|
58
|
-
},
|
|
59
|
-
C7: {
|
|
60
|
-
value: "=SUMPRODUCT(B2:B6, C2:C6)"
|
|
61
|
-
},
|
|
62
|
-
// C8: { value: '=C7*CRYPTO(D7)' },
|
|
63
|
-
C8: {
|
|
64
|
-
value: "=C7*TEST()"
|
|
65
|
-
},
|
|
66
|
-
D7: {
|
|
67
|
-
value: "USD"
|
|
68
|
-
},
|
|
69
|
-
D8: {
|
|
70
|
-
value: "BTC"
|
|
71
|
-
},
|
|
72
|
-
E3: {
|
|
73
|
-
value: "=TODAY()"
|
|
74
|
-
},
|
|
75
|
-
E4: {
|
|
76
|
-
value: "=NOW()"
|
|
77
|
-
},
|
|
78
|
-
F1: {
|
|
79
|
-
value: `=${testSheetName}!A1`
|
|
80
|
-
},
|
|
81
|
-
F3: {
|
|
82
|
-
value: true
|
|
83
|
-
},
|
|
84
|
-
F4: {
|
|
85
|
-
value: false
|
|
86
|
-
},
|
|
87
|
-
F5: {
|
|
88
|
-
value: "8%"
|
|
89
|
-
},
|
|
90
|
-
F6: {
|
|
91
|
-
value: "$10000"
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
var createTestSheet = async ({ name, graph = (0, import_chunk_5KKJ4NPP.createComputeGraph)() } = {}) => {
|
|
95
|
-
const sheet = (0, import_chunk_DSYKOI4E.createSheet)(name);
|
|
96
|
-
const model = new import_chunk_5KKJ4NPP.SheetModel(graph, sheet);
|
|
97
|
-
await model.initialize();
|
|
98
|
-
model.setValues(createCells());
|
|
99
|
-
model.sheet.columnMeta[model.sheet.columns[0]] = {
|
|
100
|
-
size: 100
|
|
101
|
-
};
|
|
102
|
-
await model.destroy();
|
|
103
|
-
return sheet;
|
|
104
|
-
};
|
|
105
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
106
|
-
0 && (module.exports = {
|
|
107
|
-
createCells,
|
|
108
|
-
createTestSheet,
|
|
109
|
-
testSheetName
|
|
110
|
-
});
|
|
111
|
-
//# sourceMappingURL=testing.cjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/testing.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { type ComputeGraph, createComputeGraph } from './components';\nimport { SheetModel } from './model';\nimport { createSheet, type CellValue } from './types';\n\nexport const testSheetName = 'test';\n\nexport const createCells = (): Record<string, CellValue> => ({\n B1: { value: 'Qty' },\n B3: { value: 1 },\n B4: { value: 2 },\n B5: { value: 3 },\n B7: { value: 'Total' },\n\n C1: { value: 'Price' },\n C3: { value: 2_000 },\n C4: { value: 2_500 },\n C5: { value: 3_000 },\n C7: { value: '=SUMPRODUCT(B2:B6, C2:C6)' },\n // C8: { value: '=C7*CRYPTO(D7)' },\n C8: { value: '=C7*TEST()' },\n\n D7: { value: 'USD' },\n D8: { value: 'BTC' },\n\n E3: { value: '=TODAY()' },\n E4: { value: '=NOW()' },\n\n F1: { value: `=${testSheetName}!A1` }, // Ref test sheet.\n F3: { value: true },\n F4: { value: false },\n F5: { value: '8%' },\n F6: { value: '$10000' },\n});\n\nexport const createTestSheet = async ({\n name,\n graph = createComputeGraph(),\n}: { name?: string; graph?: ComputeGraph } = {}) => {\n const sheet = createSheet(name);\n const model = new SheetModel(graph, sheet);\n await model.initialize();\n model.setValues(createCells());\n model.sheet.columnMeta[model.sheet.columns[0]] = { size: 100 };\n await model.destroy();\n return sheet;\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,IAAMA,gBAAgB;AAEtB,IAAMC,cAAc,OAAkC;EAC3DC,IAAI;IAAEC,OAAO;EAAM;EACnBC,IAAI;IAAED,OAAO;EAAE;EACfE,IAAI;IAAEF,OAAO;EAAE;EACfG,IAAI;IAAEH,OAAO;EAAE;EACfI,IAAI;IAAEJ,OAAO;EAAQ;EAErBK,IAAI;IAAEL,OAAO;EAAQ;EACrBM,IAAI;IAAEN,OAAO;EAAM;EACnBO,IAAI;IAAEP,OAAO;EAAM;EACnBQ,IAAI;IAAER,OAAO;EAAM;EACnBS,IAAI;IAAET,OAAO;EAA4B;;EAEzCU,IAAI;IAAEV,OAAO;EAAa;EAE1BW,IAAI;IAAEX,OAAO;EAAM;EACnBY,IAAI;IAAEZ,OAAO;EAAM;EAEnBa,IAAI;IAAEb,OAAO;EAAW;EACxBc,IAAI;IAAEd,OAAO;EAAS;EAEtBe,IAAI;IAAEf,OAAO,IAAIH,aAAAA;EAAmB;EACpCmB,IAAI;IAAEhB,OAAO;EAAK;EAClBiB,IAAI;IAAEjB,OAAO;EAAM;EACnBkB,IAAI;IAAElB,OAAO;EAAK;EAClBmB,IAAI;IAAEnB,OAAO;EAAS;AACxB;AAEO,IAAMoB,kBAAkB,OAAO,EACpCC,MACAC,YAAQC,0CAAAA,EAAoB,IACe,CAAC,MAAC;AAC7C,QAAMC,YAAQC,mCAAYJ,IAAAA;AAC1B,QAAMK,QAAQ,IAAIC,iCAAWL,OAAOE,KAAAA;AACpC,QAAME,MAAME,WAAU;AACtBF,QAAMG,UAAU/B,YAAAA,CAAAA;AAChB4B,QAAMF,MAAMM,WAAWJ,MAAMF,MAAMO,QAAQ,CAAA,CAAE,IAAI;IAAEC,MAAM;EAAI;AAC7D,QAAMN,MAAMO,QAAO;AACnB,SAAOT;AACT;",
|
|
6
|
-
"names": ["testSheetName", "createCells", "B1", "value", "B3", "B4", "B5", "B7", "C1", "C3", "C4", "C5", "C7", "C8", "D7", "D8", "E3", "E4", "F1", "F3", "F4", "F5", "F6", "createTestSheet", "name", "graph", "createComputeGraph", "sheet", "createSheet", "model", "SheetModel", "initialize", "setValues", "columnMeta", "columns", "size", "destroy"]
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"async-function.d.ts","sourceRoot":"","sources":["../../../../../src/components/ComputeGraph/async-function.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoC,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACnG,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,EAAY,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAU/C,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAExE,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,sBAI3C,CAAC;AAEF;;;;;;;GAOG;AACH,qBAAa,eAAe;IAuBxB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAtBzB,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG;IAMrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8D;IAGrF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAGtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0C;IAGzE,OAAO,CAAC,YAAY,CAA8B;IAElD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;gBAGpB,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,KAAK,GAAG,SAAS,EAC1C,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,EAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC;IAW5C,IAAI,KAAK,sBAER;IAED,IAAI,iBAAiB,WAEpB;IAED,IAAI,IAAI;;;MAEP;IAED,KAAK;IAOL,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB;IAKjE;;;OAGG;IACH,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,GAAG,EAAE,EACX,EAAE,EAAE,aAAa,EACjB,OAAO,CAAC,EAAE,eAAe,GACxB,gBAAgB,GAAG,SAAS;CAgChC;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,IAAI,OAAO,IACqB,eAAe,CAC9C;IAED,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,eAAe;CAO1G"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../../../src/components/ComputeGraph/custom.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAIhE,OAAO,EAAsB,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAO3E;;GAEG;AACH,qBAAa,YAAa,SAAQ,mBAAmB;IACnD,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB;IAQ/C,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB;CAelD;AAgBD,eAAO,MAAM,wBAAwB;;;;;;;;;CASpC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"edge-function.d.ts","sourceRoot":"","sources":["../../../../../src/components/ComputeGraph/edge-function.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAQhE,OAAO,EAAsB,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAI3E;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,mBAAmB;IACzD,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB;CAyChD;AAwBD,eAAO,MAAM,8BAA8B;;;;;;;CAO1C,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React, { type PropsWithChildren } from 'react';
|
|
2
|
-
import { type Space } from '@dxos/react-client/echo';
|
|
3
|
-
import { type FunctionContextOptions } from './async-function';
|
|
4
|
-
import { type ComputeGraph } from './graph';
|
|
5
|
-
export type ComputeGraphContextType = {
|
|
6
|
-
graphs: Record<string, ComputeGraph>;
|
|
7
|
-
setGraph: (key: string, graph: ComputeGraph) => void;
|
|
8
|
-
};
|
|
9
|
-
export declare const ComputeGraphContext: React.Context<ComputeGraphContextType>;
|
|
10
|
-
export declare const ComputeGraphContextProvider: ({ children, graphs, setGraph, }: PropsWithChildren<ComputeGraphContextType>) => React.JSX.Element;
|
|
11
|
-
export declare const useComputeGraph: (space: Space, options?: Partial<FunctionContextOptions>) => ComputeGraph;
|
|
12
|
-
//# sourceMappingURL=graph-context.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graph-context.d.ts","sourceRoot":"","sources":["../../../../../src/components/ComputeGraph/graph-context.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAiB,KAAK,iBAAiB,EAAyB,MAAM,OAAO,CAAC;AAE5F,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAG/D,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAEhE,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,eAAO,MAAM,mBAAmB,wCAA6E,CAAC;AAE9G,eAAO,MAAM,2BAA2B,oCAIrC,iBAAiB,CAAC,uBAAuB,CAAC,sBAE5C,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,KAAK,YAAY,OAAO,CAAC,sBAAsB,CAAC,KAAG,YAqBzF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graph.browser.test.d.ts","sourceRoot":"","sources":["../../../../../src/components/ComputeGraph/graph.browser.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { type FunctionPluginDefinition, HyperFormula } from 'hyperformula';
|
|
2
|
-
import { type FunctionTranslationsPackage } from 'hyperformula/typings/interpreter';
|
|
3
|
-
import { Event } from '@dxos/async';
|
|
4
|
-
import { type Space } from '@dxos/client/echo';
|
|
5
|
-
import { FunctionContext, type FunctionContextOptions } from './async-function';
|
|
6
|
-
/**
|
|
7
|
-
* Create root graph for space.
|
|
8
|
-
*/
|
|
9
|
-
export declare const createComputeGraph: (functionPlugins?: {
|
|
10
|
-
plugin: FunctionPluginDefinition;
|
|
11
|
-
translations: FunctionTranslationsPackage;
|
|
12
|
-
}[], space?: Space, options?: Partial<FunctionContextOptions>) => ComputeGraph;
|
|
13
|
-
/**
|
|
14
|
-
* Per-space compute and dependency graph.
|
|
15
|
-
*/
|
|
16
|
-
export declare class ComputeGraph {
|
|
17
|
-
readonly hf: HyperFormula;
|
|
18
|
-
private readonly _space?;
|
|
19
|
-
private readonly _options?;
|
|
20
|
-
readonly id: string;
|
|
21
|
-
readonly update: Event<void>;
|
|
22
|
-
readonly context: FunctionContext;
|
|
23
|
-
constructor(hf: HyperFormula, _space?: Space | undefined, _options?: Partial<FunctionContextOptions> | undefined);
|
|
24
|
-
refresh(): void;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../../src/components/ComputeGraph/graph.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,wBAAwB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAEpF,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI/C,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,kBAAkB,qBAEZ;IAAE,MAAM,EAAE,wBAAwB,CAAC;IAAC,YAAY,EAAE,2BAA2B,CAAA;CAAE,EAAE,UAC1F,KAAK,YACH,OAAO,CAAC,sBAAsB,CAAC,KACxC,YAOF,CAAC;AAEF;;GAEG;AAEH,qBAAa,YAAY;aAeL,EAAE,EAAE,YAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAhB5B,SAAgB,EAAE,SAA4C;IAC9D,SAAgB,MAAM,cAAe;IAGrC,SAAgB,OAAO,kBAOrB;gBAGgB,EAAE,EAAE,YAAY,EACf,MAAM,CAAC,EAAE,KAAK,YAAA,EACd,QAAQ,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,YAAA;IAK7D,OAAO;CAIR"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { type ClassNameValue } from '@dxos/react-ui-types';
|
|
2
|
-
import { type SheetModel, type CellAddress } from '../../model';
|
|
3
|
-
export declare class FormattingModel {
|
|
4
|
-
private readonly model;
|
|
5
|
-
constructor(model: SheetModel);
|
|
6
|
-
/**
|
|
7
|
-
* Get formatted string value and className for cell.
|
|
8
|
-
*/
|
|
9
|
-
getFormatting(cell: CellAddress): {
|
|
10
|
-
value?: string;
|
|
11
|
-
classNames?: ClassNameValue;
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=formatting.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../../../../src/components/Sheet/formatting.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAW,MAAM,aAAa,CAAC;AAGzE,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,UAAU;IAE9C;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,cAAc,CAAA;KAAE;CA0FlF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../src/model/functions.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,EA42EhD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model.browser.test.d.ts","sourceRoot":"","sources":["../../../../src/model/model.browser.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/model/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/model/types.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,WAAW,QAAU,CAAC;AAEnC,MAAM,MAAM,WAAW,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAEhE,eAAO,MAAM,SAAS,MAAO,WAAW,GAAG,SAAS,KAAK,WAAW,GAAG,SAAS,YAE/E,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,MAM7C,CAAC;AAEF,eAAO,MAAM,mBAAmB,oBAAqB,WAAW,KAAG,MAElE,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAS,MAAM,KAAG,WAOnD,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAW,SAAS,WAIjD,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAS,MAAM,KAAG,SAGjD,CAAC;AAEF,eAAO,MAAM,OAAO,UAAW,SAAS,GAAG,SAAS,QAAQ,WAAW,KAAG,OAuBzE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../../../src/model/types.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export declare class ApiError extends Error {
|
|
2
|
-
}
|
|
3
|
-
export declare class ReadonlyException extends ApiError {
|
|
4
|
-
}
|
|
5
|
-
export declare class RangeException extends ApiError {
|
|
6
|
-
constructor(n: number);
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* With a string length of 8, the chance of a collision is 0.02% for a sheet with 10,000 strings.
|
|
10
|
-
*/
|
|
11
|
-
export declare const createIndex: (length?: number) => string;
|
|
12
|
-
export declare const createIndices: (length: number) => string[];
|
|
13
|
-
export declare const pickOne: <T>(values: T[]) => T;
|
|
14
|
-
export declare const pickSome: <T>(values: T[], n?: number) => T[];
|
|
15
|
-
//# sourceMappingURL=util.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/model/util.ts"],"names":[],"mappings":"AAOA,qBAAa,QAAS,SAAQ,KAAK;CAAG;AACtC,qBAAa,iBAAkB,SAAQ,QAAQ;CAAG;AAClD,qBAAa,cAAe,SAAQ,QAAQ;gBAC9B,CAAC,EAAE,MAAM;CAGtB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,uBAAiB,MAKxC,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,MAAM,KAAG,MAAM,EAAqD,CAAC;AAG3G,eAAO,MAAM,OAAO,GAAI,CAAC,UAAU,CAAC,EAAE,KAAG,CAAsD,CAAC;AAChG,eAAO,MAAM,QAAQ,GAAI,CAAC,UAAU,CAAC,EAAE,iBAAU,CAAC,EAMjD,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { type ComputeGraph } from './components';
|
|
2
|
-
import { type CellValue } from './types';
|
|
3
|
-
export declare const testSheetName = "test";
|
|
4
|
-
export declare const createCells: () => Record<string, CellValue>;
|
|
5
|
-
export declare const createTestSheet: ({ name, graph, }?: {
|
|
6
|
-
name?: string;
|
|
7
|
-
graph?: ComputeGraph;
|
|
8
|
-
}) => Promise<import("./types").SheetType>;
|
|
9
|
-
//# sourceMappingURL=testing.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../src/testing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,cAAc,CAAC;AAErE,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAEtD,eAAO,MAAM,aAAa,SAAS,CAAC;AAEpC,eAAO,MAAM,WAAW,QAAO,MAAM,CAAC,MAAM,EAAE,SAAS,CA0BrD,CAAC;AAEH,eAAO,MAAM,eAAe,sBAGzB;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,YAAY,CAAA;CAAE,yCAQzC,CAAC"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2024 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import React, { createContext, type PropsWithChildren, useContext, useEffect } from 'react';
|
|
6
|
-
|
|
7
|
-
import { type Space } from '@dxos/react-client/echo';
|
|
8
|
-
|
|
9
|
-
import { type FunctionContextOptions } from './async-function';
|
|
10
|
-
import { CustomPlugin, CustomPluginTranslations } from './custom';
|
|
11
|
-
import { EdgeFunctionPlugin, EdgeFunctionPluginTranslations } from './edge-function';
|
|
12
|
-
import { createComputeGraph, type ComputeGraph } from './graph';
|
|
13
|
-
|
|
14
|
-
export type ComputeGraphContextType = {
|
|
15
|
-
graphs: Record<string, ComputeGraph>;
|
|
16
|
-
setGraph: (key: string, graph: ComputeGraph) => void;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export const ComputeGraphContext = createContext<ComputeGraphContextType>({ graphs: {}, setGraph: () => {} });
|
|
20
|
-
|
|
21
|
-
export const ComputeGraphContextProvider = ({
|
|
22
|
-
children,
|
|
23
|
-
graphs,
|
|
24
|
-
setGraph,
|
|
25
|
-
}: PropsWithChildren<ComputeGraphContextType>) => {
|
|
26
|
-
return <ComputeGraphContext.Provider value={{ graphs, setGraph }}>{children}</ComputeGraphContext.Provider>;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export const useComputeGraph = (space: Space, options?: Partial<FunctionContextOptions>): ComputeGraph => {
|
|
30
|
-
const { graphs, setGraph } = useContext(ComputeGraphContext);
|
|
31
|
-
const graph =
|
|
32
|
-
graphs[space.id] ??
|
|
33
|
-
createComputeGraph(
|
|
34
|
-
[
|
|
35
|
-
{ plugin: EdgeFunctionPlugin, translations: EdgeFunctionPluginTranslations },
|
|
36
|
-
// TODO(wittjosiah): Remove. Needed for current test sheet generated data.
|
|
37
|
-
{ plugin: CustomPlugin, translations: CustomPluginTranslations },
|
|
38
|
-
],
|
|
39
|
-
space,
|
|
40
|
-
options,
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
useEffect(() => {
|
|
44
|
-
if (!graphs[space.id]) {
|
|
45
|
-
setGraph(space.id, graph);
|
|
46
|
-
}
|
|
47
|
-
}, [space]);
|
|
48
|
-
|
|
49
|
-
return graph;
|
|
50
|
-
};
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2024 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { expect } from 'chai';
|
|
6
|
-
import { describe, test } from 'vitest';
|
|
7
|
-
|
|
8
|
-
import { Trigger } from '@dxos/async';
|
|
9
|
-
|
|
10
|
-
import { CustomPlugin, CustomPluginTranslations } from './custom';
|
|
11
|
-
import { createComputeGraph } from './graph';
|
|
12
|
-
import { addressFromA1Notation, SheetModel } from '../../model';
|
|
13
|
-
import { type CellScalarValue, createSheet } from '../../types';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* VITEST_ENV=chrome p vitest --watch
|
|
17
|
-
* NOTE: Browser test required for hyperformula due to raw translation files.
|
|
18
|
-
*/
|
|
19
|
-
describe('compute graph', () => {
|
|
20
|
-
const createModel = async () => {
|
|
21
|
-
const graph = createComputeGraph([{ plugin: CustomPlugin, translations: CustomPluginTranslations }]);
|
|
22
|
-
const sheet = createSheet();
|
|
23
|
-
const model = new SheetModel(graph, sheet, undefined, { rows: 5, columns: 5 });
|
|
24
|
-
graph.update.on(() => model.update.emit());
|
|
25
|
-
return { graph, model };
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
test('async function', async () => {
|
|
29
|
-
const { graph, model } = await createModel();
|
|
30
|
-
|
|
31
|
-
// Triggers function.
|
|
32
|
-
model.setValue(addressFromA1Notation('A1'), '=TEST()');
|
|
33
|
-
|
|
34
|
-
const trigger = new Trigger<CellScalarValue>();
|
|
35
|
-
model.update.on(() => {
|
|
36
|
-
const value = model.getValue(addressFromA1Notation('A1'));
|
|
37
|
-
trigger.wake(value);
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
// Get initial value (i.e., null).
|
|
41
|
-
const v1 = model.getValue(addressFromA1Notation('A1'));
|
|
42
|
-
expect(v1).to.be.null;
|
|
43
|
-
expect(graph.context.info.invocations.TEST).to.eq(undefined);
|
|
44
|
-
|
|
45
|
-
// Wait until async update triggered.
|
|
46
|
-
const v2 = await trigger.wait();
|
|
47
|
-
expect(v2).not.to.be.null;
|
|
48
|
-
expect(graph.context.info.invocations.TEST).to.eq(1);
|
|
49
|
-
});
|
|
50
|
-
});
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2024 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { type FunctionPluginDefinition, HyperFormula } from 'hyperformula';
|
|
6
|
-
import { type FunctionTranslationsPackage } from 'hyperformula/typings/interpreter';
|
|
7
|
-
|
|
8
|
-
import { Event } from '@dxos/async';
|
|
9
|
-
import { type Space } from '@dxos/client/echo';
|
|
10
|
-
import { PublicKey } from '@dxos/keys';
|
|
11
|
-
import { log } from '@dxos/log';
|
|
12
|
-
|
|
13
|
-
import { FunctionContext, type FunctionContextOptions } from './async-function';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Create root graph for space.
|
|
17
|
-
*/
|
|
18
|
-
export const createComputeGraph = (
|
|
19
|
-
// TODO(wittjosiah): Factor out this type to make these easier to define.
|
|
20
|
-
functionPlugins: { plugin: FunctionPluginDefinition; translations: FunctionTranslationsPackage }[] = [],
|
|
21
|
-
space?: Space,
|
|
22
|
-
options?: Partial<FunctionContextOptions>,
|
|
23
|
-
): ComputeGraph => {
|
|
24
|
-
functionPlugins.forEach(({ plugin, translations }) => {
|
|
25
|
-
HyperFormula.registerFunctionPlugin(plugin, translations);
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
const hf = HyperFormula.buildEmpty({ licenseKey: 'gpl-v3' });
|
|
29
|
-
return new ComputeGraph(hf, space, options);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Per-space compute and dependency graph.
|
|
34
|
-
*/
|
|
35
|
-
// TODO(burdon): Create instance for each space.
|
|
36
|
-
export class ComputeGraph {
|
|
37
|
-
public readonly id = `graph-${PublicKey.random().truncate()}`;
|
|
38
|
-
public readonly update = new Event();
|
|
39
|
-
|
|
40
|
-
// The context is passed to all functions.
|
|
41
|
-
public readonly context = new FunctionContext(
|
|
42
|
-
this.hf,
|
|
43
|
-
this._space,
|
|
44
|
-
() => {
|
|
45
|
-
this.refresh();
|
|
46
|
-
},
|
|
47
|
-
this._options,
|
|
48
|
-
);
|
|
49
|
-
|
|
50
|
-
constructor(
|
|
51
|
-
public readonly hf: HyperFormula,
|
|
52
|
-
private readonly _space?: Space,
|
|
53
|
-
private readonly _options?: Partial<FunctionContextOptions>,
|
|
54
|
-
) {
|
|
55
|
-
this.hf.updateConfig({ context: this.context });
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
refresh() {
|
|
59
|
-
log('refresh', { id: this.id });
|
|
60
|
-
this.update.emit();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2024 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { expect } from 'chai';
|
|
6
|
-
import { describe, test } from 'vitest';
|
|
7
|
-
|
|
8
|
-
import { SheetModel } from './model';
|
|
9
|
-
import { addressFromA1Notation, rangeFromA1Notation } from './types';
|
|
10
|
-
import { createComputeGraph } from '../components';
|
|
11
|
-
import { createSheet, ValueTypeEnum } from '../types';
|
|
12
|
-
|
|
13
|
-
// TODO(burdon): Test undo (e.g., clear cells).
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* VITEST_ENV=chrome p vitest --watch
|
|
17
|
-
* NOTE: Browser test required for hyperformula due to raw translation files.
|
|
18
|
-
*/
|
|
19
|
-
describe('model', () => {
|
|
20
|
-
const createModel = async () => {
|
|
21
|
-
const graph = createComputeGraph();
|
|
22
|
-
const sheet = createSheet();
|
|
23
|
-
const model = new SheetModel(graph, sheet, undefined, { rows: 5, columns: 5 });
|
|
24
|
-
await model.initialize();
|
|
25
|
-
return model;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
test('create', async () => {
|
|
29
|
-
const model = await createModel();
|
|
30
|
-
expect(model.bounds).to.deep.eq({ rows: 5, columns: 5 });
|
|
31
|
-
model.setValue(addressFromA1Notation('A1'), 100);
|
|
32
|
-
const value = model.getValue(addressFromA1Notation('A1'));
|
|
33
|
-
expect(value).to.eq(100);
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
test('map formula', async () => {
|
|
37
|
-
const model = await createModel();
|
|
38
|
-
const x1 = model.mapFormulaRefsToIndices('=SUM(A1:A3)');
|
|
39
|
-
const x2 = model.mapFormulaIndicesToRefs(x1);
|
|
40
|
-
expect(x2).to.eq('=SUM(A1:A3)');
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
test('dates', async () => {
|
|
44
|
-
const model = await createModel();
|
|
45
|
-
const cell = addressFromA1Notation('A1');
|
|
46
|
-
model.setValue(cell, '=NOW()');
|
|
47
|
-
const type = model.getValueType(cell);
|
|
48
|
-
expect(type).to.eq(ValueTypeEnum.DateTime);
|
|
49
|
-
const value = model.getValue(cell);
|
|
50
|
-
const date = model.toLocalDate(value as number);
|
|
51
|
-
const now = new Date();
|
|
52
|
-
expect(date.getUTCFullYear()).to.eq(now.getUTCFullYear());
|
|
53
|
-
expect(date.getUTCMonth()).to.eq(now.getUTCMonth());
|
|
54
|
-
expect(date.getUTCDate()).to.eq(now.getUTCDate());
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
test('formula', async () => {
|
|
58
|
-
const model = await createModel();
|
|
59
|
-
|
|
60
|
-
// Nested formula.
|
|
61
|
-
{
|
|
62
|
-
model.setValue(addressFromA1Notation('A1'), 100);
|
|
63
|
-
model.setValue(addressFromA1Notation('A2'), 200);
|
|
64
|
-
model.setValue(addressFromA1Notation('A3'), '=SUM(A1:A2)');
|
|
65
|
-
model.setValue(addressFromA1Notation('A4'), '=SUM(A1:A3)');
|
|
66
|
-
const value = model.getValue(addressFromA1Notation('A4'));
|
|
67
|
-
expect(value).to.eq(600);
|
|
68
|
-
// console.log(JSON.stringify(model.sheet.cells, undefined, 2));
|
|
69
|
-
|
|
70
|
-
const cells = model.getCellValues(rangeFromA1Notation('A1:A4'));
|
|
71
|
-
expect(cells).to.deep.eq([
|
|
72
|
-
[100],
|
|
73
|
-
[200],
|
|
74
|
-
[model.mapFormulaRefsToIndices('=SUM(A1:A2)')],
|
|
75
|
-
[model.mapFormulaRefsToIndices('=SUM(A1:A3)')],
|
|
76
|
-
]);
|
|
77
|
-
// console.log(JSON.stringify(model.sheet.cells, undefined, 2));
|
|
78
|
-
// console.log(cells);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// Insert row.
|
|
82
|
-
{
|
|
83
|
-
model.insertRows(2, 1);
|
|
84
|
-
model.setValue(addressFromA1Notation('A3'), 400);
|
|
85
|
-
const value = model.getValue(addressFromA1Notation('A5'));
|
|
86
|
-
expect(value).to.eq(1000);
|
|
87
|
-
|
|
88
|
-
const cells = model.getCellValues(rangeFromA1Notation('A1:A5'));
|
|
89
|
-
expect(cells).to.deep.eq([
|
|
90
|
-
[100],
|
|
91
|
-
[200],
|
|
92
|
-
[400],
|
|
93
|
-
[model.mapFormulaRefsToIndices('=SUM(A1:A2)')],
|
|
94
|
-
[model.mapFormulaRefsToIndices('=SUM(A1:A4)')],
|
|
95
|
-
]);
|
|
96
|
-
// console.log(JSON.stringify(model.sheet.cells, undefined, 2));
|
|
97
|
-
// console.log(cells);
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
});
|