docx 7.8.1 → 8.0.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 (424) hide show
  1. package/README.md +2 -1
  2. package/build/export/formatter.d.ts +4 -4
  3. package/build/export/index.d.ts +1 -1
  4. package/build/export/packer/image-replacer.d.ts +5 -5
  5. package/build/export/packer/next-compiler.d.ts +11 -11
  6. package/build/export/packer/numbering-replacer.d.ts +4 -4
  7. package/build/export/packer/packer.d.ts +18 -18
  8. package/build/file/app-properties/app-properties-attributes.d.ts +10 -10
  9. package/build/file/app-properties/app-properties.d.ts +4 -4
  10. package/build/file/border/border.d.ts +39 -39
  11. package/build/file/border/index.d.ts +1 -1
  12. package/build/file/content-types/content-types-attributes.d.ts +8 -8
  13. package/build/file/content-types/content-types.d.ts +6 -6
  14. package/build/file/content-types/default/default-attributes.d.ts +10 -10
  15. package/build/file/content-types/default/default.d.ts +4 -4
  16. package/build/file/content-types/override/override-attributes.d.ts +10 -10
  17. package/build/file/content-types/override/override.d.ts +4 -4
  18. package/build/file/core-properties/index.d.ts +1 -1
  19. package/build/file/core-properties/properties.d.ts +40 -40
  20. package/build/file/custom-properties/custom-properties-attributes.d.ts +10 -10
  21. package/build/file/custom-properties/custom-properties.d.ts +9 -9
  22. package/build/file/custom-properties/custom-property-attributes.d.ts +12 -12
  23. package/build/file/custom-properties/custom-property.d.ts +11 -11
  24. package/build/file/custom-properties/index.d.ts +2 -2
  25. package/build/file/document/body/body.d.ts +10 -10
  26. package/build/file/document/body/index.d.ts +2 -2
  27. package/build/file/document/body/section-properties/index.d.ts +2 -2
  28. package/build/file/document/body/section-properties/properties/column.d.ts +10 -14
  29. package/build/file/document/body/section-properties/properties/columns.d.ts +13 -20
  30. package/build/file/document/body/section-properties/properties/doc-grid.d.ts +22 -22
  31. package/build/file/document/body/section-properties/properties/header-footer-reference.d.ts +17 -17
  32. package/build/file/document/body/section-properties/properties/index.d.ts +12 -12
  33. package/build/file/document/body/section-properties/properties/line-number.d.ts +16 -23
  34. package/build/file/document/body/section-properties/properties/page-borders.d.ts +30 -30
  35. package/build/file/document/body/section-properties/properties/page-margin.d.ts +14 -24
  36. package/build/file/document/body/section-properties/properties/page-number.d.ts +24 -24
  37. package/build/file/document/body/section-properties/properties/page-size.d.ts +14 -20
  38. package/build/file/document/body/section-properties/properties/page-text-direction.d.ts +8 -8
  39. package/build/file/document/body/section-properties/properties/section-type.d.ts +18 -18
  40. package/build/file/document/body/section-properties/section-properties.d.ts +53 -53
  41. package/build/file/document/document-attributes.d.ts +85 -85
  42. package/build/file/document/document-background/document-background.d.ts +23 -23
  43. package/build/file/document/document-background/index.d.ts +1 -1
  44. package/build/file/document/document.d.ts +15 -15
  45. package/build/file/document/index.d.ts +4 -4
  46. package/build/file/document-wrapper.d.ts +16 -16
  47. package/build/file/drawing/anchor/anchor-attributes.d.ts +24 -24
  48. package/build/file/drawing/anchor/anchor.d.ts +6 -6
  49. package/build/file/drawing/anchor/index.d.ts +2 -2
  50. package/build/file/drawing/doc-properties/doc-properties-children.d.ts +3 -0
  51. package/build/file/drawing/doc-properties/doc-properties.d.ts +10 -9
  52. package/build/file/drawing/drawing.d.ts +18 -18
  53. package/build/file/drawing/effect-extent/effect-extent-attributes.d.ts +14 -14
  54. package/build/file/drawing/effect-extent/effect-extent.d.ts +4 -4
  55. package/build/file/drawing/extent/extent-attributes.d.ts +10 -10
  56. package/build/file/drawing/extent/extent.d.ts +5 -5
  57. package/build/file/drawing/floating/align.d.ts +5 -5
  58. package/build/file/drawing/floating/floating-position.d.ts +49 -49
  59. package/build/file/drawing/floating/horizontal-position.d.ts +5 -5
  60. package/build/file/drawing/floating/index.d.ts +4 -4
  61. package/build/file/drawing/floating/position-offset.d.ts +4 -4
  62. package/build/file/drawing/floating/simple-pos.d.ts +4 -4
  63. package/build/file/drawing/floating/vertical-position.d.ts +5 -5
  64. package/build/file/drawing/graphic-frame/graphic-frame-locks/graphic-frame-lock-attributes.d.ts +10 -10
  65. package/build/file/drawing/graphic-frame/graphic-frame-locks/graphic-frame-locks.d.ts +4 -4
  66. package/build/file/drawing/graphic-frame/graphic-frame-properties.d.ts +4 -4
  67. package/build/file/drawing/index.d.ts +3 -3
  68. package/build/file/drawing/inline/graphic/graphic-data/graphic-data-attribute.d.ts +8 -8
  69. package/build/file/drawing/inline/graphic/graphic-data/graphic-data.d.ts +6 -6
  70. package/build/file/drawing/inline/graphic/graphic-data/index.d.ts +1 -1
  71. package/build/file/drawing/inline/graphic/graphic-data/pic/blip/blip-fill.d.ts +5 -5
  72. package/build/file/drawing/inline/graphic/graphic-data/pic/blip/blip.d.ts +5 -5
  73. package/build/file/drawing/inline/graphic/graphic-data/pic/blip/source-rectangle.d.ts +4 -4
  74. package/build/file/drawing/inline/graphic/graphic-data/pic/blip/stretch.d.ts +4 -4
  75. package/build/file/drawing/inline/graphic/graphic-data/pic/index.d.ts +1 -1
  76. 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
  77. 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
  78. 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
  79. package/build/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-pic-properties.d.ts +4 -4
  80. package/build/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-properties/non-visual-properties-attributes.d.ts +12 -12
  81. package/build/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-properties/non-visual-properties.d.ts +5 -4
  82. package/build/file/drawing/inline/graphic/graphic-data/pic/pic-attributes.d.ts +8 -8
  83. package/build/file/drawing/inline/graphic/graphic-data/pic/pic.d.ts +5 -5
  84. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/extents/extents-attributes.d.ts +10 -10
  85. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/extents/extents.d.ts +5 -5
  86. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/form.d.ts +17 -17
  87. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/index.d.ts +1 -1
  88. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/offset/off-attributes.d.ts +10 -10
  89. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/offset/off.d.ts +4 -4
  90. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/outline/no-fill.d.ts +4 -4
  91. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/outline/outline.d.ts +4 -4
  92. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/preset-geometry/adjustment-values/adjustment-values.d.ts +4 -4
  93. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/preset-geometry/preset-geometry-attributes.d.ts +8 -8
  94. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/preset-geometry/preset-geometry.d.ts +4 -4
  95. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/shape-properties-attributes.d.ts +8 -8
  96. package/build/file/drawing/inline/graphic/graphic-data/pic/shape-properties/shape-properties.d.ts +6 -6
  97. package/build/file/drawing/inline/graphic/graphic.d.ts +6 -6
  98. package/build/file/drawing/inline/graphic/index.d.ts +1 -1
  99. package/build/file/drawing/inline/index.d.ts +1 -1
  100. package/build/file/drawing/inline/inline-attributes.d.ts +10 -10
  101. package/build/file/drawing/inline/inline.d.ts +14 -14
  102. package/build/file/drawing/text-wrap/index.d.ts +5 -5
  103. package/build/file/drawing/text-wrap/text-wrapping.d.ts +18 -18
  104. package/build/file/drawing/text-wrap/wrap-none.d.ts +4 -4
  105. package/build/file/drawing/text-wrap/wrap-square.d.ts +6 -6
  106. package/build/file/drawing/text-wrap/wrap-tight.d.ts +5 -5
  107. package/build/file/drawing/text-wrap/wrap-top-and-bottom.d.ts +5 -5
  108. package/build/file/file-child.d.ts +4 -0
  109. package/build/file/file.d.ts +69 -72
  110. package/build/file/footer/footer-attributes.d.ts +50 -50
  111. package/build/file/footer/footer.d.ts +9 -9
  112. package/build/file/footer/index.d.ts +1 -1
  113. package/build/file/footer-wrapper.d.ts +23 -23
  114. package/build/file/footnotes/footnote/footnote-attributes.d.ts +10 -10
  115. package/build/file/footnotes/footnote/footnote.d.ts +14 -14
  116. package/build/file/footnotes/footnote/index.d.ts +1 -1
  117. package/build/file/footnotes/footnote/run/continuation-seperator-run.d.ts +4 -4
  118. package/build/file/footnotes/footnote/run/continuation-seperator.d.ts +4 -4
  119. package/build/file/footnotes/footnote/run/footnote-ref-run.d.ts +4 -4
  120. package/build/file/footnotes/footnote/run/footnote-ref.d.ts +4 -4
  121. package/build/file/footnotes/footnote/run/index.d.ts +1 -1
  122. package/build/file/footnotes/footnote/run/reference-run.d.ts +15 -15
  123. package/build/file/footnotes/footnote/run/seperator-run.d.ts +4 -4
  124. package/build/file/footnotes/footnote/run/seperator.d.ts +4 -4
  125. package/build/file/footnotes/footnotes-attributes.d.ts +40 -40
  126. package/build/file/footnotes/footnotes.d.ts +6 -6
  127. package/build/file/footnotes/index.d.ts +2 -2
  128. package/build/file/footnotes-wrapper.d.ts +10 -10
  129. package/build/file/header/header-attributes.d.ts +72 -72
  130. package/build/file/header/header.d.ts +9 -9
  131. package/build/file/header/index.d.ts +1 -1
  132. package/build/file/header-wrapper.d.ts +23 -23
  133. package/build/file/header.d.ts +13 -13
  134. package/build/file/index.d.ts +19 -20
  135. package/build/file/media/data.d.ts +22 -22
  136. package/build/file/media/index.d.ts +2 -2
  137. package/build/file/media/media.d.ts +16 -19
  138. package/build/file/numbering/abstract-numbering.d.ts +6 -6
  139. package/build/file/numbering/index.d.ts +4 -4
  140. package/build/file/numbering/level.d.ts +96 -96
  141. package/build/file/numbering/multi-level-type.d.ts +4 -4
  142. package/build/file/numbering/num.d.ts +22 -20
  143. package/build/file/numbering/numbering.d.ts +19 -19
  144. package/build/file/paragraph/formatting/alignment.d.ts +26 -26
  145. package/build/file/paragraph/formatting/border.d.ts +14 -14
  146. package/build/file/paragraph/formatting/break.d.ts +11 -11
  147. package/build/file/paragraph/formatting/indent.d.ts +13 -12
  148. package/build/file/paragraph/formatting/index.d.ts +8 -8
  149. package/build/file/paragraph/formatting/spacing.d.ts +18 -18
  150. package/build/file/paragraph/formatting/style.d.ts +13 -13
  151. package/build/file/paragraph/formatting/tab-stop.d.ts +44 -44
  152. package/build/file/paragraph/formatting/unordered-list.d.ts +4 -4
  153. package/build/file/paragraph/formatting/word-wrap.d.ts +11 -11
  154. package/build/file/paragraph/frame/frame-properties.d.ts +90 -90
  155. package/build/file/paragraph/frame/index.d.ts +1 -1
  156. package/build/file/paragraph/index.d.ts +7 -7
  157. package/build/file/paragraph/links/bookmark-attributes.d.ts +17 -17
  158. package/build/file/paragraph/links/bookmark.d.ts +17 -17
  159. package/build/file/paragraph/links/hyperlink-attributes.d.ts +13 -13
  160. package/build/file/paragraph/links/hyperlink.d.ts +26 -26
  161. package/build/file/paragraph/links/index.d.ts +4 -4
  162. package/build/file/paragraph/links/outline-level.d.ts +5 -5
  163. package/build/file/paragraph/links/pageref-field-instruction.d.ts +5 -5
  164. package/build/file/paragraph/links/pageref-properties.d.ts +4 -4
  165. package/build/file/paragraph/links/pageref.d.ts +5 -5
  166. package/build/file/paragraph/math/brackets/index.d.ts +4 -4
  167. package/build/file/paragraph/math/brackets/math-angled-brackets.d.ts +7 -7
  168. package/build/file/paragraph/math/brackets/math-beginning-character.d.ts +4 -4
  169. package/build/file/paragraph/math/brackets/math-bracket-properties.d.ts +7 -7
  170. package/build/file/paragraph/math/brackets/math-curly-brackets.d.ts +7 -7
  171. package/build/file/paragraph/math/brackets/math-ending-char.d.ts +4 -4
  172. package/build/file/paragraph/math/brackets/math-round-brackets.d.ts +7 -7
  173. package/build/file/paragraph/math/brackets/math-square-brackets.d.ts +7 -7
  174. package/build/file/paragraph/math/fraction/index.d.ts +3 -3
  175. package/build/file/paragraph/math/fraction/math-denominator.d.ts +5 -5
  176. package/build/file/paragraph/math/fraction/math-fraction.d.ts +9 -9
  177. package/build/file/paragraph/math/fraction/math-numerator.d.ts +5 -5
  178. package/build/file/paragraph/math/function/index.d.ts +3 -3
  179. package/build/file/paragraph/math/function/math-function-name.d.ts +5 -5
  180. package/build/file/paragraph/math/function/math-function-properties.d.ts +4 -4
  181. package/build/file/paragraph/math/function/math-function.d.ts +9 -9
  182. package/build/file/paragraph/math/index.d.ts +9 -9
  183. package/build/file/paragraph/math/math-component.d.ts +9 -9
  184. package/build/file/paragraph/math/math-run.d.ts +4 -4
  185. package/build/file/paragraph/math/math-text.d.ts +4 -4
  186. package/build/file/paragraph/math/math.d.ts +8 -8
  187. package/build/file/paragraph/math/n-ary/index.d.ts +8 -8
  188. package/build/file/paragraph/math/n-ary/math-accent-character.d.ts +4 -4
  189. package/build/file/paragraph/math/n-ary/math-base.d.ts +5 -5
  190. package/build/file/paragraph/math/n-ary/math-integral.d.ts +10 -10
  191. package/build/file/paragraph/math/n-ary/math-limit-location.d.ts +4 -4
  192. package/build/file/paragraph/math/n-ary/math-n-ary-properties.d.ts +4 -4
  193. package/build/file/paragraph/math/n-ary/math-sub-script-hide.d.ts +4 -4
  194. package/build/file/paragraph/math/n-ary/math-sub-script.d.ts +5 -5
  195. package/build/file/paragraph/math/n-ary/math-sum.d.ts +10 -10
  196. package/build/file/paragraph/math/n-ary/math-super-script-hide.d.ts +4 -4
  197. package/build/file/paragraph/math/n-ary/math-super-script.d.ts +5 -5
  198. package/build/file/paragraph/math/radical/index.d.ts +3 -3
  199. package/build/file/paragraph/math/radical/math-degree-hide.d.ts +4 -4
  200. package/build/file/paragraph/math/radical/math-degree.d.ts +5 -5
  201. package/build/file/paragraph/math/radical/math-radical-properties.d.ts +4 -4
  202. package/build/file/paragraph/math/radical/math-radical.d.ts +9 -9
  203. package/build/file/paragraph/math/script/index.d.ts +4 -4
  204. package/build/file/paragraph/math/script/pre-sub-super-script/index.d.ts +2 -2
  205. package/build/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function-properties.d.ts +4 -4
  206. package/build/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function.d.ts +10 -10
  207. package/build/file/paragraph/math/script/sub-script/index.d.ts +2 -2
  208. package/build/file/paragraph/math/script/sub-script/math-sub-script-function-properties.d.ts +4 -4
  209. package/build/file/paragraph/math/script/sub-script/math-sub-script-function.d.ts +9 -9
  210. package/build/file/paragraph/math/script/sub-super-script/index.d.ts +2 -2
  211. package/build/file/paragraph/math/script/sub-super-script/math-sub-super-script-function-properties.d.ts +4 -4
  212. package/build/file/paragraph/math/script/sub-super-script/math-sub-super-script-function.d.ts +10 -10
  213. package/build/file/paragraph/math/script/super-script/index.d.ts +2 -2
  214. package/build/file/paragraph/math/script/super-script/math-super-script-function-properties.d.ts +4 -4
  215. package/build/file/paragraph/math/script/super-script/math-super-script-function.d.ts +9 -9
  216. package/build/file/paragraph/paragraph.d.ts +21 -20
  217. package/build/file/paragraph/properties.d.ts +53 -52
  218. package/build/file/paragraph/run/break.d.ts +4 -4
  219. package/build/file/paragraph/run/comment-run.d.ts +27 -26
  220. package/build/file/paragraph/run/emphasis-mark.d.ts +13 -13
  221. package/build/file/paragraph/run/empty-children.d.ts +52 -0
  222. package/build/file/paragraph/run/field.d.ts +10 -10
  223. package/build/file/paragraph/run/formatting.d.ts +14 -13
  224. package/build/file/paragraph/run/image-run.d.ts +19 -19
  225. package/build/file/paragraph/run/index.d.ts +13 -12
  226. package/build/file/paragraph/run/language.d.ts +7 -0
  227. package/build/file/paragraph/run/page-number.d.ts +10 -10
  228. package/build/file/paragraph/run/positional-tab.d.ts +25 -0
  229. package/build/file/paragraph/run/properties.d.ts +76 -59
  230. package/build/file/paragraph/run/run-components/symbol.d.ts +4 -4
  231. package/build/file/paragraph/run/run-components/text.d.ts +10 -10
  232. package/build/file/paragraph/run/run-fonts.d.ts +12 -12
  233. package/build/file/paragraph/run/run.d.ts +22 -20
  234. package/build/file/paragraph/run/script.d.ts +10 -10
  235. package/build/file/paragraph/run/sequential-identifier-instruction.d.ts +4 -4
  236. package/build/file/paragraph/run/sequential-identifier.d.ts +4 -4
  237. package/build/file/paragraph/run/simple-field.d.ts +7 -7
  238. package/build/file/paragraph/run/symbol-run.d.ts +8 -8
  239. package/build/file/paragraph/run/text-attributes.d.ts +9 -9
  240. package/build/file/paragraph/run/text-run.d.ts +4 -4
  241. package/build/file/paragraph/run/underline.d.ts +24 -24
  242. package/build/file/relationships/attributes.d.ts +8 -8
  243. package/build/file/relationships/index.d.ts +1 -1
  244. package/build/file/relationships/relationship/relationship-attributes.d.ts +14 -14
  245. package/build/file/relationships/relationship/relationship.d.ts +8 -8
  246. package/build/file/relationships/relationships.d.ts +7 -8
  247. package/build/file/settings/compatibility-setting/compatibility-setting.d.ts +15 -15
  248. package/build/file/settings/compatibility.d.ts +72 -72
  249. package/build/file/settings/index.d.ts +1 -1
  250. package/build/file/settings/settings.d.ts +51 -51
  251. package/build/file/shading/index.d.ts +1 -1
  252. package/build/file/shading/shading.d.ts +48 -48
  253. package/build/file/shared/alignment.d.ts +14 -14
  254. package/build/file/shared/index.d.ts +3 -3
  255. package/build/file/shared/number-format.d.ts +64 -64
  256. package/build/file/shared/space-type.d.ts +4 -4
  257. package/build/file/styles/defaults/document-defaults.d.ts +12 -12
  258. package/build/file/styles/defaults/index.d.ts +3 -3
  259. package/build/file/styles/defaults/paragraph-properties.d.ts +5 -5
  260. package/build/file/styles/defaults/run-properties.d.ts +5 -5
  261. package/build/file/styles/external-styles-factory.d.ts +4 -4
  262. package/build/file/styles/factory.d.ts +22 -22
  263. package/build/file/styles/index.d.ts +4 -4
  264. package/build/file/styles/latent-styles/exceptions.d.ts +20 -20
  265. package/build/file/styles/latent-styles/index.d.ts +1 -1
  266. package/build/file/styles/latent-styles/latent-styles.d.ts +5 -5
  267. package/build/file/styles/sample/default-style.d.ts +1 -1
  268. package/build/file/styles/sample/index.d.ts +1 -1
  269. package/build/file/styles/style/character-style.d.ts +13 -13
  270. package/build/file/styles/style/components.d.ts +11 -11
  271. package/build/file/styles/style/default-styles.d.ts +44 -44
  272. package/build/file/styles/style/index.d.ts +4 -4
  273. package/build/file/styles/style/paragraph-style.d.ts +15 -15
  274. package/build/file/styles/style/style.d.ts +20 -20
  275. package/build/file/styles/styles.d.ts +15 -15
  276. package/build/file/table/grid.d.ts +8 -7
  277. package/build/file/table/index.d.ts +5 -5
  278. package/build/file/table/table-cell/index.d.ts +2 -2
  279. package/build/file/table/table-cell/table-cell-components.d.ts +31 -31
  280. package/build/file/table/table-cell/table-cell-properties.d.ts +20 -20
  281. package/build/file/table/table-cell/table-cell.d.ts +12 -12
  282. package/build/file/table/table-properties/index.d.ts +4 -4
  283. package/build/file/table/table-properties/table-borders.d.ts +45 -45
  284. package/build/file/table/table-properties/table-cell-margin.d.ts +16 -16
  285. package/build/file/table/table-properties/table-float-properties.d.ts +42 -55
  286. package/build/file/table/table-properties/table-layout.d.ts +8 -8
  287. package/build/file/table/table-properties/table-properties.d.ts +23 -23
  288. package/build/file/table/table-row/index.d.ts +3 -3
  289. package/build/file/table/table-row/table-row-height.d.ts +19 -18
  290. package/build/file/table/table-row/table-row-properties.d.ts +14 -13
  291. package/build/file/table/table-row/table-row.d.ts +16 -16
  292. package/build/file/table/table-width.d.ts +15 -14
  293. package/build/file/table/table.d.ts +23 -23
  294. package/build/file/table-of-contents/field-instruction.d.ts +6 -6
  295. package/build/file/table-of-contents/index.d.ts +2 -2
  296. package/build/file/table-of-contents/sdt-content.d.ts +4 -4
  297. package/build/file/table-of-contents/sdt-properties.d.ts +4 -4
  298. package/build/file/table-of-contents/table-of-contents-properties.d.ts +23 -23
  299. package/build/file/table-of-contents/table-of-contents.d.ts +5 -5
  300. package/build/file/track-revision/index.d.ts +2 -2
  301. package/build/file/track-revision/track-revision-components/deleted-page-number.d.ts +10 -10
  302. package/build/file/track-revision/track-revision-components/deleted-text-run.d.ts +13 -13
  303. package/build/file/track-revision/track-revision-components/deleted-text.d.ts +4 -4
  304. package/build/file/track-revision/track-revision-components/inserted-text-run.d.ts +9 -9
  305. package/build/file/track-revision/track-revision.d.ts +13 -13
  306. package/build/file/vertical-align/index.d.ts +1 -1
  307. package/build/file/vertical-align/vertical-align.d.ts +16 -16
  308. package/build/file/xml-components/attributes.d.ts +46 -46
  309. package/build/file/xml-components/base.d.ts +13 -12
  310. package/build/file/xml-components/default-attributes.d.ts +25 -11
  311. package/build/file/xml-components/imported-xml-component.d.ts +14 -14
  312. package/build/file/xml-components/index.d.ts +8 -8
  313. package/build/file/xml-components/initializable-xml-component.d.ts +4 -4
  314. package/build/file/xml-components/simple-elements.d.ts +29 -19
  315. package/build/file/xml-components/xml-component.d.ts +12 -12
  316. package/build/file/xml-components/xmlable-object.d.ts +7 -7
  317. package/build/index.d.ts +5 -5
  318. package/build/index.js +1 -1
  319. package/build/patcher/content-types-manager.d.ts +2 -0
  320. package/build/patcher/from-docx.d.ts +25 -0
  321. package/build/patcher/index.d.ts +1 -0
  322. package/build/patcher/paragraph-split-inject.d.ts +6 -0
  323. package/build/patcher/paragraph-token-replacer.d.ts +8 -0
  324. package/build/patcher/relationship-manager.d.ts +4 -0
  325. package/build/patcher/replacer.d.ts +5 -0
  326. package/build/patcher/run-renderer.d.ts +22 -0
  327. package/build/patcher/traverser.d.ts +8 -0
  328. package/build/patcher/util.d.ts +5 -0
  329. package/build/tests/utility.d.ts +3 -3
  330. package/build/util/convenience-functions.d.ts +4 -4
  331. package/build/util/index.d.ts +2 -2
  332. package/build/util/values.d.ts +20 -17
  333. package/package.json +10 -8
  334. package/src/export/formatter.ts +1 -1
  335. package/src/export/packer/next-compiler.ts +23 -5
  336. package/src/file/document/body/section-properties/properties/column.ts +13 -15
  337. package/src/file/document/body/section-properties/properties/columns.ts +10 -19
  338. package/src/file/document/body/section-properties/properties/line-number.ts +13 -17
  339. package/src/file/document/body/section-properties/properties/page-borders.ts +1 -1
  340. package/src/file/document/body/section-properties/properties/page-margin.ts +26 -38
  341. package/src/file/document/body/section-properties/properties/page-size.ts +11 -19
  342. package/src/file/document/body/section-properties/section-properties.ts +5 -5
  343. package/src/file/drawing/doc-properties/doc-properties-children.spec.ts +61 -0
  344. package/src/file/drawing/doc-properties/doc-properties-children.ts +57 -0
  345. package/src/file/drawing/doc-properties/doc-properties.ts +49 -19
  346. package/src/file/drawing/drawing.spec.ts +254 -0
  347. package/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-properties/non-visual-properties.ts +31 -1
  348. package/src/file/file-child.ts +5 -0
  349. package/src/file/file.spec.ts +1 -25
  350. package/src/file/file.ts +5 -31
  351. package/src/file/index.ts +0 -1
  352. package/src/file/media/media.spec.ts +13 -79
  353. package/src/file/media/media.ts +0 -49
  354. package/src/file/numbering/concrete-numbering.spec.ts +185 -10
  355. package/src/file/numbering/num.ts +10 -6
  356. package/src/file/numbering/numbering.ts +6 -4
  357. package/src/file/paragraph/formatting/indent.ts +54 -40
  358. package/src/file/paragraph/paragraph.spec.ts +1 -0
  359. package/src/file/paragraph/paragraph.ts +3 -2
  360. package/src/file/paragraph/properties.spec.ts +16 -0
  361. package/src/file/paragraph/properties.ts +9 -0
  362. package/src/file/paragraph/run/comment-run.spec.ts +10 -8
  363. package/src/file/paragraph/run/comment-run.ts +6 -6
  364. package/src/file/paragraph/run/empty-children.spec.ts +229 -0
  365. package/src/file/paragraph/run/empty-children.ts +127 -0
  366. package/src/file/paragraph/run/formatting.ts +2 -2
  367. package/src/file/paragraph/run/image-run.spec.ts +4 -0
  368. package/src/file/paragraph/run/index.ts +2 -1
  369. package/src/file/paragraph/run/language.spec.ts +29 -0
  370. package/src/file/paragraph/run/language.ts +35 -0
  371. package/src/file/paragraph/run/positional-tab.spec.ts +27 -0
  372. package/src/file/paragraph/run/positional-tab.ts +80 -0
  373. package/src/file/paragraph/run/properties.ts +44 -2
  374. package/src/file/paragraph/run/run.spec.ts +143 -0
  375. package/src/file/paragraph/run/run.ts +83 -2
  376. package/src/file/paragraph/run/symbol-run.ts +1 -1
  377. package/src/file/relationships/relationships.ts +1 -5
  378. package/src/file/styles/sample/default-style.ts +7 -1
  379. package/src/file/table/grid.ts +9 -9
  380. package/src/file/table/table-properties/table-float-properties.spec.ts +1 -3
  381. package/src/file/table/table-properties/table-float-properties.ts +56 -42
  382. package/src/file/table/table-row/table-row-height.ts +2 -2
  383. package/src/file/table/table-row/table-row-properties.ts +2 -1
  384. package/src/file/table/table-width.ts +12 -10
  385. package/src/file/table/table.ts +2 -2
  386. package/src/file/table-of-contents/table-of-contents.ts +2 -2
  387. package/src/file/xml-components/base.ts +2 -0
  388. package/src/file/xml-components/default-attributes.ts +18 -5
  389. package/src/file/xml-components/imported-xml-component.spec.ts +1 -1
  390. package/src/file/xml-components/simple-elements.spec.ts +41 -0
  391. package/src/file/xml-components/simple-elements.ts +29 -3
  392. package/src/file/xml-components/xml-component.ts +11 -0
  393. package/src/index.ts +1 -1
  394. package/src/patcher/content-types-manager.spec.ts +51 -0
  395. package/src/patcher/content-types-manager.ts +16 -0
  396. package/src/patcher/from-docx.spec.ts +370 -0
  397. package/src/patcher/from-docx.ts +233 -0
  398. package/src/patcher/index.ts +1 -0
  399. package/src/patcher/paragraph-split-inject.spec.ts +224 -0
  400. package/src/patcher/paragraph-split-inject.ts +54 -0
  401. package/src/patcher/paragraph-token-replacer.spec.ts +165 -0
  402. package/src/patcher/paragraph-token-replacer.ts +69 -0
  403. package/src/patcher/relationship-manager.spec.ts +87 -0
  404. package/src/patcher/relationship-manager.ts +42 -0
  405. package/src/patcher/replacer.spec.ts +206 -0
  406. package/src/patcher/replacer.ts +83 -0
  407. package/src/patcher/run-renderer.spec.ts +96 -0
  408. package/src/patcher/run-renderer.ts +109 -0
  409. package/src/patcher/traverser.spec.ts +599 -0
  410. package/src/patcher/traverser.ts +45 -0
  411. package/src/patcher/util.spec.ts +50 -0
  412. package/src/patcher/util.ts +30 -0
  413. package/src/util/values.spec.ts +0 -22
  414. package/src/util/values.ts +29 -25
  415. package/build/file/file-properties.d.ts +0 -5
  416. package/build/file/paragraph/run/tab.d.ts +0 -4
  417. package/build/import-dotx/import-dotx.d.ts +0 -23
  418. package/build/import-dotx/index.d.ts +0 -1
  419. package/src/file/file-properties.ts +0 -11
  420. package/src/file/paragraph/run/tab.spec.ts +0 -22
  421. package/src/file/paragraph/run/tab.ts +0 -14
  422. package/src/import-dotx/import-dotx.spec.ts +0 -26
  423. package/src/import-dotx/import-dotx.ts +0 -266
  424. package/src/import-dotx/index.ts +0 -1
