ooxml-core 1.8.0 → 1.8.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.
@@ -11700,6 +11700,7 @@ function deleteCell(sheet, row3, col) {
11700
11700
  cells3.delete(col);
11701
11701
  if (cells3.size === 0) sheet.rows.delete(row3);
11702
11702
  }
11703
+ var isEmptyCell = (cell) => !cell || cell.value === null && !cell.formula && !cell.styleId && !cell.richText;
11703
11704
  function forEachCell(sheet, visit2) {
11704
11705
  for (const row3 of [...sheet.rows.keys()].sort((a2, b) => a2 - b)) {
11705
11706
  const cells3 = sheet.rows.get(row3);
@@ -16569,10 +16570,10 @@ function patchChartColors(doc, chartNode, model, before) {
16569
16570
  const xml = fill ? drawingFillXml(fill) : color2 ? `<a:solidFill>${drawingColorXml(color2)}</a:solidFill>` : void 0;
16570
16571
  let spPr = first(point2, "spPr", NS.c);
16571
16572
  if (!xml) {
16572
- let paint2 = fillElementOf(spPr);
16573
- while (paint2 && spPr) {
16574
- spPr.removeChild(paint2);
16575
- paint2 = fillElementOf(spPr);
16573
+ if (spPr) {
16574
+ for (let paint2 = fillElementOf(spPr); paint2; paint2 = fillElementOf(spPr)) {
16575
+ spPr.removeChild(paint2);
16576
+ }
16576
16577
  }
16577
16578
  continue;
16578
16579
  }
@@ -18311,7 +18312,7 @@ function stack(ctx, args, vertical) {
18311
18312
  function flatten(ctx, args) {
18312
18313
  const m = ctx.toMatrix(args[0] ?? null);
18313
18314
  const ignore = intAt(ctx, args, 1) ?? 0;
18314
- const byCol = intAt(ctx, args, 2) ? true : false;
18315
+ const byCol = Boolean(intAt(ctx, args, 2));
18315
18316
  const values2 = [];
18316
18317
  const rows = byCol ? m.cols : m.rows;
18317
18318
  const cols = byCol ? m.rows : m.cols;
@@ -21545,7 +21546,7 @@ function ifFn(args, ctx) {
21545
21546
  const branch = (truthy) => {
21546
21547
  const arg = args[truthy ? 1 : 2];
21547
21548
  if (arg) return arg.get();
21548
- return truthy ? true : false;
21549
+ return truthy;
21549
21550
  };
21550
21551
  if (cond instanceof Matrix) return elementwise(cond, branch, ctx);
21551
21552
  if (isError(cond)) return cond;
@@ -30145,8 +30146,8 @@ function protectionXml2(sheet) {
30145
30146
  values2["sheet"] = protection2.sheet || void 0;
30146
30147
  const allow = new Set(protection2.allow ?? []);
30147
30148
  if (protection2.sheet) {
30148
- values2["objects"] = allow.has("objects") ? false : true;
30149
- values2["scenarios"] = allow.has("scenarios") ? false : true;
30149
+ values2["objects"] = !allow.has("objects");
30150
+ values2["scenarios"] = !allow.has("scenarios");
30150
30151
  }
30151
30152
  for (const name3 of allow) values2[name3] = false;
30152
30153
  return el3("sheetProtection", values2);
@@ -30540,6 +30541,29 @@ function pruneCell(sheet, row3, col) {
30540
30541
 
30541
30542
  // xlsx/edit/shift-preserved.ts
30542
30543
  var XM2 = "http://schemas.microsoft.com/office/excel/2006/main";
30544
+ function hasPreservedOverflow(sheet, shift2, clipped, banded) {
30545
+ const keys = banded ? ["extLst"] : [shift2.axis === "row" ? "rowBreaks" : "colBreaks", "extLst"];
30546
+ for (const key2 of keys)
30547
+ for (const xml of sheet.preserved.get(key2) ?? []) {
30548
+ if (!xml.includes(key2 === "extLst" ? "sqref" : "brk")) continue;
30549
+ let root;
30550
+ try {
30551
+ root = parseXml(xml).documentElement;
30552
+ } catch {
30553
+ continue;
30554
+ }
30555
+ if (key2 === "extLst") {
30556
+ if (descendants4(root, XM2, "sqref").some(
30557
+ (node2) => parseSqref(node2.textContent ?? "").some(clipped)
30558
+ ))
30559
+ return true;
30560
+ } else if (elements(root).some(
30561
+ (node2) => node2.localName === "brk" && shiftIndex(Number(node2.getAttribute("id") ?? "0"), shift2) === void 0
30562
+ ))
30563
+ return true;
30564
+ }
30565
+ return false;
30566
+ }
30543
30567
  function descendants4(root, ns, local) {
30544
30568
  return Array.from(root.getElementsByTagNameNS(ns, local));
30545
30569
  }
@@ -31774,6 +31798,39 @@ function setBorders(ctx, s, range2, preset, edge = { style: "thin" }) {
31774
31798
  );
31775
31799
  }
31776
31800
 
31801
+ // xlsx/edit/insert-guard.ts
31802
+ function assertInsertFits(sheet, shift2, band2) {
31803
+ if (shift2.count <= 0) return;
31804
+ const max = shift2.axis === "row" ? MAX_ROW : MAX_COL;
31805
+ if (shift2.at + shift2.count > max + 1)
31806
+ throw new RangeError("The insert area extends beyond the sheet.");
31807
+ const first3 = max - shift2.count + 1;
31808
+ const lost = shift2.axis === "row" ? cellRange(first3, band2?.lo ?? 0, MAX_ROW, band2?.hi ?? MAX_COL) : cellRange(band2?.lo ?? 0, first3, band2?.hi ?? MAX_ROW, MAX_COL);
31809
+ const other = shift2.axis === "row" ? "col" : "row";
31810
+ const clipped = (range2) => (!band2 || range2.start[other] >= band2.lo && range2.end[other] <= band2.hi) && rangesIntersect(range2, lost);
31811
+ const fail3 = () => {
31812
+ throw new Error("Cannot insert cells: non-empty cells would be pushed off the sheet.");
31813
+ };
31814
+ for (const [row3, cells3] of sheet.rows) {
31815
+ if (row3 < lost.start.row || row3 > lost.end.row) continue;
31816
+ for (const [col, cell] of cells3)
31817
+ if (col >= lost.start.col && col <= lost.end.col && (!isEmptyCell(cell) || cell.cellMetadata !== void 0 || cell.valueMetadata !== void 0))
31818
+ fail3();
31819
+ }
31820
+ if (sheet.comments.some((c2) => rangesIntersect(cellRange(c2.address.row, c2.address.col), lost)) || sheet.hyperlinks.some((h2) => rangesIntersect(h2.range, lost)) || sheet.merges.some((m) => rangesIntersect(m, lost)) || sheet.tables.some((t) => rangesIntersect(t.range, lost)) || sheet.dataValidations.some((rule2) => rule2.ranges.some(clipped)) || sheet.conditionalFormats.some((format4) => format4.ranges.some(clipped)) || sheet.autoFilter !== void 0 && clipped(sheet.autoFilter.range) || sheet.pageSetup?.printArea !== void 0 && clipped(sheet.pageSetup.printArea) || hasPreservedOverflow(sheet, shift2, clipped, !!band2))
31821
+ fail3();
31822
+ for (const { anchor } of sheet.drawings) {
31823
+ if (band2 && (anchor.from[other] < band2.lo || anchor.from[other] > band2.hi)) continue;
31824
+ if (anchor.from[shift2.axis] >= first3 || anchor.to && anchor.to[shift2.axis] >= first3) fail3();
31825
+ }
31826
+ if (band2) return;
31827
+ if (shift2.axis === "row") {
31828
+ for (const [row3, info] of sheet.rowInfo) if (row3 >= first3 && Object.keys(info).length) fail3();
31829
+ } else {
31830
+ if (normalizeColumns(sheet.columns).some((c2) => c2.min >= first3)) fail3();
31831
+ }
31832
+ }
31833
+
31777
31834
  // xlsx/edit/shift-rule-anchors.ts
31778
31835
  function rebaseRulesForDeletion(sheet, shift2, band2) {
31779
31836
  if (shift2.count >= 0) return;
@@ -31795,6 +31852,7 @@ function rebaseRulesForDeletion(sheet, shift2, band2) {
31795
31852
 
31796
31853
  // xlsx/edit/shift-sheet.ts
31797
31854
  function shiftSheetContent(sheet, shift2, band2) {
31855
+ assertInsertFits(sheet, shift2, band2);
31798
31856
  const moveRange = (range2) => band2 ? shiftRangeInBand(range2, shift2, band2.lo, band2.hi) : shiftRange(range2, shift2);
31799
31857
  shiftCells(sheet, shift2, band2, moveRange);
31800
31858
  sheet.merges = sheet.merges.map(moveRange).filter((m) => !!m && (m.start.row !== m.end.row || m.start.col !== m.end.col));
@@ -31932,10 +31990,11 @@ function shiftFreeze(sheet, shift2) {
31932
31990
  // xlsx/edit/structure.ts
31933
31991
  function checkSpan(axis, at2, count2) {
31934
31992
  const max = axis === "row" ? MAX_ROW : MAX_COL;
31935
- if (!Number.isInteger(at2) || !Number.isInteger(count2) || at2 < 0 || at2 > max || count2 < 1)
31993
+ if (!Number.isInteger(at2) || !Number.isInteger(count2) || at2 < 0 || at2 > max || count2 < 1 || at2 + count2 > max + 1)
31936
31994
  throw new RangeError(`Invalid ${axis} span ${at2} + ${count2}`);
31937
31995
  }
31938
31996
  function applyAxisShift(ctx, sheet, shift2) {
31997
+ assertInsertFits(sheet, shift2);
31939
31998
  rebaseRulesForDeletion(sheet, shift2);
31940
31999
  const spec2 = { sheet: sheet.name, axis: shift2.axis, at: shift2.at, count: shift2.count };
31941
32000
  rewriteFormulas(
@@ -31969,6 +32028,7 @@ function shiftAxis(ctx, s, axis, at2, count2, insert) {
31969
32028
  const sheet = sheetAt(ctx.workbook, s);
31970
32029
  const noun = axis === "row" ? count2 === 1 ? "row" : "rows" : count2 === 1 ? "column" : "columns";
31971
32030
  const shift2 = { axis, at: at2, count: insert ? count2 : -count2 };
32031
+ assertInsertFits(sheet, shift2);
31972
32032
  const info = { sheet: s, structural: true };
31973
32033
  if (!sheet.autoFilter || shiftRange(sheet.autoFilter.range, shift2))
31974
32034
  info.calc = { kind: "shift", sheet: s, shift: shift2 };
@@ -32011,6 +32071,7 @@ function shiftBand(ctx, s, range2, direction) {
32011
32071
  };
32012
32072
  const band2 = vertical ? { lo: r.start.col, hi: r.end.col } : { lo: r.start.row, hi: r.end.row };
32013
32073
  assertBandIntact(sheet, shift2, band2);
32074
+ assertInsertFits(sheet, shift2, band2);
32014
32075
  ctx.run(
32015
32076
  `${insert ? "Insert" : "Delete"} cells`,
32016
32077
  "structure",
@@ -34504,6 +34565,7 @@ var byId = (sheet, id3) => {
34504
34565
  function insertBandRow(workbook, sheet, table3, row3) {
34505
34566
  const shift2 = { axis: "row", at: row3, count: 1 };
34506
34567
  const band2 = { lo: table3.range.start.col, hi: table3.range.end.col };
34568
+ assertInsertFits(sheet, shift2, band2);
34507
34569
  rewriteFormulas(workbook, (f6, fs) => shiftFormulaInBand(f6, fs, sheet.name, shift2, band2));
34508
34570
  shiftSheetContent(sheet, shift2, band2);
34509
34571
  }
@@ -34542,6 +34604,7 @@ function setTotalsRow(workbook, sheet, id3, on) {
34542
34604
  table3.totalsRow = false;
34543
34605
  return;
34544
34606
  }
34607
+ if (end.row === MAX_ROW) throw new RangeError("The insert area extends beyond the sheet.");
34545
34608
  if (!rowIsEmpty(sheet, end.row + 1, start.col, end.col)) {
34546
34609
  insertBandRow(workbook, sheet, table3, end.row + 1);
34547
34610
  table3 = byId(sheet, id3);
@@ -11694,6 +11694,7 @@ function deleteCell(sheet, row3, col) {
11694
11694
  cells3.delete(col);
11695
11695
  if (cells3.size === 0) sheet.rows.delete(row3);
11696
11696
  }
11697
+ var isEmptyCell = (cell) => !cell || cell.value === null && !cell.formula && !cell.styleId && !cell.richText;
11697
11698
  function forEachCell(sheet, visit2) {
11698
11699
  for (const row3 of [...sheet.rows.keys()].sort((a2, b) => a2 - b)) {
11699
11700
  const cells3 = sheet.rows.get(row3);
@@ -16563,10 +16564,10 @@ function patchChartColors(doc, chartNode, model, before) {
16563
16564
  const xml = fill ? drawingFillXml(fill) : color2 ? `<a:solidFill>${drawingColorXml(color2)}</a:solidFill>` : void 0;
16564
16565
  let spPr = first(point2, "spPr", NS.c);
16565
16566
  if (!xml) {
16566
- let paint2 = fillElementOf(spPr);
16567
- while (paint2 && spPr) {
16568
- spPr.removeChild(paint2);
16569
- paint2 = fillElementOf(spPr);
16567
+ if (spPr) {
16568
+ for (let paint2 = fillElementOf(spPr); paint2; paint2 = fillElementOf(spPr)) {
16569
+ spPr.removeChild(paint2);
16570
+ }
16570
16571
  }
16571
16572
  continue;
16572
16573
  }
@@ -18305,7 +18306,7 @@ function stack(ctx, args, vertical) {
18305
18306
  function flatten(ctx, args) {
18306
18307
  const m = ctx.toMatrix(args[0] ?? null);
18307
18308
  const ignore = intAt(ctx, args, 1) ?? 0;
18308
- const byCol = intAt(ctx, args, 2) ? true : false;
18309
+ const byCol = Boolean(intAt(ctx, args, 2));
18309
18310
  const values2 = [];
18310
18311
  const rows = byCol ? m.cols : m.rows;
18311
18312
  const cols = byCol ? m.rows : m.cols;
@@ -21539,7 +21540,7 @@ function ifFn(args, ctx) {
21539
21540
  const branch = (truthy) => {
21540
21541
  const arg = args[truthy ? 1 : 2];
21541
21542
  if (arg) return arg.get();
21542
- return truthy ? true : false;
21543
+ return truthy;
21543
21544
  };
21544
21545
  if (cond instanceof Matrix) return elementwise(cond, branch, ctx);
21545
21546
  if (isError(cond)) return cond;
@@ -30139,8 +30140,8 @@ function protectionXml2(sheet) {
30139
30140
  values2["sheet"] = protection2.sheet || void 0;
30140
30141
  const allow = new Set(protection2.allow ?? []);
30141
30142
  if (protection2.sheet) {
30142
- values2["objects"] = allow.has("objects") ? false : true;
30143
- values2["scenarios"] = allow.has("scenarios") ? false : true;
30143
+ values2["objects"] = !allow.has("objects");
30144
+ values2["scenarios"] = !allow.has("scenarios");
30144
30145
  }
30145
30146
  for (const name3 of allow) values2[name3] = false;
30146
30147
  return el3("sheetProtection", values2);
@@ -30534,6 +30535,29 @@ function pruneCell(sheet, row3, col) {
30534
30535
 
30535
30536
  // xlsx/edit/shift-preserved.ts
30536
30537
  var XM2 = "http://schemas.microsoft.com/office/excel/2006/main";
30538
+ function hasPreservedOverflow(sheet, shift2, clipped, banded) {
30539
+ const keys = banded ? ["extLst"] : [shift2.axis === "row" ? "rowBreaks" : "colBreaks", "extLst"];
30540
+ for (const key2 of keys)
30541
+ for (const xml of sheet.preserved.get(key2) ?? []) {
30542
+ if (!xml.includes(key2 === "extLst" ? "sqref" : "brk")) continue;
30543
+ let root;
30544
+ try {
30545
+ root = parseXml(xml).documentElement;
30546
+ } catch {
30547
+ continue;
30548
+ }
30549
+ if (key2 === "extLst") {
30550
+ if (descendants4(root, XM2, "sqref").some(
30551
+ (node2) => parseSqref(node2.textContent ?? "").some(clipped)
30552
+ ))
30553
+ return true;
30554
+ } else if (elements(root).some(
30555
+ (node2) => node2.localName === "brk" && shiftIndex(Number(node2.getAttribute("id") ?? "0"), shift2) === void 0
30556
+ ))
30557
+ return true;
30558
+ }
30559
+ return false;
30560
+ }
30537
30561
  function descendants4(root, ns, local) {
30538
30562
  return Array.from(root.getElementsByTagNameNS(ns, local));
30539
30563
  }
@@ -31768,6 +31792,39 @@ function setBorders(ctx, s, range2, preset, edge = { style: "thin" }) {
31768
31792
  );
31769
31793
  }
31770
31794
 
31795
+ // xlsx/edit/insert-guard.ts
31796
+ function assertInsertFits(sheet, shift2, band2) {
31797
+ if (shift2.count <= 0) return;
31798
+ const max = shift2.axis === "row" ? MAX_ROW : MAX_COL;
31799
+ if (shift2.at + shift2.count > max + 1)
31800
+ throw new RangeError("The insert area extends beyond the sheet.");
31801
+ const first3 = max - shift2.count + 1;
31802
+ const lost = shift2.axis === "row" ? cellRange(first3, band2?.lo ?? 0, MAX_ROW, band2?.hi ?? MAX_COL) : cellRange(band2?.lo ?? 0, first3, band2?.hi ?? MAX_ROW, MAX_COL);
31803
+ const other = shift2.axis === "row" ? "col" : "row";
31804
+ const clipped = (range2) => (!band2 || range2.start[other] >= band2.lo && range2.end[other] <= band2.hi) && rangesIntersect(range2, lost);
31805
+ const fail3 = () => {
31806
+ throw new Error("Cannot insert cells: non-empty cells would be pushed off the sheet.");
31807
+ };
31808
+ for (const [row3, cells3] of sheet.rows) {
31809
+ if (row3 < lost.start.row || row3 > lost.end.row) continue;
31810
+ for (const [col, cell] of cells3)
31811
+ if (col >= lost.start.col && col <= lost.end.col && (!isEmptyCell(cell) || cell.cellMetadata !== void 0 || cell.valueMetadata !== void 0))
31812
+ fail3();
31813
+ }
31814
+ if (sheet.comments.some((c2) => rangesIntersect(cellRange(c2.address.row, c2.address.col), lost)) || sheet.hyperlinks.some((h2) => rangesIntersect(h2.range, lost)) || sheet.merges.some((m) => rangesIntersect(m, lost)) || sheet.tables.some((t) => rangesIntersect(t.range, lost)) || sheet.dataValidations.some((rule2) => rule2.ranges.some(clipped)) || sheet.conditionalFormats.some((format4) => format4.ranges.some(clipped)) || sheet.autoFilter !== void 0 && clipped(sheet.autoFilter.range) || sheet.pageSetup?.printArea !== void 0 && clipped(sheet.pageSetup.printArea) || hasPreservedOverflow(sheet, shift2, clipped, !!band2))
31815
+ fail3();
31816
+ for (const { anchor } of sheet.drawings) {
31817
+ if (band2 && (anchor.from[other] < band2.lo || anchor.from[other] > band2.hi)) continue;
31818
+ if (anchor.from[shift2.axis] >= first3 || anchor.to && anchor.to[shift2.axis] >= first3) fail3();
31819
+ }
31820
+ if (band2) return;
31821
+ if (shift2.axis === "row") {
31822
+ for (const [row3, info] of sheet.rowInfo) if (row3 >= first3 && Object.keys(info).length) fail3();
31823
+ } else {
31824
+ if (normalizeColumns(sheet.columns).some((c2) => c2.min >= first3)) fail3();
31825
+ }
31826
+ }
31827
+
31771
31828
  // xlsx/edit/shift-rule-anchors.ts
31772
31829
  function rebaseRulesForDeletion(sheet, shift2, band2) {
31773
31830
  if (shift2.count >= 0) return;
@@ -31789,6 +31846,7 @@ function rebaseRulesForDeletion(sheet, shift2, band2) {
31789
31846
 
31790
31847
  // xlsx/edit/shift-sheet.ts
31791
31848
  function shiftSheetContent(sheet, shift2, band2) {
31849
+ assertInsertFits(sheet, shift2, band2);
31792
31850
  const moveRange = (range2) => band2 ? shiftRangeInBand(range2, shift2, band2.lo, band2.hi) : shiftRange(range2, shift2);
31793
31851
  shiftCells(sheet, shift2, band2, moveRange);
31794
31852
  sheet.merges = sheet.merges.map(moveRange).filter((m) => !!m && (m.start.row !== m.end.row || m.start.col !== m.end.col));
@@ -31926,10 +31984,11 @@ function shiftFreeze(sheet, shift2) {
31926
31984
  // xlsx/edit/structure.ts
31927
31985
  function checkSpan(axis, at2, count2) {
31928
31986
  const max = axis === "row" ? MAX_ROW : MAX_COL;
31929
- if (!Number.isInteger(at2) || !Number.isInteger(count2) || at2 < 0 || at2 > max || count2 < 1)
31987
+ if (!Number.isInteger(at2) || !Number.isInteger(count2) || at2 < 0 || at2 > max || count2 < 1 || at2 + count2 > max + 1)
31930
31988
  throw new RangeError(`Invalid ${axis} span ${at2} + ${count2}`);
31931
31989
  }
31932
31990
  function applyAxisShift(ctx, sheet, shift2) {
31991
+ assertInsertFits(sheet, shift2);
31933
31992
  rebaseRulesForDeletion(sheet, shift2);
31934
31993
  const spec2 = { sheet: sheet.name, axis: shift2.axis, at: shift2.at, count: shift2.count };
31935
31994
  rewriteFormulas(
@@ -31963,6 +32022,7 @@ function shiftAxis(ctx, s, axis, at2, count2, insert) {
31963
32022
  const sheet = sheetAt(ctx.workbook, s);
31964
32023
  const noun = axis === "row" ? count2 === 1 ? "row" : "rows" : count2 === 1 ? "column" : "columns";
31965
32024
  const shift2 = { axis, at: at2, count: insert ? count2 : -count2 };
32025
+ assertInsertFits(sheet, shift2);
31966
32026
  const info = { sheet: s, structural: true };
31967
32027
  if (!sheet.autoFilter || shiftRange(sheet.autoFilter.range, shift2))
31968
32028
  info.calc = { kind: "shift", sheet: s, shift: shift2 };
@@ -32005,6 +32065,7 @@ function shiftBand(ctx, s, range2, direction) {
32005
32065
  };
32006
32066
  const band2 = vertical ? { lo: r.start.col, hi: r.end.col } : { lo: r.start.row, hi: r.end.row };
32007
32067
  assertBandIntact(sheet, shift2, band2);
32068
+ assertInsertFits(sheet, shift2, band2);
32008
32069
  ctx.run(
32009
32070
  `${insert ? "Insert" : "Delete"} cells`,
32010
32071
  "structure",
@@ -34498,6 +34559,7 @@ var byId = (sheet, id3) => {
34498
34559
  function insertBandRow(workbook, sheet, table3, row3) {
34499
34560
  const shift2 = { axis: "row", at: row3, count: 1 };
34500
34561
  const band2 = { lo: table3.range.start.col, hi: table3.range.end.col };
34562
+ assertInsertFits(sheet, shift2, band2);
34501
34563
  rewriteFormulas(workbook, (f6, fs) => shiftFormulaInBand(f6, fs, sheet.name, shift2, band2));
34502
34564
  shiftSheetContent(sheet, shift2, band2);
34503
34565
  }
@@ -34536,6 +34598,7 @@ function setTotalsRow(workbook, sheet, id3, on) {
34536
34598
  table3.totalsRow = false;
34537
34599
  return;
34538
34600
  }
34601
+ if (end.row === MAX_ROW) throw new RangeError("The insert area extends beyond the sheet.");
34539
34602
  if (!rowIsEmpty(sheet, end.row + 1, start.col, end.col)) {
34540
34603
  insertBandRow(workbook, sheet, table3, end.row + 1);
34541
34604
  table3 = byId(sheet, id3);
@@ -3935,10 +3935,10 @@ function patchChartColors(doc, chartNode, model, before) {
3935
3935
  const xml = fill ? drawingFillXml(fill) : color ? `<a:solidFill>${drawingColorXml(color)}</a:solidFill>` : void 0;
3936
3936
  let spPr = first(point, "spPr", NS.c);
3937
3937
  if (!xml) {
3938
- let paint = fillElementOf(spPr);
3939
- while (paint && spPr) {
3940
- spPr.removeChild(paint);
3941
- paint = fillElementOf(spPr);
3938
+ if (spPr) {
3939
+ for (let paint = fillElementOf(spPr); paint; paint = fillElementOf(spPr)) {
3940
+ spPr.removeChild(paint);
3941
+ }
3942
3942
  }
3943
3943
  continue;
3944
3944
  }
@@ -7961,7 +7961,7 @@ function stack(ctx, args, vertical) {
7961
7961
  function flatten(ctx, args) {
7962
7962
  const m = ctx.toMatrix(args[0] ?? null);
7963
7963
  const ignore = intAt(ctx, args, 1) ?? 0;
7964
- const byCol = intAt(ctx, args, 2) ? true : false;
7964
+ const byCol = Boolean(intAt(ctx, args, 2));
7965
7965
  const values2 = [];
7966
7966
  const rows = byCol ? m.cols : m.rows;
7967
7967
  const cols = byCol ? m.rows : m.cols;
@@ -11087,7 +11087,7 @@ function ifFn(args, ctx) {
11087
11087
  const branch = (truthy) => {
11088
11088
  const arg = args[truthy ? 1 : 2];
11089
11089
  if (arg) return arg.get();
11090
- return truthy ? true : false;
11090
+ return truthy;
11091
11091
  };
11092
11092
  if (cond instanceof Matrix) return elementwise(cond, branch, ctx);
11093
11093
  if (isError(cond)) return cond;
@@ -19629,8 +19629,8 @@ function protectionXml2(sheet) {
19629
19629
  values2["sheet"] = protection.sheet || void 0;
19630
19630
  const allow = new Set(protection.allow ?? []);
19631
19631
  if (protection.sheet) {
19632
- values2["objects"] = allow.has("objects") ? false : true;
19633
- values2["scenarios"] = allow.has("scenarios") ? false : true;
19632
+ values2["objects"] = !allow.has("objects");
19633
+ values2["scenarios"] = !allow.has("scenarios");
19634
19634
  }
19635
19635
  for (const name of allow) values2[name] = false;
19636
19636
  return el("sheetProtection", values2);
@@ -3908,10 +3908,10 @@ function patchChartColors(doc, chartNode, model, before) {
3908
3908
  const xml = fill ? drawingFillXml(fill) : color ? `<a:solidFill>${drawingColorXml(color)}</a:solidFill>` : void 0;
3909
3909
  let spPr = first(point, "spPr", NS.c);
3910
3910
  if (!xml) {
3911
- let paint = fillElementOf(spPr);
3912
- while (paint && spPr) {
3913
- spPr.removeChild(paint);
3914
- paint = fillElementOf(spPr);
3911
+ if (spPr) {
3912
+ for (let paint = fillElementOf(spPr); paint; paint = fillElementOf(spPr)) {
3913
+ spPr.removeChild(paint);
3914
+ }
3915
3915
  }
3916
3916
  continue;
3917
3917
  }
@@ -7934,7 +7934,7 @@ function stack(ctx, args, vertical) {
7934
7934
  function flatten(ctx, args) {
7935
7935
  const m = ctx.toMatrix(args[0] ?? null);
7936
7936
  const ignore = intAt(ctx, args, 1) ?? 0;
7937
- const byCol = intAt(ctx, args, 2) ? true : false;
7937
+ const byCol = Boolean(intAt(ctx, args, 2));
7938
7938
  const values2 = [];
7939
7939
  const rows = byCol ? m.cols : m.rows;
7940
7940
  const cols = byCol ? m.rows : m.cols;
@@ -11060,7 +11060,7 @@ function ifFn(args, ctx) {
11060
11060
  const branch = (truthy) => {
11061
11061
  const arg = args[truthy ? 1 : 2];
11062
11062
  if (arg) return arg.get();
11063
- return truthy ? true : false;
11063
+ return truthy;
11064
11064
  };
11065
11065
  if (cond instanceof Matrix) return elementwise(cond, branch, ctx);
11066
11066
  if (isError(cond)) return cond;
@@ -19602,8 +19602,8 @@ function protectionXml2(sheet) {
19602
19602
  values2["sheet"] = protection.sheet || void 0;
19603
19603
  const allow = new Set(protection.allow ?? []);
19604
19604
  if (protection.sheet) {
19605
- values2["objects"] = allow.has("objects") ? false : true;
19606
- values2["scenarios"] = allow.has("scenarios") ? false : true;
19605
+ values2["objects"] = !allow.has("objects");
19606
+ values2["scenarios"] = !allow.has("scenarios");
19607
19607
  }
19608
19608
  for (const name of allow) values2[name] = false;
19609
19609
  return el("sheetProtection", values2);
@@ -29385,7 +29385,9 @@ function step2(density, spacing, zoom) {
29385
29385
  if (density === 0 && spacing > 0) return spacing;
29386
29386
  const level = Math.max(-6, Math.min(6, Math.floor(Math.log2(zoom > 0 ? zoom : 1) + 1e-9)));
29387
29387
  let value = base2 / 2 ** level;
29388
- while (spacing > 0 && value < spacing - 1e-9) value *= 2;
29388
+ if (spacing > 0) {
29389
+ while (value < spacing - 1e-9) value *= 2;
29390
+ }
29389
29391
  return value;
29390
29392
  }
29391
29393
  function visioGridSteps(page, zoom = 1) {
@@ -29379,7 +29379,9 @@ function step2(density, spacing, zoom) {
29379
29379
  if (density === 0 && spacing > 0) return spacing;
29380
29380
  const level = Math.max(-6, Math.min(6, Math.floor(Math.log2(zoom > 0 ? zoom : 1) + 1e-9)));
29381
29381
  let value = base2 / 2 ** level;
29382
- while (spacing > 0 && value < spacing - 1e-9) value *= 2;
29382
+ if (spacing > 0) {
29383
+ while (value < spacing - 1e-9) value *= 2;
29384
+ }
29383
29385
  return value;
29384
29386
  }
29385
29387
  function visioGridSteps(page, zoom = 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"ruler-grid.d.ts","sourceRoot":"","sources":["../../../visio/ui/ruler-grid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEvE,2DAA2D;AAC3D,eAAO,MAAM,0BAA0B;oBAC7B,CAAC;oBAAS,MAAM;;oBAChB,CAAC;oBAAS,QAAQ;;oBAClB,CAAC;oBAAS,QAAQ;;oBAClB,CAAC;oBAAS,OAAO;EAChB,CAAC;AACZ,eAAO,MAAM,2BAA2B;oBAC9B,EAAE;oBAAS,MAAM;;oBACjB,EAAE;oBAAS,QAAQ;;oBACnB,CAAC;oBAAS,QAAQ;EACjB,CAAC;AAEZ,kGAAkG;AAClG,MAAM,WAAW,cAAc;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAiBD,wBAAgB,cAAc,CAC7B,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CAAE,EAC3C,IAAI,SAAI,GACN,cAAc,CAQhB;AAED,yGAAyG;AACzG,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wCAAwC;AACxC,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACtC,eAAe,EACb,eAAe,GACf,eAAe,GACf,cAAc,GACd,cAAc,GACd,cAAc,GACd,cAAc,GACd,cAAc,GACd,cAAc,GACd,aAAa,GACb,aAAa,CACf,CAAC;AAcF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,oBAAoB,CAG1E;AAED,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,GAAG,SAAS,EAAE,CAW9F"}
1
+ {"version":3,"file":"ruler-grid.d.ts","sourceRoot":"","sources":["../../../visio/ui/ruler-grid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEvE,2DAA2D;AAC3D,eAAO,MAAM,0BAA0B;oBAC7B,CAAC;oBAAS,MAAM;;oBAChB,CAAC;oBAAS,QAAQ;;oBAClB,CAAC;oBAAS,QAAQ;;oBAClB,CAAC;oBAAS,OAAO;EAChB,CAAC;AACZ,eAAO,MAAM,2BAA2B;oBAC9B,EAAE;oBAAS,MAAM;;oBACjB,EAAE;oBAAS,QAAQ;;oBACnB,CAAC;oBAAS,QAAQ;EACjB,CAAC;AAEZ,kGAAkG;AAClG,MAAM,WAAW,cAAc;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAmBD,wBAAgB,cAAc,CAC7B,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CAAE,EAC3C,IAAI,SAAI,GACN,cAAc,CAQhB;AAED,yGAAyG;AACzG,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wCAAwC;AACxC,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACtC,eAAe,EACb,eAAe,GACf,eAAe,GACf,cAAc,GACd,cAAc,GACd,cAAc,GACd,cAAc,GACd,cAAc,GACd,cAAc,GACd,aAAa,GACb,aAAa,CACf,CAAC;AAcF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,oBAAoB,CAG1E;AAED,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,GAAG,SAAS,EAAE,CAW9F"}
@@ -1 +1 @@
1
- {"version":3,"file":"cell-shift.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/cell-shift.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAqD,MAAM,YAAY,CAAC;AAG/F,OAAO,EAAE,KAAK,WAAW,EAAwC,MAAM,WAAW,CAAC;AA2DnF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,MAAM,GAAG,OAAO,GACzB,IAAI,CAON;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,IAAI,GAAG,MAAM,GACtB,IAAI,CAON"}
1
+ {"version":3,"file":"cell-shift.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/cell-shift.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAqD,MAAM,YAAY,CAAC;AAI/F,OAAO,EAAE,KAAK,WAAW,EAAwC,MAAM,WAAW,CAAC;AA4DnF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,MAAM,GAAG,OAAO,GACzB,IAAI,CAON;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,IAAI,GAAG,MAAM,GACtB,IAAI,CAON"}
@@ -0,0 +1,6 @@
1
+ import type { Worksheet } from '../model.js';
2
+ import type { AxisShift } from './range-math.js';
3
+ import type { Band } from './shift-sheet.js';
4
+ /** Refuses an insertion that would discard cells or clip positioned metadata at the grid edge. */
5
+ export declare function assertInsertFits(sheet: Worksheet, shift: AxisShift, band?: Band): void;
6
+ //# sourceMappingURL=insert-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insert-guard.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/insert-guard.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C,kGAAkG;AAClG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAqDtF"}
@@ -1,6 +1,8 @@
1
1
  import type { CellRange } from '../address.js';
2
2
  import type { Worksheet } from '../model.js';
3
3
  import { type AxisShift } from './range-math.js';
4
+ /** Reports page breaks and extension ranges that an insertion would push beyond the grid. */
5
+ export declare function hasPreservedOverflow(sheet: Worksheet, shift: AxisShift, clipped: (range: CellRange) => boolean, banded: boolean): boolean;
4
6
  /** Rewrites one formula; `formulaSheet` is the sheet unqualified references point at. */
5
7
  type Rewrite = (formula: string, formulaSheet: string) => string;
6
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"shift-preserved.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/shift-preserved.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,cAAc,CAAC;AAI1D,yFAAyF;AACzF,KAAK,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;AA2GjE;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,GAAG,SAAS,EACtD,MAAM,EAAE,OAAO,GACb,IAAI,CAcN;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAsBjF"}
1
+ {"version":3,"file":"shift-preserved.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/shift-preserved.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,cAAc,CAAC;AAI1D,6FAA6F;AAC7F,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,EACtC,MAAM,EAAE,OAAO,GACb,OAAO,CA6BT;AAED,yFAAyF;AACzF,KAAK,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;AA2GjE;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,GAAG,SAAS,EACtD,MAAM,EAAE,OAAO,GACb,IAAI,CAcN;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAsBjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"shift-sheet.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/shift-sheet.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAA2C,SAAS,EAAE,MAAM,UAAU,CAAC;AAGnF,OAAO,EACN,KAAK,SAAS,EAMd,MAAM,cAAc,CAAC;AAEtB,iGAAiG;AACjG,MAAM,WAAW,IAAI;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACX;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAgDvF"}
1
+ {"version":3,"file":"shift-sheet.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/shift-sheet.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAA2C,SAAS,EAAE,MAAM,UAAU,CAAC;AAInF,OAAO,EACN,KAAK,SAAS,EAMd,MAAM,cAAc,CAAC;AAEtB,iGAAiG;AACjG,MAAM,WAAW,IAAI;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACX;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAiDvF"}
@@ -1 +1 @@
1
- {"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/structure.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,KAAK,WAAW,EAAyB,MAAM,WAAW,CAAC;AAEpE,OAAO,EAAa,KAAK,SAAS,EAAc,MAAM,cAAc,CAAC;AAWrE,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAOzF;AAoDD,eAAO,MAAM,UAAU,QAAS,WAAW,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,KAAG,IAC1C,CAAC;AAC3C,eAAO,MAAM,UAAU,QAAS,WAAW,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,KAAG,IACzC,CAAC;AAC5C,eAAO,MAAM,aAAa,QAAS,WAAW,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,KAAG,IAC7C,CAAC;AAC3C,eAAO,MAAM,aAAa,QAAS,WAAW,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,KAAG,IAC5C,CAAC"}
1
+ {"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/structure.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,KAAK,WAAW,EAAyB,MAAM,WAAW,CAAC;AAGpE,OAAO,EAAa,KAAK,SAAS,EAAc,MAAM,cAAc,CAAC;AAmBrE,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAQzF;AAsDD,eAAO,MAAM,UAAU,QAAS,WAAW,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,KAAG,IAC1C,CAAC;AAC3C,eAAO,MAAM,UAAU,QAAS,WAAW,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,KAAG,IACzC,CAAC;AAC5C,eAAO,MAAM,aAAa,QAAS,WAAW,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,KAAG,IAC7C,CAAC;AAC3C,eAAO,MAAM,aAAa,QAAS,WAAW,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,KAAG,IAC5C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"table-edits.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/table-edits.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAmC,MAAM,YAAY,CAAC;AAI7E,OAAO,KAAK,EAAE,KAAK,EAAe,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGxE,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,WAAW,CAAC;AAOnE,wEAAwE;AACxE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,qCAAqC;AACrC,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC;AAEjE,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAM,CAOlE;AAID,uFAAuF;AACvF,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,KAAK,GACV,MAAM,GAAG,SAAS,CAWpB;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAYlF;AAwHD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CA4C/F;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAU9F;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CAyCpF"}
1
+ {"version":3,"file":"table-edits.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/table-edits.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAA4C,MAAM,YAAY,CAAC;AAItF,OAAO,KAAK,EAAE,KAAK,EAAe,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIxE,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,WAAW,CAAC;AAOnE,wEAAwE;AACxE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,qCAAqC;AACrC,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC;AAEjE,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAM,CAOlE;AAID,uFAAuF;AACvF,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,KAAK,GACV,MAAM,GAAG,SAAS,CAWpB;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAYlF;AA2HD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CA4C/F;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAU9F;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CAyCpF"}