docx 7.0.0 → 7.1.0

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 (493) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +120 -123
  3. package/build/convenience-functions.d.ts +4 -4
  4. package/build/convenience-functions.spec.d.ts +1 -1
  5. package/build/export/formatter.d.ts +4 -4
  6. package/build/export/formatter.spec.d.ts +1 -1
  7. package/build/export/index.d.ts +1 -1
  8. package/build/export/packer/image-replacer.d.ts +5 -5
  9. package/build/export/packer/image-replacer.spec.d.ts +1 -1
  10. package/build/export/packer/next-compiler.d.ts +10 -10
  11. package/build/export/packer/next-compiler.spec.d.ts +1 -1
  12. package/build/export/packer/numbering-replacer.d.ts +4 -4
  13. package/build/export/packer/packer.d.ts +8 -8
  14. package/build/export/packer/packer.spec.d.ts +1 -1
  15. package/build/file/app-properties/app-properties-attributes.d.ts +10 -10
  16. package/build/file/app-properties/app-properties.d.ts +4 -4
  17. package/build/file/border/border.d.ts +39 -39
  18. package/build/file/border/border.spec.d.ts +1 -1
  19. package/build/file/border/index.d.ts +1 -1
  20. package/build/file/content-types/content-types-attributes.d.ts +8 -8
  21. package/build/file/content-types/content-types.d.ts +6 -6
  22. package/build/file/content-types/content-types.spec.d.ts +1 -1
  23. package/build/file/content-types/default/default-attributes.d.ts +10 -10
  24. package/build/file/content-types/default/default.d.ts +4 -4
  25. package/build/file/content-types/override/override-attributes.d.ts +10 -10
  26. package/build/file/content-types/override/override.d.ts +4 -4
  27. package/build/file/core-properties/index.d.ts +1 -1
  28. package/build/file/core-properties/properties.d.ts +36 -36
  29. package/build/file/core-properties/properties.spec.d.ts +1 -1
  30. package/build/file/custom-properties/custom-properties-attributes.d.ts +10 -10
  31. package/build/file/custom-properties/custom-properties.d.ts +9 -9
  32. package/build/file/custom-properties/custom-properties.spec.d.ts +1 -1
  33. package/build/file/custom-properties/custom-property-attributes.d.ts +12 -12
  34. package/build/file/custom-properties/custom-property.d.ts +11 -11
  35. package/build/file/custom-properties/index.d.ts +2 -2
  36. package/build/file/document/body/body.d.ts +10 -10
  37. package/build/file/document/body/body.spec.d.ts +1 -1
  38. package/build/file/document/body/index.d.ts +2 -2
  39. package/build/file/document/body/section-properties/index.d.ts +2 -2
  40. package/build/file/document/body/section-properties/properties/column.d.ts +14 -14
  41. package/build/file/document/body/section-properties/properties/columns.d.ts +20 -20
  42. package/build/file/document/body/section-properties/properties/columns.spec.d.ts +1 -1
  43. package/build/file/document/body/section-properties/properties/doc-grid.d.ts +12 -12
  44. package/build/file/document/body/section-properties/properties/header-footer-reference.d.ts +17 -17
  45. package/build/file/document/body/section-properties/properties/header-footer-reference.spec.d.ts +1 -1
  46. package/build/file/document/body/section-properties/properties/index.d.ts +11 -11
  47. package/build/file/document/body/section-properties/properties/line-number.d.ts +23 -23
  48. package/build/file/document/body/section-properties/properties/page-borders.d.ts +30 -30
  49. package/build/file/document/body/section-properties/properties/page-borders.spec.d.ts +1 -1
  50. package/build/file/document/body/section-properties/properties/page-margin.d.ts +24 -24
  51. package/build/file/document/body/section-properties/properties/page-number.d.ts +24 -24
  52. package/build/file/document/body/section-properties/properties/page-size.d.ts +20 -20
  53. package/build/file/document/body/section-properties/properties/page-size.spec.d.ts +1 -1
  54. package/build/file/document/body/section-properties/properties/section-type.d.ts +18 -18
  55. package/build/file/document/body/section-properties/properties/section-type.spec.d.ts +1 -1
  56. package/build/file/document/body/section-properties/section-properties.d.ts +51 -51
  57. package/build/file/document/body/section-properties/section-properties.spec.d.ts +1 -1
  58. package/build/file/document/document-attributes.d.ts +53 -53
  59. package/build/file/document/document-background/document-background.d.ts +23 -23
  60. package/build/file/document/document-background/document-background.spec.d.ts +1 -1
  61. package/build/file/document/document-background/index.d.ts +1 -1
  62. package/build/file/document/document.d.ts +15 -15
  63. package/build/file/document/document.spec.d.ts +1 -1
  64. package/build/file/document/index.d.ts +4 -4
  65. package/build/file/document-wrapper.d.ts +16 -16
  66. package/build/file/document-wrapper.spec.d.ts +1 -1
  67. package/build/file/drawing/anchor/anchor-attributes.d.ts +24 -24
  68. package/build/file/drawing/anchor/anchor.d.ts +6 -6
  69. package/build/file/drawing/anchor/anchor.spec.d.ts +1 -1
  70. package/build/file/drawing/anchor/index.d.ts +2 -2
  71. package/build/file/drawing/doc-properties/doc-properties-attributes.d.ts +12 -12
  72. package/build/file/drawing/doc-properties/doc-properties.d.ts +4 -4
  73. package/build/file/drawing/drawing.d.ts +16 -16
  74. package/build/file/drawing/drawing.spec.d.ts +1 -1
  75. package/build/file/drawing/effect-extent/effect-extent-attributes.d.ts +14 -14
  76. package/build/file/drawing/effect-extent/effect-extent.d.ts +4 -4
  77. package/build/file/drawing/extent/extent-attributes.d.ts +10 -10
  78. package/build/file/drawing/extent/extent.d.ts +5 -5
  79. package/build/file/drawing/floating/align.d.ts +5 -5
  80. package/build/file/drawing/floating/align.spec.d.ts +1 -1
  81. package/build/file/drawing/floating/floating-position.d.ts +49 -49
  82. package/build/file/drawing/floating/horizontal-position.d.ts +5 -5
  83. package/build/file/drawing/floating/horizontal-position.spec.d.ts +1 -1
  84. package/build/file/drawing/floating/index.d.ts +4 -4
  85. package/build/file/drawing/floating/position-offset.d.ts +4 -4
  86. package/build/file/drawing/floating/position-offset.spec.d.ts +1 -1
  87. package/build/file/drawing/floating/simple-pos.d.ts +4 -4
  88. package/build/file/drawing/floating/simple-pos.spec.d.ts +1 -1
  89. package/build/file/drawing/floating/vertical-position.d.ts +5 -5
  90. package/build/file/drawing/floating/vertical-position.spec.d.ts +1 -1
  91. package/build/file/drawing/graphic-frame/graphic-frame-locks/graphic-frame-lock-attributes.d.ts +10 -10
  92. package/build/file/drawing/graphic-frame/graphic-frame-locks/graphic-frame-locks.d.ts +4 -4
  93. package/build/file/drawing/graphic-frame/graphic-frame-properties.d.ts +4 -4
  94. package/build/file/drawing/index.d.ts +3 -3
  95. package/build/file/drawing/inline/graphic/graphic-data/graphic-data-attribute.d.ts +8 -8
  96. package/build/file/drawing/inline/graphic/graphic-data/graphic-data.d.ts +6 -6
  97. package/build/file/drawing/inline/graphic/graphic-data/index.d.ts +1 -1
  98. package/build/file/drawing/inline/graphic/graphic-data/pic/blip/blip-fill.d.ts +5 -5
  99. package/build/file/drawing/inline/graphic/graphic-data/pic/blip/blip.d.ts +5 -5
  100. package/build/file/drawing/inline/graphic/graphic-data/pic/blip/source-rectangle.d.ts +4 -4
  101. package/build/file/drawing/inline/graphic/graphic-data/pic/blip/stretch.d.ts +4 -4
  102. package/build/file/drawing/inline/graphic/graphic-data/pic/index.d.ts +1 -1
  103. package/build/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/child-non-visual-pic-properties/child-non-visual-pic-properties.d.ts +4 -4
  104. package/build/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/child-non-visual-pic-properties/pic-locks/pic-locks-attributes.d.ts +10 -10
  105. package/build/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/child-non-visual-pic-properties/pic-locks/pic-locks.d.ts +4 -4
  106. package/build/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-pic-properties.d.ts +4 -4
  107. package/build/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-properties/non-visual-properties-attributes.d.ts +12 -12
  108. package/build/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-properties/non-visual-properties.d.ts +4 -4
  109. package/build/file/drawing/inline/graphic/graphic-data/pic/pic-attributes.d.ts +8 -8
  110. package/build/file/drawing/inline/graphic/graphic-data/pic/pic.d.ts +5 -5
  111. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/extents/extents-attributes.d.ts +10 -10
  112. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/extents/extents.d.ts +5 -5
  113. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/form.d.ts +17 -17
  114. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/index.d.ts +1 -1
  115. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/offset/off-attributes.d.ts +10 -10
  116. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/offset/off.d.ts +4 -4
  117. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form.spec.d.ts +1 -1
  118. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/outline/no-fill.d.ts +4 -4
  119. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/outline/no-fill.spec.d.ts +1 -1
  120. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/outline/outline.d.ts +4 -4
  121. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/outline/outline.spec.d.ts +1 -1
  122. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/preset-geometry/adjustment-values/adjustment-values.d.ts +4 -4
  123. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/preset-geometry/preset-geometry-attributes.d.ts +8 -8
  124. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/preset-geometry/preset-geometry.d.ts +4 -4
  125. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/shape-properties-attributes.d.ts +8 -8
  126. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/shape-properties.d.ts +6 -6
  127. package/build/file/drawing/inline/graphic/graphic.d.ts +6 -6
  128. package/build/file/drawing/inline/graphic/index.d.ts +1 -1
  129. package/build/file/drawing/inline/index.d.ts +1 -1
  130. package/build/file/drawing/inline/inline-attributes.d.ts +10 -10
  131. package/build/file/drawing/inline/inline.d.ts +7 -7
  132. package/build/file/drawing/text-wrap/index.d.ts +5 -5
  133. package/build/file/drawing/text-wrap/text-wrapping.d.ts +18 -18
  134. package/build/file/drawing/text-wrap/wrap-none.d.ts +4 -4
  135. package/build/file/drawing/text-wrap/wrap-square.d.ts +6 -6
  136. package/build/file/drawing/text-wrap/wrap-tight.d.ts +5 -5
  137. package/build/file/drawing/text-wrap/wrap-top-and-bottom.d.ts +5 -5
  138. package/build/file/file-properties.d.ts +5 -5
  139. package/build/file/file.d.ts +69 -69
  140. package/build/file/file.spec.d.ts +1 -1
  141. package/build/file/footer/footer-attributes.d.ts +50 -50
  142. package/build/file/footer/footer.d.ts +9 -9
  143. package/build/file/footer/footer.spec.d.ts +1 -1
  144. package/build/file/footer/index.d.ts +1 -1
  145. package/build/file/footer-wrapper.d.ts +23 -23
  146. package/build/file/footer-wrapper.spec.d.ts +1 -1
  147. package/build/file/footnotes/footnote/footnote-attributes.d.ts +10 -10
  148. package/build/file/footnotes/footnote/footnote.d.ts +14 -14
  149. package/build/file/footnotes/footnote/footnote.spec.d.ts +1 -1
  150. package/build/file/footnotes/footnote/index.d.ts +1 -1
  151. package/build/file/footnotes/footnote/run/continuation-seperator-run.d.ts +4 -4
  152. package/build/file/footnotes/footnote/run/continuation-seperator.d.ts +4 -4
  153. package/build/file/footnotes/footnote/run/footnote-ref-run.d.ts +4 -4
  154. package/build/file/footnotes/footnote/run/footnote-ref.d.ts +4 -4
  155. package/build/file/footnotes/footnote/run/index.d.ts +1 -1
  156. package/build/file/footnotes/footnote/run/reference-run.d.ts +15 -15
  157. package/build/file/footnotes/footnote/run/seperator-run.d.ts +4 -4
  158. package/build/file/footnotes/footnote/run/seperator.d.ts +4 -4
  159. package/build/file/footnotes/footnotes-attributes.d.ts +40 -40
  160. package/build/file/footnotes/footnotes.d.ts +6 -6
  161. package/build/file/footnotes/index.d.ts +2 -2
  162. package/build/file/footnotes-wrapper.d.ts +10 -10
  163. package/build/file/footnotes-wrapper.spec.d.ts +1 -1
  164. package/build/file/header/header-attributes.d.ts +72 -72
  165. package/build/file/header/header.d.ts +9 -9
  166. package/build/file/header/header.spec.d.ts +1 -1
  167. package/build/file/header/index.d.ts +1 -1
  168. package/build/file/header-wrapper.d.ts +23 -23
  169. package/build/file/header-wrapper.spec.d.ts +1 -1
  170. package/build/file/header.d.ts +13 -13
  171. package/build/file/index.d.ts +21 -21
  172. package/build/file/media/data.d.ts +22 -22
  173. package/build/file/media/index.d.ts +2 -2
  174. package/build/file/media/media.d.ts +19 -19
  175. package/build/file/media/media.spec.d.ts +1 -1
  176. package/build/file/numbering/abstract-numbering.d.ts +6 -6
  177. package/build/file/numbering/abstract-numbering.spec.d.ts +1 -1
  178. package/build/file/numbering/concrete-numbering.spec.d.ts +1 -1
  179. package/build/file/numbering/index.d.ts +4 -4
  180. package/build/file/numbering/level.d.ts +47 -47
  181. package/build/file/numbering/multi-level-type.d.ts +4 -4
  182. package/build/file/numbering/num.d.ts +20 -20
  183. package/build/file/numbering/numbering.d.ts +19 -19
  184. package/build/file/numbering/numbering.spec.d.ts +1 -1
  185. package/build/file/paragraph/formatting/alignment.d.ts +21 -21
  186. package/build/file/paragraph/formatting/alignment.spec.d.ts +1 -1
  187. package/build/file/paragraph/formatting/border.d.ts +14 -14
  188. package/build/file/paragraph/formatting/border.spec.d.ts +1 -1
  189. package/build/file/paragraph/formatting/break.d.ts +11 -11
  190. package/build/file/paragraph/formatting/break.spec.d.ts +1 -1
  191. package/build/file/paragraph/formatting/indent.d.ts +12 -12
  192. package/build/file/paragraph/formatting/index.d.ts +8 -8
  193. package/build/file/paragraph/formatting/spacing.d.ts +17 -17
  194. package/build/file/paragraph/formatting/spacing.spec.d.ts +1 -1
  195. package/build/file/paragraph/formatting/style.d.ts +13 -13
  196. package/build/file/paragraph/formatting/style.spec.d.ts +1 -1
  197. package/build/file/paragraph/formatting/tab-stop.d.ts +39 -39
  198. package/build/file/paragraph/formatting/tab-stop.spec.d.ts +1 -1
  199. package/build/file/paragraph/formatting/unordered-list.d.ts +4 -4
  200. package/build/file/paragraph/formatting/unordered-list.spec.d.ts +1 -1
  201. package/build/file/paragraph/frame/frame-properties.d.ts +84 -84
  202. package/build/file/paragraph/frame/frame-properties.spec.d.ts +1 -1
  203. package/build/file/paragraph/frame/index.d.ts +1 -1
  204. package/build/file/paragraph/index.d.ts +7 -7
  205. package/build/file/paragraph/links/bookmark-attributes.d.ts +17 -17
  206. package/build/file/paragraph/links/bookmark.d.ts +17 -17
  207. package/build/file/paragraph/links/bookmark.spec.d.ts +1 -1
  208. package/build/file/paragraph/links/hyperlink-attributes.d.ts +13 -13
  209. package/build/file/paragraph/links/hyperlink.d.ts +26 -26
  210. package/build/file/paragraph/links/hyperlink.spec.d.ts +1 -1
  211. package/build/file/paragraph/links/index.d.ts +4 -4
  212. package/build/file/paragraph/links/outline-level.d.ts +5 -5
  213. package/build/file/paragraph/links/outline-level.spec.d.ts +1 -1
  214. package/build/file/paragraph/links/pageref-field-instruction.d.ts +5 -5
  215. package/build/file/paragraph/links/pageref-field-instruction.spec.d.ts +1 -1
  216. package/build/file/paragraph/links/pageref-properties.d.ts +4 -4
  217. package/build/file/paragraph/links/pageref.d.ts +5 -5
  218. package/build/file/paragraph/links/pageref.spec.d.ts +1 -1
  219. package/build/file/paragraph/math/brackets/index.d.ts +4 -4
  220. package/build/file/paragraph/math/brackets/math-angled-brackets.d.ts +7 -7
  221. package/build/file/paragraph/math/brackets/math-angled-brackets.spec.d.ts +1 -1
  222. package/build/file/paragraph/math/brackets/math-beginning-character.d.ts +4 -4
  223. package/build/file/paragraph/math/brackets/math-beginning-character.spec.d.ts +1 -1
  224. package/build/file/paragraph/math/brackets/math-bracket-properties.d.ts +7 -7
  225. package/build/file/paragraph/math/brackets/math-bracket-properties.spec.d.ts +1 -1
  226. package/build/file/paragraph/math/brackets/math-curly-brackets.d.ts +7 -7
  227. package/build/file/paragraph/math/brackets/math-curly-brackets.spec.d.ts +1 -1
  228. package/build/file/paragraph/math/brackets/math-ending-char.d.ts +4 -4
  229. package/build/file/paragraph/math/brackets/math-ending-character.spec.d.ts +1 -1
  230. package/build/file/paragraph/math/brackets/math-round-brackets.d.ts +7 -7
  231. package/build/file/paragraph/math/brackets/math-round-brackets.spec.d.ts +1 -1
  232. package/build/file/paragraph/math/brackets/math-square-brackets.d.ts +7 -7
  233. package/build/file/paragraph/math/brackets/math-square-brackets.spec.d.ts +1 -1
  234. package/build/file/paragraph/math/fraction/index.d.ts +3 -3
  235. package/build/file/paragraph/math/fraction/math-denominator.d.ts +5 -5
  236. package/build/file/paragraph/math/fraction/math-denominator.spec.d.ts +1 -1
  237. package/build/file/paragraph/math/fraction/math-fraction.d.ts +9 -9
  238. package/build/file/paragraph/math/fraction/math-fraction.spec.d.ts +1 -1
  239. package/build/file/paragraph/math/fraction/math-numerator.d.ts +5 -5
  240. package/build/file/paragraph/math/fraction/math-numerator.spec.d.ts +1 -1
  241. package/build/file/paragraph/math/function/index.d.ts +3 -3
  242. package/build/file/paragraph/math/function/math-function-name.d.ts +5 -5
  243. package/build/file/paragraph/math/function/math-function-name.spec.d.ts +1 -1
  244. package/build/file/paragraph/math/function/math-function-properties.d.ts +4 -4
  245. package/build/file/paragraph/math/function/math-function-properties.spec.d.ts +1 -1
  246. package/build/file/paragraph/math/function/math-function.d.ts +9 -9
  247. package/build/file/paragraph/math/function/math-function.spec.d.ts +1 -1
  248. package/build/file/paragraph/math/index.d.ts +9 -9
  249. package/build/file/paragraph/math/math-component.d.ts +9 -9
  250. package/build/file/paragraph/math/math-run.d.ts +4 -4
  251. package/build/file/paragraph/math/math-run.spec.d.ts +1 -1
  252. package/build/file/paragraph/math/math-text.d.ts +4 -4
  253. package/build/file/paragraph/math/math-text.spec.d.ts +1 -1
  254. package/build/file/paragraph/math/math.d.ts +8 -8
  255. package/build/file/paragraph/math/math.spec.d.ts +1 -1
  256. package/build/file/paragraph/math/n-ary/index.d.ts +7 -7
  257. package/build/file/paragraph/math/n-ary/math-accent-character.d.ts +4 -4
  258. package/build/file/paragraph/math/n-ary/math-accent-character.spec.d.ts +1 -1
  259. package/build/file/paragraph/math/n-ary/math-base.d.ts +5 -5
  260. package/build/file/paragraph/math/n-ary/math-base.spec.d.ts +1 -1
  261. package/build/file/paragraph/math/n-ary/math-limit-location.d.ts +4 -4
  262. package/build/file/paragraph/math/n-ary/math-limit-location.spec.d.ts +1 -1
  263. package/build/file/paragraph/math/n-ary/math-naray-properties.d.ts +4 -4
  264. package/build/file/paragraph/math/n-ary/math-naray-properties.spec.d.ts +1 -1
  265. package/build/file/paragraph/math/n-ary/math-sub-script-hide.d.ts +4 -4
  266. package/build/file/paragraph/math/n-ary/math-sub-script-hide.spec.d.ts +1 -1
  267. package/build/file/paragraph/math/n-ary/math-sub-script.d.ts +5 -5
  268. package/build/file/paragraph/math/n-ary/math-sub-script.spec.d.ts +1 -1
  269. package/build/file/paragraph/math/n-ary/math-sum.d.ts +10 -10
  270. package/build/file/paragraph/math/n-ary/math-sum.spec.d.ts +1 -1
  271. package/build/file/paragraph/math/n-ary/math-super-script-hide.d.ts +4 -4
  272. package/build/file/paragraph/math/n-ary/math-super-script-hide.spec.d.ts +1 -1
  273. package/build/file/paragraph/math/n-ary/math-super-script.d.ts +5 -5
  274. package/build/file/paragraph/math/n-ary/math-super-script.spec.d.ts +1 -1
  275. package/build/file/paragraph/math/radical/index.d.ts +3 -3
  276. package/build/file/paragraph/math/radical/math-degree-hide.d.ts +4 -4
  277. package/build/file/paragraph/math/radical/math-degree-hide.spec.d.ts +1 -1
  278. package/build/file/paragraph/math/radical/math-degree.d.ts +5 -5
  279. package/build/file/paragraph/math/radical/math-degree.spec.d.ts +1 -1
  280. package/build/file/paragraph/math/radical/math-radical-properties.d.ts +4 -4
  281. package/build/file/paragraph/math/radical/math-radical-properties.spec.d.ts +1 -1
  282. package/build/file/paragraph/math/radical/math-radical.d.ts +9 -9
  283. package/build/file/paragraph/math/radical/math-radical.spec.d.ts +1 -1
  284. package/build/file/paragraph/math/script/index.d.ts +4 -4
  285. package/build/file/paragraph/math/script/pre-sub-super-script/index.d.ts +2 -2
  286. package/build/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function-properties.d.ts +4 -4
  287. package/build/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function-properties.spec.d.ts +1 -1
  288. package/build/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function.d.ts +10 -10
  289. package/build/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function.spec.d.ts +1 -1
  290. package/build/file/paragraph/math/script/sub-script/index.d.ts +2 -2
  291. package/build/file/paragraph/math/script/sub-script/math-sub-script-function-properties.d.ts +4 -4
  292. package/build/file/paragraph/math/script/sub-script/math-sub-script-function-properties.spec.d.ts +1 -1
  293. package/build/file/paragraph/math/script/sub-script/math-sub-script-function.d.ts +9 -9
  294. package/build/file/paragraph/math/script/sub-script/math-sub-script-function.spec.d.ts +1 -1
  295. package/build/file/paragraph/math/script/sub-super-script/index.d.ts +2 -2
  296. package/build/file/paragraph/math/script/sub-super-script/math-sub-super-script-function-properties.d.ts +4 -4
  297. package/build/file/paragraph/math/script/sub-super-script/math-sub-super-script-function-properties.spec.d.ts +1 -1
  298. package/build/file/paragraph/math/script/sub-super-script/math-sub-super-script-function.d.ts +10 -10
  299. package/build/file/paragraph/math/script/sub-super-script/math-sub-super-script-function.spec.d.ts +1 -1
  300. package/build/file/paragraph/math/script/super-script/index.d.ts +2 -2
  301. package/build/file/paragraph/math/script/super-script/math-super-script-function-properties.d.ts +4 -4
  302. package/build/file/paragraph/math/script/super-script/math-super-script-function-properties.spec.d.ts +1 -1
  303. package/build/file/paragraph/math/script/super-script/math-super-script-function.d.ts +9 -9
  304. package/build/file/paragraph/math/script/super-script/math-super-script-function.spec.d.ts +1 -1
  305. package/build/file/paragraph/paragraph.d.ts +19 -19
  306. package/build/file/paragraph/paragraph.spec.d.ts +1 -1
  307. package/build/file/paragraph/properties.d.ts +54 -53
  308. package/build/file/paragraph/properties.spec.d.ts +1 -1
  309. package/build/file/paragraph/run/break.d.ts +4 -4
  310. package/build/file/paragraph/run/break.spec.d.ts +1 -1
  311. package/build/file/paragraph/run/emphasis-mark.d.ts +13 -13
  312. package/build/file/paragraph/run/emphasis-mark.spec.d.ts +1 -1
  313. package/build/file/paragraph/run/field.d.ts +10 -10
  314. package/build/file/paragraph/run/formatting.d.ts +13 -13
  315. package/build/file/paragraph/run/formatting.spec.d.ts +1 -1
  316. package/build/file/paragraph/run/image-run.d.ts +17 -17
  317. package/build/file/paragraph/run/image-run.spec.d.ts +1 -1
  318. package/build/file/paragraph/run/index.d.ts +11 -11
  319. package/build/file/paragraph/run/page-number.d.ts +10 -10
  320. package/build/file/paragraph/run/page-number.spec.d.ts +1 -1
  321. package/build/file/paragraph/run/properties.d.ts +47 -47
  322. package/build/file/paragraph/run/run-components/symbol.d.ts +4 -4
  323. package/build/file/paragraph/run/run-components/symbol.spec.d.ts +1 -1
  324. package/build/file/paragraph/run/run-components/text.d.ts +4 -4
  325. package/build/file/paragraph/run/run-components/text.spec.d.ts +1 -1
  326. package/build/file/paragraph/run/run-fonts.d.ts +12 -12
  327. package/build/file/paragraph/run/run-fonts.spec.d.ts +1 -1
  328. package/build/file/paragraph/run/run.d.ts +19 -19
  329. package/build/file/paragraph/run/run.spec.d.ts +1 -1
  330. package/build/file/paragraph/run/script.d.ts +10 -10
  331. package/build/file/paragraph/run/script.spec.d.ts +1 -1
  332. package/build/file/paragraph/run/sequential-identifier-instruction.d.ts +4 -4
  333. package/build/file/paragraph/run/sequential-identifier.d.ts +4 -4
  334. package/build/file/paragraph/run/sequential-identifier.spec.d.ts +1 -1
  335. package/build/file/paragraph/run/simple-field.d.ts +7 -7
  336. package/build/file/paragraph/run/simple-field.spec.d.ts +1 -1
  337. package/build/file/paragraph/run/symbol-run.d.ts +8 -8
  338. package/build/file/paragraph/run/symbol-run.spec.d.ts +1 -1
  339. package/build/file/paragraph/run/tab.d.ts +4 -4
  340. package/build/file/paragraph/run/tab.spec.d.ts +1 -1
  341. package/build/file/paragraph/run/text-run.d.ts +4 -4
  342. package/build/file/paragraph/run/text-run.spec.d.ts +1 -1
  343. package/build/file/paragraph/run/underline.d.ts +23 -23
  344. package/build/file/paragraph/run/underline.spec.d.ts +1 -1
  345. package/build/file/relationships/attributes.d.ts +8 -8
  346. package/build/file/relationships/index.d.ts +1 -1
  347. package/build/file/relationships/relationship/relationship-attributes.d.ts +14 -14
  348. package/build/file/relationships/relationship/relationship.d.ts +8 -8
  349. package/build/file/relationships/relationships.d.ts +8 -8
  350. package/build/file/relationships/relationships.spec.d.ts +1 -1
  351. package/build/file/settings/compatibility-setting/compatibility-setting.d.ts +15 -15
  352. package/build/file/settings/compatibility-setting/compatibility-setting.spec.d.ts +1 -1
  353. package/build/file/settings/compatibility.d.ts +8 -8
  354. package/build/file/settings/compatibility.spec.d.ts +1 -1
  355. package/build/file/settings/index.d.ts +1 -1
  356. package/build/file/settings/settings.d.ts +49 -49
  357. package/build/file/settings/settings.spec.d.ts +1 -1
  358. package/build/file/shading/index.d.ts +1 -1
  359. package/build/file/shading/shading.d.ts +48 -48
  360. package/build/file/shading/shading.spec.d.ts +1 -1
  361. package/build/file/shared/alignment.d.ts +14 -14
  362. package/build/file/shared/index.d.ts +2 -2
  363. package/build/file/shared/number-format.d.ts +64 -64
  364. package/build/file/space-type.d.ts +4 -4
  365. package/build/file/styles/defaults/document-defaults.d.ts +12 -12
  366. package/build/file/styles/defaults/document-defaults.spec.d.ts +1 -1
  367. package/build/file/styles/defaults/index.d.ts +3 -3
  368. package/build/file/styles/defaults/paragraph-properties.d.ts +5 -5
  369. package/build/file/styles/defaults/run-properties.d.ts +5 -5
  370. package/build/file/styles/external-styles-factory.d.ts +4 -4
  371. package/build/file/styles/external-styles-factory.spec.d.ts +1 -1
  372. package/build/file/styles/factory.d.ts +22 -22
  373. package/build/file/styles/index.d.ts +4 -4
  374. package/build/file/styles/latent-styles/exceptions.d.ts +20 -20
  375. package/build/file/styles/latent-styles/exceptions.spec.d.ts +1 -1
  376. package/build/file/styles/latent-styles/index.d.ts +1 -1
  377. package/build/file/styles/latent-styles/latent-styles.d.ts +5 -5
  378. package/build/file/styles/latent-styles/latent-styles.spec.d.ts +1 -1
  379. package/build/file/styles/sample/default-style.d.ts +102 -102
  380. package/build/file/styles/sample/default-style.spec.d.ts +1 -1
  381. package/build/file/styles/sample/index.d.ts +1 -1
  382. package/build/file/styles/style/character-style.d.ts +13 -13
  383. package/build/file/styles/style/character-style.spec.d.ts +1 -1
  384. package/build/file/styles/style/components.d.ts +11 -11
  385. package/build/file/styles/style/components.spec.d.ts +1 -1
  386. package/build/file/styles/style/default-styles.d.ts +44 -44
  387. package/build/file/styles/style/default-styles.spec.d.ts +1 -1
  388. package/build/file/styles/style/index.d.ts +4 -4
  389. package/build/file/styles/style/paragraph-style.d.ts +15 -15
  390. package/build/file/styles/style/paragraph-style.spec.d.ts +1 -1
  391. package/build/file/styles/style/style.d.ts +20 -20
  392. package/build/file/styles/style/style.spec.d.ts +1 -1
  393. package/build/file/styles/styles.d.ts +15 -15
  394. package/build/file/styles/styles.spec.d.ts +1 -1
  395. package/build/file/table/grid.d.ts +7 -7
  396. package/build/file/table/grid.spec.d.ts +1 -1
  397. package/build/file/table/index.d.ts +5 -5
  398. package/build/file/table/table-cell/index.d.ts +2 -2
  399. package/build/file/table/table-cell/table-cell-components.d.ts +31 -31
  400. package/build/file/table/table-cell/table-cell-properties.d.ts +20 -20
  401. package/build/file/table/table-cell/table-cell-properties.spec.d.ts +1 -1
  402. package/build/file/table/table-cell/table-cell.d.ts +12 -12
  403. package/build/file/table/table-cell/table-cell.spec.d.ts +1 -1
  404. package/build/file/table/table-properties/index.d.ts +5 -5
  405. package/build/file/table/table-properties/table-borders.d.ts +45 -45
  406. package/build/file/table/table-properties/table-borders.spec.d.ts +1 -1
  407. package/build/file/table/table-properties/table-cell-margin.d.ts +16 -16
  408. package/build/file/table/table-properties/table-cell-margin.spec.d.ts +1 -1
  409. package/build/file/table/table-properties/table-float-properties.d.ts +52 -52
  410. package/build/file/table/table-properties/table-float-properties.spec.d.ts +1 -1
  411. package/build/file/table/table-properties/table-layout.d.ts +8 -8
  412. package/build/file/table/table-properties/table-overlap.d.ts +8 -8
  413. package/build/file/table/table-properties/table-overlap.spec.d.ts +1 -1
  414. package/build/file/table/table-properties/table-properties.d.ts +23 -23
  415. package/build/file/table/table-properties/table-properties.spec.d.ts +1 -1
  416. package/build/file/table/table-row/index.d.ts +3 -3
  417. package/build/file/table/table-row/table-row-height.d.ts +18 -18
  418. package/build/file/table/table-row/table-row-properties.d.ts +13 -13
  419. package/build/file/table/table-row/table-row-properties.spec.d.ts +1 -1
  420. package/build/file/table/table-row/table-row.d.ts +16 -16
  421. package/build/file/table/table-row/table-row.spec.d.ts +1 -1
  422. package/build/file/table/table-width.d.ts +14 -14
  423. package/build/file/table/table.d.ts +23 -23
  424. package/build/file/table/table.spec.d.ts +1 -1
  425. package/build/file/table-of-contents/alias.d.ts +4 -4
  426. package/build/file/table-of-contents/field-instruction.d.ts +6 -6
  427. package/build/file/table-of-contents/index.d.ts +2 -2
  428. package/build/file/table-of-contents/sdt-content.d.ts +4 -4
  429. package/build/file/table-of-contents/sdt-properties.d.ts +4 -4
  430. package/build/file/table-of-contents/table-of-contents-properties.d.ts +23 -23
  431. package/build/file/table-of-contents/table-of-contents.d.ts +5 -5
  432. package/build/file/table-of-contents/table-of-contents.spec.d.ts +1 -1
  433. package/build/file/track-revision/index.d.ts +2 -2
  434. package/build/file/track-revision/track-revision-components/deleted-page-number.d.ts +10 -10
  435. package/build/file/track-revision/track-revision-components/deleted-page-number.spec.d.ts +1 -1
  436. package/build/file/track-revision/track-revision-components/deleted-text-run.d.ts +13 -13
  437. package/build/file/track-revision/track-revision-components/deleted-text-run.spec.d.ts +1 -1
  438. package/build/file/track-revision/track-revision-components/deleted-text.d.ts +4 -4
  439. package/build/file/track-revision/track-revision-components/deleted-text.spec.d.ts +1 -1
  440. package/build/file/track-revision/track-revision-components/inserted-text-run.d.ts +9 -9
  441. package/build/file/track-revision/track-revision-components/inserted-text-run.spec.d.ts +1 -1
  442. package/build/file/track-revision/track-revision.d.ts +13 -13
  443. package/build/file/values.d.ts +17 -17
  444. package/build/file/values.spec.d.ts +1 -1
  445. package/build/file/vertical-align/index.d.ts +1 -1
  446. package/build/file/vertical-align/vertical-align.d.ts +17 -17
  447. package/build/file/xml-components/attribute.spec.d.ts +1 -1
  448. package/build/file/xml-components/attributes.d.ts +46 -46
  449. package/build/file/xml-components/base.d.ts +12 -12
  450. package/build/file/xml-components/default-attributes.d.ts +12 -12
  451. package/build/file/xml-components/imported-xml-component.d.ts +14 -14
  452. package/build/file/xml-components/imported-xml-component.spec.d.ts +1 -1
  453. package/build/file/xml-components/index.d.ts +8 -8
  454. package/build/file/xml-components/initializable-xml-component.d.ts +4 -4
  455. package/build/file/xml-components/simple-elements.d.ts +16 -16
  456. package/build/file/xml-components/xml-component.d.ts +12 -12
  457. package/build/file/xml-components/xml-component.spec.d.ts +1 -1
  458. package/build/file/xml-components/xmlable-object.d.ts +7 -7
  459. package/build/import-dotx/import-dotx.d.ts +22 -22
  460. package/build/import-dotx/import-dotx.spec.d.ts +1 -1
  461. package/build/import-dotx/index.d.ts +1 -1
  462. package/build/index.d.ts +5 -5
  463. package/build/index.js +1 -1
  464. package/build/index.spec.d.ts +1 -1
  465. package/build/tests/utility.d.ts +3 -3
  466. package/package.json +100 -100
  467. package/src/export/packer/next-compiler.ts +409 -409
  468. package/src/file/document/body/section-properties/properties/column.ts +26 -26
  469. package/src/file/document/body/section-properties/properties/columns.spec.ts +38 -38
  470. package/src/file/document/body/section-properties/properties/columns.ts +47 -47
  471. package/src/file/document/body/section-properties/properties/index.ts +12 -12
  472. package/src/file/numbering/level.ts +181 -181
  473. package/src/file/numbering/numbering.spec.ts +137 -137
  474. package/src/file/numbering/numbering.ts +235 -235
  475. package/src/file/paragraph/formatting/break.spec.ts +65 -65
  476. package/src/file/paragraph/formatting/break.ts +43 -43
  477. package/src/file/paragraph/formatting/index.ts +8 -8
  478. package/src/file/paragraph/frame/frame-properties.ts +112 -112
  479. package/src/file/paragraph/links/bookmark.ts +43 -43
  480. package/src/file/paragraph/links/hyperlink.spec.ts +130 -130
  481. package/src/file/paragraph/links/hyperlink.ts +43 -43
  482. package/src/file/paragraph/links/index.ts +4 -4
  483. package/src/file/paragraph/links/pageref-field-instruction.spec.ts +24 -24
  484. package/src/file/paragraph/links/pageref-field-instruction.ts +25 -25
  485. package/src/file/paragraph/links/pageref-properties.ts +16 -16
  486. package/src/file/paragraph/links/pageref.spec.ts +76 -76
  487. package/src/file/paragraph/links/pageref.ts +13 -13
  488. package/src/file/paragraph/paragraph.spec.ts +989 -977
  489. package/src/file/paragraph/paragraph.ts +96 -96
  490. package/src/file/paragraph/properties.ts +190 -184
  491. package/src/file/table/table-width.ts +5 -1
  492. package/src/file/table/table.spec.ts +37 -2
  493. package/src/import-dotx/import-dotx.ts +263 -263
