@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,435 @@
1
+ import { WordDocument } from './document';
2
+ import { FeatureId } from '../../core/registry/feature-registry';
3
+ import { OpenXmlAttribute, OpenXmlElement } from '../../core/xml/index';
4
+ import { FeatureBlock } from './feature-block';
5
+ import { FeatureInline } from './feature-inline';
6
+ import { FeatureRunLeaf } from './feature-run-leaf';
7
+ import { CharacterFormat, CharacterFormatHost, CharacterFormatSnapshot } from './character-format';
8
+ import { ParagraphFormat, ParagraphFormatHost, ParagraphFormatSnapshot } from './paragraph-format';
9
+ import { CnfStyle, NormalizedCnfStyle } from '../tables/tbl-pr';
10
+ import { ParagraphItem } from './paragraph-item';
11
+ import { ParagraphItemCollection, ParagraphItemCollectionHost } from './paragraph-item-collection';
12
+ import { Break, BreakClearType, BreakType, ConcreteParagraphItem, FeatureInlineParagraphItem, FeatureRunParagraphItem, Symbol, TextRange } from './text-range';
13
+ /**
14
+ * @private Registers the ListFormat constructor bridge (called from numbering feature load).
15
+ */
16
+ export declare function setListFormatFactory(factory: (paragraph: Paragraph) => any): void;
17
+ /**
18
+ * @private Test-only reset.
19
+ */
20
+ export declare function resetListFormatFactoryForTests(): void;
21
+ /**
22
+ * Body child: a modeled paragraph, optional feature block, or preserved unmodeled markup.
23
+ *
24
+ * @public
25
+ */
26
+ export declare type BlockContent = {
27
+ readonly type: 'paragraph';
28
+ readonly paragraph: Paragraph;
29
+ } | {
30
+ readonly type: 'feature';
31
+ readonly featureId: FeatureId;
32
+ readonly value: FeatureBlock;
33
+ } | {
34
+ readonly type: 'opaque';
35
+ readonly xml: OpenXmlElement;
36
+ };
37
+ export interface ParagraphOwner {
38
+ assertAttachedParagraph(target: Paragraph): void;
39
+ /** @private */
40
+ owningDocument(): WordDocument;
41
+ /**
42
+ * Optional body-owner kind used for ownership queries without circular imports.
43
+ * Table cells set this to `'tableCell'`.
44
+ *
45
+ * @private
46
+ */
47
+ readonly bodyOwnerKind?: 'tableCell' | string;
48
+ }
49
+ /**
50
+ * Optional clear for {@link Paragraph.appendBreak} on line / text-wrapping breaks.
51
+ *
52
+ * @public
53
+ */
54
+ export interface AppendBreakOptions {
55
+ /**
56
+ * Text-wrapping clear (`ST_BrClear`). Only valid with
57
+ * {@link BreakType.LineBreak} or {@link BreakType.TextWrappingBreak}.
58
+ */
59
+ readonly clear?: BreakClearType;
60
+ }
61
+ /**
62
+ * WordprocessingML paragraph (`w:p`).
63
+ *
64
+ * Paragraph properties live on {@link Paragraph.paragraphFormat} (`w:pPr`).
65
+ * Paragraph-mark character formatting lives on
66
+ * {@link Paragraph.breakCharacterFormat} (`w:pPr/w:rPr`). Text-range character
67
+ * formatting remains on {@link TextRange.characterFormat} (`w:r/w:rPr`).
68
+ *
69
+ * Items appear directly on {@link Paragraph.items} — there is no nested run
70
+ * collection. Physical `w:r` grouping is reconstructed on serialize.
71
+ *
72
+ * @public
73
+ */
74
+ export declare class Paragraph implements ParagraphFormatHost, CharacterFormatHost, ParagraphItemCollectionHost {
75
+ private owner;
76
+ private extraAttributes;
77
+ private styleIdValue;
78
+ private numIdValue;
79
+ private listLevelValue;
80
+ private numPrExtra;
81
+ private sectionBreakSectPrElement;
82
+ /** Live section-break model from the optional sections feature (not XML). */
83
+ private sectionBreakPropertiesModelValue;
84
+ /**
85
+ * Stable paragraph-item collection. Never replaced after construction —
86
+ * hydrate/clear mutate contents in place.
87
+ */
88
+ private readonly paragraphItems;
89
+ /** TASK-9020-B: all typed `w:pPr` formatting state lives on ParagraphFormat. */
90
+ private paragraphFormatField;
91
+ /** Paragraph-mark character formatting (`w:pPr/w:rPr`). */
92
+ private breakCharacterFormatField;
93
+ /** Paragraph list formatting (`w:numPr`). */
94
+ private listFormatField;
95
+ /** @private */
96
+ constructor(owner: ParagraphOwner | undefined);
97
+ /**
98
+ * The direct paragraph formatting (`w:pPr`) of this paragraph — the only
99
+ * public paragraph-formatting surface.
100
+ *
101
+ * A live view over the typed `w:pPr` state: every read/write goes to the
102
+ * same storage the parser fills and the serializer reads. Lazily created
103
+ * on first access and cached; never null.
104
+ *
105
+ * Mutating it validates attachment — writes on a detached paragraph throw
106
+ * {@link DetachedObjectError}.
107
+ *
108
+ * @example
109
+ * ```ts
110
+ * paragraph.paragraphFormat.beforeSpacing = 18;
111
+ * paragraph.paragraphFormat.lineSpacing = 10;
112
+ * paragraph.paragraphFormat.firstLineIndent = 10; // negative = hanging
113
+ * paragraph.paragraphFormat.backColor = 'D3D3D3';
114
+ * ```
115
+ *
116
+ * @public
117
+ */
118
+ readonly paragraphFormat: ParagraphFormat;
119
+ /**
120
+ * Character formatting of the paragraph mark (`w:pPr/w:rPr`).
121
+ *
122
+ * Reuses the same {@link CharacterFormat} type as {@link TextRange.characterFormat}.
123
+ * Lazily constructed; never null. Empty format does not emit an empty `w:rPr`.
124
+ *
125
+ * @example
126
+ * ```ts
127
+ * paragraph.breakCharacterFormat.bold = true;
128
+ * paragraph.breakCharacterFormat.italic = true;
129
+ * paragraph.breakCharacterFormat.fontSize = 14;
130
+ * ```
131
+ *
132
+ * @public
133
+ */
134
+ readonly breakCharacterFormat: CharacterFormat;
135
+ /**
136
+ * Paragraph list formatting (`w:numPr`).
137
+ *
138
+ * A live list-format interface for applying and modifying numbering and
139
+ * bullet formatting on this paragraph. Lazily created on first access
140
+ * and cached; never null.
141
+ *
142
+ * @example
143
+ * ```ts
144
+ * paragraph.listFormat.applyDefBulletStyle();
145
+ * paragraph.listFormat.increaseIndentLevel();
146
+ * paragraph.listFormat.listId = 5;
147
+ * ```
148
+ *
149
+ * @public
150
+ */
151
+ readonly listFormat: import('../numbering/list-format').ListFormat;
152
+ /** @private ParagraphFormatHost — mutation notification + detachment guard. */
153
+ notifyParagraphFormatMutation(): void;
154
+ /** @private CharacterFormatHost — mark rPr mutation notification. */
155
+ notifyCharacterFormatMutation(): void;
156
+ /** @private */
157
+ detach(): void;
158
+ /** @private */
159
+ attach(owner: ParagraphOwner): void;
160
+ /**
161
+ * @private ParagraphItemOwner — gate item property mutation.
162
+ */
163
+ assertAttachedItem(target: ParagraphItem): void;
164
+ /**
165
+ * @private Gate paragraph-level authoring.
166
+ */
167
+ assertMutable(): void;
168
+ private mutate;
169
+ /** @private */
170
+ owningDocument(): WordDocument;
171
+ /**
172
+ * Gets or sets the identifier of the paragraph style applied to this paragraph.
173
+ *
174
+ * If undefined, no paragraph style is applied and formatting comes from the
175
+ * document defaults. The identifier must name a style that exists in the
176
+ * document when the file is saved.
177
+ *
178
+ * @defaultValue No paragraph style when omitted (body text formatting).
179
+ *
180
+ * @public
181
+ */
182
+ styleId: string | undefined;
183
+ /**
184
+ * Applies a paragraph style by id or BuiltInStyle.
185
+ * Implementation is registered by the styles feature (writes resolved styleId only).
186
+ * @public
187
+ */
188
+ applyStyle(_style: string): void;
189
+ /**
190
+ * @private Optional CharacterFormatHost effective resolver (overwritten by styles feature).
191
+ */
192
+ resolveEffectiveCharacterValue?(_key: string): unknown;
193
+ /**
194
+ * @private Optional ParagraphFormatHost effective resolver (overwritten by styles feature).
195
+ */
196
+ resolveEffectiveParagraphValue?(_key: string): unknown;
197
+ /**
198
+ * @private
199
+ * Direct `w:numPr/w:numId/@w:val`. `undefined` means absent (not in a list). */
200
+ /**
201
+ * @private
202
+ * Direct `w:numPr/w:numId/@w:val`. `undefined` means absent (not in a list). */
203
+ numId: number | undefined;
204
+ /**
205
+ * Zero-based list level (`w:ilvl`). Prefer {@link listFormat.listLevelNumber}.
206
+ *
207
+ * @private
208
+ */
209
+ /**
210
+ * @private
211
+ */
212
+ listLevel: number | undefined;
213
+ /**
214
+ * @private
215
+ * Conditional table-style membership on `w:pPr/w:cnfStyle`.
216
+ */
217
+ getConditionalFormatting(): CnfStyle | undefined;
218
+ /**
219
+ * @private
220
+ * Set or clear conditional table-style membership on this paragraph.
221
+ * Does not call {@link mutate} beyond ParagraphFormat's write path so
222
+ * detached table rebuilds during calculation can still write masks.
223
+ */
224
+ setConditionalFormatting(state: NormalizedCnfStyle | CnfStyle | undefined): void;
225
+ /**
226
+ * True when this paragraph’s nearest body owner is a table cell
227
+ * (including nested table cells). False for body, header/footer, text box,
228
+ * footnote, endnote, or detached paragraphs.
229
+ *
230
+ * @public
231
+ */
232
+ readonly isInCell: boolean;
233
+ /** @private Paragraph section-break `w:pPr/w:sectPr`, when present. */
234
+ sectionBreakSectPr(): OpenXmlElement | undefined;
235
+ /**
236
+ * @private
237
+ * Replace paragraph section-break `w:sectPr`.
238
+ *
239
+ * Load/partition/flatten may dual-hold before the paragraph is attached to a
240
+ * body (parse uses a detached context; save may append an empty terminator).
241
+ * When already attached, still assert ownership via {@link mutate}.
242
+ */
243
+ replaceSectionBreakSectPr(value: OpenXmlElement | undefined): void;
244
+ /**
245
+ * @private
246
+ * Live paragraph section-break properties model (sections feature), if any.
247
+ */
248
+ sectionBreakPropertiesModel(): {
249
+ toOpenXml(): OpenXmlElement;
250
+ } | undefined;
251
+ /**
252
+ * @private
253
+ * Attach or clear the live paragraph section-break properties model.
254
+ * When set, clears preserved `w:sectPr` XML so the model is the sole source of truth.
255
+ *
256
+ * Same attach rules as {@link replaceSectionBreakSectPr}: dual-hold is allowed
257
+ * before body ownership is established (TASK-8075 partition/flatten).
258
+ */
259
+ replaceSectionBreakPropertiesModel(value: {
260
+ toOpenXml(): OpenXmlElement;
261
+ } | undefined): void;
262
+ /**
263
+ * Ordered paragraph items (text ranges, breaks, tabs, symbols, feature
264
+ * content, opaque markup) in document order.
265
+ *
266
+ * Stable collection identity for the life of the paragraph. Physical `w:r`
267
+ * grouping is reconstructed on serialize via shared wire groups.
268
+ *
269
+ * @public
270
+ */
271
+ readonly items: ParagraphItemCollection;
272
+ /**
273
+ * Gets the concatenated plain text of modeled text ranges and tab characters
274
+ * in document order.
275
+ *
276
+ * Opaque and feature inlines (for example hyperlinks owned by feature modules)
277
+ * are skipped. Field instruction text is also skipped; only field result text
278
+ * is included. {@link Tab} items contribute U+0009 so plain-text views match
279
+ * run-level tab characters authored via {@link appendText} or loaded from
280
+ * `w:tab`.
281
+ *
282
+ * @public
283
+ */
284
+ readonly text: string;
285
+ /**
286
+ * Appends an empty text range to the end of this paragraph and returns it.
287
+ *
288
+ * @returns The newly created empty text range.
289
+ * @throws DetachedObjectError if this paragraph is no longer attached to a document.
290
+ *
291
+ * @public
292
+ */
293
+ appendTextRange(): TextRange;
294
+ /**
295
+ * Append text as one or more paragraph items, optionally with common character
296
+ * formatting. U+0009 (tab) characters become dedicated {@link Tab} items
297
+ * (`w:r/w:tab`) interleaved with {@link TextRange} segments that share one
298
+ * wire run group, matching Word / OOXML run-inner content.
299
+ *
300
+ * @returns The first {@link TextRange} created for non-empty text segments, or
301
+ * an empty trailing {@link TextRange} when `text` is empty or tab-only (so the
302
+ * return type stays {@link TextRange}).
303
+ *
304
+ * @public
305
+ */
306
+ appendText(text: string, options?: {
307
+ readonly bold?: boolean;
308
+ readonly italic?: boolean;
309
+ readonly fontSize?: number;
310
+ }): TextRange;
311
+ /**
312
+ * Append a break (`w:br`) as a direct paragraph item.
313
+ *
314
+ * Always run content on the wire (`w:r/w:br`), never a paragraph-level
315
+ * sibling of `w:r`. Serialization rebuilds the physical run.
316
+ *
317
+ * @param type - Break kind ({@link BreakType}).
318
+ * @param options - Optional text-wrapping clear (Line / TextWrappingBreak only).
319
+ * @returns The break item.
320
+ * @throws DocxError `content/invalid-break` if `clear` is set on Page or Column.
321
+ *
322
+ * @example
323
+ * ```ts
324
+ * paragraph.appendBreak(BreakType.PageBreak);
325
+ * paragraph.appendBreak(BreakType.LineBreak, { clear: BreakClearType.All });
326
+ * ```
327
+ *
328
+ * @public
329
+ */
330
+ appendBreak(type: BreakType, options?: AppendBreakOptions): Break;
331
+ /**
332
+ * Append a symbol character (`w:sym`) as a direct paragraph item.
333
+ *
334
+ * Always run content on the wire (`w:r/w:sym`, ECMA-376-1 §17.3.3.30).
335
+ *
336
+ * @param font - Symbol font name (`w:font`), for example `"Wingdings"`.
337
+ * @param char - `ST_ShortHexNumber` hex digits for `w:char` (four hex digits, e.g. `"F0FC"`).
338
+ * @returns The symbol paragraph item that was created.
339
+ *
340
+ * @example
341
+ * ```ts
342
+ * paragraph.appendText('checkmark: ');
343
+ * paragraph.appendSymbol('Wingdings', 'F0FC');
344
+ * ```
345
+ *
346
+ * @public
347
+ */
348
+ appendSymbol(font: string, char: string): Symbol;
349
+ /**
350
+ * Appends a feature-owned run-level item (for example an image) as a direct
351
+ * paragraph child. Serializes inside a physical `w:r` via its wire group.
352
+ *
353
+ * @private
354
+ */
355
+ appendFeatureRunItem(featureId: FeatureId, value: FeatureRunLeaf): FeatureRunParagraphItem;
356
+ /**
357
+ * Appends a feature-owned inline sibling (for example `w:hyperlink`).
358
+ *
359
+ * @private
360
+ */
361
+ appendFeatureInline(featureId: FeatureId, value: FeatureInline): FeatureInlineParagraphItem;
362
+ /**
363
+ * Inserts a feature-owned inline at a raw content index (`0…items.count` inclusive).
364
+ *
365
+ * @private
366
+ */
367
+ insertFeatureInlineAt(index: number, featureId: FeatureId, value: FeatureInline): FeatureInlineParagraphItem;
368
+ /** @private Remove a feature inline from this paragraph. */
369
+ removeFeatureInline(value: FeatureInline): void;
370
+ /**
371
+ * @private Remove a feature run-level item (image, drawing residual, …).
372
+ */
373
+ removeFeatureRunItem(value: FeatureRunLeaf): void;
374
+ /**
375
+ * @private Append a pre-built paragraph item (feature modules).
376
+ */
377
+ appendParagraphItem(item: ConcreteParagraphItem): void;
378
+ /**
379
+ * @private Remove a text range by identity.
380
+ */
381
+ removeTextRange(run: TextRange): void;
382
+ /**
383
+ * Advanced hatch: `w:p` tree. Unstable; prefer semantic properties.
384
+ */
385
+ toOpenXml(): OpenXmlElement;
386
+ /** @private */
387
+ static fromXml(el: OpenXmlElement, owner: ParagraphOwner): Paragraph;
388
+ /** @private */
389
+ hydrate(data: {
390
+ extraAttributes: ReadonlyArray<OpenXmlAttribute>;
391
+ styleIdValue: string | undefined;
392
+ numIdValue: number | undefined;
393
+ listLevelValue: number | undefined;
394
+ numPrExtra: OpenXmlElement[];
395
+ sectionBreakSectPr: OpenXmlElement | undefined;
396
+ items: ConcreteParagraphItem[];
397
+ paragraphFormat: ParagraphFormatSnapshot;
398
+ breakCharacterFormat?: CharacterFormatSnapshot;
399
+ }): void;
400
+ /** @private */
401
+ snapshot(): {
402
+ extraAttributes: ReadonlyArray<OpenXmlAttribute>;
403
+ styleIdValue: string | undefined;
404
+ numIdValue: number | undefined;
405
+ listLevelValue: number | undefined;
406
+ numPrExtra: OpenXmlElement[];
407
+ sectionBreakSectPr: OpenXmlElement | undefined;
408
+ items: ConcreteParagraphItem[];
409
+ paragraphFormat: ParagraphFormatSnapshot;
410
+ breakCharacterFormat: CharacterFormatSnapshot;
411
+ };
412
+ }
413
+ /**
414
+ * Serialize a paragraph. `w:pPr` children after `pStyle` come from
415
+ * {@link ParagraphFormat.buildPPrChildren} (CT_PPr order; TASK-9020-D).
416
+ * Mark `w:rPr` is injected from {@link Paragraph.breakCharacterFormat}.
417
+ */
418
+ export declare function serializeParagraph(paragraph: Paragraph): OpenXmlElement;
419
+ /**
420
+ * True when {@link ParagraphFormat.pageBreakAfter} should emit a dedicated
421
+ * following paragraph containing only `w:br/@w:type="page"`.
422
+ *
423
+ * Skips when the content paragraph already contains a page-break item so
424
+ * authoring does not duplicate breaks.
425
+ *
426
+ * @private
427
+ */
428
+ export declare function shouldEmitPageBreakAfterParagraph(paragraph: Paragraph): boolean;
429
+ /**
430
+ * Build a standalone `w:p` whose only content is a page break run.
431
+ * Used after a content paragraph when {@link shouldEmitPageBreakAfterParagraph}.
432
+ *
433
+ * @private
434
+ */
435
+ export declare function createPageBreakAfterParagraphElement(): OpenXmlElement;