@dxos/plugin-sheet 0.6.14-staging.9e90729 → 0.6.14-staging.a52de51

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 (117) hide show
  1. package/dist/lib/browser/{SheetContainer-JBB7W52Y.mjs → SheetContainer-P3NF5KEI.mjs} +60 -48
  2. package/dist/lib/browser/SheetContainer-P3NF5KEI.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-XXDHBYZQ.mjs → chunk-4LKIURJA.mjs} +337 -122
  4. package/dist/lib/browser/chunk-4LKIURJA.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-3QWIMZZJ.mjs → chunk-BVUN7SHF.mjs} +5 -3
  6. package/dist/lib/browser/chunk-BVUN7SHF.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-D3QTX46O.mjs → chunk-RABELMEQ.mjs} +3 -2
  8. package/dist/lib/browser/{chunk-D3QTX46O.mjs.map → chunk-RABELMEQ.mjs.map} +3 -3
  9. package/dist/lib/browser/{chunk-2ZK3YMZG.mjs → chunk-VMSX6Z4X.mjs} +58 -20
  10. package/dist/lib/browser/chunk-VMSX6Z4X.mjs.map +7 -0
  11. package/dist/lib/browser/{compute-graph-ZQKB6QVP.mjs → compute-graph-GGWUX644.mjs} +4 -4
  12. package/dist/lib/browser/index.mjs +48 -21
  13. package/dist/lib/browser/index.mjs.map +3 -3
  14. package/dist/lib/browser/meta.json +1 -1
  15. package/dist/lib/browser/meta.mjs +1 -1
  16. package/dist/lib/browser/types.mjs +2 -2
  17. package/dist/lib/node/{SheetContainer-L37HUFCF.cjs → SheetContainer-MPFKXY26.cjs} +72 -63
  18. package/dist/lib/node/SheetContainer-MPFKXY26.cjs.map +7 -0
  19. package/dist/lib/node/{chunk-QIFIGEKV.cjs → chunk-2ZVZI2KJ.cjs} +6 -5
  20. package/dist/lib/node/{chunk-QIFIGEKV.cjs.map → chunk-2ZVZI2KJ.cjs.map} +3 -3
  21. package/dist/lib/node/{chunk-V7E5JZBD.cjs → chunk-AWKOWDMI.cjs} +9 -7
  22. package/dist/lib/node/chunk-AWKOWDMI.cjs.map +7 -0
  23. package/dist/lib/node/{chunk-QNFMTK3X.cjs → chunk-O7XR4R7Y.cjs} +69 -29
  24. package/dist/lib/node/chunk-O7XR4R7Y.cjs.map +7 -0
  25. package/dist/lib/node/{chunk-7AWAC3R3.cjs → chunk-OO24XJBV.cjs} +353 -139
  26. package/dist/lib/node/chunk-OO24XJBV.cjs.map +7 -0
  27. package/dist/lib/node/{compute-graph-RJB6OVW6.cjs → compute-graph-KGWA2QLE.cjs} +21 -21
  28. package/dist/lib/node/{compute-graph-RJB6OVW6.cjs.map → compute-graph-KGWA2QLE.cjs.map} +2 -2
  29. package/dist/lib/node/index.cjs +74 -46
  30. package/dist/lib/node/index.cjs.map +3 -3
  31. package/dist/lib/node/meta.cjs +3 -3
  32. package/dist/lib/node/meta.cjs.map +1 -1
  33. package/dist/lib/node/meta.json +1 -1
  34. package/dist/lib/node/types.cjs +7 -7
  35. package/dist/lib/node/types.cjs.map +1 -1
  36. package/dist/lib/node-esm/{SheetContainer-CLKFEM35.mjs → SheetContainer-22IOAW3B.mjs} +60 -48
  37. package/dist/lib/node-esm/SheetContainer-22IOAW3B.mjs.map +7 -0
  38. package/dist/lib/node-esm/{chunk-VCYJWE3O.mjs → chunk-BM2Q3FFC.mjs} +3 -2
  39. package/dist/lib/node-esm/{chunk-VCYJWE3O.mjs.map → chunk-BM2Q3FFC.mjs.map} +3 -3
  40. package/dist/lib/node-esm/{chunk-3JYJEOCF.mjs → chunk-BW36PM2Y.mjs} +337 -122
  41. package/dist/lib/node-esm/chunk-BW36PM2Y.mjs.map +7 -0
  42. package/dist/lib/node-esm/{chunk-JBTORSST.mjs → chunk-CR4K75EL.mjs} +58 -20
  43. package/dist/lib/node-esm/chunk-CR4K75EL.mjs.map +7 -0
  44. package/dist/lib/node-esm/{chunk-SPQFLYC2.mjs → chunk-UIBWRHW7.mjs} +5 -3
  45. package/dist/lib/node-esm/chunk-UIBWRHW7.mjs.map +7 -0
  46. package/dist/lib/node-esm/{compute-graph-VKRG526N.mjs → compute-graph-2SCZT7N5.mjs} +4 -4
  47. package/dist/lib/node-esm/index.mjs +48 -21
  48. package/dist/lib/node-esm/index.mjs.map +3 -3
  49. package/dist/lib/node-esm/meta.json +1 -1
  50. package/dist/lib/node-esm/meta.mjs +1 -1
  51. package/dist/lib/node-esm/types.mjs +2 -2
  52. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  53. package/dist/types/src/components/FunctionEditor/FunctionEditor.d.ts.map +1 -1
  54. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
  55. package/dist/types/src/components/GridSheet/util.d.ts +2 -2
  56. package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
  57. package/dist/types/src/components/RangeList/RangeList.d.ts +2 -4
  58. package/dist/types/src/components/RangeList/RangeList.d.ts.map +1 -1
  59. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +6 -3
  60. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
  61. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
  62. package/dist/types/src/components/Toolbar/Toolbar.d.ts +6 -3
  63. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  64. package/dist/types/src/components/index.d.ts +4 -2
  65. package/dist/types/src/components/index.d.ts.map +1 -1
  66. package/dist/types/src/compute-graph/compute-graph.d.ts +2 -2
  67. package/dist/types/src/compute-graph/compute-graph.d.ts.map +1 -1
  68. package/dist/types/src/compute-graph/functions/async-function.d.ts.map +1 -1
  69. package/dist/types/src/compute-graph/functions/edge-function.d.ts.map +1 -1
  70. package/dist/types/src/defs/sheet-range-types.d.ts +2 -2
  71. package/dist/types/src/defs/sheet-range-types.d.ts.map +1 -1
  72. package/dist/types/src/defs/util.d.ts +1 -1
  73. package/dist/types/src/defs/util.d.ts.map +1 -1
  74. package/dist/types/src/integrations/thread-ranges.d.ts +1 -2
  75. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
  76. package/dist/types/src/meta.d.ts +1 -0
  77. package/dist/types/src/meta.d.ts.map +1 -1
  78. package/dist/types/src/model/sheet-model.d.ts +12 -5
  79. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  80. package/dist/types/src/translations.d.ts +12 -3
  81. package/dist/types/src/translations.d.ts.map +1 -1
  82. package/dist/types/src/types.d.ts +33 -3
  83. package/dist/types/src/types.d.ts.map +1 -1
  84. package/package.json +37 -36
  85. package/src/SheetPlugin.tsx +27 -7
  86. package/src/components/FunctionEditor/FunctionEditor.tsx +1 -5
  87. package/src/components/GridSheet/GridSheet.tsx +107 -42
  88. package/src/components/GridSheet/util.ts +26 -16
  89. package/src/components/RangeList/RangeList.tsx +27 -12
  90. package/src/components/SheetContainer/SheetContainer.stories.tsx +4 -2
  91. package/src/components/SheetContainer/SheetContainer.tsx +19 -12
  92. package/src/components/Toolbar/Toolbar.tsx +72 -59
  93. package/src/compute-graph/compute-graph.ts +22 -7
  94. package/src/compute-graph/functions/async-function.ts +1 -0
  95. package/src/compute-graph/functions/edge-function.ts +5 -3
  96. package/src/defs/sheet-range-types.ts +8 -6
  97. package/src/defs/util.ts +1 -0
  98. package/src/integrations/thread-ranges.ts +3 -3
  99. package/src/meta.ts +1 -0
  100. package/src/model/sheet-model.test.ts +5 -3
  101. package/src/model/sheet-model.ts +93 -21
  102. package/src/translations.ts +12 -3
  103. package/src/types.ts +21 -1
  104. package/dist/lib/browser/SheetContainer-JBB7W52Y.mjs.map +0 -7
  105. package/dist/lib/browser/chunk-2ZK3YMZG.mjs.map +0 -7
  106. package/dist/lib/browser/chunk-3QWIMZZJ.mjs.map +0 -7
  107. package/dist/lib/browser/chunk-XXDHBYZQ.mjs.map +0 -7
  108. package/dist/lib/node/SheetContainer-L37HUFCF.cjs.map +0 -7
  109. package/dist/lib/node/chunk-7AWAC3R3.cjs.map +0 -7
  110. package/dist/lib/node/chunk-QNFMTK3X.cjs.map +0 -7
  111. package/dist/lib/node/chunk-V7E5JZBD.cjs.map +0 -7
  112. package/dist/lib/node-esm/SheetContainer-CLKFEM35.mjs.map +0 -7
  113. package/dist/lib/node-esm/chunk-3JYJEOCF.mjs.map +0 -7
  114. package/dist/lib/node-esm/chunk-JBTORSST.mjs.map +0 -7
  115. package/dist/lib/node-esm/chunk-SPQFLYC2.mjs.map +0 -7
  116. /package/dist/lib/browser/{compute-graph-ZQKB6QVP.mjs.map → compute-graph-GGWUX644.mjs.map} +0 -0
  117. /package/dist/lib/node-esm/{compute-graph-VKRG526N.mjs.map → compute-graph-2SCZT7N5.mjs.map} +0 -0