@@ -1,5 +1,5 @@
1
- import { StringEnumValueElement, XmlAttributeComponent, XmlComponent } from "@file/xml-components";
2
- import { signedTwipsMeasureValue, twipsMeasureValue } from "@util/values";
1
+ import { NextAttributeComponent, StringEnumValueElement, XmlComponent } from "@file/xml-components";
2
+ import { PositiveUniversalMeasure, signedTwipsMeasureValue, twipsMeasureValue, UniversalMeasure } from "@util/values";
3
3
 
4
4
  export enum TableAnchorType {
5
5
  MARGIN = "margin",
@@ -35,7 +35,7 @@ export enum OverlapType {
35
35
  OVERLAP = "overlap",
36
36
  }
37
37
 
38
- export interface ITableFloatOptions {
38
+ export type ITableFloatOptions = {
39
39
  /* cSpell:disable */
40
40
  /**
41
41
  * Specifies the horizontal anchor or the base object from which the horizontal positioning in the
@@ -55,7 +55,7 @@ export interface ITableFloatOptions {
55
55
  * If relativeHorizontalPosition is also specified, then the absoluteHorizontalPosition attribute is ignored.
56
56
  * If the attribute is omitted, the value is assumed to be zero.
57
57
  */
58
- readonly absoluteHorizontalPosition?: number | string;
58
+ readonly absoluteHorizontalPosition?: number | UniversalMeasure;
59
59
 
60
60
  /**
61
61
  * Specifies a relative horizontal position for the table, relative to the horizontalAnchor attribute.
@@ -86,7 +86,7 @@ export interface ITableFloatOptions {
86
86
  * If relativeVerticalPosition is also specified, then the absoluteVerticalPosition attribute is ignored.
87
87
  * If the attribute is omitted, the value is assumed to be zero.
88
88
  */
89
- readonly absoluteVerticalPosition?: number | string;
89
+ readonly absoluteVerticalPosition?: number | UniversalMeasure;
90
90
 
91
91
  /**
92
92
  * Specifies a relative vertical position for the table, relative to the verticalAnchor attribute.
@@ -104,27 +104,27 @@ export interface ITableFloatOptions {
104
104
  * Specifies the minimum distance to be maintained between the table and the top of text in the paragraph
105
105
  * below the table. The value is in twentieths of a point. If omitted, the value is assumed to be zero.
106
106
  */
107
- readonly bottomFromText?: number | string;
107
+ readonly bottomFromText?: number | PositiveUniversalMeasure;
108
108
 
109
109
  /**
110
110
  * Specifies the minimum distance to be maintained between the table and the bottom edge of text in the paragraph
111
111
  * above the table. The value is in twentieths of a point. If omitted, the value is assumed to be zero.
112
112
  */
113
- readonly topFromText?: number | string;
113
+ readonly topFromText?: number | PositiveUniversalMeasure;
114
114
 
115
115
  /**
116
116
  * Specifies the minimum distance to be maintained between the table and the edge of text in the paragraph
117
117
  * to the left of the table. The value is in twentieths of a point. If omitted, the value is assumed to be zero.
118
118
  */
119
- readonly leftFromText?: number | string;
119
+ readonly leftFromText?: number | PositiveUniversalMeasure;
120
120
 
121
121
  /**
122
122
  * Specifies the minimum distance to be maintained between the table and the edge of text in the paragraph
123
123
  * to the right of the table. The value is in twentieths of a point. If omitted, the value is assumed to be zero.
124
124
  */
125
- readonly rightFromText?: number | string;
125
+ readonly rightFromText?: number | PositiveUniversalMeasure;
126
126
  readonly overlap?: OverlapType;
127
- }
127
+ };
128
128
 
129
129
  // <xsd:complexType name="CT_TblPPr">
130
130
  // <xsd:attribute name="leftFromText" type="s:ST_TwipsMeasure"/>
@@ -139,51 +139,65 @@ export interface ITableFloatOptions {
139
139
  // <xsd:attribute name="tblpY" type="ST_SignedTwipsMeasure"/>
140
140
  // </xsd:complexType>
141
141
 
142
- export class TableFloatOptionsAttributes extends XmlAttributeComponent<ITableFloatOptions> {
143
- protected readonly xmlKeys = {
144
- horizontalAnchor: "w:horzAnchor",
145
- verticalAnchor: "w:vertAnchor",
146
- absoluteHorizontalPosition: "w:tblpX",
147
- relativeHorizontalPosition: "w:tblpXSpec",
148
- absoluteVerticalPosition: "w:tblpY",
149
- relativeVerticalPosition: "w:tblpYSpec",
150
- bottomFromText: "w:bottomFromText",
151
- topFromText: "w:topFromText",
152
- leftFromText: "w:leftFromText",
153
- rightFromText: "w:rightFromText",
154
- };
155
- }
156
-
157
142
  export class TableFloatProperties extends XmlComponent {
158
143
  public constructor({
159
- leftFromText,
160
- rightFromText,
161
- topFromText,
162
- bottomFromText,
144
+ horizontalAnchor,
145
+ verticalAnchor,
163
146
  absoluteHorizontalPosition,
147
+ relativeHorizontalPosition,
164
148
  absoluteVerticalPosition,
165
- ...options
149
+ relativeVerticalPosition,
150
+ bottomFromText,
151
+ topFromText,
152
+ leftFromText,
153
+ rightFromText,
154
+ overlap,
166
155
  }: ITableFloatOptions) {
167
156
  super("w:tblpPr");
168
157
  this.root.push(
169
- new TableFloatOptionsAttributes({
170
- leftFromText: leftFromText === undefined ? undefined : twipsMeasureValue(leftFromText),
171
- rightFromText: rightFromText === undefined ? undefined : twipsMeasureValue(rightFromText),
172
- topFromText: topFromText === undefined ? undefined : twipsMeasureValue(topFromText),
173
- bottomFromText: bottomFromText === undefined ? undefined : twipsMeasureValue(bottomFromText),
174
- absoluteHorizontalPosition:
175
- absoluteHorizontalPosition === undefined ? undefined : signedTwipsMeasureValue(absoluteHorizontalPosition),
176
- absoluteVerticalPosition:
177
- absoluteVerticalPosition === undefined ? undefined : signedTwipsMeasureValue(absoluteVerticalPosition),
178
- ...options,
158
+ new NextAttributeComponent<Omit<ITableFloatOptions, "overlap">>({
159
+ leftFromText: { key: "w:leftFromText", value: leftFromText === undefined ? undefined : twipsMeasureValue(leftFromText) },
160
+ rightFromText: {
161
+ key: "w:rightFromText",
162
+ value: rightFromText === undefined ? undefined : twipsMeasureValue(rightFromText),
163
+ },
164
+ topFromText: { key: "w:topFromText", value: topFromText === undefined ? undefined : twipsMeasureValue(topFromText) },
165
+ bottomFromText: {
166
+ key: "w:bottomFromText",
167
+ value: bottomFromText === undefined ? undefined : twipsMeasureValue(bottomFromText),
168
+ },
169
+ absoluteHorizontalPosition: {
170
+ key: "w:tblpX",
171
+ value: absoluteHorizontalPosition === undefined ? undefined : signedTwipsMeasureValue(absoluteHorizontalPosition),
172
+ },
173
+ absoluteVerticalPosition: {
174
+ key: "w:tblpY",
175
+ value: absoluteVerticalPosition === undefined ? undefined : signedTwipsMeasureValue(absoluteVerticalPosition),
176
+ },
177
+ horizontalAnchor: {
178
+ key: "w:horzAnchor",
179
+ value: horizontalAnchor === undefined ? undefined : horizontalAnchor,
180
+ },
181
+ relativeHorizontalPosition: {
182
+ key: "w:tblpXSpec",
183
+ value: relativeHorizontalPosition,
184
+ },
185
+ relativeVerticalPosition: {
186
+ key: "w:tblpYSpec",
187
+ value: relativeVerticalPosition,
188
+ },
189
+ verticalAnchor: {
190
+ key: "w:vertAnchor",
191
+ value: verticalAnchor,
192
+ },
179
193
  }),
180
194
  );
181
195
 
182
- if (options.overlap) {
196
+ if (overlap) {
183
197
  // <xsd:complexType name="CT_TblOverlap">
184
198
  // <xsd:attribute name="val" type="ST_TblOverlap" use="required"/>
185
199
  // </xsd:complexType>
186
- this.root.push(new StringEnumValueElement<OverlapType>("w:tblOverlap", options.overlap));
200
+ this.root.push(new StringEnumValueElement<OverlapType>("w:tblOverlap", overlap));
187
201
  }
188
202
  }
189
203
  }
@@ -1,5 +1,5 @@
1
1
  import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
2
- import { twipsMeasureValue } from "@util/values";
2
+ import { PositiveUniversalMeasure, twipsMeasureValue } from "@util/values";
3
3
 
4
4
  // <xsd:complexType name="CT_Height">
5
5
  // <xsd:attribute name="val" type="s:ST_TwipsMeasure"/>
@@ -30,7 +30,7 @@ export class TableRowHeightAttributes extends XmlAttributeComponent<{
30
30
  }
31
31
 
32
32
  export class TableRowHeight extends XmlComponent {
33
- public constructor(value: number | string, rule: HeightRule) {
33
+ public constructor(value: number | PositiveUniversalMeasure, rule: HeightRule) {
34
34
  super("w:trHeight");
35
35
 
36
36
  this.root.push(
@@ -28,6 +28,7 @@
28
28
  // </xsd:complexContent>
29
29
  // </xsd:complexType>
30
30
  import { IgnoreIfEmptyXmlComponent, OnOffElement } from "@file/xml-components";
31
+ import { PositiveUniversalMeasure } from "@util/values";
31
32
 
32
33
  import { HeightRule, TableRowHeight } from "./table-row-height";
33
34
 
@@ -35,7 +36,7 @@ export interface ITableRowPropertiesOptions {
35
36
  readonly cantSplit?: boolean;
36
37
  readonly tableHeader?: boolean;
37
38
  readonly height?: {
38
- readonly value: number | string;
39
+ readonly value: number | PositiveUniversalMeasure;
39
40
  readonly rule: HeightRule;
40
41
  };
41
42
  }
@@ -1,6 +1,6 @@
1
1
  // http://officeopenxml.com/WPtableWidth.php
2
- import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
3
- import { measurementOrPercentValue } from "@util/values";
2
+ import { NextAttributeComponent, XmlComponent } from "@file/xml-components";
3
+ import { measurementOrPercentValue, Percentage, UniversalMeasure } from "@util/values";
4
4
 
5
5
  // <xsd:simpleType name="ST_TblWidth">
6
6
  // <xsd:restriction base="xsd:string">
@@ -25,14 +25,10 @@ export enum WidthType {
25
25
  // <xsd:attribute name="w" type="ST_MeasurementOrPercent"/>
26
26
  // <xsd:attribute name="type" type="ST_TblWidth"/>
27
27
  // </xsd:complexType>
28
- export interface ITableWidthProperties {
29
- readonly size: string | number;
28
+ export type ITableWidthProperties = {
29
+ readonly size: number | Percentage | UniversalMeasure;
30
30
  readonly type?: WidthType;
31
- }
32
-
33
- class TableWidthAttributes extends XmlAttributeComponent<ITableWidthProperties> {
34
- protected readonly xmlKeys = { type: "w:type", size: "w:w" };
35
- }
31
+ };
36
32
 
37
33
  export class TableWidthElement extends XmlComponent {
38
34
  public constructor(name: string, { type = WidthType.AUTO, size }: ITableWidthProperties) {
@@ -42,6 +38,12 @@ export class TableWidthElement extends XmlComponent {
42
38
  if (type === WidthType.PERCENTAGE && typeof size === "number") {
43
39
  tableWidthValue = `${size}%`;
44
40
  }
45
- this.root.push(new TableWidthAttributes({ type: type, size: measurementOrPercentValue(tableWidthValue) }));
41
+
42
+ this.root.push(
43
+ new NextAttributeComponent<ITableWidthProperties>({
44
+ type: { key: "w:type", value: type },
45
+ size: { key: "w:w", value: measurementOrPercentValue(tableWidthValue) },
46
+ }),
47
+ );
46
48
  }
47
49
  }
@@ -1,5 +1,5 @@
1
1
  // http://officeopenxml.com/WPtableGrid.php
2
- import { XmlComponent } from "@file/xml-components";
2
+ import { FileChild } from "@file/file-child";
3
3
 
4
4
  import { AlignmentType } from "../paragraph";
5
5
  import { TableGrid } from "./grid";
@@ -34,7 +34,7 @@ export interface ITableOptions {
34
34
  readonly visuallyRightToLeft?: boolean;
35
35
  }
36
36
 
37
- export class Table extends XmlComponent {
37
+ export class Table extends FileChild {
38
38
  public constructor({
39
39
  rows,
40
40
  width,
@@ -3,13 +3,13 @@
3
3
  import { Paragraph } from "@file/paragraph";
4
4
  import { Run } from "@file/paragraph/run";
5
5
  import { Begin, End, Separate } from "@file/paragraph/run/field";
6
- import { XmlComponent } from "@file/xml-components";
6
+ import { FileChild } from "@file/file-child";
7
7
  import { FieldInstruction } from "./field-instruction";
8
8
  import { StructuredDocumentTagContent } from "./sdt-content";
9
9
  import { StructuredDocumentTagProperties } from "./sdt-properties";
10
10
  import { ITableOfContentsOptions } from "./table-of-contents-properties";
11
11
 
12
- export class TableOfContents extends XmlComponent {
12
+ export class TableOfContents extends FileChild {
13
13
  public constructor(alias: string = "Table of Contents", properties?: ITableOfContentsOptions) {
14
14
  super("w:sdt");
15
15
  this.root.push(new StructuredDocumentTagProperties(alias));
@@ -5,6 +5,8 @@ import { IXmlableObject } from "./xmlable-object";
5
5
  export interface IContext {
6
6
  readonly file: File;
7
7
  readonly viewWrapper: IViewWrapper;
8
+ // eslint-disable-next-line functional/prefer-readonly-type
9
+ readonly stack: IXmlableObject[];
8
10
  }
9
11
 
10
12
  export abstract class BaseXmlComponent {
@@ -1,16 +1,16 @@
1
1
  import { BaseXmlComponent, IContext } from "./base";
2
- import { IXmlableObject } from "./xmlable-object";
2
+ import { IXmlableObject, IXmlAttribute } from "./xmlable-object";
3
3
 
4
4
  export type AttributeMap<T> = { readonly [P in keyof T]: string };
5
5
 
6
+ export type AttributeData = { readonly [key: string]: boolean | number | string };
7
+ export type AttributePayload<T> = { readonly [P in keyof T]: { readonly key: string; readonly value: T[P] } };
8
+
6
9
  export abstract class XmlAttributeComponent<T extends object> extends BaseXmlComponent {
7
- // tslint:disable-next-line:readonly-keyword
8
- protected readonly root: T;
9
10
  protected readonly xmlKeys?: AttributeMap<T>;
10
11
 
11
- public constructor(properties: T) {
12
+ public constructor(private readonly root: T) {
12
13
  super("_attr");
13
- this.root = properties;
14
14
  }
15
15
 
16
16
  public prepForXml(_: IContext): IXmlableObject {
@@ -26,3 +26,16 @@ export abstract class XmlAttributeComponent<T extends object> extends BaseXmlCom
26
26
  return { _attr: attrs };
27
27
  }
28
28
  }
29
+
30
+ export class NextAttributeComponent<T extends AttributeData> extends BaseXmlComponent {
31
+ public constructor(private readonly root: AttributePayload<T>) {
32
+ super("_attr");
33
+ }
34
+
35
+ public prepForXml(_: IContext): IXmlableObject {
36
+ const attrs = Object.values<{ readonly key: string; readonly value: string | boolean | number }>(this.root)
37
+ .filter(({ value }) => value !== undefined)
38
+ .reduce((acc, { key, value }) => ({ ...acc, [key]: value }), {} as IXmlAttribute);
39
+ return { _attr: attrs };
40
+ }
41
+ }
@@ -62,7 +62,7 @@ describe("ImportedXmlComponent", () => {
62
62
  describe("#prepForXml()", () => {
63
63
  it("should transform for xml", () => {
64
64
  // tslint:disable-next-line: no-object-literal-type-assertion
65
- const converted = importedXmlComponent.prepForXml({} as IContext);
65
+ const converted = importedXmlComponent.prepForXml({ stack: [] } as unknown as IContext);
66
66
  expect(converted).to.deep.equal({
67
67
  "w:test": [
68
68
  {
@@ -0,0 +1,41 @@
1
+ import { expect } from "chai";
2
+
3
+ import { Formatter } from "@export/formatter";
4
+
5
+ import { BuilderElement } from "./simple-elements";
6
+
7
+ describe("BuilderElement", () => {
8
+ describe("#constructor()", () => {
9
+ it("should create a simple BuilderElement", () => {
10
+ const element = new BuilderElement({
11
+ name: "test",
12
+ });
13
+
14
+ const tree = new Formatter().format(element);
15
+ expect(tree).to.deep.equal({
16
+ test: {},
17
+ });
18
+ });
19
+
20
+ it("should create a simple BuilderElement with attributes", () => {
21
+ const element = new BuilderElement<{ readonly testAttr: string }>({
22
+ name: "test",
23
+ attributes: {
24
+ testAttr: {
25
+ key: "w:testAttr",
26
+ value: "test",
27
+ },
28
+ },
29
+ });
30
+
31
+ const tree = new Formatter().format(element);
32
+ expect(tree).to.deep.equal({
33
+ test: {
34
+ _attr: {
35
+ "w:testAttr": "test",
36
+ },
37
+ },
38
+ });
39
+ });
40
+ });
41
+ });
@@ -1,6 +1,6 @@
1
- import { Attributes, XmlComponent } from "@file/xml-components";
1
+ import { AttributeData, AttributePayload, Attributes, NextAttributeComponent, XmlComponent } from "@file/xml-components";
2
2
 
3
- import { hpsMeasureValue } from "@util/values";
3
+ import { hpsMeasureValue, PositiveUniversalMeasure } from "@util/values";
4
4
 
5
5
  // This represents element type CT_OnOff, which indicate a boolean value.
6
6
  //
@@ -26,8 +26,13 @@ export class OnOffElement extends XmlComponent {
26
26
  // <xsd:complexType name="CT_HpsMeasure">
27
27
  // <xsd:attribute name="val" type="ST_HpsMeasure" use="required"/>
28
28
  // </xsd:complexType>
29
+
30
+ // <xsd:simpleType name="ST_HpsMeasure">
31
+ // <xsd:union memberTypes="s:ST_UnsignedDecimalNumber s:ST_PositiveUniversalMeasure" />
32
+ // </xsd:simpleType>
33
+
29
34
  export class HpsMeasureElement extends XmlComponent {
30
- public constructor(name: string, val: number | string) {
35
+ public constructor(name: string, val: number | PositiveUniversalMeasure) {
31
36
  super(name);
32
37
  this.root.push(new Attributes({ val: hpsMeasureValue(val) }));
33
38
  }
@@ -35,6 +40,11 @@ export class HpsMeasureElement extends XmlComponent {
35
40
 
36
41
  // This represents element type CT_String, which indicate a string value.
37
42
  //
43
+ // <xsd:complexType name="CT_Empty"/>
44
+ export class EmptyElement extends XmlComponent {}
45
+
46
+ // This represents element type CT_Empty, which indicate aan empty element.
47
+ //
38
48
  // <xsd:complexType name="CT_String">
39
49
  // <xsd:attribute name="val" type="s:ST_String" use="required"/>
40
50
  // </xsd:complexType>
@@ -70,3 +80,19 @@ export class StringContainer extends XmlComponent {
70
80
  this.root.push(val);
71
81
  }
72
82
  }
83
+
84
+ export class BuilderElement<T extends AttributeData> extends XmlComponent {
85
+ public constructor(options: {
86
+ readonly name: string;
87
+ readonly attributes?: AttributePayload<T>;
88
+ readonly children?: readonly XmlComponent[];
89
+ }) {
90
+ super(options.name);
91
+
92
+ if (options.attributes) {
93
+ this.root.push(new NextAttributeComponent(options.attributes));
94
+ }
95
+
96
+ // TODO: Children
97
+ }
98
+ }
@@ -12,7 +12,15 @@ export abstract class XmlComponent extends BaseXmlComponent {
12
12
  this.root = new Array<BaseXmlComponent | string>();
13
13
  }
14
14
 
15
+ // This method is called by the formatter to get the XML representation of this component.
16
+ // It is called recursively for all child components.
17
+ // It is a serializer to be used in the xml library.
18
+ // https://www.npmjs.com/package/xml
19
+ // Child components can override this method to customize the XML representation, or execute side effects.
15
20
  public prepForXml(context: IContext): IXmlableObject | undefined {
21
+ // Mutating the stack is required for performance reasons
22
+ // eslint-disable-next-line functional/immutable-data
23
+ context.stack.push(this);
16
24
  const children = this.root
17
25
  .map((comp) => {
18
26
  if (comp instanceof BaseXmlComponent) {
@@ -21,6 +29,9 @@ export abstract class XmlComponent extends BaseXmlComponent {
21
29
  return comp;
22
30
  })
23
31
  .filter((comp) => comp !== undefined); // Exclude undefined
32
+
33
+ // eslint-disable-next-line functional/immutable-data
34
+ context.stack.pop();
24
35
  // If we only have a single IXmlableObject in our children array and it
25
36
  // represents our attributes, use the object itself as our children to
26
37
  // avoid an unneeded XML close element.
package/src/index.ts CHANGED
@@ -3,5 +3,5 @@
3
3
  export { File as Document } from "./file";
4
4
  export * from "./file";
5
5
  export * from "./export";
6
- export * from "./import-dotx";
7
6
  export * from "./util";
7
+ export * from "./patcher";
@@ -0,0 +1,51 @@
1
+ import { expect } from "chai";
2
+ import { appendContentType } from "./content-types-manager";
3
+
4
+ describe("content-types-manager", () => {
5
+ describe("appendContentType", () => {
6
+ it("should append a content type", () => {
7
+ const element = {
8
+ type: "element",
9
+ name: "xml",
10
+ elements: [
11
+ {
12
+ type: "element",
13
+ name: "Types",
14
+ elements: [
15
+ {
16
+ type: "element",
17
+ name: "Default",
18
+ },
19
+ ],
20
+ },
21
+ ],
22
+ };
23
+ appendContentType(element, "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml", "docx");
24
+
25
+ expect(element).to.deep.equal({
26
+ elements: [
27
+ {
28
+ elements: [
29
+ {
30
+ name: "Default",
31
+ type: "element",
32
+ },
33
+ {
34
+ attributes: {
35
+ ContentType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml",
36
+ Extension: "docx",
37
+ },
38
+ name: "Default",
39
+ type: "element",
40
+ },
41
+ ],
42
+ name: "Types",
43
+ type: "element",
44
+ },
45
+ ],
46
+ name: "xml",
47
+ type: "element",
48
+ });
49
+ });
50
+ });
51
+ });
@@ -0,0 +1,16 @@
1
+ import { Element } from "xml-js";
2
+
3
+ import { getFirstLevelElements } from "./util";
4
+
5
+ export const appendContentType = (element: Element, contentType: string, extension: string): void => {
6
+ const relationshipElements = getFirstLevelElements(element, "Types");
7
+ // eslint-disable-next-line functional/immutable-data
8
+ relationshipElements.push({
9
+ attributes: {
10
+ ContentType: contentType,
11
+ Extension: extension,
12
+ },
13
+ name: "Default",
14
+ type: "element",
15
+ });
16
+ };