@syncfusion/ej2-docx 0.0.0-stage → 35.1.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/README.md +68 -2
  2. package/core.js +4 -0
  3. package/dist/ej2-docx.umd.min.js +2 -0
  4. package/dist/ej2-docx.umd.min.js.map +1 -0
  5. package/dist/es6/ej2-docx.es2015.js +66697 -0
  6. package/dist/es6/ej2-docx.es2015.js.map +1 -0
  7. package/dist/es6/ej2-docx.es5.js +77568 -0
  8. package/dist/es6/ej2-docx.es5.js.map +1 -0
  9. package/dist/global/ej2-docx.min.js +2 -0
  10. package/dist/global/ej2-docx.min.js.map +1 -0
  11. package/dist/global/index.d.ts +5 -0
  12. package/features.js +4 -0
  13. package/index.js +4 -0
  14. package/license +10 -0
  15. package/package.json +31 -4
  16. package/src/all.d.ts +50 -0
  17. package/src/all.js +147 -0
  18. package/src/core/compat/base64.d.ts +13 -0
  19. package/src/core/compat/base64.js +90 -0
  20. package/src/core/compat/object-compat.d.ts +30 -0
  21. package/src/core/compat/object-compat.js +40 -0
  22. package/src/core/compat/sha256.d.ts +9 -0
  23. package/src/core/compat/sha256.js +98 -0
  24. package/src/core/errors/docx-error.d.ts +89 -0
  25. package/src/core/errors/docx-error.js +138 -0
  26. package/src/core/errors/error-codes.d.ts +8 -0
  27. package/src/core/errors/error-codes.js +0 -0
  28. package/src/core/errors/index.d.ts +10 -0
  29. package/src/core/errors/index.js +9 -0
  30. package/src/core/index.d.ts +12 -0
  31. package/src/core/index.js +12 -0
  32. package/src/core/mc/alternate-content.d.ts +7 -0
  33. package/src/core/mc/alternate-content.js +67 -0
  34. package/src/core/mc/attributes.d.ts +24 -0
  35. package/src/core/mc/attributes.js +82 -0
  36. package/src/core/mc/index.d.ts +7 -0
  37. package/src/core/mc/index.js +5 -0
  38. package/src/core/mc/inspect.d.ts +16 -0
  39. package/src/core/mc/inspect.js +148 -0
  40. package/src/core/mc/namespaces.d.ts +4 -0
  41. package/src/core/mc/namespaces.js +4 -0
  42. package/src/core/mc/scope.d.ts +6 -0
  43. package/src/core/mc/scope.js +47 -0
  44. package/src/core/opc/content-types.d.ts +34 -0
  45. package/src/core/opc/content-types.js +162 -0
  46. package/src/core/opc/index.d.ts +8 -0
  47. package/src/core/opc/index.js +4 -0
  48. package/src/core/opc/package.d.ts +49 -0
  49. package/src/core/opc/package.js +324 -0
  50. package/src/core/opc/part-name.d.ts +47 -0
  51. package/src/core/opc/part-name.js +205 -0
  52. package/src/core/opc/relationships.d.ts +46 -0
  53. package/src/core/opc/relationships.js +212 -0
  54. package/src/core/preservation/index.d.ts +2 -0
  55. package/src/core/preservation/index.js +1 -0
  56. package/src/core/preservation/opaque-body.d.ts +16 -0
  57. package/src/core/preservation/opaque-body.js +69 -0
  58. package/src/core/registry/block-handlers.d.ts +30 -0
  59. package/src/core/registry/block-handlers.js +36 -0
  60. package/src/core/registry/create-defaults.d.ts +39 -0
  61. package/src/core/registry/create-defaults.js +42 -0
  62. package/src/core/registry/feature-registry.d.ts +20 -0
  63. package/src/core/registry/feature-registry.js +29 -0
  64. package/src/core/registry/index.d.ts +9 -0
  65. package/src/core/registry/index.js +8 -0
  66. package/src/core/registry/inline-handlers.d.ts +20 -0
  67. package/src/core/registry/inline-handlers.js +30 -0
  68. package/src/core/registry/materialize-handlers.d.ts +35 -0
  69. package/src/core/registry/materialize-handlers.js +75 -0
  70. package/src/core/registry/multi-part-handlers.d.ts +37 -0
  71. package/src/core/registry/multi-part-handlers.js +206 -0
  72. package/src/core/registry/package-part-handlers.d.ts +28 -0
  73. package/src/core/registry/package-part-handlers.js +190 -0
  74. package/src/core/registry/part-handlers.d.ts +24 -0
  75. package/src/core/registry/part-handlers.js +172 -0
  76. package/src/core/registry/run-leaf-handlers.d.ts +26 -0
  77. package/src/core/registry/run-leaf-handlers.js +72 -0
  78. package/src/core/security/limits.d.ts +40 -0
  79. package/src/core/security/limits.js +26 -0
  80. package/src/core/xml/index.d.ts +7 -0
  81. package/src/core/xml/index.js +3 -0
  82. package/src/core/xml/model.d.ts +66 -0
  83. package/src/core/xml/model.js +17 -0
  84. package/src/core/xml/parse.d.ts +12 -0
  85. package/src/core/xml/parse.js +382 -0
  86. package/src/core/xml/serialize.d.ts +6 -0
  87. package/src/core/xml/serialize.js +93 -0
  88. package/src/core/zip/crc32.d.ts +2 -0
  89. package/src/core/zip/crc32.js +25 -0
  90. package/src/core/zip/deflate.d.ts +6 -0
  91. package/src/core/zip/deflate.js +6 -0
  92. package/src/core/zip/index.d.ts +10 -0
  93. package/src/core/zip/index.js +4 -0
  94. package/src/core/zip/inflate-raw.d.ts +17 -0
  95. package/src/core/zip/inflate-raw.js +450 -0
  96. package/src/core/zip/names.d.ts +6 -0
  97. package/src/core/zip/names.js +52 -0
  98. package/src/core/zip/read.d.ts +8 -0
  99. package/src/core/zip/read.js +262 -0
  100. package/src/core/zip/write.d.ts +7 -0
  101. package/src/core/zip/write.js +189 -0
  102. package/src/core/zip/zip-entry.d.ts +4 -0
  103. package/src/core/zip/zip-entry.js +0 -0
  104. package/src/features/bibliography/index.d.ts +100 -0
  105. package/src/features/bibliography/index.js +290 -0
  106. package/src/features/bookmarks/index.d.ts +331 -0
  107. package/src/features/bookmarks/index.js +1009 -0
  108. package/src/features/comments/comment-extensions.d.ts +157 -0
  109. package/src/features/comments/comment-extensions.js +356 -0
  110. package/src/features/comments/index.d.ts +579 -0
  111. package/src/features/comments/index.js +1727 -0
  112. package/src/features/content-controls/index.d.ts +821 -0
  113. package/src/features/content-controls/index.js +2857 -0
  114. package/src/features/custom-xml/index.d.ts +236 -0
  115. package/src/features/custom-xml/index.js +661 -0
  116. package/src/features/document/alignment.d.ts +23 -0
  117. package/src/features/document/alignment.js +36 -0
  118. package/src/features/document/alt-chunk.d.ts +103 -0
  119. package/src/features/document/alt-chunk.js +221 -0
  120. package/src/features/document/assert-never.d.ts +1 -0
  121. package/src/features/document/assert-never.js +4 -0
  122. package/src/features/document/augmentations.d.ts +578 -0
  123. package/src/features/document/augmentations.js +0 -0
  124. package/src/features/document/body-always-on.d.ts +36 -0
  125. package/src/features/document/body-always-on.js +66 -0
  126. package/src/features/document/body-blocks.d.ts +7 -0
  127. package/src/features/document/body-blocks.js +78 -0
  128. package/src/features/document/body-item-adapters.d.ts +62 -0
  129. package/src/features/document/body-item-adapters.js +97 -0
  130. package/src/features/document/body-item-collection.d.ts +151 -0
  131. package/src/features/document/body-item-collection.js +440 -0
  132. package/src/features/document/body-item.d.ts +35 -0
  133. package/src/features/document/body-item.js +8 -0
  134. package/src/features/document/body.d.ts +150 -0
  135. package/src/features/document/body.js +263 -0
  136. package/src/features/document/character-format.d.ts +413 -0
  137. package/src/features/document/character-format.js +2054 -0
  138. package/src/features/document/color.d.ts +178 -0
  139. package/src/features/document/color.js +495 -0
  140. package/src/features/document/document.d.ts +410 -0
  141. package/src/features/document/document.js +1049 -0
  142. package/src/features/document/element-type.d.ts +68 -0
  143. package/src/features/document/element-type.js +133 -0
  144. package/src/features/document/entity-type.d.ts +92 -0
  145. package/src/features/document/entity-type.js +93 -0
  146. package/src/features/document/feature-block.d.ts +16 -0
  147. package/src/features/document/feature-block.js +0 -0
  148. package/src/features/document/feature-inline.d.ts +13 -0
  149. package/src/features/document/feature-inline.js +0 -0
  150. package/src/features/document/feature-multi-package-part.d.ts +19 -0
  151. package/src/features/document/feature-multi-package-part.js +8 -0
  152. package/src/features/document/feature-package-level-part.d.ts +18 -0
  153. package/src/features/document/feature-package-level-part.js +8 -0
  154. package/src/features/document/feature-package-part.d.ts +14 -0
  155. package/src/features/document/feature-package-part.js +0 -0
  156. package/src/features/document/feature-run-leaf.d.ts +9 -0
  157. package/src/features/document/feature-run-leaf.js +0 -0
  158. package/src/features/document/headers-footers.d.ts +206 -0
  159. package/src/features/document/headers-footers.js +384 -0
  160. package/src/features/document/index.d.ts +41 -0
  161. package/src/features/document/index.js +34 -0
  162. package/src/features/document/length.d.ts +152 -0
  163. package/src/features/document/length.js +245 -0
  164. package/src/features/document/load-options.d.ts +14 -0
  165. package/src/features/document/load-options.js +0 -0
  166. package/src/features/document/locale-ids.d.ts +227 -0
  167. package/src/features/document/locale-ids.js +485 -0
  168. package/src/features/document/on-off.d.ts +9 -0
  169. package/src/features/document/on-off.js +27 -0
  170. package/src/features/document/page-setup.d.ts +339 -0
  171. package/src/features/document/page-setup.js +244 -0
  172. package/src/features/document/paragraph-format.d.ts +880 -0
  173. package/src/features/document/paragraph-format.js +2807 -0
  174. package/src/features/document/paragraph-item-collection.d.ts +162 -0
  175. package/src/features/document/paragraph-item-collection.js +363 -0
  176. package/src/features/document/paragraph-item.d.ts +83 -0
  177. package/src/features/document/paragraph-item.js +103 -0
  178. package/src/features/document/paragraph.d.ts +435 -0
  179. package/src/features/document/paragraph.js +888 -0
  180. package/src/features/document/run.d.ts +1 -0
  181. package/src/features/document/run.js +768 -0
  182. package/src/features/document/section-partition-flatten.d.ts +124 -0
  183. package/src/features/document/section-partition-flatten.js +217 -0
  184. package/src/features/document/section-properties-model.d.ts +13 -0
  185. package/src/features/document/section-properties-model.js +0 -0
  186. package/src/features/document/section.d.ts +93 -0
  187. package/src/features/document/section.js +178 -0
  188. package/src/features/document/sections.d.ts +103 -0
  189. package/src/features/document/sections.js +217 -0
  190. package/src/features/document/sub-super-script.d.ts +23 -0
  191. package/src/features/document/sub-super-script.js +43 -0
  192. package/src/features/document/text-range.d.ts +445 -0
  193. package/src/features/document/text-range.js +1156 -0
  194. package/src/features/document/typed-body-collections.d.ts +162 -0
  195. package/src/features/document/typed-body-collections.js +371 -0
  196. package/src/features/document/underline-style.d.ts +38 -0
  197. package/src/features/document/underline-style.js +126 -0
  198. package/src/features/document/units.d.ts +8 -0
  199. package/src/features/document/units.js +7 -0
  200. package/src/features/document/wml.d.ts +16 -0
  201. package/src/features/document/wml.js +67 -0
  202. package/src/features/drawing/authoring.d.ts +27 -0
  203. package/src/features/drawing/authoring.js +271 -0
  204. package/src/features/drawing/body-pr.d.ts +271 -0
  205. package/src/features/drawing/body-pr.js +663 -0
  206. package/src/features/drawing/drawing-shape.d.ts +1192 -0
  207. package/src/features/drawing/drawing-shape.js +3239 -0
  208. package/src/features/drawing/encode-builders.d.ts +176 -0
  209. package/src/features/drawing/encode-builders.js +390 -0
  210. package/src/features/drawing/fill-format.d.ts +52 -0
  211. package/src/features/drawing/fill-format.js +124 -0
  212. package/src/features/drawing/host-codec.d.ts +632 -0
  213. package/src/features/drawing/host-codec.js +2595 -0
  214. package/src/features/drawing/index.d.ts +13 -0
  215. package/src/features/drawing/index.js +33 -0
  216. package/src/features/drawing/line-format.d.ts +76 -0
  217. package/src/features/drawing/line-format.js +343 -0
  218. package/src/features/drawing/parse-register.d.ts +50 -0
  219. package/src/features/drawing/parse-register.js +257 -0
  220. package/src/features/drawing/residual-utils.d.ts +47 -0
  221. package/src/features/drawing/residual-utils.js +290 -0
  222. package/src/features/drawing/shape-types.d.ts +433 -0
  223. package/src/features/drawing/shape-types.js +437 -0
  224. package/src/features/drawing/sp-pr.d.ts +396 -0
  225. package/src/features/drawing/sp-pr.js +610 -0
  226. package/src/features/drawing/text-frame.d.ts +90 -0
  227. package/src/features/drawing/text-frame.js +152 -0
  228. package/src/features/drawing/types.d.ts +352 -0
  229. package/src/features/drawing/types.js +60 -0
  230. package/src/features/drawing/wrap-format.d.ts +62 -0
  231. package/src/features/drawing/wrap-format.js +114 -0
  232. package/src/features/editable-ranges/index.d.ts +494 -0
  233. package/src/features/editable-ranges/index.js +1348 -0
  234. package/src/features/fields/index.d.ts +428 -0
  235. package/src/features/fields/index.js +2148 -0
  236. package/src/features/fields/paragraph-field.d.ts +187 -0
  237. package/src/features/fields/paragraph-field.js +692 -0
  238. package/src/features/font-table/font-substitution-table.d.ts +75 -0
  239. package/src/features/font-table/font-substitution-table.js +257 -0
  240. package/src/features/font-table/font-table-entry.d.ts +255 -0
  241. package/src/features/font-table/font-table-entry.js +823 -0
  242. package/src/features/font-table/font-table.d.ts +128 -0
  243. package/src/features/font-table/font-table.js +313 -0
  244. package/src/features/font-table/index.d.ts +27 -0
  245. package/src/features/font-table/index.js +48 -0
  246. package/src/features/glossary/index.d.ts +97 -0
  247. package/src/features/glossary/index.js +286 -0
  248. package/src/features/headers-footers/index.d.ts +506 -0
  249. package/src/features/headers-footers/index.js +1666 -0
  250. package/src/features/hyperlinks/index.d.ts +230 -0
  251. package/src/features/hyperlinks/index.js +685 -0
  252. package/src/features/images/caption-authoring-api.d.ts +33 -0
  253. package/src/features/images/caption-authoring-api.js +33 -0
  254. package/src/features/images/caption-enums.d.ts +52 -0
  255. package/src/features/images/caption-enums.js +141 -0
  256. package/src/features/images/caption-host.d.ts +10 -0
  257. package/src/features/images/caption-host.js +21 -0
  258. package/src/features/images/captions.d.ts +13 -0
  259. package/src/features/images/captions.js +142 -0
  260. package/src/features/images/host-codec.d.ts +103 -0
  261. package/src/features/images/host-codec.js +720 -0
  262. package/src/features/images/image-sniff.d.ts +21 -0
  263. package/src/features/images/image-sniff.js +71 -0
  264. package/src/features/images/index.d.ts +506 -0
  265. package/src/features/images/index.js +1429 -0
  266. package/src/features/images/layout-types.d.ts +232 -0
  267. package/src/features/images/layout-types.js +294 -0
  268. package/src/features/images/public-entry.d.ts +9 -0
  269. package/src/features/images/public-entry.js +9 -0
  270. package/src/features/index.d.ts +35 -0
  271. package/src/features/index.js +36 -0
  272. package/src/features/mail-merge/index.d.ts +113 -0
  273. package/src/features/mail-merge/index.js +315 -0
  274. package/src/features/notes/index.d.ts +573 -0
  275. package/src/features/notes/index.js +1725 -0
  276. package/src/features/numbering/abstract-numbering.d.ts +90 -0
  277. package/src/features/numbering/abstract-numbering.js +292 -0
  278. package/src/features/numbering/index.d.ts +182 -0
  279. package/src/features/numbering/index.js +668 -0
  280. package/src/features/numbering/list-format.d.ts +158 -0
  281. package/src/features/numbering/list-format.js +590 -0
  282. package/src/features/numbering/list-string.d.ts +7 -0
  283. package/src/features/numbering/list-string.js +423 -0
  284. package/src/features/numbering/list-style.d.ts +204 -0
  285. package/src/features/numbering/list-style.js +1084 -0
  286. package/src/features/numbering/numbering-instance.d.ts +101 -0
  287. package/src/features/numbering/numbering-instance.js +329 -0
  288. package/src/features/numbering/numbering-level.d.ts +118 -0
  289. package/src/features/numbering/numbering-level.js +501 -0
  290. package/src/features/numbering/picture-bullet.d.ts +34 -0
  291. package/src/features/numbering/picture-bullet.js +88 -0
  292. package/src/features/ole-object/catalog.d.ts +300 -0
  293. package/src/features/ole-object/catalog.js +908 -0
  294. package/src/features/ole-object/index.d.ts +526 -0
  295. package/src/features/ole-object/index.js +1421 -0
  296. package/src/features/ole-object/relationship.d.ts +27 -0
  297. package/src/features/ole-object/relationship.js +27 -0
  298. package/src/features/ole-object/typed-dom.d.ts +186 -0
  299. package/src/features/ole-object/typed-dom.js +595 -0
  300. package/src/features/properties/index.d.ts +205 -0
  301. package/src/features/properties/index.js +549 -0
  302. package/src/features/revisions/index.d.ts +204 -0
  303. package/src/features/revisions/index.js +695 -0
  304. package/src/features/sections/column-collection.d.ts +119 -0
  305. package/src/features/sections/column-collection.js +478 -0
  306. package/src/features/sections/column.d.ts +15 -0
  307. package/src/features/sections/column.js +37 -0
  308. package/src/features/sections/index.d.ts +91 -0
  309. package/src/features/sections/index.js +1096 -0
  310. package/src/features/sections/margins.d.ts +40 -0
  311. package/src/features/sections/margins.js +105 -0
  312. package/src/features/sections/page-number-style.d.ts +21 -0
  313. package/src/features/sections/page-number-style.js +62 -0
  314. package/src/features/sections/page-orientation.d.ts +10 -0
  315. package/src/features/sections/page-orientation.js +10 -0
  316. package/src/features/sections/page-setup.d.ts +435 -0
  317. package/src/features/sections/page-setup.js +1479 -0
  318. package/src/features/sections/page-size.d.ts +59 -0
  319. package/src/features/sections/page-size.js +68 -0
  320. package/src/features/sections/section-break-code.d.ts +27 -0
  321. package/src/features/sections/section-break-code.js +60 -0
  322. package/src/features/sections/section-document-association.d.ts +18 -0
  323. package/src/features/sections/section-document-association.js +31 -0
  324. package/src/features/sections/section-validation.d.ts +43 -0
  325. package/src/features/sections/section-validation.js +97 -0
  326. package/src/features/settings/attached-template.d.ts +35 -0
  327. package/src/features/settings/attached-template.js +98 -0
  328. package/src/features/settings/compat-settings.d.ts +216 -0
  329. package/src/features/settings/compat-settings.js +508 -0
  330. package/src/features/settings/document-background.d.ts +59 -0
  331. package/src/features/settings/document-background.js +131 -0
  332. package/src/features/settings/document-protection.d.ts +65 -0
  333. package/src/features/settings/document-protection.js +157 -0
  334. package/src/features/settings/document-settings-facades.d.ts +108 -0
  335. package/src/features/settings/document-settings-facades.js +312 -0
  336. package/src/features/settings/document-settings-values.d.ts +43 -0
  337. package/src/features/settings/document-settings-values.js +60 -0
  338. package/src/features/settings/footnote-properties.d.ts +211 -0
  339. package/src/features/settings/footnote-properties.js +591 -0
  340. package/src/features/settings/index.d.ts +356 -0
  341. package/src/features/settings/index.js +829 -0
  342. package/src/features/settings/settings-children.d.ts +151 -0
  343. package/src/features/settings/settings-children.js +505 -0
  344. package/src/features/settings/web-settings.d.ts +88 -0
  345. package/src/features/settings/web-settings.js +227 -0
  346. package/src/features/settings/zoom.d.ts +79 -0
  347. package/src/features/settings/zoom.js +147 -0
  348. package/src/features/styles/builtin-catalog.d.ts +159 -0
  349. package/src/features/styles/builtin-catalog.js +963 -0
  350. package/src/features/styles/builtin-resolver.d.ts +49 -0
  351. package/src/features/styles/builtin-resolver.js +165 -0
  352. package/src/features/styles/default-styles.d.ts +37 -0
  353. package/src/features/styles/default-styles.js +186 -0
  354. package/src/features/styles/default-theme.d.ts +13 -0
  355. package/src/features/styles/default-theme.js +13 -0
  356. package/src/features/styles/doc-defaults.d.ts +58 -0
  357. package/src/features/styles/doc-defaults.js +178 -0
  358. package/src/features/styles/formatting-resolver.d.ts +27 -0
  359. package/src/features/styles/formatting-resolver.js +72 -0
  360. package/src/features/styles/index.d.ts +256 -0
  361. package/src/features/styles/index.js +1325 -0
  362. package/src/features/styles/latent-styles.d.ts +68 -0
  363. package/src/features/styles/latent-styles.js +305 -0
  364. package/src/features/styles/paragraph-properties.d.ts +71 -0
  365. package/src/features/styles/paragraph-properties.js +237 -0
  366. package/src/features/styles/run-properties.d.ts +93 -0
  367. package/src/features/styles/run-properties.js +516 -0
  368. package/src/features/styles/style-base.d.ts +402 -0
  369. package/src/features/styles/style-base.js +1026 -0
  370. package/src/features/styles/style-collection.d.ts +264 -0
  371. package/src/features/styles/style-collection.js +714 -0
  372. package/src/features/styles/style-format-bridge.d.ts +64 -0
  373. package/src/features/styles/style-format-bridge.js +100 -0
  374. package/src/features/styles/style.d.ts +84 -0
  375. package/src/features/styles/style.js +375 -0
  376. package/src/features/styles/styles-with-effects.d.ts +71 -0
  377. package/src/features/styles/styles-with-effects.js +180 -0
  378. package/src/features/styles/table-style.d.ts +272 -0
  379. package/src/features/styles/table-style.js +1226 -0
  380. package/src/features/styles/theme.d.ts +126 -0
  381. package/src/features/styles/theme.js +377 -0
  382. package/src/features/tables/border-style-map.d.ts +24 -0
  383. package/src/features/tables/border-style-map.js +81 -0
  384. package/src/features/tables/borders.d.ts +126 -0
  385. package/src/features/tables/borders.js +527 -0
  386. package/src/features/tables/collections.d.ts +113 -0
  387. package/src/features/tables/collections.js +261 -0
  388. package/src/features/tables/format.d.ts +208 -0
  389. package/src/features/tables/format.js +716 -0
  390. package/src/features/tables/index.d.ts +597 -0
  391. package/src/features/tables/index.js +2386 -0
  392. package/src/features/tables/paddings.d.ts +41 -0
  393. package/src/features/tables/paddings.js +97 -0
  394. package/src/features/tables/tbl-pr-positioning.d.ts +27 -0
  395. package/src/features/tables/tbl-pr-positioning.js +178 -0
  396. package/src/features/tables/tbl-pr.d.ts +528 -0
  397. package/src/features/tables/tbl-pr.js +1208 -0
  398. package/src/features/tables/tc-pr.d.ts +168 -0
  399. package/src/features/tables/tc-pr.js +553 -0
  400. package/src/features/tables/tr-pr.d.ts +60 -0
  401. package/src/features/tables/tr-pr.js +215 -0
  402. package/src/features/watermark/detect.d.ts +76 -0
  403. package/src/features/watermark/detect.js +219 -0
  404. package/src/features/watermark/index.d.ts +28 -0
  405. package/src/features/watermark/index.js +91 -0
  406. package/src/features/watermark/logical-store.d.ts +29 -0
  407. package/src/features/watermark/logical-store.js +31 -0
  408. package/src/features/watermark/model.d.ts +285 -0
  409. package/src/features/watermark/model.js +597 -0
  410. package/src/features/watermark/parse.d.ts +84 -0
  411. package/src/features/watermark/parse.js +815 -0
  412. package/src/features/watermark/serialize.d.ts +98 -0
  413. package/src/features/watermark/serialize.js +1517 -0
  414. package/src/global.js +1 -0
  415. package/src/index.d.ts +2 -0
  416. package/src/index.js +2 -0
