abstract-document 20.0.4 → 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 (214) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/lib/abstract-document/abstract-doc.d.ts.map +1 -1
  3. package/lib/abstract-document/abstract-doc.js +2 -2
  4. package/lib/abstract-document/atoms/atom.d.ts +3 -3
  5. package/lib/abstract-document/atoms/atom.d.ts.map +1 -1
  6. package/lib/abstract-document/default-styles.d.ts.map +1 -1
  7. package/lib/abstract-document/default-styles.js.map +1 -1
  8. package/lib/abstract-document/markdown/markdown.d.ts.map +1 -1
  9. package/lib/abstract-document/markdown/markdown.js +4 -4
  10. package/lib/abstract-document/markdown/markdown.js.map +1 -1
  11. package/lib/abstract-document/numberings/numbering-definition.d.ts +2 -2
  12. package/lib/abstract-document/numberings/numbering-definition.d.ts.map +1 -1
  13. package/lib/abstract-document/numberings/numbering-level-definition.js +2 -2
  14. package/lib/abstract-document/page/master-page.d.ts +1 -1
  15. package/lib/abstract-document/page/master-page.d.ts.map +1 -1
  16. package/lib/abstract-document/page/master-page.js +1 -1
  17. package/lib/abstract-document/page/master-page.js.map +1 -1
  18. package/lib/abstract-document/page/section.d.ts +1 -1
  19. package/lib/abstract-document/page/section.d.ts.map +1 -1
  20. package/lib/abstract-document/page/section.js +2 -2
  21. package/lib/abstract-document/page/section.js.map +1 -1
  22. package/lib/abstract-document/primitives/font.d.ts +1 -1
  23. package/lib/abstract-document/primitives/font.d.ts.map +1 -1
  24. package/lib/abstract-document/primitives/font.js +1 -1
  25. package/lib/abstract-document/primitives/font.js.map +1 -1
  26. package/lib/abstract-document/primitives/layout-foundation-color.d.ts.map +1 -1
  27. package/lib/abstract-document/primitives/layout-foundation-color.js.map +1 -1
  28. package/lib/abstract-document/primitives/layout-foundation.d.ts.map +1 -1
  29. package/lib/abstract-document/primitives/layout-foundation.js.map +1 -1
  30. package/lib/abstract-document/resources.d.ts +4 -3
  31. package/lib/abstract-document/resources.d.ts.map +1 -1
  32. package/lib/abstract-document/resources.js +4 -4
  33. package/lib/abstract-document/resources.js.map +1 -1
  34. package/lib/abstract-document/section-elements/group.d.ts +1 -1
  35. package/lib/abstract-document/section-elements/group.d.ts.map +1 -1
  36. package/lib/abstract-document/section-elements/group.js +2 -2
  37. package/lib/abstract-document/section-elements/group.js.map +1 -1
  38. package/lib/abstract-document/section-elements/page-break.d.ts +2 -2
  39. package/lib/abstract-document/section-elements/page-break.d.ts.map +1 -1
  40. package/lib/abstract-document/section-elements/page-break.js +1 -2
  41. package/lib/abstract-document/section-elements/page-break.js.map +1 -1
  42. package/lib/abstract-document/section-elements/paragraph.d.ts +2 -2
  43. package/lib/abstract-document/section-elements/paragraph.d.ts.map +1 -1
  44. package/lib/abstract-document/section-elements/paragraph.js +2 -2
  45. package/lib/abstract-document/section-elements/paragraph.js.map +1 -1
  46. package/lib/abstract-document/section-elements/section-element.d.ts +1 -1
  47. package/lib/abstract-document/section-elements/section-element.d.ts.map +1 -1
  48. package/lib/abstract-document/section-elements/section-element.js.map +1 -1
  49. package/lib/abstract-document/section-elements/table.d.ts +1 -1
  50. package/lib/abstract-document/section-elements/table.d.ts.map +1 -1
  51. package/lib/abstract-document/section-elements/table.js +2 -2
  52. package/lib/abstract-document/section-elements/table.js.map +1 -1
  53. package/lib/abstract-document/styles/group-style.js +3 -3
  54. package/lib/abstract-document/styles/page-style.d.ts.map +1 -1
  55. package/lib/abstract-document/styles/page-style.js +3 -7
  56. package/lib/abstract-document/styles/page-style.js.map +1 -1
  57. package/lib/abstract-document/styles/paragraph-style.d.ts +1 -1
  58. package/lib/abstract-document/styles/paragraph-style.d.ts.map +1 -1
  59. package/lib/abstract-document/styles/paragraph-style.js +5 -5
  60. package/lib/abstract-document/styles/paragraph-style.js.map +1 -1
  61. package/lib/abstract-document/styles/style.d.ts.map +1 -1
  62. package/lib/abstract-document/styles/style.js.map +1 -1
  63. package/lib/abstract-document/styles/table-cell-style.d.ts +1 -1
  64. package/lib/abstract-document/styles/table-cell-style.d.ts.map +1 -1
  65. package/lib/abstract-document/styles/table-cell-style.js +7 -7
  66. package/lib/abstract-document/styles/table-cell-style.js.map +1 -1
  67. package/lib/abstract-document/styles/table-style.d.ts +1 -1
  68. package/lib/abstract-document/styles/table-style.d.ts.map +1 -1
  69. package/lib/abstract-document/styles/table-style.js +2 -2
  70. package/lib/abstract-document/styles/table-style.js.map +1 -1
  71. package/lib/abstract-document/styles/text-style.d.ts.map +1 -1
  72. package/lib/abstract-document/styles/text-style.js +16 -21
  73. package/lib/abstract-document/styles/text-style.js.map +1 -1
  74. package/lib/abstract-document/table/table-cell.js +2 -2
  75. package/lib/abstract-document/table/table-row.d.ts +2 -3
  76. package/lib/abstract-document/table/table-row.d.ts.map +1 -1
  77. package/lib/abstract-document/table/table-row.js +2 -3
  78. package/lib/abstract-document/table/table-row.js.map +1 -1
  79. package/lib/abstract-document/types.d.ts.map +1 -1
  80. package/lib/abstract-document-exporters/docx/document-container.d.ts +5 -5
  81. package/lib/abstract-document-exporters/docx/document-container.d.ts.map +1 -1
  82. package/lib/abstract-document-exporters/docx/document-container.js +14 -13
  83. package/lib/abstract-document-exporters/docx/document-container.js.map +1 -1
  84. package/lib/abstract-document-exporters/docx/docx-constants.d.ts.map +1 -1
  85. package/lib/abstract-document-exporters/docx/docx-constants.js +1 -4
  86. package/lib/abstract-document-exporters/docx/docx-constants.js.map +1 -1
  87. package/lib/abstract-document-exporters/docx/ref-container.d.ts +8 -10
  88. package/lib/abstract-document-exporters/docx/ref-container.d.ts.map +1 -1
  89. package/lib/abstract-document-exporters/docx/ref-container.js +34 -35
  90. package/lib/abstract-document-exporters/docx/ref-container.js.map +1 -1
  91. package/lib/abstract-document-exporters/docx/string-utils.d.ts +2 -1
  92. package/lib/abstract-document-exporters/docx/string-utils.d.ts.map +1 -1
  93. package/lib/abstract-document-exporters/docx/string-utils.js +6 -4
  94. package/lib/abstract-document-exporters/docx/string-utils.js.map +1 -1
  95. package/lib/abstract-document-exporters/docx/xml-writer.d.ts +12 -33
  96. package/lib/abstract-document-exporters/docx/xml-writer.d.ts.map +1 -1
  97. package/lib/abstract-document-exporters/docx/xml-writer.js +243 -249
  98. package/lib/abstract-document-exporters/docx/xml-writer.js.map +1 -1
  99. package/lib/abstract-document-exporters/docx2/render-image.d.ts +1 -1
  100. package/lib/abstract-document-exporters/docx2/render-image.d.ts.map +1 -1
  101. package/lib/abstract-document-exporters/docx2/render-image.js +4 -16
  102. package/lib/abstract-document-exporters/docx2/render-image.js.map +1 -1
  103. package/lib/abstract-document-exporters/docx2/render.d.ts.map +1 -1
  104. package/lib/abstract-document-exporters/docx2/render.js +28 -38
  105. package/lib/abstract-document-exporters/docx2/render.js.map +1 -1
  106. package/lib/abstract-document-exporters/pdf/font.d.ts.map +1 -1
  107. package/lib/abstract-document-exporters/pdf/font.js +13 -14
  108. package/lib/abstract-document-exporters/pdf/font.js.map +1 -1
  109. package/lib/abstract-document-exporters/pdf/header-footer.d.ts +8 -0
  110. package/lib/abstract-document-exporters/pdf/header-footer.d.ts.map +1 -0
  111. package/lib/abstract-document-exporters/pdf/header-footer.js +31 -0
  112. package/lib/abstract-document-exporters/pdf/header-footer.js.map +1 -0
  113. package/lib/abstract-document-exporters/pdf/measure.d.ts +4 -4
  114. package/lib/abstract-document-exporters/pdf/measure.d.ts.map +1 -1
  115. package/lib/abstract-document-exporters/pdf/measure.js +29 -31
  116. package/lib/abstract-document-exporters/pdf/measure.js.map +1 -1
  117. package/lib/abstract-document-exporters/pdf/page.d.ts +15 -0
  118. package/lib/abstract-document-exporters/pdf/page.d.ts.map +1 -0
  119. package/lib/abstract-document-exporters/pdf/page.js +2 -0
  120. package/lib/abstract-document-exporters/pdf/page.js.map +1 -0
  121. package/lib/abstract-document-exporters/pdf/paginate.d.ts +2 -20
  122. package/lib/abstract-document-exporters/pdf/paginate.d.ts.map +1 -1
  123. package/lib/abstract-document-exporters/pdf/paginate.js +8 -45
  124. package/lib/abstract-document-exporters/pdf/paginate.js.map +1 -1
  125. package/lib/abstract-document-exporters/pdf/pre-process.d.ts.map +1 -1
  126. package/lib/abstract-document-exporters/pdf/pre-process.js +8 -35
  127. package/lib/abstract-document-exporters/pdf/pre-process.js.map +1 -1
  128. package/lib/abstract-document-exporters/pdf/render-image.d.ts.map +1 -1
  129. package/lib/abstract-document-exporters/pdf/render-image.js +24 -34
  130. package/lib/abstract-document-exporters/pdf/render-image.js.map +1 -1
  131. package/lib/abstract-document-exporters/pdf/render.d.ts +4 -3
  132. package/lib/abstract-document-exporters/pdf/render.d.ts.map +1 -1
  133. package/lib/abstract-document-exporters/pdf/render.js +60 -50
  134. package/lib/abstract-document-exporters/pdf/render.js.map +1 -1
  135. package/lib/abstract-document-exporters/pdf/std-fonts.js +1 -1
  136. package/lib/abstract-document-exporters/pdf/std-fonts.js.map +1 -1
  137. package/lib/abstract-document-exporters/pdf/textRunRow.d.ts +3 -3
  138. package/lib/abstract-document-exporters/pdf/textRunRow.d.ts.map +1 -1
  139. package/lib/abstract-document-exporters/pdf/textRunRow.js +6 -6
  140. package/lib/abstract-document-exporters/pdf/textRunRow.js.map +1 -1
  141. package/lib/abstract-document-exporters/pdf/update-refs.d.ts +1 -1
  142. package/lib/abstract-document-exporters/pdf/update-refs.d.ts.map +1 -1
  143. package/lib/abstract-document-exporters/pdf/update-refs.js +3 -2
  144. package/lib/abstract-document-exporters/pdf/update-refs.js.map +1 -1
  145. package/lib/abstract-document-exporters/shared/get_resources.d.ts.map +1 -1
  146. package/lib/abstract-document-exporters/shared/get_resources.js.map +1 -1
  147. package/lib/abstract-document-jsx/index.d.ts +2 -3
  148. package/lib/abstract-document-jsx/index.d.ts.map +1 -1
  149. package/lib/abstract-document-jsx/index.js +10 -6
  150. package/lib/abstract-document-jsx/index.js.map +1 -1
  151. package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.d.ts +3 -7
  152. package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.d.ts.map +1 -1
  153. package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.js +5 -3
  154. package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.js.map +1 -1
  155. package/lib/abstract-document-xml/abstract-doc-of-xml/creator.d.ts.map +1 -1
  156. package/lib/abstract-document-xml/abstract-doc-of-xml/creator.js +1 -3
  157. package/lib/abstract-document-xml/abstract-doc-of-xml/creator.js.map +1 -1
  158. package/lib/abstract-document-xml/abstract-doc-of-xml/custom-elements.d.ts.map +1 -1
  159. package/lib/abstract-document-xml/abstract-doc-of-xml/custom-elements.js +4 -8
  160. package/lib/abstract-document-xml/abstract-doc-of-xml/custom-elements.js.map +1 -1
  161. package/lib/abstract-document-xml/xsd-template/xsd-template.js +2 -2
  162. package/lib/abstract-document-xml/xsd-template/xsd-template.js.map +1 -1
  163. package/package.json +21 -21
  164. package/src/abstract-document/abstract-doc.ts +6 -6
  165. package/src/abstract-document/atoms/atom.ts +3 -3
  166. package/src/abstract-document/default-styles.ts +1 -1
  167. package/src/abstract-document/markdown/markdown.ts +5 -5
  168. package/src/abstract-document/numberings/numbering-definition.ts +2 -2
  169. package/src/abstract-document/numberings/numbering-level-definition.ts +2 -2
  170. package/src/abstract-document/page/master-page.ts +2 -2
  171. package/src/abstract-document/page/section.ts +3 -3
  172. package/src/abstract-document/primitives/font.ts +1 -12
  173. package/src/abstract-document/primitives/layout-foundation-color.ts +1 -4
  174. package/src/abstract-document/primitives/layout-foundation.ts +1 -4
  175. package/src/abstract-document/resources.ts +9 -14
  176. package/src/abstract-document/section-elements/group.ts +3 -3
  177. package/src/abstract-document/section-elements/page-break.ts +2 -3
  178. package/src/abstract-document/section-elements/paragraph.ts +4 -4
  179. package/src/abstract-document/section-elements/section-element.ts +1 -1
  180. package/src/abstract-document/section-elements/table.ts +3 -3
  181. package/src/abstract-document/styles/group-style.ts +3 -3
  182. package/src/abstract-document/styles/page-style.ts +3 -7
  183. package/src/abstract-document/styles/paragraph-style.ts +6 -14
  184. package/src/abstract-document/styles/style.ts +1 -5
  185. package/src/abstract-document/styles/table-cell-style.ts +8 -11
  186. package/src/abstract-document/styles/table-style.ts +3 -8
  187. package/src/abstract-document/styles/text-style.ts +16 -21
  188. package/src/abstract-document/table/table-cell.ts +2 -2
  189. package/src/abstract-document/table/table-row.ts +3 -4
  190. package/src/abstract-document/types.ts +0 -1
  191. package/src/abstract-document-exporters/docx/document-container.ts +24 -13
  192. package/src/abstract-document-exporters/docx/docx-constants.ts +2 -6
  193. package/src/abstract-document-exporters/docx/ref-container.ts +48 -41
  194. package/src/abstract-document-exporters/docx/string-utils.ts +6 -6
  195. package/src/abstract-document-exporters/docx/xml-writer.ts +261 -266
  196. package/src/abstract-document-exporters/docx2/render-image.ts +15 -49
  197. package/src/abstract-document-exporters/docx2/render.ts +64 -139
  198. package/src/abstract-document-exporters/pdf/font.ts +17 -23
  199. package/src/abstract-document-exporters/pdf/header-footer.ts +43 -0
  200. package/src/abstract-document-exporters/pdf/measure.ts +50 -103
  201. package/src/abstract-document-exporters/pdf/page.ts +16 -0
  202. package/src/abstract-document-exporters/pdf/paginate.ts +29 -125
  203. package/src/abstract-document-exporters/pdf/pre-process.ts +11 -47
  204. package/src/abstract-document-exporters/pdf/render-image.ts +29 -46
  205. package/src/abstract-document-exporters/pdf/render.ts +84 -129
  206. package/src/abstract-document-exporters/pdf/std-fonts.ts +1 -1
  207. package/src/abstract-document-exporters/pdf/textRunRow.ts +12 -23
  208. package/src/abstract-document-exporters/pdf/update-refs.ts +10 -33
  209. package/src/abstract-document-exporters/shared/get_resources.ts +4 -4
  210. package/src/abstract-document-jsx/index.ts +38 -26
  211. package/src/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.ts +14 -26
  212. package/src/abstract-document-xml/abstract-doc-of-xml/creator.ts +10 -28
  213. package/src/abstract-document-xml/abstract-doc-of-xml/custom-elements.tsx +8 -30
  214. package/src/abstract-document-xml/xsd-template/xsd-template.ts +2 -2
