@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,33 @@
|
|
|
1
|
+
import { Paragraph } from '../document/paragraph';
|
|
2
|
+
import { CaptionNumberingFormat, CaptionPosition } from './caption-enums';
|
|
3
|
+
import { Picture } from './index';
|
|
4
|
+
/**
|
|
5
|
+
* Caption authoring entry installed by `./captions.js` when fields + styles are
|
|
6
|
+
* available. Kept as a soft registry so the always-on images graph does not
|
|
7
|
+
* static-import those optional modules into `dist/index.js`.
|
|
8
|
+
*/
|
|
9
|
+
export declare type AddCaptionToPicture = (picture: Picture, captionName: string, numberingFormat: CaptionNumberingFormat, position: CaptionPosition) => Paragraph;
|
|
10
|
+
/**
|
|
11
|
+
* @private
|
|
12
|
+
* Installed by the captions authoring module on load. */
|
|
13
|
+
export declare function providePictureCaptionAuthoring(impl: AddCaptionToPicture): void;
|
|
14
|
+
/**
|
|
15
|
+
* @private
|
|
16
|
+
* Resolve the installed caption authoring implementation.
|
|
17
|
+
* @throws DocxError when captions authoring was not loaded (fields/styles path).
|
|
18
|
+
*/
|
|
19
|
+
export declare function requirePictureCaptionAuthoring(): AddCaptionToPicture;
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated Use {@link AddCaptionToPicture} instead.
|
|
22
|
+
*/
|
|
23
|
+
export declare type AddCaptionToImage = AddCaptionToPicture;
|
|
24
|
+
/**
|
|
25
|
+
* @private
|
|
26
|
+
* @deprecated Use {@link providePictureCaptionAuthoring} instead.
|
|
27
|
+
*/
|
|
28
|
+
export declare function provideImageCaptionAuthoring(impl: AddCaptionToPicture): void;
|
|
29
|
+
/**
|
|
30
|
+
* @private
|
|
31
|
+
* @deprecated Use {@link requirePictureCaptionAuthoring} instead.
|
|
32
|
+
*/
|
|
33
|
+
export declare function requireImageCaptionAuthoring(): AddCaptionToPicture;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { DocxError } from '../../core/errors/docx-error';
|
|
2
|
+
var addCaptionToPictureImpl;
|
|
3
|
+
/**
|
|
4
|
+
* @private
|
|
5
|
+
* Installed by the captions authoring module on load. */
|
|
6
|
+
export function providePictureCaptionAuthoring(impl) {
|
|
7
|
+
addCaptionToPictureImpl = impl;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @private
|
|
11
|
+
* Resolve the installed caption authoring implementation.
|
|
12
|
+
* @throws DocxError when captions authoring was not loaded (fields/styles path).
|
|
13
|
+
*/
|
|
14
|
+
export function requirePictureCaptionAuthoring() {
|
|
15
|
+
if (addCaptionToPictureImpl === undefined) {
|
|
16
|
+
throw new DocxError('feature/not-registered', 'Picture caption authoring is not loaded; import @syncfusion/ej2-docx/images (or load captions authoring with fields and styles) before addCaption');
|
|
17
|
+
}
|
|
18
|
+
return addCaptionToPictureImpl;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @private
|
|
22
|
+
* @deprecated Use {@link providePictureCaptionAuthoring} instead.
|
|
23
|
+
*/
|
|
24
|
+
export function provideImageCaptionAuthoring(impl) {
|
|
25
|
+
providePictureCaptionAuthoring(impl);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @private
|
|
29
|
+
* @deprecated Use {@link requirePictureCaptionAuthoring} instead.
|
|
30
|
+
*/
|
|
31
|
+
export function requireImageCaptionAuthoring() {
|
|
32
|
+
return requirePictureCaptionAuthoring();
|
|
33
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Numbering formats for image-caption `SEQ` fields.
|
|
3
|
+
*
|
|
4
|
+
* Each value maps to the corresponding general-formatting switch of the `SEQ`
|
|
5
|
+
* field instruction (ECMA-376-1 §17.16.5 switch table).
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export declare const CaptionNumberingFormat: {
|
|
10
|
+
/** `\* ARABIC` — decimal digits (`1`, `2`, `3`). */
|
|
11
|
+
Arabic: string;
|
|
12
|
+
/** `\* ROMAN` — uppercase Roman numerals (`I`, `II`, `III`). */
|
|
13
|
+
UpperCaseRoman: string;
|
|
14
|
+
/** `\* roman` — lowercase Roman numerals (`i`, `ii`, `iii`). */
|
|
15
|
+
LowerCaseRoman: string;
|
|
16
|
+
/** `\* ALPHABETIC` — uppercase letters (`A`, `B`, … `Z`, `AA`). */
|
|
17
|
+
UpperCaseLetter: string;
|
|
18
|
+
/** `\* alphabetic` — lowercase letters (`a`, `b`, … `z`, `aa`). */
|
|
19
|
+
LowerCaseLetter: string;
|
|
20
|
+
};
|
|
21
|
+
/** One of the {@link CaptionNumberingFormat} tokens. @public */
|
|
22
|
+
export declare type CaptionNumberingFormat = (typeof CaptionNumberingFormat)[keyof typeof CaptionNumberingFormat];
|
|
23
|
+
/**
|
|
24
|
+
* Position of a caption paragraph relative to the image's paragraph.
|
|
25
|
+
*
|
|
26
|
+
* @public
|
|
27
|
+
*/
|
|
28
|
+
export declare const CaptionPosition: {
|
|
29
|
+
/** Caption paragraph immediately before the image paragraph. */
|
|
30
|
+
Above: string;
|
|
31
|
+
/** Caption paragraph immediately after the image paragraph. */
|
|
32
|
+
Below: string;
|
|
33
|
+
};
|
|
34
|
+
/** One of the {@link CaptionPosition} tokens. @public */
|
|
35
|
+
export declare type CaptionPosition = (typeof CaptionPosition)[keyof typeof CaptionPosition];
|
|
36
|
+
/**
|
|
37
|
+
* Word `SEQ` general-formatting switch for each numbering format
|
|
38
|
+
* (ECMA-376-1 §17.16.5 switch table; tokens must not be invented beyond these).
|
|
39
|
+
*
|
|
40
|
+
* @private
|
|
41
|
+
*/
|
|
42
|
+
export declare const CAPTION_FORMAT_SWITCH: Readonly<Record<CaptionNumberingFormat, string>>;
|
|
43
|
+
/**
|
|
44
|
+
* @private
|
|
45
|
+
*/
|
|
46
|
+
export declare const CAPTION_NUMBERING_FORMATS: ReadonlySet<string>;
|
|
47
|
+
/**
|
|
48
|
+
* @private
|
|
49
|
+
*/
|
|
50
|
+
export declare const CAPTION_POSITIONS: ReadonlySet<string>;
|
|
51
|
+
/** Format a 1-based sequence value per the numbering format (Word display rules). */
|
|
52
|
+
export declare function formatSequenceValue(value: number, format: CaptionNumberingFormat): string;
|
|
@@ -0,0 +1,141 @@
|
|
|
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
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
12
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
13
|
+
if (!m) return o;
|
|
14
|
+
var i = m.call(o), r, ar = [], e;
|
|
15
|
+
try {
|
|
16
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
17
|
+
}
|
|
18
|
+
catch (error) { e = { error: error }; }
|
|
19
|
+
finally {
|
|
20
|
+
try {
|
|
21
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
22
|
+
}
|
|
23
|
+
finally { if (e) throw e.error; }
|
|
24
|
+
}
|
|
25
|
+
return ar;
|
|
26
|
+
};
|
|
27
|
+
var _a;
|
|
28
|
+
import { objectValues } from '../../core/compat/object-compat';
|
|
29
|
+
/**
|
|
30
|
+
* Numbering formats for image-caption `SEQ` fields.
|
|
31
|
+
*
|
|
32
|
+
* Each value maps to the corresponding general-formatting switch of the `SEQ`
|
|
33
|
+
* field instruction (ECMA-376-1 §17.16.5 switch table).
|
|
34
|
+
*
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
export var CaptionNumberingFormat = {
|
|
38
|
+
/** `\* ARABIC` — decimal digits (`1`, `2`, `3`). */
|
|
39
|
+
Arabic: 'arabic',
|
|
40
|
+
/** `\* ROMAN` — uppercase Roman numerals (`I`, `II`, `III`). */
|
|
41
|
+
UpperCaseRoman: 'upperCaseRoman',
|
|
42
|
+
/** `\* roman` — lowercase Roman numerals (`i`, `ii`, `iii`). */
|
|
43
|
+
LowerCaseRoman: 'lowerCaseRoman',
|
|
44
|
+
/** `\* ALPHABETIC` — uppercase letters (`A`, `B`, … `Z`, `AA`). */
|
|
45
|
+
UpperCaseLetter: 'upperCaseLetter',
|
|
46
|
+
/** `\* alphabetic` — lowercase letters (`a`, `b`, … `z`, `aa`). */
|
|
47
|
+
LowerCaseLetter: 'lowerCaseLetter',
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Position of a caption paragraph relative to the image's paragraph.
|
|
51
|
+
*
|
|
52
|
+
* @public
|
|
53
|
+
*/
|
|
54
|
+
export var CaptionPosition = {
|
|
55
|
+
/** Caption paragraph immediately before the image paragraph. */
|
|
56
|
+
Above: 'above',
|
|
57
|
+
/** Caption paragraph immediately after the image paragraph. */
|
|
58
|
+
Below: 'below',
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Word `SEQ` general-formatting switch for each numbering format
|
|
62
|
+
* (ECMA-376-1 §17.16.5 switch table; tokens must not be invented beyond these).
|
|
63
|
+
*
|
|
64
|
+
* @private
|
|
65
|
+
*/
|
|
66
|
+
export var CAPTION_FORMAT_SWITCH = (_a = {},
|
|
67
|
+
_a[CaptionNumberingFormat.Arabic] = 'ARABIC',
|
|
68
|
+
_a[CaptionNumberingFormat.UpperCaseRoman] = 'ROMAN',
|
|
69
|
+
_a[CaptionNumberingFormat.LowerCaseRoman] = 'roman',
|
|
70
|
+
_a[CaptionNumberingFormat.UpperCaseLetter] = 'ALPHABETIC',
|
|
71
|
+
_a[CaptionNumberingFormat.LowerCaseLetter] = 'alphabetic',
|
|
72
|
+
_a);
|
|
73
|
+
/**
|
|
74
|
+
* @private
|
|
75
|
+
*/
|
|
76
|
+
export var CAPTION_NUMBERING_FORMATS = new Set(objectValues(CaptionNumberingFormat));
|
|
77
|
+
/**
|
|
78
|
+
* @private
|
|
79
|
+
*/
|
|
80
|
+
export var CAPTION_POSITIONS = new Set(objectValues(CaptionPosition));
|
|
81
|
+
/** Format a 1-based sequence value per the numbering format (Word display rules). */
|
|
82
|
+
export function formatSequenceValue(value, format) {
|
|
83
|
+
if (format === CaptionNumberingFormat.Arabic) {
|
|
84
|
+
return String(value);
|
|
85
|
+
}
|
|
86
|
+
if (format === CaptionNumberingFormat.UpperCaseRoman ||
|
|
87
|
+
format === CaptionNumberingFormat.LowerCaseRoman) {
|
|
88
|
+
var roman = toRoman(value);
|
|
89
|
+
return format === CaptionNumberingFormat.UpperCaseRoman ? roman : roman.toLowerCase();
|
|
90
|
+
}
|
|
91
|
+
return toAlphabetic(value, format === CaptionNumberingFormat.UpperCaseLetter);
|
|
92
|
+
}
|
|
93
|
+
var ROMAN_STEPS = [
|
|
94
|
+
[1000, 'M'],
|
|
95
|
+
[900, 'CM'],
|
|
96
|
+
[500, 'D'],
|
|
97
|
+
[400, 'CD'],
|
|
98
|
+
[100, 'C'],
|
|
99
|
+
[90, 'XC'],
|
|
100
|
+
[50, 'L'],
|
|
101
|
+
[40, 'XL'],
|
|
102
|
+
[10, 'X'],
|
|
103
|
+
[9, 'IX'],
|
|
104
|
+
[5, 'V'],
|
|
105
|
+
[4, 'IV'],
|
|
106
|
+
[1, 'I'],
|
|
107
|
+
];
|
|
108
|
+
function toRoman(value) {
|
|
109
|
+
var e_1, _a;
|
|
110
|
+
var remaining = value;
|
|
111
|
+
var out = '';
|
|
112
|
+
try {
|
|
113
|
+
for (var ROMAN_STEPS_1 = __values(ROMAN_STEPS), ROMAN_STEPS_1_1 = ROMAN_STEPS_1.next(); !ROMAN_STEPS_1_1.done; ROMAN_STEPS_1_1 = ROMAN_STEPS_1.next()) {
|
|
114
|
+
var _b = __read(ROMAN_STEPS_1_1.value, 2), step = _b[0], glyph = _b[1];
|
|
115
|
+
while (remaining >= step) {
|
|
116
|
+
out += glyph;
|
|
117
|
+
remaining -= step;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
122
|
+
finally {
|
|
123
|
+
try {
|
|
124
|
+
if (ROMAN_STEPS_1_1 && !ROMAN_STEPS_1_1.done && (_a = ROMAN_STEPS_1.return)) _a.call(ROMAN_STEPS_1);
|
|
125
|
+
}
|
|
126
|
+
finally { if (e_1) throw e_1.error; }
|
|
127
|
+
}
|
|
128
|
+
return out;
|
|
129
|
+
}
|
|
130
|
+
/** 1→`A` … 26→`Z`, 27→`AA` (Word alphabetic wrap). */
|
|
131
|
+
function toAlphabetic(value, upper) {
|
|
132
|
+
var remaining = value;
|
|
133
|
+
var out = '';
|
|
134
|
+
while (remaining > 0) {
|
|
135
|
+
var digit = ((remaining - 1) % 26) + 1;
|
|
136
|
+
var char = String.fromCharCode((upper ? 64 : 96) + digit);
|
|
137
|
+
out = char + out;
|
|
138
|
+
remaining = Math.floor((remaining - 1) / 26);
|
|
139
|
+
}
|
|
140
|
+
return out;
|
|
141
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { WordDocument } from '../document/document';
|
|
2
|
+
import { Picture } from './index';
|
|
3
|
+
/**
|
|
4
|
+
* @private
|
|
5
|
+
* Bind a picture to its owning document (load + authoring paths). */
|
|
6
|
+
export declare function bindCaptionHostDocument(picture: Picture, document: WordDocument): void;
|
|
7
|
+
/**
|
|
8
|
+
* @private
|
|
9
|
+
* Host document of a picture, when bound. */
|
|
10
|
+
export declare function hostDocumentOf(picture: Picture): WordDocument | undefined;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Owning-document contact point for inline-picture leaves. Authored pictures bind
|
|
3
|
+
* their owning document at `appendImage`; loaded pictures bind during body parse
|
|
4
|
+
* (module-level WeakMap, keyed by the picture instance).
|
|
5
|
+
*
|
|
6
|
+
* Kept free of fields/styles imports so always-on images registration can bind
|
|
7
|
+
* hosts without pulling optional feature modules into the core bundle.
|
|
8
|
+
*/
|
|
9
|
+
var hostDocuments = new WeakMap();
|
|
10
|
+
/**
|
|
11
|
+
* @private
|
|
12
|
+
* Bind a picture to its owning document (load + authoring paths). */
|
|
13
|
+
export function bindCaptionHostDocument(picture, document) {
|
|
14
|
+
hostDocuments.set(picture, document);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @private
|
|
18
|
+
* Host document of a picture, when bound. */
|
|
19
|
+
export function hostDocumentOf(picture) {
|
|
20
|
+
return hostDocuments.get(picture);
|
|
21
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Paragraph } from '../document/paragraph';
|
|
2
|
+
import { CaptionNumberingFormat as CaptionNumberingFormatValue, CaptionPosition as CaptionPositionValue } from './caption-enums';
|
|
3
|
+
import { Picture } from './index';
|
|
4
|
+
/**
|
|
5
|
+
* Build the caption paragraph and insert it relative to the picture paragraph.
|
|
6
|
+
* @private
|
|
7
|
+
*/
|
|
8
|
+
export declare function addCaptionToPicture(picture: Picture, captionName: string, numberingFormat: CaptionNumberingFormatValue, position: CaptionPositionValue): Paragraph;
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated Use {@link addCaptionToPicture} instead.
|
|
11
|
+
* @private
|
|
12
|
+
*/
|
|
13
|
+
export declare function addCaptionToImage(image: Picture, captionName: string, numberingFormat: CaptionNumberingFormatValue, position: CaptionPositionValue): Paragraph;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
2
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
3
|
+
if (!m) return o;
|
|
4
|
+
var i = m.call(o), r, ar = [], e;
|
|
5
|
+
try {
|
|
6
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
7
|
+
}
|
|
8
|
+
catch (error) { e = { error: error }; }
|
|
9
|
+
finally {
|
|
10
|
+
try {
|
|
11
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
12
|
+
}
|
|
13
|
+
finally { if (e) throw e.error; }
|
|
14
|
+
}
|
|
15
|
+
return ar;
|
|
16
|
+
};
|
|
17
|
+
var __spread = (this && this.__spread) || function () {
|
|
18
|
+
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
|
|
19
|
+
return ar;
|
|
20
|
+
};
|
|
21
|
+
var __values = (this && this.__values) || function (o) {
|
|
22
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
|
|
23
|
+
if (m) return m.call(o);
|
|
24
|
+
return {
|
|
25
|
+
next: function () {
|
|
26
|
+
if (o && i >= o.length) o = void 0;
|
|
27
|
+
return { value: o && o[i++], done: !o };
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Picture caption authoring. Imports fields + styles; must not be pulled into the
|
|
33
|
+
* always-on core graph. Loaded from the images public feature entry
|
|
34
|
+
* (`@syncfusion/ej2-docx/images`) so `addCaption` works without embedding those optionals in
|
|
35
|
+
* `dist/index.js`.
|
|
36
|
+
*/
|
|
37
|
+
import { DetachedObjectError, DocxError } from '../../core/errors/docx-error';
|
|
38
|
+
import { ParagraphAlignment } from '../document/alignment';
|
|
39
|
+
import { visitParagraphsInDocumentOrder } from '../../core/registry/index';
|
|
40
|
+
import { appendOpaqueComplexField, fieldInstructionKeyword, opaqueComplexFieldInstructionsInParagraph } from '../fields/index';
|
|
41
|
+
import { stylesFor } from '../styles/index';
|
|
42
|
+
import { providePictureCaptionAuthoring } from './caption-authoring-api';
|
|
43
|
+
import { CAPTION_FORMAT_SWITCH, CAPTION_NUMBERING_FORMATS, CAPTION_POSITIONS, CaptionPosition as CaptionPos, formatSequenceValue, } from './caption-enums';
|
|
44
|
+
import { hostDocumentOf } from './caption-host';
|
|
45
|
+
import { picturesInParagraph } from './index';
|
|
46
|
+
/** Built-in caption paragraph style id (`w:pStyle w:val="Caption"`). */
|
|
47
|
+
var CAPTION_STYLE_ID = 'Caption';
|
|
48
|
+
function assertEnumMember(label, value, allowed) {
|
|
49
|
+
if (!allowed.has(value)) {
|
|
50
|
+
if (label === 'format') {
|
|
51
|
+
throw new DocxError('content/invalid-image-caption-format', "Invalid " + label + " value \"" + value + "\"; expected one of: " + __spread(allowed).join(', '));
|
|
52
|
+
}
|
|
53
|
+
throw new DocxError('content/invalid-image-caption-position', "Invalid " + label + " value \"" + value + "\"; expected one of: " + __spread(allowed).join(', '));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Locate the body paragraph containing `picture`.
|
|
58
|
+
*
|
|
59
|
+
* @throws DetachedObjectError when the picture is not attached to a paragraph in
|
|
60
|
+
* a document body.
|
|
61
|
+
*/
|
|
62
|
+
function paragraphForPicture(document, picture) {
|
|
63
|
+
var blocks = document.listBlocks();
|
|
64
|
+
for (var index = 0; index < blocks.length; index += 1) {
|
|
65
|
+
var block = blocks[index];
|
|
66
|
+
if (block === undefined || block.type !== 'paragraph') {
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
if (picturesInParagraph(block.paragraph).indexOf(picture) !== -1) {
|
|
70
|
+
return { paragraph: block.paragraph, blockIndex: index };
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
throw new DetachedObjectError('This picture is not attached to a paragraph in a document body; captions require a main-body picture paragraph');
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Count existing `SEQ <identifier>` complex fields (any switch) in document order.
|
|
77
|
+
*/
|
|
78
|
+
function countSeqFields(document, identifier) {
|
|
79
|
+
var count = 0;
|
|
80
|
+
visitParagraphsInDocumentOrder(document, function (paragraph) {
|
|
81
|
+
var e_1, _a;
|
|
82
|
+
var __ts33_0;
|
|
83
|
+
try {
|
|
84
|
+
for (var _b = __values(opaqueComplexFieldInstructionsInParagraph(paragraph)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
85
|
+
var instruction = _c.value;
|
|
86
|
+
if (fieldInstructionKeyword(instruction) !== 'SEQ') {
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
if ((((__ts33_0 = instruction.trim().split(/\s+/)[1]), __ts33_0 != null ? __ts33_0 : '')) === identifier) {
|
|
90
|
+
count += 1;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
95
|
+
finally {
|
|
96
|
+
try {
|
|
97
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
98
|
+
}
|
|
99
|
+
finally { if (e_1) throw e_1.error; }
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
return count;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Build the caption paragraph and insert it relative to the picture paragraph.
|
|
106
|
+
* @private
|
|
107
|
+
*/
|
|
108
|
+
export function addCaptionToPicture(picture, captionName, numberingFormat, position) {
|
|
109
|
+
if (typeof captionName !== 'string' || captionName.trim().length === 0) {
|
|
110
|
+
throw new DocxError('content/invalid-image-caption-name', 'Caption name must be a non-empty string (not null, undefined, empty, or whitespace-only)');
|
|
111
|
+
}
|
|
112
|
+
assertEnumMember('format', String(numberingFormat), CAPTION_NUMBERING_FORMATS);
|
|
113
|
+
assertEnumMember('position', String(position), CAPTION_POSITIONS);
|
|
114
|
+
var document = hostDocumentOf(picture);
|
|
115
|
+
if (document === undefined) {
|
|
116
|
+
throw new DetachedObjectError('This picture is not attached to a document; attach it with paragraph.appendImage() before adding a caption');
|
|
117
|
+
}
|
|
118
|
+
var blockIndex = paragraphForPicture(document, picture).blockIndex;
|
|
119
|
+
var name = captionName.trim();
|
|
120
|
+
stylesFor(document).ensureParagraphStyle(CAPTION_STYLE_ID);
|
|
121
|
+
var instruction = "SEQ " + name + " \\* " + CAPTION_FORMAT_SWITCH[numberingFormat];
|
|
122
|
+
// Insert first (attaches the paragraph), then populate: Paragraph setters
|
|
123
|
+
// and appendText/appendField require an attached paragraph.
|
|
124
|
+
var caption = document.insertParagraphAtBlockIndex(position === CaptionPos.Above ? blockIndex : blockIndex + 1);
|
|
125
|
+
caption.styleId = CAPTION_STYLE_ID;
|
|
126
|
+
var captionFormat = caption.paragraphFormat;
|
|
127
|
+
captionFormat.beforeSpacing = 1.5;
|
|
128
|
+
captionFormat.afterSpacing = 12;
|
|
129
|
+
captionFormat.horizontalAlignment = ParagraphAlignment.Center;
|
|
130
|
+
caption.appendText(name + " ");
|
|
131
|
+
var result = formatSequenceValue(countSeqFields(document, name) + 1, numberingFormat);
|
|
132
|
+
appendOpaqueComplexField(caption, instruction, { result: result });
|
|
133
|
+
return caption;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* @deprecated Use {@link addCaptionToPicture} instead.
|
|
137
|
+
* @private
|
|
138
|
+
*/
|
|
139
|
+
export function addCaptionToImage(image, captionName, numberingFormat, position) {
|
|
140
|
+
return addCaptionToPicture(image, captionName, numberingFormat, position);
|
|
141
|
+
}
|
|
142
|
+
providePictureCaptionAuthoring(addCaptionToPicture);
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Picture DrawingML host decode/encode helpers (`wp:inline` / `wp:anchor` + `pic:pic`).
|
|
3
|
+
*
|
|
4
|
+
* Schema cites (Transitional `dml-wordprocessingDrawing.xsd`):
|
|
5
|
+
* - `CT_Inline`, `CT_Anchor`, `EG_WrapType`
|
|
6
|
+
* - `CT_PosH` / `CT_PosV` (align XOR posOffset; relativeFrom required)
|
|
7
|
+
* - `ST_RelFromH`, `ST_RelFromV`, `ST_AlignH`, `ST_AlignV`
|
|
8
|
+
* DrawingML main: `a:xfrm` rot/flipH/flipV; `a:CT_NonVisualDrawingProps` name/descr/title
|
|
9
|
+
* Locks: `a:graphicFrameLocks/@noChangeAspect`
|
|
10
|
+
*
|
|
11
|
+
* Anchor promotion defaults mirror ink host-codec minimal Word-like anchor
|
|
12
|
+
* (distL/R 114300, relativeHeight 251658240, layoutInCell 1, allowOverlap 1,
|
|
13
|
+
* positionH column posOffset 0, positionV paragraph posOffset 0, wrapNone).
|
|
14
|
+
*
|
|
15
|
+
* @packageDocumentation
|
|
16
|
+
*/
|
|
17
|
+
import { Emus } from '../document/length';
|
|
18
|
+
import { OpenXmlElement } from '../../core/xml/index';
|
|
19
|
+
import { HorizontalAlignment as HorizontalAlignmentType, HorizontalOrigin as HorizontalOriginType, PicturePlacement as PicturePlacementType, TextWrappingStyle as TextWrappingStyleType, VerticalAlignment as VerticalAlignmentType, VerticalOrigin as VerticalOriginType } from './layout-types';
|
|
20
|
+
/**
|
|
21
|
+
* @private
|
|
22
|
+
* Decoded picture host state. */
|
|
23
|
+
export interface PictureHostState {
|
|
24
|
+
readonly placement: PicturePlacementType;
|
|
25
|
+
readonly wrapping: TextWrappingStyleType;
|
|
26
|
+
readonly widthEmu: Emus;
|
|
27
|
+
readonly heightEmu: Emus;
|
|
28
|
+
readonly relationshipId: string;
|
|
29
|
+
readonly name: string;
|
|
30
|
+
readonly title: string | undefined;
|
|
31
|
+
readonly description: string | undefined;
|
|
32
|
+
readonly lockAspectRatio: boolean;
|
|
33
|
+
readonly rotation: number;
|
|
34
|
+
readonly flipHorizontal: boolean;
|
|
35
|
+
readonly flipVertical: boolean;
|
|
36
|
+
readonly horizontalOrigin: HorizontalOriginType | undefined;
|
|
37
|
+
readonly verticalOrigin: VerticalOriginType | undefined;
|
|
38
|
+
readonly horizontalPosition: number | undefined;
|
|
39
|
+
readonly verticalPosition: number | undefined;
|
|
40
|
+
readonly horizontalAlignment: HorizontalAlignmentType | undefined;
|
|
41
|
+
readonly verticalAlignment: VerticalAlignmentType | undefined;
|
|
42
|
+
readonly docPrId: number;
|
|
43
|
+
/**
|
|
44
|
+
* DrawingML picture hyperlink relationship id (`a:hlinkClick/@r:id` on
|
|
45
|
+
* `wp:docPr` / `pic:cNvPr`), when present.
|
|
46
|
+
*/
|
|
47
|
+
readonly hyperlinkRelationshipId: string | undefined;
|
|
48
|
+
/** Original drawing element for residual preservation on dirty rebuild. */
|
|
49
|
+
readonly preservedHost: OpenXmlElement;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @private
|
|
53
|
+
* Encode input for picture host serialization. */
|
|
54
|
+
export interface EncodePictureHostInput {
|
|
55
|
+
readonly placement: PicturePlacementType;
|
|
56
|
+
readonly wrapping: TextWrappingStyleType;
|
|
57
|
+
readonly widthEmu: Emus;
|
|
58
|
+
readonly heightEmu: Emus;
|
|
59
|
+
readonly relationshipId: string;
|
|
60
|
+
readonly name: string;
|
|
61
|
+
readonly title: string | undefined;
|
|
62
|
+
readonly description: string | undefined;
|
|
63
|
+
readonly lockAspectRatio: boolean;
|
|
64
|
+
readonly rotation: number;
|
|
65
|
+
readonly flipHorizontal: boolean;
|
|
66
|
+
readonly flipVertical: boolean;
|
|
67
|
+
readonly horizontalOrigin: HorizontalOriginType;
|
|
68
|
+
readonly verticalOrigin: VerticalOriginType;
|
|
69
|
+
readonly horizontalPosition: number | undefined;
|
|
70
|
+
readonly verticalPosition: number | undefined;
|
|
71
|
+
readonly horizontalAlignment: HorizontalAlignmentType | undefined;
|
|
72
|
+
readonly verticalAlignment: VerticalAlignmentType | undefined;
|
|
73
|
+
readonly docPrId: number;
|
|
74
|
+
readonly preservedHost: OpenXmlElement | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* When true, rebuild position/wrap from modeled fields (user mutated layout).
|
|
77
|
+
* When false and preservedHost has matching placement, reuse residual position/wrap.
|
|
78
|
+
*/
|
|
79
|
+
readonly layoutDirty: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Optional external hyperlink relationship id emitted as
|
|
82
|
+
* `a:hlinkClick/@r:id` under `wp:docPr` and `pic:cNvPr`.
|
|
83
|
+
*/
|
|
84
|
+
readonly hyperlinkRelationshipId: string | undefined;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Decode a picture `w:drawing` (inline or anchor with `a:blip` embed).
|
|
88
|
+
*
|
|
89
|
+
* @private
|
|
90
|
+
*/
|
|
91
|
+
export declare function decodePictureHost(drawing: OpenXmlElement): PictureHostState | undefined;
|
|
92
|
+
/**
|
|
93
|
+
* Encode a modeled picture host into `w:drawing`.
|
|
94
|
+
*
|
|
95
|
+
* @private
|
|
96
|
+
*/
|
|
97
|
+
export declare function encodePictureHost(input: EncodePictureHostInput): OpenXmlElement;
|
|
98
|
+
/**
|
|
99
|
+
* Whether wrapping requires an anchor host.
|
|
100
|
+
*
|
|
101
|
+
* @private
|
|
102
|
+
*/
|
|
103
|
+
export declare function wrappingRequiresAnchor(wrapping: TextWrappingStyleType): boolean;
|