@dxos/plugin-sheet 0.8.4-main.67995b8 → 0.8.4-main.70d3990

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 (209) hide show
  1. package/dist/lib/browser/{SheetContainer-KDGD4AVG.mjs → SheetContainer-WDKJPYCB.mjs} +41 -43
  2. package/dist/lib/browser/SheetContainer-WDKJPYCB.mjs.map +7 -0
  3. package/dist/lib/browser/anchor-sort-OWOAGQM6.mjs +23 -0
  4. package/dist/lib/browser/anchor-sort-OWOAGQM6.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-JUOVL3LE.mjs → chunk-6ILNTWSF.mjs} +218 -213
  6. package/dist/lib/browser/chunk-6ILNTWSF.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-7HQX4NQP.mjs → chunk-7VEWYJJN.mjs} +2 -2
  10. package/dist/lib/browser/chunk-7VEWYJJN.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-FWFAAGXL.mjs +28 -0
  12. package/dist/lib/browser/chunk-FWFAAGXL.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-SI4X5GUR.mjs → chunk-GBK6OLCY.mjs} +225 -210
  14. package/dist/lib/browser/chunk-GBK6OLCY.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 +30 -31
  18. package/dist/lib/browser/index.mjs.map +3 -3
  19. package/dist/lib/browser/{intent-resolver-WOJGZMSV.mjs → intent-resolver-OMHQGXFL.mjs} +10 -10
  20. package/dist/lib/browser/intent-resolver-OMHQGXFL.mjs.map +7 -0
  21. package/dist/lib/browser/{markdown-VXMIPUQC.mjs → markdown-B6VKYY2S.mjs} +6 -6
  22. package/dist/lib/browser/markdown-B6VKYY2S.mjs.map +7 -0
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/{react-surface-SE4HGAEH.mjs → react-surface-VPLFBQSV.mjs} +16 -15
  25. package/dist/lib/browser/react-surface-VPLFBQSV.mjs.map +7 -0
  26. package/dist/lib/browser/types/index.mjs +4 -12
  27. package/dist/lib/node-esm/{SheetContainer-RMG24NZC.mjs → SheetContainer-62MZAU6Q.mjs} +41 -43
  28. package/dist/lib/node-esm/SheetContainer-62MZAU6Q.mjs.map +7 -0
  29. package/dist/lib/node-esm/{anchor-sort-CTJGOPET.mjs → anchor-sort-FG3DS4HM.mjs} +10 -11
  30. package/dist/lib/node-esm/anchor-sort-FG3DS4HM.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-Q6UYC4G5.mjs → chunk-4QV4AGWK.mjs} +2 -2
  34. package/dist/lib/node-esm/chunk-4QV4AGWK.mjs.map +7 -0
  35. package/dist/lib/node-esm/chunk-HILDMVPL.mjs +29 -0
  36. package/dist/lib/node-esm/chunk-HILDMVPL.mjs.map +7 -0
  37. package/dist/lib/node-esm/{chunk-CADTJFAS.mjs → chunk-KSHCRK5J.mjs} +225 -210
  38. package/dist/lib/node-esm/chunk-KSHCRK5J.mjs.map +7 -0
  39. package/dist/lib/node-esm/{chunk-IFMIRCZH.mjs → chunk-QI3PNRCD.mjs} +218 -213
  40. package/dist/lib/node-esm/chunk-QI3PNRCD.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 +30 -31
  44. package/dist/lib/node-esm/index.mjs.map +3 -3
  45. package/dist/lib/node-esm/{intent-resolver-PZRXBNIJ.mjs → intent-resolver-DHEHYV3B.mjs} +10 -10
  46. package/dist/lib/node-esm/intent-resolver-DHEHYV3B.mjs.map +7 -0
  47. package/dist/lib/node-esm/{markdown-4VPQJZNZ.mjs → markdown-VKY7HXU2.mjs} +6 -6
  48. package/dist/lib/node-esm/markdown-VKY7HXU2.mjs.map +7 -0
  49. package/dist/lib/node-esm/meta.json +1 -1
  50. package/dist/lib/node-esm/{react-surface-LAU23XBH.mjs → react-surface-YLTZQVNL.mjs} +16 -15
  51. package/dist/lib/node-esm/react-surface-YLTZQVNL.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/intent-resolver.d.ts.map +1 -1
  63. package/dist/types/src/capabilities/markdown.d.ts +1 -3
  64. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  65. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  66. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  67. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
  68. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts +9 -4
  69. package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -1
  70. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
  71. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +51 -3
  72. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
  73. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts +11 -20
  74. package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +1 -1
  75. package/dist/types/src/components/GridSheet/util.d.ts +1 -1
  76. package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
  77. package/dist/types/src/components/RangeList/RangeList.d.ts +2 -2
  78. package/dist/types/src/components/RangeList/RangeList.d.ts.map +1 -1
  79. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +2 -2
  80. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
  81. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts +53 -5
  82. package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
  83. package/dist/types/src/components/SheetContext/SheetContext.d.ts +3 -3
  84. package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +1 -1
  85. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +3 -4
  86. package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
  87. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +88 -4
  88. package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
  89. package/dist/types/src/components/SheetToolbar/align.d.ts +2 -2
  90. package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -1
  91. package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -1
  92. package/dist/types/src/extensions/compute.d.ts +1 -1
  93. package/dist/types/src/extensions/compute.d.ts.map +1 -1
  94. package/dist/types/src/extensions/compute.stories.d.ts +10 -13
  95. package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
  96. package/dist/types/src/extensions/editor/index.d.ts +1 -1
  97. package/dist/types/src/extensions/editor/index.d.ts.map +1 -1
  98. package/dist/types/src/extensions/editor/{extension.d.ts → sheet-extension.d.ts} +1 -1
  99. package/dist/types/src/extensions/editor/sheet-extension.d.ts.map +1 -0
  100. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts +2 -0
  101. package/dist/types/src/extensions/editor/sheet-extension.test.d.ts.map +1 -0
  102. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
  103. package/dist/types/src/meta.d.ts +0 -1
  104. package/dist/types/src/meta.d.ts.map +1 -1
  105. package/dist/types/src/model/sheet-model.d.ts +6 -6
  106. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  107. package/dist/types/src/model/testing.d.ts +2 -2
  108. package/dist/types/src/model/testing.d.ts.map +1 -1
  109. package/dist/types/src/model/useSheetModel.d.ts +2 -2
  110. package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
  111. package/dist/types/src/playwright/sheet-manager.d.ts +1 -1
  112. package/dist/types/src/playwright/sheet-manager.d.ts.map +1 -1
  113. package/dist/types/src/serializer.d.ts +2 -2
  114. package/dist/types/src/serializer.d.ts.map +1 -1
  115. package/dist/types/src/testing/data.d.ts +2 -2
  116. package/dist/types/src/testing/data.d.ts.map +1 -1
  117. package/dist/types/src/testing/testing.d.ts +27 -3
  118. package/dist/types/src/testing/testing.d.ts.map +1 -1
  119. package/dist/types/src/translations.d.ts +3 -2
  120. package/dist/types/src/translations.d.ts.map +1 -1
  121. package/dist/types/src/types/{schema.d.ts → Sheet.d.ts} +38 -5
  122. package/dist/types/src/types/Sheet.d.ts.map +1 -0
  123. package/dist/types/src/types/index.d.ts +1 -1
  124. package/dist/types/src/types/index.d.ts.map +1 -1
  125. package/dist/types/src/types/sheet-range-types.d.ts +2 -2
  126. package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
  127. package/dist/types/src/types/types.d.ts +7 -16
  128. package/dist/types/src/types/types.d.ts.map +1 -1
  129. package/dist/types/src/types/util.d.ts +9 -10
  130. package/dist/types/src/types/util.d.ts.map +1 -1
  131. package/dist/types/tsconfig.tsbuildinfo +1 -1
  132. package/package.json +70 -68
  133. package/src/SheetPlugin.tsx +69 -66
  134. package/src/capabilities/anchor-sort.ts +7 -8
  135. package/src/capabilities/capabilities.ts +2 -2
  136. package/src/capabilities/compute-graph-registry.ts +9 -14
  137. package/src/capabilities/intent-resolver.ts +5 -5
  138. package/src/capabilities/markdown.ts +3 -2
  139. package/src/capabilities/react-surface.tsx +11 -9
  140. package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +1 -1
  141. package/src/components/ComputeGraph/compute-graph.stories.tsx +21 -20
  142. package/src/components/FunctionEditor/FunctionEditor.tsx +2 -2
  143. package/src/components/GridSheet/GridSheet.stories.tsx +19 -13
  144. package/src/components/GridSheet/GridSheet.tsx +39 -26
  145. package/src/components/GridSheet/SheetCellEditor.stories.tsx +41 -43
  146. package/src/components/GridSheet/util.ts +16 -10
  147. package/src/components/RangeList/RangeList.tsx +8 -8
  148. package/src/components/SheetContainer/SheetContainer.stories.tsx +48 -44
  149. package/src/components/SheetContainer/SheetContainer.tsx +10 -5
  150. package/src/components/SheetContext/SheetContext.tsx +5 -5
  151. package/src/components/SheetToolbar/SheetToolbar.stories.tsx +19 -13
  152. package/src/components/SheetToolbar/SheetToolbar.tsx +31 -32
  153. package/src/components/SheetToolbar/align.ts +7 -6
  154. package/src/components/SheetToolbar/style.ts +4 -4
  155. package/src/extensions/compute.stories.tsx +31 -27
  156. package/src/extensions/compute.ts +2 -3
  157. package/src/extensions/editor/index.ts +1 -1
  158. package/src/extensions/editor/{extension.test.ts → sheet-extension.test.ts} +1 -1
  159. package/src/integrations/thread-ranges.ts +15 -20
  160. package/src/meta.ts +7 -5
  161. package/src/model/sheet-model.test.ts +5 -4
  162. package/src/model/sheet-model.ts +16 -16
  163. package/src/model/testing.ts +4 -4
  164. package/src/model/useSheetModel.ts +2 -2
  165. package/src/playwright/sheet-manager.ts +1 -1
  166. package/src/playwright/sheet.spec.ts +1 -1
  167. package/src/sanity.test.ts +4 -5
  168. package/src/serializer.ts +4 -4
  169. package/src/testing/data.ts +2 -2
  170. package/src/testing/testing.tsx +11 -5
  171. package/src/translations.ts +3 -2
  172. package/src/types/Sheet.ts +103 -0
  173. package/src/types/index.ts +1 -1
  174. package/src/types/sheet-range-types.ts +2 -2
  175. package/src/types/types.ts +6 -15
  176. package/src/types/util.ts +13 -41
  177. package/dist/lib/browser/SheetContainer-KDGD4AVG.mjs.map +0 -7
  178. package/dist/lib/browser/anchor-sort-VHURGBOY.mjs +0 -24
  179. package/dist/lib/browser/anchor-sort-VHURGBOY.mjs.map +0 -7
  180. package/dist/lib/browser/chunk-6AKBCBL4.mjs +0 -18
  181. package/dist/lib/browser/chunk-6AKBCBL4.mjs.map +0 -7
  182. package/dist/lib/browser/chunk-7HQX4NQP.mjs.map +0 -7
  183. package/dist/lib/browser/chunk-JUOVL3LE.mjs.map +0 -7
  184. package/dist/lib/browser/chunk-KJWZUQVA.mjs.map +0 -7
  185. package/dist/lib/browser/chunk-SI4X5GUR.mjs.map +0 -7
  186. package/dist/lib/browser/compute-graph-registry-VG7VP7IV.mjs +0 -30
  187. package/dist/lib/browser/compute-graph-registry-VG7VP7IV.mjs.map +0 -7
  188. package/dist/lib/browser/intent-resolver-WOJGZMSV.mjs.map +0 -7
  189. package/dist/lib/browser/markdown-VXMIPUQC.mjs.map +0 -7
  190. package/dist/lib/browser/react-surface-SE4HGAEH.mjs.map +0 -7
  191. package/dist/lib/node-esm/SheetContainer-RMG24NZC.mjs.map +0 -7
  192. package/dist/lib/node-esm/anchor-sort-CTJGOPET.mjs.map +0 -7
  193. package/dist/lib/node-esm/chunk-3K5VNYOF.mjs +0 -20
  194. package/dist/lib/node-esm/chunk-3K5VNYOF.mjs.map +0 -7
  195. package/dist/lib/node-esm/chunk-6SK5LJ5S.mjs.map +0 -7
  196. package/dist/lib/node-esm/chunk-CADTJFAS.mjs.map +0 -7
  197. package/dist/lib/node-esm/chunk-IFMIRCZH.mjs.map +0 -7
  198. package/dist/lib/node-esm/chunk-Q6UYC4G5.mjs.map +0 -7
  199. package/dist/lib/node-esm/compute-graph-registry-3K3Q2A5T.mjs +0 -31
  200. package/dist/lib/node-esm/compute-graph-registry-3K3Q2A5T.mjs.map +0 -7
  201. package/dist/lib/node-esm/intent-resolver-PZRXBNIJ.mjs.map +0 -7
  202. package/dist/lib/node-esm/markdown-4VPQJZNZ.mjs.map +0 -7
  203. package/dist/lib/node-esm/react-surface-LAU23XBH.mjs.map +0 -7
  204. package/dist/types/src/extensions/editor/extension.d.ts.map +0 -1
  205. package/dist/types/src/extensions/editor/extension.test.d.ts +0 -2
  206. package/dist/types/src/extensions/editor/extension.test.d.ts.map +0 -1
  207. package/dist/types/src/types/schema.d.ts.map +0 -1
  208. package/src/types/schema.ts +0 -61
  209. /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 { FormInputAnnotation } 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, FormInputAnnotation.set(false)),
