@dxos/plugin-sheet 0.6.14-main.7bd9c89 → 0.6.14-main.8b352a0

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.
Files changed (217) hide show
  1. package/dist/lib/browser/{SheetContainer-AKWROARP.mjs → SheetContainer-R65IDJHN.mjs} +54 -58
  2. package/dist/lib/browser/SheetContainer-R65IDJHN.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-BWN5DZWZ.mjs → chunk-5KVQ5IPW.mjs} +3 -12
  4. package/dist/lib/browser/chunk-5KVQ5IPW.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-FGMFOW6U.mjs → chunk-I2DKJ72A.mjs} +570 -669
  6. package/dist/lib/browser/chunk-I2DKJ72A.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-GSV5QNLD.mjs → chunk-KCYJSOFB.mjs} +252 -33
  8. package/dist/lib/browser/chunk-KCYJSOFB.mjs.map +7 -0
  9. package/dist/lib/browser/{graph-M4IQ76QX.mjs → compute-graph-SJT67236.mjs} +4 -2
  10. package/dist/lib/browser/index.mjs +62 -20
  11. package/dist/lib/browser/index.mjs.map +4 -4
  12. package/dist/lib/browser/meta.json +1 -1
  13. package/dist/lib/browser/types.mjs +1 -1
  14. package/dist/lib/node/{SheetContainer-N5IQGEFL.cjs → SheetContainer-6BO4C5X2.cjs} +52 -62
  15. package/dist/lib/node/SheetContainer-6BO4C5X2.cjs.map +7 -0
  16. package/dist/lib/node/{chunk-NZARD7UP.cjs → chunk-2XJ5I4UF.cjs} +6 -15
  17. package/dist/lib/node/chunk-2XJ5I4UF.cjs.map +7 -0
  18. package/dist/lib/node/{chunk-53BMSUIK.cjs → chunk-DEPJHN47.cjs} +534 -646
  19. package/dist/lib/node/chunk-DEPJHN47.cjs.map +7 -0
  20. package/dist/lib/node/{chunk-5XPK2V4A.cjs → chunk-JF5XNTF3.cjs} +257 -28
  21. package/dist/lib/node/chunk-JF5XNTF3.cjs.map +7 -0
  22. package/dist/lib/node/{graph-Q3N2X26H.cjs → compute-graph-AQBDL7HO.cjs} +21 -19
  23. package/dist/lib/node/compute-graph-AQBDL7HO.cjs.map +7 -0
  24. package/dist/lib/node/index.cjs +70 -31
  25. package/dist/lib/node/index.cjs.map +4 -4
  26. package/dist/lib/node/meta.json +1 -1
  27. package/dist/lib/node/types.cjs +6 -6
  28. package/dist/lib/node/types.cjs.map +1 -1
  29. package/dist/lib/node-esm/{SheetContainer-46PBMF2E.mjs → SheetContainer-MJXC5E3P.mjs} +54 -58
  30. package/dist/lib/node-esm/SheetContainer-MJXC5E3P.mjs.map +7 -0
  31. package/dist/lib/node-esm/{chunk-T3PRH7QS.mjs → chunk-25V7WY4R.mjs} +570 -669
  32. package/dist/lib/node-esm/chunk-25V7WY4R.mjs.map +7 -0
  33. package/dist/lib/node-esm/{chunk-WFDTY3IC.mjs → chunk-5TXLF6PL.mjs} +3 -12
  34. package/dist/lib/node-esm/chunk-5TXLF6PL.mjs.map +7 -0
  35. package/dist/lib/node-esm/{chunk-5WPZCXNS.mjs → chunk-XBEHKYO7.mjs} +251 -33
  36. package/dist/lib/node-esm/chunk-XBEHKYO7.mjs.map +7 -0
  37. package/dist/lib/node-esm/{graph-SMPUMOV2.mjs → compute-graph-FRCKXEYK.mjs} +4 -2
  38. package/dist/lib/node-esm/index.mjs +62 -20
  39. package/dist/lib/node-esm/index.mjs.map +4 -4
  40. package/dist/lib/node-esm/meta.json +1 -1
  41. package/dist/lib/node-esm/types.mjs +1 -1
  42. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  43. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts +3 -1
  44. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
  45. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
  46. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
  47. package/dist/types/src/components/GridSheet/util.d.ts +1 -2
  48. package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
  49. package/dist/types/src/components/RangeList/RangeList.d.ts +7 -0
  50. package/dist/types/src/components/RangeList/RangeList.d.ts.map +1 -0
  51. package/dist/types/src/components/RangeList/index.d.ts +2 -0
  52. package/dist/types/src/components/RangeList/index.d.ts.map +1 -0
  53. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +6 -3
  54. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
  55. package/dist/types/src/components/SheetContext/SheetContext.d.ts +7 -5
  56. package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +1 -1
  57. package/dist/types/src/components/Toolbar/Toolbar.d.ts +1 -1
  58. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  59. package/dist/types/src/components/index.d.ts +5 -2
  60. package/dist/types/src/components/index.d.ts.map +1 -1
  61. package/dist/types/src/compute-graph/compute-graph-registry.d.ts.map +1 -0
  62. package/dist/types/src/{graph → compute-graph}/compute-graph.d.ts +1 -1
  63. package/dist/types/src/compute-graph/compute-graph.d.ts.map +1 -0
  64. package/dist/types/src/compute-graph/compute-graph.stories.d.ts.map +1 -0
  65. package/dist/types/src/compute-graph/compute-graph.test.d.ts.map +1 -0
  66. package/dist/types/src/compute-graph/compute-node.d.ts.map +1 -0
  67. package/dist/types/src/compute-graph/functions/async-function.d.ts.map +1 -0
  68. package/dist/types/src/compute-graph/functions/edge-function.d.ts.map +1 -0
  69. package/dist/types/src/compute-graph/functions/function-defs.d.ts.map +1 -0
  70. package/dist/types/src/compute-graph/functions/index.d.ts.map +1 -0
  71. package/dist/types/src/compute-graph/hyperformula.test.d.ts.map +1 -0
  72. package/dist/types/src/compute-graph/index.d.ts.map +1 -0
  73. package/dist/types/src/compute-graph/testing/index.d.ts.map +1 -0
  74. package/dist/types/src/compute-graph/testing/test-builder.d.ts.map +1 -0
  75. package/dist/types/src/compute-graph/testing/test-plugin.d.ts.map +1 -0
  76. package/dist/types/src/compute-graph/util.d.ts.map +1 -0
  77. package/dist/types/src/defs/index.d.ts +1 -1
  78. package/dist/types/src/defs/index.d.ts.map +1 -1
  79. package/dist/types/src/defs/sheet-range-types.d.ts +1 -1
  80. package/dist/types/src/defs/sheet-range-types.d.ts.map +1 -1
  81. package/dist/types/src/defs/types.d.ts +6 -0
  82. package/dist/types/src/defs/types.d.ts.map +1 -1
  83. package/dist/types/src/defs/util.d.ts +2 -6
  84. package/dist/types/src/defs/util.d.ts.map +1 -1
  85. package/dist/types/src/extensions/compute.d.ts +1 -1
  86. package/dist/types/src/extensions/compute.d.ts.map +1 -1
  87. package/dist/types/src/extensions/editor/extension.d.ts +23 -3
  88. package/dist/types/src/extensions/editor/extension.d.ts.map +1 -1
  89. package/dist/types/src/index.d.ts +1 -1
  90. package/dist/types/src/index.d.ts.map +1 -1
  91. package/dist/types/src/integrations/index.d.ts +2 -0
  92. package/dist/types/src/integrations/index.d.ts.map +1 -0
  93. package/dist/types/src/integrations/thread-ranges.d.ts +7 -0
  94. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -0
  95. package/dist/types/src/model/index.d.ts +1 -1
  96. package/dist/types/src/model/index.d.ts.map +1 -1
  97. package/dist/types/src/model/sheet-model.d.ts +1 -1
  98. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  99. package/dist/types/src/{hooks → model}/useSheetModel.d.ts +1 -1
  100. package/dist/types/src/model/useSheetModel.d.ts.map +1 -0
  101. package/dist/types/src/serializer.d.ts +4 -0
  102. package/dist/types/src/serializer.d.ts.map +1 -0
  103. package/dist/types/src/testing/testing.d.ts +1 -1
  104. package/dist/types/src/testing/testing.d.ts.map +1 -1
  105. package/dist/types/src/translations.d.ts +13 -3
  106. package/dist/types/src/translations.d.ts.map +1 -1
  107. package/dist/types/src/types.d.ts +4 -30
  108. package/dist/types/src/types.d.ts.map +1 -1
  109. package/package.json +43 -50
  110. package/src/SheetPlugin.tsx +25 -12
  111. package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +19 -2
  112. package/src/components/FunctionEditor/FunctionEditor.tsx +5 -5
  113. package/src/components/GridSheet/GridSheet.stories.tsx +3 -1
  114. package/src/components/GridSheet/GridSheet.tsx +118 -22
  115. package/src/components/GridSheet/SheetCellEditor.stories.tsx +1 -1
  116. package/src/components/GridSheet/util.ts +24 -14
  117. package/src/components/RangeList/RangeList.tsx +53 -0
  118. package/src/components/RangeList/index.ts +5 -0
  119. package/src/components/SheetContainer/SheetContainer.stories.tsx +3 -3
  120. package/src/components/SheetContainer/SheetContainer.tsx +10 -4
  121. package/src/components/SheetContext/SheetContext.tsx +43 -20
  122. package/src/components/Toolbar/Toolbar.tsx +44 -41
  123. package/src/components/index.ts +1 -0
  124. package/src/{graph → compute-graph}/compute-graph.stories.tsx +2 -1
  125. package/src/{graph → compute-graph}/compute-graph.ts +5 -2
  126. package/src/{graph → compute-graph}/compute-node.ts +2 -3
  127. package/src/defs/index.ts +1 -1
  128. package/src/defs/sheet-range-types.ts +5 -4
  129. package/src/defs/types.ts +6 -1
  130. package/src/defs/util.ts +3 -19
  131. package/src/extensions/compute.stories.tsx +2 -2
  132. package/src/extensions/compute.ts +2 -2
  133. package/src/extensions/editor/extension.test.ts +1 -1
  134. package/src/extensions/editor/extension.ts +48 -23
  135. package/src/index.ts +2 -2
  136. package/src/integrations/index.ts +5 -0
  137. package/src/integrations/thread-ranges.ts +101 -0
  138. package/src/model/index.ts +1 -1
  139. package/src/model/sheet-model.test.ts +1 -1
  140. package/src/model/sheet-model.ts +13 -8
  141. package/src/{hooks → model}/useSheetModel.ts +1 -1
  142. package/src/serializer.ts +27 -0
  143. package/src/testing/testing.tsx +1 -1
  144. package/src/translations.ts +13 -3
  145. package/src/types.ts +4 -2
  146. package/dist/lib/browser/SheetContainer-AKWROARP.mjs.map +0 -7
  147. package/dist/lib/browser/chunk-BWN5DZWZ.mjs.map +0 -7
  148. package/dist/lib/browser/chunk-FGMFOW6U.mjs.map +0 -7
  149. package/dist/lib/browser/chunk-GSV5QNLD.mjs.map +0 -7
  150. package/dist/lib/node/SheetContainer-N5IQGEFL.cjs.map +0 -7
  151. package/dist/lib/node/chunk-53BMSUIK.cjs.map +0 -7
  152. package/dist/lib/node/chunk-5XPK2V4A.cjs.map +0 -7
  153. package/dist/lib/node/chunk-NZARD7UP.cjs.map +0 -7
  154. package/dist/lib/node/graph-Q3N2X26H.cjs.map +0 -7
  155. package/dist/lib/node-esm/SheetContainer-46PBMF2E.mjs.map +0 -7
  156. package/dist/lib/node-esm/chunk-5WPZCXNS.mjs.map +0 -7
  157. package/dist/lib/node-esm/chunk-T3PRH7QS.mjs.map +0 -7
  158. package/dist/lib/node-esm/chunk-WFDTY3IC.mjs.map +0 -7
  159. package/dist/types/src/graph/compute-graph-registry.d.ts.map +0 -1
  160. package/dist/types/src/graph/compute-graph.d.ts.map +0 -1
  161. package/dist/types/src/graph/compute-graph.stories.d.ts.map +0 -1
  162. package/dist/types/src/graph/compute-graph.test.d.ts.map +0 -1
  163. package/dist/types/src/graph/compute-node.d.ts.map +0 -1
  164. package/dist/types/src/graph/functions/async-function.d.ts.map +0 -1
  165. package/dist/types/src/graph/functions/edge-function.d.ts.map +0 -1
  166. package/dist/types/src/graph/functions/function-defs.d.ts.map +0 -1
  167. package/dist/types/src/graph/functions/index.d.ts.map +0 -1
  168. package/dist/types/src/graph/hyperformula.test.d.ts.map +0 -1
  169. package/dist/types/src/graph/index.d.ts.map +0 -1
  170. package/dist/types/src/graph/testing/index.d.ts.map +0 -1
  171. package/dist/types/src/graph/testing/test-builder.d.ts.map +0 -1
  172. package/dist/types/src/graph/testing/test-plugin.d.ts.map +0 -1
  173. package/dist/types/src/graph/util.d.ts.map +0 -1
  174. package/dist/types/src/hooks/hooks.stories.d.ts +0 -6
  175. package/dist/types/src/hooks/hooks.stories.d.ts.map +0 -1
  176. package/dist/types/src/hooks/index.d.ts +0 -4
  177. package/dist/types/src/hooks/index.d.ts.map +0 -1
  178. package/dist/types/src/hooks/threads.d.ts +0 -8
  179. package/dist/types/src/hooks/threads.d.ts.map +0 -1
  180. package/dist/types/src/hooks/useComputeGraph.d.ts +0 -7
  181. package/dist/types/src/hooks/useComputeGraph.d.ts.map +0 -1
  182. package/dist/types/src/hooks/useSheetModel.d.ts.map +0 -1
  183. package/dist/types/src/model/decorations.d.ts +0 -26
  184. package/dist/types/src/model/decorations.d.ts.map +0 -1
  185. package/src/hooks/hooks.stories.tsx +0 -53
  186. package/src/hooks/index.ts +0 -7
  187. package/src/hooks/threads.ts +0 -147
  188. package/src/hooks/useComputeGraph.ts +0 -28
  189. package/src/model/decorations.ts +0 -66
  190. /package/dist/lib/browser/{graph-M4IQ76QX.mjs.map → compute-graph-SJT67236.mjs.map} +0 -0
  191. /package/dist/lib/node-esm/{graph-SMPUMOV2.mjs.map → compute-graph-FRCKXEYK.mjs.map} +0 -0
  192. /package/dist/types/src/{graph → compute-graph}/compute-graph-registry.d.ts +0 -0
  193. /package/dist/types/src/{graph → compute-graph}/compute-graph.stories.d.ts +0 -0
  194. /package/dist/types/src/{graph → compute-graph}/compute-graph.test.d.ts +0 -0
  195. /package/dist/types/src/{graph → compute-graph}/compute-node.d.ts +0 -0
  196. /package/dist/types/src/{graph → compute-graph}/functions/async-function.d.ts +0 -0
  197. /package/dist/types/src/{graph → compute-graph}/functions/edge-function.d.ts +0 -0
  198. /package/dist/types/src/{graph → compute-graph}/functions/function-defs.d.ts +0 -0
  199. /package/dist/types/src/{graph → compute-graph}/functions/index.d.ts +0 -0
  200. /package/dist/types/src/{graph → compute-graph}/hyperformula.test.d.ts +0 -0
  201. /package/dist/types/src/{graph → compute-graph}/index.d.ts +0 -0
  202. /package/dist/types/src/{graph → compute-graph}/testing/index.d.ts +0 -0
  203. /package/dist/types/src/{graph → compute-graph}/testing/test-builder.d.ts +0 -0
  204. /package/dist/types/src/{graph → compute-graph}/testing/test-plugin.d.ts +0 -0
  205. /package/dist/types/src/{graph → compute-graph}/util.d.ts +0 -0
  206. /package/src/{graph → compute-graph}/compute-graph-registry.ts +0 -0
  207. /package/src/{graph → compute-graph}/compute-graph.test.ts +0 -0
  208. /package/src/{graph → compute-graph}/functions/async-function.ts +0 -0
  209. /package/src/{graph → compute-graph}/functions/edge-function.ts +0 -0
  210. /package/src/{graph → compute-graph}/functions/function-defs.ts +0 -0
  211. /package/src/{graph → compute-graph}/functions/index.ts +0 -0
  212. /package/src/{graph → compute-graph}/hyperformula.test.ts +0 -0
  213. /package/src/{graph → compute-graph}/index.ts +0 -0
  214. /package/src/{graph → compute-graph}/testing/index.ts +0 -0
  215. /package/src/{graph → compute-graph}/testing/test-builder.ts +0 -0
  216. /package/src/{graph → compute-graph}/testing/test-plugin.ts +0 -0
  217. /package/src/{graph → compute-graph}/util.ts +0 -0
