@syncfusion/ej2-docx 0.0.0-stage → 35.1.39
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/README.md +68 -2
- package/core.js +4 -0
- package/dist/ej2-docx.umd.min.js +2 -0
- package/dist/ej2-docx.umd.min.js.map +1 -0
- package/dist/es6/ej2-docx.es2015.js +66697 -0
- package/dist/es6/ej2-docx.es2015.js.map +1 -0
- package/dist/es6/ej2-docx.es5.js +77568 -0
- package/dist/es6/ej2-docx.es5.js.map +1 -0
- package/dist/global/ej2-docx.min.js +2 -0
- package/dist/global/ej2-docx.min.js.map +1 -0
- package/dist/global/index.d.ts +5 -0
- package/features.js +4 -0
- package/index.js +4 -0
- package/license +10 -0
- package/package.json +31 -4
- package/src/all.d.ts +50 -0
- package/src/all.js +147 -0
- package/src/core/compat/base64.d.ts +13 -0
- package/src/core/compat/base64.js +90 -0
- package/src/core/compat/object-compat.d.ts +30 -0
- package/src/core/compat/object-compat.js +40 -0
- package/src/core/compat/sha256.d.ts +9 -0
- package/src/core/compat/sha256.js +98 -0
- package/src/core/errors/docx-error.d.ts +89 -0
- package/src/core/errors/docx-error.js +138 -0
- package/src/core/errors/error-codes.d.ts +8 -0
- package/src/core/errors/error-codes.js +0 -0
- package/src/core/errors/index.d.ts +10 -0
- package/src/core/errors/index.js +9 -0
- package/src/core/index.d.ts +12 -0
- package/src/core/index.js +12 -0
- package/src/core/mc/alternate-content.d.ts +7 -0
- package/src/core/mc/alternate-content.js +67 -0
- package/src/core/mc/attributes.d.ts +24 -0
- package/src/core/mc/attributes.js +82 -0
- package/src/core/mc/index.d.ts +7 -0
- package/src/core/mc/index.js +5 -0
- package/src/core/mc/inspect.d.ts +16 -0
- package/src/core/mc/inspect.js +148 -0
- package/src/core/mc/namespaces.d.ts +4 -0
- package/src/core/mc/namespaces.js +4 -0
- package/src/core/mc/scope.d.ts +6 -0
- package/src/core/mc/scope.js +47 -0
- package/src/core/opc/content-types.d.ts +34 -0
- package/src/core/opc/content-types.js +162 -0
- package/src/core/opc/index.d.ts +8 -0
- package/src/core/opc/index.js +4 -0
- package/src/core/opc/package.d.ts +49 -0
- package/src/core/opc/package.js +324 -0
- package/src/core/opc/part-name.d.ts +47 -0
- package/src/core/opc/part-name.js +205 -0
- package/src/core/opc/relationships.d.ts +46 -0
- package/src/core/opc/relationships.js +212 -0
- package/src/core/preservation/index.d.ts +2 -0
- package/src/core/preservation/index.js +1 -0
- package/src/core/preservation/opaque-body.d.ts +16 -0
- package/src/core/preservation/opaque-body.js +69 -0
- package/src/core/registry/block-handlers.d.ts +30 -0
- package/src/core/registry/block-handlers.js +36 -0
- package/src/core/registry/create-defaults.d.ts +39 -0
- package/src/core/registry/create-defaults.js +42 -0
- package/src/core/registry/feature-registry.d.ts +20 -0
- package/src/core/registry/feature-registry.js +29 -0
- package/src/core/registry/index.d.ts +9 -0
- package/src/core/registry/index.js +8 -0
- package/src/core/registry/inline-handlers.d.ts +20 -0
- package/src/core/registry/inline-handlers.js +30 -0
- package/src/core/registry/materialize-handlers.d.ts +35 -0
- package/src/core/registry/materialize-handlers.js +75 -0
- package/src/core/registry/multi-part-handlers.d.ts +37 -0
- package/src/core/registry/multi-part-handlers.js +206 -0
- package/src/core/registry/package-part-handlers.d.ts +28 -0
- package/src/core/registry/package-part-handlers.js +190 -0
- package/src/core/registry/part-handlers.d.ts +24 -0
- package/src/core/registry/part-handlers.js +172 -0
- package/src/core/registry/run-leaf-handlers.d.ts +26 -0
- package/src/core/registry/run-leaf-handlers.js +72 -0
- package/src/core/security/limits.d.ts +40 -0
- package/src/core/security/limits.js +26 -0
- package/src/core/xml/index.d.ts +7 -0
- package/src/core/xml/index.js +3 -0
- package/src/core/xml/model.d.ts +66 -0
- package/src/core/xml/model.js +17 -0
- package/src/core/xml/parse.d.ts +12 -0
- package/src/core/xml/parse.js +382 -0
- package/src/core/xml/serialize.d.ts +6 -0
- package/src/core/xml/serialize.js +93 -0
- package/src/core/zip/crc32.d.ts +2 -0
- package/src/core/zip/crc32.js +25 -0
- package/src/core/zip/deflate.d.ts +6 -0
- package/src/core/zip/deflate.js +6 -0
- package/src/core/zip/index.d.ts +10 -0
- package/src/core/zip/index.js +4 -0
- package/src/core/zip/inflate-raw.d.ts +17 -0
- package/src/core/zip/inflate-raw.js +450 -0
- package/src/core/zip/names.d.ts +6 -0
- package/src/core/zip/names.js +52 -0
- package/src/core/zip/read.d.ts +8 -0
- package/src/core/zip/read.js +262 -0
- package/src/core/zip/write.d.ts +7 -0
- package/src/core/zip/write.js +189 -0
- package/src/core/zip/zip-entry.d.ts +4 -0
- package/src/core/zip/zip-entry.js +0 -0
- package/src/features/bibliography/index.d.ts +100 -0
- package/src/features/bibliography/index.js +290 -0
- package/src/features/bookmarks/index.d.ts +331 -0
- package/src/features/bookmarks/index.js +1009 -0
- package/src/features/comments/comment-extensions.d.ts +157 -0
- package/src/features/comments/comment-extensions.js +356 -0
- package/src/features/comments/index.d.ts +579 -0
- package/src/features/comments/index.js +1727 -0
- package/src/features/content-controls/index.d.ts +821 -0
- package/src/features/content-controls/index.js +2857 -0
- package/src/features/custom-xml/index.d.ts +236 -0
- package/src/features/custom-xml/index.js +661 -0
- package/src/features/document/alignment.d.ts +23 -0
- package/src/features/document/alignment.js +36 -0
- package/src/features/document/alt-chunk.d.ts +103 -0
- package/src/features/document/alt-chunk.js +221 -0
- package/src/features/document/assert-never.d.ts +1 -0
- package/src/features/document/assert-never.js +4 -0
- package/src/features/document/augmentations.d.ts +578 -0
- package/src/features/document/augmentations.js +0 -0
- package/src/features/document/body-always-on.d.ts +36 -0
- package/src/features/document/body-always-on.js +66 -0
- package/src/features/document/body-blocks.d.ts +7 -0
- package/src/features/document/body-blocks.js +78 -0
- package/src/features/document/body-item-adapters.d.ts +62 -0
- package/src/features/document/body-item-adapters.js +97 -0
- package/src/features/document/body-item-collection.d.ts +151 -0
- package/src/features/document/body-item-collection.js +440 -0
- package/src/features/document/body-item.d.ts +35 -0
- package/src/features/document/body-item.js +8 -0
- package/src/features/document/body.d.ts +150 -0
- package/src/features/document/body.js +263 -0
- package/src/features/document/character-format.d.ts +413 -0
- package/src/features/document/character-format.js +2054 -0
- package/src/features/document/color.d.ts +178 -0
- package/src/features/document/color.js +495 -0
- package/src/features/document/document.d.ts +410 -0
- package/src/features/document/document.js +1049 -0
- package/src/features/document/element-type.d.ts +68 -0
- package/src/features/document/element-type.js +133 -0
- package/src/features/document/entity-type.d.ts +92 -0
- package/src/features/document/entity-type.js +93 -0
- package/src/features/document/feature-block.d.ts +16 -0
- package/src/features/document/feature-block.js +0 -0
- package/src/features/document/feature-inline.d.ts +13 -0
- package/src/features/document/feature-inline.js +0 -0
- package/src/features/document/feature-multi-package-part.d.ts +19 -0
- package/src/features/document/feature-multi-package-part.js +8 -0
- package/src/features/document/feature-package-level-part.d.ts +18 -0
- package/src/features/document/feature-package-level-part.js +8 -0
- package/src/features/document/feature-package-part.d.ts +14 -0
- package/src/features/document/feature-package-part.js +0 -0
- package/src/features/document/feature-run-leaf.d.ts +9 -0
- package/src/features/document/feature-run-leaf.js +0 -0
- package/src/features/document/headers-footers.d.ts +206 -0
- package/src/features/document/headers-footers.js +384 -0
- package/src/features/document/index.d.ts +41 -0
- package/src/features/document/index.js +34 -0
- package/src/features/document/length.d.ts +152 -0
- package/src/features/document/length.js +245 -0
- package/src/features/document/load-options.d.ts +14 -0
- package/src/features/document/load-options.js +0 -0
- package/src/features/document/locale-ids.d.ts +227 -0
- package/src/features/document/locale-ids.js +485 -0
- package/src/features/document/on-off.d.ts +9 -0
- package/src/features/document/on-off.js +27 -0
- package/src/features/document/page-setup.d.ts +339 -0
- package/src/features/document/page-setup.js +244 -0
- package/src/features/document/paragraph-format.d.ts +880 -0
- package/src/features/document/paragraph-format.js +2807 -0
- package/src/features/document/paragraph-item-collection.d.ts +162 -0
- package/src/features/document/paragraph-item-collection.js +363 -0
- package/src/features/document/paragraph-item.d.ts +83 -0
- package/src/features/document/paragraph-item.js +103 -0
- package/src/features/document/paragraph.d.ts +435 -0
- package/src/features/document/paragraph.js +888 -0
- package/src/features/document/run.d.ts +1 -0
- package/src/features/document/run.js +768 -0
- package/src/features/document/section-partition-flatten.d.ts +124 -0
- package/src/features/document/section-partition-flatten.js +217 -0
- package/src/features/document/section-properties-model.d.ts +13 -0
- package/src/features/document/section-properties-model.js +0 -0
- package/src/features/document/section.d.ts +93 -0
- package/src/features/document/section.js +178 -0
- package/src/features/document/sections.d.ts +103 -0
- package/src/features/document/sections.js +217 -0
- package/src/features/document/sub-super-script.d.ts +23 -0
- package/src/features/document/sub-super-script.js +43 -0
- package/src/features/document/text-range.d.ts +445 -0
- package/src/features/document/text-range.js +1156 -0
- package/src/features/document/typed-body-collections.d.ts +162 -0
- package/src/features/document/typed-body-collections.js +371 -0
- package/src/features/document/underline-style.d.ts +38 -0
- package/src/features/document/underline-style.js +126 -0
- package/src/features/document/units.d.ts +8 -0
- package/src/features/document/units.js +7 -0
- package/src/features/document/wml.d.ts +16 -0
- package/src/features/document/wml.js +67 -0
- package/src/features/drawing/authoring.d.ts +27 -0
- package/src/features/drawing/authoring.js +271 -0
- package/src/features/drawing/body-pr.d.ts +271 -0
- package/src/features/drawing/body-pr.js +663 -0
- package/src/features/drawing/drawing-shape.d.ts +1192 -0
- package/src/features/drawing/drawing-shape.js +3239 -0
- package/src/features/drawing/encode-builders.d.ts +176 -0
- package/src/features/drawing/encode-builders.js +390 -0
- package/src/features/drawing/fill-format.d.ts +52 -0
- package/src/features/drawing/fill-format.js +124 -0
- package/src/features/drawing/host-codec.d.ts +632 -0
- package/src/features/drawing/host-codec.js +2595 -0
- package/src/features/drawing/index.d.ts +13 -0
- package/src/features/drawing/index.js +33 -0
- package/src/features/drawing/line-format.d.ts +76 -0
- package/src/features/drawing/line-format.js +343 -0
- package/src/features/drawing/parse-register.d.ts +50 -0
- package/src/features/drawing/parse-register.js +257 -0
- package/src/features/drawing/residual-utils.d.ts +47 -0
- package/src/features/drawing/residual-utils.js +290 -0
- package/src/features/drawing/shape-types.d.ts +433 -0
- package/src/features/drawing/shape-types.js +437 -0
- package/src/features/drawing/sp-pr.d.ts +396 -0
- package/src/features/drawing/sp-pr.js +610 -0
- package/src/features/drawing/text-frame.d.ts +90 -0
- package/src/features/drawing/text-frame.js +152 -0
- package/src/features/drawing/types.d.ts +352 -0
- package/src/features/drawing/types.js +60 -0
- package/src/features/drawing/wrap-format.d.ts +62 -0
- package/src/features/drawing/wrap-format.js +114 -0
- package/src/features/editable-ranges/index.d.ts +494 -0
- package/src/features/editable-ranges/index.js +1348 -0
- package/src/features/fields/index.d.ts +428 -0
- package/src/features/fields/index.js +2148 -0
- package/src/features/fields/paragraph-field.d.ts +187 -0
- package/src/features/fields/paragraph-field.js +692 -0
- package/src/features/font-table/font-substitution-table.d.ts +75 -0
- package/src/features/font-table/font-substitution-table.js +257 -0
- package/src/features/font-table/font-table-entry.d.ts +255 -0
- package/src/features/font-table/font-table-entry.js +823 -0
- package/src/features/font-table/font-table.d.ts +128 -0
- package/src/features/font-table/font-table.js +313 -0
- package/src/features/font-table/index.d.ts +27 -0
- package/src/features/font-table/index.js +48 -0
- package/src/features/glossary/index.d.ts +97 -0
- package/src/features/glossary/index.js +286 -0
- package/src/features/headers-footers/index.d.ts +506 -0
- package/src/features/headers-footers/index.js +1666 -0
- package/src/features/hyperlinks/index.d.ts +230 -0
- package/src/features/hyperlinks/index.js +685 -0
- package/src/features/images/caption-authoring-api.d.ts +33 -0
- package/src/features/images/caption-authoring-api.js +33 -0
- package/src/features/images/caption-enums.d.ts +52 -0
- package/src/features/images/caption-enums.js +141 -0
- package/src/features/images/caption-host.d.ts +10 -0
- package/src/features/images/caption-host.js +21 -0
- package/src/features/images/captions.d.ts +13 -0
- package/src/features/images/captions.js +142 -0
- package/src/features/images/host-codec.d.ts +103 -0
- package/src/features/images/host-codec.js +720 -0
- package/src/features/images/image-sniff.d.ts +21 -0
- package/src/features/images/image-sniff.js +71 -0
- package/src/features/images/index.d.ts +506 -0
- package/src/features/images/index.js +1429 -0
- package/src/features/images/layout-types.d.ts +232 -0
- package/src/features/images/layout-types.js +294 -0
- package/src/features/images/public-entry.d.ts +9 -0
- package/src/features/images/public-entry.js +9 -0
- package/src/features/index.d.ts +35 -0
- package/src/features/index.js +36 -0
- package/src/features/mail-merge/index.d.ts +113 -0
- package/src/features/mail-merge/index.js +315 -0
- package/src/features/notes/index.d.ts +573 -0
- package/src/features/notes/index.js +1725 -0
- package/src/features/numbering/abstract-numbering.d.ts +90 -0
- package/src/features/numbering/abstract-numbering.js +292 -0
- package/src/features/numbering/index.d.ts +182 -0
- package/src/features/numbering/index.js +668 -0
- package/src/features/numbering/list-format.d.ts +158 -0
- package/src/features/numbering/list-format.js +590 -0
- package/src/features/numbering/list-string.d.ts +7 -0
- package/src/features/numbering/list-string.js +423 -0
- package/src/features/numbering/list-style.d.ts +204 -0
- package/src/features/numbering/list-style.js +1084 -0
- package/src/features/numbering/numbering-instance.d.ts +101 -0
- package/src/features/numbering/numbering-instance.js +329 -0
- package/src/features/numbering/numbering-level.d.ts +118 -0
- package/src/features/numbering/numbering-level.js +501 -0
- package/src/features/numbering/picture-bullet.d.ts +34 -0
- package/src/features/numbering/picture-bullet.js +88 -0
- package/src/features/ole-object/catalog.d.ts +300 -0
- package/src/features/ole-object/catalog.js +908 -0
- package/src/features/ole-object/index.d.ts +526 -0
- package/src/features/ole-object/index.js +1421 -0
- package/src/features/ole-object/relationship.d.ts +27 -0
- package/src/features/ole-object/relationship.js +27 -0
- package/src/features/ole-object/typed-dom.d.ts +186 -0
- package/src/features/ole-object/typed-dom.js +595 -0
- package/src/features/properties/index.d.ts +205 -0
- package/src/features/properties/index.js +549 -0
- package/src/features/revisions/index.d.ts +204 -0
- package/src/features/revisions/index.js +695 -0
- package/src/features/sections/column-collection.d.ts +119 -0
- package/src/features/sections/column-collection.js +478 -0
- package/src/features/sections/column.d.ts +15 -0
- package/src/features/sections/column.js +37 -0
- package/src/features/sections/index.d.ts +91 -0
- package/src/features/sections/index.js +1096 -0
- package/src/features/sections/margins.d.ts +40 -0
- package/src/features/sections/margins.js +105 -0
- package/src/features/sections/page-number-style.d.ts +21 -0
- package/src/features/sections/page-number-style.js +62 -0
- package/src/features/sections/page-orientation.d.ts +10 -0
- package/src/features/sections/page-orientation.js +10 -0
- package/src/features/sections/page-setup.d.ts +435 -0
- package/src/features/sections/page-setup.js +1479 -0
- package/src/features/sections/page-size.d.ts +59 -0
- package/src/features/sections/page-size.js +68 -0
- package/src/features/sections/section-break-code.d.ts +27 -0
- package/src/features/sections/section-break-code.js +60 -0
- package/src/features/sections/section-document-association.d.ts +18 -0
- package/src/features/sections/section-document-association.js +31 -0
- package/src/features/sections/section-validation.d.ts +43 -0
- package/src/features/sections/section-validation.js +97 -0
- package/src/features/settings/attached-template.d.ts +35 -0
- package/src/features/settings/attached-template.js +98 -0
- package/src/features/settings/compat-settings.d.ts +216 -0
- package/src/features/settings/compat-settings.js +508 -0
- package/src/features/settings/document-background.d.ts +59 -0
- package/src/features/settings/document-background.js +131 -0
- package/src/features/settings/document-protection.d.ts +65 -0
- package/src/features/settings/document-protection.js +157 -0
- package/src/features/settings/document-settings-facades.d.ts +108 -0
- package/src/features/settings/document-settings-facades.js +312 -0
- package/src/features/settings/document-settings-values.d.ts +43 -0
- package/src/features/settings/document-settings-values.js +60 -0
- package/src/features/settings/footnote-properties.d.ts +211 -0
- package/src/features/settings/footnote-properties.js +591 -0
- package/src/features/settings/index.d.ts +356 -0
- package/src/features/settings/index.js +829 -0
- package/src/features/settings/settings-children.d.ts +151 -0
- package/src/features/settings/settings-children.js +505 -0
- package/src/features/settings/web-settings.d.ts +88 -0
- package/src/features/settings/web-settings.js +227 -0
- package/src/features/settings/zoom.d.ts +79 -0
- package/src/features/settings/zoom.js +147 -0
- package/src/features/styles/builtin-catalog.d.ts +159 -0
- package/src/features/styles/builtin-catalog.js +963 -0
- package/src/features/styles/builtin-resolver.d.ts +49 -0
- package/src/features/styles/builtin-resolver.js +165 -0
- package/src/features/styles/default-styles.d.ts +37 -0
- package/src/features/styles/default-styles.js +186 -0
- package/src/features/styles/default-theme.d.ts +13 -0
- package/src/features/styles/default-theme.js +13 -0
- package/src/features/styles/doc-defaults.d.ts +58 -0
- package/src/features/styles/doc-defaults.js +178 -0
- package/src/features/styles/formatting-resolver.d.ts +27 -0
- package/src/features/styles/formatting-resolver.js +72 -0
- package/src/features/styles/index.d.ts +256 -0
- package/src/features/styles/index.js +1325 -0
- package/src/features/styles/latent-styles.d.ts +68 -0
- package/src/features/styles/latent-styles.js +305 -0
- package/src/features/styles/paragraph-properties.d.ts +71 -0
- package/src/features/styles/paragraph-properties.js +237 -0
- package/src/features/styles/run-properties.d.ts +93 -0
- package/src/features/styles/run-properties.js +516 -0
- package/src/features/styles/style-base.d.ts +402 -0
- package/src/features/styles/style-base.js +1026 -0
- package/src/features/styles/style-collection.d.ts +264 -0
- package/src/features/styles/style-collection.js +714 -0
- package/src/features/styles/style-format-bridge.d.ts +64 -0
- package/src/features/styles/style-format-bridge.js +100 -0
- package/src/features/styles/style.d.ts +84 -0
- package/src/features/styles/style.js +375 -0
- package/src/features/styles/styles-with-effects.d.ts +71 -0
- package/src/features/styles/styles-with-effects.js +180 -0
- package/src/features/styles/table-style.d.ts +272 -0
- package/src/features/styles/table-style.js +1226 -0
- package/src/features/styles/theme.d.ts +126 -0
- package/src/features/styles/theme.js +377 -0
- package/src/features/tables/border-style-map.d.ts +24 -0
- package/src/features/tables/border-style-map.js +81 -0
- package/src/features/tables/borders.d.ts +126 -0
- package/src/features/tables/borders.js +527 -0
- package/src/features/tables/collections.d.ts +113 -0
- package/src/features/tables/collections.js +261 -0
- package/src/features/tables/format.d.ts +208 -0
- package/src/features/tables/format.js +716 -0
- package/src/features/tables/index.d.ts +597 -0
- package/src/features/tables/index.js +2386 -0
- package/src/features/tables/paddings.d.ts +41 -0
- package/src/features/tables/paddings.js +97 -0
- package/src/features/tables/tbl-pr-positioning.d.ts +27 -0
- package/src/features/tables/tbl-pr-positioning.js +178 -0
- package/src/features/tables/tbl-pr.d.ts +528 -0
- package/src/features/tables/tbl-pr.js +1208 -0
- package/src/features/tables/tc-pr.d.ts +168 -0
- package/src/features/tables/tc-pr.js +553 -0
- package/src/features/tables/tr-pr.d.ts +60 -0
- package/src/features/tables/tr-pr.js +215 -0
- package/src/features/watermark/detect.d.ts +76 -0
- package/src/features/watermark/detect.js +219 -0
- package/src/features/watermark/index.d.ts +28 -0
- package/src/features/watermark/index.js +91 -0
- package/src/features/watermark/logical-store.d.ts +29 -0
- package/src/features/watermark/logical-store.js +31 -0
- package/src/features/watermark/model.d.ts +285 -0
- package/src/features/watermark/model.js +597 -0
- package/src/features/watermark/parse.d.ts +84 -0
- package/src/features/watermark/parse.js +815 -0
- package/src/features/watermark/serialize.d.ts +98 -0
- package/src/features/watermark/serialize.js +1517 -0
- package/src/global.js +1 -0
- package/src/index.d.ts +2 -0
- package/src/index.js +2 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { WordDocument } from '../document/document';
|
|
2
|
+
import { FeaturePackagePart } from '../document/feature-package-part';
|
|
3
|
+
/**
|
|
4
|
+
* @private DrawingML Main namespace (ECMA-376-1 §14.2.7). */
|
|
5
|
+
export declare const DML_MAIN_NAMESPACE = "http://schemas.openxmlformats.org/drawingml/2006/main";
|
|
6
|
+
/**
|
|
7
|
+
* @private Transitional theme relationship (ECMA-376-4 §12.2.7). */
|
|
8
|
+
export declare const THEME_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";
|
|
9
|
+
/**
|
|
10
|
+
* @private Strict theme relationship (ECMA-376-1 §14.2.7). */
|
|
11
|
+
export declare const STRICT_THEME_RELATIONSHIP_TYPE = "http://purl.oclc.org/ooxml/officeDocument/relationships/theme";
|
|
12
|
+
/**
|
|
13
|
+
* @private ECMA-376-1 §14.2.7 Theme part content type. */
|
|
14
|
+
export declare const THEME_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.theme+xml";
|
|
15
|
+
/** @private */
|
|
16
|
+
export declare const THEME_PART_NAME: import("../../core/opc/part-name").PartName;
|
|
17
|
+
/** @private */
|
|
18
|
+
interface ThemeFontCollection {
|
|
19
|
+
readonly latin: string | undefined;
|
|
20
|
+
readonly ea: string | undefined;
|
|
21
|
+
readonly cs: string | undefined;
|
|
22
|
+
}
|
|
23
|
+
/** @private */
|
|
24
|
+
interface ThemeFontScheme {
|
|
25
|
+
readonly major: ThemeFontCollection;
|
|
26
|
+
readonly minor: ThemeFontCollection;
|
|
27
|
+
}
|
|
28
|
+
/** @private */
|
|
29
|
+
interface ThemeMetadata {
|
|
30
|
+
readonly name: string | undefined;
|
|
31
|
+
readonly colorSchemeName: string | undefined;
|
|
32
|
+
readonly fontSchemeName: string | undefined;
|
|
33
|
+
readonly formatSchemeName: string | undefined;
|
|
34
|
+
readonly fontScheme: ThemeFontScheme | undefined;
|
|
35
|
+
}
|
|
36
|
+
/** Theme font slot (`ST_Theme`, ECMA-376-1 §17.18.96).
|
|
37
|
+
* @private
|
|
38
|
+
*/
|
|
39
|
+
export declare type ThemeFontSlot = 'majorEastAsia' | 'majorBidi' | 'majorAscii' | 'majorHAnsi' | 'minorEastAsia' | 'minorBidi' | 'minorAscii' | 'minorHAnsi';
|
|
40
|
+
/**
|
|
41
|
+
* @private
|
|
42
|
+
* Parse `ST_Theme` attribute value. */
|
|
43
|
+
export declare function parseThemeFontSlot(raw: string | undefined): ThemeFontSlot | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* In-memory Theme part (`word/theme/theme1.xml`).
|
|
46
|
+
*
|
|
47
|
+
* When no Theme package part exists on load or {@link WordDocument.create}, the library
|
|
48
|
+
* materializes a Word-proven default Office Theme (`dirty = true`) so save emits
|
|
49
|
+
* `/word/theme/theme1.xml`. Existing package bytes are preserved when `dirty` is
|
|
50
|
+
* false. Full typed theme editors remain out of scope (ADR D13).
|
|
51
|
+
* @private
|
|
52
|
+
*/
|
|
53
|
+
export declare class ThemePart implements FeaturePackagePart {
|
|
54
|
+
private readonly bytes;
|
|
55
|
+
private readonly metadata;
|
|
56
|
+
private readonly dirty;
|
|
57
|
+
/**
|
|
58
|
+
* @private
|
|
59
|
+
*/
|
|
60
|
+
constructor(bytes: Uint8Array | undefined, metadata: ThemeMetadata | undefined, dirty: boolean);
|
|
61
|
+
/**
|
|
62
|
+
* `a:theme/@name`, or `undefined` when metadata could not be parsed.
|
|
63
|
+
*
|
|
64
|
+
* @public
|
|
65
|
+
*/
|
|
66
|
+
name(): string | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* `a:themeElements/a:clrScheme/@name`, or `undefined` when absent.
|
|
69
|
+
*
|
|
70
|
+
* @public
|
|
71
|
+
*/
|
|
72
|
+
colorSchemeName(): string | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* `a:themeElements/a:fontScheme/@name`, or `undefined` when absent.
|
|
75
|
+
*
|
|
76
|
+
* @public
|
|
77
|
+
*/
|
|
78
|
+
fontSchemeName(): string | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* `a:themeElements/a:fmtScheme/@name`, or `undefined` when absent.
|
|
81
|
+
*
|
|
82
|
+
* @public
|
|
83
|
+
*/
|
|
84
|
+
formatSchemeName(): string | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* Resolve a theme font slot to a typeface name from `a:fontScheme`.
|
|
87
|
+
*
|
|
88
|
+
* Returns `undefined` when the part, font scheme, or slot typeface is absent.
|
|
89
|
+
*
|
|
90
|
+
* @public
|
|
91
|
+
*/
|
|
92
|
+
typefaceFor(slot: ThemeFontSlot): string | undefined;
|
|
93
|
+
/**
|
|
94
|
+
* @private
|
|
95
|
+
*/
|
|
96
|
+
isDirty(): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* @private
|
|
99
|
+
*/
|
|
100
|
+
serialize(): Uint8Array;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Build the Word-proven default Office Theme part used when no Theme package
|
|
104
|
+
* part exists (create path and load without theme). Evidence:
|
|
105
|
+
* `input-documents/Sample_With_All_word_Element.docx` → `word/theme/theme1.xml`
|
|
106
|
+
* (ECMA-376-1 §14.2.7). Marked dirty so save emits the part.
|
|
107
|
+
* @private
|
|
108
|
+
*/
|
|
109
|
+
export declare function createDefaultThemePart(): ThemePart;
|
|
110
|
+
/**
|
|
111
|
+
* @private
|
|
112
|
+
* Test hook */
|
|
113
|
+
export declare function resetThemeFeatureForTests(): void;
|
|
114
|
+
/**
|
|
115
|
+
* @private
|
|
116
|
+
* Register the theme package-part handler. Idempotent. */
|
|
117
|
+
export declare function registerThemeFeature(): void;
|
|
118
|
+
/**
|
|
119
|
+
* Theme catalog for a document. Requires {@link registerStylesFeature} or
|
|
120
|
+
* {@link registerThemeFeature}.
|
|
121
|
+
*
|
|
122
|
+
* @throws DocxError `UNKNOWN_FEATURE` when the theme handler was not registered before load.
|
|
123
|
+
* @private
|
|
124
|
+
*/
|
|
125
|
+
export declare function themeFor(document: WordDocument): ThemePart;
|
|
126
|
+
export {};
|
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
var __values = (this && this.__values) || function (o) {
|
|
2
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
|
|
3
|
+
if (m) return m.call(o);
|
|
4
|
+
return {
|
|
5
|
+
next: function () {
|
|
6
|
+
if (o && i >= o.length) o = void 0;
|
|
7
|
+
return { value: o && o[i++], done: !o };
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
import { DocxError } from '../../core/errors/docx-error';
|
|
12
|
+
import { partName } from '../../core/opc/part-name';
|
|
13
|
+
import { featureId, registerFeature, registerFeaturePartHandler, } from '../../core/registry/index';
|
|
14
|
+
import { parseXml } from '../../core/xml/index';
|
|
15
|
+
import { DEFAULT_OFFICE_THEME_XML } from './default-theme';
|
|
16
|
+
var THEME = featureId('theme');
|
|
17
|
+
var utf8 = new TextEncoder();
|
|
18
|
+
/**
|
|
19
|
+
* @private DrawingML Main namespace (ECMA-376-1 §14.2.7). */
|
|
20
|
+
export var DML_MAIN_NAMESPACE = 'http://schemas.openxmlformats.org/drawingml/2006/main';
|
|
21
|
+
/**
|
|
22
|
+
* @private Transitional theme relationship (ECMA-376-4 §12.2.7). */
|
|
23
|
+
export var THEME_RELATIONSHIP_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme';
|
|
24
|
+
/**
|
|
25
|
+
* @private Strict theme relationship (ECMA-376-1 §14.2.7). */
|
|
26
|
+
export var STRICT_THEME_RELATIONSHIP_TYPE = 'http://purl.oclc.org/ooxml/officeDocument/relationships/theme';
|
|
27
|
+
/**
|
|
28
|
+
* @private ECMA-376-1 §14.2.7 Theme part content type. */
|
|
29
|
+
export var THEME_CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.theme+xml';
|
|
30
|
+
/** @private */
|
|
31
|
+
export var THEME_PART_NAME = partName('/word/theme/theme1.xml');
|
|
32
|
+
/** @private */
|
|
33
|
+
var utf8Decoder = new TextDecoder('utf-8');
|
|
34
|
+
/**
|
|
35
|
+
* @private
|
|
36
|
+
*/
|
|
37
|
+
var THEME_FONT_SLOTS = [
|
|
38
|
+
'majorEastAsia',
|
|
39
|
+
'majorBidi',
|
|
40
|
+
'majorAscii',
|
|
41
|
+
'majorHAnsi',
|
|
42
|
+
'minorEastAsia',
|
|
43
|
+
'minorBidi',
|
|
44
|
+
'minorAscii',
|
|
45
|
+
'minorHAnsi',
|
|
46
|
+
];
|
|
47
|
+
/**
|
|
48
|
+
* @private
|
|
49
|
+
* Parse `ST_Theme` attribute value. */
|
|
50
|
+
export function parseThemeFontSlot(raw) {
|
|
51
|
+
if (raw === undefined) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
// TS 3.3 / ES5 parity: avoid Array.prototype.includes.
|
|
55
|
+
return THEME_FONT_SLOTS.indexOf(raw) !== -1 ? raw : undefined;
|
|
56
|
+
}
|
|
57
|
+
function parseFontCollection(element) {
|
|
58
|
+
var e_1, _a;
|
|
59
|
+
var latin;
|
|
60
|
+
var ea;
|
|
61
|
+
var cs;
|
|
62
|
+
try {
|
|
63
|
+
for (var _b = __values(childElements(element)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
64
|
+
var child = _c.value;
|
|
65
|
+
if (isDml(child, 'latin')) {
|
|
66
|
+
latin = dmlAttribute(child, 'typeface');
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
if (isDml(child, 'ea')) {
|
|
70
|
+
ea = dmlAttribute(child, 'typeface');
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if (isDml(child, 'cs')) {
|
|
74
|
+
cs = dmlAttribute(child, 'typeface');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
79
|
+
finally {
|
|
80
|
+
try {
|
|
81
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
82
|
+
}
|
|
83
|
+
finally { if (e_1) throw e_1.error; }
|
|
84
|
+
}
|
|
85
|
+
return { latin: latin, ea: ea, cs: cs };
|
|
86
|
+
}
|
|
87
|
+
function parseThemeFontScheme(root) {
|
|
88
|
+
var e_2, _a, e_3, _b, e_4, _c;
|
|
89
|
+
try {
|
|
90
|
+
for (var _d = __values(childElements(root)), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
91
|
+
var child = _e.value;
|
|
92
|
+
if (!isDml(child, 'themeElements')) {
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
var major = void 0;
|
|
96
|
+
var minor = void 0;
|
|
97
|
+
try {
|
|
98
|
+
for (var _f = __values(childElements(child)), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
99
|
+
var scheme = _g.value;
|
|
100
|
+
if (isDml(scheme, 'fontScheme')) {
|
|
101
|
+
try {
|
|
102
|
+
for (var _h = __values(childElements(scheme)), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
103
|
+
var fontCollection = _j.value;
|
|
104
|
+
if (isDml(fontCollection, 'majorFont')) {
|
|
105
|
+
major = parseFontCollection(fontCollection);
|
|
106
|
+
}
|
|
107
|
+
else if (isDml(fontCollection, 'minorFont')) {
|
|
108
|
+
minor = parseFontCollection(fontCollection);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
113
|
+
finally {
|
|
114
|
+
try {
|
|
115
|
+
if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
|
|
116
|
+
}
|
|
117
|
+
finally { if (e_4) throw e_4.error; }
|
|
118
|
+
}
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
124
|
+
finally {
|
|
125
|
+
try {
|
|
126
|
+
if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
|
|
127
|
+
}
|
|
128
|
+
finally { if (e_3) throw e_3.error; }
|
|
129
|
+
}
|
|
130
|
+
if (major === undefined && minor === undefined) {
|
|
131
|
+
return undefined;
|
|
132
|
+
}
|
|
133
|
+
return {
|
|
134
|
+
major: major != null ? major : { latin: undefined, ea: undefined, cs: undefined },
|
|
135
|
+
minor: minor != null ? minor : { latin: undefined, ea: undefined, cs: undefined },
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
140
|
+
finally {
|
|
141
|
+
try {
|
|
142
|
+
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
143
|
+
}
|
|
144
|
+
finally { if (e_2) throw e_2.error; }
|
|
145
|
+
}
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
148
|
+
function typefaceForSlot(scheme, slot) {
|
|
149
|
+
switch (slot) {
|
|
150
|
+
case 'majorAscii':
|
|
151
|
+
case 'majorHAnsi':
|
|
152
|
+
return scheme.major.latin;
|
|
153
|
+
case 'minorAscii':
|
|
154
|
+
case 'minorHAnsi':
|
|
155
|
+
return scheme.minor.latin;
|
|
156
|
+
case 'majorEastAsia':
|
|
157
|
+
return scheme.major.ea;
|
|
158
|
+
case 'minorEastAsia':
|
|
159
|
+
return scheme.minor.ea;
|
|
160
|
+
case 'majorBidi':
|
|
161
|
+
return scheme.major.cs;
|
|
162
|
+
case 'minorBidi':
|
|
163
|
+
return scheme.minor.cs;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
function isDml(element, localName) {
|
|
167
|
+
return element.localName === localName && element.namespaceUri === DML_MAIN_NAMESPACE;
|
|
168
|
+
}
|
|
169
|
+
function dmlAttribute(element, localName) {
|
|
170
|
+
var found = element.attributes.find(function (attribute) { return attribute.localName === localName &&
|
|
171
|
+
(attribute.namespaceUri === DML_MAIN_NAMESPACE || attribute.namespaceUri === ''); });
|
|
172
|
+
return found == null ? undefined : found.value;
|
|
173
|
+
}
|
|
174
|
+
function childElements(element) {
|
|
175
|
+
return element.children.filter(function (child) { return child.kind === 'element'; });
|
|
176
|
+
}
|
|
177
|
+
function parseThemeMetadata(root) {
|
|
178
|
+
var e_5, _a, e_6, _b;
|
|
179
|
+
if (!isDml(root, 'theme')) {
|
|
180
|
+
return undefined;
|
|
181
|
+
}
|
|
182
|
+
var colorSchemeName;
|
|
183
|
+
var fontSchemeName;
|
|
184
|
+
var formatSchemeName;
|
|
185
|
+
try {
|
|
186
|
+
for (var _c = __values(childElements(root)), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
187
|
+
var child = _d.value;
|
|
188
|
+
if (!isDml(child, 'themeElements')) {
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
try {
|
|
192
|
+
for (var _e = __values(childElements(child)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
193
|
+
var scheme = _f.value;
|
|
194
|
+
if (isDml(scheme, 'clrScheme')) {
|
|
195
|
+
colorSchemeName = dmlAttribute(scheme, 'name');
|
|
196
|
+
}
|
|
197
|
+
else if (isDml(scheme, 'fontScheme')) {
|
|
198
|
+
fontSchemeName = dmlAttribute(scheme, 'name');
|
|
199
|
+
}
|
|
200
|
+
else if (isDml(scheme, 'fmtScheme')) {
|
|
201
|
+
formatSchemeName = dmlAttribute(scheme, 'name');
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
206
|
+
finally {
|
|
207
|
+
try {
|
|
208
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
209
|
+
}
|
|
210
|
+
finally { if (e_6) throw e_6.error; }
|
|
211
|
+
}
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
216
|
+
finally {
|
|
217
|
+
try {
|
|
218
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
219
|
+
}
|
|
220
|
+
finally { if (e_5) throw e_5.error; }
|
|
221
|
+
}
|
|
222
|
+
return {
|
|
223
|
+
name: dmlAttribute(root, 'name'),
|
|
224
|
+
colorSchemeName: colorSchemeName,
|
|
225
|
+
fontSchemeName: fontSchemeName,
|
|
226
|
+
formatSchemeName: formatSchemeName,
|
|
227
|
+
fontScheme: parseThemeFontScheme(root),
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
function parseThemeMetadataFromBytes(bytes) {
|
|
231
|
+
var root = parseXml(utf8Decoder.decode(bytes));
|
|
232
|
+
return parseThemeMetadata(root);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* In-memory Theme part (`word/theme/theme1.xml`).
|
|
236
|
+
*
|
|
237
|
+
* When no Theme package part exists on load or {@link WordDocument.create}, the library
|
|
238
|
+
* materializes a Word-proven default Office Theme (`dirty = true`) so save emits
|
|
239
|
+
* `/word/theme/theme1.xml`. Existing package bytes are preserved when `dirty` is
|
|
240
|
+
* false. Full typed theme editors remain out of scope (ADR D13).
|
|
241
|
+
* @private
|
|
242
|
+
*/
|
|
243
|
+
var ThemePart = /** @class */ (function () {
|
|
244
|
+
/**
|
|
245
|
+
* @private
|
|
246
|
+
*/
|
|
247
|
+
function ThemePart(bytes, metadata, dirty) {
|
|
248
|
+
this.bytes = bytes;
|
|
249
|
+
this.metadata = metadata;
|
|
250
|
+
this.dirty = dirty;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* `a:theme/@name`, or `undefined` when metadata could not be parsed.
|
|
254
|
+
*
|
|
255
|
+
* @public
|
|
256
|
+
*/
|
|
257
|
+
ThemePart.prototype.name = function () {
|
|
258
|
+
return this.metadata == null ? undefined : this.metadata.name;
|
|
259
|
+
};
|
|
260
|
+
/**
|
|
261
|
+
* `a:themeElements/a:clrScheme/@name`, or `undefined` when absent.
|
|
262
|
+
*
|
|
263
|
+
* @public
|
|
264
|
+
*/
|
|
265
|
+
ThemePart.prototype.colorSchemeName = function () {
|
|
266
|
+
return this.metadata == null ? undefined : this.metadata.colorSchemeName;
|
|
267
|
+
};
|
|
268
|
+
/**
|
|
269
|
+
* `a:themeElements/a:fontScheme/@name`, or `undefined` when absent.
|
|
270
|
+
*
|
|
271
|
+
* @public
|
|
272
|
+
*/
|
|
273
|
+
ThemePart.prototype.fontSchemeName = function () {
|
|
274
|
+
return this.metadata == null ? undefined : this.metadata.fontSchemeName;
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* `a:themeElements/a:fmtScheme/@name`, or `undefined` when absent.
|
|
278
|
+
*
|
|
279
|
+
* @public
|
|
280
|
+
*/
|
|
281
|
+
ThemePart.prototype.formatSchemeName = function () {
|
|
282
|
+
return this.metadata == null ? undefined : this.metadata.formatSchemeName;
|
|
283
|
+
};
|
|
284
|
+
/**
|
|
285
|
+
* Resolve a theme font slot to a typeface name from `a:fontScheme`.
|
|
286
|
+
*
|
|
287
|
+
* Returns `undefined` when the part, font scheme, or slot typeface is absent.
|
|
288
|
+
*
|
|
289
|
+
* @public
|
|
290
|
+
*/
|
|
291
|
+
ThemePart.prototype.typefaceFor = function (slot) {
|
|
292
|
+
var scheme = this.metadata == null ? undefined : this.metadata.fontScheme;
|
|
293
|
+
if (scheme === undefined) {
|
|
294
|
+
return undefined;
|
|
295
|
+
}
|
|
296
|
+
return typefaceForSlot(scheme, slot);
|
|
297
|
+
};
|
|
298
|
+
/**
|
|
299
|
+
* @private
|
|
300
|
+
*/
|
|
301
|
+
ThemePart.prototype.isDirty = function () {
|
|
302
|
+
return this.dirty;
|
|
303
|
+
};
|
|
304
|
+
/**
|
|
305
|
+
* @private
|
|
306
|
+
*/
|
|
307
|
+
ThemePart.prototype.serialize = function () {
|
|
308
|
+
if (this.bytes !== undefined) {
|
|
309
|
+
return this.bytes;
|
|
310
|
+
}
|
|
311
|
+
return new Uint8Array(0);
|
|
312
|
+
};
|
|
313
|
+
return ThemePart;
|
|
314
|
+
}());
|
|
315
|
+
export { ThemePart };
|
|
316
|
+
/**
|
|
317
|
+
* Build the Word-proven default Office Theme part used when no Theme package
|
|
318
|
+
* part exists (create path and load without theme). Evidence:
|
|
319
|
+
* `input-documents/Sample_With_All_word_Element.docx` → `word/theme/theme1.xml`
|
|
320
|
+
* (ECMA-376-1 §14.2.7). Marked dirty so save emits the part.
|
|
321
|
+
* @private
|
|
322
|
+
*/
|
|
323
|
+
export function createDefaultThemePart() {
|
|
324
|
+
var bytes = utf8.encode(DEFAULT_OFFICE_THEME_XML);
|
|
325
|
+
var metadata = parseThemeMetadataFromBytes(bytes);
|
|
326
|
+
return new ThemePart(bytes, metadata, true);
|
|
327
|
+
}
|
|
328
|
+
function loadThemePart(part) {
|
|
329
|
+
if (part === undefined) {
|
|
330
|
+
return createDefaultThemePart();
|
|
331
|
+
}
|
|
332
|
+
var metadata = parseThemeMetadataFromBytes(part.data);
|
|
333
|
+
return new ThemePart(part.data, metadata, false);
|
|
334
|
+
}
|
|
335
|
+
var themeRegistered = false;
|
|
336
|
+
/**
|
|
337
|
+
* @private
|
|
338
|
+
* Test hook */
|
|
339
|
+
export function resetThemeFeatureForTests() {
|
|
340
|
+
themeRegistered = false;
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* @private
|
|
344
|
+
* Register the theme package-part handler. Idempotent. */
|
|
345
|
+
export function registerThemeFeature() {
|
|
346
|
+
if (themeRegistered) {
|
|
347
|
+
return;
|
|
348
|
+
}
|
|
349
|
+
themeRegistered = true;
|
|
350
|
+
registerFeature({ id: THEME });
|
|
351
|
+
registerFeaturePartHandler({
|
|
352
|
+
featureId: THEME,
|
|
353
|
+
relationshipTypes: [THEME_RELATIONSHIP_TYPE, STRICT_THEME_RELATIONSHIP_TYPE],
|
|
354
|
+
defaultRelativeTarget: 'theme/theme1.xml',
|
|
355
|
+
partName: THEME_PART_NAME,
|
|
356
|
+
contentType: THEME_CONTENT_TYPE,
|
|
357
|
+
loadPart: function (part, ctx) {
|
|
358
|
+
void ctx;
|
|
359
|
+
return loadThemePart(part);
|
|
360
|
+
},
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Theme catalog for a document. Requires {@link registerStylesFeature} or
|
|
365
|
+
* {@link registerThemeFeature}.
|
|
366
|
+
*
|
|
367
|
+
* @throws DocxError `UNKNOWN_FEATURE` when the theme handler was not registered before load.
|
|
368
|
+
* @private
|
|
369
|
+
*/
|
|
370
|
+
export function themeFor(document) {
|
|
371
|
+
registerThemeFeature();
|
|
372
|
+
var part = document.featurePart(THEME);
|
|
373
|
+
if (part === undefined || !(part instanceof ThemePart)) {
|
|
374
|
+
throw new DocxError('feature/not-registered', 'Theme part was not loaded; call registerStylesFeature() before WordDocument.open');
|
|
375
|
+
}
|
|
376
|
+
return part;
|
|
377
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Map between public {@link BorderStyle} and OOXML `CT_Border` `@w:val`.
|
|
3
|
+
*
|
|
4
|
+
* Unknown wire values are preserved internally and do not surface as a public enum.
|
|
5
|
+
*/
|
|
6
|
+
import { BorderStyle } from '../document/page-setup';
|
|
7
|
+
/**
|
|
8
|
+
* Parse `@w:val` to {@link BorderStyle}, or `undefined` when unknown/absent.
|
|
9
|
+
*
|
|
10
|
+
* @private
|
|
11
|
+
*/
|
|
12
|
+
export declare function borderStyleFromWire(val: string | undefined): BorderStyle | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Serialize {@link BorderStyle} to `@w:val`.
|
|
15
|
+
*
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
export declare function borderStyleToWire(style: BorderStyle): string;
|
|
19
|
+
/**
|
|
20
|
+
* True when `val` is a known public border style token.
|
|
21
|
+
*
|
|
22
|
+
* @private
|
|
23
|
+
*/
|
|
24
|
+
export declare function isKnownBorderWire(val: string | undefined): boolean;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Map between public {@link BorderStyle} and OOXML `CT_Border` `@w:val`.
|
|
3
|
+
*
|
|
4
|
+
* Unknown wire values are preserved internally and do not surface as a public enum.
|
|
5
|
+
*/
|
|
6
|
+
import { BorderStyle } from '../document/page-setup';
|
|
7
|
+
var KNOWN_WIRE = {
|
|
8
|
+
nil: BorderStyle.Nil,
|
|
9
|
+
none: BorderStyle.None,
|
|
10
|
+
single: BorderStyle.Single,
|
|
11
|
+
thick: BorderStyle.Thick,
|
|
12
|
+
double: BorderStyle.Double,
|
|
13
|
+
dotted: BorderStyle.Dotted,
|
|
14
|
+
dashed: BorderStyle.Dashed,
|
|
15
|
+
dotDash: BorderStyle.DotDash,
|
|
16
|
+
dotDotDash: BorderStyle.DotDotDash,
|
|
17
|
+
triple: BorderStyle.Triple,
|
|
18
|
+
thinThickSmallGap: BorderStyle.ThinThickSmallGap,
|
|
19
|
+
thickThinSmallGap: BorderStyle.ThickThinSmallGap,
|
|
20
|
+
thinThickThinSmallGap: BorderStyle.ThinThickThinSmallGap,
|
|
21
|
+
thinThickMediumGap: BorderStyle.ThinThickMediumGap,
|
|
22
|
+
thickThinMediumGap: BorderStyle.ThickThinMediumGap,
|
|
23
|
+
thinThickThinMediumGap: BorderStyle.ThinThickThinMediumGap,
|
|
24
|
+
thinThickLargeGap: BorderStyle.ThinThickLargeGap,
|
|
25
|
+
thickThinLargeGap: BorderStyle.ThickThinLargeGap,
|
|
26
|
+
thinThickThinLargeGap: BorderStyle.ThinThickThinLargeGap,
|
|
27
|
+
wave: BorderStyle.Wave,
|
|
28
|
+
doubleWave: BorderStyle.DoubleWave,
|
|
29
|
+
dashSmallGap: BorderStyle.DashSmallGap,
|
|
30
|
+
dashDotStroked: BorderStyle.DashDotStroked,
|
|
31
|
+
threeDEmboss: BorderStyle.ThreeDEmboss,
|
|
32
|
+
threeDEngrave: BorderStyle.ThreeDEngrave,
|
|
33
|
+
outset: BorderStyle.Outset,
|
|
34
|
+
inset: BorderStyle.Inset,
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Parse `@w:val` to {@link BorderStyle}, or `undefined` when unknown/absent.
|
|
38
|
+
*
|
|
39
|
+
* @private
|
|
40
|
+
*/
|
|
41
|
+
export function borderStyleFromWire(val) {
|
|
42
|
+
if (val === undefined) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
var mapped = KNOWN_WIRE[val];
|
|
46
|
+
return mapped !== undefined ? mapped : undefined;
|
|
47
|
+
}
|
|
48
|
+
var STYLE_TO_WIRE = (function () {
|
|
49
|
+
var out = {};
|
|
50
|
+
var keys = Object.keys(KNOWN_WIRE);
|
|
51
|
+
for (var i = 0; i < keys.length; i += 1) {
|
|
52
|
+
var wire = keys[i];
|
|
53
|
+
var style = KNOWN_WIRE[wire];
|
|
54
|
+
out[style] = wire;
|
|
55
|
+
}
|
|
56
|
+
return out;
|
|
57
|
+
})();
|
|
58
|
+
/**
|
|
59
|
+
* Serialize {@link BorderStyle} to `@w:val`.
|
|
60
|
+
*
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
export function borderStyleToWire(style) {
|
|
64
|
+
var wire = STYLE_TO_WIRE[style];
|
|
65
|
+
if (wire !== undefined) {
|
|
66
|
+
return wire;
|
|
67
|
+
}
|
|
68
|
+
// Fall back only for values that already match a known wire token string.
|
|
69
|
+
if (KNOWN_WIRE[style] !== undefined) {
|
|
70
|
+
return style;
|
|
71
|
+
}
|
|
72
|
+
throw new RangeError('Unsupported BorderStyle value');
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* True when `val` is a known public border style token.
|
|
76
|
+
*
|
|
77
|
+
* @private
|
|
78
|
+
*/
|
|
79
|
+
export function isKnownBorderWire(val) {
|
|
80
|
+
return val !== undefined && KNOWN_WIRE[val] !== undefined;
|
|
81
|
+
}
|