@dxos/plugin-sheet 0.8.4-main.28f8d3d → 0.8.4-main.2c6827d

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 (195) hide show
  1. package/dist/lib/browser/{SheetContainer-JZNFXBW3.mjs → SheetContainer-67YEU5EA.mjs} +41 -43
  2. package/dist/lib/browser/SheetContainer-67YEU5EA.mjs.map +7 -0
  3. package/dist/lib/browser/anchor-sort-FCQ5OZZK.mjs +23 -0
  4. package/dist/lib/browser/anchor-sort-FCQ5OZZK.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-BVTHIA5U.mjs → chunk-6WBJDEKF.mjs} +37 -32
  6. package/dist/lib/browser/chunk-6WBJDEKF.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-KJWZUQVA.mjs → chunk-73AV3NH6.mjs} +4 -4
  8. package/dist/lib/browser/chunk-73AV3NH6.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-VTTKAHAY.mjs → chunk-7VEWYJJN.mjs} +2 -2
  10. package/dist/lib/browser/chunk-7VEWYJJN.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-ELAASQ5H.mjs → chunk-DVJ3QW3F.mjs} +215 -207
  12. package/dist/lib/browser/chunk-DVJ3QW3F.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-FWFAAGXL.mjs +28 -0
  14. package/dist/lib/browser/chunk-FWFAAGXL.mjs.map +7 -0
  15. package/dist/lib/browser/compute-graph-registry-AP5RA7W3.mjs +21 -0
  16. package/dist/lib/browser/compute-graph-registry-AP5RA7W3.mjs.map +7 -0
  17. package/dist/lib/browser/index.mjs +20 -21
  18. package/dist/lib/browser/index.mjs.map +3 -3
  19. package/dist/lib/browser/{intent-resolver-SSLPTP5O.mjs → intent-resolver-66OAYVQF.mjs} +9 -9
  20. package/dist/lib/browser/intent-resolver-66OAYVQF.mjs.map +7 -0
  21. package/dist/lib/browser/{markdown-3VPZYNGU.mjs → markdown-B6VKYY2S.mjs} +6 -6
  22. package/dist/lib/browser/{markdown-3VPZYNGU.mjs.map → markdown-B6VKYY2S.mjs.map} +1 -1
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/{react-surface-Y7KTPJW2.mjs → react-surface-HARAYCN7.mjs} +16 -15
  25. package/dist/lib/browser/react-surface-HARAYCN7.mjs.map +7 -0
  26. package/dist/lib/browser/types/index.mjs +4 -12
  27. package/dist/lib/node-esm/{SheetContainer-GOIBAE2P.mjs → SheetContainer-NJONAMYZ.mjs} +41 -43
  28. package/dist/lib/node-esm/SheetContainer-NJONAMYZ.mjs.map +7 -0
  29. package/dist/lib/node-esm/{anchor-sort-YM2UBIKL.mjs → anchor-sort-ZE7IS7SH.mjs} +10 -11
  30. package/dist/lib/node-esm/anchor-sort-ZE7IS7SH.mjs.map +7 -0
  31. package/dist/lib/node-esm/{chunk-6SK5LJ5S.mjs → chunk-44YTKTMP.mjs} +4 -4
  32. package/dist/lib/node-esm/chunk-44YTKTMP.mjs.map +7 -0
  33. package/dist/lib/node-esm/{chunk-4L5CIB7E.mjs → chunk-4H2EHVWE.mjs} +215 -207
  34. package/dist/lib/node-esm/chunk-4H2EHVWE.mjs.map +7 -0
  35. package/dist/lib/node-esm/{chunk-FXRXBHWM.mjs → chunk-4QV4AGWK.mjs} +2 -2
  36. package/dist/lib/node-esm/chunk-4QV4AGWK.mjs.map +7 -0
  37. package/dist/lib/node-esm/chunk-HILDMVPL.mjs +29 -0
  38. package/dist/lib/node-esm/chunk-HILDMVPL.mjs.map +7 -0
  39. package/dist/lib/node-esm/{chunk-56HYMW55.mjs → chunk-S3RJ7IY6.mjs} +37 -32
  40. package/dist/lib/node-esm/chunk-S3RJ7IY6.mjs.map +7 -0
  41. package/dist/lib/node-esm/compute-graph-registry-UMQ5UYCL.mjs +22 -0
  42. package/dist/lib/node-esm/compute-graph-registry-UMQ5UYCL.mjs.map +7 -0
  43. package/dist/lib/node-esm/index.mjs +20 -21
  44. package/dist/lib/node-esm/index.mjs.map +3 -3
  45. package/dist/lib/node-esm/{intent-resolver-5P6DBGK2.mjs → intent-resolver-VNKIMQQT.mjs} +9 -9
  46. package/dist/lib/node-esm/intent-resolver-VNKIMQQT.mjs.map +7 -0
  47. package/dist/lib/node-esm/{markdown-SFDGQWYE.mjs → markdown-VKY7HXU2.mjs} +6 -6
  48. package/dist/lib/node-esm/{markdown-SFDGQWYE.mjs.map → markdown-VKY7HXU2.mjs.map} +1 -1
  49. package/dist/lib/node-esm/meta.json +1 -1
  50. package/dist/lib/node-esm/{react-surface-6Z5FAOBH.mjs → react-surface-KTQWXV2L.mjs} +16 -15
  51. package/dist/lib/node-esm/react-surface-KTQWXV2L.mjs.map +7 -0
  52. package/dist/lib/node-esm/types/index.mjs +4 -12
  53. package/dist/types/src/SheetPlugin.d.ts +1 -1
  54. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  55. package/dist/types/src/capabilities/anchor-sort.d.ts +2 -4
  56. package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
  57. package/dist/types/src/capabilities/compute-graph-registry.d.ts +1 -1
  58. package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -1
  59. package/dist/types/src/capabilities/index.d.ts +5 -10
  60. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  61. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  62. package/dist/types/src/capabilities/markdown.d.ts +1 -3
  63. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  65. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  66. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts +9 -4
  67. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -1
  68. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
  69. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +50 -3
  70. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
  71. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts +11 -20
  72. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +1 -1
  73. package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
  74. package/dist/types/src/components/RangeList/RangeList.d.ts +2 -2
  75. package/dist/types/src/components/RangeList/RangeList.d.ts.map +1 -1
  76. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +2 -2
  77. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
  78. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts +52 -5
  79. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
  80. package/dist/types/src/components/SheetContext/SheetContext.d.ts +2 -2
  81. package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +1 -1
  82. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +3 -4
  83. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
  84. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +86 -4
  85. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
  86. package/dist/types/src/extensions/compute.d.ts +1 -1
  87. package/dist/types/src/extensions/compute.d.ts.map +1 -1
  88. package/dist/types/src/extensions/compute.stories.d.ts +10 -13
  89. package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
  90. package/dist/types/src/extensions/editor/index.d.ts +1 -1
  91. package/dist/types/src/extensions/editor/index.d.ts.map +1 -1
  92. package/dist/types/src/extensions/editor/{extension.d.ts → sheet-extension.d.ts} +1 -1
  93. package/dist/types/src/extensions/editor/sheet-extension.d.ts.map +1 -0
  94. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts +2 -0
  95. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts.map +1 -0
  96. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
  97. package/dist/types/src/meta.d.ts +0 -1
  98. package/dist/types/src/meta.d.ts.map +1 -1
  99. package/dist/types/src/model/sheet-model.d.ts +5 -5
  100. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  101. package/dist/types/src/model/testing.d.ts +2 -2
  102. package/dist/types/src/model/testing.d.ts.map +1 -1
  103. package/dist/types/src/model/useSheetModel.d.ts +2 -2
  104. package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
  105. package/dist/types/src/serializer.d.ts +2 -2
  106. package/dist/types/src/serializer.d.ts.map +1 -1
  107. package/dist/types/src/testing/data.d.ts +2 -2
  108. package/dist/types/src/testing/data.d.ts.map +1 -1
  109. package/dist/types/src/testing/testing.d.ts +27 -3
  110. package/dist/types/src/testing/testing.d.ts.map +1 -1
  111. package/dist/types/src/translations.d.ts +2 -2
  112. package/dist/types/src/translations.d.ts.map +1 -1
  113. package/dist/types/src/types/{schema.d.ts → Sheet.d.ts} +37 -4
  114. package/dist/types/src/types/Sheet.d.ts.map +1 -0
  115. package/dist/types/src/types/index.d.ts +1 -1
  116. package/dist/types/src/types/index.d.ts.map +1 -1
  117. package/dist/types/src/types/sheet-range-types.d.ts +2 -2
  118. package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
  119. package/dist/types/src/types/types.d.ts +7 -16
  120. package/dist/types/src/types/types.d.ts.map +1 -1
  121. package/dist/types/src/types/util.d.ts +9 -10
  122. package/dist/types/src/types/util.d.ts.map +1 -1
  123. package/dist/types/tsconfig.tsbuildinfo +1 -1
  124. package/package.json +65 -64
  125. package/src/SheetPlugin.tsx +70 -61
  126. package/src/capabilities/anchor-sort.ts +7 -8
  127. package/src/capabilities/capabilities.ts +2 -2
  128. package/src/capabilities/compute-graph-registry.ts +8 -13
  129. package/src/capabilities/intent-resolver.ts +4 -4
  130. package/src/capabilities/react-surface.tsx +9 -8
  131. package/src/components/ComputeGraph/compute-graph.stories.tsx +18 -18
  132. package/src/components/FunctionEditor/FunctionEditor.tsx +2 -2
  133. package/src/components/GridSheet/GridSheet.stories.tsx +17 -12
  134. package/src/components/GridSheet/GridSheet.tsx +24 -12
  135. package/src/components/GridSheet/SheetCellEditor.stories.tsx +40 -42
  136. package/src/components/GridSheet/util.ts +9 -3
  137. package/src/components/RangeList/RangeList.tsx +8 -8
  138. package/src/components/SheetContainer/SheetContainer.stories.tsx +45 -42
  139. package/src/components/SheetContainer/SheetContainer.tsx +10 -5
  140. package/src/components/SheetContext/SheetContext.tsx +4 -4
  141. package/src/components/SheetToolbar/SheetToolbar.stories.tsx +17 -12
  142. package/src/components/SheetToolbar/SheetToolbar.tsx +27 -29
  143. package/src/components/SheetToolbar/align.ts +3 -3
  144. package/src/components/SheetToolbar/style.ts +2 -2
  145. package/src/extensions/compute.stories.tsx +29 -26
  146. package/src/extensions/compute.ts +1 -2
  147. package/src/extensions/editor/index.ts +1 -1
  148. package/src/extensions/editor/{extension.test.ts → sheet-extension.test.ts} +1 -1
  149. package/src/integrations/thread-ranges.ts +15 -20
  150. package/src/meta.ts +7 -5
  151. package/src/model/sheet-model.test.ts +4 -4
  152. package/src/model/sheet-model.ts +4 -4
  153. package/src/model/testing.ts +4 -4
  154. package/src/model/useSheetModel.ts +2 -2
  155. package/src/sanity.test.ts +3 -4
  156. package/src/serializer.ts +3 -3
  157. package/src/testing/data.ts +2 -2
  158. package/src/testing/testing.tsx +11 -5
  159. package/src/translations.ts +2 -2
  160. package/src/types/Sheet.ts +103 -0
  161. package/src/types/index.ts +1 -1
  162. package/src/types/sheet-range-types.ts +2 -2
  163. package/src/types/types.ts +6 -16
  164. package/src/types/util.ts +10 -38
  165. package/dist/lib/browser/SheetContainer-JZNFXBW3.mjs.map +0 -7
  166. package/dist/lib/browser/anchor-sort-VRX3YZKT.mjs +0 -24
  167. package/dist/lib/browser/anchor-sort-VRX3YZKT.mjs.map +0 -7
  168. package/dist/lib/browser/chunk-6AKBCBL4.mjs +0 -18
  169. package/dist/lib/browser/chunk-6AKBCBL4.mjs.map +0 -7
  170. package/dist/lib/browser/chunk-BVTHIA5U.mjs.map +0 -7
  171. package/dist/lib/browser/chunk-ELAASQ5H.mjs.map +0 -7
  172. package/dist/lib/browser/chunk-KJWZUQVA.mjs.map +0 -7
  173. package/dist/lib/browser/chunk-VTTKAHAY.mjs.map +0 -7
  174. package/dist/lib/browser/compute-graph-registry-6YJHXORG.mjs +0 -30
  175. package/dist/lib/browser/compute-graph-registry-6YJHXORG.mjs.map +0 -7
  176. package/dist/lib/browser/intent-resolver-SSLPTP5O.mjs.map +0 -7
  177. package/dist/lib/browser/react-surface-Y7KTPJW2.mjs.map +0 -7
  178. package/dist/lib/node-esm/SheetContainer-GOIBAE2P.mjs.map +0 -7
  179. package/dist/lib/node-esm/anchor-sort-YM2UBIKL.mjs.map +0 -7
  180. package/dist/lib/node-esm/chunk-3K5VNYOF.mjs +0 -20
  181. package/dist/lib/node-esm/chunk-3K5VNYOF.mjs.map +0 -7
  182. package/dist/lib/node-esm/chunk-4L5CIB7E.mjs.map +0 -7
  183. package/dist/lib/node-esm/chunk-56HYMW55.mjs.map +0 -7
  184. package/dist/lib/node-esm/chunk-6SK5LJ5S.mjs.map +0 -7
  185. package/dist/lib/node-esm/chunk-FXRXBHWM.mjs.map +0 -7
  186. package/dist/lib/node-esm/compute-graph-registry-ET5KJNLV.mjs +0 -31
  187. package/dist/lib/node-esm/compute-graph-registry-ET5KJNLV.mjs.map +0 -7
  188. package/dist/lib/node-esm/intent-resolver-5P6DBGK2.mjs.map +0 -7
  189. package/dist/lib/node-esm/react-surface-6Z5FAOBH.mjs.map +0 -7
  190. package/dist/types/src/extensions/editor/extension.d.ts.map +0 -1
  191. package/dist/types/src/extensions/editor/extension.test.d.ts +0 -2
  192. package/dist/types/src/extensions/editor/extension.test.d.ts.map +0 -1
  193. package/dist/types/src/types/schema.d.ts.map +0 -1
  194. package/src/types/schema.ts +0 -61
  195. /package/src/extensions/editor/{extension.ts → sheet-extension.ts} +0 -0
