@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
|
@@ -113,17 +113,39 @@ class PivotTableXform extends base_xform_1.BaseXform {
|
|
|
113
113
|
const pageOffset = pageCount > 0 ? pageCount + 1 : 0;
|
|
114
114
|
// Location ref: firstDataCol = number of row fields (row label columns),
|
|
115
115
|
// endCol = row fields + data columns.
|
|
116
|
+
// When the caller supplies `ref`, it anchors the pivot's displayed block
|
|
117
|
+
// (page filters → blank separator → pivot body). The body — which is what
|
|
118
|
+
// <location ref="..."/> actually addresses in OOXML — therefore sits
|
|
119
|
+
// pageOffset rows below the anchor and shares its column.
|
|
116
120
|
const firstDataCol = rows.length;
|
|
117
|
-
const startRow = 3 + pageOffset;
|
|
118
|
-
const endRow = startRow + 1; // header + 1 data row placeholder
|
|
119
121
|
const dataColCount = isMultiValueNoCol ? values.length : 1;
|
|
120
|
-
const
|
|
122
|
+
const totalPivotCols = firstDataCol + dataColCount;
|
|
123
|
+
let startRow;
|
|
124
|
+
let startCol;
|
|
125
|
+
if (model.ref) {
|
|
126
|
+
// `ref` is pre-normalised by makePivotTable to a canonical cell address,
|
|
127
|
+
// so decodeAddress cannot fail here. Guard anyway to surface any
|
|
128
|
+
// bypasses via `as any` with a clear error.
|
|
129
|
+
const addr = col_cache_1.colCache.decodeAddress(model.ref);
|
|
130
|
+
if (!addr.col || !addr.row) {
|
|
131
|
+
throw new Error(`Pivot table ref "${model.ref}" must include both column and row (e.g. "A3").`);
|
|
132
|
+
}
|
|
133
|
+
startRow = addr.row + pageOffset;
|
|
134
|
+
startCol = addr.col;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
startRow = 3 + pageOffset;
|
|
138
|
+
startCol = 1;
|
|
139
|
+
}
|
|
140
|
+
const endRow = startRow + 1; // header + 1 data row placeholder
|
|
141
|
+
const endCol = startCol + totalPivotCols - 1;
|
|
142
|
+
const startColLetter = col_cache_1.colCache.n2l(startCol);
|
|
121
143
|
const endColLetter = col_cache_1.colCache.n2l(endCol);
|
|
122
|
-
const locationRef =
|
|
144
|
+
const locationRef = `${startColLetter}${startRow}:${endColLetter}${endRow}`;
|
|
123
145
|
xmlStream.openXml(writer_1.StdDocAttributes);
|
|
124
146
|
xmlStream.openNode(this.tag, {
|
|
125
147
|
...PivotTableXform.PIVOT_TABLE_ATTRIBUTES,
|
|
126
|
-
name: `PivotTable${tableNumber}`,
|
|
148
|
+
name: model.name ?? `PivotTable${tableNumber}`,
|
|
127
149
|
cacheId,
|
|
128
150
|
applyNumberFormats: "0",
|
|
129
151
|
applyBorderFormats: "0",
|
|
@@ -140,7 +162,8 @@ class PivotTableXform extends base_xform_1.BaseXform {
|
|
|
140
162
|
indent: "0",
|
|
141
163
|
compact: "0",
|
|
142
164
|
compactData: "0",
|
|
143
|
-
multipleFieldFilters: "0"
|
|
165
|
+
multipleFieldFilters: "0",
|
|
166
|
+
chartFormat: model.chartFormat !== undefined ? String(model.chartFormat) : undefined
|
|
144
167
|
});
|
|
145
168
|
// Location
|
|
146
169
|
const locAttrs = {
|
|
@@ -222,6 +245,9 @@ class PivotTableXform extends base_xform_1.BaseXform {
|
|
|
222
245
|
}
|
|
223
246
|
// Data fields
|
|
224
247
|
renderDataFields(xmlStream, cacheFields, values, model.valueMetrics);
|
|
248
|
+
if (model.chartFormats && model.chartFormats.length > 0) {
|
|
249
|
+
this.renderChartFormats(xmlStream, model.chartFormats);
|
|
250
|
+
}
|
|
225
251
|
// Pivot table style info
|
|
226
252
|
xmlStream.leafNode("pivotTableStyleInfo", {
|
|
227
253
|
name: DEFAULT_PIVOT_STYLE,
|
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ChartsheetXform — parse and render OOXML chartsheet XML.
|
|
4
|
+
*
|
|
5
|
+
* A chartsheet is a simple sheet type that contains only a chart.
|
|
6
|
+
* Structure (ECMA-376 `CT_Chartsheet`):
|
|
7
|
+
* ```xml
|
|
8
|
+
* <chartsheet xmlns="...">
|
|
9
|
+
* <sheetPr/>?
|
|
10
|
+
* <sheetViews><sheetView .../></sheetViews>
|
|
11
|
+
* <sheetProtection/>?
|
|
12
|
+
* <customSheetViews/>?
|
|
13
|
+
* <pageMargins .../>?
|
|
14
|
+
* <pageSetup .../>? CT_CsPageSetup — NOT CT_PageSetup
|
|
15
|
+
* <headerFooter/>?
|
|
16
|
+
* <drawing r:id="rId1"/>
|
|
17
|
+
* <legacyDrawing/>? legacyDrawingHF? drawingHF? picture? webPublishItems? extLst?
|
|
18
|
+
* </chartsheet>
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* Note that chartsheets do NOT support `printOptions`, `pageBreaks`,
|
|
22
|
+
* `rowBreaks`, or `colBreaks` — those are worksheet-only elements
|
|
23
|
+
* per ECMA-376 `CT_Chartsheet`. Likewise `<c:pageSetup>` on a
|
|
24
|
+
* chartsheet is `CT_CsPageSetup`, which has a reduced attribute set
|
|
25
|
+
* compared to the worksheet's `CT_PageSetup` (no `scale`,
|
|
26
|
+
* `fitToWidth`, `fitToHeight`, `pageOrder`, `cellComments`, or
|
|
27
|
+
* `errors`).
|
|
28
|
+
*/
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
exports.ChartsheetXform = void 0;
|
|
31
|
+
const base_xform_1 = require("../base-xform.js");
|
|
32
|
+
const xsd_values_1 = require("../xsd-values.js");
|
|
33
|
+
const encode_1 = require("../../../../xml/encode.js");
|
|
34
|
+
const CHARTSHEET_ATTRIBUTES = {
|
|
35
|
+
xmlns: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
|
|
36
|
+
"xmlns:r": "http://schemas.openxmlformats.org/officeDocument/2006/relationships"
|
|
37
|
+
};
|
|
38
|
+
class ChartsheetXform extends base_xform_1.BaseXform {
|
|
39
|
+
constructor() {
|
|
40
|
+
super(...arguments);
|
|
41
|
+
this.inSheetView = false;
|
|
42
|
+
this.captureDepth = 0;
|
|
43
|
+
this.captureParts = [];
|
|
44
|
+
this.skipNextCaptureClose = false;
|
|
45
|
+
this.sheetDepth = 0;
|
|
46
|
+
}
|
|
47
|
+
get tag() {
|
|
48
|
+
return "chartsheet";
|
|
49
|
+
}
|
|
50
|
+
render(xmlStream, model) {
|
|
51
|
+
const m = model ?? this.model;
|
|
52
|
+
if (!m) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
xmlStream.openNode("chartsheet", CHARTSHEET_ATTRIBUTES);
|
|
56
|
+
// `CT_Chartsheet` schema sequence:
|
|
57
|
+
// sheetPr?, sheetViews, sheetProtection?, customSheetViews?,
|
|
58
|
+
// pageMargins?, pageSetup?, headerFooter?,
|
|
59
|
+
// drawing, legacyDrawing?, legacyDrawingHF?, drawingHF?,
|
|
60
|
+
// picture?, webPublishItems?, extLst?
|
|
61
|
+
//
|
|
62
|
+
// Elements we don't structurally model (most of the tail) are
|
|
63
|
+
// captured as raw XML via `rawChildren` and re-emitted at the
|
|
64
|
+
// correct sequence position so round-tripping a chartsheet with
|
|
65
|
+
// `sheetProtection` / `headerFooter` / `legacyDrawing` doesn't
|
|
66
|
+
// drop them.
|
|
67
|
+
//
|
|
68
|
+
// Notably absent: `printOptions`, `pageBreaks`, `rowBreaks`,
|
|
69
|
+
// `colBreaks` — all worksheet-only per ECMA-376 `CT_Chartsheet`.
|
|
70
|
+
// Legacy workbooks that stored them in chartsheets are silently
|
|
71
|
+
// stripped; Excel itself also ignores them at load time.
|
|
72
|
+
const raw = m.rawChildren ?? {};
|
|
73
|
+
const writeRaw = (name) => {
|
|
74
|
+
const xml = raw[name];
|
|
75
|
+
if (xml) {
|
|
76
|
+
xmlStream.writeRaw(xml);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
writeRaw("sheetPr");
|
|
80
|
+
// sheetViews
|
|
81
|
+
xmlStream.openNode("sheetViews");
|
|
82
|
+
// Preserve the author's `workbookViewId` (0-based index into the
|
|
83
|
+
// workbook's `<bookViews>` list). Default is 0 per schema; writing
|
|
84
|
+
// 0 explicitly is harmless and matches the wire shape Excel emits.
|
|
85
|
+
const svAttrs = {
|
|
86
|
+
workbookViewId: String(m.workbookViewId ?? 0)
|
|
87
|
+
};
|
|
88
|
+
if (m.tabSelected) {
|
|
89
|
+
svAttrs.tabSelected = "1";
|
|
90
|
+
}
|
|
91
|
+
if (m.zoomScale !== undefined) {
|
|
92
|
+
svAttrs.zoomScale = String(m.zoomScale);
|
|
93
|
+
}
|
|
94
|
+
if (m.zoomToFit) {
|
|
95
|
+
svAttrs.zoomToFit = "1";
|
|
96
|
+
}
|
|
97
|
+
xmlStream.leafNode("sheetView", svAttrs);
|
|
98
|
+
xmlStream.closeNode();
|
|
99
|
+
writeRaw("sheetProtection");
|
|
100
|
+
writeRaw("customSheetViews");
|
|
101
|
+
// pageMargins
|
|
102
|
+
if (m.pageMargins) {
|
|
103
|
+
const pm = m.pageMargins;
|
|
104
|
+
xmlStream.leafNode("pageMargins", {
|
|
105
|
+
left: pm.left !== undefined ? String(pm.left) : pm.l !== undefined ? String(pm.l) : "0.7",
|
|
106
|
+
right: pm.right !== undefined ? String(pm.right) : pm.r !== undefined ? String(pm.r) : "0.7",
|
|
107
|
+
top: pm.top !== undefined ? String(pm.top) : pm.t !== undefined ? String(pm.t) : "0.75",
|
|
108
|
+
bottom: pm.bottom !== undefined ? String(pm.bottom) : pm.b !== undefined ? String(pm.b) : "0.75",
|
|
109
|
+
header: pm.header !== undefined ? String(pm.header) : "0.3",
|
|
110
|
+
footer: pm.footer !== undefined ? String(pm.footer) : "0.3"
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
// pageSetup — note this is `CT_CsPageSetup`, NOT the worksheet's
|
|
114
|
+
// `CT_PageSetup`. The attribute set is narrower: no `scale`,
|
|
115
|
+
// `fitToWidth`, `fitToHeight`, `pageOrder`, `cellComments`, or
|
|
116
|
+
// `errors`. `definedAttrs` emits only fields with defined values,
|
|
117
|
+
// and the `ChartsheetModel["pageSetup"]` type constrains the
|
|
118
|
+
// permitted field set at compile time.
|
|
119
|
+
if (m.pageSetup) {
|
|
120
|
+
// `rId` rides on this element as `r:id` (namespaced). Project
|
|
121
|
+
// the model's camel-case `rId` onto the wire name and pass the
|
|
122
|
+
// rest through `definedAttrs`. Previously the parser dropped
|
|
123
|
+
// `r:id` entirely and the writer never emitted it, so printer-
|
|
124
|
+
// settings rels preserved in the chartsheet .rels went
|
|
125
|
+
// unreferenced inside the XML.
|
|
126
|
+
const { rId, ...pageSetupAttrs } = m.pageSetup;
|
|
127
|
+
const attrs = definedAttrs(pageSetupAttrs);
|
|
128
|
+
if (rId !== undefined) {
|
|
129
|
+
attrs["r:id"] = rId;
|
|
130
|
+
}
|
|
131
|
+
xmlStream.leafNode("pageSetup", attrs);
|
|
132
|
+
}
|
|
133
|
+
writeRaw("headerFooter");
|
|
134
|
+
// drawing
|
|
135
|
+
if (m.drawing) {
|
|
136
|
+
xmlStream.leafNode("drawing", { "r:id": m.drawing.rId });
|
|
137
|
+
}
|
|
138
|
+
writeRaw("legacyDrawing");
|
|
139
|
+
writeRaw("legacyDrawingHF");
|
|
140
|
+
writeRaw("drawingHF");
|
|
141
|
+
writeRaw("picture");
|
|
142
|
+
writeRaw("webPublishItems");
|
|
143
|
+
writeRaw("extLst");
|
|
144
|
+
xmlStream.closeNode();
|
|
145
|
+
}
|
|
146
|
+
parseOpen(node) {
|
|
147
|
+
var _a;
|
|
148
|
+
const { name } = node;
|
|
149
|
+
const attrs = node.attributes || {};
|
|
150
|
+
const isSelfClosing = !!node.isSelfClosing;
|
|
151
|
+
// If we're already inside a raw-captured element, serialise every
|
|
152
|
+
// child / text node into the capture buffer regardless of name —
|
|
153
|
+
// we don't want to structurally interpret children of, say,
|
|
154
|
+
// `<sheetProtection>`. Honour `isSelfClosing` so the captured
|
|
155
|
+
// bytes match the original encoding (self-closing `<foo/>` stays
|
|
156
|
+
// `<foo/>`, not `<foo></foo>`).
|
|
157
|
+
if (this.captureRoot) {
|
|
158
|
+
if (isSelfClosing) {
|
|
159
|
+
// Self-closing within a capture: append the `<foo/>` bytes
|
|
160
|
+
// verbatim and instruct `parseClose` to skip the synthetic
|
|
161
|
+
// close SAX will fire next. Depth stays where it was — a
|
|
162
|
+
// self-close neither enters nor leaves a level.
|
|
163
|
+
this.captureParts.push(selfCloseTag(node));
|
|
164
|
+
this.skipNextCaptureClose = true;
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
this.captureDepth++;
|
|
168
|
+
this.captureParts.push(openTag(node));
|
|
169
|
+
}
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
// Track depth from the `<chartsheet>` root so the raw-capture
|
|
173
|
+
// dispatch only fires for direct children. Without this guard a
|
|
174
|
+
// nested `<extLst>` (or any other RAW_CAPTURE_TAG name reused
|
|
175
|
+
// inside a container we don't structurally model) would be
|
|
176
|
+
// promoted to a sibling of `<chartsheet>` — clobbering whichever
|
|
177
|
+
// capture was meant to contain it.
|
|
178
|
+
if (name === "chartsheet") {
|
|
179
|
+
this.sheetDepth = 1;
|
|
180
|
+
this.model = {
|
|
181
|
+
sheetNo: 0,
|
|
182
|
+
name: "",
|
|
183
|
+
id: 0
|
|
184
|
+
};
|
|
185
|
+
return true;
|
|
186
|
+
}
|
|
187
|
+
this.sheetDepth += 1;
|
|
188
|
+
// Start a fresh capture for any DIRECT chartsheet child that we
|
|
189
|
+
// don't structurally model. `sheetDepth === 2` means we're one
|
|
190
|
+
// level below the `<chartsheet>` root.
|
|
191
|
+
if (this.sheetDepth === 2 && RAW_CAPTURE_TAGS.has(name)) {
|
|
192
|
+
if (isSelfClosing) {
|
|
193
|
+
// Empty placeholder (e.g. `<extLst/>`) — store its bytes
|
|
194
|
+
// verbatim and don't enter the multi-event capture loop.
|
|
195
|
+
// The matching `parseClose` must also decrement
|
|
196
|
+
// `sheetDepth`, so we flag to skip stateful close work.
|
|
197
|
+
((_a = this.model).rawChildren ?? (_a.rawChildren = {}))[name] = selfCloseTag(node);
|
|
198
|
+
// No capture state to clear; `parseClose` handles the
|
|
199
|
+
// close via its fall-through and decrements `sheetDepth`.
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
this.captureRoot = name;
|
|
203
|
+
this.captureDepth = 1;
|
|
204
|
+
this.captureParts = [openTag(node)];
|
|
205
|
+
return true;
|
|
206
|
+
}
|
|
207
|
+
switch (name) {
|
|
208
|
+
case "sheetView":
|
|
209
|
+
this.inSheetView = true;
|
|
210
|
+
if (this.model) {
|
|
211
|
+
// Use the shared `xsd:boolean` parser — previously this
|
|
212
|
+
// switch only accepted `"1"` and silently mapped `"true"`
|
|
213
|
+
// (the other spec-legal form, emitted by many third-party
|
|
214
|
+
// writers) to `false`, so chartsheets authored elsewhere
|
|
215
|
+
// lost their `tabSelected` / `zoomToFit` state on round-trip.
|
|
216
|
+
const parsedTabSelected = (0, xsd_values_1.parseXsdBoolean)(attrs.tabSelected);
|
|
217
|
+
if (parsedTabSelected !== undefined) {
|
|
218
|
+
this.model.tabSelected = parsedTabSelected;
|
|
219
|
+
}
|
|
220
|
+
const parsedZoom = (0, xsd_values_1.parseXsdInt)(attrs.zoomScale);
|
|
221
|
+
if (parsedZoom !== undefined) {
|
|
222
|
+
this.model.zoomScale = parsedZoom;
|
|
223
|
+
}
|
|
224
|
+
// Round-trip `workbookViewId` — default 0 is only omitted
|
|
225
|
+
// when the attribute was absent on the wire; preserve an
|
|
226
|
+
// explicit 0 if the author wrote it, else leave undefined
|
|
227
|
+
// so `render` falls back to its `?? 0` default.
|
|
228
|
+
const parsedViewId = (0, xsd_values_1.parseXsdInt)(attrs.workbookViewId);
|
|
229
|
+
if (parsedViewId !== undefined) {
|
|
230
|
+
this.model.workbookViewId = parsedViewId;
|
|
231
|
+
}
|
|
232
|
+
const parsedZoomToFit = (0, xsd_values_1.parseXsdBoolean)(attrs.zoomToFit);
|
|
233
|
+
if (parsedZoomToFit !== undefined) {
|
|
234
|
+
this.model.zoomToFit = parsedZoomToFit;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
break;
|
|
238
|
+
case "pageMargins":
|
|
239
|
+
if (this.model) {
|
|
240
|
+
this.model.pageMargins = {
|
|
241
|
+
l: parseMargin(attrs.left),
|
|
242
|
+
r: parseMargin(attrs.right),
|
|
243
|
+
t: parseMargin(attrs.top),
|
|
244
|
+
b: parseMargin(attrs.bottom),
|
|
245
|
+
left: parseMargin(attrs.left),
|
|
246
|
+
right: parseMargin(attrs.right),
|
|
247
|
+
top: parseMargin(attrs.top),
|
|
248
|
+
bottom: parseMargin(attrs.bottom),
|
|
249
|
+
header: parseMargin(attrs.header),
|
|
250
|
+
footer: parseMargin(attrs.footer)
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
break;
|
|
254
|
+
case "printOptions":
|
|
255
|
+
// Worksheet-only element per ECMA-376 `CT_Chartsheet`.
|
|
256
|
+
// Silently skip — the containing file is malformed but Excel
|
|
257
|
+
// itself ignores the element at load, so preserving it in
|
|
258
|
+
// `rawChildren` would re-emit invalid XML on save.
|
|
259
|
+
break;
|
|
260
|
+
case "rowBreaks":
|
|
261
|
+
case "colBreaks":
|
|
262
|
+
case "pageBreaks":
|
|
263
|
+
// Same as `printOptions`: worksheet-only. Drop on load.
|
|
264
|
+
break;
|
|
265
|
+
case "pageSetup":
|
|
266
|
+
if (this.model) {
|
|
267
|
+
// `CT_CsPageSetup` — the chartsheet variant. Only the
|
|
268
|
+
// attributes listed in ECMA-376 18.3.1.68 are captured;
|
|
269
|
+
// worksheet-only attributes (`scale`, `fitToWidth`,
|
|
270
|
+
// `fitToHeight`, `pageOrder`, `cellComments`, `errors`)
|
|
271
|
+
// are silently discarded so re-serialised XML matches
|
|
272
|
+
// `CT_CsPageSetup`.
|
|
273
|
+
this.model.pageSetup = {
|
|
274
|
+
paperSize: parseNumber(attrs.paperSize),
|
|
275
|
+
firstPageNumber: parseNumber(attrs.firstPageNumber),
|
|
276
|
+
orientation: attrs.orientation,
|
|
277
|
+
usePrinterDefaults: parseBool(attrs.usePrinterDefaults),
|
|
278
|
+
blackAndWhite: parseBool(attrs.blackAndWhite),
|
|
279
|
+
draft: parseBool(attrs.draft),
|
|
280
|
+
useFirstPageNumber: parseBool(attrs.useFirstPageNumber),
|
|
281
|
+
horizontalDpi: parseNumber(attrs.horizontalDpi),
|
|
282
|
+
verticalDpi: parseNumber(attrs.verticalDpi),
|
|
283
|
+
copies: parseNumber(attrs.copies),
|
|
284
|
+
paperHeight: attrs.paperHeight,
|
|
285
|
+
paperWidth: attrs.paperWidth,
|
|
286
|
+
// Capture the printer-settings rel id so the writer can
|
|
287
|
+
// emit `r:id="…"` back on round-trip. Without this the
|
|
288
|
+
// pre-existing `printerSettings` rel target in the
|
|
289
|
+
// chartsheet .rels file was preserved (via
|
|
290
|
+
// `relationships`) but the XML lost its reference to it —
|
|
291
|
+
// a dangling rel in the saved package.
|
|
292
|
+
rId: attrs["r:id"]
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
break;
|
|
296
|
+
case "drawing":
|
|
297
|
+
if (this.model && attrs["r:id"]) {
|
|
298
|
+
this.model.drawing = { rId: attrs["r:id"] };
|
|
299
|
+
}
|
|
300
|
+
break;
|
|
301
|
+
default:
|
|
302
|
+
break;
|
|
303
|
+
}
|
|
304
|
+
// Self-closing leaf at direct-child level: SAX fires a closetag
|
|
305
|
+
// next which would decrement `sheetDepth` — so we do nothing
|
|
306
|
+
// extra here. The increment above already covered the "open"
|
|
307
|
+
// half of the event; the close will balance it.
|
|
308
|
+
if (isSelfClosing) {
|
|
309
|
+
// Balance the increment we just did so `parseClose` sees the
|
|
310
|
+
// expected post-state (the SAX emitter will still fire a
|
|
311
|
+
// `closetag` but our `parseClose` is a no-op for these names).
|
|
312
|
+
// Equivalent: leave `sheetDepth` incremented and let the
|
|
313
|
+
// subsequent `closetag` decrement it. We choose the latter for
|
|
314
|
+
// consistency with non-self-closing paths.
|
|
315
|
+
}
|
|
316
|
+
return true;
|
|
317
|
+
}
|
|
318
|
+
parseText(text) {
|
|
319
|
+
// Pass text content through to the raw-capture buffer when we're
|
|
320
|
+
// recording an unmodeled element. Top-level chartsheet children
|
|
321
|
+
// have no meaningful text content (everything is element-based),
|
|
322
|
+
// so we ignore text outside capture mode.
|
|
323
|
+
if (this.captureRoot && text) {
|
|
324
|
+
this.captureParts.push((0, encode_1.xmlEncode)(text));
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
parseClose(name) {
|
|
328
|
+
var _a;
|
|
329
|
+
// Close-tag inside an active capture — pop depth and decide
|
|
330
|
+
// whether the capture ends here.
|
|
331
|
+
if (this.captureRoot) {
|
|
332
|
+
if (this.skipNextCaptureClose) {
|
|
333
|
+
// This close is the synthetic half of a self-closing tag we
|
|
334
|
+
// already wrote as `<foo/>`. Swallow it without touching
|
|
335
|
+
// `captureDepth`.
|
|
336
|
+
this.skipNextCaptureClose = false;
|
|
337
|
+
return true;
|
|
338
|
+
}
|
|
339
|
+
this.captureDepth--;
|
|
340
|
+
this.captureParts.push(`</${name}>`);
|
|
341
|
+
if (this.captureDepth === 0) {
|
|
342
|
+
// Capture complete — store the serialised XML and reset state.
|
|
343
|
+
if (this.model) {
|
|
344
|
+
((_a = this.model).rawChildren ?? (_a.rawChildren = {}))[this.captureRoot] = this.captureParts.join("");
|
|
345
|
+
}
|
|
346
|
+
this.captureRoot = undefined;
|
|
347
|
+
this.captureParts = [];
|
|
348
|
+
this.sheetDepth -= 1;
|
|
349
|
+
}
|
|
350
|
+
return true;
|
|
351
|
+
}
|
|
352
|
+
this.sheetDepth -= 1;
|
|
353
|
+
switch (name) {
|
|
354
|
+
case "chartsheet":
|
|
355
|
+
return false;
|
|
356
|
+
case "sheetView":
|
|
357
|
+
this.inSheetView = false;
|
|
358
|
+
return true;
|
|
359
|
+
default:
|
|
360
|
+
return true;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
exports.ChartsheetXform = ChartsheetXform;
|
|
365
|
+
/**
|
|
366
|
+
* Chartsheet children we don't structurally model but preserve as raw
|
|
367
|
+
* XML bytes for round-trip. Adding a new structured path for one of
|
|
368
|
+
* these elements means (a) remove it from this set and (b) add the
|
|
369
|
+
* matching `parseOpen` case + `render` emission.
|
|
370
|
+
*
|
|
371
|
+
* Note: `rowBreaks`, `colBreaks`, `pageBreaks`, and `printOptions`
|
|
372
|
+
* are NOT in this set — they are worksheet-only elements per
|
|
373
|
+
* ECMA-376 `CT_Chartsheet`. A legacy file that has them is silently
|
|
374
|
+
* dropped on load to produce schema-valid output.
|
|
375
|
+
*/
|
|
376
|
+
const RAW_CAPTURE_TAGS = new Set([
|
|
377
|
+
"sheetPr",
|
|
378
|
+
"sheetProtection",
|
|
379
|
+
"customSheetViews",
|
|
380
|
+
"headerFooter",
|
|
381
|
+
"legacyDrawing",
|
|
382
|
+
"legacyDrawingHF",
|
|
383
|
+
"drawingHF",
|
|
384
|
+
"picture",
|
|
385
|
+
"webPublishItems",
|
|
386
|
+
"extLst"
|
|
387
|
+
]);
|
|
388
|
+
/**
|
|
389
|
+
* Build the opening `<tag attr="…" …>` string for a SAX event. Shared
|
|
390
|
+
* with the chart-space xform's `RawXmlCapture` but inlined here to
|
|
391
|
+
* keep the chartsheet module self-contained (chart-space depends on
|
|
392
|
+
* this module's exports, so we can't reach into it without a cycle).
|
|
393
|
+
*/
|
|
394
|
+
function openTag(node) {
|
|
395
|
+
let s = `<${node.name}`;
|
|
396
|
+
if (node.attributes) {
|
|
397
|
+
for (const [k, v] of Object.entries(node.attributes)) {
|
|
398
|
+
s += ` ${k}="${(0, encode_1.xmlEncodeAttr)(String(v))}"`;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
return `${s}>`;
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Build a self-closing `<tag attr="…"/>` string. Used when the SAX
|
|
405
|
+
* parser reports `isSelfClosing === true` so the captured bytes match
|
|
406
|
+
* the original form — emitting `<tag></tag>` instead breaks
|
|
407
|
+
* byte-for-byte round-trip and can confuse diff tools comparing the
|
|
408
|
+
* reserialised package against the original.
|
|
409
|
+
*/
|
|
410
|
+
function selfCloseTag(node) {
|
|
411
|
+
let s = `<${node.name}`;
|
|
412
|
+
if (node.attributes) {
|
|
413
|
+
for (const [k, v] of Object.entries(node.attributes)) {
|
|
414
|
+
s += ` ${k}="${(0, encode_1.xmlEncodeAttr)(String(v))}"`;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
return `${s}/>`;
|
|
418
|
+
}
|
|
419
|
+
function definedAttrs(model) {
|
|
420
|
+
const attrs = {};
|
|
421
|
+
for (const [key, value] of Object.entries(model)) {
|
|
422
|
+
if (value !== undefined) {
|
|
423
|
+
attrs[key] = typeof value === "boolean" ? (value ? "1" : "0") : String(value);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
return attrs;
|
|
427
|
+
}
|
|
428
|
+
function parseBool(value) {
|
|
429
|
+
return value === undefined ? undefined : value === "1" || value === "true";
|
|
430
|
+
}
|
|
431
|
+
function parseMargin(value) {
|
|
432
|
+
if (value === undefined) {
|
|
433
|
+
return undefined;
|
|
434
|
+
}
|
|
435
|
+
const n = parseFloat(value);
|
|
436
|
+
return Number.isFinite(n) ? n : undefined;
|
|
437
|
+
}
|
|
438
|
+
function parseNumber(value) {
|
|
439
|
+
if (value === undefined) {
|
|
440
|
+
return undefined;
|
|
441
|
+
}
|
|
442
|
+
const n = Number(value);
|
|
443
|
+
return Number.isFinite(n) ? n : undefined;
|
|
444
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ExtLstXform = void 0;
|
|
4
|
+
const sparkline_1 = require("../../../sparkline/index.js");
|
|
4
5
|
const composite_xform_1 = require("../composite-xform.js");
|
|
5
6
|
const conditional_formattings_ext_xform_1 = require("./cf-ext/conditional-formattings-ext-xform.js");
|
|
6
7
|
class ExtXform extends composite_xform_1.CompositeXform {
|
|
@@ -35,9 +36,52 @@ class ExtXform extends composite_xform_1.CompositeXform {
|
|
|
35
36
|
this.model[name] = parser.model;
|
|
36
37
|
}
|
|
37
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Lightweight xform for the sparkline extension block.
|
|
41
|
+
* Renders/captures `<ext uri="{05C60535-...}">` containing x14:sparklineGroups.
|
|
42
|
+
*/
|
|
43
|
+
class SparklineExtXform {
|
|
44
|
+
constructor() {
|
|
45
|
+
this._parsedModel = null;
|
|
46
|
+
}
|
|
47
|
+
get tag() {
|
|
48
|
+
return "ext";
|
|
49
|
+
}
|
|
50
|
+
hasContent(sparklineGroups) {
|
|
51
|
+
return Array.isArray(sparklineGroups) && sparklineGroups.length > 0;
|
|
52
|
+
}
|
|
53
|
+
render(xmlStream, sparklineGroups) {
|
|
54
|
+
if (!this.hasContent(sparklineGroups)) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
// The canonical Microsoft-registered extension uri for
|
|
58
|
+
// `x14:sparklineGroups` is
|
|
59
|
+
// {05C60535-1F16-4fd2-B633-F4F36F0B64E0}
|
|
60
|
+
// as emitted by Excel 2010 through Excel 365. Earlier
|
|
61
|
+
// revisions of this file used the WRONG uri
|
|
62
|
+
// `{05C60535-1F16-4fd2-B633-F4F36F0041E1}` (a typo that
|
|
63
|
+
// looked plausible but doesn't match any registered
|
|
64
|
+
// extension). Excel's MC processor — which is designed to
|
|
65
|
+
// silently skip unknown extension uris — dropped the whole
|
|
66
|
+
// `<ext>` element on load, erasing every sparkline the
|
|
67
|
+
// workbook defined. Verified against a Microsoft Excel 2021
|
|
68
|
+
// sparkline reference (`tmp/ccccc.xlsx`); switching to the
|
|
69
|
+
// correct uri restored sparkline rendering.
|
|
70
|
+
xmlStream.openNode("ext", {
|
|
71
|
+
uri: "{05C60535-1F16-4fd2-B633-F4F36F0B64E0}",
|
|
72
|
+
"xmlns:x14": "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"
|
|
73
|
+
});
|
|
74
|
+
xmlStream.writeRaw((0, sparkline_1.renderSparklineGroups)(sparklineGroups));
|
|
75
|
+
xmlStream.closeNode();
|
|
76
|
+
}
|
|
77
|
+
parse(xml) {
|
|
78
|
+
return (0, sparkline_1.parseSparklineGroups)(xml);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
38
81
|
class ExtLstXform extends composite_xform_1.CompositeXform {
|
|
39
82
|
constructor() {
|
|
40
83
|
super();
|
|
84
|
+
this.sparklineExt = new SparklineExtXform();
|
|
41
85
|
this.map = {
|
|
42
86
|
ext: (this.ext = new ExtXform())
|
|
43
87
|
};
|
|
@@ -49,14 +93,19 @@ class ExtLstXform extends composite_xform_1.CompositeXform {
|
|
|
49
93
|
this.ext.prepare(model);
|
|
50
94
|
}
|
|
51
95
|
hasContent(model) {
|
|
52
|
-
return this.ext.hasContent(model);
|
|
96
|
+
return this.ext.hasContent(model) || this.sparklineExt.hasContent(model?.sparklineGroups);
|
|
53
97
|
}
|
|
54
98
|
render(xmlStream, model) {
|
|
55
99
|
if (!this.hasContent(model)) {
|
|
56
100
|
return;
|
|
57
101
|
}
|
|
58
102
|
xmlStream.openNode("extLst");
|
|
59
|
-
this.ext.
|
|
103
|
+
if (this.ext.hasContent(model)) {
|
|
104
|
+
this.ext.render(xmlStream, model);
|
|
105
|
+
}
|
|
106
|
+
if (this.sparklineExt.hasContent(model?.sparklineGroups)) {
|
|
107
|
+
this.sparklineExt.render(xmlStream, model.sparklineGroups);
|
|
108
|
+
}
|
|
60
109
|
xmlStream.closeNode();
|
|
61
110
|
}
|
|
62
111
|
createNewModel() {
|