@cj-tech-master/excelts 9.5.4 → 9.5.5
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/modules/archive/compression/streaming-compress.browser.js +29 -0
- package/dist/browser/modules/archive/compression/streaming-compress.js +9 -0
- package/dist/browser/modules/archive/compression/worker-pool/pool.browser.js +26 -1
- package/dist/browser/modules/archive/fs/archive-file.d.ts +8 -5
- package/dist/browser/modules/archive/fs/archive-file.js +78 -16
- package/dist/browser/modules/archive/unzip/stream.browser.js +43 -2
- package/dist/browser/modules/excel/chart/chart-ex-builder.js +7 -2
- package/dist/browser/modules/excel/chart/chart-ex-renderer.js +4 -9
- package/dist/browser/modules/excel/chart/chart-ex-types.d.ts +0 -12
- package/dist/browser/modules/excel/chart/chart.d.ts +1 -5
- package/dist/browser/modules/excel/chart/chart.js +1 -7
- package/dist/browser/modules/excel/chart/types.d.ts +0 -6
- package/dist/browser/modules/excel/stream/workbook-reader.browser.js +25 -1
- package/dist/browser/modules/excel/stream/workbook-reader.js +9 -0
- package/dist/browser/modules/excel/stream/workbook-writer.browser.d.ts +40 -0
- package/dist/browser/modules/excel/stream/workbook-writer.browser.js +228 -13
- package/dist/browser/modules/excel/utils/string-buf.d.ts +5 -26
- package/dist/browser/modules/excel/utils/string-buf.js +4 -81
- package/dist/browser/modules/excel/workbook.browser.js +135 -25
- package/dist/browser/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
- package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +19 -9
- package/dist/browser/modules/excel/xlsx/xlsx.browser.js +32 -8
- package/dist/browser/modules/excel/xlsx/xlsx.d.ts +10 -2
- package/dist/browser/modules/excel/xlsx/xlsx.js +9 -1
- package/dist/browser/modules/pdf/excel-bridge.d.ts +30 -1
- package/dist/browser/modules/pdf/excel-bridge.js +32 -0
- package/dist/browser/modules/pdf/font/metrics.d.ts +3 -52
- package/dist/browser/modules/pdf/font/metrics.js +3 -237
- package/dist/browser/modules/pdf/index.d.ts +1 -1
- package/dist/browser/modules/pdf/index.js +1 -1
- package/dist/browser/modules/pdf/render-layout-to-pdf.d.ts +66 -0
- package/dist/browser/modules/pdf/render-layout-to-pdf.js +647 -0
- package/dist/browser/modules/pdf/word-bridge.d.ts +80 -12
- package/dist/browser/modules/pdf/word-bridge.js +122 -274
- package/dist/browser/modules/stream/index.base.d.ts +2 -0
- package/dist/browser/modules/stream/index.base.js +2 -1
- package/dist/browser/modules/stream/internal/sink-adapter.d.ts +65 -0
- package/dist/browser/modules/stream/internal/sink-adapter.js +198 -0
- package/dist/browser/modules/stream/pull-stream.d.ts +19 -2
- package/dist/browser/modules/stream/pull-stream.js +51 -5
- package/dist/browser/modules/stream/types.d.ts +13 -1
- package/dist/browser/modules/word/advanced/diff.d.ts +61 -0
- package/dist/browser/modules/word/advanced/diff.js +167 -0
- package/dist/browser/modules/word/advanced/drawing-shapes.d.ts +269 -0
- package/dist/browser/modules/word/advanced/drawing-shapes.js +268 -0
- package/dist/browser/modules/word/advanced/field-engine.d.ts +43 -0
- package/dist/browser/modules/word/advanced/field-engine.js +1225 -0
- package/dist/browser/modules/word/advanced/glossary.d.ts +86 -0
- package/dist/browser/modules/word/advanced/glossary.js +79 -0
- package/dist/browser/modules/word/advanced/math-convert.d.ts +30 -0
- package/dist/browser/modules/word/advanced/math-convert.js +595 -0
- package/dist/browser/modules/word/advanced/ole-objects.d.ts +115 -0
- package/dist/browser/modules/word/advanced/ole-objects.js +271 -0
- package/dist/browser/modules/word/advanced/style-map.d.ts +105 -0
- package/dist/browser/modules/word/advanced/style-map.js +322 -0
- package/dist/browser/modules/word/advanced/validation.d.ts +56 -0
- package/dist/browser/modules/word/advanced/validation.js +1065 -0
- package/dist/browser/modules/word/advanced/vba-project.d.ts +91 -0
- package/dist/browser/modules/word/advanced/vba-project.js +265 -0
- package/dist/browser/modules/word/bridge/excel-bridge.d.ts +127 -0
- package/dist/browser/modules/word/bridge/excel-bridge.js +980 -0
- package/dist/browser/modules/word/builder/document-handle.d.ts +151 -0
- package/dist/browser/modules/word/builder/document-handle.js +664 -0
- package/dist/browser/modules/word/builder/paragraph-builders.d.ts +61 -0
- package/dist/browser/modules/word/builder/paragraph-builders.js +90 -0
- package/dist/browser/modules/word/builder/run-builders.d.ts +374 -0
- package/dist/browser/modules/word/builder/run-builders.js +600 -0
- package/dist/browser/modules/word/builder/table-builders.d.ts +23 -0
- package/dist/browser/modules/word/builder/table-builders.js +45 -0
- package/dist/browser/modules/word/constants.d.ts +39 -1
- package/dist/browser/modules/word/constants.js +109 -1
- package/dist/browser/modules/word/convert/conversion-ir.d.ts +210 -0
- package/dist/browser/modules/word/convert/conversion-ir.js +31 -0
- package/dist/browser/modules/word/convert/docx-to-semantic.d.ts +39 -0
- package/dist/browser/modules/word/convert/docx-to-semantic.js +499 -0
- package/dist/browser/modules/word/convert/flat-opc.d.ts +44 -0
- package/dist/browser/modules/word/convert/flat-opc.js +385 -0
- package/dist/browser/modules/word/convert/html/html-import.d.ts +50 -0
- package/dist/browser/modules/word/convert/html/html-import.js +1907 -0
- package/dist/{types/modules/word → browser/modules/word/convert/html}/html-renderer.d.ts +14 -1
- package/dist/{esm/modules/word → browser/modules/word/convert/html}/html-renderer.js +420 -69
- package/dist/browser/modules/word/convert/html/html.d.ts +15 -0
- package/dist/browser/modules/word/convert/html/html.js +15 -0
- package/dist/browser/modules/word/convert/markdown/markdown-import.d.ts +68 -0
- package/dist/browser/modules/word/convert/markdown/markdown-import.js +1325 -0
- package/dist/browser/modules/word/convert/markdown/markdown-renderer.d.ts +25 -0
- package/dist/browser/modules/word/convert/markdown/markdown-renderer.js +634 -0
- package/dist/browser/modules/word/convert/markdown/markdown.d.ts +15 -0
- package/dist/browser/modules/word/convert/markdown/markdown.js +15 -0
- package/dist/browser/modules/word/convert/odt/odt.d.ts +41 -0
- package/dist/browser/modules/word/convert/odt/odt.js +1932 -0
- package/dist/browser/modules/word/{color-utils.d.ts → core/color-utils.d.ts} +8 -1
- package/dist/browser/modules/word/core/color-utils.js +43 -0
- package/dist/browser/modules/word/core/internal-utils.d.ts +90 -0
- package/dist/browser/modules/word/core/internal-utils.js +209 -0
- package/dist/browser/modules/word/core/mapper.d.ts +44 -0
- package/dist/browser/modules/word/core/mapper.js +427 -0
- package/dist/browser/modules/word/core/opc-paths.d.ts +33 -0
- package/dist/browser/modules/word/core/opc-paths.js +48 -0
- package/dist/browser/modules/word/core/text-utils.d.ts +38 -0
- package/dist/browser/modules/word/core/text-utils.js +202 -0
- package/dist/browser/modules/word/core/walker.d.ts +119 -0
- package/dist/browser/modules/word/core/walker.js +570 -0
- package/dist/browser/modules/word/crypto.d.ts +14 -9
- package/dist/browser/modules/word/crypto.js +13 -7
- package/dist/browser/modules/word/document-io.d.ts +59 -27
- package/dist/browser/modules/word/document-io.js +80 -197
- package/dist/browser/modules/word/errors.d.ts +44 -1
- package/dist/browser/modules/word/errors.js +54 -2
- package/dist/browser/modules/word/excel.d.ts +14 -0
- package/dist/browser/modules/word/excel.js +13 -0
- package/dist/browser/modules/word/font/font-embed.d.ts +112 -0
- package/dist/browser/modules/word/font/font-embed.js +646 -0
- package/dist/{esm/modules/word → browser/modules/word/font}/font-obfuscation.js +4 -9
- package/dist/browser/modules/word/font/hyphenation.d.ts +65 -0
- package/dist/browser/modules/word/font/hyphenation.js +4210 -0
- package/dist/browser/modules/word/font/text-shaping.d.ts +58 -0
- package/dist/browser/modules/word/font/text-shaping.js +635 -0
- package/dist/browser/modules/word/html.d.ts +7 -6
- package/dist/browser/modules/word/html.js +6 -5
- package/dist/browser/modules/word/incremental-edit.d.ts +123 -0
- package/dist/browser/modules/word/incremental-edit.js +361 -0
- package/dist/browser/modules/word/index.base.d.ts +194 -10
- package/dist/browser/modules/word/index.base.js +138 -29
- package/dist/browser/modules/word/layout/layout-constants.d.ts +17 -0
- package/dist/browser/modules/word/layout/layout-constants.js +17 -0
- package/dist/browser/modules/word/layout/layout-full.d.ts +53 -0
- package/dist/browser/modules/word/layout/layout-full.js +1696 -0
- package/dist/browser/modules/word/layout/layout-model.d.ts +344 -0
- package/dist/browser/modules/word/layout/layout-model.js +16 -0
- package/dist/browser/modules/word/layout/layout.d.ts +63 -0
- package/dist/browser/modules/word/layout/layout.js +1167 -0
- package/dist/browser/modules/word/layout/render-page.d.ts +57 -0
- package/dist/browser/modules/word/layout/render-page.js +1238 -0
- package/dist/browser/modules/word/markdown.d.ts +14 -0
- package/dist/browser/modules/word/markdown.js +13 -0
- package/dist/browser/modules/word/patcher.d.ts +62 -0
- package/dist/browser/modules/word/patcher.js +537 -0
- package/dist/browser/modules/word/query/compat.d.ts +25 -0
- package/dist/browser/modules/word/query/compat.js +58 -0
- package/dist/browser/modules/word/query/data-binding.d.ts +22 -0
- package/dist/browser/modules/word/query/data-binding.js +392 -0
- package/dist/browser/modules/word/query/form-fields.d.ts +41 -0
- package/dist/browser/modules/word/query/form-fields.js +268 -0
- package/dist/browser/modules/word/query/format-search.d.ts +99 -0
- package/dist/browser/modules/word/query/format-search.js +329 -0
- package/dist/browser/modules/word/query/mail-merge.d.ts +25 -0
- package/dist/browser/modules/word/query/mail-merge.js +111 -0
- package/dist/browser/modules/word/query/merge.d.ts +50 -0
- package/dist/browser/modules/word/query/merge.js +617 -0
- package/dist/browser/modules/word/query/replace.d.ts +47 -0
- package/dist/browser/modules/word/query/replace.js +301 -0
- package/dist/browser/modules/word/query/revisions.d.ts +67 -0
- package/dist/browser/modules/word/query/revisions.js +879 -0
- package/dist/browser/modules/word/query/search.d.ts +129 -0
- package/dist/browser/modules/word/query/search.js +346 -0
- package/dist/browser/modules/word/query/split.d.ts +44 -0
- package/dist/browser/modules/word/query/split.js +135 -0
- package/dist/browser/modules/word/query/style-resolve.d.ts +104 -0
- package/dist/browser/modules/word/query/style-resolve.js +368 -0
- package/dist/browser/modules/word/reader/chart-parser.d.ts +20 -0
- package/dist/browser/modules/word/reader/chart-parser.js +810 -0
- package/dist/browser/modules/word/reader/comments-parser.d.ts +26 -0
- package/dist/browser/modules/word/reader/comments-parser.js +92 -0
- package/dist/browser/modules/word/reader/doc-props-parsers.d.ts +15 -0
- package/dist/browser/modules/word/reader/doc-props-parsers.js +190 -0
- package/dist/browser/modules/word/reader/docx-reader.d.ts +27 -0
- package/dist/browser/modules/word/reader/docx-reader.js +2557 -0
- package/dist/browser/modules/word/reader/drawing-helpers.d.ts +27 -0
- package/dist/browser/modules/word/reader/drawing-helpers.js +84 -0
- package/dist/browser/modules/word/reader/form-field-parser.d.ts +21 -0
- package/dist/browser/modules/word/reader/form-field-parser.js +82 -0
- package/dist/browser/modules/word/reader/image-parsers.d.ts +11 -0
- package/dist/browser/modules/word/reader/image-parsers.js +291 -0
- package/dist/browser/modules/word/reader/math-parser.d.ts +12 -0
- package/dist/browser/modules/word/reader/math-parser.js +422 -0
- package/dist/browser/modules/word/reader/metadata-parsers.d.ts +17 -0
- package/dist/browser/modules/word/reader/metadata-parsers.js +87 -0
- package/dist/browser/modules/word/reader/numbering-parser.d.ts +13 -0
- package/dist/browser/modules/word/reader/numbering-parser.js +166 -0
- package/dist/browser/modules/word/reader/paragraph-section-parsers.d.ts +12 -0
- package/dist/browser/modules/word/reader/paragraph-section-parsers.js +503 -0
- package/dist/browser/modules/word/reader/parse-utils.d.ts +91 -0
- package/dist/browser/modules/word/reader/parse-utils.js +249 -0
- package/dist/browser/modules/word/reader/properties-parsers.d.ts +21 -0
- package/dist/browser/modules/word/reader/properties-parsers.js +332 -0
- package/dist/browser/modules/word/reader/reader-context.d.ts +69 -0
- package/dist/browser/modules/word/reader/reader-context.js +61 -0
- package/dist/browser/modules/word/reader/sdt-helpers.d.ts +29 -0
- package/dist/browser/modules/word/reader/sdt-helpers.js +111 -0
- package/dist/browser/modules/word/reader/settings-parser.d.ts +8 -0
- package/dist/browser/modules/word/reader/settings-parser.js +263 -0
- package/dist/browser/modules/word/reader/styles-parser.d.ts +12 -0
- package/dist/browser/modules/word/reader/styles-parser.js +147 -0
- package/dist/browser/modules/word/reader/table-properties-parsers.d.ts +12 -0
- package/dist/browser/modules/word/reader/table-properties-parsers.js +234 -0
- package/dist/browser/modules/word/reader/theme-parser.d.ts +8 -0
- package/dist/browser/modules/word/reader/theme-parser.js +167 -0
- package/dist/browser/modules/word/reader/watermark-parser.d.ts +15 -0
- package/dist/browser/modules/word/reader/watermark-parser.js +110 -0
- package/dist/browser/modules/word/security/cfb-reader.d.ts +37 -0
- package/dist/browser/modules/word/security/cfb-reader.js +410 -0
- package/dist/browser/modules/word/{digital-signatures.d.ts → security/digital-signatures.d.ts} +19 -11
- package/dist/browser/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
- package/dist/browser/modules/word/security/document-protection.d.ts +93 -0
- package/dist/browser/modules/word/security/document-protection.js +201 -0
- package/dist/{types/modules/word → browser/modules/word/security}/encryption.d.ts +51 -4
- package/dist/browser/modules/word/security/encryption.js +602 -0
- package/dist/browser/modules/word/security/policy.d.ts +80 -0
- package/dist/browser/modules/word/security/policy.js +102 -0
- package/dist/browser/modules/word/template/template-chart.d.ts +56 -0
- package/dist/browser/modules/word/template/template-chart.js +167 -0
- package/dist/browser/modules/word/template/template-datasource.d.ts +154 -0
- package/dist/browser/modules/word/template/template-datasource.js +541 -0
- package/dist/browser/modules/word/template/template-engine.d.ts +121 -0
- package/dist/browser/modules/word/template/template-engine.js +1435 -0
- package/dist/browser/modules/word/types.d.ts +224 -25
- package/dist/browser/modules/word/units.d.ts +26 -0
- package/dist/browser/modules/word/units.js +43 -14
- package/dist/browser/modules/word/{writers → writer}/chart-writer.js +164 -23
- package/dist/browser/modules/word/writer/checkbox-writer.d.ts +17 -0
- package/dist/browser/modules/word/writer/checkbox-writer.js +79 -0
- package/dist/{types/modules/word/writers → browser/modules/word/writer}/comment-writer.d.ts +2 -1
- package/dist/browser/modules/word/{writers → writer}/comment-writer.js +8 -6
- package/dist/browser/modules/word/writer/common-parts.d.ts +57 -0
- package/dist/browser/modules/word/writer/common-parts.js +101 -0
- package/dist/{types/modules/word → browser/modules/word/writer}/content-types.d.ts +2 -2
- package/dist/{esm/modules/word → browser/modules/word/writer}/content-types.js +14 -6
- package/dist/browser/modules/word/writer/document-writer.d.ts +24 -0
- package/dist/browser/modules/word/writer/document-writer.js +473 -0
- package/dist/browser/modules/word/writer/docx-packager.d.ts +35 -0
- package/dist/browser/modules/word/writer/docx-packager.js +1515 -0
- package/dist/{types/modules/word/writers → browser/modules/word/writer}/footnote-writer.d.ts +3 -2
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/footnote-writer.js +13 -10
- package/dist/{types/modules/word/writers → browser/modules/word/writer}/header-footer-writer.d.ts +3 -2
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/header-footer-writer.js +39 -21
- package/dist/{types/modules/word/writers → browser/modules/word/writer}/image-writer.d.ts +1 -1
- package/dist/browser/modules/word/{writers → writer}/image-writer.js +11 -7
- package/dist/browser/modules/word/writer/math-writer.d.ts +20 -0
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/math-writer.js +21 -1
- package/dist/browser/modules/word/{writers → writer}/numbering-writer.d.ts +1 -1
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/numbering-writer.js +11 -4
- package/dist/browser/modules/word/{writers → writer}/paragraph-writer.d.ts +2 -1
- package/dist/browser/modules/word/{writers → writer}/paragraph-writer.js +73 -38
- package/dist/browser/modules/word/{writers → writer}/parts-writer.d.ts +3 -3
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/parts-writer.js +91 -12
- package/dist/browser/modules/word/writer/reference-scanners.d.ts +42 -0
- package/dist/browser/modules/word/writer/reference-scanners.js +111 -0
- package/dist/browser/modules/word/writer/relationships.d.ts +52 -0
- package/dist/browser/modules/word/writer/relationships.js +117 -0
- package/dist/browser/modules/word/writer/render-context.d.ts +124 -0
- package/dist/browser/modules/word/writer/render-context.js +46 -0
- package/dist/browser/modules/word/{writers → writer}/run-writer.d.ts +10 -1
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/run-writer.js +126 -24
- package/dist/browser/modules/word/writer/sdt-writer.d.ts +25 -0
- package/dist/browser/modules/word/writer/sdt-writer.js +189 -0
- package/dist/browser/modules/word/writer/stream-buf.d.ts +37 -0
- package/dist/browser/modules/word/writer/stream-buf.js +73 -0
- package/dist/browser/modules/word/writer/streaming-writer.d.ts +344 -0
- package/dist/browser/modules/word/writer/streaming-writer.js +1382 -0
- package/dist/browser/modules/word/writer/string-buf.d.ts +8 -0
- package/dist/browser/modules/word/writer/string-buf.js +7 -0
- package/dist/browser/modules/word/{writers → writer}/styles-writer.js +32 -1
- package/dist/browser/modules/word/{writers → writer}/table-writer.d.ts +2 -1
- package/dist/browser/modules/word/{writers → writer}/table-writer.js +94 -11
- package/dist/browser/modules/xml/types.d.ts +22 -0
- package/dist/browser/utils/crypto.browser.d.ts +3 -1
- package/dist/browser/utils/crypto.browser.js +3 -1
- package/dist/browser/utils/crypto.d.ts +4 -1
- package/dist/browser/utils/crypto.js +4 -1
- package/dist/browser/utils/font-metrics.d.ts +63 -0
- package/dist/browser/utils/font-metrics.js +293 -0
- package/dist/browser/utils/string-buf.d.ts +42 -0
- package/dist/browser/utils/string-buf.js +89 -0
- package/dist/browser/utils/theme-colors.d.ts +55 -0
- package/dist/browser/utils/theme-colors.js +120 -0
- package/dist/cjs/modules/archive/compression/streaming-compress.browser.js +29 -0
- package/dist/cjs/modules/archive/compression/streaming-compress.js +9 -0
- package/dist/cjs/modules/archive/compression/worker-pool/pool.browser.js +26 -1
- package/dist/cjs/modules/archive/fs/archive-file.js +78 -16
- package/dist/cjs/modules/archive/unzip/stream.browser.js +43 -2
- package/dist/cjs/modules/excel/chart/chart-ex-builder.js +7 -2
- package/dist/cjs/modules/excel/chart/chart-ex-renderer.js +4 -9
- package/dist/cjs/modules/excel/chart/chart.js +1 -7
- package/dist/cjs/modules/excel/stream/workbook-reader.browser.js +25 -1
- package/dist/cjs/modules/excel/stream/workbook-reader.js +9 -0
- package/dist/cjs/modules/excel/stream/workbook-writer.browser.js +228 -13
- package/dist/cjs/modules/excel/utils/string-buf.js +5 -81
- package/dist/cjs/modules/excel/workbook.browser.js +135 -25
- package/dist/cjs/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
- package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +32 -8
- package/dist/cjs/modules/excel/xlsx/xlsx.js +9 -1
- package/dist/cjs/modules/pdf/excel-bridge.js +33 -0
- package/dist/cjs/modules/pdf/font/metrics.js +11 -244
- package/dist/cjs/modules/pdf/index.js +2 -1
- package/dist/cjs/modules/pdf/render-layout-to-pdf.js +651 -0
- package/dist/cjs/modules/pdf/word-bridge.js +155 -274
- package/dist/cjs/modules/stream/index.base.js +4 -2
- package/dist/cjs/modules/stream/internal/sink-adapter.js +202 -0
- package/dist/cjs/modules/stream/pull-stream.js +51 -5
- package/dist/cjs/modules/word/advanced/diff.js +170 -0
- package/dist/cjs/modules/word/advanced/drawing-shapes.js +279 -0
- package/dist/cjs/modules/word/advanced/field-engine.js +1229 -0
- package/dist/cjs/modules/word/advanced/glossary.js +87 -0
- package/dist/cjs/modules/word/advanced/math-convert.js +599 -0
- package/dist/cjs/modules/word/advanced/ole-objects.js +277 -0
- package/dist/cjs/modules/word/advanced/style-map.js +329 -0
- package/dist/cjs/modules/word/advanced/validation.js +1068 -0
- package/dist/cjs/modules/word/advanced/vba-project.js +274 -0
- package/dist/cjs/modules/word/bridge/excel-bridge.js +1020 -0
- package/dist/cjs/modules/word/builder/document-handle.js +667 -0
- package/dist/cjs/modules/word/builder/paragraph-builders.js +109 -0
- package/dist/cjs/modules/word/builder/run-builders.js +676 -0
- package/dist/cjs/modules/word/builder/table-builders.js +53 -0
- package/dist/cjs/modules/word/constants.js +111 -2
- package/dist/cjs/modules/word/convert/conversion-ir.js +34 -0
- package/dist/cjs/modules/word/convert/docx-to-semantic.js +502 -0
- package/dist/cjs/modules/word/convert/flat-opc.js +390 -0
- package/dist/cjs/modules/word/convert/html/html-import.js +1910 -0
- package/dist/cjs/modules/word/{html-renderer.js → convert/html/html-renderer.js} +420 -69
- package/dist/cjs/modules/word/convert/html/html.js +20 -0
- package/dist/cjs/modules/word/convert/markdown/markdown-import.js +1329 -0
- package/dist/cjs/modules/word/convert/markdown/markdown-renderer.js +637 -0
- package/dist/cjs/modules/word/convert/markdown/markdown.js +21 -0
- package/dist/cjs/modules/word/convert/odt/odt.js +1936 -0
- package/dist/cjs/modules/word/core/color-utils.js +47 -0
- package/dist/cjs/modules/word/core/internal-utils.js +219 -0
- package/dist/cjs/modules/word/core/mapper.js +430 -0
- package/dist/cjs/modules/word/core/opc-paths.js +53 -0
- package/dist/cjs/modules/word/core/text-utils.js +210 -0
- package/dist/cjs/modules/word/core/walker.js +577 -0
- package/dist/cjs/modules/word/crypto.js +19 -8
- package/dist/cjs/modules/word/document-io.js +117 -197
- package/dist/cjs/modules/word/errors.js +59 -13
- package/dist/cjs/modules/word/excel.js +22 -0
- package/dist/cjs/modules/word/font/font-embed.js +652 -0
- package/dist/cjs/modules/word/{font-obfuscation.js → font/font-obfuscation.js} +4 -9
- package/dist/cjs/modules/word/font/hyphenation.js +4216 -0
- package/dist/cjs/modules/word/font/text-shaping.js +640 -0
- package/dist/cjs/modules/word/html.js +9 -7
- package/dist/cjs/modules/word/incremental-edit.js +366 -0
- package/dist/cjs/modules/word/index.base.js +370 -137
- package/dist/cjs/modules/word/layout/layout-constants.js +20 -0
- package/dist/cjs/modules/word/layout/layout-full.js +1699 -0
- package/dist/cjs/modules/word/layout/layout-model.js +17 -0
- package/dist/cjs/modules/word/layout/layout.js +1170 -0
- package/dist/cjs/modules/word/layout/render-page.js +1243 -0
- package/dist/cjs/modules/word/markdown.js +19 -0
- package/dist/cjs/modules/word/patcher.js +539 -0
- package/dist/cjs/modules/word/query/compat.js +61 -0
- package/dist/cjs/modules/word/query/data-binding.js +395 -0
- package/dist/cjs/modules/word/query/form-fields.js +272 -0
- package/dist/cjs/modules/word/query/format-search.js +334 -0
- package/dist/cjs/modules/word/query/mail-merge.js +114 -0
- package/dist/cjs/modules/word/query/merge.js +620 -0
- package/dist/cjs/modules/word/query/replace.js +304 -0
- package/dist/cjs/modules/word/query/revisions.js +885 -0
- package/dist/cjs/modules/word/query/search.js +361 -0
- package/dist/cjs/modules/word/query/split.js +138 -0
- package/dist/cjs/modules/word/query/style-resolve.js +374 -0
- package/dist/cjs/modules/word/reader/chart-parser.js +814 -0
- package/dist/cjs/modules/word/reader/comments-parser.js +96 -0
- package/dist/cjs/modules/word/reader/doc-props-parsers.js +194 -0
- package/dist/cjs/modules/word/reader/docx-reader.js +2560 -0
- package/dist/cjs/modules/word/reader/drawing-helpers.js +90 -0
- package/dist/cjs/modules/word/reader/form-field-parser.js +85 -0
- package/dist/cjs/modules/word/reader/image-parsers.js +293 -0
- package/dist/cjs/modules/word/reader/math-parser.js +424 -0
- package/dist/cjs/modules/word/reader/metadata-parsers.js +93 -0
- package/dist/cjs/modules/word/reader/numbering-parser.js +168 -0
- package/dist/cjs/modules/word/reader/paragraph-section-parsers.js +505 -0
- package/dist/cjs/modules/word/reader/parse-utils.js +271 -0
- package/dist/cjs/modules/word/reader/properties-parsers.js +338 -0
- package/dist/cjs/modules/word/reader/reader-context.js +66 -0
- package/dist/cjs/modules/word/reader/sdt-helpers.js +114 -0
- package/dist/cjs/modules/word/reader/settings-parser.js +265 -0
- package/dist/cjs/modules/word/reader/styles-parser.js +149 -0
- package/dist/cjs/modules/word/reader/table-properties-parsers.js +237 -0
- package/dist/cjs/modules/word/reader/theme-parser.js +169 -0
- package/dist/cjs/modules/word/reader/watermark-parser.js +113 -0
- package/dist/cjs/modules/word/security/cfb-reader.js +414 -0
- package/dist/cjs/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
- package/dist/cjs/modules/word/security/document-protection.js +208 -0
- package/dist/cjs/modules/word/security/encryption.js +612 -0
- package/dist/cjs/modules/word/security/policy.js +106 -0
- package/dist/cjs/modules/word/template/template-chart.js +170 -0
- package/dist/cjs/modules/word/template/template-datasource.js +549 -0
- package/dist/cjs/modules/word/template/template-engine.js +1430 -0
- package/dist/cjs/modules/word/units.js +44 -14
- package/dist/cjs/modules/word/{writers → writer}/chart-writer.js +163 -22
- package/dist/cjs/modules/word/writer/checkbox-writer.js +82 -0
- package/dist/cjs/modules/word/{writers → writer}/comment-writer.js +8 -6
- package/dist/cjs/modules/word/writer/common-parts.js +104 -0
- package/dist/cjs/modules/word/{content-types.js → writer/content-types.js} +14 -6
- package/dist/cjs/modules/word/writer/document-writer.js +478 -0
- package/dist/cjs/modules/word/writer/docx-packager.js +1551 -0
- package/dist/cjs/modules/word/{writers → writer}/footnote-writer.js +13 -10
- package/dist/cjs/modules/word/{writers → writer}/header-footer-writer.js +38 -20
- package/dist/cjs/modules/word/{writers → writer}/image-writer.js +11 -7
- package/dist/cjs/modules/word/{writers → writer}/math-writer.js +21 -1
- package/dist/cjs/modules/word/{writers → writer}/numbering-writer.js +11 -4
- package/dist/cjs/modules/word/{writers → writer}/paragraph-writer.js +72 -37
- package/dist/cjs/modules/word/{writers → writer}/parts-writer.js +91 -12
- package/dist/cjs/modules/word/writer/reference-scanners.js +120 -0
- package/dist/cjs/modules/word/writer/relationships.js +124 -0
- package/dist/cjs/modules/word/writer/render-context.js +51 -0
- package/dist/cjs/modules/word/{writers → writer}/run-writer.js +127 -24
- package/dist/cjs/modules/word/writer/sdt-writer.js +192 -0
- package/dist/cjs/modules/word/writer/stream-buf.js +76 -0
- package/dist/cjs/modules/word/writer/streaming-writer.js +1387 -0
- package/dist/cjs/modules/word/writer/string-buf.js +11 -0
- package/dist/cjs/modules/word/{writers → writer}/styles-writer.js +32 -1
- package/dist/cjs/modules/word/{writers → writer}/table-writer.js +94 -11
- package/dist/cjs/utils/crypto.browser.js +3 -1
- package/dist/cjs/utils/crypto.js +4 -1
- package/dist/cjs/utils/font-metrics.js +303 -0
- package/dist/cjs/utils/string-buf.js +92 -0
- package/dist/cjs/utils/theme-colors.js +126 -0
- package/dist/esm/modules/archive/compression/streaming-compress.browser.js +29 -0
- package/dist/esm/modules/archive/compression/streaming-compress.js +9 -0
- package/dist/esm/modules/archive/compression/worker-pool/pool.browser.js +26 -1
- package/dist/esm/modules/archive/fs/archive-file.js +78 -16
- package/dist/esm/modules/archive/unzip/stream.browser.js +43 -2
- package/dist/esm/modules/excel/chart/chart-ex-builder.js +7 -2
- package/dist/esm/modules/excel/chart/chart-ex-renderer.js +4 -9
- package/dist/esm/modules/excel/chart/chart.js +1 -7
- package/dist/esm/modules/excel/stream/workbook-reader.browser.js +25 -1
- package/dist/esm/modules/excel/stream/workbook-reader.js +9 -0
- package/dist/esm/modules/excel/stream/workbook-writer.browser.js +228 -13
- package/dist/esm/modules/excel/utils/string-buf.js +4 -81
- package/dist/esm/modules/excel/workbook.browser.js +135 -25
- package/dist/esm/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
- package/dist/esm/modules/excel/xlsx/xlsx.browser.js +32 -8
- package/dist/esm/modules/excel/xlsx/xlsx.js +9 -1
- package/dist/esm/modules/pdf/excel-bridge.js +32 -0
- package/dist/esm/modules/pdf/font/metrics.js +3 -237
- package/dist/esm/modules/pdf/index.js +1 -1
- package/dist/esm/modules/pdf/render-layout-to-pdf.js +647 -0
- package/dist/esm/modules/pdf/word-bridge.js +122 -274
- package/dist/esm/modules/stream/index.base.js +2 -1
- package/dist/esm/modules/stream/internal/sink-adapter.js +198 -0
- package/dist/esm/modules/stream/pull-stream.js +51 -5
- package/dist/esm/modules/word/advanced/diff.js +167 -0
- package/dist/esm/modules/word/advanced/drawing-shapes.js +268 -0
- package/dist/esm/modules/word/advanced/field-engine.js +1225 -0
- package/dist/esm/modules/word/advanced/glossary.js +79 -0
- package/dist/esm/modules/word/advanced/math-convert.js +595 -0
- package/dist/esm/modules/word/advanced/ole-objects.js +271 -0
- package/dist/esm/modules/word/advanced/style-map.js +322 -0
- package/dist/esm/modules/word/advanced/validation.js +1065 -0
- package/dist/esm/modules/word/advanced/vba-project.js +265 -0
- package/dist/esm/modules/word/bridge/excel-bridge.js +980 -0
- package/dist/esm/modules/word/builder/document-handle.js +664 -0
- package/dist/esm/modules/word/builder/paragraph-builders.js +90 -0
- package/dist/esm/modules/word/builder/run-builders.js +600 -0
- package/dist/esm/modules/word/builder/table-builders.js +45 -0
- package/dist/esm/modules/word/constants.js +109 -1
- package/dist/esm/modules/word/convert/conversion-ir.js +31 -0
- package/dist/esm/modules/word/convert/docx-to-semantic.js +499 -0
- package/dist/esm/modules/word/convert/flat-opc.js +385 -0
- package/dist/esm/modules/word/convert/html/html-import.js +1907 -0
- package/dist/{browser/modules/word → esm/modules/word/convert/html}/html-renderer.js +420 -69
- package/dist/esm/modules/word/convert/html/html.js +15 -0
- package/dist/esm/modules/word/convert/markdown/markdown-import.js +1325 -0
- package/dist/esm/modules/word/convert/markdown/markdown-renderer.js +634 -0
- package/dist/esm/modules/word/convert/markdown/markdown.js +15 -0
- package/dist/esm/modules/word/convert/odt/odt.js +1932 -0
- package/dist/esm/modules/word/core/color-utils.js +43 -0
- package/dist/esm/modules/word/core/internal-utils.js +209 -0
- package/dist/esm/modules/word/core/mapper.js +427 -0
- package/dist/esm/modules/word/core/opc-paths.js +48 -0
- package/dist/esm/modules/word/core/text-utils.js +202 -0
- package/dist/esm/modules/word/core/walker.js +570 -0
- package/dist/esm/modules/word/crypto.js +13 -7
- package/dist/esm/modules/word/document-io.js +80 -197
- package/dist/esm/modules/word/errors.js +54 -2
- package/dist/esm/modules/word/excel.js +13 -0
- package/dist/esm/modules/word/font/font-embed.js +646 -0
- package/dist/{browser/modules/word → esm/modules/word/font}/font-obfuscation.js +4 -9
- package/dist/esm/modules/word/font/hyphenation.js +4210 -0
- package/dist/esm/modules/word/font/text-shaping.js +635 -0
- package/dist/esm/modules/word/html.js +6 -5
- package/dist/esm/modules/word/incremental-edit.js +361 -0
- package/dist/esm/modules/word/index.base.js +138 -29
- package/dist/esm/modules/word/layout/layout-constants.js +17 -0
- package/dist/esm/modules/word/layout/layout-full.js +1696 -0
- package/dist/esm/modules/word/layout/layout-model.js +16 -0
- package/dist/esm/modules/word/layout/layout.js +1167 -0
- package/dist/esm/modules/word/layout/render-page.js +1238 -0
- package/dist/esm/modules/word/markdown.js +13 -0
- package/dist/esm/modules/word/patcher.js +537 -0
- package/dist/esm/modules/word/query/compat.js +58 -0
- package/dist/esm/modules/word/query/data-binding.js +392 -0
- package/dist/esm/modules/word/query/form-fields.js +268 -0
- package/dist/esm/modules/word/query/format-search.js +329 -0
- package/dist/esm/modules/word/query/mail-merge.js +111 -0
- package/dist/esm/modules/word/query/merge.js +617 -0
- package/dist/esm/modules/word/query/replace.js +301 -0
- package/dist/esm/modules/word/query/revisions.js +879 -0
- package/dist/esm/modules/word/query/search.js +346 -0
- package/dist/esm/modules/word/query/split.js +135 -0
- package/dist/esm/modules/word/query/style-resolve.js +368 -0
- package/dist/esm/modules/word/reader/chart-parser.js +810 -0
- package/dist/esm/modules/word/reader/comments-parser.js +92 -0
- package/dist/esm/modules/word/reader/doc-props-parsers.js +190 -0
- package/dist/esm/modules/word/reader/docx-reader.js +2557 -0
- package/dist/esm/modules/word/reader/drawing-helpers.js +84 -0
- package/dist/esm/modules/word/reader/form-field-parser.js +82 -0
- package/dist/esm/modules/word/reader/image-parsers.js +291 -0
- package/dist/esm/modules/word/reader/math-parser.js +422 -0
- package/dist/esm/modules/word/reader/metadata-parsers.js +87 -0
- package/dist/esm/modules/word/reader/numbering-parser.js +166 -0
- package/dist/esm/modules/word/reader/paragraph-section-parsers.js +503 -0
- package/dist/esm/modules/word/reader/parse-utils.js +249 -0
- package/dist/esm/modules/word/reader/properties-parsers.js +332 -0
- package/dist/esm/modules/word/reader/reader-context.js +61 -0
- package/dist/esm/modules/word/reader/sdt-helpers.js +111 -0
- package/dist/esm/modules/word/reader/settings-parser.js +263 -0
- package/dist/esm/modules/word/reader/styles-parser.js +147 -0
- package/dist/esm/modules/word/reader/table-properties-parsers.js +234 -0
- package/dist/esm/modules/word/reader/theme-parser.js +167 -0
- package/dist/esm/modules/word/reader/watermark-parser.js +110 -0
- package/dist/esm/modules/word/security/cfb-reader.js +410 -0
- package/dist/esm/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
- package/dist/esm/modules/word/security/document-protection.js +201 -0
- package/dist/esm/modules/word/security/encryption.js +602 -0
- package/dist/esm/modules/word/security/policy.js +102 -0
- package/dist/esm/modules/word/template/template-chart.js +167 -0
- package/dist/esm/modules/word/template/template-datasource.js +541 -0
- package/dist/esm/modules/word/template/template-engine.js +1435 -0
- package/dist/esm/modules/word/units.js +43 -14
- package/dist/esm/modules/word/{writers → writer}/chart-writer.js +164 -23
- package/dist/esm/modules/word/writer/checkbox-writer.js +79 -0
- package/dist/esm/modules/word/{writers → writer}/comment-writer.js +8 -6
- package/dist/esm/modules/word/writer/common-parts.js +101 -0
- package/dist/{browser/modules/word → esm/modules/word/writer}/content-types.js +14 -6
- package/dist/esm/modules/word/writer/document-writer.js +473 -0
- package/dist/esm/modules/word/writer/docx-packager.js +1515 -0
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/footnote-writer.js +13 -10
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/header-footer-writer.js +39 -21
- package/dist/esm/modules/word/{writers → writer}/image-writer.js +11 -7
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/math-writer.js +21 -1
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/numbering-writer.js +11 -4
- package/dist/esm/modules/word/{writers → writer}/paragraph-writer.js +73 -38
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/parts-writer.js +91 -12
- package/dist/esm/modules/word/writer/reference-scanners.js +111 -0
- package/dist/esm/modules/word/writer/relationships.js +117 -0
- package/dist/esm/modules/word/writer/render-context.js +46 -0
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/run-writer.js +126 -24
- package/dist/esm/modules/word/writer/sdt-writer.js +189 -0
- package/dist/esm/modules/word/writer/stream-buf.js +73 -0
- package/dist/esm/modules/word/writer/streaming-writer.js +1382 -0
- package/dist/esm/modules/word/writer/string-buf.js +7 -0
- package/dist/esm/modules/word/{writers → writer}/styles-writer.js +32 -1
- package/dist/esm/modules/word/{writers → writer}/table-writer.js +94 -11
- package/dist/esm/utils/crypto.browser.js +3 -1
- package/dist/esm/utils/crypto.js +4 -1
- package/dist/esm/utils/font-metrics.js +293 -0
- package/dist/esm/utils/string-buf.js +89 -0
- package/dist/esm/utils/theme-colors.js +120 -0
- package/dist/iife/excelts.iife.js +70692 -70337
- package/dist/iife/excelts.iife.js.map +1 -1
- package/dist/iife/excelts.iife.min.js +57 -57
- package/dist/types/modules/archive/fs/archive-file.d.ts +8 -5
- package/dist/types/modules/excel/chart/chart-ex-types.d.ts +0 -12
- package/dist/types/modules/excel/chart/chart.d.ts +1 -5
- package/dist/types/modules/excel/chart/types.d.ts +0 -6
- package/dist/types/modules/excel/stream/workbook-writer.browser.d.ts +40 -0
- package/dist/types/modules/excel/utils/string-buf.d.ts +5 -26
- package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +19 -9
- package/dist/types/modules/excel/xlsx/xlsx.d.ts +10 -2
- package/dist/types/modules/pdf/excel-bridge.d.ts +30 -1
- package/dist/types/modules/pdf/font/metrics.d.ts +3 -52
- package/dist/types/modules/pdf/index.d.ts +1 -1
- package/dist/types/modules/pdf/render-layout-to-pdf.d.ts +66 -0
- package/dist/types/modules/pdf/word-bridge.d.ts +80 -12
- package/dist/types/modules/stream/index.base.d.ts +2 -0
- package/dist/types/modules/stream/internal/sink-adapter.d.ts +65 -0
- package/dist/types/modules/stream/pull-stream.d.ts +19 -2
- package/dist/types/modules/stream/types.d.ts +13 -1
- package/dist/types/modules/word/advanced/diff.d.ts +61 -0
- package/dist/types/modules/word/advanced/drawing-shapes.d.ts +269 -0
- package/dist/types/modules/word/advanced/field-engine.d.ts +43 -0
- package/dist/types/modules/word/advanced/glossary.d.ts +86 -0
- package/dist/types/modules/word/advanced/math-convert.d.ts +30 -0
- package/dist/types/modules/word/advanced/ole-objects.d.ts +115 -0
- package/dist/types/modules/word/advanced/style-map.d.ts +105 -0
- package/dist/types/modules/word/advanced/validation.d.ts +56 -0
- package/dist/types/modules/word/advanced/vba-project.d.ts +91 -0
- package/dist/types/modules/word/bridge/excel-bridge.d.ts +127 -0
- package/dist/types/modules/word/builder/document-handle.d.ts +151 -0
- package/dist/types/modules/word/builder/paragraph-builders.d.ts +61 -0
- package/dist/types/modules/word/builder/run-builders.d.ts +374 -0
- package/dist/types/modules/word/builder/table-builders.d.ts +23 -0
- package/dist/types/modules/word/constants.d.ts +39 -1
- package/dist/types/modules/word/convert/conversion-ir.d.ts +210 -0
- package/dist/types/modules/word/convert/docx-to-semantic.d.ts +39 -0
- package/dist/types/modules/word/convert/flat-opc.d.ts +44 -0
- package/dist/types/modules/word/convert/html/html-import.d.ts +50 -0
- package/dist/{browser/modules/word → types/modules/word/convert/html}/html-renderer.d.ts +14 -1
- package/dist/types/modules/word/convert/html/html.d.ts +15 -0
- package/dist/types/modules/word/convert/markdown/markdown-import.d.ts +68 -0
- package/dist/types/modules/word/convert/markdown/markdown-renderer.d.ts +25 -0
- package/dist/types/modules/word/convert/markdown/markdown.d.ts +15 -0
- package/dist/types/modules/word/convert/odt/odt.d.ts +41 -0
- package/dist/types/modules/word/{color-utils.d.ts → core/color-utils.d.ts} +8 -1
- package/dist/types/modules/word/core/internal-utils.d.ts +90 -0
- package/dist/types/modules/word/core/mapper.d.ts +44 -0
- package/dist/types/modules/word/core/opc-paths.d.ts +33 -0
- package/dist/types/modules/word/core/text-utils.d.ts +38 -0
- package/dist/types/modules/word/core/walker.d.ts +119 -0
- package/dist/types/modules/word/crypto.d.ts +14 -9
- package/dist/types/modules/word/document-io.d.ts +59 -27
- package/dist/types/modules/word/errors.d.ts +44 -1
- package/dist/types/modules/word/excel.d.ts +14 -0
- package/dist/types/modules/word/font/font-embed.d.ts +112 -0
- package/dist/types/modules/word/font/hyphenation.d.ts +65 -0
- package/dist/types/modules/word/font/text-shaping.d.ts +58 -0
- package/dist/types/modules/word/html.d.ts +7 -6
- package/dist/types/modules/word/incremental-edit.d.ts +123 -0
- package/dist/types/modules/word/index.base.d.ts +194 -10
- package/dist/types/modules/word/layout/layout-constants.d.ts +17 -0
- package/dist/types/modules/word/layout/layout-full.d.ts +53 -0
- package/dist/types/modules/word/layout/layout-model.d.ts +344 -0
- package/dist/types/modules/word/layout/layout.d.ts +63 -0
- package/dist/types/modules/word/layout/render-page.d.ts +57 -0
- package/dist/types/modules/word/markdown.d.ts +14 -0
- package/dist/types/modules/word/patcher.d.ts +62 -0
- package/dist/types/modules/word/query/compat.d.ts +25 -0
- package/dist/types/modules/word/query/data-binding.d.ts +22 -0
- package/dist/types/modules/word/query/form-fields.d.ts +41 -0
- package/dist/types/modules/word/query/format-search.d.ts +99 -0
- package/dist/types/modules/word/query/mail-merge.d.ts +25 -0
- package/dist/types/modules/word/query/merge.d.ts +50 -0
- package/dist/types/modules/word/query/replace.d.ts +47 -0
- package/dist/types/modules/word/query/revisions.d.ts +67 -0
- package/dist/types/modules/word/query/search.d.ts +129 -0
- package/dist/types/modules/word/query/split.d.ts +44 -0
- package/dist/types/modules/word/query/style-resolve.d.ts +104 -0
- package/dist/types/modules/word/reader/chart-parser.d.ts +20 -0
- package/dist/types/modules/word/reader/comments-parser.d.ts +26 -0
- package/dist/types/modules/word/reader/doc-props-parsers.d.ts +15 -0
- package/dist/types/modules/word/reader/docx-reader.d.ts +27 -0
- package/dist/types/modules/word/reader/drawing-helpers.d.ts +27 -0
- package/dist/types/modules/word/reader/form-field-parser.d.ts +21 -0
- package/dist/types/modules/word/reader/image-parsers.d.ts +11 -0
- package/dist/types/modules/word/reader/math-parser.d.ts +12 -0
- package/dist/types/modules/word/reader/metadata-parsers.d.ts +17 -0
- package/dist/types/modules/word/reader/numbering-parser.d.ts +13 -0
- package/dist/types/modules/word/reader/paragraph-section-parsers.d.ts +12 -0
- package/dist/types/modules/word/reader/parse-utils.d.ts +91 -0
- package/dist/types/modules/word/reader/properties-parsers.d.ts +21 -0
- package/dist/types/modules/word/reader/reader-context.d.ts +69 -0
- package/dist/types/modules/word/reader/sdt-helpers.d.ts +29 -0
- package/dist/types/modules/word/reader/settings-parser.d.ts +8 -0
- package/dist/types/modules/word/reader/styles-parser.d.ts +12 -0
- package/dist/types/modules/word/reader/table-properties-parsers.d.ts +12 -0
- package/dist/types/modules/word/reader/theme-parser.d.ts +8 -0
- package/dist/types/modules/word/reader/watermark-parser.d.ts +15 -0
- package/dist/types/modules/word/security/cfb-reader.d.ts +37 -0
- package/dist/types/modules/word/{digital-signatures.d.ts → security/digital-signatures.d.ts} +19 -11
- package/dist/types/modules/word/security/document-protection.d.ts +93 -0
- package/dist/{browser/modules/word → types/modules/word/security}/encryption.d.ts +51 -4
- package/dist/types/modules/word/security/policy.d.ts +80 -0
- package/dist/types/modules/word/template/template-chart.d.ts +56 -0
- package/dist/types/modules/word/template/template-datasource.d.ts +154 -0
- package/dist/types/modules/word/template/template-engine.d.ts +121 -0
- package/dist/types/modules/word/types.d.ts +224 -25
- package/dist/types/modules/word/units.d.ts +26 -0
- package/dist/types/modules/word/writer/checkbox-writer.d.ts +17 -0
- package/dist/{browser/modules/word/writers → types/modules/word/writer}/comment-writer.d.ts +2 -1
- package/dist/types/modules/word/writer/common-parts.d.ts +57 -0
- package/dist/{browser/modules/word → types/modules/word/writer}/content-types.d.ts +2 -2
- package/dist/types/modules/word/writer/document-writer.d.ts +24 -0
- package/dist/types/modules/word/writer/docx-packager.d.ts +35 -0
- package/dist/{browser/modules/word/writers → types/modules/word/writer}/footnote-writer.d.ts +3 -2
- package/dist/{browser/modules/word/writers → types/modules/word/writer}/header-footer-writer.d.ts +3 -2
- package/dist/{browser/modules/word/writers → types/modules/word/writer}/image-writer.d.ts +1 -1
- package/dist/types/modules/word/writer/math-writer.d.ts +20 -0
- package/dist/types/modules/word/{writers → writer}/numbering-writer.d.ts +1 -1
- package/dist/types/modules/word/{writers → writer}/paragraph-writer.d.ts +2 -1
- package/dist/types/modules/word/{writers → writer}/parts-writer.d.ts +3 -3
- package/dist/types/modules/word/writer/reference-scanners.d.ts +42 -0
- package/dist/types/modules/word/writer/relationships.d.ts +52 -0
- package/dist/types/modules/word/writer/render-context.d.ts +124 -0
- package/dist/types/modules/word/{writers → writer}/run-writer.d.ts +10 -1
- package/dist/types/modules/word/writer/sdt-writer.d.ts +25 -0
- package/dist/types/modules/word/writer/stream-buf.d.ts +37 -0
- package/dist/types/modules/word/writer/streaming-writer.d.ts +344 -0
- package/dist/types/modules/word/writer/string-buf.d.ts +8 -0
- package/dist/types/modules/word/{writers → writer}/table-writer.d.ts +2 -1
- package/dist/types/modules/xml/types.d.ts +22 -0
- package/dist/types/utils/crypto.browser.d.ts +3 -1
- package/dist/types/utils/crypto.d.ts +4 -1
- package/dist/types/utils/font-metrics.d.ts +63 -0
- package/dist/types/utils/string-buf.d.ts +42 -0
- package/dist/types/utils/theme-colors.d.ts +55 -0
- package/package.json +121 -39
- package/dist/browser/modules/word/color-utils.js +0 -94
- package/dist/browser/modules/word/document.d.ts +0 -657
- package/dist/browser/modules/word/document.js +0 -1533
- package/dist/browser/modules/word/docx-packager.d.ts +0 -14
- package/dist/browser/modules/word/docx-packager.js +0 -822
- package/dist/browser/modules/word/docx-reader.d.ts +0 -11
- package/dist/browser/modules/word/docx-reader.js +0 -4929
- package/dist/browser/modules/word/encryption.js +0 -274
- package/dist/browser/modules/word/internal-utils.d.ts +0 -23
- package/dist/browser/modules/word/internal-utils.js +0 -54
- package/dist/browser/modules/word/namespaces.d.ts +0 -159
- package/dist/browser/modules/word/namespaces.js +0 -189
- package/dist/browser/modules/word/relationships.d.ts +0 -30
- package/dist/browser/modules/word/relationships.js +0 -48
- package/dist/browser/modules/word/writers/checkbox-writer.d.ts +0 -9
- package/dist/browser/modules/word/writers/checkbox-writer.js +0 -42
- package/dist/browser/modules/word/writers/document-writer.d.ts +0 -16
- package/dist/browser/modules/word/writers/document-writer.js +0 -461
- package/dist/browser/modules/word/writers/math-writer.d.ts +0 -9
- package/dist/cjs/modules/word/color-utils.js +0 -97
- package/dist/cjs/modules/word/document.js +0 -1645
- package/dist/cjs/modules/word/docx-packager.js +0 -825
- package/dist/cjs/modules/word/docx-reader.js +0 -4932
- package/dist/cjs/modules/word/encryption.js +0 -282
- package/dist/cjs/modules/word/internal-utils.js +0 -59
- package/dist/cjs/modules/word/namespaces.js +0 -192
- package/dist/cjs/modules/word/relationships.js +0 -55
- package/dist/cjs/modules/word/writers/checkbox-writer.js +0 -45
- package/dist/cjs/modules/word/writers/document-writer.js +0 -465
- package/dist/esm/modules/word/color-utils.js +0 -94
- package/dist/esm/modules/word/document.js +0 -1533
- package/dist/esm/modules/word/docx-packager.js +0 -822
- package/dist/esm/modules/word/docx-reader.js +0 -4929
- package/dist/esm/modules/word/encryption.js +0 -274
- package/dist/esm/modules/word/internal-utils.js +0 -54
- package/dist/esm/modules/word/namespaces.js +0 -189
- package/dist/esm/modules/word/relationships.js +0 -48
- package/dist/esm/modules/word/writers/checkbox-writer.js +0 -42
- package/dist/esm/modules/word/writers/document-writer.js +0 -461
- package/dist/types/modules/word/document.d.ts +0 -657
- package/dist/types/modules/word/docx-packager.d.ts +0 -14
- package/dist/types/modules/word/docx-reader.d.ts +0 -11
- package/dist/types/modules/word/internal-utils.d.ts +0 -23
- package/dist/types/modules/word/namespaces.d.ts +0 -159
- package/dist/types/modules/word/relationships.d.ts +0 -30
- package/dist/types/modules/word/writers/checkbox-writer.d.ts +0 -9
- package/dist/types/modules/word/writers/document-writer.d.ts +0 -16
- package/dist/types/modules/word/writers/math-writer.d.ts +0 -9
- /package/dist/browser/modules/word/{font-obfuscation.d.ts → font/font-obfuscation.d.ts} +0 -0
- /package/dist/browser/modules/word/{writers → writer}/chart-writer.d.ts +0 -0
- /package/dist/browser/modules/word/{writers → writer}/section-writer.d.ts +0 -0
- /package/dist/browser/modules/word/{writers → writer}/section-writer.js +0 -0
- /package/dist/browser/modules/word/{writers → writer}/styles-writer.d.ts +0 -0
- /package/dist/browser/modules/word/{writers → writer}/textbox-writer.d.ts +0 -0
- /package/dist/browser/modules/word/{writers → writer}/textbox-writer.js +0 -0
- /package/dist/browser/modules/word/{writers → writer}/toc-writer.d.ts +0 -0
- /package/dist/browser/modules/word/{writers → writer}/toc-writer.js +0 -0
- /package/dist/cjs/modules/word/{writers → writer}/section-writer.js +0 -0
- /package/dist/cjs/modules/word/{writers → writer}/textbox-writer.js +0 -0
- /package/dist/cjs/modules/word/{writers → writer}/toc-writer.js +0 -0
- /package/dist/esm/modules/word/{writers → writer}/section-writer.js +0 -0
- /package/dist/esm/modules/word/{writers → writer}/textbox-writer.js +0 -0
- /package/dist/esm/modules/word/{writers → writer}/toc-writer.js +0 -0
- /package/dist/types/modules/word/{font-obfuscation.d.ts → font/font-obfuscation.d.ts} +0 -0
- /package/dist/types/modules/word/{writers → writer}/chart-writer.d.ts +0 -0
- /package/dist/types/modules/word/{writers → writer}/section-writer.d.ts +0 -0
- /package/dist/types/modules/word/{writers → writer}/styles-writer.d.ts +0 -0
- /package/dist/types/modules/word/{writers → writer}/textbox-writer.d.ts +0 -0
- /package/dist/types/modules/word/{writers → writer}/toc-writer.d.ts +0 -0
|
@@ -5,11 +5,20 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { XmlSink } from "../../xml/types.js";
|
|
7
7
|
import type { RunProperties, Run, Shading, Border } from "../types.js";
|
|
8
|
+
import type { RenderHelpers } from "./render-context.js";
|
|
8
9
|
/** Render a single border element. */
|
|
9
10
|
export declare function renderBorderElement(xml: XmlSink, tagName: string, border: Border): void;
|
|
10
11
|
/** Render w:rPr (run properties). Element order follows ECMA-376 CT_RPr schema. */
|
|
11
12
|
export declare function renderRunProperties(xml: XmlSink, rPr: RunProperties, insidePropertyChange?: boolean): void;
|
|
13
|
+
/**
|
|
14
|
+
* Render the **contents** of a w:rPr element (without the w:rPr wrapper).
|
|
15
|
+
*
|
|
16
|
+
* Use this when you need to inject additional siblings (like w:ins/w:del for
|
|
17
|
+
* paragraph mark revisions) into the same w:rPr element. Otherwise prefer
|
|
18
|
+
* {@link renderRunProperties} which manages the wrapper for you.
|
|
19
|
+
*/
|
|
20
|
+
export declare function renderRunPropertiesContents(xml: XmlSink, rPr: RunProperties, insidePropertyChange?: boolean): void;
|
|
12
21
|
/** Render w:shd element. */
|
|
13
22
|
export declare function renderShading(xml: XmlSink, shd: Shading): void;
|
|
14
23
|
/** Render a w:r element. */
|
|
15
|
-
export declare function renderRun(xml: XmlSink, run: Run): void;
|
|
24
|
+
export declare function renderRun(xml: XmlSink, run: Run, helpers?: RenderHelpers): void;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Renders w:rPr and run-level content (w:t, w:br, w:tab, w:drawing, etc.)
|
|
5
5
|
*/
|
|
6
6
|
import { NS_A, NS_PIC, URI_PIC, NS_ASVG, GUID_SVG } from "../constants.js";
|
|
7
|
+
import { DocxRawXmlPolicyError } from "../errors.js";
|
|
7
8
|
/** Render a single border element. */
|
|
8
9
|
export function renderBorderElement(xml, tagName, border) {
|
|
9
10
|
const attrs = { "w:val": border.style };
|
|
@@ -34,6 +35,17 @@ export function renderBorderElement(xml, tagName, border) {
|
|
|
34
35
|
/** Render w:rPr (run properties). Element order follows ECMA-376 CT_RPr schema. */
|
|
35
36
|
export function renderRunProperties(xml, rPr, insidePropertyChange = false) {
|
|
36
37
|
xml.openNode("w:rPr");
|
|
38
|
+
renderRunPropertiesContents(xml, rPr, insidePropertyChange);
|
|
39
|
+
xml.closeNode();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Render the **contents** of a w:rPr element (without the w:rPr wrapper).
|
|
43
|
+
*
|
|
44
|
+
* Use this when you need to inject additional siblings (like w:ins/w:del for
|
|
45
|
+
* paragraph mark revisions) into the same w:rPr element. Otherwise prefer
|
|
46
|
+
* {@link renderRunProperties} which manages the wrapper for you.
|
|
47
|
+
*/
|
|
48
|
+
export function renderRunPropertiesContents(xml, rPr, insidePropertyChange = false) {
|
|
37
49
|
// 1. rStyle
|
|
38
50
|
if (rPr.style) {
|
|
39
51
|
xml.leafNode("w:rStyle", { "w:val": rPr.style });
|
|
@@ -243,7 +255,29 @@ export function renderRunProperties(xml, rPr, insidePropertyChange = false) {
|
|
|
243
255
|
}
|
|
244
256
|
xml.leafNode("w:lang", attrs);
|
|
245
257
|
}
|
|
246
|
-
// 25. eastAsianLayout (
|
|
258
|
+
// 25. eastAsianLayout (ECMA-376 §17.3.2.10)
|
|
259
|
+
if (rPr.eastAsianLayout) {
|
|
260
|
+
const ea = rPr.eastAsianLayout;
|
|
261
|
+
const attrs = {};
|
|
262
|
+
if (ea.id != null) {
|
|
263
|
+
attrs["w:id"] = String(ea.id);
|
|
264
|
+
}
|
|
265
|
+
if (ea.combine) {
|
|
266
|
+
attrs["w:combine"] = "1";
|
|
267
|
+
}
|
|
268
|
+
if (ea.combineBrackets) {
|
|
269
|
+
attrs["w:combineBrackets"] = ea.combineBrackets;
|
|
270
|
+
}
|
|
271
|
+
if (ea.vert) {
|
|
272
|
+
attrs["w:vert"] = "1";
|
|
273
|
+
}
|
|
274
|
+
if (ea.vertCompress) {
|
|
275
|
+
attrs["w:vertCompress"] = "1";
|
|
276
|
+
}
|
|
277
|
+
if (Object.keys(attrs).length > 0) {
|
|
278
|
+
xml.leafNode("w:eastAsianLayout", attrs);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
247
281
|
// 26. specVanish
|
|
248
282
|
if (rPr.specVanish) {
|
|
249
283
|
xml.leafNode("w:specVanish");
|
|
@@ -272,7 +306,6 @@ export function renderRunProperties(xml, rPr, insidePropertyChange = false) {
|
|
|
272
306
|
}
|
|
273
307
|
xml.closeNode();
|
|
274
308
|
}
|
|
275
|
-
xml.closeNode();
|
|
276
309
|
}
|
|
277
310
|
/** Render w:shd element. */
|
|
278
311
|
export function renderShading(xml, shd) {
|
|
@@ -283,9 +316,15 @@ export function renderShading(xml, shd) {
|
|
|
283
316
|
});
|
|
284
317
|
}
|
|
285
318
|
/** Render an inline image (w:drawing > wp:inline). */
|
|
286
|
-
function renderInlineImage(xml, img) {
|
|
319
|
+
function renderInlineImage(xml, img, imageRemap) {
|
|
287
320
|
const drawingId = img.drawingId ?? 1;
|
|
288
321
|
const name = img.name ?? "Picture";
|
|
322
|
+
// Resolve the relationship id used in r:embed: prefer a packager-provided
|
|
323
|
+
// remap (used when the model rId clashed with an existing relationship in
|
|
324
|
+
// the same .rels file), otherwise emit the model rId verbatim. We never
|
|
325
|
+
// mutate the model itself.
|
|
326
|
+
const embedRId = imageRemap?.get(img.rId) ?? img.rId;
|
|
327
|
+
const svgEmbedRId = img.svgRId ? (imageRemap?.get(img.svgRId) ?? img.svgRId) : undefined;
|
|
289
328
|
xml.openNode("w:drawing");
|
|
290
329
|
xml.openNode("wp:inline", {
|
|
291
330
|
distT: "0",
|
|
@@ -314,19 +353,19 @@ function renderInlineImage(xml, img) {
|
|
|
314
353
|
// blipFill
|
|
315
354
|
xml.openNode("pic:blipFill");
|
|
316
355
|
if (img.svgRId) {
|
|
317
|
-
xml.openNode("a:blip", { "r:embed":
|
|
356
|
+
xml.openNode("a:blip", { "r:embed": embedRId });
|
|
318
357
|
xml.openNode("a:extLst");
|
|
319
358
|
xml.openNode("a:ext", { uri: GUID_SVG });
|
|
320
359
|
xml.leafNode("asvg:svgBlip", {
|
|
321
360
|
"xmlns:asvg": NS_ASVG,
|
|
322
|
-
"r:embed":
|
|
361
|
+
"r:embed": svgEmbedRId
|
|
323
362
|
});
|
|
324
363
|
xml.closeNode(); // a:ext
|
|
325
364
|
xml.closeNode(); // a:extLst
|
|
326
365
|
xml.closeNode(); // a:blip
|
|
327
366
|
}
|
|
328
367
|
else {
|
|
329
|
-
xml.leafNode("a:blip", { "r:embed":
|
|
368
|
+
xml.leafNode("a:blip", { "r:embed": embedRId });
|
|
330
369
|
}
|
|
331
370
|
// Source rectangle (crop)
|
|
332
371
|
if (img.srcRect) {
|
|
@@ -455,10 +494,43 @@ function renderFfData(xml, ff) {
|
|
|
455
494
|
}
|
|
456
495
|
xml.closeNode(); // ffData
|
|
457
496
|
}
|
|
458
|
-
/**
|
|
459
|
-
|
|
497
|
+
/**
|
|
498
|
+
* Emit a UTF-8 text payload as one or more `<w:t>` elements separated by
|
|
499
|
+
* `<w:br/>` whenever the source contains a newline. OOXML's CT_Text
|
|
500
|
+
* forbids `\n` / `\r` inside its value — Word silently rejects packages
|
|
501
|
+
* that contain them. Used by both run text content and field cached
|
|
502
|
+
* values.
|
|
503
|
+
*/
|
|
504
|
+
function writeTextWithBreaks(xml, value) {
|
|
505
|
+
if (value.indexOf("\n") < 0 && value.indexOf("\r") < 0) {
|
|
506
|
+
xml.openNode("w:t", { "xml:space": "preserve" });
|
|
507
|
+
xml.writeText(value);
|
|
508
|
+
xml.closeNode();
|
|
509
|
+
return;
|
|
510
|
+
}
|
|
511
|
+
const segments = value.replace(/\r\n?/g, "\n").split("\n");
|
|
512
|
+
for (let i = 0; i < segments.length; i++) {
|
|
513
|
+
if (segments[i].length > 0) {
|
|
514
|
+
xml.openNode("w:t", { "xml:space": "preserve" });
|
|
515
|
+
xml.writeText(segments[i]);
|
|
516
|
+
xml.closeNode();
|
|
517
|
+
}
|
|
518
|
+
if (i < segments.length - 1) {
|
|
519
|
+
xml.leafNode("w:br");
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
/** Render a field code (PAGE, NUMPAGES, etc.). Inherits run properties from the containing run. */
|
|
524
|
+
function renderField(xml, field, rPr) {
|
|
525
|
+
// Helper to emit inherited rPr in each field sub-run
|
|
526
|
+
const emitRPr = () => {
|
|
527
|
+
if (rPr) {
|
|
528
|
+
renderRunProperties(xml, rPr);
|
|
529
|
+
}
|
|
530
|
+
};
|
|
460
531
|
// Begin
|
|
461
532
|
xml.openNode("w:r");
|
|
533
|
+
emitRPr();
|
|
462
534
|
if (field.formField) {
|
|
463
535
|
xml.openNode("w:fldChar", { "w:fldCharType": "begin" });
|
|
464
536
|
renderFfData(xml, field.formField);
|
|
@@ -470,34 +542,39 @@ function renderField(xml, field) {
|
|
|
470
542
|
xml.closeNode();
|
|
471
543
|
// Instruction
|
|
472
544
|
xml.openNode("w:r");
|
|
545
|
+
emitRPr();
|
|
473
546
|
xml.openNode("w:instrText", { "xml:space": "preserve" });
|
|
474
547
|
xml.writeText(field.instruction);
|
|
475
548
|
xml.closeNode();
|
|
476
549
|
xml.closeNode();
|
|
477
550
|
// Separate
|
|
478
551
|
xml.openNode("w:r");
|
|
552
|
+
emitRPr();
|
|
479
553
|
xml.leafNode("w:fldChar", { "w:fldCharType": "separate" });
|
|
480
554
|
xml.closeNode();
|
|
481
555
|
// Cached value
|
|
482
556
|
if (field.cachedValue !== undefined) {
|
|
483
557
|
xml.openNode("w:r");
|
|
484
|
-
|
|
485
|
-
xml
|
|
486
|
-
xml.closeNode();
|
|
558
|
+
emitRPr();
|
|
559
|
+
writeTextWithBreaks(xml, field.cachedValue);
|
|
487
560
|
xml.closeNode();
|
|
488
561
|
}
|
|
489
562
|
// End
|
|
490
563
|
xml.openNode("w:r");
|
|
564
|
+
emitRPr();
|
|
491
565
|
xml.leafNode("w:fldChar", { "w:fldCharType": "end" });
|
|
492
566
|
xml.closeNode();
|
|
493
567
|
}
|
|
494
568
|
/** Render a single piece of run content. Returns true if rendered inside a w:r, false if it creates its own runs. */
|
|
495
|
-
function renderRunContent(xml, content) {
|
|
569
|
+
function renderRunContent(xml, content, helpers) {
|
|
496
570
|
switch (content.type) {
|
|
497
571
|
case "text":
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
572
|
+
// OOXML's <w:t> is a string with no embedded line breaks (the schema
|
|
573
|
+
// forbids U+000A / U+000D inside its text node). Authors writing
|
|
574
|
+
// multi-line cell labels conventionally pass `\n` in the source string;
|
|
575
|
+
// we split those into multiple <w:t> + <w:br/> pairs so Word renders a
|
|
576
|
+
// soft line break instead of rejecting the file.
|
|
577
|
+
writeTextWithBreaks(xml, content.text);
|
|
501
578
|
return true;
|
|
502
579
|
case "break":
|
|
503
580
|
if (content.breakType) {
|
|
@@ -547,13 +624,13 @@ function renderRunContent(xml, content) {
|
|
|
547
624
|
// Ruby text (w:rt)
|
|
548
625
|
xml.openNode("w:rt");
|
|
549
626
|
for (const run of content.rubyText) {
|
|
550
|
-
renderRun(xml, run);
|
|
627
|
+
renderRun(xml, run, helpers);
|
|
551
628
|
}
|
|
552
629
|
xml.closeNode();
|
|
553
630
|
// Base text (w:rubyBase)
|
|
554
631
|
xml.openNode("w:rubyBase");
|
|
555
632
|
for (const run of content.baseText) {
|
|
556
|
-
renderRun(xml, run);
|
|
633
|
+
renderRun(xml, run, helpers);
|
|
557
634
|
}
|
|
558
635
|
xml.closeNode();
|
|
559
636
|
xml.closeNode(); // w:ruby
|
|
@@ -579,7 +656,19 @@ function renderRunContent(xml, content) {
|
|
|
579
656
|
return true;
|
|
580
657
|
}
|
|
581
658
|
case "image":
|
|
582
|
-
|
|
659
|
+
// Skip placeholder images (rId === ""). They originate from import
|
|
660
|
+
// pipelines like html-import that don't register the underlying
|
|
661
|
+
// ImageDef — emitting <w:drawing> with a missing r:embed produces a
|
|
662
|
+
// dangling reference Word rejects.
|
|
663
|
+
if (!content.rId) {
|
|
664
|
+
if (content.altText) {
|
|
665
|
+
xml.openNode("w:t", { "xml:space": "preserve" });
|
|
666
|
+
xml.writeText(content.altText);
|
|
667
|
+
xml.closeNode();
|
|
668
|
+
}
|
|
669
|
+
return true;
|
|
670
|
+
}
|
|
671
|
+
renderInlineImage(xml, content, helpers?.imageRemap);
|
|
583
672
|
return true;
|
|
584
673
|
case "field":
|
|
585
674
|
// Fields create their own runs — must be rendered outside the current run
|
|
@@ -602,12 +691,24 @@ function renderRunContent(xml, content) {
|
|
|
602
691
|
case "dateField":
|
|
603
692
|
// Rendered as a field instruction
|
|
604
693
|
return false;
|
|
694
|
+
case "opaqueRun": {
|
|
695
|
+
// Honor the rawXmlPolicy from the active security policy.
|
|
696
|
+
const policy = helpers?.rawXmlPolicy;
|
|
697
|
+
if (policy === "reject") {
|
|
698
|
+
throw new DocxRawXmlPolicyError("opaqueRun");
|
|
699
|
+
}
|
|
700
|
+
if (policy !== "strip") {
|
|
701
|
+
// "preserve" (default) — write verbatim.
|
|
702
|
+
xml.writeRaw(content.rawXml);
|
|
703
|
+
}
|
|
704
|
+
return true;
|
|
705
|
+
}
|
|
605
706
|
default:
|
|
606
707
|
return true;
|
|
607
708
|
}
|
|
608
709
|
}
|
|
609
710
|
/** Render a w:r element. */
|
|
610
|
-
export function renderRun(xml, run) {
|
|
711
|
+
export function renderRun(xml, run, helpers) {
|
|
611
712
|
// Separate field content that needs its own runs
|
|
612
713
|
const normalContent = [];
|
|
613
714
|
const fieldContent = [];
|
|
@@ -616,13 +717,14 @@ export function renderRun(xml, run) {
|
|
|
616
717
|
fieldContent.push(c);
|
|
617
718
|
}
|
|
618
719
|
else if (c.type === "dateField") {
|
|
619
|
-
// Convert date field to field instruction
|
|
720
|
+
// Convert date field to field instruction.
|
|
721
|
+
// Use the model's cachedValue if provided; otherwise leave empty (deterministic output).
|
|
620
722
|
const fmt = c.format ?? "yyyy-MM-dd";
|
|
621
723
|
const lang = c.language ?? "en-US";
|
|
622
724
|
fieldContent.push({
|
|
623
725
|
type: "field",
|
|
624
726
|
instruction: ` DATE \\@ "${fmt}" \\l ${lang} `,
|
|
625
|
-
cachedValue:
|
|
727
|
+
cachedValue: c.cachedValue ?? ""
|
|
626
728
|
});
|
|
627
729
|
}
|
|
628
730
|
else {
|
|
@@ -636,14 +738,14 @@ export function renderRun(xml, run) {
|
|
|
636
738
|
renderRunProperties(xml, run.properties);
|
|
637
739
|
}
|
|
638
740
|
for (const content of normalContent) {
|
|
639
|
-
renderRunContent(xml, content);
|
|
741
|
+
renderRunContent(xml, content, helpers);
|
|
640
742
|
}
|
|
641
743
|
xml.closeNode();
|
|
642
744
|
}
|
|
643
|
-
// Render field content (each field creates multiple runs)
|
|
745
|
+
// Render field content (each field creates multiple runs, inheriting this run's properties)
|
|
644
746
|
for (const fc of fieldContent) {
|
|
645
747
|
if (fc.type === "field") {
|
|
646
|
-
renderField(xml, fc);
|
|
748
|
+
renderField(xml, fc, run.properties);
|
|
647
749
|
}
|
|
648
750
|
}
|
|
649
751
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX Writers - Structured Document Tag (SDT) Properties
|
|
3
|
+
*
|
|
4
|
+
* This file intentionally only renders `<w:sdtPr>` — the property block — so
|
|
5
|
+
* it has no dependency on the block-level renderers (paragraph/table/run/
|
|
6
|
+
* nested SDT). Callers are responsible for opening `<w:sdt>` and
|
|
7
|
+
* `<w:sdtContent>` themselves and for dispatching child blocks using their
|
|
8
|
+
* own render functions, which keeps the writer module graph acyclic.
|
|
9
|
+
*/
|
|
10
|
+
import type { XmlSink } from "../../xml/types.js";
|
|
11
|
+
import type { StructuredDocumentTag } from "../types.js";
|
|
12
|
+
import type { WordRenderContext } from "./render-context.js";
|
|
13
|
+
/**
|
|
14
|
+
* Render the `<w:sdt>` ↦ `<w:sdtPr>` block for a given SDT.
|
|
15
|
+
*
|
|
16
|
+
* Does not emit `<w:sdt>` itself nor `<w:sdtContent>` — that is the caller's
|
|
17
|
+
* responsibility. Designed so block-level renderers (table cell, header/
|
|
18
|
+
* footer, document body) can share the property emission logic without
|
|
19
|
+
* forming an import cycle through child-block dispatch.
|
|
20
|
+
*
|
|
21
|
+
* `ctx` may be undefined when called from a renderer that only owns a
|
|
22
|
+
* `RenderHelpers`. In that case we cannot draw an auto-id from the document
|
|
23
|
+
* id generator and will simply omit `<w:id>` if the model didn't supply one.
|
|
24
|
+
*/
|
|
25
|
+
export declare function renderSdtPr(xml: XmlSink, sdt: StructuredDocumentTag, ctx?: WordRenderContext): void;
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX Writers - Structured Document Tag (SDT) Properties
|
|
3
|
+
*
|
|
4
|
+
* This file intentionally only renders `<w:sdtPr>` — the property block — so
|
|
5
|
+
* it has no dependency on the block-level renderers (paragraph/table/run/
|
|
6
|
+
* nested SDT). Callers are responsible for opening `<w:sdt>` and
|
|
7
|
+
* `<w:sdtContent>` themselves and for dispatching child blocks using their
|
|
8
|
+
* own render functions, which keeps the writer module graph acyclic.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Render the `<w:sdt>` ↦ `<w:sdtPr>` block for a given SDT.
|
|
12
|
+
*
|
|
13
|
+
* Does not emit `<w:sdt>` itself nor `<w:sdtContent>` — that is the caller's
|
|
14
|
+
* responsibility. Designed so block-level renderers (table cell, header/
|
|
15
|
+
* footer, document body) can share the property emission logic without
|
|
16
|
+
* forming an import cycle through child-block dispatch.
|
|
17
|
+
*
|
|
18
|
+
* `ctx` may be undefined when called from a renderer that only owns a
|
|
19
|
+
* `RenderHelpers`. In that case we cannot draw an auto-id from the document
|
|
20
|
+
* id generator and will simply omit `<w:id>` if the model didn't supply one.
|
|
21
|
+
*/
|
|
22
|
+
export function renderSdtPr(xml, sdt, ctx) {
|
|
23
|
+
if (!sdt.properties) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
xml.openNode("w:sdtPr");
|
|
27
|
+
const p = sdt.properties;
|
|
28
|
+
// Auto-assign ID if not provided (Word strongly expects unique IDs).
|
|
29
|
+
// When invoked without a ctx we skip the w:id when the model didn't
|
|
30
|
+
// supply one — emitting nothing is safer than reusing a colliding id.
|
|
31
|
+
const sdtId = p.id ?? ctx?.ids.nextSdtId();
|
|
32
|
+
if (sdtId !== undefined) {
|
|
33
|
+
xml.leafNode("w:id", { "w:val": String(sdtId) });
|
|
34
|
+
}
|
|
35
|
+
if (p.tag) {
|
|
36
|
+
xml.leafNode("w:tag", { "w:val": p.tag });
|
|
37
|
+
}
|
|
38
|
+
if (p.alias) {
|
|
39
|
+
xml.leafNode("w:alias", { "w:val": p.alias });
|
|
40
|
+
}
|
|
41
|
+
// Lock: combine lockContent + lockSdt
|
|
42
|
+
if (p.lockContent && p.lockSdt) {
|
|
43
|
+
xml.leafNode("w:lock", { "w:val": "sdtContentLocked" });
|
|
44
|
+
}
|
|
45
|
+
else if (p.lockContent) {
|
|
46
|
+
xml.leafNode("w:lock", { "w:val": "contentLocked" });
|
|
47
|
+
}
|
|
48
|
+
else if (p.lockSdt) {
|
|
49
|
+
xml.leafNode("w:lock", { "w:val": "sdtLocked" });
|
|
50
|
+
}
|
|
51
|
+
// Appearance (w15:appearance for modern SDTs)
|
|
52
|
+
if (p.appearance) {
|
|
53
|
+
xml.leafNode("w15:appearance", { "w15:val": p.appearance });
|
|
54
|
+
}
|
|
55
|
+
// Show placeholder toggle
|
|
56
|
+
if (p.showingPlaceholder) {
|
|
57
|
+
xml.leafNode("w:showingPlcHdr");
|
|
58
|
+
}
|
|
59
|
+
if (p.placeholder) {
|
|
60
|
+
xml.openNode("w:placeholder");
|
|
61
|
+
xml.leafNode("w:docPart", { "w:val": p.placeholder });
|
|
62
|
+
xml.closeNode();
|
|
63
|
+
}
|
|
64
|
+
if (p.temporary) {
|
|
65
|
+
xml.leafNode("w:temporary");
|
|
66
|
+
}
|
|
67
|
+
if (p.dataBinding) {
|
|
68
|
+
const bindAttrs = {
|
|
69
|
+
"w:xpath": p.dataBinding.xpath,
|
|
70
|
+
"w:storeItemID": p.dataBinding.storeItemId
|
|
71
|
+
};
|
|
72
|
+
if (p.dataBinding.prefixMappings) {
|
|
73
|
+
bindAttrs["w:prefixMappings"] = p.dataBinding.prefixMappings;
|
|
74
|
+
}
|
|
75
|
+
xml.leafNode("w:dataBinding", bindAttrs);
|
|
76
|
+
}
|
|
77
|
+
// Type discriminator markers
|
|
78
|
+
if (p.plainText) {
|
|
79
|
+
xml.leafNode("w:text");
|
|
80
|
+
}
|
|
81
|
+
if (p.richText) {
|
|
82
|
+
xml.leafNode("w:richText");
|
|
83
|
+
}
|
|
84
|
+
if (p.picture) {
|
|
85
|
+
xml.leafNode("w:picture");
|
|
86
|
+
}
|
|
87
|
+
if (p.group) {
|
|
88
|
+
xml.leafNode("w:group");
|
|
89
|
+
}
|
|
90
|
+
if (p.equation) {
|
|
91
|
+
xml.leafNode("w:equation");
|
|
92
|
+
}
|
|
93
|
+
if (p.citation) {
|
|
94
|
+
xml.leafNode("w:citation");
|
|
95
|
+
}
|
|
96
|
+
if (p.bibliography) {
|
|
97
|
+
xml.leafNode("w:bibliography");
|
|
98
|
+
}
|
|
99
|
+
if (p.repeatingSectionItem) {
|
|
100
|
+
xml.leafNode("w15:repeatingSectionItem");
|
|
101
|
+
}
|
|
102
|
+
if (p.repeatingSection) {
|
|
103
|
+
// w15:repeatingSection has child elements (not attributes) per the schema
|
|
104
|
+
const rs = p.repeatingSection;
|
|
105
|
+
const hasChildren = rs.sectionTitle !== undefined || rs.allowInsertDelete !== undefined;
|
|
106
|
+
if (hasChildren) {
|
|
107
|
+
xml.openNode("w15:repeatingSection");
|
|
108
|
+
if (rs.sectionTitle !== undefined) {
|
|
109
|
+
xml.leafNode("w15:sectionTitle", { "w15:val": rs.sectionTitle });
|
|
110
|
+
}
|
|
111
|
+
if (rs.allowInsertDelete === false) {
|
|
112
|
+
xml.leafNode("w15:doNotAllowInsertDeleteSection");
|
|
113
|
+
}
|
|
114
|
+
xml.closeNode();
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
xml.leafNode("w15:repeatingSection");
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// Checkbox (w14 extension)
|
|
121
|
+
if (p.checkbox) {
|
|
122
|
+
xml.openNode("w14:checkbox");
|
|
123
|
+
xml.leafNode("w14:checked", p.checkbox.checked ? { "w14:val": "1" } : { "w14:val": "0" });
|
|
124
|
+
if (p.checkbox.checkedChar || p.checkbox.checkedFont) {
|
|
125
|
+
const cAttrs = {};
|
|
126
|
+
if (p.checkbox.checkedChar) {
|
|
127
|
+
cAttrs["w14:val"] = p.checkbox.checkedChar;
|
|
128
|
+
}
|
|
129
|
+
if (p.checkbox.checkedFont) {
|
|
130
|
+
cAttrs["w14:font"] = p.checkbox.checkedFont;
|
|
131
|
+
}
|
|
132
|
+
xml.leafNode("w14:checkedState", cAttrs);
|
|
133
|
+
}
|
|
134
|
+
if (p.checkbox.uncheckedChar || p.checkbox.uncheckedFont) {
|
|
135
|
+
const uAttrs = {};
|
|
136
|
+
if (p.checkbox.uncheckedChar) {
|
|
137
|
+
uAttrs["w14:val"] = p.checkbox.uncheckedChar;
|
|
138
|
+
}
|
|
139
|
+
if (p.checkbox.uncheckedFont) {
|
|
140
|
+
uAttrs["w14:font"] = p.checkbox.uncheckedFont;
|
|
141
|
+
}
|
|
142
|
+
xml.leafNode("w14:uncheckedState", uAttrs);
|
|
143
|
+
}
|
|
144
|
+
xml.closeNode();
|
|
145
|
+
}
|
|
146
|
+
// Dropdown list
|
|
147
|
+
if (p.dropdownList) {
|
|
148
|
+
xml.openNode("w:dropDownList");
|
|
149
|
+
for (const item of p.dropdownList) {
|
|
150
|
+
const attrs = { "w:value": item.value };
|
|
151
|
+
if (item.displayText) {
|
|
152
|
+
attrs["w:displayText"] = item.displayText;
|
|
153
|
+
}
|
|
154
|
+
xml.leafNode("w:listItem", attrs);
|
|
155
|
+
}
|
|
156
|
+
xml.closeNode();
|
|
157
|
+
}
|
|
158
|
+
// ComboBox
|
|
159
|
+
if (p.comboBox) {
|
|
160
|
+
xml.openNode("w:comboBox");
|
|
161
|
+
for (const item of p.comboBox) {
|
|
162
|
+
const attrs = { "w:value": item.value };
|
|
163
|
+
if (item.displayText) {
|
|
164
|
+
attrs["w:displayText"] = item.displayText;
|
|
165
|
+
}
|
|
166
|
+
xml.leafNode("w:listItem", attrs);
|
|
167
|
+
}
|
|
168
|
+
xml.closeNode();
|
|
169
|
+
}
|
|
170
|
+
// Date picker
|
|
171
|
+
if (p.date) {
|
|
172
|
+
const dateAttrs = {};
|
|
173
|
+
if (p.date.fullDate) {
|
|
174
|
+
dateAttrs["w:fullDate"] = p.date.fullDate;
|
|
175
|
+
}
|
|
176
|
+
xml.openNode("w:date", Object.keys(dateAttrs).length > 0 ? dateAttrs : undefined);
|
|
177
|
+
if (p.date.dateFormat) {
|
|
178
|
+
xml.leafNode("w:dateFormat", { "w:val": p.date.dateFormat });
|
|
179
|
+
}
|
|
180
|
+
if (p.date.lid) {
|
|
181
|
+
xml.leafNode("w:lid", { "w:val": p.date.lid });
|
|
182
|
+
}
|
|
183
|
+
if (p.date.storeMappedDataAs) {
|
|
184
|
+
xml.leafNode("w:storeMappedDataAs", { "w:val": p.date.storeMappedDataAs });
|
|
185
|
+
}
|
|
186
|
+
xml.closeNode();
|
|
187
|
+
}
|
|
188
|
+
xml.closeNode(); // w:sdtPr
|
|
189
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StreamBuf - Minimal Event-Driven Stream Buffer for DOCX Streaming
|
|
3
|
+
*
|
|
4
|
+
* A lightweight stream buffer that emits data events when written to.
|
|
5
|
+
* This is specifically designed for the streaming DOCX writer's needs:
|
|
6
|
+
* - Write StringBuf or Uint8Array data
|
|
7
|
+
* - Emit "data" events with Uint8Array chunks
|
|
8
|
+
* - Emit "finish" on end()
|
|
9
|
+
* - Support custom event listeners (once/on/emit)
|
|
10
|
+
*
|
|
11
|
+
* This is a word-module-local implementation to avoid depending on @excel/utils.
|
|
12
|
+
*/
|
|
13
|
+
import { EventEmitter } from "../../../utils/event-emitter.js";
|
|
14
|
+
import type { StringBuf } from "./string-buf.js";
|
|
15
|
+
interface StreamBufOptions {
|
|
16
|
+
bufSize?: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Minimal streaming buffer for piping XML data to ZIP compression.
|
|
20
|
+
* Extends EventEmitter for event-driven data flow.
|
|
21
|
+
*/
|
|
22
|
+
declare class StreamBuf extends EventEmitter {
|
|
23
|
+
private _ended;
|
|
24
|
+
constructor(_options?: StreamBufOptions);
|
|
25
|
+
/** Returns true if the stream is writable (not ended). */
|
|
26
|
+
get writable(): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Write data to the stream. Emits a "data" event with the bytes.
|
|
29
|
+
*/
|
|
30
|
+
write(data: Uint8Array | string | StringBuf | ArrayBuffer | ArrayBufferView, _encoding?: string | ((...args: unknown[]) => unknown), callback?: (...args: unknown[]) => unknown): void;
|
|
31
|
+
/**
|
|
32
|
+
* End the stream. Emits "finish" event.
|
|
33
|
+
*/
|
|
34
|
+
end(chunk?: Uint8Array | string | StringBuf | ArrayBuffer | ArrayBufferView, _encoding?: string, callback?: (...args: unknown[]) => unknown): void;
|
|
35
|
+
}
|
|
36
|
+
export { StreamBuf };
|
|
37
|
+
export type { StreamBufOptions };
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StreamBuf - Minimal Event-Driven Stream Buffer for DOCX Streaming
|
|
3
|
+
*
|
|
4
|
+
* A lightweight stream buffer that emits data events when written to.
|
|
5
|
+
* This is specifically designed for the streaming DOCX writer's needs:
|
|
6
|
+
* - Write StringBuf or Uint8Array data
|
|
7
|
+
* - Emit "data" events with Uint8Array chunks
|
|
8
|
+
* - Emit "finish" on end()
|
|
9
|
+
* - Support custom event listeners (once/on/emit)
|
|
10
|
+
*
|
|
11
|
+
* This is a word-module-local implementation to avoid depending on @excel/utils.
|
|
12
|
+
*/
|
|
13
|
+
import { EventEmitter } from "../../../utils/event-emitter.js";
|
|
14
|
+
/**
|
|
15
|
+
* Minimal streaming buffer for piping XML data to ZIP compression.
|
|
16
|
+
* Extends EventEmitter for event-driven data flow.
|
|
17
|
+
*/
|
|
18
|
+
class StreamBuf extends EventEmitter {
|
|
19
|
+
constructor(_options) {
|
|
20
|
+
super();
|
|
21
|
+
this._ended = false;
|
|
22
|
+
}
|
|
23
|
+
/** Returns true if the stream is writable (not ended). */
|
|
24
|
+
get writable() {
|
|
25
|
+
return !this._ended;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Write data to the stream. Emits a "data" event with the bytes.
|
|
29
|
+
*/
|
|
30
|
+
write(data, _encoding, callback) {
|
|
31
|
+
let bytes;
|
|
32
|
+
if (data instanceof Uint8Array) {
|
|
33
|
+
bytes = data;
|
|
34
|
+
}
|
|
35
|
+
else if (typeof data === "string") {
|
|
36
|
+
bytes = new TextEncoder().encode(data);
|
|
37
|
+
}
|
|
38
|
+
else if (ArrayBuffer.isView(data)) {
|
|
39
|
+
bytes = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
|
|
40
|
+
}
|
|
41
|
+
else if (data instanceof ArrayBuffer) {
|
|
42
|
+
bytes = new Uint8Array(data);
|
|
43
|
+
}
|
|
44
|
+
else if (data && typeof data.toBuffer === "function") {
|
|
45
|
+
// StringBuf-like object
|
|
46
|
+
bytes = data.toBuffer();
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
bytes = new Uint8Array(0);
|
|
50
|
+
}
|
|
51
|
+
if (bytes.length > 0) {
|
|
52
|
+
this.emit("data", bytes);
|
|
53
|
+
}
|
|
54
|
+
if (callback) {
|
|
55
|
+
callback();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* End the stream. Emits "finish" event.
|
|
60
|
+
*/
|
|
61
|
+
end(chunk, _encoding, callback) {
|
|
62
|
+
if (chunk) {
|
|
63
|
+
this.write(chunk);
|
|
64
|
+
}
|
|
65
|
+
this._ended = true;
|
|
66
|
+
this.emit("finish");
|
|
67
|
+
this.emit("close");
|
|
68
|
+
if (callback) {
|
|
69
|
+
callback();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
export { StreamBuf };
|