docx 7.8.2 → 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 (422) 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-margin.ts +26 -38
  340. package/src/file/document/body/section-properties/properties/page-size.ts +11 -19
  341. package/src/file/document/body/section-properties/section-properties.ts +5 -5
  342. package/src/file/drawing/doc-properties/doc-properties-children.spec.ts +61 -0
  343. package/src/file/drawing/doc-properties/doc-properties-children.ts +57 -0
  344. package/src/file/drawing/doc-properties/doc-properties.ts +49 -19
  345. package/src/file/drawing/drawing.spec.ts +254 -0
  346. package/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-properties/non-visual-properties.ts +31 -1
  347. package/src/file/file-child.ts +5 -0
  348. package/src/file/file.spec.ts +1 -25
  349. package/src/file/file.ts +5 -31
  350. package/src/file/index.ts +0 -1
  351. package/src/file/media/media.spec.ts +13 -79
  352. package/src/file/media/media.ts +0 -49
  353. package/src/file/numbering/concrete-numbering.spec.ts +185 -10
  354. package/src/file/numbering/num.ts +10 -6
  355. package/src/file/numbering/numbering.ts +6 -4
  356. package/src/file/paragraph/formatting/indent.ts +54 -40
  357. package/src/file/paragraph/paragraph.spec.ts +1 -0
  358. package/src/file/paragraph/paragraph.ts +3 -2
  359. package/src/file/paragraph/properties.spec.ts +16 -0
  360. package/src/file/paragraph/properties.ts +9 -0
  361. package/src/file/paragraph/run/comment-run.spec.ts +10 -8
  362. package/src/file/paragraph/run/comment-run.ts +6 -6
  363. package/src/file/paragraph/run/empty-children.spec.ts +229 -0
  364. package/src/file/paragraph/run/empty-children.ts +127 -0
  365. package/src/file/paragraph/run/formatting.ts +2 -2
  366. package/src/file/paragraph/run/image-run.spec.ts +4 -0
  367. package/src/file/paragraph/run/index.ts +2 -1
  368. package/src/file/paragraph/run/language.spec.ts +29 -0
  369. package/src/file/paragraph/run/language.ts +35 -0
  370. package/src/file/paragraph/run/positional-tab.spec.ts +27 -0
  371. package/src/file/paragraph/run/positional-tab.ts +80 -0
  372. package/src/file/paragraph/run/properties.ts +44 -2
  373. package/src/file/paragraph/run/run.spec.ts +143 -0
  374. package/src/file/paragraph/run/run.ts +83 -2
  375. package/src/file/relationships/relationships.ts +1 -5
  376. package/src/file/styles/sample/default-style.ts +7 -1
  377. package/src/file/table/grid.ts +9 -9
  378. package/src/file/table/table-properties/table-float-properties.spec.ts +1 -3
  379. package/src/file/table/table-properties/table-float-properties.ts +56 -42
  380. package/src/file/table/table-row/table-row-height.ts +2 -2
  381. package/src/file/table/table-row/table-row-properties.ts +2 -1
  382. package/src/file/table/table-width.ts +12 -10
  383. package/src/file/table/table.ts +2 -2
  384. package/src/file/table-of-contents/table-of-contents.ts +2 -2
  385. package/src/file/xml-components/base.ts +2 -0
  386. package/src/file/xml-components/default-attributes.ts +18 -5
  387. package/src/file/xml-components/imported-xml-component.spec.ts +1 -1
  388. package/src/file/xml-components/simple-elements.spec.ts +41 -0
  389. package/src/file/xml-components/simple-elements.ts +29 -3
  390. package/src/file/xml-components/xml-component.ts +11 -0
  391. package/src/index.ts +1 -1
  392. package/src/patcher/content-types-manager.spec.ts +51 -0
  393. package/src/patcher/content-types-manager.ts +16 -0
  394. package/src/patcher/from-docx.spec.ts +370 -0
  395. package/src/patcher/from-docx.ts +233 -0
  396. package/src/patcher/index.ts +1 -0
  397. package/src/patcher/paragraph-split-inject.spec.ts +224 -0
  398. package/src/patcher/paragraph-split-inject.ts +54 -0
  399. package/src/patcher/paragraph-token-replacer.spec.ts +165 -0
  400. package/src/patcher/paragraph-token-replacer.ts +69 -0
  401. package/src/patcher/relationship-manager.spec.ts +87 -0
  402. package/src/patcher/relationship-manager.ts +42 -0
  403. package/src/patcher/replacer.spec.ts +206 -0
  404. package/src/patcher/replacer.ts +83 -0
  405. package/src/patcher/run-renderer.spec.ts +96 -0
  406. package/src/patcher/run-renderer.ts +109 -0
  407. package/src/patcher/traverser.spec.ts +599 -0
  408. package/src/patcher/traverser.ts +45 -0
  409. package/src/patcher/util.spec.ts +50 -0
  410. package/src/patcher/util.ts +30 -0
  411. package/src/util/values.spec.ts +0 -22
  412. package/src/util/values.ts +29 -25
  413. package/build/file/file-properties.d.ts +0 -5
  414. package/build/file/paragraph/run/tab.d.ts +0 -4
  415. package/build/import-dotx/import-dotx.d.ts +0 -23
  416. package/build/import-dotx/index.d.ts +0 -1
  417. package/src/file/file-properties.ts +0 -11
  418. package/src/file/paragraph/run/tab.spec.ts +0 -22
  419. package/src/file/paragraph/run/tab.ts +0 -14
  420. package/src/import-dotx/import-dotx.spec.ts +0 -26
  421. package/src/import-dotx/import-dotx.ts +0 -266
  422. package/src/import-dotx/index.ts +0 -1