@@ -1,11 +1,128 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- SHEET_PLUGIN
4
- } from "./chunk-3K5VNYOF.mjs";
3
+ __export,
4
+ meta
5
+ } from "./chunk-HILDMVPL.mjs";
5
6
 
6
- // src/types/schema.ts
7
- import { Schema } from "effect";
8
- import { Type } from "@dxos/echo";
7
+ // src/types/Sheet.ts
8
+ var Sheet_exports = {};
9
+ __export(Sheet_exports, {
10
+ CellValue: () => CellValue,
11
+ Range: () => Range,
12
+ RowColumnMeta: () => RowColumnMeta,
13
+ Sheet: () => Sheet,
14
+ make: () => make
15
+ });
16
+ import * as Schema from "effect/Schema";
17
+ import { addressFromA1Notation as addressFromA1Notation2, isFormula as isFormula2 } from "@dxos/compute";
18
+ import { Obj, Type } from "@dxos/echo";
19
+ import { FormAnnotation } from "@dxos/echo/internal";
20
+
21
+ // src/types/util.ts
22
+ import { addressFromA1Notation, addressToA1Notation, isFormula } from "@dxos/compute";
23
+ import { randomBytes } from "@dxos/crypto";
24
+ import { invariant } from "@dxos/invariant";
25
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-sheet/src/types/util.ts";
26
+ var MAX_ROWS = 500;
27
+ var MAX_COLS = 676;
28
+ var DEFAULT_ROWS = 50;
29
+ var DEFAULT_COLS = 26;
30
+ var ApiError = class extends Error {
31
+ };
32
+ var ReadonlyException = class extends ApiError {
33
+ };
34
+ var RangeException = class extends ApiError {
35
+ constructor(n) {
36
+ super();
37
+ }
38
+ };
39
+ var createIndex = (length = 8) => {
40
+ const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
41
+ const charactersLength = characters.length;
42
+ const randomBuffer = randomBytes(length);
43
+ return Array.from(randomBuffer, (byte) => characters[byte % charactersLength]).join("");
44
+ };
45
+ var createIndices = (length) => Array.from({
46
+ length
47
+ }).map(() => createIndex());
48
+ var insertIndices = (indices, i, n, max) => {
49
+ if (i + n > max) {
50
+ throw new RangeException(i + n);
51
+ }
52
+ const idx = createIndices(n);
53
+ indices.splice(i, 0, ...idx);
54
+ return idx;
55
+ };
56
+ var initialize = (sheet, { rows = DEFAULT_ROWS, columns = DEFAULT_COLS } = {}) => {
57
+ if (!sheet.rows.length) {
58
+ insertIndices(sheet.rows, 0, rows, MAX_ROWS);
59
+ }
60
+ if (!sheet.columns.length) {
61
+ insertIndices(sheet.columns, 0, columns, MAX_COLS);
62
+ }
63
+ };
64
+ var addressToIndex = (sheet, cell) => {
65
+ return `${sheet.columns[cell.col]}@${sheet.rows[cell.row]}`;
66
+ };
67
+ var addressFromIndex = (sheet, idx) => {
68
+ const [column, row] = idx.split("@");
69
+ return {
70
+ col: sheet.columns.indexOf(column),
71
+ row: sheet.rows.indexOf(row)
72
+ };
73
+ };
74
+ var rangeToIndex = (sheet, range) => {
75
+ return [
76
+ range.from,
77
+ range.to ?? range.from
78
+ ].map((cell) => addressToIndex(sheet, cell)).join(":");
79
+ };
80
+ var rangeFromIndex = (sheet, idx) => {
81
+ const [from, to] = idx.split(":").map((index) => addressFromIndex(sheet, index));
82
+ return {
83
+ from,
84
+ to
85
+ };
86
+ };
87
+ var compareIndexPositions = (sheet, indexA, indexB) => {
88
+ const { row: rowA, col: columnA } = addressFromIndex(sheet, indexA);
89
+ const { row: rowB, col: columnB } = addressFromIndex(sheet, indexB);
90
+ if (rowA !== rowB) {
91
+ return rowA - rowB;
92
+ } else {
93
+ return columnA - columnB;
94
+ }
95
+ };
96
+ var mapFormulaRefsToIndices = (sheet, formula) => {
97
+ invariant(isFormula(formula), void 0, {
98
+ F: __dxlog_file,
99
+ L: 124,
100
+ S: void 0,
101
+ A: [
102
+ "isFormula(formula)",
103
+ ""
104
+ ]
105
+ });
106
+ return formula.replace(/([a-zA-Z]+)([0-9]+)/g, (match) => {
107
+ return addressToIndex(sheet, addressFromA1Notation(match));
108
+ });
109
+ };
110
+ var mapFormulaIndicesToRefs = (sheet, formula) => {
111
+ invariant(isFormula(formula), void 0, {
112
+ F: __dxlog_file,
113
+ L: 134,
114
+ S: void 0,
115
+ A: [
116
+ "isFormula(formula)",
117
+ ""
118
+ ]
119
+ });
120
+ return formula.replace(/([a-zA-Z0-9]+)@([a-zA-Z0-9]+)/g, (idx) => {
121
+ return addressToA1Notation(addressFromIndex(sheet, idx));
122
+ });
123
+ };
124
+
125
+ // src/types/Sheet.ts
9
126
  var CellValue = Schema.Struct({
10
127
  // TODO(burdon): How to store dates (datetime, date, time), percentages, etc.
11
128
  // Consider import/export; natural access for other plugins. Special handling for currency (precision).
@@ -20,33 +137,57 @@ var Range = Schema.Struct({
20
137
  var RowColumnMeta = Schema.Struct({
21
138
  size: Schema.optional(Schema.Number)
22
139
  });
23
- var SheetType = Schema.Struct({
140
+ var Sheet = Schema.Struct({
24
141
  name: Schema.optional(Schema.String),
25
142
  // Sparse map of cells referenced by index.
26
- cells: Schema.mutable(Schema.Record({
143
+ cells: Schema.Record({
27
144
  key: Schema.String,
28
145
  value: Schema.mutable(CellValue)
29
- })),
146
+ }).pipe(Schema.mutable, FormAnnotation.set(false)),
30
147
  // Ordered row indices.
31
- rows: Schema.mutable(Schema.Array(Schema.String)),
148
+ rows: Schema.Array(Schema.String).pipe(Schema.mutable, FormAnnotation.set(false)),
32
149
  // Ordered column indices.
33
- columns: Schema.mutable(Schema.Array(Schema.String)),
150
+ columns: Schema.Array(Schema.String).pipe(Schema.mutable, FormAnnotation.set(false)),
34
151
  // Row metadata referenced by index.
35
- rowMeta: Schema.mutable(Schema.Record({
152
+ rowMeta: Schema.Record({
36
153
  key: Schema.String,
37
154
  value: Schema.mutable(RowColumnMeta)
38
- })),
155
+ }).pipe(Schema.mutable, FormAnnotation.set(false)),
39
156
  // Column metadata referenced by index.
40
- columnMeta: Schema.mutable(Schema.Record({
157
+ columnMeta: Schema.Record({
41
158
  key: Schema.String,
42
159
  value: Schema.mutable(RowColumnMeta)
43
- })),
160
+ }).pipe(Schema.mutable, FormAnnotation.set(false)),
44
161
  // Cell formatting referenced by indexed range.
45
- ranges: Schema.mutable(Schema.Array(Range))
162
+ ranges: Schema.Array(Range).pipe(Schema.mutable, FormAnnotation.set(false))
46
163
  }).pipe(Type.Obj({
47
164
  typename: "dxos.org/type/Sheet",
48
165
  version: "0.1.0"
49
166
  }));
167
+ var make = ({ name, cells = {}, ...size } = {}) => {
168
+ const sheet = Obj.make(Sheet, {
169
+ name,
170
+ cells: {},
171
+ rows: [],
172
+ columns: [],
173
+ rowMeta: {},
174
+ columnMeta: {},
175
+ ranges: []
176
+ });
177
+ initialize(sheet, size);
178
+ if (cells) {
179
+ Object.entries(cells).forEach(([key, { value }]) => {
180
+ const idx = addressToIndex(sheet, addressFromA1Notation2(key));
181
+ if (isFormula2(value)) {
182
+ value = mapFormulaRefsToIndices(sheet, value);
183
+ }
184
+ sheet.cells[idx] = {
185
+ value
186
+ };
187
+ });
188
+ }
189
+ return sheet;
190
+ };
50
191
 
51
192
  // src/types/sheet-range-types.ts
52
193
  var alignKey = "alignment";
@@ -82,18 +223,18 @@ var cellClassNameForRange = ({ key, value }) => {
82
223
  };
83
224
 
84
225
  // src/types/types.ts
85
- import { Schema as Schema2 } from "effect";
226
+ import * as Schema2 from "effect/Schema";
86
227
 
87
228
  // src/model/sheet-model.ts
88
229
  import { Event } from "@dxos/async";
89
- import { DetailedCellError, ExportedCellChange, addressFromA1Notation, addressToA1Notation, createSheetName, isFormula } from "@dxos/compute";
230
+ import { DetailedCellError, ExportedCellChange, addressFromA1Notation as addressFromA1Notation3, addressToA1Notation as addressToA1Notation2, createSheetName, isFormula as isFormula3 } from "@dxos/compute";
90
231
  import { Resource } from "@dxos/context";
91
- import { Obj } from "@dxos/echo";
92
- import { FormatEnum, TypeEnum } from "@dxos/echo-schema";
93
- import { invariant } from "@dxos/invariant";
232
+ import { Obj as Obj2 } from "@dxos/echo";
233
+ import { FormatEnum, TypeEnum } from "@dxos/echo/internal";
234
+ import { invariant as invariant2 } from "@dxos/invariant";
94
235
  import { PublicKey } from "@dxos/keys";
95
236
  import { log } from "@dxos/log";
96
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-sheet/src/model/sheet-model.ts";
237
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-sheet/src/model/sheet-model.ts";
97
238
  var typeMap = {
98
239
  BOOLEAN: {
99
240
  type: TypeEnum.Boolean
@@ -142,12 +283,12 @@ var SheetModel = class extends Resource {
142
283
  _graph;
143
284
  _sheet;
144
285
  _options;
145
- id;
286
+ id = `model-${PublicKey.random().truncate()}`;
146
287
  // Wraps compute node.
147
- update;
288
+ update = new Event();
148
289
  _node;
149
290
  constructor(_graph, _sheet, _options = {}) {
150
- super(), this._graph = _graph, this._sheet = _sheet, this._options = _options, this.id = `model-${PublicKey.random().truncate()}`, this.update = new Event();
291
+ super(), this._graph = _graph, this._sheet = _sheet, this._options = _options;
151
292
  }
152
293
  get graph() {
153
294
  return this._graph;
@@ -171,7 +312,7 @@ var SheetModel = class extends Resource {
171
312
  log("initialize", {
172
313
  id: this.id
173
314
  }, {
174
- F: __dxlog_file,
315
+ F: __dxlog_file2,
175
316
  L: 124,
176
317
  S: this,
177
318
  C: (f, a) => f(...a)
@@ -183,7 +324,7 @@ var SheetModel = class extends Resource {
183
324
  }
184
325
  });
185
326
  this._node = this._graph.getOrCreateNode(createSheetName({
186
- type: Obj.getTypename(this._sheet),
327
+ type: Obj2.getTypename(this._sheet),
187
328
  id: this._sheet.id
188
329
  }));
189
330
  await this._node.open();
@@ -197,8 +338,8 @@ var SheetModel = class extends Resource {
197
338
  * @deprecated
198
339
  */
199
340
  reset() {
200
- invariant(this._node, void 0, {
201
- F: __dxlog_file,
341
+ invariant2(this._node, void 0, {
342
+ F: __dxlog_file2,
202
343
  L: 152,
203
344
  S: this,
204
345
  A: [
@@ -208,8 +349,8 @@ var SheetModel = class extends Resource {
208
349
  });
209
350
  this._node.graph.hf.clearSheet(this._node.sheetId);
210
351
  Object.entries(this._sheet.cells).forEach(([key, { value }]) => {
211
- invariant(this._node, void 0, {
212
- F: __dxlog_file,
352
+ invariant2(this._node, void 0, {
353
+ F: __dxlog_file2,
213
354
  L: 155,
214
355
  S: this,
215
356
  A: [
@@ -218,7 +359,7 @@ var SheetModel = class extends Resource {
218
359
  ]
219
360
  });
220
361
  const { col, row } = addressFromIndex(this._sheet, key);
221
- if (isFormula(value)) {
362
+ if (isFormula3(value)) {
222
363
  const binding = this._graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(this._sheet, value));
223
364
  if (binding) {
224
365
  value = this._graph.mapFormulaToNative(binding);
@@ -327,8 +468,8 @@ var SheetModel = class extends Resource {
327
468
  * Clear range of values.
328
469
  */
329
470
  clear(range) {
330
- invariant(this._node, void 0, {
331
- F: __dxlog_file,
471
+ invariant2(this._node, void 0, {
472
+ F: __dxlog_file2,
332
473
  L: 258,
333
474
  S: this,
334
475
  A: [
@@ -345,8 +486,8 @@ var SheetModel = class extends Resource {
345
486
  });
346
487
  }
347
488
  cut(range) {
348
- invariant(this._node, void 0, {
349
- F: __dxlog_file,
489
+ invariant2(this._node, void 0, {
490
+ F: __dxlog_file2,
350
491
  L: 269,
351
492
  S: this,
352
493
  A: [
@@ -361,8 +502,8 @@ var SheetModel = class extends Resource {
361
502
  });
362
503
  }
363
504
  copy(range) {
364
- invariant(this._node, void 0, {
365
- F: __dxlog_file,
505
+ invariant2(this._node, void 0, {
506
+ F: __dxlog_file2,
366
507
  L: 278,
367
508
  S: this,
368
509
  A: [
@@ -373,8 +514,8 @@ var SheetModel = class extends Resource {
373
514
  this._node.graph.hf.copy(toModelRange(this._node.sheetId, range));
374
515
  }
375
516
  paste(cell) {
376
- invariant(this._node, void 0, {
377
- F: __dxlog_file,
517
+ invariant2(this._node, void 0, {
518
+ F: __dxlog_file2,
378
519
  L: 283,
379
520
  S: this,
380
521
  A: [
@@ -400,8 +541,8 @@ var SheetModel = class extends Resource {
400
541
  }
401
542
  // TODO(burdon): Display undo/redo state.
402
543
  undo() {
403
- invariant(this._node, void 0, {
404
- F: __dxlog_file,
544
+ invariant2(this._node, void 0, {
545
+ F: __dxlog_file2,
405
546
  L: 298,
406
547
  S: this,
407
548
  A: [
@@ -414,8 +555,8 @@ var SheetModel = class extends Resource {
414
555
  }
415
556
  }
416
557
  redo() {
417
- invariant(this._node, void 0, {
418
- F: __dxlog_file,
558
+ invariant2(this._node, void 0, {
559
+ F: __dxlog_file2,
419
560
  L: 306,
420
561
  S: this,
421
562
  A: [
@@ -442,7 +583,7 @@ var SheetModel = class extends Resource {
442
583
  if (value == null) {
443
584
  return void 0;
444
585
  }
445
- if (isFormula(value)) {
586
+ if (isFormula3(value)) {
446
587
  return this._graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(this._sheet, value));
447
588
  } else {
448
589
  return String(value);
@@ -458,8 +599,8 @@ var SheetModel = class extends Resource {
458
599
  * Gets the regular or computed value from the engine.
459
600
  */
460
601
  getValue(cell) {
461
- invariant(this._node, void 0, {
462
- F: __dxlog_file,
602
+ invariant2(this._node, void 0, {
603
+ F: __dxlog_file2,
463
604
  L: 349,
464
605
  S: this,
465
606
  A: [
@@ -474,7 +615,7 @@ var SheetModel = class extends Resource {
474
615
  cell,
475
616
  error: value
476
617
  }, {
477
- F: __dxlog_file,
618
+ F: __dxlog_file2,
478
619
  L: 354,
479
620
  S: this,
480
621
  C: (f, a) => f(...a)
@@ -487,8 +628,8 @@ var SheetModel = class extends Resource {
487
628
  * Get value type.
488
629
  */
489
630
  getValueDescription(cell) {
490
- invariant(this._node, void 0, {
491
- F: __dxlog_file,
631
+ invariant2(this._node, void 0, {
632
+ F: __dxlog_file2,
492
633
  L: 365,
493
634
  S: this,
494
635
  A: [
@@ -504,8 +645,8 @@ var SheetModel = class extends Resource {
504
645
  * Sets the value, updating the sheet and engine.
505
646
  */
506
647
  setValue(cell, value) {
507
- invariant(this._node, void 0, {
508
- F: __dxlog_file,
648
+ invariant2(this._node, void 0, {
649
+ F: __dxlog_file2,
509
650
  L: 375,
510
651
  S: this,
511
652
  A: [
@@ -534,14 +675,14 @@ var SheetModel = class extends Resource {
534
675
  col: cell.col
535
676
  }, [
536
677
  [
537
- isFormula(value) ? this._graph.mapFormulaToNative(value) : value
678
+ isFormula3(value) ? this._graph.mapFormulaToNative(value) : value
538
679
  ]
539
680
  ]);
540
681
  const idx = addressToIndex(this._sheet, cell);
541
682
  if (value === void 0 || value === null) {
542
683
  delete this._sheet.cells[idx];
543
684
  } else {
544
- if (isFormula(value)) {
685
+ if (isFormula3(value)) {
545
686
  value = this._graph.mapFunctionBindingToId(mapFormulaRefsToIndices(this._sheet, value));
546
687
  }
547
688
  this._sheet.cells[idx] = {
@@ -554,7 +695,7 @@ var SheetModel = class extends Resource {
554
695
  */
555
696
  setValues(values) {
556
697
  Object.entries(values).forEach(([key, { value }]) => {
557
- this.setValue(addressFromA1Notation(key), value);
698
+ this.setValue(addressFromA1Notation3(key), value);
558
699
  });
559
700
  }
560
701
  /**
@@ -598,8 +739,8 @@ var SheetModel = class extends Resource {
598
739
  * Map from indices to A1 notation.
599
740
  */
600
741
  mapFormulaIndicesToRefs(formula) {
601
- invariant(isFormula(formula), void 0, {
602
- F: __dxlog_file,
742
+ invariant2(isFormula3(formula), void 0, {
743
+ F: __dxlog_file2,
603
744
  L: 460,
604
745
  S: this,
605
746
  A: [
@@ -608,7 +749,7 @@ var SheetModel = class extends Resource {
608
749
  ]
609
750
  });
610
751
  return formula.replace(/([a-zA-Z0-9]+)@([a-zA-Z0-9]+)/g, (idx) => {
611
- return addressToA1Notation(addressFromIndex(this._sheet, idx));
752
+ return addressToA1Notation2(addressFromIndex(this._sheet, idx));
612
753
  });
613
754
  }
614
755
  //
@@ -624,8 +765,8 @@ var SheetModel = class extends Resource {
624
765
  return new Date(year, month - 1, day, hours, minutes, seconds);
625
766
  }
626
767
  toDateTime(num) {
627
- invariant(this._node, void 0, {
628
- F: __dxlog_file,
768
+ invariant2(this._node, void 0, {
769
+ F: __dxlog_file2,
629
770
  L: 481,
630
771
  S: this,
631
772
  A: [
@@ -636,8 +777,8 @@ var SheetModel = class extends Resource {
636
777
  return this._node.graph.hf.numberToDateTime(num);
637
778
  }
638
779
  toDate(num) {
639
- invariant(this._node, void 0, {
640
- F: __dxlog_file,
780
+ invariant2(this._node, void 0, {
781
+ F: __dxlog_file2,
641
782
  L: 486,
642
783
  S: this,
643
784
  A: [
@@ -648,8 +789,8 @@ var SheetModel = class extends Resource {
648
789
  return this._node.graph.hf.numberToDate(num);
649
790
  }
650
791
  toTime(num) {
651
- invariant(this._node, void 0, {
652
- F: __dxlog_file,
792
+ invariant2(this._node, void 0, {
793
+ F: __dxlog_file2,
653
794
  L: 491,
654
795
  S: this,
655
796
  A: [
@@ -691,13 +832,13 @@ var useSheetModel = (graph, sheet, { readonly } = {}) => {
691
832
 
692
833
  // src/types/types.ts
693
834
  (function(SheetAction2) {
694
- const SHEET_ACTION = `${SHEET_PLUGIN}/action`;
835
+ const SHEET_ACTION = `${meta.id}/action`;
695
836
  class Create extends Schema2.TaggedClass()(`${SHEET_ACTION}/create`, {
696
837
  input: Schema2.Struct({
697
838
  name: Schema2.optional(Schema2.String)
698
839
  }),
699
840
  output: Schema2.Struct({
700
- object: SheetType
841
+ object: Sheet
701
842
  })
702
843
  }) {
703
844
  }
@@ -737,146 +878,7 @@ var useSheetModel = (graph, sheet, { readonly } = {}) => {
737
878
  })(SheetAction || (SheetAction = {}));
738
879
  var SheetAction;
739
880
 
740
- // src/types/util.ts
741
- import { addressFromA1Notation as addressFromA1Notation2, addressToA1Notation as addressToA1Notation2, isFormula as isFormula2 } from "@dxos/compute";
742
- import { randomBytes } from "@dxos/crypto";
743
- import { Obj as Obj2 } from "@dxos/echo";
744
- import { invariant as invariant2 } from "@dxos/invariant";
745
- var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-sheet/src/types/util.ts";
746
- var MAX_ROWS = 500;
747
- var MAX_COLS = 676;
748
- var DEFAULT_ROWS = 50;
749
- var DEFAULT_COLS = 26;
750
- var ApiError = class extends Error {
751
- };
752
- var ReadonlyException = class extends ApiError {
753
- };
754
- var RangeException = class extends ApiError {
755
- constructor(n) {
756
- super();
757
- }
758
- };
759
- var createIndex = (length = 8) => {
760
- const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
761
- const charactersLength = characters.length;
762
- const randomBuffer = randomBytes(length);
763
- return Array.from(randomBuffer, (byte) => characters[byte % charactersLength]).join("");
764
- };
765
- var createIndices = (length) => Array.from({
766
- length
767
- }).map(() => createIndex());
768
- var insertIndices = (indices, i, n, max) => {
769
- if (i + n > max) {
770
- throw new RangeException(i + n);
771
- }
772
- const idx = createIndices(n);
773
- indices.splice(i, 0, ...idx);
774
- return idx;
775
- };
776
- var initialize = (sheet, { rows = DEFAULT_ROWS, columns = DEFAULT_COLS } = {}) => {
777
- if (!sheet.rows.length) {
778
- insertIndices(sheet.rows, 0, rows, MAX_ROWS);
779
- }
780
- if (!sheet.columns.length) {
781
- insertIndices(sheet.columns, 0, columns, MAX_COLS);
782
- }
783
- };
784
- var createSheet = ({ name, cells, ...size } = {}) => {
785
- const sheet = Obj2.make(SheetType, {
786
- name,
787
- cells: {},
788
- rows: [],
789
- columns: [],
790
- rowMeta: {},
791
- columnMeta: {},
792
- ranges: []
793
- });
794
- initialize(sheet, size);
795
- if (cells) {
796
- Object.entries(cells).forEach(([key, { value }]) => {
797
- const idx = addressToIndex(sheet, addressFromA1Notation2(key));
798
- if (isFormula2(value)) {
799
- value = mapFormulaRefsToIndices(sheet, value);
800
- }
801
- sheet.cells[idx] = {
802
- value
803
- };
804
- });
805
- }
806
- return sheet;
807
- };
808
- var addressToIndex = (sheet, cell) => {
809
- return `${sheet.columns[cell.col]}@${sheet.rows[cell.row]}`;
810
- };
811
- var addressFromIndex = (sheet, idx) => {
812
- const [column, row] = idx.split("@");
813
- return {
814
- col: sheet.columns.indexOf(column),
815
- row: sheet.rows.indexOf(row)
816
- };
817
- };
818
- var rangeToIndex = (sheet, range) => {
819
- return [
820
- range.from,
821
- range.to ?? range.from
822
- ].map((cell) => addressToIndex(sheet, cell)).join(":");
823
- };
824
- var rangeFromIndex = (sheet, idx) => {
825
- const [from, to] = idx.split(":").map((index) => addressFromIndex(sheet, index));
826
- return {
827
- from,
828
- to
829
- };
830
- };
831
- var compareIndexPositions = (sheet, indexA, indexB) => {
832
- const { row: rowA, col: columnA } = addressFromIndex(sheet, indexA);
833
- const { row: rowB, col: columnB } = addressFromIndex(sheet, indexB);
834
- if (rowA !== rowB) {
835
- return rowA - rowB;
836
- } else {
837
- return columnA - columnB;
838
- }
839
- };
840
- var mapFormulaRefsToIndices = (sheet, formula) => {
841
- invariant2(isFormula2(formula), void 0, {
842
- F: __dxlog_file2,
843
- L: 152,
844
- S: void 0,
845
- A: [
846
- "isFormula(formula)",
847
- ""
848
- ]
849
- });
850
- return formula.replace(/([a-zA-Z]+)([0-9]+)/g, (match) => {
851
- return addressToIndex(sheet, addressFromA1Notation2(match));
852
- });
853
- };
854
- var mapFormulaIndicesToRefs = (sheet, formula) => {
855
- invariant2(isFormula2(formula), void 0, {
856
- F: __dxlog_file2,
857
- L: 162,
858
- S: void 0,
859
- A: [
860
- "isFormula(formula)",
861
- ""
862
- ]
863
- });
864
- return formula.replace(/([a-zA-Z0-9]+)@([a-zA-Z0-9]+)/g, (idx) => {
865
- return addressToA1Notation2(addressFromIndex(sheet, idx));
866
- });
867
- };
868
-
869
881
  export {
870
- CellValue,
871
- Range,
872
- RowColumnMeta,
873
- SheetType,
874
- alignKey,
875
- commentKey,
876
- styleKey,
877
- cellClassNameForRange,
878
- useSheetModel,
879
- SheetAction,
880
882
  MAX_ROWS,
881
883
  MAX_COLS,
882
884
  DEFAULT_ROWS,
@@ -888,13 +890,19 @@ export {
888
890
  createIndices,
889
891
  insertIndices,
890
892
  initialize,
891
- createSheet,
892
893
  addressToIndex,
893
894
  addressFromIndex,
894
895
  rangeToIndex,
895
896
  rangeFromIndex,
896
897
  compareIndexPositions,
897
898
  mapFormulaRefsToIndices,
898
- mapFormulaIndicesToRefs
899
+ mapFormulaIndicesToRefs,
900
+ Sheet_exports,
901
+ alignKey,
902
+ commentKey,
903
+ styleKey,
904
+ cellClassNameForRange,
905
+ useSheetModel,
906
+ SheetAction
899
907
  };
900
- //# sourceMappingURL=chunk-4L5CIB7E.mjs.map
908
+ //# sourceMappingURL=chunk-4H2EHVWE.mjs.map