@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,663 @@
1
+ var __values = (this && this.__values) || function (o) {
2
+ var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
3
+ if (m) return m.call(o);
4
+ return {
5
+ next: function () {
6
+ if (o && i >= o.length) o = void 0;
7
+ return { value: o && o[i++], done: !o };
8
+ }
9
+ };
10
+ };
11
+ /**
12
+ * `wps:bodyPr` text-body properties codec (TASK-8049).
13
+ *
14
+ * Schema cites (transitional `dml-main.xsd` + `dml-wordprocessingDrawing.xsd`):
15
+ * - `CT_TextBodyProperties` attributes: `rot`, `spcFirstLastPara`,
16
+ * `vertOverflow` (`ST_TextVertOverflowType`), `horzOverflow`
17
+ * (`ST_TextHorzOverflowType`), `vert` (`ST_TextVerticalType`), `wrap`
18
+ * (`ST_TextWrappingType` = `none|square` only), `lIns`/`tIns`/`rIns`/`bIns`
19
+ * (`ST_Coordinate32` EMU), `numCol`, `spcCol`, `rtlCol`, `fromWordArt`,
20
+ * `anchor` (`ST_TextAnchoringType`), `anchorCtr`, `forceAA`, `upright`
21
+ * (default false), `compatLnSpc`
22
+ * - Sequence: `prstTxWarp?`, `EG_TextAutofit?` (`a:noAutofit` |
23
+ * `a:normAutofit` | `a:spAutoFit`), `scene3d?`, `EG_Text3D?`, `extLst?`
24
+ * - `CT_TextNormalAutofit`: `@fontScale` (`ST_TextFontScalePercent` 1000…100000,
25
+ * default 100%), `@lnSpcReduction` (default 0%)
26
+ * - Wire element: **`wps:bodyPr`** (type `a:CT_TextBodyProperties`); autofit
27
+ * children use the DrawingML `a:` namespace
28
+ * - `CT_WordprocessingShape` (dml-wordprocessingDrawing): after `style?` /
29
+ * `extLst?` / `txbx|linkedTxbx?`, **`bodyPr` minOccurs=1**
30
+ *
31
+ * Unknown attrs and residual children (`prstTxWarp`, `scene3d`, Text3D,
32
+ * `extLst`) stay residual — never invent OOXML.
33
+ *
34
+ * @packageDocumentation
35
+ */
36
+ import { emuToPoint, pointToCoordinateEmus } from '../document/length';
37
+ import { DocxError } from '../../core/errors/docx-error';
38
+ import { A_NS, WPS_NS } from './host-codec';
39
+ /**
40
+ * DrawingML text anchoring (`ST_TextAnchoringType`).
41
+ *
42
+ * @private
43
+ */
44
+ export var TEXT_ANCHORING_VALUES = ['t', 'ctr', 'b', 'just', 'dist'];
45
+ /**
46
+ * DrawingML vertical text overflow (`ST_TextVertOverflowType`).
47
+ *
48
+ * @private
49
+ */
50
+ export var TEXT_VERT_OVERFLOW_VALUES = ['overflow', 'ellipsis', 'clip'];
51
+ /**
52
+ * DrawingML horizontal text overflow (`ST_TextHorzOverflowType`).
53
+ *
54
+ * @private
55
+ */
56
+ export var TEXT_HORZ_OVERFLOW_VALUES = ['overflow', 'clip'];
57
+ /**
58
+ * DrawingML text vertical type (`ST_TextVerticalType`).
59
+ *
60
+ * @private
61
+ */
62
+ export var TEXT_VERTICAL_TYPE_VALUES = [
63
+ 'horz',
64
+ 'vert',
65
+ 'vert270',
66
+ 'wordArtVert',
67
+ 'eaVert',
68
+ 'mongolianVert',
69
+ 'wordArtVertRtl',
70
+ ];
71
+ /**
72
+ * DrawingML text wrapping inside the shape (`ST_TextWrappingType`).
73
+ * Schema allows **`none` | `square` only**.
74
+ *
75
+ * @private
76
+ */
77
+ export var TEXT_BODY_WRAP_VALUES = ['none', 'square'];
78
+ /** ST_TextFontScalePercent: 1000…100000 (percent × 1000; 100000 = 100%). */
79
+ var FONT_SCALE_MIN = 1000;
80
+ var FONT_SCALE_MAX = 100000;
81
+ var TEXT_ANCHORING_SET = new Set(TEXT_ANCHORING_VALUES);
82
+ var TEXT_VERT_OVERFLOW_SET = new Set(TEXT_VERT_OVERFLOW_VALUES);
83
+ var TEXT_HORZ_OVERFLOW_SET = new Set(TEXT_HORZ_OVERFLOW_VALUES);
84
+ var TEXT_VERTICAL_TYPE_SET = new Set(TEXT_VERTICAL_TYPE_VALUES);
85
+ var TEXT_BODY_WRAP_SET = new Set(TEXT_BODY_WRAP_VALUES);
86
+ /**
87
+ * Whether `value` is a schema `ST_TextAnchoringType` token.
88
+ *
89
+ * @private
90
+ */
91
+ export function isTextAnchoring(value) {
92
+ return TEXT_ANCHORING_SET.has(value);
93
+ }
94
+ /**
95
+ * Whether `value` is a schema `ST_TextVertOverflowType` token.
96
+ *
97
+ * @private
98
+ */
99
+ export function isTextVertOverflow(value) {
100
+ return TEXT_VERT_OVERFLOW_SET.has(value);
101
+ }
102
+ /**
103
+ * Whether `value` is a schema `ST_TextHorzOverflowType` token.
104
+ *
105
+ * @private
106
+ */
107
+ export function isTextHorzOverflow(value) {
108
+ return TEXT_HORZ_OVERFLOW_SET.has(value);
109
+ }
110
+ /**
111
+ * Whether `value` is a schema `ST_TextVerticalType` token.
112
+ *
113
+ * @private
114
+ */
115
+ export function isTextVerticalType(value) {
116
+ return TEXT_VERTICAL_TYPE_SET.has(value);
117
+ }
118
+ /**
119
+ * Whether `value` is a schema `ST_TextWrappingType` token (`none`|`square`).
120
+ *
121
+ * @private
122
+ */
123
+ export function isTextBodyWrap(value) {
124
+ return TEXT_BODY_WRAP_SET.has(value);
125
+ }
126
+ function elementChildren(el) {
127
+ return el.children.filter(function (c) { return c.kind === 'element'; });
128
+ }
129
+ function isElement(el, namespaceUri, localName) {
130
+ return el.namespaceUri === namespaceUri && el.localName === localName;
131
+ }
132
+ /**
133
+ * Shallow child lookup under `root` (direct element children only).
134
+ *
135
+ * @private
136
+ */
137
+ export function findBodyPrChild(root, namespaceUri, localName) {
138
+ var e_1, _a;
139
+ try {
140
+ for (var _b = __values(elementChildren(root)), _c = _b.next(); !_c.done; _c = _b.next()) {
141
+ var child = _c.value;
142
+ if (isElement(child, namespaceUri, localName)) {
143
+ return child;
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 undefined;
155
+ }
156
+ /**
157
+ * Deep first-match walker under `root` (including `root` itself).
158
+ * Local so residual dual-AC hosts can be searched without circular imports.
159
+ */
160
+ function findDeepElement(root, namespaceUri, localName) {
161
+ var e_2, _a;
162
+ if (isElement(root, namespaceUri, localName)) {
163
+ return root;
164
+ }
165
+ try {
166
+ for (var _b = __values(elementChildren(root)), _c = _b.next(); !_c.done; _c = _b.next()) {
167
+ var child = _c.value;
168
+ var found = findDeepElement(child, namespaceUri, localName);
169
+ if (found !== undefined) {
170
+ return found;
171
+ }
172
+ }
173
+ }
174
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
175
+ finally {
176
+ try {
177
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
178
+ }
179
+ finally { if (e_2) throw e_2.error; }
180
+ }
181
+ return undefined;
182
+ }
183
+ function attrValue(el, localName) {
184
+ var __ts33_0;
185
+ return ((__ts33_0 = el.attributes.find(function (a) { return a.namespaceUri === '' && a.localName === localName; })), __ts33_0 == null ? undefined : __ts33_0.value);
186
+ }
187
+ /**
188
+ * Parse OOXML boolean attribute wire (`"1"`/`"true"`/`"0"`/`"false"`).
189
+ * Returns `undefined` when absent or unrecognized.
190
+ */
191
+ function parseXmlBoolean(raw) {
192
+ if (raw === undefined) {
193
+ return undefined;
194
+ }
195
+ if (raw === '1' || raw === 'true') {
196
+ return true;
197
+ }
198
+ if (raw === '0' || raw === 'false') {
199
+ return false;
200
+ }
201
+ return undefined;
202
+ }
203
+ /**
204
+ * Parse `ST_Coordinate32` EMU attribute to branded Point.
205
+ * Accepts non-negative integers only (insets are physical margins ≥ 0).
206
+ * Uses `emuToPoint()` so 0 is legal (unlike `lengthToEmus`, which requires > 0).
207
+ */
208
+ function parseInsetEmu(raw) {
209
+ if (raw === undefined || !/^-?\d+$/.test(raw)) {
210
+ return undefined;
211
+ }
212
+ var n = Number.parseInt(raw, 10);
213
+ if (!Number.isFinite(n) || n < 0) {
214
+ return undefined;
215
+ }
216
+ return emuToPoint(n);
217
+ }
218
+ /**
219
+ * Parse percent-ish autofit attributes.
220
+ * Accepts either plain decimal (`100000`) or percent-string (`100%`).
221
+ * fontScale schema range is 1000…100000 when decimal.
222
+ */
223
+ function parsePercentAttr(raw) {
224
+ if (raw === undefined) {
225
+ return undefined;
226
+ }
227
+ if (/^\d+%$/.test(raw)) {
228
+ var pct = Number.parseInt(raw.slice(0, -1), 10);
229
+ if (!Number.isFinite(pct)) {
230
+ return undefined;
231
+ }
232
+ // Map "100%" → 100000, "50%" → 50000 (percent × 1000).
233
+ return pct * 1000;
234
+ }
235
+ if (/^\d+$/.test(raw)) {
236
+ return Number.parseInt(raw, 10);
237
+ }
238
+ return undefined;
239
+ }
240
+ function parseAutoFit(bodyPr) {
241
+ if (findBodyPrChild(bodyPr, A_NS, 'noAutofit') !== undefined) {
242
+ return { kind: 'none' };
243
+ }
244
+ if (findBodyPrChild(bodyPr, A_NS, 'spAutoFit') !== undefined) {
245
+ return { kind: 'shape' };
246
+ }
247
+ var norm = findBodyPrChild(bodyPr, A_NS, 'normAutofit');
248
+ if (norm !== undefined) {
249
+ var fontScale = parsePercentAttr(attrValue(norm, 'fontScale'));
250
+ var lineSpaceReduction = parsePercentAttr(attrValue(norm, 'lnSpcReduction'));
251
+ var result = { kind: 'normal' };
252
+ if (fontScale !== undefined) {
253
+ result.fontScale = fontScale;
254
+ }
255
+ if (lineSpaceReduction !== undefined) {
256
+ result.lineSpaceReduction = lineSpaceReduction;
257
+ }
258
+ return result;
259
+ }
260
+ return undefined;
261
+ }
262
+ /**
263
+ * Locate `wps:bodyPr` under a residual dual-AC drawing host.
264
+ *
265
+ * @private
266
+ */
267
+ export function findBodyPrElement(residual) {
268
+ return findDeepElement(residual, WPS_NS, 'bodyPr');
269
+ }
270
+ /**
271
+ * Locate `wps:txbx` under a residual dual-AC drawing host.
272
+ *
273
+ * @private
274
+ */
275
+ export function findTxbxElement(residual) {
276
+ return findDeepElement(residual, WPS_NS, 'txbx');
277
+ }
278
+ /**
279
+ * Locate `w:txbxContent` under a residual host (WML namespace, local `txbxContent`).
280
+ *
281
+ * @private
282
+ */
283
+ export function findTxbxContentElement(residual) {
284
+ var e_3, _a;
285
+ // Walk from txbx first when present; fall back to deep search.
286
+ var txbx = findTxbxElement(residual);
287
+ if (txbx !== undefined) {
288
+ try {
289
+ for (var _b = __values(elementChildren(txbx)), _c = _b.next(); !_c.done; _c = _b.next()) {
290
+ var child = _c.value;
291
+ if (child.localName === 'txbxContent') {
292
+ return child;
293
+ }
294
+ }
295
+ }
296
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
297
+ finally {
298
+ try {
299
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
300
+ }
301
+ finally { if (e_3) throw e_3.error; }
302
+ }
303
+ }
304
+ // Deep fallback (any namespace with localName txbxContent).
305
+ var walk = function (root) {
306
+ var e_4, _a;
307
+ if (root.localName === 'txbxContent') {
308
+ return root;
309
+ }
310
+ try {
311
+ for (var _b = __values(elementChildren(root)), _c = _b.next(); !_c.done; _c = _b.next()) {
312
+ var child = _c.value;
313
+ var found = walk(child);
314
+ if (found !== undefined) {
315
+ return found;
316
+ }
317
+ }
318
+ }
319
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
320
+ finally {
321
+ try {
322
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
323
+ }
324
+ finally { if (e_4) throw e_4.error; }
325
+ }
326
+ return undefined;
327
+ };
328
+ return walk(residual);
329
+ }
330
+ /**
331
+ * Read `wps:bodyPr` MVP state from residual DrawingML host.
332
+ *
333
+ * Residual hosts are dual MC AlternateContent trees, so `wps:bodyPr` is
334
+ * located with a deep walk. Children of the found bodyPr stay shallow.
335
+ *
336
+ * Cites: `CT_TextBodyProperties` + `EG_TextAutofit` (dml-main.xsd);
337
+ * `CT_WordprocessingShape/bodyPr` (dml-wordprocessingDrawing.xsd).
338
+ *
339
+ * @private
340
+ */
341
+ export function readBodyPropertiesState(residual) {
342
+ var bodyPr = findBodyPrElement(residual);
343
+ if (bodyPr === undefined) {
344
+ return {
345
+ verticalAnchor: undefined,
346
+ anchorCenter: undefined,
347
+ textDirection: undefined,
348
+ textWrapInside: undefined,
349
+ verticalOverflow: undefined,
350
+ horizontalOverflow: undefined,
351
+ fromWordArt: undefined,
352
+ insets: undefined,
353
+ autoFit: undefined,
354
+ hasPresetTextWarp: false,
355
+ residual: false,
356
+ };
357
+ }
358
+ var anchorRaw = attrValue(bodyPr, 'anchor');
359
+ var vertRaw = attrValue(bodyPr, 'vert');
360
+ var wrapRaw = attrValue(bodyPr, 'wrap');
361
+ var vertOverflowRaw = attrValue(bodyPr, 'vertOverflow');
362
+ var horzOverflowRaw = attrValue(bodyPr, 'horzOverflow');
363
+ var left = parseInsetEmu(attrValue(bodyPr, 'lIns'));
364
+ var top = parseInsetEmu(attrValue(bodyPr, 'tIns'));
365
+ var right = parseInsetEmu(attrValue(bodyPr, 'rIns'));
366
+ var bottom = parseInsetEmu(attrValue(bodyPr, 'bIns'));
367
+ var hasAnyInset = left !== undefined || top !== undefined || right !== undefined || bottom !== undefined;
368
+ var insets;
369
+ if (hasAnyInset) {
370
+ var insetOut = {};
371
+ if (left !== undefined) {
372
+ insetOut.left = left;
373
+ }
374
+ if (top !== undefined) {
375
+ insetOut.top = top;
376
+ }
377
+ if (right !== undefined) {
378
+ insetOut.right = right;
379
+ }
380
+ if (bottom !== undefined) {
381
+ insetOut.bottom = bottom;
382
+ }
383
+ insets = insetOut;
384
+ }
385
+ var hasPresetTextWarp = findBodyPrChild(bodyPr, A_NS, 'prstTxWarp') !== undefined;
386
+ var hasScene3d = findBodyPrChild(bodyPr, A_NS, 'scene3d') !== undefined;
387
+ var hasSp3d = findBodyPrChild(bodyPr, A_NS, 'sp3d') !== undefined;
388
+ var hasFlatTx = findBodyPrChild(bodyPr, A_NS, 'flatTx') !== undefined;
389
+ var hasExtLst = findBodyPrChild(bodyPr, A_NS, 'extLst') !== undefined;
390
+ // Modeled attrs only; any other bodyPr attrs count as residual.
391
+ var modeledAttrNames = new Set([
392
+ 'anchor',
393
+ 'anchorCtr',
394
+ 'vert',
395
+ 'wrap',
396
+ 'vertOverflow',
397
+ 'horzOverflow',
398
+ 'fromWordArt',
399
+ 'lIns',
400
+ 'tIns',
401
+ 'rIns',
402
+ 'bIns',
403
+ ]);
404
+ var hasUnknownAttrs = bodyPr.attributes.some(function (a) { return a.namespaceUri === '' && !modeledAttrNames.has(a.localName); });
405
+ return {
406
+ verticalAnchor: anchorRaw !== undefined && isTextAnchoring(anchorRaw) ? anchorRaw : undefined,
407
+ anchorCenter: parseXmlBoolean(attrValue(bodyPr, 'anchorCtr')),
408
+ textDirection: vertRaw !== undefined && isTextVerticalType(vertRaw) ? vertRaw : undefined,
409
+ textWrapInside: wrapRaw !== undefined && isTextBodyWrap(wrapRaw) ? wrapRaw : undefined,
410
+ verticalOverflow: vertOverflowRaw !== undefined && isTextVertOverflow(vertOverflowRaw)
411
+ ? vertOverflowRaw
412
+ : undefined,
413
+ horizontalOverflow: horzOverflowRaw !== undefined && isTextHorzOverflow(horzOverflowRaw)
414
+ ? horzOverflowRaw
415
+ : undefined,
416
+ fromWordArt: parseXmlBoolean(attrValue(bodyPr, 'fromWordArt')),
417
+ insets: insets,
418
+ autoFit: parseAutoFit(bodyPr),
419
+ hasPresetTextWarp: hasPresetTextWarp,
420
+ residual: hasPresetTextWarp || hasScene3d || hasSp3d || hasFlatTx || hasExtLst || hasUnknownAttrs,
421
+ };
422
+ }
423
+ function buildEmptyAElement(localName) {
424
+ return {
425
+ kind: 'element',
426
+ namespaceUri: A_NS,
427
+ localName: localName,
428
+ prefix: 'a',
429
+ attributes: [],
430
+ namespaceDeclarations: [],
431
+ children: [],
432
+ };
433
+ }
434
+ function buildNormAutofit(fontScale, lineSpaceReduction) {
435
+ var attributes = [];
436
+ if (fontScale !== undefined) {
437
+ if (!Number.isInteger(fontScale) ||
438
+ fontScale < FONT_SCALE_MIN ||
439
+ fontScale > FONT_SCALE_MAX) {
440
+ throw new DocxError('content/invalid-shape', "normAutofit fontScale " + String(fontScale) + " outside ST_TextFontScalePercent range " + String(FONT_SCALE_MIN) + "\u2026" + String(FONT_SCALE_MAX));
441
+ }
442
+ attributes.push({
443
+ namespaceUri: '',
444
+ localName: 'fontScale',
445
+ prefix: '',
446
+ value: String(fontScale),
447
+ });
448
+ }
449
+ if (lineSpaceReduction !== undefined) {
450
+ if (!Number.isInteger(lineSpaceReduction) || lineSpaceReduction < 0) {
451
+ throw new DocxError('content/invalid-shape', "normAutofit lnSpcReduction " + String(lineSpaceReduction) + " must be a non-negative integer");
452
+ }
453
+ attributes.push({
454
+ namespaceUri: '',
455
+ localName: 'lnSpcReduction',
456
+ prefix: '',
457
+ value: String(lineSpaceReduction),
458
+ });
459
+ }
460
+ return {
461
+ kind: 'element',
462
+ namespaceUri: A_NS,
463
+ localName: 'normAutofit',
464
+ prefix: 'a',
465
+ attributes: attributes,
466
+ namespaceDeclarations: [],
467
+ children: [],
468
+ };
469
+ }
470
+ function buildAutoFitChild(autoFit) {
471
+ if (autoFit.kind === 'none') {
472
+ return buildEmptyAElement('noAutofit');
473
+ }
474
+ if (autoFit.kind === 'shape') {
475
+ return buildEmptyAElement('spAutoFit');
476
+ }
477
+ return buildNormAutofit(autoFit.fontScale, autoFit.lineSpaceReduction);
478
+ }
479
+ /**
480
+ * Convert inset points to a non-negative wire EMU integer string.
481
+ * 0 is legal for insets; uses pointToCoordinateEmus (allows 0).
482
+ */
483
+ function insetToEmuString(value) {
484
+ var emu = pointToCoordinateEmus(value);
485
+ if (!Number.isInteger(emu) || emu < 0) {
486
+ throw new DocxError('content/invalid-shape', "bodyPr inset must be a non-negative point value convertible to EMU, got " + String(value));
487
+ }
488
+ return String(emu);
489
+ }
490
+ /**
491
+ * Build `wps:bodyPr` from the modeled MVP subset.
492
+ *
493
+ * Always emits the element (schema requires bodyPr on `wps:wsp`). When no
494
+ * modeled fields are set, emits empty `<wps:bodyPr/>`.
495
+ *
496
+ * Autofit children use the DrawingML `a:` namespace. Residual warp/3d/extLst
497
+ * are not re-emitted on the full structure rebuild path.
498
+ *
499
+ * @private
500
+ */
501
+ export function buildBodyPrElement(state) {
502
+ var attributes = [];
503
+ if (state.verticalAnchor !== undefined) {
504
+ if (!isTextAnchoring(state.verticalAnchor)) {
505
+ throw new DocxError('content/invalid-shape', "Invalid bodyPr anchor \"" + String(state.verticalAnchor) + "\"");
506
+ }
507
+ attributes.push({
508
+ namespaceUri: '',
509
+ localName: 'anchor',
510
+ prefix: '',
511
+ value: state.verticalAnchor,
512
+ });
513
+ }
514
+ if (state.anchorCenter !== undefined) {
515
+ attributes.push({
516
+ namespaceUri: '',
517
+ localName: 'anchorCtr',
518
+ prefix: '',
519
+ value: state.anchorCenter ? '1' : '0',
520
+ });
521
+ }
522
+ if (state.textDirection !== undefined) {
523
+ if (!isTextVerticalType(state.textDirection)) {
524
+ throw new DocxError('content/invalid-shape', "Invalid bodyPr vert \"" + String(state.textDirection) + "\"");
525
+ }
526
+ attributes.push({
527
+ namespaceUri: '',
528
+ localName: 'vert',
529
+ prefix: '',
530
+ value: state.textDirection,
531
+ });
532
+ }
533
+ if (state.textWrapInside !== undefined) {
534
+ if (!isTextBodyWrap(state.textWrapInside)) {
535
+ throw new DocxError('content/invalid-shape', "Invalid bodyPr wrap \"" + String(state.textWrapInside) + "\" (schema: none|square only)");
536
+ }
537
+ attributes.push({
538
+ namespaceUri: '',
539
+ localName: 'wrap',
540
+ prefix: '',
541
+ value: state.textWrapInside,
542
+ });
543
+ }
544
+ if (state.verticalOverflow !== undefined) {
545
+ if (!isTextVertOverflow(state.verticalOverflow)) {
546
+ throw new DocxError('content/invalid-shape', "Invalid bodyPr vertOverflow \"" + String(state.verticalOverflow) + "\"");
547
+ }
548
+ attributes.push({
549
+ namespaceUri: '',
550
+ localName: 'vertOverflow',
551
+ prefix: '',
552
+ value: state.verticalOverflow,
553
+ });
554
+ }
555
+ if (state.horizontalOverflow !== undefined) {
556
+ if (!isTextHorzOverflow(state.horizontalOverflow)) {
557
+ throw new DocxError('content/invalid-shape', "Invalid bodyPr horzOverflow \"" + String(state.horizontalOverflow) + "\"");
558
+ }
559
+ attributes.push({
560
+ namespaceUri: '',
561
+ localName: 'horzOverflow',
562
+ prefix: '',
563
+ value: state.horizontalOverflow,
564
+ });
565
+ }
566
+ if (state.fromWordArt !== undefined) {
567
+ attributes.push({
568
+ namespaceUri: '',
569
+ localName: 'fromWordArt',
570
+ prefix: '',
571
+ value: state.fromWordArt ? '1' : '0',
572
+ });
573
+ }
574
+ var insets = state.insets;
575
+ if (insets !== undefined) {
576
+ if (insets.left !== undefined) {
577
+ attributes.push({
578
+ namespaceUri: '',
579
+ localName: 'lIns',
580
+ prefix: '',
581
+ value: insetToEmuString(insets.left),
582
+ });
583
+ }
584
+ if (insets.top !== undefined) {
585
+ attributes.push({
586
+ namespaceUri: '',
587
+ localName: 'tIns',
588
+ prefix: '',
589
+ value: insetToEmuString(insets.top),
590
+ });
591
+ }
592
+ if (insets.right !== undefined) {
593
+ attributes.push({
594
+ namespaceUri: '',
595
+ localName: 'rIns',
596
+ prefix: '',
597
+ value: insetToEmuString(insets.right),
598
+ });
599
+ }
600
+ if (insets.bottom !== undefined) {
601
+ attributes.push({
602
+ namespaceUri: '',
603
+ localName: 'bIns',
604
+ prefix: '',
605
+ value: insetToEmuString(insets.bottom),
606
+ });
607
+ }
608
+ }
609
+ var children = [];
610
+ if (state.autoFit !== undefined) {
611
+ children.push(buildAutoFitChild(state.autoFit));
612
+ }
613
+ return {
614
+ kind: 'element',
615
+ namespaceUri: WPS_NS,
616
+ localName: 'bodyPr',
617
+ prefix: 'wps',
618
+ attributes: attributes,
619
+ namespaceDeclarations: [],
620
+ children: children,
621
+ };
622
+ }
623
+ /**
624
+ * Whether any modeled bodyPr field is present (used by encode path to decide
625
+ * empty vs populated bodyPr emission — empty is still required on wsp).
626
+ *
627
+ * @private
628
+ */
629
+ export function hasModeledBodyPrFields(state) {
630
+ return (state.verticalAnchor !== undefined ||
631
+ state.anchorCenter !== undefined ||
632
+ state.textDirection !== undefined ||
633
+ state.textWrapInside !== undefined ||
634
+ state.verticalOverflow !== undefined ||
635
+ state.horizontalOverflow !== undefined ||
636
+ state.fromWordArt !== undefined ||
637
+ state.insets !== undefined ||
638
+ state.autoFit !== undefined);
639
+ }
640
+ /**
641
+ * Public text direction inside a shape text frame (`wps:bodyPr/@vert`).
642
+ * @public
643
+ */
644
+ export var TextDirection = {
645
+ Horizontal: 'horz',
646
+ Vertical: 'vert',
647
+ Vertical270: 'vert270',
648
+ WordArtVertical: 'wordArtVert',
649
+ EastAsianVertical: 'eaVert',
650
+ MongolianVertical: 'mongolianVert',
651
+ WordArtVerticalRtl: 'wordArtVertRtl',
652
+ };
653
+ /**
654
+ * Public vertical alignment of text inside a shape text frame (`wps:bodyPr/@anchor`).
655
+ * @public
656
+ */
657
+ export var TextVerticalAlignment = {
658
+ Top: 't',
659
+ Center: 'ctr',
660
+ Bottom: 'b',
661
+ Justified: 'just',
662
+ Distributed: 'dist',
663
+ };