@rowsncolumns/toolkit 24.5.3 → 24.5.5

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 (79) hide show
  1. package/dist/cjs/autofilter-condition.js +6 -2
  2. package/dist/cjs/excel-parser/helpers.d.ts +9 -1
  3. package/dist/cjs/excel-parser/helpers.d.ts.map +1 -1
  4. package/dist/cjs/excel-parser/helpers.js +70 -16
  5. package/dist/cjs/excel-parser/interface.d.ts +9 -1
  6. package/dist/cjs/excel-parser/interface.d.ts.map +1 -1
  7. package/dist/cjs/excel-parser/plugins/xlsx/conditional-formatting.d.ts.map +1 -1
  8. package/dist/cjs/excel-parser/plugins/xlsx/conditional-formatting.js +61 -6
  9. package/dist/cjs/excel-parser/plugins/xlsx/data-validations.d.ts.map +1 -1
  10. package/dist/cjs/excel-parser/plugins/xlsx/data-validations.js +13 -2
  11. package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts +8 -1
  12. package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
  13. package/dist/cjs/excel-parser/plugins/xlsx/index.js +159 -26
  14. package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts +17 -2
  15. package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts.map +1 -1
  16. package/dist/cjs/excel-parser/plugins/xlsx/styles.js +25 -14
  17. package/dist/cjs/excel-parser/types.d.ts +5 -1
  18. package/dist/cjs/excel-parser/types.d.ts.map +1 -1
  19. package/dist/cjs/excel-parser/workbook.d.ts +1 -0
  20. package/dist/cjs/excel-parser/workbook.d.ts.map +1 -1
  21. package/dist/cjs/excel-parser/workbook.js +4 -0
  22. package/dist/cjs/excel-parser/worker.js +3 -0
  23. package/dist/cjs/exporter/xlsx/chart-builder.d.ts.map +1 -1
  24. package/dist/cjs/exporter/xlsx/chart-builder.js +167 -53
  25. package/dist/cjs/exporter/xlsx/future-functions.d.ts +6 -7
  26. package/dist/cjs/exporter/xlsx/future-functions.d.ts.map +1 -1
  27. package/dist/cjs/exporter/xlsx/future-functions.js +5 -261
  28. package/dist/cjs/exporter/xlsx/style-builder.d.ts.map +1 -1
  29. package/dist/cjs/exporter/xlsx/style-builder.js +62 -19
  30. package/dist/cjs/exporter/xlsx/xlsx-export.d.ts +10 -2
  31. package/dist/cjs/exporter/xlsx/xlsx-export.d.ts.map +1 -1
  32. package/dist/cjs/exporter/xlsx/xlsx-export.js +409 -160
  33. package/dist/cjs/helpers/excel-formula-prefixes.d.ts +51 -0
  34. package/dist/cjs/helpers/excel-formula-prefixes.d.ts.map +1 -0
  35. package/dist/cjs/helpers/excel-formula-prefixes.js +548 -0
  36. package/dist/cjs/helpers.d.ts +2 -0
  37. package/dist/cjs/helpers.d.ts.map +1 -1
  38. package/dist/cjs/helpers.js +21 -12
  39. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  40. package/dist/esm/autofilter-condition.js +6 -2
  41. package/dist/esm/excel-parser/helpers.d.ts +9 -1
  42. package/dist/esm/excel-parser/helpers.d.ts.map +1 -1
  43. package/dist/esm/excel-parser/helpers.js +65 -3
  44. package/dist/esm/excel-parser/interface.d.ts +9 -1
  45. package/dist/esm/excel-parser/interface.d.ts.map +1 -1
  46. package/dist/esm/excel-parser/plugins/xlsx/conditional-formatting.d.ts.map +1 -1
  47. package/dist/esm/excel-parser/plugins/xlsx/conditional-formatting.js +42 -1
  48. package/dist/esm/excel-parser/plugins/xlsx/data-validations.d.ts.map +1 -1
  49. package/dist/esm/excel-parser/plugins/xlsx/data-validations.js +11 -2
  50. package/dist/esm/excel-parser/plugins/xlsx/index.d.ts +8 -1
  51. package/dist/esm/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
  52. package/dist/esm/excel-parser/plugins/xlsx/index.js +109 -4
  53. package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts +17 -2
  54. package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts.map +1 -1
  55. package/dist/esm/excel-parser/plugins/xlsx/styles.js +20 -8
  56. package/dist/esm/excel-parser/types.d.ts +5 -1
  57. package/dist/esm/excel-parser/types.d.ts.map +1 -1
  58. package/dist/esm/excel-parser/workbook.d.ts +1 -0
  59. package/dist/esm/excel-parser/workbook.d.ts.map +1 -1
  60. package/dist/esm/excel-parser/workbook.js +3 -0
  61. package/dist/esm/excel-parser/worker.js +3 -0
  62. package/dist/esm/exporter/xlsx/chart-builder.d.ts.map +1 -1
  63. package/dist/esm/exporter/xlsx/chart-builder.js +80 -0
  64. package/dist/esm/exporter/xlsx/future-functions.d.ts +6 -7
  65. package/dist/esm/exporter/xlsx/future-functions.d.ts.map +1 -1
  66. package/dist/esm/exporter/xlsx/future-functions.js +5 -261
  67. package/dist/esm/exporter/xlsx/style-builder.d.ts.map +1 -1
  68. package/dist/esm/exporter/xlsx/style-builder.js +56 -18
  69. package/dist/esm/exporter/xlsx/xlsx-export.d.ts +10 -2
  70. package/dist/esm/exporter/xlsx/xlsx-export.d.ts.map +1 -1
  71. package/dist/esm/exporter/xlsx/xlsx-export.js +343 -108
  72. package/dist/esm/helpers/excel-formula-prefixes.d.ts +51 -0
  73. package/dist/esm/helpers/excel-formula-prefixes.d.ts.map +1 -0
  74. package/dist/esm/helpers/excel-formula-prefixes.js +531 -0
  75. package/dist/esm/helpers.d.ts +2 -0
  76. package/dist/esm/helpers.d.ts.map +1 -1
  77. package/dist/esm/helpers.js +23 -12
  78. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  79. package/package.json +4 -4
