@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.
Files changed (417) hide show
  1. package/.gitleaksignore +35 -0
  2. package/README.md +68 -2
  3. package/core.js +4 -0
  4. package/dist/ej2-docx.umd.min.js +11 -0
  5. package/dist/ej2-docx.umd.min.js.map +1 -0
  6. package/dist/es6/ej2-docx.es2015.js +66697 -0
  7. package/dist/es6/ej2-docx.es2015.js.map +1 -0
  8. package/dist/es6/ej2-docx.es5.js +77568 -0
  9. package/dist/es6/ej2-docx.es5.js.map +1 -0
  10. package/dist/global/ej2-docx.min.js +11 -0
  11. package/dist/global/ej2-docx.min.js.map +1 -0
  12. package/dist/global/index.d.ts +14 -0
  13. package/features.js +4 -0
  14. package/index.js +4 -0
  15. package/license +10 -0
  16. package/package.json +30 -3
  17. package/src/all.d.ts +50 -0
  18. package/src/all.js +147 -0
  19. package/src/core/compat/base64.d.ts +13 -0
  20. package/src/core/compat/base64.js +90 -0
  21. package/src/core/compat/object-compat.d.ts +30 -0
  22. package/src/core/compat/object-compat.js +40 -0
  23. package/src/core/compat/sha256.d.ts +9 -0
  24. package/src/core/compat/sha256.js +98 -0
  25. package/src/core/errors/docx-error.d.ts +89 -0
  26. package/src/core/errors/docx-error.js +138 -0
  27. package/src/core/errors/error-codes.d.ts +8 -0
  28. package/src/core/errors/error-codes.js +0 -0
  29. package/src/core/errors/index.d.ts +10 -0
  30. package/src/core/errors/index.js +9 -0
  31. package/src/core/index.d.ts +12 -0
  32. package/src/core/index.js +12 -0
  33. package/src/core/mc/alternate-content.d.ts +7 -0
  34. package/src/core/mc/alternate-content.js +67 -0
  35. package/src/core/mc/attributes.d.ts +24 -0
  36. package/src/core/mc/attributes.js +82 -0
  37. package/src/core/mc/index.d.ts +7 -0
  38. package/src/core/mc/index.js +5 -0
  39. package/src/core/mc/inspect.d.ts +16 -0
  40. package/src/core/mc/inspect.js +148 -0
  41. package/src/core/mc/namespaces.d.ts +4 -0
  42. package/src/core/mc/namespaces.js +4 -0
  43. package/src/core/mc/scope.d.ts +6 -0
  44. package/src/core/mc/scope.js +47 -0
  45. package/src/core/opc/content-types.d.ts +34 -0
  46. package/src/core/opc/content-types.js +162 -0
  47. package/src/core/opc/index.d.ts +8 -0
  48. package/src/core/opc/index.js +4 -0
  49. package/src/core/opc/package.d.ts +49 -0
  50. package/src/core/opc/package.js +324 -0
  51. package/src/core/opc/part-name.d.ts +47 -0
  52. package/src/core/opc/part-name.js +205 -0
  53. package/src/core/opc/relationships.d.ts +46 -0
  54. package/src/core/opc/relationships.js +212 -0
  55. package/src/core/preservation/index.d.ts +2 -0
  56. package/src/core/preservation/index.js +1 -0
  57. package/src/core/preservation/opaque-body.d.ts +16 -0
  58. package/src/core/preservation/opaque-body.js +69 -0
  59. package/src/core/registry/block-handlers.d.ts +30 -0
  60. package/src/core/registry/block-handlers.js +36 -0
  61. package/src/core/registry/create-defaults.d.ts +39 -0
  62. package/src/core/registry/create-defaults.js +42 -0
  63. package/src/core/registry/feature-registry.d.ts +20 -0
  64. package/src/core/registry/feature-registry.js +29 -0
  65. package/src/core/registry/index.d.ts +9 -0
  66. package/src/core/registry/index.js +8 -0
  67. package/src/core/registry/inline-handlers.d.ts +20 -0
  68. package/src/core/registry/inline-handlers.js +30 -0
  69. package/src/core/registry/materialize-handlers.d.ts +35 -0
  70. package/src/core/registry/materialize-handlers.js +75 -0
  71. package/src/core/registry/multi-part-handlers.d.ts +37 -0
  72. package/src/core/registry/multi-part-handlers.js +206 -0
  73. package/src/core/registry/package-part-handlers.d.ts +28 -0
  74. package/src/core/registry/package-part-handlers.js +190 -0
  75. package/src/core/registry/part-handlers.d.ts +24 -0
  76. package/src/core/registry/part-handlers.js +172 -0
  77. package/src/core/registry/run-leaf-handlers.d.ts +26 -0
  78. package/src/core/registry/run-leaf-handlers.js +72 -0
  79. package/src/core/security/limits.d.ts +40 -0
  80. package/src/core/security/limits.js +26 -0
  81. package/src/core/xml/index.d.ts +7 -0
  82. package/src/core/xml/index.js +3 -0
  83. package/src/core/xml/model.d.ts +66 -0
  84. package/src/core/xml/model.js +17 -0
  85. package/src/core/xml/parse.d.ts +12 -0
  86. package/src/core/xml/parse.js +382 -0
  87. package/src/core/xml/serialize.d.ts +6 -0
  88. package/src/core/xml/serialize.js +93 -0
  89. package/src/core/zip/crc32.d.ts +2 -0
  90. package/src/core/zip/crc32.js +25 -0
  91. package/src/core/zip/deflate.d.ts +6 -0
  92. package/src/core/zip/deflate.js +6 -0
  93. package/src/core/zip/index.d.ts +10 -0
  94. package/src/core/zip/index.js +4 -0
  95. package/src/core/zip/inflate-raw.d.ts +17 -0
  96. package/src/core/zip/inflate-raw.js +450 -0
  97. package/src/core/zip/names.d.ts +6 -0
  98. package/src/core/zip/names.js +52 -0
  99. package/src/core/zip/read.d.ts +8 -0
  100. package/src/core/zip/read.js +262 -0
  101. package/src/core/zip/write.d.ts +7 -0
  102. package/src/core/zip/write.js +189 -0
  103. package/src/core/zip/zip-entry.d.ts +4 -0
  104. package/src/core/zip/zip-entry.js +0 -0
  105. package/src/features/bibliography/index.d.ts +100 -0
  106. package/src/features/bibliography/index.js +290 -0
  107. package/src/features/bookmarks/index.d.ts +331 -0
  108. package/src/features/bookmarks/index.js +1009 -0
  109. package/src/features/comments/comment-extensions.d.ts +157 -0
  110. package/src/features/comments/comment-extensions.js +356 -0
  111. package/src/features/comments/index.d.ts +579 -0
  112. package/src/features/comments/index.js +1727 -0
  113. package/src/features/content-controls/index.d.ts +821 -0
  114. package/src/features/content-controls/index.js +2857 -0
  115. package/src/features/custom-xml/index.d.ts +236 -0
  116. package/src/features/custom-xml/index.js +661 -0
  117. package/src/features/document/alignment.d.ts +23 -0
  118. package/src/features/document/alignment.js +36 -0
  119. package/src/features/document/alt-chunk.d.ts +103 -0
  120. package/src/features/document/alt-chunk.js +221 -0
  121. package/src/features/document/assert-never.d.ts +1 -0
  122. package/src/features/document/assert-never.js +4 -0
  123. package/src/features/document/augmentations.d.ts +578 -0
  124. package/src/features/document/augmentations.js +0 -0
  125. package/src/features/document/body-always-on.d.ts +36 -0
  126. package/src/features/document/body-always-on.js +66 -0
  127. package/src/features/document/body-blocks.d.ts +7 -0
  128. package/src/features/document/body-blocks.js +78 -0
  129. package/src/features/document/body-item-adapters.d.ts +62 -0
  130. package/src/features/document/body-item-adapters.js +97 -0
  131. package/src/features/document/body-item-collection.d.ts +151 -0
  132. package/src/features/document/body-item-collection.js +440 -0
  133. package/src/features/document/body-item.d.ts +35 -0
  134. package/src/features/document/body-item.js +8 -0
  135. package/src/features/document/body.d.ts +150 -0
  136. package/src/features/document/body.js +263 -0
  137. package/src/features/document/character-format.d.ts +413 -0
  138. package/src/features/document/character-format.js +2054 -0
  139. package/src/features/document/color.d.ts +178 -0
  140. package/src/features/document/color.js +495 -0
  141. package/src/features/document/document.d.ts +410 -0
  142. package/src/features/document/document.js +1049 -0
  143. package/src/features/document/element-type.d.ts +68 -0
  144. package/src/features/document/element-type.js +133 -0
  145. package/src/features/document/entity-type.d.ts +92 -0
  146. package/src/features/document/entity-type.js +93 -0
  147. package/src/features/document/feature-block.d.ts +16 -0
  148. package/src/features/document/feature-block.js +0 -0
  149. package/src/features/document/feature-inline.d.ts +13 -0
  150. package/src/features/document/feature-inline.js +0 -0
  151. package/src/features/document/feature-multi-package-part.d.ts +19 -0
  152. package/src/features/document/feature-multi-package-part.js +8 -0
  153. package/src/features/document/feature-package-level-part.d.ts +18 -0
  154. package/src/features/document/feature-package-level-part.js +8 -0
  155. package/src/features/document/feature-package-part.d.ts +14 -0
  156. package/src/features/document/feature-package-part.js +0 -0
  157. package/src/features/document/feature-run-leaf.d.ts +9 -0
  158. package/src/features/document/feature-run-leaf.js +0 -0
  159. package/src/features/document/headers-footers.d.ts +206 -0
  160. package/src/features/document/headers-footers.js +384 -0
  161. package/src/features/document/index.d.ts +41 -0
  162. package/src/features/document/index.js +34 -0
  163. package/src/features/document/length.d.ts +152 -0
  164. package/src/features/document/length.js +245 -0
  165. package/src/features/document/load-options.d.ts +14 -0
  166. package/src/features/document/load-options.js +0 -0
  167. package/src/features/document/locale-ids.d.ts +227 -0
  168. package/src/features/document/locale-ids.js +485 -0
  169. package/src/features/document/on-off.d.ts +9 -0
  170. package/src/features/document/on-off.js +27 -0
  171. package/src/features/document/page-setup.d.ts +339 -0
  172. package/src/features/document/page-setup.js +244 -0
  173. package/src/features/document/paragraph-format.d.ts +880 -0
  174. package/src/features/document/paragraph-format.js +2807 -0
  175. package/src/features/document/paragraph-item-collection.d.ts +162 -0
  176. package/src/features/document/paragraph-item-collection.js +363 -0
  177. package/src/features/document/paragraph-item.d.ts +83 -0
  178. package/src/features/document/paragraph-item.js +103 -0
  179. package/src/features/document/paragraph.d.ts +435 -0
  180. package/src/features/document/paragraph.js +888 -0
  181. package/src/features/document/run.d.ts +1 -0
  182. package/src/features/document/run.js +768 -0
  183. package/src/features/document/section-partition-flatten.d.ts +124 -0
  184. package/src/features/document/section-partition-flatten.js +217 -0
  185. package/src/features/document/section-properties-model.d.ts +13 -0
  186. package/src/features/document/section-properties-model.js +0 -0
  187. package/src/features/document/section.d.ts +93 -0
  188. package/src/features/document/section.js +178 -0
  189. package/src/features/document/sections.d.ts +103 -0
  190. package/src/features/document/sections.js +217 -0
  191. package/src/features/document/sub-super-script.d.ts +23 -0
  192. package/src/features/document/sub-super-script.js +43 -0
  193. package/src/features/document/text-range.d.ts +445 -0
  194. package/src/features/document/text-range.js +1156 -0
  195. package/src/features/document/typed-body-collections.d.ts +162 -0
  196. package/src/features/document/typed-body-collections.js +371 -0
  197. package/src/features/document/underline-style.d.ts +38 -0
  198. package/src/features/document/underline-style.js +126 -0
  199. package/src/features/document/units.d.ts +8 -0
  200. package/src/features/document/units.js +7 -0
  201. package/src/features/document/wml.d.ts +16 -0
  202. package/src/features/document/wml.js +67 -0
  203. package/src/features/drawing/authoring.d.ts +27 -0
  204. package/src/features/drawing/authoring.js +271 -0
  205. package/src/features/drawing/body-pr.d.ts +271 -0
  206. package/src/features/drawing/body-pr.js +663 -0
  207. package/src/features/drawing/drawing-shape.d.ts +1192 -0
  208. package/src/features/drawing/drawing-shape.js +3239 -0
  209. package/src/features/drawing/encode-builders.d.ts +176 -0
  210. package/src/features/drawing/encode-builders.js +390 -0
  211. package/src/features/drawing/fill-format.d.ts +52 -0
  212. package/src/features/drawing/fill-format.js +124 -0
  213. package/src/features/drawing/host-codec.d.ts +632 -0
  214. package/src/features/drawing/host-codec.js +2595 -0
  215. package/src/features/drawing/index.d.ts +13 -0
  216. package/src/features/drawing/index.js +33 -0
  217. package/src/features/drawing/line-format.d.ts +76 -0
  218. package/src/features/drawing/line-format.js +343 -0
  219. package/src/features/drawing/parse-register.d.ts +50 -0
  220. package/src/features/drawing/parse-register.js +257 -0
  221. package/src/features/drawing/residual-utils.d.ts +47 -0
  222. package/src/features/drawing/residual-utils.js +290 -0
  223. package/src/features/drawing/shape-types.d.ts +433 -0
  224. package/src/features/drawing/shape-types.js +437 -0
  225. package/src/features/drawing/sp-pr.d.ts +396 -0
  226. package/src/features/drawing/sp-pr.js +610 -0
  227. package/src/features/drawing/text-frame.d.ts +90 -0
  228. package/src/features/drawing/text-frame.js +152 -0
  229. package/src/features/drawing/types.d.ts +352 -0
  230. package/src/features/drawing/types.js +60 -0
  231. package/src/features/drawing/wrap-format.d.ts +62 -0
  232. package/src/features/drawing/wrap-format.js +114 -0
  233. package/src/features/editable-ranges/index.d.ts +494 -0
  234. package/src/features/editable-ranges/index.js +1348 -0
  235. package/src/features/fields/index.d.ts +428 -0
  236. package/src/features/fields/index.js +2148 -0
  237. package/src/features/fields/paragraph-field.d.ts +187 -0
  238. package/src/features/fields/paragraph-field.js +692 -0
  239. package/src/features/font-table/font-substitution-table.d.ts +75 -0
  240. package/src/features/font-table/font-substitution-table.js +257 -0
  241. package/src/features/font-table/font-table-entry.d.ts +255 -0
  242. package/src/features/font-table/font-table-entry.js +823 -0
  243. package/src/features/font-table/font-table.d.ts +128 -0
  244. package/src/features/font-table/font-table.js +313 -0
  245. package/src/features/font-table/index.d.ts +27 -0
  246. package/src/features/font-table/index.js +48 -0
  247. package/src/features/glossary/index.d.ts +97 -0
  248. package/src/features/glossary/index.js +286 -0
  249. package/src/features/headers-footers/index.d.ts +506 -0
  250. package/src/features/headers-footers/index.js +1666 -0
  251. package/src/features/hyperlinks/index.d.ts +230 -0
  252. package/src/features/hyperlinks/index.js +685 -0
  253. package/src/features/images/caption-authoring-api.d.ts +33 -0
  254. package/src/features/images/caption-authoring-api.js +33 -0
  255. package/src/features/images/caption-enums.d.ts +52 -0
  256. package/src/features/images/caption-enums.js +141 -0
  257. package/src/features/images/caption-host.d.ts +10 -0
  258. package/src/features/images/caption-host.js +21 -0
  259. package/src/features/images/captions.d.ts +13 -0
  260. package/src/features/images/captions.js +142 -0
  261. package/src/features/images/host-codec.d.ts +103 -0
  262. package/src/features/images/host-codec.js +720 -0
  263. package/src/features/images/image-sniff.d.ts +21 -0
  264. package/src/features/images/image-sniff.js +71 -0
  265. package/src/features/images/index.d.ts +506 -0
  266. package/src/features/images/index.js +1429 -0
  267. package/src/features/images/layout-types.d.ts +232 -0
  268. package/src/features/images/layout-types.js +294 -0
  269. package/src/features/images/public-entry.d.ts +9 -0
  270. package/src/features/images/public-entry.js +9 -0
  271. package/src/features/index.d.ts +35 -0
  272. package/src/features/index.js +36 -0
  273. package/src/features/mail-merge/index.d.ts +113 -0
  274. package/src/features/mail-merge/index.js +315 -0
  275. package/src/features/notes/index.d.ts +573 -0
  276. package/src/features/notes/index.js +1725 -0
  277. package/src/features/numbering/abstract-numbering.d.ts +90 -0
  278. package/src/features/numbering/abstract-numbering.js +292 -0
  279. package/src/features/numbering/index.d.ts +182 -0
  280. package/src/features/numbering/index.js +668 -0
  281. package/src/features/numbering/list-format.d.ts +158 -0
  282. package/src/features/numbering/list-format.js +590 -0
  283. package/src/features/numbering/list-string.d.ts +7 -0
  284. package/src/features/numbering/list-string.js +423 -0
  285. package/src/features/numbering/list-style.d.ts +204 -0
  286. package/src/features/numbering/list-style.js +1084 -0
  287. package/src/features/numbering/numbering-instance.d.ts +101 -0
  288. package/src/features/numbering/numbering-instance.js +329 -0
  289. package/src/features/numbering/numbering-level.d.ts +118 -0
  290. package/src/features/numbering/numbering-level.js +501 -0
  291. package/src/features/numbering/picture-bullet.d.ts +34 -0
  292. package/src/features/numbering/picture-bullet.js +88 -0
  293. package/src/features/ole-object/catalog.d.ts +300 -0
  294. package/src/features/ole-object/catalog.js +908 -0
  295. package/src/features/ole-object/index.d.ts +526 -0
  296. package/src/features/ole-object/index.js +1421 -0
  297. package/src/features/ole-object/relationship.d.ts +27 -0
  298. package/src/features/ole-object/relationship.js +27 -0
  299. package/src/features/ole-object/typed-dom.d.ts +186 -0
  300. package/src/features/ole-object/typed-dom.js +595 -0
  301. package/src/features/properties/index.d.ts +205 -0
  302. package/src/features/properties/index.js +549 -0
  303. package/src/features/revisions/index.d.ts +204 -0
  304. package/src/features/revisions/index.js +695 -0
  305. package/src/features/sections/column-collection.d.ts +119 -0
  306. package/src/features/sections/column-collection.js +478 -0
  307. package/src/features/sections/column.d.ts +15 -0
  308. package/src/features/sections/column.js +37 -0
  309. package/src/features/sections/index.d.ts +91 -0
  310. package/src/features/sections/index.js +1096 -0
  311. package/src/features/sections/margins.d.ts +40 -0
  312. package/src/features/sections/margins.js +105 -0
  313. package/src/features/sections/page-number-style.d.ts +21 -0
  314. package/src/features/sections/page-number-style.js +62 -0
  315. package/src/features/sections/page-orientation.d.ts +10 -0
  316. package/src/features/sections/page-orientation.js +10 -0
  317. package/src/features/sections/page-setup.d.ts +435 -0
  318. package/src/features/sections/page-setup.js +1479 -0
  319. package/src/features/sections/page-size.d.ts +59 -0
  320. package/src/features/sections/page-size.js +68 -0
  321. package/src/features/sections/section-break-code.d.ts +27 -0
  322. package/src/features/sections/section-break-code.js +60 -0
  323. package/src/features/sections/section-document-association.d.ts +18 -0
  324. package/src/features/sections/section-document-association.js +31 -0
  325. package/src/features/sections/section-validation.d.ts +43 -0
  326. package/src/features/sections/section-validation.js +97 -0
  327. package/src/features/settings/attached-template.d.ts +35 -0
  328. package/src/features/settings/attached-template.js +98 -0
  329. package/src/features/settings/compat-settings.d.ts +216 -0
  330. package/src/features/settings/compat-settings.js +508 -0
  331. package/src/features/settings/document-background.d.ts +59 -0
  332. package/src/features/settings/document-background.js +131 -0
  333. package/src/features/settings/document-protection.d.ts +65 -0
  334. package/src/features/settings/document-protection.js +157 -0
  335. package/src/features/settings/document-settings-facades.d.ts +108 -0
  336. package/src/features/settings/document-settings-facades.js +312 -0
  337. package/src/features/settings/document-settings-values.d.ts +43 -0
  338. package/src/features/settings/document-settings-values.js +60 -0
  339. package/src/features/settings/footnote-properties.d.ts +211 -0
  340. package/src/features/settings/footnote-properties.js +591 -0
  341. package/src/features/settings/index.d.ts +356 -0
  342. package/src/features/settings/index.js +829 -0
  343. package/src/features/settings/settings-children.d.ts +151 -0
  344. package/src/features/settings/settings-children.js +505 -0
  345. package/src/features/settings/web-settings.d.ts +88 -0
  346. package/src/features/settings/web-settings.js +227 -0
  347. package/src/features/settings/zoom.d.ts +79 -0
  348. package/src/features/settings/zoom.js +147 -0
  349. package/src/features/styles/builtin-catalog.d.ts +159 -0
  350. package/src/features/styles/builtin-catalog.js +963 -0
  351. package/src/features/styles/builtin-resolver.d.ts +49 -0
  352. package/src/features/styles/builtin-resolver.js +165 -0
  353. package/src/features/styles/default-styles.d.ts +37 -0
  354. package/src/features/styles/default-styles.js +186 -0
  355. package/src/features/styles/default-theme.d.ts +13 -0
  356. package/src/features/styles/default-theme.js +13 -0
  357. package/src/features/styles/doc-defaults.d.ts +58 -0
  358. package/src/features/styles/doc-defaults.js +178 -0
  359. package/src/features/styles/formatting-resolver.d.ts +27 -0
  360. package/src/features/styles/formatting-resolver.js +72 -0
  361. package/src/features/styles/index.d.ts +256 -0
  362. package/src/features/styles/index.js +1325 -0
  363. package/src/features/styles/latent-styles.d.ts +68 -0
  364. package/src/features/styles/latent-styles.js +305 -0
  365. package/src/features/styles/paragraph-properties.d.ts +71 -0
  366. package/src/features/styles/paragraph-properties.js +237 -0
  367. package/src/features/styles/run-properties.d.ts +93 -0
  368. package/src/features/styles/run-properties.js +516 -0
  369. package/src/features/styles/style-base.d.ts +402 -0
  370. package/src/features/styles/style-base.js +1026 -0
  371. package/src/features/styles/style-collection.d.ts +264 -0
  372. package/src/features/styles/style-collection.js +714 -0
  373. package/src/features/styles/style-format-bridge.d.ts +64 -0
  374. package/src/features/styles/style-format-bridge.js +100 -0
  375. package/src/features/styles/style.d.ts +84 -0
  376. package/src/features/styles/style.js +375 -0
  377. package/src/features/styles/styles-with-effects.d.ts +71 -0
  378. package/src/features/styles/styles-with-effects.js +180 -0
  379. package/src/features/styles/table-style.d.ts +272 -0
  380. package/src/features/styles/table-style.js +1226 -0
  381. package/src/features/styles/theme.d.ts +126 -0
  382. package/src/features/styles/theme.js +377 -0
  383. package/src/features/tables/border-style-map.d.ts +24 -0
  384. package/src/features/tables/border-style-map.js +81 -0
  385. package/src/features/tables/borders.d.ts +126 -0
  386. package/src/features/tables/borders.js +527 -0
  387. package/src/features/tables/collections.d.ts +113 -0
  388. package/src/features/tables/collections.js +261 -0
  389. package/src/features/tables/format.d.ts +208 -0
  390. package/src/features/tables/format.js +716 -0
  391. package/src/features/tables/index.d.ts +597 -0
  392. package/src/features/tables/index.js +2386 -0
  393. package/src/features/tables/paddings.d.ts +41 -0
  394. package/src/features/tables/paddings.js +97 -0
  395. package/src/features/tables/tbl-pr-positioning.d.ts +27 -0
  396. package/src/features/tables/tbl-pr-positioning.js +178 -0
  397. package/src/features/tables/tbl-pr.d.ts +528 -0
  398. package/src/features/tables/tbl-pr.js +1208 -0
  399. package/src/features/tables/tc-pr.d.ts +168 -0
  400. package/src/features/tables/tc-pr.js +553 -0
  401. package/src/features/tables/tr-pr.d.ts +60 -0
  402. package/src/features/tables/tr-pr.js +215 -0
  403. package/src/features/watermark/detect.d.ts +76 -0
  404. package/src/features/watermark/detect.js +219 -0
  405. package/src/features/watermark/index.d.ts +28 -0
  406. package/src/features/watermark/index.js +91 -0
  407. package/src/features/watermark/logical-store.d.ts +29 -0
  408. package/src/features/watermark/logical-store.js +31 -0
  409. package/src/features/watermark/model.d.ts +285 -0
  410. package/src/features/watermark/model.js +597 -0
  411. package/src/features/watermark/parse.d.ts +84 -0
  412. package/src/features/watermark/parse.js +815 -0
  413. package/src/features/watermark/serialize.d.ts +98 -0
  414. package/src/features/watermark/serialize.js +1517 -0
  415. package/src/global.js +1 -0
  416. package/src/index.d.ts +2 -0
  417. package/src/index.js +2 -0
