xls-codec 4.7.6 → 4.9.0

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 (110) hide show
  1. package/README.md +11 -5
  2. package/dist/biff/cursor.cjs +12 -1
  3. package/dist/biff/cursor.d.cts +1 -1
  4. package/dist/biff/cursor.d.ts +1 -1
  5. package/dist/biff/cursor.js +12 -1
  6. package/dist/biff/ptg.cjs +16 -2
  7. package/dist/biff/ptg.d.cts +2 -2
  8. package/dist/biff/ptg.d.ts +2 -2
  9. package/dist/biff/ptg.js +16 -3
  10. package/dist/biff/record-types.cjs +25 -1
  11. package/dist/biff/record-types.d.cts +18 -2
  12. package/dist/biff/record-types.d.ts +18 -2
  13. package/dist/biff/record-types.js +18 -2
  14. package/dist/biff/strings.d.cts +1 -1
  15. package/dist/biff/strings.d.ts +1 -1
  16. package/dist/biff/substreams.cjs +7 -8
  17. package/dist/biff/substreams.d.cts +1 -1
  18. package/dist/biff/substreams.d.ts +1 -1
  19. package/dist/biff/substreams.js +7 -8
  20. package/dist/biff/xf-colors.d.cts +1 -1
  21. package/dist/biff/xf-colors.d.ts +1 -1
  22. package/dist/biff/xf-writer.d.cts +1 -1
  23. package/dist/biff/xf-writer.d.ts +1 -1
  24. package/dist/{conditional-format-12-D-X5g_O3.d.ts → conditional-format-12-C3nwy1f8.d.ts} +10 -5
  25. package/dist/{conditional-format-12-DBhe7Zo6.d.cts → conditional-format-12-D65-ruTq.d.cts} +10 -5
  26. package/dist/conditional-format-BRMUTRP1.d.ts +41 -0
  27. package/dist/conditional-format-Cth_afMy.d.cts +41 -0
  28. package/dist/content.cjs +50 -18
  29. package/dist/content.js +50 -18
  30. package/dist/{cursor-VMtw9uVP.d.cts → cursor-CnEuX5qE.d.cts} +3 -1
  31. package/dist/{cursor-VMtw9uVP.d.ts → cursor-CnEuX5qE.d.ts} +3 -1
  32. package/dist/{data-validation-DfpjUN-N.d.cts → data-validation-BgUt8CbE.d.cts} +2 -2
  33. package/dist/{data-validation-BXvIVU0e.d.ts → data-validation-Cq6iD8lB.d.ts} +2 -2
  34. package/dist/drawing/blips.cjs +83 -0
  35. package/dist/drawing/blips.d.cts +10 -0
  36. package/dist/drawing/blips.d.ts +10 -0
  37. package/dist/drawing/blips.js +82 -0
  38. package/dist/drawing/bytes.cjs +15 -0
  39. package/dist/drawing/bytes.d.cts +5 -0
  40. package/dist/drawing/bytes.d.ts +5 -0
  41. package/dist/drawing/bytes.js +14 -0
  42. package/dist/drawing/escher-constants.cjs +52 -0
  43. package/dist/drawing/escher-constants.d.cts +34 -0
  44. package/dist/drawing/escher-constants.d.ts +34 -0
  45. package/dist/drawing/escher-constants.js +34 -0
  46. package/dist/drawing/escher.cjs +84 -0
  47. package/dist/drawing/escher.d.cts +30 -0
  48. package/dist/drawing/escher.d.ts +30 -0
  49. package/dist/drawing/escher.js +80 -0
  50. package/dist/drawing/shapes.cjs +80 -0
  51. package/dist/drawing/shapes.d.cts +24 -0
  52. package/dist/drawing/shapes.d.ts +24 -0
  53. package/dist/drawing/shapes.js +79 -0
  54. package/dist/index.cjs +11 -1
  55. package/dist/index.d.cts +5 -5
  56. package/dist/index.d.ts +5 -5
  57. package/dist/index.js +4 -4
  58. package/dist/{print-names-CCwUHAoL.d.cts → print-names-B2OR0fvs.d.cts} +1 -1
  59. package/dist/{print-names-CxAbgcjB.d.ts → print-names-BXcmmwVi.d.ts} +1 -1
  60. package/dist/{ptg-CCBbJLZJ.d.cts → ptg-75v7MhaA.d.cts} +7 -1
  61. package/dist/{ptg-CCBbJLZJ.d.ts → ptg-75v7MhaA.d.ts} +7 -1
  62. package/dist/{substreams-Dp5cZoUo.d.ts → substreams-CgTHx5kX.d.ts} +1 -1
  63. package/dist/{substreams-CHv3oWmn.d.cts → substreams-XDNgDvRJ.d.cts} +1 -1
  64. package/dist/units.cjs +7 -0
  65. package/dist/units.d.cts +6 -1
  66. package/dist/units.d.ts +6 -1
  67. package/dist/units.js +6 -1
  68. package/dist/workbook/chart.cjs +230 -0
  69. package/dist/workbook/chart.d.cts +19 -0
  70. package/dist/workbook/chart.d.ts +19 -0
  71. package/dist/workbook/chart.js +229 -0
  72. package/dist/workbook/comments.cjs +2 -1
  73. package/dist/workbook/comments.d.cts +7 -2
  74. package/dist/workbook/comments.d.ts +7 -2
  75. package/dist/workbook/comments.js +2 -2
  76. package/dist/workbook/conditional-format-12.cjs +32 -1
  77. package/dist/workbook/conditional-format-12.d.cts +2 -2
  78. package/dist/workbook/conditional-format-12.d.ts +2 -2
  79. package/dist/workbook/conditional-format-12.js +33 -3
  80. package/dist/workbook/conditional-format-ex.cjs +53 -0
  81. package/dist/workbook/conditional-format-ex.d.cts +13 -0
  82. package/dist/workbook/conditional-format-ex.d.ts +13 -0
  83. package/dist/workbook/conditional-format-ex.js +52 -0
  84. package/dist/workbook/conditional-format.cjs +46 -23
  85. package/dist/workbook/conditional-format.d.cts +2 -2
  86. package/dist/workbook/conditional-format.d.ts +2 -2
  87. package/dist/workbook/conditional-format.js +46 -23
  88. package/dist/workbook/data-validation.d.cts +1 -1
  89. package/dist/workbook/data-validation.d.ts +1 -1
  90. package/dist/workbook/drawing.cjs +270 -0
  91. package/dist/workbook/drawing.d.cts +31 -0
  92. package/dist/workbook/drawing.d.ts +31 -0
  93. package/dist/workbook/drawing.js +268 -0
  94. package/dist/workbook/globals-writer.d.cts +2 -2
  95. package/dist/workbook/globals-writer.d.ts +2 -2
  96. package/dist/workbook/globals.d.cts +4 -4
  97. package/dist/workbook/globals.d.ts +4 -4
  98. package/dist/workbook/print-names.d.cts +1 -1
  99. package/dist/workbook/print-names.d.ts +1 -1
  100. package/dist/workbook/sheet-writer.cjs +1 -1
  101. package/dist/workbook/sheet-writer.js +1 -1
  102. package/dist/workbook/sheet.cjs +11 -0
  103. package/dist/workbook/sheet.d.cts +5 -5
  104. package/dist/workbook/sheet.d.ts +5 -5
  105. package/dist/workbook/sheet.js +12 -1
  106. package/dist/{xf-colors-mqerVt2O.d.cts → xf-colors-aeH9Ax3Q.d.cts} +1 -1
  107. package/dist/{xf-colors-d3OvRw76.d.ts → xf-colors-kdNsiNYt.d.ts} +1 -1
  108. package/package.json +1 -1
  109. package/dist/conditional-format-Czh2oTzQ.d.cts +0 -29
  110. package/dist/conditional-format-DOdazxWe.d.ts +0 -29
