@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,68 @@
1
+ import { OpenXmlAttribute, OpenXmlElement } from '../../core/xml/index';
2
+ /**
3
+ * One `w:lsdException` entry under `w:latentStyles` (`CT_LsdException`).
4
+ *
5
+ * @private
6
+ */
7
+ export declare class LsdException {
8
+ private readonly nameValue;
9
+ private readonly lockedValue;
10
+ private readonly uiPriorityValue;
11
+ private readonly semiHiddenValue;
12
+ private readonly unhideWhenUsedValue;
13
+ private readonly qFormatValue;
14
+ private readonly extraAttributes;
15
+ /**
16
+ * @private
17
+ */
18
+ constructor(name: string, locked: boolean | undefined, uiPriority: number | undefined, semiHidden: boolean | undefined, unhideWhenUsed: boolean | undefined, qFormat: boolean | undefined, extraAttributes?: OpenXmlAttribute[]);
19
+ /** `w:lsdException/@w:name` (required). */
20
+ readonly name: string;
21
+ readonly locked: boolean | undefined;
22
+ readonly uiPriority: number | undefined;
23
+ readonly semiHidden: boolean | undefined;
24
+ readonly unhideWhenUsed: boolean | undefined;
25
+ readonly qFormat: boolean | undefined;
26
+ /**
27
+ * @private
28
+ */
29
+ serialize(): OpenXmlElement;
30
+ }
31
+ /**
32
+ * Latent style information (`w:latentStyles` / `CT_LatentStyles`).
33
+ *
34
+ * @private
35
+ */
36
+ export declare class LatentStyles {
37
+ private readonly defLockedStateValue;
38
+ private readonly defUIPriorityValue;
39
+ private readonly defSemiHiddenValue;
40
+ private readonly defUnhideWhenUsedValue;
41
+ private readonly defQFormatValue;
42
+ private readonly countValue;
43
+ private readonly exceptionsList;
44
+ private readonly extraAttributes;
45
+ private readonly extras;
46
+ /**
47
+ * @private
48
+ */
49
+ constructor(defLockedState: boolean | undefined, defUIPriority: number | undefined, defSemiHidden: boolean | undefined, defUnhideWhenUsed: boolean | undefined, defQFormat: boolean | undefined, count: number | undefined, exceptions: LsdException[], extraAttributes?: OpenXmlAttribute[], extras?: OpenXmlElement[]);
50
+ readonly defLockedState: boolean | undefined;
51
+ readonly defUIPriority: number | undefined;
52
+ readonly defSemiHidden: boolean | undefined;
53
+ readonly defUnhideWhenUsed: boolean | undefined;
54
+ readonly defQFormat: boolean | undefined;
55
+ readonly count: number | undefined;
56
+ /** Ordered `w:lsdException` entries. */
57
+ readonly exceptions: ReadonlyArray<LsdException>;
58
+ /**
59
+ * @private
60
+ */
61
+ serialize(): OpenXmlElement;
62
+ }
63
+ /**
64
+ * Parse `w:latentStyles` into {@link LatentStyles}.
65
+ *
66
+ * @private
67
+ */
68
+ export declare function parseLatentStyles(element: OpenXmlElement): LatentStyles | undefined;
@@ -0,0 +1,305 @@
1
+ var __read = (this && this.__read) || function (o, n) {
2
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
3
+ if (!m) return o;
4
+ var i = m.call(o), r, ar = [], e;
5
+ try {
6
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
7
+ }
8
+ catch (error) { e = { error: error }; }
9
+ finally {
10
+ try {
11
+ if (r && !r.done && (m = i["return"])) m.call(i);
12
+ }
13
+ finally { if (e) throw e.error; }
14
+ }
15
+ return ar;
16
+ };
17
+ var __spread = (this && this.__spread) || function () {
18
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
19
+ return ar;
20
+ };
21
+ var __values = (this && this.__values) || function (o) {
22
+ var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
23
+ if (m) return m.call(o);
24
+ return {
25
+ next: function () {
26
+ if (o && i >= o.length) o = void 0;
27
+ return { value: o && o[i++], done: !o };
28
+ }
29
+ };
30
+ };
31
+ import { elementChildren, isWml, wmlAttr, wmlElement, WML, } from '../document/wml';
32
+ /**
33
+ * One `w:lsdException` entry under `w:latentStyles` (`CT_LsdException`).
34
+ *
35
+ * @private
36
+ */
37
+ var LsdException = /** @class */ (function () {
38
+ /**
39
+ * @private
40
+ */
41
+ function LsdException(name, locked, uiPriority, semiHidden, unhideWhenUsed, qFormat, extraAttributes) {
42
+ if (extraAttributes === void 0) { extraAttributes = []; }
43
+ this.nameValue = name;
44
+ this.lockedValue = locked;
45
+ this.uiPriorityValue = uiPriority;
46
+ this.semiHiddenValue = semiHidden;
47
+ this.unhideWhenUsedValue = unhideWhenUsed;
48
+ this.qFormatValue = qFormat;
49
+ this.extraAttributes = extraAttributes;
50
+ }
51
+ Object.defineProperty(LsdException.prototype, "name", {
52
+ /** `w:lsdException/@w:name` (required). */
53
+ get: function () {
54
+ return this.nameValue;
55
+ },
56
+ enumerable: true,
57
+ configurable: true
58
+ });
59
+ Object.defineProperty(LsdException.prototype, "locked", {
60
+ get: function () {
61
+ return this.lockedValue;
62
+ },
63
+ enumerable: true,
64
+ configurable: true
65
+ });
66
+ Object.defineProperty(LsdException.prototype, "uiPriority", {
67
+ get: function () {
68
+ return this.uiPriorityValue;
69
+ },
70
+ enumerable: true,
71
+ configurable: true
72
+ });
73
+ Object.defineProperty(LsdException.prototype, "semiHidden", {
74
+ get: function () {
75
+ return this.semiHiddenValue;
76
+ },
77
+ enumerable: true,
78
+ configurable: true
79
+ });
80
+ Object.defineProperty(LsdException.prototype, "unhideWhenUsed", {
81
+ get: function () {
82
+ return this.unhideWhenUsedValue;
83
+ },
84
+ enumerable: true,
85
+ configurable: true
86
+ });
87
+ Object.defineProperty(LsdException.prototype, "qFormat", {
88
+ get: function () {
89
+ return this.qFormatValue;
90
+ },
91
+ enumerable: true,
92
+ configurable: true
93
+ });
94
+ /**
95
+ * @private
96
+ */
97
+ LsdException.prototype.serialize = function () {
98
+ var attributes = __spread([wmlAttr('name', this.nameValue)], this.extraAttributes);
99
+ if (this.lockedValue !== undefined) {
100
+ attributes.push(wmlAttr('locked', this.lockedValue ? '1' : '0'));
101
+ }
102
+ if (this.uiPriorityValue !== undefined) {
103
+ attributes.push(wmlAttr('uiPriority', String(this.uiPriorityValue)));
104
+ }
105
+ if (this.semiHiddenValue !== undefined) {
106
+ attributes.push(wmlAttr('semiHidden', this.semiHiddenValue ? '1' : '0'));
107
+ }
108
+ if (this.unhideWhenUsedValue !== undefined) {
109
+ attributes.push(wmlAttr('unhideWhenUsed', this.unhideWhenUsedValue ? '1' : '0'));
110
+ }
111
+ if (this.qFormatValue !== undefined) {
112
+ attributes.push(wmlAttr('qFormat', this.qFormatValue ? '1' : '0'));
113
+ }
114
+ return wmlElement('lsdException', { attributes: attributes });
115
+ };
116
+ return LsdException;
117
+ }());
118
+ export { LsdException };
119
+ /**
120
+ * Latent style information (`w:latentStyles` / `CT_LatentStyles`).
121
+ *
122
+ * @private
123
+ */
124
+ var LatentStyles = /** @class */ (function () {
125
+ /**
126
+ * @private
127
+ */
128
+ function LatentStyles(defLockedState, defUIPriority, defSemiHidden, defUnhideWhenUsed, defQFormat, count, exceptions, extraAttributes, extras) {
129
+ if (extraAttributes === void 0) { extraAttributes = []; }
130
+ if (extras === void 0) { extras = []; }
131
+ this.defLockedStateValue = defLockedState;
132
+ this.defUIPriorityValue = defUIPriority;
133
+ this.defSemiHiddenValue = defSemiHidden;
134
+ this.defUnhideWhenUsedValue = defUnhideWhenUsed;
135
+ this.defQFormatValue = defQFormat;
136
+ this.countValue = count;
137
+ this.exceptionsList = exceptions;
138
+ this.extraAttributes = extraAttributes;
139
+ this.extras = extras;
140
+ }
141
+ Object.defineProperty(LatentStyles.prototype, "defLockedState", {
142
+ get: function () {
143
+ return this.defLockedStateValue;
144
+ },
145
+ enumerable: true,
146
+ configurable: true
147
+ });
148
+ Object.defineProperty(LatentStyles.prototype, "defUIPriority", {
149
+ get: function () {
150
+ return this.defUIPriorityValue;
151
+ },
152
+ enumerable: true,
153
+ configurable: true
154
+ });
155
+ Object.defineProperty(LatentStyles.prototype, "defSemiHidden", {
156
+ get: function () {
157
+ return this.defSemiHiddenValue;
158
+ },
159
+ enumerable: true,
160
+ configurable: true
161
+ });
162
+ Object.defineProperty(LatentStyles.prototype, "defUnhideWhenUsed", {
163
+ get: function () {
164
+ return this.defUnhideWhenUsedValue;
165
+ },
166
+ enumerable: true,
167
+ configurable: true
168
+ });
169
+ Object.defineProperty(LatentStyles.prototype, "defQFormat", {
170
+ get: function () {
171
+ return this.defQFormatValue;
172
+ },
173
+ enumerable: true,
174
+ configurable: true
175
+ });
176
+ Object.defineProperty(LatentStyles.prototype, "count", {
177
+ get: function () {
178
+ return this.countValue;
179
+ },
180
+ enumerable: true,
181
+ configurable: true
182
+ });
183
+ Object.defineProperty(LatentStyles.prototype, "exceptions", {
184
+ /** Ordered `w:lsdException` entries. */
185
+ get: function () {
186
+ return this.exceptionsList;
187
+ },
188
+ enumerable: true,
189
+ configurable: true
190
+ });
191
+ /**
192
+ * @private
193
+ */
194
+ LatentStyles.prototype.serialize = function () {
195
+ var attributes = __spread(this.extraAttributes);
196
+ if (this.defLockedStateValue !== undefined) {
197
+ attributes.push(wmlAttr('defLockedState', this.defLockedStateValue ? '1' : '0'));
198
+ }
199
+ if (this.defUIPriorityValue !== undefined) {
200
+ attributes.push(wmlAttr('defUIPriority', String(this.defUIPriorityValue)));
201
+ }
202
+ if (this.defSemiHiddenValue !== undefined) {
203
+ attributes.push(wmlAttr('defSemiHidden', this.defSemiHiddenValue ? '1' : '0'));
204
+ }
205
+ if (this.defUnhideWhenUsedValue !== undefined) {
206
+ attributes.push(wmlAttr('defUnhideWhenUsed', this.defUnhideWhenUsedValue ? '1' : '0'));
207
+ }
208
+ if (this.defQFormatValue !== undefined) {
209
+ attributes.push(wmlAttr('defQFormat', this.defQFormatValue ? '1' : '0'));
210
+ }
211
+ if (this.countValue !== undefined) {
212
+ attributes.push(wmlAttr('count', String(this.countValue)));
213
+ }
214
+ var children = this.exceptionsList.map(function (item) { return item.serialize(); });
215
+ children.push.apply(children, __spread(this.extras));
216
+ return wmlElement('latentStyles', { attributes: attributes, children: children });
217
+ };
218
+ return LatentStyles;
219
+ }());
220
+ export { LatentStyles };
221
+ function wmlAttribute(el, localName) {
222
+ var __ts33_0;
223
+ return ((__ts33_0 = el.attributes.find(function (a) { return a.localName === localName && (a.namespaceUri === WML || a.namespaceUri === ''); })), __ts33_0 == null ? undefined : __ts33_0.value);
224
+ }
225
+ function parseOnOffAttribute(raw) {
226
+ if (raw === undefined) {
227
+ return undefined;
228
+ }
229
+ var normalized = raw.trim().toLowerCase();
230
+ if (normalized === '' || normalized === 'true' || normalized === '1' || normalized === 'on') {
231
+ return true;
232
+ }
233
+ if (normalized === 'false' || normalized === '0' || normalized === 'off') {
234
+ return false;
235
+ }
236
+ return undefined;
237
+ }
238
+ function parseDecimalAttribute(raw) {
239
+ if (raw === undefined || !/^-?\d+$/.test(raw.trim())) {
240
+ return undefined;
241
+ }
242
+ return parseInt(raw.trim(), 10);
243
+ }
244
+ function parseLsdException(element) {
245
+ if (!isWml(element, 'lsdException')) {
246
+ return undefined;
247
+ }
248
+ var name = wmlAttribute(element, 'name');
249
+ if (name === undefined || name.length === 0) {
250
+ return undefined;
251
+ }
252
+ var known = new Set([
253
+ 'name',
254
+ 'locked',
255
+ 'uiPriority',
256
+ 'semiHidden',
257
+ 'unhideWhenUsed',
258
+ 'qFormat',
259
+ ]);
260
+ var extraAttributes = element.attributes.filter(function (a) { return !(known.has(a.localName) && (a.namespaceUri === WML || a.namespaceUri === '')); });
261
+ return new LsdException(name, parseOnOffAttribute(wmlAttribute(element, 'locked')), parseDecimalAttribute(wmlAttribute(element, 'uiPriority')), parseOnOffAttribute(wmlAttribute(element, 'semiHidden')), parseOnOffAttribute(wmlAttribute(element, 'unhideWhenUsed')), parseOnOffAttribute(wmlAttribute(element, 'qFormat')), extraAttributes);
262
+ }
263
+ /**
264
+ * Parse `w:latentStyles` into {@link LatentStyles}.
265
+ *
266
+ * @private
267
+ */
268
+ export function parseLatentStyles(element) {
269
+ var e_1, _a;
270
+ if (!isWml(element, 'latentStyles')) {
271
+ return undefined;
272
+ }
273
+ var knownRoot = new Set([
274
+ 'defLockedState',
275
+ 'defUIPriority',
276
+ 'defSemiHidden',
277
+ 'defUnhideWhenUsed',
278
+ 'defQFormat',
279
+ 'count',
280
+ ]);
281
+ var extraAttributes = element.attributes.filter(function (a) { return !(knownRoot.has(a.localName) && (a.namespaceUri === WML || a.namespaceUri === '')); });
282
+ var exceptions = [];
283
+ var extras = [];
284
+ try {
285
+ for (var _b = __values(elementChildren(element)), _c = _b.next(); !_c.done; _c = _b.next()) {
286
+ var child = _c.value;
287
+ if (isWml(child, 'lsdException')) {
288
+ var entry = parseLsdException(child);
289
+ if (entry !== undefined) {
290
+ exceptions.push(entry);
291
+ }
292
+ continue;
293
+ }
294
+ extras.push(child);
295
+ }
296
+ }
297
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
298
+ finally {
299
+ try {
300
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
301
+ }
302
+ finally { if (e_1) throw e_1.error; }
303
+ }
304
+ return new LatentStyles(parseOnOffAttribute(wmlAttribute(element, 'defLockedState')), parseDecimalAttribute(wmlAttribute(element, 'defUIPriority')), parseOnOffAttribute(wmlAttribute(element, 'defSemiHidden')), parseOnOffAttribute(wmlAttribute(element, 'defUnhideWhenUsed')), parseOnOffAttribute(wmlAttribute(element, 'defQFormat')), parseDecimalAttribute(wmlAttribute(element, 'count')), exceptions, extraAttributes, extras);
305
+ }
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Modeled paragraph properties subset for styles `w:pPr` / `w:pPrDefault`.
3
+ *
4
+ * Spacing and indentation lengths are plain point `number`s. Codecs delegate to
5
+ * {@link parseParagraphSpacingPoints} / {@link parseParagraphIndentationPoints}
6
+ * and their serialize counterparts on `paragraph-format` (TASK-9020-D shared
7
+ * ownership with body `w:pPr`).
8
+ *
9
+ * Citation: ECMA-376-1 §17.3.1 `w:pPr` children — `w:keepNext` (§17.3.1.14),
10
+ * `w:keepLines` (§17.3.1.15), `w:pageBreakBefore` (§17.3.1.17),
11
+ * `w:widowControl` (§17.3.1.29), `w:spacing` (§17.3.1.33), `w:ind`
12
+ * (§17.3.1.12), `w:contextualSpacing` (§17.3.1.8), `w:outlineLvl`
13
+ * (§17.3.1.31 `CT_DecimalNumber`, zero-based); Transitional `wml.xsd`
14
+ * `CT_PPrBase`, `CT_Ind`, `CT_Spacing`; Word fixture
15
+ * `input-documents/Sample_With_All_word_Element.docx` (`w:pPrDefault/w:pPr/w:spacing`).
16
+ */
17
+ import { ParagraphIndentation, ParagraphSpacing } from '../document/paragraph-format';
18
+ import { OpenXmlElement } from '../../core/xml/index';
19
+ /**
20
+ * Modeled paragraph properties extracted from a `w:pPr` element.
21
+ *
22
+ * @private
23
+ */
24
+ export interface ModeledParagraphProperties {
25
+ readonly spacing: ParagraphSpacing | undefined;
26
+ readonly indentation: ParagraphIndentation | undefined;
27
+ readonly keepNext: boolean | undefined;
28
+ readonly keepLines: boolean | undefined;
29
+ readonly pageBreakBefore: boolean | undefined;
30
+ readonly widowControl: boolean | undefined;
31
+ readonly contextualSpacing: boolean | undefined;
32
+ /** `w:outlineLvl`, zero-based (0 = Heading 1 … 8 = Heading 9). */
33
+ readonly outlineLevel: number | undefined;
34
+ }
35
+ export declare const EMPTY_MODELED_PARAGRAPH_PROPERTIES: ModeledParagraphProperties;
36
+ /**
37
+ * Parse `w:spacing` attributes into {@link ParagraphSpacing}.
38
+ *
39
+ * Delegates to {@link parseParagraphSpacingPoints} (shared with body pPr).
40
+ *
41
+ * @private
42
+ */
43
+ export declare function parseParagraphSpacing(el: OpenXmlElement): ParagraphSpacing | undefined;
44
+ /**
45
+ * Parse modeled paragraph properties from a `w:pPr` element.
46
+ *
47
+ * @private
48
+ */
49
+ export declare function parseModeledParagraphProperties(pPr: OpenXmlElement | undefined): ModeledParagraphProperties;
50
+ /**
51
+ * Merge two modeled paragraph property layers (`base` ← `override`).
52
+ * `override` fields win when defined; spacing and indentation merge
53
+ * attribute-by-attribute.
54
+ *
55
+ * @private
56
+ */
57
+ export declare function mergeModeledParagraphProperties(base: ModeledParagraphProperties, override: ModeledParagraphProperties): ModeledParagraphProperties;
58
+ /**
59
+ * Serialize modeled paragraph properties into a `w:pPr` element.
60
+ *
61
+ * Emits only defined fields, in `CT_PPrBase` sequence order
62
+ * (keepNext → keepLines → pageBreakBefore → widowControl → spacing → ind →
63
+ * contextualSpacing → outlineLvl). Returns `undefined` when no modeled
64
+ * property is set — callers must not write empty payload containers.
65
+ *
66
+ * Spacing / ind materialize via {@link serializeParagraphSpacingPoints} /
67
+ * {@link serializeParagraphIndentationPoints} (shared body codecs).
68
+ *
69
+ * @private
70
+ */
71
+ export declare function serializeModeledParagraphProperties(properties: ModeledParagraphProperties): OpenXmlElement | undefined;
@@ -0,0 +1,237 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __values = (this && this.__values) || function (o) {
13
+ var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
14
+ if (m) return m.call(o);
15
+ return {
16
+ next: function () {
17
+ if (o && i >= o.length) o = void 0;
18
+ return { value: o && o[i++], done: !o };
19
+ }
20
+ };
21
+ };
22
+ /**
23
+ * Modeled paragraph properties subset for styles `w:pPr` / `w:pPrDefault`.
24
+ *
25
+ * Spacing and indentation lengths are plain point `number`s. Codecs delegate to
26
+ * {@link parseParagraphSpacingPoints} / {@link parseParagraphIndentationPoints}
27
+ * and their serialize counterparts on `paragraph-format` (TASK-9020-D shared
28
+ * ownership with body `w:pPr`).
29
+ *
30
+ * Citation: ECMA-376-1 §17.3.1 `w:pPr` children — `w:keepNext` (§17.3.1.14),
31
+ * `w:keepLines` (§17.3.1.15), `w:pageBreakBefore` (§17.3.1.17),
32
+ * `w:widowControl` (§17.3.1.29), `w:spacing` (§17.3.1.33), `w:ind`
33
+ * (§17.3.1.12), `w:contextualSpacing` (§17.3.1.8), `w:outlineLvl`
34
+ * (§17.3.1.31 `CT_DecimalNumber`, zero-based); Transitional `wml.xsd`
35
+ * `CT_PPrBase`, `CT_Ind`, `CT_Spacing`; Word fixture
36
+ * `input-documents/Sample_With_All_word_Element.docx` (`w:pPrDefault/w:pPr/w:spacing`).
37
+ */
38
+ import { parseParagraphIndentationPoints, parseParagraphSpacingPoints, serializeParagraphIndentationPoints, serializeParagraphSpacingPoints, } from '../document/paragraph-format';
39
+ import { parseOnOff, serializeOnOff } from '../document/on-off';
40
+ import { elementChildren, isWml, wmlAttr, wmlElement, WML, } from '../document/wml';
41
+ export var EMPTY_MODELED_PARAGRAPH_PROPERTIES = {
42
+ spacing: undefined,
43
+ indentation: undefined,
44
+ keepNext: undefined,
45
+ keepLines: undefined,
46
+ pageBreakBefore: undefined,
47
+ widowControl: undefined,
48
+ contextualSpacing: undefined,
49
+ outlineLevel: undefined,
50
+ };
51
+ function wmlAttrVal(el, localName) {
52
+ var found = el.attributes.find(function (attribute) { return attribute.localName === localName &&
53
+ (attribute.namespaceUri === WML || attribute.namespaceUri === ''); });
54
+ return found == null ? undefined : found.value;
55
+ }
56
+ /**
57
+ * Parse `w:spacing` attributes into {@link ParagraphSpacing}.
58
+ *
59
+ * Delegates to {@link parseParagraphSpacingPoints} (shared with body pPr).
60
+ *
61
+ * @private
62
+ */
63
+ export function parseParagraphSpacing(el) {
64
+ return parseParagraphSpacingPoints(el);
65
+ }
66
+ /**
67
+ * Parse modeled paragraph properties from a `w:pPr` element.
68
+ *
69
+ * @private
70
+ */
71
+ export function parseModeledParagraphProperties(pPr) {
72
+ var e_1, _a;
73
+ if (pPr === undefined || !isWml(pPr, 'pPr')) {
74
+ return EMPTY_MODELED_PARAGRAPH_PROPERTIES;
75
+ }
76
+ var spacing;
77
+ var indentation;
78
+ var keepNext;
79
+ var keepLines;
80
+ var pageBreakBefore;
81
+ var widowControl;
82
+ var contextualSpacing;
83
+ var outlineLevel;
84
+ try {
85
+ for (var _b = __values(elementChildren(pPr)), _c = _b.next(); !_c.done; _c = _b.next()) {
86
+ var child = _c.value;
87
+ if (!isWml(child, child.localName)) {
88
+ continue;
89
+ }
90
+ switch (child.localName) {
91
+ case 'spacing':
92
+ spacing = parseParagraphSpacingPoints(child);
93
+ continue;
94
+ case 'ind':
95
+ indentation = parseParagraphIndentationPoints(child);
96
+ continue;
97
+ case 'keepNext': {
98
+ var flag = parseOnOff(child);
99
+ if (flag !== undefined) {
100
+ keepNext = flag;
101
+ }
102
+ continue;
103
+ }
104
+ case 'keepLines': {
105
+ var flag = parseOnOff(child);
106
+ if (flag !== undefined) {
107
+ keepLines = flag;
108
+ }
109
+ continue;
110
+ }
111
+ case 'pageBreakBefore': {
112
+ var flag = parseOnOff(child);
113
+ if (flag !== undefined) {
114
+ pageBreakBefore = flag;
115
+ }
116
+ continue;
117
+ }
118
+ case 'widowControl': {
119
+ var flag = parseOnOff(child);
120
+ if (flag !== undefined) {
121
+ widowControl = flag;
122
+ }
123
+ continue;
124
+ }
125
+ case 'contextualSpacing': {
126
+ var flag = parseOnOff(child);
127
+ if (flag !== undefined) {
128
+ contextualSpacing = flag;
129
+ }
130
+ continue;
131
+ }
132
+ case 'outlineLvl': {
133
+ var raw = wmlAttrVal(child, 'val');
134
+ if (raw !== undefined && /^\d$/.test(raw)) {
135
+ var level = parseInt(raw, 10);
136
+ if (level >= 0 && level <= 8) {
137
+ outlineLevel = level;
138
+ }
139
+ }
140
+ continue;
141
+ }
142
+ default:
143
+ continue;
144
+ }
145
+ }
146
+ }
147
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
148
+ finally {
149
+ try {
150
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
151
+ }
152
+ finally { if (e_1) throw e_1.error; }
153
+ }
154
+ return {
155
+ spacing: spacing,
156
+ indentation: indentation,
157
+ keepNext: keepNext,
158
+ keepLines: keepLines,
159
+ pageBreakBefore: pageBreakBefore,
160
+ widowControl: widowControl,
161
+ contextualSpacing: contextualSpacing,
162
+ outlineLevel: outlineLevel,
163
+ };
164
+ }
165
+ function mergeFlag(base, override) {
166
+ return override !== undefined ? override : base;
167
+ }
168
+ /**
169
+ * Merge two modeled paragraph property layers (`base` ← `override`).
170
+ * `override` fields win when defined; spacing and indentation merge
171
+ * attribute-by-attribute.
172
+ *
173
+ * @private
174
+ */
175
+ export function mergeModeledParagraphProperties(base, override) {
176
+ var spacing = override.spacing !== undefined || base.spacing !== undefined
177
+ ? __assign({}, (base.spacing != null ? base.spacing : {}), (override.spacing != null ? override.spacing : {})) : undefined;
178
+ var indentation = override.indentation !== undefined || base.indentation !== undefined
179
+ ? __assign({}, (base.indentation != null ? base.indentation : {}), (override.indentation != null ? override.indentation : {})) : undefined;
180
+ return {
181
+ spacing: spacing,
182
+ indentation: indentation,
183
+ keepNext: mergeFlag(base.keepNext, override.keepNext),
184
+ keepLines: mergeFlag(base.keepLines, override.keepLines),
185
+ pageBreakBefore: mergeFlag(base.pageBreakBefore, override.pageBreakBefore),
186
+ widowControl: mergeFlag(base.widowControl, override.widowControl),
187
+ contextualSpacing: mergeFlag(base.contextualSpacing, override.contextualSpacing),
188
+ outlineLevel: override.outlineLevel !== undefined ? override.outlineLevel : base.outlineLevel,
189
+ };
190
+ }
191
+ // ---------------------------------------------------------------------------
192
+ // Serialization (typed fields → w:pPr children, CT_PPrBase sequence order)
193
+ // ---------------------------------------------------------------------------
194
+ /**
195
+ * Serialize modeled paragraph properties into a `w:pPr` element.
196
+ *
197
+ * Emits only defined fields, in `CT_PPrBase` sequence order
198
+ * (keepNext → keepLines → pageBreakBefore → widowControl → spacing → ind →
199
+ * contextualSpacing → outlineLvl). Returns `undefined` when no modeled
200
+ * property is set — callers must not write empty payload containers.
201
+ *
202
+ * Spacing / ind materialize via {@link serializeParagraphSpacingPoints} /
203
+ * {@link serializeParagraphIndentationPoints} (shared body codecs).
204
+ *
205
+ * @private
206
+ */
207
+ export function serializeModeledParagraphProperties(properties) {
208
+ var children = [];
209
+ if (properties.keepNext !== undefined) {
210
+ children.push(serializeOnOff('keepNext', properties.keepNext));
211
+ }
212
+ if (properties.keepLines !== undefined) {
213
+ children.push(serializeOnOff('keepLines', properties.keepLines));
214
+ }
215
+ if (properties.pageBreakBefore !== undefined) {
216
+ children.push(serializeOnOff('pageBreakBefore', properties.pageBreakBefore));
217
+ }
218
+ if (properties.widowControl !== undefined) {
219
+ children.push(serializeOnOff('widowControl', properties.widowControl));
220
+ }
221
+ if (properties.spacing !== undefined) {
222
+ children.push(serializeParagraphSpacingPoints(properties.spacing));
223
+ }
224
+ if (properties.indentation !== undefined) {
225
+ children.push(serializeParagraphIndentationPoints(properties.indentation));
226
+ }
227
+ if (properties.contextualSpacing !== undefined) {
228
+ children.push(serializeOnOff('contextualSpacing', properties.contextualSpacing));
229
+ }
230
+ if (properties.outlineLevel !== undefined) {
231
+ children.push(wmlElement('outlineLvl', { attributes: [wmlAttr('val', String(properties.outlineLevel))] }));
232
+ }
233
+ if (children.length === 0) {
234
+ return undefined;
235
+ }
236
+ return wmlElement('pPr', { children: children });
237
+ }