@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.
- package/dist/lib/browser/{SheetContainer-KDGD4AVG.mjs → SheetContainer-WDKJPYCB.mjs} +41 -43
- package/dist/lib/browser/SheetContainer-WDKJPYCB.mjs.map +7 -0
- package/dist/lib/browser/anchor-sort-OWOAGQM6.mjs +23 -0
- package/dist/lib/browser/anchor-sort-OWOAGQM6.mjs.map +7 -0
- package/dist/lib/browser/{chunk-JUOVL3LE.mjs → chunk-6ILNTWSF.mjs} +218 -213
- package/dist/lib/browser/chunk-6ILNTWSF.mjs.map +7 -0
- package/dist/lib/browser/{chunk-KJWZUQVA.mjs → chunk-73AV3NH6.mjs} +4 -4
- package/dist/lib/browser/chunk-73AV3NH6.mjs.map +7 -0
- package/dist/lib/browser/{chunk-7HQX4NQP.mjs → chunk-7VEWYJJN.mjs} +2 -2
- package/dist/lib/browser/chunk-7VEWYJJN.mjs.map +7 -0
- package/dist/lib/browser/chunk-FWFAAGXL.mjs +28 -0
- package/dist/lib/browser/chunk-FWFAAGXL.mjs.map +7 -0
- package/dist/lib/browser/{chunk-SI4X5GUR.mjs → chunk-GBK6OLCY.mjs} +225 -210
- package/dist/lib/browser/chunk-GBK6OLCY.mjs.map +7 -0
- package/dist/lib/browser/compute-graph-registry-AP5RA7W3.mjs +21 -0
- package/dist/lib/browser/compute-graph-registry-AP5RA7W3.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +30 -31
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-WOJGZMSV.mjs → intent-resolver-OMHQGXFL.mjs} +10 -10
- package/dist/lib/browser/intent-resolver-OMHQGXFL.mjs.map +7 -0
- package/dist/lib/browser/{markdown-VXMIPUQC.mjs → markdown-B6VKYY2S.mjs} +6 -6
- package/dist/lib/browser/markdown-B6VKYY2S.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-SE4HGAEH.mjs → react-surface-VPLFBQSV.mjs} +16 -15
- package/dist/lib/browser/react-surface-VPLFBQSV.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +4 -12
- package/dist/lib/node-esm/{SheetContainer-RMG24NZC.mjs → SheetContainer-62MZAU6Q.mjs} +41 -43
- package/dist/lib/node-esm/SheetContainer-62MZAU6Q.mjs.map +7 -0
- package/dist/lib/node-esm/{anchor-sort-CTJGOPET.mjs → anchor-sort-FG3DS4HM.mjs} +10 -11
- package/dist/lib/node-esm/anchor-sort-FG3DS4HM.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-6SK5LJ5S.mjs → chunk-44YTKTMP.mjs} +4 -4
- package/dist/lib/node-esm/chunk-44YTKTMP.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-Q6UYC4G5.mjs → chunk-4QV4AGWK.mjs} +2 -2
- package/dist/lib/node-esm/chunk-4QV4AGWK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HILDMVPL.mjs +29 -0
- package/dist/lib/node-esm/chunk-HILDMVPL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-CADTJFAS.mjs → chunk-KSHCRK5J.mjs} +225 -210
- package/dist/lib/node-esm/chunk-KSHCRK5J.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-IFMIRCZH.mjs → chunk-QI3PNRCD.mjs} +218 -213
- package/dist/lib/node-esm/chunk-QI3PNRCD.mjs.map +7 -0
- package/dist/lib/node-esm/compute-graph-registry-UMQ5UYCL.mjs +22 -0
- package/dist/lib/node-esm/compute-graph-registry-UMQ5UYCL.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +30 -31
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-PZRXBNIJ.mjs → intent-resolver-DHEHYV3B.mjs} +10 -10
- package/dist/lib/node-esm/intent-resolver-DHEHYV3B.mjs.map +7 -0
- package/dist/lib/node-esm/{markdown-4VPQJZNZ.mjs → markdown-VKY7HXU2.mjs} +6 -6
- package/dist/lib/node-esm/markdown-VKY7HXU2.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-LAU23XBH.mjs → react-surface-YLTZQVNL.mjs} +16 -15
- package/dist/lib/node-esm/react-surface-YLTZQVNL.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +4 -12
- package/dist/types/src/SheetPlugin.d.ts +1 -1
- package/dist/types/src/SheetPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/anchor-sort.d.ts +2 -4
- package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
- package/dist/types/src/capabilities/compute-graph-registry.d.ts +1 -1
- package/dist/types/src/capabilities/compute-graph-registry.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +5 -10
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown.d.ts +1 -3
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
- package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts +9 -4
- package/dist/types/src/components/ComputeGraph/compute-graph.stories.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts +51 -3
- package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts +11 -20
- package/dist/types/src/components/GridSheet/SheetCellEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/GridSheet/util.d.ts +1 -1
- package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
- package/dist/types/src/components/RangeList/RangeList.d.ts +2 -2
- package/dist/types/src/components/RangeList/RangeList.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +2 -2
- package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
- package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts +53 -5
- package/dist/types/src/components/SheetContainer/SheetContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetContext/SheetContext.d.ts +3 -3
- package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts +3 -4
- package/dist/types/src/components/SheetToolbar/SheetToolbar.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts +88 -4
- package/dist/types/src/components/SheetToolbar/SheetToolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/align.d.ts +2 -2
- package/dist/types/src/components/SheetToolbar/align.d.ts.map +1 -1
- package/dist/types/src/components/SheetToolbar/style.d.ts.map +1 -1
- package/dist/types/src/extensions/compute.d.ts +1 -1
- package/dist/types/src/extensions/compute.d.ts.map +1 -1
- package/dist/types/src/extensions/compute.stories.d.ts +10 -13
- package/dist/types/src/extensions/compute.stories.d.ts.map +1 -1
- package/dist/types/src/extensions/editor/index.d.ts +1 -1
- package/dist/types/src/extensions/editor/index.d.ts.map +1 -1
- package/dist/types/src/extensions/editor/{extension.d.ts → sheet-extension.d.ts} +1 -1
- package/dist/types/src/extensions/editor/sheet-extension.d.ts.map +1 -0
- package/dist/types/src/extensions/editor/sheet-extension.test.d.ts +2 -0
- package/dist/types/src/extensions/editor/sheet-extension.test.d.ts.map +1 -0
- package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +0 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/model/sheet-model.d.ts +6 -6
- package/dist/types/src/model/sheet-model.d.ts.map +1 -1
- package/dist/types/src/model/testing.d.ts +2 -2
- package/dist/types/src/model/testing.d.ts.map +1 -1
- package/dist/types/src/model/useSheetModel.d.ts +2 -2
- package/dist/types/src/model/useSheetModel.d.ts.map +1 -1
- package/dist/types/src/playwright/sheet-manager.d.ts +1 -1
- package/dist/types/src/playwright/sheet-manager.d.ts.map +1 -1
- package/dist/types/src/serializer.d.ts +2 -2
- package/dist/types/src/serializer.d.ts.map +1 -1
- package/dist/types/src/testing/data.d.ts +2 -2
- package/dist/types/src/testing/data.d.ts.map +1 -1
- package/dist/types/src/testing/testing.d.ts +27 -3
- package/dist/types/src/testing/testing.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +3 -2
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/{schema.d.ts → Sheet.d.ts} +38 -5
- package/dist/types/src/types/Sheet.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +1 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/sheet-range-types.d.ts +2 -2
- package/dist/types/src/types/sheet-range-types.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +7 -16
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/types/util.d.ts +9 -10
- package/dist/types/src/types/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +70 -68
- package/src/SheetPlugin.tsx +69 -66
- package/src/capabilities/anchor-sort.ts +7 -8
- package/src/capabilities/capabilities.ts +2 -2
- package/src/capabilities/compute-graph-registry.ts +9 -14
- package/src/capabilities/intent-resolver.ts +5 -5
- package/src/capabilities/markdown.ts +3 -2
- package/src/capabilities/react-surface.tsx +11 -9
- package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +1 -1
- package/src/components/ComputeGraph/compute-graph.stories.tsx +21 -20
- package/src/components/FunctionEditor/FunctionEditor.tsx +2 -2
- package/src/components/GridSheet/GridSheet.stories.tsx +19 -13
- package/src/components/GridSheet/GridSheet.tsx +39 -26
- package/src/components/GridSheet/SheetCellEditor.stories.tsx +41 -43
- package/src/components/GridSheet/util.ts +16 -10
- package/src/components/RangeList/RangeList.tsx +8 -8
- package/src/components/SheetContainer/SheetContainer.stories.tsx +48 -44
- package/src/components/SheetContainer/SheetContainer.tsx +10 -5
- package/src/components/SheetContext/SheetContext.tsx +5 -5
- package/src/components/SheetToolbar/SheetToolbar.stories.tsx +19 -13
- package/src/components/SheetToolbar/SheetToolbar.tsx +31 -32
- package/src/components/SheetToolbar/align.ts +7 -6
- package/src/components/SheetToolbar/style.ts +4 -4
- package/src/extensions/compute.stories.tsx +31 -27
- package/src/extensions/compute.ts +2 -3
- package/src/extensions/editor/index.ts +1 -1
- package/src/extensions/editor/{extension.test.ts → sheet-extension.test.ts} +1 -1
- package/src/integrations/thread-ranges.ts +15 -20
- package/src/meta.ts +7 -5
- package/src/model/sheet-model.test.ts +5 -4
- package/src/model/sheet-model.ts +16 -16
- package/src/model/testing.ts +4 -4
- package/src/model/useSheetModel.ts +2 -2
- package/src/playwright/sheet-manager.ts +1 -1
- package/src/playwright/sheet.spec.ts +1 -1
- package/src/sanity.test.ts +4 -5
- package/src/serializer.ts +4 -4
- package/src/testing/data.ts +2 -2
- package/src/testing/testing.tsx +11 -5
- package/src/translations.ts +3 -2
- package/src/types/Sheet.ts +103 -0
- package/src/types/index.ts +1 -1
- package/src/types/sheet-range-types.ts +2 -2
- package/src/types/types.ts +6 -15
- package/src/types/util.ts +13 -41
- package/dist/lib/browser/SheetContainer-KDGD4AVG.mjs.map +0 -7
- package/dist/lib/browser/anchor-sort-VHURGBOY.mjs +0 -24
- package/dist/lib/browser/anchor-sort-VHURGBOY.mjs.map +0 -7
- package/dist/lib/browser/chunk-6AKBCBL4.mjs +0 -18
- package/dist/lib/browser/chunk-6AKBCBL4.mjs.map +0 -7
- package/dist/lib/browser/chunk-7HQX4NQP.mjs.map +0 -7
- package/dist/lib/browser/chunk-JUOVL3LE.mjs.map +0 -7
- package/dist/lib/browser/chunk-KJWZUQVA.mjs.map +0 -7
- package/dist/lib/browser/chunk-SI4X5GUR.mjs.map +0 -7
- package/dist/lib/browser/compute-graph-registry-VG7VP7IV.mjs +0 -30
- package/dist/lib/browser/compute-graph-registry-VG7VP7IV.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-WOJGZMSV.mjs.map +0 -7
- package/dist/lib/browser/markdown-VXMIPUQC.mjs.map +0 -7
- package/dist/lib/browser/react-surface-SE4HGAEH.mjs.map +0 -7
- package/dist/lib/node-esm/SheetContainer-RMG24NZC.mjs.map +0 -7
- package/dist/lib/node-esm/anchor-sort-CTJGOPET.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3K5VNYOF.mjs +0 -20
- package/dist/lib/node-esm/chunk-3K5VNYOF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-6SK5LJ5S.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CADTJFAS.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-IFMIRCZH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-Q6UYC4G5.mjs.map +0 -7
- package/dist/lib/node-esm/compute-graph-registry-3K3Q2A5T.mjs +0 -31
- package/dist/lib/node-esm/compute-graph-registry-3K3Q2A5T.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-PZRXBNIJ.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-4VPQJZNZ.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-LAU23XBH.mjs.map +0 -7
- package/dist/types/src/extensions/editor/extension.d.ts.map +0 -1
- package/dist/types/src/extensions/editor/extension.test.d.ts +0 -2
- package/dist/types/src/extensions/editor/extension.test.d.ts.map +0 -1
- package/dist/types/src/types/schema.d.ts.map +0 -1
- package/src/types/schema.ts +0 -61
- /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
|
-
|
|
4
|
-
|
|
3
|
+
__export,
|
|
4
|
+
meta
|
|
5
|
+
} from "./chunk-HILDMVPL.mjs";
|
|
5
6
|
|
|
6
|
-
// src/types/
|
|
7
|
-
|
|
8
|
-
|
|
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
|
|
140
|
+
var Sheet = Schema.Struct({
|
|
24
141
|
name: Schema.optional(Schema.String),
|
|
25
142
|
// Sparse map of cells referenced by index.
|
|
26
|
-
cells: Schema.
|
|
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.
|
|
148
|
+
rows: Schema.Array(Schema.String).pipe(Schema.mutable, FormInputAnnotation.set(false)),
|
|
32
149
|
// Ordered column indices.
|
|
33
|
-
columns: Schema.
|
|
150
|
+
columns: Schema.Array(Schema.String).pipe(Schema.mutable, FormInputAnnotation.set(false)),
|
|
34
151
|
// Row metadata referenced by index.
|
|
35
|
-
rowMeta: Schema.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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 {
|
|
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
|
|
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:
|
|
247
|
+
format: Format.TypeFormat.Percent
|
|
107
248
|
},
|
|
108
249
|
NUMBER_CURRENCY: {
|
|
109
250
|
type: TypeEnum.Number,
|
|
110
|
-
format:
|
|
251
|
+
format: Format.TypeFormat.Currency
|
|
111
252
|
},
|
|
112
253
|
NUMBER_DATETIME: {
|
|
113
254
|
type: TypeEnum.String,
|
|
114
|
-
format:
|
|
255
|
+
format: Format.TypeFormat.DateTime
|
|
115
256
|
},
|
|
116
257
|
NUMBER_DATE: {
|
|
117
258
|
type: TypeEnum.String,
|
|
118
|
-
format:
|
|
259
|
+
format: Format.TypeFormat.Date
|
|
119
260
|
},
|
|
120
261
|
NUMBER_TIME: {
|
|
121
262
|
type: TypeEnum.String,
|
|
122
|
-
format:
|
|
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
|
|
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:
|
|
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:
|
|
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
|
-
|
|
194
|
-
F:
|
|
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
|
-
|
|
205
|
-
F:
|
|
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 (
|
|
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
|
-
|
|
324
|
-
F:
|
|
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
|
-
|
|
342
|
-
F:
|
|
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
|
-
|
|
358
|
-
F:
|
|
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
|
-
|
|
370
|
-
F:
|
|
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
|
-
|
|
397
|
-
F:
|
|
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
|
-
|
|
411
|
-
F:
|
|
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 (
|
|
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
|
-
|
|
455
|
-
F:
|
|
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:
|
|
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
|
-
|
|
484
|
-
F:
|
|
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
|
-
|
|
501
|
-
F:
|
|
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
|
-
|
|
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 (
|
|
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(
|
|
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
|
-
|
|
595
|
-
F:
|
|
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
|
|
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
|
-
|
|
621
|
-
F:
|
|
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
|
-
|
|
633
|
-
F:
|
|
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
|
-
|
|
645
|
-
F:
|
|
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 = `${
|
|
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:
|
|
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-
|
|
908
|
+
//# sourceMappingURL=chunk-KSHCRK5J.mjs.map
|