@@ -1,11 +1,11 @@
1
1
  import { RECORD_BOF } from "../biff/record-types.js";
2
2
  import { pointsToColumnWidth, pointsToInches, pointsToTwips } from "../units.js";
3
3
  import { packSetupFlags, paperSelectionFor } from "../biff/print-setup.js";
4
+ import { errorCodeOf } from "../biff/errors.js";
4
5
  import { BiffWriteError } from "../biff/write-errors.js";
5
6
  import { isoDateTimeToSerial, isoDateToSerial, isoTimeToSerial } from "../serial.js";
6
7
  import { RecordBuilder } from "../biff/builder.js";
7
8
  import { concatRecords, writeRecord } from "../biff/record-writer.js";
8
- import { errorCodeOf } from "../biff/errors.js";
9
9
  import { writeBofData } from "../biff/bof-writer.js";
10
10
  import { GENERAL_CELL_XF_INDEX } from "./globals-writer.js";
11
11
  import { cellCarriesFormatting, writesCellRecord } from "../written-cells.js";
@@ -11,6 +11,7 @@ const require_biff_ptg = require("../biff/ptg.cjs");
11
11
  const require_biff_rk = require("../biff/rk.cjs");
12
12
  const require_workbook_conditional_format = require("./conditional-format.cjs");
