@dxos/plugin-sheet 0.7.5-main.9cb18ac → 0.7.5-main.9d2a38b
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-CM4CO3DC.mjs +370 -0
- package/dist/lib/browser/SheetContainer-CM4CO3DC.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-A374JPWV.mjs → chunk-H23JW3DX.mjs} +139 -381
- package/dist/lib/browser/chunk-H23JW3DX.mjs.map +7 -0
- package/dist/lib/browser/{chunk-RABELMEQ.mjs → chunk-K6EUYKWT.mjs} +3 -3
- package/dist/lib/browser/chunk-K6EUYKWT.mjs.map +7 -0
- package/dist/lib/browser/chunk-PW25VUP6.mjs +15 -0
- package/dist/lib/browser/chunk-PW25VUP6.mjs.map +7 -0
- package/dist/lib/browser/{chunk-Q4XS4YWF.mjs → chunk-T3IVPMRX.mjs} +2 -2
- package/dist/lib/browser/chunk-T3IVPMRX.mjs.map +7 -0
- package/dist/lib/browser/compute-graph-registry-XH6B2SWG.mjs +27 -0
- package/dist/lib/browser/compute-graph-registry-XH6B2SWG.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +86 -218
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/intent-resolver-Q7DTHAM5.mjs +47 -0
- package/dist/lib/browser/intent-resolver-Q7DTHAM5.mjs.map +7 -0
- package/dist/lib/browser/markdown-IKG5FNCA.mjs +26 -0
- package/dist/lib/browser/markdown-IKG5FNCA.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-context-JG43577H.mjs +28 -0
- package/dist/lib/browser/react-context-JG43577H.mjs.map +7 -0
- package/dist/lib/browser/react-surface-URRC3AFC.mjs +43 -0
- package/dist/lib/browser/react-surface-URRC3AFC.mjs.map +7 -0
- package/dist/lib/browser/thread-YX6KBQNQ.mjs +17 -0
- package/dist/lib/browser/thread-YX6KBQNQ.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node/SheetContainer-TJ3JQLWM.cjs +364 -0
- package/dist/lib/node/SheetContainer-TJ3JQLWM.cjs.map +7 -0
- package/dist/lib/node/{chunk-TQOJ7DG2.cjs → chunk-E3RXOEL6.cjs} +6 -6
- package/dist/lib/node/chunk-E3RXOEL6.cjs.map +7 -0
- package/dist/lib/node/{meta.cjs → chunk-FU5K66DS.cjs} +12 -8
- package/dist/lib/node/chunk-FU5K66DS.cjs.map +7 -0
- package/dist/lib/node/{chunk-2ZVZI2KJ.cjs → chunk-NLDXUFDG.cjs} +7 -7
- package/dist/lib/node/chunk-NLDXUFDG.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/{chunk-FDEQ2PGJ.cjs → chunk-ZPWW4LPY.cjs} +181 -419
- package/dist/lib/node/chunk-ZPWW4LPY.cjs.map +7 -0
- package/dist/lib/node/compute-graph-registry-ORGTIE5M.cjs +53 -0
- package/dist/lib/node/compute-graph-registry-ORGTIE5M.cjs.map +7 -0
- package/dist/lib/node/index.cjs +87 -215
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/intent-resolver-ZUDJJUFG.cjs +60 -0
- package/dist/lib/node/intent-resolver-ZUDJJUFG.cjs.map +7 -0
- package/dist/lib/node/markdown-EUUL3Q36.cjs +40 -0
- package/dist/lib/node/markdown-EUUL3Q36.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/react-context-OOH5QFE2.cjs +50 -0
- package/dist/lib/node/react-context-OOH5QFE2.cjs.map +7 -0
- package/dist/lib/node/react-surface-IQN5JKSS.cjs +64 -0
- package/dist/lib/node/react-surface-IQN5JKSS.cjs.map +7 -0
- package/dist/lib/node/thread-VBPS23P2.cjs +32 -0
- package/dist/lib/node/thread-VBPS23P2.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-QEEFORIC.mjs +371 -0
- package/dist/lib/node-esm/SheetContainer-QEEFORIC.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-BM2Q3FFC.mjs → chunk-FMOVRTS4.mjs} +3 -3
- package/dist/lib/node-esm/chunk-FMOVRTS4.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-KCXK5UM6.mjs +16 -0
- package/dist/lib/node-esm/chunk-KCXK5UM6.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-NYYIDVR7.mjs → chunk-NSVUOAI6.mjs} +2 -2
- package/dist/lib/node-esm/chunk-NSVUOAI6.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-L5PQHVTX.mjs → chunk-OXD6RBFF.mjs} +139 -381
- package/dist/lib/node-esm/chunk-OXD6RBFF.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/compute-graph-registry-JH2FRHLD.mjs +28 -0
- package/dist/lib/node-esm/compute-graph-registry-JH2FRHLD.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +86 -218
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/intent-resolver-IF64RN7B.mjs +48 -0
- package/dist/lib/node-esm/intent-resolver-IF64RN7B.mjs.map +7 -0
- package/dist/lib/node-esm/markdown-D2ZMN7LR.mjs +27 -0
- package/dist/lib/node-esm/markdown-D2ZMN7LR.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-context-CJVSLO74.mjs +29 -0
- package/dist/lib/node-esm/react-context-CJVSLO74.mjs.map +7 -0
- package/dist/lib/node-esm/react-surface-XJIX5G3I.mjs +44 -0
- package/dist/lib/node-esm/react-surface-XJIX5G3I.mjs.map +7 -0
- package/dist/lib/node-esm/thread-HSJD3SR6.mjs +18 -0
- package/dist/lib/node-esm/thread-HSJD3SR6.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 +17 -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-context.d.ts +8 -0
- package/dist/types/src/capabilities/react-context.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/GridSheet/GridSheet.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.stories.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 +1 -2
- package/dist/types/src/components/index.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/meta.d.ts +1 -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/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 +44 -51
- package/src/SheetPlugin.tsx +68 -103
- package/src/capabilities/capabilities.ts +14 -0
- package/src/capabilities/compute-graph-registry.ts +25 -0
- package/src/capabilities/index.ts +14 -0
- package/src/capabilities/intent-resolver.ts +29 -0
- package/src/capabilities/markdown.ts +22 -0
- package/src/capabilities/react-context.tsx +20 -0
- package/src/capabilities/react-surface.tsx +30 -0
- package/src/capabilities/thread.ts +14 -0
- package/src/components/GridSheet/GridSheet.stories.tsx +2 -0
- package/src/components/SheetContainer/SheetContainer.stories.tsx +25 -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/index.ts +2 -5
- package/src/meta.ts +1 -1
- 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.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.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/src/components/SheetObjectSettings.tsx +0 -38
- package/src/components/Toolbar/Toolbar.tsx +0 -344
|
@@ -6,10 +6,14 @@ import {
|
|
|
6
6
|
cellClassNameForRange,
|
|
7
7
|
rangeFromIndex,
|
|
8
8
|
useSheetModel
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-T3IVPMRX.mjs";
|
|
10
|
+
import {
|
|
11
|
+
rangeExtension,
|
|
12
|
+
sheetExtension
|
|
13
|
+
} from "./chunk-FOO6NGBM.mjs";
|
|
10
14
|
import {
|
|
11
15
|
SHEET_PLUGIN
|
|
12
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-K6EUYKWT.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,61 @@ 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, useIntentDispatcher, useIntentResolver } from "@dxos/app-framework";
|
|
107
|
+
import { debounce } from "@dxos/async";
|
|
108
|
+
import { inRange } from "@dxos/compute";
|
|
109
|
+
import { ThreadAction } from "@dxos/plugin-thread/types";
|
|
110
|
+
import { fullyQualifiedId } from "@dxos/react-client/echo";
|
|
431
111
|
var completeCellRangeToThreadCursor = (range) => {
|
|
432
112
|
return `${range.from.col},${range.from.row},${range.to.col},${range.to.row}`;
|
|
433
113
|
};
|
|
@@ -460,7 +140,7 @@ var useUpdateFocusedCellOnThreadSelection = (grid) => {
|
|
|
460
140
|
}, true);
|
|
461
141
|
}, {
|
|
462
142
|
disposition: "hoist",
|
|
463
|
-
filter: (data) => data.id ===
|
|
143
|
+
filter: (data) => data.id === fullyQualifiedId(model.sheet) && !!data.cursor
|
|
464
144
|
}), [
|
|
465
145
|
model.sheet,
|
|
466
146
|
setActiveRefs
|
|
@@ -474,7 +154,7 @@ var useSelectThreadOnCellFocus = () => {
|
|
|
474
154
|
// TODO(thure): Surely we can find a better dependency for this…
|
|
475
155
|
JSON.stringify(model.sheet.threads)
|
|
476
156
|
]);
|
|
477
|
-
const selectClosestThread =
|
|
157
|
+
const selectClosestThread = useCallback2((cellAddress) => {
|
|
478
158
|
if (!cellAddress || !threads) {
|
|
479
159
|
return;
|
|
480
160
|
}
|
|
@@ -488,7 +168,7 @@ var useSelectThreadOnCellFocus = () => {
|
|
|
488
168
|
});
|
|
489
169
|
if (closestThread) {
|
|
490
170
|
void dispatch(createIntent(ThreadAction.Select, {
|
|
491
|
-
current:
|
|
171
|
+
current: fullyQualifiedId(closestThread)
|
|
492
172
|
}));
|
|
493
173
|
}
|
|
494
174
|
}, [
|
|
@@ -496,7 +176,7 @@ var useSelectThreadOnCellFocus = () => {
|
|
|
496
176
|
threads
|
|
497
177
|
]);
|
|
498
178
|
const debounced = useMemo(() => {
|
|
499
|
-
return
|
|
179
|
+
return debounce((cellCoords) => requestAnimationFrame(() => selectClosestThread(cellCoords)), 50);
|
|
500
180
|
}, [
|
|
501
181
|
selectClosestThread
|
|
502
182
|
]);
|
|
@@ -548,7 +228,7 @@ var projectCellProps = (model, col, row) => {
|
|
|
548
228
|
const threadRefs = model.sheet.threads?.filter((thread) => {
|
|
549
229
|
const range = thread.target?.anchor && parseThreadAnchorAsCellRange(thread.target.anchor);
|
|
550
230
|
return thread && range ? inRange2(range, address) : false;
|
|
551
|
-
}).map((thread) =>
|
|
231
|
+
}).map((thread) => fullyQualifiedId2(thread)).join(" ");
|
|
552
232
|
const description = model.getValueDescription(address);
|
|
553
233
|
const type = description?.type;
|
|
554
234
|
const format = description?.format;
|
|
@@ -559,7 +239,7 @@ var projectCellProps = (model, col, row) => {
|
|
|
559
239
|
format,
|
|
560
240
|
value: rawValue
|
|
561
241
|
}),
|
|
562
|
-
className:
|
|
242
|
+
className: mx(cellClassesForFieldType({
|
|
563
243
|
type,
|
|
564
244
|
format
|
|
565
245
|
}), threadRefs && commentedClassName, classNames),
|
|
@@ -621,8 +301,8 @@ var cellGetter = (model) => {
|
|
|
621
301
|
};
|
|
622
302
|
};
|
|
623
303
|
var useSheetModelDxGridProps = (dxGrid, model) => {
|
|
624
|
-
const [columns, setColumns] =
|
|
625
|
-
const [rows, setRows] =
|
|
304
|
+
const [columns, setColumns] = useState(createDxGridColumns(model));
|
|
305
|
+
const [rows, setRows] = useState(createDxGridRows(model));
|
|
626
306
|
useEffect2(() => {
|
|
627
307
|
const cellsAccessor = createDocAccessor(model.sheet, [
|
|
628
308
|
"cells"
|
|
@@ -672,6 +352,82 @@ var useSheetModelDxGridProps = (dxGrid, model) => {
|
|
|
672
352
|
};
|
|
673
353
|
};
|
|
674
354
|
|
|
355
|
+
// packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx
|
|
356
|
+
import React3, { createContext as createContext2, useCallback as useCallback3, useContext as useContext2, useState as useState2 } from "react";
|
|
357
|
+
import { invariant } from "@dxos/invariant";
|
|
358
|
+
import { fullyQualifiedId as fullyQualifiedId3 } from "@dxos/react-client/echo";
|
|
359
|
+
import { Grid, useGridContext } from "@dxos/react-ui-grid";
|
|
360
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx";
|
|
361
|
+
var SheetContext = /* @__PURE__ */ createContext2(void 0);
|
|
362
|
+
var useSheetContext = () => {
|
|
363
|
+
const context = useContext2(SheetContext);
|
|
364
|
+
invariant(context, void 0, {
|
|
365
|
+
F: __dxlog_file,
|
|
366
|
+
L: 54,
|
|
367
|
+
S: void 0,
|
|
368
|
+
A: [
|
|
369
|
+
"context",
|
|
370
|
+
""
|
|
371
|
+
]
|
|
372
|
+
});
|
|
373
|
+
return context;
|
|
374
|
+
};
|
|
375
|
+
var SheetProviderImpl = ({ model, onInfo, ignoreAttention, children, __gridScope }) => {
|
|
376
|
+
const { id, editing, setEditing } = useGridContext("SheetProvider", __gridScope);
|
|
377
|
+
const [cursor, setCursorInternal] = useState2();
|
|
378
|
+
const [range, setRangeInternal] = useState2();
|
|
379
|
+
const [cursorFallbackRange, setCursorFallbackRange] = useState2();
|
|
380
|
+
const [activeRefs, setActiveRefs] = useState2("");
|
|
381
|
+
const setCursor = useCallback3((nextCursor) => {
|
|
382
|
+
setCursorInternal(nextCursor);
|
|
383
|
+
setCursorFallbackRange(range?.to ? range : nextCursor ? {
|
|
384
|
+
from: nextCursor,
|
|
385
|
+
to: nextCursor
|
|
386
|
+
} : void 0);
|
|
387
|
+
}, [
|
|
388
|
+
range
|
|
389
|
+
]);
|
|
390
|
+
const setRange = useCallback3((nextRange) => {
|
|
391
|
+
setRangeInternal(nextRange);
|
|
392
|
+
setCursorFallbackRange(nextRange?.to ? nextRange : cursor ? {
|
|
393
|
+
from: cursor,
|
|
394
|
+
to: cursor
|
|
395
|
+
} : void 0);
|
|
396
|
+
}, [
|
|
397
|
+
cursor
|
|
398
|
+
]);
|
|
399
|
+
return /* @__PURE__ */ React3.createElement(SheetContext.Provider, {
|
|
400
|
+
value: {
|
|
401
|
+
id,
|
|
402
|
+
model,
|
|
403
|
+
editing,
|
|
404
|
+
setEditing,
|
|
405
|
+
cursor,
|
|
406
|
+
setCursor,
|
|
407
|
+
range,
|
|
408
|
+
setRange,
|
|
409
|
+
cursorFallbackRange,
|
|
410
|
+
activeRefs,
|
|
411
|
+
setActiveRefs,
|
|
412
|
+
// TODO(burdon): Change to event.
|
|
413
|
+
onInfo,
|
|
414
|
+
ignoreAttention
|
|
415
|
+
}
|
|
416
|
+
}, children);
|
|
417
|
+
};
|
|
418
|
+
var SheetProvider = ({ children, graph, sheet, readonly, ignoreAttention, onInfo }) => {
|
|
419
|
+
const model = useSheetModel(graph, sheet, {
|
|
420
|
+
readonly
|
|
421
|
+
});
|
|
422
|
+
return !model ? null : /* @__PURE__ */ React3.createElement(Grid.Root, {
|
|
423
|
+
id: fullyQualifiedId3(sheet)
|
|
424
|
+
}, /* @__PURE__ */ React3.createElement(SheetProviderImpl, {
|
|
425
|
+
model,
|
|
426
|
+
onInfo,
|
|
427
|
+
ignoreAttention
|
|
428
|
+
}, children));
|
|
429
|
+
};
|
|
430
|
+
|
|
675
431
|
// packages/plugins/plugin-sheet/src/components/GridSheet/GridSheet.tsx
|
|
676
432
|
var inertPosition = {
|
|
677
433
|
plane: "grid",
|
|
@@ -718,7 +474,7 @@ var sheetColDefault = {
|
|
|
718
474
|
}
|
|
719
475
|
};
|
|
720
476
|
var GridSheet = () => {
|
|
721
|
-
const { t } =
|
|
477
|
+
const { t } = useTranslation2(SHEET_PLUGIN);
|
|
722
478
|
const { id, model, editing, setCursor, setRange, cursor, cursorFallbackRange, activeRefs, ignoreAttention } = useSheetContext();
|
|
723
479
|
const [dxGrid, setDxGrid] = useState3(null);
|
|
724
480
|
const [extraplanarFocus, setExtraplanarFocus] = useState3(null);
|
|
@@ -970,14 +726,14 @@ var GridSheet = () => {
|
|
|
970
726
|
]);
|
|
971
727
|
useUpdateFocusedCellOnThreadSelection(dxGrid);
|
|
972
728
|
useSelectThreadOnCellFocus();
|
|
973
|
-
return /* @__PURE__ */
|
|
729
|
+
return /* @__PURE__ */ React4.createElement("div", {
|
|
974
730
|
role: "none",
|
|
975
731
|
className: "relative min-bs-0"
|
|
976
|
-
}, /* @__PURE__ */
|
|
732
|
+
}, /* @__PURE__ */ React4.createElement(GridCellEditor, {
|
|
977
733
|
getCellContent,
|
|
978
734
|
extension,
|
|
979
735
|
onBlur: handleBlur
|
|
980
|
-
}), /* @__PURE__ */
|
|
736
|
+
}), /* @__PURE__ */ React4.createElement(Grid2.Content, {
|
|
981
737
|
initialCells,
|
|
982
738
|
limitColumns: DEFAULT_COLS,
|
|
983
739
|
limitRows: DEFAULT_ROWS,
|
|
@@ -997,46 +753,48 @@ var GridSheet = () => {
|
|
|
997
753
|
className: "[--dx-grid-base:var(--surface-bg)] [&_.dx-grid]:border-bs [&_.dx-grid]:absolute [&_.dx-grid]:inset-0 [&_.dx-grid]:border-separator",
|
|
998
754
|
activeRefs,
|
|
999
755
|
ref: setDxGrid
|
|
1000
|
-
}), /* @__PURE__ */
|
|
756
|
+
}), /* @__PURE__ */ React4.createElement(DropdownMenu.Root, {
|
|
1001
757
|
modal: false,
|
|
1002
758
|
open: !!contextMenuOpen,
|
|
1003
759
|
onOpenChange: (nextOpen) => setContextMenuOpen(nextOpen ? inertPosition : null)
|
|
1004
|
-
}, /* @__PURE__ */
|
|
760
|
+
}, /* @__PURE__ */ React4.createElement(DropdownMenu.VirtualTrigger, {
|
|
1005
761
|
virtualRef: contextMenuAnchorRef
|
|
1006
|
-
}), /* @__PURE__ */
|
|
762
|
+
}), /* @__PURE__ */ React4.createElement(DropdownMenu.Content, {
|
|
1007
763
|
side: contextMenuAxis === "col" ? "bottom" : "right",
|
|
1008
764
|
sideOffset: 4,
|
|
1009
765
|
collisionPadding: 8
|
|
1010
|
-
}, /* @__PURE__ */
|
|
766
|
+
}, /* @__PURE__ */ React4.createElement(DropdownMenu.Viewport, null, /* @__PURE__ */ React4.createElement(DropdownMenu.Item, {
|
|
1011
767
|
onClick: () => handleAxisMenuAction("insert-before"),
|
|
1012
768
|
"data-testid": `grid.${contextMenuAxis}.insert-before`
|
|
1013
|
-
}, /* @__PURE__ */
|
|
769
|
+
}, /* @__PURE__ */ React4.createElement(Icon, {
|
|
1014
770
|
size: 5,
|
|
1015
771
|
icon: contextMenuAxis === "col" ? "ph--columns-plus-left--regular" : "ph--rows-plus-top--regular"
|
|
1016
|
-
}), /* @__PURE__ */
|
|
772
|
+
}), /* @__PURE__ */ React4.createElement("span", null, t(`add ${contextMenuAxis} before label`))), /* @__PURE__ */ React4.createElement(DropdownMenu.Item, {
|
|
1017
773
|
onClick: () => handleAxisMenuAction("insert-after"),
|
|
1018
774
|
"data-testid": `grid.${contextMenuAxis}.insert-after`
|
|
1019
|
-
}, /* @__PURE__ */
|
|
775
|
+
}, /* @__PURE__ */ React4.createElement(Icon, {
|
|
1020
776
|
size: 5,
|
|
1021
777
|
icon: contextMenuAxis === "col" ? "ph--columns-plus-right--regular" : "ph--rows-plus-bottom--regular"
|
|
1022
|
-
}), /* @__PURE__ */
|
|
778
|
+
}), /* @__PURE__ */ React4.createElement("span", null, t(`add ${contextMenuAxis} after label`))), /* @__PURE__ */ React4.createElement(DropdownMenu.Item, {
|
|
1023
779
|
onClick: () => handleAxisMenuAction("drop"),
|
|
1024
780
|
"data-testid": `grid.${contextMenuAxis}.drop`
|
|
1025
|
-
}, /* @__PURE__ */
|
|
781
|
+
}, /* @__PURE__ */ React4.createElement(Icon, {
|
|
1026
782
|
size: 5,
|
|
1027
783
|
icon: "ph--backspace--regular"
|
|
1028
|
-
}), /* @__PURE__ */
|
|
784
|
+
}), /* @__PURE__ */ React4.createElement("span", null, t(`delete ${contextMenuAxis} label`)))), /* @__PURE__ */ React4.createElement(DropdownMenu.Arrow, null))));
|
|
1029
785
|
};
|
|
1030
786
|
|
|
787
|
+
// packages/plugins/plugin-sheet/src/components/index.ts
|
|
788
|
+
var SheetContainer = lazy(() => import("./SheetContainer-CM4CO3DC.mjs"));
|
|
789
|
+
|
|
1031
790
|
export {
|
|
1032
791
|
ComputeGraphContextProvider,
|
|
1033
792
|
useComputeGraph,
|
|
1034
793
|
completeCellRangeToThreadCursor,
|
|
1035
|
-
computeGraphFacet,
|
|
1036
794
|
useSheetContext,
|
|
1037
795
|
SheetProvider,
|
|
1038
796
|
GridSheet,
|
|
1039
|
-
|
|
797
|
+
RangeList,
|
|
1040
798
|
SheetContainer
|
|
1041
799
|
};
|
|
1042
|
-
//# sourceMappingURL=chunk-
|
|
800
|
+
//# sourceMappingURL=chunk-H23JW3DX.mjs.map
|