@@ -0,0 +1,440 @@
1
+ import { DetachedObjectError } from '../../core/errors/docx-error';
2
+ import { bindAltChunkDocument } from './alt-chunk';
3
+ import { bodyItemToBlock, isSupportedBodyItem, projectBlockToBodyItem, } from './body-item-adapters';
4
+ import { Paragraph } from './paragraph';
5
+ function bindDocumentToFeatureBlock(value, document) {
6
+ if (typeof value !== 'object' || value === null || !('bindDocument' in value)) {
7
+ return;
8
+ }
9
+ var bindDocument = value.bindDocument;
10
+ if (typeof bindDocument === 'function') {
11
+ bindDocument.call(value, document);
12
+ }
13
+ }
14
+ function releaseFeatureBlock(value) {
15
+ if (typeof value !== 'object' || value === null || !('releaseContent' in value)) {
16
+ return;
17
+ }
18
+ var release = value.releaseContent;
19
+ if (typeof release === 'function') {
20
+ release.call(value);
21
+ }
22
+ }
23
+ function blocksEqual(a, b) {
24
+ if (a.type !== b.type) {
25
+ return false;
26
+ }
27
+ if (a.type === 'paragraph' && b.type === 'paragraph') {
28
+ return a.paragraph === b.paragraph;
29
+ }
30
+ if (a.type === 'feature' && b.type === 'feature') {
31
+ return a.featureId === b.featureId && a.value === b.value;
32
+ }
33
+ if (a.type === 'opaque' && b.type === 'opaque') {
34
+ return a.xml === b.xml;
35
+ }
36
+ return false;
37
+ }
38
+ function findBlockIndexForBodyItem(blocks, item) {
39
+ for (var i = 0; i < blocks.length; i += 1) {
40
+ var projected = projectBlockToBodyItem(blocks[i]);
41
+ if (projected === item) {
42
+ return i;
43
+ }
44
+ }
45
+ return -1;
46
+ }
47
+ /**
48
+ * Managed mutable collection of public {@link BodyItem} instances for a body.
49
+ *
50
+ * Projects from the body's internal ordered store. Unsupported markup remains
51
+ * in the package but is not listed here. Index access uses own numeric
52
+ * properties (no `Proxy`); identity at a given index is stable across reads.
53
+ *
54
+ * @public
55
+ */
56
+ var BodyItemCollection = /** @class */ (function () {
57
+ /** @private */
58
+ function BodyItemCollection(host) {
59
+ this.cachedLength = 0;
60
+ this.host = host;
61
+ this.rebuildIndexProperties();
62
+ }
63
+ Object.defineProperty(BodyItemCollection.prototype, "count", {
64
+ /**
65
+ * Number of public body items (paragraphs, tables, block content controls).
66
+ */
67
+ get: function () {
68
+ return this.project().length;
69
+ },
70
+ enumerable: true,
71
+ configurable: true
72
+ });
73
+ Object.defineProperty(BodyItemCollection.prototype, "length", {
74
+ /**
75
+ * Alias of {@link count} for array-like consumers (`toHaveLength`, `items.length`).
76
+ */
77
+ get: function () {
78
+ return this.count;
79
+ },
80
+ enumerable: true,
81
+ configurable: true
82
+ });
83
+ /**
84
+ * Append a body item after existing public children.
85
+ *
86
+ * @param item - Paragraph, table, or block content control instance.
87
+ * @returns The same `item` reference.
88
+ * @throws TypeError when `item` is not a supported body item.
89
+ * @throws DetachedObjectError when `item` is already owned.
90
+ */
91
+ BodyItemCollection.prototype.add = function (item) {
92
+ return this.insert(this.count, item);
93
+ };
94
+ /**
95
+ * Insert a body item at a public-items index (`0…count` inclusive).
96
+ *
97
+ * @param index - Insert-before index; `count` appends.
98
+ * @param item - Paragraph, table, or block content control instance.
99
+ * @returns The same `item` reference.
100
+ * @throws RangeError when `index` is outside `0…count`.
101
+ * @throws TypeError when `item` is not a supported body item.
102
+ * @throws DetachedObjectError when `item` is already owned.
103
+ */
104
+ BodyItemCollection.prototype.insert = function (index, item) {
105
+ if (!isSupportedBodyItem(item)) {
106
+ throw new TypeError('BodyItemCollection accepts only Paragraph, Table, or block content control instances');
107
+ }
108
+ var projected = this.project();
109
+ if (index < 0 || index > projected.length) {
110
+ throw new RangeError("Body item index " + String(index) + " is out of range");
111
+ }
112
+ this.assertNotOwned(item);
113
+ var block = bodyItemToBlock(item);
114
+ var raw = this.host.rawBlocks();
115
+ var at = this.rawIndexForPublicInsert(index, projected, raw);
116
+ this.insertRawBlockAt(at, block);
117
+ return item;
118
+ };
119
+ /**
120
+ * Remove a body item by instance identity.
121
+ *
122
+ * @param item - Item currently in this collection.
123
+ * @throws DetachedObjectError when `item` is not in this collection.
124
+ */
125
+ BodyItemCollection.prototype.remove = function (item) {
126
+ var at = findBlockIndexForBodyItem(this.host.rawBlocks(), item);
127
+ if (at === -1) {
128
+ throw new DetachedObjectError('Body item is not in this body');
129
+ }
130
+ this.removeRawBlockAt(at);
131
+ };
132
+ /**
133
+ * Remove the public body item at `index` (`0…count-1`).
134
+ *
135
+ * @throws RangeError when `index` is out of range.
136
+ */
137
+ BodyItemCollection.prototype.removeAt = function (index) {
138
+ var projected = this.project();
139
+ if (index < 0 || index >= projected.length) {
140
+ throw new RangeError("Body item index " + String(index) + " is out of range");
141
+ }
142
+ var item = projected[index];
143
+ var at = findBlockIndexForBodyItem(this.host.rawBlocks(), item);
144
+ if (at === -1) {
145
+ throw new DetachedObjectError('Body item is not in this body');
146
+ }
147
+ this.removeRawBlockAt(at);
148
+ };
149
+ /**
150
+ * Remove all body items (paragraphs, tables, block content controls) and
151
+ * detach/release owned content. Opaque unmodeled blocks are also cleared.
152
+ */
153
+ BodyItemCollection.prototype.clear = function () {
154
+ var raw = this.host.rawBlocks();
155
+ if (raw.length === 0) {
156
+ this.rebuildIndexProperties();
157
+ this.notifyHostBodyItemsChanged();
158
+ return;
159
+ }
160
+ var snapshot = raw.slice();
161
+ this.host.replaceRawBlocks([]);
162
+ for (var i = 0; i < snapshot.length; i += 1) {
163
+ var block = snapshot[i];
164
+ if (block.type === 'paragraph') {
165
+ block.paragraph.detach();
166
+ }
167
+ else if (block.type === 'feature') {
168
+ releaseFeatureBlock(block.value);
169
+ }
170
+ }
171
+ this.rebuildIndexProperties();
172
+ this.notifyHostBodyItemsChanged();
173
+ };
174
+ /**
175
+ * Index of `item` in this collection, or `-1` when absent.
176
+ */
177
+ BodyItemCollection.prototype.indexOf = function (item) {
178
+ var projected = this.project();
179
+ for (var i = 0; i < projected.length; i += 1) {
180
+ if (projected[i] === item) {
181
+ return i;
182
+ }
183
+ }
184
+ return -1;
185
+ };
186
+ /**
187
+ * Snapshot of public body items in order.
188
+ */
189
+ BodyItemCollection.prototype.toArray = function () {
190
+ return this.project();
191
+ };
192
+ /**
193
+ * Invoke `fn` for each public body item.
194
+ */
195
+ BodyItemCollection.prototype.forEach = function (fn) {
196
+ var items = this.project();
197
+ for (var i = 0; i < items.length; i += 1) {
198
+ fn(items[i], i);
199
+ }
200
+ };
201
+ /**
202
+ * True when at least one public body item satisfies `predicate`.
203
+ */
204
+ BodyItemCollection.prototype.some = function (predicate) {
205
+ var items = this.project();
206
+ for (var i = 0; i < items.length; i += 1) {
207
+ if (predicate(items[i], i)) {
208
+ return true;
209
+ }
210
+ }
211
+ return false;
212
+ };
213
+ /**
214
+ * Public body items that satisfy `predicate`.
215
+ */
216
+ BodyItemCollection.prototype.filter = function (predicate) {
217
+ var items = this.project();
218
+ var out = [];
219
+ for (var i = 0; i < items.length; i += 1) {
220
+ var item = items[i];
221
+ if (predicate(item, i)) {
222
+ out.push(item);
223
+ }
224
+ }
225
+ return out;
226
+ };
227
+ /**
228
+ * First public body item that satisfies `predicate`, or `undefined`.
229
+ */
230
+ BodyItemCollection.prototype.find = function (predicate) {
231
+ var items = this.project();
232
+ for (var i = 0; i < items.length; i += 1) {
233
+ var item = items[i];
234
+ if (predicate(item, i)) {
235
+ return item;
236
+ }
237
+ }
238
+ return undefined;
239
+ };
240
+ /**
241
+ * Map public body items with `fn`.
242
+ */
243
+ BodyItemCollection.prototype.map = function (fn) {
244
+ var items = this.project();
245
+ var out = [];
246
+ for (var i = 0; i < items.length; i += 1) {
247
+ out.push(fn(items[i], i));
248
+ }
249
+ return out;
250
+ };
251
+ /**
252
+ * Iterate public body items in document order.
253
+ */
254
+ BodyItemCollection.prototype[Symbol.iterator] = function () {
255
+ var items = this.project();
256
+ var i = 0;
257
+ return {
258
+ next: function () {
259
+ if (i >= items.length) {
260
+ return { done: true, value: undefined };
261
+ }
262
+ var value = items[i];
263
+ i += 1;
264
+ return { done: false, value: value };
265
+ },
266
+ };
267
+ };
268
+ /**
269
+ * @private
270
+ * Refresh numeric index properties after any raw-store mutation outside
271
+ * this collection (load, feature internal hooks).
272
+ */
273
+ BodyItemCollection.prototype.syncFromHost = function () {
274
+ this.rebuildIndexProperties();
275
+ };
276
+ /**
277
+ * @private
278
+ * Insert an internal block at a raw store index (features / load bridge).
279
+ */
280
+ BodyItemCollection.prototype.insertRawBlockAt = function (index, block) {
281
+ var raw = this.host.rawBlocks();
282
+ if (index < 0 || index > raw.length) {
283
+ throw new RangeError("Body item index " + String(index) + " is out of range");
284
+ }
285
+ var document = this.host.owningDocument();
286
+ if (block.type === 'paragraph') {
287
+ block.paragraph.attach(this.host);
288
+ }
289
+ else if (block.type === 'feature') {
290
+ bindDocumentToFeatureBlock(block.value, document);
291
+ }
292
+ var next = raw.slice();
293
+ next.splice(index, 0, block);
294
+ this.host.replaceRawBlocks(next);
295
+ bindAltChunkDocument([block], document);
296
+ this.rebuildIndexProperties();
297
+ this.notifyHostBodyItemsChanged();
298
+ };
299
+ /**
300
+ * @private
301
+ */
302
+ BodyItemCollection.prototype.removeRawBlockAt = function (index) {
303
+ var raw = this.host.rawBlocks();
304
+ if (index < 0 || index >= raw.length) {
305
+ throw new RangeError("Body item index " + String(index) + " is out of range");
306
+ }
307
+ var block = raw[index];
308
+ var next = raw.slice();
309
+ next.splice(index, 1);
310
+ this.host.replaceRawBlocks(next);
311
+ if (block.type === 'paragraph') {
312
+ block.paragraph.detach();
313
+ }
314
+ else if (block.type === 'feature') {
315
+ releaseFeatureBlock(block.value);
316
+ }
317
+ this.rebuildIndexProperties();
318
+ this.notifyHostBodyItemsChanged();
319
+ };
320
+ /**
321
+ * @private
322
+ */
323
+ BodyItemCollection.prototype.appendRawBlock = function (block) {
324
+ this.insertRawBlockAt(this.host.rawBlocks().length, block);
325
+ };
326
+ /**
327
+ * @private
328
+ */
329
+ BodyItemCollection.prototype.indexOfRawBlock = function (block) {
330
+ var raw = this.host.rawBlocks();
331
+ var direct = raw.indexOf(block);
332
+ if (direct !== -1) {
333
+ return direct;
334
+ }
335
+ for (var i = 0; i < raw.length; i += 1) {
336
+ if (blocksEqual(raw[i], block)) {
337
+ return i;
338
+ }
339
+ }
340
+ return -1;
341
+ };
342
+ BodyItemCollection.prototype.project = function () {
343
+ var raw = this.host.rawBlocks();
344
+ var out = [];
345
+ for (var i = 0; i < raw.length; i += 1) {
346
+ var item = projectBlockToBodyItem(raw[i]);
347
+ if (item !== undefined) {
348
+ out.push(item);
349
+ }
350
+ }
351
+ return out;
352
+ };
353
+ BodyItemCollection.prototype.rawIndexForPublicInsert = function (publicIndex, projected, raw) {
354
+ if (publicIndex === projected.length) {
355
+ return raw.length;
356
+ }
357
+ var target = projected[publicIndex];
358
+ var at = findBlockIndexForBodyItem(raw, target);
359
+ if (at === -1) {
360
+ throw new DetachedObjectError('Body item index is inconsistent');
361
+ }
362
+ return at;
363
+ };
364
+ BodyItemCollection.prototype.assertNotOwned = function (item) {
365
+ var raw = this.host.rawBlocks();
366
+ if (findBlockIndexForBodyItem(raw, item) !== -1) {
367
+ throw new DetachedObjectError('Body item is already in this body');
368
+ }
369
+ if (item instanceof Paragraph) {
370
+ try {
371
+ // Attached paragraphs throw when mutate path runs; owningDocument is public-ish.
372
+ var doc = item.owningDocument();
373
+ if (doc !== this.host.owningDocument()) {
374
+ throw new DetachedObjectError('Body item belongs to another document');
375
+ }
376
+ // Same document but not in this body (e.g. nested cell / other section).
377
+ throw new DetachedObjectError('Body item is already attached');
378
+ }
379
+ catch (err) {
380
+ if (err instanceof DetachedObjectError && err.message === 'This paragraph is no longer in a document') {
381
+ return;
382
+ }
383
+ if (err instanceof DetachedObjectError) {
384
+ throw err;
385
+ }
386
+ throw err;
387
+ }
388
+ }
389
+ // Feature instances: detect via bindDocument presence + optional owner probe.
390
+ if (typeof item === 'object' && item !== null && 'owningDocument' in item) {
391
+ var owning = item.owningDocument;
392
+ if (typeof owning === 'function') {
393
+ var owner = void 0;
394
+ try {
395
+ owner = owning.call(item);
396
+ }
397
+ catch (_a) {
398
+ owner = undefined;
399
+ }
400
+ if (owner !== undefined) {
401
+ if (owner !== this.host.owningDocument()) {
402
+ throw new DetachedObjectError('Body item belongs to another document');
403
+ }
404
+ throw new DetachedObjectError('Body item is already attached');
405
+ }
406
+ }
407
+ }
408
+ };
409
+ BodyItemCollection.prototype.rebuildIndexProperties = function () {
410
+ var items = this.project();
411
+ var nextLen = items.length;
412
+ var prevLen = this.cachedLength;
413
+ var limit = prevLen > nextLen ? prevLen : nextLen;
414
+ for (var i = 0; i < limit; i += 1) {
415
+ var key = String(i);
416
+ if (i < nextLen) {
417
+ var value = items[i];
418
+ Object.defineProperty(this, key, {
419
+ value: value,
420
+ writable: false,
421
+ enumerable: true,
422
+ configurable: true,
423
+ });
424
+ }
425
+ else {
426
+ // Remove stale index
427
+ delete this[key];
428
+ }
429
+ }
430
+ this.cachedLength = nextLen;
431
+ };
432
+ BodyItemCollection.prototype.notifyHostBodyItemsChanged = function () {
433
+ var notify = this.host.notifyBodyItemsChanged;
434
+ if (typeof notify === 'function') {
435
+ notify.call(this.host);
436
+ }
437
+ };
438
+ return BodyItemCollection;
439
+ }());
440
+ export { BodyItemCollection };
@@ -0,0 +1,35 @@
1
+ import { Paragraph } from './paragraph';
2
+ /**
3
+ * Structural contract for a modeled table body item (`w:tbl`).
4
+ * Runtime class lives in the tables feature; core never value-imports it.
5
+ *
6
+ * @public
7
+ */
8
+ export interface TableBodyItem {
9
+ readonly rows: {
10
+ readonly length: number;
11
+ };
12
+ }
13
+ /**
14
+ * Structural contract for a modeled block content control (`w:sdt`).
15
+ * Runtime class lives in the content-controls feature; core never value-imports it.
16
+ *
17
+ * @public
18
+ */
19
+ export interface BlockContentControlBodyItem {
20
+ readonly isBlockLevel?: boolean;
21
+ }
22
+ /**
23
+ * Closed public body item — direct instances, not wrapper objects.
24
+ *
25
+ * Supported main-story children only: {@link Paragraph}, table, and block
26
+ * content control. Unsupported markup is preserved off this public list.
27
+ *
28
+ * @public
29
+ */
30
+ export declare type BodyItem = Paragraph | TableBodyItem | BlockContentControlBodyItem;
31
+ /**
32
+ * @private
33
+ * True when `value` is a {@link Paragraph} instance.
34
+ */
35
+ export declare function isParagraphBodyItem(value: unknown): value is Paragraph;
@@ -0,0 +1,8 @@
1
+ import { Paragraph } from './paragraph';
2
+ /**
3
+ * @private
4
+ * True when `value` is a {@link Paragraph} instance.
5
+ */
6
+ export function isParagraphBodyItem(value) {
7
+ return value instanceof Paragraph;
8
+ }
@@ -0,0 +1,150 @@
1
+ import { BodyItemCollection, BodyItemCollectionHost } from './body-item-collection';
2
+ import { BlockContent, Paragraph, ParagraphOwner } from './paragraph';
3
+ import { ParagraphCollection } from './typed-body-collections';
4
+ import { WordDocument } from './document';
5
+ import { Section } from './section';
6
+ /**
7
+ * Section body (`w:body` story content for one section).
8
+ *
9
+ * Collection owner only: mutate through {@link Body.items}
10
+ * ({@link BodyItemCollection}). The internal ordered store holds
11
+ * {@link BlockContent} wrappers for parse/serialize; the public collection
12
+ * projects {@link import('./body-item').BodyItem} instances.
13
+ *
14
+ * Temporary bridges until TASK-8076: {@link Body.paragraphs},
15
+ * {@link Body.appendParagraph}. Prefer {@link Body.items} for insert/remove.
16
+ *
17
+ * @public
18
+ */
19
+ export declare class Body implements BodyItemCollectionHost, ParagraphOwner {
20
+ private itemList;
21
+ private readonly itemsInstance;
22
+ private readonly paragraphsInstance;
23
+ private section;
24
+ private document;
25
+ /**
26
+ * @private
27
+ */
28
+ constructor(document: WordDocument | undefined, items?: ReadonlyArray<BlockContent>, section?: Section);
29
+ /**
30
+ * Managed mutable collection of public body items (paragraphs, tables,
31
+ * block content controls). Same instance on every access.
32
+ */
33
+ readonly items: BodyItemCollection;
34
+ /**
35
+ * Paragraphs in this body (filtered view over {@link Body.items}).
36
+ *
37
+ * Temporary bridge until TASK-8076 — prefer {@link Section.paragraphs}
38
+ * when using the sections spine.
39
+ */
40
+ readonly paragraphs: ParagraphCollection;
41
+ /**
42
+ * @private
43
+ * Owning section when this body is attached under a {@link Section}.
44
+ */
45
+ owningSection(): Section | undefined;
46
+ /**
47
+ * @private
48
+ */
49
+ setOwningSection(section: Section | undefined): void;
50
+ /**
51
+ * @private
52
+ */
53
+ setOwningDocument(document: WordDocument | undefined): void;
54
+ /**
55
+ * @private
56
+ * Document that owns this body (via section or direct bind during load).
57
+ */
58
+ owningDocument(): WordDocument;
59
+ /**
60
+ * @private
61
+ */
62
+ rawBlocks(): BlockContent[];
63
+ /**
64
+ * @private
65
+ */
66
+ replaceRawBlocks(blocks: ReadonlyArray<BlockContent>): void;
67
+ /**
68
+ * @private
69
+ */
70
+ assertAttachedParagraph(target: Paragraph): void;
71
+ /**
72
+ * @private
73
+ * Full internal store (paragraphs, features, opaque) for serialize/load.
74
+ */
75
+ listBlocks(): ReadonlyArray<BlockContent>;
76
+ /**
77
+ * @private
78
+ * Replace the entire internal store (load / section partition helpers).
79
+ */
80
+ replaceItems(items: ReadonlyArray<BlockContent>): void;
81
+ /**
82
+ * @private
83
+ * Append an internal block (feature/load bridge — not a public Body mutator).
84
+ * Typed views refresh via {@link notifyBodyItemsChanged} from the item collection.
85
+ */
86
+ appendRawBlock(block: BlockContent): void;
87
+ /**
88
+ * @private
89
+ */
90
+ insertRawBlockAt(index: number, block: BlockContent): void;
91
+ /**
92
+ * @private
93
+ */
94
+ removeRawBlockAt(index: number): void;
95
+ /**
96
+ * @private
97
+ * Paragraph instances in store order (internal bridge).
98
+ */
99
+ listParagraphs(): ReadonlyArray<Paragraph>;
100
+ /**
101
+ * Appends an empty `w:p` after existing body children (before preserved `sectPr`).
102
+ *
103
+ * Temporary bridge until TASK-8076.
104
+ *
105
+ * @param options - Optional paragraph style id and/or initial text.
106
+ * @returns The appended {@link Paragraph}.
107
+ */
108
+ appendParagraph(options?: {
109
+ readonly style?: string;
110
+ readonly text?: string;
111
+ }): Paragraph;
112
+ /**
113
+ * Inserts an empty paragraph among existing paragraphs.
114
+ *
115
+ * @private
116
+ * Not part of the customer Body surface (API-RULES). Prefer
117
+ * {@link Body.items} or {@link Body.paragraphs} collection verbs.
118
+ *
119
+ * @param index - Index in {@link Body.paragraphs}, `0…count` inclusive.
120
+ * @throws RangeError if `index` is out of range.
121
+ */
122
+ insertParagraph(index: number): Paragraph;
123
+ /**
124
+ * Removes a paragraph. Further mutation of it throws {@link DetachedObjectError}.
125
+ *
126
+ * @private
127
+ * Not part of the customer Body surface (API-RULES). Prefer
128
+ * {@link Body.items} or {@link Body.paragraphs} collection verbs.
129
+ */
130
+ removeParagraph(paragraph: Paragraph): void;
131
+ /**
132
+ * @private
133
+ * Refresh typed views after raw mutations that bypass Body helpers.
134
+ */
135
+ syncParagraphs(): void;
136
+ /**
137
+ * @private
138
+ * Invoked by {@link BodyItemCollection} after public/raw item mutations so
139
+ * body paragraphs and section typed views stay aligned with `items`.
140
+ */
141
+ notifyBodyItemsChanged(): void;
142
+ /**
143
+ * @private
144
+ * Rebuild body paragraph indexes and, when this body is a section main
145
+ * story, section typed views (`paragraphs` / `tables` / block CCs).
146
+ * Cell bodies (`TableCell extends Body`) have no owning section — only
147
+ * local paragraphs refresh.
148
+ */
149
+ private syncTypedViews;
150
+ }