@syncfusion/ej2-docx 0.0.0-stage → 35.1.40
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/.gitleaksignore +35 -0
- package/README.md +68 -2
- package/core.js +4 -0
- package/dist/ej2-docx.umd.min.js +11 -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 +11 -0
- package/dist/global/ej2-docx.min.js.map +1 -0
- package/dist/global/index.d.ts +14 -0
- package/features.js +4 -0
- package/index.js +4 -0
- package/license +10 -0
- package/package.json +30 -3
- 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,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @public PNG media type (ECMA-376-1 §15.2.14). */
|
|
3
|
+
export declare const PNG_CONTENT_TYPE = "image/png";
|
|
4
|
+
/**
|
|
5
|
+
* @public JPEG media type (ECMA-376-1 §15.2.14). */
|
|
6
|
+
export declare const JPEG_CONTENT_TYPE = "image/jpeg";
|
|
7
|
+
/** Supported image content types for create/replace.
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export declare type ImageType = typeof PNG_CONTENT_TYPE | typeof JPEG_CONTENT_TYPE;
|
|
11
|
+
/**
|
|
12
|
+
* @private
|
|
13
|
+
* Pixel dimensions when sniffable from PNG or JPEG bytes. */
|
|
14
|
+
export declare function sniffImagePixelDimensions(bytes: Uint8Array): {
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
} | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* @private
|
|
20
|
+
* Sniff PNG/JPEG content type from magic bytes. */
|
|
21
|
+
export declare function sniffImageContentType(bytes: Uint8Array): ImageType | undefined;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @public PNG media type (ECMA-376-1 §15.2.14). */
|
|
3
|
+
export var PNG_CONTENT_TYPE = 'image/png';
|
|
4
|
+
/**
|
|
5
|
+
* @public JPEG media type (ECMA-376-1 §15.2.14). */
|
|
6
|
+
export var JPEG_CONTENT_TYPE = 'image/jpeg';
|
|
7
|
+
function readUint32Be(bytes, offset) {
|
|
8
|
+
var __ts33_0, __ts33_1, __ts33_2;
|
|
9
|
+
return (((bytes[offset] != null ? bytes[offset] : 0) << 24) |
|
|
10
|
+
((((__ts33_0 = bytes[offset + 1]), __ts33_0 != null ? __ts33_0 : 0)) << 16) |
|
|
11
|
+
((((__ts33_1 = bytes[offset + 2]), __ts33_1 != null ? __ts33_1 : 0)) << 8) |
|
|
12
|
+
(((__ts33_2 = bytes[offset + 3]), __ts33_2 != null ? __ts33_2 : 0))) >>> 0;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @private
|
|
16
|
+
* Pixel dimensions when sniffable from PNG or JPEG bytes. */
|
|
17
|
+
export function sniffImagePixelDimensions(bytes) {
|
|
18
|
+
var __ts33_3, __ts33_4, __ts33_5, __ts33_6, __ts33_7, __ts33_8;
|
|
19
|
+
if (bytes.length >= 24 &&
|
|
20
|
+
bytes[0] === 0x89 &&
|
|
21
|
+
bytes[1] === 0x50 &&
|
|
22
|
+
bytes[2] === 0x4e &&
|
|
23
|
+
bytes[3] === 0x47) {
|
|
24
|
+
return { width: readUint32Be(bytes, 16), height: readUint32Be(bytes, 20) };
|
|
25
|
+
}
|
|
26
|
+
if (bytes.length >= 4 && bytes[0] === 0xff && bytes[1] === 0xd8) {
|
|
27
|
+
var offset = 2;
|
|
28
|
+
while (offset + 9 < bytes.length) {
|
|
29
|
+
if (bytes[offset] !== 0xff) {
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
var marker = bytes[offset + 1];
|
|
33
|
+
if (marker === undefined) {
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
if (marker === 0xd9 || marker === 0xda) {
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
var segmentLength = ((((__ts33_3 = bytes[offset + 2]), __ts33_3 != null ? __ts33_3 : 0)) << 8) | (((__ts33_4 = bytes[offset + 3]), __ts33_4 != null ? __ts33_4 : 0));
|
|
40
|
+
if (segmentLength < 2) {
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
if (marker >= 0xc0 && marker <= 0xcf && marker !== 0xc4 && marker !== 0xc8 && marker !== 0xcc) {
|
|
44
|
+
var height = ((((__ts33_5 = bytes[offset + 5]), __ts33_5 != null ? __ts33_5 : 0)) << 8) | (((__ts33_6 = bytes[offset + 6]), __ts33_6 != null ? __ts33_6 : 0));
|
|
45
|
+
var width = ((((__ts33_7 = bytes[offset + 7]), __ts33_7 != null ? __ts33_7 : 0)) << 8) | (((__ts33_8 = bytes[offset + 8]), __ts33_8 != null ? __ts33_8 : 0));
|
|
46
|
+
if (width > 0 && height > 0) {
|
|
47
|
+
return { width: width, height: height };
|
|
48
|
+
}
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
offset += 2 + segmentLength;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @private
|
|
58
|
+
* Sniff PNG/JPEG content type from magic bytes. */
|
|
59
|
+
export function sniffImageContentType(bytes) {
|
|
60
|
+
if (bytes.length >= 8 &&
|
|
61
|
+
bytes[0] === 0x89 &&
|
|
62
|
+
bytes[1] === 0x50 &&
|
|
63
|
+
bytes[2] === 0x4e &&
|
|
64
|
+
bytes[3] === 0x47) {
|
|
65
|
+
return PNG_CONTENT_TYPE;
|
|
66
|
+
}
|
|
67
|
+
if (bytes.length >= 3 && bytes[0] === 0xff && bytes[1] === 0xd8 && bytes[2] === 0xff) {
|
|
68
|
+
return JPEG_CONTENT_TYPE;
|
|
69
|
+
}
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
@@ -0,0 +1,506 @@
|
|
|
1
|
+
export * from './caption-authoring-api';
|
|
2
|
+
export * from './caption-enums';
|
|
3
|
+
export * from './caption-host';
|
|
4
|
+
export * from './captions';
|
|
5
|
+
export * from './host-codec';
|
|
6
|
+
export * from './image-sniff';
|
|
7
|
+
export * from './layout-types';
|
|
8
|
+
import { FeatureRunLeaf } from '../document/feature-run-leaf';
|
|
9
|
+
import { WordDocument } from '../document/document';
|
|
10
|
+
import { FeatureMultiPackagePart } from '../document/feature-multi-package-part';
|
|
11
|
+
import { EntityType } from '../document/entity-type';
|
|
12
|
+
import { Paragraph } from '../document/paragraph';
|
|
13
|
+
import { FeatureRunParagraphItem, ParagraphItem } from '../document/text-range';
|
|
14
|
+
import { OpcRelationship, RelationshipId } from '../../core/opc/relationships';
|
|
15
|
+
import { OpcPackage } from '../../core/opc/package';
|
|
16
|
+
import { PartName } from '../../core/opc/part-name';
|
|
17
|
+
import { CaptionNumberingFormat, CaptionPosition } from './caption-enums';
|
|
18
|
+
import { PictureHostState } from './host-codec';
|
|
19
|
+
import { HorizontalAlignment as HorizontalAlignmentType, HorizontalOrigin as HorizontalOriginType, PicturePlacement as PicturePlacementType, TextWrappingStyle as TextWrappingStyleType, VerticalAlignment as VerticalAlignmentType, VerticalOrigin as VerticalOriginType } from './layout-types';
|
|
20
|
+
import { OpenXmlElement } from '../../core/xml/index';
|
|
21
|
+
/**
|
|
22
|
+
* @private Transitional image relationship (ECMA-376-4 §9.2.10). */
|
|
23
|
+
export declare const IMAGE_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image";
|
|
24
|
+
/**
|
|
25
|
+
* @private Strict image relationship (ECMA-376-1 §11.3.10). */
|
|
26
|
+
export declare const STRICT_IMAGE_RELATIONSHIP_TYPE = "http://purl.oclc.org/ooxml/officeDocument/relationships/image";
|
|
27
|
+
/**
|
|
28
|
+
* @private PNG media type (ECMA-376-1 §15.2.14). */
|
|
29
|
+
declare const PNG_CONTENT_TYPE = "image/png";
|
|
30
|
+
/**
|
|
31
|
+
* @private JPEG media type (ECMA-376-1 §15.2.14). */
|
|
32
|
+
declare const JPEG_CONTENT_TYPE = "image/jpeg";
|
|
33
|
+
/** Supported image content types for create/replace.
|
|
34
|
+
* @public
|
|
35
|
+
*/
|
|
36
|
+
declare type ImageType = typeof PNG_CONTENT_TYPE | typeof JPEG_CONTENT_TYPE;
|
|
37
|
+
/** Options for {@link Paragraph.appendImage}. */
|
|
38
|
+
export interface ImageOptions {
|
|
39
|
+
/**
|
|
40
|
+
* Display width in points. When omitted, derived from intrinsic pixels
|
|
41
|
+
* (96 DPI → points), aspect ratio from height, or {@link DEFAULT_IMAGE_WIDTH_PT}.
|
|
42
|
+
*/
|
|
43
|
+
readonly width?: number;
|
|
44
|
+
/**
|
|
45
|
+
* Display height in points. When omitted, derived from intrinsic pixels,
|
|
46
|
+
* aspect ratio from width, or {@link DEFAULT_IMAGE_HEIGHT_PT}.
|
|
47
|
+
*/
|
|
48
|
+
readonly height?: number;
|
|
49
|
+
/** Media type of `bytes`. Sniffed from PNG/JPEG magic bytes when omitted. */
|
|
50
|
+
readonly imageType?: ImageType;
|
|
51
|
+
/**
|
|
52
|
+
* Non-visual picture name (`wp:docPr/@name` and `pic:cNvPr/@name`).
|
|
53
|
+
* @defaultValue `'Picture'`
|
|
54
|
+
*/
|
|
55
|
+
readonly name?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Accessibility / caption title (`wp:docPr/@title`).
|
|
58
|
+
* Distinct from {@link description} (`@descr`).
|
|
59
|
+
*/
|
|
60
|
+
readonly title?: string;
|
|
61
|
+
/** Alternative text description (`wp:docPr/@descr`). */
|
|
62
|
+
readonly description?: string;
|
|
63
|
+
/**
|
|
64
|
+
* Whether aspect ratio is locked (`a:graphicFrameLocks/@noChangeAspect`).
|
|
65
|
+
* @defaultValue `true`
|
|
66
|
+
*/
|
|
67
|
+
readonly lockAspectRatio?: boolean;
|
|
68
|
+
/** Clockwise rotation in degrees (`a:xfrm/@rot`, ST_Angle × 60000). */
|
|
69
|
+
readonly rotation?: number;
|
|
70
|
+
/** Horizontal flip (`a:xfrm/@flipH`). */
|
|
71
|
+
readonly flipHorizontal?: boolean;
|
|
72
|
+
/** Vertical flip (`a:xfrm/@flipV`). */
|
|
73
|
+
readonly flipVertical?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Host placement. Prefer {@link textWrappingStyle}; non-inline wrapping promotes to
|
|
76
|
+
* `wp:anchor` automatically.
|
|
77
|
+
*/
|
|
78
|
+
readonly placement?: PicturePlacementType;
|
|
79
|
+
/**
|
|
80
|
+
* Text wrapping. `'inline'` uses `wp:inline`; any other value promotes to
|
|
81
|
+
* `wp:anchor` with the matching `wp:wrap*` child.
|
|
82
|
+
* @defaultValue `'inline'`
|
|
83
|
+
*/
|
|
84
|
+
readonly textWrappingStyle?: TextWrappingStyleType;
|
|
85
|
+
/**
|
|
86
|
+
|
|
87
|
+
*/
|
|
88
|
+
readonly wrapping?: TextWrappingStyleType;
|
|
89
|
+
/** `wp:positionH/@relativeFrom` (`ST_RelFromH`). Meaningful on anchored hosts. */
|
|
90
|
+
readonly horizontalOrigin?: HorizontalOriginType;
|
|
91
|
+
/** `wp:positionV/@relativeFrom` (`ST_RelFromV`). Meaningful on anchored hosts. */
|
|
92
|
+
readonly verticalOrigin?: VerticalOriginType;
|
|
93
|
+
/**
|
|
94
|
+
* Absolute offset on the horizontal axis (`wp:positionH/wp:posOffset`).
|
|
95
|
+
* Mutually exclusive with {@link horizontalAlignment}.
|
|
96
|
+
*/
|
|
97
|
+
readonly horizontalPosition?: number;
|
|
98
|
+
/**
|
|
99
|
+
* Absolute offset on the vertical axis (`wp:positionV/wp:posOffset`).
|
|
100
|
+
* Mutually exclusive with {@link verticalAlignment}.
|
|
101
|
+
*/
|
|
102
|
+
readonly verticalPosition?: number;
|
|
103
|
+
/**
|
|
104
|
+
* Alignment on the horizontal axis (`wp:positionH/wp:align`, `ST_AlignH`).
|
|
105
|
+
* Mutually exclusive with {@link horizontalPosition}.
|
|
106
|
+
*/
|
|
107
|
+
readonly horizontalAlignment?: HorizontalAlignmentType;
|
|
108
|
+
/**
|
|
109
|
+
* Alignment on the vertical axis (`wp:positionV/wp:align`, `ST_AlignV`).
|
|
110
|
+
* Mutually exclusive with {@link verticalPosition}.
|
|
111
|
+
*/
|
|
112
|
+
readonly verticalAlignment?: VerticalAlignmentType;
|
|
113
|
+
}
|
|
114
|
+
/** */
|
|
115
|
+
export declare type InsertImageOptions = ImageOptions;
|
|
116
|
+
interface ImagePartEntry {
|
|
117
|
+
readonly partName: PartName;
|
|
118
|
+
readonly relationshipId: RelationshipId;
|
|
119
|
+
readonly relationshipType: string;
|
|
120
|
+
/** Package content type (PNG/JPEG for authoring; other image/* on open). */
|
|
121
|
+
contentType: string;
|
|
122
|
+
data: Uint8Array;
|
|
123
|
+
dirty: boolean;
|
|
124
|
+
pendingRelationship: OpcRelationship | undefined;
|
|
125
|
+
}
|
|
126
|
+
interface ImageInit {
|
|
127
|
+
readonly relationshipId: string;
|
|
128
|
+
/** Display width in points (`wp:extent/@cx` EMU at host boundary). */
|
|
129
|
+
readonly width: number;
|
|
130
|
+
/** Display height in points (`wp:extent/@cy` EMU at host boundary). */
|
|
131
|
+
readonly height: number;
|
|
132
|
+
readonly name?: string;
|
|
133
|
+
readonly title?: string;
|
|
134
|
+
readonly description?: string;
|
|
135
|
+
readonly lockAspectRatio?: boolean;
|
|
136
|
+
readonly rotation?: number;
|
|
137
|
+
readonly flipHorizontal?: boolean;
|
|
138
|
+
readonly flipVertical?: boolean;
|
|
139
|
+
readonly placement?: PicturePlacementType;
|
|
140
|
+
readonly wrapping?: TextWrappingStyleType;
|
|
141
|
+
readonly horizontalOrigin?: HorizontalOriginType;
|
|
142
|
+
readonly verticalOrigin?: VerticalOriginType;
|
|
143
|
+
readonly horizontalPosition?: number;
|
|
144
|
+
readonly verticalPosition?: number;
|
|
145
|
+
readonly horizontalAlignment?: HorizontalAlignmentType;
|
|
146
|
+
readonly verticalAlignment?: VerticalAlignmentType;
|
|
147
|
+
readonly docPrId?: number;
|
|
148
|
+
readonly preservedHost?: OpenXmlElement;
|
|
149
|
+
readonly layoutDirty?: boolean;
|
|
150
|
+
/** DrawingML picture hyperlink relationship id (`a:hlinkClick/@r:id`). */
|
|
151
|
+
readonly hyperlinkRelationshipId?: string;
|
|
152
|
+
/** Runtime target URI for picture-backed hyperlinks (not serialized on the picture part). */
|
|
153
|
+
readonly hyperlinkTarget?: string;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* DrawingML picture leaf in a paragraph (`w:r/w:drawing` with `wp:inline`
|
|
157
|
+
* or `wp:anchor` + `pic:pic`).
|
|
158
|
+
*
|
|
159
|
+
* Setting {@link Image.textWrappingStyle} to a non-inline value promotes the host
|
|
160
|
+
* to `wp:anchor`. Setting wrapping back to `'inline'` collapses to `wp:inline`
|
|
161
|
+
* and **drops** anchor position/wrap residual by design — see TSDoc on
|
|
162
|
+
* {@link Image.textWrappingStyle}.
|
|
163
|
+
*
|
|
164
|
+
* @public
|
|
165
|
+
*/
|
|
166
|
+
export declare class Picture implements FeatureRunLeaf {
|
|
167
|
+
/**
|
|
168
|
+
* Public discriminant for {@link Paragraph.items} ({@link EntityType.Picture}).
|
|
169
|
+
* @public
|
|
170
|
+
*/
|
|
171
|
+
readonly type: EntityType.Picture;
|
|
172
|
+
private relationshipIdValue;
|
|
173
|
+
/** Display width in points. */
|
|
174
|
+
private widthValue;
|
|
175
|
+
/** Display height in points. */
|
|
176
|
+
private heightValue;
|
|
177
|
+
private nameValue;
|
|
178
|
+
private titleValue;
|
|
179
|
+
private descriptionValue;
|
|
180
|
+
private lockAspectRatioValue;
|
|
181
|
+
private rotationValue;
|
|
182
|
+
private flipHorizontalValue;
|
|
183
|
+
private flipVerticalValue;
|
|
184
|
+
private placementValue;
|
|
185
|
+
private wrappingValue;
|
|
186
|
+
private horizontalOriginValue;
|
|
187
|
+
private verticalOriginValue;
|
|
188
|
+
private horizontalPositionValue;
|
|
189
|
+
private verticalPositionValue;
|
|
190
|
+
private horizontalAlignmentValue;
|
|
191
|
+
private verticalAlignmentValue;
|
|
192
|
+
private docPrIdValue;
|
|
193
|
+
private preservedHostValue;
|
|
194
|
+
private layoutDirtyValue;
|
|
195
|
+
private hyperlinkRelationshipIdValue;
|
|
196
|
+
private hyperlinkTargetValue;
|
|
197
|
+
/**
|
|
198
|
+
* Create a picture bound to `document` for authoring.
|
|
199
|
+
*
|
|
200
|
+
* The instance is attached to the document host so {@link loadImage} and
|
|
201
|
+
* caption APIs resolve the images catalog. Append it with
|
|
202
|
+
* {@link Paragraph.appendImage} or by adding a feature-run item; call
|
|
203
|
+
* {@link loadImage} to supply media bytes before save.
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```typescript
|
|
207
|
+
* const picture = new Picture(document);
|
|
208
|
+
* picture.loadImage(imageBytes);
|
|
209
|
+
* ```
|
|
210
|
+
*
|
|
211
|
+
* @param document - Owning {@link WordDocument}
|
|
212
|
+
* @public
|
|
213
|
+
*/
|
|
214
|
+
constructor(document: WordDocument);
|
|
215
|
+
/** @private */
|
|
216
|
+
constructor(relationshipId: string, width: number, height: number);
|
|
217
|
+
/** @private */
|
|
218
|
+
constructor(init: ImageInit);
|
|
219
|
+
/** @private Build from decoded host state. */
|
|
220
|
+
static fromHostState(state: PictureHostState): Picture;
|
|
221
|
+
/** Display width in points (`wp:extent/@cx` EMU at host boundary). */
|
|
222
|
+
width: number;
|
|
223
|
+
/** Display height in points (`wp:extent/@cy` EMU at host boundary). */
|
|
224
|
+
height: number;
|
|
225
|
+
/**
|
|
226
|
+
* @private
|
|
227
|
+
* DrawingML picture hyperlink relationship id (`a:hlinkClick/@r:id`).
|
|
228
|
+
*/
|
|
229
|
+
hyperlinkRelationshipId: string | undefined;
|
|
230
|
+
/**
|
|
231
|
+
* @private
|
|
232
|
+
* Runtime target URI for a picture-backed hyperlink. Not written to the
|
|
233
|
+
* picture DrawingML tree; the package relationship carries the target.
|
|
234
|
+
*/
|
|
235
|
+
hyperlinkTarget: string | undefined;
|
|
236
|
+
/**
|
|
237
|
+
* @private
|
|
238
|
+
* Relationship id for the image media part; empty until materialized at save. */
|
|
239
|
+
readonly relationshipId: string;
|
|
240
|
+
/**
|
|
241
|
+
* Non-visual picture name (`wp:docPr/@name`, `pic:cNvPr/@name`).
|
|
242
|
+
* @defaultValue `'Picture'` on authoring.
|
|
243
|
+
*/
|
|
244
|
+
name: string;
|
|
245
|
+
/**
|
|
246
|
+
* Caption / accessibility title (`wp:docPr/@title`).
|
|
247
|
+
* Not the same as {@link description} (`@descr`).
|
|
248
|
+
*/
|
|
249
|
+
title: string | undefined;
|
|
250
|
+
/** Alternative text (`wp:docPr/@descr`). */
|
|
251
|
+
description: string | undefined;
|
|
252
|
+
/**
|
|
253
|
+
* Aspect-ratio lock (`a:graphicFrameLocks/@noChangeAspect`).
|
|
254
|
+
* Authoring default is `true`; missing locks on load read as `false`.
|
|
255
|
+
*/
|
|
256
|
+
lockAspectRatio: boolean;
|
|
257
|
+
/**
|
|
258
|
+
* Clockwise rotation in degrees (`a:xfrm/@rot`).
|
|
259
|
+
* Wire uses ST_Angle = degrees × 60000.
|
|
260
|
+
*/
|
|
261
|
+
rotation: number;
|
|
262
|
+
/** Horizontal flip (`a:xfrm/@flipH`). */
|
|
263
|
+
flipHorizontal: boolean;
|
|
264
|
+
/** Vertical flip (`a:xfrm/@flipV`). */
|
|
265
|
+
flipVertical: boolean;
|
|
266
|
+
/**
|
|
267
|
+
* Host placement (`wp:inline` vs `wp:anchor`).
|
|
268
|
+
* Prefer mutating {@link textWrappingStyle}; non-inline wrapping forces anchored.
|
|
269
|
+
*/
|
|
270
|
+
placement: PicturePlacementType;
|
|
271
|
+
/**
|
|
272
|
+
* Text wrapping style.
|
|
273
|
+
*
|
|
274
|
+
* - `'inline'` serializes as `wp:inline`. Collapsing an anchored picture to
|
|
275
|
+
* inline **drops** position and wrap residual by design.
|
|
276
|
+
* - Other values promote to `wp:anchor` with the matching wrap element.
|
|
277
|
+
* Tight/through without a residual wrapPolygon fall back to `wrapNone`
|
|
278
|
+
* (library does not invent polygons).
|
|
279
|
+
*
|
|
280
|
+
* @throws RangeError when `value` is not a known {@link TextWrappingStyle}.
|
|
281
|
+
*/
|
|
282
|
+
textWrappingStyle: TextWrappingStyleType;
|
|
283
|
+
/**
|
|
284
|
+
|
|
285
|
+
*/
|
|
286
|
+
/**
|
|
287
|
+
|
|
288
|
+
*/
|
|
289
|
+
wrapping: TextWrappingStyleType;
|
|
290
|
+
/** Horizontal origin (`wp:positionH/@relativeFrom`). */
|
|
291
|
+
horizontalOrigin: HorizontalOriginType | undefined;
|
|
292
|
+
/** Vertical origin (`wp:positionV/@relativeFrom`). */
|
|
293
|
+
verticalOrigin: VerticalOriginType | undefined;
|
|
294
|
+
/**
|
|
295
|
+
* Horizontal offset (`wp:positionH/wp:posOffset`).
|
|
296
|
+
* Setting this clears {@link horizontalAlignment} (align XOR posOffset).
|
|
297
|
+
*/
|
|
298
|
+
horizontalPosition: number | undefined;
|
|
299
|
+
/**
|
|
300
|
+
* Vertical offset (`wp:positionV/wp:posOffset`).
|
|
301
|
+
* Setting this clears {@link verticalAlignment} (align XOR posOffset).
|
|
302
|
+
*/
|
|
303
|
+
verticalPosition: number | undefined;
|
|
304
|
+
/**
|
|
305
|
+
* Horizontal alignment (`wp:positionH/wp:align`).
|
|
306
|
+
* Setting this clears {@link horizontalPosition} (align XOR posOffset).
|
|
307
|
+
*
|
|
308
|
+
* @throws RangeError when `value` is not a known {@link HorizontalAlignment}.
|
|
309
|
+
*/
|
|
310
|
+
horizontalAlignment: HorizontalAlignmentType | undefined;
|
|
311
|
+
/**
|
|
312
|
+
* Vertical alignment (`wp:positionV/wp:align`).
|
|
313
|
+
* Setting this clears {@link verticalPosition} (align XOR posOffset).
|
|
314
|
+
*
|
|
315
|
+
* @throws RangeError when `value` is not a known {@link VerticalAlignment}.
|
|
316
|
+
*/
|
|
317
|
+
verticalAlignment: VerticalAlignmentType | undefined;
|
|
318
|
+
/** @private */
|
|
319
|
+
isPendingRelationship(): boolean;
|
|
320
|
+
/** @private */
|
|
321
|
+
resolveRelationshipId(relationshipId: string): void;
|
|
322
|
+
/** @private Apply optional authoring fields from {@link ImageOptions}. */
|
|
323
|
+
applyAppendOptions(options: ImageOptions): void;
|
|
324
|
+
/**
|
|
325
|
+
* Add a Word-style caption paragraph next to this picture.
|
|
326
|
+
*
|
|
327
|
+
* Creates a separate caption paragraph (built-in `Caption` style, centered,
|
|
328
|
+
* spacing 30/240 twips) containing a `SEQ <captionName> \* <switch>` complex
|
|
329
|
+
* field (ECMA-376-1 §17.16.5.56), inserted immediately before
|
|
330
|
+
* ({@link CaptionPosition.Above}) or after ({@link CaptionPosition.Below})
|
|
331
|
+
* the paragraph containing this picture. The picture and its paragraph are not
|
|
332
|
+
* moved or modified. The initial field result is the next number in the
|
|
333
|
+
* caption-name sequence; Microsoft Word remains authoritative on refresh.
|
|
334
|
+
*
|
|
335
|
+
* @returns The new caption {@link Paragraph}; append additional caption text
|
|
336
|
+
* or adjust its formatting on the returned object.
|
|
337
|
+
* @throws DocxError `content/invalid-caption-name` when the name is empty or
|
|
338
|
+
* whitespace-only.
|
|
339
|
+
* @throws DocxError `content/invalid-caption-format` /
|
|
340
|
+
* `content/invalid-caption-position` for unknown enum values.
|
|
341
|
+
* @throws DetachedObjectError when this picture is not attached to a paragraph
|
|
342
|
+
* in a main document body.
|
|
343
|
+
*/
|
|
344
|
+
addCaption(captionName: string, numberingFormat: CaptionNumberingFormat, position: CaptionPosition): Paragraph;
|
|
345
|
+
/**
|
|
346
|
+
* Load image bytes into this picture instance.
|
|
347
|
+
*
|
|
348
|
+
* Loads image content into the current `Picture` instance, supporting:
|
|
349
|
+
* - Newly created pictures
|
|
350
|
+
* - Pictures loaded from existing documents
|
|
351
|
+
*
|
|
352
|
+
* If the picture already contains image data, calling `loadImage()` replaces
|
|
353
|
+
* the existing image with the newly supplied image bytes. The replacement
|
|
354
|
+
* occurs within the same `Picture` instance — no remove-and-add operation
|
|
355
|
+
* is required.
|
|
356
|
+
*
|
|
357
|
+
* The Picture instance remains attached to its parent container after image
|
|
358
|
+
* replacement. Parent references, collection indexes, and existing object
|
|
359
|
+
* references remain unchanged. Only the underlying image data is replaced.
|
|
360
|
+
*
|
|
361
|
+
* @example
|
|
362
|
+
* ```typescript
|
|
363
|
+
* // Load image into a newly created picture
|
|
364
|
+
* const picture = new Picture(document);
|
|
365
|
+
* picture.loadImage(imageBytes);
|
|
366
|
+
*
|
|
367
|
+
* // Replace existing picture content (same instance / collection index)
|
|
368
|
+
* const picture = paragraph.items[0] as Picture;
|
|
369
|
+
* picture.loadImage(newImageBytes);
|
|
370
|
+
* ```
|
|
371
|
+
*
|
|
372
|
+
* @param imageBytes - Image data as `Uint8Array` (PNG or JPEG)
|
|
373
|
+
* @throws DocxError when the picture is not attached to a document
|
|
374
|
+
* @public
|
|
375
|
+
*/
|
|
376
|
+
loadImage(imageBytes: Uint8Array): void;
|
|
377
|
+
/**
|
|
378
|
+
* @private
|
|
379
|
+
*/
|
|
380
|
+
toOpenXml(): OpenXmlElement;
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Image media parts linked from the Main Document.
|
|
384
|
+
*
|
|
385
|
+
* @private
|
|
386
|
+
*/
|
|
387
|
+
export declare class ImagesCatalog implements FeatureMultiPackagePart {
|
|
388
|
+
private readonly entries;
|
|
389
|
+
private readonly byRelationshipId;
|
|
390
|
+
private readonly pendingRemovals;
|
|
391
|
+
private readonly pendingImages;
|
|
392
|
+
/** @private */
|
|
393
|
+
constructor(entries: Map<PartName, ImagePartEntry>);
|
|
394
|
+
/** @private */
|
|
395
|
+
removeEntry(relationshipId: string): void;
|
|
396
|
+
/** @private */
|
|
397
|
+
isDirty(): boolean;
|
|
398
|
+
/** @private */
|
|
399
|
+
applyToPackage(pkg: OpcPackage, mainPartName: PartName): OpcPackage;
|
|
400
|
+
/** Image bytes for a loaded relationship id. */
|
|
401
|
+
bytesForRelationship(relationshipId: string): Uint8Array | undefined;
|
|
402
|
+
/** @private Pending picture bytes before save-time materialization. */
|
|
403
|
+
pendingBytesFor(picture: Picture): Uint8Array | undefined;
|
|
404
|
+
/** @private Record picture intent without allocating package ids. */
|
|
405
|
+
registerPendingImage(picture: Picture, bytes: Uint8Array, contentType: ImageType): void;
|
|
406
|
+
/** @private Drop a pending picture that was removed before save. */
|
|
407
|
+
discardPendingImage(picture: Picture): void;
|
|
408
|
+
/** @private Replace bytes on a not-yet-materialized picture. */
|
|
409
|
+
updatePendingBytes(picture: Picture, bytes: Uint8Array): void;
|
|
410
|
+
/** @private */
|
|
411
|
+
materializePending(document: WordDocument): void;
|
|
412
|
+
/** @private */
|
|
413
|
+
pendingRelationshipIds(): ReadonlyArray<string>;
|
|
414
|
+
/** @private */
|
|
415
|
+
pendingPartNames(): ReadonlyArray<PartName>;
|
|
416
|
+
/** @private */
|
|
417
|
+
allocatePart(data: Uint8Array, contentType: ImageType, usedRelIds: ReadonlySet<string>, usedPartNames: ReadonlySet<string>): {
|
|
418
|
+
entry: ImagePartEntry;
|
|
419
|
+
relationshipId: string;
|
|
420
|
+
};
|
|
421
|
+
/** @private */
|
|
422
|
+
replaceBytes(relationshipId: string, data: Uint8Array): void;
|
|
423
|
+
/**
|
|
424
|
+
* Bind every inline picture in the main story to this document after body parse
|
|
425
|
+
* so {@link Picture.loadImage} works when pictures are taken from
|
|
426
|
+
* {@link Paragraph.items} without a prior {@link picturesInParagraph} walk.
|
|
427
|
+
*
|
|
428
|
+
* Invoked from {@link WordDocument.fromPackage} via duck-typed
|
|
429
|
+
* `afterMainDocumentLoad` (same pattern as comments).
|
|
430
|
+
*
|
|
431
|
+
* @private
|
|
432
|
+
*/
|
|
433
|
+
afterMainDocumentLoad(document: WordDocument): void;
|
|
434
|
+
}
|
|
435
|
+
/** @private Test hook */
|
|
436
|
+
export declare function resetImagesFeatureForTests(): void;
|
|
437
|
+
/** @private Register the images multi-part and inline drawing handlers. Idempotent. */
|
|
438
|
+
export declare function registerImagesFeature(): void;
|
|
439
|
+
/**
|
|
440
|
+
* Image media catalog for a document.
|
|
441
|
+
*
|
|
442
|
+
* @throws DocxError `UNKNOWN_FEATURE` when the module was not registered before load.
|
|
443
|
+
* @private
|
|
444
|
+
*/
|
|
445
|
+
export declare function imagesFor(document: WordDocument): ImagesCatalog;
|
|
446
|
+
/**
|
|
447
|
+
* Inline pictures in a paragraph, in document order (including nested inline content controls).
|
|
448
|
+
*
|
|
449
|
+
* @private
|
|
450
|
+
*/
|
|
451
|
+
export declare function picturesInParagraph(paragraph: Paragraph): ReadonlyArray<Picture>;
|
|
452
|
+
/**
|
|
453
|
+
|
|
454
|
+
* @private
|
|
455
|
+
*/
|
|
456
|
+
export declare function imagesInParagraph(paragraph: Paragraph): ReadonlyArray<Picture>;
|
|
457
|
+
/**
|
|
458
|
+
* Inline picture bytes for a picture relationship.
|
|
459
|
+
* @private
|
|
460
|
+
*/
|
|
461
|
+
export declare function inlinePictureBytes(document: WordDocument, picture: Picture): Uint8Array | undefined;
|
|
462
|
+
/**
|
|
463
|
+
|
|
464
|
+
* @private
|
|
465
|
+
*/
|
|
466
|
+
export declare function inlineImageBytes(document: WordDocument, image: Picture): Uint8Array | undefined;
|
|
467
|
+
/**
|
|
468
|
+
* Replace picture media bytes without changing layout markup.
|
|
469
|
+
* @private
|
|
470
|
+
*/
|
|
471
|
+
export declare function replaceInlinePictureBytes(document: WordDocument, picture: Picture, bytes: Uint8Array): void;
|
|
472
|
+
/**
|
|
473
|
+
|
|
474
|
+
* @private
|
|
475
|
+
*/
|
|
476
|
+
export declare function replaceInlineImageBytes(document: WordDocument, image: Picture, bytes: Uint8Array): void;
|
|
477
|
+
/**
|
|
478
|
+
* Remove an inline picture run from its paragraph and drop its media on the next save.
|
|
479
|
+
* @private
|
|
480
|
+
*/
|
|
481
|
+
export declare function removeInlinePicture(document: WordDocument, paragraph: Paragraph, picture: Picture): void;
|
|
482
|
+
/**
|
|
483
|
+
|
|
484
|
+
* @private
|
|
485
|
+
*/
|
|
486
|
+
export declare function removeInlineImage(document: WordDocument, paragraph: Paragraph, image: Picture): void;
|
|
487
|
+
/**
|
|
488
|
+
* Whether a paragraph item is a modeled inline picture from this module.
|
|
489
|
+
*
|
|
490
|
+
* @private
|
|
491
|
+
*/
|
|
492
|
+
export declare function isPictureLeaf(item: ParagraphItem | Picture): item is (FeatureRunParagraphItem & {
|
|
493
|
+
value: Picture;
|
|
494
|
+
}) | Picture;
|
|
495
|
+
/**
|
|
496
|
+
|
|
497
|
+
* @private
|
|
498
|
+
*/
|
|
499
|
+
export declare function isImageLeaf(item: ParagraphItem | Picture): item is (FeatureRunParagraphItem & {
|
|
500
|
+
value: Picture;
|
|
501
|
+
}) | Picture;
|
|
502
|
+
/**
|
|
503
|
+
|
|
504
|
+
* @public
|
|
505
|
+
*/
|
|
506
|
+
export declare type Image = Picture;
|