@@ -1,977 +1,989 @@
1
- import { assert, expect } from "chai";
2
- import { SinonStub, stub } from "sinon";
3
-
4
- import * as convenienceFunctions from "convenience-functions";
5
-
6
- import { Formatter } from "export/formatter";
7
- import { BorderStyle } from "file/border";
8
- import { EMPTY_OBJECT } from "file/xml-components";
9
-
10
- import { IViewWrapper } from "../document-wrapper";
11
- import { File } from "../file";
12
- import { ShadingType } from "../shading";
13
- import { HorizontalPositionAlign, VerticalPositionAlign } from "../shared";
14
- import { AlignmentType, HeadingLevel, LeaderType, PageBreak, TabStopPosition, TabStopType } from "./formatting";
15
- import { FrameAnchorType } from "./frame";
16
- import { Bookmark, ExternalHyperlink } from "./links";
17
- import { Paragraph } from "./paragraph";
18
- import { TextRun } from "./run";
19
-
20
- describe("Paragraph", () => {
21
- before(() => {
22
- stub(convenienceFunctions, "uniqueId").callsFake(() => {
23
- return "test-unique-id";
24
- });
25
- });
26
-
27
- after(() => {
28
- (convenienceFunctions.uniqueId as SinonStub).restore();
29
- });
30
-
31
- describe("#constructor()", () => {
32
- it("should create valid JSON", () => {
33
- const paragraph = new Paragraph("");
34
- const stringifiedJson = JSON.stringify(paragraph);
35
-
36
- try {
37
- JSON.parse(stringifiedJson);
38
- } catch (e) {
39
- assert.isTrue(false);
40
- }
41
- assert.isTrue(true);
42
- });
43
-
44
- it("should create have valid properties", () => {
45
- const paragraph = new Paragraph("");
46
- const stringifiedJson = JSON.stringify(paragraph);
47
- const newJson = JSON.parse(stringifiedJson);
48
- assert.equal(newJson.root[0].rootKey, "w:pPr");
49
- });
50
- });
51
-
52
- describe("#heading1()", () => {
53
- it("should add heading style to JSON", () => {
54
- const paragraph = new Paragraph({
55
- heading: HeadingLevel.HEADING_1,
56
- });
57
- const tree = new Formatter().format(paragraph);
58
- expect(tree).to.deep.equal({
59
- "w:p": [
60
- {
61
- "w:pPr": [{ "w:pStyle": { _attr: { "w:val": "Heading1" } } }],
62
- },
63
- ],
64
- });
65
- });
66
- });
67
-
68
- describe("#heading2()", () => {
69
- it("should add heading style to JSON", () => {
70
- const paragraph = new Paragraph({
71
- heading: HeadingLevel.HEADING_2,
72
- });
73
- const tree = new Formatter().format(paragraph);
74
- expect(tree).to.deep.equal({
75
- "w:p": [
76
- {
77
- "w:pPr": [{ "w:pStyle": { _attr: { "w:val": "Heading2" } } }],
78
- },
79
- ],
80
- });
81
- });
82
- });
83
-
84
- describe("#heading3()", () => {
85
- it("should add heading style to JSON", () => {
86
- const paragraph = new Paragraph({
87
- heading: HeadingLevel.HEADING_3,
88
- });
89
- const tree = new Formatter().format(paragraph);
90
- expect(tree).to.deep.equal({
91
- "w:p": [
92
- {
93
- "w:pPr": [{ "w:pStyle": { _attr: { "w:val": "Heading3" } } }],
94
- },
95
- ],
96
- });
97
- });
98
- });
99
-
100
- describe("#heading4()", () => {
101
- it("should add heading style to JSON", () => {
102
- const paragraph = new Paragraph({
103
- heading: HeadingLevel.HEADING_4,
104
- });
105
- const tree = new Formatter().format(paragraph);
106
- expect(tree).to.deep.equal({
107
- "w:p": [
108
- {
109
- "w:pPr": [{ "w:pStyle": { _attr: { "w:val": "Heading4" } } }],
110
- },
111
- ],
112
- });
113
- });
114
- });
115
-
116
- describe("#heading5()", () => {
117
- it("should add heading style to JSON", () => {
118
- const paragraph = new Paragraph({
119
- heading: HeadingLevel.HEADING_5,
120
- });
121
- const tree = new Formatter().format(paragraph);
122
- expect(tree).to.deep.equal({
123
- "w:p": [
124
- {
125
- "w:pPr": [{ "w:pStyle": { _attr: { "w:val": "Heading5" } } }],
126
- },
127
- ],
128
- });
129
- });
130
- });
131
-
132
- describe("#heading6()", () => {
133
- it("should add heading style to JSON", () => {
134
- const paragraph = new Paragraph({
135
- heading: HeadingLevel.HEADING_6,
136
- });
137
- const tree = new Formatter().format(paragraph);
138
- expect(tree).to.deep.equal({
139
- "w:p": [
140
- {
141
- "w:pPr": [{ "w:pStyle": { _attr: { "w:val": "Heading6" } } }],
142
- },
143
- ],
144
- });
145
- });
146
- });
147
-
148
- describe("#title()", () => {
149
- it("should add title style to JSON", () => {
150
- const paragraph = new Paragraph({
151
- heading: HeadingLevel.TITLE,
152
- });
153
- const tree = new Formatter().format(paragraph);
154
- expect(tree).to.deep.equal({
155
- "w:p": [
156
- {
157
- "w:pPr": [{ "w:pStyle": { _attr: { "w:val": "Title" } } }],
158
- },
159
- ],
160
- });
161
- });
162
- });
163
-
164
- describe("#center()", () => {
165
- it("should add center alignment to JSON", () => {
166
- const paragraph = new Paragraph({
167
- alignment: AlignmentType.CENTER,
168
- });
169
- const tree = new Formatter().format(paragraph);
170
- expect(tree).to.deep.equal({
171
- "w:p": [
172
- {
173
- "w:pPr": [{ "w:jc": { _attr: { "w:val": "center" } } }],
174
- },
175
- ],
176
- });
177
- });
178
- });
179
-
180
- describe("#left()", () => {
181
- it("should add left alignment to JSON", () => {
182
- const paragraph = new Paragraph({
183
- alignment: AlignmentType.LEFT,
184
- });
185
- const tree = new Formatter().format(paragraph);
186
- expect(tree).to.deep.equal({
187
- "w:p": [
188
- {
189
- "w:pPr": [{ "w:jc": { _attr: { "w:val": "left" } } }],
190
- },
191
- ],
192
- });
193
- });
194
- });
195
-
196
- describe("#right()", () => {
197
- it("should add right alignment to JSON", () => {
198
- const paragraph = new Paragraph({
199
- alignment: AlignmentType.RIGHT,
200
- });
201
- const tree = new Formatter().format(paragraph);
202
- expect(tree).to.deep.equal({
203
- "w:p": [
204
- {
205
- "w:pPr": [{ "w:jc": { _attr: { "w:val": "right" } } }],
206
- },
207
- ],
208
- });
209
- });
210
- });
211
-
212
- describe("#start()", () => {
213
- it("should add start alignment to JSON", () => {
214
- const paragraph = new Paragraph({
215
- alignment: AlignmentType.START,
216
- });
217
- const tree = new Formatter().format(paragraph);
218
- expect(tree).to.deep.equal({
219
- "w:p": [
220
- {
221
- "w:pPr": [{ "w:jc": { _attr: { "w:val": "start" } } }],
222
- },
223
- ],
224
- });
225
- });
226
- });
227
-
228
- describe("#end()", () => {
229
- it("should add end alignment to JSON", () => {
230
- const paragraph = new Paragraph({
231
- alignment: AlignmentType.END,
232
- });
233
- const tree = new Formatter().format(paragraph);
234
- expect(tree).to.deep.equal({
235
- "w:p": [
236
- {
237
- "w:pPr": [{ "w:jc": { _attr: { "w:val": "end" } } }],
238
- },
239
- ],
240
- });
241
- });
242
- });
243
-
244
- describe("#distribute()", () => {
245
- it("should add distribute alignment to JSON", () => {
246
- const paragraph = new Paragraph({
247
- alignment: AlignmentType.DISTRIBUTE,
248
- });
249
- const tree = new Formatter().format(paragraph);
250
- expect(tree).to.deep.equal({
251
- "w:p": [
252
- {
253
- "w:pPr": [{ "w:jc": { _attr: { "w:val": "distribute" } } }],
254
- },
255
- ],
256
- });
257
- });
258
- });
259
-
260
- describe("#justified()", () => {
261
- it("should add justified alignment to JSON", () => {
262
- const paragraph = new Paragraph({
263
- alignment: AlignmentType.JUSTIFIED,
264
- });
265
- const tree = new Formatter().format(paragraph);
266
- expect(tree).to.deep.equal({
267
- "w:p": [
268
- {
269
- "w:pPr": [{ "w:jc": { _attr: { "w:val": "both" } } }],
270
- },
271
- ],
272
- });
273
- });
274
- });
275
-
276
- describe("#maxRightTabStop()", () => {
277
- it("should add right tab stop to JSON", () => {
278
- const paragraph = new Paragraph({
279
- tabStops: [
280
- {
281
- type: TabStopType.RIGHT,
282
- position: TabStopPosition.MAX,
283
- },
284
- ],
285
- });
286
- const tree = new Formatter().format(paragraph);
287
- expect(tree).to.deep.equal({
288
- "w:p": [
289
- {
290
- "w:pPr": [
291
- {
292
- "w:tabs": [
293
- {
294
- "w:tab": {
295
- _attr: {
296
- "w:pos": 9026,
297
- "w:val": "right",
298
- },
299
- },
300
- },
301
- ],
302
- },
303
- ],
304
- },
305
- ],
306
- });
307
- });
308
- });
309
-
310
- describe("#leftTabStop()", () => {
311
- it("should add leftTabStop to JSON", () => {
312
- const paragraph = new Paragraph({
313
- tabStops: [
314
- {
315
- type: TabStopType.LEFT,
316
- position: 100,
317
- leader: LeaderType.HYPHEN,
318
- },
319
- ],
320
- });
321
- const tree = new Formatter().format(paragraph);
322
- expect(tree).to.deep.equal({
323
- "w:p": [
324
- {
325
- "w:pPr": [
326
- {
327
- "w:tabs": [
328
- {
329
- "w:tab": {
330
- _attr: {
331
- "w:pos": 100,
332
- "w:val": "left",
333
- "w:leader": "hyphen",
334
- },
335
- },
336
- },
337
- ],
338
- },
339
- ],
340
- },
341
- ],
342
- });
343
- });
344
- });
345
-
346
- describe("#rightTabStop()", () => {
347
- it("should add rightTabStop to JSON", () => {
348
- const paragraph = new Paragraph({
349
- tabStops: [
350
- {
351
- type: TabStopType.RIGHT,
352
- position: 100,
353
- leader: LeaderType.DOT,
354
- },
355
- ],
356
- });
357
- const tree = new Formatter().format(paragraph);
358
- expect(tree).to.deep.equal({
359
- "w:p": [
360
- {
361
- "w:pPr": [
362
- {
363
- "w:tabs": [
364
- {
365
- "w:tab": {
366
- _attr: {
367
- "w:pos": 100,
368
- "w:val": "right",
369
- "w:leader": "dot",
370
- },
371
- },
372
- },
373
- ],
374
- },
375
- ],
376
- },
377
- ],
378
- });
379
- });
380
- });
381
-
382
- describe("#centerTabStop()", () => {
383
- it("should add centerTabStop to JSON", () => {
384
- const paragraph = new Paragraph({
385
- tabStops: [
386
- {
387
- type: TabStopType.CENTER,
388
- position: 100,
389
- leader: LeaderType.MIDDLE_DOT,
390
- },
391
- ],
392
- });
393
- const tree = new Formatter().format(paragraph);
394
- expect(tree).to.deep.equal({
395
- "w:p": [
396
- {
397
- "w:pPr": [
398
- {
399
- "w:tabs": [
400
- {
401
- "w:tab": {
402
- _attr: {
403
- "w:pos": 100,
404
- "w:val": "center",
405
- "w:leader": "middleDot",
406
- },
407
- },
408
- },
409
- ],
410
- },
411
- ],
412
- },
413
- ],
414
- });
415
- });
416
- });
417
-
418
- describe("#contextualSpacing()", () => {
419
- it("should add contextualSpacing", () => {
420
- const paragraph = new Paragraph({
421
- contextualSpacing: true,
422
- });
423
- const tree = new Formatter().format(paragraph);
424
- expect(tree).to.deep.equal({
425
- "w:p": [
426
- {
427
- "w:pPr": [{ "w:contextualSpacing": {} }],
428
- },
429
- ],
430
- });
431
- });
432
- it("should remove contextualSpacing", () => {
433
- const paragraph = new Paragraph({
434
- contextualSpacing: false,
435
- });
436
- const tree = new Formatter().format(paragraph);
437
- expect(tree).to.deep.equal({
438
- "w:p": [
439
- {
440
- "w:pPr": [{ "w:contextualSpacing": { _attr: { "w:val": false } } }],
441
- },
442
- ],
443
- });
444
- });
445
- });
446
-
447
- describe("#thematicBreak()", () => {
448
- it("should add thematic break to JSON", () => {
449
- const paragraph = new Paragraph({
450
- thematicBreak: true,
451
- });
452
- const tree = new Formatter().format(paragraph);
453
- expect(tree).to.deep.equal({
454
- "w:p": [
455
- {
456
- "w:pPr": [
457
- {
458
- "w:pBdr": [
459
- {
460
- "w:bottom": {
461
- _attr: {
462
- "w:val": "single",
463
- "w:color": "auto",
464
- "w:space": 1,
465
- "w:sz": 6,
466
- },
467
- },
468
- },
469
- ],
470
- },
471
- ],
472
- },
473
- ],
474
- });
475
- });
476
- });
477
-
478
- describe("#paragraphBorders()", () => {
479
- it("should add a left and right border to a paragraph", () => {
480
- const paragraph = new Paragraph({
481
- border: {
482
- left: {
483
- color: "auto",
484
- space: 1,
485
- style: BorderStyle.SINGLE,
486
- size: 6,
487
- },
488
- right: {
489
- color: "auto",
490
- space: 1,
491
- style: BorderStyle.SINGLE,
492
- size: 6,
493
- },
494
- },
495
- });
496
- const tree = new Formatter().format(paragraph);
497
- expect(tree).to.deep.equal({
498
- "w:p": [
499
- {
500
- "w:pPr": [
501
- {
502
- "w:pBdr": [
503
- {
504
- "w:left": {
505
- _attr: {
506
- "w:color": "auto",
507
- "w:space": 1,
508
- "w:sz": 6,
509
- "w:val": "single",
510
- },
511
- },
512
- },
513
- {
514
- "w:right": {
515
- _attr: {
516
- "w:color": "auto",
517
- "w:space": 1,
518
- "w:sz": 6,
519
- "w:val": "single",
520
- },
521
- },
522
- },
523
- ],
524
- },
525
- ],
526
- },
527
- ],
528
- });
529
- });
530
- });
531
-
532
- describe("#pageBreak()", () => {
533
- it("should add page break to JSON", () => {
534
- const paragraph = new Paragraph({
535
- children: [new PageBreak()],
536
- });
537
- const tree = new Formatter().format(paragraph);
538
- expect(tree).to.deep.equal({
539
- "w:p": [
540
- {
541
- "w:r": [{ "w:br": { _attr: { "w:type": "page" } } }],
542
- },
543
- ],
544
- });
545
- });
546
- });
547
-
548
- describe("#pageBreakBefore()", () => {
549
- it("should add page break before to JSON", () => {
550
- const paragraph = new Paragraph({
551
- pageBreakBefore: true,
552
- });
553
- const tree = new Formatter().format(paragraph);
554
- expect(tree).to.deep.equal({
555
- "w:p": [
556
- {
557
- "w:pPr": [
558
- {
559
- "w:pageBreakBefore": EMPTY_OBJECT,
560
- },
561
- ],
562
- },
563
- ],
564
- });
565
- });
566
- });
567
-
568
- describe("#bullet()", () => {
569
- it("should default to 0 indent level if no bullet was specified", () => {
570
- const paragraph = new Paragraph({
571
- bullet: {
572
- level: 0,
573
- },
574
- });
575
- const tree = new Formatter().format(paragraph);
576
- expect(tree).to.have.property("w:p").which.is.an("array").which.has.length.at.least(1);
577
- expect(tree["w:p"][0]).to.have.property("w:pPr").which.is.an("array").which.has.length.at.least(1);
578
- expect(tree["w:p"][0]["w:pPr"][0]).to.deep.equal({
579
- "w:pStyle": { _attr: { "w:val": "ListParagraph" } },
580
- });
581
- });
582
-
583
- it("should add list paragraph style to JSON", () => {
584
- const paragraph = new Paragraph({
585
- bullet: {
586
- level: 0,
587
- },
588
- });
589
- const tree = new Formatter().format(paragraph);
590
- expect(tree).to.have.property("w:p").which.is.an("array").which.has.length.at.least(1);
591
- expect(tree["w:p"][0]).to.have.property("w:pPr").which.is.an("array").which.has.length.at.least(1);
592
- expect(tree["w:p"][0]["w:pPr"][0]).to.deep.equal({
593
- "w:pStyle": { _attr: { "w:val": "ListParagraph" } },
594
- });
595
- });
596
-
597
- it("it should add numbered properties", () => {
598
- const paragraph = new Paragraph({
599
- bullet: {
600
- level: 1,
601
- },
602
- });
603
- const tree = new Formatter().format(paragraph);
604
- expect(tree).to.have.property("w:p").which.is.an("array").which.has.length.at.least(1);
605
- expect(tree["w:p"][0]).to.have.property("w:pPr").which.is.an("array").which.has.length.at.least(2);
606
- expect(tree["w:p"][0]["w:pPr"][1]).to.deep.equal({
607
- "w:numPr": [{ "w:ilvl": { _attr: { "w:val": 1 } } }, { "w:numId": { _attr: { "w:val": 1 } } }],
608
- });
609
- });
610
- });
611
-
612
- describe("#setNumbering", () => {
613
- it("should add list paragraph style to JSON", () => {
614
- const paragraph = new Paragraph({
615
- numbering: {
616
- reference: "test id",
617
- level: 0,
618
- },
619
- });
620
- const tree = new Formatter().format(paragraph);
621
- expect(tree).to.have.property("w:p").which.is.an("array").which.has.length.at.least(1);
622
- expect(tree["w:p"][0]).to.have.property("w:pPr").which.is.an("array").which.has.length.at.least(1);
623
- expect(tree["w:p"][0]["w:pPr"][0]).to.deep.equal({
624
- "w:pStyle": { _attr: { "w:val": "ListParagraph" } },
625
- });
626
- });
627
-
628
- it("should add a style to the list paragraph when provided", () => {
629
- const paragraph = new Paragraph({
630
- numbering: {
631
- reference: "test id",
632
- level: 0,
633
- },
634
- style: "myFancyStyle",
635
- });
636
- const tree = new Formatter().format(paragraph);
637
- expect(tree).to.have.property("w:p").which.is.an("array").which.has.length.at.least(1);
638
- expect(tree["w:p"][0]).to.have.property("w:pPr").which.is.an("array").which.has.length.at.least(1);
639
- expect(tree["w:p"][0]["w:pPr"][0]).to.deep.equal({
640
- "w:pStyle": { _attr: { "w:val": "myFancyStyle" } },
641
- });
642
- });
643
-
644
- it("should not add ListParagraph style to a list when using custom numbering", () => {
645
- const paragraph = new Paragraph({
646
- numbering: {
647
- reference: "test id",
648
- level: 0,
649
- custom: true,
650
- },
651
- });
652
- const tree = new Formatter().format(paragraph);
653
- expect(tree).to.have.property("w:p").which.is.an("array").which.has.length.at.least(1);
654
- expect(tree["w:p"][0]).to.have.property("w:pPr").which.is.an("array").which.has.length.at.least(1);
655
- expect(tree["w:p"][0]["w:pPr"][0]).to.not.have.property("w:pStyle");
656
- });
657
-
658
- it("it should add numbered properties", () => {
659
- const paragraph = new Paragraph({
660
- numbering: {
661
- reference: "test id",
662
- level: 0,
663
- instance: 4,
664
- },
665
- });
666
- const tree = new Formatter().format(paragraph);
667
- expect(tree).to.deep.equal({
668
- "w:p": [
669
- {
670
- "w:pPr": [
671
- { "w:pStyle": { _attr: { "w:val": "ListParagraph" } } },
672
- {
673
- "w:numPr": [{ "w:ilvl": { _attr: { "w:val": 0 } } }, { "w:numId": { _attr: { "w:val": "{test id-4}" } } }],
674
- },
675
- ],
676
- },
677
- ],
678
- });
679
- });
680
-
681
- it("should not add ListParagraph style when custom is true", () => {
682
- const paragraph = new Paragraph({
683
- numbering: {
684
- reference: "test id",
685
- level: 0,
686
- custom: true,
687
- },
688
- });
689
- const tree = new Formatter().format(paragraph);
690
- expect(tree).to.deep.equal({
691
- "w:p": [
692
- {
693
- "w:pPr": [
694
- {
695
- "w:numPr": [{ "w:ilvl": { _attr: { "w:val": 0 } } }, { "w:numId": { _attr: { "w:val": "{test id-0}" } } }],
696
- },
697
- ],
698
- },
699
- ],
700
- });
701
- });
702
- });
703
-
704
- it("it should add bookmark", () => {
705
- const paragraph = new Paragraph({
706
- children: [
707
- new Bookmark({
708
- id: "test-id",
709
- children: [new TextRun("test")],
710
- }),
711
- ],
712
- });
713
- const tree = new Formatter().format(paragraph);
714
- expect(tree).to.deep.equal({
715
- "w:p": [
716
- {
717
- "w:bookmarkStart": {
718
- _attr: {
719
- "w:id": "test-unique-id",
720
- "w:name": "test-id",
721
- },
722
- },
723
- },
724
- {
725
- "w:r": [
726
- {
727
- "w:t": [
728
- {
729
- _attr: {
730
- "xml:space": "preserve",
731
- },
732
- },
733
- "test",
734
- ],
735
- },
736
- ],
737
- },
738
- {
739
- "w:bookmarkEnd": {
740
- _attr: {
741
- "w:id": "test-unique-id",
742
- },
743
- },
744
- },
745
- ],
746
- });
747
- });
748
-
749
- describe("#style", () => {
750
- it("should set the paragraph style to the given styleId", () => {
751
- const paragraph = new Paragraph({
752
- style: "myFancyStyle",
753
- });
754
- const tree = new Formatter().format(paragraph);
755
- expect(tree).to.deep.equal({
756
- "w:p": [
757
- {
758
- "w:pPr": [{ "w:pStyle": { _attr: { "w:val": "myFancyStyle" } } }],
759
- },
760
- ],
761
- });
762
- });
763
- });
764
-
765
- describe("#indent", () => {
766
- it("should set the paragraph indent to the given values", () => {
767
- const paragraph = new Paragraph({
768
- indent: { left: 720 },
769
- });
770
- const tree = new Formatter().format(paragraph);
771
- expect(tree).to.deep.equal({
772
- "w:p": [
773
- {
774
- "w:pPr": [{ "w:ind": { _attr: { "w:left": 720 } } }],
775
- },
776
- ],
777
- });
778
- });
779
- });
780
-
781
- describe("#spacing", () => {
782
- it("should set the paragraph spacing to the given values", () => {
783
- const paragraph = new Paragraph({
784
- spacing: { before: 90, line: 50 },
785
- });
786
- const tree = new Formatter().format(paragraph);
787
- expect(tree).to.deep.equal({
788
- "w:p": [
789
- {
790
- "w:pPr": [{ "w:spacing": { _attr: { "w:before": 90, "w:line": 50 } } }],
791
- },
792
- ],
793
- });
794
- });
795
- });
796
-
797
- describe("#keepLines", () => {
798
- it("should set the paragraph keepLines sub-component", () => {
799
- const paragraph = new Paragraph({
800
- keepLines: true,
801
- });
802
- const tree = new Formatter().format(paragraph);
803
- expect(tree).to.deep.equal({
804
- "w:p": [{ "w:pPr": [{ "w:keepLines": EMPTY_OBJECT }] }],
805
- });
806
- });
807
- });
808
-
809
- describe("#keepNext", () => {
810
- it("should set the paragraph keepNext sub-component", () => {
811
- const paragraph = new Paragraph({
812
- keepNext: true,
813
- });
814
- const tree = new Formatter().format(paragraph);
815
- expect(tree).to.deep.equal({
816
- "w:p": [{ "w:pPr": [{ "w:keepNext": EMPTY_OBJECT }] }],
817
- });
818
- });
819
- });
820
-
821
- describe("#bidirectional", () => {
822
- it("set paragraph right to left layout", () => {
823
- const paragraph = new Paragraph({
824
- bidirectional: true,
825
- });
826
- const tree = new Formatter().format(paragraph);
827
- expect(tree).to.deep.equal({
828
- "w:p": [{ "w:pPr": [{ "w:bidi": EMPTY_OBJECT }] }],
829
- });
830
- });
831
- });
832
-
833
- describe("#outlineLevel", () => {
834
- it("should set paragraph outline level to the given value", () => {
835
- const paragraph = new Paragraph({
836
- outlineLevel: 0,
837
- });
838
- const tree = new Formatter().format(paragraph);
839
- expect(tree).to.deep.equal({
840
- "w:p": [
841
- {
842
- "w:pPr": [{ "w:outlineLvl": { _attr: { "w:val": 0 } } }],
843
- },
844
- ],
845
- });
846
- });
847
- });
848
-
849
- describe("#shading", () => {
850
- it("should set shading to the given value", () => {
851
- const paragraph = new Paragraph({
852
- shading: {
853
- type: ShadingType.REVERSE_DIAGONAL_STRIPE,
854
- color: "00FFFF",
855
- fill: "FF0000",
856
- },
857
- });
858
- const tree = new Formatter().format(paragraph);
859
- expect(tree).to.deep.equal({
860
- "w:p": [
861
- {
862
- "w:pPr": [
863
- {
864
- "w:shd": {
865
- _attr: {
866
- "w:color": "00FFFF",
867
- "w:fill": "FF0000",
868
- "w:val": "reverseDiagStripe",
869
- },
870
- },
871
- },
872
- ],
873
- },
874
- ],
875
- });
876
- });
877
- });
878
-
879
- describe("#frame", () => {
880
- it("should set frame attribute", () => {
881
- const paragraph = new Paragraph({
882
- frame: {
883
- position: {
884
- x: 1000,
885
- y: 3000,
886
- },
887
- width: 4000,
888
- height: 1000,
889
- anchor: {
890
- horizontal: FrameAnchorType.MARGIN,
891
- vertical: FrameAnchorType.MARGIN,
892
- },
893
- alignment: {
894
- x: HorizontalPositionAlign.CENTER,
895
- y: VerticalPositionAlign.TOP,
896
- },
897
- },
898
- });
899
- const tree = new Formatter().format(paragraph);
900
- expect(tree).to.deep.equal({
901
- "w:p": [
902
- {
903
- "w:pPr": [
904
- {
905
- "w:framePr": {
906
- _attr: {
907
- "w:h": 1000,
908
- "w:hAnchor": "margin",
909
- "w:vAnchor": "margin",
910
- "w:w": 4000,
911
- "w:x": 1000,
912
- "w:xAlign": "center",
913
- "w:y": 3000,
914
- "w:yAlign": "top",
915
- },
916
- },
917
- },
918
- ],
919
- },
920
- ],
921
- });
922
- });
923
- });
924
-
925
- describe("#prepForXml", () => {
926
- it("should set Internal Hyperlink", () => {
927
- const paragraph = new Paragraph({
928
- children: [
929
- new ExternalHyperlink({
930
- children: [new TextRun("test")],
931
- link: "http://www.google.com",
932
- }),
933
- ],
934
- });
935
- const viewWrapperMock = {
936
- Relationships: {
937
- createRelationship: () => ({}),
938
- },
939
- } as unknown as IViewWrapper;
940
-
941
- const file = {} as unknown as File;
942
- paragraph.prepForXml({
943
- viewWrapper: viewWrapperMock,
944
- file: file,
945
- });
946
- const tree = new Formatter().format(paragraph);
947
- expect(tree).to.deep.equal({
948
- "w:p": [
949
- {
950
- "w:hyperlink": [
951
- {
952
- _attr: {
953
- "r:id": "rIdtest-unique-id",
954
- "w:history": 1,
955
- },
956
- },
957
- {
958
- "w:r": [
959
- {
960
- "w:t": [
961
- {
962
- _attr: {
963
- "xml:space": "preserve",
964
- },
965
- },
966
- "test",
967
- ],
968
- },
969
- ],
970
- },
971
- ],
972
- },
973
- ],
974
- });
975
- });
976
- });
977
- });
1
+ import { assert, expect } from "chai";
2
+ import { SinonStub, stub } from "sinon";
3
+
4
+ import * as convenienceFunctions from "convenience-functions";
5
+
6
+ import { Formatter } from "export/formatter";
7
+ import { BorderStyle } from "file/border";
8
+ import { EMPTY_OBJECT } from "file/xml-components";
9
+
10
+ import { IViewWrapper } from "../document-wrapper";
11
+ import { File } from "../file";
12
+ import { ShadingType } from "../shading";
13
+ import { HorizontalPositionAlign, VerticalPositionAlign } from "../shared";
14
+ import { AlignmentType, HeadingLevel, LeaderType, PageBreak, TabStopPosition, TabStopType } from "./formatting";
15
+ import { FrameAnchorType } from "./frame";
16
+ import { Bookmark, ExternalHyperlink } from "./links";
17
+ import { Paragraph } from "./paragraph";
18
+ import { TextRun } from "./run";
19
+
20
+ describe("Paragraph", () => {
21
+ before(() => {
22
+ stub(convenienceFunctions, "uniqueId").callsFake(() => {
23
+ return "test-unique-id";
24
+ });
25
+ });
26
+
27
+ after(() => {
28
+ (convenienceFunctions.uniqueId as SinonStub).restore();
29
+ });
30
+
31
+ describe("#constructor()", () => {
32
+ it("should create valid JSON", () => {
33
+ const paragraph = new Paragraph("");
34
+ const stringifiedJson = JSON.stringify(paragraph);
35
+
36
+ try {
37
+ JSON.parse(stringifiedJson);
38
+ } catch (e) {
39
+ assert.isTrue(false);
40
+ }
41
+ assert.isTrue(true);
42
+ });
43
+
44
+ it("should create have valid properties", () => {
45
+ const paragraph = new Paragraph("");
46
+ const stringifiedJson = JSON.stringify(paragraph);
47
+ const newJson = JSON.parse(stringifiedJson);
48
+ assert.equal(newJson.root[0].rootKey, "w:pPr");
49
+ });
50
+ });
51
+
52
+ describe("#heading1()", () => {
53
+ it("should add heading style to JSON", () => {
54
+ const paragraph = new Paragraph({
55
+ heading: HeadingLevel.HEADING_1,
56
+ });
57
+ const tree = new Formatter().format(paragraph);
58
+ expect(tree).to.deep.equal({
59
+ "w:p": [
60
+ {
61
+ "w:pPr": [{ "w:pStyle": { _attr: { "w:val": "Heading1" } } }],
62
+ },
63
+ ],
64
+ });
65
+ });
66
+ });
67
+
68
+ describe("#heading2()", () => {
69
+ it("should add heading style to JSON", () => {
70
+ const paragraph = new Paragraph({
71
+ heading: HeadingLevel.HEADING_2,
72
+ });
73
+ const tree = new Formatter().format(paragraph);
74
+ expect(tree).to.deep.equal({
75
+ "w:p": [
76
+ {
77
+ "w:pPr": [{ "w:pStyle": { _attr: { "w:val": "Heading2" } } }],
78
+ },
79
+ ],
80
+ });
81
+ });
82
+ });
83
+
84
+ describe("#heading3()", () => {
85
+ it("should add heading style to JSON", () => {
86
+ const paragraph = new Paragraph({
87
+ heading: HeadingLevel.HEADING_3,
88
+ });
89
+ const tree = new Formatter().format(paragraph);
90
+ expect(tree).to.deep.equal({
91
+ "w:p": [
92
+ {
93
+ "w:pPr": [{ "w:pStyle": { _attr: { "w:val": "Heading3" } } }],
94
+ },
95
+ ],
96
+ });
97
+ });
98
+ });
99
+
100
+ describe("#heading4()", () => {
101
+ it("should add heading style to JSON", () => {
102
+ const paragraph = new Paragraph({
103
+ heading: HeadingLevel.HEADING_4,
104
+ });
105
+ const tree = new Formatter().format(paragraph);
106
+ expect(tree).to.deep.equal({
107
+ "w:p": [
108
+ {
109
+ "w:pPr": [{ "w:pStyle": { _attr: { "w:val": "Heading4" } } }],
110
+ },
111
+ ],
112
+ });
113
+ });
114
+ });
115
+
116
+ describe("#heading5()", () => {
117
+ it("should add heading style to JSON", () => {
118
+ const paragraph = new Paragraph({
119
+ heading: HeadingLevel.HEADING_5,
120
+ });
121
+ const tree = new Formatter().format(paragraph);
122
+ expect(tree).to.deep.equal({
123
+ "w:p": [
124
+ {
125
+ "w:pPr": [{ "w:pStyle": { _attr: { "w:val": "Heading5" } } }],
126
+ },
127
+ ],
128
+ });
129
+ });
130
+ });
131
+
132
+ describe("#heading6()", () => {
133
+ it("should add heading style to JSON", () => {
134
+ const paragraph = new Paragraph({
135
+ heading: HeadingLevel.HEADING_6,
136
+ });
137
+ const tree = new Formatter().format(paragraph);
138
+ expect(tree).to.deep.equal({
139
+ "w:p": [
140
+ {
141
+ "w:pPr": [{ "w:pStyle": { _attr: { "w:val": "Heading6" } } }],
142
+ },
143
+ ],
144
+ });
145
+ });
146
+ });
147
+
148
+ describe("#title()", () => {
149
+ it("should add title style to JSON", () => {
150
+ const paragraph = new Paragraph({
151
+ heading: HeadingLevel.TITLE,
152
+ });
153
+ const tree = new Formatter().format(paragraph);
154
+ expect(tree).to.deep.equal({
155
+ "w:p": [
156
+ {
157
+ "w:pPr": [{ "w:pStyle": { _attr: { "w:val": "Title" } } }],
158
+ },
159
+ ],
160
+ });
161
+ });
162
+ });
163
+
164
+ describe("#center()", () => {
165
+ it("should add center alignment to JSON", () => {
166
+ const paragraph = new Paragraph({
167
+ alignment: AlignmentType.CENTER,
168
+ });
169
+ const tree = new Formatter().format(paragraph);
170
+ expect(tree).to.deep.equal({
171
+ "w:p": [
172
+ {
173
+ "w:pPr": [{ "w:jc": { _attr: { "w:val": "center" } } }],
174
+ },
175
+ ],
176
+ });
177
+ });
178
+ });
179
+
180
+ describe("#left()", () => {
181
+ it("should add left alignment to JSON", () => {
182
+ const paragraph = new Paragraph({
183
+ alignment: AlignmentType.LEFT,
184
+ });
185
+ const tree = new Formatter().format(paragraph);
186
+ expect(tree).to.deep.equal({
187
+ "w:p": [
188
+ {
189
+ "w:pPr": [{ "w:jc": { _attr: { "w:val": "left" } } }],
190
+ },
191
+ ],
192
+ });
193
+ });
194
+ });
195
+
196
+ describe("#right()", () => {
197
+ it("should add right alignment to JSON", () => {
198
+ const paragraph = new Paragraph({
199
+ alignment: AlignmentType.RIGHT,
200
+ });
201
+ const tree = new Formatter().format(paragraph);
202
+ expect(tree).to.deep.equal({
203
+ "w:p": [
204
+ {
205
+ "w:pPr": [{ "w:jc": { _attr: { "w:val": "right" } } }],
206
+ },
207
+ ],
208
+ });
209
+ });
210
+ });
211
+
212
+ describe("#start()", () => {
213
+ it("should add start alignment to JSON", () => {
214
+ const paragraph = new Paragraph({
215
+ alignment: AlignmentType.START,
216
+ });
217
+ const tree = new Formatter().format(paragraph);
218
+ expect(tree).to.deep.equal({
219
+ "w:p": [
220
+ {
221
+ "w:pPr": [{ "w:jc": { _attr: { "w:val": "start" } } }],
222
+ },
223
+ ],
224
+ });
225
+ });
226
+ });
227
+
228
+ describe("#end()", () => {
229
+ it("should add end alignment to JSON", () => {
230
+ const paragraph = new Paragraph({
231
+ alignment: AlignmentType.END,
232
+ });
233
+ const tree = new Formatter().format(paragraph);
234
+ expect(tree).to.deep.equal({
235
+ "w:p": [
236
+ {
237
+ "w:pPr": [{ "w:jc": { _attr: { "w:val": "end" } } }],
238
+ },
239
+ ],
240
+ });
241
+ });
242
+ });
243
+
244
+ describe("#distribute()", () => {
245
+ it("should add distribute alignment to JSON", () => {
246
+ const paragraph = new Paragraph({
247
+ alignment: AlignmentType.DISTRIBUTE,
248
+ });
249
+ const tree = new Formatter().format(paragraph);
250
+ expect(tree).to.deep.equal({
251
+ "w:p": [
252
+ {
253
+ "w:pPr": [{ "w:jc": { _attr: { "w:val": "distribute" } } }],
254
+ },
255
+ ],
256
+ });
257
+ });
258
+ });
259
+
260
+ describe("#justified()", () => {
261
+ it("should add justified alignment to JSON", () => {
262
+ const paragraph = new Paragraph({
263
+ alignment: AlignmentType.JUSTIFIED,
264
+ });
265
+ const tree = new Formatter().format(paragraph);
266
+ expect(tree).to.deep.equal({
267
+ "w:p": [
268
+ {
269
+ "w:pPr": [{ "w:jc": { _attr: { "w:val": "both" } } }],
270
+ },
271
+ ],
272
+ });
273
+ });
274
+ });
275
+
276
+ describe("#maxRightTabStop()", () => {
277
+ it("should add right tab stop to JSON", () => {
278
+ const paragraph = new Paragraph({
279
+ tabStops: [
280
+ {
281
+ type: TabStopType.RIGHT,
282
+ position: TabStopPosition.MAX,
283
+ },
284
+ ],
285
+ });
286
+ const tree = new Formatter().format(paragraph);
287
+ expect(tree).to.deep.equal({
288
+ "w:p": [
289
+ {
290
+ "w:pPr": [
291
+ {
292
+ "w:tabs": [
293
+ {
294
+ "w:tab": {
295
+ _attr: {
296
+ "w:pos": 9026,
297
+ "w:val": "right",
298
+ },
299
+ },
300
+ },
301
+ ],
302
+ },
303
+ ],
304
+ },
305
+ ],
306
+ });
307
+ });
308
+ });
309
+
310
+ describe("#leftTabStop()", () => {
311
+ it("should add leftTabStop to JSON", () => {
312
+ const paragraph = new Paragraph({
313
+ tabStops: [
314
+ {
315
+ type: TabStopType.LEFT,
316
+ position: 100,
317
+ leader: LeaderType.HYPHEN,
318
+ },
319
+ ],
320
+ });
321
+ const tree = new Formatter().format(paragraph);
322
+ expect(tree).to.deep.equal({
323
+ "w:p": [
324
+ {
325
+ "w:pPr": [
326
+ {
327
+ "w:tabs": [
328
+ {
329
+ "w:tab": {
330
+ _attr: {
331
+ "w:pos": 100,
332
+ "w:val": "left",
333
+ "w:leader": "hyphen",
334
+ },
335
+ },
336
+ },
337
+ ],
338
+ },
339
+ ],
340
+ },
341
+ ],
342
+ });
343
+ });
344
+ });
345
+
346
+ describe("#rightTabStop()", () => {
347
+ it("should add rightTabStop to JSON", () => {
348
+ const paragraph = new Paragraph({
349
+ tabStops: [
350
+ {
351
+ type: TabStopType.RIGHT,
352
+ position: 100,
353
+ leader: LeaderType.DOT,
354
+ },
355
+ ],
356
+ });
357
+ const tree = new Formatter().format(paragraph);
358
+ expect(tree).to.deep.equal({
359
+ "w:p": [
360
+ {
361
+ "w:pPr": [
362
+ {
363
+ "w:tabs": [
364
+ {
365
+ "w:tab": {
366
+ _attr: {
367
+ "w:pos": 100,
368
+ "w:val": "right",
369
+ "w:leader": "dot",
370
+ },
371
+ },
372
+ },
373
+ ],
374
+ },
375
+ ],
376
+ },
377
+ ],
378
+ });
379
+ });
380
+ });
381
+
382
+ describe("#centerTabStop()", () => {
383
+ it("should add centerTabStop to JSON", () => {
384
+ const paragraph = new Paragraph({
385
+ tabStops: [
386
+ {
387
+ type: TabStopType.CENTER,
388
+ position: 100,
389
+ leader: LeaderType.MIDDLE_DOT,
390
+ },
391
+ ],
392
+ });
393
+ const tree = new Formatter().format(paragraph);
394
+ expect(tree).to.deep.equal({
395
+ "w:p": [
396
+ {
397
+ "w:pPr": [
398
+ {
399
+ "w:tabs": [
400
+ {
401
+ "w:tab": {
402
+ _attr: {
403
+ "w:pos": 100,
404
+ "w:val": "center",
405
+ "w:leader": "middleDot",
406
+ },
407
+ },
408
+ },
409
+ ],
410
+ },
411
+ ],
412
+ },
413
+ ],
414
+ });
415
+ });
416
+ });
417
+
418
+ describe("#contextualSpacing()", () => {
419
+ it("should add contextualSpacing", () => {
420
+ const paragraph = new Paragraph({
421
+ contextualSpacing: true,
422
+ });
423
+ const tree = new Formatter().format(paragraph);
424
+ expect(tree).to.deep.equal({
425
+ "w:p": [
426
+ {
427
+ "w:pPr": [{ "w:contextualSpacing": {} }],
428
+ },
429
+ ],
430
+ });
431
+ });
432
+ it("should remove contextualSpacing", () => {
433
+ const paragraph = new Paragraph({
434
+ contextualSpacing: false,
435
+ });
436
+ const tree = new Formatter().format(paragraph);
437
+ expect(tree).to.deep.equal({
438
+ "w:p": [
439
+ {
440
+ "w:pPr": [{ "w:contextualSpacing": { _attr: { "w:val": false } } }],
441
+ },
442
+ ],
443
+ });
444
+ });
445
+ });
446
+
447
+ describe("#thematicBreak()", () => {
448
+ it("should add thematic break to JSON", () => {
449
+ const paragraph = new Paragraph({
450
+ thematicBreak: true,
451
+ });
452
+ const tree = new Formatter().format(paragraph);
453
+ expect(tree).to.deep.equal({
454
+ "w:p": [
455
+ {
456
+ "w:pPr": [
457
+ {
458
+ "w:pBdr": [
459
+ {
460
+ "w:bottom": {
461
+ _attr: {
462
+ "w:val": "single",
463
+ "w:color": "auto",
464
+ "w:space": 1,
465
+ "w:sz": 6,
466
+ },
467
+ },
468
+ },
469
+ ],
470
+ },
471
+ ],
472
+ },
473
+ ],
474
+ });
475
+ });
476
+ });
477
+
478
+ describe("#paragraphBorders()", () => {
479
+ it("should add a left and right border to a paragraph", () => {
480
+ const paragraph = new Paragraph({
481
+ border: {
482
+ left: {
483
+ color: "auto",
484
+ space: 1,
485
+ style: BorderStyle.SINGLE,
486
+ size: 6,
487
+ },
488
+ right: {
489
+ color: "auto",
490
+ space: 1,
491
+ style: BorderStyle.SINGLE,
492
+ size: 6,
493
+ },
494
+ },
495
+ });
496
+ const tree = new Formatter().format(paragraph);
497
+ expect(tree).to.deep.equal({
498
+ "w:p": [
499
+ {
500
+ "w:pPr": [
501
+ {
502
+ "w:pBdr": [
503
+ {
504
+ "w:left": {
505
+ _attr: {
506
+ "w:color": "auto",
507
+ "w:space": 1,
508
+ "w:sz": 6,
509
+ "w:val": "single",
510
+ },
511
+ },
512
+ },
513
+ {
514
+ "w:right": {
515
+ _attr: {
516
+ "w:color": "auto",
517
+ "w:space": 1,
518
+ "w:sz": 6,
519
+ "w:val": "single",
520
+ },
521
+ },
522
+ },
523
+ ],
524
+ },
525
+ ],
526
+ },
527
+ ],
528
+ });
529
+ });
530
+ });
531
+
532
+ describe("#pageBreak()", () => {
533
+ it("should add page break to JSON", () => {
534
+ const paragraph = new Paragraph({
535
+ children: [new PageBreak()],
536
+ });
537
+ const tree = new Formatter().format(paragraph);
538
+ expect(tree).to.deep.equal({
539
+ "w:p": [
540
+ {
541
+ "w:r": [{ "w:br": { _attr: { "w:type": "page" } } }],
542
+ },
543
+ ],
544
+ });
545
+ });
546
+ });
547
+
548
+ describe("#pageBreakBefore()", () => {
549
+ it("should add page break before to JSON", () => {
550
+ const paragraph = new Paragraph({
551
+ pageBreakBefore: true,
552
+ });
553
+ const tree = new Formatter().format(paragraph);
554
+ expect(tree).to.deep.equal({
555
+ "w:p": [
556
+ {
557
+ "w:pPr": [
558
+ {
559
+ "w:pageBreakBefore": EMPTY_OBJECT,
560
+ },
561
+ ],
562
+ },
563
+ ],
564
+ });
565
+ });
566
+ });
567
+
568
+ describe("#bullet()", () => {
569
+ it("should default to 0 indent level if no bullet was specified", () => {
570
+ const paragraph = new Paragraph({
571
+ bullet: {
572
+ level: 0,
573
+ },
574
+ });
575
+ const tree = new Formatter().format(paragraph);
576
+ expect(tree).to.have.property("w:p").which.is.an("array").which.has.length.at.least(1);
577
+ expect(tree["w:p"][0]).to.have.property("w:pPr").which.is.an("array").which.has.length.at.least(1);
578
+ expect(tree["w:p"][0]["w:pPr"][0]).to.deep.equal({
579
+ "w:pStyle": { _attr: { "w:val": "ListParagraph" } },
580
+ });
581
+ });
582
+
583
+ it("should add list paragraph style to JSON", () => {
584
+ const paragraph = new Paragraph({
585
+ bullet: {
586
+ level: 0,
587
+ },
588
+ });
589
+ const tree = new Formatter().format(paragraph);
590
+ expect(tree).to.have.property("w:p").which.is.an("array").which.has.length.at.least(1);
591
+ expect(tree["w:p"][0]).to.have.property("w:pPr").which.is.an("array").which.has.length.at.least(1);
592
+ expect(tree["w:p"][0]["w:pPr"][0]).to.deep.equal({
593
+ "w:pStyle": { _attr: { "w:val": "ListParagraph" } },
594
+ });
595
+ });
596
+
597
+ it("it should add numbered properties", () => {
598
+ const paragraph = new Paragraph({
599
+ bullet: {
600
+ level: 1,
601
+ },
602
+ });
603
+ const tree = new Formatter().format(paragraph);
604
+ expect(tree).to.have.property("w:p").which.is.an("array").which.has.length.at.least(1);
605
+ expect(tree["w:p"][0]).to.have.property("w:pPr").which.is.an("array").which.has.length.at.least(2);
606
+ expect(tree["w:p"][0]["w:pPr"][1]).to.deep.equal({
607
+ "w:numPr": [{ "w:ilvl": { _attr: { "w:val": 1 } } }, { "w:numId": { _attr: { "w:val": 1 } } }],
608
+ });
609
+ });
610
+ });
611
+
612
+ describe("#setNumbering", () => {
613
+ it("should add list paragraph style to JSON", () => {
614
+ const paragraph = new Paragraph({
615
+ numbering: {
616
+ reference: "test id",
617
+ level: 0,
618
+ },
619
+ });
620
+ const tree = new Formatter().format(paragraph);
621
+ expect(tree).to.have.property("w:p").which.is.an("array").which.has.length.at.least(1);
622
+ expect(tree["w:p"][0]).to.have.property("w:pPr").which.is.an("array").which.has.length.at.least(1);
623
+ expect(tree["w:p"][0]["w:pPr"][0]).to.deep.equal({
624
+ "w:pStyle": { _attr: { "w:val": "ListParagraph" } },
625
+ });
626
+ });
627
+
628
+ it("should add a style to the list paragraph when provided", () => {
629
+ const paragraph = new Paragraph({
630
+ numbering: {
631
+ reference: "test id",
632
+ level: 0,
633
+ },
634
+ style: "myFancyStyle",
635
+ });
636
+ const tree = new Formatter().format(paragraph);
637
+ expect(tree).to.have.property("w:p").which.is.an("array").which.has.length.at.least(1);
638
+ expect(tree["w:p"][0]).to.have.property("w:pPr").which.is.an("array").which.has.length.at.least(1);
639
+ expect(tree["w:p"][0]["w:pPr"][0]).to.deep.equal({
640
+ "w:pStyle": { _attr: { "w:val": "myFancyStyle" } },
641
+ });
642
+ });
643
+
644
+ it("should not add ListParagraph style to a list when using custom numbering", () => {
645
+ const paragraph = new Paragraph({
646
+ numbering: {
647
+ reference: "test id",
648
+ level: 0,
649
+ custom: true,
650
+ },
651
+ });
652
+ const tree = new Formatter().format(paragraph);
653
+ expect(tree).to.have.property("w:p").which.is.an("array").which.has.length.at.least(1);
654
+ expect(tree["w:p"][0]).to.have.property("w:pPr").which.is.an("array").which.has.length.at.least(1);
655
+ expect(tree["w:p"][0]["w:pPr"][0]).to.not.have.property("w:pStyle");
656
+ });
657
+
658
+ it("it should add numbered properties", () => {
659
+ const paragraph = new Paragraph({
660
+ numbering: {
661
+ reference: "test id",
662
+ level: 0,
663
+ instance: 4,
664
+ },
665
+ });
666
+ const tree = new Formatter().format(paragraph);
667
+ expect(tree).to.deep.equal({
668
+ "w:p": [
669
+ {
670
+ "w:pPr": [
671
+ { "w:pStyle": { _attr: { "w:val": "ListParagraph" } } },
672
+ {
673
+ "w:numPr": [{ "w:ilvl": { _attr: { "w:val": 0 } } }, { "w:numId": { _attr: { "w:val": "{test id-4}" } } }],
674
+ },
675
+ ],
676
+ },
677
+ ],
678
+ });
679
+ });
680
+
681
+ it("should not add ListParagraph style when custom is true", () => {
682
+ const paragraph = new Paragraph({
683
+ numbering: {
684
+ reference: "test id",
685
+ level: 0,
686
+ custom: true,
687
+ },
688
+ });
689
+ const tree = new Formatter().format(paragraph);
690
+ expect(tree).to.deep.equal({
691
+ "w:p": [
692
+ {
693
+ "w:pPr": [
694
+ {
695
+ "w:numPr": [{ "w:ilvl": { _attr: { "w:val": 0 } } }, { "w:numId": { _attr: { "w:val": "{test id-0}" } } }],
696
+ },
697
+ ],
698
+ },
699
+ ],
700
+ });
701
+ });
702
+ });
703
+
704
+ it("it should add bookmark", () => {
705
+ const paragraph = new Paragraph({
706
+ children: [
707
+ new Bookmark({
708
+ id: "test-id",
709
+ children: [new TextRun("test")],
710
+ }),
711
+ ],
712
+ });
713
+ const tree = new Formatter().format(paragraph);
714
+ expect(tree).to.deep.equal({
715
+ "w:p": [
716
+ {
717
+ "w:bookmarkStart": {
718
+ _attr: {
719
+ "w:id": "test-unique-id",
720
+ "w:name": "test-id",
721
+ },
722
+ },
723
+ },
724
+ {
725
+ "w:r": [
726
+ {
727
+ "w:t": [
728
+ {
729
+ _attr: {
730
+ "xml:space": "preserve",
731
+ },
732
+ },
733
+ "test",
734
+ ],
735
+ },
736
+ ],
737
+ },
738
+ {
739
+ "w:bookmarkEnd": {
740
+ _attr: {
741
+ "w:id": "test-unique-id",
742
+ },
743
+ },
744
+ },
745
+ ],
746
+ });
747
+ });
748
+
749
+ describe("#style", () => {
750
+ it("should set the paragraph style to the given styleId", () => {
751
+ const paragraph = new Paragraph({
752
+ style: "myFancyStyle",
753
+ });
754
+ const tree = new Formatter().format(paragraph);
755
+ expect(tree).to.deep.equal({
756
+ "w:p": [
757
+ {
758
+ "w:pPr": [{ "w:pStyle": { _attr: { "w:val": "myFancyStyle" } } }],
759
+ },
760
+ ],
761
+ });
762
+ });
763
+ });
764
+
765
+ describe("#indent", () => {
766
+ it("should set the paragraph indent to the given values", () => {
767
+ const paragraph = new Paragraph({
768
+ indent: { left: 720 },
769
+ });
770
+ const tree = new Formatter().format(paragraph);
771
+ expect(tree).to.deep.equal({
772
+ "w:p": [
773
+ {
774
+ "w:pPr": [{ "w:ind": { _attr: { "w:left": 720 } } }],
775
+ },
776
+ ],
777
+ });
778
+ });
779
+ });
780
+
781
+ describe("#spacing", () => {
782
+ it("should set the paragraph spacing to the given values", () => {
783
+ const paragraph = new Paragraph({
784
+ spacing: { before: 90, line: 50 },
785
+ });
786
+ const tree = new Formatter().format(paragraph);
787
+ expect(tree).to.deep.equal({
788
+ "w:p": [
789
+ {
790
+ "w:pPr": [{ "w:spacing": { _attr: { "w:before": 90, "w:line": 50 } } }],
791
+ },
792
+ ],
793
+ });
794
+ });
795
+ });
796
+
797
+ describe("#keepLines", () => {
798
+ it("should set the paragraph keepLines sub-component", () => {
799
+ const paragraph = new Paragraph({
800
+ keepLines: true,
801
+ });
802
+ const tree = new Formatter().format(paragraph);
803
+ expect(tree).to.deep.equal({
804
+ "w:p": [{ "w:pPr": [{ "w:keepLines": EMPTY_OBJECT }] }],
805
+ });
806
+ });
807
+ });
808
+
809
+ describe("#keepNext", () => {
810
+ it("should set the paragraph keepNext sub-component", () => {
811
+ const paragraph = new Paragraph({
812
+ keepNext: true,
813
+ });
814
+ const tree = new Formatter().format(paragraph);
815
+ expect(tree).to.deep.equal({
816
+ "w:p": [{ "w:pPr": [{ "w:keepNext": EMPTY_OBJECT }] }],
817
+ });
818
+ });
819
+ });
820
+
821
+ describe("#bidirectional", () => {
822
+ it("set paragraph right to left layout", () => {
823
+ const paragraph = new Paragraph({
824
+ bidirectional: true,
825
+ });
826
+ const tree = new Formatter().format(paragraph);
827
+ expect(tree).to.deep.equal({
828
+ "w:p": [{ "w:pPr": [{ "w:bidi": EMPTY_OBJECT }] }],
829
+ });
830
+ });
831
+ });
832
+
833
+ describe("#suppressLineNumbers", () => {
834
+ it("should disable line numbers", () => {
835
+ const paragraph = new Paragraph({
836
+ suppressLineNumbers: true,
837
+ });
838
+ const tree = new Formatter().format(paragraph);
839
+ expect(tree).to.deep.equal({
840
+ "w:p": [{ "w:pPr": [{ "w:suppressLineNumbers": EMPTY_OBJECT }] }],
841
+ });
842
+ });
843
+ });
844
+
845
+ describe("#outlineLevel", () => {
846
+ it("should set paragraph outline level to the given value", () => {
847
+ const paragraph = new Paragraph({
848
+ outlineLevel: 0,
849
+ });
850
+ const tree = new Formatter().format(paragraph);
851
+ expect(tree).to.deep.equal({
852
+ "w:p": [
853
+ {
854
+ "w:pPr": [{ "w:outlineLvl": { _attr: { "w:val": 0 } } }],
855
+ },
856
+ ],
857
+ });
858
+ });
859
+ });
860
+
861
+ describe("#shading", () => {
862
+ it("should set shading to the given value", () => {
863
+ const paragraph = new Paragraph({
864
+ shading: {
865
+ type: ShadingType.REVERSE_DIAGONAL_STRIPE,
866
+ color: "00FFFF",
867
+ fill: "FF0000",
868
+ },
869
+ });
870
+ const tree = new Formatter().format(paragraph);
871
+ expect(tree).to.deep.equal({
872
+ "w:p": [
873
+ {
874
+ "w:pPr": [
875
+ {
876
+ "w:shd": {
877
+ _attr: {
878
+ "w:color": "00FFFF",
879
+ "w:fill": "FF0000",
880
+ "w:val": "reverseDiagStripe",
881
+ },
882
+ },
883
+ },
884
+ ],
885
+ },
886
+ ],
887
+ });
888
+ });
889
+ });
890
+
891
+ describe("#frame", () => {
892
+ it("should set frame attribute", () => {
893
+ const paragraph = new Paragraph({
894
+ frame: {
895
+ position: {
896
+ x: 1000,
897
+ y: 3000,
898
+ },
899
+ width: 4000,
900
+ height: 1000,
901
+ anchor: {
902
+ horizontal: FrameAnchorType.MARGIN,
903
+ vertical: FrameAnchorType.MARGIN,
904
+ },
905
+ alignment: {
906
+ x: HorizontalPositionAlign.CENTER,
907
+ y: VerticalPositionAlign.TOP,
908
+ },
909
+ },
910
+ });
911
+ const tree = new Formatter().format(paragraph);
912
+ expect(tree).to.deep.equal({
913
+ "w:p": [
914
+ {
915
+ "w:pPr": [
916
+ {
917
+ "w:framePr": {
918
+ _attr: {
919
+ "w:h": 1000,
920
+ "w:hAnchor": "margin",
921
+ "w:vAnchor": "margin",
922
+ "w:w": 4000,
923
+ "w:x": 1000,
924
+ "w:xAlign": "center",
925
+ "w:y": 3000,
926
+ "w:yAlign": "top",
927
+ },
928
+ },
929
+ },
930
+ ],
931
+ },
932
+ ],
933
+ });
934
+ });
935
+ });
936
+
937
+ describe("#prepForXml", () => {
938
+ it("should set Internal Hyperlink", () => {
939
+ const paragraph = new Paragraph({
940
+ children: [
941
+ new ExternalHyperlink({
942
+ children: [new TextRun("test")],
943
+ link: "http://www.google.com",
944
+ }),
945
+ ],
946
+ });
947
+ const viewWrapperMock = {
948
+ Relationships: {
949
+ createRelationship: () => ({}),
950
+ },
951
+ } as unknown as IViewWrapper;
952
+
953
+ const file = {} as unknown as File;
954
+ paragraph.prepForXml({
955
+ viewWrapper: viewWrapperMock,
956
+ file: file,
957
+ });
958
+ const tree = new Formatter().format(paragraph);
959
+ expect(tree).to.deep.equal({
960
+ "w:p": [
961
+ {
962
+ "w:hyperlink": [
963
+ {
964
+ _attr: {
965
+ "r:id": "rIdtest-unique-id",
966
+ "w:history": 1,
967
+ },
968
+ },
969
+ {
970
+ "w:r": [
971
+ {
972
+ "w:t": [
973
+ {
974
+ _attr: {
975
+ "xml:space": "preserve",
976
+ },
977
+ },
978
+ "test",
979
+ ],
980
+ },
981
+ ],
982
+ },
983
+ ],
984
+ },
985
+ ],
986
+ });
987
+ });
988
+ });
989
+ });