docx 7.4.1 → 7.6.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 (303) hide show
  1. package/LICENSE +21 -21
  2. package/build/export/packer/image-replacer.d.ts +2 -2
  3. package/build/export/packer/numbering-replacer.d.ts +1 -1
  4. package/build/export/packer/packer.d.ts +4 -0
  5. package/build/file/core-properties/properties.d.ts +3 -3
  6. package/build/file/custom-properties/custom-properties.d.ts +1 -1
  7. package/build/file/document/body/section-properties/properties/columns.d.ts +1 -1
  8. package/build/file/drawing/text-wrap/wrap-square.d.ts +1 -1
  9. package/build/file/file.d.ts +3 -3
  10. package/build/file/footnotes/footnote/footnote.d.ts +1 -1
  11. package/build/file/footnotes/footnotes.d.ts +1 -1
  12. package/build/file/header.d.ts +1 -1
  13. package/build/file/numbering/abstract-numbering.d.ts +1 -1
  14. package/build/file/numbering/level.d.ts +2 -2
  15. package/build/file/numbering/numbering.d.ts +4 -4
  16. package/build/file/paragraph/formatting/tab-stop.d.ts +7 -2
  17. package/build/file/paragraph/links/bookmark.d.ts +2 -2
  18. package/build/file/paragraph/links/hyperlink.d.ts +5 -5
  19. package/build/file/paragraph/math/brackets/math-angled-brackets.d.ts +1 -1
  20. package/build/file/paragraph/math/brackets/math-curly-brackets.d.ts +1 -1
  21. package/build/file/paragraph/math/brackets/math-round-brackets.d.ts +1 -1
  22. package/build/file/paragraph/math/brackets/math-square-brackets.d.ts +1 -1
  23. package/build/file/paragraph/math/fraction/math-denominator.d.ts +1 -1
  24. package/build/file/paragraph/math/fraction/math-fraction.d.ts +2 -2
  25. package/build/file/paragraph/math/fraction/math-numerator.d.ts +1 -1
  26. package/build/file/paragraph/math/function/math-function-name.d.ts +1 -1
  27. package/build/file/paragraph/math/function/math-function.d.ts +2 -2
  28. package/build/file/paragraph/math/math-component.d.ts +2 -2
  29. package/build/file/paragraph/math/math.d.ts +1 -1
  30. package/build/file/paragraph/math/n-ary/index.d.ts +1 -0
  31. package/build/file/paragraph/math/n-ary/math-base.d.ts +1 -1
  32. package/build/file/paragraph/math/n-ary/math-integral.d.ts +10 -0
  33. package/build/file/paragraph/math/n-ary/math-sub-script.d.ts +1 -1
  34. package/build/file/paragraph/math/n-ary/math-sum.d.ts +3 -3
  35. package/build/file/paragraph/math/n-ary/math-super-script.d.ts +1 -1
  36. package/build/file/paragraph/math/radical/math-degree.d.ts +1 -1
  37. package/build/file/paragraph/math/radical/math-radical.d.ts +2 -2
  38. package/build/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function.d.ts +3 -3
  39. package/build/file/paragraph/math/script/sub-script/math-sub-script-function.d.ts +2 -2
  40. package/build/file/paragraph/math/script/sub-super-script/math-sub-super-script-function.d.ts +3 -3
  41. package/build/file/paragraph/math/script/super-script/math-super-script-function.d.ts +2 -2
  42. package/build/file/paragraph/paragraph.d.ts +1 -1
  43. package/build/file/paragraph/properties.d.ts +2 -6
  44. package/build/file/paragraph/run/comment-run.d.ts +1 -1
  45. package/build/file/paragraph/run/run.d.ts +1 -1
  46. package/build/file/styles/sample/default-style.d.ts +1 -102
  47. package/build/file/styles/styles.d.ts +3 -3
  48. package/build/file/table/grid.d.ts +1 -1
  49. package/build/file/table/table-cell/table-cell.d.ts +1 -1
  50. package/build/file/table/table-row/table-row.d.ts +2 -2
  51. package/build/file/table/table.d.ts +2 -2
  52. package/build/file/table-of-contents/table-of-contents-properties.d.ts +1 -1
  53. package/build/file/xml-components/default-attributes.d.ts +3 -3
  54. package/build/file/xml-components/imported-xml-component.d.ts +2 -2
  55. package/build/index.js +1 -1
  56. package/build/index.js.LICENSE.txt +0 -12
  57. package/build/util/values.d.ts +17 -17
  58. package/package.json +15 -8
  59. package/src/export/packer/image-replacer.ts +2 -2
  60. package/src/export/packer/next-compiler.spec.ts +2 -2
  61. package/src/export/packer/next-compiler.ts +8 -8
  62. package/src/export/packer/numbering-replacer.ts +1 -1
  63. package/src/export/packer/packer.spec.ts +65 -7
  64. package/src/export/packer/packer.ts +24 -0
  65. package/src/file/app-properties/app-properties.ts +1 -1
  66. package/src/file/border/border.ts +1 -1
  67. package/src/file/content-types/content-types.ts +1 -1
  68. package/src/file/content-types/default/default.ts +1 -1
  69. package/src/file/content-types/override/override.ts +1 -1
  70. package/src/file/core-properties/properties.ts +5 -5
  71. package/src/file/custom-properties/custom-properties.ts +4 -2
  72. package/src/file/custom-properties/custom-property.ts +2 -2
  73. package/src/file/document/body/body.ts +3 -1
  74. package/src/file/document/body/section-properties/properties/column.ts +1 -1
  75. package/src/file/document/body/section-properties/properties/columns.spec.ts +7 -0
  76. package/src/file/document/body/section-properties/properties/columns.ts +2 -2
  77. package/src/file/document/body/section-properties/properties/doc-grid.ts +1 -1
  78. package/src/file/document/body/section-properties/properties/header-footer-reference.ts +1 -1
  79. package/src/file/document/body/section-properties/properties/line-number.ts +1 -1
  80. package/src/file/document/body/section-properties/properties/page-borders.ts +1 -1
  81. package/src/file/document/body/section-properties/properties/page-margin.ts +1 -1
  82. package/src/file/document/body/section-properties/properties/page-number.ts +1 -1
  83. package/src/file/document/body/section-properties/properties/page-size.ts +1 -1
  84. package/src/file/document/body/section-properties/properties/page-text-direction.ts +1 -1
  85. package/src/file/document/body/section-properties/properties/section-type.ts +1 -1
  86. package/src/file/document/body/section-properties/section-properties.ts +1 -1
  87. package/src/file/document/document-background/document-background.ts +1 -1
  88. package/src/file/document/document.ts +1 -1
  89. package/src/file/document-wrapper.spec.ts +0 -2
  90. package/src/file/document-wrapper.ts +1 -1
  91. package/src/file/drawing/anchor/anchor.spec.ts +2 -3
  92. package/src/file/drawing/anchor/anchor.ts +1 -1
  93. package/src/file/drawing/doc-properties/doc-properties.ts +1 -1
  94. package/src/file/drawing/drawing.spec.ts +2 -3
  95. package/src/file/drawing/drawing.ts +1 -1
  96. package/src/file/drawing/effect-extent/effect-extent.ts +1 -1
  97. package/src/file/drawing/extent/extent.ts +1 -1
  98. package/src/file/drawing/floating/align.ts +1 -1
  99. package/src/file/drawing/floating/horizontal-position.ts +1 -1
  100. package/src/file/drawing/floating/position-offset.ts +1 -1
  101. package/src/file/drawing/floating/simple-pos.ts +1 -1
  102. package/src/file/drawing/floating/vertical-position.ts +1 -1
  103. package/src/file/drawing/graphic-frame/graphic-frame-locks/graphic-frame-locks.ts +1 -1
  104. package/src/file/drawing/graphic-frame/graphic-frame-properties.ts +1 -1
  105. package/src/file/drawing/inline/graphic/graphic-data/graphic-data.ts +1 -1
  106. package/src/file/drawing/inline/graphic/graphic-data/pic/blip/blip-fill.ts +1 -1
  107. package/src/file/drawing/inline/graphic/graphic-data/pic/blip/blip.ts +1 -1
  108. package/src/file/drawing/inline/graphic/graphic-data/pic/blip/source-rectangle.ts +1 -1
  109. package/src/file/drawing/inline/graphic/graphic-data/pic/blip/stretch.ts +2 -2
  110. package/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/child-non-visual-pic-properties/child-non-visual-pic-properties.ts +1 -1
  111. package/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/child-non-visual-pic-properties/pic-locks/pic-locks.ts +1 -1
  112. package/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-pic-properties.ts +1 -1
  113. package/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-properties/non-visual-properties.ts +1 -1
  114. package/src/file/drawing/inline/graphic/graphic-data/pic/pic.ts +1 -1
  115. package/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/extents/extents.ts +1 -1
  116. package/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/form.ts +1 -1
  117. package/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/offset/off.ts +1 -1
  118. package/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/outline/no-fill.ts +1 -1
  119. package/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/outline/outline.ts +1 -1
  120. package/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/preset-geometry/adjustment-values/adjustment-values.ts +1 -1
  121. package/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/preset-geometry/preset-geometry.ts +1 -1
  122. package/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/shape-properties.ts +1 -1
  123. package/src/file/drawing/inline/graphic/graphic.ts +1 -1
  124. package/src/file/drawing/inline/inline.ts +1 -1
  125. package/src/file/drawing/text-wrap/wrap-none.ts +1 -1
  126. package/src/file/drawing/text-wrap/wrap-square.ts +3 -2
  127. package/src/file/drawing/text-wrap/wrap-tight.ts +1 -1
  128. package/src/file/drawing/text-wrap/wrap-top-and-bottom.ts +1 -1
  129. package/src/file/file.spec.ts +55 -2
  130. package/src/file/file.ts +18 -13
  131. package/src/file/footer/footer.ts +1 -1
  132. package/src/file/footer-wrapper.spec.ts +1 -1
  133. package/src/file/footer-wrapper.ts +1 -1
  134. package/src/file/footnotes/footnote/footnote.ts +2 -2
  135. package/src/file/footnotes/footnote/run/continuation-seperator-run.ts +1 -1
  136. package/src/file/footnotes/footnote/run/continuation-seperator.ts +1 -1
  137. package/src/file/footnotes/footnote/run/footnote-ref-run.ts +1 -1
  138. package/src/file/footnotes/footnote/run/footnote-ref.ts +1 -1
  139. package/src/file/footnotes/footnote/run/reference-run.ts +2 -2
  140. package/src/file/footnotes/footnote/run/seperator-run.ts +1 -1
  141. package/src/file/footnotes/footnote/run/seperator.ts +1 -1
  142. package/src/file/footnotes/footnotes.ts +2 -2
  143. package/src/file/footnotes-wrapper.spec.ts +0 -2
  144. package/src/file/footnotes-wrapper.ts +1 -1
  145. package/src/file/header/header.ts +1 -1
  146. package/src/file/header-wrapper.spec.ts +1 -1
  147. package/src/file/header-wrapper.ts +1 -1
  148. package/src/file/header.ts +11 -3
  149. package/src/file/media/media.spec.ts +4 -2
  150. package/src/file/media/media.ts +3 -1
  151. package/src/file/numbering/abstract-numbering.ts +1 -1
  152. package/src/file/numbering/level.spec.ts +40 -3
  153. package/src/file/numbering/level.ts +27 -8
  154. package/src/file/numbering/multi-level-type.ts +1 -1
  155. package/src/file/numbering/num.ts +4 -4
  156. package/src/file/numbering/numbering.spec.ts +2 -1
  157. package/src/file/numbering/numbering.ts +18 -18
  158. package/src/file/paragraph/formatting/alignment.ts +1 -1
  159. package/src/file/paragraph/formatting/border.ts +2 -2
  160. package/src/file/paragraph/formatting/break.ts +4 -4
  161. package/src/file/paragraph/formatting/indent.ts +1 -1
  162. package/src/file/paragraph/formatting/spacing.ts +1 -1
  163. package/src/file/paragraph/formatting/style.ts +1 -1
  164. package/src/file/paragraph/formatting/tab-stop.spec.ts +2 -2
  165. package/src/file/paragraph/formatting/tab-stop.ts +14 -5
  166. package/src/file/paragraph/formatting/unordered-list.ts +3 -3
  167. package/src/file/paragraph/frame/frame-properties.ts +1 -1
  168. package/src/file/paragraph/links/bookmark.ts +4 -4
  169. package/src/file/paragraph/links/hyperlink.ts +6 -4
  170. package/src/file/paragraph/links/outline-level.ts +1 -1
  171. package/src/file/paragraph/links/pageref-field-instruction.ts +1 -1
  172. package/src/file/paragraph/links/pageref.ts +1 -1
  173. package/src/file/paragraph/math/brackets/math-angled-brackets.ts +1 -1
  174. package/src/file/paragraph/math/brackets/math-beginning-character.ts +1 -1
  175. package/src/file/paragraph/math/brackets/math-bracket-properties.ts +1 -1
  176. package/src/file/paragraph/math/brackets/math-curly-brackets.ts +1 -1
  177. package/src/file/paragraph/math/brackets/math-ending-char.ts +1 -1
  178. package/src/file/paragraph/math/brackets/math-round-brackets.ts +1 -1
  179. package/src/file/paragraph/math/brackets/math-square-brackets.ts +1 -1
  180. package/src/file/paragraph/math/fraction/math-denominator.ts +1 -1
  181. package/src/file/paragraph/math/fraction/math-fraction.ts +3 -3
  182. package/src/file/paragraph/math/fraction/math-numerator.ts +1 -1
  183. package/src/file/paragraph/math/function/math-function-name.ts +1 -1
  184. package/src/file/paragraph/math/function/math-function-properties.ts +1 -1
  185. package/src/file/paragraph/math/function/math-function.ts +3 -3
  186. package/src/file/paragraph/math/math-component.ts +2 -1
  187. package/src/file/paragraph/math/math-run.ts +1 -1
  188. package/src/file/paragraph/math/math-text.ts +1 -1
  189. package/src/file/paragraph/math/math.ts +2 -2
  190. package/src/file/paragraph/math/n-ary/index.ts +1 -0
  191. package/src/file/paragraph/math/n-ary/math-accent-character.ts +1 -1
  192. package/src/file/paragraph/math/n-ary/math-base.ts +1 -1
  193. package/src/file/paragraph/math/n-ary/math-integral.spec.ts +116 -0
  194. package/src/file/paragraph/math/n-ary/math-integral.ts +31 -0
  195. package/src/file/paragraph/math/n-ary/math-limit-location.ts +1 -1
  196. package/src/file/paragraph/math/n-ary/math-n-ary-properties.ts +4 -2
  197. package/src/file/paragraph/math/n-ary/math-sub-script-hide.ts +1 -1
  198. package/src/file/paragraph/math/n-ary/math-sub-script.ts +1 -1
  199. package/src/file/paragraph/math/n-ary/math-sum.ts +4 -4
  200. package/src/file/paragraph/math/n-ary/math-super-script-hide.ts +1 -1
  201. package/src/file/paragraph/math/n-ary/math-super-script.ts +1 -1
  202. package/src/file/paragraph/math/radical/math-degree-hide.ts +1 -1
  203. package/src/file/paragraph/math/radical/math-degree.ts +1 -1
  204. package/src/file/paragraph/math/radical/math-radical-properties.ts +1 -1
  205. package/src/file/paragraph/math/radical/math-radical.ts +3 -3
  206. package/src/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function-properties.ts +1 -1
  207. package/src/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function.ts +4 -4
  208. package/src/file/paragraph/math/script/sub-script/math-sub-script-function-properties.ts +1 -1
  209. package/src/file/paragraph/math/script/sub-script/math-sub-script-function.ts +3 -3
  210. package/src/file/paragraph/math/script/sub-super-script/math-sub-super-script-function-properties.ts +1 -1
  211. package/src/file/paragraph/math/script/sub-super-script/math-sub-super-script-function.ts +4 -4
  212. package/src/file/paragraph/math/script/super-script/math-super-script-function-properties.ts +1 -1
  213. package/src/file/paragraph/math/script/super-script/math-super-script-function.ts +3 -3
  214. package/src/file/paragraph/paragraph.spec.ts +2 -6
  215. package/src/file/paragraph/paragraph.ts +2 -2
  216. package/src/file/paragraph/properties.spec.ts +1 -3
  217. package/src/file/paragraph/properties.ts +18 -18
  218. package/src/file/paragraph/run/break.ts +1 -1
  219. package/src/file/paragraph/run/comment-run.ts +6 -6
  220. package/src/file/paragraph/run/emphasis-mark.ts +2 -2
  221. package/src/file/paragraph/run/field.ts +3 -3
  222. package/src/file/paragraph/run/formatting.ts +4 -4
  223. package/src/file/paragraph/run/image-run.spec.ts +9 -9
  224. package/src/file/paragraph/run/image-run.ts +2 -1
  225. package/src/file/paragraph/run/page-number.ts +3 -3
  226. package/src/file/paragraph/run/properties.ts +2 -2
  227. package/src/file/paragraph/run/run-components/symbol.ts +1 -1
  228. package/src/file/paragraph/run/run-components/text.ts +1 -1
  229. package/src/file/paragraph/run/run-fonts.ts +5 -5
  230. package/src/file/paragraph/run/run.spec.ts +1 -3
  231. package/src/file/paragraph/run/run.ts +2 -2
  232. package/src/file/paragraph/run/script.ts +3 -3
  233. package/src/file/paragraph/run/sequential-identifier-instruction.ts +1 -1
  234. package/src/file/paragraph/run/sequential-identifier.ts +1 -1
  235. package/src/file/paragraph/run/simple-field.ts +2 -2
  236. package/src/file/paragraph/run/symbol-run.spec.ts +1 -3
  237. package/src/file/paragraph/run/symbol-run.ts +1 -1
  238. package/src/file/paragraph/run/tab.ts +1 -1
  239. package/src/file/paragraph/run/text-run.ts +1 -1
  240. package/src/file/paragraph/run/underline.ts +1 -1
  241. package/src/file/relationships/relationship/relationship.ts +1 -1
  242. package/src/file/relationships/relationships.ts +1 -1
  243. package/src/file/settings/compatibility-setting/compatibility-setting.ts +1 -1
  244. package/src/file/settings/compatibility.ts +1 -1
  245. package/src/file/settings/settings.ts +1 -1
  246. package/src/file/shading/shading.ts +1 -1
  247. package/src/file/styles/defaults/document-defaults.spec.ts +2 -2
  248. package/src/file/styles/defaults/document-defaults.ts +1 -1
  249. package/src/file/styles/defaults/paragraph-properties.ts +1 -1
  250. package/src/file/styles/defaults/run-properties.ts +1 -1
  251. package/src/file/styles/external-styles-factory.spec.ts +3 -3
  252. package/src/file/styles/external-styles-factory.ts +1 -0
  253. package/src/file/styles/latent-styles/exceptions.ts +1 -1
  254. package/src/file/styles/latent-styles/latent-styles.ts +1 -1
  255. package/src/file/styles/sample/default-style.ts +6 -6
  256. package/src/file/styles/style/character-style.ts +1 -1
  257. package/src/file/styles/style/components.ts +2 -2
  258. package/src/file/styles/style/default-styles.spec.ts +1 -2
  259. package/src/file/styles/style/default-styles.ts +14 -14
  260. package/src/file/styles/style/paragraph-style.ts +1 -1
  261. package/src/file/styles/style/style.ts +1 -1
  262. package/src/file/styles/styles.ts +4 -4
  263. package/src/file/table/grid.spec.ts +1 -2
  264. package/src/file/table/grid.ts +2 -2
  265. package/src/file/table/table-cell/table-cell-components.ts +4 -4
  266. package/src/file/table/table-cell/table-cell-properties.ts +1 -1
  267. package/src/file/table/table-cell/table-cell.ts +2 -2
  268. package/src/file/table/table-properties/table-borders.ts +1 -1
  269. package/src/file/table/table-properties/table-cell-margin.ts +4 -1
  270. package/src/file/table/table-properties/table-float-properties.ts +1 -1
  271. package/src/file/table/table-properties/table-layout.ts +1 -1
  272. package/src/file/table/table-properties/table-overlap.ts +1 -1
  273. package/src/file/table/table-properties/table-properties.ts +1 -1
  274. package/src/file/table/table-row/table-row-height.ts +1 -1
  275. package/src/file/table/table-row/table-row-properties.ts +1 -1
  276. package/src/file/table/table-row/table-row.ts +3 -3
  277. package/src/file/table/table-width.ts +1 -1
  278. package/src/file/table/table.ts +4 -3
  279. package/src/file/table-of-contents/alias.ts +1 -1
  280. package/src/file/table-of-contents/field-instruction.ts +1 -1
  281. package/src/file/table-of-contents/sdt-content.ts +1 -1
  282. package/src/file/table-of-contents/sdt-properties.ts +1 -1
  283. package/src/file/table-of-contents/table-of-contents-properties.ts +2 -2
  284. package/src/file/table-of-contents/table-of-contents.spec.ts +1 -3
  285. package/src/file/table-of-contents/table-of-contents.ts +1 -1
  286. package/src/file/track-revision/track-revision-components/deleted-page-number.ts +3 -3
  287. package/src/file/track-revision/track-revision-components/deleted-text-run.ts +2 -2
  288. package/src/file/track-revision/track-revision-components/deleted-text.ts +1 -1
  289. package/src/file/track-revision/track-revision-components/inserted-text-run.ts +1 -1
  290. package/src/file/vertical-align/vertical-align.ts +1 -1
  291. package/src/file/xml-components/base.ts +1 -1
  292. package/src/file/xml-components/default-attributes.ts +5 -4
  293. package/src/file/xml-components/imported-xml-component.spec.ts +3 -2
  294. package/src/file/xml-components/imported-xml-component.ts +13 -8
  295. package/src/file/xml-components/initializable-xml-component.ts +1 -1
  296. package/src/file/xml-components/simple-elements.ts +5 -5
  297. package/src/file/xml-components/xml-component.ts +4 -2
  298. package/src/import-dotx/import-dotx.ts +2 -0
  299. package/src/index.spec.ts +0 -1
  300. package/src/tests/utility.ts +1 -1
  301. package/src/util/convenience-functions.spec.ts +0 -2
  302. package/src/util/convenience-functions.ts +4 -12
  303. package/src/util/values.ts +29 -41