@@ -26,8 +26,8 @@ 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_QNFMTK3X_exports = {};
30
- __export(chunk_QNFMTK3X_exports, {
29
+ var chunk_O7XR4R7Y_exports = {};
30
+ __export(chunk_O7XR4R7Y_exports, {
31
31
  AsyncFunctionPlugin: () => AsyncFunctionPlugin,
32
32
  ComputeGraph: () => ComputeGraph,
33
33
  ComputeGraphRegistry: () => ComputeGraphRegistry,
@@ -46,6 +46,7 @@ __export(chunk_QNFMTK3X_exports, {
46
46
  addressFromIndex: () => addressFromIndex,
47
47
  addressToA1Notation: () => addressToA1Notation,
48
48
  addressToIndex: () => addressToIndex,
49
+ alignKey: () => alignKey,
49
50
  cellClassNameForRange: () => cellClassNameForRange,
50
51
  compareIndexPositions: () => compareIndexPositions,
51
52
  createSheet: () => createSheet,
@@ -61,12 +62,14 @@ __export(chunk_QNFMTK3X_exports, {
61
62
  parseSheetName: () => parseSheetName,
62
63
  rangeFromIndex: () => rangeFromIndex,
63
64
  rangeToA1Notation: () => rangeToA1Notation,
64
- rangeToIndex: () => rangeToIndex
65
+ rangeToIndex: () => rangeToIndex,
66
+ styleKey: () => styleKey
65
67
  });
66
- module.exports = __toCommonJS(chunk_QNFMTK3X_exports);
67
- var import_chunk_V7E5JZBD = require("./chunk-V7E5JZBD.cjs");
68
+ module.exports = __toCommonJS(chunk_O7XR4R7Y_exports);
69
+ var import_chunk_AWKOWDMI = require("./chunk-AWKOWDMI.cjs");
68
70
  var import_async = require("@dxos/async");
69
71
  var import_echo = require("@dxos/client/echo");
72
+ var import_echo2 = require("@dxos/client/echo");
70
73
  var import_context = require("@dxos/context");
71
74
  var import_echo_schema = require("@dxos/echo-schema");
72
75
  var import_invariant = require("@dxos/invariant");
@@ -86,7 +89,7 @@ var import_async3 = require("@dxos/async");
86
89
  var import_log2 = require("@dxos/log");
87
90
  var import_hyperformula3 = require("#hyperformula");
88
91
  var import_signals_core = require("@preact/signals-core");
89
- var import_echo2 = require("@dxos/client/echo");
92
+ var import_echo3 = require("@dxos/client/echo");
90
93
  var import_log3 = require("@dxos/log");
91
94
  var import_edge = require("@dxos/plugin-script/edge");
92
95
  var import_types2 = require("@dxos/plugin-script/types");
@@ -97,9 +100,12 @@ var import_context3 = require("@dxos/context");
97
100
  var import_invariant3 = require("@dxos/invariant");
98
101
  var import_log4 = require("@dxos/log");
99
102
  var import_hyperformula5 = require("#hyperformula");
103
+ var alignKey = "alignment";
104
+ var commentKey = "comment";
105
+ var styleKey = "style";
100
106
  var cellClassNameForRange = ({ key, value }) => {
101
107
  switch (key) {
102
- case "align":
108
+ case alignKey:
103
109
  switch (value) {
104
110
  case "start":
105
111
  return "text-start";
@@ -110,12 +116,14 @@ var cellClassNameForRange = ({ key, value }) => {
110
116
  default:
111
117
  return void 0;
112
118
  }
113
- case "comment":
119
+ case commentKey:
114
120
  return "bg-gridComment";
115
- case "style":
121
+ case styleKey:
116
122
  switch (value) {
117
123
  case "highlight":
118
- return "bg-gridHighlight";
124
+ return "!bg-gridHighlight";
125
+ case "softwrap":
126
+ return "!whitespace-normal";
119
127
  default:
120
128
  return void 0;
121
129
  }
@@ -214,6 +222,7 @@ var insertIndices = (indices, i, n, max) => {
214
222
  }
215
223
  const idx = createIndices(n);
216
224
  indices.splice(i, 0, ...idx);
225
+ return idx;
217
226
  };
218
227
  var initialize = (sheet, { rows = DEFAULT_ROWS, columns = DEFAULT_COLUMNS } = {}) => {
219
228
  if (!sheet.rows.length) {
@@ -224,7 +233,7 @@ var initialize = (sheet, { rows = DEFAULT_ROWS, columns = DEFAULT_COLUMNS } = {}
224
233
  }
225
234
  };
226
235
  var createSheet = ({ name, cells, ...size } = {}) => {
227
- const sheet = (0, import_echo_schema2.create)(import_chunk_V7E5JZBD.SheetType, {
236
+ const sheet = (0, import_echo_schema2.create)(import_chunk_AWKOWDMI.SheetType, {
228
237
  name,
229
238
  cells: {},
230
239
  rows: [],
@@ -340,6 +349,12 @@ var FunctionContext = class _FunctionContext {
340
349
  this._invocations = {};
341
350
  this._options = (0, import_lodash.default)(_options ?? {}, defaultFunctionContextOptions);
342
351
  this._onUpdate = (0, import_async3.debounce)((update) => {
352
+ (0, import_log2.log)("update", update, {
353
+ F: __dxlog_file2,
354
+ L: 86,
355
+ S: this,
356
+ C: (f, a) => f(...a)
357
+ });
343
358
  this._hf.resumeEvaluation();
344
359
  this._options.onUpdate?.(update);
345
360
  }, this._options.debounceDelay);
@@ -392,7 +407,7 @@ var FunctionContext = class _FunctionContext {
392
407
  value: value2
393
408
  }, {
394
409
  F: __dxlog_file2,
395
- L: 143,
410
+ L: 144,
396
411
  S: this,
397
412
  C: (f, a) => f(...a)
398
413
  });
@@ -406,7 +421,7 @@ var FunctionContext = class _FunctionContext {
406
421
  err
407
422
  }, {
408
423
  F: __dxlog_file2,
409
- L: 147,
424
+ L: 148,
410
425
  S: this,
411
426
  C: (f, a) => f(...a)
412
427
  });
@@ -426,7 +441,7 @@ var FunctionContext = class _FunctionContext {
426
441
  cache: value
427
442
  }, {
428
443
  F: __dxlog_file2,
429
- L: 155,
444
+ L: 156,
430
445
  S: this,
431
446
  C: (f, a) => f(...a)
432
447
  });
@@ -458,7 +473,7 @@ var EdgeFunctionPlugin = class extends AsyncFunctionPlugin {
458
473
  if (!space) {
459
474
  return new import_hyperformula4.CellError(import_hyperformula4.ErrorType.REF, "Missing space");
460
475
  }
461
- const { objects: [fn] } = await space.db.query(import_echo2.Filter.schema(import_types2.FunctionType, {
476
+ const { objects: [fn] } = await space.db.query(import_echo3.Filter.schema(import_types2.FunctionType, {
462
477
  binding
463
478
  })).run();
464
479
  if (!fn) {
@@ -474,7 +489,7 @@ var EdgeFunctionPlugin = class extends AsyncFunctionPlugin {
474
489
  }
475
490
  if (subscribe) {
476
491
  const unsubscribe = (0, import_signals_core.effect)(() => {
477
- import_log3.log.info("function changed", {
492
+ (0, import_log3.log)("function changed", {
478
493
  fn
479
494
  }, {
480
495
  F: __dxlog_file3,
@@ -489,8 +504,8 @@ var EdgeFunctionPlugin = class extends AsyncFunctionPlugin {
489
504
  });
490
505
  this.context.createSubscription(ast.procedureName, unsubscribe);
491
506
  }
492
- const path = (0, import_edge.getUserFunctionUrlInMetadata)((0, import_echo2.getMeta)(fn));
493
- const result = await fetch(`${this.context.remoteFunctionUrl}${path}`, {
507
+ const path = (0, import_edge.getUserFunctionUrlInMetadata)((0, import_echo3.getMeta)(fn));
508
+ const response = await fetch(`${this.context.remoteFunctionUrl}${path}`, {
494
509
  method: "POST",
495
510
  headers: {
496
511
  "Content-Type": "application/json"
@@ -499,7 +514,16 @@ var EdgeFunctionPlugin = class extends AsyncFunctionPlugin {
499
514
  args: args.filter(import_util2.nonNullable)
500
515
  })
501
516
  });
502
- return await result.text();
517
+ const result = await response.text();
518
+ (0, import_log3.log)("function executed", {
519
+ result
520
+ }, {
521
+ F: __dxlog_file3,
522
+ L: 65,
523
+ S: this,
524
+ C: (f, a) => f(...a)
525
+ });
526
+ return result;
503
527
  };
504
528
  return this.runAsyncFunction(ast, state, handler(true), {
505
529
  ttl: FUNCTION_TTL
@@ -2932,7 +2956,7 @@ var defaultFunctions = [
2932
2956
  }
2933
2957
  ];
2934
2958
  var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-sheet/src/compute-graph/compute-graph.ts";
2935
- var OBJECT_ID_LENGTH = 60;
2959
+ var UNKNOWN_BINDING = "__UNKNOWN__";
2936
2960
  var createSheetName = ({ type, id }) => `${type}@${id}`;
2937
2961
  var parseSheetName = (name) => {
2938
2962
  const [type, id] = name.split("@");
@@ -2953,7 +2977,16 @@ var ComputeGraph = class extends import_context.Resource {
2953
2977
  this._nodes = /* @__PURE__ */ new Map();
2954
2978
  this._remoteFunctions = [];
2955
2979
  this.update = new import_async.Event();
2956
- this.context = new FunctionContext(this._hf, this._space, this._options);
2980
+ const contextOptions = {
2981
+ ...this._options,
2982
+ onUpdate: (update) => {
2983
+ this._options?.onUpdate?.(update);
2984
+ this.update.emit({
2985
+ type: "valuesUpdated"
2986
+ });
2987
+ }
2988
+ };
2989
+ this.context = new FunctionContext(this._hf, this._space, contextOptions);
2957
2990
  this._hf.updateConfig({
2958
2991
  context: this.context
2959
2992
  });
@@ -3001,7 +3034,7 @@ var ComputeGraph = class extends import_context.Resource {
3001
3034
  getOrCreateNode(name) {
3002
3035
  (0, import_invariant.invariant)(name.length, void 0, {
3003
3036
  F: __dxlog_file4,
3004
- L: 120,
3037
+ L: 129,
3005
3038
  S: this,
3006
3039
  A: [
3007
3040
  "name.length",
@@ -3014,7 +3047,7 @@ var ComputeGraph = class extends import_context.Resource {
3014
3047
  sheet: name
3015
3048
  }, {
3016
3049
  F: __dxlog_file4,
3017
- L: 122,
3050
+ L: 131,
3018
3051
  S: this,
3019
3052
  C: (f, a) => f(...a)
3020
3053
  });
@@ -3023,7 +3056,7 @@ var ComputeGraph = class extends import_context.Resource {
3023
3056
  const sheetId = this._hf.getSheetId(name);
3024
3057
  (0, import_invariant.invariant)(sheetId !== void 0, void 0, {
3025
3058
  F: __dxlog_file4,
3026
- L: 127,
3059
+ L: 136,
3027
3060
  S: this,
3028
3061
  A: [
3029
3062
  "sheetId !== undefined",
@@ -3091,18 +3124,23 @@ var ComputeGraph = class extends import_context.Resource {
3091
3124
  * E.g., spaceId:objectId() => HELLO()
3092
3125
  */
3093
3126
  mapFunctionBindingFromId(formula) {
3094
- return formula.replace(/(\w+):([a-zA-Z0-9]+)\((.*)\)/g, (match, spaceId, objectId, args) => {
3127
+ const binding = formula.replace(/(\w+):([a-zA-Z0-9]+)\((.*)\)/g, (match, spaceId, objectId, args) => {
3095
3128
  const id = `${spaceId}:${objectId}`;
3096
- if (id.length !== OBJECT_ID_LENGTH) {
3129
+ if (id.length !== import_echo2.FQ_ID_LENGTH) {
3097
3130
  return match;
3098
3131
  }
3099
3132
  const fn = this._remoteFunctions.find((fn2) => (0, import_echo.fullyQualifiedId)(fn2) === id);
3100
3133
  if (fn?.binding) {
3101
3134
  return `${fn.binding}(${args})`;
3102
3135
  } else {
3103
- return match;
3136
+ return UNKNOWN_BINDING;
3104
3137
  }
3105
3138
  });
3139
+ if (binding.startsWith(`=${UNKNOWN_BINDING}`)) {
3140
+ return void 0;
3141
+ } else {
3142
+ return binding;
3143
+ }
3106
3144
  }
3107
3145
  async _open() {
3108
3146
  if (this._space) {
@@ -3203,6 +3241,7 @@ var ComputeGraphRegistry = class extends import_context3.Resource {
3203
3241
  addressFromIndex,
3204
3242
  addressToA1Notation,
3205
3243
  addressToIndex,
3244
+ alignKey,
3206
3245
  cellClassNameForRange,
3207
3246
  compareIndexPositions,
3208
3247
  createSheet,
@@ -3218,6 +3257,7 @@ var ComputeGraphRegistry = class extends import_context3.Resource {
3218
3257
  parseSheetName,
3219
3258
  rangeFromIndex,
3220
3259
  rangeToA1Notation,
3221
- rangeToIndex
3260
+ rangeToIndex,
3261
+ styleKey
3222
3262
  });
3223
- //# sourceMappingURL=chunk-QNFMTK3X.cjs.map
3263
+ //# sourceMappingURL=chunk-O7XR4R7Y.cjs.map