@dxos/plugin-sheet 0.7.5-main.9d26e3a → 0.7.5-main.9d2a38b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/SheetContainer-CM4CO3DC.mjs +370 -0
- package/dist/lib/browser/SheetContainer-CM4CO3DC.mjs.map +7 -0
- package/dist/lib/browser/chunk-FOO6NGBM.mjs +229 -0
- package/dist/lib/browser/chunk-FOO6NGBM.mjs.map +7 -0
- package/dist/lib/browser/{chunk-A374JPWV.mjs → chunk-H23JW3DX.mjs} +139 -381
- package/dist/lib/browser/chunk-H23JW3DX.mjs.map +7 -0
- package/dist/lib/browser/{chunk-RABELMEQ.mjs → chunk-K6EUYKWT.mjs} +3 -3
- package/dist/lib/browser/chunk-K6EUYKWT.mjs.map +7 -0
- package/dist/lib/browser/chunk-PW25VUP6.mjs +15 -0
- package/dist/lib/browser/chunk-PW25VUP6.mjs.map +7 -0
- package/dist/lib/browser/{chunk-Q4XS4YWF.mjs → chunk-T3IVPMRX.mjs} +2 -2
- package/dist/lib/browser/chunk-T3IVPMRX.mjs.map +7 -0
- package/dist/lib/browser/compute-graph-registry-XH6B2SWG.mjs +27 -0
- package/dist/lib/browser/compute-graph-registry-XH6B2SWG.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +86 -218
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/intent-resolver-Q7DTHAM5.mjs +47 -0
- package/dist/lib/browser/intent-resolver-Q7DTHAM5.mjs.map +7 -0
- package/dist/lib/browser/markdown-IKG5FNCA.mjs +26 -0
- package/dist/lib/browser/markdown-IKG5FNCA.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-context-JG43577H.mjs +28 -0
- package/dist/lib/browser/react-context-JG43577H.mjs.map +7 -0
- package/dist/lib/browser/react-surface-URRC3AFC.mjs +43 -0
- package/dist/lib/browser/react-surface-URRC3AFC.mjs.map +7 -0
- package/dist/lib/browser/thread-YX6KBQNQ.mjs +17 -0
- package/dist/lib/browser/thread-YX6KBQNQ.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node/SheetContainer-TJ3JQLWM.cjs +364 -0
- package/dist/lib/node/SheetContainer-TJ3JQLWM.cjs.map +7 -0
- package/dist/lib/node/{chunk-TQOJ7DG2.cjs → chunk-E3RXOEL6.cjs} +6 -6
- package/dist/lib/node/chunk-E3RXOEL6.cjs.map +7 -0
- package/dist/lib/node/{meta.cjs → chunk-FU5K66DS.cjs} +12 -8
- package/dist/lib/node/chunk-FU5K66DS.cjs.map +7 -0
- package/dist/lib/node/{chunk-2ZVZI2KJ.cjs → chunk-NLDXUFDG.cjs} +7 -7
- package/dist/lib/node/chunk-NLDXUFDG.cjs.map +7 -0
- package/dist/lib/node/chunk-P4KSGZSS.cjs +251 -0
- package/dist/lib/node/chunk-P4KSGZSS.cjs.map +7 -0
- package/dist/lib/node/{chunk-FDEQ2PGJ.cjs → chunk-ZPWW4LPY.cjs} +181 -419
- package/dist/lib/node/chunk-ZPWW4LPY.cjs.map +7 -0
- package/dist/lib/node/compute-graph-registry-ORGTIE5M.cjs +53 -0
- package/dist/lib/node/compute-graph-registry-ORGTIE5M.cjs.map +7 -0
- package/dist/lib/node/index.cjs +87 -215
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/intent-resolver-ZUDJJUFG.cjs +60 -0
- package/dist/lib/node/intent-resolver-ZUDJJUFG.cjs.map +7 -0
- package/dist/lib/node/markdown-EUUL3Q36.cjs +40 -0
- package/dist/lib/node/markdown-EUUL3Q36.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/react-context-OOH5QFE2.cjs +50 -0
- package/dist/lib/node/react-context-OOH5QFE2.cjs.map +7 -0
- package/dist/lib/node/react-surface-IQN5JKSS.cjs +64 -0
- package/dist/lib/node/react-surface-IQN5JKSS.cjs.map +7 -0
- package/dist/lib/node/thread-VBPS23P2.cjs +32 -0
- package/dist/lib/node/thread-VBPS23P2.cjs.map +7 -0
- package/dist/lib/node/types/index.cjs +30 -30
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/SheetContainer-QEEFORIC.mjs +371 -0
- package/dist/lib/node-esm/SheetContainer-QEEFORIC.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-BM2Q3FFC.mjs → chunk-FMOVRTS4.mjs} +3 -3
- package/dist/lib/node-esm/chunk-FMOVRTS4.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-KCXK5UM6.mjs +16 -0
- package/dist/lib/node-esm/chunk-KCXK5UM6.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-NYYIDVR7.mjs → chunk-NSVUOAI6.mjs} +2 -2
- package/dist/lib/node-esm/chunk-NSVUOAI6.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-L5PQHVTX.mjs → chunk-OXD6RBFF.mjs} +139 -381
- package/dist/lib/node-esm/chunk-OXD6RBFF.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-PTOI45NK.mjs +231 -0
- package/dist/lib/node-esm/chunk-PTOI45NK.mjs.map +7 -0
- package/dist/lib/node-esm/compute-graph-registry-JH2FRHLD.mjs +28 -0
- package/dist/lib/node-esm/compute-graph-registry-JH2FRHLD.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +86 -218
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/intent-resolver-IF64RN7B.mjs +48 -0
- package/dist/lib/node-esm/intent-resolver-IF64RN7B.mjs.map +7 -0
- package/dist/lib/node-esm/markdown-D2ZMN7LR.mjs +27 -0
- package/dist/lib/node-esm/markdown-D2ZMN7LR.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-context-CJVSLO74.mjs +29 -0
- package/dist/lib/node-esm/react-context-CJVSLO74.mjs.map +7 -0
- package/dist/lib/node-esm/react-surface-XJIX5G3I.mjs +44 -0
- package/dist/lib/node-esm/react-surface-XJIX5G3I.mjs.map +7 -0
- package/dist/lib/node-esm/thread-HSJD3SR6.mjs +18 -0
- package/dist/lib/node-esm/thread-HSJD3SR6.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/SheetPlugin.d.ts +1 -3
- package/dist/types/src/SheetPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +5 -0
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
- package/dist/types/src/capabilities/compute-graph-registry.d.ts +4 -0
- package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +17 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/intent-resolver.d.ts +4 -0
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/markdown.d.ts +6 -0
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-context.d.ts +8 -0
- package/dist/types/src/capabilities/react-context.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +4 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/thread.d.ts +6 -0
- package/dist/types/src/capabilities/thread.d.ts.map +1 -0
- package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +7 -0
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +6 -0
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/align.d.ts +28 -0
- package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/comment.d.ts +23 -0
- package/dist/types/src/components/SheetToolbar/comment.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/index.d.ts +2 -0
- package/dist/types/src/components/SheetToolbar/index.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/style.d.ts +26 -0
- package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/useToolbarAction.d.ts +8 -0
- package/dist/types/src/components/SheetToolbar/useToolbarAction.d.ts.map +1 -0
- package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts +6 -0
- package/dist/types/src/components/SheetToolbar/useToolbarState.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +1 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +1 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/testing/testing.d.ts +1 -1
- package/dist/types/src/testing/testing.d.ts.map +1 -1
- package/dist/types/src/types/sheet-range-types.d.ts +1 -1
- package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +0 -11
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +44 -51
- package/src/SheetPlugin.tsx +68 -103
- package/src/capabilities/capabilities.ts +14 -0
- package/src/capabilities/compute-graph-registry.ts +25 -0
- package/src/capabilities/index.ts +14 -0
- package/src/capabilities/intent-resolver.ts +29 -0
- package/src/capabilities/markdown.ts +22 -0
- package/src/capabilities/react-context.tsx +20 -0
- package/src/capabilities/react-surface.tsx +30 -0
- package/src/capabilities/thread.ts +14 -0
- package/src/components/GridSheet/GridSheet.stories.tsx +2 -0
- package/src/components/SheetContainer/SheetContainer.stories.tsx +25 -22
- package/src/components/SheetContainer/SheetContainer.tsx +3 -8
- package/src/components/{Toolbar/Toolbar.stories.tsx → SheetToolbar/SheetToolbar.stories.tsx} +4 -8
- package/src/components/SheetToolbar/SheetToolbar.tsx +48 -0
- package/src/components/SheetToolbar/align.ts +68 -0
- package/src/components/SheetToolbar/comment.ts +56 -0
- package/src/components/{Toolbar → SheetToolbar}/index.ts +1 -1
- package/src/components/SheetToolbar/style.ts +72 -0
- package/src/components/SheetToolbar/useToolbarAction.ts +87 -0
- package/src/components/SheetToolbar/useToolbarState.ts +17 -0
- package/src/components/index.ts +0 -1
- package/src/index.ts +2 -5
- package/src/meta.ts +1 -1
- package/src/types/sheet-range-types.ts +1 -1
- package/src/types/types.ts +0 -26
- package/dist/lib/browser/SheetContainer-S4NCLUYL.mjs +0 -290
- package/dist/lib/browser/SheetContainer-S4NCLUYL.mjs.map +0 -7
- package/dist/lib/browser/chunk-A374JPWV.mjs.map +0 -7
- package/dist/lib/browser/chunk-Q4XS4YWF.mjs.map +0 -7
- package/dist/lib/browser/chunk-RABELMEQ.mjs.map +0 -7
- package/dist/lib/browser/meta.mjs +0 -9
- package/dist/lib/browser/meta.mjs.map +0 -7
- package/dist/lib/node/SheetContainer-TP4GYXZB.cjs +0 -296
- package/dist/lib/node/SheetContainer-TP4GYXZB.cjs.map +0 -7
- package/dist/lib/node/chunk-2ZVZI2KJ.cjs.map +0 -7
- package/dist/lib/node/chunk-FDEQ2PGJ.cjs.map +0 -7
- package/dist/lib/node/chunk-TQOJ7DG2.cjs.map +0 -7
- package/dist/lib/node/meta.cjs.map +0 -7
- package/dist/lib/node-esm/SheetContainer-YB3JBVPZ.mjs +0 -291
- package/dist/lib/node-esm/SheetContainer-YB3JBVPZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-BM2Q3FFC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-L5PQHVTX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NYYIDVR7.mjs.map +0 -7
- package/dist/lib/node-esm/meta.mjs +0 -10
- package/dist/lib/node-esm/meta.mjs.map +0 -7
- package/dist/types/src/components/SheetObjectSettings.d.ts +0 -7
- package/dist/types/src/components/SheetObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/Toolbar/Toolbar.d.ts +0 -48
- package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +0 -1
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +0 -7
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +0 -1
- package/dist/types/src/components/Toolbar/index.d.ts +0 -2
- package/dist/types/src/components/Toolbar/index.d.ts.map +0 -1
- package/src/components/SheetObjectSettings.tsx +0 -38
- package/src/components/Toolbar/Toolbar.tsx +0 -344
|
@@ -26,71 +26,53 @@ 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_ZPWW4LPY_exports = {};
|
|
30
|
+
__export(chunk_ZPWW4LPY_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_ZPWW4LPY_exports);
|
|
41
|
+
var import_chunk_E3RXOEL6 = require("./chunk-E3RXOEL6.cjs");
|
|
42
|
+
var import_chunk_P4KSGZSS = require("./chunk-P4KSGZSS.cjs");
|
|
43
|
+
var import_chunk_NLDXUFDG = require("./chunk-NLDXUFDG.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");
|
|
82
70
|
var import_types = require("@dxos/plugin-thread/types");
|
|
83
|
-
var
|
|
84
|
-
var import_react6 = require("react");
|
|
71
|
+
var import_echo2 = require("@dxos/react-client/echo");
|
|
85
72
|
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");
|
|
73
|
+
var import_invariant = require("@dxos/invariant");
|
|
74
|
+
var import_echo3 = require("@dxos/react-client/echo");
|
|
75
|
+
var import_react_ui_grid3 = require("@dxos/react-ui-grid");
|
|
94
76
|
var ComputeGraphContext = /* @__PURE__ */ (0, import_react.createContext)(void 0);
|
|
95
77
|
var ComputeGraphContextProvider = ({ registry, children }) => {
|
|
96
78
|
return /* @__PURE__ */ import_react.default.createElement(ComputeGraphContext.Provider, {
|
|
@@ -113,328 +95,38 @@ var useComputeGraph = (space) => {
|
|
|
113
95
|
]);
|
|
114
96
|
return graph;
|
|
115
97
|
};
|
|
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
98
|
var RangeList = ({ sheet }) => {
|
|
391
|
-
const { t } = (0,
|
|
99
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_NLDXUFDG.SHEET_PLUGIN);
|
|
392
100
|
const handleSelectRange = (range) => {
|
|
393
101
|
};
|
|
394
|
-
const handleDeleteRange = (0,
|
|
102
|
+
const handleDeleteRange = (0, import_react2.useCallback)((range) => {
|
|
395
103
|
const index = sheet.ranges.findIndex((sheetRange) => sheetRange === range);
|
|
396
104
|
sheet.ranges.splice(index, 1);
|
|
397
105
|
}, [
|
|
398
106
|
sheet
|
|
399
107
|
]);
|
|
400
|
-
return /* @__PURE__ */
|
|
108
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement("h2", {
|
|
401
109
|
className: "p-2 text-sm font-semibold"
|
|
402
|
-
}, t("range list heading")), /* @__PURE__ */
|
|
110
|
+
}, t("range list heading")), /* @__PURE__ */ import_react2.default.createElement(import_react_ui_list.List.Root, {
|
|
403
111
|
items: sheet.ranges,
|
|
404
|
-
isItem: import_echo_schema.S.is(
|
|
405
|
-
}, ({ items: ranges }) => ranges.map((range, i) => /* @__PURE__ */
|
|
112
|
+
isItem: import_echo_schema.S.is(import_chunk_E3RXOEL6.Range)
|
|
113
|
+
}, ({ items: ranges }) => ranges.map((range, i) => /* @__PURE__ */ import_react2.default.createElement(import_react_ui_list.List.Item, {
|
|
406
114
|
key: i,
|
|
407
115
|
item: range,
|
|
408
116
|
classNames: [
|
|
409
117
|
"p-2",
|
|
410
|
-
|
|
118
|
+
import_react_ui_theme.ghostHover
|
|
411
119
|
]
|
|
412
|
-
}, /* @__PURE__ */
|
|
120
|
+
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui_list.List.ItemDragHandle, null), /* @__PURE__ */ import_react2.default.createElement(import_react_ui_list.List.ItemTitle, {
|
|
413
121
|
onClick: () => handleSelectRange(range)
|
|
414
122
|
}, t("range title", {
|
|
415
|
-
position: (0,
|
|
123
|
+
position: (0, import_compute.rangeToA1Notation)((0, import_chunk_E3RXOEL6.rangeFromIndex)(sheet, range.range)),
|
|
416
124
|
key: t(`range key ${range.key} label`),
|
|
417
125
|
value: t(`range value ${range.value} label`)
|
|
418
|
-
})), /* @__PURE__ */
|
|
126
|
+
})), /* @__PURE__ */ import_react2.default.createElement(import_react_ui_list.List.ItemDeleteButton, {
|
|
419
127
|
onClick: () => handleDeleteRange(range)
|
|
420
128
|
})))));
|
|
421
129
|
};
|
|
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
130
|
var completeCellRangeToThreadCursor = (range) => {
|
|
439
131
|
return `${range.from.col},${range.from.row},${range.to.col},${range.to.row}`;
|
|
440
132
|
};
|
|
@@ -458,7 +150,7 @@ var parseThreadAnchorAsCellRange = (cursor) => {
|
|
|
458
150
|
};
|
|
459
151
|
var useUpdateFocusedCellOnThreadSelection = (grid) => {
|
|
460
152
|
const { model, setActiveRefs } = useSheetContext();
|
|
461
|
-
const scrollIntoViewResolver = (0,
|
|
153
|
+
const scrollIntoViewResolver = (0, import_react6.useMemo)(() => (0, import_app_framework2.createResolver)(import_app_framework2.LayoutAction.ScrollIntoView, ({ cursor, ref }) => {
|
|
462
154
|
setActiveRefs(ref);
|
|
463
155
|
const range = parseThreadAnchorAsCellRange(cursor);
|
|
464
156
|
range && grid?.setFocus({
|
|
@@ -467,47 +159,47 @@ var useUpdateFocusedCellOnThreadSelection = (grid) => {
|
|
|
467
159
|
}, true);
|
|
468
160
|
}, {
|
|
469
161
|
disposition: "hoist",
|
|
470
|
-
filter: (data) => data.id === (0,
|
|
162
|
+
filter: (data) => data.id === (0, import_echo2.fullyQualifiedId)(model.sheet) && !!data.cursor
|
|
471
163
|
}), [
|
|
472
164
|
model.sheet,
|
|
473
165
|
setActiveRefs
|
|
474
166
|
]);
|
|
475
|
-
(0, import_app_framework2.useIntentResolver)(
|
|
167
|
+
(0, import_app_framework2.useIntentResolver)(import_chunk_NLDXUFDG.SHEET_PLUGIN, scrollIntoViewResolver);
|
|
476
168
|
};
|
|
477
169
|
var useSelectThreadOnCellFocus = () => {
|
|
478
170
|
const { model, cursor } = useSheetContext();
|
|
479
171
|
const { dispatchPromise: dispatch } = (0, import_app_framework2.useIntentDispatcher)();
|
|
480
|
-
const threads = (0,
|
|
172
|
+
const threads = (0, import_react6.useMemo)(() => model.sheet.threads?.filter((thread) => !!thread) ?? [], [
|
|
481
173
|
// TODO(thure): Surely we can find a better dependency for this…
|
|
482
174
|
JSON.stringify(model.sheet.threads)
|
|
483
175
|
]);
|
|
484
|
-
const selectClosestThread = (0,
|
|
176
|
+
const selectClosestThread = (0, import_react6.useCallback)((cellAddress) => {
|
|
485
177
|
if (!cellAddress || !threads) {
|
|
486
178
|
return;
|
|
487
179
|
}
|
|
488
180
|
const closestThread = threads?.find((ref) => {
|
|
489
181
|
if (ref.target?.anchor) {
|
|
490
182
|
const range = parseThreadAnchorAsCellRange(ref.target.anchor);
|
|
491
|
-
return range ? (0,
|
|
183
|
+
return range ? (0, import_compute4.inRange)(range, cellAddress) : false;
|
|
492
184
|
} else {
|
|
493
185
|
return false;
|
|
494
186
|
}
|
|
495
187
|
});
|
|
496
188
|
if (closestThread) {
|
|
497
189
|
void dispatch((0, import_app_framework2.createIntent)(import_types.ThreadAction.Select, {
|
|
498
|
-
current: (0,
|
|
190
|
+
current: (0, import_echo2.fullyQualifiedId)(closestThread)
|
|
499
191
|
}));
|
|
500
192
|
}
|
|
501
193
|
}, [
|
|
502
194
|
dispatch,
|
|
503
195
|
threads
|
|
504
196
|
]);
|
|
505
|
-
const debounced = (0,
|
|
506
|
-
return (0,
|
|
197
|
+
const debounced = (0, import_react6.useMemo)(() => {
|
|
198
|
+
return (0, import_async.debounce)((cellCoords) => requestAnimationFrame(() => selectClosestThread(cellCoords)), 50);
|
|
507
199
|
}, [
|
|
508
200
|
selectClosestThread
|
|
509
201
|
]);
|
|
510
|
-
(0,
|
|
202
|
+
(0, import_react6.useEffect)(() => {
|
|
511
203
|
if (!cursor) {
|
|
512
204
|
return;
|
|
513
205
|
}
|
|
@@ -549,15 +241,15 @@ var projectCellProps = (model, col, row) => {
|
|
|
549
241
|
row
|
|
550
242
|
};
|
|
551
243
|
const rawValue = model.getValue(address);
|
|
552
|
-
const ranges = model.sheet.ranges?.filter(({ range }) => (0,
|
|
244
|
+
const ranges = model.sheet.ranges?.filter(({ range }) => (0, import_compute3.inRange)((0, import_chunk_E3RXOEL6.rangeFromIndex)(model.sheet, range), address));
|
|
553
245
|
const threadRefs = model.sheet.threads?.filter((thread) => {
|
|
554
246
|
const range = thread.target?.anchor && parseThreadAnchorAsCellRange(thread.target.anchor);
|
|
555
|
-
return thread && range ? (0,
|
|
556
|
-
}).map((thread) => (0,
|
|
247
|
+
return thread && range ? (0, import_compute3.inRange)(range, address) : false;
|
|
248
|
+
}).map((thread) => (0, import_echo.fullyQualifiedId)(thread)).join(" ");
|
|
557
249
|
const description = model.getValueDescription(address);
|
|
558
250
|
const type = description?.type;
|
|
559
251
|
const format = description?.format;
|
|
560
|
-
const classNames = ranges?.map(
|
|
252
|
+
const classNames = ranges?.map(import_chunk_E3RXOEL6.cellClassNameForRange).reverse();
|
|
561
253
|
return {
|
|
562
254
|
value: (0, import_react_ui_form.parseValue)({
|
|
563
255
|
type,
|
|
@@ -567,7 +259,7 @@ var projectCellProps = (model, col, row) => {
|
|
|
567
259
|
className: (0, import_react_ui_theme2.mx)((0, import_react_ui_form.cellClassesForFieldType)({
|
|
568
260
|
type,
|
|
569
261
|
format
|
|
570
|
-
}), threadRefs &&
|
|
262
|
+
}), threadRefs && import_react_ui_grid2.commentedClassName, classNames),
|
|
571
263
|
dataRefs: threadRefs
|
|
572
264
|
};
|
|
573
265
|
};
|
|
@@ -589,12 +281,12 @@ var gridCellGetter = (model) => {
|
|
|
589
281
|
};
|
|
590
282
|
};
|
|
591
283
|
var rowLabelCell = (row) => ({
|
|
592
|
-
value: (0,
|
|
284
|
+
value: (0, import_react_ui_grid2.rowToA1Notation)(row),
|
|
593
285
|
className: "text-end !pie-1 text-subdued",
|
|
594
286
|
resizeHandle: "row"
|
|
595
287
|
});
|
|
596
288
|
var colLabelCell = (col) => ({
|
|
597
|
-
value: (0,
|
|
289
|
+
value: (0, import_react_ui_grid2.colToA1Notation)(col),
|
|
598
290
|
className: "text-subdued",
|
|
599
291
|
resizeHandle: "col"
|
|
600
292
|
});
|
|
@@ -626,10 +318,10 @@ var cellGetter = (model) => {
|
|
|
626
318
|
};
|
|
627
319
|
};
|
|
628
320
|
var useSheetModelDxGridProps = (dxGrid, model) => {
|
|
629
|
-
const [columns, setColumns] = (0,
|
|
630
|
-
const [rows, setRows] = (0,
|
|
631
|
-
(0,
|
|
632
|
-
const cellsAccessor = (0,
|
|
321
|
+
const [columns, setColumns] = (0, import_react5.useState)(createDxGridColumns(model));
|
|
322
|
+
const [rows, setRows] = (0, import_react5.useState)(createDxGridRows(model));
|
|
323
|
+
(0, import_react5.useEffect)(() => {
|
|
324
|
+
const cellsAccessor = (0, import_echo.createDocAccessor)(model.sheet, [
|
|
633
325
|
"cells"
|
|
634
326
|
]);
|
|
635
327
|
if (dxGrid) {
|
|
@@ -648,11 +340,11 @@ var useSheetModelDxGridProps = (dxGrid, model) => {
|
|
|
648
340
|
model,
|
|
649
341
|
dxGrid
|
|
650
342
|
]);
|
|
651
|
-
(0,
|
|
652
|
-
const columnMetaAccessor = (0,
|
|
343
|
+
(0, import_react5.useEffect)(() => {
|
|
344
|
+
const columnMetaAccessor = (0, import_echo.createDocAccessor)(model.sheet, [
|
|
653
345
|
"columnMeta"
|
|
654
346
|
]);
|
|
655
|
-
const rowMetaAccessor = (0,
|
|
347
|
+
const rowMetaAccessor = (0, import_echo.createDocAccessor)(model.sheet, [
|
|
656
348
|
"rowMeta"
|
|
657
349
|
]);
|
|
658
350
|
const handleColumnMetaUpdate = () => {
|
|
@@ -676,6 +368,76 @@ var useSheetModelDxGridProps = (dxGrid, model) => {
|
|
|
676
368
|
rows
|
|
677
369
|
};
|
|
678
370
|
};
|
|
371
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/components/SheetContext/SheetContext.tsx";
|
|
372
|
+
var SheetContext = /* @__PURE__ */ (0, import_react7.createContext)(void 0);
|
|
373
|
+
var useSheetContext = () => {
|
|
374
|
+
const context = (0, import_react7.useContext)(SheetContext);
|
|
375
|
+
(0, import_invariant.invariant)(context, void 0, {
|
|
376
|
+
F: __dxlog_file,
|
|
377
|
+
L: 54,
|
|
378
|
+
S: void 0,
|
|
379
|
+
A: [
|
|
380
|
+
"context",
|
|
381
|
+
""
|
|
382
|
+
]
|
|
383
|
+
});
|
|
384
|
+
return context;
|
|
385
|
+
};
|
|
386
|
+
var SheetProviderImpl = ({ model, onInfo, ignoreAttention, children, __gridScope }) => {
|
|
387
|
+
const { id, editing, setEditing } = (0, import_react_ui_grid3.useGridContext)("SheetProvider", __gridScope);
|
|
388
|
+
const [cursor, setCursorInternal] = (0, import_react7.useState)();
|
|
389
|
+
const [range, setRangeInternal] = (0, import_react7.useState)();
|
|
390
|
+
const [cursorFallbackRange, setCursorFallbackRange] = (0, import_react7.useState)();
|
|
391
|
+
const [activeRefs, setActiveRefs] = (0, import_react7.useState)("");
|
|
392
|
+
const setCursor = (0, import_react7.useCallback)((nextCursor) => {
|
|
393
|
+
setCursorInternal(nextCursor);
|
|
394
|
+
setCursorFallbackRange(range?.to ? range : nextCursor ? {
|
|
395
|
+
from: nextCursor,
|
|
396
|
+
to: nextCursor
|
|
397
|
+
} : void 0);
|
|
398
|
+
}, [
|
|
399
|
+
range
|
|
400
|
+
]);
|
|
401
|
+
const setRange = (0, import_react7.useCallback)((nextRange) => {
|
|
402
|
+
setRangeInternal(nextRange);
|
|
403
|
+
setCursorFallbackRange(nextRange?.to ? nextRange : cursor ? {
|
|
404
|
+
from: cursor,
|
|
405
|
+
to: cursor
|
|
406
|
+
} : void 0);
|
|
407
|
+
}, [
|
|
408
|
+
cursor
|
|
409
|
+
]);
|
|
410
|
+
return /* @__PURE__ */ import_react7.default.createElement(SheetContext.Provider, {
|
|
411
|
+
value: {
|
|
412
|
+
id,
|
|
413
|
+
model,
|
|
414
|
+
editing,
|
|
415
|
+
setEditing,
|
|
416
|
+
cursor,
|
|
417
|
+
setCursor,
|
|
418
|
+
range,
|
|
419
|
+
setRange,
|
|
420
|
+
cursorFallbackRange,
|
|
421
|
+
activeRefs,
|
|
422
|
+
setActiveRefs,
|
|
423
|
+
// TODO(burdon): Change to event.
|
|
424
|
+
onInfo,
|
|
425
|
+
ignoreAttention
|
|
426
|
+
}
|
|
427
|
+
}, children);
|
|
428
|
+
};
|
|
429
|
+
var SheetProvider = ({ children, graph, sheet, readonly, ignoreAttention, onInfo }) => {
|
|
430
|
+
const model = (0, import_chunk_E3RXOEL6.useSheetModel)(graph, sheet, {
|
|
431
|
+
readonly
|
|
432
|
+
});
|
|
433
|
+
return !model ? null : /* @__PURE__ */ import_react7.default.createElement(import_react_ui_grid3.Grid.Root, {
|
|
434
|
+
id: (0, import_echo3.fullyQualifiedId)(sheet)
|
|
435
|
+
}, /* @__PURE__ */ import_react7.default.createElement(SheetProviderImpl, {
|
|
436
|
+
model,
|
|
437
|
+
onInfo,
|
|
438
|
+
ignoreAttention
|
|
439
|
+
}, children));
|
|
440
|
+
};
|
|
679
441
|
var inertPosition = {
|
|
680
442
|
plane: "grid",
|
|
681
443
|
col: 0,
|
|
@@ -702,11 +464,11 @@ var frozen = {
|
|
|
702
464
|
};
|
|
703
465
|
var sheetRowDefault = {
|
|
704
466
|
frozenRowsStart: {
|
|
705
|
-
size:
|
|
467
|
+
size: import_react_ui_grid.defaultSizeRow,
|
|
706
468
|
readonly: true
|
|
707
469
|
},
|
|
708
470
|
grid: {
|
|
709
|
-
size:
|
|
471
|
+
size: import_react_ui_grid.defaultSizeRow,
|
|
710
472
|
resizeable: true
|
|
711
473
|
}
|
|
712
474
|
};
|
|
@@ -721,16 +483,16 @@ var sheetColDefault = {
|
|
|
721
483
|
}
|
|
722
484
|
};
|
|
723
485
|
var GridSheet = () => {
|
|
724
|
-
const { t } = (0,
|
|
486
|
+
const { t } = (0, import_react_ui2.useTranslation)(import_chunk_NLDXUFDG.SHEET_PLUGIN);
|
|
725
487
|
const { id, model, editing, setCursor, setRange, cursor, cursorFallbackRange, activeRefs, ignoreAttention } = useSheetContext();
|
|
726
|
-
const [dxGrid, setDxGrid] = (0,
|
|
727
|
-
const [extraplanarFocus, setExtraplanarFocus] = (0,
|
|
488
|
+
const [dxGrid, setDxGrid] = (0, import_react4.useState)(null);
|
|
489
|
+
const [extraplanarFocus, setExtraplanarFocus] = (0, import_react4.useState)(null);
|
|
728
490
|
const { dispatchPromise: dispatch } = (0, import_app_framework.useIntentDispatcher)();
|
|
729
|
-
const rangeController = (0,
|
|
491
|
+
const rangeController = (0, import_react4.useRef)();
|
|
730
492
|
const { hasAttention } = (0, import_react_ui_attention.useAttention)(id);
|
|
731
|
-
const handleFocus = (0,
|
|
493
|
+
const handleFocus = (0, import_react4.useCallback)((event) => {
|
|
732
494
|
if (!editing) {
|
|
733
|
-
const cell = (0,
|
|
495
|
+
const cell = (0, import_react_ui_grid.closestCell)(event.target);
|
|
734
496
|
if (cell) {
|
|
735
497
|
if (cell.plane === "grid") {
|
|
736
498
|
setCursor({
|
|
@@ -748,7 +510,7 @@ var GridSheet = () => {
|
|
|
748
510
|
}, [
|
|
749
511
|
editing
|
|
750
512
|
]);
|
|
751
|
-
const handleClose = (0,
|
|
513
|
+
const handleClose = (0, import_react4.useCallback)((_value, event) => {
|
|
752
514
|
if (event) {
|
|
753
515
|
const { key, shift } = event;
|
|
754
516
|
const axis = [
|
|
@@ -771,15 +533,15 @@ var GridSheet = () => {
|
|
|
771
533
|
editing,
|
|
772
534
|
dxGrid
|
|
773
535
|
]);
|
|
774
|
-
const handleBlur = (0,
|
|
536
|
+
const handleBlur = (0, import_react4.useCallback)((value) => {
|
|
775
537
|
if (value !== void 0) {
|
|
776
|
-
model.setValue((0,
|
|
538
|
+
model.setValue((0, import_react_ui_grid.parseCellIndex)(editing.index), value);
|
|
777
539
|
}
|
|
778
540
|
}, [
|
|
779
541
|
model,
|
|
780
542
|
editing
|
|
781
543
|
]);
|
|
782
|
-
const handleAxisResize = (0,
|
|
544
|
+
const handleAxisResize = (0, import_react4.useCallback)(({ axis, size, index: numericIndex }) => {
|
|
783
545
|
if (axis === "row") {
|
|
784
546
|
const rowId = model.sheet.rows[parseInt(numericIndex)];
|
|
785
547
|
model.sheet.rowMeta[rowId] ??= {};
|
|
@@ -792,7 +554,7 @@ var GridSheet = () => {
|
|
|
792
554
|
}, [
|
|
793
555
|
model
|
|
794
556
|
]);
|
|
795
|
-
const handleSelect = (0,
|
|
557
|
+
const handleSelect = (0, import_react4.useCallback)(({ minCol, maxCol, minRow, maxRow }) => {
|
|
796
558
|
const range = {
|
|
797
559
|
from: {
|
|
798
560
|
col: minCol,
|
|
@@ -806,14 +568,14 @@ var GridSheet = () => {
|
|
|
806
568
|
};
|
|
807
569
|
}
|
|
808
570
|
if (editing) {
|
|
809
|
-
rangeController.current?.setRange((0,
|
|
571
|
+
rangeController.current?.setRange((0, import_compute2.rangeToA1Notation)(range));
|
|
810
572
|
} else {
|
|
811
573
|
setRange(range.to ? range : void 0);
|
|
812
574
|
}
|
|
813
575
|
}, [
|
|
814
576
|
editing
|
|
815
577
|
]);
|
|
816
|
-
const handleWheel = (0,
|
|
578
|
+
const handleWheel = (0, import_react4.useCallback)((event) => {
|
|
817
579
|
if (!ignoreAttention && !hasAttention) {
|
|
818
580
|
event.stopPropagation();
|
|
819
581
|
}
|
|
@@ -821,7 +583,7 @@ var GridSheet = () => {
|
|
|
821
583
|
hasAttention,
|
|
822
584
|
ignoreAttention
|
|
823
585
|
]);
|
|
824
|
-
const selectEntireAxis = (0,
|
|
586
|
+
const selectEntireAxis = (0, import_react4.useCallback)((pos) => {
|
|
825
587
|
switch (pos.plane) {
|
|
826
588
|
case "frozenRowsStart":
|
|
827
589
|
return dxGrid?.setSelection({
|
|
@@ -854,15 +616,15 @@ var GridSheet = () => {
|
|
|
854
616
|
dxGrid,
|
|
855
617
|
model.sheet
|
|
856
618
|
]);
|
|
857
|
-
const handleClick = (0,
|
|
858
|
-
const cell = (0,
|
|
619
|
+
const handleClick = (0, import_react4.useCallback)((event) => {
|
|
620
|
+
const cell = (0, import_react_ui_grid.closestCell)(event.target);
|
|
859
621
|
if (cell) {
|
|
860
622
|
selectEntireAxis(cell);
|
|
861
623
|
}
|
|
862
624
|
}, [
|
|
863
625
|
selectEntireAxis
|
|
864
626
|
]);
|
|
865
|
-
const handleKeyDown = (0,
|
|
627
|
+
const handleKeyDown = (0, import_react4.useCallback)((event) => {
|
|
866
628
|
switch (event.key) {
|
|
867
629
|
case "Backspace":
|
|
868
630
|
case "Delete":
|
|
@@ -909,28 +671,28 @@ var GridSheet = () => {
|
|
|
909
671
|
extraplanarFocus,
|
|
910
672
|
selectEntireAxis
|
|
911
673
|
]);
|
|
912
|
-
const contextMenuAnchorRef = (0,
|
|
913
|
-
const [contextMenuOpen, setContextMenuOpen] = (0,
|
|
674
|
+
const contextMenuAnchorRef = (0, import_react4.useRef)(null);
|
|
675
|
+
const [contextMenuOpen, setContextMenuOpen] = (0, import_react4.useState)(null);
|
|
914
676
|
const contextMenuAxis = contextMenuOpen?.plane.startsWith("frozenRows") ? "col" : "row";
|
|
915
|
-
const handleContextMenu = (0,
|
|
916
|
-
const cell = (0,
|
|
677
|
+
const handleContextMenu = (0, import_react4.useCallback)((event) => {
|
|
678
|
+
const cell = (0, import_react_ui_grid.closestCell)(event.target);
|
|
917
679
|
if (cell && cell.plane.startsWith("frozen")) {
|
|
918
680
|
event.preventDefault();
|
|
919
681
|
contextMenuAnchorRef.current = event.target;
|
|
920
682
|
setContextMenuOpen(cell);
|
|
921
683
|
}
|
|
922
684
|
}, []);
|
|
923
|
-
const handleAxisMenuAction = (0,
|
|
685
|
+
const handleAxisMenuAction = (0, import_react4.useCallback)((operation) => {
|
|
924
686
|
switch (operation) {
|
|
925
687
|
case "insert-before":
|
|
926
688
|
case "insert-after":
|
|
927
|
-
return dispatch((0, import_app_framework.createIntent)(
|
|
689
|
+
return dispatch((0, import_app_framework.createIntent)(import_chunk_E3RXOEL6.SheetAction.InsertAxis, {
|
|
928
690
|
model,
|
|
929
691
|
axis: contextMenuAxis,
|
|
930
692
|
index: contextMenuOpen[contextMenuAxis] + (operation === "insert-before" ? 0 : 1)
|
|
931
693
|
}));
|
|
932
694
|
case "drop":
|
|
933
|
-
return dispatch((0, import_app_framework.createIntent)(
|
|
695
|
+
return dispatch((0, import_app_framework.createIntent)(import_chunk_E3RXOEL6.SheetAction.DropAxis, {
|
|
934
696
|
model,
|
|
935
697
|
axis: contextMenuAxis,
|
|
936
698
|
axisIndex: model.sheet[contextMenuAxis === "row" ? "rows" : "columns"][contextMenuOpen[contextMenuAxis]]
|
|
@@ -943,17 +705,17 @@ var GridSheet = () => {
|
|
|
943
705
|
dispatch
|
|
944
706
|
]);
|
|
945
707
|
const { columns, rows } = useSheetModelDxGridProps(dxGrid, model);
|
|
946
|
-
const extension = (0,
|
|
947
|
-
(0,
|
|
708
|
+
const extension = (0, import_react4.useMemo)(() => [
|
|
709
|
+
(0, import_react_ui_grid.editorKeys)({
|
|
948
710
|
onClose: handleClose,
|
|
949
711
|
...editing?.initialContent && {
|
|
950
712
|
onNav: handleClose
|
|
951
713
|
}
|
|
952
714
|
}),
|
|
953
|
-
sheetExtension({
|
|
715
|
+
(0, import_chunk_P4KSGZSS.sheetExtension)({
|
|
954
716
|
functions: model.graph.getFunctions()
|
|
955
717
|
}),
|
|
956
|
-
rangeExtension({
|
|
718
|
+
(0, import_chunk_P4KSGZSS.rangeExtension)({
|
|
957
719
|
onInit: (fn) => rangeController.current = fn,
|
|
958
720
|
onStateChange: (state) => {
|
|
959
721
|
if (dxGrid) {
|
|
@@ -966,24 +728,24 @@ var GridSheet = () => {
|
|
|
966
728
|
handleClose,
|
|
967
729
|
editing
|
|
968
730
|
]);
|
|
969
|
-
const getCellContent = (0,
|
|
970
|
-
return model.getCellText((0,
|
|
731
|
+
const getCellContent = (0, import_react4.useCallback)((index) => {
|
|
732
|
+
return model.getCellText((0, import_react_ui_grid.parseCellIndex)(index));
|
|
971
733
|
}, [
|
|
972
734
|
model
|
|
973
735
|
]);
|
|
974
736
|
useUpdateFocusedCellOnThreadSelection(dxGrid);
|
|
975
737
|
useSelectThreadOnCellFocus();
|
|
976
|
-
return /* @__PURE__ */
|
|
738
|
+
return /* @__PURE__ */ import_react4.default.createElement("div", {
|
|
977
739
|
role: "none",
|
|
978
740
|
className: "relative min-bs-0"
|
|
979
|
-
}, /* @__PURE__ */
|
|
741
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui_grid.GridCellEditor, {
|
|
980
742
|
getCellContent,
|
|
981
743
|
extension,
|
|
982
744
|
onBlur: handleBlur
|
|
983
|
-
}), /* @__PURE__ */
|
|
745
|
+
}), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_grid.Grid.Content, {
|
|
984
746
|
initialCells,
|
|
985
|
-
limitColumns:
|
|
986
|
-
limitRows:
|
|
747
|
+
limitColumns: import_chunk_E3RXOEL6.DEFAULT_COLS,
|
|
748
|
+
limitRows: import_chunk_E3RXOEL6.DEFAULT_ROWS,
|
|
987
749
|
columns,
|
|
988
750
|
rows,
|
|
989
751
|
onAxisResize: handleAxisResize,
|
|
@@ -1000,46 +762,46 @@ var GridSheet = () => {
|
|
|
1000
762
|
className: "[--dx-grid-base:var(--surface-bg)] [&_.dx-grid]:border-bs [&_.dx-grid]:absolute [&_.dx-grid]:inset-0 [&_.dx-grid]:border-separator",
|
|
1001
763
|
activeRefs,
|
|
1002
764
|
ref: setDxGrid
|
|
1003
|
-
}), /* @__PURE__ */
|
|
765
|
+
}), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Root, {
|
|
1004
766
|
modal: false,
|
|
1005
767
|
open: !!contextMenuOpen,
|
|
1006
768
|
onOpenChange: (nextOpen) => setContextMenuOpen(nextOpen ? inertPosition : null)
|
|
1007
|
-
}, /* @__PURE__ */
|
|
769
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.VirtualTrigger, {
|
|
1008
770
|
virtualRef: contextMenuAnchorRef
|
|
1009
|
-
}), /* @__PURE__ */
|
|
771
|
+
}), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Content, {
|
|
1010
772
|
side: contextMenuAxis === "col" ? "bottom" : "right",
|
|
1011
773
|
sideOffset: 4,
|
|
1012
774
|
collisionPadding: 8
|
|
1013
|
-
}, /* @__PURE__ */
|
|
775
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Viewport, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Item, {
|
|
1014
776
|
onClick: () => handleAxisMenuAction("insert-before"),
|
|
1015
777
|
"data-testid": `grid.${contextMenuAxis}.insert-before`
|
|
1016
|
-
}, /* @__PURE__ */
|
|
778
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Icon, {
|
|
1017
779
|
size: 5,
|
|
1018
780
|
icon: contextMenuAxis === "col" ? "ph--columns-plus-left--regular" : "ph--rows-plus-top--regular"
|
|
1019
|
-
}), /* @__PURE__ */
|
|
781
|
+
}), /* @__PURE__ */ import_react4.default.createElement("span", null, t(`add ${contextMenuAxis} before label`))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Item, {
|
|
1020
782
|
onClick: () => handleAxisMenuAction("insert-after"),
|
|
1021
783
|
"data-testid": `grid.${contextMenuAxis}.insert-after`
|
|
1022
|
-
}, /* @__PURE__ */
|
|
784
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Icon, {
|
|
1023
785
|
size: 5,
|
|
1024
786
|
icon: contextMenuAxis === "col" ? "ph--columns-plus-right--regular" : "ph--rows-plus-bottom--regular"
|
|
1025
|
-
}), /* @__PURE__ */
|
|
787
|
+
}), /* @__PURE__ */ import_react4.default.createElement("span", null, t(`add ${contextMenuAxis} after label`))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Item, {
|
|
1026
788
|
onClick: () => handleAxisMenuAction("drop"),
|
|
1027
789
|
"data-testid": `grid.${contextMenuAxis}.drop`
|
|
1028
|
-
}, /* @__PURE__ */
|
|
790
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Icon, {
|
|
1029
791
|
size: 5,
|
|
1030
792
|
icon: "ph--backspace--regular"
|
|
1031
|
-
}), /* @__PURE__ */
|
|
793
|
+
}), /* @__PURE__ */ import_react4.default.createElement("span", null, t(`delete ${contextMenuAxis} label`)))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.DropdownMenu.Arrow, null))));
|
|
1032
794
|
};
|
|
795
|
+
var SheetContainer = (0, import_react3.lazy)(() => import("./SheetContainer-TJ3JQLWM.cjs"));
|
|
1033
796
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1034
797
|
0 && (module.exports = {
|
|
1035
798
|
ComputeGraphContextProvider,
|
|
1036
799
|
GridSheet,
|
|
800
|
+
RangeList,
|
|
1037
801
|
SheetContainer,
|
|
1038
|
-
SheetObjectSettings,
|
|
1039
802
|
SheetProvider,
|
|
1040
803
|
completeCellRangeToThreadCursor,
|
|
1041
|
-
computeGraphFacet,
|
|
1042
804
|
useComputeGraph,
|
|
1043
805
|
useSheetContext
|
|
1044
806
|
});
|
|
1045
|
-
//# sourceMappingURL=chunk-
|
|
807
|
+
//# sourceMappingURL=chunk-ZPWW4LPY.cjs.map
|