13
13
  const require_workbook_conditional_format_12 = require("./conditional-format-12.cjs");
14
+ const require_workbook_conditional_format_ex = require("./conditional-format-ex.cjs");
14
15
  const require_workbook_data_validation = require("./data-validation.cjs");
15
16
  //#region src/workbook/sheet.ts
16
17
  /** Row record flag bits, in the 32-bit field following unused1 ([MS-XLS] 2.4.221). */
@@ -116,6 +117,7 @@ function readSheetRecords(records, sharedStrings, formulaSheets = EMPTY_FORMULA_
116
117
  const dataValidations = [];
117
118
  const conditionalFormats = [];
118
119
  const conditionalFormats12 = [];
120
+ const legacyCondFmtsByNID = /* @__PURE__ */ new Map();
119
121
  let usedRange;
120
122
  const marginsPt = {};
121
123
  const rowBreaks = [];
@@ -148,6 +150,10 @@ function readSheetRecords(records, sharedStrings, formulaSheets = EMPTY_FORMULA_
148
150
  case 432: {
149
151
  const group = require_workbook_conditional_format.readCondFmtGroup(records, index, formulaSheets);
150
152
  conditionalFormats.push(...group.formats);
153
+ legacyCondFmtsByNID.set(group.nID, {
154
+ ranges: group.ranges,
155
+ cfs: group.rawCfs
156
+ });
151
157
  index += group.recordsConsumed - 1;
152
158
  break;
153
159
  }
@@ -157,6 +163,11 @@ function readSheetRecords(records, sharedStrings, formulaSheets = EMPTY_FORMULA_
157
163
  index += group.recordsConsumed - 1;
158
164
  break;
159
165
  }
166
+ case require_biff_record_types.RECORD_CFEX: {
167
+ const format = require_workbook_conditional_format_ex.readCfEx(record, legacyCondFmtsByNID, formulaSheets);
168
+ if (format !== void 0) conditionalFormats12.push(format);
169
+ break;
170
+ }
160
171
  case 513:
161
172
  cells.push(readBlank(record));
162
173
  break;
@@ -1,9 +1,9 @@
1
1
  import { n as SetupFields } from "../print-setup-B_ihDvm5.cjs";
2
- import { r as FormulaSheetContext } from "../ptg-CCBbJLZJ.cjs";
3
- import { t as RecordGroup } from "../substreams-CHv3oWmn.cjs";
4
- import { n as RawConditionalFormat } from "../conditional-format-Czh2oTzQ.cjs";
5
- import { a as RawConditionalFormat12 } from "../conditional-format-12-DBhe7Zo6.cjs";
6
- import { t as RawDataValidation } from "../data-validation-DfpjUN-N.cjs";
2
+ import { r as FormulaSheetContext } from "../ptg-75v7MhaA.cjs";
3
+ import { t as RecordGroup } from "../substreams-XDNgDvRJ.cjs";
4
+ import { r as RawConditionalFormat } from "../conditional-format-Cth_afMy.cjs";
5
+ import { a as RawConditionalFormat12 } from "../conditional-format-12-D65-ruTq.cjs";
6
+ import { t as RawDataValidation } from "../data-validation-BgUt8CbE.cjs";
7
7
  //#region src/workbook/sheet.d.ts
8
8
  /** A cell's value as its own record carries it, before number-format classification decides whether a number is really a date, a percentage, or an amount of money. */
9
9
  type RawCellValue = {
@@ -1,9 +1,9 @@
1
1
  import { n as SetupFields } from "../print-setup-B_ihDvm5.js";
2
- import { r as FormulaSheetContext } from "../ptg-CCBbJLZJ.js";
3
- import { t as RecordGroup } from "../substreams-Dp5cZoUo.js";
4
- import { n as RawConditionalFormat } from "../conditional-format-DOdazxWe.js";
5
- import { a as RawConditionalFormat12 } from "../conditional-format-12-D-X5g_O3.js";
6
- import { t as RawDataValidation } from "../data-validation-BXvIVU0e.js";
2
+ import { r as FormulaSheetContext } from "../ptg-75v7MhaA.js";
3
+ import { t as RecordGroup } from "../substreams-CgTHx5kX.js";
4
+ import { r as RawConditionalFormat } from "../conditional-format-BRMUTRP1.js";
5
+ import { a as RawConditionalFormat12 } from "../conditional-format-12-C3nwy1f8.js";
6
+ import { t as RawDataValidation } from "../data-validation-Cq6iD8lB.js";
7
7
  //#region src/workbook/sheet.d.ts
8
8
  /** A cell's value as its own record carries it, before number-format classification decides whether a number is really a date, a percentage, or an amount of money. */
9
9
  type RawCellValue = {
@@ -1,4 +1,4 @@
1
- import { RECORD_CONDFMT12 } from "../biff/record-types.js";
1
+ import { RECORD_CFEX, RECORD_CONDFMT12 } from "../biff/record-types.js";
2
2
  import { BiffFormatError } from "../biff/records.js";
3
3
  import { columnWidthToPoints, inchesToPoints, twipsToPoints } from "../units.js";
4
4
  import { unpackSetupFlags } from "../biff/print-setup.js";
@@ -10,6 +10,7 @@ import { parseFormulaText, readPtgExpBase } from "../biff/ptg.js";
10
10
  import { decodeRkNumber } from "../biff/rk.js";
11
11
  import { readCondFmtGroup } from "./conditional-format.js";
12
12
  import { readCondFmt12Group } from "./conditional-format-12.js";
13
+ import { readCfEx } from "./conditional-format-ex.js";
13
14
  import { readDv } from "./data-validation.js";
14
15
  //#region src/workbook/sheet.ts
15
16
  /** Row record flag bits, in the 32-bit field following unused1 ([MS-XLS] 2.4.221). */
@@ -115,6 +116,7 @@ function readSheetRecords(records, sharedStrings, formulaSheets = EMPTY_FORMULA_
115
116
  const dataValidations = [];
116
117
  const conditionalFormats = [];
117
118
  const conditionalFormats12 = [];
119
+ const legacyCondFmtsByNID = /* @__PURE__ */ new Map();
118
120
  let usedRange;
119
121
  const marginsPt = {};
120
122
  const rowBreaks = [];
@@ -147,6 +149,10 @@ function readSheetRecords(records, sharedStrings, formulaSheets = EMPTY_FORMULA_
147
149
  case 432: {
148
150
  const group = readCondFmtGroup(records, index, formulaSheets);
149
151
  conditionalFormats.push(...group.formats);
152
+ legacyCondFmtsByNID.set(group.nID, {
153
+ ranges: group.ranges,
154
+ cfs: group.rawCfs
155
+ });
150
156
  index += group.recordsConsumed - 1;
151
157
  break;
152
158
  }
@@ -156,6 +162,11 @@ function readSheetRecords(records, sharedStrings, formulaSheets = EMPTY_FORMULA_
156
162
  index += group.recordsConsumed - 1;
157
163
  break;
158
164
  }
165
+ case RECORD_CFEX: {
166
+ const format = readCfEx(record, legacyCondFmtsByNID, formulaSheets);
167
+ if (format !== void 0) conditionalFormats12.push(format);
168
+ break;
169
+ }
159
170
  case 513:
160
171
  cells.push(readBlank(record));
161
172
  break;
@@ -1,4 +1,4 @@
1
- import { t as BlockCursor } from "./cursor-VMtw9uVP.cjs";
1
+ import { t as BlockCursor } from "./cursor-CnEuX5qE.cjs";
2
2
  import { Alignment, Color, ContentBorder, ContentCellFill, ContentCellPatternType } from "document-schema.js";
3
3
  //#region src/biff/xf-colors.d.ts
4
4
  /** FLSNULL: no fill pattern -- the cell's fill colour fields carry no meaning. */
@@ -1,4 +1,4 @@
1
- import { t as BlockCursor } from "./cursor-VMtw9uVP.js";
1
+ import { t as BlockCursor } from "./cursor-CnEuX5qE.js";
2
2
  import { Alignment, Color, ContentBorder, ContentCellFill, ContentCellPatternType } from "document-schema.js";
3
3
  //#region src/biff/xf-colors.d.ts
4
4
  /** FLSNULL: no fill pattern -- the cell's fill colour fields carry no meaning. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xls-codec",
3
- "version": "4.7.6",
3
+ "version": "4.9.0",
4
4
  "description": "Hand-written reader for the legacy Excel Binary File Format (.xls, BIFF8) as specified by [MS-XLS], mapping a workbook's record stream onto the shared document-schema.js spreadsheet model - the .xls codec for the documents.js family.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -1,29 +0,0 @@
1
- import { r as FormulaSheetContext } from "./ptg-CCBbJLZJ.cjs";
2
- import { t as RecordGroup } from "./substreams-CHv3oWmn.cjs";
3
- import { ContentSheetRange, SheetRuleOperator } from "document-schema.js";
4
- //#region src/workbook/conditional-format.d.ts
5
- interface RawConditionalFormatFill {
6
- readonly fillPattern: number;
7
- readonly fillForegroundIcv: number;
8
- readonly fillBackgroundIcv: number;
9
- }
10
- interface RawConditionalFormatStyle {
11
- readonly fontColorIcv: number | undefined;
12
- readonly fill: RawConditionalFormatFill | undefined;
13
- }
14
- interface RawConditionalFormat {
15
- readonly operator: SheetRuleOperator;
16
- readonly formula1: string;
17
- readonly formula2: string | undefined;
18
- readonly style: RawConditionalFormatStyle | undefined;
19
- readonly ranges: ContentSheetRange[];
20
- }
21
- declare function parseDxfStyle(dxfBytes: Uint8Array<ArrayBuffer>): RawConditionalFormatStyle | undefined;
22
- interface CondFmtGroupResult {
23
- readonly formats: RawConditionalFormat[];
24
- /** How many records (the CondFmt itself plus every CF it claimed) the caller should advance past, regardless of how many rules actually promoted. */
25
- readonly recordsConsumed: number;
26
- }
27
- declare function readCondFmtGroup(records: readonly RecordGroup[], startIndex: number, formulaSheets: FormulaSheetContext): CondFmtGroupResult;
28
- //#endregion
29
- export { parseDxfStyle as a, RawConditionalFormatStyle as i, RawConditionalFormat as n, readCondFmtGroup as o, RawConditionalFormatFill as r, CondFmtGroupResult as t };
@@ -1,29 +0,0 @@
1
- import { r as FormulaSheetContext } from "./ptg-CCBbJLZJ.js";
2
- import { t as RecordGroup } from "./substreams-Dp5cZoUo.js";
3
- import { ContentSheetRange, SheetRuleOperator } from "document-schema.js";
4
- //#region src/workbook/conditional-format.d.ts
5
- interface RawConditionalFormatFill {
6
- readonly fillPattern: number;
7
- readonly fillForegroundIcv: number;
8
- readonly fillBackgroundIcv: number;
9
- }
10
- interface RawConditionalFormatStyle {
11
- readonly fontColorIcv: number | undefined;
12
- readonly fill: RawConditionalFormatFill | undefined;
13
- }
14
- interface RawConditionalFormat {
15
- readonly operator: SheetRuleOperator;
16
- readonly formula1: string;
17
- readonly formula2: string | undefined;
18
- readonly style: RawConditionalFormatStyle | undefined;
19
- readonly ranges: ContentSheetRange[];
20
- }
21
- declare function parseDxfStyle(dxfBytes: Uint8Array<ArrayBuffer>): RawConditionalFormatStyle | undefined;
22
- interface CondFmtGroupResult {
23
- readonly formats: RawConditionalFormat[];
24
- /** How many records (the CondFmt itself plus every CF it claimed) the caller should advance past, regardless of how many rules actually promoted. */
25
- readonly recordsConsumed: number;
26
- }
27
- declare function readCondFmtGroup(records: readonly RecordGroup[], startIndex: number, formulaSheets: FormulaSheetContext): CondFmtGroupResult;
28
- //#endregion
29
- export { parseDxfStyle as a, RawConditionalFormatStyle as i, RawConditionalFormat as n, readCondFmtGroup as o, RawConditionalFormatFill as r, CondFmtGroupResult as t };