@@ -10,8 +10,8 @@ import { ILevelsOptions, LevelFormat } from "./level";
10
10
  import { ConcreteNumbering } from "./num";
11
11
 
12
12
  export interface INumberingOptions {
13
- readonly config: {
14
- readonly levels: ILevelsOptions[];
13
+ readonly config: readonly {
14
+ readonly levels: readonly ILevelsOptions[];
15
15
  readonly reference: string;
16
16
  }[];
17
17
  }
@@ -31,7 +31,7 @@ export class Numbering extends XmlComponent {
31
31
  private readonly concreteNumberingMap = new Map<string, ConcreteNumbering>();
32
32
  private readonly referenceConfigMap = new Map<string, object>();
33
33
 
34
- constructor(options: INumberingOptions) {
34
+ public constructor(options: INumberingOptions) {
35
35
  super("w:numbering");
36
36
  this.root.push(
37
37
  new DocumentAttributes({
@@ -203,33 +203,33 @@ export class Numbering extends XmlComponent {
203
203
  return;
204
204
  }
205
205
 
206
+ const referenceConfigLevels = this.referenceConfigMap.get(reference);
207
+ const firstLevelStartNumber = referenceConfigLevels && referenceConfigLevels[0].start;
208
+
206
209
  const concreteNumberingSettings = {
207
210
  numId: uniqueNumericId(),
208
211
  abstractNumId: abstractNumbering.id,
209
212
  reference,
210
213
  instance,
211
- overrideLevel: {
212
- num: 0,
213
- start: 1,
214
- },
214
+ overrideLevel:
215
+ firstLevelStartNumber && Number.isInteger(firstLevelStartNumber)
216
+ ? {
217
+ num: 0,
218
+ start: firstLevelStartNumber,
219
+ }
220
+ : {
221
+ num: 0,
222
+ start: 1,
223
+ },
215
224
  };
216
225
 
217
- const referenceConfigLevels = this.referenceConfigMap.get(reference);
218
- const firstLevelStartNumber = referenceConfigLevels && referenceConfigLevels[0].start;
219
- if (firstLevelStartNumber && Number.isInteger(firstLevelStartNumber)) {
220
- concreteNumberingSettings.overrideLevel = {
221
- num: 0,
222
- start: firstLevelStartNumber,
223
- };
224
- }
225
-
226
226
  this.concreteNumberingMap.set(fullReference, new ConcreteNumbering(concreteNumberingSettings));
227
227
  }
228
228
 
229
- public get ConcreteNumbering(): ConcreteNumbering[] {
229
+ public get ConcreteNumbering(): readonly ConcreteNumbering[] {
230
230
  return Array.from(this.concreteNumberingMap.values());
231
231
  }
232
- public get ReferenceConfig(): object[] {
232
+ public get ReferenceConfig(): readonly object[] {
233
233
  return Array.from(this.referenceConfigMap.values());
234
234
  }
235
235
  }
@@ -18,7 +18,7 @@ export class AlignmentAttributes extends XmlAttributeComponent<{ readonly val: A
18
18
  }
19
19
 
20
20
  export class Alignment extends XmlComponent {
21
- constructor(type: AlignmentType) {
21
+ public constructor(type: AlignmentType) {
22
22
  super("w:jc");
23
23
  this.root.push(new AlignmentAttributes({ val: type }));
24
24
  }
@@ -10,7 +10,7 @@ export interface IBordersOptions {
10
10
  }
11
11
 
12
12
  export class Border extends IgnoreIfEmptyXmlComponent {
13
- constructor(options: IBordersOptions) {
13
+ public constructor(options: IBordersOptions) {
14
14
  super("w:pBdr");
15
15
 
16
16
  if (options.top) {
@@ -32,7 +32,7 @@ export class Border extends IgnoreIfEmptyXmlComponent {
32
32
  }
33
33
 
34
34
  export class ThematicBreak extends XmlComponent {
35
- constructor() {
35
+ public constructor() {
36
36
  super("w:pBdr");
37
37
  const bottom = new BorderElement("w:bottom", {
38
38
  color: "auto",
@@ -9,7 +9,7 @@ enum BreakType {
9
9
  }
10
10
 
11
11
  class Break extends XmlComponent {
12
- constructor(type: BreakType) {
12
+ public constructor(type: BreakType) {
13
13
  super("w:br");
14
14
  this.root.push(
15
15
  new Attributes({
@@ -20,14 +20,14 @@ class Break extends XmlComponent {
20
20
  }
21
21
 
22
22
  export class PageBreak extends Run {
23
- constructor() {
23
+ public constructor() {
24
24
  super({});
25
25
  this.root.push(new Break(BreakType.PAGE));
26
26
  }
27
27
  }
28
28
 
29
29
  export class ColumnBreak extends Run {
30
- constructor() {
30
+ public constructor() {
31
31
  super({});
32
32
  this.root.push(new Break(BreakType.COLUMN));
33
33
  }
@@ -37,7 +37,7 @@ export class ColumnBreak extends Run {
37
37
  * Add page break before the paragraph if there is no one added before.
38
38
  */
39
39
  export class PageBreakBefore extends XmlComponent {
40
- constructor() {
40
+ public constructor() {
41
41
  super("w:pageBreakBefore");
42
42
  }
43
43
  }
@@ -41,7 +41,7 @@ class IndentAttributes extends XmlAttributeComponent<IIndentAttributesProperties
41
41
  // ...
42
42
  // <xsd:element name="ind" type="CT_Ind" minOccurs="0"/>
43
43
  export class Indent extends XmlComponent {
44
- constructor({ start, end, left, right, hanging, firstLine }: IIndentAttributesProperties) {
44
+ public constructor({ start, end, left, right, hanging, firstLine }: IIndentAttributesProperties) {
45
45
  super("w:ind");
46
46
  this.root.push(
47
47
  new IndentAttributes({
@@ -25,7 +25,7 @@ class SpacingAttributes extends XmlAttributeComponent<ISpacingProperties> {
25
25
  }
26
26
 
27
27
  export class Spacing extends XmlComponent {
28
- constructor(options: ISpacingProperties) {
28
+ public constructor(options: ISpacingProperties) {
29
29
  super("w:spacing");
30
30
  this.root.push(new SpacingAttributes(options));
31
31
  }
@@ -11,7 +11,7 @@ export enum HeadingLevel {
11
11
  }
12
12
 
13
13
  export class Style extends XmlComponent {
14
- constructor(styleId: string) {
14
+ public constructor(styleId: string) {
15
15
  super("w:pStyle");
16
16
  this.root.push(
17
17
  new Attributes({
@@ -8,7 +8,7 @@ describe("LeftTabStop", () => {
8
8
  let tabStop: TabStop;
9
9
 
10
10
  beforeEach(() => {
11
- tabStop = new TabStop(TabStopType.LEFT, 100);
11
+ tabStop = new TabStop([{ type: TabStopType.LEFT, position: 100 }]);
12
12
  });
13
13
 
14
14
  describe("#constructor()", () => {
@@ -32,7 +32,7 @@ describe("RightTabStop", () => {
32
32
  let tabStop: TabStop;
33
33
 
34
34
  beforeEach(() => {
35
- tabStop = new TabStop(TabStopType.RIGHT, 100, LeaderType.DOT);
35
+ tabStop = new TabStop([{ type: TabStopType.RIGHT, position: 100, leader: LeaderType.DOT }]);
36
36
  });
37
37
 
38
38
  describe("#constructor()", () => {
@@ -1,10 +1,19 @@
1
1
  // http://officeopenxml.com/WPtab.php
2
2
  import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
3
3
 
4
+ export interface TabStopDefinition {
5
+ readonly type: TabStopType;
6
+ readonly position: number | TabStopPosition;
7
+ readonly leader?: LeaderType;
8
+ }
9
+
4
10
  export class TabStop extends XmlComponent {
5
- constructor(type: TabStopType, position: number, leader?: LeaderType) {
11
+ public constructor(tabDefinitions: readonly TabStopDefinition[]) {
6
12
  super("w:tabs");
7
- this.root.push(new TabStopItem(type, position, leader));
13
+
14
+ for (const tabDefinition of tabDefinitions) {
15
+ this.root.push(new TabStopItem(tabDefinition));
16
+ }
8
17
  }
9
18
  }
10
19
 
@@ -41,13 +50,13 @@ export class TabAttributes extends XmlAttributeComponent<{
41
50
  }
42
51
 
43
52
  export class TabStopItem extends XmlComponent {
44
- constructor(value: TabStopType, position: string | number, leader?: LeaderType) {
53
+ public constructor({ type, position, leader }: TabStopDefinition) {
45
54
  super("w:tab");
46
55
  this.root.push(
47
56
  new TabAttributes({
48
- val: value,
57
+ val: type,
49
58
  pos: position,
50
- leader,
59
+ leader: leader,
51
60
  }),
52
61
  );
53
62
  }
@@ -1,7 +1,7 @@
1
1
  import { Attributes, XmlComponent } from "@file/xml-components";
2
2
 
3
3
  export class NumberProperties extends XmlComponent {
4
- constructor(numberId: number | string, indentLevel: number) {
4
+ public constructor(numberId: number | string, indentLevel: number) {
5
5
  super("w:numPr");
6
6
  this.root.push(new IndentLevel(indentLevel));
7
7
  this.root.push(new NumberId(numberId));
@@ -9,7 +9,7 @@ export class NumberProperties extends XmlComponent {
9
9
  }
10
10
 
11
11
  class IndentLevel extends XmlComponent {
12
- constructor(level: number) {
12
+ public constructor(level: number) {
13
13
  super("w:ilvl");
14
14
 
15
15
  if (level > 9) {
@@ -27,7 +27,7 @@ class IndentLevel extends XmlComponent {
27
27
  }
28
28
 
29
29
  class NumberId extends XmlComponent {
30
- constructor(id: number | string) {
30
+ public constructor(id: number | string) {
31
31
  super("w:numId");
32
32
  this.root.push(
33
33
  new Attributes({
@@ -97,7 +97,7 @@ export class FramePropertiesAttributes extends XmlAttributeComponent<{
97
97
  }
98
98
 
99
99
  export class FrameProperties extends XmlComponent {
100
- constructor(options: IFrameOptions) {
100
+ public constructor(options: IFrameOptions) {
101
101
  super("w:framePr");
102
102
  this.root.push(
103
103
  new FramePropertiesAttributes({
@@ -7,10 +7,10 @@ import { BookmarkEndAttributes, BookmarkStartAttributes } from "./bookmark-attri
7
7
 
8
8
  export class Bookmark {
9
9
  public readonly start: BookmarkStart;
10
- public readonly children: ParagraphChild[];
10
+ public readonly children: readonly ParagraphChild[];
11
11
  public readonly end: BookmarkEnd;
12
12
 
13
- constructor(options: { readonly id: string; readonly children: ParagraphChild[] }) {
13
+ public constructor(options: { readonly id: string; readonly children: readonly ParagraphChild[] }) {
14
14
  const linkId = uniqueNumericId();
15
15
 
16
16
  this.start = new BookmarkStart(options.id, linkId);
@@ -52,7 +52,7 @@ export class Bookmark {
52
52
  // </xsd:complexType>
53
53
 
54
54
  export class BookmarkStart extends XmlComponent {
55
- constructor(id: string, linkId: number) {
55
+ public constructor(id: string, linkId: number) {
56
56
  super("w:bookmarkStart");
57
57
 
58
58
  const attributes = new BookmarkStartAttributes({
@@ -64,7 +64,7 @@ export class BookmarkStart extends XmlComponent {
64
64
  }
65
65
 
66
66
  export class BookmarkEnd extends XmlComponent {
67
- constructor(linkId: number) {
67
+ public constructor(linkId: number) {
68
68
  super("w:bookmarkEnd");
69
69
 
70
70
  const attributes = new BookmarkEndAttributes({
@@ -13,7 +13,7 @@ export enum HyperlinkType {
13
13
  export class ConcreteHyperlink extends XmlComponent {
14
14
  public readonly linkId: string;
15
15
 
16
- constructor(children: ParagraphChild[], relationshipId: string, anchor?: string) {
16
+ public constructor(children: readonly ParagraphChild[], relationshipId: string, anchor?: string) {
17
17
  super("w:hyperlink");
18
18
 
19
19
  this.linkId = relationshipId;
@@ -33,11 +33,13 @@ export class ConcreteHyperlink extends XmlComponent {
33
33
  }
34
34
 
35
35
  export class InternalHyperlink extends ConcreteHyperlink {
36
- constructor(options: { readonly children: ParagraphChild[]; readonly anchor: string }) {
36
+ public constructor(options: { readonly children: readonly ParagraphChild[]; readonly anchor: string }) {
37
37
  super(options.children, uniqueId(), options.anchor);
38
38
  }
39
39
  }
40
40
 
41
- export class ExternalHyperlink {
42
- constructor(public readonly options: { readonly children: ParagraphChild[]; readonly link: string }) {}
41
+ export class ExternalHyperlink extends XmlComponent {
42
+ public constructor(public readonly options: { readonly children: readonly ParagraphChild[]; readonly link: string }) {
43
+ super("w:externalHyperlink");
44
+ }
43
45
  }
@@ -2,7 +2,7 @@
2
2
  import { Attributes, XmlComponent } from "@file/xml-components";
3
3
 
4
4
  export class OutlineLevel extends XmlComponent {
5
- constructor(public readonly level: number) {
5
+ public constructor(public readonly level: number) {
6
6
  super("w:outlineLvl");
7
7
 
8
8
  this.root.push(
@@ -5,7 +5,7 @@ import { TextAttributes } from "../run/text-attributes";
5
5
  import { IPageReferenceOptions } from "./pageref-properties";
6
6
 
7
7
  export class PageReferenceFieldInstruction extends XmlComponent {
8
- constructor(bookmarkId: string, options: IPageReferenceOptions = {}) {
8
+ public constructor(bookmarkId: string, options: IPageReferenceOptions = {}) {
9
9
  super("w:instrText");
10
10
  this.root.push(new TextAttributes({ space: SpaceType.PRESERVE }));
11
11
 
@@ -5,7 +5,7 @@ import { PageReferenceFieldInstruction } from "./pageref-field-instruction";
5
5
  import type { IPageReferenceOptions } from "./pageref-properties";
6
6
 
7
7
  export class PageReference extends Run {
8
- constructor(bookmarkId: string, options: IPageReferenceOptions = {}) {
8
+ public constructor(bookmarkId: string, options: IPageReferenceOptions = {}) {
9
9
  super({
10
10
  children: [new Begin(true), new PageReferenceFieldInstruction(bookmarkId, options), new End()],
11
11
  });
@@ -6,7 +6,7 @@ import { MathBase } from "../n-ary";
6
6
  import { MathBracketProperties } from "./math-bracket-properties";
7
7
 
8
8
  export class MathAngledBrackets extends XmlComponent {
9
- constructor(options: { readonly children: MathComponent[] }) {
9
+ public constructor(options: { readonly children: readonly MathComponent[] }) {
10
10
  super("m:d");
11
11
 
12
12
  this.root.push(
@@ -6,7 +6,7 @@ class MathBeginningCharacterAttributes extends XmlAttributeComponent<{ readonly
6
6
  }
7
7
 
8
8
  export class MathBeginningCharacter extends XmlComponent {
9
- constructor(character: string) {
9
+ public constructor(character: string) {
10
10
  super("m:begChr");
11
11
 
12
12
  this.root.push(new MathBeginningCharacterAttributes({ character }));
@@ -5,7 +5,7 @@ import { MathBeginningCharacter } from "./math-beginning-character";
5
5
  import { MathEndingCharacter } from "./math-ending-char";
6
6
 
7
7
  export class MathBracketProperties extends XmlComponent {
8
- constructor(options?: { readonly beginningCharacter: string; readonly endingCharacter: string }) {
8
+ public constructor(options?: { readonly beginningCharacter: string; readonly endingCharacter: string }) {
9
9
  super("m:dPr");
10
10
 
11
11
  if (!!options) {
@@ -6,7 +6,7 @@ import { MathBase } from "../n-ary";
6
6
  import { MathBracketProperties } from "./math-bracket-properties";
7
7
 
8
8
  export class MathCurlyBrackets extends XmlComponent {
9
- constructor(options: { readonly children: MathComponent[] }) {
9
+ public constructor(options: { readonly children: readonly MathComponent[] }) {
10
10
  super("m:d");
11
11
 
12
12
  this.root.push(
@@ -6,7 +6,7 @@ class MathEndingCharacterAttributes extends XmlAttributeComponent<{ readonly cha
6
6
  }
7
7
 
8
8
  export class MathEndingCharacter extends XmlComponent {
9
- constructor(character: string) {
9
+ public constructor(character: string) {
10
10
  super("m:endChr");
11
11
 
12
12
  this.root.push(new MathEndingCharacterAttributes({ character }));
@@ -6,7 +6,7 @@ import { MathBase } from "../n-ary";
6
6
  import { MathBracketProperties } from "./math-bracket-properties";
7
7
 
8
8
  export class MathRoundBrackets extends XmlComponent {
9
- constructor(options: { readonly children: MathComponent[] }) {
9
+ public constructor(options: { readonly children: readonly MathComponent[] }) {
10
10
  super("m:d");
11
11
 
12
12
  this.root.push(new MathBracketProperties());
@@ -6,7 +6,7 @@ import { MathBase } from "../n-ary";
6
6
  import { MathBracketProperties } from "./math-bracket-properties";
7
7
 
8
8
  export class MathSquareBrackets extends XmlComponent {
9
- constructor(options: { readonly children: MathComponent[] }) {
9
+ public constructor(options: { readonly children: readonly MathComponent[] }) {
10
10
  super("m:d");
11
11
 
12
12
  this.root.push(
@@ -3,7 +3,7 @@ import { XmlComponent } from "@file/xml-components";
3
3
  import { MathComponent } from "../math-component";
4
4
 
5
5
  export class MathDenominator extends XmlComponent {
6
- constructor(children: MathComponent[]) {
6
+ public constructor(children: readonly MathComponent[]) {
7
7
  super("m:den");
8
8
 
9
9
  for (const child of children) {
@@ -5,12 +5,12 @@ import { MathDenominator } from "./math-denominator";
5
5
  import { MathNumerator } from "./math-numerator";
6
6
 
7
7
  export interface IMathFractionOptions {
8
- readonly numerator: MathComponent[];
9
- readonly denominator: MathComponent[];
8
+ readonly numerator: readonly MathComponent[];
9
+ readonly denominator: readonly MathComponent[];
10
10
  }
11
11
 
12
12
  export class MathFraction extends XmlComponent {
13
- constructor(options: IMathFractionOptions) {
13
+ public constructor(options: IMathFractionOptions) {
14
14
  super("m:f");
15
15
 
16
16
  this.root.push(new MathNumerator(options.numerator));
@@ -3,7 +3,7 @@ import { XmlComponent } from "@file/xml-components";
3
3
  import { MathComponent } from "../math-component";
4
4
 
5
5
  export class MathNumerator extends XmlComponent {
6
- constructor(children: MathComponent[]) {
6
+ public constructor(children: readonly MathComponent[]) {
7
7
  super("m:num");
8
8
 
9
9
  for (const child of children) {
@@ -3,7 +3,7 @@ import { XmlComponent } from "@file/xml-components";
3
3
  import { MathComponent } from "../math-component";
4
4
 
5
5
  export class MathFunctionName extends XmlComponent {
6
- constructor(children: MathComponent[]) {
6
+ public constructor(children: readonly MathComponent[]) {
7
7
  super("m:fName");
8
8
 
9
9
  for (const child of children) {
@@ -2,7 +2,7 @@
2
2
  import { XmlComponent } from "@file/xml-components";
3
3
 
4
4
  export class MathFunctionProperties extends XmlComponent {
5
- constructor() {
5
+ public constructor() {
6
6
  super("m:funcPr");
7
7
  }
8
8
  }
@@ -7,12 +7,12 @@ import { MathFunctionName } from "./math-function-name";
7
7
  import { MathFunctionProperties } from "./math-function-properties";
8
8
 
9
9
  export interface IMathFunctionOptions {
10
- readonly children: MathComponent[];
11
- readonly name: MathComponent[];
10
+ readonly children: readonly MathComponent[];
11
+ readonly name: readonly MathComponent[];
12
12
  }
13
13
 
14
14
  export class MathFunction extends XmlComponent {
15
- constructor(options: IMathFunctionOptions) {
15
+ public constructor(options: IMathFunctionOptions) {
16
16
  super("m:func");
17
17
 
18
18
  this.root.push(new MathFunctionProperties());
@@ -2,7 +2,7 @@ import { MathAngledBrackets, MathCurlyBrackets, MathRoundBrackets, MathSquareBra
2
2
  import { MathFraction } from "./fraction";
3
3
  import { MathFunction } from "./function";
4
4
  import { MathRun } from "./math-run";
5
- import { MathSum } from "./n-ary";
5
+ import { MathSum, MathIntegral } from "./n-ary";
6
6
  import { MathRadical } from "./radical";
7
7
  import { MathSubScript, MathSubSuperScript, MathSuperScript } from "./script";
8
8
 
@@ -10,6 +10,7 @@ export type MathComponent =
10
10
  | MathRun
11
11
  | MathFraction
12
12
  | MathSum
13
+ | MathIntegral
13
14
  | MathSuperScript
14
15
  | MathSubScript
15
16
  | MathSubSuperScript
@@ -4,7 +4,7 @@ import { XmlComponent } from "@file/xml-components";
4
4
  import { MathText } from "./math-text";
5
5
 
6
6
  export class MathRun extends XmlComponent {
7
- constructor(text: string) {
7
+ public constructor(text: string) {
8
8
  super("m:r");
9
9
 
10
10
  this.root.push(new MathText(text));
@@ -1,7 +1,7 @@
1
1
  import { XmlComponent } from "@file/xml-components";
2
2
 
3
3
  export class MathText extends XmlComponent {
4
- constructor(text: string) {
4
+ public constructor(text: string) {
5
5
  super("m:t");
6
6
 
7
7
  this.root.push(text);
@@ -4,11 +4,11 @@ import { XmlComponent } from "@file/xml-components";
4
4
  import { MathComponent } from "./math-component";
5
5
 
6
6
  export interface IMathOptions {
7
- readonly children: MathComponent[];
7
+ readonly children: readonly MathComponent[];
8
8
  }
9
9
 
10
10
  export class Math extends XmlComponent {
11
- constructor(options: IMathOptions) {
11
+ public constructor(options: IMathOptions) {
12
12
  super("m:oMath");
13
13
 
14
14
  for (const child of options.children) {
@@ -4,4 +4,5 @@ export * from "./math-limit-location";
4
4
  export * from "./math-n-ary-properties";
5
5
  export * from "./math-sub-script";
6
6
  export * from "./math-sum";
7
+ export * from "./math-integral";
7
8
  export * from "./math-super-script";
@@ -6,7 +6,7 @@ class MathAccentCharacterAttributes extends XmlAttributeComponent<{ readonly acc
6
6
  }
7
7
 
8
8
  export class MathAccentCharacter extends XmlComponent {
9
- constructor(accent: string) {
9
+ public constructor(accent: string) {
10
10
  super("m:chr");
11
11
 
12
12
  this.root.push(new MathAccentCharacterAttributes({ accent }));
@@ -4,7 +4,7 @@ import { XmlComponent } from "@file/xml-components";
4
4
  import { MathComponent } from "../math-component";
5
5
 
6
6
  export class MathBase extends XmlComponent {
7
- constructor(children: MathComponent[]) {
7
+ public constructor(children: readonly MathComponent[]) {
8
8
  super("m:e");
9
9
 
10
10
  for (const child of children) {