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.
- package/dist/{PptxHandler-SJTINPU4.mjs → PptxHandler-VQQS4VS6.mjs} +2 -2
- package/dist/automation/index.cjs +1059 -328
- package/dist/automation/index.mjs +1059 -328
- package/dist/chart/bar-cluster-geometry.d.ts +6 -0
- package/dist/chart/bar-cluster-geometry.d.ts.map +1 -1
- package/dist/chart/index.cjs +5 -2
- package/dist/chart/index.mjs +5 -3
- package/dist/chart/render/chart-spacing.d.ts.map +1 -1
- package/dist/{chunk-TEOAOAIF.mjs → chunk-5U27IVB7.mjs} +3 -3
- package/dist/{chunk-VYTA2OUN.mjs → chunk-5VLNF4OX.mjs} +1 -1
- package/dist/{chunk-CQQAPUAG.mjs → chunk-V2BIGIH4.mjs} +11 -9
- package/dist/{chunk-FI4RSJ24.mjs → chunk-XBNSBDNT.mjs} +1 -1
- package/dist/{chunk-XCZ7U3GZ.mjs → chunk-XSFHGZFH.mjs} +11 -9
- package/dist/docx/index.cjs +4 -2
- package/dist/docx/index.mjs +4 -2
- package/dist/docx/layout/index.cjs +4 -2
- package/dist/docx/layout/index.mjs +4 -2
- package/dist/docx/ui/index.cjs +4 -2
- package/dist/docx/ui/index.mjs +4 -2
- package/dist/index.cjs +5 -2
- package/dist/index.mjs +5 -2
- package/dist/pptx/automation/index.cjs +27 -17
- package/dist/pptx/automation/index.mjs +5 -5
- package/dist/pptx/chunks/index-EZJZ7USt.d.ts.map +1 -1
- package/dist/pptx/cli/index.cjs +27 -17
- package/dist/pptx/cli/index.mjs +4 -4
- package/dist/pptx/converter/index.mjs +2 -2
- package/dist/pptx/index.cjs +27 -17
- package/dist/pptx/index.mjs +5 -5
- package/dist/teams/index.cjs +157 -82
- package/dist/teams/index.mjs +157 -82
- package/dist/xlsx/edit/context.d.ts +3 -1
- package/dist/xlsx/edit/context.d.ts.map +1 -1
- package/dist/xlsx/edit/history.d.ts +18 -0
- package/dist/xlsx/edit/history.d.ts.map +1 -1
- package/dist/xlsx/edit/session-calc.d.ts +30 -8
- package/dist/xlsx/edit/session-calc.d.ts.map +1 -1
- package/dist/xlsx/edit/session.d.ts.map +1 -1
- package/dist/xlsx/edit/sheets.d.ts.map +1 -1
- package/dist/xlsx/edit/types.d.ts +23 -3
- package/dist/xlsx/edit/types.d.ts.map +1 -1
- package/dist/xlsx/formula/engine-core.d.ts.map +1 -1
- package/dist/xlsx/formula/engine-host.d.ts +6 -2
- package/dist/xlsx/formula/engine-host.d.ts.map +1 -1
- package/dist/xlsx/formula/engine-prepare.d.ts +33 -0
- package/dist/xlsx/formula/engine-prepare.d.ts.map +1 -0
- package/dist/xlsx/formula/engine-structure.d.ts +40 -0
- package/dist/xlsx/formula/engine-structure.d.ts.map +1 -0
- package/dist/xlsx/formula/engine-types.d.ts +26 -0
- package/dist/xlsx/formula/engine-types.d.ts.map +1 -1
- package/dist/xlsx/formula/engine.d.ts.map +1 -1
- package/dist/xlsx/formula/formula-shape.d.ts +28 -0
- package/dist/xlsx/formula/formula-shape.d.ts.map +1 -0
- package/dist/xlsx/formula/graph-index.d.ts +3 -1
- package/dist/xlsx/formula/graph-index.d.ts.map +1 -1
- package/dist/xlsx/formula/graph.d.ts +5 -0
- package/dist/xlsx/formula/graph.d.ts.map +1 -1
- package/dist/xlsx/formula/lexemes.d.ts.map +1 -1
- package/dist/xlsx/formula/parse-cache.d.ts +9 -0
- package/dist/xlsx/formula/parse-cache.d.ts.map +1 -0
- package/dist/xlsx/formula/parser.d.ts +3 -0
- package/dist/xlsx/formula/parser.d.ts.map +1 -1
- package/dist/xlsx/formula/ref-text.d.ts +14 -0
- package/dist/xlsx/formula/ref-text.d.ts.map +1 -0
- package/dist/xlsx/formula/references.d.ts.map +1 -1
- package/dist/xlsx/formula/shift-formula.d.ts +19 -0
- package/dist/xlsx/formula/shift-formula.d.ts.map +1 -0
- package/dist/xlsx/formula/shift-graph.d.ts +42 -0
- package/dist/xlsx/formula/shift-graph.d.ts.map +1 -0
- package/dist/xlsx/formula/transform.d.ts +2 -23
- package/dist/xlsx/formula/transform.d.ts.map +1 -1
- package/dist/xlsx/index.cjs +1069 -329
- package/dist/xlsx/index.mjs +1069 -330
- package/dist/xlsx/layout/index.d.ts +1 -1
- package/dist/xlsx/layout/index.d.ts.map +1 -1
- package/dist/xlsx/layout/sheet-queries.d.ts +7 -0
- package/dist/xlsx/layout/sheet-queries.d.ts.map +1 -1
- package/dist/xlsx/load/index.cjs +152 -90
- package/dist/xlsx/load/index.mjs +152 -90
- package/dist/xlsx/ui/index.cjs +1071 -340
- package/dist/xlsx/ui/index.mjs +1071 -340
- 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;
|
|
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"}
|
package/dist/xlsx/load/index.cjs
CHANGED
|
@@ -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
|
|
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/
|
|
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
|
|
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
|
-
|
|
5415
|
-
|
|
5416
|
-
|
|
5417
|
-
|
|
5418
|
-
|
|
5419
|
-
|
|
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
|
-
|
|
5435
|
-
|
|
5436
|
-
|
|
5437
|
-
|
|
5438
|
-
|
|
5439
|
-
|
|
5440
|
-
|
|
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
|
|
5479
|
-
|
|
5454
|
+
function templateOf(formula) {
|
|
5455
|
+
const cached = templates.get(formula);
|
|
5456
|
+
if (cached !== void 0) return cached;
|
|
5480
5457
|
const raw2 = safeTokens(formula);
|
|
5481
|
-
|
|
5482
|
-
|
|
5483
|
-
|
|
5484
|
-
|
|
5485
|
-
|
|
5486
|
-
|
|
5487
|
-
|
|
5488
|
-
|
|
5489
|
-
|
|
5490
|
-
|
|
5491
|
-
|
|
5492
|
-
|
|
5493
|
-
|
|
5494
|
-
|
|
5495
|
-
|
|
5496
|
-
|
|
5497
|
-
|
|
5498
|
-
|
|
5499
|
-
|
|
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 (
|
|
5508
|
-
token.text = rewrite(token, next);
|
|
5478
|
+
if (literal) template.push(literal);
|
|
5509
5479
|
}
|
|
5510
|
-
|
|
5480
|
+
remember(formula, template);
|
|
5481
|
+
return template;
|
|
5511
5482
|
}
|
|
5512
|
-
|
|
5513
|
-
|
|
5514
|
-
|
|
5515
|
-
|
|
5516
|
-
|
|
5517
|
-
|
|
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
|
-
|
|
5524
|
-
const prefix =
|
|
5525
|
-
if (!prefix ||
|
|
5526
|
-
const first2 =
|
|
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)
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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
|
|
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
|
-
|
|
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
|
|
15696
|
+
return sheets.findIndex((sheet) => sheet.name.toLowerCase() === lower2);
|
|
15635
15697
|
}
|
|
15636
15698
|
|
|
15637
15699
|
// xlsx/formula/functions/info.ts
|