@@ -185,6 +185,10 @@ var WorkBook = /** @class */ (function () {
185
185
  WorkBook.prototype.getIterativeCalculationOptions = function () {
186
186
  return this.plugin.getIterativeCalculationOptions();
187
187
  };
188
+ WorkBook.prototype.getWorkbookProtection = function () {
189
+ var _a, _b;
190
+ return (_b = (_a = this.plugin).getWorkbookProtection) === null || _b === void 0 ? void 0 : _b.call(_a);
191
+ };
188
192
  WorkBook.prototype.getUse1904Epoch = function () {
189
193
  return this.plugin.getUse1904Epoch();
190
194
  };
@@ -239,6 +239,7 @@ var postOpenWorkbookComplete = function (s) { return __awaiter(void 0, void 0, v
239
239
  _c.namedRanges = s.workbook.getNamedRanges(),
240
240
  _c.requiresRecalc = s.workbook.requiresRecalc(),
241
241
  _c.iterativeCalculationOptions = s.workbook.getIterativeCalculationOptions(),
242
+ _c.workbookProtection = s.workbook.getWorkbookProtection(),
242
243
  _c.use1904 = s.workbook.getUse1904Epoch(),
243
244
  _c)]);
244
245
  return [2 /*return*/];
@@ -737,6 +738,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
737
738
  responseType: ResponseType.PARSE_EXCEL_SUCCESS,
738
739
  requiresRecalc: workbook.requiresRecalc(),
739
740
  iterativeCalculationOptions: workbook.getIterativeCalculationOptions(),
741
+ workbookProtection: workbook.getWorkbookProtection(),
740
742
  use1904: workbook.getUse1904Epoch(),
741
743
  });
742
744
  // Pass theme back
@@ -1091,6 +1093,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
1091
1093
  responseType: ResponseType.PARSE_EXCEL_SUCCESS,
1092
1094
  requiresRecalc: workbook.requiresRecalc(),
1093
1095
  iterativeCalculationOptions: workbook.getIterativeCalculationOptions(),
1096
+ workbookProtection: workbook.getWorkbookProtection(),
1094
1097
  });
