@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,880 @@
1
+ import { OpenXmlElement } from '../../core/xml/index';
2
+ import { ParagraphAlignment } from './alignment';
3
+ import { Color } from './color';
4
+ import { CnfStyle, NormalizedCnfStyle } from '../tables/tbl-pr';
5
+ /**
6
+ * Line spacing rule (`ST_LineSpacingRule`). §17.18.48
7
+ * @public
8
+ */
9
+ export declare type LineSpacingRule = 'auto' | 'exact' | 'atLeast';
10
+ /**
11
+ * Tab stop justification / alignment (`ST_TabJc`). §17.18.83
12
+ *
13
+ * Prefer named members such as {@link TabJustification.Left} in authoring APIs.
14
+ * Wire tokens are the member values and are unchanged for serialization.
15
+ *
16
+ * @public
17
+ */
18
+ export declare const TabJustification: {
19
+ Left: "left";
20
+ Center: "center";
21
+ Right: "right";
22
+ Decimal: "decimal";
23
+ Bar: "bar";
24
+ Clear: "clear";
25
+ Num: "num";
26
+ Start: "start";
27
+ End: "end";
28
+ };
29
+ /**
30
+ * One of the {@link TabJustification} wire tokens.
31
+ *
32
+ * @public
33
+ */
34
+ export declare type TabJustification = (typeof TabJustification)[keyof typeof TabJustification];
35
+ /**
36
+ * Alias of {@link TabJustification} kept for older `TabStop.alignment` typing.
37
+ *
38
+ * @public
39
+ */
40
+ export declare type TabStopAlignment = TabJustification;
41
+ /**
42
+ * Tab stop leader character (`ST_TabTlc`). §17.18.84
43
+ *
44
+ * Prefer named members such as {@link TabLeader.Dot} / {@link TabLeader.NoLeader}.
45
+ * Wire tokens are the member values and are unchanged for serialization.
46
+ *
47
+ * @public
48
+ */
49
+ export declare const TabLeader: {
50
+ NoLeader: "none";
51
+ Dot: "dot";
52
+ Heavy: "heavy";
53
+ Hyphen: "hyphen";
54
+ MiddleDot: "middleDot";
55
+ Single: "single";
56
+ };
57
+ /**
58
+ * One of the {@link TabLeader} wire tokens.
59
+ *
60
+ * @public
61
+ */
62
+ export declare type TabLeader = (typeof TabLeader)[keyof typeof TabLeader];
63
+ /**
64
+ * Alias of {@link TabLeader} kept for older `TabStop.leader` typing.
65
+ *
66
+ * @public
67
+ */
68
+ export declare type TabStopLeader = TabLeader;
69
+ /**
70
+ * A single tab stop (`w:tab` inside `w:tabs`). §17.3.1.37
71
+ * @public
72
+ */
73
+ export interface TabStop {
74
+ /** `@w:pos` — position in points (twips on the wire). */
75
+ readonly position: number;
76
+ /** `@w:val` — alignment. */
77
+ readonly alignment: TabJustification;
78
+ /** `@w:leader` — leader character. */
79
+ readonly leader?: TabLeader;
80
+ }
81
+ /**
82
+ * Mutable DocIO-style tab-stop entry backed by {@link TabStop} storage.
83
+ * Distinct from run-level `w:r/w:tab` ({@link import('./text-range').Tab}).
84
+ *
85
+ * @public
86
+ */
87
+ export declare class ParagraphTabStop {
88
+ private positionValue;
89
+ private justificationValue;
90
+ private leaderValue;
91
+ /**
92
+ * @public
93
+ */
94
+ constructor(position?: number, justification?: TabJustification, leader?: TabLeader);
95
+ /** Position in points. */
96
+ position: number;
97
+ /** Alignment / justification (`@w:val`). */
98
+ justification: TabJustification;
99
+ /** Alias of {@link ParagraphTabStop.justification}. */
100
+ alignment: TabStopAlignment;
101
+ /** Leader character. */
102
+ leader: TabLeader;
103
+ /** @private */
104
+ toBagStop(): TabStop;
105
+ /** @private */
106
+ static fromTabStop(stop: TabStop): ParagraphTabStop;
107
+ }
108
+ /**
109
+ * Live collection over paragraph tab stops. Mirrors bag {@link ParagraphFormat.tabStops}.
110
+ *
111
+ * @public
112
+ */
113
+ export declare class TabCollection {
114
+ private readonly owner;
115
+ /** @private */
116
+ constructor(owner: ParagraphFormat);
117
+ /** Number of tab stops. */
118
+ readonly count: number;
119
+ /**
120
+ * Tab stop at index, or `undefined`.
121
+ */
122
+ item(index: number): ParagraphTabStop | undefined;
123
+ /**
124
+ * Add a tab stop (points / justification / leader).
125
+ * Prefer {@link TabCollection.addTab} for DocIO-aligned naming.
126
+ */
127
+ add(position: number, justification?: TabJustification, leader?: TabLeader): ParagraphTabStop;
128
+ /**
129
+ * DocIO-aligned add. Zero-arg adds a default left stop at position `0`.
130
+ *
131
+ * @example
132
+ * ```ts
133
+ * pf.tabs.addTab();
134
+ * pf.tabs.addTab(36);
135
+ * pf.tabs.addTab(72, TabJustification.Right, TabLeader.Dot);
136
+ * ```
137
+ */
138
+ addTab(position?: number, justification?: TabJustification, leader?: TabLeader): ParagraphTabStop;
139
+ /**
140
+ * Remove the tab stop at `index` (`0…count-1`).
141
+ * @throws RangeError when the index is out of range.
142
+ */
143
+ removeAt(index: number): void;
144
+ /**
145
+ * Remove the first tab stop whose position equals `position` (points).
146
+ * No-op when no matching stop exists.
147
+ */
148
+ removeByPosition(position: number): void;
149
+ /** Remove all tab stops. */
150
+ clear(): void;
151
+ }
152
+ /**
153
+ * Live single paragraph border edge (`w:pBdr` child).
154
+ *
155
+ * @public
156
+ */
157
+ export declare class ParagraphBorderFace {
158
+ private readonly owner;
159
+ private readonly edge;
160
+ /** @private */
161
+ constructor(owner: ParagraphFormat, edge: keyof ParagraphBorders);
162
+ private read;
163
+ private write;
164
+ /** Line style. */
165
+ borderType: BorderStyle;
166
+ /** Hex RGB or `'auto'`. Setter also accepts a {@link Color} enum value. */
167
+ color: string | Color;
168
+ /** Thickness in points (public); stored as eighths of a point. */
169
+ lineWidth: number;
170
+ /** Space from text in points. */
171
+ space: number;
172
+ }
173
+ /**
174
+ * Live paragraph borders with per-edge access. Whole-bag assign/clear via
175
+ * {@link ParagraphFormat.setBorders}.
176
+ *
177
+ * @public
178
+ */
179
+ export declare class ParagraphBordersFace {
180
+ private readonly owner;
181
+ private topFace;
182
+ private leftFace;
183
+ private bottomFace;
184
+ private rightFace;
185
+ private betweenFace;
186
+ private barFace;
187
+ /** @private */
188
+ constructor(owner: ParagraphFormat);
189
+ readonly top: ParagraphBorderFace;
190
+ readonly left: ParagraphBorderFace;
191
+ readonly bottom: ParagraphBorderFace;
192
+ readonly right: ParagraphBorderFace;
193
+ readonly between: ParagraphBorderFace;
194
+ readonly bar: ParagraphBorderFace;
195
+ /** Stamp line style onto all outer edges. */
196
+ borderType: BorderStyle;
197
+ /** Stamp color onto all outer edges (hex/`'auto'` or {@link Color}). */
198
+ color: string | Color;
199
+ /** Stamp line width (points) onto all outer edges. */
200
+ lineWidth: number;
201
+ /** Stamp space from text (points) onto all outer edges. */
202
+ space: number;
203
+ }
204
+ /**
205
+ * Paragraph border line style (`ST_Border` subset on `CT_Border/@w:val`).
206
+ *
207
+ * Authoring accepts string literals such as `'single'`; invalid tokens such as
208
+ * `'abc'` fail at compile time. Wire tokens match the page-setup `BorderStyle`
209
+ * enum; runtime known-set is derived from that enum (see `BORDER_STYLES`).
210
+ *
211
+ * @public
212
+ */
213
+ export declare type BorderStyle = 'nil' | 'none' | 'single' | 'thick' | 'double' | 'dotted' | 'dashed' | 'dotDash' | 'dotDotDash' | 'triple' | 'thinThickSmallGap' | 'thickThinSmallGap' | 'thinThickThinSmallGap' | 'thinThickMediumGap' | 'thickThinMediumGap' | 'thinThickThinMediumGap' | 'thinThickLargeGap' | 'thickThinLargeGap' | 'thinThickThinLargeGap' | 'wave' | 'doubleWave' | 'dashSmallGap' | 'dashDotStroked' | 'threeDEmboss' | 'threeDEngrave' | 'outset' | 'inset';
214
+ /**
215
+ * A single paragraph border edge (`CT_Border`). §17.3.4
216
+ * @public
217
+ */
218
+ export interface ParagraphBorder {
219
+ /** `@w:val` — border style (`ST_Border`). */
220
+ readonly style: BorderStyle;
221
+ /** `@w:color` — hex color or `'auto'`. */
222
+ readonly color?: string;
223
+ /** `@w:sz` — border width in eighths-of-a-point. */
224
+ readonly size?: number;
225
+ /** `@w:space` — space from text in points. */
226
+ readonly space?: number;
227
+ }
228
+ /**
229
+ * Paragraph borders (`w:pBdr`). §17.3.1.24
230
+ * @public
231
+ */
232
+ export interface ParagraphBorders {
233
+ readonly top?: ParagraphBorder;
234
+ readonly left?: ParagraphBorder;
235
+ readonly bottom?: ParagraphBorder;
236
+ readonly right?: ParagraphBorder;
237
+ readonly between?: ParagraphBorder;
238
+ readonly bar?: ParagraphBorder;
239
+ }
240
+ /**
241
+ * Shading pattern (`ST_Shd` subset). §17.18.78
242
+ * @public
243
+ */
244
+ export declare type ShadingPattern = 'clear' | 'solid' | 'horzStripe' | 'vertStripe' | 'reverseDiagStripe' | 'diagStripe' | 'horzCross' | 'diagCross' | 'thinHorzStripe' | 'thinVertStripe' | 'thinReverseDiagStripe' | 'thinDiagStripe' | 'thinHorzCross' | 'thinDiagCross' | 'pct5' | 'pct10' | 'pct12' | 'pct15' | 'pct20' | 'pct25' | 'pct30' | 'pct35' | 'pct37' | 'pct40' | 'pct45' | 'pct50' | 'pct55' | 'pct60' | 'pct62' | 'pct65' | 'pct70' | 'pct75' | 'pct80' | 'pct85' | 'pct87' | 'pct90' | 'pct95';
245
+ /**
246
+ * Paragraph text direction (`ST_TextDirection`). §17.18.93 / wml.xsd 798–813.
247
+ * Twelve schema tokens; unknown loaded values round-trip via the format raw slot.
248
+ * @public
249
+ */
250
+ export declare type ParagraphTextDirection = 'lr' | 'rl' | 'tb' | 'tbV' | 'rlV' | 'lrV' | 'btLr' | 'lrTb' | 'lrTbV' | 'tbLrV' | 'tbRl' | 'tbRlV';
251
+ /**
252
+ * Paragraph indentation bag (`w:ind`). §17.3.1.12
253
+ * Used by styles modeled payload codecs — not a `Paragraph` property surface.
254
+ * Body authoring uses flat {@link ParagraphFormat} indent properties.
255
+ * `left` may be negative (e.g. outdented list text).
256
+ * @public
257
+ */
258
+ export interface ParagraphIndentation {
259
+ /** `@w:left` in points (twips on the wire); may be negative. */
260
+ readonly left?: number;
261
+ /** `@w:right` in points (twips on the wire). */
262
+ readonly right?: number;
263
+ /** `@w:firstLine` in points (twips on the wire). Mutually exclusive with `hanging`. */
264
+ readonly firstLine?: number;
265
+ /** `@w:hanging` in points (twips on the wire). Mutually exclusive with `firstLine`. */
266
+ readonly hanging?: number;
267
+ }
268
+ /**
269
+ * Paragraph spacing bag (`w:spacing`). §17.3.1.33
270
+ * Used by styles modeled payload codecs — not a `Paragraph` property surface.
271
+ * Body authoring uses flat {@link ParagraphFormat} spacing properties.
272
+ * @public
273
+ */
274
+ export interface ParagraphSpacing {
275
+ /** `@w:before` — space before paragraph, in points (twips on the wire). */
276
+ readonly before?: number;
277
+ /** `@w:after` — space after paragraph, in points (twips on the wire). */
278
+ readonly after?: number;
279
+ /**
280
+ * `@w:line` — line spacing in points (`w:lineRule` determines interpretation;
281
+ * twips on the wire). Prefer {@link ParagraphSpacing.lineSpacing} in styles authoring.
282
+ */
283
+ readonly line?: number;
284
+ /**
285
+ * `@w:line` — line spacing in points (twips on the wire). Alias of
286
+ * {@link ParagraphSpacing.line} used by the styles feature codec and builtin catalog.
287
+ */
288
+ readonly lineSpacing?: number;
289
+ /** `@w:lineRule` — how `line` / `lineSpacing` is interpreted. */
290
+ readonly lineRule?: LineSpacingRule;
291
+ /** `@w:beforeAutospacing` — ignore `before` and use automatic spacing. */
292
+ readonly beforeAutospacing?: boolean;
293
+ /** `@w:afterAutospacing` — ignore `after` and use automatic spacing. */
294
+ readonly afterAutospacing?: boolean;
295
+ }
296
+ /**
297
+ * Paragraph shading bag (`w:shd`). §17.3.1.31
298
+ * Used where a value-bag is required — not a `Paragraph` property surface.
299
+ * Body authoring uses flat {@link ParagraphFormat} `backColor` / `foreColor` /
300
+ * `shadingPattern`.
301
+ * @public
302
+ */
303
+ export interface ParagraphShading {
304
+ /** `@w:fill` — background fill color (hex or `'auto'`). */
305
+ readonly fill?: string;
306
+ /** `@w:color` — pattern foreground color (hex or `'auto'`). */
307
+ readonly color?: string;
308
+ /** `@w:val` — shading pattern. */
309
+ readonly pattern?: ShadingPattern;
310
+ }
311
+ /**
312
+ * Baseline alignment for the paragraph's lines (`ST_TextAlignment`,
313
+ * `w:textAlignment`). §17.3.1.39.
314
+ * @public
315
+ */
316
+ export declare type BaselineAlignment = 'auto' | 'top' | 'center' | 'baseline' | 'bottom';
317
+ /**
318
+ * Host that owns a {@link ParagraphFormat} and receives mutation
319
+ * notifications. Implemented by {@link Paragraph} — the host performs the
320
+ * owner (detachment) check and invalidation.
321
+ * @private
322
+ */
323
+ export interface ParagraphFormatHost {
324
+ notifyParagraphFormatMutation(): void;
325
+ /**
326
+ * Optional effective resolver (Paragraph host). Style-hosted PF must omit this
327
+ * so public getters stay direct/authored-only for style-chain walks.
328
+ * @private
329
+ */
330
+ resolveEffectiveParagraphValue?(key: string): unknown;
331
+ }
332
+ /**
333
+ * @private
334
+ * Internal indents record (`w:ind`) — round-trip slots for spellings not
335
+ * surfaced on the public flat properties. Authored values live in the flat
336
+ * `*Indent` properties; `start`/`end`/`*Chars` twins are preserved verbatim
337
+ * here when loaded and re-emitted on no-op saves.
338
+ */
339
+ export interface ParagraphIndentsRecord {
340
+ left?: number;
341
+ right?: number;
342
+ firstLine?: number;
343
+ hanging?: number;
344
+ start?: number;
345
+ end?: number;
346
+ leftChars?: number;
347
+ rightChars?: number;
348
+ firstLineChars?: number;
349
+ hangingChars?: number;
350
+ }
351
+ /**
352
+ * @private
353
+ * Internal spacing record (`w:spacing`) — authored values in the flat
354
+ * properties plus `@w:beforeLines`/`@w:afterLines` round-trip slots.
355
+ */
356
+ export interface ParagraphSpacingRecord {
357
+ before?: number;
358
+ after?: number;
359
+ line?: number;
360
+ lineRule?: LineSpacingRule;
361
+ beforeAutospacing?: boolean;
362
+ afterAutospacing?: boolean;
363
+ beforeLines?: number;
364
+ afterLines?: number;
365
+ }
366
+ /**
367
+ * @private
368
+ * Formatting snapshot for hydrate/serialize (ParagraphFormat module).
369
+ * Wire-unit storage (twips numbers) for exact round-trips; the public
370
+ * accessors convert to points.
371
+ */
372
+ export interface ParagraphFormatSnapshot {
373
+ pPrExtra: OpenXmlElement[];
374
+ /** Raw `w:jc/@w:val` (unknown values preserved verbatim). */
375
+ jcRaw: string | undefined;
376
+ keepNextValue: boolean | undefined;
377
+ keepLinesValue: boolean | undefined;
378
+ pageBreakBeforeValue: boolean | undefined;
379
+ /** API-only (no ECMA `w:pPr` child); store/hydrate/snapshot only. */
380
+ pageBreakAfterValue: boolean | undefined;
381
+ widowControlValue: boolean | undefined;
382
+ bidiValue: boolean | undefined;
383
+ outlineLevelValue: number | undefined;
384
+ indentsValue: ParagraphIndentsRecord | undefined;
385
+ spacingValue: ParagraphSpacingRecord | undefined;
386
+ tabStopsValue: TabStop[] | undefined;
387
+ bordersValue: ParagraphBorders | undefined;
388
+ shadingValue: ParagraphShading | undefined;
389
+ suppressAutoHyphensValue: boolean | undefined;
390
+ suppressLineNumbersValue: boolean | undefined;
391
+ contextualSpacingValue: boolean | undefined;
392
+ mirrorIndentsValue: boolean | undefined;
393
+ adjustRightIndentValue: boolean | undefined;
394
+ textDirectionValue: ParagraphTextDirection | undefined;
395
+ /** Raw `w:textDirection/@w:val` for out-of-union tokens (round-trip only). */
396
+ textDirectionRaw: string | undefined;
397
+ baselineAlignmentValue: BaselineAlignment | undefined;
398
+ /** Raw `w:textAlignment/@w:val` for out-of-union tokens. */
399
+ baselineAlignmentRaw: string | undefined;
400
+ snapToGridValue: boolean | undefined;
401
+ wordWrapValue: boolean | undefined;
402
+ overflowPunctuationValue: boolean | undefined;
403
+ autoSpaceDEValue: boolean | undefined;
404
+ autoSpaceDNValue: boolean | undefined;
405
+ /** @private Round-trip only — `w:kinsoku`. */
406
+ kinsokuValue: boolean | undefined;
407
+ /** @private Round-trip only — `w:topLinePunct`. */
408
+ topLinePunctuationValue: boolean | undefined;
409
+ }
410
+ /**
411
+ * Batch-assign delta for {@link ParagraphFormat.assign}. One optional key
412
+ * per public property (points / booleans / string unions — no `Length`
413
+ * brand, ADR D1).
414
+ *
415
+ * @public
416
+ */
417
+ export interface ParagraphFormatDelta {
418
+ horizontalAlignment?: ParagraphAlignment;
419
+ keepFollow?: boolean;
420
+ keepLines?: boolean;
421
+ pageBreakBefore?: boolean;
422
+ /** API-only; not serialized to OOXML. */
423
+ pageBreakAfter?: boolean;
424
+ widowControl?: boolean;
425
+ bidi?: boolean;
426
+ outlineLevel?: number;
427
+ leftIndent?: number;
428
+ rightIndent?: number;
429
+ firstLineIndent?: number;
430
+ beforeSpacing?: number;
431
+ afterSpacing?: number;
432
+ beforeAutospacing?: boolean;
433
+ afterAutospacing?: boolean;
434
+ beforeLines?: number;
435
+ afterLines?: number;
436
+ lineSpacing?: number;
437
+ lineSpacingRule?: LineSpacingRule;
438
+ lineSpacingCount?: number;
439
+ tabStops?: TabStop[];
440
+ borders?: ParagraphBorders;
441
+ /** Hex `RRGGBB` / `'auto'`, or a {@link Color} enum value. */
442
+ backColor?: string | Color;
443
+ /** Hex `RRGGBB` / `'auto'`, or a {@link Color} enum value. */
444
+ foreColor?: string | Color;
445
+ shadingPattern?: ShadingPattern;
446
+ suppressAutoHyphens?: boolean;
447
+ suppressLineNumbers?: boolean;
448
+ contextualSpacing?: boolean;
449
+ mirrorIndents?: boolean;
450
+ adjustRightIndent?: boolean;
451
+ textDirection?: ParagraphTextDirection;
452
+ baselineAlignment?: BaselineAlignment;
453
+ snapToGrid?: boolean;
454
+ wordWrap?: boolean;
455
+ overflowPunctuation?: boolean;
456
+ autoSpaceDE?: boolean;
457
+ autoSpaceDN?: boolean;
458
+ }
459
+ /**
460
+ * @private
461
+ * Empty snapshot factory.
462
+ */
463
+ export declare function emptyParagraphFormatSnapshot(): ParagraphFormatSnapshot;
464
+ /**
465
+ * Direct paragraph formatting (`w:p/w:pPr`) — the only public
466
+ * paragraph-formatting surface. One live instance per
467
+ * {@link Paragraph}, lazily created via `paragraph.paragraphFormat`,
468
+ * never null. Mirrors the .NET DocIO `WParagraphFormat` flat property
469
+ * surface (ADR `docs/adr/2026-09-24-paragraph-format-facade.md`).
470
+ *
471
+ * @example
472
+ * ```ts
473
+ * paragraph.paragraphFormat.beforeSpacing = 18;
474
+ * paragraph.paragraphFormat.lineSpacing = 10;
475
+ * paragraph.paragraphFormat.firstLineIndent = 10; // negative = hanging
476
+ * paragraph.paragraphFormat.backColor = 'D3D3D3';
477
+ * paragraph.paragraphFormat.horizontalAlignment = 'end';
478
+ * ```
479
+ *
480
+ * @public
481
+ */
482
+ export declare class ParagraphFormat {
483
+ private readonly host;
484
+ private pPrExtra;
485
+ private jcRaw;
486
+ private keepNextValue;
487
+ private keepLinesValue;
488
+ private pageBreakBeforeValue;
489
+ private pageBreakAfterValue;
490
+ private widowControlValue;
491
+ private tabsCollection;
492
+ private bordersFace;
493
+ private bidiValue;
494
+ private outlineLevelValue;
495
+ private indentsValue;
496
+ private spacingValue;
497
+ private tabStopsValue;
498
+ private bordersValue;
499
+ private shadingValue;
500
+ private suppressAutoHyphensValue;
501
+ private suppressLineNumbersValue;
502
+ private contextualSpacingValue;
503
+ private mirrorIndentsValue;
504
+ private adjustRightIndentValue;
505
+ private textDirectionValue;
506
+ private textDirectionRaw;
507
+ private baselineAlignmentValue;
508
+ private baselineAlignmentRaw;
509
+ private snapToGridValue;
510
+ private wordWrapValue;
511
+ private overflowPunctuationValue;
512
+ private autoSpaceDEValue;
513
+ private autoSpaceDNValue;
514
+ private kinsokuValue;
515
+ private topLinePunctuationValue;
516
+ /**
517
+ * @private
518
+ */
519
+ constructor(host: ParagraphFormatHost);
520
+ private mutate;
521
+ private effective;
522
+ private effectiveOrDefault;
523
+ /**
524
+ * Horizontal alignment of the paragraph (`w:jc`). `undefined` = inherit.
525
+ *
526
+ * Loaded directional `left`/`right` wording is surfaced as the neutral
527
+ * `start`/`end` without rewriting the stored value on a no-op save;
528
+ * unknown `w:jc` values (distribute-family) round-trip verbatim and this
529
+ * getter returns `undefined` for them.
530
+ *
531
+ * @public
532
+ */
533
+ horizontalAlignment: ParagraphAlignment | undefined;
534
+ /** Keep paragraph with the next (`w:keepNext`). `undefined` = inherit. */
535
+ keepFollow: boolean | undefined;
536
+ /** Keep all lines of the paragraph on one page (`w:keepLines`). */
537
+ keepLines: boolean | undefined;
538
+ /** Force this paragraph onto a new page (`w:pageBreakBefore`). */
539
+ pageBreakBefore: boolean | undefined;
540
+ /**
541
+ * DocIO-aligned page-break-after flag.
542
+ *
543
+ * There is no ECMA-376 `w:pageBreakAfter` on `w:pPr` (see
544
+ * `docs/specs/paragraph-formatting.md` § deliberate omissions). The typed flag
545
+ * is still stored for assign / clear / style resolve. On serialize, when the
546
+ * direct value is `true`, body writers emit a **following** paragraph whose
547
+ * only content is `w:r/w:br/@w:type="page"` after the content `w:p` — without
548
+ * inventing a non-schema pPr child and without placing the break run inside
549
+ * the content paragraph.
550
+ */
551
+ pageBreakAfter: boolean | undefined;
552
+ /** Widow/orphan line control (`w:widowControl`). */
553
+ widowControl: boolean | undefined;
554
+ /** Right-to-left base flow (`w:bidi`). */
555
+ bidi: boolean | undefined;
556
+ /**
557
+ * Outline/navigation level (`w:outlineLvl`): 0–8 = Heading 1–9,
558
+ * 9 = body text. `undefined` = inherit. Authoring an integer outside
559
+ * 0–9 throws `RangeError` (no silent clamp).
560
+ */
561
+ outlineLevel: number | undefined;
562
+ /**
563
+ * Left-of-flow indent in points (`w:ind/@w:left` authored; loaded
564
+ * `@w:start` preserved). Signed: negative values are legal outdents.
565
+ * Range ±1584 points; out-of-range throws `RangeError`.
566
+ * Setting a value drops a loaded `start`/`leftChars` twin (ADR D11).
567
+ */
568
+ leftIndent: number | undefined;
569
+ /**
570
+ * Right-of-flow indent in points (`@w:right` authored; loaded `@w:end`
571
+ * preserved). Signed; range ±1584 points. Setting a value drops a loaded
572
+ * `end`/`rightChars` twin.
573
+ */
574
+ rightIndent: number | undefined;
575
+ /**
576
+ * First-line indent in points, **signed** (ADR D3): positive = first-line
577
+ * indent (`@w:firstLine`); negative = hanging indent (`@w:hanging`,
578
+ * emitted as the absolute twips). Range ±1584 points. Setting a value
579
+ * drops a loaded `firstLineChars` twin. Loading a legacy `w:ind` that
580
+ * carries both `@w:firstLine` and `@w:hanging` is deterministic
581
+ * (firstLine wins) — the pair cannot be co-authored through this API.
582
+ */
583
+ firstLineIndent: number | undefined;
584
+ /**
585
+ * Space above the paragraph in points (`@w:before`). Range 0–1584.
586
+ * User-set clears an explicit `beforeAutospacing` (set-path only, never
587
+ * on load). Setting a value drops a loaded `@w:beforeLines` twin.
588
+ */
589
+ beforeSpacing: number | undefined;
590
+ /**
591
+ * Space below the paragraph in points (`@w:after`). Range 0–1584.
592
+ * User-set clears an explicit `afterAutospacing` and drops a loaded
593
+ * `@w:afterLines` twin.
594
+ */
595
+ afterSpacing: number | undefined;
596
+ /** Automatic spacing above (`@w:beforeAutospacing`). */
597
+ beforeAutospacing: boolean | undefined;
598
+ /** Automatic spacing below (`@w:afterAutospacing`). */
599
+ afterAutospacing: boolean | undefined;
600
+ /**
601
+ * Line-grid spacing above in hundredths of a line (`@w:beforeLines`),
602
+ * round-trip slot for the East-Asian line-grid authoring style. Authored
603
+ * `beforeSpacing` drops a loaded twin.
604
+ */
605
+ beforeLines: number | undefined;
606
+ /** Line-grid spacing below in hundredths of a line (`@w:afterLines`). */
607
+ afterLines: number | undefined;
608
+ /**
609
+ * Fixed/minimum line spacing in points (`@w:line` with
610
+ * `lineSpacingRule` `'atLeast'` or `'exact'`). Range 0.7–1584 points.
611
+ * Setting it clears {@link lineSpacingCount} — both are views of one
612
+ * `@line` slot (ADR D4).
613
+ */
614
+ lineSpacing: number | undefined;
615
+ /**
616
+ * Interpretation rule for `@w:line`: `'auto'` (multiple of single
617
+ * spacing — use {@link lineSpacingCount}), `'exact'` (exactly the given
618
+ * height), `'atLeast'` (at least the given height). Default when
619
+ * `lineSpacing` is authored without a rule: `'exact'`.
620
+ */
621
+ lineSpacingRule: LineSpacingRule | undefined;
622
+ /**
623
+ * Multiple-of-single line spacing (authoring view over
624
+ * `@line = round(n × 240)` + `@lineRule="auto"`), e.g. `1.5` or `2`.
625
+ * Range 0–100; mutually clears with {@link lineSpacing} (ADR D4).
626
+ * Getter returns `n` only when the stored rule is `'auto'` and `@line`
627
+ * is set; otherwise `undefined` (effective style may still resolve).
628
+ */
629
+ lineSpacingCount: number | undefined;
630
+ /**
631
+ * Custom tab stops (`w:tabs`), assigned whole as an array. `undefined`
632
+ * clears explicit stops (style/default resolution may still supply some).
633
+ */
634
+ tabStops: TabStop[] | undefined;
635
+ /**
636
+ * Live DocIO-style tab-stop collection. Mutates the same storage as
637
+ * {@link ParagraphFormat.tabStops}.
638
+ */
639
+ readonly tabs: TabCollection;
640
+ /**
641
+ * Live paragraph borders (`w:pBdr`) facade — always a
642
+ * {@link ParagraphBordersFace} (aggregate `borderType` / `color` /
643
+ * `lineWidth` / `space`, plus `top` / `left` / `bottom` / `right` /
644
+ * `horizontal` / `vertical`). Never `undefined` and never a plain bag.
645
+ *
646
+ * Whole-bag replace or clear: {@link ParagraphFormat.setBorders}.
647
+ */
648
+ readonly borders: ParagraphBordersFace;
649
+ /**
650
+ * Replace or clear the whole paragraph-borders bag (`w:pBdr`).
651
+ * Pass `undefined` to clear authored borders. Per-edge edits use
652
+ * {@link ParagraphFormat.borders}.
653
+ */
654
+ setBorders(value: ParagraphBorders | undefined): void;
655
+ /**
656
+ * @private
657
+ * Direct bag read for facades / serializers (avoids face getter recursion).
658
+ */
659
+ readBordersBag(): ParagraphBorders | undefined;
660
+ /**
661
+ * @private
662
+ */
663
+ writeBordersBag(value: ParagraphBorders | undefined): void;
664
+ /**
665
+ * Background fill color (`w:shd/@w:fill`).
666
+ *
667
+ * - **Get (runtime)**: OOXML wire string — hex `RRGGBB`, `'auto'`, or the
668
+ * default `''` when unset. Loaded wire values are preserved (never a
669
+ * {@link Color} enum).
670
+ * - **Set**: hex string / `'auto'`, a {@link Color} enum value (converted to
671
+ * hex immediately), or `undefined` to clear the authored fill.
672
+ *
673
+ * TypeScript 3.3 requires identical get/set types, so the declared type is
674
+ * `string | Color | undefined`; the getter always returns a string.
675
+ */
676
+ backColor: string | Color | undefined;
677
+ /**
678
+ * Pattern foreground color (`w:shd/@w:color`).
679
+ *
680
+ * - **Get (runtime)**: OOXML wire string — hex `RRGGBB`, `'auto'`, or the
681
+ * default `''` when unset. Loaded wire values are preserved (never a
682
+ * {@link Color} enum).
683
+ * - **Set**: hex string / `'auto'`, a {@link Color} enum value (converted to
684
+ * hex immediately), or `undefined` to clear.
685
+ *
686
+ * TypeScript 3.3 requires identical get/set types, so the declared type is
687
+ * `string | Color | undefined`; the getter always returns a string.
688
+ */
689
+ foreColor: string | Color | undefined;
690
+ /**
691
+ * Shading pattern (`w:shd/@w:val`). Authoring an out-of-subset token
692
+ * throws `DocxError('content/invalid-shading-pattern', …)`; unknown
693
+ * loaded tokens round-trip via the parked-element path (never throw).
694
+ */
695
+ shadingPattern: ShadingPattern | undefined;
696
+ /**
697
+ * Suppress automatic hyphenation for this paragraph
698
+ * (`w:suppressAutoHyphens`, ECMA-376-1 §17.3.1.34 — the only
699
+ * hyphenation element; ADR D5). Foreign `w:suppressHyphenation` markup
700
+ * (not an ECMA-376 element) parks verbatim in `pPrExtra`.
701
+ */
702
+ suppressAutoHyphens: boolean;
703
+ /** Exclude this paragraph from line numbering (`w:suppressLineNumbers`). */
704
+ suppressLineNumbers: boolean;
705
+ /** Ignore before/after spacing between same-style paragraphs (`w:contextualSpacing`). */
706
+ contextualSpacing: boolean;
707
+ /** Treat left/right indents as inside/outside for mirrored margins (`w:mirrorIndents`). */
708
+ mirrorIndents: boolean;
709
+ /** Auto-adjust right indent against the document grid (`w:adjustRightInd`). */
710
+ adjustRightIndent: boolean;
711
+ /**
712
+ * Physical text flow direction (`w:textDirection`,
713
+ * `ST_TextDirection` — all 12 tokens). Unknown loaded tokens round-trip
714
+ * verbatim (raw slot) and the getter returns `undefined` for them;
715
+ * authoring an invalid token throws
716
+ * `DocxError('content/invalid-text-direction', …)`.
717
+ */
718
+ textDirection: ParagraphTextDirection | undefined;
719
+ /**
720
+ * How characters of different sizes align vertically on a line
721
+ * (`w:textAlignment`, `ST_TextAlignment`). Unknown loaded tokens
722
+ * round-trip verbatim and the getter returns `undefined` for them;
723
+ * authoring an invalid token throws
724
+ * `DocxError('content/invalid-baseline-alignment', …)`.
725
+ */
726
+ baselineAlignment: BaselineAlignment | undefined;
727
+ /** Use document grid line pitch (`w:snapToGrid`). */
728
+ snapToGrid: boolean;
729
+ /** Break lines on word level (`w:wordWrap`). */
730
+ wordWrap: boolean;
731
+ /** Allow trailing punctuation to extend beyond the line (`w:overflowPunct`). */
732
+ overflowPunctuation: boolean;
733
+ /** Auto space between East-Asian and Latin text (`w:autoSpaceDE`). */
734
+ autoSpaceDE: boolean;
735
+ /** Auto space between East-Asian text and numbers (`w:autoSpaceDN`). */
736
+ autoSpaceDN: boolean;
737
+ /**
738
+ * @private
739
+ * `w:kinsoku` — East-Asian line-breaking rules (round-trip only).
740
+ */
741
+ /** @private */
742
+ kinsoku: boolean | undefined;
743
+ /**
744
+ * @private
745
+ * `w:topLinePunct` — punctuation at line start preference (round-trip only).
746
+ */
747
+ /** @private */
748
+ topLinePunctuation: boolean | undefined;
749
+ /**
750
+ * @private
751
+ * Raw loaded `w:textDirection/@w:val` for tokens outside the public union.
752
+ */
753
+ textDirectionRawValue(): string | undefined;
754
+ /**
755
+ * @private
756
+ * Raw loaded `w:textAlignment/@w:val` for tokens outside the public union.
757
+ */
758
+ baselineAlignmentRawValue(): string | undefined;
759
+ /**
760
+ * Apply a partial delta. Uses setters — cross-property effects
761
+ * (autospacing clearing, mutual line-slot clearing) apply.
762
+ * @public
763
+ */
764
+ assign(delta: ParagraphFormatDelta): void;
765
+ /**
766
+ * Clear all typed formatting. Does not clear `pPrExtra`.
767
+ * @public
768
+ */
769
+ clear(): void;
770
+ /**
771
+ * @private
772
+ * Load a snapshot without set-path cross-property effects.
773
+ */
774
+ hydrate(data: ParagraphFormatSnapshot): void;
775
+ /**
776
+ * @private
777
+ */
778
+ snapshot(): ParagraphFormatSnapshot;
779
+ /**
780
+ * @private
781
+ * Parked children (`framePr`, `pPrChange`, unknowns, foreign invalid markup).
782
+ * Mark `w:rPr` is owned by {@link Paragraph.breakCharacterFormat}, not parked here.
783
+ * Read/write for the paragraph-owned serializer.
784
+ */
785
+ extraChildren(): OpenXmlElement[];
786
+ /**
787
+ * @private
788
+ * Paragraph conditional formatting membership (`w:pPr/w:cnfStyle`).
789
+ */
790
+ readCnfStyle(): CnfStyle | undefined;
791
+ /**
792
+ * @private
793
+ * Write or clear paragraph `w:cnfStyle` in parked extra children.
794
+ * `undefined` removes the element; a supplied state always writes
795
+ * (including all-false normalized form).
796
+ */
797
+ writeCnfStyle(state: NormalizedCnfStyle | CnfStyle | undefined): void;
798
+ /**
799
+ * @private
800
+ * Materialize `w:pPr` children owned by this format (CT_PPrBase order).
801
+ * Does not emit `pStyle` / `numPr` / `rPr` / `sectPr` — those stay on {@link Paragraph}.
802
+ */
803
+ buildPPrChildren(inject?: ParagraphPPrInject): OpenXmlElement[];
804
+ }
805
+ /**
806
+ * Optional inject hooks for paragraph-owned children that must sit at fixed
807
+ * CT_PPrBase / CT_PPr positions inside the materialised `w:pPr` list.
808
+ * @private
809
+ */
810
+ export interface ParagraphPPrInject {
811
+ /** Pre-built `w:numPr` element, emitted after `widowControl`. */
812
+ numPr?: OpenXmlElement;
813
+ /**
814
+ * Pre-built mark `w:rPr` from {@link Paragraph.breakCharacterFormat},
815
+ * emitted after `outlineLvl` and before `sectPr` (CT_PPr order).
816
+ */
817
+ rPr?: OpenXmlElement;
818
+ /** Pre-built `w:sectPr` element, emitted after mark `rPr` and before `pPrChange`. */
819
+ sectPr?: OpenXmlElement;
820
+ }
821
+ /**
822
+ * Parse `w:ind` into a wire-twips {@link ParagraphIndentsRecord}.
823
+ * Preserves `@start`/`@end`/`*Chars` for D2 round-trip.
824
+ * @private
825
+ */
826
+ export declare function parseIndentsRecord(el: OpenXmlElement): ParagraphIndentsRecord | undefined;
827
+ /**
828
+ * Parse `w:spacing` into a wire-unit {@link ParagraphSpacingRecord}.
829
+ * Preserves `@beforeLines`/`@afterLines` for round-trip.
830
+ * @private
831
+ */
832
+ export declare function parseSpacingRecord(el: OpenXmlElement): ParagraphSpacingRecord | undefined;
833
+ /**
834
+ * Parse `w:pPr` children into a {@link ParagraphFormatSnapshot}.
835
+ * Invalid / unmodeled markup is parked in `pPrExtra` (never throws on load).
836
+ * Does not consume `pStyle` / `numPr` / `rPr` / `sectPr` — callers handle those.
837
+ *
838
+ * @private
839
+ */
840
+ export declare function parseParagraphFormat(pPrElement: OpenXmlElement): ParagraphFormatSnapshot;
841
+ /**
842
+ * Serialize wire-twips indents record → `w:ind`.
843
+ * D2: authored `left`/`right` plus any RT `start`/`end`/`*Chars` slots.
844
+ * @private
845
+ */
846
+ export declare function serializeIndentsRecord(ind: ParagraphIndentsRecord): OpenXmlElement;
847
+ /**
848
+ * Serialize wire-unit spacing record → `w:spacing`.
849
+ * @private
850
+ */
851
+ export declare function serializeSpacingRecord(sp: ParagraphSpacingRecord): OpenXmlElement;
852
+ /**
853
+ * Materialize format-owned `w:pPr` children in CT_PPrBase / CT_PPr order.
854
+ * Inject optional paragraph-owned `numPr` / `sectPr` at schema positions.
855
+ * D5: never emits `w:suppressHyphenation` from typed state.
856
+ *
857
+ * @private
858
+ */
859
+ export declare function buildPPrChildrenFromSnapshot(snap: ParagraphFormatSnapshot, inject?: ParagraphPPrInject): OpenXmlElement[];
860
+ /**
861
+ * Wire `w:spacing` → public points {@link ParagraphSpacing} with `lineSpacing` key.
862
+ * Used by the styles feature; preserves prior payload shape.
863
+ * @private
864
+ */
865
+ export declare function parseParagraphSpacingPoints(el: OpenXmlElement): ParagraphSpacing | undefined;
866
+ /**
867
+ * Wire `w:ind` → public points {@link ParagraphIndentation}.
868
+ * @private
869
+ */
870
+ export declare function parseParagraphIndentationPoints(el: OpenXmlElement): ParagraphIndentation | undefined;
871
+ /**
872
+ * Points {@link ParagraphSpacing} → `w:spacing` (styles `lineSpacing` key).
873
+ * @private
874
+ */
875
+ export declare function serializeParagraphSpacingPoints(spacing: ParagraphSpacing): OpenXmlElement;
876
+ /**
877
+ * Points {@link ParagraphIndentation} → `w:ind` (D2 left/right spellings).
878
+ * @private
879
+ */
880
+ export declare function serializeParagraphIndentationPoints(indentation: ParagraphIndentation): OpenXmlElement;