ooxml-core 0.21.2 → 0.22.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 (85) hide show
  1. package/README.md +3 -4
  2. package/dist/automation/index.cjs +86 -22
  3. package/dist/automation/index.mjs +86 -22
  4. package/dist/chart/index.cjs +242 -0
  5. package/dist/chart/index.d.ts +5 -0
  6. package/dist/chart/index.d.ts.map +1 -1
  7. package/dist/chart/index.mjs +227 -1
  8. package/dist/chart/pie-best-fit.d.ts +51 -0
  9. package/dist/chart/pie-best-fit.d.ts.map +1 -0
  10. package/dist/chart/pie-label-collision.d.ts +48 -0
  11. package/dist/chart/pie-label-collision.d.ts.map +1 -0
  12. package/dist/chart/radar-geometry.d.ts +19 -0
  13. package/dist/chart/radar-geometry.d.ts.map +1 -0
  14. package/dist/chart/treemap-squarify.d.ts +31 -0
  15. package/dist/chart/treemap-squarify.d.ts.map +1 -0
  16. package/dist/chart/trendline-equation.d.ts +39 -0
  17. package/dist/chart/trendline-equation.d.ts.map +1 -0
  18. package/dist/collab/index.cjs +6 -1
  19. package/dist/collab/index.mjs +6 -1
  20. package/dist/color/contrast.d.ts +18 -0
  21. package/dist/color/contrast.d.ts.map +1 -0
  22. package/dist/color/index.cjs +33 -0
  23. package/dist/color/index.d.ts +2 -0
  24. package/dist/color/index.d.ts.map +1 -1
  25. package/dist/color/index.mjs +31 -1
  26. package/dist/color/unit-rgb.d.ts +21 -0
  27. package/dist/color/unit-rgb.d.ts.map +1 -0
  28. package/dist/docx/embedded.cjs +1 -1
  29. package/dist/docx/embedded.mjs +1 -1
  30. package/dist/docx/index.cjs +1 -1
  31. package/dist/docx/index.mjs +1 -1
  32. package/dist/docx/load/index.cjs +1 -1
  33. package/dist/docx/load/index.mjs +1 -1
  34. package/dist/geometry/align-distribute.d.ts +145 -0
  35. package/dist/geometry/align-distribute.d.ts.map +1 -0
  36. package/dist/geometry/index.cjs +318 -0
  37. package/dist/geometry/index.d.ts +2 -0
  38. package/dist/geometry/index.d.ts.map +1 -1
  39. package/dist/geometry/index.mjs +307 -1
  40. package/dist/geometry/snap-guides.d.ts +125 -0
  41. package/dist/geometry/snap-guides.d.ts.map +1 -0
  42. package/dist/index.cjs +665 -0
  43. package/dist/index.mjs +665 -0
  44. package/dist/pptx/automation/index.cjs +24 -1
  45. package/dist/pptx/automation/index.d.ts +3 -3
  46. package/dist/pptx/automation/index.mjs +24 -1
  47. package/dist/pptx/chunks/{index-JaNVJ6Tf.d.ts → index-D2y7ehZ5.d.ts} +3 -3
  48. package/dist/pptx/chunks/{index-JaNVJ6Tf.d.ts.map → index-D2y7ehZ5.d.ts.map} +1 -1
  49. package/dist/pptx/chunks/{index-DHdHU9Qr.d.ts → index-ucqKcqvI.d.ts} +10 -2
  50. package/dist/pptx/chunks/{index-DHdHU9Qr.d.ts.map → index-ucqKcqvI.d.ts.map} +1 -1
  51. package/dist/pptx/chunks/{text-operations-DUEhSW5Z.d.ts → text-operations-CR3pUJi-.d.ts} +14 -2
  52. package/dist/pptx/chunks/text-operations-CR3pUJi-.d.ts.map +1 -0
  53. package/dist/pptx/cli/index.cjs +23 -0
  54. package/dist/pptx/cli/index.d.ts +1 -1
  55. package/dist/pptx/cli/index.mjs +23 -0
  56. package/dist/pptx/converter/index.d.ts +1 -1
  57. package/dist/pptx/index.cjs +33 -3
  58. package/dist/pptx/index.d.ts +3 -3
  59. package/dist/pptx/index.mjs +33 -3
  60. package/dist/teams/index.cjs +7 -2
  61. package/dist/teams/index.mjs +7 -2
  62. package/dist/text/decimal-tab.d.ts +24 -0
  63. package/dist/text/decimal-tab.d.ts.map +1 -0
  64. package/dist/text/index.cjs +72 -0
  65. package/dist/text/index.d.ts +2 -0
  66. package/dist/text/index.d.ts.map +1 -1
  67. package/dist/text/index.mjs +68 -1
  68. package/dist/text/tab-leader.d.ts +36 -0
  69. package/dist/text/tab-leader.d.ts.map +1 -0
  70. package/dist/xlsx/edit/charts.d.ts.map +1 -1
  71. package/dist/xlsx/edit/clipboard-html-parse.d.ts.map +1 -1
  72. package/dist/xlsx/edit/fill-series.d.ts.map +1 -1
  73. package/dist/xlsx/index.cjs +85 -21
  74. package/dist/xlsx/index.mjs +85 -21
  75. package/dist/xlsx/load/csv.d.ts.map +1 -1
  76. package/dist/xlsx/load/index.cjs +17 -8
  77. package/dist/xlsx/load/index.mjs +17 -8
  78. package/dist/xlsx/numfmt/input-date.d.ts.map +1 -1
  79. package/dist/xlsx/ui/grid/cell-paint.d.ts.map +1 -1
  80. package/dist/xlsx/ui/index.cjs +86 -25
  81. package/dist/xlsx/ui/index.mjs +86 -25
  82. package/dist/xlsx/ui/selection.d.ts.map +1 -1
  83. package/dist/xlsx/write/drawing.d.ts.map +1 -1
  84. package/package.json +2 -2
  85. package/dist/pptx/chunks/text-operations-DUEhSW5Z.d.ts.map +0 -1
