@bilig/core 0.10.64 → 0.11.2

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.
@@ -1,16 +1,19 @@
1
- import { rewriteAddressForStructuralTransform, rewriteFormulaForStructuralTransform, rewriteRangeForStructuralTransform, } from '@bilig/formula';
1
+ import { MAX_COLS, MAX_ROWS } from '@bilig/protocol';
2
+ import { columnToIndex, formatAddress, rewriteAddressForStructuralTransform, rewriteFormulaForStructuralTransform, rewriteRangeForStructuralTransform, } from '@bilig/formula';
2
3
  import { mapStructuralBoundary } from '../../engine-structural-utils.js';
3
4
  import { normalizeDefinedName } from '../../workbook-store.js';
5
+ const METADATA_CELL_REF_RE = /^\$?([A-Z]+)\$?([1-9]\d*)$/i;
4
6
  export function rewriteDefinedNamesForStructuralTransform(args, sheetName, transform) {
7
+ const workbook = args.state.workbook;
5
8
  const changedNames = new Set();
6
- args.state.workbook.listDefinedNames().forEach((record) => {
9
+ workbook.listDefinedNames().forEach((record) => {
7
10
  if (typeof record.value === 'string' && record.value.startsWith('=')) {
8
11
  const nextFormula = rewriteDefinedNameFormulaOrNull(record.value.slice(1), sheetName, transform);
9
12
  if (nextFormula === null) {
10
13
  return;
11
14
  }
12
15
  if (`=${nextFormula}` !== record.value) {
13
- args.state.workbook.setDefinedName(record.name, `=${nextFormula}`, record.scopeSheetName);
16
+ workbook.setDefinedName(record.name, `=${nextFormula}`, record.scopeSheetName);
14
17
  }
15
18
  return;
16
19
  }
@@ -28,7 +31,7 @@ export function rewriteDefinedNamesForStructuralTransform(args, sheetName, trans
28
31
  formula: record.value.formula.startsWith('=') ? `=${nextFormula}` : nextFormula,
29
32
  };
30
33
  if (nextValue.formula !== record.value.formula) {
31
- args.state.workbook.setDefinedName(record.name, nextValue, record.scopeSheetName);
34
+ workbook.setDefinedName(record.name, nextValue, record.scopeSheetName);
32
35
  changedNames.add(normalizeDefinedName(record.name));
33
36
  }
34
37
  return;
@@ -39,12 +42,12 @@ export function rewriteDefinedNamesForStructuralTransform(args, sheetName, trans
39
42
  }
40
43
  const nextAddress = rewriteAddressForStructuralTransform(record.value.address, transform);
41
44
  if (!nextAddress) {
42
- args.state.workbook.deleteDefinedName(record.name, record.scopeSheetName);
45
+ workbook.deleteDefinedName(record.name, record.scopeSheetName);
43
46
  changedNames.add(normalizeDefinedName(record.name));
44
47
  return;
45
48
  }
46
49
  if (nextAddress !== record.value.address) {
47
- args.state.workbook.setDefinedName(record.name, {
50
+ workbook.setDefinedName(record.name, {
48
51
  ...record.value,
49
52
  address: nextAddress,
50
53
  }, record.scopeSheetName);
@@ -56,18 +59,14 @@ export function rewriteDefinedNamesForStructuralTransform(args, sheetName, trans
56
59
  if (record.value.sheetName !== sheetName) {
57
60
  return;
58
61
  }
59
- const nextRange = rewriteRangeForStructuralTransform(record.value.startAddress, record.value.endAddress, transform);
62
+ const nextRange = rewriteMetadataRangeForStructuralTransform(record.value, transform);
60
63
  if (!nextRange) {
61
- args.state.workbook.deleteDefinedName(record.name, record.scopeSheetName);
64
+ workbook.deleteDefinedName(record.name, record.scopeSheetName);
62
65
  changedNames.add(normalizeDefinedName(record.name));
63
66
  return;
64
67
  }
65
68
  if (nextRange.startAddress !== record.value.startAddress || nextRange.endAddress !== record.value.endAddress) {
66
- args.state.workbook.setDefinedName(record.name, {
67
- ...record.value,
68
- startAddress: nextRange.startAddress,
69
- endAddress: nextRange.endAddress,
70
- }, record.scopeSheetName);
69
+ workbook.setDefinedName(record.name, nextRange, record.scopeSheetName);
71
70
  changedNames.add(normalizeDefinedName(record.name));
72
71
  }
73
72
  return;
@@ -88,79 +87,63 @@ function rewriteDefinedNameFormulaOrNull(formula, sheetName, transform) {
88
87
  }
89
88
  }
90
89
  export function rewriteWorkbookMetadataForStructuralTransform(args, sheetName, transform) {
90
+ const workbook = args.state.workbook;
91
91
  const changedTableNames = new Set();
92
- args.state.workbook
93
- .listTables()
94
- .filter((table) => table.sheetName === sheetName)
95
- .forEach((table) => {
96
- const range = rewriteRangeForStructuralTransform(table.startAddress, table.endAddress, transform);
92
+ workbook.listTables().forEach((table) => {
93
+ if (table.sheetName !== sheetName) {
94
+ return;
95
+ }
96
+ const range = rewriteMetadataRangeForStructuralTransform(table, transform);
97
97
  if (!range) {
98
98
  changedTableNames.add(table.name);
99
- args.state.workbook.deleteTable(table.name);
99
+ workbook.deleteTable(table.name);
100
100
  return;
101
101
  }
102
102
  changedTableNames.add(table.name);
103
- args.state.workbook.setTable({
104
- ...table,
105
- startAddress: range.startAddress,
106
- endAddress: range.endAddress,
107
- });
103
+ workbook.setTable(range);
108
104
  });
109
- const mergeRanges = args.state.workbook.listMergeRanges(sheetName);
110
105
  const rewrittenMergeRanges = [];
111
- mergeRanges.forEach((merge) => {
112
- const range = rewriteRangeForStructuralTransform(merge.startAddress, merge.endAddress, transform);
106
+ workbook.listMergeRanges(sheetName).forEach((merge) => {
107
+ const range = rewriteMetadataRangeForStructuralTransform(merge, transform);
113
108
  if (!range) {
114
109
  return;
115
110
  }
116
- rewrittenMergeRanges.push({
117
- ...merge,
118
- startAddress: range.startAddress,
119
- endAddress: range.endAddress,
120
- });
111
+ rewrittenMergeRanges.push(range);
121
112
  });
122
- args.state.workbook.setMergeRanges(sheetName, rewrittenMergeRanges);
123
- args.state.workbook.listFilters(sheetName).forEach((filter) => {
124
- const range = rewriteRangeForStructuralTransform(filter.range.startAddress, filter.range.endAddress, transform);
125
- args.state.workbook.deleteFilter(sheetName, filter.range);
113
+ workbook.setMergeRanges(sheetName, rewrittenMergeRanges);
114
+ workbook.listFilters(sheetName).forEach((filter) => {
115
+ const range = rewriteMetadataRangeForStructuralTransform(filter.range, transform);
116
+ workbook.deleteFilter(sheetName, filter.range);
126
117
  if (range) {
127
- args.state.workbook.setFilter(sheetName, {
128
- ...filter.range,
129
- startAddress: range.startAddress,
130
- endAddress: range.endAddress,
131
- });
118
+ workbook.setFilter(sheetName, range);
132
119
  }
133
120
  });
134
- args.state.workbook.listSorts(sheetName).forEach((sort) => {
135
- const range = rewriteRangeForStructuralTransform(sort.range.startAddress, sort.range.endAddress, transform);
136
- args.state.workbook.deleteSort(sheetName, sort.range);
121
+ workbook.listSorts(sheetName).forEach((sort) => {
122
+ const range = rewriteMetadataRangeForStructuralTransform(sort.range, transform);
123
+ workbook.deleteSort(sheetName, sort.range);
137
124
  if (!range) {
138
125
  return;
139
126
  }
140
- args.state.workbook.setSort(sheetName, { ...sort.range, startAddress: range.startAddress, endAddress: range.endAddress }, sort.keys.map((key) => ({
127
+ workbook.setSort(sheetName, range, sort.keys.map((key) => ({
141
128
  ...key,
142
- keyAddress: rewriteAddressForStructuralTransform(key.keyAddress, transform) ?? key.keyAddress,
129
+ keyAddress: rewriteMetadataAddressForStructuralTransform(key.keyAddress, transform) ?? key.keyAddress,
143
130
  })));
144
131
  });
145
- args.state.workbook.listDataValidations(sheetName).forEach((validation) => {
146
- const range = rewriteRangeForStructuralTransform(validation.range.startAddress, validation.range.endAddress, transform);
147
- args.state.workbook.deleteDataValidation(sheetName, validation.range);
132
+ workbook.listDataValidations(sheetName).forEach((validation) => {
133
+ const range = rewriteMetadataRangeForStructuralTransform(validation.range, transform);
134
+ workbook.deleteDataValidation(sheetName, validation.range);
148
135
  if (!range) {
149
136
  return;
150
137
  }
151
138
  const nextValidation = structuredClone(validation);
152
- nextValidation.range = {
153
- ...validation.range,
154
- startAddress: range.startAddress,
155
- endAddress: range.endAddress,
156
- };
139
+ nextValidation.range = range;
157
140
  if (nextValidation.rule.kind === 'list' && nextValidation.rule.source) {
158
141
  switch (nextValidation.rule.source.kind) {
159
142
  case 'cell-ref': {
160
143
  if (nextValidation.rule.source.sheetName !== sheetName) {
161
144
  break;
162
145
  }
163
- const nextAddress = rewriteAddressForStructuralTransform(nextValidation.rule.source.address, transform);
146
+ const nextAddress = rewriteMetadataAddressForStructuralTransform(nextValidation.rule.source.address, transform);
164
147
  if (!nextAddress) {
165
148
  return;
166
149
  }
@@ -171,12 +154,11 @@ export function rewriteWorkbookMetadataForStructuralTransform(args, sheetName, t
171
154
  if (nextValidation.rule.source.sheetName !== sheetName) {
172
155
  break;
173
156
  }
174
- const nextSourceRange = rewriteRangeForStructuralTransform(nextValidation.rule.source.startAddress, nextValidation.rule.source.endAddress, transform);
157
+ const nextSourceRange = rewriteMetadataRangeForStructuralTransform(nextValidation.rule.source, transform);
175
158
  if (!nextSourceRange) {
176
159
  return;
177
160
  }
178
- nextValidation.rule.source.startAddress = nextSourceRange.startAddress;
179
- nextValidation.rule.source.endAddress = nextSourceRange.endAddress;
161
+ nextValidation.rule.source = nextSourceRange;
180
162
  break;
181
163
  }
182
164
  case 'named-range':
@@ -184,174 +166,191 @@ export function rewriteWorkbookMetadataForStructuralTransform(args, sheetName, t
184
166
  break;
185
167
  }
186
168
  }
187
- args.state.workbook.setDataValidation(nextValidation);
169
+ workbook.setDataValidation(nextValidation);
188
170
  });
189
- args.state.workbook.listConditionalFormats(sheetName).forEach((format) => {
190
- const range = rewriteRangeForStructuralTransform(format.range.startAddress, format.range.endAddress, transform);
191
- args.state.workbook.deleteConditionalFormat(format.id);
192
- if (!range) {
171
+ workbook.listConditionalFormats(sheetName).forEach((format) => {
172
+ const nextFormat = rewriteMetadataRangeRecord(format, transform);
173
+ workbook.deleteConditionalFormat(format.id);
174
+ if (!nextFormat) {
193
175
  return;
194
176
  }
195
- args.state.workbook.setConditionalFormat({
196
- ...format,
197
- range: {
198
- ...format.range,
199
- startAddress: range.startAddress,
200
- endAddress: range.endAddress,
201
- },
202
- });
177
+ workbook.setConditionalFormat(nextFormat);
203
178
  });
204
- args.state.workbook.listRangeProtections(sheetName).forEach((protection) => {
205
- const range = rewriteRangeForStructuralTransform(protection.range.startAddress, protection.range.endAddress, transform);
206
- args.state.workbook.deleteRangeProtection(protection.id);
207
- if (!range) {
179
+ workbook.listRangeProtections(sheetName).forEach((protection) => {
180
+ const nextProtection = rewriteMetadataRangeRecord(protection, transform);
181
+ workbook.deleteRangeProtection(protection.id);
182
+ if (!nextProtection) {
208
183
  return;
209
184
  }
210
- args.state.workbook.setRangeProtection({
211
- ...protection,
212
- range: {
213
- ...protection.range,
214
- startAddress: range.startAddress,
215
- endAddress: range.endAddress,
216
- },
217
- });
185
+ workbook.setRangeProtection(nextProtection);
218
186
  });
219
- args.state.workbook.listCommentThreads(sheetName).forEach((thread) => {
220
- const nextAddress = rewriteAddressForStructuralTransform(thread.address, transform);
221
- args.state.workbook.deleteCommentThread(sheetName, thread.address);
187
+ workbook.listCommentThreads(sheetName).forEach((thread) => {
188
+ const nextAddress = rewriteMetadataAddressForStructuralTransform(thread.address, transform);
189
+ workbook.deleteCommentThread(sheetName, thread.address);
222
190
  if (!nextAddress) {
223
191
  return;
224
192
  }
225
- args.state.workbook.setCommentThread({
193
+ workbook.setCommentThread({
226
194
  ...thread,
227
195
  address: nextAddress,
228
196
  });
229
197
  });
230
- args.state.workbook.listNotes(sheetName).forEach((note) => {
231
- const nextAddress = rewriteAddressForStructuralTransform(note.address, transform);
232
- args.state.workbook.deleteNote(sheetName, note.address);
198
+ workbook.listNotes(sheetName).forEach((note) => {
199
+ const nextAddress = rewriteMetadataAddressForStructuralTransform(note.address, transform);
200
+ workbook.deleteNote(sheetName, note.address);
233
201
  if (!nextAddress) {
234
202
  return;
235
203
  }
236
- args.state.workbook.setNote({
204
+ workbook.setNote({
237
205
  ...note,
238
206
  address: nextAddress,
239
207
  });
240
208
  });
241
209
  const rewrittenStyleRanges = [];
242
210
  const rewrittenFormatRanges = [];
243
- args.state.workbook.listStyleRanges(sheetName).forEach((record) => {
244
- const range = rewriteRangeForStructuralTransform(record.range.startAddress, record.range.endAddress, transform);
245
- if (!range) {
246
- return;
211
+ workbook.listStyleRanges(sheetName).forEach((record) => {
212
+ const nextRecord = rewriteMetadataRangeRecord(record, transform);
213
+ if (nextRecord) {
214
+ rewrittenStyleRanges.push(nextRecord);
247
215
  }
248
- rewrittenStyleRanges.push({
249
- range: {
250
- ...record.range,
251
- startAddress: range.startAddress,
252
- endAddress: range.endAddress,
253
- },
254
- styleId: record.styleId,
255
- });
256
216
  });
257
- args.state.workbook.setStyleRanges(sheetName, rewrittenStyleRanges);
258
- args.state.workbook.listFormatRanges(sheetName).forEach((record) => {
259
- const range = rewriteRangeForStructuralTransform(record.range.startAddress, record.range.endAddress, transform);
260
- if (!range) {
261
- return;
217
+ workbook.setStyleRanges(sheetName, rewrittenStyleRanges);
218
+ workbook.listFormatRanges(sheetName).forEach((record) => {
219
+ const nextRecord = rewriteMetadataRangeRecord(record, transform);
220
+ if (nextRecord) {
221
+ rewrittenFormatRanges.push(nextRecord);
262
222
  }
263
- rewrittenFormatRanges.push({
264
- range: {
265
- ...record.range,
266
- startAddress: range.startAddress,
267
- endAddress: range.endAddress,
268
- },
269
- formatId: record.formatId,
270
- });
271
223
  });
272
- args.state.workbook.setFormatRanges(sheetName, rewrittenFormatRanges);
273
- const freezePane = args.state.workbook.getFreezePane(sheetName);
224
+ workbook.setFormatRanges(sheetName, rewrittenFormatRanges);
225
+ const freezePane = workbook.getFreezePane(sheetName);
274
226
  if (freezePane) {
275
227
  const nextRows = transform.axis === 'row' ? mapStructuralBoundary(freezePane.rows, transform) : freezePane.rows;
276
228
  const nextCols = transform.axis === 'column' ? mapStructuralBoundary(freezePane.cols, transform) : freezePane.cols;
277
229
  if (nextRows <= 0 && nextCols <= 0) {
278
- args.state.workbook.clearFreezePane(sheetName);
230
+ workbook.clearFreezePane(sheetName);
279
231
  }
280
232
  else {
281
- args.state.workbook.setFreezePane(sheetName, nextRows, nextCols);
233
+ workbook.setFreezePane(sheetName, nextRows, nextCols);
282
234
  }
283
235
  }
284
- args.state.workbook.listPivots().forEach((pivot) => {
285
- const nextAddress = pivot.sheetName === sheetName ? rewriteAddressForStructuralTransform(pivot.address, transform) : pivot.address;
286
- const nextSource = pivot.source.sheetName === sheetName
287
- ? rewriteRangeForStructuralTransform(pivot.source.startAddress, pivot.source.endAddress, transform)
288
- : { startAddress: pivot.source.startAddress, endAddress: pivot.source.endAddress };
236
+ workbook.listPivots().forEach((pivot) => {
237
+ const nextAddress = pivot.sheetName === sheetName ? rewriteMetadataAddressForStructuralTransform(pivot.address, transform) : pivot.address;
238
+ const nextSource = pivot.source.sheetName === sheetName ? rewriteMetadataRangeForStructuralTransform(pivot.source, transform) : pivot.source;
289
239
  if (!nextAddress || !nextSource) {
290
240
  args.clearOwnedPivot(pivot);
291
- args.state.workbook.deletePivot(pivot.sheetName, pivot.address);
241
+ workbook.deletePivot(pivot.sheetName, pivot.address);
292
242
  return;
293
243
  }
294
244
  if (nextAddress !== pivot.address) {
295
245
  args.clearOwnedPivot(pivot);
296
- args.state.workbook.deletePivot(pivot.sheetName, pivot.address);
246
+ workbook.deletePivot(pivot.sheetName, pivot.address);
297
247
  }
298
- args.state.workbook.setPivot({
248
+ workbook.setPivot({
299
249
  ...pivot,
300
250
  address: nextAddress,
301
- source: {
302
- ...pivot.source,
303
- startAddress: nextSource.startAddress,
304
- endAddress: nextSource.endAddress,
305
- },
251
+ source: nextSource,
306
252
  });
307
253
  });
308
- args.state.workbook.listCharts().forEach((chart) => {
309
- const nextAddress = chart.sheetName === sheetName ? rewriteAddressForStructuralTransform(chart.address, transform) : chart.address;
310
- const nextSource = chart.source.sheetName === sheetName
311
- ? rewriteRangeForStructuralTransform(chart.source.startAddress, chart.source.endAddress, transform)
312
- : { startAddress: chart.source.startAddress, endAddress: chart.source.endAddress };
254
+ workbook.listCharts().forEach((chart) => {
255
+ const nextAddress = chart.sheetName === sheetName ? rewriteMetadataAddressForStructuralTransform(chart.address, transform) : chart.address;
256
+ const nextSource = chart.source.sheetName === sheetName ? rewriteMetadataRangeForStructuralTransform(chart.source, transform) : chart.source;
313
257
  if (!nextAddress || !nextSource) {
314
- args.state.workbook.deleteChart(chart.id);
258
+ workbook.deleteChart(chart.id);
315
259
  return;
316
260
  }
317
- args.state.workbook.setChart({
261
+ workbook.setChart({
318
262
  ...chart,
319
263
  address: nextAddress,
320
- source: {
321
- ...chart.source,
322
- startAddress: nextSource.startAddress,
323
- endAddress: nextSource.endAddress,
324
- },
264
+ source: nextSource,
325
265
  });
326
266
  });
327
- args.state.workbook.listImages().forEach((image) => {
267
+ workbook.listImages().forEach((image) => {
328
268
  if (image.sheetName !== sheetName) {
329
269
  return;
330
270
  }
331
- const nextAddress = rewriteAddressForStructuralTransform(image.address, transform);
271
+ const nextAddress = rewriteMetadataAddressForStructuralTransform(image.address, transform);
332
272
  if (!nextAddress) {
333
- args.state.workbook.deleteImage(image.id);
273
+ workbook.deleteImage(image.id);
334
274
  return;
335
275
  }
336
- args.state.workbook.setImage({
276
+ workbook.setImage({
337
277
  ...image,
338
278
  address: nextAddress,
339
279
  });
340
280
  });
341
- args.state.workbook.listShapes().forEach((shape) => {
281
+ workbook.listShapes().forEach((shape) => {
342
282
  if (shape.sheetName !== sheetName) {
343
283
  return;
344
284
  }
345
- const nextAddress = rewriteAddressForStructuralTransform(shape.address, transform);
285
+ const nextAddress = rewriteMetadataAddressForStructuralTransform(shape.address, transform);
346
286
  if (!nextAddress) {
347
- args.state.workbook.deleteShape(shape.id);
287
+ workbook.deleteShape(shape.id);
348
288
  return;
349
289
  }
350
- args.state.workbook.setShape({
290
+ workbook.setShape({
351
291
  ...shape,
352
292
  address: nextAddress,
353
293
  });
354
294
  });
355
295
  return { changedTableNames };
356
296
  }
297
+ function rewriteMetadataRangeForStructuralTransform(range, transform) {
298
+ const rewritten = rewriteRangeForStructuralTransform(range.startAddress, range.endAddress, transform);
299
+ if (!rewritten) {
300
+ return undefined;
301
+ }
302
+ const clipped = clipMetadataRangeToSheetGrid(range.sheetName, rewritten.startAddress, rewritten.endAddress);
303
+ return clipped ? withRewrittenMetadataRange(range, clipped) : undefined;
304
+ }
305
+ function withRewrittenMetadataRange(range, rewritten) {
306
+ return {
307
+ ...range,
308
+ startAddress: rewritten.startAddress,
309
+ endAddress: rewritten.endAddress,
310
+ };
311
+ }
312
+ function rewriteMetadataRangeRecord(record, transform) {
313
+ const range = rewriteMetadataRangeForStructuralTransform(record.range, transform);
314
+ return range ? { ...record, range } : undefined;
315
+ }
316
+ function rewriteMetadataAddressForStructuralTransform(address, transform) {
317
+ const rewritten = rewriteAddressForStructuralTransform(address, transform);
318
+ if (!rewritten) {
319
+ return undefined;
320
+ }
321
+ const parsed = parseUnboundedMetadataCellAddress(rewritten);
322
+ if (!parsed) {
323
+ throw new Error('Invalid metadata reference');
324
+ }
325
+ if (parsed[0] >= MAX_ROWS || parsed[1] >= MAX_COLS) {
326
+ return undefined;
327
+ }
328
+ return formatAddress(parsed[0], parsed[1]);
329
+ }
330
+ function clipMetadataRangeToSheetGrid(sheetName, startAddress, endAddress) {
331
+ const start = parseUnboundedMetadataCellAddress(startAddress);
332
+ const end = parseUnboundedMetadataCellAddress(endAddress);
333
+ if (!start || !end) {
334
+ throw new Error('Invalid metadata reference');
335
+ }
336
+ const startRow = Math.min(start[0], end[0]);
337
+ const endRow = Math.min(MAX_ROWS - 1, Math.max(start[0], end[0]));
338
+ const startCol = Math.min(start[1], end[1]);
339
+ const endCol = Math.min(MAX_COLS - 1, Math.max(start[1], end[1]));
340
+ if (startRow > endRow || startCol > endCol) {
341
+ return undefined;
342
+ }
343
+ return {
344
+ sheetName,
345
+ startAddress: formatAddress(startRow, startCol),
346
+ endAddress: formatAddress(endRow, endCol),
347
+ };
348
+ }
349
+ function parseUnboundedMetadataCellAddress(address) {
350
+ const match = METADATA_CELL_REF_RE.exec(address);
351
+ if (!match) {
352
+ return undefined;
353
+ }
354
+ return [+match[2] - 1, columnToIndex(match[1].toUpperCase())];
355
+ }
357
356
  //# sourceMappingURL=structure-metadata-rewrite.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"structure-metadata-rewrite.js","sourceRoot":"","sources":["../../../src/engine/services/structure-metadata-rewrite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structure-metadata-rewrite.js","sourceRoot":"","sources":["../../../src/engine/services/structure-metadata-rewrite.ts"],"names":[],"mappings":"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"}
@@ -149,6 +149,7 @@ export function createEngineStructureService(args) {
149
149
  const precomputedDirectAggregateValueCellIndices = new Set();
150
150
  const directAggregateRetargetCellIndices = new Set();
151
151
  let sharedOwnedPreservingSourceTransform;
152
+ let deferredOwnedFormulaFamilyMemberCount = 0;
152
153
  const ownedPreservingSourceTransform = () => (sharedOwnedPreservingSourceTransform ??= {
153
154
  ownerSheetName: argsForImpact.sheetName,
154
155
  targetSheetName: argsForImpact.sheetName,
@@ -193,6 +194,7 @@ export function createEngineStructureService(args) {
193
194
  args.setFormulaFamilyStructuralSourceTransform(familyId, transform);
194
195
  });
195
196
  hasDeferredStructuralFormulaSources = true;
197
+ deferredOwnedFormulaFamilyMemberCount = ownedFormulaCount;
196
198
  return true;
197
199
  };
198
200
  const canSkipOwnedDirectAggregateCandidate = (cellIndex) => {
@@ -345,7 +347,8 @@ export function createEngineStructureService(args) {
345
347
  }
346
348
  return true;
347
349
  };
348
- if (!tryDeferOwnedFormulaFamilies()) {
350
+ const deferredOwnedFormulaFamilies = tryDeferOwnedFormulaFamilies();
351
+ if (!deferredOwnedFormulaFamilies) {
349
352
  args.forEachFormulaCellOwnedBySheet(argsForImpact.sheetName, (cellIndex) => {
350
353
  if (tryDeferOwnedSimpleFormula(cellIndex)) {
351
354
  return;
@@ -365,16 +368,19 @@ export function createEngineStructureService(args) {
365
368
  candidateCellIndices.add(cellIndex);
366
369
  });
367
370
  }
368
- args.collectFormulaCellsReferencingSheet(argsForImpact.sheetName).forEach((cellIndex) => {
369
- if (directAggregateRetargetCellIndices.has(cellIndex)) {
370
- return;
371
- }
372
- const formula = args.state.formulas.get(cellIndex);
373
- if (formula?.structuralSourceTransform !== undefined) {
374
- return;
375
- }
376
- candidateCellIndices.add(cellIndex);
377
- });
371
+ const ownedFamilyDeferralCoversEveryFormula = deferredOwnedFormulaFamilies && deferredOwnedFormulaFamilyMemberCount === args.state.formulas.size;
372
+ if (!ownedFamilyDeferralCoversEveryFormula) {
373
+ args.collectFormulaCellsReferencingSheet(argsForImpact.sheetName).forEach((cellIndex) => {
374
+ if (directAggregateRetargetCellIndices.has(cellIndex)) {
375
+ return;
376
+ }
377
+ const formula = args.state.formulas.get(cellIndex);
378
+ if (formula?.structuralSourceTransform !== undefined) {
379
+ return;
380
+ }
381
+ candidateCellIndices.add(cellIndex);
382
+ });
383
+ }
378
384
  if (argsForImpact.changedDefinedNames.size > 0) {
379
385
  args.collectFormulaCellsForDefinedNames([...argsForImpact.changedDefinedNames]).forEach((cellIndex) => {
380
386
  candidateCellIndices.add(cellIndex);