abstract-document 20.0.3 → 20.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +3 -3
  3. package/lib/abstract-document/abstract-doc.d.ts.map +1 -1
  4. package/lib/abstract-document/abstract-doc.js +2 -2
  5. package/lib/abstract-document/atoms/atom.d.ts +3 -3
  6. package/lib/abstract-document/atoms/atom.d.ts.map +1 -1
  7. package/lib/abstract-document/atoms/line-break.d.ts +1 -1
  8. package/lib/abstract-document/atoms/line-break.d.ts.map +1 -1
  9. package/lib/abstract-document/atoms/line-break.js +1 -1
  10. package/lib/abstract-document/atoms/line-break.js.map +1 -1
  11. package/lib/abstract-document/atoms/link-target.js +1 -1
  12. package/lib/abstract-document/atoms/text-run.d.ts.map +1 -1
  13. package/lib/abstract-document/atoms/text-run.js +1 -0
  14. package/lib/abstract-document/atoms/text-run.js.map +1 -1
  15. package/lib/abstract-document/default-styles.d.ts.map +1 -1
  16. package/lib/abstract-document/default-styles.js.map +1 -1
  17. package/lib/abstract-document/markdown/markdown.d.ts.map +1 -1
  18. package/lib/abstract-document/markdown/markdown.js +5 -5
  19. package/lib/abstract-document/markdown/markdown.js.map +1 -1
  20. package/lib/abstract-document/numberings/numbering-definition.d.ts +2 -2
  21. package/lib/abstract-document/numberings/numbering-definition.d.ts.map +1 -1
  22. package/lib/abstract-document/numberings/numbering-format.d.ts.map +1 -1
  23. package/lib/abstract-document/numberings/numbering-level-definition.js +2 -2
  24. package/lib/abstract-document/page/master-page.d.ts +1 -1
  25. package/lib/abstract-document/page/master-page.d.ts.map +1 -1
  26. package/lib/abstract-document/page/master-page.js +1 -1
  27. package/lib/abstract-document/page/master-page.js.map +1 -1
  28. package/lib/abstract-document/page/section.d.ts +1 -1
  29. package/lib/abstract-document/page/section.d.ts.map +1 -1
  30. package/lib/abstract-document/page/section.js +2 -2
  31. package/lib/abstract-document/page/section.js.map +1 -1
  32. package/lib/abstract-document/primitives/font.d.ts +1 -1
  33. package/lib/abstract-document/primitives/font.d.ts.map +1 -1
  34. package/lib/abstract-document/primitives/font.js +1 -1
  35. package/lib/abstract-document/primitives/font.js.map +1 -1
  36. package/lib/abstract-document/primitives/layout-foundation-color.d.ts.map +1 -1
  37. package/lib/abstract-document/primitives/layout-foundation-color.js +4 -4
  38. package/lib/abstract-document/primitives/layout-foundation-color.js.map +1 -1
  39. package/lib/abstract-document/primitives/layout-foundation.d.ts.map +1 -1
  40. package/lib/abstract-document/primitives/layout-foundation.js +1 -1
  41. package/lib/abstract-document/primitives/layout-foundation.js.map +1 -1
  42. package/lib/abstract-document/primitives/point.js +1 -1
  43. package/lib/abstract-document/resources.d.ts +4 -3
  44. package/lib/abstract-document/resources.d.ts.map +1 -1
  45. package/lib/abstract-document/resources.js +4 -4
  46. package/lib/abstract-document/resources.js.map +1 -1
  47. package/lib/abstract-document/section-elements/group.d.ts +1 -1
  48. package/lib/abstract-document/section-elements/group.d.ts.map +1 -1
  49. package/lib/abstract-document/section-elements/group.js +2 -2
  50. package/lib/abstract-document/section-elements/group.js.map +1 -1
  51. package/lib/abstract-document/section-elements/page-break.d.ts +2 -2
  52. package/lib/abstract-document/section-elements/page-break.d.ts.map +1 -1
  53. package/lib/abstract-document/section-elements/page-break.js +1 -2
  54. package/lib/abstract-document/section-elements/page-break.js.map +1 -1
  55. package/lib/abstract-document/section-elements/paragraph.d.ts +2 -2
  56. package/lib/abstract-document/section-elements/paragraph.d.ts.map +1 -1
  57. package/lib/abstract-document/section-elements/paragraph.js +2 -2
  58. package/lib/abstract-document/section-elements/paragraph.js.map +1 -1
  59. package/lib/abstract-document/section-elements/section-element.d.ts +1 -1
  60. package/lib/abstract-document/section-elements/section-element.d.ts.map +1 -1
  61. package/lib/abstract-document/section-elements/section-element.js.map +1 -1
  62. package/lib/abstract-document/section-elements/table.d.ts +1 -1
  63. package/lib/abstract-document/section-elements/table.d.ts.map +1 -1
  64. package/lib/abstract-document/section-elements/table.js +2 -2
  65. package/lib/abstract-document/section-elements/table.js.map +1 -1
  66. package/lib/abstract-document/styles/group-style.js +3 -3
  67. package/lib/abstract-document/styles/page-style.d.ts.map +1 -1
  68. package/lib/abstract-document/styles/page-style.js +3 -7
  69. package/lib/abstract-document/styles/page-style.js.map +1 -1
  70. package/lib/abstract-document/styles/paragraph-style.d.ts +1 -1
  71. package/lib/abstract-document/styles/paragraph-style.d.ts.map +1 -1
  72. package/lib/abstract-document/styles/paragraph-style.js +5 -5
  73. package/lib/abstract-document/styles/paragraph-style.js.map +1 -1
  74. package/lib/abstract-document/styles/style.d.ts.map +1 -1
  75. package/lib/abstract-document/styles/style.js.map +1 -1
  76. package/lib/abstract-document/styles/table-cell-style.d.ts +1 -1
  77. package/lib/abstract-document/styles/table-cell-style.d.ts.map +1 -1
  78. package/lib/abstract-document/styles/table-cell-style.js +7 -7
  79. package/lib/abstract-document/styles/table-cell-style.js.map +1 -1
  80. package/lib/abstract-document/styles/table-style.d.ts +1 -1
  81. package/lib/abstract-document/styles/table-style.d.ts.map +1 -1
  82. package/lib/abstract-document/styles/table-style.js +2 -2
  83. package/lib/abstract-document/styles/table-style.js.map +1 -1
  84. package/lib/abstract-document/styles/text-style.d.ts.map +1 -1
  85. package/lib/abstract-document/styles/text-style.js +17 -22
  86. package/lib/abstract-document/styles/text-style.js.map +1 -1
  87. package/lib/abstract-document/table/table-cell.js +2 -2
  88. package/lib/abstract-document/table/table-row.d.ts +2 -3
  89. package/lib/abstract-document/table/table-row.d.ts.map +1 -1
  90. package/lib/abstract-document/table/table-row.js +2 -3
  91. package/lib/abstract-document/table/table-row.js.map +1 -1
  92. package/lib/abstract-document/types.d.ts.map +1 -1
  93. package/lib/abstract-document-exporters/docx/document-container.d.ts +5 -5
  94. package/lib/abstract-document-exporters/docx/document-container.d.ts.map +1 -1
  95. package/lib/abstract-document-exporters/docx/document-container.js +14 -13
  96. package/lib/abstract-document-exporters/docx/document-container.js.map +1 -1
  97. package/lib/abstract-document-exporters/docx/docx-constants.d.ts.map +1 -1
  98. package/lib/abstract-document-exporters/docx/docx-constants.js +1 -4
  99. package/lib/abstract-document-exporters/docx/docx-constants.js.map +1 -1
  100. package/lib/abstract-document-exporters/docx/ref-container.d.ts +8 -10
  101. package/lib/abstract-document-exporters/docx/ref-container.d.ts.map +1 -1
  102. package/lib/abstract-document-exporters/docx/ref-container.js +34 -35
  103. package/lib/abstract-document-exporters/docx/ref-container.js.map +1 -1
  104. package/lib/abstract-document-exporters/docx/string-utils.d.ts +2 -1
  105. package/lib/abstract-document-exporters/docx/string-utils.d.ts.map +1 -1
  106. package/lib/abstract-document-exporters/docx/string-utils.js +6 -6
  107. package/lib/abstract-document-exporters/docx/string-utils.js.map +1 -1
  108. package/lib/abstract-document-exporters/docx/xml-writer.d.ts +12 -33
  109. package/lib/abstract-document-exporters/docx/xml-writer.d.ts.map +1 -1
  110. package/lib/abstract-document-exporters/docx/xml-writer.js +243 -248
  111. package/lib/abstract-document-exporters/docx/xml-writer.js.map +1 -1
  112. package/lib/abstract-document-exporters/docx2/render-image.d.ts +1 -1
  113. package/lib/abstract-document-exporters/docx2/render-image.d.ts.map +1 -1
  114. package/lib/abstract-document-exporters/docx2/render-image.js +5 -17
  115. package/lib/abstract-document-exporters/docx2/render-image.js.map +1 -1
  116. package/lib/abstract-document-exporters/docx2/render.d.ts.map +1 -1
  117. package/lib/abstract-document-exporters/docx2/render.js +37 -43
  118. package/lib/abstract-document-exporters/docx2/render.js.map +1 -1
  119. package/lib/abstract-document-exporters/pdf/font.d.ts.map +1 -1
  120. package/lib/abstract-document-exporters/pdf/font.js +14 -14
  121. package/lib/abstract-document-exporters/pdf/font.js.map +1 -1
  122. package/lib/abstract-document-exporters/pdf/header-footer.d.ts +8 -0
  123. package/lib/abstract-document-exporters/pdf/header-footer.d.ts.map +1 -0
  124. package/lib/abstract-document-exporters/pdf/header-footer.js +31 -0
  125. package/lib/abstract-document-exporters/pdf/header-footer.js.map +1 -0
  126. package/lib/abstract-document-exporters/pdf/measure.d.ts +4 -4
  127. package/lib/abstract-document-exporters/pdf/measure.d.ts.map +1 -1
  128. package/lib/abstract-document-exporters/pdf/measure.js +31 -32
  129. package/lib/abstract-document-exporters/pdf/measure.js.map +1 -1
  130. package/lib/abstract-document-exporters/pdf/page.d.ts +15 -0
  131. package/lib/abstract-document-exporters/pdf/page.d.ts.map +1 -0
  132. package/lib/abstract-document-exporters/pdf/page.js +2 -0
  133. package/lib/abstract-document-exporters/pdf/page.js.map +1 -0
  134. package/lib/abstract-document-exporters/pdf/paginate.d.ts +2 -20
  135. package/lib/abstract-document-exporters/pdf/paginate.d.ts.map +1 -1
  136. package/lib/abstract-document-exporters/pdf/paginate.js +8 -44
  137. package/lib/abstract-document-exporters/pdf/paginate.js.map +1 -1
  138. package/lib/abstract-document-exporters/pdf/pre-process.d.ts.map +1 -1
  139. package/lib/abstract-document-exporters/pdf/pre-process.js +10 -36
  140. package/lib/abstract-document-exporters/pdf/pre-process.js.map +1 -1
  141. package/lib/abstract-document-exporters/pdf/render-image.d.ts.map +1 -1
  142. package/lib/abstract-document-exporters/pdf/render-image.js +25 -35
  143. package/lib/abstract-document-exporters/pdf/render-image.js.map +1 -1
  144. package/lib/abstract-document-exporters/pdf/render.d.ts +4 -3
  145. package/lib/abstract-document-exporters/pdf/render.d.ts.map +1 -1
  146. package/lib/abstract-document-exporters/pdf/render.js +60 -49
  147. package/lib/abstract-document-exporters/pdf/render.js.map +1 -1
  148. package/lib/abstract-document-exporters/pdf/std-fonts.js +2 -2
  149. package/lib/abstract-document-exporters/pdf/std-fonts.js.map +1 -1
  150. package/lib/abstract-document-exporters/pdf/textRunRow.d.ts +3 -3
  151. package/lib/abstract-document-exporters/pdf/textRunRow.d.ts.map +1 -1
  152. package/lib/abstract-document-exporters/pdf/textRunRow.js +26 -20
  153. package/lib/abstract-document-exporters/pdf/textRunRow.js.map +1 -1
  154. package/lib/abstract-document-exporters/pdf/update-refs.d.ts +1 -1
  155. package/lib/abstract-document-exporters/pdf/update-refs.d.ts.map +1 -1
  156. package/lib/abstract-document-exporters/pdf/update-refs.js +3 -2
  157. package/lib/abstract-document-exporters/pdf/update-refs.js.map +1 -1
  158. package/lib/abstract-document-exporters/shared/get_resources.d.ts.map +1 -1
  159. package/lib/abstract-document-exporters/shared/get_resources.js.map +1 -1
  160. package/lib/abstract-document-jsx/index.d.ts +2 -3
  161. package/lib/abstract-document-jsx/index.d.ts.map +1 -1
  162. package/lib/abstract-document-jsx/index.js +10 -6
  163. package/lib/abstract-document-jsx/index.js.map +1 -1
  164. package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.d.ts +3 -7
  165. package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.d.ts.map +1 -1
  166. package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.js +6 -4
  167. package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.js.map +1 -1
  168. package/lib/abstract-document-xml/abstract-doc-of-xml/creator.d.ts.map +1 -1
  169. package/lib/abstract-document-xml/abstract-doc-of-xml/creator.js +8 -4
  170. package/lib/abstract-document-xml/abstract-doc-of-xml/creator.js.map +1 -1
  171. package/lib/abstract-document-xml/abstract-doc-of-xml/custom-elements.d.ts.map +1 -1
  172. package/lib/abstract-document-xml/abstract-doc-of-xml/custom-elements.js +4 -8
  173. package/lib/abstract-document-xml/abstract-doc-of-xml/custom-elements.js.map +1 -1
  174. package/lib/abstract-document-xml/xsd-template/xsd-template.js +2 -2
  175. package/lib/abstract-document-xml/xsd-template/xsd-template.js.map +1 -1
  176. package/package.json +21 -21
  177. package/src/abstract-document/abstract-doc.ts +6 -6
  178. package/src/abstract-document/atoms/atom.ts +3 -3
  179. package/src/abstract-document/atoms/line-break.ts +1 -1
  180. package/src/abstract-document/atoms/link-target.ts +1 -1
  181. package/src/abstract-document/atoms/text-run.ts +1 -0
  182. package/src/abstract-document/default-styles.ts +1 -1
  183. package/src/abstract-document/markdown/markdown.ts +7 -7
  184. package/src/abstract-document/numberings/numbering-definition.ts +2 -2
  185. package/src/abstract-document/numberings/numbering-format.ts +1 -7
  186. package/src/abstract-document/numberings/numbering-level-definition.ts +2 -2
  187. package/src/abstract-document/page/master-page.ts +2 -2
  188. package/src/abstract-document/page/section.ts +3 -3
  189. package/src/abstract-document/primitives/font.ts +1 -12
  190. package/src/abstract-document/primitives/layout-foundation-color.ts +5 -8
  191. package/src/abstract-document/primitives/layout-foundation.ts +2 -5
  192. package/src/abstract-document/primitives/point.ts +1 -1
  193. package/src/abstract-document/resources.ts +9 -14
  194. package/src/abstract-document/section-elements/group.ts +3 -3
  195. package/src/abstract-document/section-elements/page-break.ts +2 -3
  196. package/src/abstract-document/section-elements/paragraph.ts +4 -4
  197. package/src/abstract-document/section-elements/section-element.ts +1 -1
  198. package/src/abstract-document/section-elements/table.ts +3 -3
  199. package/src/abstract-document/styles/group-style.ts +3 -3
  200. package/src/abstract-document/styles/page-style.ts +3 -7
  201. package/src/abstract-document/styles/paragraph-style.ts +6 -14
  202. package/src/abstract-document/styles/style.ts +1 -5
  203. package/src/abstract-document/styles/table-cell-style.ts +8 -18
  204. package/src/abstract-document/styles/table-style.ts +3 -8
  205. package/src/abstract-document/styles/text-style.ts +31 -36
  206. package/src/abstract-document/table/table-cell.ts +2 -2
  207. package/src/abstract-document/table/table-row.ts +3 -4
  208. package/src/abstract-document/types.ts +0 -1
  209. package/src/abstract-document-exporters/docx/document-container.ts +24 -13
  210. package/src/abstract-document-exporters/docx/docx-constants.ts +2 -6
  211. package/src/abstract-document-exporters/docx/ref-container.ts +48 -41
  212. package/src/abstract-document-exporters/docx/string-utils.ts +6 -10
  213. package/src/abstract-document-exporters/docx/xml-writer.ts +261 -265
  214. package/src/abstract-document-exporters/docx2/render-image.ts +16 -50
  215. package/src/abstract-document-exporters/docx2/render.ts +68 -121
  216. package/src/abstract-document-exporters/pdf/font.ts +27 -32
  217. package/src/abstract-document-exporters/pdf/header-footer.ts +43 -0
  218. package/src/abstract-document-exporters/pdf/measure.ts +52 -103
  219. package/src/abstract-document-exporters/pdf/page.ts +16 -0
  220. package/src/abstract-document-exporters/pdf/paginate.ts +29 -120
  221. package/src/abstract-document-exporters/pdf/pre-process.ts +13 -48
  222. package/src/abstract-document-exporters/pdf/render-image.ts +30 -47
  223. package/src/abstract-document-exporters/pdf/render.ts +84 -128
  224. package/src/abstract-document-exporters/pdf/std-fonts.ts +2 -2
  225. package/src/abstract-document-exporters/pdf/textRunRow.ts +100 -77
  226. package/src/abstract-document-exporters/pdf/update-refs.ts +10 -33
  227. package/src/abstract-document-exporters/shared/get_resources.ts +4 -4
  228. package/src/abstract-document-jsx/index.ts +38 -26
  229. package/src/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.ts +23 -35
  230. package/src/abstract-document-xml/abstract-doc-of-xml/creator.ts +17 -29
  231. package/src/abstract-document-xml/abstract-doc-of-xml/custom-elements.tsx +8 -30
  232. package/src/abstract-document-xml/xsd-template/styles.ts +1 -1
  233. package/src/abstract-document-xml/xsd-template/xsd-template.ts +2 -2
  234. package/lib/abstract-document/table/text-row.d.ts +0 -2
  235. package/lib/abstract-document/table/text-row.d.ts.map +0 -1
  236. package/lib/abstract-document/table/text-row.js +0 -2
  237. package/lib/abstract-document/table/text-row.js.map +0 -1
  238. package/lib/abstract-document-exporters/docx/docx-document-renderer.d.ts +0 -2
  239. package/lib/abstract-document-exporters/docx/docx-document-renderer.d.ts.map +0 -1
  240. package/lib/abstract-document-exporters/docx/docx-document-renderer.js +0 -1085
  241. package/lib/abstract-document-exporters/docx/docx-document-renderer.js.map +0 -1
  242. package/src/abstract-document/table/text-row.ts +0 -0
  243. package/src/abstract-document-exporters/docx/docx-document-renderer.ts +0 -1084