@@ -6817,7 +6817,10 @@ function writeDrawing(writer, partName, objects, sourceDrawing) {
6817
6817
  let nextId = Math.max(
6818
6818
  1,
6819
6819
  ...kept.flatMap(
6820
- (xml) => [...xml.matchAll(/cNvPr[^>]*\sid="(\d+)"/g)].map((m) => Number(m[1]))
6820
+ (xml) => [...xml.matchAll(/cNvPr([^>]*)/g)].flatMap((m) => {
6821
+ const id = /\sid="(\d+)"/.exec(m[1] ?? "");
6822
+ return id ? [Number(id[1])] : [];
6823
+ })
6821
6824
  )
6822
6825
  ) + 1;
6823
6826
  let body = "";
@@ -7800,7 +7803,8 @@ function parseDay(text) {
7800
7803
  function parseDateTimeInput(text, date1904) {
7801
7804
  const time = parseTime(text);
7802
7805
  if (time) return { value: time.fraction, numFmt: time.format };
7803
- const split = /^(.+?)(?:\s+|T)(\d{1,2}:\d{1,2}(?::\d{1,2})?(?:\s*(?:am|pm|a|p))?)$/i.exec(text);
7806
+ const tail = /(?:\s{1,8}|T)(\d{1,2}:\d{1,2}(?::\d{1,2})?(?:\s{0,8}(?:am|pm|a|p))?)$/i.exec(text);
7807
+ const split = tail && tail.index > 0 ? [tail[0], text.slice(0, tail.index), tail[1]] : null;
7804
7808
  const dayText = split ? split[1] ?? "" : text;
7805
7809
  const day = parseDay(dayText);
7806
7810
  if (!day) return void 0;
@@ -7845,10 +7849,10 @@ function parseNumberInput(text) {
7845
7849
  s = s.slice(lead[0].length);
7846
7850
  if (!sign()) return void 0;
7847
7851
  } else {
7848
- const trail = /\s*([€£])$/.exec(s);
7849
- if (trail) {
7850
- currency = trail[1] ?? "";
7851
- s = s.slice(0, -trail[0].length);
7852
+ const last = s.slice(-1);
7853
+ if (last === "\u20AC" || last === "\xA3") {
7854
+ currency = last;
7855
+ s = s.slice(0, -1).trimEnd();
7852
7856
  }
7853
7857
  }
7854
7858
  let percent = false;
@@ -18668,8 +18672,13 @@ function parseCsv(input, options = {}) {
18668
18672
  var INVALID_SHEET_CHARS = /[\\/?*[\]:]/g;
18669
18673
  function sheetNameFromFileName(fileName) {
18670
18674
  const base = (fileName ?? "").split(/[\\/]/).pop() ?? "";
18671
- const stem = base.replace(/\.[^.]*$/, "").replace(INVALID_SHEET_CHARS, "_");
18672
- const trimmed = stem.replace(/^'+|'+$/g, "").slice(0, 31).trim();
18675
+ const dot = base.lastIndexOf(".");
18676
+ const stem = (dot < 0 ? base : base.slice(0, dot)).replace(INVALID_SHEET_CHARS, "_");
18677
+ let start = 0;
18678
+ let end = stem.length;
18679
+ while (start < end && stem[start] === "'") start++;
18680
+ while (end > start && stem[end - 1] === "'") end--;
18681
+ const trimmed = stem.slice(start, end).slice(0, 31).trim();
18673
18682
  return trimmed && trimmed.toLowerCase() !== "history" ? trimmed : "Sheet1";
18674
18683
  }
18675
18684
  function csvToWorkbook(text, options = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"input-date.d.ts","sourceRoot":"","sources":["../../../xlsx/numfmt/input-date.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAiCD,wFAAwF;AACxF,wBAAgB,QAAQ,CACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,GACf,MAAM,GAAG,SAAS,CASpB;AAED,UAAU,SAAS;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CACf;AAID,yEAAyE;AACzE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CA2B7D;AA0DD,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAczF"}
1
+ {"version":3,"file":"input-date.d.ts","sourceRoot":"","sources":["../../../xlsx/numfmt/input-date.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAiCD,wFAAwF;AACxF,wBAAgB,QAAQ,CACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,GACf,MAAM,GAAG,SAAS,CASpB;AAED,UAAU,SAAS;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CACf;AAID,yEAAyE;AACzE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CA2B7D;AA0DD,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAezF"}
@@ -1 +1 @@
1
- {"version":3,"file":"cell-paint.d.ts","sourceRoot":"","sources":["../../../../xlsx/ui/grid/cell-paint.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,gBAAgB,CAAC;AAYxB,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED,2DAA2D;AAC3D,wBAAgB,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,SAAM,GAAG,MAAM,CAG1D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAKrD;AAyBD,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWjF;AAED,MAAM,WAAW,SAAS;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAQ3E;AAED,eAAO,MAAM,OAAO,SAAU,QAAQ,GAAG,SAAS,KAAG,MAG/C,CAAC;AAEP,eAAO,MAAM,UAAU,MAAO,WAAW,KAAG,OACsC,CAAC;AAEnF,oDAAoD;AACpD,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAepF;AAED,2CAA2C;AAC3C,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAIvF;AAED,gEAAgE;AAChE,wBAAgB,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGxE"}
1
+ {"version":3,"file":"cell-paint.d.ts","sourceRoot":"","sources":["../../../../xlsx/ui/grid/cell-paint.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAY7F,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED,2DAA2D;AAC3D,wBAAgB,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,SAAM,GAAG,MAAM,CAG1D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAKrD;AAyBD,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWjF;AAED,MAAM,WAAW,SAAS;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAQ3E;AAED,eAAO,MAAM,OAAO,SAAU,QAAQ,GAAG,SAAS,KAAG,MAG/C,CAAC;AAEP,eAAO,MAAM,UAAU,MAAO,WAAW,KAAG,OACsC,CAAC;AAEnF,oDAAoD;AACpD,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAepF;AAED,2CAA2C;AAC3C,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAIvF;AAED,gEAAgE;AAChE,wBAAgB,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGxE"}
@@ -1737,7 +1737,8 @@ function parseDay(text) {
1737
1737
  function parseDateTimeInput(text, date1904) {
1738
1738
  const time = parseTime(text);
1739
1739
  if (time) return { value: time.fraction, numFmt: time.format };
1740
- const split = /^(.+?)(?:\s+|T)(\d{1,2}:\d{1,2}(?::\d{1,2})?(?:\s*(?:am|pm|a|p))?)$/i.exec(text);
1740
+ const tail = /(?:\s{1,8}|T)(\d{1,2}:\d{1,2}(?::\d{1,2})?(?:\s{0,8}(?:am|pm|a|p))?)$/i.exec(text);
1741
+ const split = tail && tail.index > 0 ? [tail[0], text.slice(0, tail.index), tail[1]] : null;
1741
1742
  const dayText = split ? split[1] ?? "" : text;
1742
1743
  const day = parseDay(dayText);
1743
1744
  if (!day) return void 0;
@@ -1782,10 +1783,10 @@ function parseNumberInput(text) {
1782
1783
  s = s.slice(lead[0].length);
1783
1784
  if (!sign2()) return void 0;
1784
1785
  } else {
1785
- const trail = /\s*([€£])$/.exec(s);
1786
- if (trail) {
1787
- currency = trail[1] ?? "";
1788
- s = s.slice(0, -trail[0].length);
1786
+ const last = s.slice(-1);
1787
+ if (last === "\u20AC" || last === "\xA3") {
1788
+ currency = last;
1789
+ s = s.slice(0, -1).trimEnd();
1789
1790
  }
1790
1791
  }
1791
1792
  let percent = false;
@@ -12879,7 +12880,7 @@ function shiftFormulaInBand(formula, formulaSheet, sheet, shift2, band) {
12879
12880
 
12880
12881
  // xlsx/edit/context.ts
12881
12882
  function sheetAt(workbook, index2) {
12882
- const sheet = workbook.sheets[index2];
12883
+ const sheet = Number.isInteger(index2) ? workbook.sheets[index2] : void 0;
12883
12884
  if (!sheet) throw new RangeError(`No sheet at index ${index2}`);
12884
12885
  return sheet;
12885
12886
  }
@@ -14024,7 +14025,9 @@ function decodeEntities(text) {
14024
14025
  }
14025
14026
  function parseAttributes(text) {
14026
14027
  const attrs = /* @__PURE__ */ new Map();
14027
- for (const m of text.matchAll(/([\w:-]+)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>]+))/g))
14028
+ for (const m of text.matchAll(
14029
+ /([\w:-]{1,64})\s{0,16}=\s{0,16}(?:"([^"]*)"|'([^']*)'|([^\s>]+))/g
14030
+ ))
14028
14031
  attrs.set((m[1] ?? "").toLowerCase(), decodeEntities(m[2] ?? m[3] ?? m[4] ?? ""));
14029
14032
  return attrs;
14030
14033
  }
@@ -14079,9 +14082,56 @@ function stylePatchFromCss(css, inner2) {
14079
14082
  if (numFmt) patch.numFmt = decodeNumberFormat(numFmt);
14080
14083
  return patch;
14081
14084
  }
14085
+ function removeComments(text) {
14086
+ let out = "";
14087
+ let from = 0;
14088
+ for (; ; ) {
14089
+ const open = text.indexOf("<!--", from);
14090
+ const close = open < 0 ? -1 : text.indexOf("-->", open + 4);
14091
+ if (close < 0) return out + text.slice(from);
14092
+ out += text.slice(from, open);
14093
+ from = close + 3;
14094
+ }
14095
+ }
14096
+ function removeTags(text) {
14097
+ let out = "";
14098
+ let i = 0;
14099
+ while (i < text.length) {
14100
+ const ch = text[i];
14101
+ if (ch === "<") {
14102
+ let j = i + 1;
14103
+ while (j < text.length && text[j] !== "<" && text[j] !== ">") j++;
14104
+ if (text[j] === ">") {
14105
+ i = j + 1;
14106
+ continue;
14107
+ }
14108
+ }
14109
+ out += ch;
14110
+ i++;
14111
+ }
14112
+ return out;
14113
+ }
14114
+ function stripTags(markup) {
14115
+ let previous;
14116
+ let text = markup;
14117
+ do {
14118
+ previous = text;
14119
+ text = removeTags(removeComments(text));
14120
+ } while (text !== previous);
14121
+ return removeAll(text, ["<!--", "-->"]);
14122
+ }
14123
+ function removeAll(text, tokens) {
14124
+ let current = text;
14125
+ let previous;
14126
+ do {
14127
+ previous = current;
14128
+ for (const token of tokens) current = current.split(token).join("");
14129
+ } while (current !== previous);
14130
+ return current;
14131
+ }
14082
14132
  function cellText(inner2) {
14083
14133
  return decodeEntities(
14084
- inner2.replace(/<!--[\s\S]*?-->/g, "").replace(/<br\s*\/?>/gi, "\0").replace(/<[^>]+>/g, "").replace(/\s+/g, " ").replace(/ ?\u0000 ?/g, "\n")
14134
+ stripTags(inner2.replace(/<br\s*\/?>/gi, "\0")).replace(/\s+/g, " ").replace(/ ?\u0000 ?/g, "\n")
14085
14135
  ).replace(/ /g, " ").trim();
14086
14136
  }
14087
14137
  function parseHtmlTable(html, base) {
@@ -14089,7 +14139,9 @@ function parseHtmlTable(html, base) {
14089
14139
  if (table2 === void 0) return void 0;
14090
14140
  const classes = /* @__PURE__ */ new Map();
14091
14141
  for (const block of html.matchAll(/<style\b[^>]*>([\s\S]*?)<\/style>/gi))
14092
- for (const rule of (block[1] ?? "").replace(/<!--|-->/g, "").matchAll(/\.([\w-]+)\s*\{([^}]*)\}/g))
14142
+ for (const rule of removeAll(block[1] ?? "", ["<!--", "-->"]).matchAll(
14143
+ /\.([\w-]+)\s*\{([^}]*)\}/g
14144
+ ))
14093
14145
  classes.set(rule[1] ?? "", rule[2] ?? "");
14094
14146
  const grid6 = [];
14095
14147
  const taken = /* @__PURE__ */ new Set();
@@ -14259,7 +14311,15 @@ function linearTrend(values2) {
14259
14311
  const slope = den ? num2 / den : 0;
14260
14312
  return (k) => Number((meanY + slope * (k - meanX)).toPrecision(15));
14261
14313
  }
14262
- var TEXT_NUMBER = /^(.*?)(\d+)(\D*)$/;
14314
+ var isDigit3 = (ch) => ch !== void 0 && ch >= "0" && ch <= "9";
14315
+ function matchTextNumber(text) {
14316
+ let end = text.length;
14317
+ while (end > 0 && !isDigit3(text[end - 1])) end--;
14318
+ if (end === 0) return null;
14319
+ let start = end;
14320
+ while (start > 0 && isDigit3(text[start - 1])) start--;
14321
+ return [text, text.slice(0, start), text.slice(start, end), text.slice(end)];
14322
+ }
14263
14323
  var QUARTER = /^(q|qtr|quarter)(\s?)([1-4])$/i;
14264
14324
  function textSeries(texts) {
14265
14325
  const lists = texts.map(listMatch);
@@ -14281,7 +14341,7 @@ function textSeries(texts) {
14281
14341
  const step = q1 ? mod(Number(q1[3]) - 1 - start, 4) || 1 : 1;
14282
14342
  return (k) => ({ kind: "value", value: `${q0[1]}${q0[2]}${mod(start + step * k, 4) + 1}` });
14283
14343
  }
14284
- const parts = texts.map((t) => TEXT_NUMBER.exec(t));
14344
+ const parts = texts.map(matchTextNumber);
14285
14345
  const p0 = parts[0];
14286
14346
  if (!p0 || !parts.every((p) => p && p[1] === p0[1] && p[3] === p0[3])) return void 0;
14287
14347
  const numbers3 = parts.map((p) => Number(p?.[2]));
@@ -14878,7 +14938,7 @@ function setAutoFilter(ctx, s, range2) {
14878
14938
  const old = sheet.autoFilter;
14879
14939
  if (old) applyFilter(ctx, sheet, { range: old.range });
14880
14940
  if (r) sheet.autoFilter = { range: r };
14881
- else delete sheet.autoFilter;
14941
+ else Reflect.deleteProperty(sheet, "autoFilter");
14882
14942
  },
14883
14943
  { sheet: s, structural: true }
14884
14944
  );
@@ -15718,9 +15778,10 @@ function updateChart(ctx, s, index2, patch) {
15718
15778
  () => {
15719
15779
  const live = sheet.drawings[index2];
15720
15780
  for (const [key, value2] of Object.entries(structuredClone(patch))) {
15721
- if (key === "kind" || key === "partName") continue;
15722
- if (value2 === void 0) delete live[key];
15723
- else live[key] = value2;
15781
+ if (key === "kind" || key === "partName" || key === "__proto__") continue;
15782
+ if (key === "constructor" || key === "prototype") continue;
15783
+ if (value2 === void 0) Reflect.deleteProperty(live, key);
15784
+ else Reflect.set(live, key, value2);
15724
15785
  }
15725
15786
  },
15726
15787
  { sheet: s }
@@ -16229,7 +16290,7 @@ function setDefaultColumnWidth(ctx, s, width) {
16229
16290
  "format",
16230
16291
  [{ kind: "sheet", sheet: s }],
16231
16292
  () => {
16232
- if (width === void 0) delete sheet.defaultColWidth;
16293
+ if (width === void 0) Reflect.deleteProperty(sheet, "defaultColWidth");
16233
16294
  else sheet.defaultColWidth = width;
16234
16295
  },
16235
16296
  { sheet: s, structural: true }
@@ -16251,7 +16312,7 @@ function setPageSetup(ctx, s, patch) {
16251
16312
  () => {
16252
16313
  const next = compact2({ ...sheet.pageSetup, ...structuredClone(patch) });
16253
16314
  if (Object.keys(next).length) sheet.pageSetup = next;
16254
- else delete sheet.pageSetup;
16315
+ else Reflect.deleteProperty(sheet, "pageSetup");
16255
16316
  },
16256
16317
  { sheet: s }
16257
16318
  );
@@ -16267,7 +16328,7 @@ function setPrintOptions(ctx, s, patch) {
16267
16328
  for (const key of Object.keys(next))
16268
16329
  if (!next[key]) delete next[key];
16269
16330
  if (Object.keys(next).length) sheet.printOptions = next;
16270
- else delete sheet.printOptions;
16331
+ else Reflect.deleteProperty(sheet, "printOptions");
16271
16332
  sheet.preserved.delete("printOptions");
16272
16333
  },
16273
16334
  { sheet: s }
@@ -16873,7 +16934,7 @@ function setSheetProtection(ctx, s, protection, password) {
16873
16934
  [{ kind: "sheet", sheet: s }],
16874
16935
  () => {
16875
16936
  if (!protection) {
16876
- delete sheet.protection;
16937
+ Reflect.deleteProperty(sheet, "protection");
16877
16938
  return;
16878
16939
  }
16879
16940
  const next = structuredClone(protection);
@@ -17875,7 +17936,7 @@ function setTabColor(ctx, index2, color) {
17875
17936
  [{ kind: "sheet", sheet: index2 }],
17876
17937
  () => {
17877
17938
  if (color) sheet.tabColor = { ...color };
17878
- else delete sheet.tabColor;
17939
+ else Reflect.deleteProperty(sheet, "tabColor");
17879
17940
  },
17880
17941
  { sheet: index2 }
17881
17942
  );
@@ -27023,12 +27084,12 @@ function diagonalSvg(b, w, h) {
27023
27084
  if (!b.diagonalUp && !b.diagonalDown) return void 0;
27024
27085
  const line2 = (edge, x1, y1, x2, y2) => {
27025
27086
  const dash = edge.style === "dashed" ? ' stroke-dasharray="4 2"' : edge.style === "dotted" ? ' stroke-dasharray="1 2"' : "";
27026
- return `<line x1="${x1}" y1="${y1}" x2="${x2}" y2="${y2}" stroke="${edge.color}" stroke-width="${edge.widthPx}"${dash}/>`;
27087
+ return `<line x1="${x1}" y1="${y1}" x2="${x2}" y2="${y2}" stroke="${edge.color.replace(/[^#\w(),.%\s-]/gu, "")}" stroke-width="${Number(edge.widthPx)}"${dash}/>`;
27027
27088
  };
27028
27089
  let body2 = "";
27029
27090
  if (b.diagonalDown) body2 += line2(b.diagonalDown, 0, 0, w, h);
27030
27091
  if (b.diagonalUp) body2 += line2(b.diagonalUp, 0, h, w, 0);
27031
- return `<svg xmlns="http://www.w3.org/2000/svg" width="${w}" height="${h}" viewBox="0 0 ${w} ${h}">${body2}</svg>`;
27092
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="${Number(w)}" height="${Number(h)}" viewBox="0 0 ${Number(w)} ${Number(h)}">${body2}</svg>`;
27032
27093
  }
27033
27094
  function justify(hAlign) {
27034
27095
  if (hAlign === "right") return "flex-end";
@@ -27421,8 +27482,8 @@ var YELLOW = "#f2b600";
27421
27482
  var GREEN = "#3f9b3f";
27422
27483
  var GRAY = "#7f7f7f";
27423
27484
  var BLACK2 = "#404040";
27424
- var svg = (body2, size) => `<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 16 16" aria-hidden="true">${body2}</svg>`;
27425
- var arrow = (color, deg) => `<g transform="rotate(${deg} 8 8)"><path d="M8 1.5 14 8h-3.5v6.5h-5V8H2z" fill="${color}"/></g>`;
27485
+ var svg = (body2, size) => `<svg xmlns="http://www.w3.org/2000/svg" width="${Number(size)}" height="${Number(size)}" viewBox="0 0 16 16" aria-hidden="true">${body2}</svg>`;
27486
+ var arrow = (color, deg) => `<g transform="rotate(${Number(deg)} 8 8)"><path d="M8 1.5 14 8h-3.5v6.5h-5V8H2z" fill="${color}"/></g>`;
27426
27487
  var circle = (color, rim = false) => `<circle cx="8" cy="8" r="${rim ? 5.5 : 6.5}" fill="${color}"${rim ? ' stroke="#333" stroke-width="2.4"' : ""}/>`;
27427
27488
  var flag = (color) => `<path d="M3 1.5h1.3v13H3z" fill="#555"/><path d="M4.3 2h9l-2.6 3.5 2.6 3.5h-9z" fill="${color}"/>`;
27428
27489
  var symbol = (kind, color, circled) => {
@@ -27585,7 +27646,7 @@ var SheetSelections = class {
27585
27646
  };
27586
27647
  var isWholeRows2 = (range2) => range2.start.col === 0 && range2.end.col === MAX_COL;
27587
27648
  var isWholeCols = (range2) => range2.start.row === 0 && range2.end.row === MAX_ROW;
27588
- var columnPart = (address2) => formatAddress(address2).replace(/\d+$/u, "");
27649
+ var columnPart = (address2) => formatAddress(address2).replace(/\d{1,10}$/u, "");
27589
27650
  function rangeRef(range2) {
27590
27651
  if (isWholeRows2(range2) && isWholeCols(range2)) return `1:${MAX_ROW + 1}`;
27591
27652
  if (isWholeRows2(range2)) return `${range2.start.row + 1}:${range2.end.row + 1}`;
@@ -1735,7 +1735,8 @@ function parseDay(text) {
1735
1735
  function parseDateTimeInput(text, date1904) {
1736
1736
  const time = parseTime(text);
1737
1737
  if (time) return { value: time.fraction, numFmt: time.format };
1738
- const split = /^(.+?)(?:\s+|T)(\d{1,2}:\d{1,2}(?::\d{1,2})?(?:\s*(?:am|pm|a|p))?)$/i.exec(text);
1738
+ const tail = /(?:\s{1,8}|T)(\d{1,2}:\d{1,2}(?::\d{1,2})?(?:\s{0,8}(?:am|pm|a|p))?)$/i.exec(text);
1739
+ const split = tail && tail.index > 0 ? [tail[0], text.slice(0, tail.index), tail[1]] : null;
1739
1740
  const dayText = split ? split[1] ?? "" : text;
1740
1741
  const day = parseDay(dayText);
1741
1742
  if (!day) return void 0;
@@ -1780,10 +1781,10 @@ function parseNumberInput(text) {
1780
1781
  s = s.slice(lead[0].length);
1781
1782
  if (!sign2()) return void 0;
1782
1783
  } else {
1783
- const trail = /\s*([€£])$/.exec(s);
1784
- if (trail) {
1785
- currency = trail[1] ?? "";
1786
- s = s.slice(0, -trail[0].length);
1784
+ const last = s.slice(-1);
1785
+ if (last === "\u20AC" || last === "\xA3") {
1786
+ currency = last;
1787
+ s = s.slice(0, -1).trimEnd();
1787
1788
  }
1788
1789
  }
1789
1790
  let percent = false;
@@ -12877,7 +12878,7 @@ function shiftFormulaInBand(formula, formulaSheet, sheet, shift2, band) {
12877
12878
 
12878
12879
  // xlsx/edit/context.ts
12879
12880
  function sheetAt(workbook, index2) {
12880
- const sheet = workbook.sheets[index2];
12881
+ const sheet = Number.isInteger(index2) ? workbook.sheets[index2] : void 0;
12881
12882
  if (!sheet) throw new RangeError(`No sheet at index ${index2}`);
12882
12883
  return sheet;
12883
12884
  }
@@ -14022,7 +14023,9 @@ function decodeEntities(text) {
14022
14023
  }
14023
14024
  function parseAttributes(text) {
14024
14025
  const attrs = /* @__PURE__ */ new Map();
14025
- for (const m of text.matchAll(/([\w:-]+)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>]+))/g))
14026
+ for (const m of text.matchAll(
14027
+ /([\w:-]{1,64})\s{0,16}=\s{0,16}(?:"([^"]*)"|'([^']*)'|([^\s>]+))/g
14028
+ ))
14026
14029
  attrs.set((m[1] ?? "").toLowerCase(), decodeEntities(m[2] ?? m[3] ?? m[4] ?? ""));
14027
14030
  return attrs;
14028
14031
  }
@@ -14077,9 +14080,56 @@ function stylePatchFromCss(css, inner2) {
14077
14080
  if (numFmt) patch.numFmt = decodeNumberFormat(numFmt);
14078
14081
  return patch;
14079
14082
  }
14083
+ function removeComments(text) {
14084
+ let out = "";
14085
+ let from = 0;
14086
+ for (; ; ) {
14087
+ const open = text.indexOf("<!--", from);
14088
+ const close = open < 0 ? -1 : text.indexOf("-->", open + 4);
14089
+ if (close < 0) return out + text.slice(from);
14090
+ out += text.slice(from, open);
14091
+ from = close + 3;
14092
+ }
14093
+ }
14094
+ function removeTags(text) {
14095
+ let out = "";
14096
+ let i = 0;
14097
+ while (i < text.length) {
14098
+ const ch = text[i];
14099
+ if (ch === "<") {
14100
+ let j = i + 1;
14101
+ while (j < text.length && text[j] !== "<" && text[j] !== ">") j++;
14102
+ if (text[j] === ">") {
14103
+ i = j + 1;
14104
+ continue;
14105
+ }
14106
+ }
14107
+ out += ch;
14108
+ i++;
14109
+ }
14110
+ return out;
14111
+ }
14112
+ function stripTags(markup) {
14113
+ let previous;
14114
+ let text = markup;
14115
+ do {
14116
+ previous = text;
14117
+ text = removeTags(removeComments(text));
14118
+ } while (text !== previous);
14119
+ return removeAll(text, ["<!--", "-->"]);
14120
+ }
14121
+ function removeAll(text, tokens) {
14122
+ let current = text;
14123
+ let previous;
14124
+ do {
14125
+ previous = current;
14126
+ for (const token of tokens) current = current.split(token).join("");
14127
+ } while (current !== previous);
14128
+ return current;
14129
+ }
14080
14130
  function cellText(inner2) {
14081
14131
  return decodeEntities(
14082
- inner2.replace(/<!--[\s\S]*?-->/g, "").replace(/<br\s*\/?>/gi, "\0").replace(/<[^>]+>/g, "").replace(/\s+/g, " ").replace(/ ?\u0000 ?/g, "\n")
14132
+ stripTags(inner2.replace(/<br\s*\/?>/gi, "\0")).replace(/\s+/g, " ").replace(/ ?\u0000 ?/g, "\n")
14083
14133
  ).replace(/ /g, " ").trim();
14084
14134
  }
14085
14135
  function parseHtmlTable(html, base) {
@@ -14087,7 +14137,9 @@ function parseHtmlTable(html, base) {
14087
14137
  if (table2 === void 0) return void 0;
14088
14138
  const classes = /* @__PURE__ */ new Map();
14089
14139
  for (const block of html.matchAll(/<style\b[^>]*>([\s\S]*?)<\/style>/gi))
14090
- for (const rule of (block[1] ?? "").replace(/<!--|-->/g, "").matchAll(/\.([\w-]+)\s*\{([^}]*)\}/g))
14140
+ for (const rule of removeAll(block[1] ?? "", ["<!--", "-->"]).matchAll(
14141
+ /\.([\w-]+)\s*\{([^}]*)\}/g
14142
+ ))
14091
14143
  classes.set(rule[1] ?? "", rule[2] ?? "");
14092
14144
  const grid6 = [];
14093
14145
  const taken = /* @__PURE__ */ new Set();
@@ -14257,7 +14309,15 @@ function linearTrend(values2) {
14257
14309
  const slope = den ? num2 / den : 0;
14258
14310
  return (k) => Number((meanY + slope * (k - meanX)).toPrecision(15));
14259
14311
  }
14260
- var TEXT_NUMBER = /^(.*?)(\d+)(\D*)$/;
14312
+ var isDigit3 = (ch) => ch !== void 0 && ch >= "0" && ch <= "9";
14313
+ function matchTextNumber(text) {
14314
+ let end = text.length;
14315
+ while (end > 0 && !isDigit3(text[end - 1])) end--;
14316
+ if (end === 0) return null;
14317
+ let start = end;
14318
+ while (start > 0 && isDigit3(text[start - 1])) start--;
14319
+ return [text, text.slice(0, start), text.slice(start, end), text.slice(end)];
14320
+ }
14261
14321
  var QUARTER = /^(q|qtr|quarter)(\s?)([1-4])$/i;
14262
14322
  function textSeries(texts) {
14263
14323
  const lists = texts.map(listMatch);
@@ -14279,7 +14339,7 @@ function textSeries(texts) {
14279
14339
  const step = q1 ? mod(Number(q1[3]) - 1 - start, 4) || 1 : 1;
14280
14340
  return (k) => ({ kind: "value", value: `${q0[1]}${q0[2]}${mod(start + step * k, 4) + 1}` });
14281
14341
  }
14282
- const parts = texts.map((t) => TEXT_NUMBER.exec(t));
14342
+ const parts = texts.map(matchTextNumber);
14283
14343
  const p0 = parts[0];
14284
14344
  if (!p0 || !parts.every((p) => p && p[1] === p0[1] && p[3] === p0[3])) return void 0;
14285
14345
  const numbers3 = parts.map((p) => Number(p?.[2]));
@@ -14876,7 +14936,7 @@ function setAutoFilter(ctx, s, range2) {
14876
14936
  const old = sheet.autoFilter;
14877
14937
  if (old) applyFilter(ctx, sheet, { range: old.range });
14878
14938
  if (r) sheet.autoFilter = { range: r };
14879
- else delete sheet.autoFilter;
14939
+ else Reflect.deleteProperty(sheet, "autoFilter");
14880
14940
  },
14881
14941
  { sheet: s, structural: true }
14882
14942
  );
@@ -15716,9 +15776,10 @@ function updateChart(ctx, s, index2, patch) {
15716
15776
  () => {
15717
15777
  const live = sheet.drawings[index2];
15718
15778
  for (const [key, value2] of Object.entries(structuredClone(patch))) {
15719
- if (key === "kind" || key === "partName") continue;
15720
- if (value2 === void 0) delete live[key];
15721
- else live[key] = value2;
15779
+ if (key === "kind" || key === "partName" || key === "__proto__") continue;
15780
+ if (key === "constructor" || key === "prototype") continue;
15781
+ if (value2 === void 0) Reflect.deleteProperty(live, key);
15782
+ else Reflect.set(live, key, value2);
15722
15783
  }
15723
15784
  },
15724
15785
  { sheet: s }
@@ -16227,7 +16288,7 @@ function setDefaultColumnWidth(ctx, s, width) {
16227
16288
  "format",
16228
16289
  [{ kind: "sheet", sheet: s }],
16229
16290
  () => {
16230
- if (width === void 0) delete sheet.defaultColWidth;
16291
+ if (width === void 0) Reflect.deleteProperty(sheet, "defaultColWidth");
16231
16292
  else sheet.defaultColWidth = width;
16232
16293
  },
16233
16294
  { sheet: s, structural: true }
@@ -16249,7 +16310,7 @@ function setPageSetup(ctx, s, patch) {
16249
16310
  () => {
16250
16311
  const next = compact2({ ...sheet.pageSetup, ...structuredClone(patch) });
16251
16312
  if (Object.keys(next).length) sheet.pageSetup = next;
16252
- else delete sheet.pageSetup;
16313
+ else Reflect.deleteProperty(sheet, "pageSetup");
16253
16314
  },
16254
16315
  { sheet: s }
16255
16316
  );
@@ -16265,7 +16326,7 @@ function setPrintOptions(ctx, s, patch) {
16265
16326
  for (const key of Object.keys(next))
16266
16327
  if (!next[key]) delete next[key];
16267
16328
  if (Object.keys(next).length) sheet.printOptions = next;
16268
- else delete sheet.printOptions;
16329
+ else Reflect.deleteProperty(sheet, "printOptions");
16269
16330
  sheet.preserved.delete("printOptions");
16270
16331
  },
16271
16332
  { sheet: s }
@@ -16871,7 +16932,7 @@ function setSheetProtection(ctx, s, protection, password) {
16871
16932
  [{ kind: "sheet", sheet: s }],
16872
16933
  () => {
16873
16934
  if (!protection) {
16874
- delete sheet.protection;
16935
+ Reflect.deleteProperty(sheet, "protection");
16875
16936
  return;
16876
16937
  }
16877
16938
  const next = structuredClone(protection);
@@ -17873,7 +17934,7 @@ function setTabColor(ctx, index2, color) {
17873
17934
  [{ kind: "sheet", sheet: index2 }],
17874
17935
  () => {
17875
17936
  if (color) sheet.tabColor = { ...color };
17876
- else delete sheet.tabColor;
17937
+ else Reflect.deleteProperty(sheet, "tabColor");
17877
17938
  },
17878
17939
  { sheet: index2 }
17879
17940
  );
@@ -27021,12 +27082,12 @@ function diagonalSvg(b, w, h) {
27021
27082
  if (!b.diagonalUp && !b.diagonalDown) return void 0;
27022
27083
  const line2 = (edge, x1, y1, x2, y2) => {
27023
27084
  const dash = edge.style === "dashed" ? ' stroke-dasharray="4 2"' : edge.style === "dotted" ? ' stroke-dasharray="1 2"' : "";
27024
- return `<line x1="${x1}" y1="${y1}" x2="${x2}" y2="${y2}" stroke="${edge.color}" stroke-width="${edge.widthPx}"${dash}/>`;
27085
+ return `<line x1="${x1}" y1="${y1}" x2="${x2}" y2="${y2}" stroke="${edge.color.replace(/[^#\w(),.%\s-]/gu, "")}" stroke-width="${Number(edge.widthPx)}"${dash}/>`;
27025
27086
  };
27026
27087
  let body2 = "";
27027
27088
  if (b.diagonalDown) body2 += line2(b.diagonalDown, 0, 0, w, h);
27028
27089
  if (b.diagonalUp) body2 += line2(b.diagonalUp, 0, h, w, 0);
27029
- return `<svg xmlns="http://www.w3.org/2000/svg" width="${w}" height="${h}" viewBox="0 0 ${w} ${h}">${body2}</svg>`;
27090
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="${Number(w)}" height="${Number(h)}" viewBox="0 0 ${Number(w)} ${Number(h)}">${body2}</svg>`;
27030
27091
  }
27031
27092
  function justify(hAlign) {
27032
27093
  if (hAlign === "right") return "flex-end";
@@ -27419,8 +27480,8 @@ var YELLOW = "#f2b600";
27419
27480
  var GREEN = "#3f9b3f";
27420
27481
  var GRAY = "#7f7f7f";
27421
27482
  var BLACK2 = "#404040";
27422
- var svg = (body2, size) => `<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 16 16" aria-hidden="true">${body2}</svg>`;
27423
- var arrow = (color, deg) => `<g transform="rotate(${deg} 8 8)"><path d="M8 1.5 14 8h-3.5v6.5h-5V8H2z" fill="${color}"/></g>`;
27483
+ var svg = (body2, size) => `<svg xmlns="http://www.w3.org/2000/svg" width="${Number(size)}" height="${Number(size)}" viewBox="0 0 16 16" aria-hidden="true">${body2}</svg>`;
27484
+ var arrow = (color, deg) => `<g transform="rotate(${Number(deg)} 8 8)"><path d="M8 1.5 14 8h-3.5v6.5h-5V8H2z" fill="${color}"/></g>`;
27424
27485
  var circle = (color, rim = false) => `<circle cx="8" cy="8" r="${rim ? 5.5 : 6.5}" fill="${color}"${rim ? ' stroke="#333" stroke-width="2.4"' : ""}/>`;
27425
27486
  var flag = (color) => `<path d="M3 1.5h1.3v13H3z" fill="#555"/><path d="M4.3 2h9l-2.6 3.5 2.6 3.5h-9z" fill="${color}"/>`;
27426
27487
  var symbol = (kind, color, circled) => {
@@ -27583,7 +27644,7 @@ var SheetSelections = class {
27583
27644
  };
27584
27645
  var isWholeRows2 = (range2) => range2.start.col === 0 && range2.end.col === MAX_COL;
27585
27646
  var isWholeCols = (range2) => range2.start.row === 0 && range2.end.row === MAX_ROW;
27586
- var columnPart = (address2) => formatAddress(address2).replace(/\d+$/u, "");
27647
+ var columnPart = (address2) => formatAddress(address2).replace(/\d{1,10}$/u, "");
27587
27648
  function rangeRef(range2) {
27588
27649
  if (isWholeRows2(range2) && isWholeCols(range2)) return `1:${MAX_ROW + 1}`;
27589
27650
  if (isWholeRows2(range2)) return `${range2.start.row + 1}:${range2.end.row + 1}`;
@@ -1 +1 @@
1
- {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../xlsx/ui/selection.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,OAAO,EAQN,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAK9D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAK9E;AAID,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,SAA+B,GAAG,cAAc,CA+B7F;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuC;IAE7D,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAEjE;IAED,oFAAoF;IACpF,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAMhE;CACD;AAED,eAAO,MAAM,WAAW,UAAW,SAAS,KAAG,OACI,CAAC;AACpD,eAAO,MAAM,WAAW,UAAW,SAAS,KAAG,OACI,CAAC;AAGpD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAKjD;AAED,sEAAsE;AACtE,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAEzD;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAEtD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,QAAQ,GACjB;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG,SAAS,CAuBrD"}
1
+ {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../xlsx/ui/selection.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,OAAO,EAQN,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAK9D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAK9E;AAID,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,SAA+B,GAAG,cAAc,CA+B7F;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuC;IAE7D,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAEjE;IAED,oFAAoF;IACpF,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAMhE;CACD;AAED,eAAO,MAAM,WAAW,UAAW,SAAS,KAAG,OACI,CAAC;AACpD,eAAO,MAAM,WAAW,UAAW,SAAS,KAAG,OACI,CAAC;AAIpD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAKjD;AAED,sEAAsE;AACtE,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAEzD;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAEtD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,QAAQ,GACjB;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG,SAAS,CAuBrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"drawing.d.ts","sourceRoot":"","sources":["../../../xlsx/write/drawing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA8B,aAAa,EAAe,MAAM,aAAa,CAAC;AAI1F,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG1E,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMvE;AAsFD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,YAAa,SAAS,aAAa,EAAE,KAAG,OAAO,EAK3E,CAAC;AAEH;;;GAGG;AACH,wBAAgB,YAAY,CAC3B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,aAAa,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CAwET"}
1
+ {"version":3,"file":"drawing.d.ts","sourceRoot":"","sources":["../../../xlsx/write/drawing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA8B,aAAa,EAAe,MAAM,aAAa,CAAC;AAI1F,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG1E,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMvE;AAsFD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,YAAa,SAAS,aAAa,EAAE,KAAG,OAAO,EAK3E,CAAC;AAEH;;;GAGG;AACH,wBAAgB,YAAY,CAC3B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,aAAa,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CA2ET"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ooxml-core",
3
- "version": "0.21.2",
3
+ "version": "0.22.1",
4
4
  "description": "Shared OOXML logic for the Word, PowerPoint and Excel viewers: everything except the UI",
5
5
  "keywords": [
6
6
  "charts",
@@ -221,7 +221,7 @@
221
221
  },
222
222
  "dependencies": {
223
223
  "@xmldom/xmldom": "^0.9.12",
224
- "emf-converter": "^4.8.19",
224
+ "emf-converter": "^4.8.21",
225
225
  "fast-xml-parser": "^5.11.2",
226
226
  "jszip": "^3.10.2",
227
227
  "lib0": "^0.2.119",