@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,632 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drawing shape host encode helpers (`wp:inline` / `wp:anchor` + `wps:wsp`).
|
|
3
|
+
*
|
|
4
|
+
* Schema cites:
|
|
5
|
+
* - ECMA-376-1 §20.4 `CT_Inline` / `CT_Anchor`, `wp:docPr` (`CT_NonVisualDrawingProps`)
|
|
6
|
+
* - DrawingML `a:graphic` / `a:graphicData`, `a:prstGeom` (`ST_ShapeType`)
|
|
7
|
+
* - [MS-ODRAWXML] wordprocessingShape (`wps:wsp`)
|
|
8
|
+
* - ECMA-376-3 Markup Compatibility AlternateContent Choice/Fallback
|
|
9
|
+
* - ECMA-376-4 VML `w:pict` / `v:shape` Fallback (Policy B dual AC; TASK-8050)
|
|
10
|
+
* - VML main XSD: AG_Fill (`filled`/`fillcolor`), AG_ShapeAttributes
|
|
11
|
+
* (`stroked`/`strokecolor`/`strokeweight`), AG_StrokeAttributes / `v:stroke`,
|
|
12
|
+
* CT_Textbox (`@inset`, optional `w:txbxContent`)
|
|
13
|
+
* - `vml-wordprocessingDrawing.xsd`: `w10:wrap` (`ST_WrapType`), `w10:anchorlock`
|
|
14
|
+
* - ShapeRequirements Fallback samples: style tokens, `v:stroke` joinstyle miter,
|
|
15
|
+
* DML `a:tailEnd type="triangle"` → VML `endarrow="block"`
|
|
16
|
+
*
|
|
17
|
+
* Anchor defaults mirror images host-codec (distL/R 114300, relativeHeight
|
|
18
|
+
* 251658240, layoutInCell 1, allowOverlap 1, positionH column 0, positionV
|
|
19
|
+
* paragraph 0, wrapNone).
|
|
20
|
+
*
|
|
21
|
+
* @packageDocumentation
|
|
22
|
+
*/
|
|
23
|
+
import { BodyBlockParseContext } from '../../core/registry/block-handlers';
|
|
24
|
+
import { BlockContent } from '../document/paragraph';
|
|
25
|
+
import { Emus } from '../document/length';
|
|
26
|
+
import { OpenXmlElement } from '../../core/xml/index';
|
|
27
|
+
import { HorizontalAlignment as HorizontalAlignmentType, HorizontalOrigin as HorizontalOriginType, TextWrappingStyle as TextWrappingStyleType, TextWrappingType as TextWrappingTypeType, VerticalAlignment as VerticalAlignmentType, VerticalOrigin as VerticalOriginType } from '../images/layout-types';
|
|
28
|
+
import { LineCap, LineEndSize, LineEndType, LineDashing } from './sp-pr';
|
|
29
|
+
/**
|
|
30
|
+
* @private
|
|
31
|
+
*/
|
|
32
|
+
export declare const WP_NS = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing";
|
|
33
|
+
/**
|
|
34
|
+
* @private
|
|
35
|
+
*/
|
|
36
|
+
export declare const A_NS = "http://schemas.openxmlformats.org/drawingml/2006/main";
|
|
37
|
+
/**
|
|
38
|
+
* @private
|
|
39
|
+
*/
|
|
40
|
+
export declare const R_NS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
|
|
41
|
+
/**
|
|
42
|
+
* @private
|
|
43
|
+
*/
|
|
44
|
+
export declare const WPS_NS = "http://schemas.microsoft.com/office/word/2010/wordprocessingShape";
|
|
45
|
+
/**
|
|
46
|
+
* @private
|
|
47
|
+
*/
|
|
48
|
+
export declare const WPG_NS = "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup";
|
|
49
|
+
/**
|
|
50
|
+
* @private
|
|
51
|
+
*/
|
|
52
|
+
export declare const WPC_NS = "http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas";
|
|
53
|
+
/**
|
|
54
|
+
* @private
|
|
55
|
+
*/
|
|
56
|
+
export declare const VML_NS = "urn:schemas-microsoft-com:vml";
|
|
57
|
+
/**
|
|
58
|
+
* Word VML extensions namespace (`vml-wordprocessingDrawing.xsd` targetNamespace).
|
|
59
|
+
* Used for `w10:wrap` / `w10:anchorlock` on authored Fallback shapes.
|
|
60
|
+
*
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
export declare const W10_NS = "urn:schemas-microsoft-com:office:word";
|
|
64
|
+
/**
|
|
65
|
+
* @private
|
|
66
|
+
*/
|
|
67
|
+
export declare const MC_NS = "http://schemas.openxmlformats.org/markup-compatibility/2006";
|
|
68
|
+
/**
|
|
69
|
+
* ST_Angle: 60000ths of a degree (ECMA-376 DrawingML `dml-main` CT_Transform2D).
|
|
70
|
+
* Same unit as images host-codec; local copy avoids drawing→images encode coupling.
|
|
71
|
+
*
|
|
72
|
+
* @private
|
|
73
|
+
*/
|
|
74
|
+
export declare const ROTATION_UNITS_PER_DEGREE = 60000;
|
|
75
|
+
/**
|
|
76
|
+
* @private
|
|
77
|
+
*/
|
|
78
|
+
export declare type DrawingHostPlacement = 'inline' | 'anchor';
|
|
79
|
+
/**
|
|
80
|
+
* @private
|
|
81
|
+
* Author / rebuild input for dual AC shape host. */
|
|
82
|
+
export interface EncodeDrawingShapeInput {
|
|
83
|
+
readonly placement: DrawingHostPlacement;
|
|
84
|
+
readonly widthEmu: Emus;
|
|
85
|
+
readonly heightEmu: Emus;
|
|
86
|
+
readonly presetGeometry: string;
|
|
87
|
+
readonly docPrId: number;
|
|
88
|
+
readonly name: string;
|
|
89
|
+
readonly title: string | undefined;
|
|
90
|
+
readonly description: string | undefined;
|
|
91
|
+
/** Clockwise degrees; wire `a:xfrm/@rot` = round(deg × 60000). Default 0. */
|
|
92
|
+
readonly rotation?: number;
|
|
93
|
+
/** `a:xfrm/@flipH`. Default false. */
|
|
94
|
+
readonly flipHorizontal?: boolean;
|
|
95
|
+
/** `a:xfrm/@flipV`. Default false. */
|
|
96
|
+
readonly flipVertical?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* `a:graphicFrameLocks/@noChangeAspect`.
|
|
99
|
+
* Author default true (images parity); omit locks attr when false.
|
|
100
|
+
*/
|
|
101
|
+
readonly lockAspectRatio?: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Text wrapping style. `inline` forces `wp:inline`; other values force `wp:anchor`
|
|
104
|
+
* with the matching wrap child. Default: `inline` when placement is inline, else `none`.
|
|
105
|
+
*/
|
|
106
|
+
readonly wrapping?: TextWrappingStyleType;
|
|
107
|
+
/** `wp:wrapSquare|wrapTight|wrapThrough/@wrapText`. Default bothSides. */
|
|
108
|
+
readonly wrapType?: TextWrappingTypeType;
|
|
109
|
+
/** `wp:inline|wp:anchor/@distT` EMU. Inline author default 0; anchor default 0. */
|
|
110
|
+
readonly distanceTopEmu?: Emus;
|
|
111
|
+
/** `wp:inline|wp:anchor/@distB` EMU. */
|
|
112
|
+
readonly distanceBottomEmu?: Emus;
|
|
113
|
+
/** `wp:inline|wp:anchor/@distL` EMU. Inline default 0; anchor default 114300. */
|
|
114
|
+
readonly distanceLeftEmu?: Emus;
|
|
115
|
+
/** `wp:inline|wp:anchor/@distR` EMU. Inline default 0; anchor default 114300. */
|
|
116
|
+
readonly distanceRightEmu?: Emus;
|
|
117
|
+
/**
|
|
118
|
+
* `wp:anchor/@behindDoc` (0/1). Ignored for inline hosts.
|
|
119
|
+
* Author default false.
|
|
120
|
+
*/
|
|
121
|
+
readonly behindDocument?: boolean;
|
|
122
|
+
/**
|
|
123
|
+
* `wp:positionH/@relativeFrom` (`ST_RelFromH`). When undefined, the encoder
|
|
124
|
+
* falls back to the residual `@relativeFrom`, then `'column'` (images parity).
|
|
125
|
+
*/
|
|
126
|
+
readonly horizontalOrigin?: HorizontalOriginType;
|
|
127
|
+
/**
|
|
128
|
+
* `wp:positionV/@relativeFrom` (`ST_RelFromV`). Fallback: residual, then
|
|
129
|
+
* `'paragraph'` (images parity).
|
|
130
|
+
*/
|
|
131
|
+
readonly verticalOrigin?: VerticalOriginType;
|
|
132
|
+
/**
|
|
133
|
+
* `wp:positionH/wp:posOffset` EMU text. When undefined, the encoder emits the
|
|
134
|
+
* residual offset, else offset `0` unless {@link horizontalAlignment} is set.
|
|
135
|
+
* Negative values are schema-legal (`ST_PositionOffset` = xsd:int).
|
|
136
|
+
*/
|
|
137
|
+
readonly horizontalPositionEmu?: Emus;
|
|
138
|
+
/** `wp:positionV/wp:posOffset` EMU (fallback: residual, then `0`). */
|
|
139
|
+
readonly verticalPositionEmu?: Emus;
|
|
140
|
+
/**
|
|
141
|
+
* `wp:positionH/wp:align` (`ST_AlignH`). XOR with posOffset per `CT_PosH`.
|
|
142
|
+
*/
|
|
143
|
+
readonly horizontalAlignment?: HorizontalAlignmentType;
|
|
144
|
+
/**
|
|
145
|
+
* `wp:positionV/wp:align` (`ST_AlignV`). XOR with posOffset per `CT_PosV`.
|
|
146
|
+
*/
|
|
147
|
+
readonly verticalAlignment?: VerticalAlignmentType;
|
|
148
|
+
/**
|
|
149
|
+
* `wp:anchor/@locked` (anchor position frozen for editing apps). Ignored for
|
|
150
|
+
* inline hosts. Author default false.
|
|
151
|
+
*/
|
|
152
|
+
readonly lockAnchor?: boolean;
|
|
153
|
+
/** `wp:anchor/@allowOverlap`. Author default true. */
|
|
154
|
+
readonly allowOverlap?: boolean;
|
|
155
|
+
/** `wp:anchor/@layoutInCell`. Author default true. */
|
|
156
|
+
readonly layoutInCell?: boolean;
|
|
157
|
+
/**
|
|
158
|
+
* Explicit horizontal position mode override. When true, `wp:positionH` is
|
|
159
|
+
* rebuilt from {@link horizontalOrigin}/`posOffset`/`align` fields; when
|
|
160
|
+
* false/undefined the residual position is preserved when available.
|
|
161
|
+
* @private
|
|
162
|
+
*/
|
|
163
|
+
readonly horizontalModeled?: boolean;
|
|
164
|
+
/**
|
|
165
|
+
* See {@link EncodeDrawingShapeInput.horizontalModeled}.
|
|
166
|
+
* @private
|
|
167
|
+
*/
|
|
168
|
+
readonly verticalModeled?: boolean;
|
|
169
|
+
/**
|
|
170
|
+
* Fill MVP for authored/rebuilt spPr: solid sRGB or none. When undefined and
|
|
171
|
+
* a residual spPr fill exists, the residual fill element is preserved.
|
|
172
|
+
* @private
|
|
173
|
+
*/
|
|
174
|
+
readonly fill?: {
|
|
175
|
+
readonly kind: 'solid';
|
|
176
|
+
readonly srgb: string;
|
|
177
|
+
/** DrawingML `a:alpha/@val` (0…100000). Omitted = opaque. */
|
|
178
|
+
readonly alpha?: number | undefined;
|
|
179
|
+
} | {
|
|
180
|
+
readonly kind: 'none';
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* Line MVP for authored/rebuilt spPr. When undefined and a residual `a:ln`
|
|
184
|
+
* exists, the residual line element is preserved.
|
|
185
|
+
* @private
|
|
186
|
+
*/
|
|
187
|
+
readonly line?: {
|
|
188
|
+
readonly kind: 'solid';
|
|
189
|
+
readonly widthEmu?: Emus | undefined;
|
|
190
|
+
readonly srgb: string;
|
|
191
|
+
readonly dash?: LineDashing | undefined;
|
|
192
|
+
readonly cap?: LineCap | undefined;
|
|
193
|
+
readonly beginArrowType?: LineEndType | undefined;
|
|
194
|
+
readonly beginArrowSize?: LineEndSize | undefined;
|
|
195
|
+
readonly endArrowType?: LineEndType | undefined;
|
|
196
|
+
readonly endArrowSize?: LineEndSize | undefined;
|
|
197
|
+
} | {
|
|
198
|
+
readonly kind: 'none';
|
|
199
|
+
readonly widthEmu?: Emus | undefined;
|
|
200
|
+
readonly cap?: LineCap | undefined;
|
|
201
|
+
};
|
|
202
|
+
/**
|
|
203
|
+
* Original drawing residual for preserving wrap / position / host attrs when
|
|
204
|
+
* rebuild does not dirty modeled layout.
|
|
205
|
+
*/
|
|
206
|
+
readonly preservedHost?: OpenXmlElement;
|
|
207
|
+
/**
|
|
208
|
+
* When true, rebuild wrap (and modeled distances / behindDoc) from input fields.
|
|
209
|
+
* When false and preservedHost has a matching anchor, reuse residual wrap child.
|
|
210
|
+
*/
|
|
211
|
+
readonly layoutDirty?: boolean;
|
|
212
|
+
/**
|
|
213
|
+
* Serialize a text box variant: emit `wps:txbx` (with `w:txbxContent`
|
|
214
|
+
* children) and `wps:bodyPr` on `wps:wsp` (TASK-8049).
|
|
215
|
+
*
|
|
216
|
+
* `CT_WordprocessingShape` order: cNvPr? → cNvSpPr/cNvCnPr → spPr → style? →
|
|
217
|
+
* extLst? → (txbx | linkedTxbx)? → bodyPr (minOccurs 1).
|
|
218
|
+
* When undefined and the preserved host has a residual `wps:txbx`, the
|
|
219
|
+
* residual txbx is cloned verbatim (body preserved, content not rebuilt).
|
|
220
|
+
* @private
|
|
221
|
+
*/
|
|
222
|
+
readonly txbxContent?: ReadonlyArray<OpenXmlElement> | undefined;
|
|
223
|
+
/**
|
|
224
|
+
* Modeled `wps:bodyPr` (`CT_TextBodyProperties` — TASK-8049). Always emitted
|
|
225
|
+
* (schema minOccurs=1) on the authored/rebuilt wsp; empty element when no
|
|
226
|
+
* field is modeled.
|
|
227
|
+
*/
|
|
228
|
+
readonly bodyPr?: OpenXmlElement | undefined;
|
|
229
|
+
/**
|
|
230
|
+
* Nested child elements under top-level `wpg:wgp` (TASK-8051). When defined,
|
|
231
|
+
* {@link buildGraphic} emits `a:graphicData @uri=WPG` + `wpg:wgp` instead of
|
|
232
|
+
* a leaf `wps:wsp`. Empty array authors an empty group.
|
|
233
|
+
* @private
|
|
234
|
+
*/
|
|
235
|
+
readonly groupChildElements?: ReadonlyArray<OpenXmlElement> | undefined;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Author / rebuild input for dual AC wordprocessing group host (TASK-8051).
|
|
239
|
+
* Identity lives on `wp:docPr`; children are bare nested `wps:wsp` / `wpg:grpSp`.
|
|
240
|
+
*
|
|
241
|
+
* @private
|
|
242
|
+
*/
|
|
243
|
+
export interface EncodeGroupInput {
|
|
244
|
+
readonly placement: DrawingHostPlacement;
|
|
245
|
+
readonly widthEmu: Emus;
|
|
246
|
+
readonly heightEmu: Emus;
|
|
247
|
+
readonly docPrId: number;
|
|
248
|
+
readonly name: string;
|
|
249
|
+
readonly title?: string | undefined;
|
|
250
|
+
readonly description?: string | undefined;
|
|
251
|
+
readonly rotation?: number | undefined;
|
|
252
|
+
readonly flipHorizontal?: boolean | undefined;
|
|
253
|
+
readonly flipVertical?: boolean | undefined;
|
|
254
|
+
readonly lockAspectRatio?: boolean | undefined;
|
|
255
|
+
readonly wrapping?: TextWrappingStyleType | undefined;
|
|
256
|
+
readonly distanceTopEmu?: Emus | undefined;
|
|
257
|
+
readonly distanceBottomEmu?: Emus | undefined;
|
|
258
|
+
readonly distanceLeftEmu?: Emus | undefined;
|
|
259
|
+
readonly distanceRightEmu?: Emus | undefined;
|
|
260
|
+
readonly behindDocument?: boolean | undefined;
|
|
261
|
+
readonly horizontalOrigin?: HorizontalOriginType | undefined;
|
|
262
|
+
readonly verticalOrigin?: VerticalOriginType | undefined;
|
|
263
|
+
readonly horizontalPositionEmu?: Emus | undefined;
|
|
264
|
+
readonly verticalPositionEmu?: Emus | undefined;
|
|
265
|
+
readonly horizontalAlignment?: HorizontalAlignmentType | undefined;
|
|
266
|
+
readonly verticalAlignment?: VerticalAlignmentType | undefined;
|
|
267
|
+
readonly lockAnchor?: boolean | undefined;
|
|
268
|
+
readonly allowOverlap?: boolean | undefined;
|
|
269
|
+
readonly layoutInCell?: boolean | undefined;
|
|
270
|
+
readonly horizontalModeled?: boolean | undefined;
|
|
271
|
+
readonly verticalModeled?: boolean | undefined;
|
|
272
|
+
readonly preservedHost?: OpenXmlElement | undefined;
|
|
273
|
+
readonly layoutDirty?: boolean | undefined;
|
|
274
|
+
/** Nested bare `wps:wsp` / `wpg:grpSp` children (may be empty). */
|
|
275
|
+
readonly children: ReadonlyArray<OpenXmlElement>;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* @private
|
|
279
|
+
* Wrap + distance state read from residual DrawingML host. */
|
|
280
|
+
export interface DrawingWrapState {
|
|
281
|
+
readonly placement: DrawingHostPlacement | undefined;
|
|
282
|
+
readonly wrapping: TextWrappingStyleType;
|
|
283
|
+
/**
|
|
284
|
+
* Effective `wrapText` for square/tight/through hosts.
|
|
285
|
+
* Absent attribute → Both; unrecognized token → Unknown; styles without wrapText → Both.
|
|
286
|
+
*/
|
|
287
|
+
readonly wrapType: TextWrappingTypeType;
|
|
288
|
+
readonly distanceTopEmu: Emus | undefined;
|
|
289
|
+
readonly distanceBottomEmu: Emus | undefined;
|
|
290
|
+
readonly distanceLeftEmu: Emus | undefined;
|
|
291
|
+
readonly distanceRightEmu: Emus | undefined;
|
|
292
|
+
readonly behindDocument: boolean;
|
|
293
|
+
readonly lockAnchor: boolean;
|
|
294
|
+
readonly allowOverlap: boolean;
|
|
295
|
+
readonly layoutInCell: boolean;
|
|
296
|
+
readonly presetGeometry: string | undefined;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* @private
|
|
300
|
+
* H/V position state read from residual DrawingML host. */
|
|
301
|
+
export interface DrawingPositionState {
|
|
302
|
+
readonly horizontalOrigin: HorizontalOriginType | undefined;
|
|
303
|
+
readonly verticalOrigin: VerticalOriginType | undefined;
|
|
304
|
+
readonly horizontalPosition: number | undefined;
|
|
305
|
+
readonly verticalPosition: number | undefined;
|
|
306
|
+
/** EMU form of {@link DrawingPositionState.horizontalPosition}. */
|
|
307
|
+
readonly horizontalPositionEmu: Emus | undefined;
|
|
308
|
+
/** EMU form of {@link DrawingPositionState.verticalPosition}. */
|
|
309
|
+
readonly verticalPositionEmu: Emus | undefined;
|
|
310
|
+
readonly horizontalAlignment: HorizontalAlignmentType | undefined;
|
|
311
|
+
readonly verticalAlignment: VerticalAlignmentType | undefined;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* @private
|
|
315
|
+
* Identity fields patched onto residual `wp:docPr`. */
|
|
316
|
+
export interface DrawingDocPrIdentity {
|
|
317
|
+
readonly name: string | undefined;
|
|
318
|
+
readonly title: string | undefined;
|
|
319
|
+
readonly description: string | undefined;
|
|
320
|
+
readonly docPrId: number | undefined;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* @private
|
|
324
|
+
* Layout fields for residual hydrate / layout dirty patch. */
|
|
325
|
+
export interface DrawingLayoutState {
|
|
326
|
+
readonly widthEmu: Emus | undefined;
|
|
327
|
+
readonly heightEmu: Emus | undefined;
|
|
328
|
+
readonly rotation: number;
|
|
329
|
+
readonly flipHorizontal: boolean;
|
|
330
|
+
readonly flipVertical: boolean;
|
|
331
|
+
readonly lockAspectRatio: boolean;
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* @private
|
|
335
|
+
* Layout patch payload (identity optional when only structure-adjacent). */
|
|
336
|
+
export interface DrawingLayoutPatch extends DrawingDocPrIdentity {
|
|
337
|
+
readonly widthEmu: Emus;
|
|
338
|
+
readonly heightEmu: Emus;
|
|
339
|
+
readonly rotation: number;
|
|
340
|
+
readonly flipHorizontal: boolean;
|
|
341
|
+
readonly flipVertical: boolean;
|
|
342
|
+
readonly lockAspectRatio: boolean;
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* @private
|
|
346
|
+
*/
|
|
347
|
+
export declare function findFirstElement(root: OpenXmlElement, namespaceUri: string, localName: string): OpenXmlElement | undefined;
|
|
348
|
+
/**
|
|
349
|
+
* @private
|
|
350
|
+
*/
|
|
351
|
+
export declare function attributeValue(el: OpenXmlElement, namespaceUri: string, localName: string): string | undefined;
|
|
352
|
+
/**
|
|
353
|
+
* Locate the residual `wps:spPr` for fill/line preservation on rebuild.
|
|
354
|
+
* Residual hosts nest `wps:spPr` under dual MC / `w:drawing` / `wp:*` /
|
|
355
|
+
* `a:graphic` / `wps:wsp`, so lookup is deep.
|
|
356
|
+
*
|
|
357
|
+
* @private
|
|
358
|
+
*/
|
|
359
|
+
export declare function findResidualSpPr(preservedHost: OpenXmlElement | undefined): OpenXmlElement | undefined;
|
|
360
|
+
/**
|
|
361
|
+
* Build `wps:txbx` (`CT_TextboxInfo`) from serialized `w:txbxContent` children.
|
|
362
|
+
*
|
|
363
|
+
* Schema: `CT_TextboxInfo` = sequence `txbxContent` (minOccurs 1) + optional
|
|
364
|
+
* `extLst`; optional `@id` (default 0). `w:txbxContent` is
|
|
365
|
+
* `EG_BlockLevelElts` minOccurs 1 — the body must not be empty (Word authors
|
|
366
|
+
* at least one `w:p`; go6 author minimum matches).
|
|
367
|
+
*
|
|
368
|
+
* Cites:
|
|
369
|
+
* `specs/schemas/xsd/OfficeOpenXML-XMLSchema-Transitional/dml-wordprocessingDrawing.xsd`
|
|
370
|
+
* `CT_TxbxContent` / `CT_TextboxInfo`.
|
|
371
|
+
*
|
|
372
|
+
* @private
|
|
373
|
+
*/
|
|
374
|
+
export declare function buildTxbxElement(contentChildren: ReadonlyArray<OpenXmlElement>): OpenXmlElement;
|
|
375
|
+
/**
|
|
376
|
+
* Serialize modeled `w:txbxContent` block state into `txbxContent` element
|
|
377
|
+
* children. Modeled paragraphs/tables/SDTs emit their DOM form; residual
|
|
378
|
+
* blocks (opaque XML not owned by a registered feature) pass through verbatim
|
|
379
|
+
* — the library never invents block OOXML it does not model.
|
|
380
|
+
*
|
|
381
|
+
* @private
|
|
382
|
+
*/
|
|
383
|
+
export declare function serializeTxbxContentBlocks(blocks: ReadonlyArray<TxbxBlock>): OpenXmlElement[];
|
|
384
|
+
/**
|
|
385
|
+
* Block model alias for text box content (same core block union).
|
|
386
|
+
* @private
|
|
387
|
+
*/
|
|
388
|
+
export declare type TxbxBlock = BlockContent;
|
|
389
|
+
/**
|
|
390
|
+
* Parse `w:txbxContent` children into core block state.
|
|
391
|
+
*
|
|
392
|
+
* Uses the same `parseBodyBlocks` path as headers/footers and table cells:
|
|
393
|
+
* `w:p` → modeled `Paragraph`; `w:tbl` → modeled `Table` **only when the
|
|
394
|
+
* tables feature is registered**; `w:sdt` → modeled SDT **only when the
|
|
395
|
+
* content-controls feature is registered**; everything else (and any block
|
|
396
|
+
* whose feature is unregistered) stays residual-opaque — never dropped, never
|
|
397
|
+
* invented (GO Q6; offline policy).
|
|
398
|
+
*
|
|
399
|
+
* @private
|
|
400
|
+
*/
|
|
401
|
+
export declare function parseTxbxContentBlocks(txbxContent: OpenXmlElement, ctx: BodyBlockParseContext): TxbxBlock[];
|
|
402
|
+
/**
|
|
403
|
+
* Whether any `wps:wsp` under the host carries a `wps:txbx` (or `linkedTxbx`)
|
|
404
|
+
* child — deep walk so dual MC Choice branches resolve.
|
|
405
|
+
*
|
|
406
|
+
* @private
|
|
407
|
+
*/
|
|
408
|
+
export declare function residualHasTxbx(host: OpenXmlElement | undefined): boolean;
|
|
409
|
+
/**
|
|
410
|
+
* Build top-level `wpg:wgp` group shape for graphicData (TASK-8051).
|
|
411
|
+
*
|
|
412
|
+
* Top-level wgp has no `cNvPr` (identity lives on `wp:docPr`). Nested groups
|
|
413
|
+
* use `wpg:grpSp` with `cNvPr` — authored via residual clone or nested
|
|
414
|
+
* structure paths, not this builder.
|
|
415
|
+
*
|
|
416
|
+
* Cites: [MS-ODRAWXML] §2.16.3.2 CT_WordprocessingGroup —
|
|
417
|
+
* `cNvGrpSpPr?`, `grpSpPr`, then `(wsp|grpSp|graphicFrame|contentPart|spTree)*`.
|
|
418
|
+
*
|
|
419
|
+
* @private
|
|
420
|
+
*/
|
|
421
|
+
export declare function buildWpgGroup(input: EncodeDrawingShapeInput): OpenXmlElement;
|
|
422
|
+
/**
|
|
423
|
+
* Build a nested bare `wps:wsp` for group/canvas children (TASK-8051).
|
|
424
|
+
* Carries `wps:cNvPr` identity after `wps:cNvSpPr` (fixture / Word order used
|
|
425
|
+
* by TASK-8051 tests). No dual AC wrapper — nested children are bare wsp.
|
|
426
|
+
*
|
|
427
|
+
* @private
|
|
428
|
+
*/
|
|
429
|
+
export declare function buildNestedWpsShape(input: EncodeDrawingShapeInput): OpenXmlElement;
|
|
430
|
+
/**
|
|
431
|
+
* Parse wrapping from residual host placement.
|
|
432
|
+
*
|
|
433
|
+
* @private
|
|
434
|
+
*/
|
|
435
|
+
export declare function parseDrawingWrapping(host: OpenXmlElement, placement: DrawingHostPlacement): TextWrappingStyleType;
|
|
436
|
+
/**
|
|
437
|
+
* Parse `wp:wrapSquare|wrapTight|wrapThrough/@wrapText`.
|
|
438
|
+
* Absent → Both (schema default); wire token → token; other → Unknown.
|
|
439
|
+
*
|
|
440
|
+
* @private
|
|
441
|
+
*/
|
|
442
|
+
export declare function parseWrapTextAttr(wrapEl: OpenXmlElement | undefined): TextWrappingTypeType;
|
|
443
|
+
/**
|
|
444
|
+
* Build wrap element from modeled style.
|
|
445
|
+
* Tight/through require wrapPolygon; without residual polygon, fall back to wrapNone
|
|
446
|
+
* (library does not invent polygons — images parity).
|
|
447
|
+
* When residual matches style but modeled wire wrapType differs, rebuild with
|
|
448
|
+
* corrected wrapText and preserve residual children/attrs.
|
|
449
|
+
*
|
|
450
|
+
* @private
|
|
451
|
+
*/
|
|
452
|
+
export declare function buildWrapElement(wrapping: TextWrappingStyleType, residualWrap: OpenXmlElement | undefined, wrapType?: TextWrappingTypeType): OpenXmlElement;
|
|
453
|
+
/**
|
|
454
|
+
* Locate residual `wp:positionH` / `wp:positionV` children of an anchor.
|
|
455
|
+
*
|
|
456
|
+
* Children are preserved as-is (unknown `@relativeFrom` tokens or extra
|
|
457
|
+
* position children stay byte-identical on rebuild that does not model them).
|
|
458
|
+
*
|
|
459
|
+
* @private
|
|
460
|
+
*/
|
|
461
|
+
export declare function findResidualPositions(anchor: OpenXmlElement | undefined): {
|
|
462
|
+
readonly positionH: OpenXmlElement | undefined;
|
|
463
|
+
readonly positionV: OpenXmlElement | undefined;
|
|
464
|
+
};
|
|
465
|
+
/**
|
|
466
|
+
* Build modeled `wp:positionH` (`CT_PosH`).
|
|
467
|
+
*
|
|
468
|
+
* Tokens: `ST_RelFromH` / `ST_AlignH` are imported, not invented (GO Q1 —
|
|
469
|
+
* `src/features/images/layout-types.ts`). Align XOR posOffset follows the
|
|
470
|
+
* `CT_PosH` schema choice. `ST_PositionOffset` is `xsd:int` (negative EMU
|
|
471
|
+
* legal). Default origin `'column'`; offset default `0` (images parity).
|
|
472
|
+
*
|
|
473
|
+
* @private
|
|
474
|
+
*/
|
|
475
|
+
export declare function buildDrawingPositionH(input: {
|
|
476
|
+
readonly horizontalOrigin?: HorizontalOriginType | undefined;
|
|
477
|
+
readonly horizontalPositionEmu?: Emus | undefined;
|
|
478
|
+
readonly horizontalAlignment?: HorizontalAlignmentType | undefined;
|
|
479
|
+
}): OpenXmlElement;
|
|
480
|
+
/**
|
|
481
|
+
* Build modeled `wp:positionV` (`CT_PosV`). Default origin `'paragraph'`;
|
|
482
|
+
* offset default `0` (images parity).
|
|
483
|
+
*
|
|
484
|
+
* @private
|
|
485
|
+
*/
|
|
486
|
+
export declare function buildDrawingPositionV(input: {
|
|
487
|
+
readonly verticalOrigin?: VerticalOriginType;
|
|
488
|
+
readonly verticalPositionEmu?: Emus;
|
|
489
|
+
readonly verticalAlignment?: VerticalAlignmentType;
|
|
490
|
+
}): OpenXmlElement;
|
|
491
|
+
/**
|
|
492
|
+
* Read wrapping, distances, behindDoc, and preset geometry from residual DrawingML.
|
|
493
|
+
*
|
|
494
|
+
* @private
|
|
495
|
+
*/
|
|
496
|
+
export declare function readDrawingWrapState(residual: OpenXmlElement): DrawingWrapState;
|
|
497
|
+
/**
|
|
498
|
+
* Read `wp:positionH` / `wp:positionV` from residual DrawingML.
|
|
499
|
+
*
|
|
500
|
+
* Tokens are validated against images `layout-types` sets (GO Q1 import);
|
|
501
|
+
* unknown `@relativeFrom` or align text is dropped (not preserved into the
|
|
502
|
+
* typed model) so the encoder never writes an invented token.
|
|
503
|
+
*
|
|
504
|
+
* @private
|
|
505
|
+
*/
|
|
506
|
+
export declare function readDrawingPositionState(residual: OpenXmlElement): DrawingPositionState;
|
|
507
|
+
/**
|
|
508
|
+
* Resolve effective placement from modeled wrap + requested placement.
|
|
509
|
+
* Inline wrap forces `wp:inline`; other wraps force `wp:anchor`.
|
|
510
|
+
*
|
|
511
|
+
* @private
|
|
512
|
+
*/
|
|
513
|
+
export declare function effectiveDrawingPlacement(placement: DrawingHostPlacement, wrapping: TextWrappingStyleType | undefined): DrawingHostPlacement;
|
|
514
|
+
/**
|
|
515
|
+
* Resolve effective wrapping for encode. Anchor + Inline wrap coerces to None.
|
|
516
|
+
*
|
|
517
|
+
* @private
|
|
518
|
+
*/
|
|
519
|
+
export declare function effectiveDrawingWrapping(placement: DrawingHostPlacement, wrapping: TextWrappingStyleType | undefined): TextWrappingStyleType;
|
|
520
|
+
/** True when any anchor-option field is explicitly modeled. */
|
|
521
|
+
/**
|
|
522
|
+
* Whether the caller explicitly modeled a position mode (offset or align).
|
|
523
|
+
* Hydrated-from-residual values do NOT count: rebuilt wire must preserve the
|
|
524
|
+
* residual axis bytes untouched unless the user intervened on that axis.
|
|
525
|
+
*
|
|
526
|
+
* @private
|
|
527
|
+
*/
|
|
528
|
+
export declare function usedModeledPositionMode(input: EncodeDrawingShapeInput): {
|
|
529
|
+
readonly horizontal: boolean;
|
|
530
|
+
readonly vertical: boolean;
|
|
531
|
+
};
|
|
532
|
+
/**
|
|
533
|
+
* Read size/transform/lock from preferred DrawingML host.
|
|
534
|
+
* Public size prefers `wp:extent`; xfrm ext is residual until size dirty.
|
|
535
|
+
*
|
|
536
|
+
* @private
|
|
537
|
+
*/
|
|
538
|
+
export declare function readDrawingLayout(root: OpenXmlElement): DrawingLayoutState;
|
|
539
|
+
/**
|
|
540
|
+
* Corpus-backed VML Fallback pict tree (Policy B dual AC — TASK-8050).
|
|
541
|
+
*
|
|
542
|
+
* Emits `w:pict` > `v:shape` with style, fill/stroke attrs, optional `v:stroke`,
|
|
543
|
+
* `w10:wrap` / `w10:anchorlock`, and `v:textbox` (cloned txbxContent) when modeled.
|
|
544
|
+
* Does not invent shapetype paths or execute VML.
|
|
545
|
+
*
|
|
546
|
+
* @private
|
|
547
|
+
*/
|
|
548
|
+
export declare function buildVmlFallbackStub(input: EncodeDrawingShapeInput): OpenXmlElement;
|
|
549
|
+
/**
|
|
550
|
+
* Build `w:drawing` with `wp:inline` or `wp:anchor` host (Choice body only).
|
|
551
|
+
* Wrapping drives host kind: Inline ⇒ inline; other styles ⇒ anchor.
|
|
552
|
+
*
|
|
553
|
+
* @private
|
|
554
|
+
*/
|
|
555
|
+
export declare function buildDrawingMlHost(input: EncodeDrawingShapeInput): OpenXmlElement;
|
|
556
|
+
/**
|
|
557
|
+
* Author dual AC root: Choice(wps DrawingML) + Fallback(VML pict tree).
|
|
558
|
+
* Policy B (GO Q2/Q3/Q7) — TASK-8050 corpus-backed VML Fallback.
|
|
559
|
+
*
|
|
560
|
+
* @private
|
|
561
|
+
*/
|
|
562
|
+
export declare function encodeAuthoredDrawingShape(input: EncodeDrawingShapeInput): OpenXmlElement;
|
|
563
|
+
/**
|
|
564
|
+
* Author dual AC root for a wordprocessing group: Choice(wpg DrawingML) +
|
|
565
|
+
* Fallback(VML pict stub). Policy B — TASK-8051.
|
|
566
|
+
*
|
|
567
|
+
* Top-level graphicData uri = WPG; body is `wpg:wgp` without cNvPr.
|
|
568
|
+
* xmlns:wpg is declared on AlternateContent so Requires="wpg" resolves;
|
|
569
|
+
* xmlns:wps is kept so nested authored `wps:wsp` children resolve.
|
|
570
|
+
*
|
|
571
|
+
* @private
|
|
572
|
+
*/
|
|
573
|
+
export declare function encodeAuthoredGroup(input: EncodeGroupInput): OpenXmlElement;
|
|
574
|
+
/**
|
|
575
|
+
* Locate preferred DrawingML `w:drawing` for typed reads.
|
|
576
|
+
* Prefer MC Choice branch when residual is AlternateContent.
|
|
577
|
+
*
|
|
578
|
+
* @private
|
|
579
|
+
*/
|
|
580
|
+
export declare function preferredDrawingElement(root: OpenXmlElement): OpenXmlElement | undefined;
|
|
581
|
+
/**
|
|
582
|
+
* Read `wp:docPr` identity from preferred drawing host.
|
|
583
|
+
*
|
|
584
|
+
* @private
|
|
585
|
+
*/
|
|
586
|
+
export declare function readDocPrIdentity(root: OpenXmlElement): {
|
|
587
|
+
name: string | undefined;
|
|
588
|
+
title: string | undefined;
|
|
589
|
+
description: string | undefined;
|
|
590
|
+
docPrId: number | undefined;
|
|
591
|
+
};
|
|
592
|
+
/**
|
|
593
|
+
* Deep-clone residual and patch `wp:docPr` identity attributes only (identity dirty).
|
|
594
|
+
*
|
|
595
|
+
* @private
|
|
596
|
+
*/
|
|
597
|
+
export declare function patchResidualDocPr(residual: OpenXmlElement, identity: DrawingDocPrIdentity): OpenXmlElement;
|
|
598
|
+
/**
|
|
599
|
+
* Deep-clone residual and patch layout: `wp:extent`, `a:xfrm` (rot/flip/ext),
|
|
600
|
+
* `a:graphicFrameLocks/@noChangeAspect`, and optional `wp:docPr` identity.
|
|
601
|
+
* Preserves `wp:effectExtent` and other unmodeled siblings (layout dirty path).
|
|
602
|
+
*
|
|
603
|
+
* @private
|
|
604
|
+
*/
|
|
605
|
+
export declare function patchResidualLayout(residual: OpenXmlElement, layout: DrawingLayoutPatch): OpenXmlElement;
|
|
606
|
+
/**
|
|
607
|
+
* True when root is MC AlternateContent owned by drawing (Choice with drawing, not picture/ink).
|
|
608
|
+
*
|
|
609
|
+
* @private
|
|
610
|
+
*/
|
|
611
|
+
export declare function isDrawingAlternateContent(root: OpenXmlElement): boolean;
|
|
612
|
+
/**
|
|
613
|
+
* True when residual is a nested bare drawing child (`wps:wsp` or `wpg:grpSp`)
|
|
614
|
+
* rather than a top-level `w:drawing` / MC host (TASK-8051). Nested identity
|
|
615
|
+
* lives on `wps:cNvPr` / `wpg:cNvPr`, not `wp:docPr`.
|
|
616
|
+
*
|
|
617
|
+
* @private
|
|
618
|
+
*/
|
|
619
|
+
export declare function isNestedDrawingResidual(root: OpenXmlElement): boolean;
|
|
620
|
+
/**
|
|
621
|
+
* Read nested `cNvPr` identity from bare `wps:wsp` / `wpg:grpSp` residual.
|
|
622
|
+
*
|
|
623
|
+
* @private
|
|
624
|
+
*/
|
|
625
|
+
export declare function readCNvPrIdentity(root: OpenXmlElement): DrawingDocPrIdentity;
|
|
626
|
+
/**
|
|
627
|
+
* Deep-clone nested residual and patch `cNvPr` identity attributes only
|
|
628
|
+
* (identity dirty on group/canvas children — TASK-8051).
|
|
629
|
+
*
|
|
630
|
+
* @private
|
|
631
|
+
*/
|
|
632
|
+
export declare function patchResidualCNvPr(residual: OpenXmlElement, identity: DrawingDocPrIdentity): OpenXmlElement;
|