@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.
@@ -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;
@@ -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, makeCellKey } from '@bilig/core';
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
- const sheet = args.engine.workbook.getSheetById(args.sheetId);
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 = cellStore.allocate(args.sheetId, rowIndex, colIndex);
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":"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"}
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":"AAuBA,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,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,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"}
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 readTrackedCellChange;
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;