@@ -26,24 +26,46 @@ 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 chunk_5XPK2V4A_exports = {};
30
- __export(chunk_5XPK2V4A_exports, {
29
+ var chunk_JF5XNTF3_exports = {};
30
+ __export(chunk_JF5XNTF3_exports, {
31
31
  AsyncFunctionPlugin: () => AsyncFunctionPlugin,
32
32
  ComputeGraph: () => ComputeGraph,
33
33
  ComputeGraphRegistry: () => ComputeGraphRegistry,
34
34
  ComputeNode: () => ComputeNode,
35
+ DEFAULT_COLUMNS: () => DEFAULT_COLUMNS,
36
+ DEFAULT_ROWS: () => DEFAULT_ROWS,
35
37
  EDGE_FUNCTION_NAME: () => EDGE_FUNCTION_NAME,
36
38
  EdgeFunctionPlugin: () => EdgeFunctionPlugin,
37
39
  EdgeFunctionPluginTranslations: () => EdgeFunctionPluginTranslations,
38
40
  FunctionContext: () => FunctionContext,
41
+ MAX_COLUMNS: () => MAX_COLUMNS,
42
+ MAX_ROWS: () => MAX_ROWS,
43
+ RANGE_NOTATION: () => RANGE_NOTATION,
44
+ ReadonlyException: () => ReadonlyException,
45
+ addressFromA1Notation: () => addressFromA1Notation,
46
+ addressFromIndex: () => addressFromIndex,
47
+ addressToA1Notation: () => addressToA1Notation,
48
+ addressToIndex: () => addressToIndex,
49
+ alignKey: () => alignKey,
50
+ cellClassNameForRange: () => cellClassNameForRange,
51
+ compareIndexPositions: () => compareIndexPositions,
52
+ createSheet: () => createSheet,
39
53
  createSheetName: () => createSheetName,
40
54
  defaultFunctionContextOptions: () => defaultFunctionContextOptions,
41
55
  defaultFunctions: () => defaultFunctions,
42
56
  defaultOptions: () => defaultOptions,
43
57
  defaultPlugins: () => defaultPlugins,
44
- parseSheetName: () => parseSheetName
58
+ inRange: () => inRange,
59
+ initialize: () => initialize,
60
+ insertIndices: () => insertIndices,
61
+ isFormula: () => isFormula,
62
+ parseSheetName: () => parseSheetName,
63
+ rangeFromIndex: () => rangeFromIndex,
64
+ rangeToA1Notation: () => rangeToA1Notation,
65
+ rangeToIndex: () => rangeToIndex
45
66
  });
46
- module.exports = __toCommonJS(chunk_5XPK2V4A_exports);
67
+ module.exports = __toCommonJS(chunk_JF5XNTF3_exports);
68
+ var import_chunk_2XJ5I4UF = require("./chunk-2XJ5I4UF.cjs");
47
69
  var import_async = require("@dxos/async");
48
70
  var import_echo = require("@dxos/client/echo");
49
71
  var import_context = require("@dxos/context");
@@ -57,6 +79,9 @@ var import_hyperformula = require("#hyperformula");
57
79
  var import_async2 = require("@dxos/async");
58
80
  var import_context2 = require("@dxos/context");
59
81
  var import_hyperformula2 = require("#hyperformula");
82
+ var import_invariant2 = require("@dxos/invariant");
83
+ var import_crypto = require("@dxos/crypto");
84
+ var import_echo_schema2 = require("@dxos/echo-schema");
60
85
  var import_lodash = __toESM(require("lodash.defaultsdeep"));
61
86
  var import_async3 = require("@dxos/async");
62
87
  var import_log2 = require("@dxos/log");
@@ -70,9 +95,192 @@ var import_util2 = require("@dxos/util");
70
95
  var import_hyperformula4 = require("#hyperformula");
71
96
  var import_lodash2 = __toESM(require("lodash.defaultsdeep"));
72
97
  var import_context3 = require("@dxos/context");
73
- var import_invariant2 = require("@dxos/invariant");
98
+ var import_invariant3 = require("@dxos/invariant");
74
99
  var import_log4 = require("@dxos/log");
75
100
  var import_hyperformula5 = require("#hyperformula");
101
+ var alignKey = "alignment";
102
+ var commentKey = "comment";
103
+ var styleKey = "style";
104
+ var cellClassNameForRange = ({ key, value }) => {
105
+ switch (key) {
106
+ case alignKey:
107
+ switch (value) {
108
+ case "start":
109
+ return "text-start";
110
+ case "center":
111
+ return "text-center";
112
+ case "end":
113
+ return "text-end";
114
+ default:
115
+ return void 0;
116
+ }
117
+ case commentKey:
118
+ return "bg-gridComment";
119
+ case styleKey:
120
+ switch (value) {
121
+ case "highlight":
122
+ return "bg-gridHighlight";
123
+ default:
124
+ return void 0;
125
+ }
126
+ default:
127
+ return void 0;
128
+ }
129
+ };
130
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/defs/types.ts";
131
+ var DEFAULT_ROWS = 50;
132
+ var DEFAULT_COLUMNS = 26;
133
+ var MAX_ROWS = 500;
134
+ var MAX_COLUMNS = 26 * 2;
135
+ var RANGE_NOTATION = /^[A-Z]+[0-9]+(:[A-Z]+[0-9]+)?$/;
136
+ var isFormula = (value) => typeof value === "string" && value.charAt(0) === "=";
137
+ var posEquals = (a, b) => {
138
+ return a?.col === b?.col && a?.row === b?.row;
139
+ };
140
+ var columnLetter = (col) => {
141
+ (0, import_invariant2.invariant)(col < MAX_COLUMNS, `Invalid column: ${col}`, {
142
+ F: __dxlog_file,
143
+ L: 31,
144
+ S: void 0,
145
+ A: [
146
+ "col < MAX_COLUMNS",
147
+ "`Invalid column: ${col}`"
148
+ ]
149
+ });
150
+ return (col >= 26 ? String.fromCharCode("A".charCodeAt(0) + Math.floor(col / 26) - 1) : "") + String.fromCharCode("A".charCodeAt(0) + col % 26);
151
+ };
152
+ var addressToA1Notation = ({ col, row }) => {
153
+ return `${columnLetter(col)}${row + 1}`;
154
+ };
155
+ var addressFromA1Notation = (ref) => {
156
+ const match = ref.match(/([A-Z]+)(\d+)/);
157
+ (0, import_invariant2.invariant)(match, `Invalid notation: ${ref}`, {
158
+ F: __dxlog_file,
159
+ L: 45,
160
+ S: void 0,
161
+ A: [
162
+ "match",
163
+ "`Invalid notation: ${ref}`"
164
+ ]
165
+ });
166
+ return {
167
+ row: parseInt(match[2], 10) - 1,
168
+ col: match[1].split("").reduce((acc, c) => acc * 26 + c.charCodeAt(0) - "A".charCodeAt(0) + 1, 0) - 1
169
+ };
170
+ };
171
+ var rangeToA1Notation = (range) => {
172
+ return [
173
+ range?.from && addressToA1Notation(range?.from),
174
+ range?.to && addressToA1Notation(range?.to)
175
+ ].filter(Boolean).join(":");
176
+ };
177
+ var inRange = (range, cell) => {
178
+ if (!range) {
179
+ return false;
180
+ }
181
+ const { from, to } = range;
182
+ if (from && posEquals(from, cell) || to && posEquals(to, cell)) {
183
+ return true;
184
+ }
185
+ if (!from || !to) {
186
+ return false;
187
+ }
188
+ const { col: c1, row: r1 } = from;
189
+ const { col: c2, row: r2 } = to;
190
+ const cMin = Math.min(c1, c2);
191
+ const cMax = Math.max(c1, c2);
192
+ const rMin = Math.min(r1, r2);
193
+ const rMax = Math.max(r1, r2);
194
+ const { col, row } = cell;
195
+ return col >= cMin && col <= cMax && row >= rMin && row <= rMax;
196
+ };
197
+ var ApiError = class extends Error {
198
+ };
199
+ var ReadonlyException = class extends ApiError {
200
+ };
201
+ var RangeException = class extends ApiError {
202
+ constructor(n) {
203
+ super();
204
+ }
205
+ };
206
+ var createIndex = (length = 8) => {
207
+ const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
208
+ const charactersLength = characters.length;
209
+ const randomBuffer = (0, import_crypto.randomBytes)(length);
210
+ return Array.from(randomBuffer, (byte) => characters[byte % charactersLength]).join("");
211
+ };
212
+ var createIndices = (length) => Array.from({
213
+ length
214
+ }).map(() => createIndex());
215
+ var insertIndices = (indices, i, n, max) => {
216
+ if (i + n > max) {
217
+ throw new RangeException(i + n);
218
+ }
219
+ const idx = createIndices(n);
220
+ indices.splice(i, 0, ...idx);
221
+ };
222
+ var initialize = (sheet, { rows = DEFAULT_ROWS, columns = DEFAULT_COLUMNS } = {}) => {
223
+ if (!sheet.rows.length) {
224
+ insertIndices(sheet.rows, 0, rows, MAX_ROWS);
225
+ }
226
+ if (!sheet.columns.length) {
227
+ insertIndices(sheet.columns, 0, columns, MAX_COLUMNS);
228
+ }
229
+ };
230
+ var createSheet = ({ name, cells, ...size } = {}) => {
231
+ const sheet = (0, import_echo_schema2.create)(import_chunk_2XJ5I4UF.SheetType, {
232
+ name,
233
+ cells: {},
234
+ rows: [],
235
+ columns: [],
236
+ rowMeta: {},
237
+ columnMeta: {},
238
+ ranges: [],
239
+ threads: []
240
+ });
241
+ initialize(sheet, size);
242
+ if (cells) {
243
+ Object.entries(cells).forEach(([key, { value }]) => {
244
+ const idx = addressToIndex(sheet, addressFromA1Notation(key));
245
+ sheet.cells[idx] = {
246
+ value
247
+ };
248
+ });
249
+ }
250
+ return sheet;
251
+ };
252
+ var addressToIndex = (sheet, cell) => {
253
+ return `${sheet.columns[cell.col]}@${sheet.rows[cell.row]}`;
254
+ };
255
+ var addressFromIndex = (sheet, idx) => {
256
+ const [column, row] = idx.split("@");
257
+ return {
258
+ col: sheet.columns.indexOf(column),
259
+ row: sheet.rows.indexOf(row)
260
+ };
261
+ };
262
+ var rangeToIndex = (sheet, range) => {
263
+ return [
264
+ range.from,
265
+ range.to ?? range.from
266
+ ].map((cell) => addressToIndex(sheet, cell)).join(":");
267
+ };
268
+ var rangeFromIndex = (sheet, idx) => {
269
+ const [from, to] = idx.split(":").map((index) => addressFromIndex(sheet, index));
270
+ return {
271
+ from,
272
+ to
273
+ };
274
+ };
275
+ var compareIndexPositions = (sheet, indexA, indexB) => {
276
+ const { row: rowA, col: columnA } = addressFromIndex(sheet, indexA);
277
+ const { row: rowB, col: columnB } = addressFromIndex(sheet, indexB);
278
+ if (rowA !== rowB) {
279
+ return rowA - rowB;
280
+ } else {
281
+ return columnA - columnB;
282
+ }
283
+ };
76
284
  var ComputeNode = class extends import_context2.Resource {
77
285
  constructor(_graph, sheetId) {
78
286
  super();
@@ -98,7 +306,7 @@ var ComputeNode = class extends import_context2.Resource {
98
306
  return value;
99
307
  }
100
308
  setValue(cell, value) {
101
- const mappedValue = typeof value === "string" && value.charAt(0) === "=" ? this._graph.mapFormulaToNative(value) : value;
309
+ const mappedValue = isFormula(value) ? this._graph.mapFormulaToNative(value) : value;
102
310
  this._graph.hf.setCellContents({
103
311
  sheet: this.sheetId,
104
312
  row: cell.row,
@@ -113,7 +321,7 @@ var ComputeNode = class extends import_context2.Resource {
113
321
  async _open() {
114
322
  }
115
323
  };
116
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/graph/functions/async-function.ts";
324
+ var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/compute-graph/functions/async-function.ts";
117
325
  var defaultFunctionContextOptions = {
118
326
  defaultTtl: 5e3,
119
327
  debounceDelay: 200,
@@ -187,7 +395,7 @@ var FunctionContext = class _FunctionContext {
187
395
  cell,
188
396
  value: value2
189
397
  }, {
190
- F: __dxlog_file,
398
+ F: __dxlog_file2,
191
399
  L: 143,
192
400
  S: this,
193
401
  C: (f, a) => f(...a)
@@ -201,7 +409,7 @@ var FunctionContext = class _FunctionContext {
201
409
  cell,
202
410
  err
203
411
  }, {
204
- F: __dxlog_file,
412
+ F: __dxlog_file2,
205
413
  L: 147,
206
414
  S: this,
207
415
  C: (f, a) => f(...a)
@@ -221,7 +429,7 @@ var FunctionContext = class _FunctionContext {
221
429
  args,
222
430
  cache: value
223
431
  }, {
224
- F: __dxlog_file,
432
+ F: __dxlog_file2,
225
433
  L: 155,
226
434
  S: this,
227
435
  C: (f, a) => f(...a)
@@ -244,7 +452,7 @@ var AsyncFunctionPlugin = class extends import_hyperformula3.FunctionPlugin {
244
452
  });
245
453
  }
246
454
  };
247
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/graph/functions/edge-function.ts";
455
+ var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/compute-graph/functions/edge-function.ts";
248
456
  var EDGE_FUNCTION_NAME = "DX";
249
457
  var FUNCTION_TTL = 1e4;
250
458
  var EdgeFunctionPlugin = class extends AsyncFunctionPlugin {
@@ -261,7 +469,7 @@ var EdgeFunctionPlugin = class extends AsyncFunctionPlugin {
261
469
  import_log3.log.info("Function not found", {
262
470
  binding
263
471
  }, {
264
- F: __dxlog_file2,
472
+ F: __dxlog_file3,
265
473
  L: 41,
266
474
  S: this,
267
475
  C: (f, a) => f(...a)
@@ -273,7 +481,7 @@ var EdgeFunctionPlugin = class extends AsyncFunctionPlugin {
273
481
  import_log3.log.info("function changed", {
274
482
  fn
275
483
  }, {
276
- F: __dxlog_file2,
484
+ F: __dxlog_file3,
277
485
  L: 47,
278
486
  S: this,
279
487
  C: (f, a) => f(...a)
@@ -2727,7 +2935,7 @@ var defaultFunctions = [
2727
2935
  section: "Text"
2728
2936
  }
2729
2937
  ];
2730
- var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/graph/compute-graph.ts";
2938
+ var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/compute-graph/compute-graph.ts";
2731
2939
  var OBJECT_ID_LENGTH = 60;
2732
2940
  var createSheetName = ({ type, id }) => `${type}@${id}`;
2733
2941
  var parseSheetName = (name) => {
@@ -2796,8 +3004,8 @@ var ComputeGraph = class extends import_context.Resource {
2796
3004
  // The graph would then load the object and create a ComputeNode (model) of the appropriate type.
2797
3005
  getOrCreateNode(name) {
2798
3006
  (0, import_invariant.invariant)(name.length, void 0, {
2799
- F: __dxlog_file3,
2800
- L: 117,
3007
+ F: __dxlog_file4,
3008
+ L: 120,
2801
3009
  S: this,
2802
3010
  A: [
2803
3011
  "name.length",
@@ -2805,12 +3013,12 @@ var ComputeGraph = class extends import_context.Resource {
2805
3013
  ]
2806
3014
  });
2807
3015
  if (!this._hf.doesSheetExist(name)) {
2808
- import_log.log.info("created node", {
3016
+ (0, import_log.log)("created node", {
2809
3017
  space: this._space?.id,
2810
3018
  sheet: name
2811
3019
  }, {
2812
- F: __dxlog_file3,
2813
- L: 119,
3020
+ F: __dxlog_file4,
3021
+ L: 122,
2814
3022
  S: this,
2815
3023
  C: (f, a) => f(...a)
2816
3024
  });
@@ -2818,8 +3026,8 @@ var ComputeGraph = class extends import_context.Resource {
2818
3026
  }
2819
3027
  const sheetId = this._hf.getSheetId(name);
2820
3028
  (0, import_invariant.invariant)(sheetId !== void 0, void 0, {
2821
- F: __dxlog_file3,
2822
- L: 124,
3029
+ F: __dxlog_file4,
3030
+ L: 127,
2823
3031
  S: this,
2824
3032
  A: [
2825
3033
  "sheetId !== undefined",
@@ -2832,7 +3040,7 @@ var ComputeGraph = class extends import_context.Resource {
2832
3040
  }
2833
3041
  /**
2834
3042
  * Map bound value to custom function invocation.
2835
- * E.g., "HELLO(...args)" => "EDGE("HELLO", ...args)".
3043
+ * E.g., "HELLO(...args)" => "DX("HELLO", ...args)".
2836
3044
  */
2837
3045
  mapFormulaToNative(formula) {
2838
3046
  return formula.replace(/['"]?([ \w]+)['"]?!/, (_match, name) => {
@@ -2918,7 +3126,7 @@ var ComputeGraph = class extends import_context.Resource {
2918
3126
  }
2919
3127
  }
2920
3128
  };
2921
- var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/graph/compute-graph-registry.ts";
3129
+ var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/compute-graph/compute-graph-registry.ts";
2922
3130
  var defaultOptions = {
2923
3131
  licenseKey: "gpl-v3"
2924
3132
  };
@@ -2948,7 +3156,7 @@ var ComputeGraphRegistry = class extends import_context3.Resource {
2948
3156
  (0, import_log4.log)("create graph", {
2949
3157
  space: space.id
2950
3158
  }, {
2951
- F: __dxlog_file4,
3159
+ F: __dxlog_file5,
2952
3160
  L: 69,
2953
3161
  S: this,
2954
3162
  C: (f, a) => f(...a)
@@ -2958,8 +3166,8 @@ var ComputeGraphRegistry = class extends import_context3.Resource {
2958
3166
  return graph;
2959
3167
  }
2960
3168
  createGraph(space) {
2961
- (0, import_invariant2.invariant)(!this._graphs.has(space.id), `ComputeGraph already exists for space: ${space.id}`, {
2962
- F: __dxlog_file4,
3169
+ (0, import_invariant3.invariant)(!this._graphs.has(space.id), `ComputeGraph already exists for space: ${space.id}`, {
3170
+ F: __dxlog_file5,
2963
3171
  L: 77,
2964
3172
  S: this,
2965
3173
  A: [
@@ -2985,15 +3193,36 @@ var ComputeGraphRegistry = class extends import_context3.Resource {
2985
3193
  ComputeGraph,
2986
3194
  ComputeGraphRegistry,
2987
3195
  ComputeNode,
3196
+ DEFAULT_COLUMNS,
3197
+ DEFAULT_ROWS,
2988
3198
  EDGE_FUNCTION_NAME,
2989
3199
  EdgeFunctionPlugin,
2990
3200
  EdgeFunctionPluginTranslations,
2991
3201
  FunctionContext,
3202
+ MAX_COLUMNS,
3203
+ MAX_ROWS,
3204
+ RANGE_NOTATION,
3205
+ ReadonlyException,
3206
+ addressFromA1Notation,
3207
+ addressFromIndex,
3208
+ addressToA1Notation,
3209
+ addressToIndex,
3210
+ alignKey,
3211
+ cellClassNameForRange,
3212
+ compareIndexPositions,
3213
+ createSheet,
2992
3214
  createSheetName,
2993
3215
  defaultFunctionContextOptions,
2994
3216
  defaultFunctions,
2995
3217
  defaultOptions,
2996
3218
  defaultPlugins,
2997
- parseSheetName
3219
+ inRange,
3220
+ initialize,
3221
+ insertIndices,
3222
+ isFormula,
3223
+ parseSheetName,
3224
+ rangeFromIndex,
3225
+ rangeToA1Notation,
3226
+ rangeToIndex
2998
3227
  });
2999
- //# sourceMappingURL=chunk-5XPK2V4A.cjs.map
3228
+ //# sourceMappingURL=chunk-JF5XNTF3.cjs.map