@bilig/headless 0.1.83 → 0.1.85
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 +5 -5
- package/dist/change-order.d.ts +1 -1
- package/dist/change-order.js +2 -2
- package/dist/change-order.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/initial-sheet-load.d.ts +2 -2
- package/dist/initial-sheet-load.js +9 -9
- package/dist/initial-sheet-load.js.map +1 -1
- package/dist/matrix-mutation-plan.d.ts +2 -2
- package/dist/matrix-mutation-plan.js +6 -7
- package/dist/matrix-mutation-plan.js.map +1 -1
- package/dist/persistence.d.ts +2 -2
- package/dist/persistence.js +66 -77
- package/dist/persistence.js.map +1 -1
- package/dist/tracked-engine-event-refs.d.ts +2 -2
- package/dist/tracked-engine-event-refs.js +2 -4
- package/dist/tracked-engine-event-refs.js.map +1 -1
- package/dist/work-paper-errors.d.ts +1 -1
- package/dist/work-paper-errors.js +36 -38
- package/dist/work-paper-errors.js.map +1 -1
- package/dist/work-paper-runtime.d.ts +4 -4
- package/dist/work-paper-runtime.js +413 -495
- package/dist/work-paper-runtime.js.map +1 -1
- package/dist/work-paper-scratch-evaluator.d.ts +2 -2
- package/dist/work-paper-scratch-evaluator.js +3 -3
- package/dist/work-paper-scratch-evaluator.js.map +1 -1
- package/dist/work-paper-sheet-replacement.d.ts +1 -1
- package/dist/work-paper-sheet-replacement.js +2 -2
- package/dist/work-paper-sheet-replacement.js.map +1 -1
- package/dist/work-paper-types.d.ts +19 -19
- package/dist/work-paper.d.ts +3 -3
- package/dist/work-paper.js +3 -3
- package/dist/work-paper.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -17,14 +17,14 @@ built from packed runtime tarballs.
|
|
|
17
17
|
## Usage
|
|
18
18
|
|
|
19
19
|
```ts
|
|
20
|
-
import { WorkPaper } from
|
|
20
|
+
import { WorkPaper } from '@bilig/headless'
|
|
21
21
|
|
|
22
22
|
const workbook = WorkPaper.buildFromSheets({
|
|
23
|
-
Sheet1: [[1,
|
|
24
|
-
})
|
|
23
|
+
Sheet1: [[1, '=A1*2']],
|
|
24
|
+
})
|
|
25
25
|
|
|
26
|
-
const sheetId = workbook.getSheetId(
|
|
27
|
-
const value = workbook.getCellValue({ sheet: sheetId, row: 0, col: 1 })
|
|
26
|
+
const sheetId = workbook.getSheetId('Sheet1')!
|
|
27
|
+
const value = workbook.getCellValue({ sheet: sheetId, row: 0, col: 1 })
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
## Supported Workflows
|
package/dist/change-order.d.ts
CHANGED
package/dist/change-order.js
CHANGED
|
@@ -17,7 +17,7 @@ export function orderWorkPaperCellChanges(changes, sheets, explicitChangedCount)
|
|
|
17
17
|
return changes.toSorted(compare);
|
|
18
18
|
}
|
|
19
19
|
function compareSingleSheetCellChanges(left, right) {
|
|
20
|
-
if (left.kind !==
|
|
20
|
+
if (left.kind !== 'cell' || right.kind !== 'cell') {
|
|
21
21
|
return 0;
|
|
22
22
|
}
|
|
23
23
|
return left.address.row - right.address.row || left.address.col - right.address.col;
|
|
@@ -25,7 +25,7 @@ function compareSingleSheetCellChanges(left, right) {
|
|
|
25
25
|
function compareWorkPaperCellChanges(sheets) {
|
|
26
26
|
const orderBySheet = new Map(sheets.map((sheet) => [sheet.id, sheet.order]));
|
|
27
27
|
return (left, right) => {
|
|
28
|
-
if (left.kind !==
|
|
28
|
+
if (left.kind !== 'cell' || right.kind !== 'cell') {
|
|
29
29
|
return 0;
|
|
30
30
|
}
|
|
31
31
|
return ((orderBySheet.get(left.address.sheet) ?? 0) - (orderBySheet.get(right.address.sheet) ?? 0) ||
|
package/dist/change-order.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-order.js","sourceRoot":"","sources":["../src/change-order.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,yBAAyB,CACvC,OAA0B,EAC1B,MAAkB,EAClB,oBAA6B;IAE7B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,OAAO,
|
|
1
|
+
{"version":3,"file":"change-order.js","sourceRoot":"","sources":["../src/change-order.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
1
|
+
export * from './persistence.js';
|
|
2
|
+
export * from './work-paper.js';
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
1
|
+
export * from './persistence.js';
|
|
2
|
+
export * from './work-paper.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type SpreadsheetEngine, type EngineCellMutationRef } from
|
|
2
|
-
import type { WorkPaperCellAddress, WorkPaperSheet } from
|
|
1
|
+
import { type SpreadsheetEngine, type EngineCellMutationRef } from '@bilig/core';
|
|
2
|
+
import type { WorkPaperCellAddress, WorkPaperSheet } from './work-paper-types.js';
|
|
3
3
|
export declare function tryLoadInitialLiteralSheet(engine: SpreadsheetEngine, sheetId: number, content: WorkPaperSheet): boolean;
|
|
4
4
|
export interface PreparedInitialMixedSheetLoad {
|
|
5
5
|
formulaRefs: EngineCellMutationRef[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { loadLiteralSheetIntoEmptySheet, makeCellKey
|
|
2
|
-
import { ErrorCode, ValueTag } from
|
|
1
|
+
import { loadLiteralSheetIntoEmptySheet, makeCellKey } from '@bilig/core';
|
|
2
|
+
import { ErrorCode, ValueTag } from '@bilig/protocol';
|
|
3
3
|
export function tryLoadInitialLiteralSheet(engine, sheetId, content) {
|
|
4
4
|
if (sheetContainsFormulaContent(content)) {
|
|
5
5
|
return false;
|
|
@@ -8,7 +8,7 @@ export function tryLoadInitialLiteralSheet(engine, sheetId, content) {
|
|
|
8
8
|
return true;
|
|
9
9
|
}
|
|
10
10
|
function sheetContainsFormulaContent(content) {
|
|
11
|
-
return content.some((row) => row.some((value) => typeof value ===
|
|
11
|
+
return content.some((row) => row.some((value) => typeof value === 'string' && value.trim().startsWith('=')));
|
|
12
12
|
}
|
|
13
13
|
export function prepareInitialMixedSheetLoad(args) {
|
|
14
14
|
const sheet = args.engine.workbook.getSheetById(args.sheetId);
|
|
@@ -21,7 +21,7 @@ export function prepareInitialMixedSheetLoad(args) {
|
|
|
21
21
|
const row = args.content[rowIndex];
|
|
22
22
|
for (let colIndex = 0; colIndex < row.length; colIndex += 1) {
|
|
23
23
|
const raw = row[colIndex];
|
|
24
|
-
if (typeof raw ===
|
|
24
|
+
if (typeof raw === 'string' && raw.trim().startsWith('=')) {
|
|
25
25
|
formulaCount += 1;
|
|
26
26
|
continue;
|
|
27
27
|
}
|
|
@@ -43,13 +43,13 @@ export function prepareInitialMixedSheetLoad(args) {
|
|
|
43
43
|
const row = args.content[rowIndex];
|
|
44
44
|
for (let colIndex = 0; colIndex < row.length; colIndex += 1) {
|
|
45
45
|
const raw = row[colIndex];
|
|
46
|
-
if (typeof raw ===
|
|
46
|
+
if (typeof raw === 'string') {
|
|
47
47
|
const trimmed = raw.trim();
|
|
48
|
-
if (trimmed.startsWith(
|
|
48
|
+
if (trimmed.startsWith('=')) {
|
|
49
49
|
formulaRefs[formulaIndex] = {
|
|
50
50
|
sheetId: args.sheetId,
|
|
51
51
|
mutation: {
|
|
52
|
-
kind:
|
|
52
|
+
kind: 'setCellFormula',
|
|
53
53
|
row: rowIndex,
|
|
54
54
|
col: colIndex,
|
|
55
55
|
formula: args.rewriteFormula(trimmed.slice(1), {
|
|
@@ -75,12 +75,12 @@ export function prepareInitialMixedSheetLoad(args) {
|
|
|
75
75
|
cellStore.versions[cellIndex] = 1;
|
|
76
76
|
cellStore.topoRanks[cellIndex] = 0;
|
|
77
77
|
cellStore.cycleGroupIds[cellIndex] = -1;
|
|
78
|
-
if (typeof raw ===
|
|
78
|
+
if (typeof raw === 'number') {
|
|
79
79
|
cellStore.tags[cellIndex] = ValueTag.Number;
|
|
80
80
|
cellStore.numbers[cellIndex] = raw;
|
|
81
81
|
cellStore.stringIds[cellIndex] = 0;
|
|
82
82
|
}
|
|
83
|
-
else if (typeof raw ===
|
|
83
|
+
else if (typeof raw === 'boolean') {
|
|
84
84
|
cellStore.tags[cellIndex] = ValueTag.Boolean;
|
|
85
85
|
cellStore.numbers[cellIndex] = raw ? 1 : 0;
|
|
86
86
|
cellStore.stringIds[cellIndex] = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initial-sheet-load.js","sourceRoot":"","sources":["../src/initial-sheet-load.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"initial-sheet-load.js","sourceRoot":"","sources":["../src/initial-sheet-load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,8BAA8B,EAAE,WAAW,EAAsD,MAAM,aAAa,CAAA;AACxI,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAGrD,MAAM,UAAU,0BAA0B,CAAC,MAAyB,EAAE,OAAe,EAAE,OAAuB;IAC5G,IAAI,2BAA2B,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,8BAA8B,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IACjF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,2BAA2B,CAAC,OAAuB;IAC1D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAC9G,CAAC;AAOD,MAAM,UAAU,4BAA4B,CAAC,IAK5C;IACC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAC;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAE,CAAA;QACnC,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAC;YAC5D,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAE,CAAA;YAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1D,YAAY,IAAI,CAAC,CAAA;gBACjB,SAAQ;YACV,CAAC;YACD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,YAAY,IAAI,CAAC,CAAA;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAA;IAChD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY,CAAC,CAAA;IACzD,CAAC;IACD,MAAM,WAAW,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAwB,YAAY,CAAC,CAAA;IACxF,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,MAAM,kBAAkB,GAAG,SAAS,CAAC,UAAU,CAAA;IAC/C,SAAS,CAAC,UAAU,GAAG,IAAI,CAAA;IAC3B,IAAI,CAAC;QACH,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAC;YACrE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAE,CAAA;YACnC,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAC5D,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAE,CAAA;gBAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;oBAC1B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC5B,WAAW,CAAC,YAAY,CAAC,GAAG;4BAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,QAAQ,EAAE;gCACR,IAAI,EAAE,gBAAgB;gCACtB,GAAG,EAAE,QAAQ;gCACb,GAAG,EAAE,QAAQ;gCACb,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oCAC7C,KAAK,EAAE,IAAI,CAAC,OAAO;oCACnB,GAAG,EAAE,QAAQ;oCACb,GAAG,EAAE,QAAQ;iCACd,CAAC;6BACH;yBACF,CAAA;wBACD,YAAY,IAAI,CAAC,CAAA;wBACjB,SAAQ;oBACV,CAAC;gBACH,CAAC;gBACD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBACjB,SAAQ;gBACV,CAAC;gBACD,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;gBACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAA;gBACjG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;gBAC7C,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,kCAAyB,CAAA;gBACnD,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBACnC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,IAAI,CAAA;gBAC5C,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBACjC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBAClC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;gBACvC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC5B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAA;oBAC3C,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,CAAA;oBAClC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBACpC,CAAC;qBAAM,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE,CAAC;oBACpC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAA;oBAC5C,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC1C,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBACpC,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAA;oBAC3C,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBAChC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAClE,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,UAAU,GAAG,kBAAkB,CAAA;IAC3C,CAAC;IAED,OAAO;QACL,WAAW;QACX,iBAAiB,EAAE,WAAW,CAAC,MAAM;KACtC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAKrC;IACC,MAAM,QAAQ,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAA;IACnD,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,OAAM;IACR,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAA;AACxF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { EngineCellMutationRef } from
|
|
2
|
-
import type { WorkPaperCellAddress, WorkPaperSheet } from
|
|
1
|
+
import type { EngineCellMutationRef } from '@bilig/core';
|
|
2
|
+
import type { WorkPaperCellAddress, WorkPaperSheet } from './work-paper-types.js';
|
|
3
3
|
export type MatrixMutationRef = EngineCellMutationRef;
|
|
4
4
|
export interface MatrixMutationPlan {
|
|
5
5
|
leadingRefs: MatrixMutationRef[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { formatAddress } from
|
|
1
|
+
import { formatAddress } from '@bilig/formula';
|
|
2
2
|
function isFormulaContent(content) {
|
|
3
|
-
return typeof content ===
|
|
3
|
+
return typeof content === 'string' && content.trim().startsWith('=');
|
|
4
4
|
}
|
|
5
5
|
export function buildMatrixMutationPlan(args) {
|
|
6
6
|
const leadingRefs = [];
|
|
@@ -21,8 +21,7 @@ export function buildMatrixMutationPlan(args) {
|
|
|
21
21
|
}
|
|
22
22
|
});
|
|
23
23
|
});
|
|
24
|
-
const shouldDeferLiteral = (address, row, col) => args.deferLiteralAddresses?.has(address) === true ||
|
|
25
|
-
row > (earliestFormulaRowByColumn.get(col) ?? Number.POSITIVE_INFINITY);
|
|
24
|
+
const shouldDeferLiteral = (address, row, col) => args.deferLiteralAddresses?.has(address) === true || row > (earliestFormulaRowByColumn.get(col) ?? Number.POSITIVE_INFINITY);
|
|
26
25
|
args.content.forEach((row, rowOffset) => {
|
|
27
26
|
row.forEach((raw, columnOffset) => {
|
|
28
27
|
const destination = {
|
|
@@ -35,7 +34,7 @@ export function buildMatrixMutationPlan(args) {
|
|
|
35
34
|
if (!args.skipNulls) {
|
|
36
35
|
const ref = {
|
|
37
36
|
sheetId: args.target.sheet,
|
|
38
|
-
mutation: { kind:
|
|
37
|
+
mutation: { kind: 'clearCell', row: destination.row, col: destination.col },
|
|
39
38
|
};
|
|
40
39
|
if (shouldDeferLiteral(address, destination.row, destination.col)) {
|
|
41
40
|
trailingLiteralRefs.push(ref);
|
|
@@ -51,7 +50,7 @@ export function buildMatrixMutationPlan(args) {
|
|
|
51
50
|
formulaRefs.push({
|
|
52
51
|
sheetId: args.target.sheet,
|
|
53
52
|
mutation: {
|
|
54
|
-
kind:
|
|
53
|
+
kind: 'setCellFormula',
|
|
55
54
|
row: destination.row,
|
|
56
55
|
col: destination.col,
|
|
57
56
|
formula: args.rewriteFormula(raw, destination, rowOffset, columnOffset),
|
|
@@ -62,7 +61,7 @@ export function buildMatrixMutationPlan(args) {
|
|
|
62
61
|
const ref = {
|
|
63
62
|
sheetId: args.target.sheet,
|
|
64
63
|
mutation: {
|
|
65
|
-
kind:
|
|
64
|
+
kind: 'setCellValue',
|
|
66
65
|
row: destination.row,
|
|
67
66
|
col: destination.col,
|
|
68
67
|
value: raw,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix-mutation-plan.js","sourceRoot":"","sources":["../src/matrix-mutation-plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"matrix-mutation-plan.js","sourceRoot":"","sources":["../src/matrix-mutation-plan.ts"],"names":[],"mappings":"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"}
|
package/dist/persistence.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { WorkPaper } from
|
|
2
|
-
import type { RawCellContent, WorkPaperConfig, WorkPaperSheet } from
|
|
1
|
+
import { WorkPaper } from './work-paper.js';
|
|
2
|
+
import type { RawCellContent, WorkPaperConfig, WorkPaperSheet } from './work-paper-types.js';
|
|
3
3
|
export declare const WORK_PAPER_DOCUMENT_FORMAT: "bilig.headless.work-paper.document.v1";
|
|
4
4
|
export declare const PERSISTABLE_WORK_PAPER_CONFIG_KEYS: readonly ["accentSensitive", "caseSensitive", "caseFirst", "chooseAddressMappingPolicy", "context", "currencySymbol", "dateFormats", "functionArgSeparator", "decimalSeparator", "evaluateNullToZero", "ignorePunctuation", "language", "ignoreWhiteSpace", "leapYear1900", "licenseKey", "localeLang", "matchWholeCell", "arrayColumnSeparator", "arrayRowSeparator", "maxRows", "maxColumns", "nullDate", "nullYear", "precisionEpsilon", "precisionRounding", "smartRounding", "thousandSeparator", "timeFormats", "useArrayArithmetic", "useColumnIndex", "useStats", "undoLimit", "useRegularExpressions", "useWildcards"];
|
|
5
5
|
type PersistableWorkPaperConfigKey = (typeof PERSISTABLE_WORK_PAPER_CONFIG_KEYS)[number];
|
package/dist/persistence.js
CHANGED
|
@@ -1,71 +1,67 @@
|
|
|
1
|
-
import { WorkPaper } from
|
|
2
|
-
export const WORK_PAPER_DOCUMENT_FORMAT =
|
|
1
|
+
import { WorkPaper } from './work-paper.js';
|
|
2
|
+
export const WORK_PAPER_DOCUMENT_FORMAT = 'bilig.headless.work-paper.document.v1';
|
|
3
3
|
export const PERSISTABLE_WORK_PAPER_CONFIG_KEYS = [
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
4
|
+
'accentSensitive',
|
|
5
|
+
'caseSensitive',
|
|
6
|
+
'caseFirst',
|
|
7
|
+
'chooseAddressMappingPolicy',
|
|
8
|
+
'context',
|
|
9
|
+
'currencySymbol',
|
|
10
|
+
'dateFormats',
|
|
11
|
+
'functionArgSeparator',
|
|
12
|
+
'decimalSeparator',
|
|
13
|
+
'evaluateNullToZero',
|
|
14
|
+
'ignorePunctuation',
|
|
15
|
+
'language',
|
|
16
|
+
'ignoreWhiteSpace',
|
|
17
|
+
'leapYear1900',
|
|
18
|
+
'licenseKey',
|
|
19
|
+
'localeLang',
|
|
20
|
+
'matchWholeCell',
|
|
21
|
+
'arrayColumnSeparator',
|
|
22
|
+
'arrayRowSeparator',
|
|
23
|
+
'maxRows',
|
|
24
|
+
'maxColumns',
|
|
25
|
+
'nullDate',
|
|
26
|
+
'nullYear',
|
|
27
|
+
'precisionEpsilon',
|
|
28
|
+
'precisionRounding',
|
|
29
|
+
'smartRounding',
|
|
30
|
+
'thousandSeparator',
|
|
31
|
+
'timeFormats',
|
|
32
|
+
'useArrayArithmetic',
|
|
33
|
+
'useColumnIndex',
|
|
34
|
+
'useStats',
|
|
35
|
+
'undoLimit',
|
|
36
|
+
'useRegularExpressions',
|
|
37
|
+
'useWildcards',
|
|
38
38
|
];
|
|
39
39
|
function isRecord(value) {
|
|
40
|
-
return typeof value ===
|
|
40
|
+
return typeof value === 'object' && value !== null;
|
|
41
41
|
}
|
|
42
42
|
function isLiteralInput(value) {
|
|
43
|
-
return
|
|
44
|
-
typeof value === "boolean" ||
|
|
45
|
-
typeof value === "number" ||
|
|
46
|
-
typeof value === "string");
|
|
43
|
+
return value === null || typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string';
|
|
47
44
|
}
|
|
48
45
|
function isRawCellContent(value) {
|
|
49
|
-
return isLiteralInput(value) || typeof value ===
|
|
46
|
+
return isLiteralInput(value) || typeof value === 'string';
|
|
50
47
|
}
|
|
51
48
|
function isWorkPaperSheet(value) {
|
|
52
|
-
return
|
|
53
|
-
value.every((row) => Array.isArray(row) && row.every((cell) => isRawCellContent(cell))));
|
|
49
|
+
return Array.isArray(value) && value.every((row) => Array.isArray(row) && row.every((cell) => isRawCellContent(cell)));
|
|
54
50
|
}
|
|
55
51
|
function isNamedExpressionOptions(value) {
|
|
56
52
|
return (isRecord(value) &&
|
|
57
|
-
Object.values(value).every((entry) => typeof entry ===
|
|
53
|
+
Object.values(value).every((entry) => typeof entry === 'string' || typeof entry === 'number' || typeof entry === 'boolean'));
|
|
58
54
|
}
|
|
59
55
|
function isWorkPaperContextValue(value) {
|
|
60
56
|
return (value === null ||
|
|
61
|
-
typeof value ===
|
|
62
|
-
typeof value ===
|
|
63
|
-
typeof value ===
|
|
57
|
+
typeof value === 'string' ||
|
|
58
|
+
typeof value === 'number' ||
|
|
59
|
+
typeof value === 'boolean' ||
|
|
64
60
|
(Array.isArray(value) && value.every((entry) => isWorkPaperContextValue(entry))) ||
|
|
65
61
|
(isRecord(value) && Object.values(value).every((entry) => isWorkPaperContextValue(entry))));
|
|
66
62
|
}
|
|
67
63
|
function isChooseAddressMappingPolicy(value) {
|
|
68
|
-
return isRecord(value) && (value[
|
|
64
|
+
return isRecord(value) && (value['mode'] === 'dense' || value['mode'] === 'sparse');
|
|
69
65
|
}
|
|
70
66
|
function isPersistableWorkPaperConfig(value) {
|
|
71
67
|
if (!isRecord(value)) {
|
|
@@ -75,49 +71,46 @@ function isPersistableWorkPaperConfig(value) {
|
|
|
75
71
|
if (!PERSISTABLE_WORK_PAPER_CONFIG_KEYS.includes(key)) {
|
|
76
72
|
return false;
|
|
77
73
|
}
|
|
78
|
-
if (key ===
|
|
74
|
+
if (key === 'chooseAddressMappingPolicy') {
|
|
79
75
|
return isChooseAddressMappingPolicy(entry);
|
|
80
76
|
}
|
|
81
|
-
if (key ===
|
|
82
|
-
return Array.isArray(entry) && entry.every((item) => typeof item ===
|
|
77
|
+
if (key === 'currencySymbol' || key === 'dateFormats' || key === 'timeFormats') {
|
|
78
|
+
return Array.isArray(entry) && entry.every((item) => typeof item === 'string');
|
|
83
79
|
}
|
|
84
|
-
if (key ===
|
|
85
|
-
return
|
|
86
|
-
typeof entry["year"] === "number" &&
|
|
87
|
-
typeof entry["month"] === "number" &&
|
|
88
|
-
typeof entry["day"] === "number");
|
|
80
|
+
if (key === 'nullDate') {
|
|
81
|
+
return isRecord(entry) && typeof entry['year'] === 'number' && typeof entry['month'] === 'number' && typeof entry['day'] === 'number';
|
|
89
82
|
}
|
|
90
|
-
if (key ===
|
|
83
|
+
if (key === 'context') {
|
|
91
84
|
return isWorkPaperContextValue(entry);
|
|
92
85
|
}
|
|
93
|
-
return typeof entry ===
|
|
86
|
+
return typeof entry === 'string' || typeof entry === 'number' || typeof entry === 'boolean';
|
|
94
87
|
});
|
|
95
88
|
}
|
|
96
89
|
function isPersistedWorkPaperNamedExpression(value) {
|
|
97
90
|
return (isRecord(value) &&
|
|
98
|
-
typeof value[
|
|
99
|
-
isRawCellContent(value[
|
|
100
|
-
(value[
|
|
101
|
-
(value[
|
|
91
|
+
typeof value['name'] === 'string' &&
|
|
92
|
+
isRawCellContent(value['expression']) &&
|
|
93
|
+
(value['scopeSheetName'] === undefined || typeof value['scopeSheetName'] === 'string') &&
|
|
94
|
+
(value['options'] === undefined || isNamedExpressionOptions(value['options'])));
|
|
102
95
|
}
|
|
103
96
|
function isPersistedWorkPaperSheet(value) {
|
|
104
|
-
return isRecord(value) && typeof value[
|
|
97
|
+
return isRecord(value) && typeof value['name'] === 'string' && isWorkPaperSheet(value['content']);
|
|
105
98
|
}
|
|
106
99
|
/**
|
|
107
100
|
* Checks whether a value matches the persisted WorkPaper document format.
|
|
108
101
|
*/
|
|
109
102
|
export function isPersistedWorkPaperDocument(value) {
|
|
110
103
|
return (isRecord(value) &&
|
|
111
|
-
value[
|
|
112
|
-
Array.isArray(value[
|
|
113
|
-
value[
|
|
114
|
-
Array.isArray(value[
|
|
115
|
-
value[
|
|
116
|
-
(value[
|
|
104
|
+
value['format'] === WORK_PAPER_DOCUMENT_FORMAT &&
|
|
105
|
+
Array.isArray(value['sheets']) &&
|
|
106
|
+
value['sheets'].every((sheet) => isPersistedWorkPaperSheet(sheet)) &&
|
|
107
|
+
Array.isArray(value['namedExpressions']) &&
|
|
108
|
+
value['namedExpressions'].every((expression) => isPersistedWorkPaperNamedExpression(expression)) &&
|
|
109
|
+
(value['config'] === undefined || isPersistableWorkPaperConfig(value['config'])));
|
|
117
110
|
}
|
|
118
111
|
function assertPersistedWorkPaperDocument(value) {
|
|
119
112
|
if (!isPersistedWorkPaperDocument(value)) {
|
|
120
|
-
throw new Error(
|
|
113
|
+
throw new Error('Invalid persisted WorkPaper document');
|
|
121
114
|
}
|
|
122
115
|
}
|
|
123
116
|
function setPersistableWorkPaperConfigValue(target, key, value) {
|
|
@@ -151,9 +144,7 @@ export function exportWorkPaperDocument(workbook, options = {}) {
|
|
|
151
144
|
content: workbook.getSheetSerialized(sheetId),
|
|
152
145
|
};
|
|
153
146
|
});
|
|
154
|
-
const namedExpressions = workbook
|
|
155
|
-
.getAllNamedExpressionsSerialized()
|
|
156
|
-
.map((expression) => serializeNamedExpression(workbook, expression));
|
|
147
|
+
const namedExpressions = workbook.getAllNamedExpressionsSerialized().map((expression) => serializeNamedExpression(workbook, expression));
|
|
157
148
|
const document = {
|
|
158
149
|
format: WORK_PAPER_DOCUMENT_FORMAT,
|
|
159
150
|
sheets,
|
|
@@ -174,9 +165,7 @@ export function createWorkPaperFromDocument(document) {
|
|
|
174
165
|
workbook.addSheet(sheet.name);
|
|
175
166
|
});
|
|
176
167
|
document.namedExpressions.forEach((expression) => {
|
|
177
|
-
const scope = expression.scopeSheetName
|
|
178
|
-
? workbook.getSheetId(expression.scopeSheetName)
|
|
179
|
-
: undefined;
|
|
168
|
+
const scope = expression.scopeSheetName ? workbook.getSheetId(expression.scopeSheetName) : undefined;
|
|
180
169
|
if (expression.scopeSheetName && scope === undefined) {
|
|
181
170
|
throw new Error(`Missing scoped sheet ${expression.scopeSheetName}`);
|
|
182
171
|
}
|
package/dist/persistence.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../src/persistence.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../src/persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { EngineChangedCell, EngineEvent } from
|
|
1
|
+
import type { EngineChangedCell, EngineEvent } from '@bilig/protocol';
|
|
2
2
|
export interface TrackedEngineEvent {
|
|
3
|
-
invalidation: EngineEvent[
|
|
3
|
+
invalidation: EngineEvent['invalidation'];
|
|
4
4
|
changedCells: readonly EngineChangedCell[];
|
|
5
5
|
changedInputCount: number;
|
|
6
6
|
explicitChangedCount?: number;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
function readExplicitChangedCount(event) {
|
|
2
|
-
const explicitChangedCount = Reflect.get(event,
|
|
3
|
-
return typeof explicitChangedCount ===
|
|
4
|
-
? explicitChangedCount
|
|
5
|
-
: undefined;
|
|
2
|
+
const explicitChangedCount = Reflect.get(event, 'explicitChangedCount');
|
|
3
|
+
return typeof explicitChangedCount === 'number' && explicitChangedCount >= 0 ? explicitChangedCount : undefined;
|
|
6
4
|
}
|
|
7
5
|
export function captureTrackedEngineEvent(event) {
|
|
8
6
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracked-engine-event-refs.js","sourceRoot":"","sources":["../src/tracked-engine-event-refs.ts"],"names":[],"mappings":"AAYA,SAAS,wBAAwB,CAAC,KAAkB;IAClD,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"tracked-engine-event-refs.js","sourceRoot":"","sources":["../src/tracked-engine-event-refs.ts"],"names":[],"mappings":"AAYA,SAAS,wBAAwB,CAAC,KAAkB;IAClD,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAA;IACvE,OAAO,OAAO,oBAAoB,KAAK,QAAQ,IAAI,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAA;AACjH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAkB;IAC1D,OAAO;QACL,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,iBAAiB;QAClD,oBAAoB,EAAE,wBAAwB,CAAC,KAAK,CAAC;QACrD,oBAAoB,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;QACxD,kBAAkB,EAAE,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;QACpD,qBAAqB,EAAE,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;KAC3D,CAAA;AACH,CAAC"}
|