@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,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Customer-facing table/cell border facades (`Border` / `Borders`).
|
|
3
|
+
*
|
|
4
|
+
* Backed by internal `TableBorder` bags; unknown `@w:val` tokens stay on the
|
|
5
|
+
* wire bag and do not surface as public BorderStyle values.
|
|
6
|
+
* `space` lives on Borders only (not on Border).
|
|
7
|
+
*/
|
|
8
|
+
import { BorderStyle } from '../document/page-setup';
|
|
9
|
+
import { Color } from '../document/color';
|
|
10
|
+
import { TableBorder, TableBorders, TableCellBorders } from './tbl-pr';
|
|
11
|
+
/** @private */
|
|
12
|
+
export declare type BorderBagHost = {
|
|
13
|
+
readEdge(key: BorderEdgeKey): TableBorder | undefined;
|
|
14
|
+
writeEdge(key: BorderEdgeKey, edge: TableBorder | undefined): void;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Keys for outer and inside edges (no diagonals on the public surface).
|
|
18
|
+
*
|
|
19
|
+
* @private
|
|
20
|
+
*/
|
|
21
|
+
export declare type BorderEdgeKey = 'top' | 'bottom' | 'left' | 'right' | 'insideH' | 'insideV';
|
|
22
|
+
/**
|
|
23
|
+
* One border edge.
|
|
24
|
+
*
|
|
25
|
+
* @public
|
|
26
|
+
*/
|
|
27
|
+
export declare class Border {
|
|
28
|
+
private readonly host;
|
|
29
|
+
private readonly key;
|
|
30
|
+
/**
|
|
31
|
+
* @private
|
|
32
|
+
*/
|
|
33
|
+
constructor(host: BorderBagHost, key: BorderEdgeKey);
|
|
34
|
+
private current;
|
|
35
|
+
private commit;
|
|
36
|
+
/**
|
|
37
|
+
* Wire `@w:val` for commits. When the edge has no style yet, default to
|
|
38
|
+
* `'single'` so color/size/space/shadow survive `serializeBorderEdge`
|
|
39
|
+
* (which requires `w:val`) and round-trip through tblPr XML — same as
|
|
40
|
+
* paragraph border faces.
|
|
41
|
+
* @private
|
|
42
|
+
*/
|
|
43
|
+
private styleWireForCommit;
|
|
44
|
+
/** Line style. Unknown loaded values return the public default and round-trip. */
|
|
45
|
+
borderType: BorderStyle;
|
|
46
|
+
/**
|
|
47
|
+
* Hex RGB or `'auto'`.
|
|
48
|
+
* Setter also accepts a {@link Color} enum value and optional leading `#` on hex strings.
|
|
49
|
+
* Getter always returns the OOXML wire string.
|
|
50
|
+
* Setting color without a prior `borderType` defaults the edge to single so the edge serializes.
|
|
51
|
+
*/
|
|
52
|
+
color: string | Color;
|
|
53
|
+
/**
|
|
54
|
+
* Thickness in points (public); stored as eighths of a point on the wire.
|
|
55
|
+
* Setting lineWidth without a prior `borderType` defaults the edge to single so the edge serializes.
|
|
56
|
+
*/
|
|
57
|
+
lineWidth: number;
|
|
58
|
+
/** Shadow flag (`w:shadow`). */
|
|
59
|
+
shadow: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* @private
|
|
62
|
+
* Internal edge space (points) used by Borders.space.
|
|
63
|
+
*/
|
|
64
|
+
readSpacePoints(): number;
|
|
65
|
+
/**
|
|
66
|
+
* @private
|
|
67
|
+
*/
|
|
68
|
+
writeSpacePoints(value: number): void;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Aggregate borders for a table or cell (no public diagonals).
|
|
72
|
+
*
|
|
73
|
+
* @public
|
|
74
|
+
*/
|
|
75
|
+
export declare class Borders {
|
|
76
|
+
private readonly host;
|
|
77
|
+
private readonly topBorder;
|
|
78
|
+
private readonly bottomBorder;
|
|
79
|
+
private readonly leftBorder;
|
|
80
|
+
private readonly rightBorder;
|
|
81
|
+
private readonly horizontalBorder;
|
|
82
|
+
private readonly verticalBorder;
|
|
83
|
+
private readonly includeInside;
|
|
84
|
+
/**
|
|
85
|
+
* @private
|
|
86
|
+
*/
|
|
87
|
+
constructor(host: BorderBagHost, includeInside?: boolean);
|
|
88
|
+
readonly top: Border;
|
|
89
|
+
readonly bottom: Border;
|
|
90
|
+
readonly left: Border;
|
|
91
|
+
readonly right: Border;
|
|
92
|
+
readonly horizontal: Border;
|
|
93
|
+
readonly vertical: Border;
|
|
94
|
+
private aggregateKeys;
|
|
95
|
+
private edgeAt;
|
|
96
|
+
/**
|
|
97
|
+
* Common border type across applicable edges.
|
|
98
|
+
* Mixed or absent edges return the public default (BorderStyle.None).
|
|
99
|
+
*/
|
|
100
|
+
borderType: BorderStyle;
|
|
101
|
+
/**
|
|
102
|
+
* Common border color across applicable edges.
|
|
103
|
+
* Mixed edges return the public default (`'auto'`).
|
|
104
|
+
* Setter accepts hex/`'auto'`, optional leading `#`, or a {@link Color} enum value.
|
|
105
|
+
*/
|
|
106
|
+
color: string | Color;
|
|
107
|
+
lineWidth: number;
|
|
108
|
+
/**
|
|
109
|
+
* Common edge w:space (points) across applicable edges.
|
|
110
|
+
* Mixed values return the public default 0.
|
|
111
|
+
*/
|
|
112
|
+
space: number;
|
|
113
|
+
shadow: boolean;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Host that reads/writes a full TableBorders bag via callbacks.
|
|
117
|
+
*
|
|
118
|
+
* @private
|
|
119
|
+
*/
|
|
120
|
+
export declare function createTableBordersHost(read: () => TableBorders | undefined, write: (value: TableBorders | undefined) => void): BorderBagHost;
|
|
121
|
+
/**
|
|
122
|
+
* Host for cell borders; preserves diagonal edges when rewriting.
|
|
123
|
+
*
|
|
124
|
+
* @private
|
|
125
|
+
*/
|
|
126
|
+
export declare function createCellBordersHost(read: () => TableCellBorders | undefined, write: (value: TableCellBorders | undefined) => void): BorderBagHost;
|
|
@@ -0,0 +1,527 @@
|
|
|
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
|
+
/**
|
|
13
|
+
* Customer-facing table/cell border facades (`Border` / `Borders`).
|
|
14
|
+
*
|
|
15
|
+
* Backed by internal `TableBorder` bags; unknown `@w:val` tokens stay on the
|
|
16
|
+
* wire bag and do not surface as public BorderStyle values.
|
|
17
|
+
* `space` lives on Borders only (not on Border).
|
|
18
|
+
*/
|
|
19
|
+
import { BorderStyle } from '../document/page-setup';
|
|
20
|
+
import { colorToHexWire, normalizeColorHex } from '../document/color';
|
|
21
|
+
import { borderStyleFromWire, borderStyleToWire, isKnownBorderWire } from './border-style-map';
|
|
22
|
+
var ALL_EDGE_KEYS = ['top', 'bottom', 'left', 'right', 'insideH', 'insideV'];
|
|
23
|
+
var OUTER_EDGE_KEYS = ['top', 'bottom', 'left', 'right'];
|
|
24
|
+
var DEFAULT_BORDER_TYPE = BorderStyle.None;
|
|
25
|
+
var DEFAULT_COLOR = 'auto';
|
|
26
|
+
var DEFAULT_LINE_WIDTH = 0;
|
|
27
|
+
var DEFAULT_SPACE = 0;
|
|
28
|
+
var DEFAULT_SHADOW = false;
|
|
29
|
+
function requireFiniteNonNegative(value, label) {
|
|
30
|
+
if (typeof value !== 'number' || !isFinite(value) || value < 0) {
|
|
31
|
+
throw new RangeError(label + ' must be a finite non-negative number');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function isBorderStyleValue(value) {
|
|
35
|
+
if (typeof value !== 'string') {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
if (isKnownBorderWire(value)) {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
if (borderStyleFromWire(value) !== undefined) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
var keys = Object.keys(BorderStyle);
|
|
45
|
+
for (var i = 0; i < keys.length; i += 1) {
|
|
46
|
+
if (BorderStyle[keys[i]] === value) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Normalize border color input to OOXML wire (`RRGGBB` / `'auto'`).
|
|
54
|
+
* {@link Color} becomes hex; {@link Color.Transparent} maps to `'auto'`.
|
|
55
|
+
* Strings may include a leading `#`.
|
|
56
|
+
* @private
|
|
57
|
+
*/
|
|
58
|
+
function borderColorToWire(value) {
|
|
59
|
+
if (typeof value === 'number') {
|
|
60
|
+
var hex_1 = colorToHexWire(value);
|
|
61
|
+
return hex_1.length > 0 ? hex_1 : 'auto';
|
|
62
|
+
}
|
|
63
|
+
if (typeof value !== 'string') {
|
|
64
|
+
throw new RangeError('Border color must be a string, Color, or hex color');
|
|
65
|
+
}
|
|
66
|
+
var raw = value.trim();
|
|
67
|
+
if (raw.length === 0) {
|
|
68
|
+
throw new RangeError('Border color must be a non-empty string');
|
|
69
|
+
}
|
|
70
|
+
if (raw.toLowerCase() === 'auto') {
|
|
71
|
+
return 'auto';
|
|
72
|
+
}
|
|
73
|
+
var hex = normalizeColorHex(raw);
|
|
74
|
+
if (hex !== undefined) {
|
|
75
|
+
return hex;
|
|
76
|
+
}
|
|
77
|
+
// Preserve unknown loaded tokens for round-trip (e.g. theme-ish values).
|
|
78
|
+
return value;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* One border edge.
|
|
82
|
+
*
|
|
83
|
+
* @public
|
|
84
|
+
*/
|
|
85
|
+
var Border = /** @class */ (function () {
|
|
86
|
+
/**
|
|
87
|
+
* @private
|
|
88
|
+
*/
|
|
89
|
+
function Border(host, key) {
|
|
90
|
+
this.host = host;
|
|
91
|
+
this.key = key;
|
|
92
|
+
}
|
|
93
|
+
Border.prototype.current = function () {
|
|
94
|
+
var edge = this.host.readEdge(this.key);
|
|
95
|
+
return edge !== undefined ? edge : {};
|
|
96
|
+
};
|
|
97
|
+
Border.prototype.commit = function (next) {
|
|
98
|
+
var has = next.style !== undefined ||
|
|
99
|
+
next.color !== undefined ||
|
|
100
|
+
next.size !== undefined ||
|
|
101
|
+
next.space !== undefined ||
|
|
102
|
+
next.shadow !== undefined;
|
|
103
|
+
this.host.writeEdge(this.key, has ? next : undefined);
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Wire `@w:val` for commits. When the edge has no style yet, default to
|
|
107
|
+
* `'single'` so color/size/space/shadow survive `serializeBorderEdge`
|
|
108
|
+
* (which requires `w:val`) and round-trip through tblPr XML — same as
|
|
109
|
+
* paragraph border faces.
|
|
110
|
+
* @private
|
|
111
|
+
*/
|
|
112
|
+
Border.prototype.styleWireForCommit = function (cur) {
|
|
113
|
+
return cur.style !== undefined ? cur.style : 'single';
|
|
114
|
+
};
|
|
115
|
+
Object.defineProperty(Border.prototype, "borderType", {
|
|
116
|
+
/** Line style. Unknown loaded values return the public default and round-trip. */
|
|
117
|
+
get: function () {
|
|
118
|
+
var style = this.current().style;
|
|
119
|
+
if (style === undefined) {
|
|
120
|
+
return DEFAULT_BORDER_TYPE;
|
|
121
|
+
}
|
|
122
|
+
var mapped = borderStyleFromWire(style);
|
|
123
|
+
return mapped !== undefined ? mapped : DEFAULT_BORDER_TYPE;
|
|
124
|
+
},
|
|
125
|
+
set: function (value) {
|
|
126
|
+
if (!isBorderStyleValue(value)) {
|
|
127
|
+
throw new RangeError('Unsupported BorderStyle value');
|
|
128
|
+
}
|
|
129
|
+
var cur = this.current();
|
|
130
|
+
this.commit({
|
|
131
|
+
style: borderStyleToWire(value),
|
|
132
|
+
color: cur.color,
|
|
133
|
+
size: cur.size,
|
|
134
|
+
space: cur.space,
|
|
135
|
+
shadow: cur.shadow,
|
|
136
|
+
});
|
|
137
|
+
},
|
|
138
|
+
enumerable: true,
|
|
139
|
+
configurable: true
|
|
140
|
+
});
|
|
141
|
+
Object.defineProperty(Border.prototype, "color", {
|
|
142
|
+
/**
|
|
143
|
+
* Hex RGB or `'auto'`.
|
|
144
|
+
* Setter also accepts a {@link Color} enum value and optional leading `#` on hex strings.
|
|
145
|
+
* Getter always returns the OOXML wire string.
|
|
146
|
+
* Setting color without a prior `borderType` defaults the edge to single so the edge serializes.
|
|
147
|
+
*/
|
|
148
|
+
get: function () {
|
|
149
|
+
var c = this.current().color;
|
|
150
|
+
return c !== undefined ? c : DEFAULT_COLOR;
|
|
151
|
+
},
|
|
152
|
+
set: function (value) {
|
|
153
|
+
var wire = borderColorToWire(value);
|
|
154
|
+
var cur = this.current();
|
|
155
|
+
this.commit({
|
|
156
|
+
style: this.styleWireForCommit(cur),
|
|
157
|
+
color: wire,
|
|
158
|
+
size: cur.size,
|
|
159
|
+
space: cur.space,
|
|
160
|
+
shadow: cur.shadow,
|
|
161
|
+
});
|
|
162
|
+
},
|
|
163
|
+
enumerable: true,
|
|
164
|
+
configurable: true
|
|
165
|
+
});
|
|
166
|
+
Object.defineProperty(Border.prototype, "lineWidth", {
|
|
167
|
+
/**
|
|
168
|
+
* Thickness in points (public); stored as eighths of a point on the wire.
|
|
169
|
+
* Setting lineWidth without a prior `borderType` defaults the edge to single so the edge serializes.
|
|
170
|
+
*/
|
|
171
|
+
get: function () {
|
|
172
|
+
var size = this.current().size;
|
|
173
|
+
return size !== undefined ? size / 8 : DEFAULT_LINE_WIDTH;
|
|
174
|
+
},
|
|
175
|
+
set: function (value) {
|
|
176
|
+
requireFiniteNonNegative(value, 'Border lineWidth');
|
|
177
|
+
var cur = this.current();
|
|
178
|
+
this.commit({
|
|
179
|
+
style: this.styleWireForCommit(cur),
|
|
180
|
+
color: cur.color,
|
|
181
|
+
size: Math.round(value * 8),
|
|
182
|
+
space: cur.space,
|
|
183
|
+
shadow: cur.shadow,
|
|
184
|
+
});
|
|
185
|
+
},
|
|
186
|
+
enumerable: true,
|
|
187
|
+
configurable: true
|
|
188
|
+
});
|
|
189
|
+
Object.defineProperty(Border.prototype, "shadow", {
|
|
190
|
+
/** Shadow flag (`w:shadow`). */
|
|
191
|
+
get: function () {
|
|
192
|
+
var s = this.current().shadow;
|
|
193
|
+
return s !== undefined ? s : DEFAULT_SHADOW;
|
|
194
|
+
},
|
|
195
|
+
set: function (value) {
|
|
196
|
+
if (typeof value !== 'boolean') {
|
|
197
|
+
throw new RangeError('Border shadow must be a boolean');
|
|
198
|
+
}
|
|
199
|
+
var cur = this.current();
|
|
200
|
+
this.commit({
|
|
201
|
+
style: this.styleWireForCommit(cur),
|
|
202
|
+
color: cur.color,
|
|
203
|
+
size: cur.size,
|
|
204
|
+
space: cur.space,
|
|
205
|
+
shadow: value,
|
|
206
|
+
});
|
|
207
|
+
},
|
|
208
|
+
enumerable: true,
|
|
209
|
+
configurable: true
|
|
210
|
+
});
|
|
211
|
+
/**
|
|
212
|
+
* @private
|
|
213
|
+
* Internal edge space (points) used by Borders.space.
|
|
214
|
+
*/
|
|
215
|
+
Border.prototype.readSpacePoints = function () {
|
|
216
|
+
var s = this.current().space;
|
|
217
|
+
return s !== undefined ? s : DEFAULT_SPACE;
|
|
218
|
+
};
|
|
219
|
+
/**
|
|
220
|
+
* @private
|
|
221
|
+
*/
|
|
222
|
+
Border.prototype.writeSpacePoints = function (value) {
|
|
223
|
+
requireFiniteNonNegative(value, 'Borders space');
|
|
224
|
+
var cur = this.current();
|
|
225
|
+
this.commit({
|
|
226
|
+
style: this.styleWireForCommit(cur),
|
|
227
|
+
color: cur.color,
|
|
228
|
+
size: cur.size,
|
|
229
|
+
space: value,
|
|
230
|
+
shadow: cur.shadow,
|
|
231
|
+
});
|
|
232
|
+
};
|
|
233
|
+
return Border;
|
|
234
|
+
}());
|
|
235
|
+
export { Border };
|
|
236
|
+
/**
|
|
237
|
+
* Aggregate borders for a table or cell (no public diagonals).
|
|
238
|
+
*
|
|
239
|
+
* @public
|
|
240
|
+
*/
|
|
241
|
+
var Borders = /** @class */ (function () {
|
|
242
|
+
/**
|
|
243
|
+
* @private
|
|
244
|
+
*/
|
|
245
|
+
function Borders(host, includeInside) {
|
|
246
|
+
if (includeInside === void 0) { includeInside = true; }
|
|
247
|
+
this.host = host;
|
|
248
|
+
this.includeInside = includeInside;
|
|
249
|
+
this.topBorder = new Border(host, 'top');
|
|
250
|
+
this.bottomBorder = new Border(host, 'bottom');
|
|
251
|
+
this.leftBorder = new Border(host, 'left');
|
|
252
|
+
this.rightBorder = new Border(host, 'right');
|
|
253
|
+
this.horizontalBorder = new Border(host, 'insideH');
|
|
254
|
+
this.verticalBorder = new Border(host, 'insideV');
|
|
255
|
+
}
|
|
256
|
+
Object.defineProperty(Borders.prototype, "top", {
|
|
257
|
+
get: function () {
|
|
258
|
+
return this.topBorder;
|
|
259
|
+
},
|
|
260
|
+
enumerable: true,
|
|
261
|
+
configurable: true
|
|
262
|
+
});
|
|
263
|
+
Object.defineProperty(Borders.prototype, "bottom", {
|
|
264
|
+
get: function () {
|
|
265
|
+
return this.bottomBorder;
|
|
266
|
+
},
|
|
267
|
+
enumerable: true,
|
|
268
|
+
configurable: true
|
|
269
|
+
});
|
|
270
|
+
Object.defineProperty(Borders.prototype, "left", {
|
|
271
|
+
get: function () {
|
|
272
|
+
return this.leftBorder;
|
|
273
|
+
},
|
|
274
|
+
enumerable: true,
|
|
275
|
+
configurable: true
|
|
276
|
+
});
|
|
277
|
+
Object.defineProperty(Borders.prototype, "right", {
|
|
278
|
+
get: function () {
|
|
279
|
+
return this.rightBorder;
|
|
280
|
+
},
|
|
281
|
+
enumerable: true,
|
|
282
|
+
configurable: true
|
|
283
|
+
});
|
|
284
|
+
Object.defineProperty(Borders.prototype, "horizontal", {
|
|
285
|
+
get: function () {
|
|
286
|
+
return this.horizontalBorder;
|
|
287
|
+
},
|
|
288
|
+
enumerable: true,
|
|
289
|
+
configurable: true
|
|
290
|
+
});
|
|
291
|
+
Object.defineProperty(Borders.prototype, "vertical", {
|
|
292
|
+
get: function () {
|
|
293
|
+
return this.verticalBorder;
|
|
294
|
+
},
|
|
295
|
+
enumerable: true,
|
|
296
|
+
configurable: true
|
|
297
|
+
});
|
|
298
|
+
Borders.prototype.aggregateKeys = function () {
|
|
299
|
+
return this.includeInside ? ALL_EDGE_KEYS : OUTER_EDGE_KEYS;
|
|
300
|
+
};
|
|
301
|
+
Borders.prototype.edgeAt = function (key) {
|
|
302
|
+
return new Border(this.host, key);
|
|
303
|
+
};
|
|
304
|
+
Object.defineProperty(Borders.prototype, "borderType", {
|
|
305
|
+
/**
|
|
306
|
+
* Common border type across applicable edges.
|
|
307
|
+
* Mixed or absent edges return the public default (BorderStyle.None).
|
|
308
|
+
*/
|
|
309
|
+
get: function () {
|
|
310
|
+
var keys = this.aggregateKeys();
|
|
311
|
+
var common;
|
|
312
|
+
var saw = false;
|
|
313
|
+
for (var i = 0; i < keys.length; i += 1) {
|
|
314
|
+
var t = this.edgeAt(keys[i]).borderType;
|
|
315
|
+
if (!saw) {
|
|
316
|
+
common = t;
|
|
317
|
+
saw = true;
|
|
318
|
+
}
|
|
319
|
+
else if (t !== common) {
|
|
320
|
+
return DEFAULT_BORDER_TYPE;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
return common !== undefined ? common : DEFAULT_BORDER_TYPE;
|
|
324
|
+
},
|
|
325
|
+
set: function (value) {
|
|
326
|
+
if (!isBorderStyleValue(value)) {
|
|
327
|
+
throw new RangeError('Unsupported BorderStyle value');
|
|
328
|
+
}
|
|
329
|
+
var keys = this.aggregateKeys();
|
|
330
|
+
for (var i = 0; i < keys.length; i += 1) {
|
|
331
|
+
this.edgeAt(keys[i]).borderType = value;
|
|
332
|
+
}
|
|
333
|
+
},
|
|
334
|
+
enumerable: true,
|
|
335
|
+
configurable: true
|
|
336
|
+
});
|
|
337
|
+
Object.defineProperty(Borders.prototype, "color", {
|
|
338
|
+
/**
|
|
339
|
+
* Common border color across applicable edges.
|
|
340
|
+
* Mixed edges return the public default (`'auto'`).
|
|
341
|
+
* Setter accepts hex/`'auto'`, optional leading `#`, or a {@link Color} enum value.
|
|
342
|
+
*/
|
|
343
|
+
get: function () {
|
|
344
|
+
var keys = this.aggregateKeys();
|
|
345
|
+
var common;
|
|
346
|
+
var saw = false;
|
|
347
|
+
for (var i = 0; i < keys.length; i += 1) {
|
|
348
|
+
var c = this.edgeAt(keys[i]).color;
|
|
349
|
+
if (!saw) {
|
|
350
|
+
common = c;
|
|
351
|
+
saw = true;
|
|
352
|
+
}
|
|
353
|
+
else if (c !== common) {
|
|
354
|
+
return DEFAULT_COLOR;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
return common !== undefined ? common : DEFAULT_COLOR;
|
|
358
|
+
},
|
|
359
|
+
set: function (value) {
|
|
360
|
+
var keys = this.aggregateKeys();
|
|
361
|
+
for (var i = 0; i < keys.length; i += 1) {
|
|
362
|
+
this.edgeAt(keys[i]).color = value;
|
|
363
|
+
}
|
|
364
|
+
},
|
|
365
|
+
enumerable: true,
|
|
366
|
+
configurable: true
|
|
367
|
+
});
|
|
368
|
+
Object.defineProperty(Borders.prototype, "lineWidth", {
|
|
369
|
+
get: function () {
|
|
370
|
+
var keys = this.aggregateKeys();
|
|
371
|
+
var common;
|
|
372
|
+
var saw = false;
|
|
373
|
+
for (var i = 0; i < keys.length; i += 1) {
|
|
374
|
+
var w = this.edgeAt(keys[i]).lineWidth;
|
|
375
|
+
if (!saw) {
|
|
376
|
+
common = w;
|
|
377
|
+
saw = true;
|
|
378
|
+
}
|
|
379
|
+
else if (w !== common) {
|
|
380
|
+
return DEFAULT_LINE_WIDTH;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
return common !== undefined ? common : DEFAULT_LINE_WIDTH;
|
|
384
|
+
},
|
|
385
|
+
set: function (value) {
|
|
386
|
+
requireFiniteNonNegative(value, 'Borders lineWidth');
|
|
387
|
+
var keys = this.aggregateKeys();
|
|
388
|
+
for (var i = 0; i < keys.length; i += 1) {
|
|
389
|
+
this.edgeAt(keys[i]).lineWidth = value;
|
|
390
|
+
}
|
|
391
|
+
},
|
|
392
|
+
enumerable: true,
|
|
393
|
+
configurable: true
|
|
394
|
+
});
|
|
395
|
+
Object.defineProperty(Borders.prototype, "space", {
|
|
396
|
+
/**
|
|
397
|
+
* Common edge w:space (points) across applicable edges.
|
|
398
|
+
* Mixed values return the public default 0.
|
|
399
|
+
*/
|
|
400
|
+
get: function () {
|
|
401
|
+
var keys = this.aggregateKeys();
|
|
402
|
+
var common;
|
|
403
|
+
var saw = false;
|
|
404
|
+
for (var i = 0; i < keys.length; i += 1) {
|
|
405
|
+
var s = this.edgeAt(keys[i]).readSpacePoints();
|
|
406
|
+
if (!saw) {
|
|
407
|
+
common = s;
|
|
408
|
+
saw = true;
|
|
409
|
+
}
|
|
410
|
+
else if (s !== common) {
|
|
411
|
+
return DEFAULT_SPACE;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
return common !== undefined ? common : DEFAULT_SPACE;
|
|
415
|
+
},
|
|
416
|
+
set: function (value) {
|
|
417
|
+
requireFiniteNonNegative(value, 'Borders space');
|
|
418
|
+
var keys = this.aggregateKeys();
|
|
419
|
+
for (var i = 0; i < keys.length; i += 1) {
|
|
420
|
+
this.edgeAt(keys[i]).writeSpacePoints(value);
|
|
421
|
+
}
|
|
422
|
+
},
|
|
423
|
+
enumerable: true,
|
|
424
|
+
configurable: true
|
|
425
|
+
});
|
|
426
|
+
Object.defineProperty(Borders.prototype, "shadow", {
|
|
427
|
+
get: function () {
|
|
428
|
+
var keys = this.aggregateKeys();
|
|
429
|
+
var common;
|
|
430
|
+
var saw = false;
|
|
431
|
+
for (var i = 0; i < keys.length; i += 1) {
|
|
432
|
+
var s = this.edgeAt(keys[i]).shadow;
|
|
433
|
+
if (!saw) {
|
|
434
|
+
common = s;
|
|
435
|
+
saw = true;
|
|
436
|
+
}
|
|
437
|
+
else if (s !== common) {
|
|
438
|
+
return DEFAULT_SHADOW;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
return common !== undefined ? common : DEFAULT_SHADOW;
|
|
442
|
+
},
|
|
443
|
+
set: function (value) {
|
|
444
|
+
if (typeof value !== 'boolean') {
|
|
445
|
+
throw new RangeError('Borders shadow must be a boolean');
|
|
446
|
+
}
|
|
447
|
+
var keys = this.aggregateKeys();
|
|
448
|
+
for (var i = 0; i < keys.length; i += 1) {
|
|
449
|
+
this.edgeAt(keys[i]).shadow = value;
|
|
450
|
+
}
|
|
451
|
+
},
|
|
452
|
+
enumerable: true,
|
|
453
|
+
configurable: true
|
|
454
|
+
});
|
|
455
|
+
return Borders;
|
|
456
|
+
}());
|
|
457
|
+
export { Borders };
|
|
458
|
+
/**
|
|
459
|
+
* Host that reads/writes a full TableBorders bag via callbacks.
|
|
460
|
+
*
|
|
461
|
+
* @private
|
|
462
|
+
*/
|
|
463
|
+
export function createTableBordersHost(read, write) {
|
|
464
|
+
return {
|
|
465
|
+
readEdge: function (key) {
|
|
466
|
+
var bag = read();
|
|
467
|
+
if (bag === undefined) {
|
|
468
|
+
return undefined;
|
|
469
|
+
}
|
|
470
|
+
return bag[key];
|
|
471
|
+
},
|
|
472
|
+
writeEdge: function (key, edge) {
|
|
473
|
+
var prev = read();
|
|
474
|
+
var next = prev !== undefined ? __assign({}, prev) : {};
|
|
475
|
+
var mutable = next;
|
|
476
|
+
if (edge === undefined) {
|
|
477
|
+
delete mutable[key];
|
|
478
|
+
}
|
|
479
|
+
else {
|
|
480
|
+
mutable[key] = edge;
|
|
481
|
+
}
|
|
482
|
+
var has = next.top !== undefined ||
|
|
483
|
+
next.bottom !== undefined ||
|
|
484
|
+
next.left !== undefined ||
|
|
485
|
+
next.right !== undefined ||
|
|
486
|
+
next.insideH !== undefined ||
|
|
487
|
+
next.insideV !== undefined;
|
|
488
|
+
write(has ? next : undefined);
|
|
489
|
+
},
|
|
490
|
+
};
|
|
491
|
+
}
|
|
492
|
+
/**
|
|
493
|
+
* Host for cell borders; preserves diagonal edges when rewriting.
|
|
494
|
+
*
|
|
495
|
+
* @private
|
|
496
|
+
*/
|
|
497
|
+
export function createCellBordersHost(read, write) {
|
|
498
|
+
return {
|
|
499
|
+
readEdge: function (key) {
|
|
500
|
+
var bag = read();
|
|
501
|
+
if (bag === undefined) {
|
|
502
|
+
return undefined;
|
|
503
|
+
}
|
|
504
|
+
return bag[key];
|
|
505
|
+
},
|
|
506
|
+
writeEdge: function (key, edge) {
|
|
507
|
+
var prev = read();
|
|
508
|
+
var next = prev !== undefined ? __assign({}, prev) : {};
|
|
509
|
+
var mutable = next;
|
|
510
|
+
if (edge === undefined) {
|
|
511
|
+
delete mutable[key];
|
|
512
|
+
}
|
|
513
|
+
else {
|
|
514
|
+
mutable[key] = edge;
|
|
515
|
+
}
|
|
516
|
+
var has = next.top !== undefined ||
|
|
517
|
+
next.bottom !== undefined ||
|
|
518
|
+
next.left !== undefined ||
|
|
519
|
+
next.right !== undefined ||
|
|
520
|
+
next.insideH !== undefined ||
|
|
521
|
+
next.insideV !== undefined ||
|
|
522
|
+
next.tl2br !== undefined ||
|
|
523
|
+
next.tr2bl !== undefined;
|
|
524
|
+
write(has ? next : undefined);
|
|
525
|
+
},
|
|
526
|
+
};
|
|
527
|
+
}
|