1095
1098
  self.postMessage({
1096
1099
  responseType: ResponseType.GET_THEME_SUCCESS,
@@ -1 +1 @@
1
- {"version":3,"file":"chart-builder.d.ts","sourceRoot":"","sources":["../../../../exporter/xlsx/chart-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,aAAa,EAEd,MAAM,2BAA2B,CAAC;AA63CnC;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,YAAY,EAAE,MAAM,GAAG,MAAM,KAC1B,MAAM,GAAG,SAAS,CAAC;AAExB,eAAO,MAAM,aAAa,GACxB,OAAO,aAAa,EACpB,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,yBAAyB,sBAAsB,KAC9C,MAAM,GAAG,SAqqBX,CAAC"}
1
+ {"version":3,"file":"chart-builder.d.ts","sourceRoot":"","sources":["../../../../exporter/xlsx/chart-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,aAAa,EAEd,MAAM,2BAA2B,CAAC;AA63CnC;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,YAAY,EAAE,MAAM,GAAG,MAAM,KAC1B,MAAM,GAAG,SAAS,CAAC;AAExB,eAAO,MAAM,aAAa,GACxB,OAAO,aAAa,EACpB,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,yBAAyB,sBAAsB,KAC9C,MAAM,GAAG,SAwqBX,CAAC"}
@@ -1237,7 +1237,7 @@ var resolvePaletteIntoSeries = function (chart) {
1237
1237
  };
1238
1238
  export var buildChartXml = function (input, sheetNameById, resolvePivotSourceName) {
1239
1239
  var e_9, _a, e_10, _b, e_11, _c;
1240
- var _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10;
1240
+ var _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12;
1241
1241
  var chart = resolvePaletteIntoSeries(input);
1242
1242
  var series = (_e = (_d = chart.spec) === null || _d === void 0 ? void 0 : _d.series) !== null && _e !== void 0 ? _e : [];
1243
1243
  if (!series.length)
@@ -1287,7 +1287,7 @@ export var buildChartXml = function (input, sheetNameById, resolvePivotSourceNam
1287
1287
  var comboGroups = [];
1288
1288
  try {
1289
1289
  for (var groups_4 = __values(groups), groups_4_1 = groups_4.next(); !groups_4_1.done; groups_4_1 = groups_4.next()) {
1290
- var _11 = __read(groups_4_1.value, 2), groupType = _11[0], groupSeries = _11[1];
1290
+ var _13 = __read(groups_4_1.value, 2), groupType = _13[0], groupSeries = _13[1];
1291
1291
  if (groupType === "bar" || groupType === "column") {
1292
1292
  var barChartNode = {
1293
1293
  "c:barDir": { a$: { val: groupType === "bar" ? "bar" : "col" } },
@@ -1298,7 +1298,7 @@ export var buildChartXml = function (input, sheetNameById, resolvePivotSourceNam
1298
1298
  "c:axId": axisIds,
1299
1299
  };
1300
1300
  for (var i = 0; i < groupSeries.length; i++) {
1301
- var _12 = groupSeries[i], index = _12.index, ref = _12.ref, data = _12.data;
1301
+ var _14 = groupSeries[i], index = _14.index, ref = _14.ref, data = _14.data;
1302
1302
  var seriesNode = buildBarSeriesNode(index, ref, data, (_q = seriesCatRefs[index]) !== null && _q !== void 0 ? _q : domainRef, sheetName, i === 0);
1303
1303
  barChartNode["c:ser"].push(seriesNode);
1304
1304
  }
@@ -1325,7 +1325,7 @@ export var buildChartXml = function (input, sheetNameById, resolvePivotSourceNam
1325
1325
  };
1326
1326
  try {
1327
1327
  for (var groupSeries_1 = (e_10 = void 0, __values(groupSeries)), groupSeries_1_1 = groupSeries_1.next(); !groupSeries_1_1.done; groupSeries_1_1 = groupSeries_1.next()) {
1328
- var _13 = groupSeries_1_1.value, index = _13.index, ref = _13.ref, data = _13.data;
1328
+ var _15 = groupSeries_1_1.value, index = _15.index, ref = _15.ref, data = _15.data;
1329
1329
  var seriesNode = buildLineSeriesNode(index, ref, data, (_r = seriesCatRefs[index]) !== null && _r !== void 0 ? _r : domainRef, sheetName, smooth, showMarkers);
1330
1330
  lineChartNode["c:ser"].push(seriesNode);
1331
1331
  }
@@ -1349,7 +1349,7 @@ export var buildChartXml = function (input, sheetNameById, resolvePivotSourceNam
1349
1349
  };
1350
1350
  try {
1351
1351
  for (var groupSeries_2 = (e_11 = void 0, __values(groupSeries)), groupSeries_2_1 = groupSeries_2.next(); !groupSeries_2_1.done; groupSeries_2_1 = groupSeries_2.next()) {
1352
- var _14 = groupSeries_2_1.value, index = _14.index, ref = _14.ref, data = _14.data;
1352
+ var _16 = groupSeries_2_1.value, index = _16.index, ref = _16.ref, data = _16.data;
1353
1353
  var seriesNode = buildAreaSeriesNode(index, ref, data, (_s = seriesCatRefs[index]) !== null && _s !== void 0 ? _s : domainRef, sheetName);
1354
1354
  areaChartNode["c:ser"].push(seriesNode);
1355
1355
  }
@@ -1797,9 +1797,123 @@ export var buildChartXml = function (input, sheetNameById, resolvePivotSourceNam
1797
1797
  "a:srgbClr": { a$: { val: borderHex } },
1798
1798
  };
1799
1799
  }
1800
+ normalizeSeriesChildOrder((_12 = (_11 = chartSpace["c:chartSpace"]) === null || _11 === void 0 ? void 0 : _11["c:chart"]) === null || _12 === void 0 ? void 0 : _12["c:plotArea"]);
1800
1801
  var xml = chartBuilder.build(chartSpace);
1801
1802
  return "".concat(XML_DECLARATION).concat(xml);
1802
1803
  };
1804
+ /**
1805
+ * The `CT_*Ser` child sequence (ECMA-376 §21.2.2.15 CT_BarSer, §21.2.2.106
1806
+ * CT_LineSer, §21.2.2.161 CT_ScatterSer, §21.2.2.135 CT_PieSer, §21.2.2.11
1807
+ * CT_AreaSer, §21.2.2.22 CT_BubbleSer, merged): every series type uses a
1808
+ * subset of this list in this order. The builders above assemble a series
1809
+ * node from a template plus late additions (`c:tx`, `c:cat`, trendlines,
1810
+ * `c:extLst`, …) in whatever order the features are applied, and the XML
1811
+ * builder emits keys in insertion order — Excel tolerates the resulting
1812
+ * misorder, but LibreOffice, Google Sheets and the python chart libraries
1813
+ * validate the sequence and reject the part.
1814
+ */
1815
+ var SERIES_CHILD_ORDER = [
1816
+ "c:idx",
1817
+ "c:order",
1818
+ "c:tx",
1819
+ "c:spPr",
1820
+ "c:invertIfNegative",
1821
+ "c:pictureOptions",
1822
+ "c:marker",
1823
+ "c:explosion",
1824
+ "c:dPt",
1825
+ "c:dLbls",
1826
+ "c:trendline",
1827
+ "c:errBars",
1828
+ "c:cat",
1829
+ "c:val",
1830
+ "c:xVal",
1831
+ "c:yVal",
1832
+ "c:bubbleSize",
1833
+ "c:bubble3D",
1834
+ "c:shape",
1835
+ "c:smooth",
1836
+ "c:extLst",
1837
+ ];
1838
+ var seriesChildRank = function (key) {
1839
+ if (key === "a$")
1840
+ return -1;
1841
+ var rank = SERIES_CHILD_ORDER.indexOf(key);
1842
+ return rank === -1 ? SERIES_CHILD_ORDER.length : rank;
1843
+ };
1844
+ /** Re-key one `<c:ser>` object node into schema order (stable for ties). */
1845
+ var reorderSeriesNode = function (node) {
1846
+ var e_12, _a, e_13, _b;
1847
+ if (!node || typeof node !== "object" || Array.isArray(node))
1848
+ return;
1849
+ var keys = Object.keys(node);
1850
+ var sorted = __spreadArray([], __read(keys), false).sort(function (a, b) { return seriesChildRank(a) - seriesChildRank(b) || keys.indexOf(a) - keys.indexOf(b); });
1851
+ if (sorted.every(function (key, i) { return key === keys[i]; }))
1852
+ return;
1853
+ var entries = sorted.map(function (key) { return [key, node[key]]; });
1854
+ try {
1855
+ for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
1856
+ var key = keys_1_1.value;
1857
+ delete node[key];
1858
+ }
1859
+ }
1860
+ catch (e_12_1) { e_12 = { error: e_12_1 }; }
1861
+ finally {
1862
+ try {
1863
+ if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
1864
+ }
1865
+ finally { if (e_12) throw e_12.error; }
1866
+ }
1867
+ try {
1868
+ for (var entries_1 = __values(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) {
1869
+ var _c = __read(entries_1_1.value, 2), key = _c[0], value = _c[1];
1870
+ node[key] = value;
1871
+ }
1872
+ }
1873
+ catch (e_13_1) { e_13 = { error: e_13_1 }; }
1874
+ finally {
1875
+ try {
1876
+ if (entries_1_1 && !entries_1_1.done && (_b = entries_1.return)) _b.call(entries_1);
1877
+ }
1878
+ finally { if (e_13) throw e_13.error; }
1879
+ }
1880
+ };
1881
+ /**
1882
+ * Walk every chart-type container under `<c:plotArea>` (including the ones
1883
+ * nested in an `mc:AlternateContent` fallback) and put each `<c:ser>`'s
1884
+ * children into schema order.
1885
+ */
1886
+ var normalizeSeriesChildOrder = function (plotArea) {
1887
+ var visit = function (node, depth) {
1888
+ var e_14, _a;
1889
+ if (!node || typeof node !== "object" || depth > 4)
1890
+ return;
1891
+ if (Array.isArray(node)) {
1892
+ node.forEach(function (item) { return visit(item, depth); });
1893
+ return;
1894
+ }
1895
+ var ser = node["c:ser"];
1896
+ if (ser) {
1897
+ (Array.isArray(ser) ? ser : [ser]).forEach(reorderSeriesNode);
1898
+ }
1899
+ try {
1900
+ for (var _b = __values(Object.entries(node)), _c = _b.next(); !_c.done; _c = _b.next()) {
1901
+ var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
1902
+ if (key === "c:ser" || key === "a$" || key === "t$")
1903
+ continue;
1904
+ visit(value, depth + 1);
1905
+ }
1906
+ }
1907
+ catch (e_14_1) { e_14 = { error: e_14_1 }; }
1908
+ finally {
1909
+ try {
1910
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1911
+ }
1912
+ finally { if (e_14) throw e_14.error; }
1913
+ }
1914
+ };
1915
+ visit(plotArea, 0);
1916
+ };
1803
1917
  /** `#RRGGBB` / `RRGGBB` → uppercase `RRGGBB`; anything else is not emitted. */
1804
1918
  var toHex = function (color) {
1805
1919
  if (typeof color !== "string")
@@ -1831,20 +1945,20 @@ var normalizeThreeDToken = function (value) {
1831
1945
  };
1832
1946
  /** Copy `keys` (in order) from `source` into `target`, skipping absent ones. */
1833
1947
  var pickKeys = function (target, source, keys) {
1834
- var e_12, _a;
1948
+ var e_15, _a;
1835
1949
  try {
1836
- for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
1837
- var key = keys_1_1.value;
1950
+ for (var keys_2 = __values(keys), keys_2_1 = keys_2.next(); !keys_2_1.done; keys_2_1 = keys_2.next()) {
1951
+ var key = keys_2_1.value;
1838
1952
  if (source[key] !== undefined)
1839
1953
  target[key] = source[key];
1840
1954
  }
1841
1955
  }
1842
- catch (e_12_1) { e_12 = { error: e_12_1 }; }
1956
+ catch (e_15_1) { e_15 = { error: e_15_1 }; }
1843
1957
  finally {
1844
1958
  try {
1845
- if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
1959
+ if (keys_2_1 && !keys_2_1.done && (_a = keys_2.return)) _a.call(keys_2);
1846
1960
  }
1847
- finally { if (e_12) throw e_12.error; }
1961
+ finally { if (e_15) throw e_15.error; }
1848
1962
  }
1849
1963
  };
1850
1964
  /**
@@ -1927,7 +2041,7 @@ var buildView3DNode = function (token) {
1927
2041
  * match the emitted chart group (the 2-D chart is left untouched).
1928
2042
  */
1929
2043
  var applyThreeDChartType = function (chartNode, sourceChartType) {
1930
- var e_13, _a, e_14, _b, e_15, _c;
2044
+ var e_16, _a, e_17, _b, e_18, _c;
1931
2045
  var _d, _e, _f, _g, _h, _j;
1932
2046
  var token = normalizeThreeDToken(sourceChartType);
1933
2047
  if (!token || !chartNode)
@@ -1963,12 +2077,12 @@ var applyThreeDChartType = function (chartNode, sourceChartType) {
1963
2077
  }
1964
2078
  }
1965
2079
  }
1966
- catch (e_13_1) { e_13 = { error: e_13_1 }; }
2080
+ catch (e_16_1) { e_16 = { error: e_16_1 }; }
1967
2081
  finally {
1968
2082
  try {
1969
2083
  if (_m && !_m.done && (_a = _l.return)) _a.call(_l);
1970
2084
  }
1971
- finally { if (e_13) throw e_13.error; }
2085
+ finally { if (e_16) throw e_16.error; }
1972
2086
  }
1973
2087
  // Rebuild the chart node so `<c:view3D>` lands before `<c:plotArea>`.
1974
2088
  var rebuiltChart = {};
@@ -1983,12 +2097,12 @@ var applyThreeDChartType = function (chartNode, sourceChartType) {
1983
2097
  rebuiltChart[key] = value;
1984
2098
  }
1985
2099
  }
1986
- catch (e_14_1) { e_14 = { error: e_14_1 }; }
2100
+ catch (e_17_1) { e_17 = { error: e_17_1 }; }
1987
2101
  finally {
1988
2102
  try {
1989
2103
  if (_q && !_q.done && (_b = _p.return)) _b.call(_p);
1990
2104
  }
1991
- finally { if (e_14) throw e_14.error; }
2105
+ finally { if (e_17) throw e_17.error; }
1992
2106
  }
1993
2107
  try {
1994
2108
  for (var _s = __values(Object.keys(chartNode)), _t = _s.next(); !_t.done; _t = _s.next()) {
@@ -1996,12 +2110,12 @@ var applyThreeDChartType = function (chartNode, sourceChartType) {
1996
2110
  delete chartNode[key];
1997
2111
  }
1998
2112
  }
1999
- catch (e_15_1) { e_15 = { error: e_15_1 }; }
2113
+ catch (e_18_1) { e_18 = { error: e_18_1 }; }
2000
2114
  finally {
2001
2115
  try {
2002
2116
  if (_t && !_t.done && (_c = _s.return)) _c.call(_s);
2003
2117
  }
2004
- finally { if (e_15) throw e_15.error; }
2118
+ finally { if (e_18) throw e_18.error; }
2005
2119
  }
2006
2120
  Object.assign(chartNode, rebuiltChart);
2007
2121
  };
@@ -2055,7 +2169,7 @@ var SERIES_CONTAINER_KEYS = [
2055
2169
  * matches the order emitted by the builder, so we index by position.
2056
2170
  */
2057
2171
  var applySeriesOverlays = function (plotArea, series, sheetNameById) {
2058
- var e_16, _a, e_17, _b, e_18, _c;
2172
+ var e_19, _a, e_20, _b, e_21, _c;
2059
2173
  var _d, _e;
2060
2174
  if (!Array.isArray(series) || !series.length)
2061
2175
  return;
@@ -2071,14 +2185,14 @@ var applySeriesOverlays = function (plotArea, series, sheetNameById) {
2071
2185
  ? containers
2072
2186
  : [containers];
2073
2187
  try {
2074
- for (var containerList_1 = (e_17 = void 0, __values(containerList)), containerList_1_1 = containerList_1.next(); !containerList_1_1.done; containerList_1_1 = containerList_1.next()) {
2188
+ for (var containerList_1 = (e_20 = void 0, __values(containerList)), containerList_1_1 = containerList_1.next(); !containerList_1_1.done; containerList_1_1 = containerList_1.next()) {
2075
2189
  var container = containerList_1_1.value;
2076
2190
  var ser = container === null || container === void 0 ? void 0 : container["c:ser"];
2077
2191
  if (!ser)
2078
2192
  continue;
2079
2193
  var list = Array.isArray(ser) ? ser : [ser];
2080
2194
  try {
2081
- for (var list_1 = (e_18 = void 0, __values(list)), list_1_1 = list_1.next(); !list_1_1.done; list_1_1 = list_1.next()) {
2195
+ for (var list_1 = (e_21 = void 0, __values(list)), list_1_1 = list_1.next(); !list_1_1.done; list_1_1 = list_1.next()) {
2082
2196
  var node = list_1_1.value;
2083
2197
  // A combo chart groups its series by chart type, so the emitted
2084
2198
  // order differs from spec.series — `<c:idx>` carries the spec
@@ -2105,30 +2219,30 @@ var applySeriesOverlays = function (plotArea, series, sheetNameById) {
2105
2219
  }
2106
2220
  }
2107
2221
  }
2108
- catch (e_18_1) { e_18 = { error: e_18_1 }; }
2222
+ catch (e_21_1) { e_21 = { error: e_21_1 }; }
2109
2223
  finally {
2110
2224
  try {
2111
2225
  if (list_1_1 && !list_1_1.done && (_c = list_1.return)) _c.call(list_1);
2112
2226
  }
2113
- finally { if (e_18) throw e_18.error; }
2227
+ finally { if (e_21) throw e_21.error; }
2114
2228
  }
2115
2229
  }
2116
2230
  }
2117
- catch (e_17_1) { e_17 = { error: e_17_1 }; }
2231
+ catch (e_20_1) { e_20 = { error: e_20_1 }; }
2118
2232
  finally {
2119
2233
  try {
2120
2234
  if (containerList_1_1 && !containerList_1_1.done && (_b = containerList_1.return)) _b.call(containerList_1);
2121
2235
  }
2122
- finally { if (e_17) throw e_17.error; }
2236
+ finally { if (e_20) throw e_20.error; }
2123
2237
  }
2124
2238
  }
2125
2239
  }
2126
- catch (e_16_1) { e_16 = { error: e_16_1 }; }
2240
+ catch (e_19_1) { e_19 = { error: e_19_1 }; }
2127
2241
  finally {
2128
2242
  try {
2129
2243
  if (SERIES_CONTAINER_KEYS_1_1 && !SERIES_CONTAINER_KEYS_1_1.done && (_a = SERIES_CONTAINER_KEYS_1.return)) _a.call(SERIES_CONTAINER_KEYS_1);
2130
2244
  }
2131
- finally { if (e_16) throw e_16.error; }
2245
+ finally { if (e_19) throw e_19.error; }
2132
2246
  }
2133
2247
  };
2134
2248
  var buildTrendlineNode = function (t) {
@@ -2256,7 +2370,7 @@ var axIdValueOf = function (axis) { var _a, _b; return (_b = (_a = axis === null
2256
2370
  * the 3-D and c15 (histogram / boxplot / waterfall / funnel) bodies.
2257
2371
  */
2258
2372
  var applySecondaryAxisGroup = function (plotArea, spec, series) {
2259
- var e_19, _a, e_20, _b;
2373
+ var e_22, _a, e_23, _b;
2260
2374
  var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
2261
2375
  var opts = spec === null || spec === void 0 ? void 0 : spec.secondaryValueAxisOptions;
2262
2376
  var secondaryIdx = new Set();
@@ -2298,7 +2412,7 @@ var applySecondaryAxisGroup = function (plotArea, spec, series) {
2298
2412
  var primaries = [];
2299
2413
  var secondaries = [];
2300
2414
  try {
2301
- for (var _p = (e_20 = void 0, __values(asNodeArray(plotArea[key]))), _q = _p.next(); !_q.done; _q = _p.next()) {
2415
+ for (var _p = (e_23 = void 0, __values(asNodeArray(plotArea[key]))), _q = _p.next(); !_q.done; _q = _p.next()) {
2302
2416
  var container = _q.value;
2303
2417
  var sers = asNodeArray(container["c:ser"]);
2304
2418
  var keep = sers.filter(function (node) { var _a, _b; return !secondaryIdx.has(String((_b = (_a = node === null || node === void 0 ? void 0 : node["c:idx"]) === null || _a === void 0 ? void 0 : _a.a$) === null || _b === void 0 ? void 0 : _b.val)); });
@@ -2318,23 +2432,23 @@ var applySecondaryAxisGroup = function (plotArea, spec, series) {
2318
2432
  secondaries.push(secondary);
2319
2433
  }
2320
2434
  }
2321
- catch (e_20_1) { e_20 = { error: e_20_1 }; }
2435
+ catch (e_23_1) { e_23 = { error: e_23_1 }; }
2322
2436
  finally {
2323
2437
  try {
2324
2438
  if (_q && !_q.done && (_b = _p.return)) _b.call(_p);
2325
2439
  }
2326
- finally { if (e_20) throw e_20.error; }
2440
+ finally { if (e_23) throw e_23.error; }
2327
2441
  }
2328
2442
  var groups = __spreadArray(__spreadArray([], __read(primaries), false), __read(secondaries), false);
2329
2443
  plotArea[key] = groups.length === 1 ? groups[0] : groups;
2330
2444
  }
2331
2445
  }
2332
- catch (e_19_1) { e_19 = { error: e_19_1 }; }
2446
+ catch (e_22_1) { e_22 = { error: e_22_1 }; }
2333
2447
  finally {
2334
2448
  try {
2335
2449
  if (groupKeys_1_1 && !groupKeys_1_1.done && (_a = groupKeys_1.return)) _a.call(groupKeys_1);
2336
2450
  }
2337
- finally { if (e_19) throw e_19.error; }
2451
+ finally { if (e_22) throw e_22.error; }
2338
2452
  }
2339
2453
  if (!moved) {
2340
2454
  applySecondaryAxis(plotArea, opts);
@@ -2447,7 +2561,7 @@ var CHART_XML_PREFIX_URIS = {
2447
2561
  * element that uses it (`declared` tracks the ancestors' declarations).
2448
2562
  */
2449
2563
  var chartXmlElementsToBuilderObject = function (elements, declared) {
2450
- var e_21, _a;
2564
+ var e_24, _a;
2451
2565
  var _b, _c;
2452
2566
  if (declared === void 0) { declared = ROOT_CHART_PREFIXES; }
2453
2567
  var out = {};
@@ -2479,12 +2593,12 @@ var chartXmlElementsToBuilderObject = function (elements, declared) {
2479
2593
  out[element.tag] = [existing, node];
2480
2594
  }
2481
2595
  }
2482
- catch (e_21_1) { e_21 = { error: e_21_1 }; }
2596
+ catch (e_24_1) { e_24 = { error: e_24_1 }; }
2483
2597
  finally {
2484
2598
  try {
2485
2599
  if (elements_1_1 && !elements_1_1.done && (_a = elements_1.return)) _a.call(elements_1);
2486
2600
  }
2487
- finally { if (e_21) throw e_21.error; }
2601
+ finally { if (e_24) throw e_24.error; }
2488
2602
  }
2489
2603
  return out;
2490
2604
  };
@@ -2500,7 +2614,7 @@ var DISP_BLANKS_AS = {
2500
2614
  * `beforeKeys` that is present (else appended).
2501
2615
  */
2502
2616
  var setChildInOrder = function (node, key, value, beforeKeys) {
2503
- var e_22, _a, e_23, _b;
2617
+ var e_25, _a, e_26, _b;
2504
2618
  if (key in node) {
2505
2619
  node[key] = value;
2506
2620
  return;
@@ -2521,25 +2635,25 @@ var setChildInOrder = function (node, key, value, beforeKeys) {
2521
2635
  delete node[k];
2522
2636
  }
2523
2637
  }
2524
- catch (e_22_1) { e_22 = { error: e_22_1 }; }
2638
+ catch (e_25_1) { e_25 = { error: e_25_1 }; }
2525
2639
  finally {
2526
2640
  try {
2527
2641
  if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
2528
2642
  }
2529
- finally { if (e_22) throw e_22.error; }
2643
+ finally { if (e_25) throw e_25.error; }
2530
2644
  }
2531
2645
  try {
2532
- for (var entries_1 = __values(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) {
2533
- var _e = __read(entries_1_1.value, 2), k = _e[0], v = _e[1];
2646
+ for (var entries_2 = __values(entries), entries_2_1 = entries_2.next(); !entries_2_1.done; entries_2_1 = entries_2.next()) {
2647
+ var _e = __read(entries_2_1.value, 2), k = _e[0], v = _e[1];
2534
2648
  node[k] = v;
2535
2649
  }
2536
2650
  }
2537
- catch (e_23_1) { e_23 = { error: e_23_1 }; }
2651
+ catch (e_26_1) { e_26 = { error: e_26_1 }; }
2538
2652
  finally {
2539
2653
  try {
2540
- if (entries_1_1 && !entries_1_1.done && (_b = entries_1.return)) _b.call(entries_1);
2654
+ if (entries_2_1 && !entries_2_1.done && (_b = entries_2.return)) _b.call(entries_2);
2541
2655
  }
2542
- finally { if (e_23) throw e_23.error; }
2656
+ finally { if (e_26) throw e_26.error; }
2543
2657
  }
2544
2658
  };
2545
2659
  /**
@@ -2599,7 +2713,7 @@ var applyLegend = function (chartNode, legend) {
2599
2713
  chartNode["c:legend"] = __assign({ "c:legendPos": { a$: { val: posCode } }, "c:overlay": { a$: { val: "0" } } }, (txPr ? { "c:txPr": txPr } : {}));
2600
2714
  };
2601
2715
  var applyDataLabels = function (plotArea, dataLabels) {
2602
- var e_24, _a;
2716
+ var e_27, _a;
2603
2717
  if (!(dataLabels === null || dataLabels === void 0 ? void 0 : dataLabels.show))
2604
2718
  return;
2605
2719
  // Find the chart-type container inside <c:plotArea>. We attach <c:dLbls>
@@ -2660,12 +2774,12 @@ var applyDataLabels = function (plotArea, dataLabels) {
2660
2774
  container["c:dLbls"] = cloneTemplate(dLbls);
2661
2775
  }
2662
2776
  }
2663
- catch (e_24_1) { e_24 = { error: e_24_1 }; }
2777
+ catch (e_27_1) { e_27 = { error: e_27_1 }; }
2664
2778
  finally {
2665
2779
  try {
2666
2780
  if (containers_1_1 && !containers_1_1.done && (_a = containers_1.return)) _a.call(containers_1);
2667
2781
  }
2668
- finally { if (e_24) throw e_24.error; }
2782
+ finally { if (e_27) throw e_27.error; }
2669
2783
  }
2670
2784
  };
2671
2785
  var applyAxisOptions = function (plotArea, options, kind) {
@@ -2739,7 +2853,7 @@ var applyExplosion = function (plotArea, explosion) {
2739
2853
  : [];
2740
2854
  var explosionNode = { a$: { val: String(Math.round(explosion)) } };
2741
2855
  var rebuiltSers = sers.map(function (ser) {
2742
- var e_25, _a;
2856
+ var e_28, _a;
2743
2857
  var rebuilt = {};
2744
2858
  var placed = false;
2745
2859
  try {
@@ -2754,12 +2868,12 @@ var applyExplosion = function (plotArea, explosion) {
2754
2868
  rebuilt[key] = value;
2755
2869
  }
2756
2870
  }
2757
- catch (e_25_1) { e_25 = { error: e_25_1 }; }
2871
+ catch (e_28_1) { e_28 = { error: e_28_1 }; }
2758
2872
  finally {
2759
2873
  try {
2760
2874
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
2761
2875
  }
2762
- finally { if (e_25) throw e_25.error; }
2876
+ finally { if (e_28) throw e_28.error; }
2763
2877
  }
2764
2878
  if (!placed)
2765
2879
  rebuilt["c:explosion"] = explosionNode;
@@ -2811,7 +2925,7 @@ var applySliceColors = function (plotArea, spec) {
2811
2925
  var palette = spec === null || spec === void 0 ? void 0 : spec.palette;
2812
2926
  var series = ((_b = spec === null || spec === void 0 ? void 0 : spec.series) !== null && _b !== void 0 ? _b : []);
2813
2927
  var rebuiltSers = sers.map(function (ser, index) {
2814
- var e_26, _a;
2928
+ var e_29, _a;
2815
2929
  var _b;
2816
2930
  var entry = series[index];
2817
2931
  var authored = entry === null || entry === void 0 ? void 0 : entry.dataPointColors;
@@ -2835,12 +2949,12 @@ var applySliceColors = function (plotArea, spec) {
2835
2949
  rebuilt[key] = value;
2836
2950
  }
2837
2951
  }
2838
- catch (e_26_1) { e_26 = { error: e_26_1 }; }
2952
+ catch (e_29_1) { e_29 = { error: e_29_1 }; }
2839
2953
  finally {
2840
2954
  try {
2841
2955
  if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
2842
2956
  }
2843
- finally { if (e_26) throw e_26.error; }
2957
+ finally { if (e_29) throw e_29.error; }
2844
2958
  }
2845
2959
  if (dPtNodes && !placed)
2846
2960
  rebuilt["c:dPt"] = dPtNodes;
@@ -1,10 +1,9 @@
1
1
  /**
2
- * Strip the `_xlfn.` / `_xlws.` / `_xludf.` prefixes and re-add the correct
3
- * one to every future-function call in `formula`. Quoted spans are copied
4
- * verbatim so string literals (`"…"`) and quoted sheet names (`'…'`) keep
5
- * their original text; a doubled quote inside a span is an escaped quote.
6
- * Because the strip pass runs first, already-qualified input comes out
7
- * qualified exactly once.
2
+ * Excel "future functions" — functions added after the Excel 2007 (.xlsx)
3
+ * file format was frozen — must be written into sheet XML behind a `_xlfn.`
4
+ * namespace prefix. The list and both directions of the transform live in
5
+ * `helpers/excel-formula-prefixes` (the importer strips what the exporter
6
+ * adds); this module keeps the exporter-side entry point.
8
7
  */
9
- export declare function qualifyFutureFunctions(formula: string): string;
8
+ export { FUTURE_FUNCTION_NAMES, WORKSHEET_SCOPED_FUTURE_FUNCTIONS, qualifyFutureFunctions, } from "../../helpers/excel-formula-prefixes";
10
9
  //# sourceMappingURL=future-functions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"future-functions.d.ts","sourceRoot":"","sources":["../../../../exporter/xlsx/future-functions.ts"],"names":[],"mappings":"AAkPA;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA6B9D"}
1
+ {"version":3,"file":"future-functions.d.ts","sourceRoot":"","sources":["../../../../exporter/xlsx/future-functions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,qBAAqB,EACrB,iCAAiC,EACjC,sBAAsB,GACvB,MAAM,sCAAsC,CAAC"}