@dxos/plugin-sheet 0.7.5-main.9d26e3a → 0.7.5-main.e9bb01b
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-QE32GHSA.mjs +370 -0
- package/dist/lib/browser/SheetContainer-QE32GHSA.mjs.map +7 -0
- package/dist/lib/browser/chunk-5IP6N25X.mjs +18 -0
- package/dist/lib/browser/chunk-5IP6N25X.mjs.map +7 -0
- package/dist/lib/browser/{chunk-A374JPWV.mjs → chunk-EEN6LQ77.mjs} +157 -391
- package/dist/lib/browser/chunk-EEN6LQ77.mjs.map +7 -0
- package/dist/lib/browser/chunk-FOO6NGBM.mjs +229 -0
- package/dist/lib/browser/chunk-FOO6NGBM.mjs.map +7 -0
- package/dist/lib/browser/{chunk-Q4XS4YWF.mjs → chunk-MW7L2R23.mjs} +2 -2
- package/dist/lib/browser/chunk-MW7L2R23.mjs.map +7 -0
- package/dist/lib/browser/chunk-NA2WJTDQ.mjs +15 -0
- package/dist/lib/browser/chunk-NA2WJTDQ.mjs.map +7 -0
- package/dist/lib/browser/compute-graph-registry-5PSCPAJC.mjs +27 -0
- package/dist/lib/browser/compute-graph-registry-5PSCPAJC.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +80 -218
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/intent-resolver-BIOB22P2.mjs +56 -0
- package/dist/lib/browser/intent-resolver-BIOB22P2.mjs.map +7 -0
- package/dist/lib/browser/markdown-ZXHPFU4B.mjs +26 -0
- package/dist/lib/browser/markdown-ZXHPFU4B.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-surface-DUNHY5TJ.mjs +52 -0
- package/dist/lib/browser/react-surface-DUNHY5TJ.mjs.map +7 -0
- package/dist/lib/browser/thread-RSI66HGQ.mjs +17 -0
- package/dist/lib/browser/thread-RSI66HGQ.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node/SheetContainer-63QTAGQQ.cjs +364 -0
- package/dist/lib/node/SheetContainer-63QTAGQQ.cjs.map +7 -0
- package/dist/lib/node/{chunk-TQOJ7DG2.cjs → chunk-6BZ2TACG.cjs} +6 -6
- package/dist/lib/node/chunk-6BZ2TACG.cjs.map +7 -0
- package/dist/lib/node/{meta.cjs → chunk-6G6HHJOM.cjs} +12 -8
- package/dist/lib/node/chunk-6G6HHJOM.cjs.map +7 -0
- package/dist/lib/node/{chunk-2ZVZI2KJ.cjs → chunk-AUC5XQEN.cjs} +12 -9
- package/dist/lib/node/chunk-AUC5XQEN.cjs.map +7 -0
- package/dist/lib/node/{chunk-FDEQ2PGJ.cjs → chunk-K4VMHOR2.cjs} +198 -428
- package/dist/lib/node/chunk-K4VMHOR2.cjs.map +7 -0
- package/dist/lib/node/chunk-P4KSGZSS.cjs +251 -0
- package/dist/lib/node/chunk-P4KSGZSS.cjs.map +7 -0
- package/dist/lib/node/compute-graph-registry-IKYGA5ZC.cjs +53 -0
- package/dist/lib/node/compute-graph-registry-IKYGA5ZC.cjs.map +7 -0
- package/dist/lib/node/index.cjs +81 -215
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/intent-resolver-EN5ZMUUF.cjs +69 -0
- package/dist/lib/node/intent-resolver-EN5ZMUUF.cjs.map +7 -0
- package/dist/lib/node/markdown-7NVPUDWI.cjs +40 -0
- package/dist/lib/node/markdown-7NVPUDWI.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/react-surface-YGALRCRL.cjs +70 -0
- package/dist/lib/node/react-surface-YGALRCRL.cjs.map +7 -0
- package/dist/lib/node/thread-7KJVRDUE.cjs +32 -0
- package/dist/lib/node/thread-7KJVRDUE.cjs.map +7 -0
- package/dist/lib/node/types/index.cjs +30 -30
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/SheetContainer-EUR47CP5.mjs +371 -0
- package/dist/lib/node-esm/SheetContainer-EUR47CP5.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-6C53G45G.mjs +16 -0
- package/dist/lib/node-esm/chunk-6C53G45G.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-JFUKD7N4.mjs +20 -0
- package/dist/lib/node-esm/chunk-JFUKD7N4.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-NYYIDVR7.mjs → chunk-LGQMXD6K.mjs} +2 -2
- package/dist/lib/node-esm/chunk-LGQMXD6K.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-PTOI45NK.mjs +231 -0
- package/dist/lib/node-esm/chunk-PTOI45NK.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-L5PQHVTX.mjs → chunk-RFGJUSHF.mjs} +157 -391
- package/dist/lib/node-esm/chunk-RFGJUSHF.mjs.map +7 -0
- package/dist/lib/node-esm/compute-graph-registry-ZSLEFSS5.mjs +28 -0
- package/dist/lib/node-esm/compute-graph-registry-ZSLEFSS5.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +80 -218
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/intent-resolver-6BCKQA5A.mjs +57 -0
- package/dist/lib/node-esm/intent-resolver-6BCKQA5A.mjs.map +7 -0
- package/dist/lib/node-esm/markdown-LRZEUBKN.mjs +27 -0
- package/dist/lib/node-esm/markdown-LRZEUBKN.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-surface-AAT56ZBA.mjs +53 -0
- package/dist/lib/node-esm/react-surface-AAT56ZBA.mjs.map +7 -0
- package/dist/lib/node-esm/thread-U3RIKVMB.mjs +18 -0
- package/dist/lib/node-esm/thread-U3RIKVMB.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/SheetPlugin.d.ts +1 -3
- package/dist/types/src/SheetPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +5 -0
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
- package/dist/types/src/capabilities/compute-graph-registry.d.ts +4 -0
- package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +12 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/intent-resolver.d.ts +4 -0
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/markdown.d.ts +6 -0
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +4 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/thread.d.ts +6 -0
- package/dist/types/src/capabilities/thread.d.ts.map +1 -0
- package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +7 -0
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +6 -0
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/align.d.ts +28 -0
- package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/comment.d.ts +23 -0
- package/dist/types/src/components/SheetToolbar/comment.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/index.d.ts +2 -0
- package/dist/types/src/components/SheetToolbar/index.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/style.d.ts +26 -0
- package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/useToolbarAction.d.ts +8 -0
- package/dist/types/src/components/SheetToolbar/useToolbarAction.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts +6 -0
- package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +1 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/testing/testing.d.ts +1 -1
- package/dist/types/src/testing/testing.d.ts.map +1 -1
- package/dist/types/src/types/sheet-range-types.d.ts +1 -1
- package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +0 -11
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +45 -52
- package/src/SheetPlugin.tsx +55 -103
- package/src/capabilities/capabilities.ts +14 -0
- package/src/capabilities/compute-graph-registry.ts +25 -0
- package/src/capabilities/index.ts +13 -0
- package/src/capabilities/intent-resolver.ts +38 -0
- package/src/capabilities/markdown.ts +22 -0
- package/src/capabilities/react-surface.tsx +37 -0
- package/src/capabilities/thread.ts +14 -0
- package/src/components/GridSheet/GridSheet.stories.tsx +2 -0
- package/src/components/GridSheet/util.ts +1 -1
- package/src/components/SheetContainer/SheetContainer.stories.tsx +28 -22
- package/src/components/SheetContainer/SheetContainer.tsx +3 -8
- package/src/components/{Toolbar/Toolbar.stories.tsx → SheetToolbar/SheetToolbar.stories.tsx} +4 -8
- package/src/components/SheetToolbar/SheetToolbar.tsx +48 -0
- package/src/components/SheetToolbar/align.ts +68 -0
- package/src/components/SheetToolbar/comment.ts +56 -0
- package/src/components/{Toolbar → SheetToolbar}/index.ts +1 -1
- package/src/components/SheetToolbar/style.ts +72 -0
- package/src/components/SheetToolbar/useToolbarAction.ts +87 -0
- package/src/components/SheetToolbar/useToolbarState.ts +17 -0
- package/src/components/index.ts +0 -1
- package/src/index.ts +2 -5
- package/src/integrations/thread-ranges.ts +21 -10
- package/src/meta.ts +3 -2
- package/src/types/sheet-range-types.ts +1 -1
- package/src/types/types.ts +0 -26
- package/dist/lib/browser/SheetContainer-S4NCLUYL.mjs +0 -290
- package/dist/lib/browser/SheetContainer-S4NCLUYL.mjs.map +0 -7
- package/dist/lib/browser/chunk-A374JPWV.mjs.map +0 -7
- package/dist/lib/browser/chunk-Q4XS4YWF.mjs.map +0 -7
- package/dist/lib/browser/chunk-RABELMEQ.mjs +0 -15
- package/dist/lib/browser/chunk-RABELMEQ.mjs.map +0 -7
- package/dist/lib/browser/meta.mjs +0 -9
- package/dist/lib/browser/meta.mjs.map +0 -7
- package/dist/lib/node/SheetContainer-TP4GYXZB.cjs +0 -296
- package/dist/lib/node/SheetContainer-TP4GYXZB.cjs.map +0 -7
- package/dist/lib/node/chunk-2ZVZI2KJ.cjs.map +0 -7
- package/dist/lib/node/chunk-FDEQ2PGJ.cjs.map +0 -7
- package/dist/lib/node/chunk-TQOJ7DG2.cjs.map +0 -7
- package/dist/lib/node/meta.cjs.map +0 -7
- package/dist/lib/node-esm/SheetContainer-YB3JBVPZ.mjs +0 -291
- package/dist/lib/node-esm/SheetContainer-YB3JBVPZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-BM2Q3FFC.mjs +0 -17
- package/dist/lib/node-esm/chunk-BM2Q3FFC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-L5PQHVTX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NYYIDVR7.mjs.map +0 -7
- package/dist/lib/node-esm/meta.mjs +0 -10
- package/dist/lib/node-esm/meta.mjs.map +0 -7
- package/dist/types/src/components/SheetObjectSettings.d.ts +0 -7
- package/dist/types/src/components/SheetObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/Toolbar/Toolbar.d.ts +0 -48
- package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +0 -1
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +0 -7
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +0 -1
- package/dist/types/src/components/Toolbar/index.d.ts +0 -2
- package/dist/types/src/components/Toolbar/index.d.ts.map +0 -1
- package/src/components/SheetObjectSettings.tsx +0 -38
- package/src/components/Toolbar/Toolbar.tsx +0 -344
|
@@ -26,71 +26,54 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var chunk_K4VMHOR2_exports = {};
|
|
30
|
+
__export(chunk_K4VMHOR2_exports, {
|
|
31
31
|
ComputeGraphContextProvider: () => ComputeGraphContextProvider,
|
|
32
32
|
GridSheet: () => GridSheet,
|
|
33
|
+
RangeList: () => RangeList,
|
|
33
34
|
SheetContainer: () => SheetContainer,
|
|
34
|
-
SheetObjectSettings: () => SheetObjectSettings,
|
|
35
35
|
SheetProvider: () => SheetProvider,
|
|
36
36
|
completeCellRangeToThreadCursor: () => completeCellRangeToThreadCursor,
|
|
37
|
-
computeGraphFacet: () => computeGraphFacet,
|
|
38
37
|
useComputeGraph: () => useComputeGraph,
|
|
39
38
|
useSheetContext: () => useSheetContext
|
|
40
39
|
});
|
|
41
|
-
module.exports = __toCommonJS(
|
|
42
|
-
var
|
|
43
|
-
var
|
|
40
|
+
module.exports = __toCommonJS(chunk_K4VMHOR2_exports);
|
|
41
|
+
var import_chunk_P4KSGZSS = require("./chunk-P4KSGZSS.cjs");
|
|
42
|
+
var import_chunk_6BZ2TACG = require("./chunk-6BZ2TACG.cjs");
|
|
43
|
+
var import_chunk_AUC5XQEN = require("./chunk-AUC5XQEN.cjs");
|
|
44
44
|
var import_react = __toESM(require("react"));
|
|
45
45
|
var import_debug = require("@dxos/debug");
|
|
46
46
|
var import_react_hooks = require("@dxos/react-hooks");
|
|
47
|
-
var
|
|
48
|
-
var import_state = require("@codemirror/state");
|
|
49
|
-
var import_view = require("@codemirror/view");
|
|
50
|
-
var import_async = require("@dxos/async");
|
|
47
|
+
var import_react2 = __toESM(require("react"));
|
|
51
48
|
var import_compute = require("@dxos/compute");
|
|
52
|
-
var
|
|
53
|
-
var
|
|
54
|
-
var
|
|
55
|
-
var import_language2 = require("@codemirror/language");
|
|
56
|
-
var import_view2 = require("@codemirror/view");
|
|
57
|
-
var import_highlight = require("@lezer/highlight");
|
|
58
|
-
var import_codemirror_lang_spreadsheet = require("codemirror-lang-spreadsheet");
|
|
59
|
-
var import_compute2 = require("@dxos/compute");
|
|
60
|
-
var import_react_ui_editor2 = require("@dxos/react-ui-editor");
|
|
49
|
+
var import_echo_schema = require("@dxos/echo-schema");
|
|
50
|
+
var import_react_ui = require("@dxos/react-ui");
|
|
51
|
+
var import_react_ui_list = require("@dxos/react-ui-list");
|
|
61
52
|
var import_react_ui_theme = require("@dxos/react-ui-theme");
|
|
62
|
-
var
|
|
63
|
-
var
|
|
64
|
-
var import_echo = require("@dxos/react-client/echo");
|
|
65
|
-
var import_react_ui_grid = require("@dxos/react-ui-grid");
|
|
66
|
-
var import_react3 = __toESM(require("react"));
|
|
53
|
+
var import_react3 = require("react");
|
|
54
|
+
var import_react4 = __toESM(require("react"));
|
|
67
55
|
var import_app_framework = require("@dxos/app-framework");
|
|
68
|
-
var
|
|
69
|
-
var
|
|
56
|
+
var import_compute2 = require("@dxos/compute");
|
|
57
|
+
var import_react_ui2 = require("@dxos/react-ui");
|
|
70
58
|
var import_react_ui_attention = require("@dxos/react-ui-attention");
|
|
71
|
-
var
|
|
72
|
-
var
|
|
73
|
-
var
|
|
74
|
-
var
|
|
59
|
+
var import_react_ui_grid = require("@dxos/react-ui-grid");
|
|
60
|
+
var import_react5 = require("react");
|
|
61
|
+
var import_compute3 = require("@dxos/compute");
|
|
62
|
+
var import_echo = require("@dxos/react-client/echo");
|
|
75
63
|
var import_react_ui_form = require("@dxos/react-ui-form");
|
|
76
|
-
var
|
|
64
|
+
var import_react_ui_grid2 = require("@dxos/react-ui-grid");
|
|
77
65
|
var import_react_ui_theme2 = require("@dxos/react-ui-theme");
|
|
78
|
-
var
|
|
66
|
+
var import_react6 = require("react");
|
|
79
67
|
var import_app_framework2 = require("@dxos/app-framework");
|
|
80
|
-
var
|
|
81
|
-
var
|
|
68
|
+
var import_async = require("@dxos/async");
|
|
69
|
+
var import_compute4 = require("@dxos/compute");
|
|
70
|
+
var import_echo_schema2 = require("@dxos/echo-schema");
|
|
82
71
|
var import_types = require("@dxos/plugin-thread/types");
|
|
83
|
-
var
|
|
84
|
-
var import_react6 = require("react");
|
|
72
|
+
var import_echo2 = require("@dxos/react-client/echo");
|
|
85
73
|
var import_react7 = __toESM(require("react"));
|
|
86
|
-
var
|
|
87
|
-
var
|
|
88
|
-
var
|
|
89
|
-
var import_react_ui_list = require("@dxos/react-ui-list");
|
|
90
|
-
var import_react_ui_theme3 = require("@dxos/react-ui-theme");
|
|
91
|
-
var import_react8 = __toESM(require("react"));
|
|
92
|
-
var import_meta = require("@dxos/plugin-space/meta");
|
|
93
|
-
var import_react_ui3 = require("@dxos/react-ui");
|
|
74
|
+
var import_invariant = require("@dxos/invariant");
|
|
75
|
+
var import_echo3 = require("@dxos/react-client/echo");
|
|
76
|
+
var import_react_ui_grid3 = require("@dxos/react-ui-grid");
|
|
94
77
|
var ComputeGraphContext = /* @__PURE__ */ (0, import_react.createContext)(void 0);
|
|
95
78
|
var ComputeGraphContextProvider = ({ registry, children }) => {
|
|
96
79
|
return /* @__PURE__ */ import_react.default.createElement(ComputeGraphContext.Provider, {
|
|
@@ -113,328 +96,38 @@ var useComputeGraph = (space) => {
|
|
|
113
96
|
]);
|
|
114
97
|
return graph;
|
|
115
98
|
};
|
|
116
|
-
var updateAllDecorations = import_state.StateEffect.define();
|
|
117
|
-
var computeGraphFacet = (0, import_react_ui_editor.singleValueFacet)();
|
|
118
|
-
var highlightStyles = import_language2.HighlightStyle.define([
|
|
119
|
-
// Function.
|
|
120
|
-
{
|
|
121
|
-
tag: import_highlight.tags.name,
|
|
122
|
-
class: "text-accentText"
|
|
123
|
-
},
|
|
124
|
-
// Range.
|
|
125
|
-
{
|
|
126
|
-
tag: import_highlight.tags.tagName,
|
|
127
|
-
class: "text-pinkText"
|
|
128
|
-
},
|
|
129
|
-
// Values.
|
|
130
|
-
{
|
|
131
|
-
tag: import_highlight.tags.number,
|
|
132
|
-
class: "text-tealText"
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
tag: import_highlight.tags.bool,
|
|
136
|
-
class: "text-tealText"
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
tag: import_highlight.tags.string,
|
|
140
|
-
class: "text-tealText"
|
|
141
|
-
},
|
|
142
|
-
// Error.
|
|
143
|
-
{
|
|
144
|
-
tag: import_highlight.tags.invalid,
|
|
145
|
-
class: "text-unAccent"
|
|
146
|
-
}
|
|
147
|
-
]);
|
|
148
|
-
var languageFacet = (0, import_react_ui_editor2.singleValueFacet)();
|
|
149
|
-
var sheetExtension = ({ debug, functions = [] }) => {
|
|
150
|
-
const { extension, language } = (0, import_codemirror_lang_spreadsheet.spreadsheet)({
|
|
151
|
-
idiom: "en-US",
|
|
152
|
-
decimalSeparator: "."
|
|
153
|
-
});
|
|
154
|
-
const createCompletion = (name) => {
|
|
155
|
-
const { section = "Custom", description, syntax } = functions.find((value) => value.name === name) ?? {};
|
|
156
|
-
return {
|
|
157
|
-
section,
|
|
158
|
-
label: name,
|
|
159
|
-
info: () => {
|
|
160
|
-
if (!description && !syntax) {
|
|
161
|
-
return null;
|
|
162
|
-
}
|
|
163
|
-
const root = document.createElement("div");
|
|
164
|
-
root.className = "flex flex-col gap-2 text-sm";
|
|
165
|
-
const title = document.createElement("h2");
|
|
166
|
-
title.innerText = name;
|
|
167
|
-
title.className = "text-lg font-mono text-accentText";
|
|
168
|
-
root.appendChild(title);
|
|
169
|
-
if (description) {
|
|
170
|
-
const info = document.createElement("p");
|
|
171
|
-
info.innerText = description;
|
|
172
|
-
info.className = "text-subdued";
|
|
173
|
-
root.appendChild(info);
|
|
174
|
-
}
|
|
175
|
-
if (syntax) {
|
|
176
|
-
const detail = document.createElement("pre");
|
|
177
|
-
detail.innerText = syntax;
|
|
178
|
-
detail.className = "whitespace-pre-wrap text-greenText";
|
|
179
|
-
root.appendChild(detail);
|
|
180
|
-
}
|
|
181
|
-
return root;
|
|
182
|
-
},
|
|
183
|
-
apply: (view, completion, from, to) => {
|
|
184
|
-
const insertParens = to === view.state.doc.toString().length;
|
|
185
|
-
view.dispatch(view.state.update({
|
|
186
|
-
changes: {
|
|
187
|
-
from,
|
|
188
|
-
to,
|
|
189
|
-
insert: completion.label + (insertParens ? "()" : "")
|
|
190
|
-
},
|
|
191
|
-
selection: {
|
|
192
|
-
anchor: from + completion.label.length + 1
|
|
193
|
-
}
|
|
194
|
-
}));
|
|
195
|
-
}
|
|
196
|
-
};
|
|
197
|
-
};
|
|
198
|
-
return [
|
|
199
|
-
extension,
|
|
200
|
-
languageFacet.of(language),
|
|
201
|
-
language.data.of({
|
|
202
|
-
autocomplete: (context) => {
|
|
203
|
-
if (context.state.doc.toString()[0] !== "=") {
|
|
204
|
-
return null;
|
|
205
|
-
}
|
|
206
|
-
const match = context.matchBefore(/\w*/);
|
|
207
|
-
if (!match || match.from === match.to) {
|
|
208
|
-
return null;
|
|
209
|
-
}
|
|
210
|
-
const text = match.text.toUpperCase();
|
|
211
|
-
if (!context.explicit && match.text.length < 2) {
|
|
212
|
-
return null;
|
|
213
|
-
}
|
|
214
|
-
return {
|
|
215
|
-
from: match.from,
|
|
216
|
-
options: functions?.filter(({ name }) => name.startsWith(text)).map(({ name }) => createCompletion(name)) ?? []
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
}),
|
|
220
|
-
(0, import_language2.syntaxHighlighting)(highlightStyles),
|
|
221
|
-
(0, import_autocomplete.autocompletion)({
|
|
222
|
-
aboveCursor: false,
|
|
223
|
-
defaultKeymap: true,
|
|
224
|
-
activateOnTyping: true,
|
|
225
|
-
closeOnBlur: !debug,
|
|
226
|
-
icons: false,
|
|
227
|
-
tooltipClass: () => (0, import_react_ui_theme.mx)("!-left-[1px] !top-[33px] !-m-0 border !border-t-0 [&>ul]:!min-w-[198px]", "[&>ul>li[aria-selected]]:!bg-accentSurface", "border-separator")
|
|
228
|
-
}),
|
|
229
|
-
import_view2.keymap.of([
|
|
230
|
-
{
|
|
231
|
-
key: "Tab",
|
|
232
|
-
run: (view) => {
|
|
233
|
-
return (0, import_autocomplete.completionStatus)(view.state) === "active" ? (0, import_autocomplete.acceptCompletion)(view) : (0, import_autocomplete.startCompletion)(view);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
])
|
|
237
|
-
];
|
|
238
|
-
};
|
|
239
|
-
var rangeExtension = ({ onInit, onStateChange }) => {
|
|
240
|
-
let view;
|
|
241
|
-
let activeRange;
|
|
242
|
-
const notifier = {
|
|
243
|
-
setRange: (range) => {
|
|
244
|
-
if (activeRange) {
|
|
245
|
-
view.dispatch(view.state.update({
|
|
246
|
-
changes: {
|
|
247
|
-
...activeRange,
|
|
248
|
-
insert: range.toString()
|
|
249
|
-
},
|
|
250
|
-
selection: {
|
|
251
|
-
anchor: activeRange.from + range.length
|
|
252
|
-
}
|
|
253
|
-
}));
|
|
254
|
-
}
|
|
255
|
-
view.focus();
|
|
256
|
-
}
|
|
257
|
-
};
|
|
258
|
-
return import_view2.ViewPlugin.fromClass(class {
|
|
259
|
-
constructor(_view) {
|
|
260
|
-
view = _view;
|
|
261
|
-
onInit?.(notifier);
|
|
262
|
-
}
|
|
263
|
-
update(view2) {
|
|
264
|
-
const { anchor } = view2.state.selection.ranges[0];
|
|
265
|
-
activeRange = void 0;
|
|
266
|
-
const language = view2.state.facet(languageFacet);
|
|
267
|
-
const { topNode } = language.parser.parse(view2.state.doc.toString());
|
|
268
|
-
visitTree(topNode, ({ type, from, to }) => {
|
|
269
|
-
if (from <= anchor && to >= anchor) {
|
|
270
|
-
switch (type.name) {
|
|
271
|
-
case "Function":
|
|
272
|
-
activeRange = {
|
|
273
|
-
from: to,
|
|
274
|
-
to
|
|
275
|
-
};
|
|
276
|
-
break;
|
|
277
|
-
case "CloseParen":
|
|
278
|
-
activeRange = {
|
|
279
|
-
from,
|
|
280
|
-
to: from
|
|
281
|
-
};
|
|
282
|
-
break;
|
|
283
|
-
case "RangeToken":
|
|
284
|
-
case "CellToken":
|
|
285
|
-
activeRange = {
|
|
286
|
-
from,
|
|
287
|
-
to
|
|
288
|
-
};
|
|
289
|
-
return true;
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
return false;
|
|
293
|
-
});
|
|
294
|
-
if (!activeRange && view2.state.doc.toString()[0] === "=") {
|
|
295
|
-
const str = view2.state.doc.sliceString(1);
|
|
296
|
-
if (import_compute2.RANGE_NOTATION.test(str)) {
|
|
297
|
-
activeRange = {
|
|
298
|
-
from: 1,
|
|
299
|
-
to: str.length + 1
|
|
300
|
-
};
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
onStateChange?.({
|
|
304
|
-
activeRange: activeRange ? view2.state.doc.sliceString(activeRange.from, activeRange.to) : void 0
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
});
|
|
308
|
-
};
|
|
309
|
-
var visitTree = (node, callback) => {
|
|
310
|
-
if (callback(node)) {
|
|
311
|
-
return true;
|
|
312
|
-
}
|
|
313
|
-
for (let child = node.firstChild; child !== null; child = child.nextSibling) {
|
|
314
|
-
if (visitTree(child, callback)) {
|
|
315
|
-
return true;
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
return false;
|
|
319
|
-
};
|
|
320
|
-
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx";
|
|
321
|
-
var SheetContext = /* @__PURE__ */ (0, import_react2.createContext)(void 0);
|
|
322
|
-
var useSheetContext = () => {
|
|
323
|
-
const context = (0, import_react2.useContext)(SheetContext);
|
|
324
|
-
(0, import_invariant2.invariant)(context, void 0, {
|
|
325
|
-
F: __dxlog_file,
|
|
326
|
-
L: 54,
|
|
327
|
-
S: void 0,
|
|
328
|
-
A: [
|
|
329
|
-
"context",
|
|
330
|
-
""
|
|
331
|
-
]
|
|
332
|
-
});
|
|
333
|
-
return context;
|
|
334
|
-
};
|
|
335
|
-
var SheetProviderImpl = ({ model, onInfo, ignoreAttention, children, __gridScope }) => {
|
|
336
|
-
const { id, editing, setEditing } = (0, import_react_ui_grid.useGridContext)("SheetProvider", __gridScope);
|
|
337
|
-
const [cursor, setCursorInternal] = (0, import_react2.useState)();
|
|
338
|
-
const [range, setRangeInternal] = (0, import_react2.useState)();
|
|
339
|
-
const [cursorFallbackRange, setCursorFallbackRange] = (0, import_react2.useState)();
|
|
340
|
-
const [activeRefs, setActiveRefs] = (0, import_react2.useState)("");
|
|
341
|
-
const setCursor = (0, import_react2.useCallback)((nextCursor) => {
|
|
342
|
-
setCursorInternal(nextCursor);
|
|
343
|
-
setCursorFallbackRange(range?.to ? range : nextCursor ? {
|
|
344
|
-
from: nextCursor,
|
|
345
|
-
to: nextCursor
|
|
346
|
-
} : void 0);
|
|
347
|
-
}, [
|
|
348
|
-
range
|
|
349
|
-
]);
|
|
350
|
-
const setRange = (0, import_react2.useCallback)((nextRange) => {
|
|
351
|
-
setRangeInternal(nextRange);
|
|
352
|
-
setCursorFallbackRange(nextRange?.to ? nextRange : cursor ? {
|
|
353
|
-
from: cursor,
|
|
354
|
-
to: cursor
|
|
355
|
-
} : void 0);
|
|
356
|
-
}, [
|
|
357
|
-
cursor
|
|
358
|
-
]);
|
|
359
|
-
return /* @__PURE__ */ import_react2.default.createElement(SheetContext.Provider, {
|
|
360
|
-
value: {
|
|
361
|
-
id,
|
|
362
|
-
model,
|
|
363
|
-
editing,
|
|
364
|
-
setEditing,
|
|
365
|
-
cursor,
|
|
366
|
-
setCursor,
|
|
367
|
-
range,
|
|
368
|
-
setRange,
|
|
369
|
-
cursorFallbackRange,
|
|
370
|
-
activeRefs,
|
|
371
|
-
setActiveRefs,
|
|
372
|
-
// TODO(burdon): Change to event.
|
|
373
|
-
onInfo,
|
|
374
|
-
ignoreAttention
|
|
375
|
-
}
|
|
376
|
-
}, children);
|
|
377
|
-
};
|
|
378
|
-
var SheetProvider = ({ children, graph, sheet, readonly, ignoreAttention, onInfo }) => {
|
|
379
|
-
const model = (0, import_chunk_TQOJ7DG2.useSheetModel)(graph, sheet, {
|
|
380
|
-
readonly
|
|
381
|
-
});
|
|
382
|
-
return !model ? null : /* @__PURE__ */ import_react2.default.createElement(import_react_ui_grid.Grid.Root, {
|
|
383
|
-
id: (0, import_echo.fullyQualifiedId)(sheet)
|
|
384
|
-
}, /* @__PURE__ */ import_react2.default.createElement(SheetProviderImpl, {
|
|
385
|
-
model,
|
|
386
|
-
onInfo,
|
|
387
|
-
ignoreAttention
|
|
388
|
-
}, children));
|
|
389
|
-
};
|
|
390
99
|
var RangeList = ({ sheet }) => {
|
|
391
|
-
const { t } = (0,
|
|
100
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_AUC5XQEN.SHEET_PLUGIN);
|
|
392
101
|
const handleSelectRange = (range) => {
|
|
393
102
|
};
|
|
394
|
-
const handleDeleteRange = (0,
|
|
103
|
+
const handleDeleteRange = (0, import_react2.useCallback)((range) => {
|
|
395
104
|
const index = sheet.ranges.findIndex((sheetRange) => sheetRange === range);
|
|
396
105
|
sheet.ranges.splice(index, 1);
|
|
397
106
|
}, [
|
|
398
107
|
sheet
|
|
399
108
|
]);
|
|
400
|
-
return /* @__PURE__ */
|
|
109
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement("h2", {
|
|
401
110
|
className: "p-2 text-sm font-semibold"
|
|
402
|
-
}, t("range list heading")), /* @__PURE__ */
|
|
111
|
+
}, t("range list heading")), /* @__PURE__ */ import_react2.default.createElement(import_react_ui_list.List.Root, {
|
|
403
112
|
items: sheet.ranges,
|
|
404
|
-
isItem: import_echo_schema.S.is(
|
|
405
|
-
}, ({ items: ranges }) => ranges.map((range, i) => /* @__PURE__ */
|
|
113
|
+
isItem: import_echo_schema.S.is(import_chunk_6BZ2TACG.Range)
|
|
114
|
+
}, ({ items: ranges }) => ranges.map((range, i) => /* @__PURE__ */ import_react2.default.createElement(import_react_ui_list.List.Item, {
|
|
406
115
|
key: i,
|
|
407
116
|
item: range,
|
|
408
117
|
classNames: [
|
|
409
118
|
"p-2",
|
|
410
|
-
|
|
119
|
+
import_react_ui_theme.ghostHover
|
|
411
120
|
]
|
|
412
|
-
}, /* @__PURE__ */
|
|
121
|
+
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui_list.List.ItemDragHandle, null), /* @__PURE__ */ import_react2.default.createElement(import_react_ui_list.List.ItemTitle, {
|
|
413
122
|
onClick: () => handleSelectRange(range)
|
|
414
123
|
}, t("range title", {
|
|
415
|
-
position: (0,
|
|
124
|
+
position: (0, import_compute.rangeToA1Notation)((0, import_chunk_6BZ2TACG.rangeFromIndex)(sheet, range.range)),
|
|
416
125
|
key: t(`range key ${range.key} label`),
|
|
417
126
|
value: t(`range value ${range.value} label`)
|
|
418
|
-
})), /* @__PURE__ */
|
|
127
|
+
})), /* @__PURE__ */ import_react2.default.createElement(import_react_ui_list.List.ItemDeleteButton, {
|
|
419
128
|
onClick: () => handleDeleteRange(range)
|
|
420
129
|
})))));
|
|
421
130
|
};
|
|
422
|
-
var SheetObjectSettings = ({ sheet }) => {
|
|
423
|
-
const { t } = (0, import_react_ui3.useTranslation)(import_meta.SPACE_PLUGIN);
|
|
424
|
-
return /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, /* @__PURE__ */ import_react8.default.createElement("div", {
|
|
425
|
-
role: "form",
|
|
426
|
-
className: "flex flex-col w-full p-2 gap-1"
|
|
427
|
-
}, /* @__PURE__ */ import_react8.default.createElement(import_react_ui3.Input.Root, null, /* @__PURE__ */ import_react8.default.createElement(import_react_ui3.Input.Label, null, t("name label")), /* @__PURE__ */ import_react8.default.createElement(import_react_ui3.Input.TextInput, {
|
|
428
|
-
placeholder: t("name placeholder"),
|
|
429
|
-
value: sheet.name ?? "",
|
|
430
|
-
onChange: (event) => {
|
|
431
|
-
sheet.name = event.target.value;
|
|
432
|
-
}
|
|
433
|
-
}))), /* @__PURE__ */ import_react8.default.createElement(RangeList, {
|
|
434
|
-
sheet
|
|
435
|
-
}));
|
|
436
|
-
};
|
|
437
|
-
var SheetContainer = (0, import_react6.lazy)(() => import("./SheetContainer-TP4GYXZB.cjs"));
|
|
438
131
|
var completeCellRangeToThreadCursor = (range) => {
|
|
439
132
|
return `${range.from.col},${range.from.row},${range.to.col},${range.to.row}`;
|
|
440
133
|
};
|
|
@@ -458,56 +151,63 @@ var parseThreadAnchorAsCellRange = (cursor) => {
|
|
|
458
151
|
};
|
|
459
152
|
var useUpdateFocusedCellOnThreadSelection = (grid) => {
|
|
460
153
|
const { model, setActiveRefs } = useSheetContext();
|
|
461
|
-
const scrollIntoViewResolver = (0,
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
154
|
+
const scrollIntoViewResolver = (0, import_react6.useMemo)(() => (0, import_app_framework2.createResolver)({
|
|
155
|
+
intent: import_app_framework2.LayoutAction.ScrollIntoView,
|
|
156
|
+
position: "hoist",
|
|
157
|
+
filter: (data) => {
|
|
158
|
+
if (!import_echo_schema2.S.is(import_app_framework2.LayoutAction.ScrollIntoView.fields.input)(data)) {
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
return data.subject === (0, import_echo2.fullyQualifiedId)(model.sheet) && !!data.options?.cursor;
|
|
162
|
+
},
|
|
163
|
+
resolve: ({ options: { cursor, ref } }) => {
|
|
164
|
+
setActiveRefs(ref);
|
|
165
|
+
const range = parseThreadAnchorAsCellRange(cursor);
|
|
166
|
+
range && grid?.setFocus({
|
|
167
|
+
...range.to,
|
|
168
|
+
plane: "grid"
|
|
169
|
+
}, true);
|
|
170
|
+
}
|
|
471
171
|
}), [
|
|
472
172
|
model.sheet,
|
|
473
173
|
setActiveRefs
|
|
474
174
|
]);
|
|
475
|
-
(0, import_app_framework2.useIntentResolver)(
|
|
175
|
+
(0, import_app_framework2.useIntentResolver)(import_chunk_AUC5XQEN.SHEET_PLUGIN, scrollIntoViewResolver);
|
|
476
176
|
};
|
|
477
177
|
var useSelectThreadOnCellFocus = () => {
|
|
478
178
|
const { model, cursor } = useSheetContext();
|
|
479
179
|
const { dispatchPromise: dispatch } = (0, import_app_framework2.useIntentDispatcher)();
|
|
480
|
-
const threads = (0,
|
|
180
|
+
const threads = (0, import_react6.useMemo)(() => model.sheet.threads?.filter((thread) => !!thread) ?? [], [
|
|
481
181
|
// TODO(thure): Surely we can find a better dependency for this…
|
|
482
182
|
JSON.stringify(model.sheet.threads)
|
|
483
183
|
]);
|
|
484
|
-
const selectClosestThread = (0,
|
|
184
|
+
const selectClosestThread = (0, import_react6.useCallback)((cellAddress) => {
|
|
485
185
|
if (!cellAddress || !threads) {
|
|
486
186
|
return;
|
|
487
187
|
}
|
|
488
188
|
const closestThread = threads?.find((ref) => {
|
|
489
189
|
if (ref.target?.anchor) {
|
|
490
190
|
const range = parseThreadAnchorAsCellRange(ref.target.anchor);
|
|
491
|
-
return range ? (0,
|
|
191
|
+
return range ? (0, import_compute4.inRange)(range, cellAddress) : false;
|
|
492
192
|
} else {
|
|
493
193
|
return false;
|
|
494
194
|
}
|
|
495
195
|
});
|
|
496
196
|
if (closestThread) {
|
|
497
197
|
void dispatch((0, import_app_framework2.createIntent)(import_types.ThreadAction.Select, {
|
|
498
|
-
current: (0,
|
|
198
|
+
current: (0, import_echo2.fullyQualifiedId)(closestThread)
|
|
499
199
|
}));
|
|
500
200
|
}
|
|
501
201
|
}, [
|
|
502
202
|
dispatch,
|
|
503
203
|
threads
|
|
504
204
|
]);
|
|
505
|
-
const debounced = (0,
|
|
506
|
-
return (0,
|
|
205
|
+
const debounced = (0, import_react6.useMemo)(() => {
|
|
206
|
+
return (0, import_async.debounce)((cellCoords) => requestAnimationFrame(() => selectClosestThread(cellCoords)), 50);
|
|
507
207
|
}, [
|
|
508
208
|
selectClosestThread
|
|
509
209
|
]);
|
|
510
|
-
(0,
|
|
210
|
+
(0, import_react6.useEffect)(() => {
|
|
511
211
|
if (!cursor) {
|
|
512
212
|
return;
|
|
513
213
|
}
|
|
@@ -549,15 +249,15 @@ var projectCellProps = (model, col, row) => {
|
|
|
549
249
|
row
|
|
550
250
|
};
|
|
551
251
|
const rawValue = model.getValue(address);
|
|
552
|
-
const ranges = model.sheet.ranges?.filter(({ range }) => (0,
|
|
252
|
+
const ranges = model.sheet.ranges?.filter(({ range }) => (0, import_compute3.inRange)((0, import_chunk_6BZ2TACG.rangeFromIndex)(model.sheet, range), address));
|
|
553
253
|
const threadRefs = model.sheet.threads?.filter((thread) => {
|
|
554
254
|
const range = thread.target?.anchor && parseThreadAnchorAsCellRange(thread.target.anchor);
|
|
555
|
-
return thread && range ? (0,
|
|
556
|
-
}).map((thread) => (0,
|
|
255
|
+
return thread && range ? (0, import_compute3.inRange)(range, address) : false;
|
|
256
|
+
}).map((thread) => (0, import_echo.fullyQualifiedId)(thread)).join(" ");
|
|
557
257
|
const description = model.getValueDescription(address);
|
|
558
258
|
const type = description?.type;
|
|
559
259
|
const format = description?.format;
|
|
560
|
-
const classNames = ranges?.map(
|
|
260
|
+
const classNames = ranges?.map(import_chunk_6BZ2TACG.cellClassNameForRange).reverse();
|
|
561
261
|
return {
|
|
562
262
|
value: (0, import_react_ui_form.parseValue)({
|
|
563
263
|
type,
|
|
@@ -567,7 +267,7 @@ var projectCellProps = (model, col, row) => {
|
|
|
567
267
|
className: (0, import_react_ui_theme2.mx)((0, import_react_ui_form.cellClassesForFieldType)({
|
|
568
268
|
type,
|
|
569
269
|
format
|
|
570
|
-
}), threadRefs &&
|
|
270
|
+
}), threadRefs && import_react_ui_grid2.commentedClassName, classNames),
|
|
571
271
|
dataRefs: threadRefs
|
|
572
272
|
};
|
|
573
273
|
};
|
|
@@ -589,12 +289,12 @@ var gridCellGetter = (model) => {
|
|
|
589
289
|
};
|
|
590
290
|
};
|
|
591
291
|
var rowLabelCell = (row) => ({
|
|
592
|
-
value: (0,
|
|
593
|
-
className: "text-end
|
|
292
|
+
value: (0, import_react_ui_grid2.rowToA1Notation)(row),
|
|
293
|
+
className: "text-end pie-1 text-subdued",
|
|
594
294
|
resizeHandle: "row"
|
|
595
295
|
});
|
|
596
296
|
var colLabelCell = (col) => ({
|
|
597
|
-
value: (0,
|
|
297
|
+
value: (0, import_react_ui_grid2.colToA1Notation)(col),
|
|
598
298
|
className: "text-subdued",
|
|
599
299
|
resizeHandle: "col"
|
|
600
300
|
});
|
|
@@ -626,10 +326,10 @@ var cellGetter = (model) => {
|
|
|
626
326
|
};
|
|
627
327
|
};
|
|
628
328
|
var useSheetModelDxGridProps = (dxGrid, model) => {
|
|
629
|
-
const [columns, setColumns] = (0,
|
|
630
|
-
const [rows, setRows] = (0,
|
|
631
|
-
(0,
|
|
632
|
-
const cellsAccessor = (0,
|
|
329
|
+
const [columns, setColumns] = (0, import_react5.useState)(createDxGridColumns(model));
|
|
330
|
+
const [rows, setRows] = (0, import_react5.useState)(createDxGridRows(model));
|
|
331
|
+
(0, import_react5.useEffect)(() => {
|
|
332
|
+
const cellsAccessor = (0, import_echo.createDocAccessor)(model.sheet, [
|
|
633
333
|
"cells"
|
|
634
334
|
]);
|
|
635
335
|
if (dxGrid) {
|
|
@@ -648,11 +348,11 @@ var useSheetModelDxGridProps = (dxGrid, model) => {
|
|
|
648
348
|
model,
|
|
649
349
|
dxGrid
|
|
650
350
|
]);
|
|
651
|
-
(0,
|
|
652
|
-
const columnMetaAccessor = (0,
|
|
351
|
+
(0, import_react5.useEffect)(() => {
|
|
352
|
+
const columnMetaAccessor = (0, import_echo.createDocAccessor)(model.sheet, [
|
|
653
353
|
"columnMeta"
|
|
654
354
|
]);
|
|
655
|
-
const rowMetaAccessor = (0,
|
|
355
|
+
const rowMetaAccessor = (0, import_echo.createDocAccessor)(model.sheet, [
|
|
656
356
|
"rowMeta"
|
|
657
357
|
]);
|
|
658
358
|
const handleColumnMetaUpdate = () => {
|
|
@@ -676,6 +376,76 @@ var useSheetModelDxGridProps = (dxGrid, model) => {
|
|
|
676
376
|
rows
|
|
677
377
|
};
|
|
678
378
|
};
|
|
379
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx";
|
|
380
|
+
var SheetContext = /* @__PURE__ */ (0, import_react7.createContext)(void 0);
|
|
381
|
+
var useSheetContext = () => {
|
|
382
|
+
const context = (0, import_react7.useContext)(SheetContext);
|
|
383
|
+
(0, import_invariant.invariant)(context, void 0, {
|
|
384
|
+
F: __dxlog_file,
|
|
385
|
+
L: 54,
|
|
386
|
+
S: void 0,
|
|
387
|
+
A: [
|
|
388
|
+
"context",
|
|
389
|
+
""
|
|
390
|
+
]
|
|
391
|
+
});
|
|
392
|
+
return context;
|
|
393
|
+
};
|
|
394
|
+
var SheetProviderImpl = ({ model, onInfo, ignoreAttention, children, __gridScope }) => {
|
|
395
|
+
const { id, editing, setEditing } = (0, import_react_ui_grid3.useGridContext)("SheetProvider", __gridScope);
|
|
396
|
+
const [cursor, setCursorInternal] = (0, import_react7.useState)();
|
|
397
|
+
const [range, setRangeInternal] = (0, import_react7.useState)();
|
|
398
|
+
const [cursorFallbackRange, setCursorFallbackRange] = (0, import_react7.useState)();
|
|
399
|
+
const [activeRefs, setActiveRefs] = (0, import_react7.useState)("");
|
|
400
|
+
const setCursor = (0, import_react7.useCallback)((nextCursor) => {
|
|
401
|
+
setCursorInternal(nextCursor);
|
|
402
|
+
setCursorFallbackRange(range?.to ? range : nextCursor ? {
|
|
403
|
+
from: nextCursor,
|
|
404
|
+
to: nextCursor
|
|
405
|
+
} : void 0);
|
|
406
|
+
}, [
|
|
407
|
+
range
|
|
408
|
+
]);
|
|
409
|
+
const setRange = (0, import_react7.useCallback)((nextRange) => {
|
|
410
|
+
setRangeInternal(nextRange);
|
|
411
|
+
setCursorFallbackRange(nextRange?.to ? nextRange : cursor ? {
|
|
412
|
+
from: cursor,
|
|
413
|
+
to: cursor
|
|
414
|
+
} : void 0);
|
|
415
|
+
}, [
|
|
416
|
+
cursor
|
|
417
|
+
]);
|
|
418
|
+
return /* @__PURE__ */ import_react7.default.createElement(SheetContext.Provider, {
|
|
419
|
+
value: {
|
|
420
|
+
id,
|
|
421
|
+
model,
|
|
422
|
+
editing,
|
|
423
|
+
setEditing,
|
|
424
|
+
cursor,
|
|
425
|
+
setCursor,
|
|
426
|
+
range,
|
|
427
|
+
setRange,
|
|
428
|
+
cursorFallbackRange,
|
|
429
|
+
activeRefs,
|
|
430
|
+
setActiveRefs,
|
|
431
|
+
// TODO(burdon): Change to event.
|
|
432
|
+
onInfo,
|
|
433
|
+
ignoreAttention
|
|
434
|
+
}
|
|
435
|
+
}, children);
|
|
436
|
+
};
|
|
437
|
+
var SheetProvider = ({ children, graph, sheet, readonly, ignoreAttention, onInfo }) => {
|
|
438
|
+
const model = (0, import_chunk_6BZ2TACG.useSheetModel)(graph, sheet, {
|
|
439
|
+
readonly
|
|
440
|
+
});
|
|
441
|
+
return !model ? null : /* @__PURE__ */ import_react7.default.createElement(import_react_ui_grid3.Grid.Root, {
|
|
442
|
+
id: (0, import_echo3.fullyQualifiedId)(sheet)
|
|
443
|
+
}, /* @__PURE__ */ import_react7.default.createElement(SheetProviderImpl, {
|
|
444
|
+
model,
|
|
445
|
+
onInfo,
|
|
446
|
+
ignoreAttention
|
|
447
|
+
}, children));
|
|
448
|
+
};
|
|
679
449
|
var inertPosition = {
|
|
680
450
|
plane: "grid",
|
|
681
451
|
col: 0,
|
|
@@ -702,11 +472,11 @@ var frozen = {
|
|
|
702
472
|
};
|
|
703
473
|
var sheetRowDefault = {
|
|
704
474
|
frozenRowsStart: {
|
|
705
|
-
size:
|
|
475
|
+
size: import_react_ui_grid.defaultSizeRow,
|
|
706
476
|
readonly: true
|
|
707
477
|
},
|
|
708
478
|
grid: {
|
|
709
|
-
size:
|
|
479
|
+
size: import_react_ui_grid.defaultSizeRow,
|
|
710
480
|
resizeable: true
|
|
711
481
|
}
|
|
712
482
|
};
|
|
@@ -721,16 +491,16 @@ var sheetColDefault = {
|
|
|
721
491
|
}
|
|
722
492
|
};
|
|
723
493
|
var GridSheet = () => {
|
|
724
|
-
const { t } = (0,
|
|
494
|
+
const { t } = (0, import_react_ui2.useTranslation)(import_chunk_AUC5XQEN.SHEET_PLUGIN);
|
|
725
495
|
const { id, model, editing, setCursor, setRange, cursor, cursorFallbackRange, activeRefs, ignoreAttention } = useSheetContext();
|
|
726
|
-
const [dxGrid, setDxGrid] = (0,
|
|
727
|
-
const [extraplanarFocus, setExtraplanarFocus] = (0,
|
|
496
|
+
const [dxGrid, setDxGrid] = (0, import_react4.useState)(null);
|
|
497
|
+
const [extraplanarFocus, setExtraplanarFocus] = (0, import_react4.useState)(null);
|
|
728
498
|
const { dispatchPromise: dispatch } = (0, import_app_framework.useIntentDispatcher)();
|
|
729
|
-
const rangeController = (0,
|
|
499
|
+
const rangeController = (0, import_react4.useRef)();
|
|
730
500
|
const { hasAttention } = (0, import_react_ui_attention.useAttention)(id);
|
|
731
|
-
const handleFocus = (0,
|
|
501
|
+
const handleFocus = (0, import_react4.useCallback)((event) => {
|
|
732
502
|
if (!editing) {
|
|
733
|
-
const cell = (0,
|
|
503
|
+
const cell = (0, import_react_ui_grid.closestCell)(event.target);
|
|
734
504
|
if (cell) {
|
|
735
505
|
if (cell.plane === "grid") {
|
|
736
506
|
setCursor({
|
|
@@ -748,7 +518,7 @@ var GridSheet = () => {
|
|
|
748
518
|
}, [
|
|
749
519
|
editing
|
|
750
520
|
]);
|
|
751
|
-
const handleClose = (0,
|
|
521
|
+
const handleClose = (0, import_react4.useCallback)((_value, event) => {
|
|
752
522
|
if (event) {
|
|
753
523
|
const { key, shift } = event;
|
|
754
524
|
const axis = [
|
|
@@ -771,15 +541,15 @@ var GridSheet = () => {
|
|
|
771
541
|
editing,
|
|
772
542
|
dxGrid
|
|
773
543
|
]);
|
|
774
|
-
const handleBlur = (0,
|
|
544
|
+
const handleBlur = (0, import_react4.useCallback)((value) => {
|
|
775
545
|
if (value !== void 0) {
|
|
776
|
-
model.setValue((0,
|
|
546
|
+
model.setValue((0, import_react_ui_grid.parseCellIndex)(editing.index), value);
|
|
777
547
|
}
|
|
778
548
|
}, [
|
|
779
549
|
model,
|
|
780
550
|
editing
|
|
781
551
|
]);
|
|
782
|
-
const handleAxisResize = (0,
|
|
552
|
+
const handleAxisResize = (0, import_react4.useCallback)(({ axis, size, index: numericIndex }) => {
|
|
783
553
|
if (axis === "row") {
|
|
784
554
|
const rowId = model.sheet.rows[parseInt(numericIndex)];
|
|
785
555
|
model.sheet.rowMeta[rowId] ??= {};
|
|
@@ -792,7 +562,7 @@ var GridSheet = () => {
|
|
|
792
562
|
}, [
|
|
793
563
|
model
|
|
794
564
|
]);
|
|
795
|
-
const handleSelect = (0,
|
|
565
|
+
const handleSelect = (0, import_react4.useCallback)(({ minCol, maxCol, minRow, maxRow }) => {
|
|
796
566
|
const range = {
|
|
797
567
|
from: {
|
|
798
568
|
col: minCol,
|
|
@@ -806,14 +576,14 @@ var GridSheet = () => {
|
|
|
806
576
|
};
|
|
807
577
|
}
|
|
808
578
|
if (editing) {
|
|
809
|
-
rangeController.current?.setRange((0,
|
|
579
|
+
rangeController.current?.setRange((0, import_compute2.rangeToA1Notation)(range));
|
|
810
580
|
} else {
|
|
811
581
|
setRange(range.to ? range : void 0);
|
|
812
582
|
}
|
|
813
583
|
}, [
|
|
814
584
|
editing
|
|
815
585
|
]);
|
|
816
|
-
const handleWheel = (0,
|
|
586
|
+
const handleWheel = (0, import_react4.useCallback)((event) => {
|
|
817
587
|
if (!ignoreAttention && !hasAttention) {
|
|
818
588
|
event.stopPropagation();
|
|
819
589
|
}
|
|
@@ -821,7 +591,7 @@ var GridSheet = () => {
|
|
|
821
591
|
hasAttention,
|
|
822
592
|
ignoreAttention
|
|
823
593
|
]);
|
|
824
|
-
const selectEntireAxis = (0,
|
|
594
|
+
const selectEntireAxis = (0, import_react4.useCallback)((pos) => {
|
|
825
595
|
switch (pos.plane) {
|
|
826
596
|
case "frozenRowsStart":
|
|
827
597
|
return dxGrid?.setSelection({
|
|
@@ -854,15 +624,15 @@ var GridSheet = () => {
|
|
|
854
624
|
dxGrid,
|
|
855
625
|
model.sheet
|
|
856
626
|
]);
|
|
857
|
-
const handleClick = (0,
|
|
858
|
-
const cell = (0,
|
|
627
|
+
const handleClick = (0, import_react4.useCallback)((event) => {
|
|
628
|
+
const cell = (0, import_react_ui_grid.closestCell)(event.target);
|
|
859
629
|
if (cell) {
|
|
860
630
|
selectEntireAxis(cell);
|
|
861
631
|
}
|
|
862
632
|
}, [
|
|
863
633
|
selectEntireAxis
|
|
864
634
|
]);
|
|
865
|
-
const handleKeyDown = (0,
|
|
635
|
+
const handleKeyDown = (0, import_react4.useCallback)((event) => {
|
|
866
636
|
switch (event.key) {
|
|
867
637
|
case "Backspace":
|
|
868
638
|
case "Delete":
|
|
@@ -909,28 +679,28 @@ var GridSheet = () => {
|
|
|
909
679
|
extraplanarFocus,
|
|
910
680
|
selectEntireAxis
|
|
911
681
|
]);
|
|
912
|
-
const contextMenuAnchorRef = (0,
|
|
913
|
-
const [contextMenuOpen, setContextMenuOpen] = (0,
|
|
682
|
+
const contextMenuAnchorRef = (0, import_react4.useRef)(null);
|
|
683
|
+
const [contextMenuOpen, setContextMenuOpen] = (0, import_react4.useState)(null);
|
|
914
684
|
const contextMenuAxis = contextMenuOpen?.plane.startsWith("frozenRows") ? "col" : "row";
|
|
915
|
-
const handleContextMenu = (0,
|
|
916
|
-
const cell = (0,
|
|
685
|
+
const handleContextMenu = (0, import_react4.useCallback)((event) => {
|
|
686
|
+
const cell = (0, import_react_ui_grid.closestCell)(event.target);
|
|
917
687
|
if (cell && cell.plane.startsWith("frozen")) {
|
|
918
688
|
event.preventDefault();
|
|
919
689
|
contextMenuAnchorRef.current = event.target;
|
|
920
690
|
setContextMenuOpen(cell);
|
|
921
691
|
}
|
|
922
692
|
}, []);
|
|
923
|
-
const handleAxisMenuAction = (0,
|
|
693
|
+
const handleAxisMenuAction = (0, import_react4.useCallback)((operation) => {
|
|
924
694
|
switch (operation) {
|
|
925
695
|
case "insert-before":
|
|
926
696
|
case "insert-after":
|
|
927
|
-
return dispatch((0, import_app_framework.createIntent)(
|
|
697
|
+
return dispatch((0, import_app_framework.createIntent)(import_chunk_6BZ2TACG.SheetAction.InsertAxis, {
|
|
928
698
|
model,
|
|
929
699
|
axis: contextMenuAxis,
|
|
930
700
|
index: contextMenuOpen[contextMenuAxis] + (operation === "insert-before" ? 0 : 1)
|
|
931
701
|
}));
|
|
932
702
|
case "drop":
|
|
933
|
-
return dispatch((0, import_app_framework.createIntent)(
|
|
703
|
+
return dispatch((0, import_app_framework.createIntent)(import_chunk_6BZ2TACG.SheetAction.DropAxis, {
|
|
934
704
|
model,
|
|
935
705
|
axis: contextMenuAxis,
|
|
936
706
|
axisIndex: model.sheet[contextMenuAxis === "row" ? "rows" : "columns"][contextMenuOpen[contextMenuAxis]]
|
|
@@ -943,17 +713,17 @@ var GridSheet = () => {
|
|
|
943
713
|
dispatch
|
|
944
714
|
]);
|
|
945
715
|
const { columns, rows } = useSheetModelDxGridProps(dxGrid, model);
|
|
946
|
-
const extension = (0,
|
|
947
|
-
(0,
|
|
716
|
+
const extension = (0, import_react4.useMemo)(() => [
|
|
717
|
+
(0, import_react_ui_grid.editorKeys)({
|
|
948
718
|
onClose: handleClose,
|
|
949
719
|
...editing?.initialContent && {
|
|
950
720
|
onNav: handleClose
|
|
951
721
|
}
|
|
952
722
|
}),
|
|
953
|
-
sheetExtension({
|
|
723
|
+
(0, import_chunk_P4KSGZSS.sheetExtension)({
|
|
954
724
|
functions: model.graph.getFunctions()
|
|
955
725
|
}),
|
|
956
|
-
rangeExtension({
|
|
726
|
+
(0, import_chunk_P4KSGZSS.rangeExtension)({
|
|
957
727
|
onInit: (fn) => rangeController.current = fn,
|
|
958
728
|
onStateChange: (state) => {
|
|
959
729
|
if (dxGrid) {
|
|
@@ -966,24 +736,24 @@ var GridSheet = () => {
|
|
|
966
736
|
handleClose,
|
|
967
737
|
editing
|
|
968
738
|
]);
|
|
969
|
-
const getCellContent = (0,
|
|
970
|
-
return model.getCellText((0,
|
|
739
|
+
const getCellContent = (0, import_react4.useCallback)((index) => {
|
|
740
|
+
return model.getCellText((0, import_react_ui_grid.parseCellIndex)(index));
|
|
971
741
|
}, [
|
|
972
742
|
model
|
|
973
743
|
]);
|
|
974
744
|
useUpdateFocusedCellOnThreadSelection(dxGrid);
|
|
975
745
|
useSelectThreadOnCellFocus();
|
|
976
|
-
return /* @__PURE__ */
|
|
746
|
+
return /* @__PURE__ */ import_react4.default.createElement("div", {
|
|
977
747
|
role: "none",
|
|
978
748
|
className: "relative min-bs-0"
|
|
979
|
-
}, /* @__PURE__ */
|
|
749
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui_grid.GridCellEditor, {
|
|
980
750
|
getCellContent,
|
|
981
751
|
extension,
|
|
982
752
|
onBlur: handleBlur
|
|
983
|
-
}), /* @__PURE__ */
|
|
753
|
+
}), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_grid.Grid.Content, {
|
|
984
754
|
initialCells,
|
|
985
|
-
limitColumns:
|
|
986
|
-
limitRows:
|
|
755
|
+
limitColumns: import_chunk_6BZ2TACG.DEFAULT_COLS,
|
|
756
|
+
limitRows: import_chunk_6BZ2TACG.DEFAULT_ROWS,
|
|
987
757
|
columns,
|
|
988
758
|
rows,
|
|
989
759
|
onAxisResize: handleAxisResize,
|
|
@@ -1000,46 +770,46 @@ var GridSheet = () => {
|
|
|
1000
770
|
className: "[--dx-grid-base:var(--surface-bg)] [&_.dx-grid]:border-bs [&_.dx-grid]:absolute [&_.dx-grid]:inset-0 [&_.dx-grid]:border-separator",
|
|
1001
771
|
activeRefs,
|
|
1002
772
|
ref: setDxGrid
|
|
1003
|
-
}), /* @__PURE__ */
|
|
773
|
+
}), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Root, {
|
|
1004
774
|
modal: false,
|
|
1005
775
|
open: !!contextMenuOpen,
|
|
1006
776
|
onOpenChange: (nextOpen) => setContextMenuOpen(nextOpen ? inertPosition : null)
|
|
1007
|
-
}, /* @__PURE__ */
|
|
777
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.VirtualTrigger, {
|
|
1008
778
|
virtualRef: contextMenuAnchorRef
|
|
1009
|
-
}), /* @__PURE__ */
|
|
779
|
+
}), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Content, {
|
|
1010
780
|
side: contextMenuAxis === "col" ? "bottom" : "right",
|
|
1011
781
|
sideOffset: 4,
|
|
1012
782
|
collisionPadding: 8
|
|
1013
|
-
}, /* @__PURE__ */
|
|
783
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Viewport, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Item, {
|
|
1014
784
|
onClick: () => handleAxisMenuAction("insert-before"),
|
|
1015
785
|
"data-testid": `grid.${contextMenuAxis}.insert-before`
|
|
1016
|
-
}, /* @__PURE__ */
|
|
786
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Icon, {
|
|
1017
787
|
size: 5,
|
|
1018
788
|
icon: contextMenuAxis === "col" ? "ph--columns-plus-left--regular" : "ph--rows-plus-top--regular"
|
|
1019
|
-
}), /* @__PURE__ */
|
|
789
|
+
}), /* @__PURE__ */ import_react4.default.createElement("span", null, t(`add ${contextMenuAxis} before label`))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Item, {
|
|
1020
790
|
onClick: () => handleAxisMenuAction("insert-after"),
|
|
1021
791
|
"data-testid": `grid.${contextMenuAxis}.insert-after`
|
|
1022
|
-
}, /* @__PURE__ */
|
|
792
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Icon, {
|
|
1023
793
|
size: 5,
|
|
1024
794
|
icon: contextMenuAxis === "col" ? "ph--columns-plus-right--regular" : "ph--rows-plus-bottom--regular"
|
|
1025
|
-
}), /* @__PURE__ */
|
|
795
|
+
}), /* @__PURE__ */ import_react4.default.createElement("span", null, t(`add ${contextMenuAxis} after label`))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Item, {
|
|
1026
796
|
onClick: () => handleAxisMenuAction("drop"),
|
|
1027
797
|
"data-testid": `grid.${contextMenuAxis}.drop`
|
|
1028
|
-
}, /* @__PURE__ */
|
|
798
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Icon, {
|
|
1029
799
|
size: 5,
|
|
1030
800
|
icon: "ph--backspace--regular"
|
|
1031
|
-
}), /* @__PURE__ */
|
|
801
|
+
}), /* @__PURE__ */ import_react4.default.createElement("span", null, t(`delete ${contextMenuAxis} label`)))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Arrow, null))));
|
|
1032
802
|
};
|
|
803
|
+
var SheetContainer = (0, import_react3.lazy)(() => import("./SheetContainer-63QTAGQQ.cjs"));
|
|
1033
804
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1034
805
|
0 && (module.exports = {
|
|
1035
806
|
ComputeGraphContextProvider,
|
|
1036
807
|
GridSheet,
|
|
808
|
+
RangeList,
|
|
1037
809
|
SheetContainer,
|
|
1038
|
-
SheetObjectSettings,
|
|
1039
810
|
SheetProvider,
|
|
1040
811
|
completeCellRangeToThreadCursor,
|
|
1041
|
-
computeGraphFacet,
|
|
1042
812
|
useComputeGraph,
|
|
1043
813
|
useSheetContext
|
|
1044
814
|
});
|
|
1045
|
-
//# sourceMappingURL=chunk-
|
|
815
|
+
//# sourceMappingURL=chunk-K4VMHOR2.cjs.map
|