@cj-tech-master/excelts 9.4.2 → 9.5.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.
- package/dist/browser/index.browser.d.ts +8 -5
- package/dist/browser/index.browser.js +19 -1
- package/dist/browser/index.d.ts +4 -2
- package/dist/browser/index.js +9 -1
- package/dist/browser/modules/excel/chart/cache-populator.d.ts +49 -0
- package/dist/browser/modules/excel/chart/cache-populator.js +1171 -0
- package/dist/browser/modules/excel/chart/chart-api.d.ts +92 -0
- package/dist/browser/modules/excel/chart/chart-api.js +364 -0
- package/dist/browser/modules/excel/chart/chart-builder.d.ts +48 -0
- package/dist/browser/modules/excel/chart/chart-builder.js +2432 -0
- package/dist/browser/modules/excel/chart/chart-ex-builder.d.ts +36 -0
- package/dist/browser/modules/excel/chart/chart-ex-builder.js +903 -0
- package/dist/browser/modules/excel/chart/chart-ex-parser.d.ts +8 -0
- package/dist/browser/modules/excel/chart/chart-ex-parser.js +1205 -0
- package/dist/browser/modules/excel/chart/chart-ex-renderer.d.ts +187 -0
- package/dist/browser/modules/excel/chart/chart-ex-renderer.js +5352 -0
- package/dist/browser/modules/excel/chart/chart-ex-types.d.ts +531 -0
- package/dist/browser/modules/excel/chart/chart-ex-types.js +11 -0
- package/dist/browser/modules/excel/chart/chart-images.d.ts +78 -0
- package/dist/browser/modules/excel/chart/chart-images.js +363 -0
- package/dist/browser/modules/excel/chart/chart-presets.d.ts +392 -0
- package/dist/browser/modules/excel/chart/chart-presets.js +179 -0
- package/dist/browser/modules/excel/chart/chart-renderer.d.ts +550 -0
- package/dist/browser/modules/excel/chart/chart-renderer.js +6440 -0
- package/dist/browser/modules/excel/chart/chart-sidecar.d.ts +21 -0
- package/dist/browser/modules/excel/chart/chart-sidecar.js +427 -0
- package/dist/browser/modules/excel/chart/chart-utils.d.ts +306 -0
- package/dist/browser/modules/excel/chart/chart-utils.js +821 -0
- package/dist/browser/modules/excel/chart/chart.d.ts +504 -0
- package/dist/browser/modules/excel/chart/chart.js +1320 -0
- package/dist/browser/modules/excel/chart/glyph-rasterizer.d.ts +62 -0
- package/dist/browser/modules/excel/chart/glyph-rasterizer.js +658 -0
- package/dist/browser/modules/excel/chart/index.d.ts +54 -0
- package/dist/browser/modules/excel/chart/index.js +46 -0
- package/dist/browser/modules/excel/chart/install.d.ts +44 -0
- package/dist/browser/modules/excel/chart/install.js +91 -0
- package/dist/browser/modules/excel/chart/shape-properties.d.ts +156 -0
- package/dist/browser/modules/excel/chart/shape-properties.js +1557 -0
- package/dist/browser/modules/excel/chart/stroke-font.d.ts +36 -0
- package/dist/browser/modules/excel/chart/stroke-font.js +1556 -0
- package/dist/browser/modules/excel/chart/topojson.d.ts +98 -0
- package/dist/browser/modules/excel/chart/topojson.js +236 -0
- package/dist/browser/modules/excel/chart/types.d.ts +2559 -0
- package/dist/browser/modules/excel/chart/types.js +8 -0
- package/dist/browser/modules/excel/chart-host-registry.d.ts +157 -0
- package/dist/browser/modules/excel/chart-host-registry.js +90 -0
- package/dist/browser/modules/excel/chartsheet.d.ts +102 -0
- package/dist/browser/modules/excel/chartsheet.js +196 -0
- package/dist/browser/modules/excel/defined-names.d.ts +35 -0
- package/dist/browser/modules/excel/defined-names.js +44 -4
- package/dist/browser/modules/excel/errors.d.ts +6 -0
- package/dist/browser/modules/excel/errors.js +9 -0
- package/dist/browser/modules/excel/form-control.d.ts +6 -0
- package/dist/browser/modules/excel/form-control.js +17 -0
- package/dist/browser/modules/excel/image.js +12 -2
- package/dist/browser/modules/excel/pivot-chart.d.ts +7 -0
- package/dist/browser/modules/excel/pivot-chart.js +53 -0
- package/dist/browser/modules/excel/pivot-table.d.ts +55 -0
- package/dist/browser/modules/excel/pivot-table.js +35 -0
- package/dist/browser/modules/excel/range.js +5 -1
- package/dist/browser/modules/excel/sparkline/index.d.ts +7 -0
- package/dist/browser/modules/excel/sparkline/index.js +7 -0
- package/dist/browser/modules/excel/sparkline/sparkline.d.ts +206 -0
- package/dist/browser/modules/excel/sparkline/sparkline.js +750 -0
- package/dist/browser/modules/excel/stream/worksheet-writer.js +3 -2
- package/dist/browser/modules/excel/table.js +42 -6
- package/dist/browser/modules/excel/types.d.ts +72 -0
- package/dist/browser/modules/excel/utils/address.d.ts +18 -0
- package/dist/browser/modules/excel/utils/address.js +28 -0
- package/dist/browser/modules/excel/utils/drawing-utils.js +11 -6
- package/dist/browser/modules/excel/utils/guid.d.ts +15 -0
- package/dist/browser/modules/excel/utils/guid.js +35 -0
- package/dist/browser/modules/excel/utils/ooxml-paths.d.ts +74 -0
- package/dist/browser/modules/excel/utils/ooxml-paths.js +206 -9
- package/dist/browser/modules/excel/utils/ooxml-validator/check-chart-sidecar.d.ts +35 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-chart-sidecar.js +101 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-chart.d.ts +32 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-chart.js +2125 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-chartsheet.d.ts +9 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-chartsheet.js +26 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-content-types.d.ts +16 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-content-types.js +181 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-drawing.d.ts +34 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-drawing.js +267 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-pivot.d.ts +14 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-pivot.js +104 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-relationships.d.ts +18 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-relationships.js +184 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-structure.d.ts +21 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-structure.js +56 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-styles.d.ts +15 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-styles.js +89 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-table.d.ts +31 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-table.js +177 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-workbook.d.ts +19 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-workbook.js +163 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-worksheet.d.ts +25 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-worksheet.js +569 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/context.d.ts +85 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/context.js +191 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/index.d.ts +31 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/index.js +102 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/path-utils.d.ts +67 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/path-utils.js +156 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/reporter.d.ts +41 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/reporter.js +61 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/types.d.ts +109 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/types.js +12 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/xml-utils.d.ts +38 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/xml-utils.js +100 -0
- package/dist/browser/modules/excel/workbook.browser.d.ts +248 -30
- package/dist/browser/modules/excel/workbook.browser.js +966 -31
- package/dist/browser/modules/excel/workbook.d.ts +43 -0
- package/dist/browser/modules/excel/workbook.js +48 -0
- package/dist/browser/modules/excel/worksheet.d.ts +157 -3
- package/dist/browser/modules/excel/worksheet.js +394 -35
- package/dist/browser/modules/excel/xlsx/rel-type.d.ts +40 -0
- package/dist/browser/modules/excel/xlsx/rel-type.js +41 -1
- package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +1 -0
- package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.js +11 -2
- package/dist/browser/modules/excel/xlsx/xform/book/external-link-xform.js +12 -10
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-xform.js +96 -22
- package/dist/browser/modules/excel/xlsx/xform/chart/chart-space-xform.d.ts +353 -0
- package/dist/browser/modules/excel/xlsx/xform/chart/chart-space-xform.js +6000 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/threaded-comments-xform.d.ts +60 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/threaded-comments-xform.js +213 -0
- package/dist/browser/modules/excel/xlsx/xform/core/content-types-xform.js +150 -11
- package/dist/browser/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +20 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +30 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.js +109 -5
- package/dist/browser/modules/excel/xlsx/xform/drawing/graphic-frame-xform.d.ts +54 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/graphic-frame-xform.js +225 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +3 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +18 -3
- package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +46 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +294 -12
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +13 -2
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +32 -6
- package/dist/browser/modules/excel/xlsx/xform/sheet/chartsheet-xform.d.ts +185 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/chartsheet-xform.js +441 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +51 -2
- package/dist/browser/modules/excel/xlsx/xform/sheet/worksheet-xform.js +196 -20
- package/dist/browser/modules/excel/xlsx/xform/table/auto-filter-xform.js +16 -1
- package/dist/browser/modules/excel/xlsx/xform/table/table-column-xform.js +17 -2
- package/dist/browser/modules/excel/xlsx/xform/xsd-values.d.ts +63 -0
- package/dist/browser/modules/excel/xlsx/xform/xsd-values.js +101 -0
- package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +115 -21
- package/dist/browser/modules/excel/xlsx/xlsx.browser.js +4422 -78
- package/dist/browser/modules/pdf/builder/document-builder.d.ts +74 -0
- package/dist/browser/modules/pdf/builder/document-builder.js +507 -2
- package/dist/browser/modules/pdf/builder/pdf-editor.js +48 -3
- package/dist/browser/modules/pdf/excel-bridge.d.ts +69 -0
- package/dist/browser/modules/pdf/excel-bridge.js +683 -12
- package/dist/browser/modules/pdf/font/font-manager.d.ts +25 -0
- package/dist/browser/modules/pdf/font/font-manager.js +39 -0
- package/dist/browser/modules/pdf/index.d.ts +5 -2
- package/dist/browser/modules/pdf/index.js +3 -1
- package/dist/browser/modules/pdf/render/chart-surface.d.ts +33 -0
- package/dist/browser/modules/pdf/render/chart-surface.js +200 -0
- package/dist/browser/modules/pdf/render/layout-engine.d.ts +22 -1
- package/dist/browser/modules/pdf/render/layout-engine.js +436 -56
- package/dist/browser/modules/pdf/render/page-renderer.js +169 -28
- package/dist/browser/modules/pdf/render/pdf-exporter.js +117 -7
- package/dist/browser/modules/pdf/types.d.ts +227 -23
- package/dist/browser/modules/pdf/types.js +4 -0
- package/dist/browser/modules/pdf/word-bridge.d.ts +47 -0
- package/dist/browser/modules/pdf/word-bridge.js +304 -0
- package/dist/browser/modules/word/constants.d.ts +179 -0
- package/dist/browser/modules/word/constants.js +231 -0
- package/dist/browser/modules/word/content-types.d.ts +27 -0
- package/dist/browser/modules/word/content-types.js +53 -0
- package/dist/browser/modules/word/digital-signatures.d.ts +87 -0
- package/dist/browser/modules/word/digital-signatures.js +134 -0
- package/dist/browser/modules/word/document.d.ts +728 -0
- package/dist/browser/modules/word/document.js +1795 -0
- package/dist/browser/modules/word/docx-packager.d.ts +14 -0
- package/dist/browser/modules/word/docx-packager.js +822 -0
- package/dist/browser/modules/word/docx-reader.d.ts +11 -0
- package/dist/browser/modules/word/docx-reader.js +4929 -0
- package/dist/browser/modules/word/encryption.d.ts +102 -0
- package/dist/browser/modules/word/encryption.js +274 -0
- package/dist/browser/modules/word/errors.d.ts +49 -0
- package/dist/browser/modules/word/errors.js +68 -0
- package/dist/browser/modules/word/font-obfuscation.d.ts +31 -0
- package/dist/browser/modules/word/font-obfuscation.js +83 -0
- package/dist/browser/modules/word/html-renderer.d.ts +38 -0
- package/dist/browser/modules/word/html-renderer.js +782 -0
- package/dist/browser/modules/word/index.base.d.ts +19 -0
- package/dist/browser/modules/word/index.base.js +51 -0
- package/dist/browser/modules/word/index.browser.d.ts +4 -0
- package/dist/browser/modules/word/index.browser.js +4 -0
- package/dist/browser/modules/word/index.d.ts +4 -0
- package/dist/browser/modules/word/index.js +4 -0
- package/dist/browser/modules/word/internal-utils.d.ts +23 -0
- package/dist/browser/modules/word/internal-utils.js +54 -0
- package/dist/browser/modules/word/relationships.d.ts +31 -0
- package/dist/browser/modules/word/relationships.js +56 -0
- package/dist/browser/modules/word/types.d.ts +2325 -0
- package/dist/browser/modules/word/types.js +10 -0
- package/dist/browser/modules/word/units.d.ts +49 -0
- package/dist/browser/modules/word/units.js +111 -0
- package/dist/browser/modules/word/writers/chart-writer.d.ts +10 -0
- package/dist/browser/modules/word/writers/chart-writer.js +385 -0
- package/dist/browser/modules/word/writers/checkbox-writer.d.ts +9 -0
- package/dist/browser/modules/word/writers/checkbox-writer.js +42 -0
- package/dist/browser/modules/word/writers/comment-writer.d.ts +15 -0
- package/dist/browser/modules/word/writers/comment-writer.js +70 -0
- package/dist/browser/modules/word/writers/document-writer.d.ts +16 -0
- package/dist/browser/modules/word/writers/document-writer.js +461 -0
- package/dist/browser/modules/word/writers/footnote-writer.d.ts +11 -0
- package/dist/browser/modules/word/writers/footnote-writer.js +72 -0
- package/dist/browser/modules/word/writers/header-footer-writer.d.ts +13 -0
- package/dist/browser/modules/word/writers/header-footer-writer.js +129 -0
- package/dist/browser/modules/word/writers/image-writer.d.ts +10 -0
- package/dist/browser/modules/word/writers/image-writer.js +185 -0
- package/dist/browser/modules/word/writers/math-writer.d.ts +9 -0
- package/dist/browser/modules/word/writers/math-writer.js +428 -0
- package/dist/browser/modules/word/writers/numbering-writer.d.ts +10 -0
- package/dist/browser/modules/word/writers/numbering-writer.js +125 -0
- package/dist/browser/modules/word/writers/paragraph-writer.d.ts +13 -0
- package/dist/browser/modules/word/writers/paragraph-writer.js +516 -0
- package/dist/browser/modules/word/writers/parts-writer.d.ts +26 -0
- package/dist/browser/modules/word/writers/parts-writer.js +660 -0
- package/dist/browser/modules/word/writers/run-writer.d.ts +15 -0
- package/dist/browser/modules/word/writers/run-writer.js +649 -0
- package/dist/browser/modules/word/writers/section-writer.d.ts +10 -0
- package/dist/browser/modules/word/writers/section-writer.js +238 -0
- package/dist/browser/modules/word/writers/styles-writer.d.ts +10 -0
- package/dist/browser/modules/word/writers/styles-writer.js +242 -0
- package/dist/browser/modules/word/writers/table-writer.d.ts +10 -0
- package/dist/browser/modules/word/writers/table-writer.js +503 -0
- package/dist/browser/modules/word/writers/textbox-writer.d.ts +9 -0
- package/dist/browser/modules/word/writers/textbox-writer.js +53 -0
- package/dist/browser/modules/word/writers/toc-writer.d.ts +9 -0
- package/dist/browser/modules/word/writers/toc-writer.js +79 -0
- package/dist/browser/modules/xml/encode.d.ts +56 -7
- package/dist/browser/modules/xml/encode.js +157 -11
- package/dist/cjs/index.js +13 -2
- package/dist/cjs/modules/excel/chart/cache-populator.js +1178 -0
- package/dist/cjs/modules/excel/chart/chart-api.js +371 -0
- package/dist/cjs/modules/excel/chart/chart-builder.js +2440 -0
- package/dist/cjs/modules/excel/chart/chart-ex-builder.js +907 -0
- package/dist/cjs/modules/excel/chart/chart-ex-parser.js +1208 -0
- package/dist/cjs/modules/excel/chart/chart-ex-renderer.js +5364 -0
- package/dist/cjs/modules/excel/chart/chart-ex-types.js +12 -0
- package/dist/cjs/modules/excel/chart/chart-images.js +366 -0
- package/dist/cjs/modules/excel/chart/chart-presets.js +184 -0
- package/dist/cjs/modules/excel/chart/chart-renderer.js +6450 -0
- package/dist/cjs/modules/excel/chart/chart-sidecar.js +433 -0
- package/dist/cjs/modules/excel/chart/chart-utils.js +845 -0
- package/dist/cjs/modules/excel/chart/chart.js +1324 -0
- package/dist/cjs/modules/excel/chart/glyph-rasterizer.js +664 -0
- package/dist/cjs/modules/excel/chart/index.js +101 -0
- package/dist/cjs/modules/excel/chart/install.js +95 -0
- package/dist/cjs/modules/excel/chart/shape-properties.js +1577 -0
- package/dist/cjs/modules/excel/chart/stroke-font.js +1559 -0
- package/dist/cjs/modules/excel/chart/topojson.js +239 -0
- package/dist/cjs/modules/excel/chart/types.js +9 -0
- package/dist/cjs/modules/excel/chart-host-registry.js +96 -0
- package/dist/cjs/modules/excel/chartsheet.js +199 -0
- package/dist/cjs/modules/excel/defined-names.js +44 -4
- package/dist/cjs/modules/excel/errors.js +11 -1
- package/dist/cjs/modules/excel/form-control.js +17 -0
- package/dist/cjs/modules/excel/image.js +12 -2
- package/dist/cjs/modules/excel/pivot-chart.js +56 -0
- package/dist/cjs/modules/excel/pivot-table.js +35 -0
- package/dist/cjs/modules/excel/range.js +5 -1
- package/dist/cjs/modules/excel/sparkline/index.js +23 -0
- package/dist/cjs/modules/excel/sparkline/sparkline.js +756 -0
- package/dist/cjs/modules/excel/stream/worksheet-writer.js +3 -2
- package/dist/cjs/modules/excel/table.js +42 -6
- package/dist/cjs/modules/excel/utils/address.js +29 -0
- package/dist/cjs/modules/excel/utils/drawing-utils.js +11 -6
- package/dist/cjs/modules/excel/utils/guid.js +38 -0
- package/dist/cjs/modules/excel/utils/ooxml-paths.js +246 -9
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-chart-sidecar.js +103 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-chart.js +2128 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-chartsheet.js +29 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-content-types.js +184 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-drawing.js +270 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-pivot.js +107 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-relationships.js +188 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-structure.js +60 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-styles.js +92 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-table.js +180 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-workbook.js +166 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-worksheet.js +572 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/context.js +196 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/index.js +105 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/path-utils.js +168 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/reporter.js +66 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/types.js +13 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/xml-utils.js +110 -0
- package/dist/cjs/modules/excel/workbook.browser.js +973 -38
- package/dist/cjs/modules/excel/workbook.js +48 -0
- package/dist/cjs/modules/excel/worksheet.js +393 -34
- package/dist/cjs/modules/excel/xlsx/rel-type.js +41 -1
- package/dist/cjs/modules/excel/xlsx/xform/book/defined-name-xform.js +11 -2
- package/dist/cjs/modules/excel/xlsx/xform/book/external-link-xform.js +12 -10
- package/dist/cjs/modules/excel/xlsx/xform/book/workbook-xform.js +96 -22
- package/dist/cjs/modules/excel/xlsx/xform/chart/chart-space-xform.js +6003 -0
- package/dist/cjs/modules/excel/xlsx/xform/comment/threaded-comments-xform.js +219 -0
- package/dist/cjs/modules/excel/xlsx/xform/core/content-types-xform.js +149 -10
- package/dist/cjs/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +20 -1
- package/dist/cjs/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/drawing/drawing-xform.js +109 -5
- package/dist/cjs/modules/excel/xlsx/xform/drawing/graphic-frame-xform.js +228 -0
- package/dist/cjs/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +18 -3
- package/dist/cjs/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +294 -12
- package/dist/cjs/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +32 -6
- package/dist/cjs/modules/excel/xlsx/xform/sheet/chartsheet-xform.js +444 -0
- package/dist/cjs/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +51 -2
- package/dist/cjs/modules/excel/xlsx/xform/sheet/worksheet-xform.js +195 -19
- package/dist/cjs/modules/excel/xlsx/xform/table/auto-filter-xform.js +16 -1
- package/dist/cjs/modules/excel/xlsx/xform/table/table-column-xform.js +17 -2
- package/dist/cjs/modules/excel/xlsx/xform/xsd-values.js +106 -0
- package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +4420 -76
- package/dist/cjs/modules/pdf/builder/document-builder.js +506 -1
- package/dist/cjs/modules/pdf/builder/pdf-editor.js +48 -3
- package/dist/cjs/modules/pdf/excel-bridge.js +684 -12
- package/dist/cjs/modules/pdf/font/font-manager.js +39 -0
- package/dist/cjs/modules/pdf/index.js +5 -1
- package/dist/cjs/modules/pdf/render/chart-surface.js +203 -0
- package/dist/cjs/modules/pdf/render/layout-engine.js +437 -56
- package/dist/cjs/modules/pdf/render/page-renderer.js +169 -28
- package/dist/cjs/modules/pdf/render/pdf-exporter.js +115 -5
- package/dist/cjs/modules/pdf/types.js +5 -0
- package/dist/cjs/modules/pdf/word-bridge.js +307 -0
- package/dist/cjs/modules/word/constants.js +234 -0
- package/dist/cjs/modules/word/content-types.js +57 -0
- package/dist/cjs/modules/word/digital-signatures.js +140 -0
- package/dist/cjs/modules/word/document.js +1909 -0
- package/dist/cjs/modules/word/docx-packager.js +825 -0
- package/dist/cjs/modules/word/docx-reader.js +4932 -0
- package/dist/cjs/modules/word/encryption.js +282 -0
- package/dist/cjs/modules/word/errors.js +88 -0
- package/dist/cjs/modules/word/font-obfuscation.js +88 -0
- package/dist/cjs/modules/word/html-renderer.js +785 -0
- package/dist/cjs/modules/word/index.base.js +199 -0
- package/dist/cjs/modules/word/index.browser.js +20 -0
- package/dist/cjs/modules/word/index.js +20 -0
- package/dist/cjs/modules/word/internal-utils.js +59 -0
- package/dist/cjs/modules/word/relationships.js +60 -0
- package/dist/cjs/modules/word/types.js +11 -0
- package/dist/cjs/modules/word/units.js +135 -0
- package/dist/cjs/modules/word/writers/chart-writer.js +388 -0
- package/dist/cjs/modules/word/writers/checkbox-writer.js +45 -0
- package/dist/cjs/modules/word/writers/comment-writer.js +74 -0
- package/dist/cjs/modules/word/writers/document-writer.js +465 -0
- package/dist/cjs/modules/word/writers/footnote-writer.js +76 -0
- package/dist/cjs/modules/word/writers/header-footer-writer.js +134 -0
- package/dist/cjs/modules/word/writers/image-writer.js +188 -0
- package/dist/cjs/modules/word/writers/math-writer.js +431 -0
- package/dist/cjs/modules/word/writers/numbering-writer.js +128 -0
- package/dist/cjs/modules/word/writers/paragraph-writer.js +521 -0
- package/dist/cjs/modules/word/writers/parts-writer.js +671 -0
- package/dist/cjs/modules/word/writers/run-writer.js +655 -0
- package/dist/cjs/modules/word/writers/section-writer.js +241 -0
- package/dist/cjs/modules/word/writers/styles-writer.js +245 -0
- package/dist/cjs/modules/word/writers/table-writer.js +506 -0
- package/dist/cjs/modules/word/writers/textbox-writer.js +56 -0
- package/dist/cjs/modules/word/writers/toc-writer.js +82 -0
- package/dist/cjs/modules/xml/encode.js +158 -11
- package/dist/esm/index.browser.js +20 -2
- package/dist/esm/index.js +9 -1
- package/dist/esm/modules/excel/chart/cache-populator.js +1171 -0
- package/dist/esm/modules/excel/chart/chart-api.js +364 -0
- package/dist/esm/modules/excel/chart/chart-builder.js +2432 -0
- package/dist/esm/modules/excel/chart/chart-ex-builder.js +903 -0
- package/dist/esm/modules/excel/chart/chart-ex-parser.js +1205 -0
- package/dist/esm/modules/excel/chart/chart-ex-renderer.js +5352 -0
- package/dist/esm/modules/excel/chart/chart-ex-types.js +11 -0
- package/dist/esm/modules/excel/chart/chart-images.js +363 -0
- package/dist/esm/modules/excel/chart/chart-presets.js +179 -0
- package/dist/esm/modules/excel/chart/chart-renderer.js +6440 -0
- package/dist/esm/modules/excel/chart/chart-sidecar.js +427 -0
- package/dist/esm/modules/excel/chart/chart-utils.js +821 -0
- package/dist/esm/modules/excel/chart/chart.js +1320 -0
- package/dist/esm/modules/excel/chart/glyph-rasterizer.js +658 -0
- package/dist/esm/modules/excel/chart/index.js +46 -0
- package/dist/esm/modules/excel/chart/install.js +91 -0
- package/dist/esm/modules/excel/chart/shape-properties.js +1557 -0
- package/dist/esm/modules/excel/chart/stroke-font.js +1556 -0
- package/dist/esm/modules/excel/chart/topojson.js +236 -0
- package/dist/esm/modules/excel/chart/types.js +8 -0
- package/dist/esm/modules/excel/chart-host-registry.js +90 -0
- package/dist/esm/modules/excel/chartsheet.js +196 -0
- package/dist/esm/modules/excel/defined-names.js +44 -4
- package/dist/esm/modules/excel/errors.js +9 -0
- package/dist/esm/modules/excel/form-control.js +17 -0
- package/dist/esm/modules/excel/image.js +12 -2
- package/dist/esm/modules/excel/pivot-chart.js +53 -0
- package/dist/esm/modules/excel/pivot-table.js +35 -0
- package/dist/esm/modules/excel/range.js +5 -1
- package/dist/esm/modules/excel/sparkline/index.js +7 -0
- package/dist/esm/modules/excel/sparkline/sparkline.js +750 -0
- package/dist/esm/modules/excel/stream/worksheet-writer.js +3 -2
- package/dist/esm/modules/excel/table.js +42 -6
- package/dist/esm/modules/excel/utils/address.js +28 -0
- package/dist/esm/modules/excel/utils/drawing-utils.js +11 -6
- package/dist/esm/modules/excel/utils/guid.js +35 -0
- package/dist/esm/modules/excel/utils/ooxml-paths.js +206 -9
- package/dist/esm/modules/excel/utils/ooxml-validator/check-chart-sidecar.js +101 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-chart.js +2125 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-chartsheet.js +26 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-content-types.js +181 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-drawing.js +267 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-pivot.js +104 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-relationships.js +184 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-structure.js +56 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-styles.js +89 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-table.js +177 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-workbook.js +163 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-worksheet.js +569 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/context.js +191 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/index.js +102 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/path-utils.js +156 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/reporter.js +61 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/types.js +12 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/xml-utils.js +100 -0
- package/dist/esm/modules/excel/workbook.browser.js +969 -34
- package/dist/esm/modules/excel/workbook.js +48 -0
- package/dist/esm/modules/excel/worksheet.js +394 -35
- package/dist/esm/modules/excel/xlsx/rel-type.js +41 -1
- package/dist/esm/modules/excel/xlsx/xform/book/defined-name-xform.js +11 -2
- package/dist/esm/modules/excel/xlsx/xform/book/external-link-xform.js +12 -10
- package/dist/esm/modules/excel/xlsx/xform/book/workbook-xform.js +96 -22
- package/dist/esm/modules/excel/xlsx/xform/chart/chart-space-xform.js +6000 -0
- package/dist/esm/modules/excel/xlsx/xform/comment/threaded-comments-xform.js +213 -0
- package/dist/esm/modules/excel/xlsx/xform/core/content-types-xform.js +150 -11
- package/dist/esm/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +20 -1
- package/dist/esm/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/drawing/drawing-xform.js +109 -5
- package/dist/esm/modules/excel/xlsx/xform/drawing/graphic-frame-xform.js +225 -0
- package/dist/esm/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +18 -3
- package/dist/esm/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +294 -12
- package/dist/esm/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +32 -6
- package/dist/esm/modules/excel/xlsx/xform/sheet/chartsheet-xform.js +441 -0
- package/dist/esm/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +51 -2
- package/dist/esm/modules/excel/xlsx/xform/sheet/worksheet-xform.js +196 -20
- package/dist/esm/modules/excel/xlsx/xform/table/auto-filter-xform.js +16 -1
- package/dist/esm/modules/excel/xlsx/xform/table/table-column-xform.js +17 -2
- package/dist/esm/modules/excel/xlsx/xform/xsd-values.js +101 -0
- package/dist/esm/modules/excel/xlsx/xlsx.browser.js +4422 -78
- package/dist/esm/modules/pdf/builder/document-builder.js +507 -2
- package/dist/esm/modules/pdf/builder/pdf-editor.js +48 -3
- package/dist/esm/modules/pdf/excel-bridge.js +683 -12
- package/dist/esm/modules/pdf/font/font-manager.js +39 -0
- package/dist/esm/modules/pdf/index.js +3 -1
- package/dist/esm/modules/pdf/render/chart-surface.js +200 -0
- package/dist/esm/modules/pdf/render/layout-engine.js +436 -56
- package/dist/esm/modules/pdf/render/page-renderer.js +169 -28
- package/dist/esm/modules/pdf/render/pdf-exporter.js +117 -7
- package/dist/esm/modules/pdf/types.js +4 -0
- package/dist/esm/modules/pdf/word-bridge.js +304 -0
- package/dist/esm/modules/word/constants.js +231 -0
- package/dist/esm/modules/word/content-types.js +53 -0
- package/dist/esm/modules/word/digital-signatures.js +134 -0
- package/dist/esm/modules/word/document.js +1795 -0
- package/dist/esm/modules/word/docx-packager.js +822 -0
- package/dist/esm/modules/word/docx-reader.js +4929 -0
- package/dist/esm/modules/word/encryption.js +274 -0
- package/dist/esm/modules/word/errors.js +68 -0
- package/dist/esm/modules/word/font-obfuscation.js +83 -0
- package/dist/esm/modules/word/html-renderer.js +782 -0
- package/dist/esm/modules/word/index.base.js +51 -0
- package/dist/esm/modules/word/index.browser.js +4 -0
- package/dist/esm/modules/word/index.js +4 -0
- package/dist/esm/modules/word/internal-utils.js +54 -0
- package/dist/esm/modules/word/relationships.js +56 -0
- package/dist/esm/modules/word/types.js +10 -0
- package/dist/esm/modules/word/units.js +111 -0
- package/dist/esm/modules/word/writers/chart-writer.js +385 -0
- package/dist/esm/modules/word/writers/checkbox-writer.js +42 -0
- package/dist/esm/modules/word/writers/comment-writer.js +70 -0
- package/dist/esm/modules/word/writers/document-writer.js +461 -0
- package/dist/esm/modules/word/writers/footnote-writer.js +72 -0
- package/dist/esm/modules/word/writers/header-footer-writer.js +129 -0
- package/dist/esm/modules/word/writers/image-writer.js +185 -0
- package/dist/esm/modules/word/writers/math-writer.js +428 -0
- package/dist/esm/modules/word/writers/numbering-writer.js +125 -0
- package/dist/esm/modules/word/writers/paragraph-writer.js +516 -0
- package/dist/esm/modules/word/writers/parts-writer.js +660 -0
- package/dist/esm/modules/word/writers/run-writer.js +649 -0
- package/dist/esm/modules/word/writers/section-writer.js +238 -0
- package/dist/esm/modules/word/writers/styles-writer.js +242 -0
- package/dist/esm/modules/word/writers/table-writer.js +503 -0
- package/dist/esm/modules/word/writers/textbox-writer.js +53 -0
- package/dist/esm/modules/word/writers/toc-writer.js +79 -0
- package/dist/esm/modules/xml/encode.js +157 -11
- package/dist/iife/excelts.iife.js +11789 -687
- package/dist/iife/excelts.iife.js.map +1 -1
- package/dist/iife/excelts.iife.min.js +52 -44
- package/dist/types/index.browser.d.ts +8 -5
- package/dist/types/index.d.ts +4 -2
- package/dist/types/modules/excel/chart/cache-populator.d.ts +49 -0
- package/dist/types/modules/excel/chart/chart-api.d.ts +92 -0
- package/dist/types/modules/excel/chart/chart-builder.d.ts +48 -0
- package/dist/types/modules/excel/chart/chart-ex-builder.d.ts +36 -0
- package/dist/types/modules/excel/chart/chart-ex-parser.d.ts +8 -0
- package/dist/types/modules/excel/chart/chart-ex-renderer.d.ts +187 -0
- package/dist/types/modules/excel/chart/chart-ex-types.d.ts +531 -0
- package/dist/types/modules/excel/chart/chart-images.d.ts +78 -0
- package/dist/types/modules/excel/chart/chart-presets.d.ts +392 -0
- package/dist/types/modules/excel/chart/chart-renderer.d.ts +550 -0
- package/dist/types/modules/excel/chart/chart-sidecar.d.ts +21 -0
- package/dist/types/modules/excel/chart/chart-utils.d.ts +306 -0
- package/dist/types/modules/excel/chart/chart.d.ts +504 -0
- package/dist/types/modules/excel/chart/glyph-rasterizer.d.ts +62 -0
- package/dist/types/modules/excel/chart/index.d.ts +54 -0
- package/dist/types/modules/excel/chart/install.d.ts +44 -0
- package/dist/types/modules/excel/chart/shape-properties.d.ts +156 -0
- package/dist/types/modules/excel/chart/stroke-font.d.ts +36 -0
- package/dist/types/modules/excel/chart/topojson.d.ts +98 -0
- package/dist/types/modules/excel/chart/types.d.ts +2559 -0
- package/dist/types/modules/excel/chart-host-registry.d.ts +157 -0
- package/dist/types/modules/excel/chartsheet.d.ts +102 -0
- package/dist/types/modules/excel/defined-names.d.ts +35 -0
- package/dist/types/modules/excel/errors.d.ts +6 -0
- package/dist/types/modules/excel/form-control.d.ts +6 -0
- package/dist/types/modules/excel/pivot-chart.d.ts +7 -0
- package/dist/types/modules/excel/pivot-table.d.ts +55 -0
- package/dist/types/modules/excel/sparkline/index.d.ts +7 -0
- package/dist/types/modules/excel/sparkline/sparkline.d.ts +206 -0
- package/dist/types/modules/excel/types.d.ts +72 -0
- package/dist/types/modules/excel/utils/address.d.ts +18 -0
- package/dist/types/modules/excel/utils/guid.d.ts +15 -0
- package/dist/types/modules/excel/utils/ooxml-paths.d.ts +74 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-chart-sidecar.d.ts +35 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-chart.d.ts +32 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-chartsheet.d.ts +9 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-content-types.d.ts +16 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-drawing.d.ts +34 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-pivot.d.ts +14 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-relationships.d.ts +18 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-structure.d.ts +21 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-styles.d.ts +15 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-table.d.ts +31 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-workbook.d.ts +19 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-worksheet.d.ts +25 -0
- package/dist/types/modules/excel/utils/ooxml-validator/context.d.ts +85 -0
- package/dist/types/modules/excel/utils/ooxml-validator/index.d.ts +31 -0
- package/dist/types/modules/excel/utils/ooxml-validator/path-utils.d.ts +67 -0
- package/dist/types/modules/excel/utils/ooxml-validator/reporter.d.ts +41 -0
- package/dist/types/modules/excel/utils/ooxml-validator/types.d.ts +109 -0
- package/dist/types/modules/excel/utils/ooxml-validator/xml-utils.d.ts +38 -0
- package/dist/types/modules/excel/workbook.browser.d.ts +248 -30
- package/dist/types/modules/excel/workbook.d.ts +43 -0
- package/dist/types/modules/excel/worksheet.d.ts +157 -3
- package/dist/types/modules/excel/xlsx/rel-type.d.ts +40 -0
- package/dist/types/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +1 -0
- package/dist/types/modules/excel/xlsx/xform/chart/chart-space-xform.d.ts +353 -0
- package/dist/types/modules/excel/xlsx/xform/comment/threaded-comments-xform.d.ts +60 -0
- package/dist/types/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +30 -0
- package/dist/types/modules/excel/xlsx/xform/drawing/graphic-frame-xform.d.ts +54 -0
- package/dist/types/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +3 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +46 -0
- package/dist/types/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +13 -2
- package/dist/types/modules/excel/xlsx/xform/sheet/chartsheet-xform.d.ts +185 -0
- package/dist/types/modules/excel/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -0
- package/dist/types/modules/excel/xlsx/xform/xsd-values.d.ts +63 -0
- package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +115 -21
- package/dist/types/modules/pdf/builder/document-builder.d.ts +74 -0
- package/dist/types/modules/pdf/excel-bridge.d.ts +69 -0
- package/dist/types/modules/pdf/font/font-manager.d.ts +25 -0
- package/dist/types/modules/pdf/index.d.ts +5 -2
- package/dist/types/modules/pdf/render/chart-surface.d.ts +33 -0
- package/dist/types/modules/pdf/render/layout-engine.d.ts +22 -1
- package/dist/types/modules/pdf/types.d.ts +227 -23
- package/dist/types/modules/pdf/word-bridge.d.ts +47 -0
- package/dist/types/modules/word/constants.d.ts +179 -0
- package/dist/types/modules/word/content-types.d.ts +27 -0
- package/dist/types/modules/word/digital-signatures.d.ts +87 -0
- package/dist/types/modules/word/document.d.ts +728 -0
- package/dist/types/modules/word/docx-packager.d.ts +14 -0
- package/dist/types/modules/word/docx-reader.d.ts +11 -0
- package/dist/types/modules/word/encryption.d.ts +102 -0
- package/dist/types/modules/word/errors.d.ts +49 -0
- package/dist/types/modules/word/font-obfuscation.d.ts +31 -0
- package/dist/types/modules/word/html-renderer.d.ts +38 -0
- package/dist/types/modules/word/index.base.d.ts +19 -0
- package/dist/types/modules/word/index.browser.d.ts +4 -0
- package/dist/types/modules/word/index.d.ts +4 -0
- package/dist/types/modules/word/internal-utils.d.ts +23 -0
- package/dist/types/modules/word/relationships.d.ts +31 -0
- package/dist/types/modules/word/types.d.ts +2325 -0
- package/dist/types/modules/word/units.d.ts +49 -0
- package/dist/types/modules/word/writers/chart-writer.d.ts +10 -0
- package/dist/types/modules/word/writers/checkbox-writer.d.ts +9 -0
- package/dist/types/modules/word/writers/comment-writer.d.ts +15 -0
- package/dist/types/modules/word/writers/document-writer.d.ts +16 -0
- package/dist/types/modules/word/writers/footnote-writer.d.ts +11 -0
- package/dist/types/modules/word/writers/header-footer-writer.d.ts +13 -0
- package/dist/types/modules/word/writers/image-writer.d.ts +10 -0
- package/dist/types/modules/word/writers/math-writer.d.ts +9 -0
- package/dist/types/modules/word/writers/numbering-writer.d.ts +10 -0
- package/dist/types/modules/word/writers/paragraph-writer.d.ts +13 -0
- package/dist/types/modules/word/writers/parts-writer.d.ts +26 -0
- package/dist/types/modules/word/writers/run-writer.d.ts +15 -0
- package/dist/types/modules/word/writers/section-writer.d.ts +10 -0
- package/dist/types/modules/word/writers/styles-writer.d.ts +10 -0
- package/dist/types/modules/word/writers/table-writer.d.ts +10 -0
- package/dist/types/modules/word/writers/textbox-writer.d.ts +9 -0
- package/dist/types/modules/word/writers/toc-writer.d.ts +9 -0
- package/dist/types/modules/xml/encode.d.ts +56 -7
- package/package.json +29 -11
- package/dist/browser/modules/excel/utils/ooxml-validator.d.ts +0 -48
- package/dist/browser/modules/excel/utils/ooxml-validator.js +0 -493
- package/dist/browser/modules/excel/utils/passthrough-manager.d.ts +0 -77
- package/dist/browser/modules/excel/utils/passthrough-manager.js +0 -129
- package/dist/cjs/modules/excel/utils/ooxml-validator.js +0 -499
- package/dist/cjs/modules/excel/utils/passthrough-manager.js +0 -133
- package/dist/esm/modules/excel/utils/ooxml-validator.js +0 -493
- package/dist/esm/modules/excel/utils/passthrough-manager.js +0 -129
- package/dist/types/modules/excel/utils/ooxml-validator.d.ts +0 -48
- package/dist/types/modules/excel/utils/passthrough-manager.d.ts +0 -77
|
@@ -379,6 +379,78 @@ export interface Comment {
|
|
|
379
379
|
margins?: Partial<CommentMargins>;
|
|
380
380
|
protection?: Partial<CommentProtection>;
|
|
381
381
|
editAs?: CommentEditAs;
|
|
382
|
+
/**
|
|
383
|
+
* Office 365 threaded-comment conversation anchored at the same
|
|
384
|
+
* cell. When present, Excel surfaces the modern reply UI; the
|
|
385
|
+
* classic VML note still renders as a fallback for older viewers.
|
|
386
|
+
*
|
|
387
|
+
* The first entry in the list is the top-level comment; subsequent
|
|
388
|
+
* entries with `parentId === first.id` are replies to it. Nested
|
|
389
|
+
* threads beyond two levels are not supported by Excel itself.
|
|
390
|
+
*/
|
|
391
|
+
threadedComments?: ThreadedComment[];
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* A single entry in a threaded-comment conversation
|
|
395
|
+
* (`xl/threadedComments/threadedComment{N}.xml` →
|
|
396
|
+
* `<threadedComment ref="…" personId="…" id="…" parentId="…">`).
|
|
397
|
+
*
|
|
398
|
+
* `id` is a GUID-braced string Excel expects to uniquely identify the
|
|
399
|
+
* comment within the sheet; callers may omit it and let the writer
|
|
400
|
+
* synthesise one. `personId` must reference an entry in the
|
|
401
|
+
* workbook-level {@link ThreadedCommentPerson} list — the writer
|
|
402
|
+
* enforces this by adding any dangling `personId` to the list with a
|
|
403
|
+
* placeholder displayName.
|
|
404
|
+
*/
|
|
405
|
+
export interface ThreadedComment {
|
|
406
|
+
/** `{GUID}`-style id; auto-generated if absent. */
|
|
407
|
+
id?: string;
|
|
408
|
+
/**
|
|
409
|
+
* Id of the parent comment when this entry is a reply. Absent for
|
|
410
|
+
* top-level comments.
|
|
411
|
+
*/
|
|
412
|
+
parentId?: string;
|
|
413
|
+
/** Reference to the author in the workbook persons list. */
|
|
414
|
+
personId: string;
|
|
415
|
+
/** Creation timestamp as an ISO-8601 string. */
|
|
416
|
+
date?: string;
|
|
417
|
+
/** Plain-text body. @mentions are expressed separately via {@link mentions}. */
|
|
418
|
+
text: string;
|
|
419
|
+
/**
|
|
420
|
+
* Structured `@mention` markers inside `text`. `startIndex`/`length`
|
|
421
|
+
* point at the substring Excel shows as a clickable mention.
|
|
422
|
+
*/
|
|
423
|
+
mentions?: ThreadedCommentMention[];
|
|
424
|
+
/**
|
|
425
|
+
* Whether Excel marks this comment as "resolved". Corresponds to
|
|
426
|
+
* `done="1"` on the commentExt element. When undefined, Excel treats
|
|
427
|
+
* the thread as open.
|
|
428
|
+
*/
|
|
429
|
+
done?: boolean;
|
|
430
|
+
}
|
|
431
|
+
export interface ThreadedCommentMention {
|
|
432
|
+
mentionId?: string;
|
|
433
|
+
mentionPersonId: string;
|
|
434
|
+
startIndex: number;
|
|
435
|
+
length: number;
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Workbook-level person directory referenced by threaded comments.
|
|
439
|
+
* Written as `xl/persons/person.xml`; one `<person>` element per
|
|
440
|
+
* unique commenter.
|
|
441
|
+
*/
|
|
442
|
+
export interface ThreadedCommentPerson {
|
|
443
|
+
/** `{GUID}`-style id referenced by `threadedComment/@personId`. */
|
|
444
|
+
id: string;
|
|
445
|
+
/** Display name shown in the UI (e.g. "Jane Doe"). */
|
|
446
|
+
displayName: string;
|
|
447
|
+
/** Provider user id (e.g. "jane@example.com", "S-1-5-…"). */
|
|
448
|
+
userId?: string;
|
|
449
|
+
/**
|
|
450
|
+
* Identity provider — "AD" (Active Directory), "PeoplePicker",
|
|
451
|
+
* "None". Excel preserves unknown values verbatim.
|
|
452
|
+
*/
|
|
453
|
+
providerId?: string;
|
|
382
454
|
}
|
|
383
455
|
export type DataValidationOperator = "between" | "notBetween" | "equal" | "notEqual" | "greaterThan" | "lessThan" | "greaterThanOrEqual" | "lessThanOrEqual";
|
|
384
456
|
/** Base properties shared by all data validation types */
|
|
@@ -74,3 +74,21 @@ export declare function decodeRange(range: string): SheetRange;
|
|
|
74
74
|
*/
|
|
75
75
|
export declare function encodeRange(range: SheetRange): string;
|
|
76
76
|
export declare function encodeRange(start: CellAddress, end: CellAddress): string;
|
|
77
|
+
/**
|
|
78
|
+
* Excel allows unquoted sheet names only when they consist entirely of
|
|
79
|
+
* ASCII letters, digits, and underscores *and* do not start with a digit.
|
|
80
|
+
* Any sheet name with a space, dot, comma, bracket, `&`, CJK character,
|
|
81
|
+
* or any other non-trivial symbol must be wrapped in single quotes, with
|
|
82
|
+
* existing single quotes doubled.
|
|
83
|
+
*
|
|
84
|
+
* Shared helper so chart-api, pivot-chart, cache-populator, and the XForm
|
|
85
|
+
* layer all agree on the rule — before this was unified, three callers
|
|
86
|
+
* in the chart module used three different regexes, producing divergent
|
|
87
|
+
* formula strings for sheet names with punctuation.
|
|
88
|
+
*
|
|
89
|
+
* @example quoteSheetName("Sheet1") // "Sheet1"
|
|
90
|
+
* @example quoteSheetName("My Sheet") // "'My Sheet'"
|
|
91
|
+
* @example quoteSheetName("It's Fine") // "'It''s Fine'"
|
|
92
|
+
* @example quoteSheetName("2023 Data") // "'2023 Data'" (leading digit → quoted)
|
|
93
|
+
*/
|
|
94
|
+
export declare function quoteSheetName(sheetName: string): string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GUID helpers for OOXML.
|
|
3
|
+
*
|
|
4
|
+
* Office parts that need stable cross-reference ids (threaded comments,
|
|
5
|
+
* chart uniqueIds, slicer caches, …) use the canonical Microsoft
|
|
6
|
+
* `{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}` format — 32 uppercase hex
|
|
7
|
+
* characters split into 8-4-4-4-12 groups, surrounded by braces.
|
|
8
|
+
*
|
|
9
|
+
* `synthGuid()` returns an RFC-4122 version-4-compatible value suitable
|
|
10
|
+
* for those callers. We don't use `crypto.randomUUID()` directly because
|
|
11
|
+
* it isn't available in every supported runtime (older Node without
|
|
12
|
+
* `node:crypto` globals); `Math.random` is good enough for uniqueness
|
|
13
|
+
* within a single workbook, which is the only thing Office cares about.
|
|
14
|
+
*/
|
|
15
|
+
export declare function synthGuid(): string;
|
|
@@ -21,6 +21,14 @@ export declare function getThemeNameFromPath(path: string): string | undefined;
|
|
|
21
21
|
export declare function isBinaryEntryPath(path: string): boolean;
|
|
22
22
|
export declare function getDrawingNameFromPath(path: string): string | undefined;
|
|
23
23
|
export declare function getDrawingNameFromRelsPath(path: string): string | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Canonical filename stem for a chart-overlay drawing part — used by
|
|
26
|
+
* the reader to recognise `xl/drawings/chartUserShapeN.xml` entries
|
|
27
|
+
* and stash their bytes for post-load reconciliation onto the owning
|
|
28
|
+
* chart. Returns `undefined` for any other path, including regular
|
|
29
|
+
* worksheet drawings (those go through {@link getDrawingNameFromPath}).
|
|
30
|
+
*/
|
|
31
|
+
export declare function getChartUserShapesNameFromPath(path: string): string | undefined;
|
|
24
32
|
export declare function getVmlDrawingNameFromPath(path: string): string | undefined;
|
|
25
33
|
export declare function getVmlDrawingHFNameFromPath(path: string): string | undefined;
|
|
26
34
|
/**
|
|
@@ -52,6 +60,22 @@ export declare function worksheetRelsPath(sheetId: number | string): string;
|
|
|
52
60
|
export declare function worksheetRelTarget(sheetId: number | string): string;
|
|
53
61
|
export declare function commentsPath(sheetId: number | string): string;
|
|
54
62
|
export declare function commentsPathFromName(commentName: string): string;
|
|
63
|
+
/**
|
|
64
|
+
* Modern Office 365 "threaded comments" — separate from classic VML
|
|
65
|
+
* comments. Each worksheet that uses threaded comments has its own
|
|
66
|
+
* `xl/threadedComments/threadedComment{N}.xml` part alongside the
|
|
67
|
+
* legacy `xl/comments{N}.xml` (classic comments carry a fallback text
|
|
68
|
+
* representation, threaded comments carry the conversation tree).
|
|
69
|
+
*/
|
|
70
|
+
export declare function threadedCommentsPath(sheetId: number | string): string;
|
|
71
|
+
export declare function threadedCommentsPathFromName(name: string): string;
|
|
72
|
+
/**
|
|
73
|
+
* Modern Office 365 "persons" list — the directory of commenters
|
|
74
|
+
* referenced by `threadedComment/@personId`. Workbook-level single
|
|
75
|
+
* part (`xl/persons/person.xml` is the conventional filename for the
|
|
76
|
+
* primary, rarely-duplicated list).
|
|
77
|
+
*/
|
|
78
|
+
export declare function personsPath(): string;
|
|
55
79
|
export declare function vmlDrawingPath(sheetId: number | string): string;
|
|
56
80
|
export declare function vmlDrawingHFPath(sheetId: number | string): string;
|
|
57
81
|
export declare function vmlDrawingHFRelsPath(sheetId: number | string): string;
|
|
@@ -89,6 +113,50 @@ export declare function pivotTableRelTargetFromWorksheet(n: number | string): st
|
|
|
89
113
|
export declare function tableRelTargetFromWorksheet(target: string): string;
|
|
90
114
|
export declare function mediaRelTargetFromRels(filename: string): string;
|
|
91
115
|
export declare function ctrlPropPath(id: number | string): string;
|
|
116
|
+
export declare function getChartNumberFromPath(path: string): number | undefined;
|
|
117
|
+
export declare function getChartNumberFromRelsPath(path: string): number | undefined;
|
|
118
|
+
export declare function getChartStyleNumberFromPath(path: string): number | undefined;
|
|
119
|
+
export declare function getChartColorsNumberFromPath(path: string): number | undefined;
|
|
120
|
+
export declare function getChartExStyleNumberFromPath(path: string): number | undefined;
|
|
121
|
+
export declare function getChartExColorsNumberFromPath(path: string): number | undefined;
|
|
122
|
+
export declare function chartPath(n: number | string): string;
|
|
123
|
+
export declare function chartRelsPath(n: number | string): string;
|
|
124
|
+
export declare function chartStylePath(n: number | string): string;
|
|
125
|
+
export declare function chartColorsPath(n: number | string): string;
|
|
126
|
+
export declare function chartExStylePath(n: number | string): string;
|
|
127
|
+
export declare function chartExColorsPath(n: number | string): string;
|
|
128
|
+
export declare function chartRelTargetFromDrawing(n: number | string): string;
|
|
129
|
+
/**
|
|
130
|
+
* Path of the DrawingML overlay part backing a chart's `c:userShapes`
|
|
131
|
+
* reference. Placed under `xl/drawings/` with a `chartUserShape` prefix
|
|
132
|
+
* (rather than sharing the regular `drawingN` pool) so the writer can
|
|
133
|
+
* allocate it by chart number without colliding with worksheet
|
|
134
|
+
* drawings. Excel itself is indifferent to the part path — only the
|
|
135
|
+
* rel target matters — so files loaded with a different original
|
|
136
|
+
* path are renamed on write.
|
|
137
|
+
*/
|
|
138
|
+
export declare function chartUserShapesPath(n: number | string): string;
|
|
139
|
+
/**
|
|
140
|
+
* Target path emitted inside `xl/charts/_rels/chartN.xml.rels` for the
|
|
141
|
+
* user-shapes drawing part. Resolved relative to the rels file's
|
|
142
|
+
* base directory (`xl/charts/`).
|
|
143
|
+
*/
|
|
144
|
+
export declare function chartUserShapesRelTarget(n: number | string): string;
|
|
145
|
+
export declare function chartStyleRelTarget(n: number | string): string;
|
|
146
|
+
export declare function chartColorsRelTarget(n: number | string): string;
|
|
147
|
+
export declare function chartExStyleRelTarget(n: number | string): string;
|
|
148
|
+
export declare function chartExColorsRelTarget(n: number | string): string;
|
|
149
|
+
export declare function isChartPath(path: string): boolean;
|
|
150
|
+
export declare function isChartStylePath(path: string): boolean;
|
|
151
|
+
export declare function isChartColorsPath(path: string): boolean;
|
|
152
|
+
export declare function isChartRelsPath(path: string): boolean;
|
|
153
|
+
export declare function getChartExNumberFromPath(path: string): number | undefined;
|
|
154
|
+
export declare function getChartExNumberFromRelsPath(path: string): number | undefined;
|
|
155
|
+
export declare function chartExPath(n: number | string): string;
|
|
156
|
+
export declare function chartExRelsPath(n: number | string): string;
|
|
157
|
+
export declare function chartExRelTargetFromDrawing(n: number | string): string;
|
|
158
|
+
export declare function isChartExPath(path: string): boolean;
|
|
159
|
+
export declare function isChartExRelsPath(path: string): boolean;
|
|
92
160
|
export declare function ctrlPropRelTargetFromWorksheet(id: number | string): string;
|
|
93
161
|
/**
|
|
94
162
|
* Resolve a relationship Target (relative or absolute) to a normalized zip path.
|
|
@@ -101,3 +169,9 @@ export declare function ctrlPropRelTargetFromWorksheet(id: number | string): str
|
|
|
101
169
|
* @param target The raw Target value from the .rels file
|
|
102
170
|
*/
|
|
103
171
|
export declare function resolveRelTarget(baseDir: string, target: string): string;
|
|
172
|
+
export declare function getChartsheetNoFromPath(path: string): number | undefined;
|
|
173
|
+
export declare function getChartsheetNoFromRelsPath(path: string): number | undefined;
|
|
174
|
+
export declare function chartsheetPath(n: number | string): string;
|
|
175
|
+
export declare function chartsheetRelsPath(n: number | string): string;
|
|
176
|
+
export declare function isChartsheetPath(path: string): boolean;
|
|
177
|
+
export declare function isChartsheetRelsPath(path: string): boolean;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChartEx sidecar completeness check.
|
|
3
|
+
*
|
|
4
|
+
* Every ChartEx `xl/charts/chartExN.xml` MUST ship with a chartStyle
|
|
5
|
+
* sidecar (`xl/charts/styleN.xml` or `xl/charts/styleExN.xml`) and a
|
|
6
|
+
* chartColorStyle sidecar (`xl/charts/colorsN.xml` or
|
|
7
|
+
* `xl/charts/colorsExN.xml`), linked from `chartExN.xml.rels`. Without
|
|
8
|
+
* them Excel 2016+ discards the chartEx on load ("Removed Part:
|
|
9
|
+
* /xl/drawings/drawingN.xml (Drawing shape)").
|
|
10
|
+
*
|
|
11
|
+
* Both sidecars are STUB-REJECTED **for chartEx** — an id-only
|
|
12
|
+
* skeleton such as `<cs:chartStyle id="395"/>` (no child elements)
|
|
13
|
+
* makes Excel treat the sidecar as malformed and drop the parent
|
|
14
|
+
* chartEx + drawing. Excel authoring tools emit the FULL content: ~40
|
|
15
|
+
* child elements for chartStyle (axisTitle, dataPoint, dataLabel, …)
|
|
16
|
+
* and 6 `schemeClr` entries each with 9 `variation` siblings for
|
|
17
|
+
* chartColorStyle.
|
|
18
|
+
*
|
|
19
|
+
* CLASSIC charts (`xl/charts/chartN.xml`) can share the chartStyle
|
|
20
|
+
* namespace but Excel is lenient there — classic chart style stubs
|
|
21
|
+
* are accepted. We therefore only enforce the no-stub rule on
|
|
22
|
+
* sidecars **referenced by a `chartExN.xml` part** via its rels.
|
|
23
|
+
*
|
|
24
|
+
* The precise content is too intricate to validate without baking
|
|
25
|
+
* ~1500 lines of template XML into this module. Instead we detect the
|
|
26
|
+
* two high-signal stub patterns:
|
|
27
|
+
*
|
|
28
|
+
* - chartStyle root element has zero element children (pure stub).
|
|
29
|
+
* - chartColorStyle root element has zero element children (pure stub).
|
|
30
|
+
*
|
|
31
|
+
* A rich sidecar trivially has dozens of children so the zero-child
|
|
32
|
+
* case is a strong writer-bug signature.
|
|
33
|
+
*/
|
|
34
|
+
import { type ValidationContext } from "./context.js";
|
|
35
|
+
export declare function checkChartSidecars(ctx: ValidationContext): void;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chart / chartEx internal structure check.
|
|
3
|
+
*
|
|
4
|
+
* Classic charts (`xl/charts/chartN.xml`) must contain both `c:chart` and
|
|
5
|
+
* `c:plotArea`. ChartEx charts must contain `cx:chart`, `cx:plotArea`
|
|
6
|
+
* and at least one `cx:series`; series must carry `layoutId` and their
|
|
7
|
+
* `dataId`/`axisId` back-references must resolve inside the chart.
|
|
8
|
+
* `cx:externalData` nodes must refer to a declared relationship.
|
|
9
|
+
*
|
|
10
|
+
* In addition we catch five chartEx schema-violation patterns that
|
|
11
|
+
* cause Excel 2016+ to drop the whole chartEx part with "Removed Part:
|
|
12
|
+
* /xl/drawings/drawingN.xml (Drawing shape)":
|
|
13
|
+
*
|
|
14
|
+
* - `<cx:series>` with more than one `<cx:dataId>` child
|
|
15
|
+
* (`CT_Series/dataId` has `maxOccurs="1"`; multi-dim series must
|
|
16
|
+
* use a single `<cx:data>` wrapper with multiple strDim/numDim).
|
|
17
|
+
* - `<cx:axisId>N</cx:axisId>`, `<cx:dataId>N</cx:dataId>`,
|
|
18
|
+
* `<cx:binCount>N</cx:binCount>`, `<cx:binSize>N</cx:binSize>`
|
|
19
|
+
* emitted as text content instead of `val="N"` attribute. The
|
|
20
|
+
* underlying types are `CT_UnsignedInteger`/`CT_Double`, which
|
|
21
|
+
* Excel's strict loader only accepts via the attribute form.
|
|
22
|
+
* - `<cx:auto/>` element anywhere in the chartEx. Auto binning is
|
|
23
|
+
* expressed by the ABSENCE of `binSize`/`binCount`, not a
|
|
24
|
+
* dedicated `<cx:auto/>` tag. The tag is schema-invalid.
|
|
25
|
+
* - `<cx:paretoLine>` child of `<cx:layoutPr>`. Not in the
|
|
26
|
+
* CT_SeriesLayoutProperties schema. A real pareto chart adds a
|
|
27
|
+
* second series with `layoutId="paretoLine"`.
|
|
28
|
+
* - `<cx:title>` with a direct `<cx:layout>` child. Title layout
|
|
29
|
+
* belongs in `extLst`-based extensions.
|
|
30
|
+
*/
|
|
31
|
+
import type { ValidationContext } from "./context.js";
|
|
32
|
+
export declare function checkChart(ctx: ValidationContext): void;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chartsheet structure check.
|
|
3
|
+
*
|
|
4
|
+
* A chartsheet (`xl/chartsheets/sheetN.xml`) must contain a `<drawing>`
|
|
5
|
+
* reference — the chart itself is always in the linked drawing part.
|
|
6
|
+
* Without it, Excel shows an empty chart sheet.
|
|
7
|
+
*/
|
|
8
|
+
import type { ValidationContext } from "./context.js";
|
|
9
|
+
export declare function checkChartsheet(ctx: ValidationContext): void;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content-types check.
|
|
3
|
+
*
|
|
4
|
+
* OPC requires every part in the package to be resolvable to a
|
|
5
|
+
* content-type via either a `<Default Extension=...>` entry or a
|
|
6
|
+
* `<Override PartName=...>` entry. Excel rejects packages where this
|
|
7
|
+
* mapping has gaps — the classic "repairable content" error.
|
|
8
|
+
*
|
|
9
|
+
* Beyond the OPC-mandatory rules, we also enforce Microsoft's
|
|
10
|
+
* well-known part→type expectations for the common OOXML part layouts
|
|
11
|
+
* (chart, pivot, chartsheet, drawing, etc.). A wrong content-type on
|
|
12
|
+
* these parts is one of the top causes of "Excel cannot open" errors
|
|
13
|
+
* because Excel uses the type string to route parsing.
|
|
14
|
+
*/
|
|
15
|
+
import type { ValidationContext } from "./context.js";
|
|
16
|
+
export declare function checkContentTypes(ctx: ValidationContext): void;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drawing part structure check.
|
|
3
|
+
*
|
|
4
|
+
* When a drawing file contains `<xdr:graphicFrame>` nodes but neither a
|
|
5
|
+
* classic `<c:chart>` nor a chartEx `<cx:chart>` reference inside them,
|
|
6
|
+
* the graphic frame is dangling — Excel shows a placeholder or drops the
|
|
7
|
+
* frame on load.
|
|
8
|
+
*
|
|
9
|
+
* We also scan anchor coordinates: every anchor must have `from` and
|
|
10
|
+
* `to` child elements, and EMU values (`x`, `y`, `cx`, `cy`,
|
|
11
|
+
* `colOff`, `rowOff`) when present must parse as finite non-negative
|
|
12
|
+
* numbers. Excel rejects anchors with NaN coordinates outright.
|
|
13
|
+
*
|
|
14
|
+
* Finally we enforce the ChartEx drawing-wrapper invariants that
|
|
15
|
+
* trigger "Removed Part: /xl/drawings/drawingN.xml (Drawing shape)"
|
|
16
|
+
* in production Excel logs:
|
|
17
|
+
*
|
|
18
|
+
* - Any `<cx:chart>` reference MUST live inside an
|
|
19
|
+
* `<mc:AlternateContent>` block. The Microsoft ChartEx schema was
|
|
20
|
+
* never part of the base OOXML spec, so Excel's strict loader
|
|
21
|
+
* requires MC substitution so legacy readers see a fallback shape.
|
|
22
|
+
* - The `<mc:Fallback>` MUST be non-empty. An empty Fallback
|
|
23
|
+
* collapses the anchor to nothing on clients that take that
|
|
24
|
+
* branch, and Excel's strict loader has been observed to reject
|
|
25
|
+
* the drawing even on the Choice branch when it sees the
|
|
26
|
+
* degenerate Fallback.
|
|
27
|
+
* - `<mc:AlternateContent>` lives INSIDE the `<xdr:twoCellAnchor>`
|
|
28
|
+
* shape slot (between `<xdr:to>` and `<xdr:clientData>`), NOT
|
|
29
|
+
* around the whole anchor. Wrapping the entire anchor duplicates
|
|
30
|
+
* `<xdr:from>`/`<xdr:to>` across Choice and Fallback, which Excel
|
|
31
|
+
* rejects even though MC substitution permits it in theory.
|
|
32
|
+
*/
|
|
33
|
+
import type { ValidationContext } from "./context.js";
|
|
34
|
+
export declare function checkDrawing(ctx: ValidationContext): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pivot table & pivot cache check.
|
|
3
|
+
*
|
|
4
|
+
* Each `xl/pivotTables/pivotTableN.xml` declares a `cacheId` that must be
|
|
5
|
+
* registered in the workbook's `<pivotCaches>` list; the cache in turn
|
|
6
|
+
* must back a live pivotCacheDefinition/pivotCacheRecords pair.
|
|
7
|
+
*
|
|
8
|
+
* We do a lightweight cross-reference check: (a) every pivot table
|
|
9
|
+
* advertises a cacheId that resolves to a `<pivotCache>` entry in
|
|
10
|
+
* workbook.xml, and (b) each referenced pivotCacheDefinition's rels point
|
|
11
|
+
* at a pivotCacheRecords file that actually exists.
|
|
12
|
+
*/
|
|
13
|
+
import type { ValidationContext } from "./context.js";
|
|
14
|
+
export declare function checkPivot(ctx: ValidationContext): void;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Relationships check.
|
|
3
|
+
*
|
|
4
|
+
* For every `.rels` file in the package we verify:
|
|
5
|
+
* - The root element is `<Relationships>` and children are `<Relationship>`.
|
|
6
|
+
* - Each rel has `Id`, `Type`, and `Target` attributes.
|
|
7
|
+
* - Relationship `Id` values are unique within the same rels file.
|
|
8
|
+
* - Non-external targets resolve to files that exist inside the package.
|
|
9
|
+
* - Resolved targets stay inside the package root (no `..` escape).
|
|
10
|
+
* - For well-known rel types, the resolved target matches the expected
|
|
11
|
+
* part-name pattern (e.g. a `Type=...relationships/chart` rel must
|
|
12
|
+
* point at `xl/charts/chartN.xml`).
|
|
13
|
+
* - Every non-root rels file has a corresponding source part in the zip.
|
|
14
|
+
* - The package root rels include an officeDocument rel to `xl/workbook.xml`.
|
|
15
|
+
*/
|
|
16
|
+
import type { ValidationContext } from "./context.js";
|
|
17
|
+
export declare function checkRootRelationships(ctx: ValidationContext): void;
|
|
18
|
+
export declare function checkRelationships(ctx: ValidationContext): void;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package structure check.
|
|
3
|
+
*
|
|
4
|
+
* Verifies the package contains the four OPC-mandatory parts (every xlsx
|
|
5
|
+
* must have these to be considered an Open Packaging Convention file) and
|
|
6
|
+
* that every XML-like part is syntactically well-formed.
|
|
7
|
+
*
|
|
8
|
+
* XML well-formedness is the broadest reachable check — it catches
|
|
9
|
+
* unclosed tags, bad escapes, and invalid entities that would cause Excel
|
|
10
|
+
* to repair-or-reject the whole package. We parse via DOM (which
|
|
11
|
+
* internally delegates to SAX) so that subsequent DOM-based checkers hit
|
|
12
|
+
* the same cached result.
|
|
13
|
+
*/
|
|
14
|
+
import type { ValidationContext } from "./context.js";
|
|
15
|
+
export declare function checkStructure(ctx: ValidationContext): void;
|
|
16
|
+
/**
|
|
17
|
+
* Walk every XML-like entry and parse it to surface malformed-XML
|
|
18
|
+
* problems. Leverages the context cache so DOM-based checkers that run
|
|
19
|
+
* afterwards do not re-parse.
|
|
20
|
+
*/
|
|
21
|
+
export declare function checkXmlWellFormed(ctx: ValidationContext): void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Styles table integrity.
|
|
3
|
+
*
|
|
4
|
+
* Every xf in `cellXfs` references indices into `numFmts`, `fonts`,
|
|
5
|
+
* `fills`, `borders`. Out-of-bounds references produce style corruption
|
|
6
|
+
* on load (Excel falls back to the default style silently, so this is a
|
|
7
|
+
* warning-severity check — it's a strong signal of a broken writer but
|
|
8
|
+
* not a hard "Excel cannot open" issue).
|
|
9
|
+
*
|
|
10
|
+
* `numFmts` uses numeric IDs, including ~100 built-in IDs < 164 that are
|
|
11
|
+
* never declared. We only flag ids >= 164 that have no matching numFmt
|
|
12
|
+
* entry.
|
|
13
|
+
*/
|
|
14
|
+
import type { ValidationContext } from "./context.js";
|
|
15
|
+
export declare function checkStyles(ctx: ValidationContext): void;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Table part check.
|
|
3
|
+
*
|
|
4
|
+
* Three real-world "Removed Records: Table from /xl/tables/tableN.xml"
|
|
5
|
+
* patterns that cause Excel to drop the entire table on open:
|
|
6
|
+
*
|
|
7
|
+
* 1. **Redundant per-column `<filterColumn>`.** The writer used to
|
|
8
|
+
* emit a bare `<filterColumn colId="N" hiddenButton="1"/>` for
|
|
9
|
+
* every column in the table. The schema accepts it, but Excel's
|
|
10
|
+
* loader interprets a fully-hidden autoFilter on a live table as
|
|
11
|
+
* inconsistent and drops the table to recover.
|
|
12
|
+
*
|
|
13
|
+
* 2. **`<totalsRowFormula>` paired with a built-in
|
|
14
|
+
* `totalsRowFunction`.** The schema allows the child only when
|
|
15
|
+
* the function is `"custom"` (or absent). For any of `sum`,
|
|
16
|
+
* `average`, `count`, `countNums`, `max`, `min`, `stdDev`,
|
|
17
|
+
* `var` Excel generates the SUBTOTAL formula itself and rejects
|
|
18
|
+
* the table if we pre-emit one.
|
|
19
|
+
*
|
|
20
|
+
* 3. **autoFilter range covering the totals row.** When
|
|
21
|
+
* `totalsRowCount="1"` is set on the `<table>`, the autoFilter
|
|
22
|
+
* range must stop one row above the totals row. Filtering the
|
|
23
|
+
* totals row itself is semantically invalid and Excel rejects
|
|
24
|
+
* the table.
|
|
25
|
+
*
|
|
26
|
+
* These are some of the most common "Excel cannot open" symptoms in
|
|
27
|
+
* production xlsx from other tooling too — catching them up front is a
|
|
28
|
+
* high-value check.
|
|
29
|
+
*/
|
|
30
|
+
import type { ValidationContext } from "./context.js";
|
|
31
|
+
export declare function checkTables(ctx: ValidationContext): void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workbook-level check.
|
|
3
|
+
*
|
|
4
|
+
* Reads `xl/workbook.xml` as DOM (replacing the previous regex-based
|
|
5
|
+
* approach, which missed namespaced elements like `<x:sheet>`) and walks
|
|
6
|
+
* every `<sheet>` declaration to verify:
|
|
7
|
+
*
|
|
8
|
+
* - `sheetId` uniqueness (OOXML requires globally unique sheet IDs).
|
|
9
|
+
* - `r:id` uniqueness and pointing to a worksheet-type relationship.
|
|
10
|
+
* - `name` attribute presence and Excel's name constraints:
|
|
11
|
+
* · 1–31 characters
|
|
12
|
+
* · No characters in `\ / ? * [ ] :`
|
|
13
|
+
* · Not repeated case-insensitively
|
|
14
|
+
* - CT_Workbook child element ordering (ECMA-376 Part 1 §18.2.27).
|
|
15
|
+
* Excel rejects files whose direct children of `<workbook>` violate
|
|
16
|
+
* the XSD sequence order.
|
|
17
|
+
*/
|
|
18
|
+
import type { ValidationContext } from "./context.js";
|
|
19
|
+
export declare function checkWorkbook(ctx: ValidationContext): void;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worksheet check — the largest and most important part of the validator.
|
|
3
|
+
*
|
|
4
|
+
* Covers four new structural checks beyond the original wiring check:
|
|
5
|
+
* 1. **Child element ordering** — `<worksheet>` children must appear in
|
|
6
|
+
* the ECMA-376 canonical order. Excel is known to reject files with
|
|
7
|
+
* out-of-order children; this is a top cause of "Excel needs to
|
|
8
|
+
* repair" prompts.
|
|
9
|
+
* 2. **Cell `r="A1"` consistency** — every `<c r="…"/>` inside a
|
|
10
|
+
* `<row r="N"/>` must decode to row `N` and to a column in
|
|
11
|
+
* `[1, 16384]` (Excel's max column limit, XFD).
|
|
12
|
+
* 3. **Merge region overlap** — every `<mergeCell ref="A1:B2"/>` must
|
|
13
|
+
* parse and no two merged ranges may overlap.
|
|
14
|
+
* 4. **Style / SST index bounds** — every `<c s="N"/>` must reference a
|
|
15
|
+
* valid `cellXfs` index, and every `<c t="s"><v>N</v></c>` must
|
|
16
|
+
* reference an existing `sharedStrings` index.
|
|
17
|
+
*
|
|
18
|
+
* Plus the legacy r:id wiring checks (controls, drawing, comments,
|
|
19
|
+
* hyperlink, tablePart, legacyDrawing) and the "controls without
|
|
20
|
+
* drawing" repair signal. The old "legacyDrawing-after-controls" kind is
|
|
21
|
+
* kept for backward compatibility — it is emitted in parallel with the
|
|
22
|
+
* generic `sheet-child-out-of-order` kind.
|
|
23
|
+
*/
|
|
24
|
+
import type { ValidationContext } from "./context.js";
|
|
25
|
+
export declare function checkWorksheets(ctx: ValidationContext): void;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared validation context.
|
|
3
|
+
*
|
|
4
|
+
* Checkers share XML parsing work through this context. Relationships,
|
|
5
|
+
* content types, and parsed XML DOMs are parsed at most once and cached.
|
|
6
|
+
* Every checker consumes from the same cache so they all see identical
|
|
7
|
+
* parse results (this matters for "rels malformed" propagation — the
|
|
8
|
+
* malformed entry is reported once, and every downstream checker simply
|
|
9
|
+
* sees the empty parse result).
|
|
10
|
+
*/
|
|
11
|
+
import type { ExtractedFile } from "../../../archive/unzip/extract.js";
|
|
12
|
+
import type { XmlDocument, XmlElement } from "../../../xml/types.js";
|
|
13
|
+
import type { Reporter } from "./reporter.js";
|
|
14
|
+
export interface ContentTypesData {
|
|
15
|
+
defaults: Map<string, string>;
|
|
16
|
+
overrides: Map<string, string>;
|
|
17
|
+
/**
|
|
18
|
+
* `true` if the file was parsed as a `<Types>` root successfully.
|
|
19
|
+
* `false` if the file is missing, malformed or has an unexpected root.
|
|
20
|
+
*/
|
|
21
|
+
parseOk: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Duplicate override part names encountered during parse. Emitted as
|
|
24
|
+
* problems by the content-types checker.
|
|
25
|
+
*/
|
|
26
|
+
duplicateOverrides: string[];
|
|
27
|
+
}
|
|
28
|
+
export interface Relationship {
|
|
29
|
+
id: string;
|
|
30
|
+
type: string;
|
|
31
|
+
target: string;
|
|
32
|
+
targetMode?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface RelsData {
|
|
35
|
+
rels: Relationship[];
|
|
36
|
+
byId: Map<string, Relationship>;
|
|
37
|
+
parseOk: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Raw rel entries that lacked Id/Type/Target attributes. Emitted
|
|
40
|
+
* separately so the rels checker can flag them without us dropping
|
|
41
|
+
* them from the data entirely.
|
|
42
|
+
*/
|
|
43
|
+
malformedEntries: Array<{
|
|
44
|
+
missingId: boolean;
|
|
45
|
+
missingType: boolean;
|
|
46
|
+
missingTarget: boolean;
|
|
47
|
+
id?: string;
|
|
48
|
+
type?: string;
|
|
49
|
+
}>;
|
|
50
|
+
}
|
|
51
|
+
export declare class ValidationContext {
|
|
52
|
+
readonly entries: Map<string, ExtractedFile>;
|
|
53
|
+
readonly reporter: Reporter;
|
|
54
|
+
private readonly textCache;
|
|
55
|
+
private readonly domCache;
|
|
56
|
+
private readonly relsCache;
|
|
57
|
+
private contentTypes?;
|
|
58
|
+
constructor(entries: Map<string, ExtractedFile>, reporter: Reporter);
|
|
59
|
+
/** `true` if `path` points to a file (not a directory) in the package. */
|
|
60
|
+
has(path: string): boolean;
|
|
61
|
+
/** Iterate every file (skip directories). */
|
|
62
|
+
files(): IterableIterator<readonly [string, ExtractedFile]>;
|
|
63
|
+
/** Decode a part as UTF-8 text. Cached. */
|
|
64
|
+
readText(path: string): string | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Parse a part as XML DOM. Cached. Returns `undefined` if the part is
|
|
67
|
+
* missing or malformed. Callers that need to distinguish those cases
|
|
68
|
+
* should check `has(path)` first.
|
|
69
|
+
*/
|
|
70
|
+
readDom(path: string, onMalformed?: (err: Error) => void): XmlDocument | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Read and cache the content-types table. On first call, parse
|
|
73
|
+
* `[Content_Types].xml`; subsequent calls return the cache.
|
|
74
|
+
* Reports malformed-XML problems via the reporter but never throws.
|
|
75
|
+
*/
|
|
76
|
+
readContentTypes(): ContentTypesData;
|
|
77
|
+
/**
|
|
78
|
+
* Read and cache a relationships file. Every .rels in the package is
|
|
79
|
+
* parsed lazily on first request. Malformed files are reported once
|
|
80
|
+
* and return an empty relationships array.
|
|
81
|
+
*/
|
|
82
|
+
readRels(relsPath: string): RelsData;
|
|
83
|
+
}
|
|
84
|
+
/** Get the root element of a DOM; returns undefined for missing DOM. */
|
|
85
|
+
export declare function domRoot(dom: XmlDocument | undefined): XmlElement | undefined;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public entry point for the OOXML validator.
|
|
3
|
+
*
|
|
4
|
+
* Validates an xlsx package buffer against the OPC spec and Excel's
|
|
5
|
+
* known opening invariants. See `types.ts` for the full catalog of
|
|
6
|
+
* problem kinds.
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* const report = await validateXlsxBuffer(await wb.xlsx.writeBuffer());
|
|
10
|
+
* if (!report.ok) {
|
|
11
|
+
* console.error(report.problems);
|
|
12
|
+
* }
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* The implementation is composed of independent checkers under
|
|
16
|
+
* `check-*.ts` — each can be unit-tested in isolation. The entry point
|
|
17
|
+
* orchestrates them with a shared `ValidationContext` that caches XML
|
|
18
|
+
* parsing across checks.
|
|
19
|
+
*/
|
|
20
|
+
import type { OoxmlOrderingProblemKind, OoxmlOrderingValidationProblem, OoxmlProblemKind, OoxmlProblemSeverity, OoxmlValidateOptions, OoxmlValidationProblem, OoxmlValidationReport, OoxmlValidationStats } from "./types.js";
|
|
21
|
+
export type { OoxmlOrderingProblemKind, OoxmlOrderingValidationProblem, OoxmlProblemKind, OoxmlProblemSeverity, OoxmlValidateOptions, OoxmlValidationProblem, OoxmlValidationReport, OoxmlValidationStats };
|
|
22
|
+
/**
|
|
23
|
+
* Validate an xlsx package. Returns a report with every detected
|
|
24
|
+
* problem; `ok === true` when no error-severity problems were found.
|
|
25
|
+
*
|
|
26
|
+
* This function never throws — malformed input is surfaced as a
|
|
27
|
+
* `xml-malformed` or similar problem kind. The only exception is if
|
|
28
|
+
* `extractAll` fails to unzip the buffer (not a valid ZIP at all), in
|
|
29
|
+
* which case the underlying archive error propagates.
|
|
30
|
+
*/
|
|
31
|
+
export declare function validateXlsxBuffer(xlsxBuffer: Uint8Array, options?: OoxmlValidateOptions): Promise<OoxmlValidationReport>;
|