@@ -23,16 +23,13 @@ export function orDefault(colorLayout: LayoutFoundationColor | undefined): Layou
23
23
  };
24
24
  }
25
25
 
26
- export function overrideWith(
27
- overrider: LayoutFoundationColor | undefined,
28
- toOverride: LayoutFoundationColor | undefined
29
- ): LayoutFoundationColor {
26
+ export function overrideWith(overrider: LayoutFoundationColor | undefined, toOverride: LayoutFoundationColor | undefined): LayoutFoundationColor {
30
27
  const a = overrider;
31
28
  const b = toOverride;
32
29
  return create({
33
- top: (a?.top ?? b?.top),
34
- bottom: (a?.bottom ?? b?.bottom),
35
- left: (a?.left ?? b?.left),
36
- right: (a?.right ?? b?.right),
30
+ top: a?.top ?? b?.top,
31
+ bottom: a?.bottom ?? b?.bottom,
32
+ left: a?.left ?? b?.left,
33
+ right: a?.right ?? b?.right,
37
34
  });
38
35
  }
@@ -10,7 +10,7 @@ export function create(props?: LayoutFoundation): LayoutFoundation {
10
10
  top: props?.top,
11
11
  bottom: props?.bottom,
12
12
  left: props?.left,
13
- right: props?.right
13
+ right: props?.right,
14
14
  };
15
15
  }
