@dxos/plugin-sheet 0.8.3 → 0.8.4-main.2e9d522
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-BDZXBB5U.mjs → SheetContainer-KDGD4AVG.mjs} +14 -14
- package/dist/lib/browser/{anchor-sort-NYYZLRAA.mjs → anchor-sort-VHURGBOY.mjs} +4 -4
- package/dist/lib/browser/{chunk-D3G4UGEK.mjs → chunk-6AKBCBL4.mjs} +2 -2
- package/dist/lib/browser/{chunk-FJRLDX7Z.mjs → chunk-7HQX4NQP.mjs} +3 -3
- package/dist/lib/browser/{chunk-5TA43LO4.mjs → chunk-JUOVL3LE.mjs} +15 -15
- package/dist/lib/browser/{chunk-5TA43LO4.mjs.map → chunk-JUOVL3LE.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-IR42IS3F.mjs → chunk-KJWZUQVA.mjs} +3 -3
- package/dist/lib/browser/{chunk-I7FZ4TWJ.mjs → chunk-SI4X5GUR.mjs} +11 -11
- package/dist/lib/browser/chunk-SI4X5GUR.mjs.map +7 -0
- package/dist/lib/browser/{compute-graph-registry-IXGGJJBU.mjs → compute-graph-registry-VG7VP7IV.mjs} +4 -4
- package/dist/lib/browser/index.mjs +20 -19
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-IBBI6B74.mjs → intent-resolver-WOJGZMSV.mjs} +4 -4
- package/dist/lib/browser/{markdown-T4TUP4BF.mjs → markdown-VXMIPUQC.mjs} +5 -5
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-UI46P43F.mjs → react-surface-SE4HGAEH.mjs} +7 -7
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/{SheetContainer-V632Q4HA.mjs → SheetContainer-RMG24NZC.mjs} +14 -14
- package/dist/lib/node-esm/{anchor-sort-JTNZOE67.mjs → anchor-sort-CTJGOPET.mjs} +4 -4
- package/dist/lib/node-esm/{chunk-Y6ND5HWX.mjs → chunk-3K5VNYOF.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-IQ76YE6M.mjs → chunk-6SK5LJ5S.mjs} +3 -3
- package/dist/lib/node-esm/{chunk-C4IKYVTV.mjs → chunk-CADTJFAS.mjs} +11 -11
- package/dist/lib/node-esm/chunk-CADTJFAS.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-SOC52B67.mjs → chunk-IFMIRCZH.mjs} +15 -15
- package/dist/lib/node-esm/{chunk-SOC52B67.mjs.map → chunk-IFMIRCZH.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-NMCVJWDT.mjs → chunk-Q6UYC4G5.mjs} +3 -3
- package/dist/lib/node-esm/{compute-graph-registry-7PDWXMHF.mjs → compute-graph-registry-3K3Q2A5T.mjs} +4 -4
- package/dist/lib/node-esm/index.mjs +20 -19
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-M2HNR7PJ.mjs → intent-resolver-PZRXBNIJ.mjs} +4 -4
- package/dist/lib/node-esm/{markdown-WWUJ3E5F.mjs → markdown-4VPQJZNZ.mjs} +5 -5
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-OLXO2MVB.mjs → react-surface-LAU23XBH.mjs} +7 -7
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts +1 -1
- package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +1 -1
- package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts +1 -1
- package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +1 -1
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/extensions/compute.stories.d.ts +1 -1
- package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
- package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
- package/dist/types/src/playwright/playwright.config.d.ts +3 -0
- package/dist/types/src/playwright/playwright.config.d.ts.map +1 -0
- package/dist/types/src/playwright/sheet-manager.d.ts.map +1 -0
- package/dist/types/src/playwright/sheet.spec.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +7 -62
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +52 -52
- package/src/SheetPlugin.tsx +1 -1
- package/src/components/ComputeGraph/compute-graph.stories.tsx +1 -1
- package/src/components/GridSheet/GridSheet.stories.tsx +2 -2
- package/src/components/GridSheet/SheetCellEditor.stories.tsx +1 -1
- package/src/components/SheetContainer/SheetContainer.stories.tsx +2 -2
- package/src/components/SheetToolbar/SheetToolbar.stories.tsx +2 -2
- package/src/extensions/compute.stories.tsx +1 -1
- package/src/integrations/thread-ranges.ts +3 -2
- package/src/playwright/playwright.config.ts +17 -0
- package/src/{testing/playwright → playwright}/sheet.spec.ts +1 -1
- package/src/translations.ts +8 -6
- package/src/types/schema.ts +1 -0
- package/dist/lib/browser/chunk-I7FZ4TWJ.mjs.map +0 -7
- package/dist/lib/node/SheetContainer-VWPM3HYJ.cjs +0 -351
- package/dist/lib/node/SheetContainer-VWPM3HYJ.cjs.map +0 -7
- package/dist/lib/node/anchor-sort-A7NABMJM.cjs +0 -39
- package/dist/lib/node/anchor-sort-A7NABMJM.cjs.map +0 -7
- package/dist/lib/node/chunk-FIM6EZ6M.cjs +0 -256
- package/dist/lib/node/chunk-FIM6EZ6M.cjs.map +0 -7
- package/dist/lib/node/chunk-JSIDCZHB.cjs +0 -41
- package/dist/lib/node/chunk-JSIDCZHB.cjs.map +0 -7
- package/dist/lib/node/chunk-LJWWS53Z.cjs +0 -34
- package/dist/lib/node/chunk-LJWWS53Z.cjs.map +0 -7
- package/dist/lib/node/chunk-N7FSEUIN.cjs +0 -927
- package/dist/lib/node/chunk-N7FSEUIN.cjs.map +0 -7
- package/dist/lib/node/chunk-ST3WA73J.cjs +0 -855
- package/dist/lib/node/chunk-ST3WA73J.cjs.map +0 -7
- package/dist/lib/node/compute-graph-registry-ARLDHPFW.cjs +0 -56
- package/dist/lib/node/compute-graph-registry-ARLDHPFW.cjs.map +0 -7
- package/dist/lib/node/index.cjs +0 -173
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-2657YDOU.cjs +0 -69
- package/dist/lib/node/intent-resolver-2657YDOU.cjs.map +0 -7
- package/dist/lib/node/markdown-DBPOAYI7.cjs +0 -40
- package/dist/lib/node/markdown-DBPOAYI7.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
- package/dist/lib/node/react-surface-XQEIRKWU.cjs +0 -71
- package/dist/lib/node/react-surface-XQEIRKWU.cjs.map +0 -7
- package/dist/lib/node/types/index.cjs +0 -84
- package/dist/lib/node/types/index.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-C4IKYVTV.mjs.map +0 -7
- package/dist/types/src/testing/playwright/sheet-manager.d.ts.map +0 -1
- package/dist/types/src/testing/playwright/sheet.spec.d.ts.map +0 -1
- package/src/testing/playwright/playwright.config.cts +0 -18
- /package/dist/lib/browser/{SheetContainer-BDZXBB5U.mjs.map → SheetContainer-KDGD4AVG.mjs.map} +0 -0
- /package/dist/lib/browser/{anchor-sort-NYYZLRAA.mjs.map → anchor-sort-VHURGBOY.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-D3G4UGEK.mjs.map → chunk-6AKBCBL4.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-FJRLDX7Z.mjs.map → chunk-7HQX4NQP.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-IR42IS3F.mjs.map → chunk-KJWZUQVA.mjs.map} +0 -0
- /package/dist/lib/browser/{compute-graph-registry-IXGGJJBU.mjs.map → compute-graph-registry-VG7VP7IV.mjs.map} +0 -0
- /package/dist/lib/browser/{intent-resolver-IBBI6B74.mjs.map → intent-resolver-WOJGZMSV.mjs.map} +0 -0
- /package/dist/lib/browser/{markdown-T4TUP4BF.mjs.map → markdown-VXMIPUQC.mjs.map} +0 -0
- /package/dist/lib/browser/{react-surface-UI46P43F.mjs.map → react-surface-SE4HGAEH.mjs.map} +0 -0
- /package/dist/lib/node-esm/{SheetContainer-V632Q4HA.mjs.map → SheetContainer-RMG24NZC.mjs.map} +0 -0
- /package/dist/lib/node-esm/{anchor-sort-JTNZOE67.mjs.map → anchor-sort-CTJGOPET.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-Y6ND5HWX.mjs.map → chunk-3K5VNYOF.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-IQ76YE6M.mjs.map → chunk-6SK5LJ5S.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-NMCVJWDT.mjs.map → chunk-Q6UYC4G5.mjs.map} +0 -0
- /package/dist/lib/node-esm/{compute-graph-registry-7PDWXMHF.mjs.map → compute-graph-registry-3K3Q2A5T.mjs.map} +0 -0
- /package/dist/lib/node-esm/{intent-resolver-M2HNR7PJ.mjs.map → intent-resolver-PZRXBNIJ.mjs.map} +0 -0
- /package/dist/lib/node-esm/{markdown-WWUJ3E5F.mjs.map → markdown-4VPQJZNZ.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-surface-OLXO2MVB.mjs.map → react-surface-LAU23XBH.mjs.map} +0 -0
- /package/dist/types/src/{testing/playwright → playwright}/sheet-manager.d.ts +0 -0
- /package/dist/types/src/{testing/playwright → playwright}/sheet.spec.d.ts +0 -0
- /package/src/{testing/playwright → playwright}/sheet-manager.ts +0 -0
|
@@ -1,351 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var SheetContainer_VWPM3HYJ_exports = {};
|
|
30
|
-
__export(SheetContainer_VWPM3HYJ_exports, {
|
|
31
|
-
default: () => SheetContainer_default
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(SheetContainer_VWPM3HYJ_exports);
|
|
34
|
-
var import_chunk_ST3WA73J = require("./chunk-ST3WA73J.cjs");
|
|
35
|
-
var import_chunk_N7FSEUIN = require("./chunk-N7FSEUIN.cjs");
|
|
36
|
-
var import_chunk_FIM6EZ6M = require("./chunk-FIM6EZ6M.cjs");
|
|
37
|
-
var import_chunk_JSIDCZHB = require("./chunk-JSIDCZHB.cjs");
|
|
38
|
-
var import_tracking = require("@preact-signals/safe-react/tracking");
|
|
39
|
-
var import_react = __toESM(require("react"));
|
|
40
|
-
var import_echo = require("@dxos/react-client/echo");
|
|
41
|
-
var import_react_ui_stack = require("@dxos/react-ui-stack");
|
|
42
|
-
var import_tracking2 = require("@preact-signals/safe-react/tracking");
|
|
43
|
-
var import_react2 = __toESM(require("react"));
|
|
44
|
-
var import_compute = require("@dxos/compute");
|
|
45
|
-
var import_react_ui = require("@dxos/react-ui");
|
|
46
|
-
var import_tracking3 = require("@preact-signals/safe-react/tracking");
|
|
47
|
-
var import_rx_react = require("@effect-rx/rx-react");
|
|
48
|
-
var import_react3 = __toESM(require("react"));
|
|
49
|
-
var import_app_framework = require("@dxos/app-framework");
|
|
50
|
-
var import_react_ui_menu = require("@dxos/react-ui-menu");
|
|
51
|
-
var import_tracking4 = require("@preact-signals/safe-react/tracking");
|
|
52
|
-
var import_react4 = require("react");
|
|
53
|
-
var import_compute2 = require("@dxos/compute");
|
|
54
|
-
var import_react_ui_menu2 = require("@dxos/react-ui-menu");
|
|
55
|
-
var import_react5 = require("react");
|
|
56
|
-
var import_compute3 = require("@dxos/compute");
|
|
57
|
-
var import_react_ui_menu3 = require("@dxos/react-ui-menu");
|
|
58
|
-
var import_react6 = require("react");
|
|
59
|
-
var import_live_object = require("@dxos/live-object");
|
|
60
|
-
var FunctionEditor = () => {
|
|
61
|
-
var _effect = (0, import_tracking2.useSignals)();
|
|
62
|
-
try {
|
|
63
|
-
const { model, cursor, range } = (0, import_chunk_ST3WA73J.useSheetContext)();
|
|
64
|
-
let value;
|
|
65
|
-
let formula = false;
|
|
66
|
-
if (cursor) {
|
|
67
|
-
value = model.getCellValue(cursor);
|
|
68
|
-
if ((0, import_compute.isFormula)(value)) {
|
|
69
|
-
value = model.graph.mapFunctionBindingFromId((0, import_chunk_N7FSEUIN.mapFormulaIndicesToRefs)(model.sheet, value));
|
|
70
|
-
formula = true;
|
|
71
|
-
} else if (value != null) {
|
|
72
|
-
value = String(value);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
76
|
-
className: "flex shrink-0 justify-between items-center px-4 py-1 text-sm bg-toolbarSurface border-bs !border-subduedSeparator"
|
|
77
|
-
}, /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
78
|
-
className: "flex gap-4 items-center"
|
|
79
|
-
}, /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
80
|
-
className: "flex w-16 items-center font-mono"
|
|
81
|
-
}, range && (0, import_compute.rangeToA1Notation)(range) || cursor && (0, import_compute.addressToA1Notation)(cursor)), /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
82
|
-
className: "flex gap-2 items-center"
|
|
83
|
-
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Icon, {
|
|
84
|
-
icon: "ph--function--regular",
|
|
85
|
-
classNames: [
|
|
86
|
-
"text-greenText",
|
|
87
|
-
formula ? "visible" : "invisible"
|
|
88
|
-
]
|
|
89
|
-
}), /* @__PURE__ */ import_react2.default.createElement("span", {
|
|
90
|
-
className: "font-mono"
|
|
91
|
-
}, value))));
|
|
92
|
-
} finally {
|
|
93
|
-
_effect.f();
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
var aligns = {
|
|
97
|
-
start: "ph--text-align-left--regular",
|
|
98
|
-
center: "ph--text-align-center--regular",
|
|
99
|
-
end: "ph--text-align-right--regular"
|
|
100
|
-
};
|
|
101
|
-
var useAlignState = (state) => {
|
|
102
|
-
var _effect = (0, import_tracking4.useSignals)();
|
|
103
|
-
try {
|
|
104
|
-
const { cursor, model } = (0, import_chunk_ST3WA73J.useSheetContext)();
|
|
105
|
-
(0, import_react4.useEffect)(() => {
|
|
106
|
-
state[import_chunk_N7FSEUIN.alignKey] = cursor ? model.sheet.ranges?.findLast(({ range, key }) => key === import_chunk_N7FSEUIN.alignKey && (0, import_compute2.inRange)((0, import_chunk_N7FSEUIN.rangeFromIndex)(model.sheet, range), cursor))?.value : void 0;
|
|
107
|
-
}, [
|
|
108
|
-
cursor,
|
|
109
|
-
model.sheet
|
|
110
|
-
]);
|
|
111
|
-
} finally {
|
|
112
|
-
_effect.f();
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
var createAlignGroupAction = (value) => (0, import_react_ui_menu2.createMenuItemGroup)("align", {
|
|
116
|
-
label: [
|
|
117
|
-
"align label",
|
|
118
|
-
{
|
|
119
|
-
ns: import_chunk_JSIDCZHB.SHEET_PLUGIN
|
|
120
|
-
}
|
|
121
|
-
],
|
|
122
|
-
variant: "toggleGroup",
|
|
123
|
-
selectCardinality: "single",
|
|
124
|
-
value: `${import_chunk_N7FSEUIN.alignKey}--${value}`
|
|
125
|
-
});
|
|
126
|
-
var createAlignActions = (model, state, cursorFallbackRange) => Object.entries(aligns).map(([alignValue, icon]) => {
|
|
127
|
-
return (0, import_react_ui_menu2.createMenuAction)(`${import_chunk_N7FSEUIN.alignKey}--${alignValue}`, () => {
|
|
128
|
-
if (!cursorFallbackRange) {
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
const index = model.sheet.ranges?.findIndex((range) => range.key === import_chunk_N7FSEUIN.alignKey && (0, import_compute2.inRange)((0, import_chunk_N7FSEUIN.rangeFromIndex)(model.sheet, range.range), cursorFallbackRange.from)) ?? -1;
|
|
132
|
-
const nextRangeEntity = {
|
|
133
|
-
range: (0, import_chunk_N7FSEUIN.rangeToIndex)(model.sheet, cursorFallbackRange),
|
|
134
|
-
key: import_chunk_N7FSEUIN.alignKey,
|
|
135
|
-
value: alignValue
|
|
136
|
-
};
|
|
137
|
-
if (index < 0) {
|
|
138
|
-
model.sheet.ranges?.push(nextRangeEntity);
|
|
139
|
-
state[import_chunk_N7FSEUIN.alignKey] = nextRangeEntity.value;
|
|
140
|
-
} else if (model.sheet.ranges[index].value === nextRangeEntity.value) {
|
|
141
|
-
model.sheet.ranges?.splice(index, 1);
|
|
142
|
-
state[import_chunk_N7FSEUIN.alignKey] = void 0;
|
|
143
|
-
} else {
|
|
144
|
-
model.sheet.ranges?.splice(index, 1, nextRangeEntity);
|
|
145
|
-
state[import_chunk_N7FSEUIN.alignKey] = nextRangeEntity.value;
|
|
146
|
-
}
|
|
147
|
-
}, {
|
|
148
|
-
key: import_chunk_N7FSEUIN.alignKey,
|
|
149
|
-
value: alignValue,
|
|
150
|
-
checked: state[import_chunk_N7FSEUIN.alignKey] === alignValue,
|
|
151
|
-
label: [
|
|
152
|
-
`range value ${alignValue} label`,
|
|
153
|
-
{
|
|
154
|
-
ns: import_chunk_JSIDCZHB.SHEET_PLUGIN
|
|
155
|
-
}
|
|
156
|
-
],
|
|
157
|
-
icon,
|
|
158
|
-
testId: `grid.toolbar.${import_chunk_N7FSEUIN.alignKey}.${alignValue}`
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
var createAlign = (model, state, cursorFallbackRange) => {
|
|
162
|
-
const alignGroup = createAlignGroupAction(state[import_chunk_N7FSEUIN.alignKey]);
|
|
163
|
-
const alignActions = createAlignActions(model, state, cursorFallbackRange);
|
|
164
|
-
return {
|
|
165
|
-
nodes: [
|
|
166
|
-
alignGroup,
|
|
167
|
-
...alignActions
|
|
168
|
-
],
|
|
169
|
-
edges: [
|
|
170
|
-
{
|
|
171
|
-
source: "root",
|
|
172
|
-
target: "align"
|
|
173
|
-
},
|
|
174
|
-
...alignActions.map(({ id }) => ({
|
|
175
|
-
source: alignGroup.id,
|
|
176
|
-
target: id
|
|
177
|
-
}))
|
|
178
|
-
]
|
|
179
|
-
};
|
|
180
|
-
};
|
|
181
|
-
var styles = {
|
|
182
|
-
highlight: "ph--highlighter--regular",
|
|
183
|
-
softwrap: "ph--paragraph--regular"
|
|
184
|
-
};
|
|
185
|
-
var useStyleState = (state) => {
|
|
186
|
-
const { cursorFallbackRange, model } = (0, import_chunk_ST3WA73J.useSheetContext)();
|
|
187
|
-
(0, import_react5.useEffect)(() => {
|
|
188
|
-
state.highlight = false;
|
|
189
|
-
state.softwrap = false;
|
|
190
|
-
if (cursorFallbackRange && model.sheet.ranges) {
|
|
191
|
-
model.sheet.ranges.filter(({ range, key }) => key === "style" && (0, import_compute3.inRange)((0, import_chunk_N7FSEUIN.rangeFromIndex)(model.sheet, range), cursorFallbackRange.from)).forEach(({ value }) => {
|
|
192
|
-
state[value] = true;
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
}, [
|
|
196
|
-
cursorFallbackRange,
|
|
197
|
-
model.sheet
|
|
198
|
-
]);
|
|
199
|
-
};
|
|
200
|
-
var createStyleGroup = (state) => {
|
|
201
|
-
return (0, import_react_ui_menu3.createMenuItemGroup)("style", {
|
|
202
|
-
variant: "toggleGroup",
|
|
203
|
-
selectCardinality: "multiple",
|
|
204
|
-
value: Object.keys(styles).filter((key) => !!state[key]).map((styleValue) => `style--${styleValue}`)
|
|
205
|
-
});
|
|
206
|
-
};
|
|
207
|
-
var createStyleActions = (model, state, cursorFallbackRange) => Object.entries(styles).map(([styleValue, icon]) => {
|
|
208
|
-
return (0, import_react_ui_menu3.createMenuAction)(`style--${styleValue}`, () => {
|
|
209
|
-
if (!cursorFallbackRange) {
|
|
210
|
-
return;
|
|
211
|
-
}
|
|
212
|
-
const index = model.sheet.ranges?.findIndex((range) => range.key === "style" && (0, import_compute3.inRange)((0, import_chunk_N7FSEUIN.rangeFromIndex)(model.sheet, range.range), cursorFallbackRange.from)) ?? -1;
|
|
213
|
-
const nextRangeEntity = {
|
|
214
|
-
range: (0, import_chunk_N7FSEUIN.rangeToIndex)(model.sheet, cursorFallbackRange),
|
|
215
|
-
key: "style",
|
|
216
|
-
value: styleValue
|
|
217
|
-
};
|
|
218
|
-
if (model.sheet.ranges.filter(({ range, key: rangeKey }) => rangeKey === "style" && (0, import_compute3.inRange)((0, import_chunk_N7FSEUIN.rangeFromIndex)(model.sheet, range), cursorFallbackRange.from)).some(({ value: rangeValue }) => rangeValue === styleValue)) {
|
|
219
|
-
if (index >= 0) {
|
|
220
|
-
model.sheet.ranges?.splice(index, 1);
|
|
221
|
-
}
|
|
222
|
-
state[nextRangeEntity.value] = false;
|
|
223
|
-
} else {
|
|
224
|
-
model.sheet.ranges?.push(nextRangeEntity);
|
|
225
|
-
state[nextRangeEntity.value] = true;
|
|
226
|
-
}
|
|
227
|
-
}, {
|
|
228
|
-
key: "style",
|
|
229
|
-
value: styleValue,
|
|
230
|
-
icon,
|
|
231
|
-
label: [
|
|
232
|
-
`range value ${styleValue} label`,
|
|
233
|
-
{
|
|
234
|
-
ns: import_chunk_JSIDCZHB.SHEET_PLUGIN
|
|
235
|
-
}
|
|
236
|
-
],
|
|
237
|
-
checked: !!state[styleValue]
|
|
238
|
-
});
|
|
239
|
-
});
|
|
240
|
-
var createStyle = (model, state, cursorFallbackRange) => {
|
|
241
|
-
const styleGroupAction = createStyleGroup(state);
|
|
242
|
-
const styleActions = createStyleActions(model, state, cursorFallbackRange);
|
|
243
|
-
return {
|
|
244
|
-
nodes: [
|
|
245
|
-
styleGroupAction,
|
|
246
|
-
...styleActions
|
|
247
|
-
],
|
|
248
|
-
edges: [
|
|
249
|
-
{
|
|
250
|
-
source: "root",
|
|
251
|
-
target: "style"
|
|
252
|
-
},
|
|
253
|
-
...styleActions.map(({ id }) => ({
|
|
254
|
-
source: styleGroupAction.id,
|
|
255
|
-
target: id
|
|
256
|
-
}))
|
|
257
|
-
]
|
|
258
|
-
};
|
|
259
|
-
};
|
|
260
|
-
var useToolbarState = (initialState = {}) => {
|
|
261
|
-
return (0, import_react6.useMemo)(() => (0, import_live_object.live)(initialState), []);
|
|
262
|
-
};
|
|
263
|
-
var createToolbarActions = (model, state, cursorFallbackRange, customActions) => {
|
|
264
|
-
return import_rx_react.Rx.make((get) => {
|
|
265
|
-
const align = get((0, import_react_ui_menu.rxFromSignal)(() => createAlign(model, state, cursorFallbackRange)));
|
|
266
|
-
const style = get((0, import_react_ui_menu.rxFromSignal)(() => createStyle(model, state, cursorFallbackRange)));
|
|
267
|
-
const gap = (0, import_react_ui_menu.createGapSeparator)();
|
|
268
|
-
const nodes = [
|
|
269
|
-
...align.nodes,
|
|
270
|
-
...style.nodes,
|
|
271
|
-
...gap.nodes
|
|
272
|
-
];
|
|
273
|
-
const edges = [
|
|
274
|
-
...align.edges,
|
|
275
|
-
...style.edges,
|
|
276
|
-
...gap.edges
|
|
277
|
-
];
|
|
278
|
-
if (customActions) {
|
|
279
|
-
const custom = get(customActions);
|
|
280
|
-
nodes.push(...custom.nodes);
|
|
281
|
-
edges.push(...custom.edges);
|
|
282
|
-
}
|
|
283
|
-
return {
|
|
284
|
-
nodes,
|
|
285
|
-
edges
|
|
286
|
-
};
|
|
287
|
-
});
|
|
288
|
-
};
|
|
289
|
-
var SheetToolbar = ({ id, classNames }) => {
|
|
290
|
-
var _effect = (0, import_tracking3.useSignals)();
|
|
291
|
-
try {
|
|
292
|
-
const { model, cursorFallbackRange } = (0, import_chunk_ST3WA73J.useSheetContext)();
|
|
293
|
-
const state = useToolbarState({});
|
|
294
|
-
useAlignState(state);
|
|
295
|
-
useStyleState(state);
|
|
296
|
-
const { graph } = (0, import_app_framework.useAppGraph)();
|
|
297
|
-
const customActions = (0, import_react3.useMemo)(() => {
|
|
298
|
-
return import_rx_react.Rx.make((get) => {
|
|
299
|
-
const actions = get(graph.actions(id));
|
|
300
|
-
const nodes = actions.filter((action) => action.properties.disposition === "toolbar");
|
|
301
|
-
return {
|
|
302
|
-
nodes,
|
|
303
|
-
edges: nodes.map((node) => ({
|
|
304
|
-
source: "root",
|
|
305
|
-
target: node.id
|
|
306
|
-
}))
|
|
307
|
-
};
|
|
308
|
-
});
|
|
309
|
-
}, [
|
|
310
|
-
graph
|
|
311
|
-
]);
|
|
312
|
-
const actionsCreator = (0, import_react3.useMemo)(() => createToolbarActions(model, state, cursorFallbackRange, customActions), [
|
|
313
|
-
model,
|
|
314
|
-
state,
|
|
315
|
-
cursorFallbackRange,
|
|
316
|
-
customActions
|
|
317
|
-
]);
|
|
318
|
-
const menu = (0, import_react_ui_menu.useMenuActions)(actionsCreator);
|
|
319
|
-
return /* @__PURE__ */ import_react3.default.createElement(import_react_ui_menu.MenuProvider, {
|
|
320
|
-
...menu,
|
|
321
|
-
attendableId: id
|
|
322
|
-
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui_menu.ToolbarMenu, {
|
|
323
|
-
classNames
|
|
324
|
-
}));
|
|
325
|
-
} finally {
|
|
326
|
-
_effect.f();
|
|
327
|
-
}
|
|
328
|
-
};
|
|
329
|
-
var SheetContainer = ({ space, sheet, role, ignoreAttention }) => {
|
|
330
|
-
var _effect = (0, import_tracking.useSignals)();
|
|
331
|
-
try {
|
|
332
|
-
const graph = (0, import_chunk_ST3WA73J.useComputeGraph)(space);
|
|
333
|
-
return graph ? /* @__PURE__ */ import_react.default.createElement(import_chunk_ST3WA73J.SheetProvider, {
|
|
334
|
-
sheet,
|
|
335
|
-
graph,
|
|
336
|
-
ignoreAttention
|
|
337
|
-
}, /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.StackItem.Content, {
|
|
338
|
-
toolbar: true,
|
|
339
|
-
statusbar: true,
|
|
340
|
-
...role === "section" && {
|
|
341
|
-
classNames: "aspect-video"
|
|
342
|
-
}
|
|
343
|
-
}, /* @__PURE__ */ import_react.default.createElement(SheetToolbar, {
|
|
344
|
-
id: (0, import_echo.fullyQualifiedId)(sheet)
|
|
345
|
-
}), /* @__PURE__ */ import_react.default.createElement(import_chunk_ST3WA73J.GridSheet, null), /* @__PURE__ */ import_react.default.createElement(FunctionEditor, null))) : null;
|
|
346
|
-
} finally {
|
|
347
|
-
_effect.f();
|
|
348
|
-
}
|
|
349
|
-
};
|
|
350
|
-
var SheetContainer_default = SheetContainer;
|
|
351
|
-
//# sourceMappingURL=SheetContainer-VWPM3HYJ.cjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
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": ["import_react", "import_compute", "import_react_ui_menu", "FunctionEditor", "model", "cursor", "range", "useSheetContext", "value", "formula", "getCellValue", "isFormula", "graph", "mapFunctionBindingFromId", "mapFormulaIndicesToRefs", "sheet", "String", "React", "div", "className", "rangeToA1Notation", "addressToA1Notation", "Icon", "icon", "classNames", "span", "aligns", "start", "center", "end", "useAlignState", "state", "useEffect", "alignKey", "ranges", "findLast", "key", "inRange", "rangeFromIndex", "undefined", "createAlignGroupAction", "createMenuItemGroup", "label", "ns", "SHEET_PLUGIN", "variant", "selectCardinality", "createAlignActions", "cursorFallbackRange", "Object", "entries", "map", "alignValue", "createMenuAction", "index", "findIndex", "from", "nextRangeEntity", "rangeToIndex", "push", "splice", "checked", "testId", "createAlign", "alignGroup", "alignActions", "nodes", "edges", "source", "target", "id", "styles", "highlight", "softwrap", "useStyleState", "filter", "forEach", "createStyleGroup", "keys", "styleValue", "createStyleActions", "rangeKey", "some", "rangeValue", "createStyle", "styleGroupAction", "styleActions", "useToolbarState", "initialState", "useMemo", "live", "createToolbarActions", "customActions", "Rx", "make", "get", "align", "rxFromSignal", "style", "gap", "createGapSeparator", "custom", "SheetToolbar", "useAppGraph", "actions", "action", "properties", "disposition", "node", "actionsCreator", "menu", "useMenuActions", "MenuProvider", "attendableId", "ToolbarMenu", "SheetContainer", "space", "role", "ignoreAttention", "useComputeGraph", "SheetProvider", "StackItem", "Content", "toolbar", "statusbar", "fullyQualifiedId", "GridSheet"]
|
|
7
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var anchor_sort_A7NABMJM_exports = {};
|
|
20
|
-
__export(anchor_sort_A7NABMJM_exports, {
|
|
21
|
-
default: () => anchor_sort_default
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(anchor_sort_A7NABMJM_exports);
|
|
24
|
-
var import_chunk_N7FSEUIN = require("./chunk-N7FSEUIN.cjs");
|
|
25
|
-
var import_chunk_JSIDCZHB = require("./chunk-JSIDCZHB.cjs");
|
|
26
|
-
var import_app_framework = require("@dxos/app-framework");
|
|
27
|
-
var import_echo = require("@dxos/echo");
|
|
28
|
-
var import_echo2 = require("@dxos/react-client/echo");
|
|
29
|
-
var anchor_sort_default = () => (0, import_app_framework.contributes)(import_app_framework.Capabilities.AnchorSort, {
|
|
30
|
-
key: import_echo.Type.getTypename(import_chunk_N7FSEUIN.SheetType),
|
|
31
|
-
sort: (anchorA, anchorB) => {
|
|
32
|
-
const sheet = (0, import_echo2.getTarget)(anchorA);
|
|
33
|
-
if (sheet !== (0, import_echo2.getTarget)(anchorB)) {
|
|
34
|
-
return 0;
|
|
35
|
-
}
|
|
36
|
-
return !anchorA.anchor || !anchorB.anchor ? 0 : (0, import_chunk_N7FSEUIN.compareIndexPositions)(sheet, anchorA.anchor, anchorB.anchor);
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
//# sourceMappingURL=anchor-sort-A7NABMJM.cjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
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 { Type } from '@dxos/echo';\nimport { getTarget } from '@dxos/react-client/echo';\n\nimport { compareIndexPositions, SheetType } from '../types';\n\nexport default () =>\n contributes(Capabilities.AnchorSort, {\n key: Type.getTypename(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,2BAA0C;AAC1C,kBAAqB;AACrB,IAAAA,eAA0B;AAI1B,IAAA,sBAAe,UACbC,kCAAYC,kCAAaC,YAAY;EACnCC,KAAKC,iBAAKC,YAAYC,+BAAAA;EACtBC,MAAM,CAACC,SAASC,YAAAA;AACd,UAAMC,YAAQC,wBAAUH,OAAAA;AACxB,QAAIE,cAAUC,wBAAUF,OAAAA,GAAU;AAChC,aAAO;IACT;AAEA,WAAO,CAACD,QAAQI,UAAU,CAACH,QAAQG,SAAS,QAAIC,6CAAsBH,OAAOF,QAAQI,QAAQH,QAAQG,MAAM;EAC7G;AACF,CAAA;",
|
|
6
|
-
"names": ["import_echo", "contributes", "Capabilities", "AnchorSort", "key", "Type", "getTypename", "SheetType", "sort", "anchorA", "anchorB", "sheet", "getTarget", "anchor", "compareIndexPositions"]
|
|
7
|
-
}
|