@bilig/core 0.1.28 → 0.1.29
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/cell-mutations-at.d.ts +26 -0
- package/dist/cell-mutations-at.js +70 -0
- package/dist/cell-mutations-at.js.map +1 -0
- package/dist/cell-store.d.ts +1 -0
- package/dist/cell-store.js +2 -0
- package/dist/cell-store.js.map +1 -1
- package/dist/engine/live.d.ts +1 -1
- package/dist/engine/live.js +64 -58
- package/dist/engine/live.js.map +1 -1
- package/dist/engine/runtime-state.d.ts +6 -0
- package/dist/engine/runtime-state.js.map +1 -1
- package/dist/engine/services/cell-state-service.d.ts +4 -0
- package/dist/engine/services/cell-state-service.js +20 -7
- package/dist/engine/services/cell-state-service.js.map +1 -1
- package/dist/engine/services/formula-binding-service.d.ts +11 -2
- package/dist/engine/services/formula-binding-service.js +284 -7
- package/dist/engine/services/formula-binding-service.js.map +1 -1
- package/dist/engine/services/formula-evaluation-service.d.ts +3 -1
- package/dist/engine/services/formula-evaluation-service.js +30 -2
- package/dist/engine/services/formula-evaluation-service.js.map +1 -1
- package/dist/engine/services/formula-graph-service.d.ts +5 -1
- package/dist/engine/services/formula-graph-service.js +21 -4
- package/dist/engine/services/formula-graph-service.js.map +1 -1
- package/dist/engine/services/lookup-service.d.ts +51 -0
- package/dist/engine/services/lookup-service.js +370 -0
- package/dist/engine/services/lookup-service.js.map +1 -0
- package/dist/engine/services/mutation-history-fast-path.d.ts +17 -0
- package/dist/engine/services/mutation-history-fast-path.js +119 -0
- package/dist/engine/services/mutation-history-fast-path.js.map +1 -0
- package/dist/engine/services/mutation-service.d.ts +26 -2
- package/dist/engine/services/mutation-service.js +169 -36
- package/dist/engine/services/mutation-service.js.map +1 -1
- package/dist/engine/services/mutation-support-service.d.ts +27 -0
- package/dist/engine/services/mutation-support-service.js +114 -0
- package/dist/engine/services/mutation-support-service.js.map +1 -1
- package/dist/engine/services/operation-service.d.ts +3 -1
- package/dist/engine/services/operation-service.js +351 -75
- package/dist/engine/services/operation-service.js.map +1 -1
- package/dist/engine/services/pivot-service.d.ts +7 -0
- package/dist/engine/services/pivot-service.js +9 -1
- package/dist/engine/services/pivot-service.js.map +1 -1
- package/dist/engine/services/recalc-service.d.ts +2 -0
- package/dist/engine/services/recalc-service.js +15 -6
- package/dist/engine/services/recalc-service.js.map +1 -1
- package/dist/engine/services/runtime-scratch-service.d.ts +1 -0
- package/dist/engine/services/runtime-scratch-service.js +1 -0
- package/dist/engine/services/runtime-scratch-service.js.map +1 -1
- package/dist/engine-value-utils.d.ts +2 -0
- package/dist/engine-value-utils.js +28 -0
- package/dist/engine-value-utils.js.map +1 -1
- package/dist/engine.d.ts +12 -0
- package/dist/engine.js +35 -3
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/literal-sheet-loader.d.ts +4 -0
- package/dist/literal-sheet-loader.js +69 -0
- package/dist/literal-sheet-loader.js.map +1 -0
- package/dist/wasm-facade.d.ts +2 -0
- package/dist/wasm-facade.js +34 -5
- package/dist/wasm-facade.js.map +1 -1
- package/dist/workbook-store.d.ts +6 -0
- package/dist/workbook-store.js +48 -0
- package/dist/workbook-store.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { ValueTag } from "@bilig/protocol";
|
|
2
|
+
function isFastSimpleCellOp(op) {
|
|
3
|
+
return (op.kind === "setCellValue" ||
|
|
4
|
+
op.kind === "setCellFormula" ||
|
|
5
|
+
op.kind === "clearCell" ||
|
|
6
|
+
op.kind === "setCellFormat");
|
|
7
|
+
}
|
|
8
|
+
function cloneSimpleCellOp(op) {
|
|
9
|
+
switch (op.kind) {
|
|
10
|
+
case "setCellValue":
|
|
11
|
+
return {
|
|
12
|
+
kind: "setCellValue",
|
|
13
|
+
sheetName: op.sheetName,
|
|
14
|
+
address: op.address,
|
|
15
|
+
value: op.value,
|
|
16
|
+
};
|
|
17
|
+
case "setCellFormula":
|
|
18
|
+
return {
|
|
19
|
+
kind: "setCellFormula",
|
|
20
|
+
sheetName: op.sheetName,
|
|
21
|
+
address: op.address,
|
|
22
|
+
formula: op.formula,
|
|
23
|
+
};
|
|
24
|
+
case "clearCell":
|
|
25
|
+
return {
|
|
26
|
+
kind: "clearCell",
|
|
27
|
+
sheetName: op.sheetName,
|
|
28
|
+
address: op.address,
|
|
29
|
+
};
|
|
30
|
+
case "setCellFormat":
|
|
31
|
+
return {
|
|
32
|
+
kind: "setCellFormat",
|
|
33
|
+
sheetName: op.sheetName,
|
|
34
|
+
address: op.address,
|
|
35
|
+
format: op.format,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function restoreCellOpFromSnapshot(workbook, getCellByIndex, sheetName, address) {
|
|
40
|
+
const cellIndex = workbook.getCellIndex(sheetName, address);
|
|
41
|
+
if (cellIndex === undefined) {
|
|
42
|
+
return { kind: "clearCell", sheetName, address };
|
|
43
|
+
}
|
|
44
|
+
const snapshot = getCellByIndex(cellIndex);
|
|
45
|
+
if (snapshot.formula !== undefined) {
|
|
46
|
+
return {
|
|
47
|
+
kind: "setCellFormula",
|
|
48
|
+
sheetName,
|
|
49
|
+
address,
|
|
50
|
+
formula: snapshot.formula,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
switch (snapshot.value.tag) {
|
|
54
|
+
case ValueTag.Empty:
|
|
55
|
+
case ValueTag.Error:
|
|
56
|
+
return { kind: "clearCell", sheetName, address };
|
|
57
|
+
case ValueTag.Number:
|
|
58
|
+
case ValueTag.Boolean:
|
|
59
|
+
case ValueTag.String:
|
|
60
|
+
return {
|
|
61
|
+
kind: "setCellValue",
|
|
62
|
+
sheetName,
|
|
63
|
+
address,
|
|
64
|
+
value: snapshot.value.value,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function buildSimpleCellInverseOp(workbook, getCellByIndex, op) {
|
|
69
|
+
switch (op.kind) {
|
|
70
|
+
case "setCellValue":
|
|
71
|
+
case "setCellFormula":
|
|
72
|
+
case "clearCell":
|
|
73
|
+
return restoreCellOpFromSnapshot(workbook, getCellByIndex, op.sheetName, op.address);
|
|
74
|
+
case "setCellFormat": {
|
|
75
|
+
const cellIndex = workbook.getCellIndex(op.sheetName, op.address);
|
|
76
|
+
return {
|
|
77
|
+
kind: "setCellFormat",
|
|
78
|
+
sheetName: op.sheetName,
|
|
79
|
+
address: op.address,
|
|
80
|
+
format: cellIndex === undefined ? null : (workbook.getCellFormat(cellIndex) ?? null),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
default:
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
export function tryBuildFastMutationHistory(args) {
|
|
88
|
+
const forwardOps = Array(args.ops.length);
|
|
89
|
+
for (let index = 0; index < args.ops.length; index += 1) {
|
|
90
|
+
const op = args.ops[index];
|
|
91
|
+
if (op === undefined || !isFastSimpleCellOp(op)) {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
forwardOps[index] = cloneSimpleCellOp(op);
|
|
95
|
+
}
|
|
96
|
+
const inverseOps = [];
|
|
97
|
+
for (let index = forwardOps.length - 1; index >= 0; index -= 1) {
|
|
98
|
+
const op = forwardOps[index];
|
|
99
|
+
if (op === undefined) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
const inverse = buildSimpleCellInverseOp(args.workbook, args.getCellByIndex, op);
|
|
103
|
+
if (!inverse) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
inverseOps.push(inverse);
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
forward: args.potentialNewCells === undefined
|
|
110
|
+
? { ops: forwardOps }
|
|
111
|
+
: { ops: forwardOps, potentialNewCells: args.potentialNewCells },
|
|
112
|
+
inverse: {
|
|
113
|
+
ops: inverseOps,
|
|
114
|
+
potentialNewCells: args.ops.length,
|
|
115
|
+
},
|
|
116
|
+
undoOps: inverseOps.map((op) => cloneSimpleCellOp(op)),
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=mutation-history-fast-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutation-history-fast-path.js","sourceRoot":"","sources":["../../../src/engine/services/mutation-history-fast-path.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,37 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
2
|
import type { EngineOp, EngineOpBatch } from "@bilig/workbook-domain";
|
|
3
|
-
import type
|
|
4
|
-
import type
|
|
3
|
+
import { type CellRangeRef, type CellSnapshot, type LiteralInput } from "@bilig/protocol";
|
|
4
|
+
import { type WorkbookStore } from "../../workbook-store.js";
|
|
5
|
+
import { type EngineCellMutationRef } from "../../cell-mutations-at.js";
|
|
5
6
|
import type { CommitOp, EngineRuntimeState, TransactionRecord } from "../runtime-state.js";
|
|
6
7
|
import { EngineMutationError } from "../errors.js";
|
|
7
8
|
export interface EngineMutationService {
|
|
9
|
+
readonly executeTransactionNow: (record: TransactionRecord, source: "local" | "restore" | "history") => void;
|
|
8
10
|
readonly executeTransaction: (record: TransactionRecord, source: "local" | "restore" | "history") => Effect.Effect<void, EngineMutationError>;
|
|
11
|
+
readonly executeLocalNow: (ops: EngineOp[], potentialNewCells?: number) => readonly EngineOp[] | null;
|
|
12
|
+
readonly executeLocalCellMutationsAtNow: (refs: readonly EngineCellMutationRef[], potentialNewCells?: number) => readonly EngineOp[] | null;
|
|
13
|
+
readonly applyCellMutationsAtNow: (refs: readonly EngineCellMutationRef[], options?: {
|
|
14
|
+
captureUndo?: boolean;
|
|
15
|
+
potentialNewCells?: number;
|
|
16
|
+
source?: "local" | "restore";
|
|
17
|
+
}) => readonly EngineOp[] | null;
|
|
18
|
+
readonly applyCellMutationsAt: (refs: readonly EngineCellMutationRef[], options?: {
|
|
19
|
+
captureUndo?: boolean;
|
|
20
|
+
potentialNewCells?: number;
|
|
21
|
+
source?: "local" | "restore";
|
|
22
|
+
}) => Effect.Effect<readonly EngineOp[] | null, EngineMutationError>;
|
|
9
23
|
readonly executeLocal: (ops: EngineOp[], potentialNewCells?: number) => Effect.Effect<readonly EngineOp[] | null, EngineMutationError>;
|
|
24
|
+
readonly applyOpsNow: (ops: readonly EngineOp[], options?: {
|
|
25
|
+
captureUndo?: boolean;
|
|
26
|
+
potentialNewCells?: number;
|
|
27
|
+
source?: "local" | "restore";
|
|
28
|
+
trusted?: boolean;
|
|
29
|
+
}) => readonly EngineOp[] | null;
|
|
10
30
|
readonly applyOps: (ops: readonly EngineOp[], options?: {
|
|
11
31
|
captureUndo?: boolean;
|
|
12
32
|
potentialNewCells?: number;
|
|
33
|
+
source?: "local" | "restore";
|
|
34
|
+
trusted?: boolean;
|
|
13
35
|
}) => Effect.Effect<readonly EngineOp[] | null, EngineMutationError>;
|
|
14
36
|
readonly captureUndoOps: <Result>(mutate: () => Result) => Effect.Effect<{
|
|
15
37
|
result: Result;
|
|
@@ -32,7 +54,9 @@ export declare function createEngineMutationService(args: {
|
|
|
32
54
|
readonly captureRowRangeCellState: (sheetName: string, start: number, count: number) => EngineOp[];
|
|
33
55
|
readonly captureColumnRangeCellState: (sheetName: string, start: number, count: number) => EngineOp[];
|
|
34
56
|
readonly restoreCellOps: (sheetName: string, address: string) => EngineOp[];
|
|
57
|
+
readonly getCellByIndex: (cellIndex: number) => CellSnapshot;
|
|
35
58
|
readonly readRangeCells: (range: CellRangeRef) => CellSnapshot[][];
|
|
36
59
|
readonly toCellStateOps: (sheetName: string, address: string, snapshot: CellSnapshot, sourceSheetName?: string, sourceAddress?: string) => EngineOp[];
|
|
37
60
|
readonly applyBatchNow: (batch: EngineOpBatch, source: "local" | "restore" | "history", potentialNewCells?: number) => void;
|
|
61
|
+
readonly applyCellMutationsAtBatchNow: (refs: readonly EngineCellMutationRef[], batch: EngineOpBatch, source: "local" | "restore", potentialNewCells?: number) => void;
|
|
38
62
|
}): EngineMutationService;
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
2
|
import { formatAddress } from "@bilig/formula";
|
|
3
|
+
import { ValueTag } from "@bilig/protocol";
|
|
3
4
|
import { normalizeRange } from "../../engine-range-utils.js";
|
|
4
5
|
import { cloneCellStyleRecord } from "../../engine-style-utils.js";
|
|
5
6
|
import { restoreFormatRangeOps, restoreStyleRangeOps } from "../../engine-range-format-ops.js";
|
|
6
7
|
import { sheetMetadataToOps } from "../../engine-snapshot-utils.js";
|
|
7
8
|
import { parseCsv, parseCsvCellInput } from "../../csv.js";
|
|
8
9
|
import { createBatch } from "../../replica-state.js";
|
|
10
|
+
import { makeCellKey } from "../../workbook-store.js";
|
|
11
|
+
import { cellMutationRefToEngineOp, cloneCellMutationRef, countPotentialNewCellsForMutationRefs, } from "../../cell-mutations-at.js";
|
|
9
12
|
import { EngineMutationError } from "../errors.js";
|
|
13
|
+
import { tryBuildFastMutationHistory, } from "./mutation-history-fast-path.js";
|
|
10
14
|
function mutationErrorMessage(message, cause) {
|
|
11
15
|
return cause instanceof Error && cause.message.length > 0 ? cause.message : message;
|
|
12
16
|
}
|
|
@@ -22,6 +26,56 @@ function getMatrixCell(matrix, rowIndex, colIndex) {
|
|
|
22
26
|
return cell;
|
|
23
27
|
}
|
|
24
28
|
export function createEngineMutationService(args) {
|
|
29
|
+
const restoreCellOpFromRef = (ref) => {
|
|
30
|
+
const sheet = args.state.workbook.getSheetById(ref.sheetId);
|
|
31
|
+
if (!sheet) {
|
|
32
|
+
throw new Error(`Unknown sheet id: ${ref.sheetId}`);
|
|
33
|
+
}
|
|
34
|
+
const address = formatAddress(ref.mutation.row, ref.mutation.col);
|
|
35
|
+
const cellIndex = args.state.workbook.cellKeyToIndex.get(makeCellKey(ref.sheetId, ref.mutation.row, ref.mutation.col));
|
|
36
|
+
if (cellIndex === undefined) {
|
|
37
|
+
return { kind: "clearCell", sheetName: sheet.name, address };
|
|
38
|
+
}
|
|
39
|
+
const snapshot = args.getCellByIndex(cellIndex);
|
|
40
|
+
if (snapshot.formula !== undefined) {
|
|
41
|
+
return {
|
|
42
|
+
kind: "setCellFormula",
|
|
43
|
+
sheetName: sheet.name,
|
|
44
|
+
address,
|
|
45
|
+
formula: snapshot.formula,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
switch (snapshot.value.tag) {
|
|
49
|
+
case ValueTag.Empty:
|
|
50
|
+
case ValueTag.Error:
|
|
51
|
+
return { kind: "clearCell", sheetName: sheet.name, address };
|
|
52
|
+
case ValueTag.Number:
|
|
53
|
+
case ValueTag.Boolean:
|
|
54
|
+
case ValueTag.String:
|
|
55
|
+
return {
|
|
56
|
+
kind: "setCellValue",
|
|
57
|
+
sheetName: sheet.name,
|
|
58
|
+
address,
|
|
59
|
+
value: snapshot.value.value,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const buildFastMutationHistoryFromRefs = (refs, potentialNewCells) => {
|
|
64
|
+
const forwardOps = Array.from({ length: refs.length });
|
|
65
|
+
for (let index = 0; index < refs.length; index += 1) {
|
|
66
|
+
const ref = refs[index];
|
|
67
|
+
forwardOps[index] = cellMutationRefToEngineOp(args.state.workbook, ref);
|
|
68
|
+
}
|
|
69
|
+
const inverseOps = [];
|
|
70
|
+
for (let index = refs.length - 1; index >= 0; index -= 1) {
|
|
71
|
+
inverseOps.push(restoreCellOpFromRef(refs[index]));
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
forward: { ops: forwardOps, potentialNewCells },
|
|
75
|
+
inverse: { ops: inverseOps, potentialNewCells: refs.length },
|
|
76
|
+
undoOps: structuredClone(inverseOps),
|
|
77
|
+
};
|
|
78
|
+
};
|
|
25
79
|
const inverseOpsFor = (op) => {
|
|
26
80
|
switch (op.kind) {
|
|
27
81
|
case "upsertWorkbook":
|
|
@@ -32,7 +86,10 @@ export function createEngineMutationService(args) {
|
|
|
32
86
|
}
|
|
33
87
|
case "setCalculationSettings":
|
|
34
88
|
return [
|
|
35
|
-
{
|
|
89
|
+
{
|
|
90
|
+
kind: "setCalculationSettings",
|
|
91
|
+
settings: args.state.workbook.getCalculationSettings(),
|
|
92
|
+
},
|
|
36
93
|
];
|
|
37
94
|
case "setVolatileContext":
|
|
38
95
|
return [{ kind: "setVolatileContext", context: args.state.workbook.getVolatileContext() }];
|
|
@@ -454,7 +511,47 @@ export function createEngineMutationService(args) {
|
|
|
454
511
|
const batch = createBatch(args.state.replicaState, record.ops);
|
|
455
512
|
args.applyBatchNow(batch, source, record.potentialNewCells);
|
|
456
513
|
};
|
|
514
|
+
const executeLocalCellMutationsAtNow = (refs, potentialNewCells) => {
|
|
515
|
+
if (refs.length === 0) {
|
|
516
|
+
return null;
|
|
517
|
+
}
|
|
518
|
+
const nextRefs = refs.map((ref) => cloneCellMutationRef(ref));
|
|
519
|
+
const nextPotentialNewCells = potentialNewCells ?? countPotentialNewCellsForMutationRefs(nextRefs);
|
|
520
|
+
const fastHistory = buildFastMutationHistoryFromRefs(nextRefs, nextPotentialNewCells);
|
|
521
|
+
const inverse = fastHistory?.inverse ?? {
|
|
522
|
+
ops: buildInverseOps(fastHistory.forward.ops),
|
|
523
|
+
potentialNewCells: fastHistory.forward.ops.length,
|
|
524
|
+
};
|
|
525
|
+
args.applyCellMutationsAtBatchNow(nextRefs, createBatch(args.state.replicaState, fastHistory.forward.ops), "local", nextPotentialNewCells);
|
|
526
|
+
if (args.state.getTransactionReplayDepth() === 0) {
|
|
527
|
+
args.state.undoStack.push({
|
|
528
|
+
forward: fastHistory?.forward ?? {
|
|
529
|
+
ops: canonicalizeForwardOps(fastHistory.forward.ops),
|
|
530
|
+
potentialNewCells: nextPotentialNewCells,
|
|
531
|
+
},
|
|
532
|
+
inverse,
|
|
533
|
+
});
|
|
534
|
+
args.state.redoStack.length = 0;
|
|
535
|
+
}
|
|
536
|
+
return fastHistory?.undoOps ?? structuredClone(inverse.ops);
|
|
537
|
+
};
|
|
538
|
+
const applyCellMutationsAtNow = (refs, options = {}) => {
|
|
539
|
+
const source = options.source ?? "restore";
|
|
540
|
+
const captureUndo = options.captureUndo ?? source === "local";
|
|
541
|
+
if (captureUndo) {
|
|
542
|
+
return executeLocalCellMutationsAtNow(refs, options.potentialNewCells);
|
|
543
|
+
}
|
|
544
|
+
if (refs.length === 0) {
|
|
545
|
+
return null;
|
|
546
|
+
}
|
|
547
|
+
const nextRefs = refs.map((ref) => cloneCellMutationRef(ref));
|
|
548
|
+
const nextPotentialNewCells = options.potentialNewCells ?? countPotentialNewCellsForMutationRefs(nextRefs);
|
|
549
|
+
const forwardOps = nextRefs.map((ref) => cellMutationRefToEngineOp(args.state.workbook, ref));
|
|
550
|
+
args.applyCellMutationsAtBatchNow(nextRefs, createBatch(args.state.replicaState, forwardOps), source, nextPotentialNewCells);
|
|
551
|
+
return null;
|
|
552
|
+
};
|
|
457
553
|
return {
|
|
554
|
+
executeTransactionNow: executeTransactionNow,
|
|
458
555
|
executeTransaction(record, source) {
|
|
459
556
|
return Effect.try({
|
|
460
557
|
try: () => {
|
|
@@ -466,49 +563,80 @@ export function createEngineMutationService(args) {
|
|
|
466
563
|
}),
|
|
467
564
|
});
|
|
468
565
|
},
|
|
566
|
+
executeLocalNow(ops, potentialNewCells) {
|
|
567
|
+
if (ops.length === 0) {
|
|
568
|
+
return null;
|
|
569
|
+
}
|
|
570
|
+
const forward = potentialNewCells === undefined ? { ops } : { ops, potentialNewCells };
|
|
571
|
+
const fastHistory = tryBuildFastMutationHistory(potentialNewCells === undefined
|
|
572
|
+
? {
|
|
573
|
+
workbook: args.state.workbook,
|
|
574
|
+
getCellByIndex: args.getCellByIndex,
|
|
575
|
+
ops,
|
|
576
|
+
}
|
|
577
|
+
: {
|
|
578
|
+
workbook: args.state.workbook,
|
|
579
|
+
getCellByIndex: args.getCellByIndex,
|
|
580
|
+
ops,
|
|
581
|
+
potentialNewCells,
|
|
582
|
+
});
|
|
583
|
+
const inverse = fastHistory?.inverse ?? {
|
|
584
|
+
ops: buildInverseOps(ops),
|
|
585
|
+
potentialNewCells: ops.length,
|
|
586
|
+
};
|
|
587
|
+
executeTransactionNow(forward, "local");
|
|
588
|
+
if (args.state.getTransactionReplayDepth() === 0) {
|
|
589
|
+
args.state.undoStack.push({
|
|
590
|
+
forward: fastHistory?.forward ??
|
|
591
|
+
(potentialNewCells === undefined
|
|
592
|
+
? { ops: canonicalizeForwardOps(ops) }
|
|
593
|
+
: { ops: canonicalizeForwardOps(ops), potentialNewCells }),
|
|
594
|
+
inverse,
|
|
595
|
+
});
|
|
596
|
+
args.state.redoStack.length = 0;
|
|
597
|
+
}
|
|
598
|
+
return fastHistory?.undoOps ?? structuredClone(inverse.ops);
|
|
599
|
+
},
|
|
600
|
+
executeLocalCellMutationsAtNow(refs, potentialNewCells) {
|
|
601
|
+
return executeLocalCellMutationsAtNow(refs, potentialNewCells);
|
|
602
|
+
},
|
|
603
|
+
applyCellMutationsAtNow(refs, options = {}) {
|
|
604
|
+
return applyCellMutationsAtNow(refs, options);
|
|
605
|
+
},
|
|
606
|
+
applyCellMutationsAt(refs, options = {}) {
|
|
607
|
+
return Effect.try({
|
|
608
|
+
try: () => applyCellMutationsAtNow(refs, options),
|
|
609
|
+
catch: (cause) => new EngineMutationError({
|
|
610
|
+
message: "Failed to apply cell mutations",
|
|
611
|
+
cause,
|
|
612
|
+
}),
|
|
613
|
+
});
|
|
614
|
+
},
|
|
469
615
|
executeLocal(ops, potentialNewCells) {
|
|
470
616
|
return Effect.try({
|
|
471
|
-
try: () =>
|
|
472
|
-
if (ops.length === 0) {
|
|
473
|
-
return null;
|
|
474
|
-
}
|
|
475
|
-
const forward = potentialNewCells === undefined ? { ops } : { ops, potentialNewCells };
|
|
476
|
-
const inverse = {
|
|
477
|
-
ops: buildInverseOps(ops),
|
|
478
|
-
potentialNewCells: ops.length,
|
|
479
|
-
};
|
|
480
|
-
executeTransactionNow(forward, "local");
|
|
481
|
-
if (args.state.getTransactionReplayDepth() === 0) {
|
|
482
|
-
const historyForwardOps = canonicalizeForwardOps(ops);
|
|
483
|
-
const historyForward = potentialNewCells === undefined
|
|
484
|
-
? { ops: historyForwardOps }
|
|
485
|
-
: { ops: historyForwardOps, potentialNewCells };
|
|
486
|
-
args.state.undoStack.push({ forward: historyForward, inverse });
|
|
487
|
-
args.state.redoStack.length = 0;
|
|
488
|
-
}
|
|
489
|
-
return structuredClone(inverse.ops);
|
|
490
|
-
},
|
|
617
|
+
try: () => this.executeLocalNow(ops, potentialNewCells),
|
|
491
618
|
catch: (cause) => new EngineMutationError({
|
|
492
619
|
message: "Failed to execute local transaction",
|
|
493
620
|
cause,
|
|
494
621
|
}),
|
|
495
622
|
});
|
|
496
623
|
},
|
|
624
|
+
applyOpsNow(ops, options = {}) {
|
|
625
|
+
const nextOps = options.trusted ? Array.from(ops) : structuredClone([...ops]);
|
|
626
|
+
if (nextOps.length === 0) {
|
|
627
|
+
return null;
|
|
628
|
+
}
|
|
629
|
+
if (options.captureUndo) {
|
|
630
|
+
return this.executeLocalNow(nextOps, options.potentialNewCells);
|
|
631
|
+
}
|
|
632
|
+
executeTransactionNow(options.potentialNewCells === undefined
|
|
633
|
+
? { ops: nextOps }
|
|
634
|
+
: { ops: nextOps, potentialNewCells: options.potentialNewCells }, options.source ?? "restore");
|
|
635
|
+
return null;
|
|
636
|
+
},
|
|
497
637
|
applyOps(ops, options = {}) {
|
|
498
638
|
return Effect.try({
|
|
499
|
-
try: () =>
|
|
500
|
-
const nextOps = structuredClone([...ops]);
|
|
501
|
-
if (nextOps.length === 0) {
|
|
502
|
-
return null;
|
|
503
|
-
}
|
|
504
|
-
if (options.captureUndo) {
|
|
505
|
-
return Effect.runSync(this.executeLocal(nextOps, options.potentialNewCells));
|
|
506
|
-
}
|
|
507
|
-
executeTransactionNow(options.potentialNewCells === undefined
|
|
508
|
-
? { ops: nextOps }
|
|
509
|
-
: { ops: nextOps, potentialNewCells: options.potentialNewCells }, "restore");
|
|
510
|
-
return null;
|
|
511
|
-
},
|
|
639
|
+
try: () => this.applyOpsNow(ops, options),
|
|
512
640
|
catch: (cause) => new EngineMutationError({
|
|
513
641
|
message: "Failed to apply engine operations",
|
|
514
642
|
cause,
|
|
@@ -546,7 +674,8 @@ export function createEngineMutationService(args) {
|
|
|
546
674
|
const bounds = normalizeRange(range);
|
|
547
675
|
const expectedHeight = bounds.endRow - bounds.startRow + 1;
|
|
548
676
|
const expectedWidth = bounds.endCol - bounds.startCol + 1;
|
|
549
|
-
if (values.length !== expectedHeight ||
|
|
677
|
+
if (values.length !== expectedHeight ||
|
|
678
|
+
values.some((row) => row.length !== expectedWidth)) {
|
|
550
679
|
throw new Error("setRangeValues requires a value matrix that exactly matches the target range");
|
|
551
680
|
}
|
|
552
681
|
const opCount = expectedHeight * expectedWidth;
|
|
@@ -823,7 +952,11 @@ export function createEngineMutationService(args) {
|
|
|
823
952
|
break;
|
|
824
953
|
case "deleteCell":
|
|
825
954
|
if (op.sheetName && op.addr) {
|
|
826
|
-
engineOps.push({
|
|
955
|
+
engineOps.push({
|
|
956
|
+
kind: "clearCell",
|
|
957
|
+
sheetName: op.sheetName,
|
|
958
|
+
address: op.addr,
|
|
959
|
+
});
|
|
827
960
|
engineOps.push({
|
|
828
961
|
kind: "setCellFormat",
|
|
829
962
|
sheetName: op.sheetName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation-service.js","sourceRoot":"","sources":["../../../src/engine/services/mutation-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mutation-service.js","sourceRoot":"","sources":["../../../src/engine/services/mutation-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,33 @@ export interface EngineMutationSupportService {
|
|
|
35
35
|
}, EngineMutationError>;
|
|
36
36
|
readonly syncDynamicRanges: (formulaChangedCount: number) => Effect.Effect<number, EngineMutationError>;
|
|
37
37
|
readonly resetMaterializedCellScratch: (expectedSize: number) => Effect.Effect<void, EngineMutationError>;
|
|
38
|
+
readonly beginMutationCollectionNow: () => void;
|
|
39
|
+
readonly markInputChangedNow: (cellIndex: number, count: number) => number;
|
|
40
|
+
readonly markFormulaChangedNow: (cellIndex: number, count: number) => number;
|
|
41
|
+
readonly markVolatileFormulasChangedNow: (count: number) => number;
|
|
42
|
+
readonly markSpillRootsChangedNow: (cellIndices: readonly number[], count: number) => number;
|
|
43
|
+
readonly markPivotRootsChangedNow: (cellIndices: readonly number[], count: number) => number;
|
|
44
|
+
readonly markExplicitChangedNow: (cellIndex: number, count: number) => number;
|
|
45
|
+
readonly composeMutationRootsNow: (changedInputCount: number, formulaChangedCount: number) => U32;
|
|
46
|
+
readonly composeEventChangesNow: (recalculated: U32, explicitChangedCount: number) => U32;
|
|
47
|
+
readonly unionChangedSetsNow: (...sets: Array<readonly number[] | U32>) => U32;
|
|
48
|
+
readonly composeChangedRootsAndOrderedNow: (changedRoots: readonly number[] | U32, ordered: U32, orderedCount: number) => U32;
|
|
49
|
+
readonly getChangedInputBufferNow: () => U32;
|
|
50
|
+
readonly ensureCellTrackedNow: (sheetName: string, address: string) => number;
|
|
51
|
+
readonly ensureCellTrackedByCoordsNow: (sheetId: number, row: number, col: number) => number;
|
|
52
|
+
readonly clearOwnedSpillNow: (cellIndex: number) => number[];
|
|
53
|
+
readonly materializeSpillNow: (cellIndex: number, arrayValue: {
|
|
54
|
+
values: CellValue[];
|
|
55
|
+
rows: number;
|
|
56
|
+
cols: number;
|
|
57
|
+
}) => SpillMaterialization;
|
|
58
|
+
readonly removeSheetRuntimeNow: (sheetName: string, explicitChangedCount: number) => {
|
|
59
|
+
changedInputCount: number;
|
|
60
|
+
formulaChangedCount: number;
|
|
61
|
+
explicitChangedCount: number;
|
|
62
|
+
};
|
|
63
|
+
readonly syncDynamicRangesNow: (formulaChangedCount: number) => number;
|
|
64
|
+
readonly resetMaterializedCellScratchNow: (expectedSize: number) => void;
|
|
38
65
|
}
|
|
39
66
|
export declare function createEngineMutationSupportService(args: {
|
|
40
67
|
readonly state: Pick<EngineRuntimeState, "workbook" | "strings" | "formulas" | "ranges">;
|