ooxml-core 1.2.0 → 1.2.1

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.
Files changed (82) hide show
  1. package/dist/{PptxHandler-SJTINPU4.mjs → PptxHandler-VQQS4VS6.mjs} +2 -2
  2. package/dist/automation/index.cjs +1059 -328
  3. package/dist/automation/index.mjs +1059 -328
  4. package/dist/chart/bar-cluster-geometry.d.ts +6 -0
  5. package/dist/chart/bar-cluster-geometry.d.ts.map +1 -1
  6. package/dist/chart/index.cjs +5 -2
  7. package/dist/chart/index.mjs +5 -3
  8. package/dist/chart/render/chart-spacing.d.ts.map +1 -1
  9. package/dist/{chunk-TEOAOAIF.mjs → chunk-5U27IVB7.mjs} +3 -3
  10. package/dist/{chunk-VYTA2OUN.mjs → chunk-5VLNF4OX.mjs} +1 -1
  11. package/dist/{chunk-CQQAPUAG.mjs → chunk-V2BIGIH4.mjs} +11 -9
  12. package/dist/{chunk-FI4RSJ24.mjs → chunk-XBNSBDNT.mjs} +1 -1
  13. package/dist/{chunk-XCZ7U3GZ.mjs → chunk-XSFHGZFH.mjs} +11 -9
  14. package/dist/docx/index.cjs +4 -2
  15. package/dist/docx/index.mjs +4 -2
  16. package/dist/docx/layout/index.cjs +4 -2
  17. package/dist/docx/layout/index.mjs +4 -2
  18. package/dist/docx/ui/index.cjs +4 -2
  19. package/dist/docx/ui/index.mjs +4 -2
  20. package/dist/index.cjs +5 -2
  21. package/dist/index.mjs +5 -2
  22. package/dist/pptx/automation/index.cjs +27 -17
  23. package/dist/pptx/automation/index.mjs +5 -5
  24. package/dist/pptx/chunks/index-EZJZ7USt.d.ts.map +1 -1
  25. package/dist/pptx/cli/index.cjs +27 -17
  26. package/dist/pptx/cli/index.mjs +4 -4
  27. package/dist/pptx/converter/index.mjs +2 -2
  28. package/dist/pptx/index.cjs +27 -17
  29. package/dist/pptx/index.mjs +5 -5
  30. package/dist/teams/index.cjs +157 -82
  31. package/dist/teams/index.mjs +157 -82
  32. package/dist/xlsx/edit/context.d.ts +3 -1
  33. package/dist/xlsx/edit/context.d.ts.map +1 -1
  34. package/dist/xlsx/edit/history.d.ts +18 -0
  35. package/dist/xlsx/edit/history.d.ts.map +1 -1
  36. package/dist/xlsx/edit/session-calc.d.ts +30 -8
  37. package/dist/xlsx/edit/session-calc.d.ts.map +1 -1
  38. package/dist/xlsx/edit/session.d.ts.map +1 -1
  39. package/dist/xlsx/edit/sheets.d.ts.map +1 -1
  40. package/dist/xlsx/edit/types.d.ts +23 -3
  41. package/dist/xlsx/edit/types.d.ts.map +1 -1
  42. package/dist/xlsx/formula/engine-core.d.ts.map +1 -1
  43. package/dist/xlsx/formula/engine-host.d.ts +6 -2
  44. package/dist/xlsx/formula/engine-host.d.ts.map +1 -1
  45. package/dist/xlsx/formula/engine-prepare.d.ts +33 -0
  46. package/dist/xlsx/formula/engine-prepare.d.ts.map +1 -0
  47. package/dist/xlsx/formula/engine-structure.d.ts +40 -0
  48. package/dist/xlsx/formula/engine-structure.d.ts.map +1 -0
  49. package/dist/xlsx/formula/engine-types.d.ts +26 -0
  50. package/dist/xlsx/formula/engine-types.d.ts.map +1 -1
  51. package/dist/xlsx/formula/engine.d.ts.map +1 -1
  52. package/dist/xlsx/formula/formula-shape.d.ts +28 -0
  53. package/dist/xlsx/formula/formula-shape.d.ts.map +1 -0
  54. package/dist/xlsx/formula/graph-index.d.ts +3 -1
  55. package/dist/xlsx/formula/graph-index.d.ts.map +1 -1
  56. package/dist/xlsx/formula/graph.d.ts +5 -0
  57. package/dist/xlsx/formula/graph.d.ts.map +1 -1
  58. package/dist/xlsx/formula/lexemes.d.ts.map +1 -1
  59. package/dist/xlsx/formula/parse-cache.d.ts +9 -0
  60. package/dist/xlsx/formula/parse-cache.d.ts.map +1 -0
  61. package/dist/xlsx/formula/parser.d.ts +3 -0
  62. package/dist/xlsx/formula/parser.d.ts.map +1 -1
  63. package/dist/xlsx/formula/ref-text.d.ts +14 -0
  64. package/dist/xlsx/formula/ref-text.d.ts.map +1 -0
  65. package/dist/xlsx/formula/references.d.ts.map +1 -1
  66. package/dist/xlsx/formula/shift-formula.d.ts +19 -0
  67. package/dist/xlsx/formula/shift-formula.d.ts.map +1 -0
  68. package/dist/xlsx/formula/shift-graph.d.ts +42 -0
  69. package/dist/xlsx/formula/shift-graph.d.ts.map +1 -0
  70. package/dist/xlsx/formula/transform.d.ts +2 -23
  71. package/dist/xlsx/formula/transform.d.ts.map +1 -1
  72. package/dist/xlsx/index.cjs +1069 -329
  73. package/dist/xlsx/index.mjs +1069 -330
  74. package/dist/xlsx/layout/index.d.ts +1 -1
  75. package/dist/xlsx/layout/index.d.ts.map +1 -1
  76. package/dist/xlsx/layout/sheet-queries.d.ts +7 -0
  77. package/dist/xlsx/layout/sheet-queries.d.ts.map +1 -1
  78. package/dist/xlsx/load/index.cjs +152 -90
  79. package/dist/xlsx/load/index.mjs +152 -90
  80. package/dist/xlsx/ui/index.cjs +1071 -340
  81. package/dist/xlsx/ui/index.mjs +1071 -340
  82. package/package.json +1 -1