@@ -0,0 +1,50 @@
1
+ import { expect } from "chai";
2
+
3
+ import { createTextElementContents, getFirstLevelElements, patchSpaceAttribute, toJson } from "./util";
4
+
5
+ describe("util", () => {
6
+ describe("toJson", () => {
7
+ it("should return an Element", () => {
8
+ const output = toJson("<xml></xml>");
9
+ expect(output).to.be.an("object");
10
+ });
11
+ });
12
+
13
+ describe("createTextElementContents", () => {
14
+ it("should return an array of elements", () => {
15
+ const output = createTextElementContents("hello");
16
+ expect(output).to.deep.equal([{ type: "text", text: "hello" }]);
17
+ });
18
+ });
19
+
20
+ describe("patchSpaceAttribute", () => {
21
+ it("should return an element with the xml:space attribute", () => {
22
+ const output = patchSpaceAttribute({ type: "element", name: "xml" });
23
+ expect(output).to.deep.equal({
24
+ type: "element",
25
+ name: "xml",
26
+ attributes: {
27
+ "xml:space": "preserve",
28
+ },
29
+ });
30
+ });
31
+ });
32
+
33
+ describe("getFirstLevelElements", () => {
34
+ it("should return an empty array if no elements are found", () => {
35
+ const elements = getFirstLevelElements(
36
+ { elements: [{ type: "element", name: "Relationships", elements: [] }] },
37
+ "Relationships",
38
+ );
39
+ expect(elements).to.deep.equal([]);
40
+ });
41
+
42
+ it("should return an array if elements are found", () => {
43
+ const elements = getFirstLevelElements(
44
+ { elements: [{ type: "element", name: "Relationships", elements: [{ type: "element", name: "Relationship" }] }] },
45
+ "Relationships",
46
+ );
47
+ expect(elements).to.deep.equal([{ type: "element", name: "Relationship" }]);
48
+ });
49
+ });
50
+ });
@@ -0,0 +1,30 @@
1
+ import { xml2js, Element } from "xml-js";
2
+ import * as xml from "xml";
3
+
4
+ import { Formatter } from "@export/formatter";
5
+ import { Text } from "@file/paragraph/run/run-components/text";
6
+
7
+ const formatter = new Formatter();
8
+
9
+ export const toJson = (xmlData: string): Element => {
10
+ const xmlObj = xml2js(xmlData, { compact: false }) as Element;
11
+ return xmlObj;
12
+ };
13
+
14
+ // eslint-disable-next-line functional/prefer-readonly-type
15
+ export const createTextElementContents = (text: string): Element[] => {
16
+ const textJson = toJson(xml(formatter.format(new Text({ text }))));
17
+
18
+ return textJson.elements![0].elements ?? [];
19
+ };
20
+
21
+ export const patchSpaceAttribute = (element: Element): Element => ({
22
+ ...element,
23
+ attributes: {
24
+ "xml:space": "preserve",
25
+ },
26
+ });
27
+
28
+ // eslint-disable-next-line functional/prefer-readonly-type
29
+ export const getFirstLevelElements = (relationships: Element, id: string): Element[] =>
30
+ relationships.elements?.filter((e) => e.name === id)[0].elements ?? [];
@@ -25,13 +25,6 @@ describe("values", () => {
25
25
  expect(universalMeasureValue("5.22pc")).to.eq("5.22pc");
26
26
  expect(universalMeasureValue("100 pi")).to.eq("100pi");
27
27
  });
