@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
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal, zero-dependency TopoJSON feature extractor.
|
|
3
|
+
*
|
|
4
|
+
* TopoJSON (https://github.com/topojson/topojson-specification) encodes
|
|
5
|
+
* geometries as indices into a shared arc table, optionally with an
|
|
6
|
+
* integer quantisation grid that is dequantised via `transform`. Full
|
|
7
|
+
* support (mesh, merge, presimplify…) belongs to a dedicated library;
|
|
8
|
+
* this module implements only what the `regionMap` renderer needs:
|
|
9
|
+
*
|
|
10
|
+
* 1. Parse a {@link TopologyLike} object produced by any TopoJSON 1.x
|
|
11
|
+
* emitter (d3, topojson-server, world-atlas bundles).
|
|
12
|
+
* 2. Dequantise integer-encoded arcs back to absolute lon/lat pairs.
|
|
13
|
+
* 3. Resolve a geometry (`Polygon` / `MultiPolygon` / `LineString` /
|
|
14
|
+
* `MultiLineString` / `Point` / `MultiPoint`) into drawable rings.
|
|
15
|
+
*
|
|
16
|
+
* The shapes here mirror what the TopoJSON 1.x spec emits but keep
|
|
17
|
+
* the types narrow — unknown fields (`bbox`, vendor extensions) are
|
|
18
|
+
* ignored, not stripped. Users who need the full spec should use the
|
|
19
|
+
* upstream `topojson-client` package; doing so does not conflict with
|
|
20
|
+
* this module because both return `[lon, lat]` coordinate arrays in
|
|
21
|
+
* the geometry output.
|
|
22
|
+
*/
|
|
23
|
+
import { ChartOptionsError } from "../errors.js";
|
|
24
|
+
/**
|
|
25
|
+
* Resolve a named object from a {@link TopologyLike} into a flat list
|
|
26
|
+
* of `{ id, rings }` records. Each `rings[0]` is the outer ring and
|
|
27
|
+
* the remainder are holes. For `LineString` / `MultiLineString`,
|
|
28
|
+
* `rings` contains the open polylines; the caller is expected to
|
|
29
|
+
* treat them as un-closed paths.
|
|
30
|
+
*
|
|
31
|
+
* Throws if the object is missing or not a recognised geometry type —
|
|
32
|
+
* preferring a loud failure over silent "empty map" output, which is
|
|
33
|
+
* almost always a wiring bug on the caller's side.
|
|
34
|
+
*/
|
|
35
|
+
export function resolveTopologyObject(topology, objectName) {
|
|
36
|
+
const obj = topology.objects?.[objectName];
|
|
37
|
+
if (!obj) {
|
|
38
|
+
throw new ChartOptionsError(`resolveTopologyObject: topology.objects['${objectName}'] not found (available: ${Object.keys(topology.objects ?? {}).join(", ") || "<none>"}).`);
|
|
39
|
+
}
|
|
40
|
+
if (!Array.isArray(topology.arcs)) {
|
|
41
|
+
// Malformed input — TopoJSON spec requires `arcs` to be an array. We
|
|
42
|
+
// bail out explicitly (rather than throwing inside `decode` below
|
|
43
|
+
// from a `TypeError: Cannot read properties of undefined`) so the
|
|
44
|
+
// caller sees a clear message.
|
|
45
|
+
throw new ChartOptionsError(`resolveTopologyObject: topology.arcs is missing or not an array; cannot decode geometry.`);
|
|
46
|
+
}
|
|
47
|
+
const rawScale = topology.transform?.scale;
|
|
48
|
+
const rawTranslate = topology.transform?.translate;
|
|
49
|
+
// Defensive: verify both are finite 2-tuples before forwarding to
|
|
50
|
+
// `dequantiseArc`. A single `NaN` / `Infinity` in scale or translate
|
|
51
|
+
// would otherwise propagate through every coordinate.
|
|
52
|
+
const isFinitePair = (v) => Array.isArray(v) && v.length === 2 && Number.isFinite(v[0]) && Number.isFinite(v[1]);
|
|
53
|
+
const scale = isFinitePair(rawScale) ? rawScale : undefined;
|
|
54
|
+
const translate = isFinitePair(rawTranslate) ? rawTranslate : undefined;
|
|
55
|
+
// Cache decoded arcs by their positive index. A world-atlas topology
|
|
56
|
+
// typically shares each arc between 2–4 neighbouring countries; with
|
|
57
|
+
// no cache, `dequantiseArc` (an O(n) delta-accumulator) runs that
|
|
58
|
+
// many times per render. The cache turns the inner loop into O(1)
|
|
59
|
+
// for repeated references without changing any semantics — decoded
|
|
60
|
+
// points are read-only from the caller's perspective.
|
|
61
|
+
const decodedArcs = new Map();
|
|
62
|
+
const decode = (arcIndex) => {
|
|
63
|
+
const reverse = arcIndex < 0;
|
|
64
|
+
// Topojson spec: a negative index means the 1s-complement of the arc's
|
|
65
|
+
// positive index, used to indicate reverse traversal.
|
|
66
|
+
const positive = reverse ? ~arcIndex : arcIndex;
|
|
67
|
+
let points = decodedArcs.get(positive);
|
|
68
|
+
if (!points) {
|
|
69
|
+
const rawArc = topology.arcs[positive];
|
|
70
|
+
if (!rawArc) {
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
73
|
+
points = dequantiseArc(rawArc, scale, translate);
|
|
74
|
+
decodedArcs.set(positive, points);
|
|
75
|
+
}
|
|
76
|
+
// Always return a fresh array on reverse — callers mutate the
|
|
77
|
+
// returned array in some code paths (`joinRing` concat), and we
|
|
78
|
+
// don't want the cached copy to be mutated.
|
|
79
|
+
return reverse ? points.slice().reverse() : points.slice();
|
|
80
|
+
};
|
|
81
|
+
const geometries = obj.type === "GeometryCollection" ? obj.geometries : [obj];
|
|
82
|
+
const results = [];
|
|
83
|
+
for (const geom of geometries) {
|
|
84
|
+
const rings = [];
|
|
85
|
+
switch (geom.type) {
|
|
86
|
+
case "Polygon": {
|
|
87
|
+
for (const ring of geom.arcs) {
|
|
88
|
+
rings.push(joinRing(ring, decode));
|
|
89
|
+
}
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
case "MultiPolygon": {
|
|
93
|
+
for (const poly of geom.arcs) {
|
|
94
|
+
for (const ring of poly) {
|
|
95
|
+
rings.push(joinRing(ring, decode));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
case "LineString": {
|
|
101
|
+
rings.push(joinRing(geom.arcs, decode));
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
case "MultiLineString": {
|
|
105
|
+
for (const line of geom.arcs) {
|
|
106
|
+
rings.push(joinRing(line, decode));
|
|
107
|
+
}
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
case "Point": {
|
|
111
|
+
// Point / MultiPoint coordinates live in the same quantised
|
|
112
|
+
// grid as arc coordinates when the topology carries a
|
|
113
|
+
// `transform`. Previously the coordinates were pushed raw,
|
|
114
|
+
// so Point features from a d3 / topojson-server-quantised
|
|
115
|
+
// topology plotted at integer pixel positions (e.g.
|
|
116
|
+
// `[5243, 3012]`) instead of their lon/lat values. Dequantise
|
|
117
|
+
// through the same pipeline arcs use to keep the output space
|
|
118
|
+
// consistent. Point coordinates are NOT delta-encoded — each
|
|
119
|
+
// is absolute — so wrap the single pair in a synthetic "arc"
|
|
120
|
+
// and only apply the scale/translate step.
|
|
121
|
+
if (scale && translate) {
|
|
122
|
+
const [x, y] = geom.coordinates;
|
|
123
|
+
if (Number.isFinite(x) && Number.isFinite(y)) {
|
|
124
|
+
rings.push([[x * scale[0] + translate[0], y * scale[1] + translate[1]]]);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
rings.push([geom.coordinates]);
|
|
129
|
+
}
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
case "MultiPoint": {
|
|
133
|
+
if (scale && translate) {
|
|
134
|
+
const ring = [];
|
|
135
|
+
for (const [x, y] of geom.coordinates) {
|
|
136
|
+
if (Number.isFinite(x) && Number.isFinite(y)) {
|
|
137
|
+
ring.push([x * scale[0] + translate[0], y * scale[1] + translate[1]]);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (ring.length > 0) {
|
|
141
|
+
rings.push(ring);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
for (const pt of geom.coordinates) {
|
|
146
|
+
rings.push([pt]);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
default: {
|
|
152
|
+
// Unknown geometry type — skip instead of throwing so a
|
|
153
|
+
// collection containing a few unsupported entries still
|
|
154
|
+
// renders the rest. The caller can detect empty output and
|
|
155
|
+
// decide whether to warn.
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
results.push({
|
|
160
|
+
id: geom.id,
|
|
161
|
+
properties: "properties" in geom && geom.properties
|
|
162
|
+
? geom.properties
|
|
163
|
+
: undefined,
|
|
164
|
+
geometry: geom,
|
|
165
|
+
rings
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
return results;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Concatenate a list of arc indices into one ring, removing the
|
|
172
|
+
* duplicate join points where two arcs share an endpoint. Follows the
|
|
173
|
+
* TopoJSON spec: when joining arc B to arc A, the first point of B is
|
|
174
|
+
* identical to the last point of A and must be dropped.
|
|
175
|
+
*/
|
|
176
|
+
function joinRing(arcIndices, decode) {
|
|
177
|
+
const out = [];
|
|
178
|
+
for (const arcIndex of arcIndices) {
|
|
179
|
+
const pts = decode(arcIndex);
|
|
180
|
+
if (pts.length === 0) {
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
// "First non-empty arc" is when `out` is still empty — push all
|
|
184
|
+
// points including the starting one. For every subsequent arc, the
|
|
185
|
+
// join point (pts[0]) is identical to `out[-1]` by TopoJSON spec
|
|
186
|
+
// §2.1.4 and must be dropped.
|
|
187
|
+
//
|
|
188
|
+
// Using `out.length === 0` instead of `i === 0` matters when the
|
|
189
|
+
// first arc decoded empty: a naive "i === 0" check would drop the
|
|
190
|
+
// starting point of the first real (non-empty) arc, shifting the
|
|
191
|
+
// whole ring by one vertex.
|
|
192
|
+
if (out.length === 0) {
|
|
193
|
+
out.push(...pts);
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
for (let j = 1; j < pts.length; j++) {
|
|
197
|
+
out.push(pts[j]);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return out;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Undo delta encoding and apply the quantisation transform. Each
|
|
205
|
+
* consecutive `[dx, dy]` pair in the source represents an offset
|
|
206
|
+
* from the previous point; the first pair is absolute.
|
|
207
|
+
*/
|
|
208
|
+
function dequantiseArc(arc, scale, translate) {
|
|
209
|
+
if (!scale || !translate) {
|
|
210
|
+
// Arcs already hold floating-point absolute coordinates.
|
|
211
|
+
//
|
|
212
|
+
// Filter out non-finite points so a single malformed pair doesn't
|
|
213
|
+
// propagate `NaN` into downstream `[x, y]` consumers (SVG coord
|
|
214
|
+
// printing, PDF path construction) where it silently produces
|
|
215
|
+
// broken geometry.
|
|
216
|
+
return arc
|
|
217
|
+
.filter(pair => Array.isArray(pair) && Number.isFinite(pair[0]) && Number.isFinite(pair[1]))
|
|
218
|
+
.map(([x, y]) => [x, y]);
|
|
219
|
+
}
|
|
220
|
+
const out = [];
|
|
221
|
+
let qx = 0;
|
|
222
|
+
let qy = 0;
|
|
223
|
+
for (const pair of arc) {
|
|
224
|
+
// Defensive check: any non-finite delta would permanently poison
|
|
225
|
+
// the running accumulator, so we abort the whole arc rather than
|
|
226
|
+
// emit progressively worse `NaN` vertices.
|
|
227
|
+
if (!Array.isArray(pair) || !Number.isFinite(pair[0]) || !Number.isFinite(pair[1])) {
|
|
228
|
+
return [];
|
|
229
|
+
}
|
|
230
|
+
const [dx, dy] = pair;
|
|
231
|
+
qx += dx;
|
|
232
|
+
qy += dy;
|
|
233
|
+
out.push([qx * scale[0] + translate[0], qy * scale[1] + translate[1]]);
|
|
234
|
+
}
|
|
235
|
+
return out;
|
|
236
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chart type definitions for ExcelTS
|
|
3
|
+
*
|
|
4
|
+
* Covers the full OOXML DrawingML Chart specification (c: namespace).
|
|
5
|
+
* Every chart in an XLSX file is a `c:chartSpace` containing a `c:chart`
|
|
6
|
+
* which holds a `c:plotArea` with one or more chart type groups.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chart Support Registry
|
|
3
|
+
*
|
|
4
|
+
* A tiny indirection layer that lets `Worksheet`, `Workbook` and
|
|
5
|
+
* `Chartsheet` call into chart-building, chart-rendering and chart
|
|
6
|
+
* cache-population code **only if the host application has opted in**
|
|
7
|
+
* by calling `installChartSupport()` from
|
|
8
|
+
* `@cj-tech-master/excelts/chart`.
|
|
9
|
+
*
|
|
10
|
+
* ## Why a registry
|
|
11
|
+
*
|
|
12
|
+
* The chart module ships 17 files covering classic charts, ChartEx
|
|
13
|
+
* (Excel 2016+), SVG/PNG/PDF renderers, preset catalogues, shape
|
|
14
|
+
* properties, TopoJSON region maps and cache populators — roughly
|
|
15
|
+
* 30,000 lines of TypeScript. Empirical measurement shows that making
|
|
16
|
+
* `Worksheet` import from chart directly forces ~1.2 MB of chart code
|
|
17
|
+
* into every consumer bundle, even for consumers who only read and
|
|
18
|
+
* write cells.
|
|
19
|
+
*
|
|
20
|
+
* This file is the single point of indirection. Importing `Worksheet`
|
|
21
|
+
* pulls it in (~1 KB) but does NOT pull in the chart implementation;
|
|
22
|
+
* the implementation only arrives once someone calls
|
|
23
|
+
* `installChartSupport()`, which bundlers resolve to the
|
|
24
|
+
* `@cj-tech-master/excelts/chart` subpath import graph.
|
|
25
|
+
*
|
|
26
|
+
* If chart-manipulating APIs (`worksheet.addChart()`, `workbook.writeFile()`
|
|
27
|
+
* with charts, etc.) are called without `installChartSupport()` having
|
|
28
|
+
* run, a clear error is thrown telling the developer how to fix it.
|
|
29
|
+
*
|
|
30
|
+
* ## Why it lives in `excel/` rather than `excel/chart/`
|
|
31
|
+
*
|
|
32
|
+
* Host-registry pattern convention: the slot lives with the consumer,
|
|
33
|
+
* not with the provider. `worksheet.ts`, `workbook.browser.ts` and
|
|
34
|
+
* `chartsheet.ts` are the consumers and they all live in `excel/`, so
|
|
35
|
+
* the slot sits next to them. The chart module only depends on it when
|
|
36
|
+
* `install()` is called — a one-way arrow from provider to consumer.
|
|
37
|
+
*
|
|
38
|
+
* This differs from `@formula/host-registry` which lives inside the
|
|
39
|
+
* formula module because formula is a separate top-level module (layer
|
|
40
|
+
* 3) that cannot import from excel. Chart is nested under excel
|
|
41
|
+
* (layer 4), so the slot naturally lives in excel.
|
|
42
|
+
*
|
|
43
|
+
* ## Relationship to formula's host-registry
|
|
44
|
+
*
|
|
45
|
+
* The two registries are independent slots for independent optional
|
|
46
|
+
* features. A consumer may install chart without formula, formula
|
|
47
|
+
* without chart, both, or neither.
|
|
48
|
+
*/
|
|
49
|
+
let installed = null;
|
|
50
|
+
/**
|
|
51
|
+
* Install a chart runtime implementation. Called from
|
|
52
|
+
* `installChartSupport()` in the `@cj-tech-master/excelts/chart`
|
|
53
|
+
* subpath.
|
|
54
|
+
*
|
|
55
|
+
* Re-installing is allowed — the last registration wins. Passing
|
|
56
|
+
* `null` uninstalls chart support, which is useful for tests that
|
|
57
|
+
* exercise the "no chart" error path.
|
|
58
|
+
*/
|
|
59
|
+
export function registerChartSupport(support) {
|
|
60
|
+
installed = support;
|
|
61
|
+
}
|
|
62
|
+
/** Returns true when chart support has been installed. */
|
|
63
|
+
export function hasChartSupport() {
|
|
64
|
+
return installed !== null;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Retrieve the installed chart support. Throws a descriptive error if
|
|
68
|
+
* no chart support is installed.
|
|
69
|
+
*/
|
|
70
|
+
export function getChartSupport() {
|
|
71
|
+
if (!installed) {
|
|
72
|
+
throw new Error("No chart support is installed. " +
|
|
73
|
+
"Call `installChartSupport()` from `@cj-tech-master/excelts/chart` " +
|
|
74
|
+
"once at startup to enable chart creation, loading, and " +
|
|
75
|
+
"serialisation during `workbook.xlsx.writeFile()`.");
|
|
76
|
+
}
|
|
77
|
+
return installed;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Retrieve installed chart support, or `null` if none is installed.
|
|
81
|
+
*
|
|
82
|
+
* Used by code paths that can gracefully degrade when chart support is
|
|
83
|
+
* missing — e.g. ChartEx loading, which can preserve raw XML verbatim
|
|
84
|
+
* without a full parse when chart support is absent. Note that classic
|
|
85
|
+
* chart loading currently requires chart support to be installed (the
|
|
86
|
+
* reader calls `getChartSupport()` unconditionally for classic charts).
|
|
87
|
+
*/
|
|
88
|
+
export function tryGetChartSupport() {
|
|
89
|
+
return installed;
|
|
90
|
+
}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { getChartSupport } from "./chart-host-registry.js";
|
|
2
|
+
/**
|
|
3
|
+
* Nominal anchor range for the full-sheet chart in a chartsheet.
|
|
4
|
+
* Chartsheet charts fill the entire sheet viewport; the anchor value is
|
|
5
|
+
* never used for positioning but is required by the Chart constructor to
|
|
6
|
+
* initialise its internal two-cell-anchor model.
|
|
7
|
+
*/
|
|
8
|
+
const CHARTSHEET_ANCHOR_RANGE = "A1:K15";
|
|
9
|
+
/**
|
|
10
|
+
* Minimal `Worksheet`-shaped proxy used exclusively to back the `Chart`
|
|
11
|
+
* instance returned from {@link Chartsheet.chart}.
|
|
12
|
+
*
|
|
13
|
+
* A chartsheet is a top-level sheet that hosts a single chart without a
|
|
14
|
+
* surrounding grid — there are no rows, columns, tables, merges, or
|
|
15
|
+
* drawings underneath it. `Chart`, however, assumes it lives inside a
|
|
16
|
+
* `Worksheet` so it can walk up to the workbook, copy relationship
|
|
17
|
+
* sidecars, and compute anchor geometry.
|
|
18
|
+
*
|
|
19
|
+
* Previous versions fabricated an empty `{ workbook, name } as any` to
|
|
20
|
+
* satisfy that type. That escape hatch was a correctness trap: calling
|
|
21
|
+
* {@link Chart.copyTo} or anything that invoked `worksheet.getRow` on a
|
|
22
|
+
* chartsheet-backed Chart would throw because the underlying object had
|
|
23
|
+
* none of the real methods.
|
|
24
|
+
*
|
|
25
|
+
* `ChartsheetChartHost` replaces the cast with a first-class proxy that:
|
|
26
|
+
* - forwards the `workbook` pointer so `Chart` can reach its model,
|
|
27
|
+
* sidecars, and copyChartSidecars helper;
|
|
28
|
+
* - reports a synthetic `id`/`name` so diagnostics stay sensible;
|
|
29
|
+
* - throws a clear, descriptive error from every grid-centric method so
|
|
30
|
+
* any accidental reach through fails loudly instead of silently
|
|
31
|
+
* corrupting state (`getRow`, `addRow`, `getColumn`, `addTable`, …).
|
|
32
|
+
*
|
|
33
|
+
* Callers should prefer {@link Chartsheet.chartModel} /
|
|
34
|
+
* {@link Chartsheet.chartExModel} to reach the underlying data directly.
|
|
35
|
+
*/
|
|
36
|
+
class ChartsheetChartHost {
|
|
37
|
+
constructor(workbook, chartsheetId, chartsheetName) {
|
|
38
|
+
this.id = chartsheetId;
|
|
39
|
+
this.name = chartsheetName;
|
|
40
|
+
this.workbook = workbook;
|
|
41
|
+
}
|
|
42
|
+
_unsupported(method) {
|
|
43
|
+
throw new Error(`${method}() is not supported on a Chart attached to a chartsheet. ` +
|
|
44
|
+
`Use the Chartsheet APIs (chartsheet.chartModel, chartsheet.replaceChart, …) instead.`);
|
|
45
|
+
}
|
|
46
|
+
// Grid operations — explicitly fail fast rather than silently returning
|
|
47
|
+
// undefined-ish values that could feed bad data into anchor math.
|
|
48
|
+
getRow(_rowNumber) {
|
|
49
|
+
this._unsupported("Worksheet.getRow");
|
|
50
|
+
}
|
|
51
|
+
addRow() {
|
|
52
|
+
this._unsupported("Worksheet.addRow");
|
|
53
|
+
}
|
|
54
|
+
addRows() {
|
|
55
|
+
this._unsupported("Worksheet.addRows");
|
|
56
|
+
}
|
|
57
|
+
getColumn(_colNumber) {
|
|
58
|
+
this._unsupported("Worksheet.getColumn");
|
|
59
|
+
}
|
|
60
|
+
getCell() {
|
|
61
|
+
this._unsupported("Worksheet.getCell");
|
|
62
|
+
}
|
|
63
|
+
addTable() {
|
|
64
|
+
this._unsupported("Worksheet.addTable");
|
|
65
|
+
}
|
|
66
|
+
getTables() {
|
|
67
|
+
this._unsupported("Worksheet.getTables");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
class Chartsheet {
|
|
71
|
+
constructor(model, workbook) {
|
|
72
|
+
this._model = model;
|
|
73
|
+
this._workbook = workbook;
|
|
74
|
+
}
|
|
75
|
+
get id() {
|
|
76
|
+
return this._model.id;
|
|
77
|
+
}
|
|
78
|
+
get sheetNo() {
|
|
79
|
+
return this._model.sheetNo;
|
|
80
|
+
}
|
|
81
|
+
get name() {
|
|
82
|
+
return this._model.name;
|
|
83
|
+
}
|
|
84
|
+
set name(value) {
|
|
85
|
+
// Go through the workbook's unified validator so a chartsheet can
|
|
86
|
+
// never silently land on a name that collides with a worksheet (or
|
|
87
|
+
// another chartsheet), includes illegal characters, or exceeds
|
|
88
|
+
// Excel's 31-char limit. Previously this setter just wrote
|
|
89
|
+
// `this._model.name = value` verbatim, letting callers corrupt the
|
|
90
|
+
// model into a state Excel would reject on reopen.
|
|
91
|
+
if (this._workbook) {
|
|
92
|
+
this._model.name = this._workbook.validateSheetName(value, this._model);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
this._model.name = value;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
get state() {
|
|
99
|
+
return this._model.state;
|
|
100
|
+
}
|
|
101
|
+
set state(value) {
|
|
102
|
+
this._model.state = value;
|
|
103
|
+
}
|
|
104
|
+
get chartNumber() {
|
|
105
|
+
return this._model.chartNumber;
|
|
106
|
+
}
|
|
107
|
+
get chartExNumber() {
|
|
108
|
+
return this._model.chartExNumber;
|
|
109
|
+
}
|
|
110
|
+
get chartModel() {
|
|
111
|
+
return this._model.chartNumber
|
|
112
|
+
? this._workbook?.getChartEntry(this._model.chartNumber)?.model
|
|
113
|
+
: undefined;
|
|
114
|
+
}
|
|
115
|
+
get chartExModel() {
|
|
116
|
+
return this._model.chartExNumber
|
|
117
|
+
? this._workbook?.getChartExStructuredEntry(this._model.chartExNumber)?.model
|
|
118
|
+
: undefined;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Return the `Chart` wrapper for this chartsheet's single chart.
|
|
122
|
+
*
|
|
123
|
+
* The wrapper's `.worksheet` field is a {@link ChartsheetChartHost}
|
|
124
|
+
* rather than a real `Worksheet` — grid operations on it will throw a
|
|
125
|
+
* descriptive error. For anything grid-related, use the underlying
|
|
126
|
+
* {@link chartModel}/{@link chartExModel} directly or go through the
|
|
127
|
+
* `Chartsheet` methods ({@link replaceChart}, {@link rename}, …).
|
|
128
|
+
*/
|
|
129
|
+
get chart() {
|
|
130
|
+
if (!this._workbook || (!this._model.chartNumber && !this._model.chartExNumber)) {
|
|
131
|
+
return undefined;
|
|
132
|
+
}
|
|
133
|
+
const host = new ChartsheetChartHost(this._workbook, this._model.id, this._model.name);
|
|
134
|
+
// The `Chart` constructor types its first argument as `Worksheet`, but
|
|
135
|
+
// internally it only touches `worksheet.workbook`, `worksheet.id`, and
|
|
136
|
+
// `worksheet.name` from that position (plus anchor helpers that we've
|
|
137
|
+
// stubbed above). Casting is safe here because the host deliberately
|
|
138
|
+
// implements that exact contract and loudly rejects anything else.
|
|
139
|
+
return getChartSupport().createChart(host, { chartNumber: this._model.chartNumber, chartExNumber: this._model.chartExNumber }, CHARTSHEET_ANCHOR_RANGE);
|
|
140
|
+
}
|
|
141
|
+
get isChartEx() {
|
|
142
|
+
return !!this._model.chartExNumber;
|
|
143
|
+
}
|
|
144
|
+
get model() {
|
|
145
|
+
return this._model;
|
|
146
|
+
}
|
|
147
|
+
get pageMargins() {
|
|
148
|
+
return this._model.pageMargins;
|
|
149
|
+
}
|
|
150
|
+
set pageMargins(value) {
|
|
151
|
+
this._model.pageMargins = value;
|
|
152
|
+
}
|
|
153
|
+
get pageSetup() {
|
|
154
|
+
return this._model.pageSetup;
|
|
155
|
+
}
|
|
156
|
+
set pageSetup(value) {
|
|
157
|
+
this._model.pageSetup = value;
|
|
158
|
+
}
|
|
159
|
+
get tabSelected() {
|
|
160
|
+
return this._model.tabSelected;
|
|
161
|
+
}
|
|
162
|
+
set tabSelected(value) {
|
|
163
|
+
this._model.tabSelected = value;
|
|
164
|
+
}
|
|
165
|
+
get zoomScale() {
|
|
166
|
+
return this._model.zoomScale;
|
|
167
|
+
}
|
|
168
|
+
set zoomScale(value) {
|
|
169
|
+
this._model.zoomScale = value;
|
|
170
|
+
}
|
|
171
|
+
get workbookViewId() {
|
|
172
|
+
return this._model.workbookViewId;
|
|
173
|
+
}
|
|
174
|
+
set workbookViewId(value) {
|
|
175
|
+
this._model.workbookViewId = value;
|
|
176
|
+
}
|
|
177
|
+
get zoomToFit() {
|
|
178
|
+
return this._model.zoomToFit;
|
|
179
|
+
}
|
|
180
|
+
set zoomToFit(value) {
|
|
181
|
+
this._model.zoomToFit = value;
|
|
182
|
+
}
|
|
183
|
+
rename(name) {
|
|
184
|
+
return this._workbook?.renameChartsheet(this.name, name) ?? false;
|
|
185
|
+
}
|
|
186
|
+
remove() {
|
|
187
|
+
return this._workbook?.removeChartsheet(this.name) ?? false;
|
|
188
|
+
}
|
|
189
|
+
copy(name) {
|
|
190
|
+
return this._workbook?.copyChartsheet(this.name, name);
|
|
191
|
+
}
|
|
192
|
+
replaceChart(chart) {
|
|
193
|
+
return this._workbook?.replaceChartsheetChart(this.name, chart) ?? false;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
export { Chartsheet };
|
|
@@ -218,6 +218,7 @@ class DefinedNames {
|
|
|
218
218
|
this.matrixMap = {};
|
|
219
219
|
this.formulaMap = {};
|
|
220
220
|
this.localSheetIdMap = {};
|
|
221
|
+
this.hiddenMap = {};
|
|
221
222
|
this.opaqueMap = {};
|
|
222
223
|
this.nameForKey = {};
|
|
223
224
|
this._explicitProbe = probe ?? null;
|
|
@@ -239,6 +240,29 @@ class DefinedNames {
|
|
|
239
240
|
this.nameForKey[name] = name;
|
|
240
241
|
this.addEx(location, name);
|
|
241
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* Register a hidden defined name that maps a chartEx `_xlchart.vN.M`
|
|
245
|
+
* pointer to a worksheet range. Excel emits one of these for every
|
|
246
|
+
* data reference in a chartEx chart:
|
|
247
|
+
*
|
|
248
|
+
* <definedName name="_xlchart.v1.0" hidden="1">Sheet1!$A$1:$A$3</definedName>
|
|
249
|
+
*
|
|
250
|
+
* The chartEx then references `_xlchart.v1.0` from its `<cx:f>`
|
|
251
|
+
* element instead of the worksheet range directly. Direct sheet
|
|
252
|
+
* references in `<cx:f>` are rejected by Excel 2016+ with
|
|
253
|
+
* "Removed Part: /xl/drawings/drawingN.xml (Drawing shape)" on
|
|
254
|
+
* load, so chartEx data MUST go through this indirection.
|
|
255
|
+
*
|
|
256
|
+
* Same semantics as `add()` but also marks the name `hidden` so
|
|
257
|
+
* it does not show up in Excel's Name Manager UI.
|
|
258
|
+
*
|
|
259
|
+
* @param locStr - Worksheet reference (e.g. `"Sheet1!$A$1:$A$3"`)
|
|
260
|
+
* @param name - Defined name to register (e.g. `"_xlchart.v1.0"`)
|
|
261
|
+
*/
|
|
262
|
+
addHidden(locStr, name) {
|
|
263
|
+
this.add(locStr, name);
|
|
264
|
+
this.hiddenMap[name] = true;
|
|
265
|
+
}
|
|
242
266
|
addEx(location, name) {
|
|
243
267
|
const matrix = this.getMatrix(name);
|
|
244
268
|
if ("top" in location) {
|
|
@@ -516,10 +540,15 @@ class DefinedNames {
|
|
|
516
540
|
.map(([sKey, matrix]) => {
|
|
517
541
|
const result = this.getRanges(sKey, matrix);
|
|
518
542
|
const localSheetId = this.localSheetIdMap[sKey];
|
|
543
|
+
const hidden = this.hiddenMap[sKey];
|
|
544
|
+
const out = { ...result };
|
|
519
545
|
if (localSheetId !== undefined) {
|
|
520
|
-
|
|
546
|
+
out.localSheetId = localSheetId;
|
|
521
547
|
}
|
|
522
|
-
|
|
548
|
+
if (hidden) {
|
|
549
|
+
out.hidden = true;
|
|
550
|
+
}
|
|
551
|
+
return out;
|
|
523
552
|
})
|
|
524
553
|
.filter((definedName) => definedName.ranges.length);
|
|
525
554
|
// Formula-based names from formulaMap (only include names not already in matrixMap)
|
|
@@ -534,20 +563,27 @@ class DefinedNames {
|
|
|
534
563
|
};
|
|
535
564
|
const localSheetId = this.localSheetIdMap[sKey];
|
|
536
565
|
if (localSheetId !== undefined) {
|
|
537
|
-
|
|
566
|
+
result.localSheetId = localSheetId;
|
|
567
|
+
}
|
|
568
|
+
if (this.hiddenMap[sKey]) {
|
|
569
|
+
result.hidden = true;
|
|
538
570
|
}
|
|
539
571
|
return result;
|
|
540
572
|
});
|
|
541
573
|
// Opaque names — rawText preserved for round-trip
|
|
542
574
|
const opaqueNames = Object.entries(this.opaqueMap).map(([sKey, entry]) => {
|
|
543
575
|
const bareName = this.nameForKey[sKey] ?? sKey;
|
|
544
|
-
|
|
576
|
+
const out = {
|
|
545
577
|
name: bareName,
|
|
546
578
|
ranges: [],
|
|
547
579
|
rawText: entry.rawText,
|
|
548
580
|
localSheetId: entry.localSheetId,
|
|
549
581
|
kind: "opaque"
|
|
550
582
|
};
|
|
583
|
+
if (this.hiddenMap[sKey]) {
|
|
584
|
+
out.hidden = true;
|
|
585
|
+
}
|
|
586
|
+
return out;
|
|
551
587
|
});
|
|
552
588
|
return [...cellNames, ...formulaNames, ...opaqueNames];
|
|
553
589
|
}
|
|
@@ -563,6 +599,7 @@ class DefinedNames {
|
|
|
563
599
|
const matrixMap = (this.matrixMap = {});
|
|
564
600
|
const formulaMap = (this.formulaMap = {});
|
|
565
601
|
const localSheetIdMap = (this.localSheetIdMap = {});
|
|
602
|
+
const hiddenMap = (this.hiddenMap = {});
|
|
566
603
|
const opaqueMap = (this.opaqueMap = {});
|
|
567
604
|
const nameForKeyMap = (this.nameForKey = {});
|
|
568
605
|
// Resolve probe lazily: a caller may have constructed the Workbook
|
|
@@ -577,6 +614,9 @@ class DefinedNames {
|
|
|
577
614
|
if (definedName.localSheetId !== undefined) {
|
|
578
615
|
localSheetIdMap[sKey] = definedName.localSheetId;
|
|
579
616
|
}
|
|
617
|
+
if (definedName.hidden) {
|
|
618
|
+
hiddenMap[sKey] = true;
|
|
619
|
+
}
|
|
580
620
|
// Programmatic API path: formulaExpression already set and no rawText
|
|
581
621
|
if (definedName.formulaExpression && definedName.rawText === undefined) {
|
|
582
622
|
formulaMap[sKey] = definedName.formulaExpression;
|
|
@@ -145,6 +145,15 @@ export class PivotTableError extends ExcelError {
|
|
|
145
145
|
this.name = "PivotTableError";
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Error thrown when chart configuration is invalid.
|
|
150
|
+
*/
|
|
151
|
+
export class ChartOptionsError extends ExcelError {
|
|
152
|
+
constructor() {
|
|
153
|
+
super(...arguments);
|
|
154
|
+
this.name = "ChartOptionsError";
|
|
155
|
+
}
|
|
156
|
+
}
|
|
148
157
|
/**
|
|
149
158
|
* Error thrown when table configuration or operation is invalid.
|
|
150
159
|
*/
|
|
@@ -51,6 +51,23 @@ class FormCheckbox {
|
|
|
51
51
|
print: options?.print ?? false
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Rebuild a FormCheckbox from a previously-serialised model (e.g. round-tripped
|
|
56
|
+
* via `worksheet.model`). The model is adopted as-is; no range parsing or shape
|
|
57
|
+
* id reassignment is performed.
|
|
58
|
+
*/
|
|
59
|
+
static fromModel(worksheet, model) {
|
|
60
|
+
const cb = Object.create(FormCheckbox.prototype);
|
|
61
|
+
cb.worksheet = worksheet;
|
|
62
|
+
// Defensive shallow clone: the caller should not be able to mutate the
|
|
63
|
+
// underlying anchor objects through the original reference.
|
|
64
|
+
cb.model = {
|
|
65
|
+
...model,
|
|
66
|
+
tl: { ...model.tl },
|
|
67
|
+
br: { ...model.br }
|
|
68
|
+
};
|
|
69
|
+
return cb;
|
|
70
|
+
}
|
|
54
71
|
/**
|
|
55
72
|
* Get the checked state
|
|
56
73
|
*/
|