@dxos/plugin-sheet 0.8.4-main.72ec0f3 → 0.8.4-main.937b3ca
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-ESCXPI7Y.mjs +397 -0
- package/dist/lib/browser/SheetContainer-ESCXPI7Y.mjs.map +7 -0
- package/dist/lib/browser/{anchor-sort-FCQ5OZZK.mjs → anchor-sort-JBRMW6OY.mjs} +7 -7
- package/dist/lib/browser/anchor-sort-JBRMW6OY.mjs.map +7 -0
- package/dist/lib/browser/chunk-2SAGT3BB.mjs +397 -0
- package/dist/lib/browser/chunk-2SAGT3BB.mjs.map +7 -0
- package/dist/lib/browser/{chunk-7VEWYJJN.mjs → chunk-IFLWVS2V.mjs} +5 -5
- package/dist/lib/browser/chunk-IFLWVS2V.mjs.map +7 -0
- package/dist/lib/browser/chunk-W6N44ONZ.mjs +1470 -0
- package/dist/lib/browser/chunk-W6N44ONZ.mjs.map +7 -0
- package/dist/lib/browser/compute-graph-registry-DL2PX7TF.mjs +21 -0
- package/dist/lib/browser/compute-graph-registry-DL2PX7TF.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +68 -78
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/markdown-BC4KBDUO.mjs +29 -0
- package/dist/lib/browser/markdown-BC4KBDUO.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/operation-resolver-FJ4UWZUM.mjs +79 -0
- package/dist/lib/browser/operation-resolver-FJ4UWZUM.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-5GYLVSMR.mjs → react-surface-5BXM6TJ3.mjs} +16 -19
- package/dist/lib/browser/react-surface-5BXM6TJ3.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +5 -2
- package/dist/lib/node-esm/SheetContainer-YVIDJKP4.mjs +398 -0
- package/dist/lib/node-esm/SheetContainer-YVIDJKP4.mjs.map +7 -0
- package/dist/lib/node-esm/{anchor-sort-ZE7IS7SH.mjs → anchor-sort-C3XFPI6S.mjs} +7 -7
- package/dist/lib/node-esm/anchor-sort-C3XFPI6S.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-IMWGSIDG.mjs +398 -0
- package/dist/lib/node-esm/chunk-IMWGSIDG.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-4QV4AGWK.mjs → chunk-PPOYR7DK.mjs} +5 -5
- package/dist/lib/node-esm/chunk-PPOYR7DK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-S7RYX7DG.mjs +1471 -0
- package/dist/lib/node-esm/chunk-S7RYX7DG.mjs.map +7 -0
- package/dist/lib/node-esm/compute-graph-registry-VXH55GDI.mjs +22 -0
- package/dist/lib/node-esm/compute-graph-registry-VXH55GDI.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +68 -78
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/markdown-6DGZCJRM.mjs +30 -0
- package/dist/lib/node-esm/markdown-6DGZCJRM.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/operation-resolver-OGXEUWHA.mjs +80 -0
- package/dist/lib/node-esm/operation-resolver-OGXEUWHA.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-RK32YZWR.mjs → react-surface-RLHC6B77.mjs} +16 -19
- package/dist/lib/node-esm/react-surface-RLHC6B77.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +5 -2
- package/dist/types/src/SheetPlugin.d.ts +2 -1
- package/dist/types/src/SheetPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts +5 -0
- package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +1 -0
- package/dist/types/src/capabilities/anchor-sort/index.d.ts +3 -0
- package/dist/types/src/capabilities/anchor-sort/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/compute-graph-registry/compute-graph-registry.d.ts +5 -0
- package/dist/types/src/capabilities/compute-graph-registry/compute-graph-registry.d.ts.map +1 -0
- package/dist/types/src/capabilities/compute-graph-registry/index.d.ts +3 -0
- package/dist/types/src/capabilities/compute-graph-registry/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +5 -6
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown/index.d.ts +3 -0
- package/dist/types/src/capabilities/markdown/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/markdown/markdown.d.ts +5 -0
- package/dist/types/src/capabilities/markdown/markdown.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
- package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +1 -0
- package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts +1 -1
- package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/RangeList/RangeList.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +4 -5
- package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts +3 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +2 -0
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/align.d.ts +12 -19
- package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/style.d.ts +12 -18
- package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts +14 -1
- package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
- package/dist/types/src/extensions/editor/sheet-extension.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/model/sheet-model.d.ts +2 -2
- package/dist/types/src/model/sheet-model.d.ts.map +1 -1
- package/dist/types/src/serializer.d.ts.map +1 -1
- package/dist/types/src/testing/testing.d.ts +8 -8
- package/dist/types/src/translations.d.ts +1 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Sheet.d.ts +34 -28
- package/dist/types/src/types/Sheet.d.ts.map +1 -1
- package/dist/types/src/types/capabilities.d.ts +6 -0
- package/dist/types/src/types/capabilities.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +1 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +91 -65
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +75 -69
- package/src/SheetPlugin.tsx +40 -62
- package/src/capabilities/anchor-sort/anchor-sort.ts +26 -0
- package/src/capabilities/anchor-sort/index.ts +7 -0
- package/src/capabilities/compute-graph-registry/compute-graph-registry.ts +27 -0
- package/src/capabilities/compute-graph-registry/index.ts +7 -0
- package/src/capabilities/index.ts +5 -9
- package/src/capabilities/markdown/index.ts +7 -0
- package/src/capabilities/markdown/markdown.ts +30 -0
- package/src/capabilities/operation-resolver/index.ts +7 -0
- package/src/capabilities/operation-resolver/operation-resolver.ts +77 -0
- package/src/capabilities/react-surface/index.ts +7 -0
- package/src/capabilities/react-surface/react-surface.tsx +43 -0
- package/src/components/ComputeGraph/compute-graph.stories.tsx +1 -1
- package/src/components/GridSheet/GridSheet.stories.tsx +2 -2
- package/src/components/GridSheet/GridSheet.tsx +14 -19
- package/src/components/GridSheet/SheetCellEditor.stories.tsx +7 -4
- package/src/components/GridSheet/util.ts +2 -2
- package/src/components/RangeList/RangeList.tsx +5 -2
- package/src/components/SheetContainer/SheetContainer.stories.tsx +41 -21
- package/src/components/SheetContainer/SheetContainer.tsx +27 -20
- package/src/components/SheetContext/SheetContext.tsx +4 -4
- package/src/components/SheetToolbar/SheetToolbar.tsx +29 -18
- package/src/components/SheetToolbar/align.ts +41 -16
- package/src/components/SheetToolbar/style.ts +45 -15
- package/src/components/SheetToolbar/useToolbarState.ts +22 -5
- package/src/extensions/compute.stories.tsx +15 -6
- package/src/extensions/compute.ts +1 -1
- package/src/extensions/editor/sheet-extension.ts +7 -4
- package/src/index.ts +1 -1
- package/src/integrations/thread-ranges.ts +37 -41
- package/src/meta.ts +2 -2
- package/src/model/sheet-model.ts +75 -45
- package/src/playwright/playwright.config.ts +1 -1
- package/src/playwright/sheet.spec.ts +1 -0
- package/src/sanity.test.ts +1 -1
- package/src/serializer.ts +1 -1
- package/src/translations.ts +1 -0
- package/src/types/Sheet.ts +23 -20
- package/src/{capabilities → types}/capabilities.ts +2 -2
- package/src/types/index.ts +1 -0
- package/src/types/types.ts +81 -37
- package/dist/lib/browser/SheetContainer-66BNB3XG.mjs +0 -349
- package/dist/lib/browser/SheetContainer-66BNB3XG.mjs.map +0 -7
- package/dist/lib/browser/anchor-sort-FCQ5OZZK.mjs.map +0 -7
- package/dist/lib/browser/chunk-73AV3NH6.mjs +0 -15
- package/dist/lib/browser/chunk-73AV3NH6.mjs.map +0 -7
- package/dist/lib/browser/chunk-7VEWYJJN.mjs.map +0 -7
- package/dist/lib/browser/chunk-DVJ3QW3F.mjs +0 -907
- package/dist/lib/browser/chunk-DVJ3QW3F.mjs.map +0 -7
- package/dist/lib/browser/chunk-FWFAAGXL.mjs +0 -28
- package/dist/lib/browser/chunk-FWFAAGXL.mjs.map +0 -7
- package/dist/lib/browser/chunk-OU5KTWY3.mjs +0 -852
- package/dist/lib/browser/chunk-OU5KTWY3.mjs.map +0 -7
- package/dist/lib/browser/compute-graph-registry-AP5RA7W3.mjs +0 -21
- package/dist/lib/browser/compute-graph-registry-AP5RA7W3.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-66OAYVQF.mjs +0 -56
- package/dist/lib/browser/intent-resolver-66OAYVQF.mjs.map +0 -7
- package/dist/lib/browser/markdown-B6VKYY2S.mjs +0 -26
- package/dist/lib/browser/markdown-B6VKYY2S.mjs.map +0 -7
- package/dist/lib/browser/react-surface-5GYLVSMR.mjs.map +0 -7
- package/dist/lib/node-esm/SheetContainer-NWEQETAY.mjs +0 -350
- package/dist/lib/node-esm/SheetContainer-NWEQETAY.mjs.map +0 -7
- package/dist/lib/node-esm/anchor-sort-ZE7IS7SH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-44YTKTMP.mjs +0 -16
- package/dist/lib/node-esm/chunk-44YTKTMP.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4H2EHVWE.mjs +0 -908
- package/dist/lib/node-esm/chunk-4H2EHVWE.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4MT3JJU2.mjs +0 -853
- package/dist/lib/node-esm/chunk-4MT3JJU2.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4QV4AGWK.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HILDMVPL.mjs +0 -29
- package/dist/lib/node-esm/chunk-HILDMVPL.mjs.map +0 -7
- package/dist/lib/node-esm/compute-graph-registry-UMQ5UYCL.mjs +0 -22
- package/dist/lib/node-esm/compute-graph-registry-UMQ5UYCL.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-VNKIMQQT.mjs +0 -57
- package/dist/lib/node-esm/intent-resolver-VNKIMQQT.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-VKY7HXU2.mjs +0 -27
- package/dist/lib/node-esm/markdown-VKY7HXU2.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-RK32YZWR.mjs.map +0 -7
- package/dist/types/src/capabilities/anchor-sort.d.ts +0 -4
- package/dist/types/src/capabilities/anchor-sort.d.ts.map +0 -1
- package/dist/types/src/capabilities/capabilities.d.ts +0 -5
- package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
- package/dist/types/src/capabilities/compute-graph-registry.d.ts +0 -4
- package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +0 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/markdown.d.ts +0 -4
- package/dist/types/src/capabilities/markdown.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface.d.ts +0 -4
- package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
- package/src/capabilities/anchor-sort.ts +0 -21
- package/src/capabilities/compute-graph-registry.ts +0 -23
- package/src/capabilities/intent-resolver.ts +0 -38
- package/src/capabilities/markdown.ts +0 -23
- package/src/capabilities/react-surface.tsx +0 -41
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/ComputeGraph/ComputeGraphContextProvider.tsx", "../../../src/components/RangeList/RangeList.tsx", "../../../src/components/index.ts", "../../../src/components/GridSheet/GridSheet.tsx", "../../../src/integrations/thread-ranges.ts", "../../../src/components/SheetContext/SheetContext.tsx", "../../../src/model/sheet-model.ts", "../../../src/model/useSheetModel.ts", "../../../src/components/GridSheet/util.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type PropsWithChildren, createContext, useContext } from 'react';\n\nimport { type ComputeGraph, type ComputeGraphRegistry } from '@dxos/compute';\nimport { raise } from '@dxos/debug';\nimport { type Space } from '@dxos/react-client/echo';\nimport { useAsyncState } from '@dxos/react-hooks';\n\nexport type ComputeGraphContextType = {\n registry: ComputeGraphRegistry;\n};\n\n/**\n * The compute graph context manages a ComputeGraph for each space.\n */\nexport const ComputeGraphContext = createContext<ComputeGraphContextType | undefined>(undefined);\n\nexport const ComputeGraphContextProvider = ({ registry, children }: PropsWithChildren<ComputeGraphContextType>) => {\n return <ComputeGraphContext.Provider value={{ registry }}>{children}</ComputeGraphContext.Provider>;\n};\n\nexport const useComputeGraph = (space?: Space): ComputeGraph | undefined => {\n const { registry } = useContext(ComputeGraphContext) ?? raise(new Error('Missing ComputeGraphContext'));\n const [graph] = useAsyncState(async () => {\n if (space) {\n const graph = registry.getOrCreateGraph(space);\n await graph.open();\n return graph;\n }\n }, [space, registry]);\n\n return graph;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { useCallback } from 'react';\n\nimport { rangeToA1Notation } from '@dxos/compute';\nimport { Obj } from '@dxos/echo';\nimport { Callout, useTranslation } from '@dxos/react-ui';\nimport { List } from '@dxos/react-ui-list';\nimport { ghostHover } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\nimport { rangeFromIndex } from '../../types';\nimport { Sheet } from '../../types';\n\nexport type RangeListProps = {\n sheet: Sheet.Sheet;\n};\n\nexport const RangeList = ({ sheet }: RangeListProps) => {\n const { t } = useTranslation(meta.id);\n // TODO(thure): Implement similar to comments, #8121\n const handleSelectRange = (range: Sheet.Range) => {};\n const handleDeleteRange = useCallback(\n (range: Sheet.Range) => {\n const index = sheet.ranges.findIndex((sheetRange) => sheetRange === range);\n Obj.change(sheet, (s) => {\n s.ranges.splice(index, 1);\n });\n },\n [sheet],\n );\n return (\n <>\n <h2 className='mbs-cardSpacingBlock mbe-labelSpacingBlock text-sm font-semibold'>{t('range list heading')}</h2>\n {sheet.ranges.length < 1 ? (\n <Callout.Root>\n <Callout.Title>{t('no ranges message')}</Callout.Title>\n </Callout.Root>\n ) : (\n <List.Root<Sheet.Range> items={sheet.ranges} isItem={Schema.is(Sheet.Range)}>\n {({ items: ranges }) =>\n ranges.map((range, i) => (\n <List.Item key={i} item={range} classNames={['p-2', ghostHover]}>\n <List.ItemDragHandle />\n <List.ItemTitle onClick={() => handleSelectRange(range)}>\n {t('range title', {\n position: rangeToA1Notation(rangeFromIndex(sheet, range.range)),\n key: t(`range key ${range.key} label`),\n value: t(`range value ${range.value} label`),\n })}\n </List.ItemTitle>\n <List.ItemDeleteButton onClick={() => handleDeleteRange(range)} />\n </List.Item>\n ))\n }\n </List.Root>\n )}\n </>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './ComputeGraph';\nexport * from './GridSheet';\nexport * from './RangeList';\nexport * from './SheetContext';\n\nexport const SheetContainer = lazy(() => import('./SheetContainer'));\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, {\n type FocusEvent,\n type KeyboardEvent,\n type MouseEvent,\n type WheelEvent,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/react';\nimport { type CellRange, rangeToA1Notation } from '@dxos/compute';\nimport { defaultColSize, defaultRowSize } from '@dxos/lit-grid';\nimport { DropdownMenu, Icon, useTranslation } from '@dxos/react-ui';\nimport { useAttention } from '@dxos/react-ui-attention';\nimport {\n type DxGridCellIndex,\n type DxGridElement,\n type DxGridPosition,\n type EditorBlurHandler,\n type EditorKeyHandler,\n Grid,\n GridCellEditor,\n type GridContentProps,\n closestCell,\n editorKeys,\n parseCellIndex,\n} from '@dxos/react-ui-grid';\n\nimport { type RangeController, rangeExtension, sheetExtension } from '../../extensions';\nimport { useSelectThreadOnCellFocus, useUpdateFocusedCellOnThreadSelection } from '../../integrations';\nimport { meta } from '../../meta';\nimport { DEFAULT_COLS, DEFAULT_ROWS, SheetOperation } from '../../types';\nimport { useSheetContext } from '../SheetContext';\n\nimport { colLabelCell, rowLabelCell, useSheetModelDxGridProps } from './util';\n\nconst inertPosition: DxGridPosition = { plane: 'grid', col: 0, row: 0 };\n\nconst initialCells = {\n grid: {},\n frozenColsStart: [...Array(64)].reduce((acc, _, i) => {\n acc[`0,${i}`] = rowLabelCell(i);\n return acc;\n }, {}),\n frozenRowsStart: [...Array(12)].reduce((acc, _, i) => {\n acc[`${i},0`] = colLabelCell(i);\n return acc;\n }, {}),\n};\n\nconst frozen = {\n frozenColsStart: 1,\n frozenRowsStart: 1,\n};\n\nconst sheetColDefault = {\n frozenColsStart: { size: 48, readonly: true, focusUnfurl: false },\n grid: { size: defaultColSize, resizeable: true },\n};\nconst sheetRowDefault = {\n frozenRowsStart: { size: defaultRowSize, readonly: true, focusUnfurl: false },\n grid: { size: defaultRowSize, resizeable: true },\n};\n\nexport const GridSheet = () => {\n const { t } = useTranslation(meta.id);\n const { id, model, editing, setCursor, setRange, cursor, cursorFallbackRange, activeRefs, ignoreAttention } =\n useSheetContext();\n // NOTE(thure): using `useState` instead of `useRef` works with refs provided by `@lit/react` and gives us\n // a reliable dependency for `useEffect` whereas `useLayoutEffect` does not guarantee the element will be defined.\n const [dxGrid, setDxGrid] = useState<DxGridElement | null>(null);\n const [extraplanarFocus, setExtraplanarFocus] = useState<DxGridPosition | null>(null);\n const { invokePromise } = useOperationInvoker();\n const rangeController = useRef<RangeController>(null);\n const { hasAttention } = useAttention(id);\n\n const handleFocus = useCallback(\n (event: FocusEvent) => {\n if (!editing) {\n const cell = closestCell(event.target);\n if (cell) {\n if (cell.plane === 'grid') {\n setCursor({ col: cell.col, row: cell.row });\n setExtraplanarFocus(null);\n } else {\n setExtraplanarFocus(cell);\n }\n } else {\n setExtraplanarFocus(null);\n }\n }\n },\n [editing],\n );\n\n // TODO(burdon): Validate formula before closing: hf.validateFormula();\n const handleClose = useCallback<EditorKeyHandler>(\n (_value, event) => {\n if (event) {\n const { key, shift } = event;\n const axis = ['Enter', 'ArrowUp', 'ArrowDown'].includes(key)\n ? 'row'\n : ['Tab', 'ArrowLeft', 'ArrowRight'].includes(key)\n ? 'col'\n : undefined;\n const delta = key.startsWith('Arrow') ? (['ArrowUp', 'ArrowLeft'].includes(key) ? -1 : 1) : shift ? -1 : 1;\n dxGrid?.refocus(axis, delta);\n }\n },\n [model, editing, dxGrid],\n );\n\n const handleBlur = useCallback<EditorBlurHandler>(\n (value) => {\n if (value !== undefined) {\n model.setValue(parseCellIndex(editing!.index), value);\n }\n },\n [model, editing],\n );\n\n const handleAxisResize = useCallback<NonNullable<GridContentProps['onAxisResize']>>(\n ({ axis, size, index: numericIndex }) => {\n if (axis === 'row') {\n const rowId = model.sheet.rows[parseInt(numericIndex)];\n model.sheet.rowMeta[rowId] ??= {};\n model.sheet.rowMeta[rowId].size = size;\n } else {\n const columnId = model.sheet.columns[parseInt(numericIndex)];\n model.sheet.columnMeta[columnId] ??= {};\n model.sheet.columnMeta[columnId].size = size;\n }\n },\n [model],\n );\n\n const handleSelect = useCallback<NonNullable<GridContentProps['onSelect']>>(\n ({ minCol, maxCol, minRow, maxRow }) => {\n const range: CellRange = { from: { col: minCol, row: minRow } };\n if (minCol !== maxCol || minRow !== maxRow) {\n range.to = { col: maxCol, row: maxRow };\n }\n if (editing) {\n // Update range selection in formula.\n rangeController.current?.setRange(rangeToA1Notation(range));\n } else {\n // Setting range while editing causes focus to move to null, avoid doing so.\n setRange(range.to ? range : undefined);\n }\n },\n [editing],\n );\n\n const handleWheel = useCallback(\n (event: WheelEvent) => {\n if (!ignoreAttention && !hasAttention) {\n event.stopPropagation();\n }\n },\n [hasAttention, ignoreAttention],\n );\n\n const selectEntireAxis = useCallback(\n (pos: DxGridPosition) => {\n switch (pos.plane) {\n case 'frozenRowsStart':\n return dxGrid?.setSelection({\n start: { col: pos.col, row: 0, plane: 'grid' },\n end: {\n col: pos.col,\n row: model.sheet.rows.length - 1,\n plane: 'grid',\n },\n });\n case 'frozenColsStart':\n return dxGrid?.setSelection({\n start: { row: pos.row, col: 0, plane: 'grid' },\n end: {\n row: pos.row,\n col: model.sheet.columns.length - 1,\n plane: 'grid',\n },\n });\n }\n },\n [dxGrid, model.sheet],\n );\n\n const handleClick = useCallback(\n (event: MouseEvent) => {\n const cell = closestCell(event.target);\n if (cell) {\n selectEntireAxis(cell);\n }\n },\n [selectEntireAxis],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n switch (event.key) {\n case 'Backspace':\n case 'Delete':\n event.preventDefault();\n return cursorFallbackRange && model.clear(cursorFallbackRange);\n case 'Enter':\n case 'Space':\n if (dxGrid && extraplanarFocus) {\n switch (extraplanarFocus.plane) {\n case 'frozenRowsStart':\n case 'frozenColsStart':\n event.preventDefault();\n return selectEntireAxis(extraplanarFocus);\n }\n }\n }\n if (event.metaKey || event.ctrlKey) {\n switch (event.key) {\n case 'x':\n case 'X':\n event.preventDefault();\n return cursorFallbackRange && model.cut(cursorFallbackRange);\n case 'c':\n case 'C':\n event.preventDefault();\n return cursorFallbackRange && model.copy(cursorFallbackRange);\n case 'v':\n case 'V':\n event.preventDefault();\n return cursor && model.paste(cursor);\n case 'z':\n event.preventDefault();\n return event.shiftKey ? model.redo() : model.undo();\n case 'Z':\n case 'y':\n event.preventDefault();\n return model.redo();\n }\n }\n },\n [cursorFallbackRange, model, cursor, extraplanarFocus, selectEntireAxis],\n );\n\n const contextMenuAnchorRef = useRef<HTMLButtonElement | null>(null);\n const [contextMenuOpen, setContextMenuOpen] = useState<DxGridPosition | null>(null);\n const contextMenuAxis = contextMenuOpen?.plane.startsWith('frozenRows') ? 'col' : 'row';\n\n const handleContextMenu = useCallback((event: MouseEvent) => {\n const cell = closestCell(event.target);\n if (cell && cell.plane.startsWith('frozen')) {\n event.preventDefault();\n contextMenuAnchorRef.current = event.target as HTMLButtonElement;\n setContextMenuOpen(cell);\n }\n }, []);\n\n const handleAxisMenuAction = useCallback(\n (operation: 'insert-before' | 'insert-after' | 'drop') => {\n switch (operation) {\n case 'insert-before':\n case 'insert-after':\n return invokePromise(SheetOperation.InsertAxis, {\n model,\n axis: contextMenuAxis,\n index: contextMenuOpen![contextMenuAxis] + (operation === 'insert-before' ? 0 : 1),\n });\n case 'drop':\n return invokePromise(SheetOperation.DropAxis, {\n model,\n axis: contextMenuAxis,\n axisIndex: model.sheet[contextMenuAxis === 'row' ? 'rows' : 'columns'][contextMenuOpen![contextMenuAxis]],\n });\n }\n },\n [contextMenuAxis, contextMenuOpen, model, invokePromise],\n );\n\n const { columns, rows } = useSheetModelDxGridProps(dxGrid, model);\n\n const extensions = useMemo(\n () => [\n editorKeys({\n onClose: handleClose,\n ...(editing?.initialContent && { onNav: handleClose }),\n }),\n sheetExtension({ functions: model.graph.getFunctions() }),\n rangeExtension({\n onInit: (fn) => (rangeController.current = fn),\n onStateChange: (state) => {\n if (dxGrid) {\n // This can’t dispatch a setState in this component, otherwise the cell editor remounts and loses focus.\n dxGrid.mode = typeof state.activeRange === 'undefined' ? 'edit' : 'edit-select';\n }\n },\n }),\n ],\n [model, handleClose, editing],\n );\n\n const getCellContent = useCallback(\n (index: DxGridCellIndex) => {\n return model.getCellText(parseCellIndex(index));\n },\n [model],\n );\n\n useUpdateFocusedCellOnThreadSelection(dxGrid);\n useSelectThreadOnCellFocus();\n\n return (\n // TODO(thure): Why are Table’s and Sheet’s editor boxes off by 1px?\n <div role='none' className='relative min-bs-0 [&_.cm-editor]:!border-lb [&_.cm-editor]:!border-transparent'>\n <GridCellEditor getCellContent={getCellContent} extensions={extensions} onBlur={handleBlur} />\n <Grid.Content\n initialCells={initialCells}\n limitColumns={DEFAULT_COLS}\n limitRows={DEFAULT_ROWS}\n columns={columns}\n rows={rows}\n // TODO(burdon): `col` vs. `column`?\n columnDefault={sheetColDefault}\n rowDefault={sheetRowDefault}\n frozen={frozen}\n onAxisResize={handleAxisResize}\n onSelect={handleSelect}\n onFocus={handleFocus}\n onWheelCapture={handleWheel}\n onKeyDown={handleKeyDown}\n onContextMenu={handleContextMenu}\n onClick={handleClick}\n overscroll='trap'\n className='[--dx-grid-base:var(--baseSurface)] [&_.dx-grid]:absolute [&_.dx-grid]:inset-0'\n activeRefs={activeRefs}\n ref={setDxGrid}\n />\n <DropdownMenu.Root\n modal={false}\n open={!!contextMenuOpen}\n onOpenChange={(nextOpen) => setContextMenuOpen(nextOpen ? inertPosition : null)}\n >\n <DropdownMenu.VirtualTrigger virtualRef={contextMenuAnchorRef} />\n <DropdownMenu.Content side={contextMenuAxis === 'col' ? 'bottom' : 'right'} sideOffset={4} collisionPadding={8}>\n <DropdownMenu.Viewport>\n <DropdownMenu.Item\n onClick={() => handleAxisMenuAction('insert-before')}\n data-testid={`grid.${contextMenuAxis}.insert-before`}\n >\n <Icon\n size={5}\n icon={contextMenuAxis === 'col' ? 'ph--columns-plus-left--regular' : 'ph--rows-plus-top--regular'}\n />\n <span>{t(`add ${contextMenuAxis} before label`)}</span>\n </DropdownMenu.Item>\n <DropdownMenu.Item\n onClick={() => handleAxisMenuAction('insert-after')}\n data-testid={`grid.${contextMenuAxis}.insert-after`}\n >\n <Icon\n size={5}\n icon={contextMenuAxis === 'col' ? 'ph--columns-plus-right--regular' : 'ph--rows-plus-bottom--regular'}\n />\n <span>{t(`add ${contextMenuAxis} after label`)}</span>\n </DropdownMenu.Item>\n <DropdownMenu.Item\n onClick={() => handleAxisMenuAction('drop')}\n data-testid={`grid.${contextMenuAxis}.drop`}\n >\n <Icon size={5} icon='ph--backspace--regular' />\n <span>{t(`delete ${contextMenuAxis} label`)}</span>\n </DropdownMenu.Item>\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport { useCallback, useEffect, useMemo } from 'react';\n\nimport { Common } from '@dxos/app-framework';\nimport { useOperationInvoker, useOperationResolver } from '@dxos/app-framework/react';\nimport { debounce } from '@dxos/async';\nimport { type CellAddress, type CompleteCellRange, inRange } from '@dxos/compute';\nimport { Obj, Relation } from '@dxos/echo';\nimport { OperationResolver } from '@dxos/operation';\nimport { ATTENDABLE_PATH_SEPARATOR, DeckOperation } from '@dxos/plugin-deck/types';\nimport { ThreadOperation } from '@dxos/plugin-thread/types';\nimport { Filter, Query, useQuery } from '@dxos/react-client/echo';\nimport { type DxGridElement, type GridContentProps } from '@dxos/react-ui-grid';\nimport { AnchoredTo, Thread } from '@dxos/types';\n\nimport { useSheetContext } from '../components';\nimport { meta } from '../meta';\n\nexport const completeCellRangeToThreadCursor = (range: CompleteCellRange): string => {\n return `${range.from.col},${range.from.row},${range.to.col},${range.to.row}`;\n};\n\nexport const parseThreadAnchorAsCellRange = (cursor: string): CompleteCellRange | null => {\n const coords = cursor.split(',');\n if (coords.length !== 4) {\n return null;\n } else {\n const [fromCol, fromRow, toCol, toRow] = coords;\n return {\n from: { col: parseInt(fromCol), row: parseInt(fromRow) },\n to: { col: parseInt(toCol), row: parseInt(toRow) },\n };\n }\n};\n\nexport const useUpdateFocusedCellOnThreadSelection = (grid: DxGridElement | null) => {\n const { model, setActiveRefs } = useSheetContext();\n const sheetId = Obj.getDXN(model.sheet).toString();\n\n const scrollIntoViewHandler = useMemo(\n () =>\n OperationResolver.make({\n operation: Common.LayoutOperation.ScrollIntoView,\n position: 'hoist',\n filter: (input) => input.subject === sheetId && !!input.cursor,\n handler: (input) =>\n Effect.sync(() => {\n const { cursor, ref } = input;\n if (cursor) {\n setActiveRefs(ref as GridContentProps['activeRefs']);\n // TODO(Zan): Everywhere we refer to the cursor in a thread context should change to `anchor`.\n const range = parseThreadAnchorAsCellRange(cursor);\n range && grid?.setFocus({ ...range.to, plane: 'grid' }, true);\n }\n }),\n }),\n [sheetId, setActiveRefs, grid],\n );\n\n useOperationResolver(meta.id, scrollIntoViewHandler);\n};\n\nexport const useSelectThreadOnCellFocus = () => {\n const { model, cursor } = useSheetContext();\n const { invokePromise } = useOperationInvoker();\n\n const db = Obj.getDatabase(model.sheet);\n const anchors = useQuery(db, Query.select(Filter.id(model.sheet.id)).targetOf(AnchoredTo.AnchoredTo));\n\n const selectClosestThread = useCallback(\n (cellAddress: CellAddress) => {\n if (!cellAddress) {\n return;\n }\n\n const closestThread = anchors.find((anchor) => {\n const source = Relation.getSource(anchor);\n if (anchor.anchor && Obj.instanceOf(Thread.Thread, source)) {\n const range = parseThreadAnchorAsCellRange(anchor.anchor);\n return range ? inRange(range, cellAddress) : false;\n } else {\n return false;\n }\n });\n\n if (closestThread) {\n const primary = Obj.getDXN(model.sheet).toString();\n void (async () => {\n await invokePromise(ThreadOperation.Select, { current: Relation.getDXN(closestThread).toString() });\n await invokePromise(DeckOperation.ChangeCompanion, {\n primary,\n companion: `${primary}${ATTENDABLE_PATH_SEPARATOR}comments`,\n });\n })();\n }\n },\n [invokePromise, anchors],\n );\n\n const debounced = useMemo(() => {\n return debounce((cellCoords: CellAddress) => requestAnimationFrame(() => selectClosestThread(cellCoords)), 50);\n }, [selectClosestThread]);\n\n useEffect(() => {\n if (!cursor) {\n return;\n }\n\n debounced(cursor);\n }, [cursor, debounced]);\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type PropsWithChildren, createContext, useCallback, useContext, useState } from 'react';\n\nimport { type CellAddress, type CellRange, type CompleteCellRange, type ComputeGraph } from '@dxos/compute';\nimport { Obj } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport {\n Grid,\n type GridContentProps,\n type GridEditing,\n type GridScopedProps,\n useGridContext,\n} from '@dxos/react-ui-grid';\n\nimport { type SheetModel, useSheetModel } from '../../model';\nimport { type Sheet } from '../../types';\n\nexport type SheetContextValue = {\n id: string;\n\n model: SheetModel;\n\n // Cursor state.\n // TODO(burdon): Cursor and range should use indices.\n cursor?: CellAddress;\n setCursor: (cell: CellAddress | undefined) => void;\n range?: CellRange;\n setRange: (range: CellRange | undefined) => void;\n cursorFallbackRange?: CompleteCellRange;\n\n // Editing state (undefined if not editing).\n editing: GridEditing;\n setEditing: (editing: GridEditing) => void;\n\n // Active refs\n activeRefs: GridContentProps['activeRefs'];\n setActiveRefs: (activeRefs: GridContentProps['activeRefs']) => void;\n\n // Events.\n // TODO(burdon): Generalize.\n onInfo?: () => void;\n\n // Flags\n ignoreAttention?: boolean;\n};\n\nconst SheetContext = createContext<SheetContextValue | undefined>(undefined);\n\nexport const useSheetContext = (): SheetContextValue => {\n const context = useContext(SheetContext);\n invariant(context);\n return context;\n};\n\nconst SheetProviderImpl = ({\n __gridScope,\n children,\n ignoreAttention,\n model,\n onInfo,\n}: GridScopedProps<PropsWithChildren<Pick<SheetContextValue, 'ignoreAttention' | 'model' | 'onInfo'>>>) => {\n const { id, editing, setEditing } = useGridContext('SheetProvider', __gridScope);\n\n const [cursor, setCursorInternal] = useState<CellAddress>();\n const [range, setRangeInternal] = useState<CellRange>();\n const [cursorFallbackRange, setCursorFallbackRange] = useState<CompleteCellRange>();\n const [activeRefs, setActiveRefs] = useState<GridContentProps['activeRefs']>('');\n\n const setCursor = useCallback(\n (nextCursor?: CellAddress) => {\n setCursorInternal(nextCursor);\n setCursorFallbackRange(\n range?.to ? (range as CompleteCellRange) : nextCursor ? { from: nextCursor!, to: nextCursor! } : undefined,\n );\n },\n [range],\n );\n const setRange = useCallback(\n (nextRange?: CellRange) => {\n setRangeInternal(nextRange);\n setCursorFallbackRange(\n nextRange?.to ? (nextRange as CompleteCellRange) : cursor ? { from: cursor!, to: cursor! } : undefined,\n );\n },\n [cursor],\n );\n\n return (\n <SheetContext.Provider\n value={{\n id,\n model,\n editing,\n setEditing,\n cursor,\n setCursor,\n range,\n setRange,\n cursorFallbackRange,\n activeRefs,\n setActiveRefs,\n // TODO(burdon): Change to event.\n onInfo,\n ignoreAttention,\n }}\n >\n {children}\n </SheetContext.Provider>\n );\n};\n\nexport type SheetProviderProps = {\n graph: ComputeGraph;\n sheet: Sheet.Sheet;\n readonly?: boolean;\n ignoreAttention?: boolean;\n} & Pick<SheetContextValue, 'onInfo'>;\n\nexport const SheetProvider = ({\n children,\n graph,\n sheet,\n readonly,\n ignoreAttention,\n onInfo,\n}: PropsWithChildren<SheetProviderProps>) => {\n const model = useSheetModel(graph, sheet, { readonly });\n\n return !model ? null : (\n <Grid.Root id={Obj.getDXN(sheet).toString()}>\n <SheetProviderImpl model={model} onInfo={onInfo} ignoreAttention={ignoreAttention}>\n {children}\n </SheetProviderImpl>\n </Grid.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Event } from '@dxos/async';\nimport {\n type CellAddress,\n type CellRange,\n type CellScalarValue,\n type ComputeGraph,\n type ComputeNode,\n type ComputeNodeEvent,\n DetailedCellError,\n ExportedCellChange,\n type SimpleCellAddress,\n type SimpleCellRange,\n type SimpleDate,\n type SimpleDateTime,\n addressFromA1Notation,\n addressToA1Notation,\n createSheetName,\n isFormula,\n} from '@dxos/compute';\nimport { Resource } from '@dxos/context';\nimport { Obj } from '@dxos/echo';\nimport { Format, TypeEnum } from '@dxos/echo/internal';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\n\nimport {\n MAX_COLS,\n MAX_ROWS,\n ReadonlyException,\n addressFromIndex,\n addressToIndex,\n initialize,\n insertIndices,\n mapFormulaIndicesToRefs,\n mapFormulaRefsToIndices,\n} from '../types';\nimport { type Sheet, type SheetAction } from '../types';\n\n// TODO(burdon): Move to compute.\n// Map sheet types to system types.\n// https://hyperformula.handsontable.com/guide/types-of-values.html\n// - https://github.com/handsontable/hyperformula/blob/master/src/Cell.ts (CellValueType)\n// - https://github.com/handsontable/hyperformula/blob/master/src/interpreter/InterpreterValue.ts (NumberType)\nconst typeMap: Record<string, { type: TypeEnum; format?: Format.TypeFormat }> = {\n BOOLEAN: { type: TypeEnum.Boolean },\n NUMBER_RAW: { type: TypeEnum.Number },\n NUMBER_PERCENT: { type: TypeEnum.Number, format: Format.TypeFormat.Percent },\n NUMBER_CURRENCY: { type: TypeEnum.Number, format: Format.TypeFormat.Currency },\n NUMBER_DATETIME: { type: TypeEnum.String, format: Format.TypeFormat.DateTime },\n NUMBER_DATE: { type: TypeEnum.String, format: Format.TypeFormat.Date },\n NUMBER_TIME: { type: TypeEnum.String, format: Format.TypeFormat.Time },\n};\n\nconst getTopLeft = (range: CellRange): CellAddress => {\n const to = range.to ?? range.from;\n return { row: Math.min(range.from.row, to.row), col: Math.min(range.from.col, to.col) };\n};\n\nconst toSimpleCellAddress = (sheet: number, cell: CellAddress): SimpleCellAddress => ({\n sheet,\n row: cell.row,\n col: cell.col,\n});\n\nconst toModelRange = (sheet: number, range: CellRange): SimpleCellRange => ({\n start: toSimpleCellAddress(sheet, range.from),\n end: toSimpleCellAddress(sheet, range.to ?? range.from),\n});\n\nexport type SheetModelOptions = {\n readonly?: boolean;\n};\n\n/**\n * Spreadsheet data model.\n *\n * [ComputeGraphContext] > [SheetContext]:[SheetModel] > [Sheet.Root]\n */\n// TODO(burdon): Factor out commonality with ComputeNode. Factor out HF.\nexport class SheetModel extends Resource {\n public readonly id = `model-${PublicKey.random().truncate()}`;\n\n // Wraps compute node.\n public readonly update = new Event<ComputeNodeEvent>();\n\n private _node?: ComputeNode;\n\n constructor(\n private readonly _graph: ComputeGraph,\n private readonly _sheet: Sheet.Sheet,\n private readonly _options: SheetModelOptions = {},\n ) {\n super();\n }\n\n get graph() {\n return this._graph;\n }\n\n get sheet() {\n return this._sheet;\n }\n\n get readonly() {\n return this._options.readonly;\n }\n\n get bounds() {\n return {\n rows: this._sheet.rows.length,\n columns: this._sheet.columns.length,\n };\n }\n\n /**\n * Initialize sheet and engine.\n */\n protected override async _open(): Promise<void> {\n log('initialize', { id: this.id });\n Obj.change(this._sheet, (s) => {\n initialize(s);\n });\n\n this._graph.update.on((event) => {\n if (event.type === 'functionsUpdated') {\n this.reset();\n }\n });\n\n // TODO(burdon): SheetModel should extend ComputeNode and be constructed via the graph.\n this._node = this._graph.getOrCreateNode(\n createSheetName({ type: Obj.getTypename(this._sheet)!, id: this._sheet.id }),\n );\n await this._node.open();\n\n // Listen for model updates (e.g., async calculations).\n const unsubscribe = this._node.update.on((event) => this.update.emit(event));\n this._ctx.onDispose(unsubscribe);\n\n this.reset();\n }\n\n /**\n * Update engine.\n * NOTE: This resets the undo history.\n * @deprecated\n */\n reset(): void {\n invariant(this._node);\n this._node.graph.hf.clearSheet(this._node.sheetId);\n Object.entries(this._sheet.cells).forEach(([key, { value }]) => {\n invariant(this._node);\n const { col, row } = addressFromIndex(this._sheet, key);\n if (isFormula(value)) {\n const binding = this._graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(this._sheet, value));\n if (binding) {\n value = this._graph.mapFormulaToNative(binding);\n } else {\n // If binding is not found, render the cell as empty.\n // This prevents the cell from momentarily rendering an error while the binding is being loaded.\n value = '';\n }\n }\n\n this._node.graph.hf.setCellContents({ sheet: this._node.sheetId, row, col }, value);\n });\n }\n\n /**\n * Recalculate formulas.\n * NOTE: This resets the undo history.\n * https://hyperformula.handsontable.com/guide/volatile-functions.html#volatile-actions\n * @deprecated\n */\n // TODO(burdon): Remove.\n recalculate(): void {\n this._node?.graph.hf.rebuildAndRecalculate();\n }\n\n insertRows(i: number, n = 1): string[] {\n let idx: string[] = [];\n Obj.change(this._sheet, (s) => {\n idx = insertIndices(s.rows, i, n, MAX_ROWS);\n });\n this.reset();\n return idx;\n }\n\n insertColumns(i: number, n = 1): string[] {\n let idx: string[] = [];\n Obj.change(this._sheet, (s) => {\n idx = insertIndices(s.columns, i, n, MAX_COLS);\n });\n this.reset();\n return idx;\n }\n\n dropRow(rowIndex: string): SheetAction.RestoreAxis {\n const range = {\n from: addressFromIndex(this._sheet, `${this._sheet.columns[0]}@${rowIndex}`),\n to: addressFromIndex(this._sheet, `${this._sheet.columns[this._sheet.columns.length - 1]}@${rowIndex}`),\n };\n const values = this.getCellValues(range).flat();\n const index = this._sheet.rows.indexOf(rowIndex);\n this.clear(range);\n Obj.change(this._sheet, (s) => {\n s.rows.splice(index, 1);\n delete s.rowMeta[rowIndex];\n });\n this.reset();\n return { axis: 'row', index, axisIndex: rowIndex, axisMeta: this._sheet.rowMeta[rowIndex], values };\n }\n\n dropColumn(colIndex: string): SheetAction.RestoreAxis {\n const range = {\n from: addressFromIndex(this._sheet, `${colIndex}@${this._sheet.rows[0]}`),\n to: addressFromIndex(this._sheet, `${colIndex}@${this._sheet.rows[this._sheet.rows.length - 1]}`),\n };\n const values = this.getCellValues(range).flat();\n const index = this._sheet.columns.indexOf(colIndex);\n this.clear(range);\n Obj.change(this._sheet, (s) => {\n s.columns.splice(index, 1);\n delete s.columnMeta[colIndex];\n });\n this.reset();\n return { axis: 'col', index, axisIndex: colIndex, axisMeta: this._sheet.rowMeta[colIndex], values };\n }\n\n restoreRow({ index, axisIndex, axisMeta, values }: SheetAction.RestoreAxis): void {\n Obj.change(this._sheet, (s) => {\n s.rows.splice(index, 0, axisIndex);\n values.forEach((value, col) => {\n if (value) {\n s.cells[`${s.columns[col]}@${axisIndex}`] = { value };\n }\n });\n if (axisMeta) {\n s.rowMeta[axisIndex] = axisMeta;\n }\n });\n this.reset();\n }\n\n restoreColumn({ index, axisIndex, axisMeta, values }: SheetAction.RestoreAxis): void {\n Obj.change(this._sheet, (s) => {\n s.columns.splice(index, 0, axisIndex);\n values.forEach((value, row) => {\n if (value) {\n s.cells[`${axisIndex}@${s.rows[row]}`] = { value };\n }\n });\n if (axisMeta) {\n s.columnMeta[axisIndex] = axisMeta;\n }\n });\n this.reset();\n }\n\n //\n // Undoable actions.\n // TODO(burdon): Group undoable methods; consistently update hf/sheet.\n //\n\n /**\n * Clear range of values.\n */\n clear(range: CellRange): void {\n invariant(this._node);\n const topLeft = getTopLeft(range);\n const values = this._iterRange(range, () => null);\n this._node.graph.hf.setCellContents(toSimpleCellAddress(this._node.sheetId, topLeft), values);\n Obj.change(this._sheet, (s) => {\n this._iterRange(range, (cell) => {\n const idx = addressToIndex(this._sheet, cell);\n delete s.cells[idx];\n });\n });\n }\n\n cut(range: CellRange): void {\n invariant(this._node);\n this._node.graph.hf.cut(toModelRange(this._node.sheetId, range));\n Obj.change(this._sheet, (s) => {\n this._iterRange(range, (cell) => {\n const idx = addressToIndex(this._sheet, cell);\n delete s.cells[idx];\n });\n });\n }\n\n copy(range: CellRange): void {\n invariant(this._node);\n this._node.graph.hf.copy(toModelRange(this._node.sheetId, range));\n }\n\n paste(cell: CellAddress): void {\n invariant(this._node);\n if (!this._node.graph.hf.isClipboardEmpty()) {\n const changes = this._node.graph.hf.paste(toSimpleCellAddress(this._node.sheetId, cell));\n Obj.change(this._sheet, (s) => {\n for (const change of changes) {\n if (change instanceof ExportedCellChange) {\n const { address, newValue } = change;\n const idx = addressToIndex(this._sheet, { row: address.row, col: address.col });\n s.cells[idx] = { value: newValue };\n }\n }\n });\n }\n }\n\n // TODO(burdon): Display undo/redo state.\n undo(): void {\n invariant(this._node);\n if (this._node.graph.hf.isThereSomethingToUndo()) {\n this._node.graph.hf.undo();\n // this.update.emit();\n }\n }\n\n redo(): void {\n invariant(this._node);\n if (this._node.graph.hf.isThereSomethingToRedo()) {\n this._node.graph.hf.redo();\n // this.update.emit();\n }\n }\n\n /**\n * Get value from sheet.\n */\n getCellValue(cell: CellAddress): CellScalarValue {\n const idx = addressToIndex(this._sheet, cell);\n return this._sheet.cells[idx]?.value ?? null;\n }\n\n /**\n * Get value as a string for editing.\n */\n getCellText(cell: CellAddress): string | undefined {\n const value = this.getCellValue(cell);\n if (value == null) {\n return undefined;\n }\n\n if (isFormula(value)) {\n return this._graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(this._sheet, value));\n } else {\n return String(value);\n }\n }\n\n /**\n * Get array of raw values from sheet.\n */\n getCellValues(range: CellRange): CellScalarValue[][] {\n return this._iterRange(range, (cell) => this.getCellValue(cell));\n }\n\n /**\n * Gets the regular or computed value from the engine.\n */\n getValue(cell: CellAddress): CellScalarValue {\n // Applies rounding and post-processing.\n invariant(this._node);\n const address = toSimpleCellAddress(this._node.sheetId, cell);\n const value = this._node.graph.hf.getCellValue(address);\n if (value instanceof DetailedCellError) {\n // TODO(wittjosiah): Error details should be shown in cell `title`.\n log.warn('cell error', { cell, error: value });\n return value.toString();\n }\n\n return value;\n }\n\n /**\n * Get value type.\n */\n getValueDescription(cell: CellAddress): { type: TypeEnum; format?: Format.TypeFormat } | undefined {\n invariant(this._node);\n const addr = toSimpleCellAddress(this._node.sheetId, cell);\n const type = this._node.graph.hf.getCellValueDetailedType(addr);\n return typeMap[type];\n }\n\n /**\n * Sets the value, updating the sheet and engine.\n */\n setValue(cell: CellAddress, value: CellScalarValue): void {\n invariant(this._node);\n if (this._options.readonly) {\n throw new ReadonlyException();\n }\n\n // Reallocate if > current bounds.\n let refresh = false;\n if (cell.row >= this._sheet.rows.length) {\n Obj.change(this._sheet, (s) => {\n insertIndices(s.rows, cell.row, 1, MAX_ROWS);\n });\n refresh = true;\n }\n if (cell.col >= this._sheet.columns.length) {\n Obj.change(this._sheet, (s) => {\n insertIndices(s.columns, cell.col, 1, MAX_COLS);\n });\n refresh = true;\n }\n\n if (refresh) {\n // TODO(burdon): Remove.\n this.reset();\n }\n\n // Insert into engine.\n this._node.graph.hf.setCellContents({ sheet: this._node.sheetId, row: cell.row, col: cell.col }, [\n [isFormula(value) ? this._graph.mapFormulaToNative(value) : value],\n ]);\n\n // Insert into sheet.\n const idx = addressToIndex(this._sheet, cell);\n if (value === undefined || value === null) {\n Obj.change(this._sheet, (s) => {\n delete s.cells[idx];\n });\n } else {\n if (isFormula(value)) {\n value = this._graph.mapFunctionBindingToId(mapFormulaRefsToIndices(this._sheet, value));\n }\n\n Obj.change(this._sheet, (s) => {\n s.cells[idx] = { value };\n });\n }\n }\n\n /**\n * Sets values from a simple map.\n */\n setValues(values: Record<string, Sheet.CellValue>): void {\n Object.entries(values).forEach(([key, { value }]) => {\n this.setValue(addressFromA1Notation(key), value);\n });\n }\n\n /**\n * Iterate range.\n */\n private _iterRange(range: CellRange, cb: (cell: CellAddress) => CellScalarValue | void): CellScalarValue[][] {\n const to = range.to ?? range.from;\n const rowRange = [Math.min(range.from.row, to.row), Math.max(range.from.row, to.row)];\n const columnRange = [Math.min(range.from.col, to.col), Math.max(range.from.col, to.col)];\n const rows: CellScalarValue[][] = [];\n for (let row = rowRange[0]; row <= rowRange[1]; row++) {\n const rowCells: CellScalarValue[] = [];\n for (let column = columnRange[0]; column <= columnRange[1]; column++) {\n const value = cb({ row, col: column });\n if (value !== undefined) {\n rowCells.push(value);\n }\n }\n\n rows.push(rowCells);\n }\n\n return rows;\n }\n\n // TODO(burdon): Delete index.\n private _deleteIndices(indices: string[], i: number, n: number): void {\n throw new Error('Not implemented');\n }\n\n // TODO(burdon): Move. Cannot use fractional without changing. Switch back to using unique IDs?\n private _moveIndices(indices: string[], i: number, j: number, n: number): void {\n throw new Error('Not implemented');\n }\n\n /**\n * Map from indices to A1 notation.\n */\n mapFormulaIndicesToRefs(formula: string): string {\n invariant(isFormula(formula));\n return formula.replace(/([a-zA-Z0-9]+)@([a-zA-Z0-9]+)/g, (idx) => {\n return addressToA1Notation(addressFromIndex(this._sheet, idx));\n });\n }\n\n //\n // Values\n //\n\n /**\n * https://hyperformula.handsontable.com/guide/date-and-time-handling.html#example\n * https://hyperformula.handsontable.com/api/interfaces/configparams.html#nulldate\n * NOTE: TODAY() is number of FULL days since nullDate. It will typically be -1 days from NOW().\n */\n toLocalDate(num: number): Date {\n const { year, month, day, hours, minutes, seconds } = this.toDateTime(num);\n return new Date(year, month - 1, day, hours, minutes, seconds);\n }\n\n toDateTime(num: number): SimpleDateTime {\n invariant(this._node);\n return this._node.graph.hf.numberToDateTime(num) as SimpleDateTime;\n }\n\n toDate(num: number): SimpleDate {\n invariant(this._node);\n return this._node.graph.hf.numberToDate(num) as SimpleDate;\n }\n\n toTime(num: number): SimpleDate {\n invariant(this._node);\n return this._node.graph.hf.numberToTime(num) as SimpleDate;\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { type ComputeGraph } from '@dxos/compute';\n\nimport { SheetModel } from '../model';\nimport { type Sheet } from '../types';\n\nexport type UseSheetModelOptions = {\n readonly?: boolean;\n};\n\nexport const useSheetModel = (\n graph?: ComputeGraph,\n sheet?: Sheet.Sheet,\n { readonly }: UseSheetModelOptions = {},\n): SheetModel | undefined => {\n const [model, setModel] = useState<SheetModel>();\n useEffect(() => {\n if (!graph || !sheet) {\n return;\n }\n\n let model: SheetModel | undefined;\n const t = setTimeout(async () => {\n model = new SheetModel(graph, sheet, { readonly });\n await model.open();\n setModel(model);\n });\n\n return () => {\n clearTimeout(t);\n void model?.close();\n };\n }, [graph, sheet, readonly]);\n\n return model;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { inRange } from '@dxos/compute';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { cellClassesForFieldType, parseValue } from '@dxos/react-ui-form';\nimport {\n type DxGridAxisMeta,\n type DxGridCellValue,\n type DxGridElement,\n type DxGridPlane,\n type DxGridPlaneCells,\n type DxGridPlaneRange,\n type GridContentProps,\n colToA1Notation,\n commentedClassName,\n rowToA1Notation,\n} from '@dxos/react-ui-grid';\nimport { mx } from '@dxos/ui-theme';\n\nimport { type SheetModel } from '../../model';\nimport { cellClassNameForRange, rangeFromIndex } from '../../types';\n\nconst createDxGridColumns = (model: SheetModel): DxGridAxisMeta => {\n return model.sheet.columns.reduce(\n (acc: DxGridAxisMeta, columnId, numericIndex) => {\n if (model.sheet.columnMeta[columnId] && model.sheet.columnMeta[columnId].size) {\n acc.grid[numericIndex] = {\n size: model.sheet.columnMeta[columnId].size,\n resizeable: true,\n };\n }\n return acc;\n },\n { grid: {} },\n );\n};\n\nconst createDxGridRows = (model: SheetModel): DxGridAxisMeta => {\n return model.sheet.rows.reduce(\n (acc: DxGridAxisMeta, rowId, numericIndex) => {\n if (model.sheet.rowMeta[rowId] && model.sheet.rowMeta[rowId].size) {\n acc.grid[numericIndex] = {\n size: model.sheet.rowMeta[rowId].size,\n resizeable: true,\n };\n }\n return acc;\n },\n { grid: {} },\n );\n};\n\nconst projectCellProps = (model: SheetModel, col: number, row: number): DxGridCellValue => {\n const address = { col, row };\n const rawValue = model.getValue(address);\n const ranges = model.sheet.ranges?.filter(({ range }) => inRange(rangeFromIndex(model.sheet, range), address));\n const threadRefs = undefined;\n // TODO(wittjosiah): Update this to get threads via relations.\n // model.sheet.threads\n // ?.filter((thread) => {\n // const range = thread.target?.anchor && parseThreadAnchorAsCellRange(thread.target!.anchor);\n // return thread && range ? inRange(range, address) : false;\n // })\n // .map((thread) => Obj.getDXN(thread!).toString())\n // .join(' ');\n\n const description = model.getValueDescription(address);\n const type = description?.type;\n const format = description?.format;\n const classNames = ranges?.map(cellClassNameForRange).reverse();\n\n return {\n value: parseValue({ type, format, value: rawValue }),\n className: mx(cellClassesForFieldType({ type, format }), threadRefs && commentedClassName, classNames),\n dataRefs: threadRefs,\n };\n};\nconst gridCellGetter = (model: SheetModel) => {\n // TODO(thure): Actually use the cache.\n const cachedGridCells: DxGridPlaneCells = {};\n return (nextBounds: DxGridPlaneRange): DxGridPlaneCells => {\n [...Array(nextBounds.end.col - nextBounds.start.col)].forEach((_, c0) => {\n return [...Array(nextBounds.end.row - nextBounds.start.row)].forEach((_, r0) => {\n const col = nextBounds.start.col + c0;\n const row = nextBounds.start.row + r0;\n cachedGridCells[`${col},${row}`] = projectCellProps(model, col, row);\n });\n });\n return cachedGridCells;\n };\n};\n\nexport const rowLabelCell = (row: number) => ({\n value: rowToA1Notation(row),\n className: '!bg-toolbarSurface text-subdued text-end pie-1',\n resizeHandle: 'row',\n});\n\nexport const colLabelCell = (col: number) => ({\n value: colToA1Notation(col),\n className: '!bg-toolbarSurface text-subdued',\n resizeHandle: 'col',\n});\n\nconst cellGetter = (model: SheetModel) => {\n const getGridCells = gridCellGetter(model);\n return (nextBounds: DxGridPlaneRange, plane: DxGridPlane): DxGridPlaneCells => {\n switch (plane) {\n case 'grid':\n return getGridCells(nextBounds);\n case 'fixedStartStart': {\n return {\n '0,0': { className: '!bg-toolbarSurface' },\n };\n }\n case 'frozenColsStart':\n return [...Array(nextBounds.end.row - nextBounds.start.row)].reduce((acc, _, r0) => {\n const r = nextBounds.start.row + r0;\n acc[`0,${r}`] = rowLabelCell(r);\n return acc;\n }, {});\n case 'frozenRowsStart':\n return [...Array(nextBounds.end.col - nextBounds.start.col)].reduce((acc, _, c0) => {\n const c = nextBounds.start.col + c0;\n acc[`${c},0`] = colLabelCell(c);\n return acc;\n }, {});\n default:\n return {};\n }\n };\n};\n\nexport const useSheetModelDxGridProps = (\n dxGrid: DxGridElement | null,\n model: SheetModel,\n): Pick<GridContentProps, 'columns' | 'rows'> => {\n const [columns, setColumns] = useState<DxGridAxisMeta>(createDxGridColumns(model));\n const [rows, setRows] = useState<DxGridAxisMeta>(createDxGridRows(model));\n\n useEffect(() => {\n const cellsAccessor = createDocAccessor(model.sheet, ['cells']);\n if (dxGrid) {\n dxGrid.getCells = cellGetter(model);\n }\n const handleCellsUpdate = () => {\n dxGrid?.requestUpdate('initialCells');\n };\n cellsAccessor.handle.addListener('change', handleCellsUpdate);\n const unsubscribe = model.graph.update.on(handleCellsUpdate);\n return () => {\n cellsAccessor.handle.removeListener('change', handleCellsUpdate);\n unsubscribe();\n };\n }, [model, dxGrid]);\n\n useEffect(() => {\n const columnMetaAccessor = createDocAccessor(model.sheet, ['columnMeta']);\n const rowMetaAccessor = createDocAccessor(model.sheet, ['rowMeta']);\n const handleColumnMetaUpdate = () => {\n setColumns(createDxGridColumns(model));\n };\n const handleRowMetaUpdate = () => {\n setRows(createDxGridRows(model));\n };\n columnMetaAccessor.handle.addListener('change', handleColumnMetaUpdate);\n rowMetaAccessor.handle.addListener('change', handleRowMetaUpdate);\n return () => {\n columnMetaAccessor.handle.removeListener('change', handleColumnMetaUpdate);\n rowMetaAccessor.handle.removeListener('change', handleRowMetaUpdate);\n };\n }, [model, dxGrid]);\n\n return { columns, rows };\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "createContext", "useContext", "raise", "useAsyncState", "ComputeGraphContext", "createContext", "undefined", "ComputeGraphContextProvider", "registry", "children", "Provider", "value", "useComputeGraph", "space", "useContext", "raise", "Error", "graph", "useAsyncState", "getOrCreateGraph", "open", "Schema", "React", "useCallback", "rangeToA1Notation", "Obj", "Callout", "useTranslation", "List", "ghostHover", "RangeList", "sheet", "t", "useTranslation", "meta", "id", "handleSelectRange", "range", "handleDeleteRange", "useCallback", "index", "ranges", "findIndex", "sheetRange", "Obj", "change", "s", "splice", "React", "h2", "className", "length", "Callout", "Root", "Title", "List", "items", "isItem", "is", "Sheet", "Range", "map", "i", "Item", "key", "item", "classNames", "ghostHover", "ItemDragHandle", "ItemTitle", "onClick", "position", "rangeToA1Notation", "rangeFromIndex", "value", "ItemDeleteButton", "lazy", "React", "useCallback", "useMemo", "useRef", "useState", "useOperationInvoker", "rangeToA1Notation", "defaultColSize", "defaultRowSize", "DropdownMenu", "Icon", "useTranslation", "useAttention", "Grid", "GridCellEditor", "closestCell", "editorKeys", "parseCellIndex", "Effect", "useCallback", "useEffect", "useMemo", "Common", "useOperationInvoker", "useOperationResolver", "debounce", "inRange", "Obj", "Relation", "OperationResolver", "ATTENDABLE_PATH_SEPARATOR", "DeckOperation", "ThreadOperation", "Filter", "Query", "useQuery", "AnchoredTo", "Thread", "parseThreadAnchorAsCellRange", "cursor", "coords", "split", "length", "fromCol", "fromRow", "toCol", "toRow", "from", "col", "parseInt", "row", "to", "useUpdateFocusedCellOnThreadSelection", "grid", "model", "setActiveRefs", "useSheetContext", "sheetId", "Obj", "getDXN", "sheet", "toString", "scrollIntoViewHandler", "useMemo", "OperationResolver", "make", "operation", "Common", "LayoutOperation", "ScrollIntoView", "position", "filter", "input", "subject", "handler", "sync", "ref", "range", "setFocus", "plane", "useOperationResolver", "meta", "id", "useSelectThreadOnCellFocus", "invokePromise", "useOperationInvoker", "db", "getDatabase", "anchors", "useQuery", "Query", "select", "Filter", "targetOf", "AnchoredTo", "selectClosestThread", "useCallback", "cellAddress", "closestThread", "find", "anchor", "source", "Relation", "getSource", "instanceOf", "Thread", "inRange", "primary", "ThreadOperation", "Select", "current", "DeckOperation", "ChangeCompanion", "companion", "ATTENDABLE_PATH_SEPARATOR", "debounced", "debounce", "cellCoords", "requestAnimationFrame", "useEffect", "React", "createContext", "useCallback", "useContext", "useState", "Obj", "invariant", "Grid", "useGridContext", "Event", "DetailedCellError", "ExportedCellChange", "addressFromA1Notation", "addressToA1Notation", "createSheetName", "isFormula", "Resource", "Obj", "Format", "TypeEnum", "invariant", "PublicKey", "log", "typeMap", "BOOLEAN", "type", "TypeEnum", "Boolean", "NUMBER_RAW", "Number", "NUMBER_PERCENT", "format", "Format", "TypeFormat", "Percent", "NUMBER_CURRENCY", "Currency", "NUMBER_DATETIME", "String", "DateTime", "NUMBER_DATE", "Date", "NUMBER_TIME", "Time", "getTopLeft", "range", "to", "from", "row", "Math", "min", "col", "toSimpleCellAddress", "sheet", "cell", "toModelRange", "start", "end", "SheetModel", "Resource", "id", "PublicKey", "random", "truncate", "update", "Event", "_node", "_graph", "_sheet", "_options", "graph", "readonly", "bounds", "rows", "length", "columns", "_open", "log", "Obj", "change", "s", "initialize", "on", "event", "reset", "getOrCreateNode", "createSheetName", "getTypename", "open", "unsubscribe", "emit", "_ctx", "onDispose", "invariant", "hf", "clearSheet", "sheetId", "Object", "entries", "cells", "forEach", "key", "value", "addressFromIndex", "isFormula", "binding", "mapFunctionBindingFromId", "mapFormulaIndicesToRefs", "mapFormulaToNative", "setCellContents", "recalculate", "rebuildAndRecalculate", "insertRows", "i", "n", "idx", "insertIndices", "MAX_ROWS", "insertColumns", "MAX_COLS", "dropRow", "rowIndex", "values", "getCellValues", "flat", "index", "indexOf", "clear", "splice", "rowMeta", "axis", "axisIndex", "axisMeta", "dropColumn", "colIndex", "columnMeta", "restoreRow", "restoreColumn", "topLeft", "_iterRange", "addressToIndex", "cut", "copy", "paste", "isClipboardEmpty", "changes", "ExportedCellChange", "address", "newValue", "undo", "isThereSomethingToUndo", "redo", "isThereSomethingToRedo", "getCellValue", "getCellText", "undefined", "getValue", "DetailedCellError", "warn", "error", "toString", "getValueDescription", "addr", "getCellValueDetailedType", "setValue", "ReadonlyException", "refresh", "mapFunctionBindingToId", "mapFormulaRefsToIndices", "setValues", "addressFromA1Notation", "cb", "rowRange", "max", "columnRange", "rowCells", "column", "push", "_deleteIndices", "indices", "Error", "_moveIndices", "j", "formula", "replace", "addressToA1Notation", "toLocalDate", "num", "year", "month", "day", "hours", "minutes", "seconds", "toDateTime", "numberToDateTime", "toDate", "numberToDate", "toTime", "numberToTime", "useEffect", "useState", "useSheetModel", "graph", "sheet", "readonly", "model", "setModel", "useState", "useEffect", "t", "setTimeout", "SheetModel", "open", "clearTimeout", "close", "SheetContext", "createContext", "undefined", "useSheetContext", "context", "useContext", "invariant", "SheetProviderImpl", "__gridScope", "children", "ignoreAttention", "model", "onInfo", "id", "editing", "setEditing", "useGridContext", "cursor", "setCursorInternal", "useState", "range", "setRangeInternal", "cursorFallbackRange", "setCursorFallbackRange", "activeRefs", "setActiveRefs", "setCursor", "useCallback", "nextCursor", "to", "from", "setRange", "nextRange", "React", "Provider", "value", "SheetProvider", "graph", "sheet", "readonly", "useSheetModel", "Grid", "Root", "Obj", "getDXN", "toString", "useEffect", "useState", "inRange", "createDocAccessor", "cellClassesForFieldType", "parseValue", "colToA1Notation", "commentedClassName", "rowToA1Notation", "mx", "createDxGridColumns", "model", "sheet", "columns", "reduce", "acc", "columnId", "numericIndex", "columnMeta", "size", "grid", "resizeable", "createDxGridRows", "rows", "rowId", "rowMeta", "projectCellProps", "col", "row", "address", "rawValue", "getValue", "ranges", "filter", "range", "inRange", "rangeFromIndex", "threadRefs", "undefined", "description", "getValueDescription", "type", "format", "classNames", "map", "cellClassNameForRange", "reverse", "value", "parseValue", "className", "mx", "cellClassesForFieldType", "commentedClassName", "dataRefs", "gridCellGetter", "cachedGridCells", "nextBounds", "Array", "end", "start", "forEach", "_", "c0", "r0", "rowLabelCell", "rowToA1Notation", "resizeHandle", "colLabelCell", "colToA1Notation", "cellGetter", "getGridCells", "plane", "r", "c", "useSheetModelDxGridProps", "dxGrid", "setColumns", "useState", "setRows", "useEffect", "cellsAccessor", "createDocAccessor", "getCells", "handleCellsUpdate", "requestUpdate", "handle", "addListener", "unsubscribe", "graph", "update", "on", "removeListener", "columnMetaAccessor", "rowMetaAccessor", "handleColumnMetaUpdate", "handleRowMetaUpdate", "inertPosition", "plane", "col", "row", "initialCells", "grid", "frozenColsStart", "Array", "reduce", "acc", "_", "i", "rowLabelCell", "frozenRowsStart", "colLabelCell", "frozen", "sheetColDefault", "size", "readonly", "focusUnfurl", "defaultColSize", "resizeable", "sheetRowDefault", "defaultRowSize", "GridSheet", "t", "useTranslation", "meta", "id", "model", "editing", "setCursor", "setRange", "cursor", "cursorFallbackRange", "activeRefs", "ignoreAttention", "useSheetContext", "dxGrid", "setDxGrid", "useState", "extraplanarFocus", "setExtraplanarFocus", "invokePromise", "useOperationInvoker", "rangeController", "useRef", "hasAttention", "useAttention", "handleFocus", "useCallback", "event", "cell", "closestCell", "target", "handleClose", "_value", "key", "shift", "axis", "includes", "undefined", "delta", "startsWith", "refocus", "handleBlur", "value", "setValue", "parseCellIndex", "index", "handleAxisResize", "numericIndex", "rowId", "sheet", "rows", "parseInt", "rowMeta", "columnId", "columns", "columnMeta", "handleSelect", "minCol", "maxCol", "minRow", "maxRow", "range", "from", "to", "current", "rangeToA1Notation", "handleWheel", "stopPropagation", "selectEntireAxis", "pos", "setSelection", "start", "end", "length", "handleClick", "handleKeyDown", "preventDefault", "clear", "metaKey", "ctrlKey", "cut", "copy", "paste", "shiftKey", "redo", "undo", "contextMenuAnchorRef", "contextMenuOpen", "setContextMenuOpen", "contextMenuAxis", "handleContextMenu", "handleAxisMenuAction", "operation", "SheetOperation", "InsertAxis", "DropAxis", "axisIndex", "useSheetModelDxGridProps", "extensions", "useMemo", "editorKeys", "onClose", "initialContent", "onNav", "sheetExtension", "functions", "graph", "getFunctions", "rangeExtension", "onInit", "fn", "onStateChange", "state", "mode", "activeRange", "getCellContent", "getCellText", "useUpdateFocusedCellOnThreadSelection", "useSelectThreadOnCellFocus", "React", "div", "role", "className", "GridCellEditor", "onBlur", "Grid", "Content", "limitColumns", "DEFAULT_COLS", "limitRows", "DEFAULT_ROWS", "columnDefault", "rowDefault", "onAxisResize", "onSelect", "onFocus", "onWheelCapture", "onKeyDown", "onContextMenu", "onClick", "overscroll", "ref", "DropdownMenu", "Root", "modal", "open", "onOpenChange", "nextOpen", "VirtualTrigger", "virtualRef", "side", "sideOffset", "collisionPadding", "Viewport", "Item", "data-testid", "Icon", "icon", "span", "Arrow", "SheetContainer", "lazy"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
SheetCapabilities
|
|
4
|
+
} from "./chunk-IMWGSIDG.mjs";
|
|
5
|
+
|
|
6
|
+
// src/capabilities/compute-graph-registry/compute-graph-registry.ts
|
|
7
|
+
import * as Effect from "effect/Effect";
|
|
8
|
+
import { Capability } from "@dxos/app-framework";
|
|
9
|
+
import { AutomationCapabilities } from "@dxos/plugin-automation";
|
|
10
|
+
var compute_graph_registry_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
11
|
+
const computeRuntimeResolver = yield* Capability.get(AutomationCapabilities.ComputeRuntime);
|
|
12
|
+
const { defaultPlugins, ComputeGraphRegistry } = yield* Effect.tryPromise(() => import("@dxos/compute"));
|
|
13
|
+
const computeGraphRegistry = new ComputeGraphRegistry({
|
|
14
|
+
plugins: defaultPlugins,
|
|
15
|
+
computeRuntime: computeRuntimeResolver
|
|
16
|
+
});
|
|
17
|
+
return Capability.contributes(SheetCapabilities.ComputeGraphRegistry, computeGraphRegistry);
|
|
18
|
+
}));
|
|
19
|
+
export {
|
|
20
|
+
compute_graph_registry_default as default
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=compute-graph-registry-VXH55GDI.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/compute-graph-registry/compute-graph-registry.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AutomationCapabilities } from '@dxos/plugin-automation';\n\nimport { SheetCapabilities } from '../../types';\n\n// Locally declare the Automation ComputeRuntime capability by ID to avoid direct import dependency.\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const computeRuntimeResolver = yield* Capability.get(AutomationCapabilities.ComputeRuntime);\n // TODO(wittjosiah): This can probably be a module level import now due to lazy capability loading.\n // Async import removes direct dependency on hyperformula.\n const { defaultPlugins, ComputeGraphRegistry } = yield* Effect.tryPromise(() => import('@dxos/compute'));\n const computeGraphRegistry = new ComputeGraphRegistry({\n plugins: defaultPlugins,\n computeRuntime: computeRuntimeResolver,\n });\n\n return Capability.contributes(SheetCapabilities.ComputeGraphRegistry, computeGraphRegistry);\n }),\n);\n"],
|
|
5
|
+
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,8BAA8B;AAMvC,IAAA,iCAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,yBAAyB,OAAOH,WAAWI,IAAIC,uBAAuBC,cAAc;AAG1F,QAAM,EAAEC,gBAAgBC,qBAAoB,IAAK,OAAcC,kBAAW,MAAM,OAAO,eAAA,CAAA;AACvF,QAAMC,uBAAuB,IAAIF,qBAAqB;IACpDG,SAASJ;IACTK,gBAAgBT;EAClB,CAAA;AAEA,SAAOH,WAAWa,YAAYC,kBAAkBN,sBAAsBE,oBAAAA;AACxE,CAAA,CAAA;",
|
|
6
|
+
"names": ["Effect", "Capability", "AutomationCapabilities", "Capability", "makeModule", "fnUntraced", "computeRuntimeResolver", "get", "AutomationCapabilities", "ComputeRuntime", "defaultPlugins", "ComputeGraphRegistry", "tryPromise", "computeGraphRegistry", "plugins", "computeRuntime", "contributes", "SheetCapabilities"]
|
|
7
|
+
}
|
|
@@ -1,34 +1,43 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
-
SheetCapabilities
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
SheetAction,
|
|
7
|
-
Sheet_exports
|
|
8
|
-
} from "./chunk-4H2EHVWE.mjs";
|
|
9
|
-
import {
|
|
3
|
+
SheetCapabilities,
|
|
4
|
+
SheetOperation,
|
|
5
|
+
Sheet_exports,
|
|
10
6
|
meta
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
|
|
13
|
-
// src/capabilities/index.ts
|
|
14
|
-
import { lazy } from "@dxos/app-framework";
|
|
15
|
-
var AnchorSort = lazy(() => import("./anchor-sort-ZE7IS7SH.mjs"));
|
|
16
|
-
var ComputeGraphRegistry = lazy(() => import("./compute-graph-registry-UMQ5UYCL.mjs"));
|
|
17
|
-
var IntentResolver = lazy(() => import("./intent-resolver-VNKIMQQT.mjs"));
|
|
18
|
-
var Markdown = lazy(() => import("./markdown-VKY7HXU2.mjs"));
|
|
19
|
-
var ReactSurface = lazy(() => import("./react-surface-RK32YZWR.mjs"));
|
|
7
|
+
} from "./chunk-IMWGSIDG.mjs";
|
|
20
8
|
|
|
21
9
|
// src/SheetPlugin.tsx
|
|
22
|
-
import
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
11
|
+
import { ActivationEvent, Capability as Capability6, Common, Plugin } from "@dxos/app-framework";
|
|
12
|
+
import { Operation } from "@dxos/operation";
|
|
23
13
|
import { AutomationEvents } from "@dxos/plugin-automation";
|
|
24
14
|
import { ClientEvents } from "@dxos/plugin-client";
|
|
25
15
|
import { MarkdownEvents } from "@dxos/plugin-markdown";
|
|
26
|
-
import { SpaceCapabilities } from "@dxos/plugin-space";
|
|
27
|
-
|
|
16
|
+
import { SpaceCapabilities, SpaceEvents } from "@dxos/plugin-space";
|
|
17
|
+
|
|
18
|
+
// src/capabilities/anchor-sort/index.ts
|
|
19
|
+
import { Capability } from "@dxos/app-framework";
|
|
20
|
+
var AnchorSort = Capability.lazy("AnchorSort", () => import("./anchor-sort-C3XFPI6S.mjs"));
|
|
21
|
+
|
|
22
|
+
// src/capabilities/compute-graph-registry/index.ts
|
|
23
|
+
import { Capability as Capability2 } from "@dxos/app-framework";
|
|
24
|
+
var ComputeGraphRegistry = Capability2.lazy("ComputeGraphRegistry", () => import("./compute-graph-registry-VXH55GDI.mjs"));
|
|
25
|
+
|
|
26
|
+
// src/capabilities/markdown/index.ts
|
|
27
|
+
import { Capability as Capability3 } from "@dxos/app-framework";
|
|
28
|
+
var Markdown = Capability3.lazy("Markdown", () => import("./markdown-6DGZCJRM.mjs"));
|
|
29
|
+
|
|
30
|
+
// src/capabilities/operation-resolver/index.ts
|
|
31
|
+
import { Capability as Capability4 } from "@dxos/app-framework";
|
|
32
|
+
var OperationResolver = Capability4.lazy("OperationResolver", () => import("./operation-resolver-OGXEUWHA.mjs"));
|
|
33
|
+
|
|
34
|
+
// src/capabilities/react-surface/index.ts
|
|
35
|
+
import { Capability as Capability5 } from "@dxos/app-framework";
|
|
36
|
+
var ReactSurface = Capability5.lazy("ReactSurface", () => import("./react-surface-RLHC6B77.mjs"));
|
|
28
37
|
|
|
29
38
|
// src/serializer.ts
|
|
30
39
|
import { Obj } from "@dxos/echo";
|
|
31
|
-
import { getObjectCore } from "@dxos/
|
|
40
|
+
import { getObjectCore } from "@dxos/echo-db";
|
|
32
41
|
var serializer = {
|
|
33
42
|
serialize: async ({ object }) => {
|
|
34
43
|
return JSON.stringify(object, null, 2);
|
|
@@ -55,7 +64,8 @@ var translations = [
|
|
|
55
64
|
"typename label_other": "Sheets",
|
|
56
65
|
"object name placeholder": "New sheet",
|
|
57
66
|
"rename object label": "Rename sheet",
|
|
58
|
-
"delete object label": "Delete sheet"
|
|
67
|
+
"delete object label": "Delete sheet",
|
|
68
|
+
"object deleted label": "Sheet deleted"
|
|
59
69
|
},
|
|
60
70
|
[meta.id]: {
|
|
61
71
|
"plugin name": "Sheets",
|
|
@@ -90,63 +100,43 @@ var translations = [
|
|
|
90
100
|
];
|
|
91
101
|
|
|
92
102
|
// src/SheetPlugin.tsx
|
|
93
|
-
var SheetPlugin =
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
id:
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
activatesOn: MarkdownEvents.SetupExtensions,
|
|
131
|
-
activate: Markdown
|
|
132
|
-
}),
|
|
133
|
-
defineModule({
|
|
134
|
-
id: `${meta.id}/module/anchor-sort`,
|
|
135
|
-
// TODO(wittjosiah): More relevant event?
|
|
136
|
-
activatesOn: Events.AppGraphReady,
|
|
137
|
-
activate: AnchorSort
|
|
138
|
-
}),
|
|
139
|
-
defineModule({
|
|
140
|
-
id: `${meta.id}/module/react-surface`,
|
|
141
|
-
activatesOn: Events.SetupReactSurface,
|
|
142
|
-
activate: ReactSurface
|
|
143
|
-
}),
|
|
144
|
-
defineModule({
|
|
145
|
-
id: `${meta.id}/module/intent-resolver`,
|
|
146
|
-
activatesOn: Events.SetupIntentResolver,
|
|
147
|
-
activate: IntentResolver
|
|
148
|
-
})
|
|
149
|
-
]);
|
|
103
|
+
var SheetPlugin = Plugin.define(meta).pipe(Plugin.addModule({
|
|
104
|
+
activatesOn: ActivationEvent.allOf(ClientEvents.ClientReady, AutomationEvents.ComputeRuntimeReady),
|
|
105
|
+
activate: ComputeGraphRegistry
|
|
106
|
+
}), Common.Plugin.addTranslationsModule({
|
|
107
|
+
translations
|
|
108
|
+
}), Common.Plugin.addMetadataModule({
|
|
109
|
+
metadata: {
|
|
110
|
+
id: Sheet_exports.Sheet.typename,
|
|
111
|
+
metadata: {
|
|
112
|
+
label: (object) => object.name,
|
|
113
|
+
icon: "ph--grid-nine--regular",
|
|
114
|
+
iconHue: "indigo",
|
|
115
|
+
serializer,
|
|
116
|
+
comments: "anchored",
|
|
117
|
+
createObject: (props) => Effect.sync(() => Sheet_exports.make(props))
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}), Common.Plugin.addSchemaModule({
|
|
121
|
+
schema: [
|
|
122
|
+
Sheet_exports.Sheet
|
|
123
|
+
]
|
|
124
|
+
}), Plugin.addModule({
|
|
125
|
+
id: "on-space-created",
|
|
126
|
+
activatesOn: SpaceEvents.SpaceCreated,
|
|
127
|
+
activate: () => Effect.succeed(Capability6.contributes(SpaceCapabilities.OnCreateSpace, (params) => Operation.invoke(SheetOperation.OnCreateSpace, params)))
|
|
128
|
+
}), Plugin.addModule({
|
|
129
|
+
activatesOn: MarkdownEvents.SetupExtensions,
|
|
130
|
+
activate: Markdown
|
|
131
|
+
}), Plugin.addModule({
|
|
132
|
+
// TODO(wittjosiah): More relevant event?
|
|
133
|
+
activatesOn: Common.ActivationEvent.AppGraphReady,
|
|
134
|
+
activate: AnchorSort
|
|
135
|
+
}), Common.Plugin.addSurfaceModule({
|
|
136
|
+
activate: ReactSurface
|
|
137
|
+
}), Common.Plugin.addOperationResolverModule({
|
|
138
|
+
activate: OperationResolver
|
|
139
|
+
}), Plugin.make);
|
|
150
140
|
export {
|
|
151
141
|
SheetCapabilities,
|
|
152
142
|
SheetPlugin,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/index.ts", "../../../src/
|
|
4
|
-
"sourcesContent": ["//\n// Copyright
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../../../src/SheetPlugin.tsx", "../../../src/capabilities/anchor-sort/index.ts", "../../../src/capabilities/compute-graph-registry/index.ts", "../../../src/capabilities/markdown/index.ts", "../../../src/capabilities/operation-resolver/index.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/serializer.ts", "../../../src/translations.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { ActivationEvent, Capability, Common, Plugin } from '@dxos/app-framework';\nimport { Operation } from '@dxos/operation';\nimport { AutomationEvents } from '@dxos/plugin-automation';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';\nimport { type CreateObject } from '@dxos/plugin-space/types';\n\nimport { AnchorSort, ComputeGraphRegistry, Markdown, OperationResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { serializer } from './serializer';\nimport { translations } from './translations';\nimport { Sheet, SheetOperation } from './types';\n\nexport const SheetPlugin = Plugin.define(meta).pipe(\n Plugin.addModule({\n activatesOn: ActivationEvent.allOf(ClientEvents.ClientReady, AutomationEvents.ComputeRuntimeReady),\n activate: ComputeGraphRegistry,\n }),\n Common.Plugin.addTranslationsModule({ translations }),\n Common.Plugin.addMetadataModule({\n metadata: {\n id: Sheet.Sheet.typename,\n metadata: {\n label: (object: Sheet.Sheet) => object.name,\n icon: 'ph--grid-nine--regular',\n iconHue: 'indigo',\n serializer,\n comments: 'anchored',\n createObject: ((props) => Effect.sync(() => Sheet.make(props))) satisfies CreateObject,\n },\n },\n }),\n Common.Plugin.addSchemaModule({ schema: [Sheet.Sheet] }),\n Plugin.addModule({\n id: 'on-space-created',\n activatesOn: SpaceEvents.SpaceCreated,\n activate: () =>\n Effect.succeed(\n Capability.contributes(SpaceCapabilities.OnCreateSpace, (params) =>\n Operation.invoke(SheetOperation.OnCreateSpace, params),\n ),\n ),\n }),\n Plugin.addModule({\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n Plugin.addModule({\n // TODO(wittjosiah): More relevant event?\n activatesOn: Common.ActivationEvent.AppGraphReady,\n activate: AnchorSort,\n }),\n Common.Plugin.addSurfaceModule({ activate: ReactSurface }),\n Common.Plugin.addOperationResolverModule({ activate: OperationResolver }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AnchorSort = Capability.lazy('AnchorSort', () => import('./anchor-sort'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ComputeGraphRegistry = Capability.lazy('ComputeGraphRegistry', () => import('./compute-graph-registry'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const Markdown = Capability.lazy('Markdown', () => import('./markdown'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Obj } from '@dxos/echo';\nimport { getObjectCore } from '@dxos/echo-db';\nimport { type TypedObjectSerializer } from '@dxos/plugin-space/types';\n\nimport { Sheet } from './types';\n\nexport const serializer: TypedObjectSerializer<Sheet.Sheet> = {\n serialize: async ({ object }): Promise<string> => {\n return JSON.stringify(object, null, 2);\n },\n\n deserialize: async ({ content, newId }) => {\n const { id, ...parsed } = JSON.parse(content);\n const sheet = Obj.make(Sheet.Sheet, parsed);\n\n if (!newId) {\n const core = getObjectCore(sheet);\n core.id = id;\n }\n\n return sheet;\n },\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Sheet } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Sheet.Sheet.typename]: {\n 'typename label': 'Sheet',\n 'typename label_zero': 'Sheets',\n 'typename label_one': 'Sheet',\n 'typename label_other': 'Sheets',\n 'object name placeholder': 'New sheet',\n 'rename object label': 'Rename sheet',\n 'delete object label': 'Delete sheet',\n 'object deleted label': 'Sheet deleted',\n },\n [meta.id]: {\n 'plugin name': 'Sheets',\n 'cell placeholder': 'Cell value...',\n 'range key alignment label': 'Align',\n 'range key style label': 'Style',\n 'range value start label': 'Align left',\n 'range value center label': 'Align center',\n 'range value end label': 'Align right',\n 'range value softwrap label': 'Wrap text',\n 'range value highlight label': 'Highlight',\n 'toolbar action label': '{{value}}',\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 'add col before label': 'Add column before',\n 'add col after label': 'Add column after',\n 'delete col label': 'Delete column',\n 'add row before label': 'Add row before',\n 'add row after label': 'Add row after',\n 'delete row label': 'Delete row',\n 'range list heading': 'Ranges',\n 'no ranges message': 'No ranges',\n 'range title': '{{position}} — {{value}}',\n 'col dropped label': 'Deleted a column',\n 'row dropped label': 'Deleted a row',\n },\n },\n },\n] as const satisfies Resource[];\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Effect", "ActivationEvent", "Capability", "Common", "Plugin", "Operation", "AutomationEvents", "ClientEvents", "MarkdownEvents", "SpaceCapabilities", "SpaceEvents", "Capability", "AnchorSort", "Capability", "lazy", "Capability", "ComputeGraphRegistry", "Capability", "lazy", "Capability", "Markdown", "Capability", "lazy", "Capability", "OperationResolver", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "Obj", "getObjectCore", "serializer", "serialize", "object", "JSON", "stringify", "deserialize", "content", "newId", "id", "parsed", "parse", "sheet", "Obj", "make", "Sheet", "core", "getObjectCore", "translations", "Sheet", "typename", "meta", "id", "SheetPlugin", "Plugin", "define", "meta", "pipe", "addModule", "activatesOn", "ActivationEvent", "allOf", "ClientEvents", "ClientReady", "AutomationEvents", "ComputeRuntimeReady", "activate", "ComputeGraphRegistry", "Common", "addTranslationsModule", "translations", "addMetadataModule", "metadata", "id", "Sheet", "typename", "label", "object", "name", "icon", "iconHue", "serializer", "comments", "createObject", "props", "sync", "make", "addSchemaModule", "schema", "SpaceEvents", "SpaceCreated", "succeed", "Capability", "contributes", "SpaceCapabilities", "OnCreateSpace", "params", "Operation", "invoke", "SheetOperation", "MarkdownEvents", "SetupExtensions", "Markdown", "AppGraphReady", "AnchorSort", "addSurfaceModule", "ReactSurface", "addOperationResolverModule", "OperationResolver"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
computeGraphFacet
|
|
4
|
+
} from "./chunk-PPOYR7DK.mjs";
|
|
5
|
+
import {
|
|
6
|
+
SheetCapabilities
|
|
7
|
+
} from "./chunk-IMWGSIDG.mjs";
|
|
8
|
+
|
|
9
|
+
// src/capabilities/markdown/markdown.ts
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
11
|
+
import { Capability } from "@dxos/app-framework";
|
|
12
|
+
import { getSpace } from "@dxos/client/echo";
|
|
13
|
+
import { MarkdownCapabilities } from "@dxos/plugin-markdown";
|
|
14
|
+
var markdown_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
15
|
+
const capabilities = yield* Capability.Service;
|
|
16
|
+
return Capability.contributes(MarkdownCapabilities.Extensions, [
|
|
17
|
+
({ document: doc }) => {
|
|
18
|
+
const computeGraphRegistry = capabilities.get(SheetCapabilities.ComputeGraphRegistry);
|
|
19
|
+
const space = getSpace(doc);
|
|
20
|
+
if (space) {
|
|
21
|
+
const computeGraph = computeGraphRegistry.getOrCreateGraph(space);
|
|
22
|
+
return computeGraphFacet.of(computeGraph);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
]);
|
|
26
|
+
}));
|
|
27
|
+
export {
|
|
28
|
+
markdown_default as default
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=markdown-6DGZCJRM.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/markdown/markdown.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { getSpace } from '@dxos/client/echo';\nimport { MarkdownCapabilities } from '@dxos/plugin-markdown';\n\nimport { computeGraphFacet } from '../../extensions';\nimport { SheetCapabilities } from '../../types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n // Get context for lazy capability access in callbacks.\n const capabilities = yield* Capability.Service;\n\n return Capability.contributes(MarkdownCapabilities.Extensions, [\n ({ document: doc }) => {\n const computeGraphRegistry = capabilities.get(SheetCapabilities.ComputeGraphRegistry);\n const space = getSpace(doc);\n if (space) {\n const computeGraph = computeGraphRegistry.getOrCreateGraph(space);\n return computeGraphFacet.of(computeGraph);\n }\n },\n ]);\n }),\n);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,gBAAgB;AACzB,SAASC,4BAA4B;AAKrC,IAAA,mBAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAEhB,QAAMC,eAAe,OAAOH,WAAWI;AAEvC,SAAOJ,WAAWK,YAAYC,qBAAqBC,YAAY;IAC7D,CAAC,EAAEC,UAAUC,IAAG,MAAE;AAChB,YAAMC,uBAAuBP,aAAaQ,IAAIC,kBAAkBC,oBAAoB;AACpF,YAAMC,QAAQC,SAASN,GAAAA;AACvB,UAAIK,OAAO;AACT,cAAME,eAAeN,qBAAqBO,iBAAiBH,KAAAA;AAC3D,eAAOI,kBAAkBC,GAAGH,YAAAA;MAC9B;IACF;GACD;AACH,CAAA,CAAA;",
|
|
6
|
+
"names": ["Effect", "Capability", "getSpace", "MarkdownCapabilities", "Capability", "makeModule", "fnUntraced", "capabilities", "Service", "contributes", "MarkdownCapabilities", "Extensions", "document", "doc", "computeGraphRegistry", "get", "SheetCapabilities", "ComputeGraphRegistry", "space", "getSpace", "computeGraph", "getOrCreateGraph", "computeGraphFacet", "of"]
|
|
7
|
+
}
|