@@ -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,
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,7 +23,7 @@ export interface TableCellStyleProps {
23
23
  }
24
24
 
25
25
  export function create(props?: TableCellStyleProps): TableCellStyle {
26
- const { background, borders, borderColor, borderColors, padding, verticalAlignment } = props || {};
26
+ const { background, borders, borderColor, borderColors, padding, verticalAlignment } = props ?? {};
27
27
  return {
28
28
  type: "TableCellStyle",
29
29
  background,
@@ -35,18 +35,15 @@ export function create(props?: TableCellStyleProps): TableCellStyle {
35
35
  };
36
36
  }
37
37
 
38
- export function overrideWith(
39
- overrider: TableCellStyle | undefined,
40
- toOverride: TableCellStyle | undefined
41
- ): TableCellStyle {
42
- const a: TableCellStyleProps = overrider || {};
43
- 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 ?? {};
44
41
  return create({
45
- background: a.background || b.background,
42
+ background: a.background ?? b.background,
46
43
  borders: LayoutFoundation.overrideWith(a.borders, b.borders),
47
- borderColor: a.borderColor || b.borderColor,
44
+ borderColor: a.borderColor ?? b.borderColor,
48
45
  borderColors: LayoutFoundationColor.overrideWith(a.borderColors, b.borderColors),
49
46
  padding: LayoutFoundation.overrideWith(a.padding, b.padding),
50
- verticalAlignment: a.verticalAlignment || b.verticalAlignment,
47
+ verticalAlignment: a.verticalAlignment ?? b.verticalAlignment,
51
48
  });
52
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,
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
  }
@@ -61,12 +61,7 @@ export function create(props?: TextStyleProps): TextStyle {
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
66
  light: overrider?.light,
72
67
  normal: overrider?.normal,
@@ -83,20 +78,20 @@ export function overrideWith(overrider: TextStyle | undefined, toOverride: TextS
83
78
  extraBold: toOverride?.extraBold,
84
79
  fontWeight: toOverride?.fontWeight,
85
80
  };
86
- const a: TextStyleProps = overrider || {};
87
- const b: TextStyleProps = toOverride || {};
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";
@@ -1,50 +1,57 @@
1
- import * as DocxConstants from "./docx-constants.js";
2
- import { XmlWriter } from "./xml-writer.js";
3
-
4
- //tslint:disable:no-class no-this
5
-
6
- export class RefContainer {
7
- // tslint:disable-next-line:readonly-keyword
8
- _references: Array<string> = [];
9
-
10
- private readonly _xmlWriter: XmlWriter = new XmlWriter();
11
-
12
- get XMLWriter(): XmlWriter {
13
- return this._xmlWriter;
14
- }
1
+ import * as DocxConstants from "./docx-constants.js";
2
+ import type { XmlWriter } from "./xml-writer.js";
3
+ import { createXmlWriter } from "./xml-writer.js";
4
+
5
+ export interface RefContainer {
6
+ readonly XMLWriter: XmlWriter;
7
+ readonly count: number;
8
+ AddReference: (refId: string, filePath: string, type: string) => void;
9
+ AddReference2: (refId: string, filePath: string, type: string) => void;
10
+ finish: () => void;
11
+ }
15
12
 
16
- constructor() {
17
- this.XMLWriter.WriteStartDocument(true);
18
- this.XMLWriter.WriteStartElement("Relationships", DocxConstants.RelationNamespace);
19
- }
13
+ export function createRefContainer(): RefContainer {
14
+ let references: Array<string> = [];
15
+ const xmlWriter = createXmlWriter();
20
16
 
21
- AddReference(refId: string, filePath: string, type: string): void {
22
- if (filePath.startsWith("/") === false) {
23
- filePath = "/" + filePath;
24
- }
25
- this.AddReference2(refId, filePath, type);
26
- }
17
+ xmlWriter.WriteStartDocument(true);
18
+ xmlWriter.WriteStartElement("Relationships", DocxConstants.RelationNamespace);
27
19
 
28
- AddReference2(refId: string, filePath: string, type: string): void {
29
- if (this._references.indexOf(refId) !== -1) {
20
+ function addReference2(refId: string, filePath: string, type: string): void {
21
+ if (references.indexOf(refId) !== -1) {
30
22
  return;
31
23
  }
32
- this.XMLWriter.WriteStartElement("Relationship");
33
- this.XMLWriter.WriteAttributeString("Type", type);
24
+ xmlWriter.WriteStartElement("Relationship");
25
+ xmlWriter.WriteAttributeString("Type", type);
34
26
  filePath = filePath.replace("\\", "/");
35
- this.XMLWriter.WriteAttributeString("Target", filePath);
36
- this.XMLWriter.WriteAttributeString("Id", refId);
37
- this.XMLWriter.WriteEndElement();
38
- this._references.push(refId);
27
+ xmlWriter.WriteAttributeString("Target", filePath);
28
+ xmlWriter.WriteAttributeString("Id", refId);
29
+ xmlWriter.WriteEndElement();
30
+ references.push(refId);
39
31
  }
40
32
 
41
- get count(): number {
42
- return this._references.length;
43
- }
44
-
45
- finish(): void {
46
- this.XMLWriter.WriteEndElement();
47
- this.XMLWriter.close();
48
- this._references = [];
49
- }
33
+ return {
34
+ get XMLWriter(): XmlWriter {
35
+ return xmlWriter;
36
+ },
37
+
38
+ get count(): number {
39
+ return references.length;
40
+ },
41
+
42
+ AddReference(refId: string, filePath: string, type: string): void {
43
+ if (!filePath.startsWith("/")) {
44
+ filePath = "/" + filePath;
45
+ }
46
+ addReference2(refId, filePath, type);
47
+ },
48
+
49
+ AddReference2: addReference2,
50
+
51
+ finish(): void {
52
+ xmlWriter.WriteEndElement();
53
+ xmlWriter.close();
54
+ references = [];
55
+ },
56
+ };
50
57
  }
@@ -1,16 +1,16 @@
1
+ // oxlint-disable no-bitwise
1
2
  // https://github.com/google/closure-library/blob/e877b1eac410c0d842bcda118689759512e0e26f/closure/goog/crypt/crypt.js
2
3
 
3
- //tslint:disable
4
-
5
4
  /**
6
5
  * Converts a JS string to a UTF-8 "byte" array.
6
+ *
7
7
  * @param {string} str 16-bit unicode string.
8
- * @return {!Array<number>} UTF-8 byte array.
8
+ * @returns {!number[]} UTF-8 byte array.
9
9
  */
10
10
  export function stringToUtf8ByteArray(str: string): Uint8Array {
11
11
  // TODO(user): Use native implementations if/when available
12
- let out: any[] = [],
13
- p: number = 0;
12
+ const out: Array<number> = [];
13
+ let p: number = 0;
14
14
  for (let i = 0; i < str.length; i++) {
15
15
  let c = str.charCodeAt(i);
16
16
  if (c < 128) {
@@ -18,7 +18,7 @@ export function stringToUtf8ByteArray(str: string): Uint8Array {
18
18
  } else if (c < 2048) {
19
19
  out[p++] = (c >> 6) | 192;
20
20
  out[p++] = (c & 63) | 128;
21
- } else if ((c & 0xfc00) == 0xd800 && i + 1 < str.length && (str.charCodeAt(i + 1) & 0xfc00) == 0xdc00) {
21
+ } else if ((c & 0xfc00) === 0xd800 && i + 1 < str.length && (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {
22
22
  // Surrogate Pair
23
23
  c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);
24
24
  out[p++] = (c >> 18) | 240;