@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,257 @@
|
|
|
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 __spread = (this && this.__spread) || function () {
|
|
28
|
+
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
import { FeatureRunParagraphItem } from '../document/text-range';
|
|
32
|
+
import { isWml } from '../document/wml';
|
|
33
|
+
import { MARKUP_COMPATIBILITY_NAMESPACE } from '../../core/mc/index';
|
|
34
|
+
import { registerFeature, registerFeatureRunLeafHandler, } from '../../core/registry/index';
|
|
35
|
+
import { A_NS, attributeValue, findFirstElement, preferredDrawingElement, readDocPrIdentity, R_NS, WP_NS, } from './host-codec';
|
|
36
|
+
import { CHART_GRAPHIC_DATA_URI, CHART_GRAPHIC_DATA_URI_STRICT, DIAGRAM_GRAPHIC_DATA_URI, DIAGRAM_GRAPHIC_DATA_URI_STRICT, DRAWING, WORDML_2010_NAMESPACE, WORDPROCESSING_INK_URI, } from './types';
|
|
37
|
+
import { createDrawingShape, DrawingShape } from './drawing-shape';
|
|
38
|
+
export function isInlinePictureDrawing(element) {
|
|
39
|
+
if (!isWml(element, 'drawing')) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
var inline = findFirstElement(element, WP_NS, 'inline');
|
|
43
|
+
if (inline === undefined) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
var blip = findFirstElement(element, A_NS, 'blip');
|
|
47
|
+
if (blip === undefined) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
var embed = attributeValue(blip, R_NS, 'embed');
|
|
51
|
+
return embed !== undefined && embed.length > 0;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Ink hosts (`wordprocessingInk` graphicData, or group/canvas with `w14:contentPart`).
|
|
55
|
+
* No public ink API — decline so the host stays an opaque run leaf and its
|
|
56
|
+
* package parts are not rewritten ([MS-ODRAWXML] §2.2.7.6).
|
|
57
|
+
*/
|
|
58
|
+
function isInkOwnedDrawing(element) {
|
|
59
|
+
var graphicData = findFirstElement(element, A_NS, 'graphicData');
|
|
60
|
+
if (graphicData !== undefined) {
|
|
61
|
+
var uri = attributeValue(graphicData, '', 'uri');
|
|
62
|
+
if (uri === WORDPROCESSING_INK_URI) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return findFirstElement(element, WORDML_2010_NAMESPACE, 'contentPart') !== undefined;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* SmartArt / diagram hosts. No public diagrams API — always decline so drawing
|
|
70
|
+
* does not surface them as {@link DrawingShape} (which would rewrite the host).
|
|
71
|
+
*/
|
|
72
|
+
function isDiagramOwnedDrawing(element) {
|
|
73
|
+
var graphicData = findFirstElement(element, A_NS, 'graphicData');
|
|
74
|
+
if (graphicData === undefined) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
var uri = attributeValue(graphicData, '', 'uri');
|
|
78
|
+
return uri === DIAGRAM_GRAPHIC_DATA_URI || uri === DIAGRAM_GRAPHIC_DATA_URI_STRICT;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Chart hosts. No public charts API — decline chart graphicData so the host
|
|
82
|
+
* stays opaque and chart package parts are not rewritten.
|
|
83
|
+
*/
|
|
84
|
+
function isChartOwnedDrawing(element) {
|
|
85
|
+
var graphicData = findFirstElement(element, A_NS, 'graphicData');
|
|
86
|
+
if (graphicData === undefined) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
var uri = attributeValue(graphicData, '', 'uri');
|
|
90
|
+
return uri === CHART_GRAPHIC_DATA_URI || uri === CHART_GRAPHIC_DATA_URI_STRICT;
|
|
91
|
+
}
|
|
92
|
+
export function drawingIsOwnedByOtherFeature(drawing) {
|
|
93
|
+
return (isInlinePictureDrawing(drawing) ||
|
|
94
|
+
isInkOwnedDrawing(drawing) ||
|
|
95
|
+
isDiagramOwnedDrawing(drawing) ||
|
|
96
|
+
isChartOwnedDrawing(drawing));
|
|
97
|
+
}
|
|
98
|
+
export function parseDrawingShape(element) {
|
|
99
|
+
if (!isWml(element, 'drawing')) {
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
if (drawingIsOwnedByOtherFeature(element)) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
return createDrawingShape('drawingml', element);
|
|
106
|
+
}
|
|
107
|
+
export function parseVmlPict(element) {
|
|
108
|
+
if (!isWml(element, 'pict')) {
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
return createDrawingShape('vml', element);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Parse run-level `mc:AlternateContent` that hosts a non-picture drawing Choice.
|
|
115
|
+
* Residual root remains the full AC element for clean serialize (Policy B).
|
|
116
|
+
*/
|
|
117
|
+
export function parseAlternateContentDrawing(element) {
|
|
118
|
+
if (element.namespaceUri !== MARKUP_COMPATIBILITY_NAMESPACE ||
|
|
119
|
+
element.localName !== 'AlternateContent') {
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
var drawing = preferredDrawingElement(element);
|
|
123
|
+
if (drawing === undefined) {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
if (drawingIsOwnedByOtherFeature(drawing)) {
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
129
|
+
return createDrawingShape('drawingml', element);
|
|
130
|
+
}
|
|
131
|
+
export function drawingShapesFromLeaves(items) {
|
|
132
|
+
var e_1, _a;
|
|
133
|
+
var found = [];
|
|
134
|
+
try {
|
|
135
|
+
for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
|
|
136
|
+
var item = items_1_1.value;
|
|
137
|
+
if (item instanceof DrawingShape) {
|
|
138
|
+
found.push(item);
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
if (item instanceof FeatureRunParagraphItem && item.featureId === DRAWING && item.value instanceof DrawingShape) {
|
|
142
|
+
found.push(item.value);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
147
|
+
finally {
|
|
148
|
+
try {
|
|
149
|
+
if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);
|
|
150
|
+
}
|
|
151
|
+
finally { if (e_1) throw e_1.error; }
|
|
152
|
+
}
|
|
153
|
+
return found;
|
|
154
|
+
}
|
|
155
|
+
export function maxDocPrIdInDocument(document) {
|
|
156
|
+
var e_2, _a;
|
|
157
|
+
var max = 0;
|
|
158
|
+
try {
|
|
159
|
+
for (var _b = __values(drawingsInDocument(document)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
160
|
+
var shape = _c.value;
|
|
161
|
+
var id = readDocPrIdentity(shape.toOpenXml()).docPrId;
|
|
162
|
+
if (id !== undefined && id > max) {
|
|
163
|
+
max = id;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
168
|
+
finally {
|
|
169
|
+
try {
|
|
170
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
171
|
+
}
|
|
172
|
+
finally { if (e_2) throw e_2.error; }
|
|
173
|
+
}
|
|
174
|
+
return max;
|
|
175
|
+
}
|
|
176
|
+
export function allocateDocPrId(paragraph) {
|
|
177
|
+
var document = paragraph.owningDocument();
|
|
178
|
+
return maxDocPrIdInDocument(document) + 1;
|
|
179
|
+
}
|
|
180
|
+
var registered = false;
|
|
181
|
+
/**
|
|
182
|
+
* @private
|
|
183
|
+
* Test hook */
|
|
184
|
+
export function resetDrawingFeatureForTests() {
|
|
185
|
+
registered = false;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* @private
|
|
189
|
+
* Register non-picture DrawingML, VML, and MC drawing run-leaf handlers. Idempotent. */
|
|
190
|
+
export function registerDrawingFeature() {
|
|
191
|
+
if (registered) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
registered = true;
|
|
195
|
+
registerFeature({ id: DRAWING });
|
|
196
|
+
registerFeatureRunLeafHandler({
|
|
197
|
+
featureId: DRAWING,
|
|
198
|
+
wmlLocalName: 'drawing',
|
|
199
|
+
tryParse: parseDrawingShape,
|
|
200
|
+
});
|
|
201
|
+
registerFeatureRunLeafHandler({
|
|
202
|
+
featureId: DRAWING,
|
|
203
|
+
wmlLocalName: 'pict',
|
|
204
|
+
tryParse: parseVmlPict,
|
|
205
|
+
});
|
|
206
|
+
registerFeatureRunLeafHandler({
|
|
207
|
+
featureId: DRAWING,
|
|
208
|
+
wmlLocalName: 'AlternateContent',
|
|
209
|
+
namespaceUri: MARKUP_COMPATIBILITY_NAMESPACE,
|
|
210
|
+
tryParse: parseAlternateContentDrawing,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Whether a paragraph item is a modeled drawing shape (projected leaf or wrapper).
|
|
215
|
+
*
|
|
216
|
+
* @private
|
|
217
|
+
*/
|
|
218
|
+
export function isDrawingShapeLeaf(item) {
|
|
219
|
+
if (item instanceof DrawingShape) {
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
return item instanceof FeatureRunParagraphItem && item.featureId === DRAWING && item.value instanceof DrawingShape;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Drawing shapes in a paragraph, in document order.
|
|
226
|
+
*
|
|
227
|
+
* @private
|
|
228
|
+
*/
|
|
229
|
+
export function drawingsInParagraph(paragraph) {
|
|
230
|
+
return drawingShapesFromLeaves(paragraph.items.toArray());
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Drawing shapes in the Main Document body, in document order.
|
|
234
|
+
*
|
|
235
|
+
* @private
|
|
236
|
+
*/
|
|
237
|
+
export function drawingsInDocument(document) {
|
|
238
|
+
var e_3, _a;
|
|
239
|
+
var found = [];
|
|
240
|
+
try {
|
|
241
|
+
for (var _b = __values(document.listBlocks()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
242
|
+
var block = _c.value;
|
|
243
|
+
if (block.type !== 'paragraph') {
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
found.push.apply(found, __spread(drawingsInParagraph(block.paragraph)));
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
250
|
+
finally {
|
|
251
|
+
try {
|
|
252
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
253
|
+
}
|
|
254
|
+
finally { if (e_3) throw e_3.error; }
|
|
255
|
+
}
|
|
256
|
+
return found;
|
|
257
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Residual DOM utilities for DrawingML / VML detection and clone helpers.
|
|
3
|
+
*
|
|
4
|
+
* @private
|
|
5
|
+
*/
|
|
6
|
+
import { BlockContent } from '../document/paragraph';
|
|
7
|
+
import { OpenXmlElement } from '../../core/xml/index';
|
|
8
|
+
import { DrawingVariant } from './types';
|
|
9
|
+
export declare function elementChildren(el: OpenXmlElement): ReadonlyArray<OpenXmlElement>;
|
|
10
|
+
export declare function isElement(el: OpenXmlElement, namespaceUri: string, localName: string): boolean;
|
|
11
|
+
export declare function emptyTxbxParagraphBlocks(): BlockContent[];
|
|
12
|
+
/** Deep-clone a residual element for txbxContent patching (no shared state). */
|
|
13
|
+
export declare function cloneResidualElement(el: OpenXmlElement): OpenXmlElement;
|
|
14
|
+
/**
|
|
15
|
+
* Locate the nested-child host element for a group (`wpg:wgp` / nested
|
|
16
|
+
* `wpg:grpSp`) or canvas (`wpc:wpc`) residual tree (TASK-8051).
|
|
17
|
+
*
|
|
18
|
+
* Accepts top-level `w:drawing` / MC dual-AC roots, bare nested group residuals,
|
|
19
|
+
* or an already-resolved container. Returns undefined for leaf shapes.
|
|
20
|
+
*/
|
|
21
|
+
export declare function findNestedDrawingContainer(root: OpenXmlElement): OpenXmlElement | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Detect the variant of a DML drawing (`w:drawing` element).
|
|
24
|
+
*
|
|
25
|
+
* Strategy: locate `a:graphic/a:graphicData` and inspect the `@uri` attribute.
|
|
26
|
+
* - WPS_NS → `wps:wsp` present → 'textBox' if `wps:txbx` child exists, else 'shape'
|
|
27
|
+
* - WPG_NS → 'group' ([MS-ODRAWXML] §2.2.7.4, §2.16)
|
|
28
|
+
* - WPC_NS → 'canvas' ([MS-ODRAWXML] §2.2.7.5, §2.17)
|
|
29
|
+
* - anything else → 'unknown'
|
|
30
|
+
*/
|
|
31
|
+
export declare function detectDmlVariant(drawingEl: OpenXmlElement): DrawingVariant;
|
|
32
|
+
/**
|
|
33
|
+
* True when residual is (or contains) MC AlternateContent with a Fallback
|
|
34
|
+
* branch that carries `w:pict` (Policy B dual AC VML Fallback — TASK-8050).
|
|
35
|
+
* Does not execute or interpret VML children.
|
|
36
|
+
*
|
|
37
|
+
* @private
|
|
38
|
+
*/
|
|
39
|
+
export declare function residualHasVmlFallback(root: OpenXmlElement): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Detect drawing variant from a VML `w:pict` subtree.
|
|
42
|
+
*
|
|
43
|
+
* Source: ECMA-376-4 §14.3 VML elements; [MS-OI29500] Part 4.
|
|
44
|
+
*/
|
|
45
|
+
export declare function detectVmlVariant(pictEl: OpenXmlElement): DrawingVariant;
|
|
46
|
+
export declare function collectRelationshipIds(root: OpenXmlElement): ReadonlyArray<string>;
|
|
47
|
+
export declare function collectRelationshipIdsRecursive(element: OpenXmlElement, found: Set<string>): void;
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __values = (this && this.__values) || function (o) {
|
|
13
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
|
|
14
|
+
if (m) return m.call(o);
|
|
15
|
+
return {
|
|
16
|
+
next: function () {
|
|
17
|
+
if (o && i >= o.length) o = void 0;
|
|
18
|
+
return { value: o && o[i++], done: !o };
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
23
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
24
|
+
if (!m) return o;
|
|
25
|
+
var i = m.call(o), r, ar = [], e;
|
|
26
|
+
try {
|
|
27
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
28
|
+
}
|
|
29
|
+
catch (error) { e = { error: error }; }
|
|
30
|
+
finally {
|
|
31
|
+
try {
|
|
32
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
33
|
+
}
|
|
34
|
+
finally { if (e) throw e.error; }
|
|
35
|
+
}
|
|
36
|
+
return ar;
|
|
37
|
+
};
|
|
38
|
+
var __spread = (this && this.__spread) || function () {
|
|
39
|
+
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
|
|
40
|
+
return ar;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Residual DOM utilities for DrawingML / VML detection and clone helpers.
|
|
44
|
+
*
|
|
45
|
+
* @private
|
|
46
|
+
*/
|
|
47
|
+
import { Paragraph } from '../document/paragraph';
|
|
48
|
+
import { isWml } from '../document/wml';
|
|
49
|
+
import { MARKUP_COMPATIBILITY_NAMESPACE } from '../../core/mc/index';
|
|
50
|
+
import { A_NS, attributeValue, findFirstElement, preferredDrawingElement, R_NS, VML_NS, WPC_NS, WPG_NS, WPS_NS, } from './host-codec';
|
|
51
|
+
export function elementChildren(el) {
|
|
52
|
+
return el.children.filter(function (c) { return c.kind === 'element'; });
|
|
53
|
+
}
|
|
54
|
+
export function isElement(el, namespaceUri, localName) {
|
|
55
|
+
return el.namespaceUri === namespaceUri && el.localName === localName;
|
|
56
|
+
}
|
|
57
|
+
export function emptyTxbxParagraphBlocks() {
|
|
58
|
+
return [{ type: 'paragraph', paragraph: new Paragraph(undefined) }];
|
|
59
|
+
}
|
|
60
|
+
/** Deep-clone a residual element for txbxContent patching (no shared state). */
|
|
61
|
+
export function cloneResidualElement(el) {
|
|
62
|
+
return {
|
|
63
|
+
kind: 'element',
|
|
64
|
+
namespaceUri: el.namespaceUri,
|
|
65
|
+
localName: el.localName,
|
|
66
|
+
prefix: el.prefix,
|
|
67
|
+
attributes: el.attributes.map(function (a) { return (__assign({}, a)); }),
|
|
68
|
+
namespaceDeclarations: el.namespaceDeclarations.map(function (n) { return (__assign({}, n)); }),
|
|
69
|
+
children: el.children.map(function (c) {
|
|
70
|
+
if (c.kind === 'element') {
|
|
71
|
+
return cloneResidualElement(c);
|
|
72
|
+
}
|
|
73
|
+
return { kind: 'text', value: c.value };
|
|
74
|
+
}),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Locate the nested-child host element for a group (`wpg:wgp` / nested
|
|
79
|
+
* `wpg:grpSp`) or canvas (`wpc:wpc`) residual tree (TASK-8051).
|
|
80
|
+
*
|
|
81
|
+
* Accepts top-level `w:drawing` / MC dual-AC roots, bare nested group residuals,
|
|
82
|
+
* or an already-resolved container. Returns undefined for leaf shapes.
|
|
83
|
+
*/
|
|
84
|
+
export function findNestedDrawingContainer(root) {
|
|
85
|
+
var e_1, _a;
|
|
86
|
+
var __ts33_0, __ts33_1, __ts33_2, __ts33_3;
|
|
87
|
+
if (root.namespaceUri === WPG_NS && (root.localName === 'wgp' || root.localName === 'grpSp')) {
|
|
88
|
+
return root;
|
|
89
|
+
}
|
|
90
|
+
if (root.namespaceUri === WPC_NS && root.localName === 'wpc') {
|
|
91
|
+
return root;
|
|
92
|
+
}
|
|
93
|
+
var drawing = ((__ts33_0 = preferredDrawingElement(root)), __ts33_0 != null ? __ts33_0 : (isWml(root, 'drawing') ? root : undefined));
|
|
94
|
+
if (drawing === undefined) {
|
|
95
|
+
// Residual may already be graphicData or an intermediate tree fragment.
|
|
96
|
+
var directWgp = ((__ts33_1 = findFirstElement(root, WPG_NS, 'wgp')), __ts33_1 != null ? __ts33_1 : findFirstElement(root, WPG_NS, 'grpSp'));
|
|
97
|
+
if (directWgp !== undefined) {
|
|
98
|
+
return directWgp;
|
|
99
|
+
}
|
|
100
|
+
return findFirstElement(root, WPC_NS, 'wpc');
|
|
101
|
+
}
|
|
102
|
+
var graphicData = findFirstElement(drawing, A_NS, 'graphicData');
|
|
103
|
+
if (graphicData !== undefined) {
|
|
104
|
+
try {
|
|
105
|
+
for (var _b = __values(elementChildren(graphicData)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
106
|
+
var child = _c.value;
|
|
107
|
+
if ((child.namespaceUri === WPG_NS && (child.localName === 'wgp' || child.localName === 'grpSp')) ||
|
|
108
|
+
(child.namespaceUri === WPC_NS && child.localName === 'wpc')) {
|
|
109
|
+
return child;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
114
|
+
finally {
|
|
115
|
+
try {
|
|
116
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
117
|
+
}
|
|
118
|
+
finally { if (e_1) throw e_1.error; }
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return (((__ts33_3 = ((__ts33_2 = findFirstElement(drawing, WPG_NS, 'wgp')), __ts33_2 != null ? __ts33_2 : findFirstElement(drawing, WPG_NS, 'grpSp'))), __ts33_3 != null ? __ts33_3 : findFirstElement(drawing, WPC_NS, 'wpc')));
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Detect the variant of a DML drawing (`w:drawing` element).
|
|
125
|
+
*
|
|
126
|
+
* Strategy: locate `a:graphic/a:graphicData` and inspect the `@uri` attribute.
|
|
127
|
+
* - WPS_NS → `wps:wsp` present → 'textBox' if `wps:txbx` child exists, else 'shape'
|
|
128
|
+
* - WPG_NS → 'group' ([MS-ODRAWXML] §2.2.7.4, §2.16)
|
|
129
|
+
* - WPC_NS → 'canvas' ([MS-ODRAWXML] §2.2.7.5, §2.17)
|
|
130
|
+
* - anything else → 'unknown'
|
|
131
|
+
*/
|
|
132
|
+
export function detectDmlVariant(drawingEl) {
|
|
133
|
+
var graphicData = findFirstElement(drawingEl, A_NS, 'graphicData');
|
|
134
|
+
if (graphicData === undefined) {
|
|
135
|
+
return 'unknown';
|
|
136
|
+
}
|
|
137
|
+
var uri = attributeValue(graphicData, '', 'uri');
|
|
138
|
+
if (uri === WPS_NS) {
|
|
139
|
+
var wsp = findFirstElement(graphicData, WPS_NS, 'wsp');
|
|
140
|
+
if (wsp !== undefined) {
|
|
141
|
+
var hasTxbx = elementChildren(wsp).some(function (c) { return isElement(c, WPS_NS, 'txbx'); }) ||
|
|
142
|
+
elementChildren(wsp).some(function (c) { return isElement(c, WPS_NS, 'linkedTxbx'); });
|
|
143
|
+
return hasTxbx ? 'textBox' : 'shape';
|
|
144
|
+
}
|
|
145
|
+
return 'unknown';
|
|
146
|
+
}
|
|
147
|
+
if (uri === WPG_NS) {
|
|
148
|
+
return 'group';
|
|
149
|
+
}
|
|
150
|
+
if (uri === WPC_NS) {
|
|
151
|
+
return 'canvas';
|
|
152
|
+
}
|
|
153
|
+
return 'unknown';
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* True when residual is (or contains) MC AlternateContent with a Fallback
|
|
157
|
+
* branch that carries `w:pict` (Policy B dual AC VML Fallback — TASK-8050).
|
|
158
|
+
* Does not execute or interpret VML children.
|
|
159
|
+
*
|
|
160
|
+
* @private
|
|
161
|
+
*/
|
|
162
|
+
export function residualHasVmlFallback(root) {
|
|
163
|
+
var e_2, _a, e_3, _b, e_4, _c;
|
|
164
|
+
if (root.namespaceUri === MARKUP_COMPATIBILITY_NAMESPACE &&
|
|
165
|
+
root.localName === 'AlternateContent') {
|
|
166
|
+
try {
|
|
167
|
+
for (var _d = __values(elementChildren(root)), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
168
|
+
var child = _e.value;
|
|
169
|
+
if (child.namespaceUri !== MARKUP_COMPATIBILITY_NAMESPACE ||
|
|
170
|
+
child.localName !== 'Fallback') {
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
try {
|
|
174
|
+
for (var _f = __values(elementChildren(child)), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
175
|
+
var nested = _g.value;
|
|
176
|
+
if (isWml(nested, 'pict')) {
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
182
|
+
finally {
|
|
183
|
+
try {
|
|
184
|
+
if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
|
|
185
|
+
}
|
|
186
|
+
finally { if (e_3) throw e_3.error; }
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
191
|
+
finally {
|
|
192
|
+
try {
|
|
193
|
+
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
194
|
+
}
|
|
195
|
+
finally { if (e_2) throw e_2.error; }
|
|
196
|
+
}
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
try {
|
|
200
|
+
// Authored dual AC is the residual root; residual may also nest AC under
|
|
201
|
+
// rare fixtures — shallow scan only (no deep walk of every descendant).
|
|
202
|
+
for (var _h = __values(elementChildren(root)), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
203
|
+
var child = _j.value;
|
|
204
|
+
if (residualHasVmlFallback(child)) {
|
|
205
|
+
return true;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
210
|
+
finally {
|
|
211
|
+
try {
|
|
212
|
+
if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
|
|
213
|
+
}
|
|
214
|
+
finally { if (e_4) throw e_4.error; }
|
|
215
|
+
}
|
|
216
|
+
return false;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Detect drawing variant from a VML `w:pict` subtree.
|
|
220
|
+
*
|
|
221
|
+
* Source: ECMA-376-4 §14.3 VML elements; [MS-OI29500] Part 4.
|
|
222
|
+
*/
|
|
223
|
+
export function detectVmlVariant(pictEl) {
|
|
224
|
+
var e_5, _a;
|
|
225
|
+
try {
|
|
226
|
+
for (var _b = __values(elementChildren(pictEl)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
227
|
+
var child = _c.value;
|
|
228
|
+
if (child.namespaceUri !== VML_NS) {
|
|
229
|
+
continue;
|
|
230
|
+
}
|
|
231
|
+
if (child.localName === 'group') {
|
|
232
|
+
return 'group';
|
|
233
|
+
}
|
|
234
|
+
var isVmlShapeContainer = child.localName === 'shape' ||
|
|
235
|
+
child.localName === 'rect' ||
|
|
236
|
+
child.localName === 'oval' ||
|
|
237
|
+
child.localName === 'roundrect';
|
|
238
|
+
if (isVmlShapeContainer) {
|
|
239
|
+
var hasTextbox = elementChildren(child).some(function (c) { return isElement(c, VML_NS, 'textbox'); });
|
|
240
|
+
return hasTextbox ? 'textBox' : 'shape';
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
245
|
+
finally {
|
|
246
|
+
try {
|
|
247
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
248
|
+
}
|
|
249
|
+
finally { if (e_5) throw e_5.error; }
|
|
250
|
+
}
|
|
251
|
+
return 'unknown';
|
|
252
|
+
}
|
|
253
|
+
export function collectRelationshipIds(root) {
|
|
254
|
+
var found = new Set();
|
|
255
|
+
collectRelationshipIdsRecursive(root, found);
|
|
256
|
+
return __spread(found);
|
|
257
|
+
}
|
|
258
|
+
export function collectRelationshipIdsRecursive(element, found) {
|
|
259
|
+
var e_6, _a, e_7, _b;
|
|
260
|
+
try {
|
|
261
|
+
for (var _c = __values(element.attributes), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
262
|
+
var attribute = _d.value;
|
|
263
|
+
if (attribute.namespaceUri === R_NS &&
|
|
264
|
+
(attribute.localName === 'embed' || attribute.localName === 'link') &&
|
|
265
|
+
attribute.value.length > 0) {
|
|
266
|
+
found.add(attribute.value);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
271
|
+
finally {
|
|
272
|
+
try {
|
|
273
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
274
|
+
}
|
|
275
|
+
finally { if (e_6) throw e_6.error; }
|
|
276
|
+
}
|
|
277
|
+
try {
|
|
278
|
+
for (var _e = __values(elementChildren(element)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
279
|
+
var child = _f.value;
|
|
280
|
+
collectRelationshipIdsRecursive(child, found);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
284
|
+
finally {
|
|
285
|
+
try {
|
|
286
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
287
|
+
}
|
|
288
|
+
finally { if (e_7) throw e_7.error; }
|
|
289
|
+
}
|
|
290
|
+
}
|