30
147
  // Ordered row indices.
31
- rows: Schema.mutable(Schema.Array(Schema.String)),
148
+ rows: Schema.Array(Schema.String).pipe(Schema.mutable, FormInputAnnotation.set(false)),
32
149
  // Ordered column indices.
33
- columns: Schema.mutable(Schema.Array(Schema.String)),
150
+ columns: Schema.Array(Schema.String).pipe(Schema.mutable, FormInputAnnotation.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, FormInputAnnotation.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, FormInputAnnotation.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, FormInputAnnotation.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 { addressFromA1Notation, addressToA1Notation, createSheetName, isFormula, DetailedCellError, ExportedCellChange } 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 { Format, 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
@@ -103,23 +244,23 @@ var typeMap = {
103
244
  },
104
245
  NUMBER_PERCENT: {
105
246
  type: TypeEnum.Number,
106
- format: FormatEnum.Percent
247
+ format: Format.TypeFormat.Percent
107
248
  },
108
249
  NUMBER_CURRENCY: {
109
250
  type: TypeEnum.Number,
110
- format: FormatEnum.Currency
251
+ format: Format.TypeFormat.Currency
111
252
  },
112
253
  NUMBER_DATETIME: {
113
254
  type: TypeEnum.String,
114
- format: FormatEnum.DateTime
255
+ format: Format.TypeFormat.DateTime
115
256
  },
116
257
  NUMBER_DATE: {
117
258
  type: TypeEnum.String,
118
- format: FormatEnum.Date
259
+ format: Format.TypeFormat.Date
119
260
  },
120
261
  NUMBER_TIME: {
121
262
  type: TypeEnum.String,
122
- format: FormatEnum.Time
263
+ format: Format.TypeFormat.Time
123
264
  }
124
265
  };
125
266
  var getTopLeft = (range) => {
@@ -139,8 +280,15 @@ var toModelRange = (sheet, range) => ({
139
280
  end: toSimpleCellAddress(sheet, range.to ?? range.from)
140
281
  });
141
282
  var SheetModel = class extends Resource {
283
+ _graph;
284
+ _sheet;
285
+ _options;
286
+ id = `model-${PublicKey.random().truncate()}`;
287
+ // Wraps compute node.
288
+ update = new Event();
289
+ _node;
142
290
  constructor(_graph, _sheet, _options = {}) {
143
- 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;
144
292
  }
145
293
  get graph() {
146
294
  return this._graph;
@@ -164,7 +312,7 @@ var SheetModel = class extends Resource {
164
312
  log("initialize", {
165
313
  id: this.id
166
314
  }, {
167
- F: __dxlog_file,
315
+ F: __dxlog_file2,
168
316
  L: 124,
169
317
  S: this,
170
318
  C: (f, a) => f(...a)
@@ -176,7 +324,7 @@ var SheetModel = class extends Resource {
176
324
  }
177
325
  });
178
326
  this._node = this._graph.getOrCreateNode(createSheetName({
179
- type: Obj.getTypename(this._sheet),
327
+ type: Obj2.getTypename(this._sheet),
180
328
  id: this._sheet.id
181
329
  }));
182
330
  await this._node.open();
@@ -190,8 +338,8 @@ var SheetModel = class extends Resource {
190
338
  * @deprecated
191
339
  */
192
340
  reset() {
193
- invariant(this._node, void 0, {
194
- F: __dxlog_file,
341
+ invariant2(this._node, void 0, {
342
+ F: __dxlog_file2,
195
343
  L: 152,
196
344
  S: this,
197
345
  A: [
@@ -201,8 +349,8 @@ var SheetModel = class extends Resource {
201
349
  });
202
350
  this._node.graph.hf.clearSheet(this._node.sheetId);
203
351
  Object.entries(this._sheet.cells).forEach(([key, { value }]) => {
204
- invariant(this._node, void 0, {
205
- F: __dxlog_file,
352
+ invariant2(this._node, void 0, {
353
+ F: __dxlog_file2,
206
354
  L: 155,
207
355
  S: this,
208
356
  A: [
@@ -211,7 +359,7 @@ var SheetModel = class extends Resource {
211
359
  ]
212
360
  });
213
361
  const { col, row } = addressFromIndex(this._sheet, key);
214
- if (isFormula(value)) {
362
+ if (isFormula3(value)) {
215
363
  const binding = this._graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(this._sheet, value));
216
364
  if (binding) {
217
365
  value = this._graph.mapFormulaToNative(binding);
@@ -320,8 +468,8 @@ var SheetModel = class extends Resource {
320
468
  * Clear range of values.
321
469
  */
322
470
  clear(range) {
323
- invariant(this._node, void 0, {
324
- F: __dxlog_file,
471
+ invariant2(this._node, void 0, {
472
+ F: __dxlog_file2,
325
473
  L: 258,
326
474
  S: this,
327
475
  A: [
@@ -338,8 +486,8 @@ var SheetModel = class extends Resource {
338
486
  });
339
487
  }
340
488
  cut(range) {
341
- invariant(this._node, void 0, {
342
- F: __dxlog_file,
489
+ invariant2(this._node, void 0, {
490
+ F: __dxlog_file2,
343
491
  L: 269,
344
492
  S: this,
345
493
  A: [
@@ -354,8 +502,8 @@ var SheetModel = class extends Resource {
354
502
  });
355
503
  }
356
504
  copy(range) {
357
- invariant(this._node, void 0, {
358
- F: __dxlog_file,
505
+ invariant2(this._node, void 0, {
506
+ F: __dxlog_file2,
359
507
  L: 278,
360
508
  S: this,
361
509
  A: [
@@ -366,8 +514,8 @@ var SheetModel = class extends Resource {
366
514
  this._node.graph.hf.copy(toModelRange(this._node.sheetId, range));
367
515
  }
368
516
  paste(cell) {
369
- invariant(this._node, void 0, {
370
- F: __dxlog_file,
517
+ invariant2(this._node, void 0, {
518
+ F: __dxlog_file2,
371
519
  L: 283,
372
520
  S: this,
373
521
  A: [
@@ -393,8 +541,8 @@ var SheetModel = class extends Resource {
393
541
  }
394
542
  // TODO(burdon): Display undo/redo state.
395
543
  undo() {
396
- invariant(this._node, void 0, {
397
- F: __dxlog_file,
544
+ invariant2(this._node, void 0, {
545
+ F: __dxlog_file2,
398
546
  L: 298,
399
547
  S: this,
400
548
  A: [
@@ -407,8 +555,8 @@ var SheetModel = class extends Resource {
407
555
  }
408
556
  }
409
557
  redo() {
410
- invariant(this._node, void 0, {
411
- F: __dxlog_file,
558
+ invariant2(this._node, void 0, {
559
+ F: __dxlog_file2,
412
560
  L: 306,
413
561
  S: this,
414
562
  A: [
@@ -435,7 +583,7 @@ var SheetModel = class extends Resource {
435
583
  if (value == null) {
436
584
  return void 0;
437
585
  }
438
- if (isFormula(value)) {
586
+ if (isFormula3(value)) {
439
587
  return this._graph.mapFunctionBindingFromId(mapFormulaIndicesToRefs(this._sheet, value));
440
588
  } else {
441
589
  return String(value);
@@ -451,8 +599,8 @@ var SheetModel = class extends Resource {
451
599
  * Gets the regular or computed value from the engine.
452
600
  */
453
601
  getValue(cell) {
454
- invariant(this._node, void 0, {
455
- F: __dxlog_file,
602
+ invariant2(this._node, void 0, {
603
+ F: __dxlog_file2,
456
604
  L: 349,
457
605
  S: this,
458
606
  A: [
@@ -467,7 +615,7 @@ var SheetModel = class extends Resource {
467
615
  cell,
468
616
  error: value
469
617
  }, {
470
- F: __dxlog_file,
618
+ F: __dxlog_file2,
471
619
  L: 354,
472
620
  S: this,
473
621
  C: (f, a) => f(...a)
@@ -480,8 +628,8 @@ var SheetModel = class extends Resource {
480
628
  * Get value type.
481
629
  */
482
630
  getValueDescription(cell) {
483
- invariant(this._node, void 0, {
484
- F: __dxlog_file,
631
+ invariant2(this._node, void 0, {
632
+ F: __dxlog_file2,
485
633
  L: 365,
486
634
  S: this,
487
635
  A: [
@@ -497,8 +645,8 @@ var SheetModel = class extends Resource {
497
645
  * Sets the value, updating the sheet and engine.
498
646
  */
499
647
  setValue(cell, value) {
500
- invariant(this._node, void 0, {
501
- F: __dxlog_file,
648
+ invariant2(this._node, void 0, {
649
+ F: __dxlog_file2,
502
650
  L: 375,
503
651
  S: this,
504
652
  A: [
@@ -527,14 +675,14 @@ var SheetModel = class extends Resource {
527
675
  col: cell.col
528
676
  }, [
529
677
  [
530
- isFormula(value) ? this._graph.mapFormulaToNative(value) : value
678
+ isFormula3(value) ? this._graph.mapFormulaToNative(value) : value
531
679
  ]
532
680
  ]);
533
681
  const idx = addressToIndex(this._sheet, cell);
534
682
  if (value === void 0 || value === null) {
535
683
  delete this._sheet.cells[idx];
536
684
  } else {
537
- if (isFormula(value)) {
685
+ if (isFormula3(value)) {
538
686
  value = this._graph.mapFunctionBindingToId(mapFormulaRefsToIndices(this._sheet, value));
539
687
  }
540
688
  this._sheet.cells[idx] = {
@@ -547,7 +695,7 @@ var SheetModel = class extends Resource {
547
695
  */
548
696
  setValues(values) {
549
697
  Object.entries(values).forEach(([key, { value }]) => {
550
- this.setValue(addressFromA1Notation(key), value);
698
+ this.setValue(addressFromA1Notation3(key), value);
551
699
  });
552
700
  }
553
701
  /**
@@ -591,8 +739,8 @@ var SheetModel = class extends Resource {
591
739
  * Map from indices to A1 notation.
592
740
  */
593
741
  mapFormulaIndicesToRefs(formula) {
594
- invariant(isFormula(formula), void 0, {
595
- F: __dxlog_file,
742
+ invariant2(isFormula3(formula), void 0, {
743
+ F: __dxlog_file2,
596
744
  L: 460,
597
745
  S: this,
598
746
  A: [
@@ -601,7 +749,7 @@ var SheetModel = class extends Resource {
601
749
  ]
602
750
  });
603
751
  return formula.replace(/([a-zA-Z0-9]+)@([a-zA-Z0-9]+)/g, (idx) => {
604
- return addressToA1Notation(addressFromIndex(this._sheet, idx));
752
+ return addressToA1Notation2(addressFromIndex(this._sheet, idx));
605
753
  });
606
754
  }
607
755
  //
@@ -617,8 +765,8 @@ var SheetModel = class extends Resource {
617
765
  return new Date(year, month - 1, day, hours, minutes, seconds);
618
766
  }
619
767
  toDateTime(num) {
620
- invariant(this._node, void 0, {
621
- F: __dxlog_file,
768
+ invariant2(this._node, void 0, {
769
+ F: __dxlog_file2,
622
770
  L: 481,
623
771
  S: this,
624
772
  A: [
@@ -629,8 +777,8 @@ var SheetModel = class extends Resource {
629
777
  return this._node.graph.hf.numberToDateTime(num);
630
778
  }
631
779
  toDate(num) {
632
- invariant(this._node, void 0, {
633
- F: __dxlog_file,
780
+ invariant2(this._node, void 0, {
781
+ F: __dxlog_file2,
634
782
  L: 486,
635
783
  S: this,
636
784
  A: [
@@ -641,8 +789,8 @@ var SheetModel = class extends Resource {
641
789
  return this._node.graph.hf.numberToDate(num);
642
790
  }
643
791
  toTime(num) {
644
- invariant(this._node, void 0, {
645
- F: __dxlog_file,
792
+ invariant2(this._node, void 0, {
793
+ F: __dxlog_file2,
646
794
  L: 491,
647
795
  S: this,
648
796
  A: [
@@ -684,13 +832,13 @@ var useSheetModel = (graph, sheet, { readonly } = {}) => {
684
832
 
685
833
  // src/types/types.ts
686
834
  (function(SheetAction2) {
687
- const SHEET_ACTION = `${SHEET_PLUGIN}/action`;
835
+ const SHEET_ACTION = `${meta.id}/action`;
688
836
  class Create extends Schema2.TaggedClass()(`${SHEET_ACTION}/create`, {
689
837
  input: Schema2.Struct({
690
838
  name: Schema2.optional(Schema2.String)
691
839
  }),
692
840
  output: Schema2.Struct({
693
- object: SheetType
841
+ object: Sheet
694
842
  })
695
843
  }) {
696
844
  }
@@ -730,146 +878,7 @@ var useSheetModel = (graph, sheet, { readonly } = {}) => {
730
878
  })(SheetAction || (SheetAction = {}));
731
879
  var SheetAction;
732
880
 
733
- // src/types/util.ts
734
- import { addressFromA1Notation as addressFromA1Notation2, addressToA1Notation as addressToA1Notation2, isFormula as isFormula2 } from "@dxos/compute";
735
- import { randomBytes } from "@dxos/crypto";
736
- import { Obj as Obj2 } from "@dxos/echo";
737
- import { invariant as invariant2 } from "@dxos/invariant";
738
- var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-sheet/src/types/util.ts";
739
- var MAX_ROWS = 500;
740
- var MAX_COLS = 676;
741
- var DEFAULT_ROWS = 50;
742
- var DEFAULT_COLS = 26;
743
- var ApiError = class extends Error {
744
- };
745
- var ReadonlyException = class extends ApiError {
746
- };
747
- var RangeException = class extends ApiError {
748
- constructor(n) {
749
- super();
750
- }
751
- };
752
- var createIndex = (length = 8) => {
753
- const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
754
- const charactersLength = characters.length;
755
- const randomBuffer = randomBytes(length);
756
- return Array.from(randomBuffer, (byte) => characters[byte % charactersLength]).join("");
757
- };
758
- var createIndices = (length) => Array.from({
759
- length
760
- }).map(() => createIndex());
761
- var insertIndices = (indices, i, n, max) => {
762
- if (i + n > max) {
763
- throw new RangeException(i + n);
764
- }
765
- const idx = createIndices(n);
766
- indices.splice(i, 0, ...idx);
767
- return idx;
768
- };
769
- var initialize = (sheet, { rows = DEFAULT_ROWS, columns = DEFAULT_COLS } = {}) => {
770
- if (!sheet.rows.length) {
771
- insertIndices(sheet.rows, 0, rows, MAX_ROWS);
772
- }
773
- if (!sheet.columns.length) {
774
- insertIndices(sheet.columns, 0, columns, MAX_COLS);
775
- }
776
- };
777
- var createSheet = ({ name, cells, ...size } = {}) => {
778
- const sheet = Obj2.make(SheetType, {
779
- name,
780
- cells: {},
781
- rows: [],
782
- columns: [],
783
- rowMeta: {},
784
- columnMeta: {},
785
- ranges: []
786
- });
787
- initialize(sheet, size);
788
- if (cells) {
789
- Object.entries(cells).forEach(([key, { value }]) => {
790
- const idx = addressToIndex(sheet, addressFromA1Notation2(key));
791
- if (isFormula2(value)) {
792
- value = mapFormulaRefsToIndices(sheet, value);
793
- }
794
- sheet.cells[idx] = {
795
- value
796
- };
797
- });
798
- }
799
- return sheet;
800
- };
801
- var addressToIndex = (sheet, cell) => {
802
- return `${sheet.columns[cell.col]}@${sheet.rows[cell.row]}`;
803
- };
804
- var addressFromIndex = (sheet, idx) => {
805
- const [column, row] = idx.split("@");
806
- return {
807
- col: sheet.columns.indexOf(column),
808
- row: sheet.rows.indexOf(row)
809
- };
810
- };
811
- var rangeToIndex = (sheet, range) => {
812
- return [
813
- range.from,
814
- range.to ?? range.from
815
- ].map((cell) => addressToIndex(sheet, cell)).join(":");
816
- };
817
- var rangeFromIndex = (sheet, idx) => {
818
- const [from, to] = idx.split(":").map((index) => addressFromIndex(sheet, index));
819
- return {
820
- from,
821
- to
822
- };
823
- };
824
- var compareIndexPositions = (sheet, indexA, indexB) => {
825
- const { row: rowA, col: columnA } = addressFromIndex(sheet, indexA);
826
- const { row: rowB, col: columnB } = addressFromIndex(sheet, indexB);
827
- if (rowA !== rowB) {
828
- return rowA - rowB;
829
- } else {
830
- return columnA - columnB;
831
- }
832
- };
833
- var mapFormulaRefsToIndices = (sheet, formula) => {
834
- invariant2(isFormula2(formula), void 0, {
835
- F: __dxlog_file2,
836
- L: 152,
837
- S: void 0,
838
- A: [
839
- "isFormula(formula)",
840
- ""
841
- ]
842
- });
843
- return formula.replace(/([a-zA-Z]+)([0-9]+)/g, (match) => {
844
- return addressToIndex(sheet, addressFromA1Notation2(match));
845
- });
846
- };
847
- var mapFormulaIndicesToRefs = (sheet, formula) => {
848
- invariant2(isFormula2(formula), void 0, {
849
- F: __dxlog_file2,
850
- L: 162,
851
- S: void 0,
852
- A: [
853
- "isFormula(formula)",
854
- ""
855
- ]
856
- });
857
- return formula.replace(/([a-zA-Z0-9]+)@([a-zA-Z0-9]+)/g, (idx) => {
858
- return addressToA1Notation2(addressFromIndex(sheet, idx));
859
- });
860
- };
861
-
862
881
  export {
863
- CellValue,
864
- Range,
865
- RowColumnMeta,
866
- SheetType,
867
- alignKey,
868
- commentKey,
869
- styleKey,
870
- cellClassNameForRange,
871
- useSheetModel,
872
- SheetAction,
873
882
  MAX_ROWS,
874
883
  MAX_COLS,
875
884
  DEFAULT_ROWS,
@@ -881,13 +890,19 @@ export {
881
890
  createIndices,
882
891
  insertIndices,
883
892
  initialize,
884
- createSheet,
885
893
  addressToIndex,
886
894
  addressFromIndex,
887
895
  rangeToIndex,
888
896
  rangeFromIndex,
889
897
  compareIndexPositions,
890
898
  mapFormulaRefsToIndices,
891
- mapFormulaIndicesToRefs
899
+ mapFormulaIndicesToRefs,
900
+ Sheet_exports,
901
+ alignKey,
902
+ commentKey,
903
+ styleKey,
904
+ cellClassNameForRange,
905
+ useSheetModel,
906
+ SheetAction
892
907
  };
893
- //# sourceMappingURL=chunk-CADTJFAS.mjs.map
908
+ //# sourceMappingURL=chunk-KSHCRK5J.mjs.map