28
- it("should throw on invalid values", () => {
29
- expect(() => universalMeasureValue("100pp")).to.throw();
30
- expect(() => universalMeasureValue("foo")).to.throw();
31
- expect(() => universalMeasureValue("--in")).to.throw();
32
- expect(() => universalMeasureValue("NaNpc")).to.throw();
33
- expect(() => universalMeasureValue("50")).to.throw();
34
- });
35
28
  });
36
29
 
37
30
  describe("positiveUniversalMeasureValue", () => {
@@ -46,11 +39,6 @@ describe("values", () => {
46
39
  it("should throw on invalid values", () => {
47
40
  expect(() => positiveUniversalMeasureValue("-9mm")).to.throw();
48
41
  expect(() => positiveUniversalMeasureValue("-0.5in")).to.throw();
49
- expect(() => positiveUniversalMeasureValue("100pp")).to.throw();
50
- expect(() => positiveUniversalMeasureValue("foo")).to.throw();
51
- expect(() => positiveUniversalMeasureValue("--in")).to.throw();
52
- expect(() => positiveUniversalMeasureValue("NaNpc")).to.throw();
53
- expect(() => positiveUniversalMeasureValue("50")).to.throw();
54
42
  });
55
43
  });
56
44
 
@@ -116,7 +104,6 @@ describe("values", () => {
116
104
  });
117
105
  it("should throw on invalid values", () => {
118
106
  expect(() => signedTwipsMeasureValue(NaN)).to.throw();
119
- expect(() => signedTwipsMeasureValue("foo")).to.throw();
120
107
  });
121
108
  });
122
109
 
@@ -129,7 +116,6 @@ describe("values", () => {
129
116
  it("should throw on invalid values", () => {
130
117
  expect(() => twipsMeasureValue(-12)).to.throw();
131
118
  expect(() => twipsMeasureValue(NaN)).to.throw();
132
- expect(() => twipsMeasureValue("foo")).to.throw();
133
119
  expect(() => twipsMeasureValue("-5mm")).to.throw();
134
120
  });
135
121
  });
@@ -154,7 +140,6 @@ describe("values", () => {
154
140
  });
155
141
  it("should throw on invalid values", () => {
156
142
  expect(() => hpsMeasureValue(NaN)).to.throw();
157
- expect(() => hpsMeasureValue("5FF")).to.throw();
158
143
  });
159
144
  });
160
145
 
@@ -165,11 +150,6 @@ describe("values", () => {
165
150
  expect(percentageValue("100%")).to.eq("100%");
166
151
  expect(percentageValue("1000%")).to.eq("1000%");
167
152
  });
168
- it("should throw on invalid values", () => {
169
- expect(() => percentageValue("0%%")).to.throw();
170
- expect(() => percentageValue("20")).to.throw();
171
- expect(() => percentageValue("FF%")).to.throw();
172
- });
173
153
  });
174
154
 
175
155
  describe("measurementOrPercentValue", () => {
@@ -181,8 +161,6 @@ describe("values", () => {
181
161
  });
182
162
  it("should throw on invalid values", () => {
183
163
  expect(() => measurementOrPercentValue(NaN)).to.throw();
184
- expect(() => measurementOrPercentValue("10%%")).to.throw();
185
- expect(() => measurementOrPercentValue("10F")).to.throw();
186
164
  });
187
165
  });
188
166
 
@@ -4,6 +4,23 @@
4
4
  // Most of the rest of the types not defined here are either aliases of existing types or enumerations.
5
5
  // Enumerations should probably just be implemented as enums, with instructions to end-users, without a runtime check.
6
6
 
7
+ // -?[0-9]+(\.[0-9]+)?(mm|cm|in|pt|pc|pi)
8
+ export type UniversalMeasure = `${"-" | ""}${number}${"mm" | "cm" | "in" | "pt" | "pc" | "pi"}`;
9
+
10
+ // <xsd:simpleType name="ST_PositiveUniversalMeasure">
11
+ // <xsd:restriction base="ST_UniversalMeasure">
12
+ // <xsd:pattern value="[0-9]+(\.[0-9]+)?(mm|cm|in|pt|pc|pi)" />
13
+ // </xsd:restriction>
14
+ // </xsd:simpleType>
15
+ export type PositiveUniversalMeasure = `${number}${"mm" | "cm" | "in" | "pt" | "pc" | "pi"}`;
16
+
17
+ // <xsd:simpleType name="ST_Percentage">
18
+ // <xsd:restriction base="xsd:string">
19
+ // <xsd:pattern value="-?[0-9]+(\.[0-9]+)?%"/>
20
+ // </xsd:restriction>
21
+ // </xsd:simpleType>
22
+ export type Percentage = `${"-" | ""}${number}%`;
23
+
7
24
  // <xsd:simpleType name="ST_DecimalNumber">