16
16
 
@@ -23,10 +23,7 @@ export function orDefault(layout: LayoutFoundation | undefined): Required<Layout
23
23
  };
24
24
  }
25
25
 
26
- export function overrideWith(
27
- overrider: LayoutFoundation | undefined,
28
- toOverride: LayoutFoundation | undefined
29
- ): LayoutFoundation {
26
+ export function overrideWith(overrider: LayoutFoundation | undefined, toOverride: LayoutFoundation | undefined): LayoutFoundation {
30
27
  const a = overrider;
31
28
  const b = toOverride;
32
29
  return {
@@ -6,6 +6,6 @@ export interface Point {
6
6
  export function create(x: number, y: number): Point {
7
7
  return {
8
8
  x: x,
9
- y: y
9
+ y: y,
10
10
  };
11
11
  }
@@ -1,19 +1,20 @@
1
+ import { defaultAndStandardStyles } from "./default-styles.js";
1
2
  // import { ImageResource } from "./primitives/image-resource.js";
2
3
  // import { Numbering } from "./numberings/numbering.js";
3
4
  import type { NumberingDefinition } from "./numberings/numbering-definition.js";
5
+ import type { Font } from "./primitives/font.js";
6
+ import type { ImageResource } from "./primitives/image-resource.js";
4
7
  import { create } from "./styles/style-key.js";
5
8
  import type { Style } from "./styles/style.js";
6
9
  import { overrideWith } from "./styles/style.js";
7
- import type { Font } from "./primitives/font.js";
8
10
  import type { Indexer } from "./types.js";
9
- import { defaultAndStandardStyles } from "./default-styles.js";
10
- import type { ImageResource } from "./primitives/image-resource.js";
11
11
 
12
12
  export interface Resources {
13
13
  readonly fonts?: Indexer<Font>;
14
14
  readonly styles?: Indexer<Style>;
15
15
  /**
16
- * Embedded image data uri are expected to have to shape: data:image/png;base64,${string}, data:image/jpeg;base64,${string} or data:image/svg+xml,${string}
16
+ * Embedded image data uri are expected to have to shape: data:image/png;base64,${string}, data:image/jpeg;base64,${string} or
17
+ * data:image/svg+xml,${string}
17
18
  */
18
19
  readonly imageResources?: Record<string, ImageResource>;
19
20
  readonly numberingDefinitions?: Indexer<NumberingDefinition>;
@@ -66,16 +67,10 @@ export function getNestedStyle(
66
67
  nestedStyleNames: ReadonlyArray<string>
67
68
  ): Style | undefined {
68
69
  const factoryDefault = defaultAndStandardStyles[create(type, "Default")];
69
- const documentDefault = resources.styles && resources.styles[create(type, "Default")];
70
- const namedStyle = resources.styles && resources.styles[create(type, name)];
70
+ const documentDefault = resources.styles?.[create(type, "Default")];
71
+ const namedStyle = resources.styles?.[create(type, name)];
71
72
  const nestedStyle = nestedStyleNames
72
- ? nestedStyleNames.reduce(
73
- (sofar, name) => overrideWith(sofar, resources.styles && resources.styles[create(type, name)]),
74
- namedStyle
75
- )
73
+ ? nestedStyleNames.reduce((sofar, name) => overrideWith(sofar, resources.styles?.[create(type, name)]), namedStyle)
76
74
  : namedStyle;
77
- return overrideWith(
78
- elementStyle,
79
- overrideWith(nestedStyle, overrideWith(parentStyle, overrideWith(documentDefault, factoryDefault)))
80
- );
75
+ return overrideWith(elementStyle, overrideWith(nestedStyle, overrideWith(parentStyle, overrideWith(documentDefault, factoryDefault))));
81
76
  }
@@ -1,6 +1,6 @@
1
1
  import type { Resources } from "../resources.js";
2
- import type { SectionElement } from "./section-element.js";
3
2
  import * as GroupStyle from "../styles/group-style.js";
3
+ import type { SectionElement } from "./section-element.js";
4
4
 
5
5
  export const sectionType = "Group";
6
6
 
@@ -17,12 +17,12 @@ export type GroupProps = Resources & {
17
17
  };
18
18
 
19
19
  export function create(props?: GroupProps, children?: ReadonlyArray<SectionElement>): Group {
20
- const { keepTogether = false, style = GroupStyle.create(), ...rest } = props || {};
20
+ const { keepTogether = false, style = GroupStyle.create(), ...rest } = props ?? {};
21
21
  return {
22
22
  type: sectionType,
23
23
  keepTogether: keepTogether,
24
24
  style,
25
- children: children || [],
25
+ children: children ?? [],
26
26
  ...rest,
27
27
  };
28
28
  }
@@ -4,10 +4,9 @@ export type PageBreak = Resources & {
4
4
  readonly type: "PageBreak";
5
5
  };
6
6
 
7
- export type PageBreakProps = {};
7
+ export type PageBreakProps = object;
8
8
 
9
- export function create(props?: PageBreakProps): PageBreak {
10
- const {} = props || {};
9
+ export function create(_props?: PageBreakProps): PageBreak {
11
10
  return {
12
11
  type: "PageBreak",
13
12
  };
@@ -1,7 +1,7 @@
1
- import type { Resources } from "../resources.js";
2
1
  import type { Atom } from "../atoms/atom.js";
3
- import type { ParagraphNumbering } from "./paragraph-numbering.js";
2
+ import type { Resources } from "../resources.js";
4
3
  import * as ParagraphStyle from "../styles/paragraph-style.js";
4
+ import type { ParagraphNumbering } from "./paragraph-numbering.js";
5
5
 
6
6
  export const sectionType = "Paragraph";
7
7
 
@@ -20,13 +20,13 @@ export type ParagraphProps = Resources & {
20
20
  };
21
21
 
22
22
  export function create(props?: ParagraphProps, children?: ReadonlyArray<Atom>): Paragraph {
23
- const { styleName = "", style = ParagraphStyle.create(), numbering = undefined, ...rest } = props || {};
23
+ const { styleName = "", style = ParagraphStyle.create(), numbering, ...rest } = props ?? {};
24
24
  return {
25
25
  type: sectionType,
26
26
  styleName,
27
27
  style,
28
28
  numbering,
29
- children: children || [],
29
+ children: children ?? [],
30
30
  ...rest,
31
31
  };
32
32
  }
@@ -1,7 +1,7 @@
1
1
  import * as Group from "./group.js";
2
+ import type * as PageBreak from "./page-break.js";
2
3
  import * as Paragraph from "./paragraph.js";
3
4
  import * as Table from "./table.js";
4
- import type * as PageBreak from "./page-break.js";
5
5
 
6
6
  export type SectionElement = Group.Group | Paragraph.Paragraph | Table.Table | PageBreak.PageBreak;
7
7
  export type SectionElementNoPageBreak = Exclude<SectionElement, PageBreak.PageBreak>;
@@ -1,6 +1,6 @@
1
1
  import type { Resources } from "../resources.js";
2
- import type * as TableRow from "../table/table-row.js";
3
2
  import * as TableStyle from "../styles/table-style.js";
3
+ import type * as TableRow from "../table/table-row.js";
4
4
 
5
5
  export const sectionType = "Table";
6
6
 
@@ -27,8 +27,8 @@ export function create(props: TableProps, children?: ReadonlyArray<TableRow.Tabl
27
27
  columnWidths,
28
28
  styleName,
29
29
  style,
30
- headerRows: headerRows || [],
31
- children: children || [],
30
+ headerRows: headerRows ?? [],
31
+ children: children ?? [],
32
32
  ...rest,
33
33
  };
34
34
  }
@@ -13,13 +13,13 @@ export interface GroupStyleProps {
13
13
  }
14
14
 
15
15
  export function create(props?: GroupStyleProps): GroupStyle {
16
- const { margins = LayoutFoundation.create(), position = "relative" } = props || {};
16
+ const { margins = LayoutFoundation.create(), position = "relative" } = props ?? {};
17
17
  return { type: "GroupStyle", margins, position };
18
18
  }
19
19
 
20
20
  export function overrideWith(overrider: GroupStyle | undefined, toOverride: GroupStyle | undefined): GroupStyle {
21
- const a: GroupStyleProps = overrider || {};
22
- const b: GroupStyleProps = toOverride || {};
21
+ const a: GroupStyleProps = overrider ?? {};
22
+ const b: GroupStyleProps = toOverride ?? {};
23
23
  return create({
24
24
  margins: LayoutFoundation.overrideWith(a.margins, b.margins),
25
25
  });
@@ -50,7 +50,7 @@ export function create(props?: PageStyleProps): PageStyle {
50
50
  columnCount: 1,
51
51
  columnGap: 0,
52
52
  },
53
- } = props || {};
53
+ } = props ?? {};
54
54
  return {
55
55
  headerMargins,
56
56
  footerMargins,
@@ -65,15 +65,11 @@ export function create(props?: PageStyleProps): PageStyle {
65
65
  }
66
66
 
67
67
  export function getWidth(pageStyle: PageStyle): number {
68
- return pageStyle.orientation === "Landscape"
69
- ? getPaperHeight(pageStyle.paperSize)
70
- : getPaperWidth(pageStyle.paperSize);
68
+ return pageStyle.orientation === "Landscape" ? getPaperHeight(pageStyle.paperSize) : getPaperWidth(pageStyle.paperSize);
71
69
  }
72
70
 
73
71
  export function getHeight(pageStyle: PageStyle): number {
74
- return pageStyle.orientation === "Landscape"
75
- ? getPaperWidth(pageStyle.paperSize)
76
- : getPaperHeight(pageStyle.paperSize);
72
+ return pageStyle.orientation === "Landscape" ? getPaperWidth(pageStyle.paperSize) : getPaperHeight(pageStyle.paperSize);
77
73
  }
78
74
 
79
75
  export function getPaperWidth(ps: PaperSize): number {
@@ -1,6 +1,6 @@
1
- import * as TextStyle from "./text-style.js";
2
1
  import * as LayoutFoundation from "../primitives/layout-foundation.js";
3
2
  import type * as Position from "./position.js";
3
+ import * as TextStyle from "./text-style.js";
4
4
 
5
5
  export type TextAlignment = "Start" | "Center" | "End" | "Justify";
6
6
 
@@ -20,12 +20,7 @@ export interface ParagraphStyleProps {
20
20
  }
21
21
 
22
22
  export function create(props?: ParagraphStyleProps): ParagraphStyle {
23
- const {
24
- alignment = undefined,
25
- margins = LayoutFoundation.create(),
26
- position = "relative",
27
- textStyle = TextStyle.create(),
28
- } = props || {};
23
+ const { alignment, margins = LayoutFoundation.create(), position = "relative", textStyle = TextStyle.create() } = props ?? {};
29
24
  return {
30
25
  type: "ParagraphStyle",
31
26
  alignment,
@@ -35,14 +30,11 @@ export function create(props?: ParagraphStyleProps): ParagraphStyle {
35
30
  };
36
31
  }
37
32
 
38
- export function overrideWith(
39
- overrider: ParagraphStyle | undefined,
40
- toOverride: ParagraphStyle | undefined
41
- ): ParagraphStyle {
42
- const a: ParagraphStyleProps = overrider || {};
43
- const b: ParagraphStyleProps = toOverride || {};
33
+ export function overrideWith(overrider: ParagraphStyle | undefined, toOverride: ParagraphStyle | undefined): ParagraphStyle {
34
+ const a: ParagraphStyleProps = overrider ?? {};
35
+ const b: ParagraphStyleProps = toOverride ?? {};
44
36
  return create({
45
- alignment: a.alignment || b.alignment,
37
+ alignment: a.alignment ?? b.alignment,
46
38
  margins: LayoutFoundation.overrideWith(a.margins, b.margins),
47
39
  textStyle: TextStyle.overrideWith(a.textStyle, b.textStyle),
48
40
  });
@@ -3,11 +3,7 @@ import * as TableCellStyle from "./table-cell-style.js";
3
3
  import * as TableStyle from "./table-style.js";
4
4
  import * as TextStyle from "./text-style.js";
5
5
 
6
- export type Style =
7
- | ParagraphStyle.ParagraphStyle
8
- | TableCellStyle.TableCellStyle
9
- | TableStyle.TableStyle
10
- | TextStyle.TextStyle;
6
+ export type Style = ParagraphStyle.ParagraphStyle | TableCellStyle.TableCellStyle | TableStyle.TableStyle | TextStyle.TextStyle;
11
7
 
12
8
  export function overrideWith(overrider: Style | undefined, toOverride: Style | undefined): Style | undefined {
13
9
  if (!overrider) {
@@ -1,5 +1,5 @@
1
- import * as LayoutFoundation from "../primitives/layout-foundation.js";
2
1
  import * as LayoutFoundationColor from "../primitives/layout-foundation-color.js";
2
+ import * as LayoutFoundation from "../primitives/layout-foundation.js";
3
3
 
4
4
  export type RowAlignment = "Top" | "Middle" | "Bottom";
5
5
 
@@ -23,14 +23,7 @@ export interface TableCellStyleProps {
23
23
  }
24
24
 
25
25
  export function create(props?: TableCellStyleProps): TableCellStyle {
26
- const {
27
- background = undefined,
28
- borders = undefined,
29
- borderColor = undefined,
30
- borderColors = undefined,
31
- padding = undefined,
32
- verticalAlignment = undefined,
33
- } = props || {};
26
+ const { background, borders, borderColor, borderColors, padding, verticalAlignment } = props ?? {};
34
27
  return {
35
28
  type: "TableCellStyle",
36
29
  background,
@@ -42,18 +35,15 @@ export function create(props?: TableCellStyleProps): TableCellStyle {
42
35
  };
43
36
  }
44
37
 
45
- export function overrideWith(
46
- overrider: TableCellStyle | undefined,
47
- toOverride: TableCellStyle | undefined
48
- ): TableCellStyle {
49
- const a: TableCellStyleProps = overrider || {};
50
- const b: TableCellStyleProps = toOverride || {};
38
+ export function overrideWith(overrider: TableCellStyle | undefined, toOverride: TableCellStyle | undefined): TableCellStyle {
39
+ const a: TableCellStyleProps = overrider ?? {};
40
+ const b: TableCellStyleProps = toOverride ?? {};
51
41
  return create({
52
- background: a.background || b.background,
42
+ background: a.background ?? b.background,
53
43
  borders: LayoutFoundation.overrideWith(a.borders, b.borders),
54
- borderColor: a.borderColor || b.borderColor,
44
+ borderColor: a.borderColor ?? b.borderColor,
55
45
  borderColors: LayoutFoundationColor.overrideWith(a.borderColors, b.borderColors),
56
46
  padding: LayoutFoundation.overrideWith(a.padding, b.padding),
57
- verticalAlignment: a.verticalAlignment || b.verticalAlignment,
47
+ verticalAlignment: a.verticalAlignment ?? b.verticalAlignment,
58
48
  });
59
49
  }
@@ -1,6 +1,6 @@
1
1
  import * as LayoutFoundation from "../primitives/layout-foundation.js";
2
- import * as TableCellStyle from "./table-cell-style.js";
3
2
  import type * as Position from "./position.js";
3
+ import * as TableCellStyle from "./table-cell-style.js";
4
4
 
5
5
  export type TableAlignment = "Left" | "Center" | "Right";
6
6
 
@@ -20,12 +20,7 @@ export interface TableStyleProps {
20
20
  }
21
21
 
22
22
  export function create(props?: TableStyleProps): TableStyle {
23
- const {
24
- margins = LayoutFoundation.create(),
25
- alignment = undefined,
26
- position = "relative",
27
- cellStyle = TableCellStyle.create(),
28
- } = props || {};
23
+ const { margins = LayoutFoundation.create(), alignment, position = "relative", cellStyle = TableCellStyle.create() } = props ?? {};
29
24
  return {
30
25
  type: "TableStyle",
31
26
  position,
@@ -40,7 +35,7 @@ export function overrideWith(overrider: TableStyle, toOverride: TableStyle): Tab
40
35
  const b: TableStyleProps = toOverride || {};
41
36
  return create({
42
37
  margins: LayoutFoundation.overrideWith(a.margins, b.margins),
43
- alignment: a.alignment || b.alignment,
38
+ alignment: a.alignment ?? b.alignment,
44
39
  cellStyle: TableCellStyle.overrideWith(a.cellStyle, b.cellStyle),
45
40
  });
46
41
  }
@@ -55,48 +55,43 @@ export interface TextStyleProps {
55
55
  export function create(props?: TextStyleProps): TextStyle {
56
56
  return {
57
57
  type: "TextStyle",
58
- ...(props || {}),
58
+ ...props,
59
59
  };
60
60
  }
61
61
 
62
62
  export function overrideWith(overrider: TextStyle | undefined, toOverride: TextStyle | undefined): TextStyle {
63
63
  const overriddenFontWeight: Partial<TextStyle> =
64
- overrider?.light ||
65
- overrider?.normal ||
66
- overrider?.mediumBold ||
67
- overrider?.bold ||
68
- overrider?.extraBold ||
69
- overrider?.fontWeight
64
+ overrider?.light || overrider?.normal || overrider?.mediumBold || overrider?.bold || overrider?.extraBold || overrider?.fontWeight
70
65
  ? {
71
- light: overrider?.light,
72
- normal: overrider?.normal,
73
- mediumBold: overrider?.mediumBold,
74
- bold: overrider?.bold,
75
- extraBold: overrider?.extraBold,
76
- fontWeight: overrider?.fontWeight,
77
- }
66
+ light: overrider?.light,
67
+ normal: overrider?.normal,
68
+ mediumBold: overrider?.mediumBold,
69
+ bold: overrider?.bold,
70
+ extraBold: overrider?.extraBold,
71
+ fontWeight: overrider?.fontWeight,
72
+ }
78
73
  : {
79
- light: toOverride?.light,
80
- normal: toOverride?.normal,
81
- mediumBold: toOverride?.mediumBold,
82
- bold: toOverride?.bold,
83
- extraBold: toOverride?.extraBold,
84
- fontWeight: toOverride?.fontWeight,
85
- };
86
- const a: TextStyleProps = overrider || {};
87
- const b: TextStyleProps = toOverride || {};
74
+ light: toOverride?.light,
75
+ normal: toOverride?.normal,
76
+ mediumBold: toOverride?.mediumBold,
77
+ bold: toOverride?.bold,
78
+ extraBold: toOverride?.extraBold,
79
+ fontWeight: toOverride?.fontWeight,
80
+ };
81
+ const a: TextStyleProps = overrider ?? {};
82
+ const b: TextStyleProps = toOverride ?? {};
88
83
  return create({
89
- fontFamily: a.fontFamily || b.fontFamily,
90
- color: a.color || b.color,
91
- fontSize: a.fontSize || b.fontSize,
92
- fontScale: a.fontScale || b.fontScale,
93
- italic: a.italic || b.italic,
94
- subScript: a.subScript || b.subScript,
95
- superScript: a.superScript || b.superScript,
96
- underline: a.underline || b.underline,
97
- verticalPosition: a.verticalPosition || b.verticalPosition,
98
- indent: a.indent || b.indent,
99
- lineGap: a.lineGap || b.lineGap,
84
+ fontFamily: a.fontFamily ?? b.fontFamily,
85
+ color: a.color ?? b.color,
86
+ fontSize: a.fontSize ?? b.fontSize,
87
+ fontScale: a.fontScale ?? b.fontScale,
88
+ italic: a.italic ?? b.italic,
89
+ subScript: a.subScript ?? b.subScript,
90
+ superScript: a.superScript ?? b.superScript,
91
+ underline: a.underline ?? b.underline,
92
+ verticalPosition: a.verticalPosition ?? b.verticalPosition,
93
+ indent: a.indent ?? b.indent,
94
+ lineGap: a.lineGap ?? b.lineGap,
100
95
  lineBreak: a.lineBreak ?? b.lineBreak,
101
96
  baseline: a.baseline ?? b.baseline,
102
97
  strike: a.strike ?? b.strike,
@@ -107,7 +102,7 @@ export function overrideWith(overrider: TextStyle | undefined, toOverride: TextS
107
102
  }
108
103
 
109
104
  export function calculateFontSize(textStyle: TextStyle | undefined, defaultFontSize: number): number {
110
- const fontSize = textStyle && textStyle.fontSize ? textStyle.fontSize : defaultFontSize;
111
- const fontScale = textStyle && textStyle.fontScale ? textStyle.fontScale : 1.0;
105
+ const fontSize = textStyle?.fontSize ?? defaultFontSize;
106
+ const fontScale = textStyle?.fontScale ?? 1.0;
112
107
  return fontSize * fontScale;
113
108
  }
@@ -19,13 +19,13 @@ export interface TableCellProps {
19
19
  }
20
20
 
21
21
  export function create(props?: TableCellProps, children?: ReadonlyArray<SectionElement.SectionElement>): TableCell {
22
- const { styleName = "", columnSpan = 1, rowSpan = 1, style = TableCellStyle.create(), dummy = false } = props || {};
22
+ const { styleName = "", columnSpan = 1, rowSpan = 1, style = TableCellStyle.create(), dummy = false } = props ?? {};
23
23
  return {
24
24
  styleName,
25
25
  columnSpan,
26
26
  rowSpan,
27
27
  style,
28
28
  dummy,
29
- children: children || [],
29
+ children: children ?? [],
30
30
  };
31
31
  }
@@ -4,11 +4,10 @@ export interface TableRow {
4
4
  readonly children: ReadonlyArray<TableCell>;
5
5
  }
6
6
 
7
- export interface TableRowProps {}
7
+ export type TableRowProps = object;
8
8
 
9
- export function create(props?: TableRowProps, children?: ReadonlyArray<TableCell>): TableRow {
10
- const {} = props || {};
9
+ export function create(_props?: TableRowProps, children?: ReadonlyArray<TableCell>): TableRow {
11
10
  return {
12
- children: children || [],
11
+ children: children ?? [],
13
12
  };
14
13
  }
@@ -1,3 +1,2 @@
1
- // tslint:disable-next-line:readonly-keyword
2
1
  export type Indexer<T> = { [key: string]: T };
3
2
  export type Guid = string;
@@ -1,18 +1,29 @@
1
- import { RefContainer } from "./ref-container.js";
2
- import { XmlWriter } from "./xml-writer.js";
1
+ import type { RefContainer } from "./ref-container.js";
2
+ import { createRefContainer } from "./ref-container.js";
3
+ import type { XmlWriter } from "./xml-writer.js";
4
+ import { createXmlWriter } from "./xml-writer.js";
3
5
 
4
- //tslint:disable:no-class no-this
6
+ export interface DocumentContainer {
7
+ readonly filePath: string;
8
+ readonly fileName: string;
9
+ readonly refId: string;
10
+ readonly contentType: string;
11
+ readonly references: RefContainer;
12
+ readonly XMLWriter: XmlWriter;
13
+ }
5
14
 
6
- export class DocumentContainer {
7
- readonly filePath!: string;
8
- readonly fileName!: string;
9
- readonly refId!: string;
10
- readonly contentType!: string;
11
- readonly references: RefContainer = new RefContainer();
15
+ export function createDocumentContainer(filePath: string, fileName: string, refId: string, contentType: string): DocumentContainer {
16
+ const xmlWriter = createXmlWriter();
12
17
 
13
- private readonly _xmlWriter: XmlWriter = new XmlWriter();
18
+ return {
19
+ filePath,
20
+ fileName,
21
+ refId,
22
+ contentType,
23
+ references: createRefContainer(),
14
24
 
15
- get XMLWriter(): XmlWriter {
16
- return this._xmlWriter;
17
- }
25
+ get XMLWriter(): XmlWriter {
26
+ return xmlWriter;
27
+ },
28
+ };
18
29
  }
@@ -1,21 +1,17 @@
1
- // tslint:disable:variable-name
2
-
3
- export const WordNamespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
1
+ export const WordNamespace = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
4
2
  export const WordPrefix = "w";
5
3
  export const VmlNamespace = "urn:schemas-microsoft-com:vml";
6
4
  export const VmlPrefix = "v";
7
5
  export const OfficeNamespace = "urn:schemas-microsoft-com:office:office";
8
6
  export const OfficePrefix = "o";
9
7
  export const HeadRelXml =
10
- // tslint:disable-next-line:max-line-length
11
8
  "<?xml version='1.0' encoding='utf-8'?><Relationships xmlns='http://schemas.openxmlformats.org/package/2006/relationships'><Relationship Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument' Target='/word/document.xml' Id='Rac2f7d58837f4830'/></Relationships>";
12
9
 
13
10
  export const RelNamespace = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
14
11
  export const RelPrefix = "r";
15
12
  export const PointOoXmlFactor = 20;
16
13
 
17
- export const ImageStyle =
18
- "width:{0}pt;height:{1}pt;mso-position-horizontal-relative:char;mso-position-vertical-relative:line;v-text-anchor:middle";
14
+ export const ImageStyle = "width:{0}pt;height:{1}pt;mso-position-horizontal-relative:char;mso-position-vertical-relative:line;v-text-anchor:middle";
19
15
 
20
16
  export const ContentTypeNamespace = "http://schemas.openxmlformats.org/package/2006/content-types.js";
21
17
  export const HeaderNamespace = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header";