ooxml.js 2.9.0 → 2.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,6 @@ const require_xml_fragment = require("../../xml/fragment.cjs");
3
3
  const require_xml_entities = require("../../xml/entities.cjs");
4
4
  require("../shared/units.cjs");
5
5
  const require_typed_xlsx_shared_strings = require("./shared-strings.cjs");
6
- const require_typed_xlsx_a1 = require("./a1.cjs");
7
6
  const require_typed_xlsx_defined_names = require("./defined-names.cjs");
8
7
  const require_typed_xlsx_number_format = require("./number-format.cjs");
9
8
  const require_typed_xlsx_util = require("./util.cjs");
@@ -11,6 +10,7 @@ const require_typed_xlsx_print_settings = require("./print-settings.cjs");
11
10
  const require_typed_xlsx_serial = require("./serial.cjs");
12
11
  const require_typed_xlsx_styles = require("./styles.cjs");
13
12
  const require_typed_xlsx_units = require("./units.cjs");
13
+ let document_schema_js = require("document-schema.js");
14
14
  //#region src/typed/xlsx/build.ts
15
15
  const SML_NS = "http://schemas.openxmlformats.org/spreadsheetml/2006/main";
16
16
  const REL_NS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
@@ -289,7 +289,7 @@ function computeDimension(sheet) {
289
289
  hasAny = true;
290
290
  maxRow = Math.max(maxRow, row.index);
291
291
  }
