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