@dxos/plugin-sheet 0.8.2-main.fbd8ed0 → 0.8.2-staging.7ac8446
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-UV7RMPXS.mjs → SheetContainer-B3A5443Z.mjs} +88 -90
- package/dist/lib/browser/SheetContainer-B3A5443Z.mjs.map +7 -0
- package/dist/lib/browser/{chunk-TN7LTDHU.mjs → chunk-CHMPICA6.mjs} +75 -86
- package/dist/lib/browser/chunk-CHMPICA6.mjs.map +7 -0
- package/dist/lib/browser/{chunk-N2FOQHUH.mjs → chunk-ZOKEQL2K.mjs} +50 -51
- package/dist/lib/browser/chunk-ZOKEQL2K.mjs.map +7 -0
- package/dist/lib/browser/{compute-graph-registry-MBJKPAHX.mjs → compute-graph-registry-WEJLJJ6T.mjs} +2 -2
- package/dist/lib/browser/compute-graph-registry-WEJLJJ6T.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +8 -8
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-DN7JXDAV.mjs → intent-resolver-6OUEM3IG.mjs} +2 -2
- package/dist/lib/browser/{markdown-57MKY5WB.mjs → markdown-DR4RDEEY.mjs} +2 -2
- package/dist/lib/browser/markdown-DR4RDEEY.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-NQU63B63.mjs → react-surface-ECKBP3UZ.mjs} +3 -3
- package/dist/lib/browser/{thread-WU64QL2A.mjs → thread-76MK2FMV.mjs} +2 -2
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node/{SheetContainer-GR2KDOAE.cjs → SheetContainer-LGRD3TTQ.cjs} +102 -106
- package/dist/lib/node/SheetContainer-LGRD3TTQ.cjs.map +7 -0
- package/dist/lib/node/{chunk-CN7OBGYV.cjs → chunk-AEH3L5QZ.cjs} +84 -95
- package/dist/lib/node/chunk-AEH3L5QZ.cjs.map +7 -0
- package/dist/lib/node/{chunk-HLSQVT3C.cjs → chunk-D4MOMCEU.cjs} +65 -66
- package/dist/lib/node/chunk-D4MOMCEU.cjs.map +7 -0
- package/dist/lib/node/{compute-graph-registry-EBBDN6ZX.cjs → compute-graph-registry-VVSRJUGS.cjs} +5 -5
- package/dist/lib/node/compute-graph-registry-VVSRJUGS.cjs.map +7 -0
- package/dist/lib/node/index.cjs +12 -12
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-OPF56TAL.cjs → intent-resolver-ICHNDL6F.cjs} +9 -9
- package/dist/lib/node/{markdown-Q3RXYPHQ.cjs → markdown-E7OUIMZO.cjs} +5 -5
- package/dist/lib/node/markdown-E7OUIMZO.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-7SAA5DX3.cjs → react-surface-6PBWE75L.cjs} +11 -11
- package/dist/lib/node/{thread-E7YPGR5T.cjs → thread-WP43BC4N.cjs} +7 -7
- package/dist/lib/node/types/index.cjs +29 -29
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/{SheetContainer-XW7B2AJI.mjs → SheetContainer-4FNTLG5R.mjs} +88 -90
- package/dist/lib/node-esm/SheetContainer-4FNTLG5R.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-LYZV4Q4C.mjs → chunk-6NB67Y6X.mjs} +50 -51
- package/dist/lib/node-esm/chunk-6NB67Y6X.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-3JJ7ETTJ.mjs → chunk-WQHYR4WD.mjs} +75 -86
- package/dist/lib/node-esm/chunk-WQHYR4WD.mjs.map +7 -0
- package/dist/lib/node-esm/{compute-graph-registry-TVG6RN2J.mjs → compute-graph-registry-PBQ52KH6.mjs} +2 -2
- package/dist/lib/node-esm/compute-graph-registry-PBQ52KH6.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +8 -8
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-7AN5CN4R.mjs → intent-resolver-2JNQCFCI.mjs} +2 -2
- package/dist/lib/node-esm/{markdown-ACHAWUOE.mjs → markdown-BPKS2TNG.mjs} +2 -2
- package/dist/lib/node-esm/markdown-BPKS2TNG.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-BPNN7RSE.mjs → react-surface-UM2Y3ZWZ.mjs} +3 -3
- package/dist/lib/node-esm/{thread-ULESW6IX.mjs → thread-4NCPE5FK.mjs} +2 -2
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/capabilities/compute-graph-registry.d.ts +2 -2
- package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +2 -2
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown.d.ts +2 -2
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
- package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/util.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 +2 -3
- 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/SheetContext/SheetContext.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/align.d.ts +1 -4
- package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/comment.d.ts +1 -3
- package/dist/types/src/components/SheetToolbar/comment.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/style.d.ts +1 -3
- package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -1
- 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 +1 -1
- package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +6 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/extensions/compute.d.ts.map +1 -1
- package/dist/types/src/extensions/editor/extension.d.ts.map +1 -1
- package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
- package/dist/types/src/model/testing.d.ts.map +1 -1
- package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
- package/dist/types/src/testing/data.d.ts.map +1 -1
- package/dist/types/src/testing/testing.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +54 -2
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +144 -239
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +36 -36
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/types/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +47 -53
- package/src/capabilities/compute-graph-registry.ts +3 -3
- package/src/capabilities/markdown.ts +3 -3
- package/src/components/ComputeGraph/compute-graph.stories.tsx +4 -4
- package/src/components/FunctionEditor/FunctionEditor.tsx +1 -1
- package/src/components/GridSheet/GridSheet.stories.tsx +2 -5
- package/src/components/GridSheet/GridSheet.tsx +12 -18
- package/src/components/GridSheet/SheetCellEditor.stories.tsx +2 -2
- package/src/components/GridSheet/util.ts +2 -7
- package/src/components/RangeList/RangeList.tsx +2 -2
- package/src/components/SheetContainer/SheetContainer.stories.tsx +5 -1
- package/src/components/SheetContainer/SheetContainer.tsx +7 -4
- package/src/components/SheetToolbar/SheetToolbar.stories.tsx +1 -1
- package/src/components/SheetToolbar/SheetToolbar.tsx +8 -33
- package/src/components/SheetToolbar/align.ts +14 -44
- package/src/components/SheetToolbar/comment.ts +11 -39
- package/src/components/SheetToolbar/style.ts +12 -48
- package/src/components/SheetToolbar/useToolbarAction.ts +87 -0
- package/src/components/SheetToolbar/useToolbarState.ts +2 -2
- package/src/integrations/thread-ranges.ts +3 -2
- package/src/model/sheet-model.test.ts +1 -1
- package/src/sanity.test.ts +3 -3
- package/src/serializer.ts +2 -2
- package/src/types/schema.ts +19 -21
- package/src/types/types.ts +25 -25
- package/src/types/util.ts +2 -2
- package/dist/lib/browser/SheetContainer-UV7RMPXS.mjs.map +0 -7
- package/dist/lib/browser/chunk-N2FOQHUH.mjs.map +0 -7
- package/dist/lib/browser/chunk-TN7LTDHU.mjs.map +0 -7
- package/dist/lib/browser/compute-graph-registry-MBJKPAHX.mjs.map +0 -7
- package/dist/lib/browser/markdown-57MKY5WB.mjs.map +0 -7
- package/dist/lib/node/SheetContainer-GR2KDOAE.cjs.map +0 -7
- package/dist/lib/node/chunk-CN7OBGYV.cjs.map +0 -7
- package/dist/lib/node/chunk-HLSQVT3C.cjs.map +0 -7
- package/dist/lib/node/compute-graph-registry-EBBDN6ZX.cjs.map +0 -7
- package/dist/lib/node/markdown-Q3RXYPHQ.cjs.map +0 -7
- package/dist/lib/node-esm/SheetContainer-XW7B2AJI.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3JJ7ETTJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-LYZV4Q4C.mjs.map +0 -7
- package/dist/lib/node-esm/compute-graph-registry-TVG6RN2J.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-ACHAWUOE.mjs.map +0 -7
- /package/dist/lib/browser/{intent-resolver-DN7JXDAV.mjs.map → intent-resolver-6OUEM3IG.mjs.map} +0 -0
- /package/dist/lib/browser/{react-surface-NQU63B63.mjs.map → react-surface-ECKBP3UZ.mjs.map} +0 -0
- /package/dist/lib/browser/{thread-WU64QL2A.mjs.map → thread-76MK2FMV.mjs.map} +0 -0
- /package/dist/lib/node/{intent-resolver-OPF56TAL.cjs.map → intent-resolver-ICHNDL6F.cjs.map} +0 -0
- /package/dist/lib/node/{react-surface-7SAA5DX3.cjs.map → react-surface-6PBWE75L.cjs.map} +0 -0
- /package/dist/lib/node/{thread-E7YPGR5T.cjs.map → thread-WP43BC4N.cjs.map} +0 -0
- /package/dist/lib/node-esm/{intent-resolver-7AN5CN4R.mjs.map → intent-resolver-2JNQCFCI.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-surface-BPNN7RSE.mjs.map → react-surface-UM2Y3ZWZ.mjs.map} +0 -0
- /package/dist/lib/node-esm/{thread-ULESW6IX.mjs.map → thread-4NCPE5FK.mjs.map} +0 -0
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
completeCellRangeToThreadCursor,
|
|
6
6
|
useComputeGraph,
|
|
7
7
|
useSheetContext
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-WQHYR4WD.mjs";
|
|
9
9
|
import "./chunk-HXBUY5ET.mjs";
|
|
10
10
|
import {
|
|
11
11
|
alignKey,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
mapFormulaIndicesToRefs,
|
|
14
14
|
rangeFromIndex,
|
|
15
15
|
rangeToIndex
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-6NB67Y6X.mjs";
|
|
17
17
|
import {
|
|
18
18
|
SHEET_PLUGIN
|
|
19
19
|
} from "./chunk-Y6ND5HWX.mjs";
|
|
@@ -41,7 +41,7 @@ var FunctionEditor = () => {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
return /* @__PURE__ */ React.createElement("div", {
|
|
44
|
-
className: "flex shrink-0 justify-between items-center px-4 py-1 text-sm
|
|
44
|
+
className: "flex shrink-0 justify-between items-center px-4 py-1 text-sm attention-surface border-bs !border-separator"
|
|
45
45
|
}, /* @__PURE__ */ React.createElement("div", {
|
|
46
46
|
className: "flex gap-4 items-center"
|
|
47
47
|
}, /* @__PURE__ */ React.createElement("div", {
|
|
@@ -60,9 +60,7 @@ var FunctionEditor = () => {
|
|
|
60
60
|
};
|
|
61
61
|
|
|
62
62
|
// packages/plugins/plugin-sheet/src/components/SheetToolbar/SheetToolbar.tsx
|
|
63
|
-
import React2, { useCallback } from "react";
|
|
64
|
-
import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
|
|
65
|
-
import { ThreadAction } from "@dxos/plugin-thread/types";
|
|
63
|
+
import React2, { useCallback as useCallback2 } from "react";
|
|
66
64
|
import { createGapSeparator, MenuProvider, ToolbarMenu, useMenuActions } from "@dxos/react-ui-menu";
|
|
67
65
|
|
|
68
66
|
// packages/plugins/plugin-sheet/src/components/SheetToolbar/align.ts
|
|
@@ -94,31 +92,11 @@ var createAlignGroupAction = (value) => createMenuItemGroup("align", {
|
|
|
94
92
|
selectCardinality: "single",
|
|
95
93
|
value: `${alignKey}--${value}`
|
|
96
94
|
});
|
|
97
|
-
var createAlignActions = (
|
|
98
|
-
return createMenuAction(`${alignKey}--${alignValue}`,
|
|
99
|
-
if (!cursorFallbackRange) {
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
const index = model.sheet.ranges?.findIndex((range) => range.key === alignKey && inRange(rangeFromIndex(model.sheet, range.range), cursorFallbackRange.from)) ?? -1;
|
|
103
|
-
const nextRangeEntity = {
|
|
104
|
-
range: rangeToIndex(model.sheet, cursorFallbackRange),
|
|
105
|
-
key: alignKey,
|
|
106
|
-
value: alignValue
|
|
107
|
-
};
|
|
108
|
-
if (index < 0) {
|
|
109
|
-
model.sheet.ranges?.push(nextRangeEntity);
|
|
110
|
-
state[alignKey] = nextRangeEntity.value;
|
|
111
|
-
} else if (model.sheet.ranges[index].value === nextRangeEntity.value) {
|
|
112
|
-
model.sheet.ranges?.splice(index, 1);
|
|
113
|
-
state[alignKey] = void 0;
|
|
114
|
-
} else {
|
|
115
|
-
model.sheet.ranges?.splice(index, 1, nextRangeEntity);
|
|
116
|
-
state[alignKey] = nextRangeEntity.value;
|
|
117
|
-
}
|
|
118
|
-
}, {
|
|
95
|
+
var createAlignActions = (value) => Object.entries(aligns).map(([alignValue, icon]) => {
|
|
96
|
+
return createMenuAction(`${alignKey}--${alignValue}`, {
|
|
119
97
|
key: alignKey,
|
|
120
98
|
value: alignValue,
|
|
121
|
-
checked:
|
|
99
|
+
checked: value === alignValue,
|
|
122
100
|
label: [
|
|
123
101
|
`range value ${alignValue} label`,
|
|
124
102
|
{
|
|
@@ -129,9 +107,9 @@ var createAlignActions = (model, state, cursorFallbackRange) => Object.entries(a
|
|
|
129
107
|
testId: `grid.toolbar.${alignKey}.${alignValue}`
|
|
130
108
|
});
|
|
131
109
|
});
|
|
132
|
-
var createAlign = (
|
|
133
|
-
const alignGroup = createAlignGroupAction(
|
|
134
|
-
const alignActions = createAlignActions(
|
|
110
|
+
var createAlign = ({ [alignKey]: alignValue }) => {
|
|
111
|
+
const alignGroup = createAlignGroupAction(alignValue);
|
|
112
|
+
const alignActions = createAlignActions(alignValue);
|
|
135
113
|
return {
|
|
136
114
|
nodes: [
|
|
137
115
|
alignGroup,
|
|
@@ -172,16 +150,7 @@ var useCommentState = (state) => {
|
|
|
172
150
|
cursorFallbackRange
|
|
173
151
|
]);
|
|
174
152
|
};
|
|
175
|
-
var createCommentAction = (
|
|
176
|
-
if (!cursorFallbackRange) {
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
const cellContent = model.getCellText(cursorFallbackRange.from);
|
|
180
|
-
if (!cellContent) {
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
onComment(cellContent, completeCellRangeToThreadCursor(cursorFallbackRange));
|
|
184
|
-
}, {
|
|
153
|
+
var createCommentAction = (state) => createMenuAction2("comment", {
|
|
185
154
|
key: commentKey,
|
|
186
155
|
testId: "editor.toolbar.comment",
|
|
187
156
|
icon: "ph--chat-text--regular",
|
|
@@ -193,9 +162,9 @@ var createCommentAction = (model, state, onComment, cursorFallbackRange) => crea
|
|
|
193
162
|
],
|
|
194
163
|
disabled: state.commentEnabled !== "comment"
|
|
195
164
|
});
|
|
196
|
-
var createComment = (
|
|
165
|
+
var createComment = (state) => ({
|
|
197
166
|
nodes: [
|
|
198
|
-
createCommentAction(
|
|
167
|
+
createCommentAction(state)
|
|
199
168
|
],
|
|
200
169
|
edges: [
|
|
201
170
|
{
|
|
@@ -235,27 +204,8 @@ var createStyleGroup = (state) => {
|
|
|
235
204
|
value: Object.keys(styles).filter((key) => !!state[key]).map((styleValue) => `style--${styleValue}`)
|
|
236
205
|
});
|
|
237
206
|
};
|
|
238
|
-
var createStyleActions = (
|
|
239
|
-
return createMenuAction3(`style--${styleValue}`,
|
|
240
|
-
if (!cursorFallbackRange) {
|
|
241
|
-
return;
|
|
242
|
-
}
|
|
243
|
-
const index = model.sheet.ranges?.findIndex((range) => range.key === "style" && inRange2(rangeFromIndex(model.sheet, range.range), cursorFallbackRange.from)) ?? -1;
|
|
244
|
-
const nextRangeEntity = {
|
|
245
|
-
range: rangeToIndex(model.sheet, cursorFallbackRange),
|
|
246
|
-
key: "style",
|
|
247
|
-
value: styleValue
|
|
248
|
-
};
|
|
249
|
-
if (model.sheet.ranges.filter(({ range, key: rangeKey }) => rangeKey === "style" && inRange2(rangeFromIndex(model.sheet, range), cursorFallbackRange.from)).some(({ value: rangeValue }) => rangeValue === styleValue)) {
|
|
250
|
-
if (index >= 0) {
|
|
251
|
-
model.sheet.ranges?.splice(index, 1);
|
|
252
|
-
}
|
|
253
|
-
state[nextRangeEntity.value] = false;
|
|
254
|
-
} else {
|
|
255
|
-
model.sheet.ranges?.push(nextRangeEntity);
|
|
256
|
-
state[nextRangeEntity.value] = true;
|
|
257
|
-
}
|
|
258
|
-
}, {
|
|
207
|
+
var createStyleActions = (state) => Object.entries(styles).map(([styleValue, icon]) => {
|
|
208
|
+
return createMenuAction3(`style--${styleValue}`, {
|
|
259
209
|
key: "style",
|
|
260
210
|
value: styleValue,
|
|
261
211
|
icon,
|
|
@@ -268,9 +218,9 @@ var createStyleActions = (model, state, cursorFallbackRange) => Object.entries(s
|
|
|
268
218
|
checked: !!state[styleValue]
|
|
269
219
|
});
|
|
270
220
|
});
|
|
271
|
-
var createStyle = (
|
|
221
|
+
var createStyle = (state) => {
|
|
272
222
|
const styleGroupAction = createStyleGroup(state);
|
|
273
|
-
const styleActions = createStyleActions(
|
|
223
|
+
const styleActions = createStyleActions(state);
|
|
274
224
|
return {
|
|
275
225
|
nodes: [
|
|
276
226
|
styleGroupAction,
|
|
@@ -289,19 +239,78 @@ var createStyle = (model, state, cursorFallbackRange) => {
|
|
|
289
239
|
};
|
|
290
240
|
};
|
|
291
241
|
|
|
242
|
+
// packages/plugins/plugin-sheet/src/components/SheetToolbar/useToolbarAction.ts
|
|
243
|
+
import { useCallback } from "react";
|
|
244
|
+
import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
|
|
245
|
+
import { inRange as inRange3 } from "@dxos/compute";
|
|
246
|
+
import { ThreadAction } from "@dxos/plugin-thread/types";
|
|
247
|
+
var useToolbarAction = (state) => {
|
|
248
|
+
const { model, cursorFallbackRange, cursor } = useSheetContext();
|
|
249
|
+
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
250
|
+
return useCallback((action) => {
|
|
251
|
+
const { key, value } = action.properties;
|
|
252
|
+
if (cursorFallbackRange) {
|
|
253
|
+
const index = model.sheet.ranges?.findIndex((range) => range.key === key && inRange3(rangeFromIndex(model.sheet, range.range), cursorFallbackRange.from)) ?? -1;
|
|
254
|
+
const nextRangeEntity = {
|
|
255
|
+
range: rangeToIndex(model.sheet, cursorFallbackRange),
|
|
256
|
+
key,
|
|
257
|
+
value
|
|
258
|
+
};
|
|
259
|
+
switch (key) {
|
|
260
|
+
case "alignment":
|
|
261
|
+
if (index < 0) {
|
|
262
|
+
model.sheet.ranges?.push(nextRangeEntity);
|
|
263
|
+
state[alignKey] = value;
|
|
264
|
+
} else if (model.sheet.ranges[index].value === value) {
|
|
265
|
+
model.sheet.ranges?.splice(index, 1);
|
|
266
|
+
state[alignKey] = void 0;
|
|
267
|
+
} else {
|
|
268
|
+
model.sheet.ranges?.splice(index, 1, nextRangeEntity);
|
|
269
|
+
state[alignKey] = value;
|
|
270
|
+
}
|
|
271
|
+
break;
|
|
272
|
+
case "style":
|
|
273
|
+
if (model.sheet.ranges.filter(({ range, key: rangeKey }) => rangeKey === "style" && inRange3(rangeFromIndex(model.sheet, range), cursorFallbackRange.from)).some(({ value: rangeValue }) => rangeValue === value)) {
|
|
274
|
+
if (index >= 0) {
|
|
275
|
+
model.sheet.ranges?.splice(index, 1);
|
|
276
|
+
}
|
|
277
|
+
state[value] = false;
|
|
278
|
+
} else {
|
|
279
|
+
model.sheet.ranges?.push(nextRangeEntity);
|
|
280
|
+
state[value] = true;
|
|
281
|
+
}
|
|
282
|
+
break;
|
|
283
|
+
case "comment": {
|
|
284
|
+
const cellContent = model.getCellText(cursorFallbackRange.from);
|
|
285
|
+
void dispatch(createIntent(ThreadAction.Create, {
|
|
286
|
+
cursor: completeCellRangeToThreadCursor(cursorFallbackRange),
|
|
287
|
+
name: cellContent,
|
|
288
|
+
subject: model.sheet
|
|
289
|
+
}));
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}, [
|
|
294
|
+
model.sheet,
|
|
295
|
+
cursorFallbackRange,
|
|
296
|
+
cursor,
|
|
297
|
+
dispatch
|
|
298
|
+
]);
|
|
299
|
+
};
|
|
300
|
+
|
|
292
301
|
// packages/plugins/plugin-sheet/src/components/SheetToolbar/useToolbarState.ts
|
|
293
302
|
import { useMemo as useMemo2 } from "react";
|
|
294
|
-
import {
|
|
303
|
+
import { create } from "@dxos/live-object";
|
|
295
304
|
var useToolbarState = (initialState = {}) => {
|
|
296
|
-
return useMemo2(() =>
|
|
305
|
+
return useMemo2(() => create(initialState), []);
|
|
297
306
|
};
|
|
298
307
|
|
|
299
308
|
// packages/plugins/plugin-sheet/src/components/SheetToolbar/SheetToolbar.tsx
|
|
300
|
-
var createToolbarActions = (
|
|
301
|
-
const align = createAlign(
|
|
302
|
-
const style = createStyle(
|
|
309
|
+
var createToolbarActions = (state) => {
|
|
310
|
+
const align = createAlign(state);
|
|
311
|
+
const style = createStyle(state);
|
|
303
312
|
const gap = createGapSeparator();
|
|
304
|
-
const comment = createComment(
|
|
313
|
+
const comment = createComment(state);
|
|
305
314
|
return {
|
|
306
315
|
nodes: [
|
|
307
316
|
...align.nodes,
|
|
@@ -318,30 +327,19 @@ var createToolbarActions = (model, state, onComment, cursorFallbackRange) => {
|
|
|
318
327
|
};
|
|
319
328
|
};
|
|
320
329
|
var SheetToolbar = ({ attendableId, classNames }) => {
|
|
321
|
-
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
322
|
-
const { model, cursorFallbackRange } = useSheetContext();
|
|
323
330
|
const state = useToolbarState({});
|
|
324
331
|
useAlignState(state);
|
|
325
332
|
useStyleState(state);
|
|
326
333
|
useCommentState(state);
|
|
327
|
-
const
|
|
328
|
-
|
|
329
|
-
name,
|
|
330
|
-
subject: model.sheet
|
|
331
|
-
})), [
|
|
332
|
-
model.sheet,
|
|
333
|
-
dispatch
|
|
334
|
-
]);
|
|
335
|
-
const actionsCreator = useCallback(() => createToolbarActions(model, state, handleComment, cursorFallbackRange), [
|
|
336
|
-
model,
|
|
337
|
-
state,
|
|
338
|
-
handleComment,
|
|
339
|
-
cursorFallbackRange
|
|
334
|
+
const actionsCreator = useCallback2(() => createToolbarActions(state), [
|
|
335
|
+
state
|
|
340
336
|
]);
|
|
341
337
|
const menu = useMenuActions(actionsCreator);
|
|
338
|
+
const handleAction = useToolbarAction(state);
|
|
342
339
|
return /* @__PURE__ */ React2.createElement(MenuProvider, {
|
|
343
340
|
...menu,
|
|
344
|
-
attendableId
|
|
341
|
+
attendableId,
|
|
342
|
+
onAction: handleAction
|
|
345
343
|
}, /* @__PURE__ */ React2.createElement(ToolbarMenu, {
|
|
346
344
|
classNames
|
|
347
345
|
}));
|
|
@@ -370,4 +368,4 @@ var SheetContainer_default = SheetContainer;
|
|
|
370
368
|
export {
|
|
371
369
|
SheetContainer_default as default
|
|
372
370
|
};
|
|
373
|
-
//# sourceMappingURL=SheetContainer-
|
|
371
|
+
//# sourceMappingURL=SheetContainer-4FNTLG5R.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/SheetContainer/SheetContainer.tsx", "../../../src/components/FunctionEditor/FunctionEditor.tsx", "../../../src/components/SheetToolbar/SheetToolbar.tsx", "../../../src/components/SheetToolbar/align.ts", "../../../src/components/SheetToolbar/comment.ts", "../../../src/components/SheetToolbar/style.ts", "../../../src/components/SheetToolbar/useToolbarAction.ts", "../../../src/components/SheetToolbar/useToolbarState.ts", "../../../src/components/SheetContainer/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { fullyQualifiedId, type Space } from '@dxos/react-client/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { type SheetType } from '../../types';\nimport { useComputeGraph } from '../ComputeGraph';\nimport { FunctionEditor } from '../FunctionEditor';\nimport { GridSheet } from '../GridSheet';\nimport { SheetProvider } from '../SheetContext';\nimport { SheetToolbar } from '../SheetToolbar';\n\nexport const SheetContainer = ({\n space,\n sheet,\n role,\n ignoreAttention,\n}: {\n space: Space;\n sheet: SheetType;\n role?: string;\n ignoreAttention?: boolean;\n}) => {\n const graph = useComputeGraph(space);\n\n return graph ? (\n <SheetProvider sheet={sheet} graph={graph} ignoreAttention={ignoreAttention}>\n <StackItem.Content toolbar statusbar {...(role === 'section' && { classNames: 'aspect-video' })}>\n <SheetToolbar attendableId={fullyQualifiedId(sheet)} />\n <GridSheet />\n <FunctionEditor />\n </StackItem.Content>\n </SheetProvider>\n ) : null;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { addressToA1Notation, isFormula, rangeToA1Notation } from '@dxos/compute';\nimport { Icon } from '@dxos/react-ui';\n\nimport { mapFormulaIndicesToRefs } from '../../types';\nimport { useSheetContext } from '../SheetContext';\n\nexport const FunctionEditor = () => {\n const { model, cursor, range } = useSheetContext();\n\n let value;\n let formula = false;\n if (cursor) {\n value = model.getCellValue(cursor);\n if (isFormula(value)) {\n value = model.graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(model.sheet, value));\n formula = true;\n } else if (value != null) {\n value = String(value);\n }\n }\n\n return (\n <div className='flex shrink-0 justify-between items-center px-4 py-1 text-sm attention-surface border-bs !border-separator'>\n <div className='flex gap-4 items-center'>\n <div className='flex w-16 items-center font-mono'>\n {(range && rangeToA1Notation(range)) || (cursor && addressToA1Notation(cursor))}\n </div>\n <div className='flex gap-2 items-center'>\n <Icon icon='ph--function--regular' classNames={['text-greenText', formula ? 'visible' : 'invisible']} />\n <span className='font-mono'>{value}</span>\n </div>\n </div>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type PropsWithChildren, useCallback } from 'react';\n\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { createGapSeparator, MenuProvider, ToolbarMenu, useMenuActions } from '@dxos/react-ui-menu';\n\nimport { createAlign, useAlignState } from './align';\nimport { createComment, useCommentState } from './comment';\nimport { createStyle, useStyleState } from './style';\nimport { useToolbarAction } from './useToolbarAction';\nimport { type ToolbarState, useToolbarState } from './useToolbarState';\n\n//\n// Root\n//\n\nexport type SheetToolbarProps = ThemedClassName<PropsWithChildren<{ attendableId?: string }>>;\n\nconst createToolbarActions = (state: ToolbarState) => {\n const align = createAlign(state);\n const style = createStyle(state);\n const gap = createGapSeparator();\n const comment = createComment(state);\n return {\n nodes: [...align.nodes, ...style.nodes, ...gap.nodes, ...comment.nodes],\n edges: [...align.edges, ...style.edges, ...gap.edges, ...comment.edges],\n };\n};\n\nexport const SheetToolbar = ({ attendableId, classNames }: SheetToolbarProps) => {\n const state = useToolbarState({});\n useAlignState(state);\n useStyleState(state);\n useCommentState(state);\n\n const actionsCreator = useCallback(() => createToolbarActions(state), [state]);\n const menu = useMenuActions(actionsCreator);\n const handleAction = useToolbarAction(state);\n\n return (\n <MenuProvider {...menu} attendableId={attendableId} onAction={handleAction}>\n <ToolbarMenu classNames={classNames} />\n </MenuProvider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect } from 'react';\n\nimport { inRange } from '@dxos/compute';\nimport { createMenuAction, createMenuItemGroup, type ToolbarMenuActionGroupProperties } from '@dxos/react-ui-menu';\n\nimport { SHEET_PLUGIN } from '../../meta';\nimport { type AlignKey, alignKey, type AlignValue, rangeFromIndex } from '../../types';\nimport { useSheetContext } from '../SheetContext';\n\nexport type AlignAction = { key: AlignKey; value: AlignValue };\n\nexport type AlignState = { [alignKey]: AlignValue | undefined };\n\nconst aligns: Record<AlignValue, string> = {\n start: 'ph--text-align-left--regular',\n center: 'ph--text-align-center--regular',\n end: 'ph--text-align-right--regular',\n};\n\nexport const useAlignState = (state: Partial<AlignState>) => {\n const { cursor, model } = useSheetContext();\n useEffect(() => {\n // TODO(thure): Can this O(n) call be memoized?\n state[alignKey] = (\n cursor\n ? model.sheet.ranges?.findLast(\n ({ range, key }) => key === alignKey && inRange(rangeFromIndex(model.sheet, range), cursor),\n )?.value\n : undefined\n ) as AlignValue | undefined;\n }, [cursor, model.sheet]);\n};\n\nconst createAlignGroupAction = (value?: AlignValue) =>\n createMenuItemGroup('align', {\n label: ['align label', { ns: SHEET_PLUGIN }],\n variant: 'toggleGroup',\n selectCardinality: 'single',\n value: `${alignKey}--${value}`,\n } as ToolbarMenuActionGroupProperties);\n\nconst createAlignActions = (value?: AlignValue) =>\n Object.entries(aligns).map(([alignValue, icon]) => {\n return createMenuAction<AlignAction>(`${alignKey}--${alignValue}`, {\n key: alignKey,\n value: alignValue as AlignValue,\n checked: value === alignValue,\n label: [`range value ${alignValue} label`, { ns: SHEET_PLUGIN }],\n icon,\n testId: `grid.toolbar.${alignKey}.${alignValue}`,\n });\n });\n\nexport const createAlign = ({ [alignKey]: alignValue }: Partial<AlignState>) => {\n const alignGroup = createAlignGroupAction(alignValue);\n const alignActions = createAlignActions(alignValue);\n return {\n nodes: [alignGroup, ...alignActions],\n edges: [\n { source: 'root', target: 'align' },\n ...alignActions.map(({ id }) => ({ source: alignGroup.id, target: id })),\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useMemo } from 'react';\n\nimport { RefArray } from '@dxos/live-object';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { SHEET_PLUGIN } from '../../meta';\nimport { commentKey, type CommentKey, type CommentValue, rangeToIndex } from '../../types';\nimport { useSheetContext } from '../SheetContext';\n\nexport type CommentAction = { key: CommentKey; value: CommentValue; cellContent?: string };\n\nexport type CommentState = { commentEnabled: 'comment' | 'no cursor' | 'selection overlaps existing comment' };\n\nexport const useCommentState = (state: Partial<CommentState>) => {\n const { cursorFallbackRange, model } = useSheetContext();\n\n // TODO(thure): Can this O(n) call be memoized?\n const overlapsCommentAnchor = useMemo(\n () =>\n RefArray.targets(model.sheet.threads ?? [])\n .filter((thread) => thread.status !== 'resolved')\n .some((thread) => {\n if (!cursorFallbackRange) {\n return false;\n }\n return rangeToIndex(model.sheet, cursorFallbackRange) === thread.anchor;\n }),\n [cursorFallbackRange, model.sheet],\n );\n\n useEffect(() => {\n state.commentEnabled = !cursorFallbackRange\n ? 'no cursor'\n : overlapsCommentAnchor\n ? 'selection overlaps existing comment'\n : 'comment';\n }, [overlapsCommentAnchor, cursorFallbackRange]);\n};\n\nconst createCommentAction = (state: Partial<CommentState>) =>\n createMenuAction<Pick<CommentAction, 'key'>>('comment', {\n key: commentKey,\n testId: 'editor.toolbar.comment',\n icon: 'ph--chat-text--regular',\n label: [`${state.commentEnabled} label`, { ns: SHEET_PLUGIN }],\n disabled: state.commentEnabled !== 'comment',\n });\n\nexport const createComment = (state: Partial<CommentState>) => ({\n nodes: [createCommentAction(state)],\n edges: [{ source: 'root', target: 'comment' }],\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect } from 'react';\n\nimport { inRange } from '@dxos/compute';\nimport { createMenuAction, createMenuItemGroup, type ToolbarMenuActionGroupProperties } from '@dxos/react-ui-menu';\n\nimport { SHEET_PLUGIN } from '../../meta';\nimport { rangeFromIndex, type StyleKey, type StyleValue } from '../../types';\nimport { useSheetContext } from '../SheetContext';\n\nexport type StyleState = Partial<Record<StyleValue, boolean>>;\n\nexport type StyleAction = { key: StyleKey; value: StyleValue };\n\nconst styles: Record<StyleValue, string> = {\n highlight: 'ph--highlighter--regular',\n softwrap: 'ph--paragraph--regular',\n};\n\nexport const useStyleState = (state: StyleState) => {\n const { cursorFallbackRange, model } = useSheetContext();\n\n useEffect(() => {\n state.highlight = false;\n state.softwrap = false;\n if (cursorFallbackRange && model.sheet.ranges) {\n model.sheet.ranges\n .filter(\n ({ range, key }) => key === 'style' && inRange(rangeFromIndex(model.sheet, range), cursorFallbackRange.from),\n )\n .forEach(({ value }) => {\n state[value as StyleValue] = true;\n });\n }\n }, [cursorFallbackRange, model.sheet]);\n};\n\nconst createStyleGroup = (state: StyleState) => {\n return createMenuItemGroup('style', {\n variant: 'toggleGroup',\n selectCardinality: 'multiple',\n value: Object.keys(styles)\n .filter((key) => !!state[key as StyleValue])\n .map((styleValue) => `style--${styleValue}`),\n } as ToolbarMenuActionGroupProperties);\n};\n\nconst createStyleActions = (state: StyleState) =>\n Object.entries(styles).map(([styleValue, icon]) => {\n return createMenuAction<StyleAction>(`style--${styleValue}`, {\n key: 'style',\n value: styleValue as StyleValue,\n icon,\n label: [`range value ${styleValue} label`, { ns: SHEET_PLUGIN }],\n checked: !!state[styleValue as StyleValue],\n });\n });\n\nexport const createStyle = (state: StyleState) => {\n const styleGroupAction = createStyleGroup(state);\n const styleActions = createStyleActions(state);\n return {\n nodes: [styleGroupAction, ...styleActions],\n edges: [\n { source: 'root', target: 'style' },\n ...styleActions.map(({ id }) => ({ source: styleGroupAction.id, target: id })),\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { inRange } from '@dxos/compute';\nimport { ThreadAction } from '@dxos/plugin-thread/types';\nimport type { MenuAction, MenuActionHandler } from '@dxos/react-ui-menu';\n\nimport { type AlignAction } from './align';\nimport { type CommentAction } from './comment';\nimport { type StyleAction } from './style';\nimport { type ToolbarState } from './useToolbarState';\nimport { completeCellRangeToThreadCursor } from '../../integrations';\nimport { alignKey, rangeFromIndex, rangeToIndex } from '../../types';\nimport { useSheetContext } from '../SheetContext';\n\nexport type ToolbarAction = StyleAction | AlignAction | CommentAction;\n\nexport const useToolbarAction = (state: ToolbarState) => {\n const { model, cursorFallbackRange, cursor } = useSheetContext();\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n // TODO(Zan): Externalize the toolbar action handler. E.g., Toolbar/keys should both fire events.\n return useCallback(\n (action: MenuAction<ToolbarAction>) => {\n const { key, value } = action.properties;\n if (cursorFallbackRange) {\n const index =\n model.sheet.ranges?.findIndex(\n (range) => range.key === key && inRange(rangeFromIndex(model.sheet, range.range), cursorFallbackRange.from),\n ) ?? -1;\n const nextRangeEntity = {\n range: rangeToIndex(model.sheet, cursorFallbackRange),\n key,\n value,\n };\n switch (key) {\n case 'alignment':\n if (index < 0) {\n model.sheet.ranges?.push(nextRangeEntity);\n state[alignKey] = value;\n } else if (model.sheet.ranges![index].value === value) {\n model.sheet.ranges?.splice(index, 1);\n state[alignKey] = undefined;\n } else {\n model.sheet.ranges?.splice(index, 1, nextRangeEntity);\n state[alignKey] = value;\n }\n break;\n case 'style':\n if (\n model.sheet.ranges\n .filter(\n ({ range, key: rangeKey }) =>\n rangeKey === 'style' && inRange(rangeFromIndex(model.sheet, range), cursorFallbackRange.from),\n )\n .some(({ value: rangeValue }) => rangeValue === value)\n ) {\n // this value should be unset\n if (index >= 0) {\n model.sheet.ranges?.splice(index, 1);\n }\n state[value] = false;\n } else {\n model.sheet.ranges?.push(nextRangeEntity);\n state[value] = true;\n }\n break;\n case 'comment': {\n const cellContent = model.getCellText(cursorFallbackRange.from);\n void dispatch(\n createIntent(ThreadAction.Create, {\n cursor: completeCellRangeToThreadCursor(cursorFallbackRange),\n name: cellContent,\n subject: model.sheet,\n }),\n );\n }\n }\n }\n },\n [model.sheet, cursorFallbackRange, cursor, dispatch],\n ) as MenuActionHandler;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { create } from '@dxos/live-object';\n\nimport { type AlignState } from './align';\nimport { type CommentState } from './comment';\nimport { type StyleState } from './style';\n\nexport type ToolbarState = Partial<StyleState & AlignState & CommentState>;\n\nexport const useToolbarState = (initialState: ToolbarState = {}) => {\n return useMemo(() => create<ToolbarState>(initialState), []);\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { SheetContainer } from './SheetContainer';\n\nexport default SheetContainer;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "fullyQualifiedId", "StackItem", "React", "addressToA1Notation", "isFormula", "rangeToA1Notation", "Icon", "FunctionEditor", "model", "cursor", "range", "useSheetContext", "value", "formula", "getCellValue", "isFormula", "graph", "mapFunctionBindingFromId", "mapFormulaIndicesToRefs", "sheet", "String", "div", "className", "rangeToA1Notation", "addressToA1Notation", "Icon", "icon", "classNames", "span", "React", "useCallback", "createGapSeparator", "MenuProvider", "ToolbarMenu", "useMenuActions", "useEffect", "inRange", "createMenuAction", "createMenuItemGroup", "aligns", "start", "center", "end", "useAlignState", "state", "cursor", "model", "useSheetContext", "useEffect", "alignKey", "sheet", "ranges", "findLast", "range", "key", "inRange", "rangeFromIndex", "value", "undefined", "createAlignGroupAction", "createMenuItemGroup", "label", "ns", "SHEET_PLUGIN", "variant", "selectCardinality", "createAlignActions", "Object", "entries", "map", "alignValue", "icon", "createMenuAction", "checked", "testId", "createAlign", "alignGroup", "alignActions", "nodes", "edges", "source", "target", "id", "useEffect", "useMemo", "RefArray", "createMenuAction", "useCommentState", "state", "cursorFallbackRange", "model", "useSheetContext", "overlapsCommentAnchor", "useMemo", "RefArray", "targets", "sheet", "threads", "filter", "thread", "status", "some", "rangeToIndex", "anchor", "useEffect", "commentEnabled", "createCommentAction", "createMenuAction", "key", "commentKey", "testId", "icon", "label", "ns", "SHEET_PLUGIN", "disabled", "createComment", "nodes", "edges", "source", "target", "useEffect", "inRange", "createMenuAction", "createMenuItemGroup", "styles", "highlight", "softwrap", "useStyleState", "state", "cursorFallbackRange", "model", "useSheetContext", "useEffect", "sheet", "ranges", "filter", "range", "key", "inRange", "rangeFromIndex", "from", "forEach", "value", "createStyleGroup", "createMenuItemGroup", "variant", "selectCardinality", "Object", "keys", "map", "styleValue", "createStyleActions", "entries", "icon", "createMenuAction", "label", "ns", "SHEET_PLUGIN", "checked", "createStyle", "styleGroupAction", "styleActions", "nodes", "edges", "source", "target", "id", "useCallback", "createIntent", "useIntentDispatcher", "inRange", "ThreadAction", "useToolbarAction", "state", "model", "cursorFallbackRange", "cursor", "useSheetContext", "dispatchPromise", "dispatch", "useIntentDispatcher", "useCallback", "action", "key", "value", "properties", "index", "sheet", "ranges", "findIndex", "range", "inRange", "rangeFromIndex", "from", "nextRangeEntity", "rangeToIndex", "push", "alignKey", "splice", "undefined", "filter", "rangeKey", "some", "rangeValue", "cellContent", "getCellText", "createIntent", "ThreadAction", "Create", "completeCellRangeToThreadCursor", "name", "subject", "useMemo", "create", "useToolbarState", "initialState", "useMemo", "create", "createToolbarActions", "state", "align", "createAlign", "style", "createStyle", "gap", "createGapSeparator", "comment", "createComment", "nodes", "edges", "SheetToolbar", "attendableId", "classNames", "useToolbarState", "useAlignState", "useStyleState", "useCommentState", "actionsCreator", "useCallback", "menu", "useMenuActions", "handleAction", "useToolbarAction", "React", "MenuProvider", "onAction", "ToolbarMenu", "SheetContainer", "space", "sheet", "role", "ignoreAttention", "graph", "useComputeGraph", "React", "SheetProvider", "StackItem", "Content", "toolbar", "statusbar", "classNames", "SheetToolbar", "attendableId", "fullyQualifiedId", "GridSheet", "FunctionEditor", "SheetContainer"]
|
|
7
|
+
}
|
|
@@ -4,51 +4,50 @@ import {
|
|
|
4
4
|
} from "./chunk-Y6ND5HWX.mjs";
|
|
5
5
|
|
|
6
6
|
// packages/plugins/plugin-sheet/src/types/schema.ts
|
|
7
|
-
import {
|
|
8
|
-
import { Ref, TypedObject } from "@dxos/echo-schema";
|
|
7
|
+
import { Ref, S, TypedObject } from "@dxos/echo-schema";
|
|
9
8
|
import { ThreadType } from "@dxos/plugin-space/types";
|
|
10
|
-
var CellValue =
|
|
9
|
+
var CellValue = S.Struct({
|
|
11
10
|
// TODO(burdon): How to store dates (datetime, date, time), percentages, etc.
|
|
12
11
|
// Consider import/export; natural access for other plugins. Special handling for currency (precision).
|
|
13
12
|
// TODO(burdon): Automerge (long string) or short string or number.
|
|
14
|
-
value:
|
|
13
|
+
value: S.Any
|
|
15
14
|
});
|
|
16
|
-
var Range =
|
|
17
|
-
range:
|
|
18
|
-
key:
|
|
19
|
-
value:
|
|
15
|
+
var Range = S.Struct({
|
|
16
|
+
range: S.String,
|
|
17
|
+
key: S.String,
|
|
18
|
+
value: S.String
|
|
20
19
|
});
|
|
21
|
-
var RowColumnMeta =
|
|
22
|
-
size:
|
|
20
|
+
var RowColumnMeta = S.Struct({
|
|
21
|
+
size: S.optional(S.Number)
|
|
23
22
|
});
|
|
24
23
|
var SheetType = class extends TypedObject({
|
|
25
24
|
typename: "dxos.org/type/Sheet",
|
|
26
25
|
version: "0.1.0"
|
|
27
26
|
})({
|
|
28
|
-
name:
|
|
27
|
+
name: S.optional(S.String),
|
|
29
28
|
// Sparse map of cells referenced by index.
|
|
30
|
-
cells:
|
|
31
|
-
key:
|
|
32
|
-
value:
|
|
29
|
+
cells: S.mutable(S.Record({
|
|
30
|
+
key: S.String,
|
|
31
|
+
value: S.mutable(CellValue)
|
|
33
32
|
})),
|
|
34
33
|
// Ordered row indices.
|
|
35
|
-
rows:
|
|
34
|
+
rows: S.mutable(S.Array(S.String)),
|
|
36
35
|
// Ordered column indices.
|
|
37
|
-
columns:
|
|
36
|
+
columns: S.mutable(S.Array(S.String)),
|
|
38
37
|
// Row metadata referenced by index.
|
|
39
|
-
rowMeta:
|
|
40
|
-
key:
|
|
41
|
-
value:
|
|
38
|
+
rowMeta: S.mutable(S.Record({
|
|
39
|
+
key: S.String,
|
|
40
|
+
value: S.mutable(RowColumnMeta)
|
|
42
41
|
})),
|
|
43
42
|
// Column metadata referenced by index.
|
|
44
|
-
columnMeta:
|
|
45
|
-
key:
|
|
46
|
-
value:
|
|
43
|
+
columnMeta: S.mutable(S.Record({
|
|
44
|
+
key: S.String,
|
|
45
|
+
value: S.mutable(RowColumnMeta)
|
|
47
46
|
})),
|
|
48
47
|
// Cell formatting referenced by indexed range.
|
|
49
|
-
ranges:
|
|
48
|
+
ranges: S.mutable(S.Array(Range)),
|
|
50
49
|
// Threads associated with the sheet
|
|
51
|
-
threads:
|
|
50
|
+
threads: S.optional(S.mutable(S.Array(Ref(ThreadType))))
|
|
52
51
|
}) {
|
|
53
52
|
};
|
|
54
53
|
|
|
@@ -86,7 +85,7 @@ var cellClassNameForRange = ({ key, value }) => {
|
|
|
86
85
|
};
|
|
87
86
|
|
|
88
87
|
// packages/plugins/plugin-sheet/src/types/types.ts
|
|
89
|
-
import {
|
|
88
|
+
import { S as S2 } from "@dxos/echo-schema";
|
|
90
89
|
|
|
91
90
|
// packages/plugins/plugin-sheet/src/model/sheet-model.ts
|
|
92
91
|
import { Event } from "@dxos/async";
|
|
@@ -694,45 +693,45 @@ var useSheetModel = (graph, sheet, { readonly } = {}) => {
|
|
|
694
693
|
var SheetAction;
|
|
695
694
|
(function(SheetAction2) {
|
|
696
695
|
const SHEET_ACTION = `${SHEET_PLUGIN}/action`;
|
|
697
|
-
class Create extends
|
|
698
|
-
input:
|
|
699
|
-
name:
|
|
696
|
+
class Create extends S2.TaggedClass()(`${SHEET_ACTION}/create`, {
|
|
697
|
+
input: S2.Struct({
|
|
698
|
+
name: S2.optional(S2.String)
|
|
700
699
|
}),
|
|
701
|
-
output:
|
|
700
|
+
output: S2.Struct({
|
|
702
701
|
object: SheetType
|
|
703
702
|
})
|
|
704
703
|
}) {
|
|
705
704
|
}
|
|
706
705
|
SheetAction2.Create = Create;
|
|
707
|
-
const Axis =
|
|
708
|
-
class InsertAxis extends
|
|
709
|
-
input:
|
|
710
|
-
// TODO(wittjosiah):
|
|
711
|
-
model:
|
|
706
|
+
const Axis = S2.Union(S2.Literal("row"), S2.Literal("col"));
|
|
707
|
+
class InsertAxis extends S2.TaggedClass()(`${SHEET_ACTION}/axis-insert`, {
|
|
708
|
+
input: S2.Struct({
|
|
709
|
+
// TODO(wittjosiah): S.instanceOf(SheetModel) throws when running tests.
|
|
710
|
+
model: S2.Any.pipe(S2.filter((model) => model instanceof SheetModel)),
|
|
712
711
|
axis: Axis,
|
|
713
|
-
index:
|
|
714
|
-
count:
|
|
712
|
+
index: S2.Number,
|
|
713
|
+
count: S2.optional(S2.Number)
|
|
715
714
|
}),
|
|
716
|
-
output:
|
|
715
|
+
output: S2.Void
|
|
717
716
|
}) {
|
|
718
717
|
}
|
|
719
718
|
SheetAction2.InsertAxis = InsertAxis;
|
|
720
|
-
SheetAction2.RestoreAxis =
|
|
719
|
+
SheetAction2.RestoreAxis = S2.Struct({
|
|
721
720
|
axis: Axis,
|
|
722
|
-
axisIndex:
|
|
723
|
-
index:
|
|
721
|
+
axisIndex: S2.String,
|
|
722
|
+
index: S2.Number,
|
|
724
723
|
axisMeta: RowColumnMeta,
|
|
725
|
-
values:
|
|
724
|
+
values: S2.Array(S2.Any)
|
|
726
725
|
});
|
|
727
|
-
class DropAxis extends
|
|
728
|
-
input:
|
|
729
|
-
// TODO(wittjosiah):
|
|
730
|
-
model:
|
|
726
|
+
class DropAxis extends S2.TaggedClass()(`${SHEET_ACTION}/axis-drop`, {
|
|
727
|
+
input: S2.Struct({
|
|
728
|
+
// TODO(wittjosiah): S.instanceOf(SheetModel) throws when running tests.
|
|
729
|
+
model: S2.Any.pipe(S2.filter((model) => model instanceof SheetModel)),
|
|
731
730
|
axis: Axis,
|
|
732
|
-
axisIndex:
|
|
733
|
-
deletionData:
|
|
731
|
+
axisIndex: S2.String,
|
|
732
|
+
deletionData: S2.optional(SheetAction2.RestoreAxis)
|
|
734
733
|
}),
|
|
735
|
-
output:
|
|
734
|
+
output: S2.Void
|
|
736
735
|
}) {
|
|
737
736
|
}
|
|
738
737
|
SheetAction2.DropAxis = DropAxis;
|
|
@@ -742,7 +741,7 @@ var SheetAction;
|
|
|
742
741
|
import { addressFromA1Notation as addressFromA1Notation2, addressToA1Notation as addressToA1Notation2, isFormula as isFormula2 } from "@dxos/compute";
|
|
743
742
|
import { randomBytes } from "@dxos/crypto";
|
|
744
743
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
745
|
-
import {
|
|
744
|
+
import { create } from "@dxos/live-object";
|
|
746
745
|
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/types/util.ts";
|
|
747
746
|
var MAX_ROWS = 500;
|
|
748
747
|
var MAX_COLS = 676;
|
|
@@ -783,7 +782,7 @@ var initialize = (sheet, { rows = DEFAULT_ROWS, columns = DEFAULT_COLS } = {}) =
|
|
|
783
782
|
}
|
|
784
783
|
};
|
|
785
784
|
var createSheet = ({ name, cells, ...size } = {}) => {
|
|
786
|
-
const sheet =
|
|
785
|
+
const sheet = create(SheetType, {
|
|
787
786
|
name,
|
|
788
787
|
cells: {},
|
|
789
788
|
rows: [],
|
|
@@ -899,4 +898,4 @@ export {
|
|
|
899
898
|
mapFormulaRefsToIndices,
|
|
900
899
|
mapFormulaIndicesToRefs
|
|
901
900
|
};
|
|
902
|
-
//# sourceMappingURL=chunk-
|
|
901
|
+
//# sourceMappingURL=chunk-6NB67Y6X.mjs.map
|