8
25
  // <xsd:restriction base="xsd:integer"/>
9
26
  // </xsd:simpleType>
@@ -70,30 +87,23 @@ export const uCharHexNumber = (val: string): string => hexBinary(val, 1);
70
87
  // <xsd:pattern value="-?[0-9]+(\.[0-9]+)?(mm|cm|in|pt|pc|pi)"/>
71
88
  // </xsd:restriction>
72
89
  // </xsd:simpleType>
73
- export const universalMeasureValue = (val: string): string => {
90
+ export const universalMeasureValue = (val: UniversalMeasure): UniversalMeasure => {
74
91
  const unit = val.slice(-2);
75
- if (!universalMeasureUnits.includes(unit)) {
76
- throw new Error(`Invalid unit '${unit}' specified. Valid units are ${universalMeasureUnits.join(", ")}`);
77
- }
78
92
  const amount = val.substring(0, val.length - 2);
79
- if (isNaN(Number(amount))) {
80
- throw new Error(`Invalid value '${amount}' specified. Expected a valid number.`);
81
- }
82
- return `${Number(amount)}${unit}`;
93
+ return `${Number(amount)}${unit}` as UniversalMeasure;
83
94
  };
84
- const universalMeasureUnits = ["mm", "cm", "in", "pt", "pc", "pi"];
85
95
 
86
96
  // <xsd:simpleType name="ST_PositiveUniversalMeasure">
87
97
  // <xsd:restriction base="ST_UniversalMeasure">
88
98
  // <xsd:pattern value="[0-9]+(\.[0-9]+)?(mm|cm|in|pt|pc|pi)"/>
89
99
  // </xsd:restriction>
90
100
  // </xsd:simpleType>
91
- export const positiveUniversalMeasureValue = (val: string): string => {
101
+ export const positiveUniversalMeasureValue = (val: PositiveUniversalMeasure): PositiveUniversalMeasure => {
92
102
  const value = universalMeasureValue(val);
93
103
  if (parseFloat(value) < 0) {
94
104
  throw new Error(`Invalid value '${value}' specified. Expected a positive number.`);
95
105
  }
96
- return value;
106
+ return value as PositiveUniversalMeasure;
97
107
  };
98
108
 
99
109
  // <xsd:simpleType name="ST_HexColor">
@@ -123,25 +133,25 @@ export const hexColorValue = (val: string): string => {
123
133
  // <xsd:simpleType name="ST_SignedTwipsMeasure">
124
134
  // <xsd:union memberTypes="xsd:integer s:ST_UniversalMeasure"/>
125
135
  // </xsd:simpleType>
126
- export const signedTwipsMeasureValue = (val: string | number): string | number =>
136
+ export const signedTwipsMeasureValue = (val: UniversalMeasure | number): UniversalMeasure | number =>
127
137
  typeof val === "string" ? universalMeasureValue(val) : decimalNumber(val);
128
138
 
129
139
  // <xsd:simpleType name="ST_HpsMeasure">
130
140
  // <xsd:union memberTypes="s:ST_UnsignedDecimalNumber s:ST_PositiveUniversalMeasure"/>
131
141
  // </xsd:simpleType>
132
- export const hpsMeasureValue = (val: string | number): string | number =>
142
+ export const hpsMeasureValue = (val: PositiveUniversalMeasure | number): string | number =>
133
143
  typeof val === "string" ? positiveUniversalMeasureValue(val) : unsignedDecimalNumber(val);
134
144
 
135
145
  // <xsd:simpleType name="ST_SignedHpsMeasure">
136
146
  // <xsd:union memberTypes="xsd:integer s:ST_UniversalMeasure"/>
137
147
  // </xsd:simpleType>
138
- export const signedHpsMeasureValue = (val: string | number): string | number =>
148
+ export const signedHpsMeasureValue = (val: UniversalMeasure | number): string | number =>
139
149
  typeof val === "string" ? universalMeasureValue(val) : decimalNumber(val);
140
150
 
141
151
  // <xsd:simpleType name="ST_TwipsMeasure">
142
152
  // <xsd:union memberTypes="ST_UnsignedDecimalNumber ST_PositiveUniversalMeasure"/>
143
153
  // </xsd:simpleType>
144
- export const twipsMeasureValue = (val: string | number): string | number =>
154
+ export const twipsMeasureValue = (val: PositiveUniversalMeasure | number): PositiveUniversalMeasure | number =>
145
155
  typeof val === "string" ? positiveUniversalMeasureValue(val) : unsignedDecimalNumber(val);
146
156
 
147
157
  // <xsd:simpleType name="ST_Percentage">
@@ -149,14 +159,8 @@ export const twipsMeasureValue = (val: string | number): string | number =>
149
159
  // <xsd:pattern value="-?[0-9]+(\.[0-9]+)?%"/>
150
160
  // </xsd:restriction>
151
161
  // </xsd:simpleType>
152
- export const percentageValue = (val: string): string => {
153
- if (val.slice(-1) !== "%") {
154
- throw new Error(`Invalid value '${val}'. Expected percentage value (eg '55%')`);
155
- }
162
+ export const percentageValue = (val: Percentage): Percentage => {
156
163
  const percent = val.substring(0, val.length - 1);
157
- if (isNaN(Number(percent))) {
158
- throw new Error(`Invalid value '${percent}' specified. Expected a valid number.`);
159
- }
160
164
  return `${Number(percent)}%`;
161
165
  };
162
166
 
@@ -172,14 +176,14 @@ export const percentageValue = (val: string): string => {
172
176
  // <xsd:restriction base="xsd:integer"/>
173
177
  // </xsd:simpleType>
174
178
 
175
- export const measurementOrPercentValue = (val: number | string): number | string => {
179
+ export const measurementOrPercentValue = (val: number | Percentage | UniversalMeasure): number | UniversalMeasure | Percentage => {
176
180
  if (typeof val === "number") {
177
181
  return decimalNumber(val);
178
182
  }
179
183
  if (val.slice(-1) === "%") {
180
- return percentageValue(val);
184
+ return percentageValue(val as Percentage);
181
185
  }
182
- return universalMeasureValue(val);
186
+ return universalMeasureValue(val as UniversalMeasure);
183
187
  };
184
188
 
185
189
  // <xsd:simpleType name="ST_EighthPointMeasure">
@@ -1,5 +0,0 @@
1
- import { IDocumentTemplate } from "../import-dotx";
2
- export interface IFileProperties {
3
- readonly template?: IDocumentTemplate;
4
- }
5
- export declare const WORKAROUND = "";
@@ -1,4 +0,0 @@
1
- import { XmlComponent } from "../../../file/xml-components";
2
- export declare class Tab extends XmlComponent {
3
- constructor();
4
- }
@@ -1,23 +0,0 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { IDocumentFooter } from "../file/footer-wrapper";
4
- import { IDocumentHeader } from "../file/header-wrapper";
5
- import { Media } from "../file/media";
6
- export interface IDocumentTemplate {
7
- readonly currentRelationshipId: number;
8
- readonly headers: IDocumentHeader[];
9
- readonly footers: IDocumentFooter[];
10
- readonly styles: string;
11
- readonly titlePageIsDefined: boolean;
12
- readonly media: Media;
13
- }
14
- export declare class ImportDotx {
15
- extract(data: Buffer | string | number[] | Uint8Array | ArrayBuffer | Blob | NodeJS.ReadableStream): Promise<IDocumentTemplate>;
16
- private createFooters;
17
- private createHeaders;
18
- private addRelationshipToWrapper;
19
- private findReferenceFiles;
20
- private extractDocumentRefs;
21
- private checkIfTitlePageIsDefined;
22
- private parseRefId;
23
- }
@@ -1 +0,0 @@
1
- export * from "./import-dotx";
@@ -1,11 +0,0 @@
1
- import { IDocumentTemplate } from "../import-dotx";
2
-
3
- export interface IFileProperties {
4
- readonly template?: IDocumentTemplate;
5
- }
6
-
7
- // Needed because of: https://github.com/s-panferov/awesome-typescript-loader/issues/432
8
- /**
9
- * @ignore
10
- */
11
- export const WORKAROUND = "";
@@ -1,22 +0,0 @@
1
- import { expect } from "chai";
2
-
3
- import { Formatter } from "@export/formatter";
4
-
5
- import { Tab } from "./tab";
6
-
7
- describe("Tab", () => {
8
- let tab: Tab;
9
-
10
- beforeEach(() => {
11
- tab = new Tab();
12
- });
13
-
14
- describe("#constructor()", () => {
15
- it("should create a Tab with correct root key", () => {
16
- const tree = new Formatter().format(tab);
17
- expect(tree).to.deep.equal({
18
- "w:tab": {},
19
- });
20
- });
21
- });
22
- });
@@ -1,14 +0,0 @@
1
- // https://c-rex.net/projects/samples/ooxml/e1/Part4/OOXML_P4_DOCX_tab_topic_ID0EM6AO.html
2
- import { XmlComponent } from "@file/xml-components";
3
-
4
- // <xsd:group name="EG_RunInnerContent">
5
- // ...
6
- // <xsd:element name="tab" type="CT_Empty" minOccurs="0"/>
7
- //
8
- // TODO: this is unused and undocumented currently.
9
- // I think the intended use was for users to import, and insert as a child of `Run`.
10
- export class Tab extends XmlComponent {
11
- public constructor() {
12
- super("w:tab");
13
- }
14
- }
@@ -1,26 +0,0 @@
1
- import { expect } from "chai";
2
-
3
- import { ImportDotx } from "./import-dotx";
4
-
5
- describe("ImportDotx", () => {
6
- describe("#constructor", () => {
7
- it("should create", () => {
8
- const file = new ImportDotx();
9
-
10
- expect(file).to.deep.equal({});
11
- });
12
- });
13
-
14
- // describe("#extract", () => {
15
- // it("should create", async () => {
16
- // const file = new ImportDotx();
17
- // const filePath = "./demo/dotx/template.dotx";
18
-
19
- // const templateDocument = await file.extract(data);
20
-
21
- // await file.extract(data);
22
-
23
- // expect(templateDocument).to.be.equal({ currentRelationshipId: 1 });
24
- // });
25
- // });
26
- });
@@ -1,266 +0,0 @@
1
- /* eslint-disable */
2
- // This will be deprecated soon
3
- import * as JSZip from "jszip";
4
- import { Element as XMLElement, ElementCompact as XMLElementCompact, xml2js } from "xml-js";
5
-
6
- import { HeaderFooterReferenceType } from "@file/document/body/section-properties";
7
- import { FooterWrapper, IDocumentFooter } from "@file/footer-wrapper";
8
- import { HeaderWrapper, IDocumentHeader } from "@file/header-wrapper";
9
- import { Media } from "@file/media";
10
- import { TargetModeType } from "@file/relationships/relationship/relationship";
11
- import { convertToXmlComponent, ImportedXmlComponent } from "@file/xml-components";
12
-
13
- const schemeToType = {
14
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header": "header",
15
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer": "footer",
16
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image": "image",
17
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink": "hyperlink",
18
- };
19
-
20
- interface IDocumentRefs {
21
- readonly headers: { readonly id: number; readonly type: HeaderFooterReferenceType }[];
22
- readonly footers: { readonly id: number; readonly type: HeaderFooterReferenceType }[];
23
- }
24
-
25
- enum RelationshipType {
26
- HEADER = "header",
27
- FOOTER = "footer",
28
- IMAGE = "image",
29
- HYPERLINK = "hyperlink",
30
- }
31
-
32
- interface IRelationshipFileInfo {
33
- readonly id: number;
34
- readonly target: string;
35
- readonly type: RelationshipType;
36
- }
37
-
38
- // Document Template
39
- // https://fileinfo.com/extension/dotx
40
- export interface IDocumentTemplate {
41
- readonly currentRelationshipId: number;
42
- readonly headers: IDocumentHeader[];
43
- readonly footers: IDocumentFooter[];
44
- readonly styles: string;
45
- readonly titlePageIsDefined: boolean;
46
- readonly media: Media;
47
- }
48
-
49
- export class ImportDotx {
50
- public async extract(
51
- data: Buffer | string | number[] | Uint8Array | ArrayBuffer | Blob | NodeJS.ReadableStream,
52
- ): Promise<IDocumentTemplate> {
53
- const zipContent = await JSZip.loadAsync(data);
54
-
55
- const documentContent = await zipContent.files["word/document.xml"].async("text");
56
- const relationshipContent = await zipContent.files["word/_rels/document.xml.rels"].async("text");
57
-
58
- const documentRefs = this.extractDocumentRefs(documentContent);
59
- const documentRelationships = this.findReferenceFiles(relationshipContent);
60
-
61
- const media = new Media();
62
-
63
- const templateDocument: IDocumentTemplate = {
64
- headers: await this.createHeaders(zipContent, documentRefs, documentRelationships, media, 0),
65
- footers: await this.createFooters(zipContent, documentRefs, documentRelationships, media, documentRefs.headers.length),
66
- currentRelationshipId: documentRefs.footers.length + documentRefs.headers.length,
67
- styles: await zipContent.files["word/styles.xml"].async("text"),
68
- titlePageIsDefined: this.checkIfTitlePageIsDefined(documentContent),
69
- media: media,
70
- };
71
-
72
- return templateDocument;
73
- }
74
-
75
- private async createFooters(
76
- zipContent: JSZip,
77
- documentRefs: IDocumentRefs,
78
- documentRelationships: IRelationshipFileInfo[],
79
- media: Media,
80
- startingRelationshipId: number,
81
- ): Promise<IDocumentFooter[]> {
82
- const result = documentRefs.footers
83
- .map(async (reference, i) => {
84
- const relationshipFileInfo = documentRelationships.find((rel) => rel.id === reference.id);
85
-
86
- if (relationshipFileInfo === null || !relationshipFileInfo) {
87
- throw new Error(`Can not find target file for id ${reference.id}`);
88
- }
89
-
90
- const xmlData = await zipContent.files[`word/${relationshipFileInfo.target}`].async("text");
91
- const xmlObj = xml2js(xmlData, { compact: false, captureSpacesBetweenElements: true }) as XMLElement;
92
-
93
- if (!xmlObj.elements) {
94
- return undefined;
95
- }
96
-
97
- const xmlElement = xmlObj.elements.reduce((acc, current) => (current.name === "w:ftr" ? current : acc));
98
-
99
- const importedComp = convertToXmlComponent(xmlElement) as ImportedXmlComponent;
100
- const wrapper = new FooterWrapper(media, startingRelationshipId + i, importedComp);
101
- await this.addRelationshipToWrapper(relationshipFileInfo, zipContent, wrapper, media);
102
-
103
- return { type: reference.type, footer: wrapper };
104
- })
105
- .filter((x) => !!x) as Promise<IDocumentFooter>[];
106
-
107
- return Promise.all(result);
108
- }
109
-
110
- private async createHeaders(
111
- zipContent: JSZip,
112
- documentRefs: IDocumentRefs,
113
- documentRelationships: IRelationshipFileInfo[],
114
- media: Media,
115
- startingRelationshipId: number,
116
- ): Promise<IDocumentHeader[]> {
117
- const result = documentRefs.headers
118
- .map(async (reference, i) => {
119
- const relationshipFileInfo = documentRelationships.find((rel) => rel.id === reference.id);
120
-
121
- if (relationshipFileInfo === null || !relationshipFileInfo) {
122
- throw new Error(`Can not find target file for id ${reference.id}`);
123
- }
124
-
125
- const xmlData = await zipContent.files[`word/${relationshipFileInfo.target}`].async("text");
126
- const xmlObj = xml2js(xmlData, { compact: false, captureSpacesBetweenElements: true }) as XMLElement;
127
-
128
- if (!xmlObj.elements) {
129
- return undefined;
130
- }
131
-
132
- const xmlElement = xmlObj.elements.reduce((acc, current) => (current.name === "w:hdr" ? current : acc));
133
-
134
- const importedComp = convertToXmlComponent(xmlElement) as ImportedXmlComponent;
135
- const wrapper = new HeaderWrapper(media, startingRelationshipId + i, importedComp);
136
- await this.addRelationshipToWrapper(relationshipFileInfo, zipContent, wrapper, media);
137
-
138
- return { type: reference.type, header: wrapper };
139
- })
140
- .filter((x) => !!x) as Promise<IDocumentHeader>[];
141
-
142
- return Promise.all(result);
143
- }
144
-
145
- private async addRelationshipToWrapper(
146
- relationshipFile: IRelationshipFileInfo,
147
- zipContent: JSZip,
148
- wrapper: HeaderWrapper | FooterWrapper,
149
- media: Media,
150
- ): Promise<void> {
151
- const refFile = zipContent.files[`word/_rels/${relationshipFile.target}.rels`];
152
-
153
- if (!refFile) {
154
- return;
155
- }
156
-
157
- const xmlRef = await refFile.async("text");
158
- const wrapperImagesReferences = this.findReferenceFiles(xmlRef).filter((r) => r.type === RelationshipType.IMAGE);
159
- const hyperLinkReferences = this.findReferenceFiles(xmlRef).filter((r) => r.type === RelationshipType.HYPERLINK);
160
-
161
- for (const r of wrapperImagesReferences) {
162
- const bufferType = JSZip.support.arraybuffer ? "arraybuffer" : "nodebuffer";
163
- const buffer = await zipContent.files[`word/${r.target}`].async(bufferType);
164
- const mediaData = media.addMedia(buffer, {
165
- width: 100,
166
- height: 100,
167
- });
168
-
169
- wrapper.Relationships.createRelationship(
170
- r.id,
171
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
172
- `media/${mediaData.fileName}`,
173
- );
174
- }
175
-
176
- for (const r of hyperLinkReferences) {
177
- wrapper.Relationships.createRelationship(
178
- r.id,
179
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",
180
- r.target,
181
- TargetModeType.EXTERNAL,
182
- );
183
- }
184
- }
185
-
186
- private findReferenceFiles(xmlData: string): IRelationshipFileInfo[] {
187
- const xmlObj = xml2js(xmlData, { compact: true }) as XMLElementCompact;
188
- const relationXmlArray = Array.isArray(xmlObj.Relationships.Relationship)
189
- ? xmlObj.Relationships.Relationship
190
- : [xmlObj.Relationships.Relationship];
191
- const relationships: IRelationshipFileInfo[] = relationXmlArray
192
- .map((item: XMLElementCompact) => {
193
- if (item._attributes === undefined) {
194
- throw Error("relationship element has no attributes");
195
- }
196
- return {
197
- id: this.parseRefId(item._attributes.Id as string),
198
- type: schemeToType[item._attributes.Type as string],
199
- target: item._attributes.Target as string,
200
- };
201
- })
202
- .filter((item) => item.type !== null);
203
- return relationships;
204
- }
205
-
206
- private extractDocumentRefs(xmlData: string): IDocumentRefs {
207
- const xmlObj = xml2js(xmlData, { compact: true }) as XMLElementCompact;
208
- const sectionProp = xmlObj["w:document"]["w:body"]["w:sectPr"];
209
-
210
- const headerProps: XMLElementCompact = sectionProp["w:headerReference"];
211
- let headersXmlArray: XMLElementCompact[];
212
- if (headerProps === undefined) {
213
- headersXmlArray = [];
214
- } else if (Array.isArray(headerProps)) {
215
- headersXmlArray = headerProps;
216
- } else {
217
- headersXmlArray = [headerProps];
218
- }
219
- const headers = headersXmlArray.map((item) => {
220
- if (item._attributes === undefined) {
221
- throw Error("header reference element has no attributes");
222
- }
223
- return {
224
- type: item._attributes["w:type"] as HeaderFooterReferenceType,
225
- id: this.parseRefId(item._attributes["r:id"] as string),
226
- };
227
- });
228
-
229
- const footerProps: XMLElementCompact = sectionProp["w:footerReference"];
230
- let footersXmlArray: XMLElementCompact[];
231
- if (footerProps === undefined) {
232
- footersXmlArray = [];
233
- } else if (Array.isArray(footerProps)) {
234
- footersXmlArray = footerProps;
235
- } else {
236
- footersXmlArray = [footerProps];
237
- }
238
-
239
- const footers = footersXmlArray.map((item) => {
240
- if (item._attributes === undefined) {
241
- throw Error("footer reference element has no attributes");
242
- }
243
- return {
244
- type: item._attributes["w:type"] as HeaderFooterReferenceType,
245
- id: this.parseRefId(item._attributes["r:id"] as string),
246
- };
247
- });
248
-
249
- return { headers, footers };
250
- }
251
-
252
- private checkIfTitlePageIsDefined(xmlData: string): boolean {
253
- const xmlObj = xml2js(xmlData, { compact: true }) as XMLElementCompact;
254
- const sectionProp = xmlObj["w:document"]["w:body"]["w:sectPr"];
255
-
256
- return sectionProp["w:titlePg"] !== undefined;
257
- }
258
-
259
- private parseRefId(str: string): number {
260
- const match = /^rId(\d+)$/.exec(str);
261
- if (match === null) {
262
- throw new Error("Invalid ref id");
263
- }
264
- return parseInt(match[1], 10);
265
- }
266
- }
@@ -1 +0,0 @@
1
- export * from "./import-dotx";