@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
@@ -1,7 +1,7 @@
1
1
  import { formulaToRelativeReference } from "@rowsncolumns/calculator";
2
2
  import { IndexedColors } from "@rowsncolumns/utils";
3
3
  import { addressToCell, ssfFormat } from "@rowsncolumns/utils";
4
- import { decodeImplicitIntersection } from "../../../helpers/implicit-intersection";
4
+ import { normalizeImportedFormula } from "../../../helpers/excel-formula-prefixes";
5
5
  import { standardExcelFormatCodeById } from "./numfmt";
6
6
  import { detectValueTypeAndPattern } from "./value-type-detection";
7
7
  const getNode = (node, ...keys) => {
@@ -72,7 +72,7 @@ export function getCellValueAndFormat(cell, workbook, enableCellXfsRegistry = fa
72
72
  return null;
73
73
  }
74
74
  // Extract raw value
75
- const { rawValue: extractedRawValue, formulaValue, sharedStringIndex, isError, arrayFormulaRef, sharedFormulaSpec, } = extractCellValue(cell, workbook, activeSheetName);
75
+ const { rawValue: extractedRawValue, formulaValue, sharedStringIndex, isError, arrayFormulaRef, legacyArrayFormula, sharedFormulaSpec, } = extractCellValue(cell, workbook, activeSheetName);
76
76
  let rawValue = extractedRawValue;
77
77
  // Extract cell format
78
78
  const cellFormat = extractCellFormat(cell, workbook.workbookStyles, mergeContext);
@@ -190,6 +190,7 @@ export function getCellValueAndFormat(cell, workbook, enableCellXfsRegistry = fa
190
190
  ...(ue ? { ue } : {}),
191
191
  ...(ev ? { ev } : {}),
192
192
  ...(arrayFormulaRef ? { af: arrayFormulaRef } : {}),
193
+ ...(arrayFormulaRef && legacyArrayFormula ? { cse: true } : {}),
193
194
  ...(sharedFormulaSpec ? { sf: sharedFormulaSpec } : {}),
194
195
  ...(protection ? { protection } : {}),
195
196
  };
@@ -254,6 +255,7 @@ function extractCellValue(cell, workbook, activeSheetName) {
254
255
  let sharedStringIndex;
255
256
  let isError = false;
256
257
  let arrayFormulaRef;
258
+ let legacyArrayFormula = false;
257
259
  let sharedFormulaSpec;
258
260
  if (cellFormula) {
259
261
  // Shared formula. Capture provenance so the exporter can re-emit
@@ -285,10 +287,16 @@ function extractCellValue(cell, workbook, activeSheetName) {
285
287
  // carries the `<f>` element; spilled cells in the range have no formula
286
288
  // and therefore never reach this branch. Default to the cell's own
287
289
  // coordinate when `ref` is absent (some writers omit it for single-cell).
290
+ // Excel 365 marks a dynamic-array anchor with `cm="1"` on the `<c>`
291
+ // (an index into `xl/metadata.xml`'s XLDAPR record); the same
292
+ // `<f t="array">` without `cm` is a legacy Ctrl+Shift+Enter array, which
293
+ // Excel keeps showing as `{=…}`. Remember which one it was so the
294
+ // exporter writes the same kind back.
288
295
  if (cellFormula.a$ && cellFormula.a$.t === "array") {
289
296
  const cellRef = cell.a$?.r;
290
297
  arrayFormulaRef =
291
298
  cellFormula.a$.ref ?? (cellRef ? `${cellRef}:${cellRef}` : undefined);
299
+ legacyArrayFormula = cell.a$?.cm === undefined || cell.a$?.cm === null;
292
300
  }
293
301
  // Shared-formula followers parse as `{ a$: { t: "shared", si }, t$: "" }` —
294
302
  // the self-closing `<f t="shared" si=".."/>` has no text content but the
@@ -327,9 +335,12 @@ function extractCellValue(cell, workbook, activeSheetName) {
327
335
  }
328
336
  }
329
337
  if (formulaValue) {
330
- // Excel 365 persists the implicit-intersection operator `@` as
331
- // `_xlfn.SINGLE(...)`; show it the way Excel does.
332
- formulaValue = decodeImplicitIntersection(normalizeFormulaSheetNames(formulaValue));
338
+ // Sheet XML spells modern formulas with storage markers Excel never
339
+ // shows — `_xlfn.XLOOKUP(`, `_xlfn._xlws.FILTER(`, `_xlpm.` on LET /
340
+ // LAMBDA parameters, `_xlfn.ANCHORARRAY(A1)` for `A1#` and
341
+ // `_xlfn.SINGLE(x)` for `@x`. Store the formula the way Excel displays
342
+ // it; the exporter re-adds the markers.
343
+ formulaValue = normalizeImportedFormula(normalizeFormulaSheetNames(formulaValue));
333
344
  }
334
345
  switch (cellType) {
335
346
  case "s": {
@@ -409,6 +420,7 @@ function extractCellValue(cell, workbook, activeSheetName) {
409
420
  sharedStringIndex,
410
421
  isError,
411
422
  arrayFormulaRef,
423
+ legacyArrayFormula,
412
424
  sharedFormulaSpec,
413
425
  };
414
426
  }
@@ -914,7 +926,7 @@ function extractNumberFormat(xf, workbookStyles) {
914
926
  /**
915
927
  * Map Excel number format ID to our NumberFormatType
916
928
  */
917
- function mapNumberFormatType(numFmtId, formatCode) {
929
+ export function mapNumberFormatType(numFmtId, formatCode) {
918
930
  // Built-in format ids
919
931
  switch (numFmtId) {
920
932
  case 0:
@@ -1324,7 +1336,7 @@ function extractBorders(xf, workbookStyles) {
1324
1336
  * `thin` and lost `mediumDashed` / `dashDot` / `dashDotDot` /
1325
1337
  * `slantDashDot` entirely.
1326
1338
  */
1327
- function mapBorderStyle(excelStyle) {
1339
+ export function mapBorderStyle(excelStyle) {
1328
1340
  switch (excelStyle) {
1329
1341
  case "hair":
1330
1342
  return "hair";
@@ -1357,7 +1369,7 @@ function mapBorderStyle(excelStyle) {
1357
1369
  /**
1358
1370
  * Map border width based on style
1359
1371
  */
1360
- function mapBorderWidth(excelStyle) {
1372
+ export function mapBorderWidth(excelStyle) {
1361
1373
  switch (excelStyle) {
1362
1374
  case "hair":
1363
1375
  // Hair is the lightest border in OOXML — slightly thinner than
@@ -1,4 +1,4 @@
1
- import type { CellData, ConditionalFormatRule, DataValidationRuleRecord, EmbeddedChart, NamedRange, ProtectedRange, Slicer, SpreadsheetTheme, TableView } from "@rowsncolumns/spreadsheet";
1
+ import type { CellData, ConditionalFormatRule, DataValidationRuleRecord, EmbeddedChart, NamedRange, ProtectedRange, Slicer, SpreadsheetTheme, TableView, WorkbookProtection } from "@rowsncolumns/spreadsheet";
2
2
  import type { CommentThread, IterativeCalculationOptions, NamedCellStyle } from "@rowsncolumns/common-types";
3
3
  import type { CustomTableStyle, EmbeddedObject } from "@rowsncolumns/spreadsheet";
4
4
  import { type Sheet } from "@rowsncolumns/spreadsheet";
@@ -217,6 +217,8 @@ export type WorkerResponse = {
217
217
  error?: string;
218
218
  requiresRecalc?: boolean;
219
219
  iterativeCalculationOptions?: IterativeCalculationOptions;
220
+ /** `<workbookProtection>` — Excel's "Protect Workbook" state, when present. */
221
+ workbookProtection?: WorkbookProtection;
220
222
  /**
221
223
  * The source workbook declared the 1904 date system. The emitted cell
222
224
  * data is already converted to the 1900 system (date-formatted
@@ -349,6 +351,8 @@ export type WorkerResponse = {
349
351
  namedRanges: NamedRange[];
350
352
  requiresRecalc?: boolean;
351
353
  iterativeCalculationOptions?: IterativeCalculationOptions;
354
+ /** `<workbookProtection>` — Excel's "Protect Workbook" state, when present. */
355
+ workbookProtection?: WorkbookProtection;
352
356
  /** Source workbook was 1904-system; chunk data is 1900-system (see `PARSE_EXCEL_SUCCESS`). */
353
357
  use1904?: boolean;
354
358
  } | ({
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../excel-parser/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../excel-parser/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,qBAAqB,EACrB,wBAAwB,EACxB,aAAa,EACb,UAAU,EACV,cAAc,EACd,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,aAAa,EACb,2BAA2B,EAC3B,cAAc,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE1D,MAAM,MAAM,0BAA0B,GAAG,cAAc,GAAG;IACxD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAE/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,MAAM,MAAM,YAAY,GAAG;IAEzB,SAAS,EAAE,MAAM,CAAC;IAElB,MAAM,EAAE,MAAM,CAAC;IAEf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,UAAU,EAAE,MAAM,CAAC;IAEnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,MAAM,MAAM,iBAAiB,GAAG;IAE9B,OAAO,EAAE,MAAM,CAAC;IAEhB,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,EAAE,MAAM,CAAC;IAEhB,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAEpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAC;IAChD,MAAM,EAAE,OAAO,CAAC;IAChB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,IAAI,EAAE,WAAW,GAAG,YAAY,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACxD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC;AAEnD,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,gBAAgB,CAAC,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;IACtD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,oBAAY,WAAW;IACrB,WAAW,gBAAgB;IAC3B,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;IACrC;;;;OAIG;IACH,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;CACtC;AAED,oBAAY,YAAY;IACtB,mBAAmB,wBAAwB;IAC3C,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;IACnC,kBAAkB,uBAAuB;IACzC,iBAAiB,sBAAsB;IACvC,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;IACjD,kBAAkB,uBAAuB;IACzC,0BAA0B,+BAA+B;IACzD,kCAAkC,uCAAuC;IACzE,KAAK,UAAU;IACf,kBAAkB,uBAAuB;IACzC,0BAA0B,+BAA+B;IACzD,uBAAuB,4BAA4B;IACnD,0BAA0B,+BAA+B;IACzD,kBAAkB,uBAAuB;IACzC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;IACrD,0BAA0B,+BAA+B;IACzD,2BAA2B,gCAAgC;IAC3D,iBAAiB,sBAAsB;IACvC;;;;;;OAMG;IACH,eAAe,oBAAoB;IACnC,uEAAuE;IACvE,sBAAsB,2BAA2B;IACjD,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;CAClC;AAGD,MAAM,MAAM,aAAa,GACrB;IACE,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC;IACrC,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GACD;IACE,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC;IACpC,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC;CAC1B,GACD;IACE,WAAW,EAAE,WAAW,CAAC,cAAc,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GACD;IACE,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC;CACvC,GACD;IACE,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC;CACrC,GACD;IACE,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACD;IACE,WAAW,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GACD;IACE,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,CAAC;CACH,GACD;IACE,WAAW,EAAE,WAAW,CAAC,cAAc,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,WAAW,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEN,MAAM,MAAM,cAAc,GACtB;IACE,YAAY,EAAE,YAAY,CAAC,mBAAmB,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,kBAAkB,CAAC;IAC9C,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,eAAe,CAAC;IAC3C,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC;IAC7C,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;IACxD,mEAAmE;IACnE,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,GACD;IACE,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC;IACpC,OAAO,EAAE,OAAO,CAAC;CAClB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,oBAAoB,CAAC;IAChD,QAAQ,EAAE,0BAA0B,EAAE,CAAC;CACxC,GACD;IACE,YAAY,EAAE,YAAY,CAAC,kBAAkB,CAAC;IAC9C,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC;IAC7C,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,+FAA+F;IAC/F,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACxC,GACD;IACE,YAAY,EAAE,YAAY,CAAC,oBAAoB,CAAC;CACjD,GACD;IACE,YAAY,EAAE,YAAY,CAAC,sBAAsB,CAAC;CACnD,GACD;IACE,YAAY,EAAE,YAAY,CAAC,gBAAgB,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,kBAAkB,CAAC;IAC9C,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,uBAAuB,CAAC;IACnD,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,GACD;IACE,YAAY,EAAE,YAAY,CAAC,0BAA0B,CAAC;IACtD;;;OAGG;IACH,aAAa,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;CACnD,GACD;IACE,YAAY,EAAE,YAAY,CAAC,kBAAkB,CAAC;CAC/C,GACD;IACE,YAAY,EAAE,YAAY,CAAC,eAAe,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,0BAA0B,CAAC;IACtD,eAAe,EAAE,wBAAwB,EAAE,CAAC;CAC7C,GACD;IACE,YAAY,EAAE,YAAY,CAAC,0BAA0B,CAAC;CACvD,GACD;IACE,YAAY,EAAE,YAAY,CAAC,kCAAkC,CAAC;IAC9D,qBAAqB,EAAE,qBAAqB,EAAE,CAAC;CAChD,GACD;IACE,YAAY,EAAE,YAAY,CAAC,mBAAmB,CAAC;IAC/C,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,wBAAwB,CAAC;IACpD,WAAW,EAAE,OAAO,2BAA2B,EAAE,UAAU,EAAE,CAAC;CAC/D,GACD;IACE,YAAY,EAAE,YAAY,CAAC,0BAA0B,CAAC;IACtD,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B,GACD;IACE,YAAY,EAAE,YAAY,CAAC,2BAA2B,CAAC;IACvD;;;;OAIG;IACH,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC,GACD;IACE,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,sBAAsB,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,8FAA8F;IAC9F,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACD,CAAC;IACC,YAAY,EAAE,YAAY,CAAC,WAAW,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC;CAC7D,GAAG,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,GACnE;IACE,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,qBAAqB,EAAE,qBAAqB,EAAE,CAAC;IAC/C,eAAe,EAAE,wBAAwB,EAAE,CAAC;IAC5C;;;;OAIG;IACH,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC;;;;OAIG;IACH,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC"}
@@ -31,6 +31,7 @@ export declare class WorkBook implements IWorkbookPlugin {
31
31
  get sharedFormulaMap(): Map<string, [string, string]> | undefined;
32
32
  requiresRecalc(): boolean;
33
33
  getIterativeCalculationOptions(): import("@rowsncolumns/common-types").IterativeCalculationOptions | undefined;
34
+ getWorkbookProtection(): import("@rowsncolumns/spreadsheet").WorkbookProtection | undefined;
34
35
  getUse1904Epoch(): boolean;
35
36
  getSharedStrings(): string[];
36
37
  processSheetData(chunkSize?: number, enableCellXfsRegistry?: boolean, enableSharedStrings?: boolean, onPhase?: (phase: string, sheetTitle?: string) => void): AsyncGenerator<import("./types").ProcessSheetDataResult, void, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"workbook.d.ts","sourceRoot":"","sources":["../../../excel-parser/workbook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,2BAA2B,IAAI,4BAA4B,EAC3D,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EACV,+BAA+B,EAC/B,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAsBjB,qBAAa,QAAS,YAAW,eAAe;IAC9C,OAAO,CAAC,MAAM,CAAmB;;IAI3B,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAqB3E,OAAO;IAIP,aAAa;IAIb,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;IAIvD;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAe/C,QAAQ,CACZ,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAehC,QAAQ;IAIR,6EAA6E;IAC7E,kBAAkB;IAGlB,oBAAoB;IAIpB,0EAA0E;IAC1E,cAAc;IAId,QAAQ;IAIR,UAAU;IAIV,SAAS;IAIT,IAAI,cAAc,QAEjB;IAED,IAAI,aAAa,yBAEhB;IAED,IAAI,oBAAoB,kFAEvB;IAED,IAAI,gBAAgB,8CAEnB;IAED,cAAc;IAId,8BAA8B;IAI9B,eAAe;IAIf,gBAAgB;IAIhB,gBAAgB,CACd,SAAS,CAAC,EAAE,MAAM,EAClB,qBAAqB,CAAC,EAAE,OAAO,EAC/B,mBAAmB,CAAC,EAAE,OAAO,EAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI;IAUxD,wBAAwB,CAAC,OAAO,EAAE,+BAA+B;IAmBjE,kBAAkB,CAAC,OAAO,EAAE,MAAM;IAIlC,WAAW;IAIX,SAAS;IAIT,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM;IAgBzC,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM;IAgBnC,cAAc;IAId,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM;IAInC,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM;IAIlC,UAAU;IAIV,cAAc;IAId,aAAa;IAIb,gBAAgB;IAIV,aAAa;IAInB,cAAc,CAAC,MAAM,EAAE,GAAG;CAM3B;AAED,eAAO,MAAM,2BAA2B,qCAA+B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"workbook.d.ts","sourceRoot":"","sources":["../../../excel-parser/workbook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,2BAA2B,IAAI,4BAA4B,EAC3D,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EACV,+BAA+B,EAC/B,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAsBjB,qBAAa,QAAS,YAAW,eAAe;IAC9C,OAAO,CAAC,MAAM,CAAmB;;IAI3B,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAqB3E,OAAO;IAIP,aAAa;IAIb,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;IAIvD;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAe/C,QAAQ,CACZ,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAehC,QAAQ;IAIR,6EAA6E;IAC7E,kBAAkB;IAGlB,oBAAoB;IAIpB,0EAA0E;IAC1E,cAAc;IAId,QAAQ;IAIR,UAAU;IAIV,SAAS;IAIT,IAAI,cAAc,QAEjB;IAED,IAAI,aAAa,yBAEhB;IAED,IAAI,oBAAoB,kFAEvB;IAED,IAAI,gBAAgB,8CAEnB;IAED,cAAc;IAId,8BAA8B;IAI9B,qBAAqB;IAIrB,eAAe;IAIf,gBAAgB;IAIhB,gBAAgB,CACd,SAAS,CAAC,EAAE,MAAM,EAClB,qBAAqB,CAAC,EAAE,OAAO,EAC/B,mBAAmB,CAAC,EAAE,OAAO,EAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI;IAUxD,wBAAwB,CAAC,OAAO,EAAE,+BAA+B;IAmBjE,kBAAkB,CAAC,OAAO,EAAE,MAAM;IAIlC,WAAW;IAIX,SAAS;IAIT,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM;IAgBzC,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM;IAgBnC,cAAc;IAId,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM;IAInC,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM;IAIlC,UAAU;IAIV,cAAc;IAId,aAAa;IAIb,gBAAgB;IAIV,aAAa;IAInB,cAAc,CAAC,MAAM,EAAE,GAAG;CAM3B;AAED,eAAO,MAAM,2BAA2B,qCAA+B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -117,6 +117,9 @@ export class WorkBook {
117
117
  getIterativeCalculationOptions() {
118
118
  return this.plugin.getIterativeCalculationOptions();
119
119
  }
120
+ getWorkbookProtection() {
121
+ return this.plugin.getWorkbookProtection?.();
122
+ }
120
123
  getUse1904Epoch() {
121
124
  return this.plugin.getUse1904Epoch();
122
125
  }
@@ -176,6 +176,7 @@ const postOpenWorkbookComplete = async (s) => {
176
176
  namedRanges: s.workbook.getNamedRanges(),
177
177
  requiresRecalc: s.workbook.requiresRecalc(),
178
178
  iterativeCalculationOptions: s.workbook.getIterativeCalculationOptions(),
179
+ workbookProtection: s.workbook.getWorkbookProtection(),
179
180
  use1904: s.workbook.getUse1904Epoch(),
180
181
  });
181
182
  };
@@ -516,6 +517,7 @@ self.onmessage = async (e) => {
516
517
  responseType: ResponseType.PARSE_EXCEL_SUCCESS,
517
518
  requiresRecalc: workbook.requiresRecalc(),
518
519
  iterativeCalculationOptions: workbook.getIterativeCalculationOptions(),
520
+ workbookProtection: workbook.getWorkbookProtection(),
519
521
  use1904: workbook.getUse1904Epoch(),
520
522
  });
521
523
  // Pass theme back
@@ -804,6 +806,7 @@ self.onmessage = async (e) => {
804
806
  responseType: ResponseType.PARSE_EXCEL_SUCCESS,
805
807
  requiresRecalc: workbook.requiresRecalc(),
806
808
  iterativeCalculationOptions: workbook.getIterativeCalculationOptions(),
809
+ workbookProtection: workbook.getWorkbookProtection(),
807
810
  });
808
811
  self.postMessage({
809
812
  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"}
@@ -1667,9 +1667,89 @@ export const buildChartXml = (input, sheetNameById, resolvePivotSourceName) => {
1667
1667
  "a:srgbClr": { a$: { val: borderHex } },
1668
1668
  };
1669
1669
  }
1670
+ normalizeSeriesChildOrder(chartSpace["c:chartSpace"]?.["c:chart"]?.["c:plotArea"]);
1670
1671
  const xml = chartBuilder.build(chartSpace);
1671
1672
  return `${XML_DECLARATION}${xml}`;
1672
1673
  };
1674
+ /**
1675
+ * The `CT_*Ser` child sequence (ECMA-376 §21.2.2.15 CT_BarSer, §21.2.2.106
1676
+ * CT_LineSer, §21.2.2.161 CT_ScatterSer, §21.2.2.135 CT_PieSer, §21.2.2.11
1677
+ * CT_AreaSer, §21.2.2.22 CT_BubbleSer, merged): every series type uses a
1678
+ * subset of this list in this order. The builders above assemble a series
1679
+ * node from a template plus late additions (`c:tx`, `c:cat`, trendlines,
1680
+ * `c:extLst`, …) in whatever order the features are applied, and the XML
1681
+ * builder emits keys in insertion order — Excel tolerates the resulting
1682
+ * misorder, but LibreOffice, Google Sheets and the python chart libraries
1683
+ * validate the sequence and reject the part.
1684
+ */
1685
+ const SERIES_CHILD_ORDER = [
1686
+ "c:idx",
1687
+ "c:order",
1688
+ "c:tx",
1689
+ "c:spPr",
1690
+ "c:invertIfNegative",
1691
+ "c:pictureOptions",
1692
+ "c:marker",
1693
+ "c:explosion",
1694
+ "c:dPt",
1695
+ "c:dLbls",
1696
+ "c:trendline",
1697
+ "c:errBars",
1698
+ "c:cat",
1699
+ "c:val",
1700
+ "c:xVal",
1701
+ "c:yVal",
1702
+ "c:bubbleSize",
1703
+ "c:bubble3D",
1704
+ "c:shape",
1705
+ "c:smooth",
1706
+ "c:extLst",
1707
+ ];
1708
+ const seriesChildRank = (key) => {
1709
+ if (key === "a$")
1710
+ return -1;
1711
+ const rank = SERIES_CHILD_ORDER.indexOf(key);
1712
+ return rank === -1 ? SERIES_CHILD_ORDER.length : rank;
1713
+ };
1714
+ /** Re-key one `<c:ser>` object node into schema order (stable for ties). */
1715
+ const reorderSeriesNode = (node) => {
1716
+ if (!node || typeof node !== "object" || Array.isArray(node))
1717
+ return;
1718
+ const keys = Object.keys(node);
1719
+ const sorted = [...keys].sort((a, b) => seriesChildRank(a) - seriesChildRank(b) || keys.indexOf(a) - keys.indexOf(b));
1720
+ if (sorted.every((key, i) => key === keys[i]))
1721
+ return;
1722
+ const entries = sorted.map((key) => [key, node[key]]);
1723
+ for (const key of keys)
1724
+ delete node[key];
1725
+ for (const [key, value] of entries)
1726
+ node[key] = value;
1727
+ };
1728
+ /**
1729
+ * Walk every chart-type container under `<c:plotArea>` (including the ones
1730
+ * nested in an `mc:AlternateContent` fallback) and put each `<c:ser>`'s
1731
+ * children into schema order.
1732
+ */
1733
+ const normalizeSeriesChildOrder = (plotArea) => {
1734
+ const visit = (node, depth) => {
1735
+ if (!node || typeof node !== "object" || depth > 4)
1736
+ return;
1737
+ if (Array.isArray(node)) {
1738
+ node.forEach((item) => visit(item, depth));
1739
+ return;
1740
+ }
1741
+ const ser = node["c:ser"];
1742
+ if (ser) {
1743
+ (Array.isArray(ser) ? ser : [ser]).forEach(reorderSeriesNode);
1744
+ }
1745
+ for (const [key, value] of Object.entries(node)) {
1746
+ if (key === "c:ser" || key === "a$" || key === "t$")
1747
+ continue;
1748
+ visit(value, depth + 1);
1749
+ }
1750
+ };
1751
+ visit(plotArea, 0);
1752
+ };
1673
1753
  /** `#RRGGBB` / `RRGGBB` → uppercase `RRGGBB`; anything else is not emitted. */
1674
1754
  const toHex = (color) => {
1675
1755
  if (typeof color !== "string")
@@ -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"}
@@ -1,264 +1,8 @@
1
1
  /**
2
2
  * Excel "future functions" — functions added after the Excel 2007 (.xlsx)
3
- * file format was frozen. [MS-XLSX] requires them to be written into sheet
4
- * XML behind a `_xlfn.` namespace prefix (`_xlfn._xlws.` for the
5
- * worksheet-scoped dynamic-array functions); the UI never shows the prefix.
6
- * Written bare, Excel does not resolve the name: it renders the call behind
7
- * the implicit-intersection operator (`=@DAYS(...)`) and evaluates `#NAME?`.
8
- *
9
- * The list follows Microsoft's documentation of `_xlfn.`-prefixed functions
10
- * ("Issue: An _xlfn. prefix is displayed in front of a function in a
11
- * formula", support.microsoft.com) plus the dynamic-array / LAMBDA-era and
12
- * 2024 additions that ship with the same prefix convention.
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.
13
7
  */
14
- const FUTURE_FUNCTION_NAMES = [
15
- "ACOT",
16
- "ACOTH",
17
- "AGGREGATE",
18
- "ANCHORARRAY",
19
- "ARABIC",
20
- "ARRAYTOTEXT",
21
- "BASE",
22
- "BETA.DIST",
23
- "BETA.INV",
24
- "BINOM.DIST",
25
- "BINOM.DIST.RANGE",
26
- "BINOM.INV",
27
- "BITAND",
28
- "BITLSHIFT",
29
- "BITOR",
30
- "BITRSHIFT",
31
- "BITXOR",
32
- "BYCOL",
33
- "BYROW",
34
- "CEILING.MATH",
35
- "CEILING.PRECISE",
36
- "CHISQ.DIST",
37
- "CHISQ.DIST.RT",
38
- "CHISQ.INV",
39
- "CHISQ.INV.RT",
40
- "CHISQ.TEST",
41
- "CHOOSECOLS",
42
- "CHOOSEROWS",
43
- "COMBINA",
44
- "CONCAT",
45
- "CONFIDENCE.NORM",
46
- "CONFIDENCE.T",
47
- "COT",
48
- "COTH",
49
- "COVARIANCE.P",
50
- "COVARIANCE.S",
51
- "CSC",
52
- "CSCH",
53
- "DAYS",
54
- "DECIMAL",
55
- "DETECTLANGUAGE",
56
- "DROP",
57
- "ENCODEURL",
58
- "ERF.PRECISE",
59
- "ERFC.PRECISE",
60
- "EXPAND",
61
- "EXPON.DIST",
62
- "F.DIST",
63
- "F.DIST.RT",
64
- "F.INV",
65
- "F.INV.RT",
66
- "F.TEST",
67
- "FIELDVALUE",
68
- "FILTER",
69
- "FILTERXML",
70
- "FLOOR.MATH",
71
- "FLOOR.PRECISE",
72
- "FORECAST.ETS",
73
- "FORECAST.ETS.CONFINT",
74
- "FORECAST.ETS.SEASONALITY",
75
- "FORECAST.ETS.STAT",
76
- "FORECAST.LINEAR",
77
- "FORMULATEXT",
78
- "GAMMA",
79
- "GAMMA.DIST",
80
- "GAMMA.INV",
81
- "GAMMALN.PRECISE",
82
- "GAUSS",
83
- "GROUPBY",
84
- "HSTACK",
85
- "HYPGEOM.DIST",
86
- "IFNA",
87
- "IFS",
88
- "IMAGE",
89
- "IMCOSH",
90
- "IMCOT",
91
- "IMCSC",
92
- "IMCSCH",
93
- "IMSEC",
94
- "IMSECH",
95
- "IMSINH",
96
- "IMTAN",
97
- "ISFORMULA",
98
- "ISOMITTED",
99
- "ISOWEEKNUM",
100
- "LAMBDA",
101
- "LET",
102
- "LOGNORM.DIST",
103
- "LOGNORM.INV",
104
- "MAKEARRAY",
105
- "MAP",
106
- "MAXIFS",
107
- "MINIFS",
108
- "MODE.MULT",
109
- "MODE.SNGL",
110
- "MUNIT",
111
- "NEGBINOM.DIST",
112
- "NETWORKDAYS.INTL",
113
- "NORM.DIST",
114
- "NORM.INV",
115
- "NORM.S.DIST",
116
- "NORM.S.INV",
117
- "NUMBERVALUE",
118
- "PDURATION",
119
- "PERCENTILE.EXC",
120
- "PERCENTILE.INC",
121
- "PERCENTOF",
122
- "PERCENTRANK.EXC",
123
- "PERCENTRANK.INC",
124
- "PERMUTATIONA",
125
- "PHI",
126
- "PIVOTBY",
127
- "POISSON.DIST",
128
- "QUARTILE.EXC",
129
- "QUARTILE.INC",
130
- "QUERYSTRING",
131
- "RANDARRAY",
132
- "RANK.AVG",
133
- "RANK.EQ",
134
- "REDUCE",
135
- "REGEXEXTRACT",
136
- "REGEXREPLACE",
137
- "REGEXTEST",
138
- "RRI",
139
- "SCAN",
140
- "SEC",
141
- "SECH",
142
- "SEQUENCE",
143
- "SHEET",
144
- "SHEETS",
145
- "SINGLE",
146
- "SKEW.P",
147
- "SORT",
148
- "SORTBY",
149
- "STDEV.P",
150
- "STDEV.S",
151
- "STOCKHISTORY",
152
- "SWITCH",
153
- "T.DIST",
154
- "T.DIST.2T",
155
- "T.DIST.RT",
156
- "T.INV",
157
- "T.INV.2T",
158
- "T.TEST",
159
- "TAKE",
160
- "TEXTAFTER",
161
- "TEXTBEFORE",
162
- "TEXTJOIN",
163
- "TEXTSPLIT",
164
- "TOCOL",
165
- "TOROW",
166
- "TRANSLATE",
167
- "TRIMRANGE",
168
- "UNICHAR",
169
- "UNICODE",
170
- "UNIQUE",
171
- "VALUETOTEXT",
172
- "VAR.P",
173
- "VAR.S",
174
- "VSTACK",
175
- "WEBSERVICE",
176
- "WEIBULL.DIST",
177
- "WORKDAY.INTL",
178
- "WRAPCOLS",
179
- "WRAPROWS",
180
- "XLOOKUP",
181
- "XMATCH",
182
- "XOR",
183
- "Z.TEST",
184
- ];
185
- /**
186
- * Future functions that Excel writes behind the worksheet-scope prefix
187
- * (`_xlfn._xlws.`) rather than plain `_xlfn.` — the dynamic-array functions
188
- * that also exist as worksheet-only names.
189
- */
190
- const WORKSHEET_SCOPED_FUTURE_FUNCTIONS = new Set([
191
- "FILTER",
192
- "SORT",
193
- ]);
194
- const QUALIFIED_BY_NAME = new Map(FUTURE_FUNCTION_NAMES.map((name) => [
195
- name,
196
- WORKSHEET_SCOPED_FUTURE_FUNCTIONS.has(name)
197
- ? `_xlfn._xlws.${name}`
198
- : `_xlfn.${name}`,
199
- ]));
200
- // Longest names first so `T.DIST.2T` wins over `T.DIST`. The match must be
201
- // followed by `(` — a bare name (e.g. the defined name `DAYS`) is not a call.
202
- const FUTURE_FUNCTION_REGEX = new RegExp("(" +
203
- [...FUTURE_FUNCTION_NAMES]
204
- .sort((a, b) => b.length - a.length)
205
- .map((name) => name.replace(/\./g, "\\."))
206
- .join("|") +
207
- ")(\\s*\\()", "gi");
208
- // `\b` is not enough of a left boundary: it would match the `DAYS` in
209
- // `_xlfn.DAYS` and in `MYDAYS`. The preceding character is checked by offset
210
- // instead of being consumed by the pattern, so nested calls
211
- // (`SORT(FILTER(...))`) still match after the enclosing one.
212
- const FUTURE_FUNCTION_LEFT_BOUNDARY = /[A-Za-z0-9_.$]/;
213
- function qualifySegment(segment) {
214
- const stripped = segment
215
- .replace(/_xlfn\./gi, "")
216
- .replace(/_xlws\./gi, "")
217
- .replace(/_xludf\./gi, "");
218
- return stripped.replace(FUTURE_FUNCTION_REGEX, (match, name, open, offset) => {
219
- if (offset > 0 &&
220
- FUTURE_FUNCTION_LEFT_BOUNDARY.test(stripped[offset - 1])) {
221
- return match;
222
- }
223
- const qualified = QUALIFIED_BY_NAME.get(name.toUpperCase());
224
- return qualified ? qualified + open : match;
225
- });
226
- }
227
- /**
228
- * Strip the `_xlfn.` / `_xlws.` / `_xludf.` prefixes and re-add the correct
229
- * one to every future-function call in `formula`. Quoted spans are copied
230
- * verbatim so string literals (`"…"`) and quoted sheet names (`'…'`) keep
231
- * their original text; a doubled quote inside a span is an escaped quote.
232
- * Because the strip pass runs first, already-qualified input comes out
233
- * qualified exactly once.
234
- */
235
- export function qualifyFutureFunctions(formula) {
236
- let result = "";
237
- let segmentStart = 0;
238
- let index = 0;
239
- while (index < formula.length) {
240
- const char = formula[index];
241
- if (char !== '"' && char !== "'") {
242
- index++;
243
- continue;
244
- }
245
- result += qualifySegment(formula.slice(segmentStart, index));
246
- let end = index + 1;
247
- while (end < formula.length) {
248
- if (formula[end] === char) {
249
- if (formula[end + 1] === char) {
250
- end += 2;
251
- continue;
252
- }
253
- break;
254
- }
255
- end++;
256
- }
257
- // An unterminated literal consumes the rest of the formula.
258
- const literalEnd = end < formula.length ? end + 1 : formula.length;
259
- result += formula.slice(index, literalEnd);
260
- index = literalEnd;
261
- segmentStart = literalEnd;
262
- }
263
- return result + qualifySegment(formula.slice(segmentStart));
264
- }
8
+ export { FUTURE_FUNCTION_NAMES, WORKSHEET_SCOPED_FUTURE_FUNCTIONS, qualifyFutureFunctions, } from "../../helpers/excel-formula-prefixes";
@@ -1 +1 @@
1
- {"version":3,"file":"style-builder.d.ts","sourceRoot":"","sources":["../../../../exporter/xlsx/style-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,QAAQ,EACR,UAAU,EACV,KAAK,EAEL,UAAU,EACV,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAwF/D,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAKF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,eAAe,CAAC,EAAE,KAAK,CAAC;QACxB,SAAS,CAAC,EAAE,KAAK,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;CACJ,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GACxC,aAAa,gBAAgB,KAC5B,sBAAsB,CAAC,UAAU,CAqBnC,CAAC;AAEF,qBAAa,YAAY;IACvB,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,KAAK,CAKX;IACF,OAAO,CAAC,KAAK,CAA+D;IAC5E,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,eAAe,CAErB;IACF,OAAO,CAAC,iBAAiB,CAAgC;IAEzD;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,EAAE;IAUlD;;;;;;;OAOG;IACH,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,EAAE;IAOtD,OAAO,CAAC,OAAO,CAOb;IAEF,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,MAAM,CAA6B;;IAU3C;;;;;;;OAOG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI;IASzC,YAAY,CAAC,CAAC,SAAS,QAAQ,EAC7B,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAC1B,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS;IACnC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,GAC/C,MAAM;IAsET,0BAA0B,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI;IA0BrD,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,SAAS;IA2DjB,OAAO,CAAC,WAAW;IA2BnB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,YAAY;IAqCpB,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,YAAY;IAMpB,KAAK;CAuJN"}
1
+ {"version":3,"file":"style-builder.d.ts","sourceRoot":"","sources":["../../../../exporter/xlsx/style-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,QAAQ,EACR,UAAU,EACV,KAAK,EAEL,UAAU,EACV,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,iCAAiC,CAAC;AA4F/D,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAKF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,eAAe,CAAC,EAAE,KAAK,CAAC;QACxB,SAAS,CAAC,EAAE,KAAK,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;CACJ,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GACxC,aAAa,gBAAgB,KAC5B,sBAAsB,CAAC,UAAU,CAqBnC,CAAC;AAEF,qBAAa,YAAY;IACvB,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,KAAK,CAKX;IACF,OAAO,CAAC,KAAK,CAA+D;IAC5E,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,eAAe,CAErB;IACF,OAAO,CAAC,iBAAiB,CAAgC;IAEzD;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,EAAE;IAUlD;;;;;;;OAOG;IACH,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,EAAE;IAOtD,OAAO,CAAC,OAAO,CAOb;IAEF,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,MAAM,CAA6B;;IAU3C;;;;;;;OAOG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI;IASzC,YAAY,CAAC,CAAC,SAAS,QAAQ,EAC7B,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAC1B,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS;IACnC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,GAC/C,MAAM;IAsET,0BAA0B,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI;IAsCrD,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,SAAS;IA2DjB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,YAAY;IAqCpB,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,YAAY;IAQpB,KAAK;CA6JN"}