@syncfusion/ej2-docx 0.0.0-stage → 35.1.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitleaksignore +35 -0
- package/README.md +68 -2
- package/core.js +4 -0
- package/dist/ej2-docx.umd.min.js +11 -0
- package/dist/ej2-docx.umd.min.js.map +1 -0
- package/dist/es6/ej2-docx.es2015.js +66697 -0
- package/dist/es6/ej2-docx.es2015.js.map +1 -0
- package/dist/es6/ej2-docx.es5.js +77568 -0
- package/dist/es6/ej2-docx.es5.js.map +1 -0
- package/dist/global/ej2-docx.min.js +11 -0
- package/dist/global/ej2-docx.min.js.map +1 -0
- package/dist/global/index.d.ts +14 -0
- package/features.js +4 -0
- package/index.js +4 -0
- package/license +10 -0
- package/package.json +30 -3
- package/src/all.d.ts +50 -0
- package/src/all.js +147 -0
- package/src/core/compat/base64.d.ts +13 -0
- package/src/core/compat/base64.js +90 -0
- package/src/core/compat/object-compat.d.ts +30 -0
- package/src/core/compat/object-compat.js +40 -0
- package/src/core/compat/sha256.d.ts +9 -0
- package/src/core/compat/sha256.js +98 -0
- package/src/core/errors/docx-error.d.ts +89 -0
- package/src/core/errors/docx-error.js +138 -0
- package/src/core/errors/error-codes.d.ts +8 -0
- package/src/core/errors/error-codes.js +0 -0
- package/src/core/errors/index.d.ts +10 -0
- package/src/core/errors/index.js +9 -0
- package/src/core/index.d.ts +12 -0
- package/src/core/index.js +12 -0
- package/src/core/mc/alternate-content.d.ts +7 -0
- package/src/core/mc/alternate-content.js +67 -0
- package/src/core/mc/attributes.d.ts +24 -0
- package/src/core/mc/attributes.js +82 -0
- package/src/core/mc/index.d.ts +7 -0
- package/src/core/mc/index.js +5 -0
- package/src/core/mc/inspect.d.ts +16 -0
- package/src/core/mc/inspect.js +148 -0
- package/src/core/mc/namespaces.d.ts +4 -0
- package/src/core/mc/namespaces.js +4 -0
- package/src/core/mc/scope.d.ts +6 -0
- package/src/core/mc/scope.js +47 -0
- package/src/core/opc/content-types.d.ts +34 -0
- package/src/core/opc/content-types.js +162 -0
- package/src/core/opc/index.d.ts +8 -0
- package/src/core/opc/index.js +4 -0
- package/src/core/opc/package.d.ts +49 -0
- package/src/core/opc/package.js +324 -0
- package/src/core/opc/part-name.d.ts +47 -0
- package/src/core/opc/part-name.js +205 -0
- package/src/core/opc/relationships.d.ts +46 -0
- package/src/core/opc/relationships.js +212 -0
- package/src/core/preservation/index.d.ts +2 -0
- package/src/core/preservation/index.js +1 -0
- package/src/core/preservation/opaque-body.d.ts +16 -0
- package/src/core/preservation/opaque-body.js +69 -0
- package/src/core/registry/block-handlers.d.ts +30 -0
- package/src/core/registry/block-handlers.js +36 -0
- package/src/core/registry/create-defaults.d.ts +39 -0
- package/src/core/registry/create-defaults.js +42 -0
- package/src/core/registry/feature-registry.d.ts +20 -0
- package/src/core/registry/feature-registry.js +29 -0
- package/src/core/registry/index.d.ts +9 -0
- package/src/core/registry/index.js +8 -0
- package/src/core/registry/inline-handlers.d.ts +20 -0
- package/src/core/registry/inline-handlers.js +30 -0
- package/src/core/registry/materialize-handlers.d.ts +35 -0
- package/src/core/registry/materialize-handlers.js +75 -0
- package/src/core/registry/multi-part-handlers.d.ts +37 -0
- package/src/core/registry/multi-part-handlers.js +206 -0
- package/src/core/registry/package-part-handlers.d.ts +28 -0
- package/src/core/registry/package-part-handlers.js +190 -0
- package/src/core/registry/part-handlers.d.ts +24 -0
- package/src/core/registry/part-handlers.js +172 -0
- package/src/core/registry/run-leaf-handlers.d.ts +26 -0
- package/src/core/registry/run-leaf-handlers.js +72 -0
- package/src/core/security/limits.d.ts +40 -0
- package/src/core/security/limits.js +26 -0
- package/src/core/xml/index.d.ts +7 -0
- package/src/core/xml/index.js +3 -0
- package/src/core/xml/model.d.ts +66 -0
- package/src/core/xml/model.js +17 -0
- package/src/core/xml/parse.d.ts +12 -0
- package/src/core/xml/parse.js +382 -0
- package/src/core/xml/serialize.d.ts +6 -0
- package/src/core/xml/serialize.js +93 -0
- package/src/core/zip/crc32.d.ts +2 -0
- package/src/core/zip/crc32.js +25 -0
- package/src/core/zip/deflate.d.ts +6 -0
- package/src/core/zip/deflate.js +6 -0
- package/src/core/zip/index.d.ts +10 -0
- package/src/core/zip/index.js +4 -0
- package/src/core/zip/inflate-raw.d.ts +17 -0
- package/src/core/zip/inflate-raw.js +450 -0
- package/src/core/zip/names.d.ts +6 -0
- package/src/core/zip/names.js +52 -0
- package/src/core/zip/read.d.ts +8 -0
- package/src/core/zip/read.js +262 -0
- package/src/core/zip/write.d.ts +7 -0
- package/src/core/zip/write.js +189 -0
- package/src/core/zip/zip-entry.d.ts +4 -0
- package/src/core/zip/zip-entry.js +0 -0
- package/src/features/bibliography/index.d.ts +100 -0
- package/src/features/bibliography/index.js +290 -0
- package/src/features/bookmarks/index.d.ts +331 -0
- package/src/features/bookmarks/index.js +1009 -0
- package/src/features/comments/comment-extensions.d.ts +157 -0
- package/src/features/comments/comment-extensions.js +356 -0
- package/src/features/comments/index.d.ts +579 -0
- package/src/features/comments/index.js +1727 -0
- package/src/features/content-controls/index.d.ts +821 -0
- package/src/features/content-controls/index.js +2857 -0
- package/src/features/custom-xml/index.d.ts +236 -0
- package/src/features/custom-xml/index.js +661 -0
- package/src/features/document/alignment.d.ts +23 -0
- package/src/features/document/alignment.js +36 -0
- package/src/features/document/alt-chunk.d.ts +103 -0
- package/src/features/document/alt-chunk.js +221 -0
- package/src/features/document/assert-never.d.ts +1 -0
- package/src/features/document/assert-never.js +4 -0
- package/src/features/document/augmentations.d.ts +578 -0
- package/src/features/document/augmentations.js +0 -0
- package/src/features/document/body-always-on.d.ts +36 -0
- package/src/features/document/body-always-on.js +66 -0
- package/src/features/document/body-blocks.d.ts +7 -0
- package/src/features/document/body-blocks.js +78 -0
- package/src/features/document/body-item-adapters.d.ts +62 -0
- package/src/features/document/body-item-adapters.js +97 -0
- package/src/features/document/body-item-collection.d.ts +151 -0
- package/src/features/document/body-item-collection.js +440 -0
- package/src/features/document/body-item.d.ts +35 -0
- package/src/features/document/body-item.js +8 -0
- package/src/features/document/body.d.ts +150 -0
- package/src/features/document/body.js +263 -0
- package/src/features/document/character-format.d.ts +413 -0
- package/src/features/document/character-format.js +2054 -0
- package/src/features/document/color.d.ts +178 -0
- package/src/features/document/color.js +495 -0
- package/src/features/document/document.d.ts +410 -0
- package/src/features/document/document.js +1049 -0
- package/src/features/document/element-type.d.ts +68 -0
- package/src/features/document/element-type.js +133 -0
- package/src/features/document/entity-type.d.ts +92 -0
- package/src/features/document/entity-type.js +93 -0
- package/src/features/document/feature-block.d.ts +16 -0
- package/src/features/document/feature-block.js +0 -0
- package/src/features/document/feature-inline.d.ts +13 -0
- package/src/features/document/feature-inline.js +0 -0
- package/src/features/document/feature-multi-package-part.d.ts +19 -0
- package/src/features/document/feature-multi-package-part.js +8 -0
- package/src/features/document/feature-package-level-part.d.ts +18 -0
- package/src/features/document/feature-package-level-part.js +8 -0
- package/src/features/document/feature-package-part.d.ts +14 -0
- package/src/features/document/feature-package-part.js +0 -0
- package/src/features/document/feature-run-leaf.d.ts +9 -0
- package/src/features/document/feature-run-leaf.js +0 -0
- package/src/features/document/headers-footers.d.ts +206 -0
- package/src/features/document/headers-footers.js +384 -0
- package/src/features/document/index.d.ts +41 -0
- package/src/features/document/index.js +34 -0
- package/src/features/document/length.d.ts +152 -0
- package/src/features/document/length.js +245 -0
- package/src/features/document/load-options.d.ts +14 -0
- package/src/features/document/load-options.js +0 -0
- package/src/features/document/locale-ids.d.ts +227 -0
- package/src/features/document/locale-ids.js +485 -0
- package/src/features/document/on-off.d.ts +9 -0
- package/src/features/document/on-off.js +27 -0
- package/src/features/document/page-setup.d.ts +339 -0
- package/src/features/document/page-setup.js +244 -0
- package/src/features/document/paragraph-format.d.ts +880 -0
- package/src/features/document/paragraph-format.js +2807 -0
- package/src/features/document/paragraph-item-collection.d.ts +162 -0
- package/src/features/document/paragraph-item-collection.js +363 -0
- package/src/features/document/paragraph-item.d.ts +83 -0
- package/src/features/document/paragraph-item.js +103 -0
- package/src/features/document/paragraph.d.ts +435 -0
- package/src/features/document/paragraph.js +888 -0
- package/src/features/document/run.d.ts +1 -0
- package/src/features/document/run.js +768 -0
- package/src/features/document/section-partition-flatten.d.ts +124 -0
- package/src/features/document/section-partition-flatten.js +217 -0
- package/src/features/document/section-properties-model.d.ts +13 -0
- package/src/features/document/section-properties-model.js +0 -0
- package/src/features/document/section.d.ts +93 -0
- package/src/features/document/section.js +178 -0
- package/src/features/document/sections.d.ts +103 -0
- package/src/features/document/sections.js +217 -0
- package/src/features/document/sub-super-script.d.ts +23 -0
- package/src/features/document/sub-super-script.js +43 -0
- package/src/features/document/text-range.d.ts +445 -0
- package/src/features/document/text-range.js +1156 -0
- package/src/features/document/typed-body-collections.d.ts +162 -0
- package/src/features/document/typed-body-collections.js +371 -0
- package/src/features/document/underline-style.d.ts +38 -0
- package/src/features/document/underline-style.js +126 -0
- package/src/features/document/units.d.ts +8 -0
- package/src/features/document/units.js +7 -0
- package/src/features/document/wml.d.ts +16 -0
- package/src/features/document/wml.js +67 -0
- package/src/features/drawing/authoring.d.ts +27 -0
- package/src/features/drawing/authoring.js +271 -0
- package/src/features/drawing/body-pr.d.ts +271 -0
- package/src/features/drawing/body-pr.js +663 -0
- package/src/features/drawing/drawing-shape.d.ts +1192 -0
- package/src/features/drawing/drawing-shape.js +3239 -0
- package/src/features/drawing/encode-builders.d.ts +176 -0
- package/src/features/drawing/encode-builders.js +390 -0
- package/src/features/drawing/fill-format.d.ts +52 -0
- package/src/features/drawing/fill-format.js +124 -0
- package/src/features/drawing/host-codec.d.ts +632 -0
- package/src/features/drawing/host-codec.js +2595 -0
- package/src/features/drawing/index.d.ts +13 -0
- package/src/features/drawing/index.js +33 -0
- package/src/features/drawing/line-format.d.ts +76 -0
- package/src/features/drawing/line-format.js +343 -0
- package/src/features/drawing/parse-register.d.ts +50 -0
- package/src/features/drawing/parse-register.js +257 -0
- package/src/features/drawing/residual-utils.d.ts +47 -0
- package/src/features/drawing/residual-utils.js +290 -0
- package/src/features/drawing/shape-types.d.ts +433 -0
- package/src/features/drawing/shape-types.js +437 -0
- package/src/features/drawing/sp-pr.d.ts +396 -0
- package/src/features/drawing/sp-pr.js +610 -0
- package/src/features/drawing/text-frame.d.ts +90 -0
- package/src/features/drawing/text-frame.js +152 -0
- package/src/features/drawing/types.d.ts +352 -0
- package/src/features/drawing/types.js +60 -0
- package/src/features/drawing/wrap-format.d.ts +62 -0
- package/src/features/drawing/wrap-format.js +114 -0
- package/src/features/editable-ranges/index.d.ts +494 -0
- package/src/features/editable-ranges/index.js +1348 -0
- package/src/features/fields/index.d.ts +428 -0
- package/src/features/fields/index.js +2148 -0
- package/src/features/fields/paragraph-field.d.ts +187 -0
- package/src/features/fields/paragraph-field.js +692 -0
- package/src/features/font-table/font-substitution-table.d.ts +75 -0
- package/src/features/font-table/font-substitution-table.js +257 -0
- package/src/features/font-table/font-table-entry.d.ts +255 -0
- package/src/features/font-table/font-table-entry.js +823 -0
- package/src/features/font-table/font-table.d.ts +128 -0
- package/src/features/font-table/font-table.js +313 -0
- package/src/features/font-table/index.d.ts +27 -0
- package/src/features/font-table/index.js +48 -0
- package/src/features/glossary/index.d.ts +97 -0
- package/src/features/glossary/index.js +286 -0
- package/src/features/headers-footers/index.d.ts +506 -0
- package/src/features/headers-footers/index.js +1666 -0
- package/src/features/hyperlinks/index.d.ts +230 -0
- package/src/features/hyperlinks/index.js +685 -0
- package/src/features/images/caption-authoring-api.d.ts +33 -0
- package/src/features/images/caption-authoring-api.js +33 -0
- package/src/features/images/caption-enums.d.ts +52 -0
- package/src/features/images/caption-enums.js +141 -0
- package/src/features/images/caption-host.d.ts +10 -0
- package/src/features/images/caption-host.js +21 -0
- package/src/features/images/captions.d.ts +13 -0
- package/src/features/images/captions.js +142 -0
- package/src/features/images/host-codec.d.ts +103 -0
- package/src/features/images/host-codec.js +720 -0
- package/src/features/images/image-sniff.d.ts +21 -0
- package/src/features/images/image-sniff.js +71 -0
- package/src/features/images/index.d.ts +506 -0
- package/src/features/images/index.js +1429 -0
- package/src/features/images/layout-types.d.ts +232 -0
- package/src/features/images/layout-types.js +294 -0
- package/src/features/images/public-entry.d.ts +9 -0
- package/src/features/images/public-entry.js +9 -0
- package/src/features/index.d.ts +35 -0
- package/src/features/index.js +36 -0
- package/src/features/mail-merge/index.d.ts +113 -0
- package/src/features/mail-merge/index.js +315 -0
- package/src/features/notes/index.d.ts +573 -0
- package/src/features/notes/index.js +1725 -0
- package/src/features/numbering/abstract-numbering.d.ts +90 -0
- package/src/features/numbering/abstract-numbering.js +292 -0
- package/src/features/numbering/index.d.ts +182 -0
- package/src/features/numbering/index.js +668 -0
- package/src/features/numbering/list-format.d.ts +158 -0
- package/src/features/numbering/list-format.js +590 -0
- package/src/features/numbering/list-string.d.ts +7 -0
- package/src/features/numbering/list-string.js +423 -0
- package/src/features/numbering/list-style.d.ts +204 -0
- package/src/features/numbering/list-style.js +1084 -0
- package/src/features/numbering/numbering-instance.d.ts +101 -0
- package/src/features/numbering/numbering-instance.js +329 -0
- package/src/features/numbering/numbering-level.d.ts +118 -0
- package/src/features/numbering/numbering-level.js +501 -0
- package/src/features/numbering/picture-bullet.d.ts +34 -0
- package/src/features/numbering/picture-bullet.js +88 -0
- package/src/features/ole-object/catalog.d.ts +300 -0
- package/src/features/ole-object/catalog.js +908 -0
- package/src/features/ole-object/index.d.ts +526 -0
- package/src/features/ole-object/index.js +1421 -0
- package/src/features/ole-object/relationship.d.ts +27 -0
- package/src/features/ole-object/relationship.js +27 -0
- package/src/features/ole-object/typed-dom.d.ts +186 -0
- package/src/features/ole-object/typed-dom.js +595 -0
- package/src/features/properties/index.d.ts +205 -0
- package/src/features/properties/index.js +549 -0
- package/src/features/revisions/index.d.ts +204 -0
- package/src/features/revisions/index.js +695 -0
- package/src/features/sections/column-collection.d.ts +119 -0
- package/src/features/sections/column-collection.js +478 -0
- package/src/features/sections/column.d.ts +15 -0
- package/src/features/sections/column.js +37 -0
- package/src/features/sections/index.d.ts +91 -0
- package/src/features/sections/index.js +1096 -0
- package/src/features/sections/margins.d.ts +40 -0
- package/src/features/sections/margins.js +105 -0
- package/src/features/sections/page-number-style.d.ts +21 -0
- package/src/features/sections/page-number-style.js +62 -0
- package/src/features/sections/page-orientation.d.ts +10 -0
- package/src/features/sections/page-orientation.js +10 -0
- package/src/features/sections/page-setup.d.ts +435 -0
- package/src/features/sections/page-setup.js +1479 -0
- package/src/features/sections/page-size.d.ts +59 -0
- package/src/features/sections/page-size.js +68 -0
- package/src/features/sections/section-break-code.d.ts +27 -0
- package/src/features/sections/section-break-code.js +60 -0
- package/src/features/sections/section-document-association.d.ts +18 -0
- package/src/features/sections/section-document-association.js +31 -0
- package/src/features/sections/section-validation.d.ts +43 -0
- package/src/features/sections/section-validation.js +97 -0
- package/src/features/settings/attached-template.d.ts +35 -0
- package/src/features/settings/attached-template.js +98 -0
- package/src/features/settings/compat-settings.d.ts +216 -0
- package/src/features/settings/compat-settings.js +508 -0
- package/src/features/settings/document-background.d.ts +59 -0
- package/src/features/settings/document-background.js +131 -0
- package/src/features/settings/document-protection.d.ts +65 -0
- package/src/features/settings/document-protection.js +157 -0
- package/src/features/settings/document-settings-facades.d.ts +108 -0
- package/src/features/settings/document-settings-facades.js +312 -0
- package/src/features/settings/document-settings-values.d.ts +43 -0
- package/src/features/settings/document-settings-values.js +60 -0
- package/src/features/settings/footnote-properties.d.ts +211 -0
- package/src/features/settings/footnote-properties.js +591 -0
- package/src/features/settings/index.d.ts +356 -0
- package/src/features/settings/index.js +829 -0
- package/src/features/settings/settings-children.d.ts +151 -0
- package/src/features/settings/settings-children.js +505 -0
- package/src/features/settings/web-settings.d.ts +88 -0
- package/src/features/settings/web-settings.js +227 -0
- package/src/features/settings/zoom.d.ts +79 -0
- package/src/features/settings/zoom.js +147 -0
- package/src/features/styles/builtin-catalog.d.ts +159 -0
- package/src/features/styles/builtin-catalog.js +963 -0
- package/src/features/styles/builtin-resolver.d.ts +49 -0
- package/src/features/styles/builtin-resolver.js +165 -0
- package/src/features/styles/default-styles.d.ts +37 -0
- package/src/features/styles/default-styles.js +186 -0
- package/src/features/styles/default-theme.d.ts +13 -0
- package/src/features/styles/default-theme.js +13 -0
- package/src/features/styles/doc-defaults.d.ts +58 -0
- package/src/features/styles/doc-defaults.js +178 -0
- package/src/features/styles/formatting-resolver.d.ts +27 -0
- package/src/features/styles/formatting-resolver.js +72 -0
- package/src/features/styles/index.d.ts +256 -0
- package/src/features/styles/index.js +1325 -0
- package/src/features/styles/latent-styles.d.ts +68 -0
- package/src/features/styles/latent-styles.js +305 -0
- package/src/features/styles/paragraph-properties.d.ts +71 -0
- package/src/features/styles/paragraph-properties.js +237 -0
- package/src/features/styles/run-properties.d.ts +93 -0
- package/src/features/styles/run-properties.js +516 -0
- package/src/features/styles/style-base.d.ts +402 -0
- package/src/features/styles/style-base.js +1026 -0
- package/src/features/styles/style-collection.d.ts +264 -0
- package/src/features/styles/style-collection.js +714 -0
- package/src/features/styles/style-format-bridge.d.ts +64 -0
- package/src/features/styles/style-format-bridge.js +100 -0
- package/src/features/styles/style.d.ts +84 -0
- package/src/features/styles/style.js +375 -0
- package/src/features/styles/styles-with-effects.d.ts +71 -0
- package/src/features/styles/styles-with-effects.js +180 -0
- package/src/features/styles/table-style.d.ts +272 -0
- package/src/features/styles/table-style.js +1226 -0
- package/src/features/styles/theme.d.ts +126 -0
- package/src/features/styles/theme.js +377 -0
- package/src/features/tables/border-style-map.d.ts +24 -0
- package/src/features/tables/border-style-map.js +81 -0
- package/src/features/tables/borders.d.ts +126 -0
- package/src/features/tables/borders.js +527 -0
- package/src/features/tables/collections.d.ts +113 -0
- package/src/features/tables/collections.js +261 -0
- package/src/features/tables/format.d.ts +208 -0
- package/src/features/tables/format.js +716 -0
- package/src/features/tables/index.d.ts +597 -0
- package/src/features/tables/index.js +2386 -0
- package/src/features/tables/paddings.d.ts +41 -0
- package/src/features/tables/paddings.js +97 -0
- package/src/features/tables/tbl-pr-positioning.d.ts +27 -0
- package/src/features/tables/tbl-pr-positioning.js +178 -0
- package/src/features/tables/tbl-pr.d.ts +528 -0
- package/src/features/tables/tbl-pr.js +1208 -0
- package/src/features/tables/tc-pr.d.ts +168 -0
- package/src/features/tables/tc-pr.js +553 -0
- package/src/features/tables/tr-pr.d.ts +60 -0
- package/src/features/tables/tr-pr.js +215 -0
- package/src/features/watermark/detect.d.ts +76 -0
- package/src/features/watermark/detect.js +219 -0
- package/src/features/watermark/index.d.ts +28 -0
- package/src/features/watermark/index.js +91 -0
- package/src/features/watermark/logical-store.d.ts +29 -0
- package/src/features/watermark/logical-store.js +31 -0
- package/src/features/watermark/model.d.ts +285 -0
- package/src/features/watermark/model.js +597 -0
- package/src/features/watermark/parse.d.ts +84 -0
- package/src/features/watermark/parse.js +815 -0
- package/src/features/watermark/serialize.d.ts +98 -0
- package/src/features/watermark/serialize.js +1517 -0
- package/src/global.js +1 -0
- package/src/index.d.ts +2 -0
- package/src/index.js +2 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { WordDocument } from '../document/document';
|
|
2
|
+
import { FeaturePackagePart } from '../document/feature-package-part';
|
|
3
|
+
import { NamespaceDeclaration, OpenXmlAttribute, OpenXmlElement } from '../../core/xml/index';
|
|
4
|
+
import { FontTableFont } from './font-table-entry';
|
|
5
|
+
/**
|
|
6
|
+
* @private
|
|
7
|
+
* Transitional font table relationship (ECMA-376-4 §9.2.5). */
|
|
8
|
+
export declare const FONT_TABLE_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable";
|
|
9
|
+
/**
|
|
10
|
+
* @private
|
|
11
|
+
* Strict font table relationship (ECMA-376-1 §11.3.5). */
|
|
12
|
+
export declare const STRICT_FONT_TABLE_RELATIONSHIP_TYPE = "http://purl.oclc.org/ooxml/officeDocument/relationships/fontTable";
|
|
13
|
+
/**
|
|
14
|
+
* @private
|
|
15
|
+
* ECMA-376-1 §11.3.5 Font Table content type. */
|
|
16
|
+
export declare const FONT_TABLE_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml";
|
|
17
|
+
/**
|
|
18
|
+
* @private
|
|
19
|
+
*/
|
|
20
|
+
export declare const FONT_TABLE_PART_NAME: import("../../core/opc/part-name").PartName;
|
|
21
|
+
/**
|
|
22
|
+
* In-memory Font Table part (`word/fontTable.xml`).
|
|
23
|
+
*
|
|
24
|
+
* Clean loads stay byte-preserving until the first mutation. Dirty serialize
|
|
25
|
+
* rebuilds `w:fonts` from entry models + residual children (ECMA-376-1 §11.3.5 /
|
|
26
|
+
* §17.8). Each `w:font` emits the `CT_Font` child sequence (altName through
|
|
27
|
+
* embed slots) then residual unknown children.
|
|
28
|
+
*
|
|
29
|
+
* @private
|
|
30
|
+
*/
|
|
31
|
+
export declare class FontTablePart implements FeaturePackagePart {
|
|
32
|
+
private bytes;
|
|
33
|
+
private dirty;
|
|
34
|
+
private readonly fontEntries;
|
|
35
|
+
private readonly rootExtrasBeforeFonts;
|
|
36
|
+
private readonly rootExtrasAfterFonts;
|
|
37
|
+
private readonly rootAttributes;
|
|
38
|
+
private readonly rootNamespaceDeclarations;
|
|
39
|
+
/**
|
|
40
|
+
* @private
|
|
41
|
+
*/
|
|
42
|
+
constructor(bytes: Uint8Array | undefined, fontEntries: FontTableFont[], rootExtrasBeforeFonts: ReadonlyArray<OpenXmlElement>, rootExtrasAfterFonts: ReadonlyArray<OpenXmlElement>, rootAttributes: ReadonlyArray<OpenXmlAttribute>, rootNamespaceDeclarations: ReadonlyArray<NamespaceDeclaration>, dirty: boolean);
|
|
43
|
+
/**
|
|
44
|
+
* Declared font names from `w:font/@w:name` in document order (stored casing).
|
|
45
|
+
*
|
|
46
|
+
* @public
|
|
47
|
+
*/
|
|
48
|
+
fontNames(): ReadonlyArray<string>;
|
|
49
|
+
/**
|
|
50
|
+
* Whether a font name appears in the table (case-insensitive).
|
|
51
|
+
*
|
|
52
|
+
* @public
|
|
53
|
+
*/
|
|
54
|
+
hasFont(name: string): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Font table entries in document order.
|
|
57
|
+
*
|
|
58
|
+
* @public
|
|
59
|
+
*/
|
|
60
|
+
fonts(): ReadonlyArray<FontTableFont>;
|
|
61
|
+
/**
|
|
62
|
+
* Entry for `name`, or `undefined` when absent. Lookup is case-insensitive;
|
|
63
|
+
* stored `@w:name` casing is unchanged.
|
|
64
|
+
*
|
|
65
|
+
* @public
|
|
66
|
+
*/
|
|
67
|
+
font(name: string): FontTableFont | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Ensure a minimal `w:font/@w:name` row exists and return it.
|
|
70
|
+
* If present (case-insensitive), returns the existing entry without duplicating.
|
|
71
|
+
*
|
|
72
|
+
* @throws DocxError `content/unsupported` when `name` is empty or whitespace-only.
|
|
73
|
+
*
|
|
74
|
+
* @public
|
|
75
|
+
*/
|
|
76
|
+
appendFont(name: string): FontTableFont;
|
|
77
|
+
/**
|
|
78
|
+
* Declared substitute string for `name` (`w:altName/@w:val`), or `undefined`.
|
|
79
|
+
* Case-insensitive name lookup. Does not create entries.
|
|
80
|
+
*
|
|
81
|
+
* Prefer {@link WordDocument.fontSubstitutionTable} `.get(name)` for substitution
|
|
82
|
+
* workflows (TASK-8067). This helper remains a thin catalog alias to
|
|
83
|
+
* {@link FontTableFont.alternateName}.
|
|
84
|
+
*
|
|
85
|
+
* @public
|
|
86
|
+
*/
|
|
87
|
+
substituteFont(name: string): string | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* @private
|
|
90
|
+
*/
|
|
91
|
+
isDirty(): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* @private
|
|
94
|
+
*/
|
|
95
|
+
markDirty(): void;
|
|
96
|
+
/**
|
|
97
|
+
* @private
|
|
98
|
+
*/
|
|
99
|
+
serialize(): Uint8Array;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* @private
|
|
103
|
+
* Test hook */
|
|
104
|
+
export declare function resetFontTableFeatureForTests(): void;
|
|
105
|
+
/**
|
|
106
|
+
* @private
|
|
107
|
+
* Register the font table package-part handler. Idempotent. */
|
|
108
|
+
export declare function registerFontTableFeature(): void;
|
|
109
|
+
/**
|
|
110
|
+
* Font table catalog for a document (`fontTable.xml` / `CT_FontsList`).
|
|
111
|
+
*
|
|
112
|
+
* **Public dual export (TASK-8067):** Prefer {@link WordDocument.fontSubstitutionTable}
|
|
113
|
+
* for alternate-name dictionary workflows (`get`/`set`/`delete`/`clear`/iteration).
|
|
114
|
+
* Use `fontTableFor` only for the full catalog — panose, family, pitch, charset,
|
|
115
|
+
* signature, embed relationship metadata, residual unknown markup, and
|
|
116
|
+
* `appendFont` / `font` / `fonts`.
|
|
117
|
+
*
|
|
118
|
+
* When the feature is registered but no part is attached yet (for example
|
|
119
|
+
* {@link WordDocument.create} before the handler ran at load, or registration after
|
|
120
|
+
* load), attaches an empty not-dirty {@link FontTablePart} so authoring works
|
|
121
|
+
* without a prior load of `fontTable.xml`.
|
|
122
|
+
*
|
|
123
|
+
* @throws DocxError `feature/not-registered` when a non-{@link FontTablePart}
|
|
124
|
+
* value occupies the feature slot, or when the feature cannot be ensured.
|
|
125
|
+
*
|
|
126
|
+
* @private
|
|
127
|
+
*/
|
|
128
|
+
export declare function fontTableFor(document: WordDocument): FontTablePart;
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
2
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
3
|
+
if (!m) return o;
|
|
4
|
+
var i = m.call(o), r, ar = [], e;
|
|
5
|
+
try {
|
|
6
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
7
|
+
}
|
|
8
|
+
catch (error) { e = { error: error }; }
|
|
9
|
+
finally {
|
|
10
|
+
try {
|
|
11
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
12
|
+
}
|
|
13
|
+
finally { if (e) throw e.error; }
|
|
14
|
+
}
|
|
15
|
+
return ar;
|
|
16
|
+
};
|
|
17
|
+
var __spread = (this && this.__spread) || function () {
|
|
18
|
+
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
|
|
19
|
+
return ar;
|
|
20
|
+
};
|
|
21
|
+
var __values = (this && this.__values) || function (o) {
|
|
22
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
|
|
23
|
+
if (m) return m.call(o);
|
|
24
|
+
return {
|
|
25
|
+
next: function () {
|
|
26
|
+
if (o && i >= o.length) o = void 0;
|
|
27
|
+
return { value: o && o[i++], done: !o };
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
import { DocxError } from '../../core/errors/docx-error';
|
|
32
|
+
import { elementChildren, isWml, wmlElement } from '../document/wml';
|
|
33
|
+
import { partName } from '../../core/opc/part-name';
|
|
34
|
+
import { featureId, registerFeature, registerFeaturePartHandler, } from '../../core/registry/index';
|
|
35
|
+
import { parseXml, serializeXml, WML_TRANSITIONAL_NAMESPACE } from '../../core/xml/index';
|
|
36
|
+
import { createFontTableFont, parseFontTableFont } from './font-table-entry';
|
|
37
|
+
var FONT_TABLE = featureId('font-table');
|
|
38
|
+
/**
|
|
39
|
+
* @private
|
|
40
|
+
* Transitional font table relationship (ECMA-376-4 §9.2.5). */
|
|
41
|
+
export var FONT_TABLE_RELATIONSHIP_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable';
|
|
42
|
+
/**
|
|
43
|
+
* @private
|
|
44
|
+
* Strict font table relationship (ECMA-376-1 §11.3.5). */
|
|
45
|
+
export var STRICT_FONT_TABLE_RELATIONSHIP_TYPE = 'http://purl.oclc.org/ooxml/officeDocument/relationships/fontTable';
|
|
46
|
+
/**
|
|
47
|
+
* @private
|
|
48
|
+
* ECMA-376-1 §11.3.5 Font Table content type. */
|
|
49
|
+
export var FONT_TABLE_CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml';
|
|
50
|
+
/**
|
|
51
|
+
* @private
|
|
52
|
+
*/
|
|
53
|
+
export var FONT_TABLE_PART_NAME = partName('/word/fontTable.xml');
|
|
54
|
+
var utf8Decoder = new TextDecoder('utf-8');
|
|
55
|
+
var utf8Encoder = new TextEncoder();
|
|
56
|
+
/** Locale-independent lower-case key for font name lookup. */
|
|
57
|
+
function fontLookupKey(name) {
|
|
58
|
+
return name.toLowerCase();
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* In-memory Font Table part (`word/fontTable.xml`).
|
|
62
|
+
*
|
|
63
|
+
* Clean loads stay byte-preserving until the first mutation. Dirty serialize
|
|
64
|
+
* rebuilds `w:fonts` from entry models + residual children (ECMA-376-1 §11.3.5 /
|
|
65
|
+
* §17.8). Each `w:font` emits the `CT_Font` child sequence (altName through
|
|
66
|
+
* embed slots) then residual unknown children.
|
|
67
|
+
*
|
|
68
|
+
* @private
|
|
69
|
+
*/
|
|
70
|
+
var FontTablePart = /** @class */ (function () {
|
|
71
|
+
/**
|
|
72
|
+
* @private
|
|
73
|
+
*/
|
|
74
|
+
function FontTablePart(bytes, fontEntries, rootExtrasBeforeFonts, rootExtrasAfterFonts, rootAttributes, rootNamespaceDeclarations, dirty) {
|
|
75
|
+
this.bytes = bytes;
|
|
76
|
+
this.fontEntries = fontEntries;
|
|
77
|
+
this.rootExtrasBeforeFonts = __spread(rootExtrasBeforeFonts);
|
|
78
|
+
this.rootExtrasAfterFonts = __spread(rootExtrasAfterFonts);
|
|
79
|
+
this.rootAttributes = __spread(rootAttributes);
|
|
80
|
+
this.rootNamespaceDeclarations =
|
|
81
|
+
rootNamespaceDeclarations.length > 0
|
|
82
|
+
? __spread(rootNamespaceDeclarations) : [{ prefix: 'w', namespaceUri: WML_TRANSITIONAL_NAMESPACE }];
|
|
83
|
+
this.dirty = dirty;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Declared font names from `w:font/@w:name` in document order (stored casing).
|
|
87
|
+
*
|
|
88
|
+
* @public
|
|
89
|
+
*/
|
|
90
|
+
FontTablePart.prototype.fontNames = function () {
|
|
91
|
+
return this.fontEntries.map(function (entry) { return entry.name; });
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Whether a font name appears in the table (case-insensitive).
|
|
95
|
+
*
|
|
96
|
+
* @public
|
|
97
|
+
*/
|
|
98
|
+
FontTablePart.prototype.hasFont = function (name) {
|
|
99
|
+
return this.font(name) !== undefined;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Font table entries in document order.
|
|
103
|
+
*
|
|
104
|
+
* @public
|
|
105
|
+
*/
|
|
106
|
+
FontTablePart.prototype.fonts = function () {
|
|
107
|
+
return this.fontEntries;
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Entry for `name`, or `undefined` when absent. Lookup is case-insensitive;
|
|
111
|
+
* stored `@w:name` casing is unchanged.
|
|
112
|
+
*
|
|
113
|
+
* @public
|
|
114
|
+
*/
|
|
115
|
+
FontTablePart.prototype.font = function (name) {
|
|
116
|
+
var key = fontLookupKey(name);
|
|
117
|
+
return this.fontEntries.find(function (entry) { return fontLookupKey(entry.name) === key; });
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Ensure a minimal `w:font/@w:name` row exists and return it.
|
|
121
|
+
* If present (case-insensitive), returns the existing entry without duplicating.
|
|
122
|
+
*
|
|
123
|
+
* @throws DocxError `content/unsupported` when `name` is empty or whitespace-only.
|
|
124
|
+
*
|
|
125
|
+
* @public
|
|
126
|
+
*/
|
|
127
|
+
FontTablePart.prototype.appendFont = function (name) {
|
|
128
|
+
var _this = this;
|
|
129
|
+
var trimmed = name.trim();
|
|
130
|
+
if (trimmed.length === 0) {
|
|
131
|
+
throw new DocxError('content/unsupported', 'Font name must not be empty');
|
|
132
|
+
}
|
|
133
|
+
var existing = this.font(trimmed);
|
|
134
|
+
if (existing !== undefined) {
|
|
135
|
+
return existing;
|
|
136
|
+
}
|
|
137
|
+
// Preserve caller casing (trimmed ends only).
|
|
138
|
+
var created = createFontTableFont(trimmed, function () {
|
|
139
|
+
_this.markDirty();
|
|
140
|
+
});
|
|
141
|
+
this.fontEntries.push(created);
|
|
142
|
+
this.markDirty();
|
|
143
|
+
return created;
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Declared substitute string for `name` (`w:altName/@w:val`), or `undefined`.
|
|
147
|
+
* Case-insensitive name lookup. Does not create entries.
|
|
148
|
+
*
|
|
149
|
+
* Prefer {@link WordDocument.fontSubstitutionTable} `.get(name)` for substitution
|
|
150
|
+
* workflows (TASK-8067). This helper remains a thin catalog alias to
|
|
151
|
+
* {@link FontTableFont.alternateName}.
|
|
152
|
+
*
|
|
153
|
+
* @public
|
|
154
|
+
*/
|
|
155
|
+
FontTablePart.prototype.substituteFont = function (name) {
|
|
156
|
+
var __ts33_0;
|
|
157
|
+
return ((__ts33_0 = this.font(name)), __ts33_0 == null ? undefined : __ts33_0.alternateName);
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* @private
|
|
161
|
+
*/
|
|
162
|
+
FontTablePart.prototype.isDirty = function () {
|
|
163
|
+
return this.dirty;
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
166
|
+
* @private
|
|
167
|
+
*/
|
|
168
|
+
FontTablePart.prototype.markDirty = function () {
|
|
169
|
+
this.dirty = true;
|
|
170
|
+
this.bytes = undefined;
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* @private
|
|
174
|
+
*/
|
|
175
|
+
FontTablePart.prototype.serialize = function () {
|
|
176
|
+
if (!this.dirty) {
|
|
177
|
+
if (this.bytes !== undefined) {
|
|
178
|
+
return this.bytes;
|
|
179
|
+
}
|
|
180
|
+
return new Uint8Array(0);
|
|
181
|
+
}
|
|
182
|
+
var children = __spread(this.rootExtrasBeforeFonts, this.fontEntries.map(function (entry) { return entry.serialize(); }), this.rootExtrasAfterFonts);
|
|
183
|
+
var root = wmlElement('fonts', {
|
|
184
|
+
namespaceDeclarations: this.rootNamespaceDeclarations,
|
|
185
|
+
attributes: this.rootAttributes,
|
|
186
|
+
children: children,
|
|
187
|
+
});
|
|
188
|
+
return utf8Encoder.encode(serializeXml(root));
|
|
189
|
+
};
|
|
190
|
+
return FontTablePart;
|
|
191
|
+
}());
|
|
192
|
+
export { FontTablePart };
|
|
193
|
+
function parseFontTableRoot(root, markDirty) {
|
|
194
|
+
var e_1, _a;
|
|
195
|
+
var fontEntries = [];
|
|
196
|
+
var rootExtrasBeforeFonts = [];
|
|
197
|
+
var rootExtrasAfterFonts = [];
|
|
198
|
+
var sawFont = false;
|
|
199
|
+
try {
|
|
200
|
+
for (var _b = __values(elementChildren(root)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
201
|
+
var child = _c.value;
|
|
202
|
+
if (isWml(child, 'font')) {
|
|
203
|
+
sawFont = true;
|
|
204
|
+
var entry = parseFontTableFont(child, markDirty);
|
|
205
|
+
if (entry !== undefined) {
|
|
206
|
+
fontEntries.push(entry);
|
|
207
|
+
}
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
210
|
+
if (sawFont) {
|
|
211
|
+
rootExtrasAfterFonts.push(child);
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
rootExtrasBeforeFonts.push(child);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
219
|
+
finally {
|
|
220
|
+
try {
|
|
221
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
222
|
+
}
|
|
223
|
+
finally { if (e_1) throw e_1.error; }
|
|
224
|
+
}
|
|
225
|
+
return {
|
|
226
|
+
fontEntries: fontEntries,
|
|
227
|
+
rootExtrasBeforeFonts: rootExtrasBeforeFonts,
|
|
228
|
+
rootExtrasAfterFonts: rootExtrasAfterFonts,
|
|
229
|
+
rootAttributes: __spread(root.attributes),
|
|
230
|
+
rootNamespaceDeclarations: __spread(root.namespaceDeclarations),
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
function loadFontTablePart(part) {
|
|
234
|
+
if (part === undefined) {
|
|
235
|
+
return new FontTablePart(undefined, [], [], [], [], [], false);
|
|
236
|
+
}
|
|
237
|
+
var root = parseXml(utf8Decoder.decode(part.data));
|
|
238
|
+
if (!isWml(root, 'fonts')) {
|
|
239
|
+
return new FontTablePart(part.data, [], [], [], [], [], false);
|
|
240
|
+
}
|
|
241
|
+
// Entries close over this holder so markDirty works before/after construction.
|
|
242
|
+
var holder = { part: undefined };
|
|
243
|
+
var markDirty = function () {
|
|
244
|
+
if (holder.part !== undefined) {
|
|
245
|
+
holder.part.markDirty();
|
|
246
|
+
}
|
|
247
|
+
};
|
|
248
|
+
var parsed = parseFontTableRoot(root, markDirty);
|
|
249
|
+
var result = new FontTablePart(part.data, parsed.fontEntries, parsed.rootExtrasBeforeFonts, parsed.rootExtrasAfterFonts, parsed.rootAttributes, parsed.rootNamespaceDeclarations, false);
|
|
250
|
+
holder.part = result;
|
|
251
|
+
return result;
|
|
252
|
+
}
|
|
253
|
+
var fontTableRegistered = false;
|
|
254
|
+
/**
|
|
255
|
+
* @private
|
|
256
|
+
* Test hook */
|
|
257
|
+
export function resetFontTableFeatureForTests() {
|
|
258
|
+
fontTableRegistered = false;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* @private
|
|
262
|
+
* Register the font table package-part handler. Idempotent. */
|
|
263
|
+
export function registerFontTableFeature() {
|
|
264
|
+
if (fontTableRegistered) {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
fontTableRegistered = true;
|
|
268
|
+
registerFeature({ id: FONT_TABLE });
|
|
269
|
+
registerFeaturePartHandler({
|
|
270
|
+
featureId: FONT_TABLE,
|
|
271
|
+
relationshipTypes: [FONT_TABLE_RELATIONSHIP_TYPE, STRICT_FONT_TABLE_RELATIONSHIP_TYPE],
|
|
272
|
+
defaultRelativeTarget: 'fontTable.xml',
|
|
273
|
+
partName: FONT_TABLE_PART_NAME,
|
|
274
|
+
contentType: FONT_TABLE_CONTENT_TYPE,
|
|
275
|
+
loadPart: function (part, ctx) {
|
|
276
|
+
void ctx;
|
|
277
|
+
return loadFontTablePart(part);
|
|
278
|
+
},
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Font table catalog for a document (`fontTable.xml` / `CT_FontsList`).
|
|
283
|
+
*
|
|
284
|
+
* **Public dual export (TASK-8067):** Prefer {@link WordDocument.fontSubstitutionTable}
|
|
285
|
+
* for alternate-name dictionary workflows (`get`/`set`/`delete`/`clear`/iteration).
|
|
286
|
+
* Use `fontTableFor` only for the full catalog — panose, family, pitch, charset,
|
|
287
|
+
* signature, embed relationship metadata, residual unknown markup, and
|
|
288
|
+
* `appendFont` / `font` / `fonts`.
|
|
289
|
+
*
|
|
290
|
+
* When the feature is registered but no part is attached yet (for example
|
|
291
|
+
* {@link WordDocument.create} before the handler ran at load, or registration after
|
|
292
|
+
* load), attaches an empty not-dirty {@link FontTablePart} so authoring works
|
|
293
|
+
* without a prior load of `fontTable.xml`.
|
|
294
|
+
*
|
|
295
|
+
* @throws DocxError `feature/not-registered` when a non-{@link FontTablePart}
|
|
296
|
+
* value occupies the feature slot, or when the feature cannot be ensured.
|
|
297
|
+
*
|
|
298
|
+
* @private
|
|
299
|
+
*/
|
|
300
|
+
export function fontTableFor(document) {
|
|
301
|
+
registerFontTableFeature();
|
|
302
|
+
var existing = document.featurePart(FONT_TABLE);
|
|
303
|
+
if (existing instanceof FontTablePart) {
|
|
304
|
+
return existing;
|
|
305
|
+
}
|
|
306
|
+
if (existing !== undefined) {
|
|
307
|
+
throw new DocxError('feature/not-registered', 'Font table part was not loaded; call registerFontTableFeature() or registerStylesFeature() before WordDocument.open');
|
|
308
|
+
}
|
|
309
|
+
// Absent only: empty catalog (not dirty). First mutation dirties and save emits the part.
|
|
310
|
+
var empty = new FontTablePart(undefined, [], [], [], [], [], false);
|
|
311
|
+
document.setFeaturePart(FONT_TABLE, empty);
|
|
312
|
+
return empty;
|
|
313
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export * from './font-substitution-table';
|
|
2
|
+
export * from './font-table-entry';
|
|
3
|
+
export * from './font-table';
|
|
4
|
+
/**
|
|
5
|
+
* Font Table feature (`word/fontTable.xml`).
|
|
6
|
+
*
|
|
7
|
+
* Owns the declarative font catalog (`CT_FontsList` / `CT_Font`), including
|
|
8
|
+
* `w:altName` substitution and typed metadata (`panose1`, `charset`, `family`,
|
|
9
|
+
* `notTrueType`, `pitch`, `sig`, embed relationship slots). Binary ODTTF
|
|
10
|
+
* authoring remains out of scope (ECMA-376-1 §11.3.5, §17.8).
|
|
11
|
+
*
|
|
12
|
+
* Public substitution entry: {@link WordDocument.fontSubstitutionTable}.
|
|
13
|
+
*
|
|
14
|
+
* @packageDocumentation
|
|
15
|
+
*/
|
|
16
|
+
import { WordDocument } from '../document/document';
|
|
17
|
+
import { FontSubstitutionTable } from './font-substitution-table';
|
|
18
|
+
/**
|
|
19
|
+
* WordDocument-owned font substitution dictionary for `document`.
|
|
20
|
+
*
|
|
21
|
+
* Same object identity on every access for a given document. Backed by the
|
|
22
|
+
* document’s {@link FontTablePart} (ensured on first access).
|
|
23
|
+
*
|
|
24
|
+
* @private
|
|
25
|
+
* Prefer {@link WordDocument.fontSubstitutionTable}.
|
|
26
|
+
*/
|
|
27
|
+
export declare function fontSubstitutionTableFor(document: WordDocument): FontSubstitutionTable;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export * from './font-substitution-table';
|
|
2
|
+
export * from './font-table-entry';
|
|
3
|
+
export * from './font-table';
|
|
4
|
+
/**
|
|
5
|
+
* Font Table feature (`word/fontTable.xml`).
|
|
6
|
+
*
|
|
7
|
+
* Owns the declarative font catalog (`CT_FontsList` / `CT_Font`), including
|
|
8
|
+
* `w:altName` substitution and typed metadata (`panose1`, `charset`, `family`,
|
|
9
|
+
* `notTrueType`, `pitch`, `sig`, embed relationship slots). Binary ODTTF
|
|
10
|
+
* authoring remains out of scope (ECMA-376-1 §11.3.5, §17.8).
|
|
11
|
+
*
|
|
12
|
+
* Public substitution entry: {@link WordDocument.fontSubstitutionTable}.
|
|
13
|
+
*
|
|
14
|
+
* @packageDocumentation
|
|
15
|
+
*/
|
|
16
|
+
import { WordDocument } from '../document/document';
|
|
17
|
+
import { FontSubstitutionTableImpl } from './font-substitution-table';
|
|
18
|
+
import { fontTableFor, registerFontTableFeature } from './font-table';
|
|
19
|
+
/** Stable `WordDocument` → substitution table identity (TASK-8066). */
|
|
20
|
+
var substitutionTables = new WeakMap();
|
|
21
|
+
/**
|
|
22
|
+
* WordDocument-owned font substitution dictionary for `document`.
|
|
23
|
+
*
|
|
24
|
+
* Same object identity on every access for a given document. Backed by the
|
|
25
|
+
* document’s {@link FontTablePart} (ensured on first access).
|
|
26
|
+
*
|
|
27
|
+
* @private
|
|
28
|
+
* Prefer {@link WordDocument.fontSubstitutionTable}.
|
|
29
|
+
*/
|
|
30
|
+
export function fontSubstitutionTableFor(document) {
|
|
31
|
+
registerFontTableFeature();
|
|
32
|
+
var cached = substitutionTables.get(document);
|
|
33
|
+
if (cached !== undefined) {
|
|
34
|
+
return cached;
|
|
35
|
+
}
|
|
36
|
+
var part = fontTableFor(document);
|
|
37
|
+
var table = new FontSubstitutionTableImpl(part);
|
|
38
|
+
substitutionTables.set(document, table);
|
|
39
|
+
return table;
|
|
40
|
+
}
|
|
41
|
+
Object.defineProperty(WordDocument.prototype, 'fontSubstitutionTable', {
|
|
42
|
+
configurable: true,
|
|
43
|
+
enumerable: false,
|
|
44
|
+
get: function () {
|
|
45
|
+
return fontSubstitutionTableFor(this);
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
registerFontTableFeature();
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { WordDocument } from '../document/document';
|
|
2
|
+
import { FeaturePackagePart } from '../document/feature-package-part';
|
|
3
|
+
/**
|
|
4
|
+
* @private
|
|
5
|
+
* Transitional glossary document relationship (ECMA-376-4 §9.2.8). */
|
|
6
|
+
export declare const GLOSSARY_DOCUMENT_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/glossaryDocument";
|
|
7
|
+
/**
|
|
8
|
+
* @private
|
|
9
|
+
* Strict glossary document relationship (ECMA-376-1 §11.3.8). */
|
|
10
|
+
export declare const STRICT_GLOSSARY_DOCUMENT_RELATIONSHIP_TYPE = "http://purl.oclc.org/ooxml/officeDocument/relationships/glossaryDocument";
|
|
11
|
+
/**
|
|
12
|
+
* @private
|
|
13
|
+
* ECMA-376-1 §11.3.8 Glossary WordDocument content type. */
|
|
14
|
+
export declare const GLOSSARY_DOCUMENT_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml";
|
|
15
|
+
/**
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
export declare const GLOSSARY_DOCUMENT_PART_NAME: import("../../core/opc/part-name").PartName;
|
|
19
|
+
interface DocPartSummary {
|
|
20
|
+
readonly name: string;
|
|
21
|
+
readonly category: string | undefined;
|
|
22
|
+
readonly gallery: string | undefined;
|
|
23
|
+
}
|
|
24
|
+
interface GlossaryMetadata {
|
|
25
|
+
readonly docParts: ReadonlyArray<DocPartSummary>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Preserve-only Glossary WordDocument part (`glossary/document.xml`).
|
|
29
|
+
* Building-block body content is opaque; name/category/gallery metadata is
|
|
30
|
+
* read-only catalog access. No building-block editor or mutation API is provided.
|
|
31
|
+
*
|
|
32
|
+
* @private
|
|
33
|
+
*/
|
|
34
|
+
export declare class GlossaryDocumentPart implements FeaturePackagePart {
|
|
35
|
+
private readonly bytes;
|
|
36
|
+
private readonly metadata;
|
|
37
|
+
private readonly dirty;
|
|
38
|
+
/**
|
|
39
|
+
* @private
|
|
40
|
+
*/
|
|
41
|
+
constructor(bytes: Uint8Array | undefined, metadata: GlossaryMetadata, dirty: boolean);
|
|
42
|
+
/**
|
|
43
|
+
* Whether the glossary part was present in the package.
|
|
44
|
+
*
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
present(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Count of `w:docParts/w:docPart` entries with a readable `w:name`.
|
|
50
|
+
*
|
|
51
|
+
* @public
|
|
52
|
+
*/
|
|
53
|
+
docPartCount(): number;
|
|
54
|
+
/**
|
|
55
|
+
* `w:docPartPr/w:name/@w:val` values in document order.
|
|
56
|
+
*
|
|
57
|
+
* @public
|
|
58
|
+
*/
|
|
59
|
+
docPartNames(): ReadonlyArray<string>;
|
|
60
|
+
/**
|
|
61
|
+
* `w:category/w:name/@w:val` for a doc part name, or `undefined` when absent.
|
|
62
|
+
*
|
|
63
|
+
* @public
|
|
64
|
+
*/
|
|
65
|
+
docPartCategory(name: string): string | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* `w:category/w:gallery/@w:val` for a doc part name, or `undefined` when absent.
|
|
68
|
+
*
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
docPartGallery(name: string): string | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* @private
|
|
74
|
+
*/
|
|
75
|
+
isDirty(): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* @private
|
|
78
|
+
*/
|
|
79
|
+
serialize(): Uint8Array;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @private
|
|
83
|
+
* Test hook */
|
|
84
|
+
export declare function resetGlossaryFeatureForTests(): void;
|
|
85
|
+
/**
|
|
86
|
+
* @private
|
|
87
|
+
* Register the glossary document package-part handler. Idempotent. */
|
|
88
|
+
export declare function registerGlossaryFeature(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Glossary document catalog for a package. Requires {@link registerGlossaryFeature}.
|
|
91
|
+
*
|
|
92
|
+
* @throws DocxError `UNKNOWN_FEATURE` when the module was not registered before load.
|
|
93
|
+
*
|
|
94
|
+
* @private
|
|
95
|
+
*/
|
|
96
|
+
export declare function glossaryFor(document: WordDocument): GlossaryDocumentPart;
|
|
97
|
+
export {};
|