@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,508 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __read = (this && this.__read) || function (o, n) {
13
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
14
+ if (!m) return o;
15
+ var i = m.call(o), r, ar = [], e;
16
+ try {
17
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
18
+ }
19
+ catch (error) { e = { error: error }; }
20
+ finally {
21
+ try {
22
+ if (r && !r.done && (m = i["return"])) m.call(i);
23
+ }
24
+ finally { if (e) throw e.error; }
25
+ }
26
+ return ar;
27
+ };
28
+ var __spread = (this && this.__spread) || function () {
29
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
30
+ return ar;
31
+ };
32
+ var __values = (this && this.__values) || function (o) {
33
+ var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
34
+ if (m) return m.call(o);
35
+ return {
36
+ next: function () {
37
+ if (o && i >= o.length) o = void 0;
38
+ return { value: o && o[i++], done: !o };
39
+ }
40
+ };
41
+ };
42
+ /**
43
+ * `w:compat` / `w:compatSetting` DOM (`CT_Compat` / `CT_CompatSetting`, Transitional `wml.xsd`).
44
+ *
45
+ * MVP: detect/list `compatSetting` name/uri/val; model selected nested OnOff flags
46
+ * (`noColumnBalance`); preserve remaining nested OnOff flags and unknown children in
47
+ * document order. Compatibility *engine* / layout behavior is out of scope.
48
+ *
49
+ * @public
50
+ */
51
+ import { WML_TRANSITIONAL_NAMESPACE } from '../../core/xml/index';
52
+ import { parseOnOff, serializeOnOff } from '../document/on-off';
53
+ import { elementChildren, isWml, wmlElement } from '../document/wml';
54
+ function wmlAttribute(element, localName) {
55
+ var found = element.attributes.find(function (attribute) { return attribute.localName === localName &&
56
+ (attribute.namespaceUri === WML_TRANSITIONAL_NAMESPACE || attribute.namespaceUri === ''); });
57
+ return found == null ? undefined : found.value;
58
+ }
59
+ /** Modeled CT_OnOff local names under `w:compat` (ECMA-376-4 transitional). */
60
+ var MODELED_COMPAT_ON_OFF = new Set(['noColumnBalance']);
61
+ /** Word `compatibilityMode` setting URI (Microsoft Office Word). */
62
+ var WORD_COMPAT_URI = 'http://schemas.microsoft.com/office/word';
63
+ /**
64
+ * Word compatibility engine level from
65
+ * `w:compat/w:compatSetting[@w:name='compatibilityMode']/@w:val`.
66
+ *
67
+ * Wire values are ECMA-376 / Word practice: `"12"` | `"14"` | `"15"`.
68
+ *
69
+ * @public
70
+ */
71
+ export var CompatibilityMode;
72
+ (function (CompatibilityMode) {
73
+ /** Word 2007 compatibility (`"12"`). */
74
+ CompatibilityMode["Word2007"] = "12";
75
+ /** Word 2010 compatibility (`"14"`). */
76
+ CompatibilityMode["Word2010"] = "14";
77
+ /** Word 2013 and later compatibility (`"15"`). */
78
+ CompatibilityMode["Word2013"] = "15";
79
+ })(CompatibilityMode || (CompatibilityMode = {}));
80
+ /**
81
+ * One `w:compatSetting` entry (`CT_CompatSetting`).
82
+ * Preserve-only infrastructure; not part of the supported public surface.
83
+ *
84
+ * @private
85
+ */
86
+ var CompatSetting = /** @class */ (function () {
87
+ function CompatSetting(settingName, settingUri, settingVal, attributes, elementChildren, namespaceDeclarations) {
88
+ this.settingName = settingName;
89
+ this.settingUri = settingUri;
90
+ this.settingVal = settingVal;
91
+ this.attributes = attributes;
92
+ this.elementChildren = elementChildren;
93
+ this.namespaceDeclarations = namespaceDeclarations;
94
+ }
95
+ /**
96
+ * @private
97
+ */
98
+ CompatSetting.fromElement = function (element) {
99
+ return new CompatSetting(wmlAttribute(element, 'name'), wmlAttribute(element, 'uri'), wmlAttribute(element, 'val'), element.attributes, __spread(element.children), element.namespaceDeclarations);
100
+ };
101
+ /**
102
+ * Build a `w:compatSetting` with standard `name` / `uri` / `val` attributes.
103
+ *
104
+ * @private
105
+ */
106
+ CompatSetting.create = function (name, uri, val) {
107
+ return CompatSetting.fromElement(wmlElement('compatSetting', {
108
+ attributes: [
109
+ { namespaceUri: WML_TRANSITIONAL_NAMESPACE, localName: 'name', prefix: 'w', value: name },
110
+ { namespaceUri: WML_TRANSITIONAL_NAMESPACE, localName: 'uri', prefix: 'w', value: uri },
111
+ { namespaceUri: WML_TRANSITIONAL_NAMESPACE, localName: 'val', prefix: 'w', value: val },
112
+ ],
113
+ }));
114
+ };
115
+ /**
116
+ * `w:name` value, if present.
117
+ *
118
+ * @private
119
+ */
120
+ CompatSetting.prototype.name = function () {
121
+ return this.settingName;
122
+ };
123
+ /**
124
+ * `w:uri` value, if present.
125
+ *
126
+ * @private
127
+ */
128
+ CompatSetting.prototype.uri = function () {
129
+ return this.settingUri;
130
+ };
131
+ /**
132
+ * `w:val` value, if present.
133
+ *
134
+ * @private
135
+ */
136
+ CompatSetting.prototype.val = function () {
137
+ return this.settingVal;
138
+ };
139
+ /**
140
+ * @private
141
+ */
142
+ CompatSetting.prototype.serialize = function () {
143
+ return wmlElement('compatSetting', __assign({ attributes: this.attributes, children: this.elementChildren }, (this.namespaceDeclarations.length > 0
144
+ ? { namespaceDeclarations: this.namespaceDeclarations }
145
+ : {})));
146
+ };
147
+ return CompatSetting;
148
+ }());
149
+ export { CompatSetting };
150
+ /**
151
+ * Opaque nested child under `w:compat` (legacy OnOff flags, unknown markup).
152
+ *
153
+ * @private
154
+ */
155
+ var CompatOpaqueChild = /** @class */ (function () {
156
+ function CompatOpaqueChild(element) {
157
+ this.element = element;
158
+ }
159
+ CompatOpaqueChild.prototype.serialize = function () {
160
+ return this.element;
161
+ };
162
+ return CompatOpaqueChild;
163
+ }());
164
+ /**
165
+ * Modeled `CT_OnOff` child under `w:compat` (currently `w:noColumnBalance`).
166
+ *
167
+ * @private
168
+ */
169
+ var CompatOnOffChild = /** @class */ (function () {
170
+ function CompatOnOffChild(localName, value) {
171
+ this.localName = localName;
172
+ this.value = value;
173
+ }
174
+ CompatOnOffChild.tryFromElement = function (element) {
175
+ if (!MODELED_COMPAT_ON_OFF.has(element.localName) || !isWml(element, element.localName)) {
176
+ return undefined;
177
+ }
178
+ var parsed = parseOnOff(element);
179
+ if (parsed === undefined) {
180
+ return undefined;
181
+ }
182
+ return new CompatOnOffChild(element.localName, parsed);
183
+ };
184
+ CompatOnOffChild.prototype.read = function () {
185
+ return this.value;
186
+ };
187
+ CompatOnOffChild.prototype.write = function (value) {
188
+ this.value = value;
189
+ };
190
+ CompatOnOffChild.prototype.serialize = function () {
191
+ return serializeOnOff(this.localName, this.value);
192
+ };
193
+ return CompatOnOffChild;
194
+ }());
195
+ /**
196
+ * First-class `w:compat` container.
197
+ *
198
+ * @public
199
+ */
200
+ var CompatSettings = /** @class */ (function () {
201
+ function CompatSettings(children, attributes, namespaceDeclarations, onDirty) {
202
+ this.children = children;
203
+ this.attributes = attributes;
204
+ this.namespaceDeclarations = namespaceDeclarations;
205
+ this.onDirty = onDirty;
206
+ }
207
+ /**
208
+ * @private
209
+ */
210
+ CompatSettings.fromElement = function (element) {
211
+ var e_1, _a;
212
+ var children = [];
213
+ try {
214
+ for (var _b = __values(elementChildren(element)), _c = _b.next(); !_c.done; _c = _b.next()) {
215
+ var child = _c.value;
216
+ if (isWml(child, 'compatSetting')) {
217
+ children.push(CompatSetting.fromElement(child));
218
+ continue;
219
+ }
220
+ var onOff = CompatOnOffChild.tryFromElement(child);
221
+ if (onOff !== undefined) {
222
+ children.push(onOff);
223
+ continue;
224
+ }
225
+ children.push(new CompatOpaqueChild(child));
226
+ }
227
+ }
228
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
229
+ finally {
230
+ try {
231
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
232
+ }
233
+ finally { if (e_1) throw e_1.error; }
234
+ }
235
+ return new CompatSettings(children, element.attributes, element.namespaceDeclarations);
236
+ };
237
+ /**
238
+ * @private
239
+ * Empty `w:compat` shell used when authors need a first-class OnOff under compat.
240
+ */
241
+ CompatSettings.createEmpty = function (onDirty) {
242
+ return new CompatSettings([], [], [], onDirty);
243
+ };
244
+ /**
245
+ * @private
246
+ * Bind dirty callback after SettingsPart wraps the node.
247
+ */
248
+ CompatSettings.prototype.bindDirty = function (onDirty) {
249
+ this.onDirty = onDirty;
250
+ };
251
+ CompatSettings.prototype.markDirty = function () {
252
+ if (this.onDirty !== undefined) {
253
+ this.onDirty();
254
+ }
255
+ };
256
+ CompatSettings.prototype.findOnOff = function (localName) {
257
+ var e_2, _a;
258
+ try {
259
+ for (var _b = __values(this.children), _c = _b.next(); !_c.done; _c = _b.next()) {
260
+ var child = _c.value;
261
+ if (child instanceof CompatOnOffChild && child.localName === localName) {
262
+ return child;
263
+ }
264
+ }
265
+ }
266
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
267
+ finally {
268
+ try {
269
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
270
+ }
271
+ finally { if (e_2) throw e_2.error; }
272
+ }
273
+ return undefined;
274
+ };
275
+ CompatSettings.prototype.setOnOff = function (localName, value) {
276
+ var existingIndex = this.children.findIndex(function (child) { return child instanceof CompatOnOffChild && child.localName === localName; });
277
+ if (value === undefined) {
278
+ if (existingIndex >= 0) {
279
+ this.children.splice(existingIndex, 1);
280
+ this.markDirty();
281
+ }
282
+ return;
283
+ }
284
+ if (existingIndex >= 0) {
285
+ var existing = this.children[existingIndex];
286
+ if (existing instanceof CompatOnOffChild) {
287
+ existing.write(value);
288
+ this.markDirty();
289
+ }
290
+ return;
291
+ }
292
+ // Schema order places legacy OnOff flags before `compatSetting` list.
293
+ var insertAt = this.children.length;
294
+ for (var index = 0; index < this.children.length; index += 1) {
295
+ if (this.children[index] instanceof CompatSetting) {
296
+ insertAt = index;
297
+ break;
298
+ }
299
+ }
300
+ this.children.splice(insertAt, 0, new CompatOnOffChild(localName, value));
301
+ this.markDirty();
302
+ };
303
+ /**
304
+ * `w:compatSetting` entries in document order.
305
+ *
306
+ * @private
307
+ */
308
+ CompatSettings.prototype.settings = function () {
309
+ var e_3, _a;
310
+ var out = [];
311
+ try {
312
+ for (var _b = __values(this.children), _c = _b.next(); !_c.done; _c = _b.next()) {
313
+ var child = _c.value;
314
+ if (child instanceof CompatSetting) {
315
+ out.push(child);
316
+ }
317
+ }
318
+ }
319
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
320
+ finally {
321
+ try {
322
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
323
+ }
324
+ finally { if (e_3) throw e_3.error; }
325
+ }
326
+ return out;
327
+ };
328
+ /**
329
+ * Names from `w:compatSetting/@w:name`, in document order (empty names skipped).
330
+ *
331
+ * @private
332
+ */
333
+ CompatSettings.prototype.settingNames = function () {
334
+ var e_4, _a;
335
+ var names = [];
336
+ try {
337
+ for (var _b = __values(this.settings()), _c = _b.next(); !_c.done; _c = _b.next()) {
338
+ var setting = _c.value;
339
+ var name_1 = setting.name();
340
+ if (name_1 !== undefined && name_1.length > 0) {
341
+ names.push(name_1);
342
+ }
343
+ }
344
+ }
345
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
346
+ finally {
347
+ try {
348
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
349
+ }
350
+ finally { if (e_4) throw e_4.error; }
351
+ }
352
+ return names;
353
+ };
354
+ /**
355
+ * Count of `w:compatSetting` children.
356
+ *
357
+ * @private
358
+ */
359
+ CompatSettings.prototype.settingCount = function () {
360
+ return this.settings().length;
361
+ };
362
+ /**
363
+ * Returns the `w:val` of the first `w:compatSetting` matching `name`, or
364
+ * `undefined` when not found.
365
+ *
366
+ * @private
367
+ */
368
+ CompatSettings.prototype.setting = function (name) {
369
+ var e_5, _a;
370
+ try {
371
+ for (var _b = __values(this.settings()), _c = _b.next(); !_c.done; _c = _b.next()) {
372
+ var s = _c.value;
373
+ if (s.name() === name)
374
+ return s.val();
375
+ }
376
+ }
377
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
378
+ finally {
379
+ try {
380
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
381
+ }
382
+ finally { if (e_5) throw e_5.error; }
383
+ }
384
+ return undefined;
385
+ };
386
+ /**
387
+ * Word compatibility mode from
388
+ * `w:compat` / `w:compatSetting[@w:name='compatibilityMode']/@w:val`.
389
+ *
390
+ * Reports the document’s declared compatibility engine level when present.
391
+ * Common values:
392
+ * - `"15"` — Word 2013 and later
393
+ * - `"14"` — Word 2010
394
+ * - `"12"` — Word 2007
395
+ *
396
+ * Returns `undefined` when the setting is absent. This method does not change
397
+ * layout or feature behavior; it only reads the stored attribute value.
398
+ *
399
+ * @returns Compatibility mode string, or `undefined` if not set.
400
+ *
401
+ * @example
402
+ * ```ts
403
+ * const settings = settingsFor(document);
404
+ * const mode = settings.compat()?.compatibilityMode();
405
+ * // "15" for typical Word 2013+ documents
406
+ * ```
407
+ *
408
+ * @public
409
+ */
410
+ CompatSettings.prototype.compatibilityMode = function () {
411
+ return this.setting('compatibilityMode');
412
+ };
413
+ /**
414
+ * Set or replace the first `w:compatSetting[@w:name='compatibilityMode']`.
415
+ *
416
+ * Uses Microsoft Office Word URI and preserves other compat settings / order.
417
+ * Creates a new entry at the end of the settings list when absent.
418
+ *
419
+ * @param value Wire token (`"12"` | `"14"` | `"15"`) or {@link CompatibilityMode}.
420
+ * @private
421
+ */
422
+ CompatSettings.prototype.setCompatibilityMode = function (value) {
423
+ var wire = typeof value === 'string' ? value : value;
424
+ var existingIndex = this.children.findIndex(function (child) { return child instanceof CompatSetting && child.name() === 'compatibilityMode'; });
425
+ var entry = CompatSetting.create('compatibilityMode', WORD_COMPAT_URI, wire);
426
+ if (existingIndex >= 0) {
427
+ this.children[existingIndex] = entry;
428
+ }
429
+ else {
430
+ this.children.push(entry);
431
+ }
432
+ this.markDirty();
433
+ };
434
+ /**
435
+ * Whether multi-column section content should **not** be balanced across columns
436
+ * (`w:compat/w:noColumnBalance`, `CT_OnOff`, ECMA-376 Part 4 transitional
437
+ * migration features).
438
+ *
439
+ * When the element is present and on (`true`, including bare element with no
440
+ * `w:val`), consumers should fill columns top-to-bottom sequentially instead of
441
+ * balancing line heights across columns. When absent, Word’s default is to
442
+ * **balance** multi-column content (this method returns `undefined`).
443
+ *
444
+ * This library stores and round-trips the flag only; it does not implement a
445
+ * layout engine. Column geometry remains on section properties
446
+ * (`SectionProperties.textColumns` / `equalWidthColumns`).
447
+ *
448
+ * @returns `true`/`false` when the element is present; `undefined` when absent.
449
+ *
450
+ * @example
451
+ * ```ts
452
+ * const compat = settingsFor(document).compat();
453
+ * if (compat?.noColumnBalance() === true) {
454
+ * // sequential column fill requested
455
+ * }
456
+ * ```
457
+ *
458
+ * @private
459
+ */
460
+ CompatSettings.prototype.noColumnBalance = function () {
461
+ var child = this.findOnOff('noColumnBalance');
462
+ return child === undefined ? undefined : child.read();
463
+ };
464
+ /**
465
+ * Set or clear `w:compat/w:noColumnBalance`.
466
+ *
467
+ * - `true` — emit bare `w:noColumnBalance` (OnOff true)
468
+ * - `false` — emit `w:noColumnBalance w:val="0"` / false form via serializeOnOff
469
+ * - `undefined` — remove the element
470
+ *
471
+ * Marks the owning settings part dirty when a dirty callback is bound.
472
+ *
473
+ * @private
474
+ */
475
+ CompatSettings.prototype.setNoColumnBalance = function (value) {
476
+ this.setOnOff('noColumnBalance', value);
477
+ };
478
+ /**
479
+ * Creates the default Word-2013 compat settings block.
480
+ *
481
+ * Matches the `w:compat` element emitted by Microsoft Word for new documents:
482
+ * `compatibilityMode=15`, `overrideTableStyleFontSizeAndJustification=1`,
483
+ * `enableOpenTypeFeatures=1`, `doNotFlipMirrorIndents=1`,
484
+ * `differentiateMultirowTableHeaders=1`.
485
+ *
486
+ * @private
487
+ */
488
+ CompatSettings.createDefault = function () {
489
+ var children = [
490
+ CompatSetting.create('compatibilityMode', WORD_COMPAT_URI, CompatibilityMode.Word2013),
491
+ CompatSetting.create('overrideTableStyleFontSizeAndJustification', WORD_COMPAT_URI, '1'),
492
+ CompatSetting.create('enableOpenTypeFeatures', WORD_COMPAT_URI, '1'),
493
+ CompatSetting.create('doNotFlipMirrorIndents', WORD_COMPAT_URI, '1'),
494
+ CompatSetting.create('differentiateMultirowTableHeaders', WORD_COMPAT_URI, '1'),
495
+ ];
496
+ return new CompatSettings(children, [], []);
497
+ };
498
+ /**
499
+ * @private
500
+ */
501
+ CompatSettings.prototype.serialize = function () {
502
+ return wmlElement('compat', __assign({ attributes: this.attributes, children: this.children.map(function (child) { return child.serialize(); }) }, (this.namespaceDeclarations.length > 0
503
+ ? { namespaceDeclarations: this.namespaceDeclarations }
504
+ : {})));
505
+ };
506
+ return CompatSettings;
507
+ }());
508
+ export { CompatSettings };
@@ -0,0 +1,59 @@
1
+ import { WordDocument } from '../document/document';
2
+ import { OpenXmlElement } from '../../core/xml/index';
3
+ /**
4
+ * Main Document page background metadata (`w:document/w:background`).
5
+ *
6
+ * @private
7
+ */
8
+ export declare class Background {
9
+ private readonly metadata;
10
+ private readonly displayBackgroundShapeValue;
11
+ /**
12
+ * @private
13
+ */
14
+ constructor(background: OpenXmlElement | undefined, displayBackgroundShapeValue: boolean | undefined);
15
+ /**
16
+ * Whether `w:background` was present on the Main Document.
17
+ *
18
+ * @public
19
+ */
20
+ present(): boolean;
21
+ /**
22
+ * `w:background/@w:color`, or `undefined` when absent.
23
+ *
24
+ * @public
25
+ */
26
+ color(): string | undefined;
27
+ /**
28
+ * `w:background/@w:themeColor`, or `undefined` when absent.
29
+ *
30
+ * @public
31
+ */
32
+ themeColor(): string | undefined;
33
+ /**
34
+ * `w:background/@w:themeTint`, or `undefined` when absent.
35
+ *
36
+ * @public
37
+ */
38
+ themeTint(): string | undefined;
39
+ /**
40
+ * `w:background/@w:themeShade`, or `undefined` when absent.
41
+ *
42
+ * @public
43
+ */
44
+ themeShade(): string | undefined;
45
+ /**
46
+ * Whether a `w:drawing` child exists under `w:background`.
47
+ *
48
+ * @public
49
+ */
50
+ hasDrawing(): boolean;
51
+ /**
52
+ * `w:settings/w:displayBackgroundShape`, or `undefined` when absent.
53
+ *
54
+ * @public
55
+ */
56
+ displayBackgroundShape(): boolean | undefined;
57
+ }
58
+ /** @public */
59
+ export declare function createBackground(document: WordDocument, displayBackgroundShapeValue: boolean | undefined): Background;
@@ -0,0 +1,131 @@
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 { elementChildren, isWml } from '../document/wml';
12
+ import { WML_TRANSITIONAL_NAMESPACE } from '../../core/xml/index';
13
+ function wmlAttribute(element, localName) {
14
+ var found = element.attributes.find(function (attribute) { return attribute.localName === localName &&
15
+ (attribute.namespaceUri === WML_TRANSITIONAL_NAMESPACE || attribute.namespaceUri === ''); });
16
+ return found == null ? undefined : found.value;
17
+ }
18
+ function parseBackgroundMetadata(background) {
19
+ var e_1, _a;
20
+ if (background === undefined || !isWml(background, 'background')) {
21
+ return {
22
+ present: false,
23
+ color: undefined,
24
+ themeColor: undefined,
25
+ themeTint: undefined,
26
+ themeShade: undefined,
27
+ hasDrawing: false,
28
+ };
29
+ }
30
+ var hasDrawing = false;
31
+ try {
32
+ for (var _b = __values(elementChildren(background)), _c = _b.next(); !_c.done; _c = _b.next()) {
33
+ var child = _c.value;
34
+ if (isWml(child, 'drawing')) {
35
+ hasDrawing = true;
36
+ break;
37
+ }
38
+ }
39
+ }
40
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
41
+ finally {
42
+ try {
43
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
44
+ }
45
+ finally { if (e_1) throw e_1.error; }
46
+ }
47
+ return {
48
+ present: true,
49
+ color: wmlAttribute(background, 'color'),
50
+ themeColor: wmlAttribute(background, 'themeColor'),
51
+ themeTint: wmlAttribute(background, 'themeTint'),
52
+ themeShade: wmlAttribute(background, 'themeShade'),
53
+ hasDrawing: hasDrawing,
54
+ };
55
+ }
56
+ /**
57
+ * Main Document page background metadata (`w:document/w:background`).
58
+ *
59
+ * @private
60
+ */
61
+ var Background = /** @class */ (function () {
62
+ /**
63
+ * @private
64
+ */
65
+ function Background(background, displayBackgroundShapeValue) {
66
+ this.metadata = parseBackgroundMetadata(background);
67
+ this.displayBackgroundShapeValue = displayBackgroundShapeValue;
68
+ }
69
+ /**
70
+ * Whether `w:background` was present on the Main Document.
71
+ *
72
+ * @public
73
+ */
74
+ Background.prototype.present = function () {
75
+ return this.metadata.present;
76
+ };
77
+ /**
78
+ * `w:background/@w:color`, or `undefined` when absent.
79
+ *
80
+ * @public
81
+ */
82
+ Background.prototype.color = function () {
83
+ return this.metadata.color;
84
+ };
85
+ /**
86
+ * `w:background/@w:themeColor`, or `undefined` when absent.
87
+ *
88
+ * @public
89
+ */
90
+ Background.prototype.themeColor = function () {
91
+ return this.metadata.themeColor;
92
+ };
93
+ /**
94
+ * `w:background/@w:themeTint`, or `undefined` when absent.
95
+ *
96
+ * @public
97
+ */
98
+ Background.prototype.themeTint = function () {
99
+ return this.metadata.themeTint;
100
+ };
101
+ /**
102
+ * `w:background/@w:themeShade`, or `undefined` when absent.
103
+ *
104
+ * @public
105
+ */
106
+ Background.prototype.themeShade = function () {
107
+ return this.metadata.themeShade;
108
+ };
109
+ /**
110
+ * Whether a `w:drawing` child exists under `w:background`.
111
+ *
112
+ * @public
113
+ */
114
+ Background.prototype.hasDrawing = function () {
115
+ return this.metadata.hasDrawing;
116
+ };
117
+ /**
118
+ * `w:settings/w:displayBackgroundShape`, or `undefined` when absent.
119
+ *
120
+ * @public
121
+ */
122
+ Background.prototype.displayBackgroundShape = function () {
123
+ return this.displayBackgroundShapeValue;
124
+ };
125
+ return Background;
126
+ }());
127
+ export { Background };
128
+ /** @public */
129
+ export function createBackground(document, displayBackgroundShapeValue) {
130
+ return new Background(document.preservedBackground(), displayBackgroundShapeValue);
131
+ }