@bilig/xlsx 0.164.0
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/README.md +25 -0
- package/dist/address.d.ts +15 -0
- package/dist/address.js +82 -0
- package/dist/address.js.map +1 -0
- package/dist/external-workbook-types.d.ts +44 -0
- package/dist/external-workbook-types.js +12 -0
- package/dist/external-workbook-types.js.map +1 -0
- package/dist/file-source.d.ts +10 -0
- package/dist/file-source.js +76 -0
- package/dist/file-source.js.map +1 -0
- package/dist/formula-cache-reader.d.ts +30 -0
- package/dist/formula-cache-reader.js +350 -0
- package/dist/formula-cache-reader.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/simple-workbook-writer.d.ts +114 -0
- package/dist/simple-workbook-writer.js +621 -0
- package/dist/simple-workbook-writer.js.map +1 -0
- package/dist/source-preserving-literal-patches.d.ts +43 -0
- package/dist/source-preserving-literal-patches.js +615 -0
- package/dist/source-preserving-literal-patches.js.map +1 -0
- package/dist/source-preserving-zip.d.ts +25 -0
- package/dist/source-preserving-zip.js +341 -0
- package/dist/source-preserving-zip.js.map +1 -0
- package/dist/streaming-native-cell-arena.d.ts +57 -0
- package/dist/streaming-native-cell-arena.js +233 -0
- package/dist/streaming-native-cell-arena.js.map +1 -0
- package/dist/streaming-native-external-cache.d.ts +13 -0
- package/dist/streaming-native-external-cache.js +753 -0
- package/dist/streaming-native-external-cache.js.map +1 -0
- package/dist/streaming-native-inspect.d.ts +42 -0
- package/dist/streaming-native-inspect.js +297 -0
- package/dist/streaming-native-inspect.js.map +1 -0
- package/dist/streaming-native-lookup-wasm.d.ts +13 -0
- package/dist/streaming-native-lookup-wasm.js +250 -0
- package/dist/streaming-native-lookup-wasm.js.map +1 -0
- package/dist/streaming-native-recalc-evaluator.d.ts +17 -0
- package/dist/streaming-native-recalc-evaluator.js +743 -0
- package/dist/streaming-native-recalc-evaluator.js.map +1 -0
- package/dist/streaming-native-recalc.d.ts +97 -0
- package/dist/streaming-native-recalc.js +652 -0
- package/dist/streaming-native-recalc.js.map +1 -0
- package/dist/streaming-native-row-chain-conditionals.d.ts +8 -0
- package/dist/streaming-native-row-chain-conditionals.js +385 -0
- package/dist/streaming-native-row-chain-conditionals.js.map +1 -0
- package/dist/streaming-native-row-chain-dependencies.d.ts +17 -0
- package/dist/streaming-native-row-chain-dependencies.js +365 -0
- package/dist/streaming-native-row-chain-dependencies.js.map +1 -0
- package/dist/streaming-native-row-chain-references.d.ts +3 -0
- package/dist/streaming-native-row-chain-references.js +36 -0
- package/dist/streaming-native-row-chain-references.js.map +1 -0
- package/dist/streaming-native-row-chain-wasm.d.ts +56 -0
- package/dist/streaming-native-row-chain-wasm.js +546 -0
- package/dist/streaming-native-row-chain-wasm.js.map +1 -0
- package/dist/streaming-native-text.d.ts +2 -0
- package/dist/streaming-native-text.js +14 -0
- package/dist/streaming-native-text.js.map +1 -0
- package/dist/streaming-native-workbook-core.d.ts +47 -0
- package/dist/streaming-native-workbook-core.js +110 -0
- package/dist/streaming-native-workbook-core.js.map +1 -0
- package/dist/targeted-cell-reader.d.ts +11 -0
- package/dist/targeted-cell-reader.js +92 -0
- package/dist/targeted-cell-reader.js.map +1 -0
- package/dist/workbook-cell-reader.d.ts +29 -0
- package/dist/workbook-cell-reader.js +200 -0
- package/dist/workbook-cell-reader.js.map +1 -0
- package/dist/workbook-compatibility-report.d.ts +101 -0
- package/dist/workbook-compatibility-report.js +654 -0
- package/dist/workbook-compatibility-report.js.map +1 -0
- package/dist/workbook-sheet-paths.d.ts +8 -0
- package/dist/workbook-sheet-paths.js +79 -0
- package/dist/workbook-sheet-paths.js.map +1 -0
- package/dist/xml-part-patch.d.ts +12 -0
- package/dist/xml-part-patch.js +45 -0
- package/dist/xml-part-patch.js.map +1 -0
- package/dist/xml.d.ts +9 -0
- package/dist/xml.js +42 -0
- package/dist/xml.js.map +1 -0
- package/dist/zip-reader.d.ts +51 -0
- package/dist/zip-reader.js +448 -0
- package/dist/zip-reader.js.map +1 -0
- package/package.json +113 -0
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
import { parseFormula } from '@bilig/formula';
|
|
2
|
+
import { ValueTag } from '@bilig/protocol';
|
|
3
|
+
import { decodeCellAddress } from './address.js';
|
|
4
|
+
const maxExpandedFormulaDependencyRowsPerSheet = 20_000;
|
|
5
|
+
const maxNativeRangeAggregateCellCount = 50_000;
|
|
6
|
+
const directAggregateOpSum = 1;
|
|
7
|
+
const directAggregateOpAverage = 2;
|
|
8
|
+
const directAggregateOpCounta = 6;
|
|
9
|
+
export function expandStreamingNativeFormulaDependencyRows(args) {
|
|
10
|
+
const changedSheets = new Set();
|
|
11
|
+
for (const scan of args.sheetScans.values()) {
|
|
12
|
+
let expandedRows = 0;
|
|
13
|
+
for (const cell of scan.formulaCells) {
|
|
14
|
+
for (const dependency of collectScalarDependencyRows(scan, cell, args.resolveFormulaSource)) {
|
|
15
|
+
const targetRows = args.targetRowsForSheet?.(dependency.sheetName) ?? (dependency.sheetName === scan.sheetName ? scan.targetRows : undefined);
|
|
16
|
+
if (!targetRows || targetRows.has(dependency.row)) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
targetRows.add(dependency.row);
|
|
20
|
+
changedSheets.add(dependency.sheetName);
|
|
21
|
+
expandedRows += 1;
|
|
22
|
+
if (expandedRows >= maxExpandedFormulaDependencyRowsPerSheet) {
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (expandedRows >= maxExpandedFormulaDependencyRowsPerSheet) {
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
for (const dependency of collectVlookupTableDependencyRows(scan, cell, args.resolveFormulaSource)) {
|
|
30
|
+
const targetRows = args.targetRowsForSheet?.(dependency.sheetName) ?? (dependency.sheetName === scan.sheetName ? scan.targetRows : undefined);
|
|
31
|
+
if (!targetRows || targetRows.has(dependency.row)) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
targetRows.add(dependency.row);
|
|
35
|
+
changedSheets.add(dependency.sheetName);
|
|
36
|
+
expandedRows += 1;
|
|
37
|
+
if (expandedRows >= maxExpandedFormulaDependencyRowsPerSheet) {
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (expandedRows >= maxExpandedFormulaDependencyRowsPerSheet) {
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
const plan = tryCompileNativeRangeAggregate(scan, cell, args.resolveFormulaSource);
|
|
45
|
+
if (!plan) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
for (let row = plan.range.startRow; row <= plan.range.endRow; row += 1) {
|
|
49
|
+
if (scan.targetRows.has(row)) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
scan.targetRows.add(row);
|
|
53
|
+
changedSheets.add(scan.sheetName);
|
|
54
|
+
expandedRows += 1;
|
|
55
|
+
if (expandedRows >= maxExpandedFormulaDependencyRowsPerSheet) {
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (expandedRows >= maxExpandedFormulaDependencyRowsPerSheet) {
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return changedSheets;
|
|
65
|
+
}
|
|
66
|
+
function collectVlookupTableDependencyRows(scan, cell, resolveFormulaSource) {
|
|
67
|
+
let node;
|
|
68
|
+
try {
|
|
69
|
+
node = parseFormula(resolveFormulaSource(scan, cell));
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return [];
|
|
73
|
+
}
|
|
74
|
+
if (node.kind !== 'CallExpr' || node.callee.toLocaleUpperCase('en-US') !== 'VLOOKUP') {
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
const range = resolveVlookupTableDependencyRange(node.args[1], scan, cell);
|
|
78
|
+
if (!range) {
|
|
79
|
+
return [];
|
|
80
|
+
}
|
|
81
|
+
if (range.cellCount <= 0 || range.cellCount > maxNativeRangeAggregateCellCount) {
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
const rows = [];
|
|
85
|
+
for (let row = range.startRow; row <= range.endRow; row += 1) {
|
|
86
|
+
rows.push({ sheetName: range.sheetName, row });
|
|
87
|
+
}
|
|
88
|
+
return rows;
|
|
89
|
+
}
|
|
90
|
+
function resolveVlookupTableDependencyRange(node, scan, cell) {
|
|
91
|
+
if (!node) {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
if (node.kind === 'RangeRef') {
|
|
95
|
+
return decodeVlookupTableDependencyRange(node, scan.sheetName);
|
|
96
|
+
}
|
|
97
|
+
if (node.kind === 'CallExpr' && normalizedFormulaFunctionName(node.callee) === 'INDIRECT') {
|
|
98
|
+
const referenceText = tryEvaluateDependencyText(node.args[0], scan, cell);
|
|
99
|
+
if (referenceText === null) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
let range;
|
|
103
|
+
try {
|
|
104
|
+
range = parseFormula(referenceText);
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
return range.kind === 'RangeRef' ? decodeVlookupTableDependencyRange(range, scan.sheetName) : null;
|
|
110
|
+
}
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
function decodeVlookupTableDependencyRange(range, currentSheetName) {
|
|
114
|
+
if (range.refKind !== 'cells' || range.sheetEndName !== undefined) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
let start;
|
|
118
|
+
let end;
|
|
119
|
+
try {
|
|
120
|
+
start = decodeCellAddress(range.start.replaceAll('$', ''));
|
|
121
|
+
end = decodeCellAddress(range.end.replaceAll('$', ''));
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
const startRow = Math.min(start.r, end.r);
|
|
127
|
+
const endRow = Math.max(start.r, end.r);
|
|
128
|
+
const startCol = Math.min(start.c, end.c);
|
|
129
|
+
const endCol = Math.max(start.c, end.c);
|
|
130
|
+
return {
|
|
131
|
+
sheetName: range.sheetName ?? currentSheetName,
|
|
132
|
+
startRow,
|
|
133
|
+
endRow,
|
|
134
|
+
cellCount: (endRow - startRow + 1) * (endCol - startCol + 1),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
function tryEvaluateDependencyText(node, scan, cell) {
|
|
138
|
+
if (!node) {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
switch (node.kind) {
|
|
142
|
+
case 'StringLiteral':
|
|
143
|
+
return node.value;
|
|
144
|
+
case 'NumberLiteral':
|
|
145
|
+
return Number.isFinite(node.value) ? String(node.value) : null;
|
|
146
|
+
case 'BooleanLiteral':
|
|
147
|
+
return node.value ? 'TRUE' : 'FALSE';
|
|
148
|
+
case 'CellRef':
|
|
149
|
+
return cellText(readDependencyCell(node, scan, cell));
|
|
150
|
+
case 'BinaryExpr':
|
|
151
|
+
if (node.operator !== '&') {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
{
|
|
155
|
+
const left = tryEvaluateDependencyText(node.left, scan, cell);
|
|
156
|
+
const right = tryEvaluateDependencyText(node.right, scan, cell);
|
|
157
|
+
return left === null || right === null ? null : left + right;
|
|
158
|
+
}
|
|
159
|
+
case 'ArrayConstant':
|
|
160
|
+
case 'CallExpr':
|
|
161
|
+
case 'ColumnRef':
|
|
162
|
+
case 'ErrorLiteral':
|
|
163
|
+
case 'InvokeExpr':
|
|
164
|
+
case 'NameRef':
|
|
165
|
+
case 'OmittedArgument':
|
|
166
|
+
case 'RangeRef':
|
|
167
|
+
case 'RowRef':
|
|
168
|
+
case 'SpillRef':
|
|
169
|
+
case 'StructuredRef':
|
|
170
|
+
case 'UnaryExpr':
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
function readDependencyCell(node, scan, cell) {
|
|
175
|
+
if (node.sheetName && node.sheetName !== scan.sheetName) {
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
let address;
|
|
179
|
+
try {
|
|
180
|
+
address = decodeCellAddress(node.ref.replaceAll('$', ''));
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
const rowValues = address.r === cell.row ? scan.rows.get(cell.row) : scan.rows.get(address.r);
|
|
186
|
+
return resolvedCellValue(rowValues?.get(address.c));
|
|
187
|
+
}
|
|
188
|
+
function cellText(value) {
|
|
189
|
+
if (!value) {
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
switch (value.tag) {
|
|
193
|
+
case ValueTag.Empty:
|
|
194
|
+
return '';
|
|
195
|
+
case ValueTag.Number:
|
|
196
|
+
return String(value.value);
|
|
197
|
+
case ValueTag.Boolean:
|
|
198
|
+
return value.value ? 'TRUE' : 'FALSE';
|
|
199
|
+
case ValueTag.String:
|
|
200
|
+
return value.value;
|
|
201
|
+
case ValueTag.Error:
|
|
202
|
+
return null;
|
|
203
|
+
default:
|
|
204
|
+
return null;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
function normalizedFormulaFunctionName(name) {
|
|
208
|
+
return name.toLocaleUpperCase('en-US').replace(/^_XLFN\./u, '');
|
|
209
|
+
}
|
|
210
|
+
function collectScalarDependencyRows(scan, cell, resolveFormulaSource) {
|
|
211
|
+
let node;
|
|
212
|
+
try {
|
|
213
|
+
node = parseFormula(resolveFormulaSource(scan, cell));
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
return [];
|
|
217
|
+
}
|
|
218
|
+
const rows = new Map();
|
|
219
|
+
collectScalarDependencyRowsFromNode(node, scan.sheetName, cell.row, rows);
|
|
220
|
+
return [...rows].flatMap(([sheetName, sheetRows]) => [...sheetRows].map((row) => ({ sheetName, row })));
|
|
221
|
+
}
|
|
222
|
+
function collectScalarDependencyRowsFromNode(node, sheetName, formulaRow, rows) {
|
|
223
|
+
switch (node.kind) {
|
|
224
|
+
case 'CellRef': {
|
|
225
|
+
const dependencySheetName = node.sheetName ?? sheetName;
|
|
226
|
+
try {
|
|
227
|
+
const address = decodeCellAddress(node.ref.replaceAll('$', ''));
|
|
228
|
+
if (dependencySheetName !== sheetName || address.r !== formulaRow) {
|
|
229
|
+
const sheetRows = rows.get(dependencySheetName) ?? new Set();
|
|
230
|
+
sheetRows.add(address.r);
|
|
231
|
+
rows.set(dependencySheetName, sheetRows);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
case 'UnaryExpr':
|
|
240
|
+
collectScalarDependencyRowsFromNode(node.argument, sheetName, formulaRow, rows);
|
|
241
|
+
return;
|
|
242
|
+
case 'BinaryExpr':
|
|
243
|
+
collectScalarDependencyRowsFromNode(node.left, sheetName, formulaRow, rows);
|
|
244
|
+
collectScalarDependencyRowsFromNode(node.right, sheetName, formulaRow, rows);
|
|
245
|
+
return;
|
|
246
|
+
case 'CallExpr':
|
|
247
|
+
for (const argument of node.args) {
|
|
248
|
+
collectScalarDependencyRowsFromNode(argument, sheetName, formulaRow, rows);
|
|
249
|
+
}
|
|
250
|
+
return;
|
|
251
|
+
case 'InvokeExpr':
|
|
252
|
+
collectScalarDependencyRowsFromNode(node.callee, sheetName, formulaRow, rows);
|
|
253
|
+
for (const argument of node.args) {
|
|
254
|
+
collectScalarDependencyRowsFromNode(argument, sheetName, formulaRow, rows);
|
|
255
|
+
}
|
|
256
|
+
return;
|
|
257
|
+
case 'ArrayConstant':
|
|
258
|
+
for (const row of node.rows) {
|
|
259
|
+
for (const entry of row) {
|
|
260
|
+
collectScalarDependencyRowsFromNode(entry, sheetName, formulaRow, rows);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
return;
|
|
264
|
+
case 'NumberLiteral':
|
|
265
|
+
case 'BooleanLiteral':
|
|
266
|
+
case 'StringLiteral':
|
|
267
|
+
case 'ErrorLiteral':
|
|
268
|
+
case 'OmittedArgument':
|
|
269
|
+
case 'NameRef':
|
|
270
|
+
case 'StructuredRef':
|
|
271
|
+
case 'SpillRef':
|
|
272
|
+
case 'RowRef':
|
|
273
|
+
case 'ColumnRef':
|
|
274
|
+
return;
|
|
275
|
+
case 'RangeRef':
|
|
276
|
+
collectCellRangeDependencyRows(node, sheetName, formulaRow, rows);
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
function collectCellRangeDependencyRows(range, currentSheetName, formulaRow, rows) {
|
|
281
|
+
const dependencyRange = decodeVlookupTableDependencyRange(range, currentSheetName);
|
|
282
|
+
if (!dependencyRange || dependencyRange.cellCount > maxNativeRangeAggregateCellCount) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
for (let row = dependencyRange.startRow; row <= dependencyRange.endRow; row += 1) {
|
|
286
|
+
if (dependencyRange.sheetName === currentSheetName && row === formulaRow) {
|
|
287
|
+
continue;
|
|
288
|
+
}
|
|
289
|
+
const sheetRows = rows.get(dependencyRange.sheetName) ?? new Set();
|
|
290
|
+
sheetRows.add(row);
|
|
291
|
+
rows.set(dependencyRange.sheetName, sheetRows);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
export function tryCompileNativeRangeAggregate(scan, cell, resolveFormulaSource) {
|
|
295
|
+
let node;
|
|
296
|
+
try {
|
|
297
|
+
node = parseFormula(resolveFormulaSource(scan, cell));
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
return null;
|
|
301
|
+
}
|
|
302
|
+
if (node.kind !== 'CallExpr' || node.args.length !== 1) {
|
|
303
|
+
return null;
|
|
304
|
+
}
|
|
305
|
+
const aggregateKind = directRangeAggregateKind(node.callee);
|
|
306
|
+
if (aggregateKind === null) {
|
|
307
|
+
return null;
|
|
308
|
+
}
|
|
309
|
+
const range = node.args[0];
|
|
310
|
+
if (!range ||
|
|
311
|
+
range.kind !== 'RangeRef' ||
|
|
312
|
+
range.refKind !== 'cells' ||
|
|
313
|
+
range.sheetEndName !== undefined ||
|
|
314
|
+
(range.sheetName !== undefined && range.sheetName !== scan.sheetName)) {
|
|
315
|
+
return null;
|
|
316
|
+
}
|
|
317
|
+
let start;
|
|
318
|
+
let end;
|
|
319
|
+
try {
|
|
320
|
+
start = decodeCellAddress(range.start.replaceAll('$', ''));
|
|
321
|
+
end = decodeCellAddress(range.end.replaceAll('$', ''));
|
|
322
|
+
}
|
|
323
|
+
catch {
|
|
324
|
+
return null;
|
|
325
|
+
}
|
|
326
|
+
const startRow = Math.min(start.r, end.r);
|
|
327
|
+
const endRow = Math.max(start.r, end.r);
|
|
328
|
+
const startCol = Math.min(start.c, end.c);
|
|
329
|
+
const endCol = Math.max(start.c, end.c);
|
|
330
|
+
const cellCount = (endRow - startRow + 1) * (endCol - startCol + 1);
|
|
331
|
+
return cellCount > 0 && cellCount <= maxNativeRangeAggregateCellCount
|
|
332
|
+
? {
|
|
333
|
+
aggregateKind,
|
|
334
|
+
range: {
|
|
335
|
+
startRow,
|
|
336
|
+
endRow,
|
|
337
|
+
startCol,
|
|
338
|
+
endCol,
|
|
339
|
+
cellCount,
|
|
340
|
+
},
|
|
341
|
+
}
|
|
342
|
+
: null;
|
|
343
|
+
}
|
|
344
|
+
function directRangeAggregateKind(callee) {
|
|
345
|
+
switch (normalizedFormulaFunctionName(callee)) {
|
|
346
|
+
case 'SUM':
|
|
347
|
+
return directAggregateOpSum;
|
|
348
|
+
case 'AVERAGE':
|
|
349
|
+
return directAggregateOpAverage;
|
|
350
|
+
case 'COUNTA':
|
|
351
|
+
return directAggregateOpCounta;
|
|
352
|
+
default:
|
|
353
|
+
return null;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
function resolvedCellValue(value) {
|
|
357
|
+
if (value === undefined || isSharedStringReference(value)) {
|
|
358
|
+
return { tag: ValueTag.Empty };
|
|
359
|
+
}
|
|
360
|
+
return value;
|
|
361
|
+
}
|
|
362
|
+
function isSharedStringReference(value) {
|
|
363
|
+
return typeof value === 'object' && value !== null && 'kind' in value && value.kind === 'shared-string';
|
|
364
|
+
}
|
|
365
|
+
//# sourceMappingURL=streaming-native-row-chain-dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming-native-row-chain-dependencies.js","sourceRoot":"","sources":["../src/streaming-native-row-chain-dependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { FormulaNode } from '@bilig/formula';
|
|
2
|
+
import type { NativeTable } from './streaming-native-recalc.js';
|
|
3
|
+
export declare function compileReferenceColumn(node: FormulaNode, sheetName: string, row: number, formulaColumn: number, tablesBySheet: ReadonlyMap<string, readonly NativeTable[]>): number | null;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { decodeCellAddress } from './address.js';
|
|
2
|
+
import { normalizeStructuredReferenceColumnName } from './streaming-native-text.js';
|
|
3
|
+
export function compileReferenceColumn(node, sheetName, row, formulaColumn, tablesBySheet) {
|
|
4
|
+
if (node.kind === 'CellRef') {
|
|
5
|
+
if (node.sheetName && node.sheetName !== sheetName) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
const address = decodeCellAddress(node.ref.replaceAll('$', ''));
|
|
9
|
+
return address.r === row ? address.c : null;
|
|
10
|
+
}
|
|
11
|
+
if (node.kind !== 'StructuredRef' || node.endColumnName || (node.section && node.section !== 'this-row')) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
const table = findCurrentRowTable(node.tableName, sheetName, row, formulaColumn, tablesBySheet);
|
|
15
|
+
if (!table) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const columnIndex = table.columns.findIndex((column) => column.toLocaleLowerCase('en-US') === normalizeStructuredReferenceColumnName(node.columnName).toLocaleLowerCase('en-US'));
|
|
19
|
+
return columnIndex >= 0 ? table.range.s.c + columnIndex : null;
|
|
20
|
+
}
|
|
21
|
+
function findCurrentRowTable(tableName, sheetName, row, formulaColumn, tablesBySheet) {
|
|
22
|
+
const tables = tablesBySheet.get(sheetName) ?? [];
|
|
23
|
+
const matching = tables.filter((table) => {
|
|
24
|
+
const nameMatches = tableName.length === 0 ||
|
|
25
|
+
table.name.toLocaleLowerCase('en-US') === tableName.toLocaleLowerCase('en-US') ||
|
|
26
|
+
table.displayName.toLocaleLowerCase('en-US') === tableName.toLocaleLowerCase('en-US');
|
|
27
|
+
return nameMatches && rowIsInTableDataBody(table, row);
|
|
28
|
+
});
|
|
29
|
+
return matching.find((table) => formulaColumn >= table.range.s.c && formulaColumn <= table.range.e.c) ?? matching[0] ?? null;
|
|
30
|
+
}
|
|
31
|
+
function rowIsInTableDataBody(table, row) {
|
|
32
|
+
const start = table.range.s.r + table.headerRowCount;
|
|
33
|
+
const end = table.range.e.r - table.totalsRowCount;
|
|
34
|
+
return row >= start && row <= end;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=streaming-native-row-chain-references.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming-native-row-chain-references.js","sourceRoot":"","sources":["../src/streaming-native-row-chain-references.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { expandStreamingNativeFormulaDependencyRows } from './streaming-native-row-chain-dependencies.js';
|
|
2
|
+
import { evaluateStreamingNativeWasmConditionals } from './streaming-native-row-chain-conditionals.js';
|
|
3
|
+
import type { XlsxSourceLiteralPatch } from './source-preserving-literal-patches.js';
|
|
4
|
+
import type { NativeFormulaCell, NativeTable, SheetScanState } from './streaming-native-recalc.js';
|
|
5
|
+
export interface StreamingNativeWasmRowChainResult {
|
|
6
|
+
readonly batchCount: number;
|
|
7
|
+
readonly evaluatedFormulaCellCount: number;
|
|
8
|
+
readonly patches: readonly XlsxSourceLiteralPatch[];
|
|
9
|
+
readonly processedCells: ReadonlySet<string>;
|
|
10
|
+
}
|
|
11
|
+
export interface StreamingNativeWasmDirectScalarResult {
|
|
12
|
+
readonly batchCount: number;
|
|
13
|
+
readonly evaluatedFormulaCellCount: number;
|
|
14
|
+
readonly patches: readonly XlsxSourceLiteralPatch[];
|
|
15
|
+
readonly processedCells: ReadonlySet<string>;
|
|
16
|
+
}
|
|
17
|
+
export interface StreamingNativeWasmRangeAggregateResult {
|
|
18
|
+
readonly batchCount: number;
|
|
19
|
+
readonly evaluatedFormulaCellCount: number;
|
|
20
|
+
readonly patches: readonly XlsxSourceLiteralPatch[];
|
|
21
|
+
readonly processedCells: ReadonlySet<string>;
|
|
22
|
+
}
|
|
23
|
+
export interface StreamingNativeWasmConditionalResult {
|
|
24
|
+
readonly batchCount: number;
|
|
25
|
+
readonly evaluatedFormulaCellCount: number;
|
|
26
|
+
readonly patches: readonly XlsxSourceLiteralPatch[];
|
|
27
|
+
readonly processedCells: ReadonlySet<string>;
|
|
28
|
+
}
|
|
29
|
+
export { expandStreamingNativeFormulaDependencyRows, evaluateStreamingNativeWasmConditionals };
|
|
30
|
+
export interface StreamingNativeWasmFormulaResult {
|
|
31
|
+
readonly batchCount: number;
|
|
32
|
+
readonly evaluatedFormulaCellCount: number;
|
|
33
|
+
readonly patches: readonly XlsxSourceLiteralPatch[];
|
|
34
|
+
readonly processedCells: ReadonlySet<string>;
|
|
35
|
+
}
|
|
36
|
+
export declare function evaluateStreamingNativeWasmRowChains(args: {
|
|
37
|
+
readonly sheetScans: ReadonlyMap<string, SheetScanState>;
|
|
38
|
+
readonly tablesBySheet: ReadonlyMap<string, readonly NativeTable[]>;
|
|
39
|
+
readonly resolveFormulaSource: (scan: SheetScanState, cell: NativeFormulaCell) => string;
|
|
40
|
+
}): StreamingNativeWasmRowChainResult;
|
|
41
|
+
export declare function evaluateStreamingNativeWasmFormulas(args: {
|
|
42
|
+
readonly sheetScans: ReadonlyMap<string, SheetScanState>;
|
|
43
|
+
readonly tablesBySheet: ReadonlyMap<string, readonly NativeTable[]>;
|
|
44
|
+
readonly resolveFormulaSource: (scan: SheetScanState, cell: NativeFormulaCell) => string;
|
|
45
|
+
}): StreamingNativeWasmFormulaResult;
|
|
46
|
+
export declare function evaluateStreamingNativeWasmDirectScalars(args: {
|
|
47
|
+
readonly sheetScans: ReadonlyMap<string, SheetScanState>;
|
|
48
|
+
readonly tablesBySheet: ReadonlyMap<string, readonly NativeTable[]>;
|
|
49
|
+
readonly resolveFormulaSource: (scan: SheetScanState, cell: NativeFormulaCell) => string;
|
|
50
|
+
readonly skippedCells: ReadonlySet<string>;
|
|
51
|
+
}): StreamingNativeWasmDirectScalarResult;
|
|
52
|
+
export declare function evaluateStreamingNativeWasmRangeAggregates(args: {
|
|
53
|
+
readonly sheetScans: ReadonlyMap<string, SheetScanState>;
|
|
54
|
+
readonly resolveFormulaSource: (scan: SheetScanState, cell: NativeFormulaCell) => string;
|
|
55
|
+
readonly skippedCells: ReadonlySet<string>;
|
|
56
|
+
}): StreamingNativeWasmRangeAggregateResult;
|