@dxos/plugin-sheet 0.8.2-main.fbd8ed0 → 0.8.2-staging.42af850
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-GXPG3ZDN.mjs} +141 -162
- package/dist/lib/browser/SheetContainer-GXPG3ZDN.mjs.map +7 -0
- package/dist/lib/browser/anchor-sort-CUTFYIT4.mjs +24 -0
- package/dist/lib/browser/anchor-sort-CUTFYIT4.mjs.map +7 -0
- package/dist/lib/browser/{chunk-N2FOQHUH.mjs → chunk-5FLX3UGU.mjs} +8 -17
- package/dist/lib/browser/chunk-5FLX3UGU.mjs.map +7 -0
- package/dist/lib/browser/chunk-AYMJXZFS.mjs +847 -0
- package/dist/lib/browser/chunk-AYMJXZFS.mjs.map +7 -0
- package/dist/lib/browser/{chunk-AT5ZK6JD.mjs → chunk-FJRLDX7Z.mjs} +1 -1
- package/dist/lib/browser/chunk-FJRLDX7Z.mjs.map +7 -0
- package/dist/lib/browser/{chunk-EMSCNWEK.mjs → chunk-IR42IS3F.mjs} +2 -2
- package/dist/lib/{node-esm/chunk-76T5X4VP.mjs.map → browser/chunk-IR42IS3F.mjs.map} +1 -1
- package/dist/lib/browser/{compute-graph-registry-MBJKPAHX.mjs → compute-graph-registry-IXGGJJBU.mjs} +2 -2
- package/dist/lib/browser/index.mjs +15 -14
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-DN7JXDAV.mjs → intent-resolver-UI4DHURQ.mjs} +2 -2
- package/dist/lib/browser/{markdown-57MKY5WB.mjs → markdown-T4TUP4BF.mjs} +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-NQU63B63.mjs → react-surface-KI6T5M2X.mjs} +5 -5
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node/SheetContainer-UUDOHLZR.cjs +351 -0
- package/dist/lib/node/SheetContainer-UUDOHLZR.cjs.map +7 -0
- package/dist/lib/node/{thread-E7YPGR5T.cjs → anchor-sort-LTLYUTUP.cjs} +17 -10
- package/dist/lib/node/anchor-sort-LTLYUTUP.cjs.map +7 -0
- package/dist/lib/node/{chunk-HLSQVT3C.cjs → chunk-76NESQLB.cjs} +10 -19
- package/dist/lib/node/chunk-76NESQLB.cjs.map +7 -0
- package/dist/lib/node/chunk-BXBNSNDK.cjs +855 -0
- package/dist/lib/node/chunk-BXBNSNDK.cjs.map +7 -0
- package/dist/lib/node/{chunk-LEV7OSTK.cjs → chunk-FIM6EZ6M.cjs} +4 -4
- package/dist/lib/node/chunk-FIM6EZ6M.cjs.map +7 -0
- package/dist/lib/node/{chunk-O2FOEUYB.cjs → chunk-LJWWS53Z.cjs} +5 -5
- package/dist/lib/node/{chunk-O2FOEUYB.cjs.map → chunk-LJWWS53Z.cjs.map} +1 -1
- package/dist/lib/node/{compute-graph-registry-EBBDN6ZX.cjs → compute-graph-registry-ARLDHPFW.cjs} +6 -6
- package/dist/lib/node/index.cjs +21 -20
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-OPF56TAL.cjs → intent-resolver-EVLGL7VZ.cjs} +9 -9
- package/dist/lib/node/{markdown-Q3RXYPHQ.cjs → markdown-DBPOAYI7.cjs} +8 -8
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-7SAA5DX3.cjs → react-surface-QHAPOAR2.cjs} +14 -14
- 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-44KHKMPI.mjs} +141 -162
- package/dist/lib/node-esm/SheetContainer-44KHKMPI.mjs.map +7 -0
- package/dist/lib/node-esm/anchor-sort-3E2VGLO6.mjs +25 -0
- package/dist/lib/node-esm/anchor-sort-3E2VGLO6.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-LYZV4Q4C.mjs → chunk-DIF3IOAB.mjs} +8 -17
- package/dist/lib/node-esm/chunk-DIF3IOAB.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-GCCM7R45.mjs +848 -0
- package/dist/lib/node-esm/chunk-GCCM7R45.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-76T5X4VP.mjs → chunk-IQ76YE6M.mjs} +2 -2
- package/dist/lib/{browser/chunk-EMSCNWEK.mjs.map → node-esm/chunk-IQ76YE6M.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-HXBUY5ET.mjs → chunk-NMCVJWDT.mjs} +1 -1
- package/dist/lib/node-esm/chunk-NMCVJWDT.mjs.map +7 -0
- package/dist/lib/node-esm/{compute-graph-registry-TVG6RN2J.mjs → compute-graph-registry-7PDWXMHF.mjs} +2 -2
- package/dist/lib/node-esm/index.mjs +15 -14
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-7AN5CN4R.mjs → intent-resolver-TPOH5JM5.mjs} +2 -2
- package/dist/lib/node-esm/{markdown-ACHAWUOE.mjs → markdown-WWUJ3E5F.mjs} +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-BPNN7RSE.mjs → react-surface-XT2J3S67.mjs} +5 -5
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/SheetPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/anchor-sort.d.ts +6 -0
- package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +4 -4
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/util.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 +2 -2
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts +2 -3
- package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -1
- package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
- package/dist/types/src/model/sheet-model.d.ts.map +1 -1
- package/dist/types/src/serializer.d.ts.map +1 -1
- package/dist/types/src/testing/playwright/sheet-manager.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +0 -207
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/util.d.ts.map +1 -1
- package/package.json +49 -48
- package/src/SheetPlugin.tsx +7 -5
- package/src/capabilities/anchor-sort.ts +22 -0
- package/src/capabilities/index.ts +1 -1
- package/src/components/FunctionEditor/FunctionEditor.tsx +1 -1
- package/src/components/GridSheet/util.ts +10 -9
- package/src/components/SheetContainer/SheetContainer.stories.tsx +2 -1
- package/src/components/SheetContainer/SheetContainer.tsx +1 -1
- package/src/components/SheetToolbar/SheetToolbar.stories.tsx +1 -1
- package/src/components/SheetToolbar/SheetToolbar.tsx +44 -33
- package/src/components/SheetToolbar/useToolbarState.ts +1 -2
- package/src/extensions/compute.ts +1 -1
- package/src/integrations/thread-ranges.ts +12 -14
- package/src/model/sheet-model.ts +17 -17
- package/src/serializer.ts +1 -2
- package/src/testing/playwright/sheet-manager.ts +9 -9
- package/src/types/schema.ts +1 -5
- package/src/types/util.ts +0 -1
- package/dist/lib/browser/SheetContainer-UV7RMPXS.mjs.map +0 -7
- package/dist/lib/browser/chunk-AT5ZK6JD.mjs.map +0 -7
- package/dist/lib/browser/chunk-N2FOQHUH.mjs.map +0 -7
- package/dist/lib/browser/chunk-TN7LTDHU.mjs +0 -826
- package/dist/lib/browser/chunk-TN7LTDHU.mjs.map +0 -7
- package/dist/lib/browser/thread-WU64QL2A.mjs +0 -17
- package/dist/lib/browser/thread-WU64QL2A.mjs.map +0 -7
- package/dist/lib/node/SheetContainer-GR2KDOAE.cjs +0 -368
- package/dist/lib/node/SheetContainer-GR2KDOAE.cjs.map +0 -7
- package/dist/lib/node/chunk-CN7OBGYV.cjs +0 -833
- package/dist/lib/node/chunk-CN7OBGYV.cjs.map +0 -7
- package/dist/lib/node/chunk-HLSQVT3C.cjs.map +0 -7
- package/dist/lib/node/chunk-LEV7OSTK.cjs.map +0 -7
- package/dist/lib/node/thread-E7YPGR5T.cjs.map +0 -7
- package/dist/lib/node-esm/SheetContainer-XW7B2AJI.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3JJ7ETTJ.mjs +0 -827
- package/dist/lib/node-esm/chunk-3JJ7ETTJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HXBUY5ET.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-LYZV4Q4C.mjs.map +0 -7
- package/dist/lib/node-esm/thread-ULESW6IX.mjs +0 -18
- package/dist/lib/node-esm/thread-ULESW6IX.mjs.map +0 -7
- package/dist/types/src/capabilities/thread.d.ts +0 -6
- package/dist/types/src/capabilities/thread.d.ts.map +0 -1
- package/dist/types/src/components/SheetToolbar/comment.d.ts +0 -25
- package/dist/types/src/components/SheetToolbar/comment.d.ts.map +0 -1
- package/src/capabilities/thread.ts +0 -14
- package/src/components/SheetToolbar/comment.ts +0 -84
- /package/dist/lib/browser/{compute-graph-registry-MBJKPAHX.mjs.map → compute-graph-registry-IXGGJJBU.mjs.map} +0 -0
- /package/dist/lib/browser/{intent-resolver-DN7JXDAV.mjs.map → intent-resolver-UI4DHURQ.mjs.map} +0 -0
- /package/dist/lib/browser/{markdown-57MKY5WB.mjs.map → markdown-T4TUP4BF.mjs.map} +0 -0
- /package/dist/lib/browser/{react-surface-NQU63B63.mjs.map → react-surface-KI6T5M2X.mjs.map} +0 -0
- /package/dist/lib/node/{compute-graph-registry-EBBDN6ZX.cjs.map → compute-graph-registry-ARLDHPFW.cjs.map} +0 -0
- /package/dist/lib/node/{intent-resolver-OPF56TAL.cjs.map → intent-resolver-EVLGL7VZ.cjs.map} +0 -0
- /package/dist/lib/node/{markdown-Q3RXYPHQ.cjs.map → markdown-DBPOAYI7.cjs.map} +0 -0
- /package/dist/lib/node/{react-surface-7SAA5DX3.cjs.map → react-surface-QHAPOAR2.cjs.map} +0 -0
- /package/dist/lib/node-esm/{compute-graph-registry-TVG6RN2J.mjs.map → compute-graph-registry-7PDWXMHF.mjs.map} +0 -0
- /package/dist/lib/node-esm/{intent-resolver-7AN5CN4R.mjs.map → intent-resolver-TPOH5JM5.mjs.map} +0 -0
- /package/dist/lib/node-esm/{markdown-ACHAWUOE.mjs.map → markdown-WWUJ3E5F.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-surface-BPNN7RSE.mjs.map → react-surface-XT2J3S67.mjs.map} +0 -0
|
@@ -2,70 +2,77 @@ import { createRequire } from 'node:module';const require = createRequire(import
|
|
|
2
2
|
import {
|
|
3
3
|
GridSheet,
|
|
4
4
|
SheetProvider,
|
|
5
|
-
completeCellRangeToThreadCursor,
|
|
6
5
|
useComputeGraph,
|
|
7
6
|
useSheetContext
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-HXBUY5ET.mjs";
|
|
7
|
+
} from "./chunk-GCCM7R45.mjs";
|
|
10
8
|
import {
|
|
11
9
|
alignKey,
|
|
12
|
-
commentKey,
|
|
13
10
|
mapFormulaIndicesToRefs,
|
|
14
11
|
rangeFromIndex,
|
|
15
12
|
rangeToIndex
|
|
16
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-DIF3IOAB.mjs";
|
|
14
|
+
import "./chunk-NMCVJWDT.mjs";
|
|
17
15
|
import {
|
|
18
16
|
SHEET_PLUGIN
|
|
19
17
|
} from "./chunk-Y6ND5HWX.mjs";
|
|
20
18
|
|
|
21
19
|
// packages/plugins/plugin-sheet/src/components/SheetContainer/SheetContainer.tsx
|
|
20
|
+
import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
|
|
22
21
|
import React3 from "react";
|
|
23
22
|
import { fullyQualifiedId } from "@dxos/react-client/echo";
|
|
24
23
|
import { StackItem } from "@dxos/react-ui-stack";
|
|
25
24
|
|
|
26
25
|
// packages/plugins/plugin-sheet/src/components/FunctionEditor/FunctionEditor.tsx
|
|
26
|
+
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
27
27
|
import React from "react";
|
|
28
28
|
import { addressToA1Notation, isFormula, rangeToA1Notation } from "@dxos/compute";
|
|
29
29
|
import { Icon } from "@dxos/react-ui";
|
|
30
30
|
var FunctionEditor = () => {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (
|
|
37
|
-
value = model.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
31
|
+
var _effect = _useSignals();
|
|
32
|
+
try {
|
|
33
|
+
const { model, cursor, range } = useSheetContext();
|
|
34
|
+
let value;
|
|
35
|
+
let formula = false;
|
|
36
|
+
if (cursor) {
|
|
37
|
+
value = model.getCellValue(cursor);
|
|
38
|
+
if (isFormula(value)) {
|
|
39
|
+
value = model.graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(model.sheet, value));
|
|
40
|
+
formula = true;
|
|
41
|
+
} else if (value != null) {
|
|
42
|
+
value = String(value);
|
|
43
|
+
}
|
|
41
44
|
}
|
|
45
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
46
|
+
className: "flex shrink-0 justify-between items-center px-4 py-1 text-sm bg-toolbarSurface border-bs !border-subduedSeparator"
|
|
47
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
48
|
+
className: "flex gap-4 items-center"
|
|
49
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
50
|
+
className: "flex w-16 items-center font-mono"
|
|
51
|
+
}, range && rangeToA1Notation(range) || cursor && addressToA1Notation(cursor)), /* @__PURE__ */ React.createElement("div", {
|
|
52
|
+
className: "flex gap-2 items-center"
|
|
53
|
+
}, /* @__PURE__ */ React.createElement(Icon, {
|
|
54
|
+
icon: "ph--function--regular",
|
|
55
|
+
classNames: [
|
|
56
|
+
"text-greenText",
|
|
57
|
+
formula ? "visible" : "invisible"
|
|
58
|
+
]
|
|
59
|
+
}), /* @__PURE__ */ React.createElement("span", {
|
|
60
|
+
className: "font-mono"
|
|
61
|
+
}, value))));
|
|
62
|
+
} finally {
|
|
63
|
+
_effect.f();
|
|
42
64
|
}
|
|
43
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
44
|
-
className: "flex shrink-0 justify-between items-center px-4 py-1 text-sm bg-toolbarSurface border-bs !border-separator"
|
|
45
|
-
}, /* @__PURE__ */ React.createElement("div", {
|
|
46
|
-
className: "flex gap-4 items-center"
|
|
47
|
-
}, /* @__PURE__ */ React.createElement("div", {
|
|
48
|
-
className: "flex w-16 items-center font-mono"
|
|
49
|
-
}, range && rangeToA1Notation(range) || cursor && addressToA1Notation(cursor)), /* @__PURE__ */ React.createElement("div", {
|
|
50
|
-
className: "flex gap-2 items-center"
|
|
51
|
-
}, /* @__PURE__ */ React.createElement(Icon, {
|
|
52
|
-
icon: "ph--function--regular",
|
|
53
|
-
classNames: [
|
|
54
|
-
"text-greenText",
|
|
55
|
-
formula ? "visible" : "invisible"
|
|
56
|
-
]
|
|
57
|
-
}), /* @__PURE__ */ React.createElement("span", {
|
|
58
|
-
className: "font-mono"
|
|
59
|
-
}, value))));
|
|
60
65
|
};
|
|
61
66
|
|
|
62
67
|
// packages/plugins/plugin-sheet/src/components/SheetToolbar/SheetToolbar.tsx
|
|
63
|
-
import
|
|
64
|
-
import {
|
|
65
|
-
import {
|
|
66
|
-
import {
|
|
68
|
+
import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
|
|
69
|
+
import { Rx } from "@effect-rx/rx-react";
|
|
70
|
+
import React2, { useMemo as useMemo2 } from "react";
|
|
71
|
+
import { useAppGraph } from "@dxos/app-framework";
|
|
72
|
+
import { createGapSeparator, MenuProvider, rxFromSignal, ToolbarMenu, useMenuActions } from "@dxos/react-ui-menu";
|
|
67
73
|
|
|
68
74
|
// packages/plugins/plugin-sheet/src/components/SheetToolbar/align.ts
|
|
75
|
+
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
69
76
|
import { useEffect } from "react";
|
|
70
77
|
import { inRange } from "@dxos/compute";
|
|
71
78
|
import { createMenuAction, createMenuItemGroup } from "@dxos/react-ui-menu";
|
|
@@ -75,13 +82,18 @@ var aligns = {
|
|
|
75
82
|
end: "ph--text-align-right--regular"
|
|
76
83
|
};
|
|
77
84
|
var useAlignState = (state) => {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
var _effect = _useSignals2();
|
|
86
|
+
try {
|
|
87
|
+
const { cursor, model } = useSheetContext();
|
|
88
|
+
useEffect(() => {
|
|
89
|
+
state[alignKey] = cursor ? model.sheet.ranges?.findLast(({ range, key }) => key === alignKey && inRange(rangeFromIndex(model.sheet, range), cursor))?.value : void 0;
|
|
90
|
+
}, [
|
|
91
|
+
cursor,
|
|
92
|
+
model.sheet
|
|
93
|
+
]);
|
|
94
|
+
} finally {
|
|
95
|
+
_effect.f();
|
|
96
|
+
}
|
|
85
97
|
};
|
|
86
98
|
var createAlignGroupAction = (value) => createMenuItemGroup("align", {
|
|
87
99
|
label: [
|
|
@@ -150,72 +162,17 @@ var createAlign = (model, state, cursorFallbackRange) => {
|
|
|
150
162
|
};
|
|
151
163
|
};
|
|
152
164
|
|
|
153
|
-
// packages/plugins/plugin-sheet/src/components/SheetToolbar/comment.ts
|
|
154
|
-
import { useEffect as useEffect2, useMemo } from "react";
|
|
155
|
-
import { RefArray } from "@dxos/live-object";
|
|
156
|
-
import { createMenuAction as createMenuAction2 } from "@dxos/react-ui-menu";
|
|
157
|
-
var useCommentState = (state) => {
|
|
158
|
-
const { cursorFallbackRange, model } = useSheetContext();
|
|
159
|
-
const overlapsCommentAnchor = useMemo(() => RefArray.targets(model.sheet.threads ?? []).filter((thread) => thread.status !== "resolved").some((thread) => {
|
|
160
|
-
if (!cursorFallbackRange) {
|
|
161
|
-
return false;
|
|
162
|
-
}
|
|
163
|
-
return rangeToIndex(model.sheet, cursorFallbackRange) === thread.anchor;
|
|
164
|
-
}), [
|
|
165
|
-
cursorFallbackRange,
|
|
166
|
-
model.sheet
|
|
167
|
-
]);
|
|
168
|
-
useEffect2(() => {
|
|
169
|
-
state.commentEnabled = !cursorFallbackRange ? "no cursor" : overlapsCommentAnchor ? "selection overlaps existing comment" : "comment";
|
|
170
|
-
}, [
|
|
171
|
-
overlapsCommentAnchor,
|
|
172
|
-
cursorFallbackRange
|
|
173
|
-
]);
|
|
174
|
-
};
|
|
175
|
-
var createCommentAction = (model, state, onComment, cursorFallbackRange) => createMenuAction2("comment", () => {
|
|
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
|
-
}, {
|
|
185
|
-
key: commentKey,
|
|
186
|
-
testId: "editor.toolbar.comment",
|
|
187
|
-
icon: "ph--chat-text--regular",
|
|
188
|
-
label: [
|
|
189
|
-
`${state.commentEnabled} label`,
|
|
190
|
-
{
|
|
191
|
-
ns: SHEET_PLUGIN
|
|
192
|
-
}
|
|
193
|
-
],
|
|
194
|
-
disabled: state.commentEnabled !== "comment"
|
|
195
|
-
});
|
|
196
|
-
var createComment = (model, state, onComment, cursorFallbackRange) => ({
|
|
197
|
-
nodes: [
|
|
198
|
-
createCommentAction(model, state, onComment, cursorFallbackRange)
|
|
199
|
-
],
|
|
200
|
-
edges: [
|
|
201
|
-
{
|
|
202
|
-
source: "root",
|
|
203
|
-
target: "comment"
|
|
204
|
-
}
|
|
205
|
-
]
|
|
206
|
-
});
|
|
207
|
-
|
|
208
165
|
// packages/plugins/plugin-sheet/src/components/SheetToolbar/style.ts
|
|
209
|
-
import { useEffect as
|
|
166
|
+
import { useEffect as useEffect2 } from "react";
|
|
210
167
|
import { inRange as inRange2 } from "@dxos/compute";
|
|
211
|
-
import { createMenuAction as
|
|
168
|
+
import { createMenuAction as createMenuAction2, createMenuItemGroup as createMenuItemGroup2 } from "@dxos/react-ui-menu";
|
|
212
169
|
var styles = {
|
|
213
170
|
highlight: "ph--highlighter--regular",
|
|
214
171
|
softwrap: "ph--paragraph--regular"
|
|
215
172
|
};
|
|
216
173
|
var useStyleState = (state) => {
|
|
217
174
|
const { cursorFallbackRange, model } = useSheetContext();
|
|
218
|
-
|
|
175
|
+
useEffect2(() => {
|
|
219
176
|
state.highlight = false;
|
|
220
177
|
state.softwrap = false;
|
|
221
178
|
if (cursorFallbackRange && model.sheet.ranges) {
|
|
@@ -236,7 +193,7 @@ var createStyleGroup = (state) => {
|
|
|
236
193
|
});
|
|
237
194
|
};
|
|
238
195
|
var createStyleActions = (model, state, cursorFallbackRange) => Object.entries(styles).map(([styleValue, icon]) => {
|
|
239
|
-
return
|
|
196
|
+
return createMenuAction2(`style--${styleValue}`, () => {
|
|
240
197
|
if (!cursorFallbackRange) {
|
|
241
198
|
return;
|
|
242
199
|
}
|
|
@@ -290,79 +247,101 @@ var createStyle = (model, state, cursorFallbackRange) => {
|
|
|
290
247
|
};
|
|
291
248
|
|
|
292
249
|
// packages/plugins/plugin-sheet/src/components/SheetToolbar/useToolbarState.ts
|
|
293
|
-
import { useMemo
|
|
250
|
+
import { useMemo } from "react";
|
|
294
251
|
import { live } from "@dxos/live-object";
|
|
295
252
|
var useToolbarState = (initialState = {}) => {
|
|
296
|
-
return
|
|
253
|
+
return useMemo(() => live(initialState), []);
|
|
297
254
|
};
|
|
298
255
|
|
|
299
256
|
// packages/plugins/plugin-sheet/src/components/SheetToolbar/SheetToolbar.tsx
|
|
300
|
-
var createToolbarActions = (model, state,
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
nodes: [
|
|
257
|
+
var createToolbarActions = (model, state, cursorFallbackRange, customActions) => {
|
|
258
|
+
return Rx.make((get) => {
|
|
259
|
+
const align = get(rxFromSignal(() => createAlign(model, state, cursorFallbackRange)));
|
|
260
|
+
const style = get(rxFromSignal(() => createStyle(model, state, cursorFallbackRange)));
|
|
261
|
+
const gap = createGapSeparator();
|
|
262
|
+
const nodes = [
|
|
307
263
|
...align.nodes,
|
|
308
264
|
...style.nodes,
|
|
309
|
-
...gap.nodes
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
edges: [
|
|
265
|
+
...gap.nodes
|
|
266
|
+
];
|
|
267
|
+
const edges = [
|
|
313
268
|
...align.edges,
|
|
314
269
|
...style.edges,
|
|
315
|
-
...gap.edges
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
270
|
+
...gap.edges
|
|
271
|
+
];
|
|
272
|
+
if (customActions) {
|
|
273
|
+
const custom = get(customActions);
|
|
274
|
+
nodes.push(...custom.nodes);
|
|
275
|
+
edges.push(...custom.edges);
|
|
276
|
+
}
|
|
277
|
+
return {
|
|
278
|
+
nodes,
|
|
279
|
+
edges
|
|
280
|
+
};
|
|
281
|
+
});
|
|
319
282
|
};
|
|
320
|
-
var SheetToolbar = ({
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
283
|
+
var SheetToolbar = ({ id, classNames }) => {
|
|
284
|
+
var _effect = _useSignals3();
|
|
285
|
+
try {
|
|
286
|
+
const { model, cursorFallbackRange } = useSheetContext();
|
|
287
|
+
const state = useToolbarState({});
|
|
288
|
+
useAlignState(state);
|
|
289
|
+
useStyleState(state);
|
|
290
|
+
const { graph } = useAppGraph();
|
|
291
|
+
const customActions = useMemo2(() => {
|
|
292
|
+
return Rx.make((get) => {
|
|
293
|
+
const actions = get(graph.actions(id));
|
|
294
|
+
const nodes = actions.filter((action) => action.properties.disposition === "toolbar");
|
|
295
|
+
return {
|
|
296
|
+
nodes,
|
|
297
|
+
edges: nodes.map((node) => ({
|
|
298
|
+
source: "root",
|
|
299
|
+
target: node.id
|
|
300
|
+
}))
|
|
301
|
+
};
|
|
302
|
+
});
|
|
303
|
+
}, [
|
|
304
|
+
graph
|
|
305
|
+
]);
|
|
306
|
+
const actionsCreator = useMemo2(() => createToolbarActions(model, state, cursorFallbackRange, customActions), [
|
|
307
|
+
model,
|
|
308
|
+
state,
|
|
309
|
+
cursorFallbackRange,
|
|
310
|
+
customActions
|
|
311
|
+
]);
|
|
312
|
+
const menu = useMenuActions(actionsCreator);
|
|
313
|
+
return /* @__PURE__ */ React2.createElement(MenuProvider, {
|
|
314
|
+
...menu,
|
|
315
|
+
attendableId: id
|
|
316
|
+
}, /* @__PURE__ */ React2.createElement(ToolbarMenu, {
|
|
317
|
+
classNames
|
|
318
|
+
}));
|
|
319
|
+
} finally {
|
|
320
|
+
_effect.f();
|
|
321
|
+
}
|
|
348
322
|
};
|
|
349
323
|
|
|
350
324
|
// packages/plugins/plugin-sheet/src/components/SheetContainer/SheetContainer.tsx
|
|
351
325
|
var SheetContainer = ({ space, sheet, role, ignoreAttention }) => {
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
graph,
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
326
|
+
var _effect = _useSignals4();
|
|
327
|
+
try {
|
|
328
|
+
const graph = useComputeGraph(space);
|
|
329
|
+
return graph ? /* @__PURE__ */ React3.createElement(SheetProvider, {
|
|
330
|
+
sheet,
|
|
331
|
+
graph,
|
|
332
|
+
ignoreAttention
|
|
333
|
+
}, /* @__PURE__ */ React3.createElement(StackItem.Content, {
|
|
334
|
+
toolbar: true,
|
|
335
|
+
statusbar: true,
|
|
336
|
+
...role === "section" && {
|
|
337
|
+
classNames: "aspect-video"
|
|
338
|
+
}
|
|
339
|
+
}, /* @__PURE__ */ React3.createElement(SheetToolbar, {
|
|
340
|
+
id: fullyQualifiedId(sheet)
|
|
341
|
+
}), /* @__PURE__ */ React3.createElement(GridSheet, null), /* @__PURE__ */ React3.createElement(FunctionEditor, null))) : null;
|
|
342
|
+
} finally {
|
|
343
|
+
_effect.f();
|
|
344
|
+
}
|
|
366
345
|
};
|
|
367
346
|
|
|
368
347
|
// packages/plugins/plugin-sheet/src/components/SheetContainer/index.ts
|
|
@@ -370,4 +349,4 @@ var SheetContainer_default = SheetContainer;
|
|
|
370
349
|
export {
|
|
371
350
|
SheetContainer_default as default
|
|
372
351
|
};
|
|
373
|
-
//# sourceMappingURL=SheetContainer-
|
|
352
|
+
//# sourceMappingURL=SheetContainer-44KHKMPI.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/style.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 type SheetContainerProps = {\n space: Space;\n sheet: SheetType;\n role?: string;\n ignoreAttention?: boolean;\n};\n\nexport const SheetContainer = ({ space, sheet, role, ignoreAttention }: SheetContainerProps) => {\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 id={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 bg-toolbarSurface border-bs !border-subduedSeparator'>\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 { Rx } from '@effect-rx/rx-react';\nimport React, { type PropsWithChildren, useMemo } from 'react';\n\nimport { useAppGraph } from '@dxos/app-framework';\nimport { type CompleteCellRange } from '@dxos/compute';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport {\n type ActionGraphEdges,\n type ActionGraphNodes,\n type ActionGraphProps,\n createGapSeparator,\n MenuProvider,\n rxFromSignal,\n ToolbarMenu,\n useMenuActions,\n} from '@dxos/react-ui-menu';\n\nimport { createAlign, useAlignState } from './align';\nimport { createStyle, useStyleState } from './style';\nimport { type ToolbarState, useToolbarState } from './useToolbarState';\nimport { type SheetModel } from '../../model';\nimport { useSheetContext } from '../SheetContext';\n\n//\n// Root\n//\n\nexport type SheetToolbarProps = ThemedClassName<PropsWithChildren<{ id: string }>>;\n\nconst createToolbarActions = (\n model: SheetModel,\n state: ToolbarState,\n cursorFallbackRange?: CompleteCellRange,\n customActions?: Rx.Rx<ActionGraphProps>,\n) => {\n return Rx.make((get) => {\n const align = get(rxFromSignal(() => createAlign(model, state, cursorFallbackRange)));\n const style = get(rxFromSignal(() => createStyle(model, state, cursorFallbackRange)));\n const gap = createGapSeparator();\n const nodes: ActionGraphNodes = [...align.nodes, ...style.nodes, ...gap.nodes];\n const edges: ActionGraphEdges = [...align.edges, ...style.edges, ...gap.edges];\n if (customActions) {\n const custom = get(customActions);\n nodes.push(...custom.nodes);\n edges.push(...custom.edges);\n }\n return {\n nodes,\n edges,\n };\n });\n};\n\nexport const SheetToolbar = ({ id, classNames }: SheetToolbarProps) => {\n const { model, cursorFallbackRange } = useSheetContext();\n const state = useToolbarState({});\n useAlignState(state);\n useStyleState(state);\n\n const { graph } = useAppGraph();\n const customActions = useMemo(() => {\n return Rx.make((get) => {\n const actions = get(graph.actions(id));\n const nodes = actions.filter((action) => action.properties.disposition === 'toolbar');\n return { nodes, edges: nodes.map((node) => ({ source: 'root', target: node.id })) };\n });\n }, [graph]);\n\n const actionsCreator = useMemo(\n () => createToolbarActions(model, state, cursorFallbackRange, customActions),\n [model, state, cursorFallbackRange, customActions],\n );\n const menu = useMenuActions(actionsCreator);\n\n return (\n <MenuProvider {...menu} attendableId={id}>\n <ToolbarMenu classNames={classNames} />\n </MenuProvider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect } from 'react';\n\nimport { type CompleteCellRange, inRange } from '@dxos/compute';\nimport { createMenuAction, createMenuItemGroup, type ToolbarMenuActionGroupProperties } from '@dxos/react-ui-menu';\n\nimport { type ToolbarState } from './useToolbarState';\nimport { SHEET_PLUGIN } from '../../meta';\nimport { type SheetModel } from '../../model';\nimport { type AlignKey, alignKey, type AlignValue, rangeFromIndex, rangeToIndex } 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 = (model: SheetModel, state: ToolbarState, cursorFallbackRange?: CompleteCellRange) =>\n Object.entries(aligns).map(([alignValue, icon]) => {\n return createMenuAction<AlignAction>(\n `${alignKey}--${alignValue}`,\n () => {\n if (!cursorFallbackRange) {\n return;\n }\n const index =\n model.sheet.ranges?.findIndex(\n (range) =>\n range.key === alignKey && inRange(rangeFromIndex(model.sheet, range.range), cursorFallbackRange.from),\n ) ?? -1;\n const nextRangeEntity = {\n range: rangeToIndex(model.sheet, cursorFallbackRange),\n key: alignKey,\n value: alignValue as AlignValue,\n };\n if (index < 0) {\n model.sheet.ranges?.push(nextRangeEntity);\n state[alignKey] = nextRangeEntity.value;\n } else if (model.sheet.ranges![index].value === nextRangeEntity.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] = nextRangeEntity.value;\n }\n },\n {\n key: alignKey,\n value: alignValue as AlignValue,\n checked: state[alignKey] === alignValue,\n label: [`range value ${alignValue} label`, { ns: SHEET_PLUGIN }],\n icon,\n testId: `grid.toolbar.${alignKey}.${alignValue}`,\n },\n );\n });\n\nexport const createAlign = (model: SheetModel, state: ToolbarState, cursorFallbackRange?: CompleteCellRange) => {\n const alignGroup = createAlignGroupAction(state[alignKey]);\n const alignActions = createAlignActions(model, state, cursorFallbackRange);\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 } from 'react';\n\nimport { type CompleteCellRange, inRange } from '@dxos/compute';\nimport { createMenuAction, createMenuItemGroup, type ToolbarMenuActionGroupProperties } from '@dxos/react-ui-menu';\n\nimport { SHEET_PLUGIN } from '../../meta';\nimport { type SheetModel } from '../../model';\nimport { rangeFromIndex, rangeToIndex, 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 = (model: SheetModel, state: StyleState, cursorFallbackRange?: CompleteCellRange) =>\n Object.entries(styles).map(([styleValue, icon]) => {\n return createMenuAction<StyleAction>(\n `style--${styleValue}`,\n () => {\n if (!cursorFallbackRange) {\n return;\n }\n const index =\n model.sheet.ranges?.findIndex(\n (range) =>\n range.key === 'style' && inRange(rangeFromIndex(model.sheet, range.range), cursorFallbackRange.from),\n ) ?? -1;\n const nextRangeEntity = {\n range: rangeToIndex(model.sheet, cursorFallbackRange),\n key: 'style',\n value: styleValue as StyleValue,\n };\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 === styleValue)\n ) {\n // this value should be unset\n if (index >= 0) {\n model.sheet.ranges?.splice(index, 1);\n }\n state[nextRangeEntity.value] = false;\n } else {\n model.sheet.ranges?.push(nextRangeEntity);\n state[nextRangeEntity.value] = true;\n }\n },\n {\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 });\n\nexport const createStyle = (model: SheetModel, state: StyleState, cursorFallbackRange?: CompleteCellRange) => {\n const styleGroupAction = createStyleGroup(state);\n const styleActions = createStyleActions(model, state, cursorFallbackRange);\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 { useMemo } from 'react';\n\nimport { live } from '@dxos/live-object';\n\nimport { type AlignState } from './align';\nimport { type StyleState } from './style';\n\nexport type ToolbarState = Partial<StyleState & AlignState>;\n\nexport const useToolbarState = (initialState: ToolbarState = {}) => {\n return useMemo(() => live<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", "Rx", "React", "useMemo", "useAppGraph", "createGapSeparator", "MenuProvider", "rxFromSignal", "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", "cursorFallbackRange", "Object", "entries", "map", "alignValue", "icon", "createMenuAction", "index", "findIndex", "from", "nextRangeEntity", "rangeToIndex", "push", "splice", "checked", "testId", "createAlign", "alignGroup", "alignActions", "nodes", "edges", "source", "target", "id", "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", "index", "findIndex", "nextRangeEntity", "rangeToIndex", "rangeKey", "some", "rangeValue", "splice", "push", "label", "ns", "SHEET_PLUGIN", "checked", "createStyle", "styleGroupAction", "styleActions", "nodes", "edges", "source", "target", "id", "useMemo", "live", "useToolbarState", "initialState", "useMemo", "live", "createToolbarActions", "model", "state", "cursorFallbackRange", "customActions", "Rx", "make", "get", "align", "rxFromSignal", "createAlign", "style", "createStyle", "gap", "createGapSeparator", "nodes", "edges", "custom", "push", "SheetToolbar", "id", "classNames", "useSheetContext", "useToolbarState", "useAlignState", "useStyleState", "graph", "useAppGraph", "useMemo", "actions", "filter", "action", "properties", "disposition", "map", "node", "source", "target", "actionsCreator", "menu", "useMenuActions", "React", "MenuProvider", "attendableId", "ToolbarMenu", "SheetContainer", "space", "sheet", "role", "ignoreAttention", "graph", "useComputeGraph", "React", "SheetProvider", "StackItem", "Content", "toolbar", "statusbar", "classNames", "SheetToolbar", "id", "fullyQualifiedId", "GridSheet", "FunctionEditor", "SheetContainer"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
SheetType,
|
|
4
|
+
compareIndexPositions
|
|
5
|
+
} from "./chunk-DIF3IOAB.mjs";
|
|
6
|
+
import "./chunk-Y6ND5HWX.mjs";
|
|
7
|
+
|
|
8
|
+
// packages/plugins/plugin-sheet/src/capabilities/anchor-sort.ts
|
|
9
|
+
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
10
|
+
import { getSchemaTypename } from "@dxos/echo-schema";
|
|
11
|
+
import { getTarget } from "@dxos/react-client/echo";
|
|
12
|
+
var anchor_sort_default = () => contributes(Capabilities.AnchorSort, {
|
|
13
|
+
key: getSchemaTypename(SheetType),
|
|
14
|
+
sort: (anchorA, anchorB) => {
|
|
15
|
+
const sheet = getTarget(anchorA);
|
|
16
|
+
if (sheet !== getTarget(anchorB)) {
|
|
17
|
+
return 0;
|
|
18
|
+
}
|
|
19
|
+
return !anchorA.anchor || !anchorB.anchor ? 0 : compareIndexPositions(sheet, anchorA.anchor, anchorB.anchor);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
export {
|
|
23
|
+
anchor_sort_default as default
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=anchor-sort-3E2VGLO6.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/anchor-sort.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { getSchemaTypename } from '@dxos/echo-schema';\nimport { getTarget } from '@dxos/react-client/echo';\n\nimport { compareIndexPositions, SheetType } from '../types';\n\nexport default () =>\n contributes(Capabilities.AnchorSort, {\n key: getSchemaTypename(SheetType)!,\n sort: (anchorA, anchorB) => {\n const sheet = getTarget(anchorA) as SheetType;\n if (sheet !== getTarget(anchorB)) {\n return 0;\n }\n\n return !anchorA.anchor || !anchorB.anchor ? 0 : compareIndexPositions(sheet, anchorA.anchor, anchorB.anchor);\n },\n });\n"],
|
|
5
|
+
"mappings": ";;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,yBAAyB;AAClC,SAASC,iBAAiB;AAI1B,IAAA,sBAAe,MACbC,YAAYC,aAAaC,YAAY;EACnCC,KAAKC,kBAAkBC,SAAAA;EACvBC,MAAM,CAACC,SAASC,YAAAA;AACd,UAAMC,QAAQC,UAAUH,OAAAA;AACxB,QAAIE,UAAUC,UAAUF,OAAAA,GAAU;AAChC,aAAO;IACT;AAEA,WAAO,CAACD,QAAQI,UAAU,CAACH,QAAQG,SAAS,IAAIC,sBAAsBH,OAAOF,QAAQI,QAAQH,QAAQG,MAAM;EAC7G;AACF,CAAA;",
|
|
6
|
+
"names": ["Capabilities", "contributes", "getSchemaTypename", "getTarget", "contributes", "Capabilities", "AnchorSort", "key", "getSchemaTypename", "SheetType", "sort", "anchorA", "anchorB", "sheet", "getTarget", "anchor", "compareIndexPositions"]
|
|
7
|
+
}
|
|
@@ -5,8 +5,7 @@ import {
|
|
|
5
5
|
|
|
6
6
|
// packages/plugins/plugin-sheet/src/types/schema.ts
|
|
7
7
|
import { Schema } from "effect";
|
|
8
|
-
import {
|
|
9
|
-
import { ThreadType } from "@dxos/plugin-space/types";
|
|
8
|
+
import { TypedObject } from "@dxos/echo-schema";
|
|
10
9
|
var CellValue = Schema.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).
|
|
@@ -46,9 +45,7 @@ var SheetType = class extends TypedObject({
|
|
|
46
45
|
value: Schema.mutable(RowColumnMeta)
|
|
47
46
|
})),
|
|
48
47
|
// Cell formatting referenced by indexed range.
|
|
49
|
-
ranges: Schema.mutable(Schema.Array(Range))
|
|
50
|
-
// Threads associated with the sheet
|
|
51
|
-
threads: Schema.optional(Schema.mutable(Schema.Array(Ref(ThreadType))))
|
|
48
|
+
ranges: Schema.mutable(Schema.Array(Range))
|
|
52
49
|
}) {
|
|
53
50
|
};
|
|
54
51
|
|
|
@@ -143,12 +140,7 @@ var toModelRange = (sheet, range) => ({
|
|
|
143
140
|
});
|
|
144
141
|
var SheetModel = class extends Resource {
|
|
145
142
|
constructor(_graph, _sheet, _options = {}) {
|
|
146
|
-
super();
|
|
147
|
-
this._graph = _graph;
|
|
148
|
-
this._sheet = _sheet;
|
|
149
|
-
this._options = _options;
|
|
150
|
-
this.id = `model-${PublicKey.random().truncate()}`;
|
|
151
|
-
this.update = new Event();
|
|
143
|
+
super(), this._graph = _graph, this._sheet = _sheet, this._options = _options, this.id = `model-${PublicKey.random().truncate()}`, this.update = new Event();
|
|
152
144
|
}
|
|
153
145
|
get graph() {
|
|
154
146
|
return this._graph;
|
|
@@ -691,7 +683,6 @@ var useSheetModel = (graph, sheet, { readonly } = {}) => {
|
|
|
691
683
|
};
|
|
692
684
|
|
|
693
685
|
// packages/plugins/plugin-sheet/src/types/types.ts
|
|
694
|
-
var SheetAction;
|
|
695
686
|
(function(SheetAction2) {
|
|
696
687
|
const SHEET_ACTION = `${SHEET_PLUGIN}/action`;
|
|
697
688
|
class Create extends Schema2.TaggedClass()(`${SHEET_ACTION}/create`, {
|
|
@@ -737,6 +728,7 @@ var SheetAction;
|
|
|
737
728
|
}
|
|
738
729
|
SheetAction2.DropAxis = DropAxis;
|
|
739
730
|
})(SheetAction || (SheetAction = {}));
|
|
731
|
+
var SheetAction;
|
|
740
732
|
|
|
741
733
|
// packages/plugins/plugin-sheet/src/types/util.ts
|
|
742
734
|
import { addressFromA1Notation as addressFromA1Notation2, addressToA1Notation as addressToA1Notation2, isFormula as isFormula2 } from "@dxos/compute";
|
|
@@ -790,8 +782,7 @@ var createSheet = ({ name, cells, ...size } = {}) => {
|
|
|
790
782
|
columns: [],
|
|
791
783
|
rowMeta: {},
|
|
792
784
|
columnMeta: {},
|
|
793
|
-
ranges: []
|
|
794
|
-
threads: []
|
|
785
|
+
ranges: []
|
|
795
786
|
});
|
|
796
787
|
initialize(sheet, size);
|
|
797
788
|
if (cells) {
|
|
@@ -842,7 +833,7 @@ var compareIndexPositions = (sheet, indexA, indexB) => {
|
|
|
842
833
|
var mapFormulaRefsToIndices = (sheet, formula) => {
|
|
843
834
|
invariant2(isFormula2(formula), void 0, {
|
|
844
835
|
F: __dxlog_file2,
|
|
845
|
-
L:
|
|
836
|
+
L: 152,
|
|
846
837
|
S: void 0,
|
|
847
838
|
A: [
|
|
848
839
|
"isFormula(formula)",
|
|
@@ -856,7 +847,7 @@ var mapFormulaRefsToIndices = (sheet, formula) => {
|
|
|
856
847
|
var mapFormulaIndicesToRefs = (sheet, formula) => {
|
|
857
848
|
invariant2(isFormula2(formula), void 0, {
|
|
858
849
|
F: __dxlog_file2,
|
|
859
|
-
L:
|
|
850
|
+
L: 162,
|
|
860
851
|
S: void 0,
|
|
861
852
|
A: [
|
|
862
853
|
"isFormula(formula)",
|
|
@@ -899,4 +890,4 @@ export {
|
|
|
899
890
|
mapFormulaRefsToIndices,
|
|
900
891
|
mapFormulaIndicesToRefs
|
|
901
892
|
};
|
|
902
|
-
//# sourceMappingURL=chunk-
|
|
893
|
+
//# sourceMappingURL=chunk-DIF3IOAB.mjs.map
|