@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,597 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ extendStatics(d, b);
10
+ function __() { this.constructor = d; }
11
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12
+ };
13
+ })();
14
+ var __assign = (this && this.__assign) || function () {
15
+ __assign = Object.assign || function(t) {
16
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
17
+ s = arguments[i];
18
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19
+ t[p] = s[p];
20
+ }
21
+ return t;
22
+ };
23
+ return __assign.apply(this, arguments);
24
+ };
25
+ var __read = (this && this.__read) || function (o, n) {
26
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
27
+ if (!m) return o;
28
+ var i = m.call(o), r, ar = [], e;
29
+ try {
30
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
31
+ }
32
+ catch (error) { e = { error: error }; }
33
+ finally {
34
+ try {
35
+ if (r && !r.done && (m = i["return"])) m.call(i);
36
+ }
37
+ finally { if (e) throw e.error; }
38
+ }
39
+ return ar;
40
+ };
41
+ var __spread = (this && this.__spread) || function () {
42
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
43
+ return ar;
44
+ };
45
+ /**
46
+ * Watermark public model types (text and picture).
47
+ *
48
+ * Construction, validation, residual, and layout state for TASK-8060 / TASK-8061.
49
+ * WordDocument host attachment lives in `index.ts`. Parse lives in `parse.ts`.
50
+ *
51
+ * OOXML ownership: `docs/ooxml-mapping/watermark.md`. Requirement:
52
+ * `docs/requirements/watermark-basic.md`. Spec: `docs/specs/watermark-basic.md`.
53
+ *
54
+ * @packageDocumentation
55
+ */
56
+ import { objectValues } from '../../core/compat/object-compat';
57
+ /**
58
+ * Discriminator for logical watermark kinds.
59
+ *
60
+ * Values match the normative public API in `docs/requirements/watermark-basic.md`.
61
+ * Implemented as a const object + union type (API-RULES R7.5); not a TypeScript `enum`.
62
+ *
63
+ * @public
64
+ */
65
+ export var WatermarkType = {
66
+ TextWatermark: 'TextWatermark',
67
+ PictureWatermark: 'PictureWatermark',
68
+ };
69
+ /**
70
+ * Text watermark layout / rotation preset.
71
+ *
72
+ * - `Horizontal` — rotation 0°
73
+ * - `Diagonal` — rotation 315° (Word default diagonal watermark)
74
+ *
75
+ * @public
76
+ */
77
+ export var WatermarkLayout = {
78
+ Horizontal: 'Horizontal',
79
+ Diagonal: 'Diagonal',
80
+ };
81
+ /**
82
+ * Supported picture watermark image encodings for authoring.
83
+ *
84
+ * Public values are the locked API tokens `Jpeg` and `Png` (not MIME strings).
85
+ * Parse maps package content types (`image/jpeg` / `image/png`) onto these tokens.
86
+ *
87
+ * @public
88
+ */
89
+ export var ImageType = {
90
+ /** JPEG raster (maps from image/jpeg media part). */
91
+ Jpeg: 'Jpeg',
92
+ /** PNG raster (maps from image/png media part). */
93
+ Png: 'Png',
94
+ };
95
+ function assertFiniteNumber(name, value) {
96
+ if (typeof value !== 'number' || !Number.isFinite(value)) {
97
+ throw new RangeError(name + " must be a finite number");
98
+ }
99
+ }
100
+ function assertOptionalPositive(name, value) {
101
+ if (value === undefined) {
102
+ return undefined;
103
+ }
104
+ assertFiniteNumber(name, value);
105
+ if (value <= 0) {
106
+ throw new RangeError(name + " must be greater than zero");
107
+ }
108
+ return value;
109
+ }
110
+ var WATERMARK_LAYOUT_VALUES = new Set(objectValues(WatermarkLayout));
111
+ var IMAGE_TYPE_VALUES = new Set(objectValues(ImageType));
112
+ function assertLayout(value) {
113
+ if (!WATERMARK_LAYOUT_VALUES.has(value)) {
114
+ throw new RangeError('layout must be Horizontal or Diagonal');
115
+ }
116
+ return value;
117
+ }
118
+ function assertImageType(value) {
119
+ if (!IMAGE_TYPE_VALUES.has(value)) {
120
+ throw new RangeError('imageType must be Jpeg or Png');
121
+ }
122
+ return value;
123
+ }
124
+ function copyBytes(data) {
125
+ var copy = new Uint8Array(data.byteLength);
126
+ copy.set(data);
127
+ return copy;
128
+ }
129
+ function cloneResidual(residual) {
130
+ if (residual === undefined) {
131
+ return undefined;
132
+ }
133
+ var next = {};
134
+ if (residual.shapeId !== undefined) {
135
+ next.shapeId = residual.shapeId;
136
+ }
137
+ if (residual.shapeType !== undefined) {
138
+ next.shapeType = residual.shapeType;
139
+ }
140
+ if (residual.styleAttribute !== undefined) {
141
+ next.styleAttribute = residual.styleAttribute;
142
+ }
143
+ if (residual.fillcolor !== undefined) {
144
+ next.fillcolor = residual.fillcolor;
145
+ }
146
+ if (residual.extraShapeAttributes !== undefined) {
147
+ next.extraShapeAttributes = __assign({}, residual.extraShapeAttributes);
148
+ }
149
+ if (residual.extraChildXml !== undefined) {
150
+ next.extraChildXml = __spread(residual.extraChildXml);
151
+ }
152
+ if (residual.fillOpacity !== undefined) {
153
+ next.fillOpacity = residual.fillOpacity;
154
+ }
155
+ // Clone must not copy live header-local image relationship identity
156
+ // (requirement Clone contract / TASK-8063). Omit imageRelationshipId.
157
+ if (residual.unresolvedImageNote !== undefined) {
158
+ next.unresolvedImageNote = residual.unresolvedImageNote;
159
+ }
160
+ if (residual.extensions !== undefined) {
161
+ next.extensions = __assign({}, residual.extensions);
162
+ }
163
+ return next;
164
+ }
165
+ /**
166
+ * Abstract logical watermark base.
167
+ *
168
+ * @public
169
+ */
170
+ var Watermark = /** @class */ (function () {
171
+ function Watermark(type) {
172
+ this.typeValue = type;
173
+ }
174
+ Object.defineProperty(Watermark.prototype, "type", {
175
+ /** Discriminator matching {@link WatermarkType}. */
176
+ get: function () {
177
+ return this.typeValue;
178
+ },
179
+ enumerable: true,
180
+ configurable: true
181
+ });
182
+ return Watermark;
183
+ }());
184
+ export { Watermark };
185
+ /**
186
+ * Text watermark authored as VML `v:shape` + `v:textpath` (TASK-8062 emit).
187
+ *
188
+ * Defaults (requirement table): empty text, Times New Roman, 36pt, `#808080`,
189
+ * semitransparent `true`, Diagonal layout.
190
+ *
191
+ * @public
192
+ */
193
+ var TextWatermark = /** @class */ (function (_super) {
194
+ __extends(TextWatermark, _super);
195
+ /**
196
+ * @param text - Watermark display text.
197
+ * @param options - Optional text styling / layout overrides.
198
+ */
199
+ function TextWatermark(text, options) {
200
+ var _this = _super.call(this, WatermarkType.TextWatermark) || this;
201
+ _this.textValue = '';
202
+ _this.fontNameValue = 'Times New Roman';
203
+ _this.sizeValue = 36;
204
+ _this.colorValue = '#808080';
205
+ _this.layoutValue = WatermarkLayout.Diagonal;
206
+ /**
207
+ * Authoring path starts Opaque-or-Transparent only via this field when the
208
+ * consumer assigns `semitransparent`. Construction default is Transparent
209
+ * (dirty-ready default `true`) without residual Unknown.
210
+ */
211
+ _this.semitransparentState = 'transparent';
212
+ if (text !== undefined) {
213
+ _this.textValue = text;
214
+ }
215
+ if (options === undefined) {
216
+ return _this;
217
+ }
218
+ if (options.fontName !== undefined) {
219
+ _this.fontNameValue = options.fontName;
220
+ }
221
+ if (options.size !== undefined) {
222
+ assertFiniteNumber('size', options.size);
223
+ if (options.size <= 0) {
224
+ throw new RangeError('size must be greater than zero');
225
+ }
226
+ _this.sizeValue = options.size;
227
+ }
228
+ if (options.color !== undefined) {
229
+ _this.colorValue = options.color;
230
+ }
231
+ if (options.semitransparent !== undefined) {
232
+ _this.semitransparentState = options.semitransparent ? 'transparent' : 'opaque';
233
+ }
234
+ if (options.layout !== undefined) {
235
+ _this.layoutValue = assertLayout(options.layout);
236
+ }
237
+ if (options.width !== undefined) {
238
+ _this.widthValue = assertOptionalPositive('width', options.width);
239
+ }
240
+ if (options.height !== undefined) {
241
+ _this.heightValue = assertOptionalPositive('height', options.height);
242
+ }
243
+ return _this;
244
+ }
245
+ Object.defineProperty(TextWatermark.prototype, "text", {
246
+ /** Watermark display string (`v:textpath/@string`). */
247
+ get: function () {
248
+ return this.textValue;
249
+ },
250
+ set: function (value) {
251
+ this.textValue = value;
252
+ },
253
+ enumerable: true,
254
+ configurable: true
255
+ });
256
+ Object.defineProperty(TextWatermark.prototype, "fontName", {
257
+ /** Typeface name (`font-family` on `v:textpath` style). */
258
+ get: function () {
259
+ return this.fontNameValue;
260
+ },
261
+ set: function (value) {
262
+ this.fontNameValue = value;
263
+ },
264
+ enumerable: true,
265
+ configurable: true
266
+ });
267
+ Object.defineProperty(TextWatermark.prototype, "size", {
268
+ /** Font size in points. */
269
+ get: function () {
270
+ return this.sizeValue;
271
+ },
272
+ set: function (value) {
273
+ assertFiniteNumber('size', value);
274
+ if (value <= 0) {
275
+ throw new RangeError('size must be greater than zero');
276
+ }
277
+ this.sizeValue = value;
278
+ },
279
+ enumerable: true,
280
+ configurable: true
281
+ });
282
+ Object.defineProperty(TextWatermark.prototype, "color", {
283
+ /** Fill color string (e.g. `#808080`). */
284
+ get: function () {
285
+ return this.colorValue;
286
+ },
287
+ set: function (value) {
288
+ this.colorValue = value;
289
+ },
290
+ enumerable: true,
291
+ configurable: true
292
+ });
293
+ Object.defineProperty(TextWatermark.prototype, "semitransparent", {
294
+ /**
295
+ * Whether the watermark is treated as semitransparent.
296
+ *
297
+ * When the internal state is Unknown (clean parse with no opacity signal),
298
+ * the getter returns the public default `true` without dirtying residual
299
+ * state. Assigning always records Transparent or Opaque.
300
+ */
301
+ get: function () {
302
+ if (this.semitransparentState === 'opaque') {
303
+ return false;
304
+ }
305
+ // transparent | unknown → public default true
306
+ return true;
307
+ },
308
+ set: function (value) {
309
+ this.semitransparentState = value ? 'transparent' : 'opaque';
310
+ },
311
+ enumerable: true,
312
+ configurable: true
313
+ });
314
+ Object.defineProperty(TextWatermark.prototype, "layout", {
315
+ /**
316
+ * Layout preset (Horizontal / Diagonal).
317
+ *
318
+ * When a custom rotation was parsed, the getter returns `Diagonal` as a
319
+ * non-authoritative fallback without clearing residual rotation (no dirty).
320
+ * Assigning a layout clears custom rotation.
321
+ */
322
+ get: function () {
323
+ if (this.customRotationDegreesValue !== undefined) {
324
+ return WatermarkLayout.Diagonal;
325
+ }
326
+ return this.layoutValue;
327
+ },
328
+ set: function (value) {
329
+ this.layoutValue = assertLayout(value);
330
+ this.customRotationDegreesValue = undefined;
331
+ },
332
+ enumerable: true,
333
+ configurable: true
334
+ });
335
+ Object.defineProperty(TextWatermark.prototype, "width", {
336
+ /** Optional explicit width in points. */
337
+ get: function () {
338
+ return this.widthValue;
339
+ },
340
+ set: function (value) {
341
+ this.widthValue = assertOptionalPositive('width', value);
342
+ },
343
+ enumerable: true,
344
+ configurable: true
345
+ });
346
+ Object.defineProperty(TextWatermark.prototype, "height", {
347
+ /** Optional explicit height in points. */
348
+ get: function () {
349
+ return this.heightValue;
350
+ },
351
+ set: function (value) {
352
+ this.heightValue = assertOptionalPositive('height', value);
353
+ },
354
+ enumerable: true,
355
+ configurable: true
356
+ });
357
+ /**
358
+ * @private
359
+ * Expose tri-state for parse/serialize tasks without public API churn.
360
+ */
361
+ TextWatermark.prototype.getSemitransparentState = function () {
362
+ return this.semitransparentState;
363
+ };
364
+ /**
365
+ * @private
366
+ * Apply parse-observed opacity without forcing author defaults.
367
+ */
368
+ TextWatermark.prototype.setSemitransparentState = function (state) {
369
+ this.semitransparentState = state;
370
+ };
371
+ /**
372
+ * @private
373
+ * Custom rotation degrees from style `rotation` when not 0/315.
374
+ */
375
+ TextWatermark.prototype.getCustomRotationDegrees = function () {
376
+ return this.customRotationDegreesValue;
377
+ };
378
+ /**
379
+ * @private
380
+ */
381
+ TextWatermark.prototype.setCustomRotationDegrees = function (degrees) {
382
+ if (degrees === undefined) {
383
+ this.customRotationDegreesValue = undefined;
384
+ return;
385
+ }
386
+ assertFiniteNumber('customRotationDegrees', degrees);
387
+ this.customRotationDegreesValue = degrees;
388
+ };
389
+ /**
390
+ * @private
391
+ * Parse residual bag for clean preserve / dirty merge.
392
+ */
393
+ TextWatermark.prototype.getParseResidual = function () {
394
+ return this.parseResidualValue;
395
+ };
396
+ /**
397
+ * @private
398
+ */
399
+ TextWatermark.prototype.setParseResidual = function (residual) {
400
+ this.parseResidualValue = residual;
401
+ };
402
+ /** @inheritdoc */
403
+ TextWatermark.prototype.clone = function () {
404
+ // exactOptionalPropertyTypes: omit optional keys when unset (do not pass undefined).
405
+ var options = {
406
+ fontName: this.fontNameValue,
407
+ size: this.sizeValue,
408
+ color: this.colorValue,
409
+ layout: this.layoutValue,
410
+ // Pass through public boolean; then restore exact tri-state.
411
+ semitransparent: this.semitransparentState !== 'opaque',
412
+ };
413
+ if (this.widthValue !== undefined) {
414
+ options.width = this.widthValue;
415
+ }
416
+ if (this.heightValue !== undefined) {
417
+ options.height = this.heightValue;
418
+ }
419
+ var copy = new TextWatermark(this.textValue, options);
420
+ copy.semitransparentState = this.semitransparentState;
421
+ copy.customRotationDegreesValue = this.customRotationDegreesValue;
422
+ copy.parseResidualValue = cloneResidual(this.parseResidualValue);
423
+ return copy;
424
+ };
425
+ return TextWatermark;
426
+ }(Watermark));
427
+ export { TextWatermark };
428
+ /**
429
+ * Picture watermark backed by image bytes and optional washout/scaling.
430
+ *
431
+ * Defaults: scaling 100, washout `true`. Bytes are defensively copied on
432
+ * construct and {@link loadPicture}.
433
+ *
434
+ * @public
435
+ */
436
+ var PictureWatermark = /** @class */ (function (_super) {
437
+ __extends(PictureWatermark, _super);
438
+ /**
439
+ * @param imageData - Optional image bytes (defensively copied).
440
+ * @param options - Optional picture styling overrides.
441
+ */
442
+ function PictureWatermark(imageData, options) {
443
+ var _this = _super.call(this, WatermarkType.PictureWatermark) || this;
444
+ _this.scalingValue = 100;
445
+ _this.washoutValue = true;
446
+ if (imageData !== undefined) {
447
+ _this.imageDataValue = copyBytes(imageData);
448
+ }
449
+ if (options === undefined) {
450
+ return _this;
451
+ }
452
+ if (options.imageType !== undefined) {
453
+ _this.imageTypeValue = assertImageType(options.imageType);
454
+ }
455
+ if (options.scaling !== undefined) {
456
+ assertFiniteNumber('scaling', options.scaling);
457
+ if (options.scaling <= 0) {
458
+ throw new RangeError('scaling must be greater than zero');
459
+ }
460
+ _this.scalingValue = options.scaling;
461
+ }
462
+ if (options.washout !== undefined) {
463
+ _this.washoutValue = options.washout;
464
+ }
465
+ if (options.width !== undefined) {
466
+ _this.widthValue = assertOptionalPositive('width', options.width);
467
+ }
468
+ if (options.height !== undefined) {
469
+ _this.heightValue = assertOptionalPositive('height', options.height);
470
+ }
471
+ return _this;
472
+ }
473
+ Object.defineProperty(PictureWatermark.prototype, "imageData", {
474
+ /**
475
+ * Image payload bytes. Getter returns a defensive copy; setter stores a copy.
476
+ */
477
+ get: function () {
478
+ if (this.imageDataValue === undefined) {
479
+ return undefined;
480
+ }
481
+ return copyBytes(this.imageDataValue);
482
+ },
483
+ set: function (value) {
484
+ this.imageDataValue = value === undefined ? undefined : copyBytes(value);
485
+ },
486
+ enumerable: true,
487
+ configurable: true
488
+ });
489
+ Object.defineProperty(PictureWatermark.prototype, "imageType", {
490
+ /** Image content type when known. */
491
+ get: function () {
492
+ return this.imageTypeValue;
493
+ },
494
+ set: function (value) {
495
+ this.imageTypeValue = value === undefined ? undefined : assertImageType(value);
496
+ },
497
+ enumerable: true,
498
+ configurable: true
499
+ });
500
+ Object.defineProperty(PictureWatermark.prototype, "scaling", {
501
+ /** Scale percentage (100 = natural size). */
502
+ get: function () {
503
+ return this.scalingValue;
504
+ },
505
+ set: function (value) {
506
+ assertFiniteNumber('scaling', value);
507
+ if (value <= 0) {
508
+ throw new RangeError('scaling must be greater than zero');
509
+ }
510
+ this.scalingValue = value;
511
+ },
512
+ enumerable: true,
513
+ configurable: true
514
+ });
515
+ Object.defineProperty(PictureWatermark.prototype, "washout", {
516
+ /** Washout (Word washed-out picture watermark). */
517
+ get: function () {
518
+ return this.washoutValue;
519
+ },
520
+ set: function (value) {
521
+ this.washoutValue = value;
522
+ },
523
+ enumerable: true,
524
+ configurable: true
525
+ });
526
+ Object.defineProperty(PictureWatermark.prototype, "width", {
527
+ /** Optional explicit width in points. */
528
+ get: function () {
529
+ return this.widthValue;
530
+ },
531
+ set: function (value) {
532
+ this.widthValue = assertOptionalPositive('width', value);
533
+ },
534
+ enumerable: true,
535
+ configurable: true
536
+ });
537
+ Object.defineProperty(PictureWatermark.prototype, "height", {
538
+ /** Optional explicit height in points. */
539
+ get: function () {
540
+ return this.heightValue;
541
+ },
542
+ set: function (value) {
543
+ this.heightValue = assertOptionalPositive('height', value);
544
+ },
545
+ enumerable: true,
546
+ configurable: true
547
+ });
548
+ /**
549
+ * Replace picture bytes and optional type (defensive copy).
550
+ *
551
+ * @param data - Image bytes.
552
+ * @param imageType - Optional content type.
553
+ */
554
+ PictureWatermark.prototype.loadPicture = function (data, imageType) {
555
+ this.imageDataValue = copyBytes(data);
556
+ if (imageType !== undefined) {
557
+ this.imageTypeValue = assertImageType(imageType);
558
+ }
559
+ };
560
+ /**
561
+ * @private
562
+ * Parse residual bag for clean preserve / dirty merge.
563
+ */
564
+ PictureWatermark.prototype.getParseResidual = function () {
565
+ return this.parseResidualValue;
566
+ };
567
+ /**
568
+ * @private
569
+ */
570
+ PictureWatermark.prototype.setParseResidual = function (residual) {
571
+ this.parseResidualValue = residual;
572
+ };
573
+ /** @inheritdoc */
574
+ PictureWatermark.prototype.clone = function () {
575
+ var options = {
576
+ scaling: this.scalingValue,
577
+ washout: this.washoutValue,
578
+ };
579
+ if (this.imageTypeValue !== undefined) {
580
+ options.imageType = this.imageTypeValue;
581
+ }
582
+ if (this.widthValue !== undefined) {
583
+ options.width = this.widthValue;
584
+ }
585
+ if (this.heightValue !== undefined) {
586
+ options.height = this.heightValue;
587
+ }
588
+ // exactOptionalPropertyTypes: only pass imageData when present.
589
+ var copy = this.imageDataValue === undefined
590
+ ? new PictureWatermark(undefined, options)
591
+ : new PictureWatermark(this.imageDataValue, options);
592
+ copy.parseResidualValue = cloneResidual(this.parseResidualValue);
593
+ return copy;
594
+ };
595
+ return PictureWatermark;
596
+ }(Watermark));
597
+ export { PictureWatermark };
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Watermark parse pipeline (TASK-8061).
3
+ *
4
+ * Walks header parts once, classifies conservative VML watermark shapes,
5
+ * builds {@link TextWatermark} / {@link PictureWatermark} models with residual
6
+ * capture, resolves picture media via header-local relationships, and sets the
7
+ * document logical watermark from the effective default header.
8
+ *
9
+ * @packageDocumentation
10
+ */
11
+ import { WordDocument } from '../document/document';
12
+ import { BlockContent } from '../document/paragraph';
13
+ import { OpcPackage } from '../../core/opc/package';
14
+ import { PartName } from '../../core/opc/part-name';
15
+ import { PictureWatermark, TextWatermark, Watermark, WatermarkShapeResidual } from './model';
16
+ /**
17
+ * Per-document parse index: unique physical header parts → first recognized watermark.
18
+ *
19
+ * @private
20
+ */
21
+ export interface WatermarkParseIndex {
22
+ /** Part-name key → watermark model for that header part. */
23
+ readonly physicalByPartKey: ReadonlyMap<string, Watermark>;
24
+ /** Whether ensureParsed has completed for this document. */
25
+ readonly completed: boolean;
26
+ }
27
+ /**
28
+ * @private
29
+ * Test / serialize hook: physical watermark copies by header part key.
30
+ */
31
+ export declare function physicalWatermarksOf(document: WordDocument): ReadonlyMap<string, Watermark>;
32
+ /**
33
+ * Mark parse complete so a later ensure does not overwrite author assignment.
34
+ * Used by the document host setter after logical attach / remove.
35
+ *
36
+ * @private
37
+ */
38
+ export declare function markWatermarkParseCompleted(document: WordDocument): void;
39
+ /**
40
+ * @private
41
+ * Reset parse bookkeeping for unit tests.
42
+ */
43
+ export declare function resetWatermarkParseStateForTests(document?: WordDocument): void;
44
+ /**
45
+ * @private
46
+ * Apply residual + custom rotation onto a constructed model.
47
+ */
48
+ export declare function attachTextParseExtras(model: TextWatermark, residual: WatermarkShapeResidual, customRotation: number | undefined): void;
49
+ /**
50
+ * @private
51
+ */
52
+ export declare function attachPictureParseExtras(model: PictureWatermark, residual: WatermarkShapeResidual): void;
53
+ /**
54
+ * Parse the first recognized watermark shape under header body blocks.
55
+ *
56
+ * @private
57
+ */
58
+ export declare function parseWatermarkFromHeaderBlocks(blocks: ReadonlyArray<BlockContent>, pkg: OpcPackage | undefined, headerPartName: PartName): Watermark | undefined;
59
+ /**
60
+ * Ensure header watermarks have been scanned once for this document.
61
+ *
62
+ * Builds the physical-by-part index only. Does **not** read or write
63
+ * `document.watermark` (avoids prototype getter re-entry). Logical apply is
64
+ * {@link applyLogicalWatermarkFromDefaultHeader} / {@link ensureParsedAndLogical}.
65
+ *
66
+ * Parse does not dirty header parts or mutate Open XML trees.
67
+ *
68
+ * @private
69
+ */
70
+ export declare function ensureWatermarksParsed(document: WordDocument): void;
71
+ /**
72
+ * Apply logical watermark from default header after physical index is built.
73
+ * Separated so the document getter can call ensure then read logical without
74
+ * re-entrancy through the prototype getter mid-parse.
75
+ *
76
+ * @private
77
+ */
78
+ export declare function applyLogicalWatermarkFromDefaultHeader(document: WordDocument, getLogical: () => Watermark | undefined, setLogical: (value: Watermark | undefined) => void): void;
79
+ /**
80
+ * Full ensure + logical apply used by the document host getter.
81
+ *
82
+ * @private
83
+ */
84
+ export declare function ensureParsedAndLogical(document: WordDocument, getLogical: () => Watermark | undefined, setLogical: (value: Watermark | undefined) => void): void;