@@ -0,0 +1,126 @@
1
+ import { WordDocument } from '../document/document';
2
+ import { FeaturePackagePart } from '../document/feature-package-part';
3
+ /**
4
+ * @private DrawingML Main namespace (ECMA-376-1 §14.2.7). */
5
+ export declare const DML_MAIN_NAMESPACE = "http://schemas.openxmlformats.org/drawingml/2006/main";
6
+ /**
7
+ * @private Transitional theme relationship (ECMA-376-4 §12.2.7). */
8
+ export declare const THEME_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";
9
+ /**
10
+ * @private Strict theme relationship (ECMA-376-1 §14.2.7). */
11
+ export declare const STRICT_THEME_RELATIONSHIP_TYPE = "http://purl.oclc.org/ooxml/officeDocument/relationships/theme";
12
+ /**
13
+ * @private ECMA-376-1 §14.2.7 Theme part content type. */
14
+ export declare const THEME_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.theme+xml";
15
+ /** @private */
16
+ export declare const THEME_PART_NAME: import("../../core/opc/part-name").PartName;
17
+ /** @private */
18
+ interface ThemeFontCollection {
19
+ readonly latin: string | undefined;
20
+ readonly ea: string | undefined;
21
+ readonly cs: string | undefined;
22
+ }
23
+ /** @private */
24
+ interface ThemeFontScheme {
25
+ readonly major: ThemeFontCollection;
26
+ readonly minor: ThemeFontCollection;
27
+ }
28
+ /** @private */
29
+ interface ThemeMetadata {
30
+ readonly name: string | undefined;
31
+ readonly colorSchemeName: string | undefined;
32
+ readonly fontSchemeName: string | undefined;
33
+ readonly formatSchemeName: string | undefined;
34
+ readonly fontScheme: ThemeFontScheme | undefined;
35
+ }
36
+ /** Theme font slot (`ST_Theme`, ECMA-376-1 §17.18.96).
37
+ * @private
38
+ */
39
+ export declare type ThemeFontSlot = 'majorEastAsia' | 'majorBidi' | 'majorAscii' | 'majorHAnsi' | 'minorEastAsia' | 'minorBidi' | 'minorAscii' | 'minorHAnsi';
40
+ /**
41
+ * @private
42
+ * Parse `ST_Theme` attribute value. */
43
+ export declare function parseThemeFontSlot(raw: string | undefined): ThemeFontSlot | undefined;
44
+ /**
45
+ * In-memory Theme part (`word/theme/theme1.xml`).
46
+ *
47
+ * When no Theme package part exists on load or {@link WordDocument.create}, the library
48
+ * materializes a Word-proven default Office Theme (`dirty = true`) so save emits
49
+ * `/word/theme/theme1.xml`. Existing package bytes are preserved when `dirty` is
50
+ * false. Full typed theme editors remain out of scope (ADR D13).
51
+ * @private
52
+ */
53
+ export declare class ThemePart implements FeaturePackagePart {
54
+ private readonly bytes;
55
+ private readonly metadata;
56
+ private readonly dirty;
57
+ /**
58
+ * @private
59
+ */
60
+ constructor(bytes: Uint8Array | undefined, metadata: ThemeMetadata | undefined, dirty: boolean);
61
+ /**
62
+ * `a:theme/@name`, or `undefined` when metadata could not be parsed.
63
+ *
64
+ * @public
65
+ */
66
+ name(): string | undefined;
67
+ /**
68
+ * `a:themeElements/a:clrScheme/@name`, or `undefined` when absent.
69
+ *
70
+ * @public
71
+ */
72
+ colorSchemeName(): string | undefined;
73
+ /**
74
+ * `a:themeElements/a:fontScheme/@name`, or `undefined` when absent.
75
+ *
76
+ * @public
77
+ */
78
+ fontSchemeName(): string | undefined;
79
+ /**
80
+ * `a:themeElements/a:fmtScheme/@name`, or `undefined` when absent.
81
+ *
82
+ * @public
83
+ */
84
+ formatSchemeName(): string | undefined;
85
+ /**
86
+ * Resolve a theme font slot to a typeface name from `a:fontScheme`.
87
+ *
88
+ * Returns `undefined` when the part, font scheme, or slot typeface is absent.
89
+ *
90
+ * @public
91
+ */
92
+ typefaceFor(slot: ThemeFontSlot): string | undefined;
93
+ /**
94
+ * @private
95
+ */
96
+ isDirty(): boolean;
97
+ /**
98
+ * @private
99
+ */
100
+ serialize(): Uint8Array;
101
+ }
102
+ /**
103
+ * Build the Word-proven default Office Theme part used when no Theme package
104
+ * part exists (create path and load without theme). Evidence:
105
+ * `input-documents/Sample_With_All_word_Element.docx` → `word/theme/theme1.xml`
106
+ * (ECMA-376-1 §14.2.7). Marked dirty so save emits the part.
107
+ * @private
108
+ */
109
+ export declare function createDefaultThemePart(): ThemePart;
110
+ /**
111
+ * @private
112
+ * Test hook */
113
+ export declare function resetThemeFeatureForTests(): void;
114
+ /**
115
+ * @private
116
+ * Register the theme package-part handler. Idempotent. */
117
+ export declare function registerThemeFeature(): void;
118
+ /**
119
+ * Theme catalog for a document. Requires {@link registerStylesFeature} or
120
+ * {@link registerThemeFeature}.
121
+ *
122
+ * @throws DocxError `UNKNOWN_FEATURE` when the theme handler was not registered before load.
123
+ * @private
124
+ */
125
+ export declare function themeFor(document: WordDocument): ThemePart;
126
+ export {};
@@ -0,0 +1,377 @@
1
+ var __values = (this && this.__values) || function (o) {
2
+ var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
3
+ if (m) return m.call(o);
4
+ return {
5
+ next: function () {
6
+ if (o && i >= o.length) o = void 0;
7
+ return { value: o && o[i++], done: !o };
8
+ }
9
+ };
10
+ };
11
+ import { DocxError } from '../../core/errors/docx-error';
12
+ import { partName } from '../../core/opc/part-name';
13
+ import { featureId, registerFeature, registerFeaturePartHandler, } from '../../core/registry/index';
14
+ import { parseXml } from '../../core/xml/index';
15
+ import { DEFAULT_OFFICE_THEME_XML } from './default-theme';
16
+ var THEME = featureId('theme');
17
+ var utf8 = new TextEncoder();
18
+ /**
19
+ * @private DrawingML Main namespace (ECMA-376-1 §14.2.7). */
20
+ export var DML_MAIN_NAMESPACE = 'http://schemas.openxmlformats.org/drawingml/2006/main';
21
+ /**
22
+ * @private Transitional theme relationship (ECMA-376-4 §12.2.7). */
23
+ export var THEME_RELATIONSHIP_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme';
24
+ /**
25
+ * @private Strict theme relationship (ECMA-376-1 §14.2.7). */
26
+ export var STRICT_THEME_RELATIONSHIP_TYPE = 'http://purl.oclc.org/ooxml/officeDocument/relationships/theme';
27
+ /**
28
+ * @private ECMA-376-1 §14.2.7 Theme part content type. */
29
+ export var THEME_CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.theme+xml';
30
+ /** @private */
31
+ export var THEME_PART_NAME = partName('/word/theme/theme1.xml');
32
+ /** @private */
33
+ var utf8Decoder = new TextDecoder('utf-8');
34
+ /**
35
+ * @private
36
+ */
37
+ var THEME_FONT_SLOTS = [
38
+ 'majorEastAsia',
39
+ 'majorBidi',
40
+ 'majorAscii',
41
+ 'majorHAnsi',
42
+ 'minorEastAsia',
43
+ 'minorBidi',
44
+ 'minorAscii',
45
+ 'minorHAnsi',
46
+ ];
47
+ /**
48
+ * @private
49
+ * Parse `ST_Theme` attribute value. */
50
+ export function parseThemeFontSlot(raw) {
51
+ if (raw === undefined) {
52
+ return undefined;
53
+ }
54
+ // TS 3.3 / ES5 parity: avoid Array.prototype.includes.
55
+ return THEME_FONT_SLOTS.indexOf(raw) !== -1 ? raw : undefined;
56
+ }
57
+ function parseFontCollection(element) {
58
+ var e_1, _a;
59
+ var latin;
60
+ var ea;
61
+ var cs;
62
+ try {
63
+ for (var _b = __values(childElements(element)), _c = _b.next(); !_c.done; _c = _b.next()) {
64
+ var child = _c.value;
65
+ if (isDml(child, 'latin')) {
66
+ latin = dmlAttribute(child, 'typeface');
67
+ continue;
68
+ }
69
+ if (isDml(child, 'ea')) {
70
+ ea = dmlAttribute(child, 'typeface');
71
+ continue;
72
+ }
73
+ if (isDml(child, 'cs')) {
74
+ cs = dmlAttribute(child, 'typeface');
75
+ }
76
+ }
77
+ }
78
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
79
+ finally {
80
+ try {
81
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
82
+ }
83
+ finally { if (e_1) throw e_1.error; }
84
+ }
85
+ return { latin: latin, ea: ea, cs: cs };
86
+ }
87
+ function parseThemeFontScheme(root) {
88
+ var e_2, _a, e_3, _b, e_4, _c;
89
+ try {
90
+ for (var _d = __values(childElements(root)), _e = _d.next(); !_e.done; _e = _d.next()) {
91
+ var child = _e.value;
92
+ if (!isDml(child, 'themeElements')) {
93
+ continue;
94
+ }
95
+ var major = void 0;
96
+ var minor = void 0;
97
+ try {
98
+ for (var _f = __values(childElements(child)), _g = _f.next(); !_g.done; _g = _f.next()) {
99
+ var scheme = _g.value;
100
+ if (isDml(scheme, 'fontScheme')) {
101
+ try {
102
+ for (var _h = __values(childElements(scheme)), _j = _h.next(); !_j.done; _j = _h.next()) {
103
+ var fontCollection = _j.value;
104
+ if (isDml(fontCollection, 'majorFont')) {
105
+ major = parseFontCollection(fontCollection);
106
+ }
107
+ else if (isDml(fontCollection, 'minorFont')) {
108
+ minor = parseFontCollection(fontCollection);
109
+ }
110
+ }
111
+ }
112
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
113
+ finally {
114
+ try {
115
+ if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
116
+ }
117
+ finally { if (e_4) throw e_4.error; }
118
+ }
119
+ break;
120
+ }
121
+ }
122
+ }
123
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
124
+ finally {
125
+ try {
126
+ if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
127
+ }
128
+ finally { if (e_3) throw e_3.error; }
129
+ }
130
+ if (major === undefined && minor === undefined) {
131
+ return undefined;
132
+ }
133
+ return {
134
+ major: major != null ? major : { latin: undefined, ea: undefined, cs: undefined },
135
+ minor: minor != null ? minor : { latin: undefined, ea: undefined, cs: undefined },
136
+ };
137
+ }
138
+ }
139
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
140
+ finally {
141
+ try {
142
+ if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
143
+ }
144
+ finally { if (e_2) throw e_2.error; }
145
+ }
146
+ return undefined;
147
+ }
148
+ function typefaceForSlot(scheme, slot) {
149
+ switch (slot) {
150
+ case 'majorAscii':
151
+ case 'majorHAnsi':
152
+ return scheme.major.latin;
153
+ case 'minorAscii':
154
+ case 'minorHAnsi':
155
+ return scheme.minor.latin;
156
+ case 'majorEastAsia':
157
+ return scheme.major.ea;
158
+ case 'minorEastAsia':
159
+ return scheme.minor.ea;
160
+ case 'majorBidi':
161
+ return scheme.major.cs;
162
+ case 'minorBidi':
163
+ return scheme.minor.cs;
164
+ }
165
+ }
166
+ function isDml(element, localName) {
167
+ return element.localName === localName && element.namespaceUri === DML_MAIN_NAMESPACE;
168
+ }
169
+ function dmlAttribute(element, localName) {
170
+ var found = element.attributes.find(function (attribute) { return attribute.localName === localName &&
171
+ (attribute.namespaceUri === DML_MAIN_NAMESPACE || attribute.namespaceUri === ''); });
172
+ return found == null ? undefined : found.value;
173
+ }
174
+ function childElements(element) {
175
+ return element.children.filter(function (child) { return child.kind === 'element'; });
176
+ }
177
+ function parseThemeMetadata(root) {
178
+ var e_5, _a, e_6, _b;
179
+ if (!isDml(root, 'theme')) {
180
+ return undefined;
181
+ }
182
+ var colorSchemeName;
183
+ var fontSchemeName;
184
+ var formatSchemeName;
185
+ try {
186
+ for (var _c = __values(childElements(root)), _d = _c.next(); !_d.done; _d = _c.next()) {
187
+ var child = _d.value;
188
+ if (!isDml(child, 'themeElements')) {
189
+ continue;
190
+ }
191
+ try {
192
+ for (var _e = __values(childElements(child)), _f = _e.next(); !_f.done; _f = _e.next()) {
193
+ var scheme = _f.value;
194
+ if (isDml(scheme, 'clrScheme')) {
195
+ colorSchemeName = dmlAttribute(scheme, 'name');
196
+ }
197
+ else if (isDml(scheme, 'fontScheme')) {
198
+ fontSchemeName = dmlAttribute(scheme, 'name');
199
+ }
200
+ else if (isDml(scheme, 'fmtScheme')) {
201
+ formatSchemeName = dmlAttribute(scheme, 'name');
202
+ }
203
+ }
204
+ }
205
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
206
+ finally {
207
+ try {
208
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
209
+ }
210
+ finally { if (e_6) throw e_6.error; }
211
+ }
212
+ break;
213
+ }
214
+ }
215
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
216
+ finally {
217
+ try {
218
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
219
+ }
220
+ finally { if (e_5) throw e_5.error; }
221
+ }
222
+ return {
223
+ name: dmlAttribute(root, 'name'),
224
+ colorSchemeName: colorSchemeName,
225
+ fontSchemeName: fontSchemeName,
226
+ formatSchemeName: formatSchemeName,
227
+ fontScheme: parseThemeFontScheme(root),
228
+ };
229
+ }
230
+ function parseThemeMetadataFromBytes(bytes) {
231
+ var root = parseXml(utf8Decoder.decode(bytes));
232
+ return parseThemeMetadata(root);
233
+ }
234
+ /**
235
+ * In-memory Theme part (`word/theme/theme1.xml`).
236
+ *
237
+ * When no Theme package part exists on load or {@link WordDocument.create}, the library
238
+ * materializes a Word-proven default Office Theme (`dirty = true`) so save emits
239
+ * `/word/theme/theme1.xml`. Existing package bytes are preserved when `dirty` is
240
+ * false. Full typed theme editors remain out of scope (ADR D13).
241
+ * @private
242
+ */
243
+ var ThemePart = /** @class */ (function () {
244
+ /**
245
+ * @private
246
+ */
247
+ function ThemePart(bytes, metadata, dirty) {
248
+ this.bytes = bytes;
249
+ this.metadata = metadata;
250
+ this.dirty = dirty;
251
+ }
252
+ /**
253
+ * `a:theme/@name`, or `undefined` when metadata could not be parsed.
254
+ *
255
+ * @public
256
+ */
257
+ ThemePart.prototype.name = function () {
258
+ return this.metadata == null ? undefined : this.metadata.name;
259
+ };
260
+ /**
261
+ * `a:themeElements/a:clrScheme/@name`, or `undefined` when absent.
262
+ *
263
+ * @public
264
+ */
265
+ ThemePart.prototype.colorSchemeName = function () {
266
+ return this.metadata == null ? undefined : this.metadata.colorSchemeName;
267
+ };
268
+ /**
269
+ * `a:themeElements/a:fontScheme/@name`, or `undefined` when absent.
270
+ *
271
+ * @public
272
+ */
273
+ ThemePart.prototype.fontSchemeName = function () {
274
+ return this.metadata == null ? undefined : this.metadata.fontSchemeName;
275
+ };
276
+ /**
277
+ * `a:themeElements/a:fmtScheme/@name`, or `undefined` when absent.
278
+ *
279
+ * @public
280
+ */
281
+ ThemePart.prototype.formatSchemeName = function () {
282
+ return this.metadata == null ? undefined : this.metadata.formatSchemeName;
283
+ };
284
+ /**
285
+ * Resolve a theme font slot to a typeface name from `a:fontScheme`.
286
+ *
287
+ * Returns `undefined` when the part, font scheme, or slot typeface is absent.
288
+ *
289
+ * @public
290
+ */
291
+ ThemePart.prototype.typefaceFor = function (slot) {
292
+ var scheme = this.metadata == null ? undefined : this.metadata.fontScheme;
293
+ if (scheme === undefined) {
294
+ return undefined;
295
+ }
296
+ return typefaceForSlot(scheme, slot);
297
+ };
298
+ /**
299
+ * @private
300
+ */
301
+ ThemePart.prototype.isDirty = function () {
302
+ return this.dirty;
303
+ };
304
+ /**
305
+ * @private
306
+ */
307
+ ThemePart.prototype.serialize = function () {
308
+ if (this.bytes !== undefined) {
309
+ return this.bytes;
310
+ }
311
+ return new Uint8Array(0);
312
+ };
313
+ return ThemePart;
314
+ }());
315
+ export { ThemePart };
316
+ /**
317
+ * Build the Word-proven default Office Theme part used when no Theme package
318
+ * part exists (create path and load without theme). Evidence:
319
+ * `input-documents/Sample_With_All_word_Element.docx` → `word/theme/theme1.xml`
320
+ * (ECMA-376-1 §14.2.7). Marked dirty so save emits the part.
321
+ * @private
322
+ */
323
+ export function createDefaultThemePart() {
324
+ var bytes = utf8.encode(DEFAULT_OFFICE_THEME_XML);
325
+ var metadata = parseThemeMetadataFromBytes(bytes);
326
+ return new ThemePart(bytes, metadata, true);
327
+ }
328
+ function loadThemePart(part) {
329
+ if (part === undefined) {
330
+ return createDefaultThemePart();
331
+ }
332
+ var metadata = parseThemeMetadataFromBytes(part.data);
333
+ return new ThemePart(part.data, metadata, false);
334
+ }
335
+ var themeRegistered = false;
336
+ /**
337
+ * @private
338
+ * Test hook */
339
+ export function resetThemeFeatureForTests() {
340
+ themeRegistered = false;
341
+ }
342
+ /**
343
+ * @private
344
+ * Register the theme package-part handler. Idempotent. */
345
+ export function registerThemeFeature() {
346
+ if (themeRegistered) {
347
+ return;
348
+ }
349
+ themeRegistered = true;
350
+ registerFeature({ id: THEME });
351
+ registerFeaturePartHandler({
352
+ featureId: THEME,
353
+ relationshipTypes: [THEME_RELATIONSHIP_TYPE, STRICT_THEME_RELATIONSHIP_TYPE],
354
+ defaultRelativeTarget: 'theme/theme1.xml',
355
+ partName: THEME_PART_NAME,
356
+ contentType: THEME_CONTENT_TYPE,
357
+ loadPart: function (part, ctx) {
358
+ void ctx;
359
+ return loadThemePart(part);
360
+ },
361
+ });
362
+ }
363
+ /**
364
+ * Theme catalog for a document. Requires {@link registerStylesFeature} or
365
+ * {@link registerThemeFeature}.
366
+ *
367
+ * @throws DocxError `UNKNOWN_FEATURE` when the theme handler was not registered before load.
368
+ * @private
369
+ */
370
+ export function themeFor(document) {
371
+ registerThemeFeature();
372
+ var part = document.featurePart(THEME);
373
+ if (part === undefined || !(part instanceof ThemePart)) {
374
+ throw new DocxError('feature/not-registered', 'Theme part was not loaded; call registerStylesFeature() before WordDocument.open');
375
+ }
376
+ return part;
377
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Map between public {@link BorderStyle} and OOXML `CT_Border` `@w:val`.
3
+ *
4
+ * Unknown wire values are preserved internally and do not surface as a public enum.
5
+ */
6
+ import { BorderStyle } from '../document/page-setup';
7
+ /**
8
+ * Parse `@w:val` to {@link BorderStyle}, or `undefined` when unknown/absent.
9
+ *
10
+ * @private
11
+ */
12
+ export declare function borderStyleFromWire(val: string | undefined): BorderStyle | undefined;
13
+ /**
14
+ * Serialize {@link BorderStyle} to `@w:val`.
15
+ *
16
+ * @private
17
+ */
18
+ export declare function borderStyleToWire(style: BorderStyle): string;
19
+ /**
20
+ * True when `val` is a known public border style token.
21
+ *
22
+ * @private
23
+ */
24
+ export declare function isKnownBorderWire(val: string | undefined): boolean;
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Map between public {@link BorderStyle} and OOXML `CT_Border` `@w:val`.
3
+ *
4
+ * Unknown wire values are preserved internally and do not surface as a public enum.
5
+ */
6
+ import { BorderStyle } from '../document/page-setup';
7
+ var KNOWN_WIRE = {
8
+ nil: BorderStyle.Nil,
9
+ none: BorderStyle.None,
10
+ single: BorderStyle.Single,
11
+ thick: BorderStyle.Thick,
12
+ double: BorderStyle.Double,
13
+ dotted: BorderStyle.Dotted,
14
+ dashed: BorderStyle.Dashed,
15
+ dotDash: BorderStyle.DotDash,
16
+ dotDotDash: BorderStyle.DotDotDash,
17
+ triple: BorderStyle.Triple,
18
+ thinThickSmallGap: BorderStyle.ThinThickSmallGap,
19
+ thickThinSmallGap: BorderStyle.ThickThinSmallGap,
20
+ thinThickThinSmallGap: BorderStyle.ThinThickThinSmallGap,
21
+ thinThickMediumGap: BorderStyle.ThinThickMediumGap,
22
+ thickThinMediumGap: BorderStyle.ThickThinMediumGap,
23
+ thinThickThinMediumGap: BorderStyle.ThinThickThinMediumGap,
24
+ thinThickLargeGap: BorderStyle.ThinThickLargeGap,
25
+ thickThinLargeGap: BorderStyle.ThickThinLargeGap,
26
+ thinThickThinLargeGap: BorderStyle.ThinThickThinLargeGap,
27
+ wave: BorderStyle.Wave,
28
+ doubleWave: BorderStyle.DoubleWave,
29
+ dashSmallGap: BorderStyle.DashSmallGap,
30
+ dashDotStroked: BorderStyle.DashDotStroked,
31
+ threeDEmboss: BorderStyle.ThreeDEmboss,
32
+ threeDEngrave: BorderStyle.ThreeDEngrave,
33
+ outset: BorderStyle.Outset,
34
+ inset: BorderStyle.Inset,
35
+ };
36
+ /**
37
+ * Parse `@w:val` to {@link BorderStyle}, or `undefined` when unknown/absent.
38
+ *
39
+ * @private
40
+ */
41
+ export function borderStyleFromWire(val) {
42
+ if (val === undefined) {
43
+ return undefined;
44
+ }
45
+ var mapped = KNOWN_WIRE[val];
46
+ return mapped !== undefined ? mapped : undefined;
47
+ }
48
+ var STYLE_TO_WIRE = (function () {
49
+ var out = {};
50
+ var keys = Object.keys(KNOWN_WIRE);
51
+ for (var i = 0; i < keys.length; i += 1) {
52
+ var wire = keys[i];
53
+ var style = KNOWN_WIRE[wire];
54
+ out[style] = wire;
55
+ }
56
+ return out;
57
+ })();
58
+ /**
59
+ * Serialize {@link BorderStyle} to `@w:val`.
60
+ *
61
+ * @private
62
+ */
63
+ export function borderStyleToWire(style) {
64
+ var wire = STYLE_TO_WIRE[style];
65
+ if (wire !== undefined) {
66
+ return wire;
67
+ }
68
+ // Fall back only for values that already match a known wire token string.
69
+ if (KNOWN_WIRE[style] !== undefined) {
70
+ return style;
71
+ }
72
+ throw new RangeError('Unsupported BorderStyle value');
73
+ }
74
+ /**
75
+ * True when `val` is a known public border style token.
76
+ *
77
+ * @private
78
+ */
79
+ export function isKnownBorderWire(val) {
80
+ return val !== undefined && KNOWN_WIRE[val] !== undefined;
81
+ }