@@ -13,7 +13,7 @@ export { hasSparklineAt, readSparklineValues, resolveSparklineRange, sparklineVi
13
13
  export { cellView, effectiveStyleId, generalAlignment, rotationDegrees, type CellViewOptions, } from './cell-view.js';
14
14
  export { createConditionalFormatEvaluator, scaleColor, type CellAt, type ConditionalFormatOptions, type FormulaEvaluator, } from './cf-evaluator.js';
15
15
  export { compareValues, percentile } from './cf-values.js';
16
- export { isOverflowTarget, mergeView, overflowExtent, selectionStats, type OverflowExtent, type SelectionStats, } from './sheet-queries.js';
16
+ export { formatSelectionStat, isOverflowTarget, mergeView, overflowExtent, selectionStats, type OverflowExtent, type SelectionStats, } from './sheet-queries.js';
17
17
  export { navigate, type NavigationKey } from './navigate.js';
18
18
  export { autoFitColumnWidth, type MeasureText } from './autofit.js';
19
19
  export { autoSeriesColor, modulateLuminance, chartColorScheme, } from '../../chart/render/chart-colors.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../xlsx/layout/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../xlsx/layout/index.ts"],"names":[],"mappings":"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"}
@@ -13,12 +13,19 @@ export interface SelectionStats {
13
13
  average?: number;
14
14
  min?: number;
15
15
  max?: number;
16
+ /**
17
+ * The number format of the first numeric cell, which Excel shows the average, minimum,
18
+ * maximum and sum in (see {@link formatSelectionStat}). Present with numbers.
19
+ */
20
+ numFmt?: string;
16
21
  }
17
22
  /**
18
23
  * Status-bar statistics over selected ranges. Only stored cells are visited, so whole-column
19
24
  * selections stay cheap. Overlapping ranges count their shared cells once.
20
25
  */
21
26
  export declare function selectionStats(workbook: Workbook, sheet: number | Worksheet, ranges: CellRange[]): SelectionStats;
27
+ /** A statistic as the status bar shows it: in the selection's number format (General without). */
28
+ export declare function formatSelectionStat(workbook: Workbook, stats: SelectionStats, value: number): string;
22
29
  /** A cell that text may overflow into: nothing stored there, or an empty value without a formula. */
23
30
  export declare function isOverflowTarget(sheet: Worksheet, row: number, col: number): boolean;
24
31
  export interface OverflowExtent {
@@ -1 +1 @@
1
- {"version":3,"file":"sheet-queries.d.ts","sourceRoot":"","sources":["../../../xlsx/layout/sheet-queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErD,wCAAwC;AACxC,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAK/E;AAED,MAAM,WAAW,cAAc;IAC9B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,SAAS,EAAE,GACjB,cAAc,CA8BhB;AAED,qGAAqG;AACrG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAIpF;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC7B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,UAAU,EAClB,OAAO,SAAM,GACX,cAAc,CA+BhB"}
1
+ {"version":3,"file":"sheet-queries.d.ts","sourceRoot":"","sources":["../../../xlsx/layout/sheet-queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErD,wCAAwC;AACxC,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAK/E;AAED,MAAM,WAAW,cAAc;IAC9B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,SAAS,EAAE,GACjB,cAAc,CAiChB;AAED,kGAAkG;AAClG,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,GACX,MAAM,CAER;AAED,qGAAqG;AACrG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAIpF;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC7B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,UAAU,EAClB,OAAO,SAAM,GACX,cAAc,CA+BhB"}
@@ -5039,7 +5039,7 @@ var NAME_RE = /^[A-Za-z_\\\u00A1-\uFFFF][A-Za-z0-9_.?\\\u00A1-\uFFFF]*/;
5039
5039
  var CELL_RE = /^(\$?)([A-Za-z]{1,3})(\$?)(\d{1,7})/;
5040
5040
  var COLS_RE = /^(\$?)([A-Za-z]{1,3}):(\$?)([A-Za-z]{1,3})/;
5041
5041
  var ROWS_RE = /^(\$?)(\d{1,7}):(\$?)(\d{1,7})/;
5042
- var NUMBER_RE = /^(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/;
5042
+ var NUMBER_RE = /^(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?/;
5043
5043
  var sticky = (re) => new RegExp(re.source.replace(/^\^/, ""), "y");
5044
5044
  var CELL_AT = sticky(CELL_RE);
5045
5045
  var COLS_AT = sticky(COLS_RE);
@@ -5386,7 +5386,7 @@ function readName(source2, at, start, prefix) {
5386
5386
  }
5387
5387
  var joinTokens = (tokens2) => tokens2.map((t) => t.text).join("");
5388
5388
 
5389
- // xlsx/formula/transform.ts
5389
+ // xlsx/formula/ref-text.ts
5390
5390
  function safeTokens(formula) {
5391
5391
  try {
5392
5392
  return tokenize(formula);
@@ -5405,50 +5405,26 @@ function formatRefSpec(spec2) {
5405
5405
  if (spec2.kind === "cell") return a2;
5406
5406
  return `${a2}:${cornerText(spec2.end, spec2.kind)}`;
5407
5407
  }
5408
- function rewrite(token, ref) {
5408
+ function rewriteRef(token, ref) {
5409
5409
  const prefix = token.prefix?.text ?? "";
5410
5410
  if (!ref) return `${prefix}#REF!`;
5411
5411
  return `${prefix}${formatRefSpec(ref)}${token.spill ? "#" : ""}`;
5412
5412
  }
5413
5413
  var sameSpec = (a2, b) => a2.kind === b.kind && a2.start.row === b.start.row && a2.start.col === b.start.col && a2.end.row === b.end.row && a2.end.col === b.end.col;
5414
- function translateFormula(formula, dRow, dCol) {
5415
- const tokens2 = safeTokens(formula);
5416
- if (!tokens2) return formula;
5417
- for (const token of tokens2) {
5418
- if (token.kind !== "ref" || !token.ref) continue;
5419
- const spec2 = token.ref;
5420
- const move = (c2) => {
5421
- const row2 = spec2.kind === "cols" || c2.rowAbs ? c2.row : c2.row + dRow;
5422
- const col = spec2.kind === "rows" || c2.colAbs ? c2.col : c2.col + dCol;
5423
- if (row2 < 0 || row2 > MAX_ROW || col < 0 || col > MAX_COL) return void 0;
5424
- return { ...c2, row: row2, col };
5425
- };
5426
- const start = move(spec2.start);
5427
- const end = move(spec2.end);
5428
- const next = start && end ? { kind: spec2.kind, start, end } : void 0;
5429
- if (next && sameSpec(next, spec2)) continue;
5430
- token.text = rewrite(token, next);
5431
- }
5432
- return joinTokens(tokens2);
5414
+ var needsQuote = (name) => !/^[A-Za-z_¡-￿][A-Za-z0-9_.¡-￿]*$/.test(name) || /^[A-Za-z]{1,3}\d+$/.test(name) || /^(?:R\d*C?\d*|C\d*)$/i.test(name) || /^(?:TRUE|FALSE)$/i.test(name);
5415
+ function prefixText(prefix) {
5416
+ const sheets = prefix.sheet2 !== void 0 ? `${prefix.sheet}:${prefix.sheet2}` : prefix.sheet;
5417
+ const book = prefix.book !== void 0 ? `[${prefix.book}]` : "";
5418
+ const quote2 = needsQuote(prefix.sheet) || prefix.sheet2 !== void 0 && needsQuote(prefix.sheet2);
5419
+ return quote2 ? `'${(book + sheets).replace(/'/g, "''")}'!` : `${book}${sheets}!`;
5433
5420
  }
5434
- var sheetMatches = (prefix, formulaSheet, sheet) => {
5435
- if (prefix?.book !== void 0) return false;
5436
- const name = prefix ? prefix.sheet : formulaSheet;
5437
- return name.toLowerCase() === sheet.toLowerCase();
5438
- };
5439
- function shiftInterval(a2, b, at, count2, max) {
5440
- if (count2 > 0) {
5441
- const na2 = a2 >= at ? a2 + count2 : a2;
5442
- const nb2 = b >= at ? b + count2 : b;
5443
- if (nb2 > max) return na2 > max ? void 0 : [na2, max];
5444
- return [na2, nb2];
5445
- }
5446
- const n = -count2;
5447
- const last = at + n - 1;
5448
- if (a2 >= at && b <= last) return void 0;
5449
- const na = a2 < at ? a2 : a2 <= last ? at : a2 - n;
5450
- const nb = b < at ? b : b <= last ? at - 1 : b - n;
5451
- return [na, nb];
5421
+
5422
+ // xlsx/formula/shift-formula.ts
5423
+ var templates = /* @__PURE__ */ new Map();
5424
+ var MAX_TEMPLATES = 2e5;
5425
+ function remember(text, template) {
5426
+ if (templates.size >= MAX_TEMPLATES) templates.clear();
5427
+ templates.set(text, template);
5452
5428
  }
5453
5429
  function mergeSpacedAreas(tokens2) {
5454
5430
  const out = [];
@@ -5475,63 +5451,145 @@ function mergeSpacedAreas(tokens2) {
5475
5451
  }
5476
5452
  return out;
5477
5453
  }
5478
- function shiftFormula(formula, formulaSheet, spec2) {
5479
- if (spec2.count === 0) return formula;
5454
+ function templateOf(formula) {
5455
+ const cached = templates.get(formula);
5456
+ if (cached !== void 0) return cached;
5480
5457
  const raw2 = safeTokens(formula);
5481
- if (!raw2) return formula;
5482
- const tokens2 = mergeSpacedAreas(raw2);
5483
- const isRow = spec2.axis === "row";
5484
- for (const token of tokens2) {
5485
- if (token.kind !== "ref" || !token.ref || !sheetMatches(token.prefix, formulaSheet, spec2.sheet))
5486
- continue;
5487
- const ref = token.ref;
5488
- if (isRow && ref.kind === "cols" || !isRow && ref.kind === "rows") continue;
5489
- const startFirst = isRow ? ref.start.row <= ref.end.row : ref.start.col <= ref.end.col;
5490
- const lo = startFirst ? ref.start : ref.end;
5491
- const hi = startFirst ? ref.end : ref.start;
5492
- const shifted = shiftInterval(
5493
- isRow ? lo.row : lo.col,
5494
- isRow ? hi.row : hi.col,
5495
- spec2.at,
5496
- spec2.count,
5497
- isRow ? MAX_ROW : MAX_COL
5498
- );
5499
- let next;
5500
- if (shifted) {
5501
- const [a2, b] = shifted;
5502
- const nlo = isRow ? { ...lo, row: a2 } : { ...lo, col: a2 };
5503
- const nhi = isRow ? { ...hi, row: b } : { ...hi, col: b };
5504
- next = { kind: ref.kind, start: startFirst ? nlo : nhi, end: startFirst ? nhi : nlo };
5505
- if (ref.kind === "cell") next.end = next.start;
5458
+ let template = null;
5459
+ if (raw2) {
5460
+ template = [];
5461
+ let literal = "";
5462
+ for (const token of mergeSpacedAreas(raw2)) {
5463
+ if (token.kind !== "ref" && !(token.kind === "name" && token.prefix)) {
5464
+ literal += token.text;
5465
+ continue;
5466
+ }
5467
+ if (literal) template.push(literal);
5468
+ literal = "";
5469
+ const part = { kind: token.kind, text: token.text };
5470
+ if (token.prefix) {
5471
+ part.prefix = token.prefix;
5472
+ if (token.prefix.book === void 0) part.sheet = token.prefix.sheet.toLowerCase();
5473
+ }
5474
+ if (token.ref) part.ref = token.ref;
5475
+ if (token.spill) part.spill = true;
5476
+ template.push(part);
5506
5477
  }
5507
- if (next && sameSpec(next, ref)) continue;
5508
- token.text = rewrite(token, next);
5478
+ if (literal) template.push(literal);
5509
5479
  }
5510
- return joinTokens(tokens2);
5480
+ remember(formula, template);
5481
+ return template;
5511
5482
  }
5512
- var needsQuote = (name) => !/^[A-Za-z_\u00A1-\uFFFF][A-Za-z0-9_.\u00A1-\uFFFF]*$/.test(name) || /^[A-Za-z]{1,3}\d+$/.test(name) || /^(?:R\d*C?\d*|C\d*)$/i.test(name) || /^(?:TRUE|FALSE)$/i.test(name);
5513
- function prefixText(prefix) {
5514
- const sheets = prefix.sheet2 !== void 0 ? `${prefix.sheet}:${prefix.sheet2}` : prefix.sheet;
5515
- const book = prefix.book !== void 0 ? `[${prefix.book}]` : "";
5516
- const quote2 = needsQuote(prefix.sheet) || prefix.sheet2 !== void 0 && needsQuote(prefix.sheet2);
5517
- return quote2 ? `'${(book + sheets).replace(/'/g, "''")}'!` : `${book}${sheets}!`;
5483
+ function rewriteTemplate(formula, rewrite2) {
5484
+ const template = templateOf(formula);
5485
+ if (!template) return formula;
5486
+ let next;
5487
+ for (let i2 = 0; i2 < template.length; i2++) {
5488
+ const part = template[i2];
5489
+ if (typeof part === "string") continue;
5490
+ const changed = rewrite2(part);
5491
+ if (!changed) continue;
5492
+ next ??= template.slice();
5493
+ next[i2] = changed;
5494
+ }
5495
+ if (!next) return formula;
5496
+ const text = next.map((part) => typeof part === "string" ? part : part.text).join("");
5497
+ remember(text, next);
5498
+ return text;
5499
+ }
5500
+ function shiftInterval(a2, b, at, count2, max) {
5501
+ if (count2 > 0) {
5502
+ const na2 = a2 >= at ? a2 + count2 : a2;
5503
+ const nb2 = b >= at ? b + count2 : b;
5504
+ if (nb2 > max) return na2 > max ? void 0 : [na2, max];
5505
+ return [na2, nb2];
5506
+ }
5507
+ const n = -count2;
5508
+ const last = at + n - 1;
5509
+ if (a2 >= at && b <= last) return void 0;
5510
+ const na = a2 < at ? a2 : a2 <= last ? at : a2 - n;
5511
+ const nb = b < at ? b : b <= last ? at - 1 : b - n;
5512
+ return [na, nb];
5513
+ }
5514
+ function shiftRef(ref, spec2) {
5515
+ const isRow = spec2.axis === "row";
5516
+ if (isRow && ref.kind === "cols" || !isRow && ref.kind === "rows") return ref;
5517
+ const startFirst = isRow ? ref.start.row <= ref.end.row : ref.start.col <= ref.end.col;
5518
+ const lo = startFirst ? ref.start : ref.end;
5519
+ const hi = startFirst ? ref.end : ref.start;
5520
+ const shifted = shiftInterval(
5521
+ isRow ? lo.row : lo.col,
5522
+ isRow ? hi.row : hi.col,
5523
+ spec2.at,
5524
+ spec2.count,
5525
+ isRow ? MAX_ROW : MAX_COL
5526
+ );
5527
+ if (!shifted) return void 0;
5528
+ const [a2, b] = shifted;
5529
+ const nlo = isRow ? { ...lo, row: a2 } : { ...lo, col: a2 };
5530
+ const nhi = isRow ? { ...hi, row: b } : { ...hi, col: b };
5531
+ const next = {
5532
+ kind: ref.kind,
5533
+ start: startFirst ? nlo : nhi,
5534
+ end: startFirst ? nhi : nlo
5535
+ };
5536
+ if (ref.kind === "cell") next.end = next.start;
5537
+ return sameSpec(next, ref) ? ref : next;
5538
+ }
5539
+ function shiftFormula(formula, formulaSheet, spec2) {
5540
+ if (spec2.count === 0) return formula;
5541
+ const sheet = spec2.sheet.toLowerCase();
5542
+ const own = formulaSheet.toLowerCase() === sheet;
5543
+ return rewriteTemplate(formula, (part) => {
5544
+ if (part.kind !== "ref" || !part.ref || (part.prefix ? part.sheet !== sheet : !own))
5545
+ return void 0;
5546
+ const next = shiftRef(part.ref, spec2);
5547
+ if (next === part.ref) return void 0;
5548
+ const out = { kind: "ref", text: rewriteRef(part, next) };
5549
+ if (part.prefix) out.prefix = part.prefix;
5550
+ if (part.sheet !== void 0) out.sheet = part.sheet;
5551
+ if (next) out.ref = next;
5552
+ if (part.spill) out.spill = true;
5553
+ return out;
5554
+ });
5518
5555
  }
5519
5556
  function renameSheetInFormula(formula, oldName, newName) {
5520
- const tokens2 = safeTokens(formula);
5521
- if (!tokens2) return formula;
5522
5557
  const lower2 = oldName.toLowerCase();
5523
- for (const token of tokens2) {
5524
- const prefix = token.prefix;
5525
- if (!prefix || prefix.book !== void 0) continue;
5526
- const first2 = prefix.sheet.toLowerCase() === lower2;
5558
+ return rewriteTemplate(formula, (part) => {
5559
+ const prefix = part.prefix;
5560
+ if (!prefix || part.sheet === void 0) return void 0;
5561
+ const first2 = part.sheet === lower2;
5527
5562
  const second = prefix.sheet2?.toLowerCase() === lower2;
5528
- if (!first2 && !second) continue;
5563
+ if (!first2 && !second) return void 0;
5529
5564
  const renamed = { ...prefix, sheet: first2 ? newName : prefix.sheet };
5530
5565
  if (prefix.sheet2 !== void 0) renamed.sheet2 = second ? newName : prefix.sheet2;
5531
5566
  const text = prefixText(renamed);
5532
- token.text = text + token.text.slice(prefix.text.length);
5533
5567
  renamed.text = text;
5534
- token.prefix = renamed;
5568
+ const out = { ...part, text: text + part.text.slice(prefix.text.length) };
5569
+ out.prefix = renamed;
5570
+ out.sheet = renamed.sheet.toLowerCase();
5571
+ return out;
5572
+ });
5573
+ }
5574
+
5575
+ // xlsx/formula/transform.ts
5576
+ function translateFormula(formula, dRow, dCol) {
5577
+ const tokens2 = safeTokens(formula);
5578
+ if (!tokens2) return formula;
5579
+ for (const token of tokens2) {
5580
+ if (token.kind !== "ref" || !token.ref) continue;
5581
+ const spec2 = token.ref;
5582
+ const move = (c2) => {
5583
+ const row2 = spec2.kind === "cols" || c2.rowAbs ? c2.row : c2.row + dRow;
5584
+ const col = spec2.kind === "rows" || c2.colAbs ? c2.col : c2.col + dCol;
5585
+ if (row2 < 0 || row2 > MAX_ROW || col < 0 || col > MAX_COL) return void 0;
5586
+ return { ...c2, row: row2, col };
5587
+ };
5588
+ const start = move(spec2.start);
5589
+ const end = move(spec2.end);
5590
+ const next = start && end ? { kind: spec2.kind, start, end } : void 0;
5591
+ if (next && sameSpec(next, spec2)) continue;
5592
+ token.text = rewriteRef(token, next);
5535
5593
  }
5536
5594
  return joinTokens(tokens2);
5537
5595
  }
@@ -5620,7 +5678,7 @@ var FUTURE_FUNCTIONS = new Set(
5620
5678
  "AGGREGATE BETA.DIST BETA.INV BINOM.DIST BINOM.INV CEILING.PRECISE CHISQ.DIST CHISQ.DIST.RT CHISQ.INV CHISQ.INV.RT CHISQ.TEST CONFIDENCE.NORM CONFIDENCE.T COVARIANCE.P COVARIANCE.S ERF.PRECISE ERFC.PRECISE EXPON.DIST F.DIST F.DIST.RT F.INV F.INV.RT F.TEST FLOOR.PRECISE GAMMA.DIST GAMMA.INV GAMMALN.PRECISE HYPGEOM.DIST LOGNORM.DIST LOGNORM.INV MODE.MULT MODE.SNGL NEGBINOM.DIST NETWORKDAYS.INTL NORM.DIST NORM.INV NORM.S.DIST NORM.S.INV PERCENTILE.EXC PERCENTILE.INC PERCENTRANK.EXC PERCENTRANK.INC POISSON.DIST QUARTILE.EXC QUARTILE.INC RANK.AVG RANK.EQ STDEV.P STDEV.S T.DIST T.DIST.2T T.DIST.RT T.INV T.INV.2T T.TEST VAR.P VAR.S WEIBULL.DIST WORKDAY.INTL ACOT ACOTH ARABIC BASE BINOM.DIST.RANGE BITAND BITLSHIFT BITOR BITRSHIFT BITXOR CEILING.MATH COMBINA COT COTH CSC CSCH DAYS DECIMAL ENCODEURL FILTERXML FLOOR.MATH FORMULATEXT GAMMA GAUSS IFNA IMCOSH IMCOT IMCSC IMCSCH IMSEC IMSECH IMSINH IMTAN ISFORMULA ISOWEEKNUM MUNIT NUMBERVALUE PDURATION PERMUTATIONA PHI RRI SEC SECH SHEET SHEETS SKEW.P UNICHAR UNICODE WEBSERVICE XOR CONCAT FORECAST.ETS FORECAST.ETS.CONFINT FORECAST.ETS.SEASONALITY FORECAST.ETS.STAT FORECAST.LINEAR IFS MAXIFS MINIFS SWITCH TEXTJOIN XLOOKUP XMATCH FILTER SORT SORTBY UNIQUE SEQUENCE RANDARRAY LET LAMBDA TEXTBEFORE TEXTAFTER TEXTSPLIT VSTACK HSTACK TAKE DROP CHOOSEROWS CHOOSECOLS TOCOL TOROW WRAPROWS WRAPCOLS EXPAND ARRAYTOTEXT VALUETOTEXT ISOMITTED BYROW BYCOL MAP REDUCE SCAN MAKEARRAY IMAGE GROUPBY PIVOTBY PERCENTOF REGEXTEST REGEXEXTRACT REGEXREPLACE TRIMRANGE ANCHORARRAY SINGLE STOCKHISTORY FIELDVALUE".split(" ")
5621
5679
  );
5622
5680
  var WORKSHEET_PREFIXED = /* @__PURE__ */ new Set(["FILTER", "SORT"]);
5623
- function rewrite2(formula, visit) {
5681
+ function rewrite(formula, visit) {
5624
5682
  const out = [];
5625
5683
  let i2 = 0;
5626
5684
  while (i2 < formula.length) {
@@ -5663,7 +5721,7 @@ function rewrite2(formula, visit) {
5663
5721
  }
5664
5722
  function stripFuturePrefixes(formula) {
5665
5723
  if (!formula.includes("_xl")) return formula;
5666
- const plain2 = rewrite2(formula, (token, next, out) => {
5724
+ const plain2 = rewrite(formula, (token, next, out) => {
5667
5725
  if (!next.startsWith("(")) return false;
5668
5726
  const stripped = token.replace(/^(_xlfn\.)?(_xlws\.)?/i, "");
5669
5727
  if (stripped === token) return false;
@@ -5673,7 +5731,7 @@ function stripFuturePrefixes(formula) {
5673
5731
  return fromStoredSyntax(plain2);
5674
5732
  }
5675
5733
  function addFuturePrefixes(formula) {
5676
- return rewrite2(toStoredSyntax(formula), (token, next, out) => {
5734
+ return rewrite(toStoredSyntax(formula), (token, next, out) => {
5677
5735
  if (!next.startsWith("(")) return false;
5678
5736
  const upper2 = token.toUpperCase();
5679
5737
  if (!FUTURE_FUNCTIONS.has(upper2)) return false;
@@ -12201,7 +12259,9 @@ var PREC_INTERSECT = 9;
12201
12259
  var PREC_RANGE = 10;
12202
12260
  var OPERAND_START = /* @__PURE__ */ new Set(["ref", "name", "func", "open", "structured"]);
12203
12261
  function parseFormula(formula) {
12204
- const all2 = tokenize(formula);
12262
+ return parseTokens(tokenize(formula));
12263
+ }
12264
+ function parseTokens(all2) {
12205
12265
  const tokens2 = [];
12206
12266
  const wsBefore = [];
12207
12267
  let sawWs = false;
@@ -15630,8 +15690,10 @@ var FINANCIAL_FUNCTIONS = [
15630
15690
 
15631
15691
  // xlsx/formula/references.ts
15632
15692
  function sheetIndex(host, name) {
15693
+ const sheets = host.workbook.sheets;
15694
+ for (let i2 = 0; i2 < sheets.length; i2++) if (sheets[i2]?.name === name) return i2;
15633
15695
  const lower2 = name.toLowerCase();
15634
- return host.workbook.sheets.findIndex((sheet) => sheet.name.toLowerCase() === lower2);
15696
+ return sheets.findIndex((sheet) => sheet.name.toLowerCase() === lower2);
15635
15697
  }
15636
15698
 
15637
15699
  // xlsx/formula/functions/info.ts