@bilig/headless 0.1.101 → 0.2.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/dist/change-order.js +11 -0
- package/dist/change-order.js.map +1 -1
- package/dist/initial-sheet-load.js +3 -6
- package/dist/initial-sheet-load.js.map +1 -1
- package/dist/tracked-cell-index-changes.d.ts +12 -0
- package/dist/tracked-cell-index-changes.js +211 -0
- package/dist/tracked-cell-index-changes.js.map +1 -0
- package/dist/tracked-engine-event-refs.d.ts +40 -1
- package/dist/tracked-engine-event-refs.js +10 -3
- package/dist/tracked-engine-event-refs.js.map +1 -1
- package/dist/work-paper-runtime.d.ts +6 -2
- package/dist/work-paper-runtime.js +248 -77
- package/dist/work-paper-runtime.js.map +1 -1
- package/dist/work-paper-types.d.ts +2 -0
- package/package.json +4 -4
package/dist/change-order.js
CHANGED
|
@@ -14,6 +14,9 @@ export function orderWorkPaperCellChanges(changes, sheets, explicitChangedCount)
|
|
|
14
14
|
if (isSortedCellChangeSlice(changes, compare, 0, changes.length)) {
|
|
15
15
|
return changes;
|
|
16
16
|
}
|
|
17
|
+
if (isReverseSortedCellChangeSlice(changes, compare, 0, changes.length)) {
|
|
18
|
+
return changes.toReversed();
|
|
19
|
+
}
|
|
17
20
|
return changes.toSorted(compare);
|
|
18
21
|
}
|
|
19
22
|
function compareSingleSheetCellChanges(left, right) {
|
|
@@ -41,6 +44,14 @@ function isSortedCellChangeSlice(changes, compare, start, end) {
|
|
|
41
44
|
}
|
|
42
45
|
return true;
|
|
43
46
|
}
|
|
47
|
+
function isReverseSortedCellChangeSlice(changes, compare, start, end) {
|
|
48
|
+
for (let index = start + 1; index < end; index += 1) {
|
|
49
|
+
if (compare(changes[index - 1], changes[index]) < 0) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
44
55
|
function mergeSortedCellChangeSlices(changes, compare, split) {
|
|
45
56
|
const merged = [];
|
|
46
57
|
let leftIndex = 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":"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"}
|
|
1
|
+
{"version":3,"file":"change-order.js","sourceRoot":"","sources":["../src/change-order.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { loadLiteralSheetIntoEmptySheet
|
|
1
|
+
import { loadLiteralSheetIntoEmptySheet } from '@bilig/core';
|
|
2
2
|
import { ErrorCode, ValueTag } from '@bilig/protocol';
|
|
3
3
|
export function tryLoadInitialLiteralSheet(engine, sheetId, content) {
|
|
4
4
|
if (sheetContainsFormulaContent(content)) {
|
|
@@ -11,8 +11,7 @@ function sheetContainsFormulaContent(content) {
|
|
|
11
11
|
return content.some((row) => row.some((value) => typeof value === 'string' && value.trim().startsWith('=')));
|
|
12
12
|
}
|
|
13
13
|
export function prepareInitialMixedSheetLoad(args) {
|
|
14
|
-
|
|
15
|
-
if (!sheet) {
|
|
14
|
+
if (!args.engine.workbook.getSheetById(args.sheetId)) {
|
|
16
15
|
throw new Error(`Unknown sheet id: ${args.sheetId}`);
|
|
17
16
|
}
|
|
18
17
|
let literalCount = 0;
|
|
@@ -66,9 +65,7 @@ export function prepareInitialMixedSheetLoad(args) {
|
|
|
66
65
|
if (raw === null) {
|
|
67
66
|
continue;
|
|
68
67
|
}
|
|
69
|
-
const cellIndex =
|
|
70
|
-
args.engine.workbook.cellKeyToIndex.set(makeCellKey(args.sheetId, rowIndex, colIndex), cellIndex);
|
|
71
|
-
sheet.grid.set(rowIndex, colIndex, cellIndex);
|
|
68
|
+
const { cellIndex } = args.engine.workbook.ensureCellAt(args.sheetId, rowIndex, colIndex);
|
|
72
69
|
cellStore.flags[cellIndex] = 16 /* CellFlags.Materialized */;
|
|
73
70
|
cellStore.formulaIds[cellIndex] = 0;
|
|
74
71
|
cellStore.errors[cellIndex] = ErrorCode.None;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initial-sheet-load.js","sourceRoot":"","sources":["../src/initial-sheet-load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,8BAA8B,
|
|
1
|
+
{"version":3,"file":"initial-sheet-load.js","sourceRoot":"","sources":["../src/initial-sheet-load.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SpreadsheetEngine } from '@bilig/core';
|
|
2
|
+
import type { WorkPaperCellChange } from './work-paper-types.js';
|
|
3
|
+
export interface MaterializedTrackedIndexChanges {
|
|
4
|
+
readonly changes: readonly WorkPaperCellChange[];
|
|
5
|
+
readonly ordered: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function materializeTrackedIndexChangesWithMetadata(engine: SpreadsheetEngine, changedCellIndices: readonly number[] | Uint32Array, options?: {
|
|
8
|
+
readonly explicitChangedCount?: number;
|
|
9
|
+
}): MaterializedTrackedIndexChanges;
|
|
10
|
+
export declare function materializeTrackedIndexChanges(engine: SpreadsheetEngine, changedCellIndices: readonly number[] | Uint32Array, options?: {
|
|
11
|
+
readonly explicitChangedCount?: number;
|
|
12
|
+
}): readonly WorkPaperCellChange[];
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { indexToColumn } from '@bilig/formula';
|
|
2
|
+
import { ValueTag } from '@bilig/protocol';
|
|
3
|
+
export function materializeTrackedIndexChangesWithMetadata(engine, changedCellIndices, options = {}) {
|
|
4
|
+
if (changedCellIndices.length === 0) {
|
|
5
|
+
return { changes: [], ordered: true };
|
|
6
|
+
}
|
|
7
|
+
const workbook = engine.workbook;
|
|
8
|
+
const cellStore = workbook.cellStore;
|
|
9
|
+
const columnLabels = [];
|
|
10
|
+
const formatAddressCached = (row, col) => {
|
|
11
|
+
let label = columnLabels[col];
|
|
12
|
+
if (label === undefined) {
|
|
13
|
+
label = indexToColumn(col);
|
|
14
|
+
columnLabels[col] = label;
|
|
15
|
+
}
|
|
16
|
+
return `${label}${row + 1}`;
|
|
17
|
+
};
|
|
18
|
+
let firstSheetId;
|
|
19
|
+
for (let index = 0; index < changedCellIndices.length; index += 1) {
|
|
20
|
+
const sheetId = cellStore.sheetIds[changedCellIndices[index]];
|
|
21
|
+
if (sheetId !== undefined) {
|
|
22
|
+
firstSheetId = sheetId;
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (firstSheetId === undefined) {
|
|
27
|
+
return { changes: [], ordered: true };
|
|
28
|
+
}
|
|
29
|
+
let isSingleSheetChangeSet = true;
|
|
30
|
+
for (let index = 0; index < changedCellIndices.length; index += 1) {
|
|
31
|
+
const sheetId = cellStore.sheetIds[changedCellIndices[index]];
|
|
32
|
+
if (sheetId !== undefined && sheetId !== firstSheetId) {
|
|
33
|
+
isSingleSheetChangeSet = false;
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const changes = [];
|
|
38
|
+
if (isSingleSheetChangeSet) {
|
|
39
|
+
const sheet = workbook.getSheetById(firstSheetId);
|
|
40
|
+
const sheetName = sheet?.name ?? workbook.getSheetNameById(firstSheetId);
|
|
41
|
+
const isPhysicalSheet = !sheet || sheet.structureVersion === 1;
|
|
42
|
+
const split = options.explicitChangedCount;
|
|
43
|
+
if (isPhysicalSheet &&
|
|
44
|
+
split !== undefined &&
|
|
45
|
+
split > 0 &&
|
|
46
|
+
split < changedCellIndices.length &&
|
|
47
|
+
isTrackedIndexSliceSorted(cellStore, changedCellIndices, 0, split) &&
|
|
48
|
+
isTrackedIndexSliceSorted(cellStore, changedCellIndices, split, changedCellIndices.length)) {
|
|
49
|
+
let explicitIndex = 0;
|
|
50
|
+
let recalculatedIndex = split;
|
|
51
|
+
while (explicitIndex < split && recalculatedIndex < changedCellIndices.length) {
|
|
52
|
+
const explicitCellIndex = changedCellIndices[explicitIndex];
|
|
53
|
+
const recalculatedCellIndex = changedCellIndices[recalculatedIndex];
|
|
54
|
+
if (compareTrackedPhysicalCellIndices(cellStore, explicitCellIndex, recalculatedCellIndex) <= 0) {
|
|
55
|
+
changes.push(readPhysicalTrackedIndexChange(explicitCellIndex, firstSheetId, sheetName, cellStore, engine, formatAddressCached));
|
|
56
|
+
explicitIndex += 1;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
changes.push(readPhysicalTrackedIndexChange(recalculatedCellIndex, firstSheetId, sheetName, cellStore, engine, formatAddressCached));
|
|
60
|
+
recalculatedIndex += 1;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
while (explicitIndex < split) {
|
|
64
|
+
changes.push(readPhysicalTrackedIndexChange(changedCellIndices[explicitIndex], firstSheetId, sheetName, cellStore, engine, formatAddressCached));
|
|
65
|
+
explicitIndex += 1;
|
|
66
|
+
}
|
|
67
|
+
while (recalculatedIndex < changedCellIndices.length) {
|
|
68
|
+
changes.push(readPhysicalTrackedIndexChange(changedCellIndices[recalculatedIndex], firstSheetId, sheetName, cellStore, engine, formatAddressCached));
|
|
69
|
+
recalculatedIndex += 1;
|
|
70
|
+
}
|
|
71
|
+
return { changes, ordered: true };
|
|
72
|
+
}
|
|
73
|
+
let ordered = true;
|
|
74
|
+
let previousRow = -1;
|
|
75
|
+
let previousCol = -1;
|
|
76
|
+
for (let index = 0; index < changedCellIndices.length; index += 1) {
|
|
77
|
+
const cellIndex = changedCellIndices[index];
|
|
78
|
+
if (cellStore.sheetIds[cellIndex] !== firstSheetId) {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
let row;
|
|
82
|
+
let col;
|
|
83
|
+
if (isPhysicalSheet) {
|
|
84
|
+
row = cellStore.rows[cellIndex];
|
|
85
|
+
col = cellStore.cols[cellIndex];
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const position = workbook.getCellPosition(cellIndex);
|
|
89
|
+
/* v8 ignore next -- defensive guard for stale logical indices without visible positions. */
|
|
90
|
+
if (!position) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
row = position.row;
|
|
94
|
+
col = position.col;
|
|
95
|
+
}
|
|
96
|
+
if (row < previousRow || (row === previousRow && col < previousCol)) {
|
|
97
|
+
ordered = false;
|
|
98
|
+
}
|
|
99
|
+
changes.push({
|
|
100
|
+
kind: 'cell',
|
|
101
|
+
address: { sheet: firstSheetId, row, col },
|
|
102
|
+
sheetName,
|
|
103
|
+
a1: formatAddressCached(row, col),
|
|
104
|
+
newValue: readTrackedCellValue(cellStore, cellIndex, engine),
|
|
105
|
+
});
|
|
106
|
+
previousRow = row;
|
|
107
|
+
previousCol = col;
|
|
108
|
+
}
|
|
109
|
+
return { changes, ordered };
|
|
110
|
+
}
|
|
111
|
+
const sheetNames = new Map();
|
|
112
|
+
const physicalSheetIds = new Set();
|
|
113
|
+
let ordered = true;
|
|
114
|
+
let previousSheetOrder = -1;
|
|
115
|
+
let previousRow = -1;
|
|
116
|
+
let previousCol = -1;
|
|
117
|
+
for (let index = 0; index < changedCellIndices.length; index += 1) {
|
|
118
|
+
const cellIndex = changedCellIndices[index];
|
|
119
|
+
const sheetId = cellStore.sheetIds[cellIndex];
|
|
120
|
+
if (sheetId === undefined) {
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
let sheetName = sheetNames.get(sheetId);
|
|
124
|
+
let sheetOrder = 0;
|
|
125
|
+
if (sheetName === undefined) {
|
|
126
|
+
const sheet = workbook.getSheetById(sheetId);
|
|
127
|
+
sheetName = sheet?.name ?? workbook.getSheetNameById(sheetId);
|
|
128
|
+
sheetOrder = sheet?.order ?? 0;
|
|
129
|
+
sheetNames.set(sheetId, sheetName);
|
|
130
|
+
if (!sheet || sheet.structureVersion === 1) {
|
|
131
|
+
physicalSheetIds.add(sheetId);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
sheetOrder = workbook.getSheetById(sheetId)?.order ?? 0;
|
|
136
|
+
}
|
|
137
|
+
let row;
|
|
138
|
+
let col;
|
|
139
|
+
if (physicalSheetIds.has(sheetId)) {
|
|
140
|
+
row = cellStore.rows[cellIndex];
|
|
141
|
+
col = cellStore.cols[cellIndex];
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
const position = workbook.getCellPosition(cellIndex);
|
|
145
|
+
/* v8 ignore next -- defensive guard for stale logical indices without visible positions. */
|
|
146
|
+
if (!position) {
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
row = position.row;
|
|
150
|
+
col = position.col;
|
|
151
|
+
}
|
|
152
|
+
if (sheetOrder < previousSheetOrder ||
|
|
153
|
+
(sheetOrder === previousSheetOrder && (row < previousRow || (row === previousRow && col < previousCol)))) {
|
|
154
|
+
ordered = false;
|
|
155
|
+
}
|
|
156
|
+
changes.push({
|
|
157
|
+
kind: 'cell',
|
|
158
|
+
address: { sheet: sheetId, row, col },
|
|
159
|
+
sheetName,
|
|
160
|
+
a1: formatAddressCached(row, col),
|
|
161
|
+
newValue: readTrackedCellValue(cellStore, cellIndex, engine),
|
|
162
|
+
});
|
|
163
|
+
previousSheetOrder = sheetOrder;
|
|
164
|
+
previousRow = row;
|
|
165
|
+
previousCol = col;
|
|
166
|
+
}
|
|
167
|
+
return { changes, ordered };
|
|
168
|
+
}
|
|
169
|
+
export function materializeTrackedIndexChanges(engine, changedCellIndices, options = {}) {
|
|
170
|
+
return materializeTrackedIndexChangesWithMetadata(engine, changedCellIndices, options).changes;
|
|
171
|
+
}
|
|
172
|
+
function readTrackedCellValue(cellStore, cellIndex, engine) {
|
|
173
|
+
const tag = cellStore.tags[cellIndex] ?? ValueTag.Empty;
|
|
174
|
+
switch (tag) {
|
|
175
|
+
case ValueTag.Number:
|
|
176
|
+
return { tag: ValueTag.Number, value: cellStore.numbers[cellIndex] ?? 0 };
|
|
177
|
+
case ValueTag.Boolean:
|
|
178
|
+
return { tag: ValueTag.Boolean, value: (cellStore.numbers[cellIndex] ?? 0) !== 0 };
|
|
179
|
+
case ValueTag.String:
|
|
180
|
+
return cellStore.getValue(cellIndex, (stringId) => engine.strings.get(stringId));
|
|
181
|
+
case ValueTag.Error:
|
|
182
|
+
return { tag: ValueTag.Error, code: cellStore.errors[cellIndex] };
|
|
183
|
+
case ValueTag.Empty:
|
|
184
|
+
default:
|
|
185
|
+
return { tag: ValueTag.Empty };
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
function compareTrackedPhysicalCellIndices(cellStore, leftCellIndex, rightCellIndex) {
|
|
189
|
+
return ((cellStore.rows[leftCellIndex] ?? 0) - (cellStore.rows[rightCellIndex] ?? 0) ||
|
|
190
|
+
(cellStore.cols[leftCellIndex] ?? 0) - (cellStore.cols[rightCellIndex] ?? 0));
|
|
191
|
+
}
|
|
192
|
+
function isTrackedIndexSliceSorted(cellStore, changedCellIndices, start, end) {
|
|
193
|
+
for (let index = start + 1; index < end; index += 1) {
|
|
194
|
+
if (compareTrackedPhysicalCellIndices(cellStore, changedCellIndices[index - 1], changedCellIndices[index]) > 0) {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
function readPhysicalTrackedIndexChange(cellIndex, sheetId, sheetName, cellStore, engine, formatAddressCached) {
|
|
201
|
+
const row = cellStore.rows[cellIndex];
|
|
202
|
+
const col = cellStore.cols[cellIndex];
|
|
203
|
+
return {
|
|
204
|
+
kind: 'cell',
|
|
205
|
+
address: { sheet: sheetId, row, col },
|
|
206
|
+
sheetName,
|
|
207
|
+
a1: formatAddressCached(row, col),
|
|
208
|
+
newValue: readTrackedCellValue(cellStore, cellIndex, engine),
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=tracked-cell-index-changes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracked-cell-index-changes.js","sourceRoot":"","sources":["../src/tracked-cell-index-changes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,46 @@
|
|
|
1
|
-
import type { EngineEvent } from '@bilig/protocol';
|
|
1
|
+
import type { CellValue, EngineEvent } from '@bilig/protocol';
|
|
2
|
+
import type { EnginePatch } from '@bilig/core';
|
|
3
|
+
declare const TRACKED_RANGE_INVALIDATION_PATCH_KIND: "range-invalidation";
|
|
4
|
+
declare const TRACKED_ROW_INVALIDATION_PATCH_KIND: "row-invalidation";
|
|
5
|
+
declare const TRACKED_COLUMN_INVALIDATION_PATCH_KIND: "column-invalidation";
|
|
6
|
+
export interface TrackedCellPatch {
|
|
7
|
+
readonly kind: 'cell';
|
|
8
|
+
readonly cellIndex: number;
|
|
9
|
+
readonly address: {
|
|
10
|
+
readonly sheet: number;
|
|
11
|
+
readonly row: number;
|
|
12
|
+
readonly col: number;
|
|
13
|
+
};
|
|
14
|
+
readonly sheetName: string;
|
|
15
|
+
readonly a1: string;
|
|
16
|
+
readonly newValue: CellValue;
|
|
17
|
+
}
|
|
18
|
+
export interface TrackedRangeInvalidationPatch {
|
|
19
|
+
readonly kind: typeof TRACKED_RANGE_INVALIDATION_PATCH_KIND;
|
|
20
|
+
readonly range: {
|
|
21
|
+
readonly sheetName: string;
|
|
22
|
+
readonly startAddress: string;
|
|
23
|
+
readonly endAddress: string;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface TrackedRowInvalidationPatch {
|
|
27
|
+
readonly kind: typeof TRACKED_ROW_INVALIDATION_PATCH_KIND;
|
|
28
|
+
readonly sheetName: string;
|
|
29
|
+
readonly startIndex: number;
|
|
30
|
+
readonly endIndex: number;
|
|
31
|
+
}
|
|
32
|
+
export interface TrackedColumnInvalidationPatch {
|
|
33
|
+
readonly kind: typeof TRACKED_COLUMN_INVALIDATION_PATCH_KIND;
|
|
34
|
+
readonly sheetName: string;
|
|
35
|
+
readonly startIndex: number;
|
|
36
|
+
readonly endIndex: number;
|
|
37
|
+
}
|
|
38
|
+
export type TrackedPatch = TrackedCellPatch | TrackedRangeInvalidationPatch | TrackedRowInvalidationPatch | TrackedColumnInvalidationPatch;
|
|
2
39
|
interface CoreTrackedEngineEvent {
|
|
3
40
|
kind: EngineEvent['kind'];
|
|
4
41
|
invalidation: EngineEvent['invalidation'];
|
|
5
42
|
changedCellIndices: EngineEvent['changedCellIndices'];
|
|
43
|
+
patches?: readonly EnginePatch[];
|
|
6
44
|
invalidatedRanges: EngineEvent['invalidatedRanges'];
|
|
7
45
|
invalidatedRows: EngineEvent['invalidatedRows'];
|
|
8
46
|
invalidatedColumns: EngineEvent['invalidatedColumns'];
|
|
@@ -12,6 +50,7 @@ interface CoreTrackedEngineEvent {
|
|
|
12
50
|
export interface TrackedEngineEvent {
|
|
13
51
|
invalidation: CoreTrackedEngineEvent['invalidation'];
|
|
14
52
|
changedCellIndices: CoreTrackedEngineEvent['changedCellIndices'];
|
|
53
|
+
patches?: readonly TrackedPatch[];
|
|
15
54
|
changedInputCount: number;
|
|
16
55
|
explicitChangedCount?: number;
|
|
17
56
|
hasInvalidatedRanges: boolean;
|
|
@@ -1,16 +1,23 @@
|
|
|
1
|
+
const TRACKED_RANGE_INVALIDATION_PATCH_KIND = 'range-invalidation';
|
|
2
|
+
const TRACKED_ROW_INVALIDATION_PATCH_KIND = 'row-invalidation';
|
|
3
|
+
const TRACKED_COLUMN_INVALIDATION_PATCH_KIND = 'column-invalidation';
|
|
1
4
|
function readExplicitChangedCount(event) {
|
|
2
5
|
const explicitChangedCount = Reflect.get(event, 'explicitChangedCount');
|
|
3
6
|
return typeof explicitChangedCount === 'number' && explicitChangedCount >= 0 ? explicitChangedCount : undefined;
|
|
4
7
|
}
|
|
8
|
+
function hasPatchKind(event, kind) {
|
|
9
|
+
return event.patches?.some((patch) => patch.kind === kind) ?? false;
|
|
10
|
+
}
|
|
5
11
|
export function captureTrackedEngineEvent(event) {
|
|
6
12
|
return {
|
|
7
13
|
invalidation: event.invalidation,
|
|
8
14
|
changedCellIndices: event.changedCellIndices instanceof Uint32Array ? Uint32Array.from(event.changedCellIndices) : [...event.changedCellIndices],
|
|
15
|
+
...(event.patches ? { patches: [...event.patches] } : {}),
|
|
9
16
|
changedInputCount: event.metrics.changedInputCount,
|
|
10
17
|
explicitChangedCount: readExplicitChangedCount(event),
|
|
11
|
-
hasInvalidatedRanges: event.invalidatedRanges.length > 0,
|
|
12
|
-
hasInvalidatedRows: event.invalidatedRows.length > 0,
|
|
13
|
-
hasInvalidatedColumns: event.invalidatedColumns.length > 0,
|
|
18
|
+
hasInvalidatedRanges: event.invalidatedRanges.length > 0 || hasPatchKind(event, TRACKED_RANGE_INVALIDATION_PATCH_KIND),
|
|
19
|
+
hasInvalidatedRows: event.invalidatedRows.length > 0 || hasPatchKind(event, TRACKED_ROW_INVALIDATION_PATCH_KIND),
|
|
20
|
+
hasInvalidatedColumns: event.invalidatedColumns.length > 0 || hasPatchKind(event, TRACKED_COLUMN_INVALIDATION_PATCH_KIND),
|
|
14
21
|
};
|
|
15
22
|
}
|
|
16
23
|
//# sourceMappingURL=tracked-engine-event-refs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracked-engine-event-refs.js","sourceRoot":"","sources":["../src/tracked-engine-event-refs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tracked-engine-event-refs.js","sourceRoot":"","sources":["../src/tracked-engine-event-refs.ts"],"names":[],"mappings":"AAGA,MAAM,qCAAqC,GAAG,oBAA6B,CAAA;AAC3E,MAAM,mCAAmC,GAAG,kBAA2B,CAAA;AACvE,MAAM,sCAAsC,GAAG,qBAA8B,CAAA;AA+D7E,SAAS,wBAAwB,CAAC,KAA6B;IAC7D,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,SAAS,YAAY,CAAC,KAA6B,EAAE,IAA0B;IAC7E,OAAO,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,CAAA;AACrE,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAA6B;IACrE,OAAO;QACL,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,kBAAkB,EAChB,KAAK,CAAC,kBAAkB,YAAY,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC;QAC9H,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAA4B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,iBAAiB;QAClD,oBAAoB,EAAE,wBAAwB,CAAC,KAAK,CAAC;QACrD,oBAAoB,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,qCAAqC,CAAC;QACtH,kBAAkB,EAAE,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,mCAAmC,CAAC;QAChH,qBAAqB,EAAE,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,sCAAsC,CAAC;KAC1H,CAAA;AACH,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type CellValue } from '@bilig/protocol';
|
|
2
|
-
import type { WorkPaperAddressMappingAdapter, WorkPaperAddressFormatOptions, WorkPaperAddressLike, WorkPaperArrayMappingAdapter, WorkPaperAxisInterval, WorkPaperAxisSwapMapping, WorkPaperCellAddress, WorkPaperCellRange, WorkPaperCellType, WorkPaperCellValueDetailedType, WorkPaperCellValueType, WorkPaperChange, WorkPaperColumnSearchAdapter, WorkPaperConfig, WorkPaperDateTime, WorkPaperDependencyGraphAdapter, WorkPaperDependencyRef, WorkPaperEvaluatorAdapter, WorkPaperFunctionPluginDefinition, WorkPaperFunctionTranslationsPackage, WorkPaperGraphAdapter, WorkPaperLanguagePackage, WorkPaperLazilyTransformingAstServiceAdapter, WorkPaperLicenseKeyValidityState, WorkPaperNamedExpression, WorkPaperRangeMappingAdapter, WorkPaperSheet, WorkPaperSheetDimensions, WorkPaperSheetMappingAdapter, WorkPaperSheets, WorkPaperStats, WorkPaperDetailedListener, WorkPaperEventName, WorkPaperInternals, WorkPaperListener, RawCellContent, SerializedWorkPaperNamedExpression } from './work-paper-types.js';
|
|
2
|
+
import type { WorkPaperAddressMappingAdapter, WorkPaperAddressFormatOptions, WorkPaperAddressLike, WorkPaperArrayMappingAdapter, WorkPaperAxisInterval, WorkPaperAxisSwapMapping, WorkPaperCellAddress, WorkPaperCellRange, WorkPaperCellType, WorkPaperCellValueDetailedType, WorkPaperCellValueType, WorkPaperChange, WorkPaperColumnSearchAdapter, WorkPaperConfig, WorkPaperDateTime, WorkPaperDependencyGraphAdapter, WorkPaperDependencyRef, WorkPaperEvaluatorAdapter, WorkPaperFunctionPluginDefinition, WorkPaperFunctionTranslationsPackage, WorkPaperGraphAdapter, WorkPaperLanguagePackage, WorkPaperLazilyTransformingAstServiceAdapter, WorkPaperLicenseKeyValidityState, WorkPaperNamedExpression, WorkPaperRangeMappingAdapter, WorkPaperSheet, WorkPaperSheetDimensions, WorkPaperSheetMappingAdapter, WorkPaperSheets, WorkPaperStats, WorkPaperEngineCounters, WorkPaperDetailedListener, WorkPaperEventName, WorkPaperInternals, WorkPaperListener, RawCellContent, SerializedWorkPaperNamedExpression } from './work-paper-types.js';
|
|
3
3
|
export declare class WorkPaper {
|
|
4
4
|
static version: string;
|
|
5
5
|
static buildDate: string;
|
|
@@ -75,6 +75,8 @@ export declare class WorkPaper {
|
|
|
75
75
|
get licenseKeyValidityState(): WorkPaperLicenseKeyValidityState;
|
|
76
76
|
updateConfig(next: WorkPaperConfig): void;
|
|
77
77
|
getStats(): WorkPaperStats;
|
|
78
|
+
getPerformanceCounters(): WorkPaperEngineCounters;
|
|
79
|
+
resetPerformanceCounters(): void;
|
|
78
80
|
rebuildAndRecalculate(): WorkPaperChange[];
|
|
79
81
|
batch(batchOperations: () => void): WorkPaperChange[];
|
|
80
82
|
suspendEvaluation(): void;
|
|
@@ -222,7 +224,8 @@ export declare class WorkPaper {
|
|
|
222
224
|
private captureVisibilitySnapshot;
|
|
223
225
|
private captureNamedExpressionValueSnapshot;
|
|
224
226
|
private computeCellChanges;
|
|
225
|
-
private
|
|
227
|
+
private materializeTrackedEventChanges;
|
|
228
|
+
private readSingleTrackedCellChange;
|
|
226
229
|
private computeCellChangesFromTrackedEvents;
|
|
227
230
|
private computeNamedExpressionChanges;
|
|
228
231
|
private canUseTrackedStructuralFastPath;
|
|
@@ -239,6 +242,7 @@ export declare class WorkPaper {
|
|
|
239
242
|
private getRedoStack;
|
|
240
243
|
private clearHistoryStacks;
|
|
241
244
|
private historyTransactionOps;
|
|
245
|
+
private tryMergeTypedCellMutationHistory;
|
|
242
246
|
private mergeUndoHistory;
|
|
243
247
|
private nextSheetName;
|
|
244
248
|
private buildNullMatrixForRange;
|