@dxos/plugin-sheet 0.7.5-main.9d26e3a → 0.7.5-main.b19bfc8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/SheetContainer-IMHGS7Z4.mjs +370 -0
- package/dist/lib/browser/SheetContainer-IMHGS7Z4.mjs.map +7 -0
- package/dist/lib/browser/{chunk-A374JPWV.mjs → chunk-AT7F2WDW.mjs} +157 -391
- package/dist/lib/browser/chunk-AT7F2WDW.mjs.map +7 -0
- package/dist/lib/browser/chunk-FOO6NGBM.mjs +229 -0
- package/dist/lib/browser/chunk-FOO6NGBM.mjs.map +7 -0
- package/dist/lib/browser/chunk-GAFHJBCU.mjs +18 -0
- package/dist/lib/browser/chunk-GAFHJBCU.mjs.map +7 -0
- package/dist/lib/browser/chunk-LXHRT3CC.mjs +15 -0
- package/dist/lib/browser/chunk-LXHRT3CC.mjs.map +7 -0
- package/dist/lib/browser/{chunk-Q4XS4YWF.mjs → chunk-OOSRC36N.mjs} +2 -2
- package/dist/lib/browser/chunk-OOSRC36N.mjs.map +7 -0
- package/dist/lib/browser/compute-graph-registry-EGPD4HEX.mjs +27 -0
- package/dist/lib/browser/compute-graph-registry-EGPD4HEX.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +88 -218
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/intent-resolver-6S2RMLQF.mjs +56 -0
- package/dist/lib/browser/intent-resolver-6S2RMLQF.mjs.map +7 -0
- package/dist/lib/browser/markdown-CFJIWHZX.mjs +26 -0
- package/dist/lib/browser/markdown-CFJIWHZX.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-surface-PHKJZYFB.mjs +52 -0
- package/dist/lib/browser/react-surface-PHKJZYFB.mjs.map +7 -0
- package/dist/lib/browser/thread-7ZWW5EA7.mjs +17 -0
- package/dist/lib/browser/thread-7ZWW5EA7.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node/SheetContainer-NNIZN4AK.cjs +364 -0
- package/dist/lib/node/SheetContainer-NNIZN4AK.cjs.map +7 -0
- package/dist/lib/node/{chunk-FDEQ2PGJ.cjs → chunk-2KCZUH72.cjs} +198 -428
- package/dist/lib/node/chunk-2KCZUH72.cjs.map +7 -0
- package/dist/lib/node/{chunk-TQOJ7DG2.cjs → chunk-4LSYTNS4.cjs} +6 -6
- package/dist/lib/node/chunk-4LSYTNS4.cjs.map +7 -0
- package/dist/lib/node/{chunk-2ZVZI2KJ.cjs → chunk-MLU6KRQN.cjs} +12 -9
- package/dist/lib/node/chunk-MLU6KRQN.cjs.map +7 -0
- package/dist/lib/node/chunk-P4KSGZSS.cjs +251 -0
- package/dist/lib/node/chunk-P4KSGZSS.cjs.map +7 -0
- package/dist/lib/node/{meta.cjs → chunk-ZV2RS3QH.cjs} +12 -8
- package/dist/lib/node/chunk-ZV2RS3QH.cjs.map +7 -0
- package/dist/lib/node/compute-graph-registry-GJK5H264.cjs +53 -0
- package/dist/lib/node/compute-graph-registry-GJK5H264.cjs.map +7 -0
- package/dist/lib/node/index.cjs +89 -215
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/intent-resolver-I25V7SBT.cjs +69 -0
- package/dist/lib/node/intent-resolver-I25V7SBT.cjs.map +7 -0
- package/dist/lib/node/markdown-YTCSW66K.cjs +40 -0
- package/dist/lib/node/markdown-YTCSW66K.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/react-surface-HLE6CRA6.cjs +70 -0
- package/dist/lib/node/react-surface-HLE6CRA6.cjs.map +7 -0
- package/dist/lib/node/thread-DRNYTR6M.cjs +32 -0
- package/dist/lib/node/thread-DRNYTR6M.cjs.map +7 -0
- package/dist/lib/node/types/index.cjs +30 -30
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/SheetContainer-PGDJKGTZ.mjs +371 -0
- package/dist/lib/node-esm/SheetContainer-PGDJKGTZ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-NYYIDVR7.mjs → chunk-HPAMZ6SP.mjs} +2 -2
- package/dist/lib/node-esm/chunk-HPAMZ6SP.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-PTOI45NK.mjs +231 -0
- package/dist/lib/node-esm/chunk-PTOI45NK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-RTZXXOS2.mjs +20 -0
- package/dist/lib/node-esm/chunk-RTZXXOS2.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-SX3S7UKU.mjs +16 -0
- package/dist/lib/node-esm/chunk-SX3S7UKU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-L5PQHVTX.mjs → chunk-ZM7XLUGL.mjs} +157 -391
- package/dist/lib/node-esm/chunk-ZM7XLUGL.mjs.map +7 -0
- package/dist/lib/node-esm/compute-graph-registry-3F5JCYEN.mjs +28 -0
- package/dist/lib/node-esm/compute-graph-registry-3F5JCYEN.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +88 -218
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/intent-resolver-IPRSINII.mjs +57 -0
- package/dist/lib/node-esm/intent-resolver-IPRSINII.mjs.map +7 -0
- package/dist/lib/node-esm/markdown-CGSK44XJ.mjs +27 -0
- package/dist/lib/node-esm/markdown-CGSK44XJ.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-surface-PFRJ7V5N.mjs +53 -0
- package/dist/lib/node-esm/react-surface-PFRJ7V5N.mjs.map +7 -0
- package/dist/lib/node-esm/thread-6T5VXPAF.mjs +18 -0
- package/dist/lib/node-esm/thread-6T5VXPAF.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/SheetPlugin.d.ts +1 -3
- package/dist/types/src/SheetPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +5 -0
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
- package/dist/types/src/capabilities/compute-graph-registry.d.ts +4 -0
- package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +12 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/intent-resolver.d.ts +4 -0
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/markdown.d.ts +6 -0
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +4 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/thread.d.ts +6 -0
- package/dist/types/src/capabilities/thread.d.ts.map +1 -0
- package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts +1 -1
- package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
- package/dist/types/src/components/FunctionEditor/FunctionEditor.d.ts +1 -2
- package/dist/types/src/components/FunctionEditor/FunctionEditor.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/GridSheet.d.ts +1 -2
- package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +1 -2
- package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts +1 -2
- package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/RangeList/RangeList.d.ts +1 -2
- package/dist/types/src/components/RangeList/RangeList.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +1 -2
- package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts +2 -3
- package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetContext/SheetContext.d.ts +2 -2
- package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +7 -0
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +6 -0
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/align.d.ts +28 -0
- package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/comment.d.ts +23 -0
- package/dist/types/src/components/SheetToolbar/comment.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/index.d.ts +2 -0
- package/dist/types/src/components/SheetToolbar/index.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/style.d.ts +26 -0
- package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/useToolbarAction.d.ts +8 -0
- package/dist/types/src/components/SheetToolbar/useToolbarAction.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts +6 -0
- package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +3 -4
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/extensions/compute.stories.d.ts +2 -3
- package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/integrations/thread-ranges.d.ts.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/testing/testing.d.ts +1 -1
- package/dist/types/src/testing/testing.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +14 -14
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/sheet-range-types.d.ts +1 -1
- package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +0 -11
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +46 -52
- package/src/SheetPlugin.tsx +68 -105
- package/src/capabilities/capabilities.ts +14 -0
- package/src/capabilities/compute-graph-registry.ts +25 -0
- package/src/capabilities/index.ts +13 -0
- package/src/capabilities/intent-resolver.ts +38 -0
- package/src/capabilities/markdown.ts +22 -0
- package/src/capabilities/react-surface.tsx +37 -0
- package/src/capabilities/thread.ts +14 -0
- package/src/components/GridSheet/GridSheet.stories.tsx +2 -0
- package/src/components/GridSheet/util.ts +1 -1
- package/src/components/SheetContainer/SheetContainer.stories.tsx +28 -22
- package/src/components/SheetContainer/SheetContainer.tsx +3 -8
- package/src/components/{Toolbar/Toolbar.stories.tsx → SheetToolbar/SheetToolbar.stories.tsx} +4 -8
- package/src/components/SheetToolbar/SheetToolbar.tsx +48 -0
- package/src/components/SheetToolbar/align.ts +68 -0
- package/src/components/SheetToolbar/comment.ts +56 -0
- package/src/components/{Toolbar → SheetToolbar}/index.ts +1 -1
- package/src/components/SheetToolbar/style.ts +72 -0
- package/src/components/SheetToolbar/useToolbarAction.ts +87 -0
- package/src/components/SheetToolbar/useToolbarState.ts +17 -0
- package/src/components/index.ts +0 -1
- package/src/extensions/compute.stories.tsx +2 -2
- package/src/index.ts +2 -5
- package/src/integrations/thread-ranges.ts +21 -10
- package/src/meta.ts +4 -2
- package/src/types/sheet-range-types.ts +1 -1
- package/src/types/types.ts +0 -26
- package/dist/lib/browser/SheetContainer-S4NCLUYL.mjs +0 -290
- package/dist/lib/browser/SheetContainer-S4NCLUYL.mjs.map +0 -7
- package/dist/lib/browser/chunk-A374JPWV.mjs.map +0 -7
- package/dist/lib/browser/chunk-Q4XS4YWF.mjs.map +0 -7
- package/dist/lib/browser/chunk-RABELMEQ.mjs +0 -15
- package/dist/lib/browser/chunk-RABELMEQ.mjs.map +0 -7
- package/dist/lib/browser/meta.mjs +0 -9
- package/dist/lib/browser/meta.mjs.map +0 -7
- package/dist/lib/node/SheetContainer-TP4GYXZB.cjs +0 -296
- package/dist/lib/node/SheetContainer-TP4GYXZB.cjs.map +0 -7
- package/dist/lib/node/chunk-2ZVZI2KJ.cjs.map +0 -7
- package/dist/lib/node/chunk-FDEQ2PGJ.cjs.map +0 -7
- package/dist/lib/node/chunk-TQOJ7DG2.cjs.map +0 -7
- package/dist/lib/node/meta.cjs.map +0 -7
- package/dist/lib/node-esm/SheetContainer-YB3JBVPZ.mjs +0 -291
- package/dist/lib/node-esm/SheetContainer-YB3JBVPZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-BM2Q3FFC.mjs +0 -17
- package/dist/lib/node-esm/chunk-BM2Q3FFC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-L5PQHVTX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NYYIDVR7.mjs.map +0 -7
- package/dist/lib/node-esm/meta.mjs +0 -10
- package/dist/lib/node-esm/meta.mjs.map +0 -7
- package/dist/types/src/components/SheetObjectSettings.d.ts +0 -7
- package/dist/types/src/components/SheetObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/Toolbar/Toolbar.d.ts +0 -48
- package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +0 -1
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +0 -7
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +0 -1
- package/dist/types/src/components/Toolbar/index.d.ts +0 -2
- package/dist/types/src/components/Toolbar/index.d.ts.map +0 -1
- package/dist/types/src/testing/playwright/playwright.config.d.ts +0 -3
- package/dist/types/src/testing/playwright/playwright.config.d.ts.map +0 -1
- package/src/components/SheetObjectSettings.tsx +0 -38
- package/src/components/Toolbar/Toolbar.tsx +0 -344
- /package/src/testing/playwright/{playwright.config.ts → playwright.config.cts} +0 -0
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
rangeExtension,
|
|
3
|
+
sheetExtension
|
|
4
|
+
} from "./chunk-FOO6NGBM.mjs";
|
|
1
5
|
import {
|
|
2
6
|
DEFAULT_COLS,
|
|
3
7
|
DEFAULT_ROWS,
|
|
@@ -6,10 +10,10 @@ import {
|
|
|
6
10
|
cellClassNameForRange,
|
|
7
11
|
rangeFromIndex,
|
|
8
12
|
useSheetModel
|
|
9
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-OOSRC36N.mjs";
|
|
10
14
|
import {
|
|
11
15
|
SHEET_PLUGIN
|
|
12
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-GAFHJBCU.mjs";
|
|
13
17
|
|
|
14
18
|
// packages/plugins/plugin-sheet/src/components/ComputeGraph/ComputeGraphContextProvider.tsx
|
|
15
19
|
import React, { createContext, useContext } from "react";
|
|
@@ -38,334 +42,8 @@ var useComputeGraph = (space) => {
|
|
|
38
42
|
return graph;
|
|
39
43
|
};
|
|
40
44
|
|
|
41
|
-
// packages/plugins/plugin-sheet/src/extensions/compute.ts
|
|
42
|
-
import { syntaxTree } from "@codemirror/language";
|
|
43
|
-
import { RangeSetBuilder, StateEffect, StateField } from "@codemirror/state";
|
|
44
|
-
import { Decoration, EditorView, ViewPlugin, WidgetType } from "@codemirror/view";
|
|
45
|
-
import { debounce } from "@dxos/async";
|
|
46
|
-
import { createSheetName } from "@dxos/compute";
|
|
47
|
-
import { invariant } from "@dxos/invariant";
|
|
48
|
-
import { documentId, singleValueFacet } from "@dxos/react-ui-editor";
|
|
49
|
-
var updateAllDecorations = StateEffect.define();
|
|
50
|
-
var computeGraphFacet = singleValueFacet();
|
|
51
|
-
|
|
52
|
-
// packages/plugins/plugin-sheet/src/extensions/editor/extension.ts
|
|
53
|
-
import { acceptCompletion, autocompletion, completionStatus, startCompletion } from "@codemirror/autocomplete";
|
|
54
|
-
import { HighlightStyle, syntaxHighlighting } from "@codemirror/language";
|
|
55
|
-
import { ViewPlugin as ViewPlugin2, keymap } from "@codemirror/view";
|
|
56
|
-
import { tags } from "@lezer/highlight";
|
|
57
|
-
import { spreadsheet } from "codemirror-lang-spreadsheet";
|
|
58
|
-
import { RANGE_NOTATION } from "@dxos/compute";
|
|
59
|
-
import { singleValueFacet as singleValueFacet2 } from "@dxos/react-ui-editor";
|
|
60
|
-
import { mx } from "@dxos/react-ui-theme";
|
|
61
|
-
var highlightStyles = HighlightStyle.define([
|
|
62
|
-
// Function.
|
|
63
|
-
{
|
|
64
|
-
tag: tags.name,
|
|
65
|
-
class: "text-accentText"
|
|
66
|
-
},
|
|
67
|
-
// Range.
|
|
68
|
-
{
|
|
69
|
-
tag: tags.tagName,
|
|
70
|
-
class: "text-pinkText"
|
|
71
|
-
},
|
|
72
|
-
// Values.
|
|
73
|
-
{
|
|
74
|
-
tag: tags.number,
|
|
75
|
-
class: "text-tealText"
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
tag: tags.bool,
|
|
79
|
-
class: "text-tealText"
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
tag: tags.string,
|
|
83
|
-
class: "text-tealText"
|
|
84
|
-
},
|
|
85
|
-
// Error.
|
|
86
|
-
{
|
|
87
|
-
tag: tags.invalid,
|
|
88
|
-
class: "text-unAccent"
|
|
89
|
-
}
|
|
90
|
-
]);
|
|
91
|
-
var languageFacet = singleValueFacet2();
|
|
92
|
-
var sheetExtension = ({ debug, functions = [] }) => {
|
|
93
|
-
const { extension, language } = spreadsheet({
|
|
94
|
-
idiom: "en-US",
|
|
95
|
-
decimalSeparator: "."
|
|
96
|
-
});
|
|
97
|
-
const createCompletion = (name) => {
|
|
98
|
-
const { section = "Custom", description, syntax } = functions.find((value) => value.name === name) ?? {};
|
|
99
|
-
return {
|
|
100
|
-
section,
|
|
101
|
-
label: name,
|
|
102
|
-
info: () => {
|
|
103
|
-
if (!description && !syntax) {
|
|
104
|
-
return null;
|
|
105
|
-
}
|
|
106
|
-
const root = document.createElement("div");
|
|
107
|
-
root.className = "flex flex-col gap-2 text-sm";
|
|
108
|
-
const title = document.createElement("h2");
|
|
109
|
-
title.innerText = name;
|
|
110
|
-
title.className = "text-lg font-mono text-accentText";
|
|
111
|
-
root.appendChild(title);
|
|
112
|
-
if (description) {
|
|
113
|
-
const info = document.createElement("p");
|
|
114
|
-
info.innerText = description;
|
|
115
|
-
info.className = "text-subdued";
|
|
116
|
-
root.appendChild(info);
|
|
117
|
-
}
|
|
118
|
-
if (syntax) {
|
|
119
|
-
const detail = document.createElement("pre");
|
|
120
|
-
detail.innerText = syntax;
|
|
121
|
-
detail.className = "whitespace-pre-wrap text-greenText";
|
|
122
|
-
root.appendChild(detail);
|
|
123
|
-
}
|
|
124
|
-
return root;
|
|
125
|
-
},
|
|
126
|
-
apply: (view, completion, from, to) => {
|
|
127
|
-
const insertParens = to === view.state.doc.toString().length;
|
|
128
|
-
view.dispatch(view.state.update({
|
|
129
|
-
changes: {
|
|
130
|
-
from,
|
|
131
|
-
to,
|
|
132
|
-
insert: completion.label + (insertParens ? "()" : "")
|
|
133
|
-
},
|
|
134
|
-
selection: {
|
|
135
|
-
anchor: from + completion.label.length + 1
|
|
136
|
-
}
|
|
137
|
-
}));
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
|
-
};
|
|
141
|
-
return [
|
|
142
|
-
extension,
|
|
143
|
-
languageFacet.of(language),
|
|
144
|
-
language.data.of({
|
|
145
|
-
autocomplete: (context) => {
|
|
146
|
-
if (context.state.doc.toString()[0] !== "=") {
|
|
147
|
-
return null;
|
|
148
|
-
}
|
|
149
|
-
const match = context.matchBefore(/\w*/);
|
|
150
|
-
if (!match || match.from === match.to) {
|
|
151
|
-
return null;
|
|
152
|
-
}
|
|
153
|
-
const text = match.text.toUpperCase();
|
|
154
|
-
if (!context.explicit && match.text.length < 2) {
|
|
155
|
-
return null;
|
|
156
|
-
}
|
|
157
|
-
return {
|
|
158
|
-
from: match.from,
|
|
159
|
-
options: functions?.filter(({ name }) => name.startsWith(text)).map(({ name }) => createCompletion(name)) ?? []
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
}),
|
|
163
|
-
syntaxHighlighting(highlightStyles),
|
|
164
|
-
autocompletion({
|
|
165
|
-
aboveCursor: false,
|
|
166
|
-
defaultKeymap: true,
|
|
167
|
-
activateOnTyping: true,
|
|
168
|
-
closeOnBlur: !debug,
|
|
169
|
-
icons: false,
|
|
170
|
-
tooltipClass: () => mx("!-left-[1px] !top-[33px] !-m-0 border !border-t-0 [&>ul]:!min-w-[198px]", "[&>ul>li[aria-selected]]:!bg-accentSurface", "border-separator")
|
|
171
|
-
}),
|
|
172
|
-
keymap.of([
|
|
173
|
-
{
|
|
174
|
-
key: "Tab",
|
|
175
|
-
run: (view) => {
|
|
176
|
-
return completionStatus(view.state) === "active" ? acceptCompletion(view) : startCompletion(view);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
])
|
|
180
|
-
];
|
|
181
|
-
};
|
|
182
|
-
var rangeExtension = ({ onInit, onStateChange }) => {
|
|
183
|
-
let view;
|
|
184
|
-
let activeRange;
|
|
185
|
-
const notifier = {
|
|
186
|
-
setRange: (range) => {
|
|
187
|
-
if (activeRange) {
|
|
188
|
-
view.dispatch(view.state.update({
|
|
189
|
-
changes: {
|
|
190
|
-
...activeRange,
|
|
191
|
-
insert: range.toString()
|
|
192
|
-
},
|
|
193
|
-
selection: {
|
|
194
|
-
anchor: activeRange.from + range.length
|
|
195
|
-
}
|
|
196
|
-
}));
|
|
197
|
-
}
|
|
198
|
-
view.focus();
|
|
199
|
-
}
|
|
200
|
-
};
|
|
201
|
-
return ViewPlugin2.fromClass(class {
|
|
202
|
-
constructor(_view) {
|
|
203
|
-
view = _view;
|
|
204
|
-
onInit?.(notifier);
|
|
205
|
-
}
|
|
206
|
-
update(view2) {
|
|
207
|
-
const { anchor } = view2.state.selection.ranges[0];
|
|
208
|
-
activeRange = void 0;
|
|
209
|
-
const language = view2.state.facet(languageFacet);
|
|
210
|
-
const { topNode } = language.parser.parse(view2.state.doc.toString());
|
|
211
|
-
visitTree(topNode, ({ type, from, to }) => {
|
|
212
|
-
if (from <= anchor && to >= anchor) {
|
|
213
|
-
switch (type.name) {
|
|
214
|
-
case "Function":
|
|
215
|
-
activeRange = {
|
|
216
|
-
from: to,
|
|
217
|
-
to
|
|
218
|
-
};
|
|
219
|
-
break;
|
|
220
|
-
case "CloseParen":
|
|
221
|
-
activeRange = {
|
|
222
|
-
from,
|
|
223
|
-
to: from
|
|
224
|
-
};
|
|
225
|
-
break;
|
|
226
|
-
case "RangeToken":
|
|
227
|
-
case "CellToken":
|
|
228
|
-
activeRange = {
|
|
229
|
-
from,
|
|
230
|
-
to
|
|
231
|
-
};
|
|
232
|
-
return true;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
return false;
|
|
236
|
-
});
|
|
237
|
-
if (!activeRange && view2.state.doc.toString()[0] === "=") {
|
|
238
|
-
const str = view2.state.doc.sliceString(1);
|
|
239
|
-
if (RANGE_NOTATION.test(str)) {
|
|
240
|
-
activeRange = {
|
|
241
|
-
from: 1,
|
|
242
|
-
to: str.length + 1
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
onStateChange?.({
|
|
247
|
-
activeRange: activeRange ? view2.state.doc.sliceString(activeRange.from, activeRange.to) : void 0
|
|
248
|
-
});
|
|
249
|
-
}
|
|
250
|
-
});
|
|
251
|
-
};
|
|
252
|
-
var visitTree = (node, callback) => {
|
|
253
|
-
if (callback(node)) {
|
|
254
|
-
return true;
|
|
255
|
-
}
|
|
256
|
-
for (let child = node.firstChild; child !== null; child = child.nextSibling) {
|
|
257
|
-
if (visitTree(child, callback)) {
|
|
258
|
-
return true;
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
return false;
|
|
262
|
-
};
|
|
263
|
-
|
|
264
|
-
// packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx
|
|
265
|
-
import React2, { createContext as createContext2, useCallback, useContext as useContext2, useState } from "react";
|
|
266
|
-
import { invariant as invariant2 } from "@dxos/invariant";
|
|
267
|
-
import { fullyQualifiedId } from "@dxos/react-client/echo";
|
|
268
|
-
import { Grid, useGridContext } from "@dxos/react-ui-grid";
|
|
269
|
-
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx";
|
|
270
|
-
var SheetContext = /* @__PURE__ */ createContext2(void 0);
|
|
271
|
-
var useSheetContext = () => {
|
|
272
|
-
const context = useContext2(SheetContext);
|
|
273
|
-
invariant2(context, void 0, {
|
|
274
|
-
F: __dxlog_file,
|
|
275
|
-
L: 54,
|
|
276
|
-
S: void 0,
|
|
277
|
-
A: [
|
|
278
|
-
"context",
|
|
279
|
-
""
|
|
280
|
-
]
|
|
281
|
-
});
|
|
282
|
-
return context;
|
|
283
|
-
};
|
|
284
|
-
var SheetProviderImpl = ({ model, onInfo, ignoreAttention, children, __gridScope }) => {
|
|
285
|
-
const { id, editing, setEditing } = useGridContext("SheetProvider", __gridScope);
|
|
286
|
-
const [cursor, setCursorInternal] = useState();
|
|
287
|
-
const [range, setRangeInternal] = useState();
|
|
288
|
-
const [cursorFallbackRange, setCursorFallbackRange] = useState();
|
|
289
|
-
const [activeRefs, setActiveRefs] = useState("");
|
|
290
|
-
const setCursor = useCallback((nextCursor) => {
|
|
291
|
-
setCursorInternal(nextCursor);
|
|
292
|
-
setCursorFallbackRange(range?.to ? range : nextCursor ? {
|
|
293
|
-
from: nextCursor,
|
|
294
|
-
to: nextCursor
|
|
295
|
-
} : void 0);
|
|
296
|
-
}, [
|
|
297
|
-
range
|
|
298
|
-
]);
|
|
299
|
-
const setRange = useCallback((nextRange) => {
|
|
300
|
-
setRangeInternal(nextRange);
|
|
301
|
-
setCursorFallbackRange(nextRange?.to ? nextRange : cursor ? {
|
|
302
|
-
from: cursor,
|
|
303
|
-
to: cursor
|
|
304
|
-
} : void 0);
|
|
305
|
-
}, [
|
|
306
|
-
cursor
|
|
307
|
-
]);
|
|
308
|
-
return /* @__PURE__ */ React2.createElement(SheetContext.Provider, {
|
|
309
|
-
value: {
|
|
310
|
-
id,
|
|
311
|
-
model,
|
|
312
|
-
editing,
|
|
313
|
-
setEditing,
|
|
314
|
-
cursor,
|
|
315
|
-
setCursor,
|
|
316
|
-
range,
|
|
317
|
-
setRange,
|
|
318
|
-
cursorFallbackRange,
|
|
319
|
-
activeRefs,
|
|
320
|
-
setActiveRefs,
|
|
321
|
-
// TODO(burdon): Change to event.
|
|
322
|
-
onInfo,
|
|
323
|
-
ignoreAttention
|
|
324
|
-
}
|
|
325
|
-
}, children);
|
|
326
|
-
};
|
|
327
|
-
var SheetProvider = ({ children, graph, sheet, readonly, ignoreAttention, onInfo }) => {
|
|
328
|
-
const model = useSheetModel(graph, sheet, {
|
|
329
|
-
readonly
|
|
330
|
-
});
|
|
331
|
-
return !model ? null : /* @__PURE__ */ React2.createElement(Grid.Root, {
|
|
332
|
-
id: fullyQualifiedId(sheet)
|
|
333
|
-
}, /* @__PURE__ */ React2.createElement(SheetProviderImpl, {
|
|
334
|
-
model,
|
|
335
|
-
onInfo,
|
|
336
|
-
ignoreAttention
|
|
337
|
-
}, children));
|
|
338
|
-
};
|
|
339
|
-
|
|
340
|
-
// packages/plugins/plugin-sheet/src/components/GridSheet/GridSheet.tsx
|
|
341
|
-
import React5, { useCallback as useCallback4, useMemo as useMemo2, useRef, useState as useState3 } from "react";
|
|
342
|
-
import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
|
|
343
|
-
import { rangeToA1Notation as rangeToA1Notation2 } from "@dxos/compute";
|
|
344
|
-
import { DropdownMenu, Icon, useTranslation as useTranslation3 } from "@dxos/react-ui";
|
|
345
|
-
import { useAttention } from "@dxos/react-ui-attention";
|
|
346
|
-
import { closestCell, defaultSizeRow, editorKeys, Grid as Grid2, GridCellEditor, parseCellIndex } from "@dxos/react-ui-grid";
|
|
347
|
-
|
|
348
|
-
// packages/plugins/plugin-sheet/src/components/GridSheet/util.ts
|
|
349
|
-
import { useEffect as useEffect2, useState as useState2 } from "react";
|
|
350
|
-
import { inRange as inRange2 } from "@dxos/compute";
|
|
351
|
-
import { createDocAccessor, fullyQualifiedId as fullyQualifiedId3 } from "@dxos/react-client/echo";
|
|
352
|
-
import { parseValue, cellClassesForFieldType } from "@dxos/react-ui-form";
|
|
353
|
-
import { colToA1Notation, rowToA1Notation, commentedClassName } from "@dxos/react-ui-grid";
|
|
354
|
-
import { mx as mx2 } from "@dxos/react-ui-theme";
|
|
355
|
-
|
|
356
|
-
// packages/plugins/plugin-sheet/src/integrations/thread-ranges.ts
|
|
357
|
-
import { useCallback as useCallback3, useEffect, useMemo } from "react";
|
|
358
|
-
import { createIntent, createResolver, LayoutAction, useIntentDispatcher, useIntentResolver } from "@dxos/app-framework";
|
|
359
|
-
import { debounce as debounce2 } from "@dxos/async";
|
|
360
|
-
import { inRange } from "@dxos/compute";
|
|
361
|
-
import { ThreadAction } from "@dxos/plugin-thread/types";
|
|
362
|
-
import { fullyQualifiedId as fullyQualifiedId2 } from "@dxos/react-client/echo";
|
|
363
|
-
|
|
364
|
-
// packages/plugins/plugin-sheet/src/components/index.ts
|
|
365
|
-
import { lazy } from "react";
|
|
366
|
-
|
|
367
45
|
// packages/plugins/plugin-sheet/src/components/RangeList/RangeList.tsx
|
|
368
|
-
import
|
|
46
|
+
import React2, { useCallback } from "react";
|
|
369
47
|
import { rangeToA1Notation } from "@dxos/compute";
|
|
370
48
|
import { S } from "@dxos/echo-schema";
|
|
371
49
|
import { useTranslation } from "@dxos/react-ui";
|
|
@@ -375,59 +53,62 @@ var RangeList = ({ sheet }) => {
|
|
|
375
53
|
const { t } = useTranslation(SHEET_PLUGIN);
|
|
376
54
|
const handleSelectRange = (range) => {
|
|
377
55
|
};
|
|
378
|
-
const handleDeleteRange =
|
|
56
|
+
const handleDeleteRange = useCallback((range) => {
|
|
379
57
|
const index = sheet.ranges.findIndex((sheetRange) => sheetRange === range);
|
|
380
58
|
sheet.ranges.splice(index, 1);
|
|
381
59
|
}, [
|
|
382
60
|
sheet
|
|
383
61
|
]);
|
|
384
|
-
return /* @__PURE__ */
|
|
62
|
+
return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement("h2", {
|
|
385
63
|
className: "p-2 text-sm font-semibold"
|
|
386
|
-
}, t("range list heading")), /* @__PURE__ */
|
|
64
|
+
}, t("range list heading")), /* @__PURE__ */ React2.createElement(List.Root, {
|
|
387
65
|
items: sheet.ranges,
|
|
388
66
|
isItem: S.is(Range)
|
|
389
|
-
}, ({ items: ranges }) => ranges.map((range, i) => /* @__PURE__ */
|
|
67
|
+
}, ({ items: ranges }) => ranges.map((range, i) => /* @__PURE__ */ React2.createElement(List.Item, {
|
|
390
68
|
key: i,
|
|
391
69
|
item: range,
|
|
392
70
|
classNames: [
|
|
393
71
|
"p-2",
|
|
394
72
|
ghostHover
|
|
395
73
|
]
|
|
396
|
-
}, /* @__PURE__ */
|
|
74
|
+
}, /* @__PURE__ */ React2.createElement(List.ItemDragHandle, null), /* @__PURE__ */ React2.createElement(List.ItemTitle, {
|
|
397
75
|
onClick: () => handleSelectRange(range)
|
|
398
76
|
}, t("range title", {
|
|
399
77
|
position: rangeToA1Notation(rangeFromIndex(sheet, range.range)),
|
|
400
78
|
key: t(`range key ${range.key} label`),
|
|
401
79
|
value: t(`range value ${range.value} label`)
|
|
402
|
-
})), /* @__PURE__ */
|
|
80
|
+
})), /* @__PURE__ */ React2.createElement(List.ItemDeleteButton, {
|
|
403
81
|
onClick: () => handleDeleteRange(range)
|
|
404
82
|
})))));
|
|
405
83
|
};
|
|
406
84
|
|
|
407
|
-
// packages/plugins/plugin-sheet/src/components/SheetObjectSettings.tsx
|
|
408
|
-
import React4 from "react";
|
|
409
|
-
import { SPACE_PLUGIN } from "@dxos/plugin-space/meta";
|
|
410
|
-
import { Input, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
411
|
-
var SheetObjectSettings = ({ sheet }) => {
|
|
412
|
-
const { t } = useTranslation2(SPACE_PLUGIN);
|
|
413
|
-
return /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement("div", {
|
|
414
|
-
role: "form",
|
|
415
|
-
className: "flex flex-col w-full p-2 gap-1"
|
|
416
|
-
}, /* @__PURE__ */ React4.createElement(Input.Root, null, /* @__PURE__ */ React4.createElement(Input.Label, null, t("name label")), /* @__PURE__ */ React4.createElement(Input.TextInput, {
|
|
417
|
-
placeholder: t("name placeholder"),
|
|
418
|
-
value: sheet.name ?? "",
|
|
419
|
-
onChange: (event) => {
|
|
420
|
-
sheet.name = event.target.value;
|
|
421
|
-
}
|
|
422
|
-
}))), /* @__PURE__ */ React4.createElement(RangeList, {
|
|
423
|
-
sheet
|
|
424
|
-
}));
|
|
425
|
-
};
|
|
426
|
-
|
|
427
85
|
// packages/plugins/plugin-sheet/src/components/index.ts
|
|
428
|
-
|
|
86
|
+
import { lazy } from "react";
|
|
87
|
+
|
|
88
|
+
// packages/plugins/plugin-sheet/src/components/GridSheet/GridSheet.tsx
|
|
89
|
+
import React4, { useCallback as useCallback4, useMemo as useMemo2, useRef, useState as useState3 } from "react";
|
|
90
|
+
import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
|
|
91
|
+
import { rangeToA1Notation as rangeToA1Notation2 } from "@dxos/compute";
|
|
92
|
+
import { DropdownMenu, Icon, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
93
|
+
import { useAttention } from "@dxos/react-ui-attention";
|
|
94
|
+
import { closestCell, defaultSizeRow, editorKeys, Grid as Grid2, GridCellEditor, parseCellIndex } from "@dxos/react-ui-grid";
|
|
95
|
+
|
|
96
|
+
// packages/plugins/plugin-sheet/src/components/GridSheet/util.ts
|
|
97
|
+
import { useEffect as useEffect2, useState } from "react";
|
|
98
|
+
import { inRange as inRange2 } from "@dxos/compute";
|
|
99
|
+
import { createDocAccessor, fullyQualifiedId as fullyQualifiedId2 } from "@dxos/react-client/echo";
|
|
100
|
+
import { parseValue, cellClassesForFieldType } from "@dxos/react-ui-form";
|
|
101
|
+
import { colToA1Notation, rowToA1Notation, commentedClassName } from "@dxos/react-ui-grid";
|
|
102
|
+
import { mx } from "@dxos/react-ui-theme";
|
|
429
103
|
|
|
430
104
|
// packages/plugins/plugin-sheet/src/integrations/thread-ranges.ts
|
|
105
|
+
import { useCallback as useCallback2, useEffect, useMemo } from "react";
|
|
106
|
+
import { createIntent, createResolver, LayoutAction, useIntentResolver, useIntentDispatcher } from "@dxos/app-framework";
|
|
107
|
+
import { debounce } from "@dxos/async";
|
|
108
|
+
import { inRange } from "@dxos/compute";
|
|
109
|
+
import { S as S2 } from "@dxos/echo-schema";
|
|
110
|
+
import { ThreadAction } from "@dxos/plugin-thread/types";
|
|
111
|
+
import { fullyQualifiedId } from "@dxos/react-client/echo";
|
|
431
112
|
var completeCellRangeToThreadCursor = (range) => {
|
|
432
113
|
return `${range.from.col},${range.from.row},${range.to.col},${range.to.row}`;
|
|
433
114
|
};
|
|
@@ -451,16 +132,23 @@ var parseThreadAnchorAsCellRange = (cursor) => {
|
|
|
451
132
|
};
|
|
452
133
|
var useUpdateFocusedCellOnThreadSelection = (grid) => {
|
|
453
134
|
const { model, setActiveRefs } = useSheetContext();
|
|
454
|
-
const scrollIntoViewResolver = useMemo(() => createResolver(
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
135
|
+
const scrollIntoViewResolver = useMemo(() => createResolver({
|
|
136
|
+
intent: LayoutAction.ScrollIntoView,
|
|
137
|
+
position: "hoist",
|
|
138
|
+
filter: (data) => {
|
|
139
|
+
if (!S2.is(LayoutAction.ScrollIntoView.fields.input)(data)) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
return data.subject === fullyQualifiedId(model.sheet) && !!data.options?.cursor;
|
|
143
|
+
},
|
|
144
|
+
resolve: ({ options: { cursor, ref } }) => {
|
|
145
|
+
setActiveRefs(ref);
|
|
146
|
+
const range = parseThreadAnchorAsCellRange(cursor);
|
|
147
|
+
range && grid?.setFocus({
|
|
148
|
+
...range.to,
|
|
149
|
+
plane: "grid"
|
|
150
|
+
}, true);
|
|
151
|
+
}
|
|
464
152
|
}), [
|
|
465
153
|
model.sheet,
|
|
466
154
|
setActiveRefs
|
|
@@ -474,7 +162,7 @@ var useSelectThreadOnCellFocus = () => {
|
|
|
474
162
|
// TODO(thure): Surely we can find a better dependency for this…
|
|
475
163
|
JSON.stringify(model.sheet.threads)
|
|
476
164
|
]);
|
|
477
|
-
const selectClosestThread =
|
|
165
|
+
const selectClosestThread = useCallback2((cellAddress) => {
|
|
478
166
|
if (!cellAddress || !threads) {
|
|
479
167
|
return;
|
|
480
168
|
}
|
|
@@ -488,7 +176,7 @@ var useSelectThreadOnCellFocus = () => {
|
|
|
488
176
|
});
|
|
489
177
|
if (closestThread) {
|
|
490
178
|
void dispatch(createIntent(ThreadAction.Select, {
|
|
491
|
-
current:
|
|
179
|
+
current: fullyQualifiedId(closestThread)
|
|
492
180
|
}));
|
|
493
181
|
}
|
|
494
182
|
}, [
|
|
@@ -496,7 +184,7 @@ var useSelectThreadOnCellFocus = () => {
|
|
|
496
184
|
threads
|
|
497
185
|
]);
|
|
498
186
|
const debounced = useMemo(() => {
|
|
499
|
-
return
|
|
187
|
+
return debounce((cellCoords) => requestAnimationFrame(() => selectClosestThread(cellCoords)), 50);
|
|
500
188
|
}, [
|
|
501
189
|
selectClosestThread
|
|
502
190
|
]);
|
|
@@ -548,7 +236,7 @@ var projectCellProps = (model, col, row) => {
|
|
|
548
236
|
const threadRefs = model.sheet.threads?.filter((thread) => {
|
|
549
237
|
const range = thread.target?.anchor && parseThreadAnchorAsCellRange(thread.target.anchor);
|
|
550
238
|
return thread && range ? inRange2(range, address) : false;
|
|
551
|
-
}).map((thread) =>
|
|
239
|
+
}).map((thread) => fullyQualifiedId2(thread)).join(" ");
|
|
552
240
|
const description = model.getValueDescription(address);
|
|
553
241
|
const type = description?.type;
|
|
554
242
|
const format = description?.format;
|
|
@@ -559,7 +247,7 @@ var projectCellProps = (model, col, row) => {
|
|
|
559
247
|
format,
|
|
560
248
|
value: rawValue
|
|
561
249
|
}),
|
|
562
|
-
className:
|
|
250
|
+
className: mx(cellClassesForFieldType({
|
|
563
251
|
type,
|
|
564
252
|
format
|
|
565
253
|
}), threadRefs && commentedClassName, classNames),
|
|
@@ -585,7 +273,7 @@ var gridCellGetter = (model) => {
|
|
|
585
273
|
};
|
|
586
274
|
var rowLabelCell = (row) => ({
|
|
587
275
|
value: rowToA1Notation(row),
|
|
588
|
-
className: "text-end
|
|
276
|
+
className: "text-end pie-1 text-subdued",
|
|
589
277
|
resizeHandle: "row"
|
|
590
278
|
});
|
|
591
279
|
var colLabelCell = (col) => ({
|
|
@@ -621,8 +309,8 @@ var cellGetter = (model) => {
|
|
|
621
309
|
};
|
|
622
310
|
};
|
|
623
311
|
var useSheetModelDxGridProps = (dxGrid, model) => {
|
|
624
|
-
const [columns, setColumns] =
|
|
625
|
-
const [rows, setRows] =
|
|
312
|
+
const [columns, setColumns] = useState(createDxGridColumns(model));
|
|
313
|
+
const [rows, setRows] = useState(createDxGridRows(model));
|
|
626
314
|
useEffect2(() => {
|
|
627
315
|
const cellsAccessor = createDocAccessor(model.sheet, [
|
|
628
316
|
"cells"
|
|
@@ -672,6 +360,82 @@ var useSheetModelDxGridProps = (dxGrid, model) => {
|
|
|
672
360
|
};
|
|
673
361
|
};
|
|
674
362
|
|
|
363
|
+
// packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx
|
|
364
|
+
import React3, { createContext as createContext2, useCallback as useCallback3, useContext as useContext2, useState as useState2 } from "react";
|
|
365
|
+
import { invariant } from "@dxos/invariant";
|
|
366
|
+
import { fullyQualifiedId as fullyQualifiedId3 } from "@dxos/react-client/echo";
|
|
367
|
+
import { Grid, useGridContext } from "@dxos/react-ui-grid";
|
|
368
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx";
|
|
369
|
+
var SheetContext = /* @__PURE__ */ createContext2(void 0);
|
|
370
|
+
var useSheetContext = () => {
|
|
371
|
+
const context = useContext2(SheetContext);
|
|
372
|
+
invariant(context, void 0, {
|
|
373
|
+
F: __dxlog_file,
|
|
374
|
+
L: 54,
|
|
375
|
+
S: void 0,
|
|
376
|
+
A: [
|
|
377
|
+
"context",
|
|
378
|
+
""
|
|
379
|
+
]
|
|
380
|
+
});
|
|
381
|
+
return context;
|
|
382
|
+
};
|
|
383
|
+
var SheetProviderImpl = ({ model, onInfo, ignoreAttention, children, __gridScope }) => {
|
|
384
|
+
const { id, editing, setEditing } = useGridContext("SheetProvider", __gridScope);
|
|
385
|
+
const [cursor, setCursorInternal] = useState2();
|
|
386
|
+
const [range, setRangeInternal] = useState2();
|
|
387
|
+
const [cursorFallbackRange, setCursorFallbackRange] = useState2();
|
|
388
|
+
const [activeRefs, setActiveRefs] = useState2("");
|
|
389
|
+
const setCursor = useCallback3((nextCursor) => {
|
|
390
|
+
setCursorInternal(nextCursor);
|
|
391
|
+
setCursorFallbackRange(range?.to ? range : nextCursor ? {
|
|
392
|
+
from: nextCursor,
|
|
393
|
+
to: nextCursor
|
|
394
|
+
} : void 0);
|
|
395
|
+
}, [
|
|
396
|
+
range
|
|
397
|
+
]);
|
|
398
|
+
const setRange = useCallback3((nextRange) => {
|
|
399
|
+
setRangeInternal(nextRange);
|
|
400
|
+
setCursorFallbackRange(nextRange?.to ? nextRange : cursor ? {
|
|
401
|
+
from: cursor,
|
|
402
|
+
to: cursor
|
|
403
|
+
} : void 0);
|
|
404
|
+
}, [
|
|
405
|
+
cursor
|
|
406
|
+
]);
|
|
407
|
+
return /* @__PURE__ */ React3.createElement(SheetContext.Provider, {
|
|
408
|
+
value: {
|
|
409
|
+
id,
|
|
410
|
+
model,
|
|
411
|
+
editing,
|
|
412
|
+
setEditing,
|
|
413
|
+
cursor,
|
|
414
|
+
setCursor,
|
|
415
|
+
range,
|
|
416
|
+
setRange,
|
|
417
|
+
cursorFallbackRange,
|
|
418
|
+
activeRefs,
|
|
419
|
+
setActiveRefs,
|
|
420
|
+
// TODO(burdon): Change to event.
|
|
421
|
+
onInfo,
|
|
422
|
+
ignoreAttention
|
|
423
|
+
}
|
|
424
|
+
}, children);
|
|
425
|
+
};
|
|
426
|
+
var SheetProvider = ({ children, graph, sheet, readonly, ignoreAttention, onInfo }) => {
|
|
427
|
+
const model = useSheetModel(graph, sheet, {
|
|
428
|
+
readonly
|
|
429
|
+
});
|
|
430
|
+
return !model ? null : /* @__PURE__ */ React3.createElement(Grid.Root, {
|
|
431
|
+
id: fullyQualifiedId3(sheet)
|
|
432
|
+
}, /* @__PURE__ */ React3.createElement(SheetProviderImpl, {
|
|
433
|
+
model,
|
|
434
|
+
onInfo,
|
|
435
|
+
ignoreAttention
|
|
436
|
+
}, children));
|
|
437
|
+
};
|
|
438
|
+
|
|
675
439
|
// packages/plugins/plugin-sheet/src/components/GridSheet/GridSheet.tsx
|
|
676
440
|
var inertPosition = {
|
|
677
441
|
plane: "grid",
|
|
@@ -718,7 +482,7 @@ var sheetColDefault = {
|
|
|
718
482
|
}
|
|
719
483
|
};
|
|
720
484
|
var GridSheet = () => {
|
|
721
|
-
const { t } =
|
|
485
|
+
const { t } = useTranslation2(SHEET_PLUGIN);
|
|
722
486
|
const { id, model, editing, setCursor, setRange, cursor, cursorFallbackRange, activeRefs, ignoreAttention } = useSheetContext();
|
|
723
487
|
const [dxGrid, setDxGrid] = useState3(null);
|
|
724
488
|
const [extraplanarFocus, setExtraplanarFocus] = useState3(null);
|
|
@@ -970,14 +734,14 @@ var GridSheet = () => {
|
|
|
970
734
|
]);
|
|
971
735
|
useUpdateFocusedCellOnThreadSelection(dxGrid);
|
|
972
736
|
useSelectThreadOnCellFocus();
|
|
973
|
-
return /* @__PURE__ */
|
|
737
|
+
return /* @__PURE__ */ React4.createElement("div", {
|
|
974
738
|
role: "none",
|
|
975
739
|
className: "relative min-bs-0"
|
|
976
|
-
}, /* @__PURE__ */
|
|
740
|
+
}, /* @__PURE__ */ React4.createElement(GridCellEditor, {
|
|
977
741
|
getCellContent,
|
|
978
742
|
extension,
|
|
979
743
|
onBlur: handleBlur
|
|
980
|
-
}), /* @__PURE__ */
|
|
744
|
+
}), /* @__PURE__ */ React4.createElement(Grid2.Content, {
|
|
981
745
|
initialCells,
|
|
982
746
|
limitColumns: DEFAULT_COLS,
|
|
983
747
|
limitRows: DEFAULT_ROWS,
|
|
@@ -997,46 +761,48 @@ var GridSheet = () => {
|
|
|
997
761
|
className: "[--dx-grid-base:var(--surface-bg)] [&_.dx-grid]:border-bs [&_.dx-grid]:absolute [&_.dx-grid]:inset-0 [&_.dx-grid]:border-separator",
|
|
998
762
|
activeRefs,
|
|
999
763
|
ref: setDxGrid
|
|
1000
|
-
}), /* @__PURE__ */
|
|
764
|
+
}), /* @__PURE__ */ React4.createElement(DropdownMenu.Root, {
|
|
1001
765
|
modal: false,
|
|
1002
766
|
open: !!contextMenuOpen,
|
|
1003
767
|
onOpenChange: (nextOpen) => setContextMenuOpen(nextOpen ? inertPosition : null)
|
|
1004
|
-
}, /* @__PURE__ */
|
|
768
|
+
}, /* @__PURE__ */ React4.createElement(DropdownMenu.VirtualTrigger, {
|
|
1005
769
|
virtualRef: contextMenuAnchorRef
|
|
1006
|
-
}), /* @__PURE__ */
|
|
770
|
+
}), /* @__PURE__ */ React4.createElement(DropdownMenu.Content, {
|
|
1007
771
|
side: contextMenuAxis === "col" ? "bottom" : "right",
|
|
1008
772
|
sideOffset: 4,
|
|
1009
773
|
collisionPadding: 8
|
|
1010
|
-
}, /* @__PURE__ */
|
|
774
|
+
}, /* @__PURE__ */ React4.createElement(DropdownMenu.Viewport, null, /* @__PURE__ */ React4.createElement(DropdownMenu.Item, {
|
|
1011
775
|
onClick: () => handleAxisMenuAction("insert-before"),
|
|
1012
776
|
"data-testid": `grid.${contextMenuAxis}.insert-before`
|
|
1013
|
-
}, /* @__PURE__ */
|
|
777
|
+
}, /* @__PURE__ */ React4.createElement(Icon, {
|
|
1014
778
|
size: 5,
|
|
1015
779
|
icon: contextMenuAxis === "col" ? "ph--columns-plus-left--regular" : "ph--rows-plus-top--regular"
|
|
1016
|
-
}), /* @__PURE__ */
|
|
780
|
+
}), /* @__PURE__ */ React4.createElement("span", null, t(`add ${contextMenuAxis} before label`))), /* @__PURE__ */ React4.createElement(DropdownMenu.Item, {
|
|
1017
781
|
onClick: () => handleAxisMenuAction("insert-after"),
|
|
1018
782
|
"data-testid": `grid.${contextMenuAxis}.insert-after`
|
|
1019
|
-
}, /* @__PURE__ */
|
|
783
|
+
}, /* @__PURE__ */ React4.createElement(Icon, {
|
|
1020
784
|
size: 5,
|
|
1021
785
|
icon: contextMenuAxis === "col" ? "ph--columns-plus-right--regular" : "ph--rows-plus-bottom--regular"
|
|
1022
|
-
}), /* @__PURE__ */
|
|
786
|
+
}), /* @__PURE__ */ React4.createElement("span", null, t(`add ${contextMenuAxis} after label`))), /* @__PURE__ */ React4.createElement(DropdownMenu.Item, {
|
|
1023
787
|
onClick: () => handleAxisMenuAction("drop"),
|
|
1024
788
|
"data-testid": `grid.${contextMenuAxis}.drop`
|
|
1025
|
-
}, /* @__PURE__ */
|
|
789
|
+
}, /* @__PURE__ */ React4.createElement(Icon, {
|
|
1026
790
|
size: 5,
|
|
1027
791
|
icon: "ph--backspace--regular"
|
|
1028
|
-
}), /* @__PURE__ */
|
|
792
|
+
}), /* @__PURE__ */ React4.createElement("span", null, t(`delete ${contextMenuAxis} label`)))), /* @__PURE__ */ React4.createElement(DropdownMenu.Arrow, null))));
|
|
1029
793
|
};
|
|
1030
794
|
|
|
795
|
+
// packages/plugins/plugin-sheet/src/components/index.ts
|
|
796
|
+
var SheetContainer = lazy(() => import("./SheetContainer-IMHGS7Z4.mjs"));
|
|
797
|
+
|
|
1031
798
|
export {
|
|
1032
799
|
ComputeGraphContextProvider,
|
|
1033
800
|
useComputeGraph,
|
|
1034
801
|
completeCellRangeToThreadCursor,
|
|
1035
|
-
computeGraphFacet,
|
|
1036
802
|
useSheetContext,
|
|
1037
803
|
SheetProvider,
|
|
1038
804
|
GridSheet,
|
|
1039
|
-
|
|
805
|
+
RangeList,
|
|
1040
806
|
SheetContainer
|
|
1041
807
|
};
|
|
1042
|
-
//# sourceMappingURL=chunk-
|
|
808
|
+
//# sourceMappingURL=chunk-AT7F2WDW.mjs.map
|