292
- return hasAny ? require_typed_xlsx_a1.rangeReference({
292
+ return hasAny ? (0, document_schema_js.rangeReference)({
293
293
  startRow: 0,
294
294
  startColumn: 0,
295
295
  endRow: maxRow,
@@ -371,7 +371,7 @@ function buildCellElement(cell, sharedStrings, cellFormats) {
371
371
  id: 0
372
372
  }, decoration);
373
373
  const attrs = {
374
- r: require_typed_xlsx_a1.cellReference(cell.row, cell.column),
374
+ r: (0, document_schema_js.cellReference)(cell.row, cell.column),
375
375
  s: String(styleIndex)
376
376
  };
377
377
  if (cell.formula !== void 0) children.push(require_xml_fragment.el("f", {}, [require_xml_fragment.txt(require_xml_entities.encodeXmlText(cell.formula))]));
@@ -411,7 +411,7 @@ function buildMergeCellsElement(cells) {
411
411
  const mergeCellElements = merges.map((cell) => {
412
412
  const endRow = cell.row + (cell.rowSpan ?? 1) - 1;
413
413
  const endColumn = cell.column + (cell.colSpan ?? 1) - 1;
414
- return require_xml_fragment.el("mergeCell", { ref: require_typed_xlsx_a1.rangeReference({
414
+ return require_xml_fragment.el("mergeCell", { ref: (0, document_schema_js.rangeReference)({
415
415
  startRow: cell.row,
416
416
  startColumn: cell.column,
417
417
  endRow,
@@ -2,7 +2,6 @@ import { el, txt } from "../../xml/fragment.js";
2
2
  import { encodeXmlText } from "../../xml/entities.js";
3
3
  import "../shared/units.js";
4
4
  import { SharedStringTable } from "./shared-strings.js";
5
- import { cellReference, rangeReference } from "./a1.js";
6
5
  import { XLNM_PRINT_AREA, XLNM_PRINT_TITLES, buildPrintAreaValue, buildPrintTitlesValue } from "./defined-names.js";
7
6
  import { BOOLEAN_NUMBER_FORMAT, DATE_NUMBER_FORMAT, DATE_TIME_NUMBER_FORMAT, PERCENTAGE_NUMBER_FORMAT, TIME_NUMBER_FORMAT, currencyNumberFormat } from "./number-format.js";
8
7
  import { pageSizeToPaperSizeCode, ptToUniversalMeasure, writeXmlBool } from "./util.js";
@@ -10,6 +9,7 @@ import { DEFAULT_HEADER_FOOTER_MARGIN_PT } from "./print-settings.js";
10
9
  import { isoDateTimeToSerial, isoDateToSerial, isoTimeToSerial } from "./serial.js";
11
10
  import { CellFormatTable, RESERVED_BORDER_INDICES, RESERVED_FILL_INDICES } from "./styles.js";
12
11
  import { ptToColumnWidthChars } from "./units.js";
12
+ import { cellReference, rangeReference } from "document-schema.js";
13
13
  //#region src/typed/xlsx/build.ts
14
14
  const SML_NS = "http://schemas.openxmlformats.org/spreadsheetml/2006/main";
15
15
  const REL_NS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
@@ -2,7 +2,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_typed_util = require("../util.cjs");
3
3
  const require_typed_shared_metadata = require("../shared/metadata.cjs");
4
4
  const require_typed_xlsx_shared_strings = require("./shared-strings.cjs");
5
- const require_typed_xlsx_a1 = require("./a1.cjs");
6
5
  const require_typed_xlsx_defined_names = require("./defined-names.cjs");
7
6
  const require_typed_xlsx_number_format = require("./number-format.cjs");
8
7
  const require_typed_xlsx_util = require("./util.cjs");
@@ -238,7 +237,7 @@ function readCellValue(cell, sharedStrings, numericFormats) {
238
237
  }
239
238
  function readCell(cell, sharedStrings, context) {
240
239
  const reference = require_typed_util.attr(cell, "r");
241
- const position = reference === void 0 ? void 0 : require_typed_xlsx_a1.parseCellReference(reference);
240
+ const position = reference === void 0 ? void 0 : (0, document_schema_js.parseCellReference)(reference);
242
241
  if (position === void 0) return;
243
242
  const formulaEl = require_typed_util.childrenWithTag(cell, "f")[0];
244
243
  const formula = formulaEl === void 0 ? void 0 : require_typed_util.textContent(formulaEl);
@@ -276,7 +275,7 @@ function applyMergedRanges(worksheet, cells) {
276
275
  for (const cell of cells) byPosition.set(`${cell.row}:${cell.column}`, cell);
277
276
  for (const mergeCell of require_typed_util.childrenWithTag(mergeCellsEl, "mergeCell")) {
278
277
  const ref = require_typed_util.attr(mergeCell, "ref");
279
- const range = ref === void 0 ? void 0 : require_typed_xlsx_a1.parseRangeReference(ref);
278
+ const range = ref === void 0 ? void 0 : (0, document_schema_js.parseRangeReference)(ref);
280
279
  if (range === void 0) continue;
281
280
  const anchor = byPosition.get(`${range.startRow}:${range.startColumn}`);
282
281
  if (anchor === void 0) continue;
@@ -1,7 +1,6 @@
1
1
  import { attr, childrenWithTag, elementsWithTag, resolveRelationships, rootElement, textContent } from "../util.js";
2
2
  import { readCoreProperties } from "../shared/metadata.js";
3
3
  import { loadSharedStrings } from "./shared-strings.js";
4
- import { parseCellReference, parseRangeReference } from "./a1.js";
5
4
  import { readDefinedNamesBySheet } from "./defined-names.js";
6
5
  import { classifyNumberFormat } from "./number-format.js";
7
6
  import { readXmlBool } from "./util.js";
@@ -9,7 +8,7 @@ import { readPrintSettings } from "./print-settings.js";
9
8
  import { readDate1904, serialToIsoDate, serialToIsoDateTime, serialToIsoTime } from "./serial.js";
10
9
  import { readCellStyles } from "./styles.js";
11
10
  import { columnWidthCharsToPt } from "./units.js";
12
- import { CONTENT_FORMAT_VERSION } from "document-schema.js";
11
+ import { CONTENT_FORMAT_VERSION, parseCellReference, parseRangeReference } from "document-schema.js";
13
12
  //#region src/typed/xlsx/content.ts
14
13
  const WORKBOOK_PATH = "xl/workbook.xml";
15
14
  function resolveSheetEntries(pkg) {
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_typed_util = require("../util.cjs");
3
- const require_typed_xlsx_a1 = require("./a1.cjs");
3
+ let document_schema_js = require("document-schema.js");
4
4
  //#region src/typed/xlsx/defined-names.ts
5
5
  const XLNM_PRINT_AREA = "_xlnm.Print_Area";
6
6
  const XLNM_PRINT_TITLES = "_xlnm.Print_Titles";
@@ -32,7 +32,7 @@ function stripSheetPrefix(segment) {
32
32
  function parsePrintAreaValue(value) {
33
33
  const first = value.split(",")[0]?.trim();
34
34
  if (first === void 0 || first.length === 0) return;
35
- return require_typed_xlsx_a1.parseRangeReference(stripSheetPrefix(first).replace(/\$/g, ""));
35
+ return (0, document_schema_js.parseRangeReference)(stripSheetPrefix(first).replace(/\$/g, ""));
36
36
  }
37
37
  function parsePrintTitlesValue(value) {
38
38
  const result = {};
@@ -43,8 +43,8 @@ function parsePrintTitlesValue(value) {
43
43
  const startSpec = segment.slice(0, separatorIndex);
44
44
  const endSpec = segment.slice(separatorIndex + 1);
45
45
  if (/^[A-Za-z]+$/.test(startSpec) && /^[A-Za-z]+$/.test(endSpec)) {
46
- const start = require_typed_xlsx_a1.columnLettersToIndex(startSpec);
47
- const end = require_typed_xlsx_a1.columnLettersToIndex(endSpec);
46
+ const start = (0, document_schema_js.columnLettersToIndex)(startSpec);
47
+ const end = (0, document_schema_js.columnLettersToIndex)(endSpec);
48
48
  if (start !== void 0 && end !== void 0) result.repeatColumns = {
49
49
  start: Math.min(start, end),
50
50
  end: Math.max(start, end)
@@ -65,7 +65,7 @@ function quoteSheetNameIfNeeded(sheetName) {
65
65
  return `'${sheetName.replace(/'/g, "''")}'`;
66
66
  }
67
67
  function buildPrintAreaValue(sheetName, range) {
68
- const dollared = require_typed_xlsx_a1.rangeReference({
68
+ const dollared = (0, document_schema_js.rangeReference)({
69
69
  startRow: range.startRow,
70
70
  startColumn: range.startColumn,
71
71
  endRow: range.endRow,
@@ -76,7 +76,7 @@ function buildPrintAreaValue(sheetName, range) {
76
76
  function buildPrintTitlesValue(sheetName, repeatRows, repeatColumns) {
77
77
  const quotedName = quoteSheetNameIfNeeded(sheetName);
78
78
  const segments = [];
79
- if (repeatColumns !== void 0) segments.push(`${quotedName}!$${require_typed_xlsx_a1.columnIndexToLetters(repeatColumns.start)}:$${require_typed_xlsx_a1.columnIndexToLetters(repeatColumns.end)}`);
79
+ if (repeatColumns !== void 0) segments.push(`${quotedName}!$${(0, document_schema_js.columnIndexToLetters)(repeatColumns.start)}:$${(0, document_schema_js.columnIndexToLetters)(repeatColumns.end)}`);
80
80
  if (repeatRows !== void 0) segments.push(`${quotedName}!$${repeatRows.start + 1}:$${repeatRows.end + 1}`);
81
81
  return segments.length > 0 ? segments.join(",") : void 0;
82
82
  }
@@ -1,5 +1,5 @@
1
1
  import { attr, childrenWithTag, rootElement, textContent } from "../util.js";
2
- import { columnIndexToLetters, columnLettersToIndex, parseRangeReference, rangeReference } from "./a1.js";
2
+ import { columnIndexToLetters, columnLettersToIndex, parseRangeReference, rangeReference } from "document-schema.js";
3
3
  //#region src/typed/xlsx/defined-names.ts
4
4
  const XLNM_PRINT_AREA = "_xlnm.Print_Area";
5
5
  const XLNM_PRINT_TITLES = "_xlnm.Print_Titles";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ooxml.js",
3
- "version": "2.9.0",
3
+ "version": "2.9.2",
4
4
  "description": "Type-safe, lossless round-trip conversion between OOXML packages (docx, pptx, xlsx) and JSON, built on Zod 4 codecs.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -78,7 +78,7 @@
78
78
  "license": "MIT",
79
79
  "packageManager": "pnpm@11.6.0",
80
80
  "dependencies": {
81
- "document-schema.js": "^2.5.0",
81
+ "document-schema.js": "^2.5.1",
82
82
  "fast-xml-parser": "^5.10.1",
83
83
  "fflate": "^0.8.3",
84
84
  "zod": "^4.4.3"
@@ -1,64 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/typed/xlsx/a1.ts
3
- const CELL_REFERENCE_RE = /^([A-Za-z]+)(\d+)$/;
4
- function columnLettersToIndex(letters) {
5
- if (letters.length === 0) return;
6
- let index = 0;
7
- for (const ch of letters.toUpperCase()) {
8
- const code = ch.charCodeAt(0);
9
- if (code < 65 || code > 90) return;
10
- index = index * 26 + (code - 64);
11
- }
12
- return index - 1;
13
- }
14
- function columnIndexToLetters(index) {
15
- let remaining = index + 1;
16
- let letters = "";
17
- while (remaining > 0) {
18
- const digit = (remaining - 1) % 26;
19
- letters = String.fromCharCode(65 + digit) + letters;
20
- remaining = Math.trunc((remaining - 1) / 26);
21
- }
22
- return letters;
23
- }
24
- function parseCellReference(ref) {
25
- const match = CELL_REFERENCE_RE.exec(ref);
26
- if (match === null) return;
27
- const letters = match[1];
28
- const digits = match[2];
29
- if (letters === void 0 || digits === void 0) return;
30
- const column = columnLettersToIndex(letters);
31
- const rowNumber = Number.parseInt(digits, 10);
32
- if (column === void 0 || !Number.isInteger(rowNumber) || rowNumber < 1) return;
33
- return {
34
- row: rowNumber - 1,
35
- column
36
- };
37
- }
38
- function cellReference(row, column) {
39
- return `${columnIndexToLetters(column)}${row + 1}`;
40
- }
41
- function parseRangeReference(ref) {
42
- const separatorIndex = ref.indexOf(":");
43
- const startRaw = separatorIndex === -1 ? ref : ref.slice(0, separatorIndex);
44
- const endRaw = separatorIndex === -1 ? ref : ref.slice(separatorIndex + 1);
45
- const start = parseCellReference(startRaw);
46
- const end = parseCellReference(endRaw);
47
- if (start === void 0 || end === void 0) return;
48
- return {
49
- startRow: Math.min(start.row, end.row),
50
- startColumn: Math.min(start.column, end.column),
51
- endRow: Math.max(start.row, end.row),
52
- endColumn: Math.max(start.column, end.column)
53
- };
54
- }
55
- function rangeReference(range) {
56
- return `${cellReference(range.startRow, range.startColumn)}:${cellReference(range.endRow, range.endColumn)}`;
57
- }
58
- //#endregion
59
- exports.cellReference = cellReference;
60
- exports.columnIndexToLetters = columnIndexToLetters;
61
- exports.columnLettersToIndex = columnLettersToIndex;
62
- exports.parseCellReference = parseCellReference;
63
- exports.parseRangeReference = parseRangeReference;
64
- exports.rangeReference = rangeReference;
@@ -1,19 +0,0 @@
1
- //#region src/typed/xlsx/a1.d.ts
2
- declare function columnLettersToIndex(letters: string): number | undefined;
3
- declare function columnIndexToLetters(index: number): string;
4
- interface CellPosition {
5
- row: number;
6
- column: number;
7
- }
8
- declare function parseCellReference(ref: string): CellPosition | undefined;
9
- declare function cellReference(row: number, column: number): string;
10
- interface CellRange {
11
- startRow: number;
12
- startColumn: number;
13
- endRow: number;
14
- endColumn: number;
15
- }
16
- declare function parseRangeReference(ref: string): CellRange | undefined;
17
- declare function rangeReference(range: CellRange): string;
18
- //#endregion
19
- export { CellPosition, CellRange, cellReference, columnIndexToLetters, columnLettersToIndex, parseCellReference, parseRangeReference, rangeReference };
@@ -1,19 +0,0 @@
1
- //#region src/typed/xlsx/a1.d.ts
2
- declare function columnLettersToIndex(letters: string): number | undefined;
3
- declare function columnIndexToLetters(index: number): string;
4
- interface CellPosition {
5
- row: number;
6
- column: number;
7
- }
8
- declare function parseCellReference(ref: string): CellPosition | undefined;
9
- declare function cellReference(row: number, column: number): string;
10
- interface CellRange {
11
- startRow: number;
12
- startColumn: number;
13
- endRow: number;
14
- endColumn: number;
15
- }
16
- declare function parseRangeReference(ref: string): CellRange | undefined;
17
- declare function rangeReference(range: CellRange): string;
18
- //#endregion
19
- export { CellPosition, CellRange, cellReference, columnIndexToLetters, columnLettersToIndex, parseCellReference, parseRangeReference, rangeReference };
@@ -1,58 +0,0 @@
1
- //#region src/typed/xlsx/a1.ts
2
- const CELL_REFERENCE_RE = /^([A-Za-z]+)(\d+)$/;
3
- function columnLettersToIndex(letters) {
4
- if (letters.length === 0) return;
5
- let index = 0;
6
- for (const ch of letters.toUpperCase()) {
7
- const code = ch.charCodeAt(0);
8
- if (code < 65 || code > 90) return;
9
- index = index * 26 + (code - 64);
10
- }
11
- return index - 1;
12
- }
13
- function columnIndexToLetters(index) {
14
- let remaining = index + 1;
15
- let letters = "";
16
- while (remaining > 0) {
17
- const digit = (remaining - 1) % 26;
18
- letters = String.fromCharCode(65 + digit) + letters;
19
- remaining = Math.trunc((remaining - 1) / 26);
20
- }
21
- return letters;
22
- }
23
- function parseCellReference(ref) {
24
- const match = CELL_REFERENCE_RE.exec(ref);
25
- if (match === null) return;
26
- const letters = match[1];
27
- const digits = match[2];
28
- if (letters === void 0 || digits === void 0) return;
29
- const column = columnLettersToIndex(letters);
30
- const rowNumber = Number.parseInt(digits, 10);
31
- if (column === void 0 || !Number.isInteger(rowNumber) || rowNumber < 1) return;
32
- return {
33
- row: rowNumber - 1,
34
- column
35
- };
36
- }
37
- function cellReference(row, column) {
38
- return `${columnIndexToLetters(column)}${row + 1}`;
39
- }
40
- function parseRangeReference(ref) {
41
- const separatorIndex = ref.indexOf(":");
42
- const startRaw = separatorIndex === -1 ? ref : ref.slice(0, separatorIndex);
43
- const endRaw = separatorIndex === -1 ? ref : ref.slice(separatorIndex + 1);
44
- const start = parseCellReference(startRaw);
45
- const end = parseCellReference(endRaw);
46
- if (start === void 0 || end === void 0) return;
47
- return {
48
- startRow: Math.min(start.row, end.row),
49
- startColumn: Math.min(start.column, end.column),
50
- endRow: Math.max(start.row, end.row),
51
- endColumn: Math.max(start.column, end.column)
52
- };
53
- }
54
- function rangeReference(range) {
55
- return `${cellReference(range.startRow, range.startColumn)}:${cellReference(range.endRow, range.endColumn)}`;
56
- }
57
- //#endregion
58
- export { cellReference, columnIndexToLetters, columnLettersToIndex, parseCellReference, parseRangeReference, rangeReference };