abstract-document 6.4.0 → 6.7.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 (296) hide show
  1. package/CHANGELOG.md +29 -3
  2. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-bold-italic.d.ts.map +1 -1
  3. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-bold-italic.js +1 -0
  4. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-bold-italic.js.map +1 -1
  5. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-bold.d.ts.map +1 -1
  6. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-bold.js +1 -0
  7. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-bold.js.map +1 -1
  8. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-empty-keepTogether.d.ts.map +1 -1
  9. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-empty-keepTogether.js +11 -0
  10. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-empty-keepTogether.js.map +1 -1
  11. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-header.d.ts.map +1 -1
  12. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-header.js +1 -0
  13. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-header.js.map +1 -1
  14. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-italic.d.ts.map +1 -1
  15. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-italic.js +1 -0
  16. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-italic.js.map +1 -1
  17. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-keepTogether.d.ts.map +1 -1
  18. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-keepTogether.js +11 -0
  19. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-keepTogether.js.map +1 -1
  20. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-subscript.d.ts.map +1 -1
  21. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-subscript.js +1 -0
  22. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-subscript.js.map +1 -1
  23. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-superscript.d.ts.map +1 -1
  24. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-superscript.js +1 -0
  25. package/lib/abstract-document/__tests__/markdown/test-defs/markdown-superscript.js.map +1 -1
  26. package/lib/abstract-document/index.d.ts +3 -1
  27. package/lib/abstract-document/index.d.ts.map +1 -1
  28. package/lib/abstract-document/index.js +5 -1
  29. package/lib/abstract-document/index.js.map +1 -1
  30. package/lib/abstract-document/section-elements/group.d.ts +5 -1
  31. package/lib/abstract-document/section-elements/group.d.ts.map +1 -1
  32. package/lib/abstract-document/section-elements/group.js +24 -3
  33. package/lib/abstract-document/section-elements/group.js.map +1 -1
  34. package/lib/abstract-document/section-elements/paragraph.d.ts +2 -1
  35. package/lib/abstract-document/section-elements/paragraph.d.ts.map +1 -1
  36. package/lib/abstract-document/section-elements/paragraph.js +3 -2
  37. package/lib/abstract-document/section-elements/paragraph.js.map +1 -1
  38. package/lib/abstract-document/section-elements/section-element.d.ts +10 -5
  39. package/lib/abstract-document/section-elements/section-element.d.ts.map +1 -1
  40. package/lib/abstract-document/section-elements/section-element.js +32 -0
  41. package/lib/abstract-document/section-elements/section-element.js.map +1 -1
  42. package/lib/abstract-document/section-elements/table.d.ts +2 -1
  43. package/lib/abstract-document/section-elements/table.d.ts.map +1 -1
  44. package/lib/abstract-document/section-elements/table.js +3 -2
  45. package/lib/abstract-document/section-elements/table.js.map +1 -1
  46. package/lib/abstract-document/styles/group-style.d.ts +14 -0
  47. package/lib/abstract-document/styles/group-style.d.ts.map +1 -0
  48. package/lib/abstract-document/styles/group-style.js +41 -0
  49. package/lib/abstract-document/styles/group-style.js.map +1 -0
  50. package/lib/abstract-document/styles/paragraph-style.d.ts +3 -0
  51. package/lib/abstract-document/styles/paragraph-style.d.ts.map +1 -1
  52. package/lib/abstract-document/styles/paragraph-style.js +4 -3
  53. package/lib/abstract-document/styles/paragraph-style.js.map +1 -1
  54. package/lib/abstract-document/styles/position.d.ts +4 -0
  55. package/lib/abstract-document/styles/position.d.ts.map +1 -0
  56. package/lib/abstract-document/styles/position.js +29 -0
  57. package/lib/abstract-document/styles/position.js.map +1 -0
  58. package/lib/abstract-document/styles/table-style.d.ts +3 -0
  59. package/lib/abstract-document/styles/table-style.d.ts.map +1 -1
  60. package/lib/abstract-document/styles/table-style.js +4 -3
  61. package/lib/abstract-document/styles/table-style.js.map +1 -1
  62. package/lib/abstract-document/styles/text-style.d.ts +3 -0
  63. package/lib/abstract-document/styles/text-style.d.ts.map +1 -1
  64. package/lib/abstract-document/styles/text-style.js +2 -1
  65. package/lib/abstract-document/styles/text-style.js.map +1 -1
  66. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/{group.d.ts → absolute-position-group.d.ts} +1 -1
  67. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-group.d.ts.map +1 -0
  68. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-group.js +92 -0
  69. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-group.js.map +1 -0
  70. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-header-and-footer.d.ts +3 -0
  71. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-header-and-footer.d.ts.map +1 -0
  72. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-header-and-footer.js +199 -0
  73. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-header-and-footer.js.map +1 -0
  74. package/lib/abstract-document-exporters/__tests__/{docx2/test-defs/table-of-content-separator.d.ts → pdf/test-defs/absolute-position-paragraph.d.ts} +1 -1
  75. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-paragraph.d.ts.map +1 -0
  76. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-paragraph.js +68 -0
  77. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-paragraph.js.map +1 -0
  78. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-group.d.ts +3 -0
  79. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-group.d.ts.map +1 -0
  80. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/{group.js → absolute-position-section-in-group.js} +54 -28
  81. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-group.js.map +1 -0
  82. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-table.d.ts +3 -0
  83. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-table.d.ts.map +1 -0
  84. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-table.js +146 -0
  85. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-table.js.map +1 -0
  86. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/{simple-table.d.ts → absolute-position-table.d.ts} +1 -1
  87. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-table.d.ts.map +1 -0
  88. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-table.js +121 -0
  89. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-table.js.map +1 -0
  90. package/lib/abstract-document-exporters/__tests__/{docx2/test-defs/simple-table copy.d.ts → pdf/test-defs/group-no-keep-together.d.ts} +1 -1
  91. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/group-no-keep-together.d.ts.map +1 -0
  92. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/group-no-keep-together.js +1270 -0
  93. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/group-no-keep-together.js.map +1 -0
  94. package/lib/{abstract-document/__tests__/markdown/test-defs/markdown.d.ts → abstract-document-exporters/__tests__/pdf/test-defs/single-figure.d.ts} +1 -1
  95. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-figure.d.ts.map +1 -0
  96. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-figure.js +238 -0
  97. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-figure.js.map +1 -0
  98. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-alphabetic.d.ts +3 -0
  99. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-alphabetic.d.ts.map +1 -0
  100. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-alphabetic.js +65 -0
  101. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-alphabetic.js.map +1 -0
  102. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/{page-break-table-with-margin.d.ts → single-textrun-baseline-bottom.d.ts} +1 -1
  103. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-bottom.d.ts.map +1 -0
  104. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-bottom.js +65 -0
  105. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-bottom.js.map +1 -0
  106. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-hanging.d.ts +3 -0
  107. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-hanging.d.ts.map +1 -0
  108. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-hanging.js +65 -0
  109. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-hanging.js.map +1 -0
  110. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-middle.d.ts +3 -0
  111. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-middle.d.ts.map +1 -0
  112. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-middle.js +65 -0
  113. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-middle.js.map +1 -0
  114. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-top.d.ts +3 -0
  115. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-top.d.ts.map +1 -0
  116. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-top.js +65 -0
  117. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-top.js.map +1 -0
  118. package/lib/abstract-document-exporters/docx2/render-image.js +2 -2
  119. package/lib/abstract-document-exporters/docx2/render-image.js.map +1 -1
  120. package/lib/abstract-document-exporters/pdf/font.d.ts +2 -1
  121. package/lib/abstract-document-exporters/pdf/font.d.ts.map +1 -1
  122. package/lib/abstract-document-exporters/pdf/font.js +16 -12
  123. package/lib/abstract-document-exporters/pdf/font.js.map +1 -1
  124. package/lib/abstract-document-exporters/pdf/measure.d.ts.map +1 -1
  125. package/lib/abstract-document-exporters/pdf/measure.js +8 -4
  126. package/lib/abstract-document-exporters/pdf/measure.js.map +1 -1
  127. package/lib/abstract-document-exporters/pdf/paginate.js +3 -2
  128. package/lib/abstract-document-exporters/pdf/paginate.js.map +1 -1
  129. package/lib/abstract-document-exporters/pdf/pre-process.js +2 -2
  130. package/lib/abstract-document-exporters/pdf/pre-process.js.map +1 -1
  131. package/lib/abstract-document-exporters/pdf/render-image.js +4 -3
  132. package/lib/abstract-document-exporters/pdf/render-image.js.map +1 -1
  133. package/lib/abstract-document-exporters/pdf/render.js +50 -21
  134. package/lib/abstract-document-exporters/pdf/render.js.map +1 -1
  135. package/package.json +3 -3
  136. package/src/abstract-document/__tests__/markdown/test-defs/markdown-bold-italic.tsx +1 -0
  137. package/src/abstract-document/__tests__/markdown/test-defs/markdown-bold.tsx +1 -0
  138. package/src/abstract-document/__tests__/markdown/test-defs/markdown-empty-keepTogether.tsx +11 -0
  139. package/src/abstract-document/__tests__/markdown/test-defs/markdown-header.tsx +1 -0
  140. package/src/abstract-document/__tests__/markdown/test-defs/markdown-italic.tsx +1 -0
  141. package/src/abstract-document/__tests__/markdown/test-defs/markdown-keepTogether.tsx +11 -0
  142. package/src/abstract-document/__tests__/markdown/test-defs/markdown-subscript.tsx +1 -0
  143. package/src/abstract-document/__tests__/markdown/test-defs/markdown-superscript.tsx +1 -0
  144. package/src/abstract-document/index.ts +4 -0
  145. package/src/abstract-document/section-elements/group.ts +11 -8
  146. package/src/abstract-document/section-elements/paragraph.ts +4 -2
  147. package/src/abstract-document/section-elements/section-element.ts +16 -5
  148. package/src/abstract-document/section-elements/table.ts +4 -2
  149. package/src/abstract-document/styles/group-style.ts +30 -0
  150. package/src/abstract-document/styles/paragraph-style.ts +9 -5
  151. package/src/abstract-document/styles/position.ts +8 -0
  152. package/src/abstract-document/styles/table-style.ts +10 -9
  153. package/src/abstract-document/styles/text-style.ts +4 -0
  154. package/src/abstract-document-exporters/__tests__/docx2/tmp/Group.docx +0 -0
  155. package/src/abstract-document-exporters/__tests__/docx2/tmp/Header and footer.docx and b/package/src/abstract-document-exporters/__tests__/docx2/tmp/Header → footer.docx +0 -0
  156. package/src/abstract-document-exporters/__tests__/docx2/tmp/Mixed hyperlink and textrun.docx and b/package/src/abstract-document-exporters/__tests__/docx2/tmp/Mixed hyperlink → textrun.docx +0 -0
  157. package/src/abstract-document-exporters/__tests__/docx2/tmp/Mixed textrun and images.docx and b/package/src/abstract-document-exporters/__tests__/docx2/tmp/Mixed textrun → images.docx +0 -0
  158. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple images.docx +0 -0
  159. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple tables.docx +0 -0
  160. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple textrun with Center alignment.docx +0 -0
  161. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple textrun with End alignment.docx +0 -0
  162. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple textrun with Start alignment that linebreaks.docx +0 -0
  163. package/src/abstract-document-exporters/__tests__/docx2/tmp/Multiple textrun with Start alignment.docx +0 -0
  164. package/src/abstract-document-exporters/__tests__/docx2/tmp/Page numbering.docx +0 -0
  165. package/src/abstract-document-exporters/__tests__/docx2/tmp/Simple table colSpan and rowSpan.docx and b/package/src/abstract-document-exporters/__tests__/docx2/tmp/Simple table colSpan → rowSpan.docx +0 -0
  166. package/src/abstract-document-exporters/__tests__/docx2/tmp/Simple table without rows.docx +0 -0
  167. package/src/abstract-document-exporters/__tests__/docx2/tmp/Simple table.docx +0 -0
  168. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single hyperlink.docx +0 -0
  169. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single image.docx +0 -0
  170. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with Center alignment that linebreaks.docx +0 -0
  171. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with Center alignment.docx +0 -0
  172. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with End alignment that linebreaks.docx +0 -0
  173. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with End alignment.docx +0 -0
  174. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with Start alignment that linebreaks.docx +0 -0
  175. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun with Start alignment.docx +0 -0
  176. package/src/abstract-document-exporters/__tests__/docx2/tmp/Single textrun.docx +0 -0
  177. package/src/abstract-document-exporters/__tests__/docx2/tmp/hello.docx +0 -0
  178. package/src/abstract-document-exporters/__tests__/docx2/tmp/world.docx +0 -0
  179. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-group.tsx +77 -0
  180. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-header-and-footer.tsx +197 -0
  181. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-paragraph.tsx +51 -0
  182. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-group.tsx +96 -0
  183. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-section-in-table.tsx +145 -0
  184. package/src/abstract-document-exporters/__tests__/pdf/test-defs/absolute-position-table.tsx +117 -0
  185. package/src/abstract-document-exporters/__tests__/pdf/test-defs/group-no-keep-together.tsx +1287 -0
  186. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-figure.tsx +323 -0
  187. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-alphabetic.tsx +46 -0
  188. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-bottom.tsx +46 -0
  189. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-hanging.tsx +46 -0
  190. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-middle.tsx +46 -0
  191. package/src/abstract-document-exporters/__tests__/pdf/test-defs/single-textrun-baseline-top.tsx +46 -0
  192. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position group.pdf +123 -0
  193. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position header and footer.pdf +173 -0
  194. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position paragraph.pdf +113 -0
  195. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position section in group.pdf +123 -0
  196. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position section in table.pdf +147 -0
  197. package/src/abstract-document-exporters/__tests__/pdf/tmp/Absolute position table.pdf +137 -0
  198. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group Paragraphs.pdf +2 -2
  199. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group Tables.pdf +2 -2
  200. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group no keeptogether.pdf +912 -0
  201. package/src/abstract-document-exporters/__tests__/pdf/tmp/Group too big for one page.pdf +2 -2
  202. package/src/abstract-document-exporters/__tests__/pdf/tmp/Header and footer.pdf +2 -2
  203. package/src/abstract-document-exporters/__tests__/pdf/tmp/Hyperlink internal linktarget.pdf +2 -2
  204. package/src/abstract-document-exporters/__tests__/pdf/tmp/Hyperlink internal.pdf +2 -2
  205. package/src/abstract-document-exporters/__tests__/pdf/tmp/Margins header body footer.pdf +2 -2
  206. package/src/abstract-document-exporters/__tests__/pdf/tmp/Mixed hyperlink and textrun.pdf +2 -2
  207. package/src/abstract-document-exporters/__tests__/pdf/tmp/Mixed textrun and images.pdf and b/package/src/abstract-document-exporters/__tests__/pdf/tmp/Mixed textrun → images.pdf +0 -0
  208. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple images overflow.pdf +0 -0
  209. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple images.pdf +0 -0
  210. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple textrun with Center alignment.pdf +2 -2
  211. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple textrun with End alignment.pdf +2 -2
  212. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple textrun with Start alignment that linebreaks.pdf +2 -2
  213. package/src/abstract-document-exporters/__tests__/pdf/tmp/Multiple textrun with Start alignment.pdf +2 -2
  214. package/src/abstract-document-exporters/__tests__/pdf/tmp/Page numbering.pdf +2 -2
  215. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table row that doesnt fit page.pdf +2 -2
  216. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table single row.pdf +2 -2
  217. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with group.pdf +2 -2
  218. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with header 2.pdf +2 -2
  219. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with header.pdf +2 -2
  220. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with margin bottom.pdf +2 -2
  221. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with margin top single table.pdf +2 -2
  222. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with margin top.pdf +2 -2
  223. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with rowSpan multipages.pdf +2 -2
  224. package/src/abstract-document-exporters/__tests__/pdf/tmp/Pagebreak table with rowSpan.pdf +2 -2
  225. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table all auto.pdf +2 -2
  226. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table all fix.pdf +2 -2
  227. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table background.pdf +2 -2
  228. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table cell padding of image.pdf +0 -0
  229. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table cell padding of text.pdf +2 -2
  230. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table center alignment.pdf +2 -2
  231. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table colSpan and rowSpan.pdf +2 -2
  232. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table mix auto fix.pdf +2 -2
  233. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table padding.pdf +2 -2
  234. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table right alignment.pdf +2 -2
  235. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table row alignment.pdf +2 -2
  236. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table text alignment in cell with wrapping.pdf +2 -2
  237. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table text alignment in cell.pdf +2 -2
  238. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table with default colored borders.pdf +2 -2
  239. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table with header.pdf +2 -2
  240. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table with multi colored borders.pdf +2 -2
  241. package/src/abstract-document-exporters/__tests__/pdf/tmp/Simple table with single colored borders.pdf +2 -2
  242. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single date.pdf +14 -14
  243. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single figure.pdf +204 -0
  244. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single hyperlink centered.pdf +2 -2
  245. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single hyperlink right aligned.pdf +2 -2
  246. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single hyperlink.pdf +2 -2
  247. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image svg color hex.pdf +2 -2
  248. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image svg color name.pdf +2 -2
  249. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image svg color url.pdf +2 -2
  250. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single image.pdf +0 -0
  251. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline alphabetic.pdf +113 -0
  252. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline bottom.pdf +113 -0
  253. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline hanging.pdf +113 -0
  254. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline middle.pdf +113 -0
  255. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun baseline top.pdf +113 -0
  256. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Center alignment that linebreaks.pdf +2 -2
  257. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Center alignment.pdf +2 -2
  258. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with End alignment that linebreaks.pdf +2 -2
  259. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with End alignment.pdf +2 -2
  260. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Justify alignment.pdf +2 -2
  261. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Start alignment that linebreaks.pdf +2 -2
  262. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with Start alignment.pdf +2 -2
  263. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun with super and subscripts.pdf +2 -2
  264. package/src/abstract-document-exporters/__tests__/pdf/tmp/Single textrun.pdf +2 -2
  265. package/src/abstract-document-exporters/__tests__/pdf/tmp/Table of content separator.pdf +2 -2
  266. package/src/abstract-document-exporters/__tests__/pdf/tmp/hello.pdf +2 -2
  267. package/src/abstract-document-exporters/__tests__/pdf/tmp/world.pdf +2 -2
  268. package/src/abstract-document-exporters/docx2/render-image.ts +2 -2
  269. package/src/abstract-document-exporters/pdf/font.ts +18 -9
  270. package/src/abstract-document-exporters/pdf/measure.ts +13 -5
  271. package/src/abstract-document-exporters/pdf/paginate.ts +3 -2
  272. package/src/abstract-document-exporters/pdf/pre-process.ts +2 -1
  273. package/src/abstract-document-exporters/pdf/render-image.ts +10 -4
  274. package/src/abstract-document-exporters/pdf/render.ts +51 -20
  275. package/lib/abstract-document/__tests__/markdown/test-defs/markdown.d.ts.map +0 -1
  276. package/lib/abstract-document/__tests__/markdown/test-defs/markdown.js +0 -14
  277. package/lib/abstract-document/__tests__/markdown/test-defs/markdown.js.map +0 -1
  278. package/lib/abstract-document/primitives/layout-foundation.js copy.map +0 -1
  279. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/simple-table copy.d.ts.map +0 -1
  280. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/simple-table copy.js +0 -195
  281. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/simple-table copy.js.map +0 -1
  282. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/table-of-content-separator.d.ts.map +0 -1
  283. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/table-of-content-separator.js +0 -18
  284. package/lib/abstract-document-exporters/__tests__/docx2/test-defs/table-of-content-separator.js.map +0 -1
  285. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/group.d.ts.map +0 -1
  286. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/group.js.map +0 -1
  287. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/page-break-table-with-margin.d.ts.map +0 -1
  288. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/page-break-table-with-margin.js +0 -56
  289. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/page-break-table-with-margin.js.map +0 -1
  290. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table.d.ts.map +0 -1
  291. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table.js +0 -104
  292. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/simple-table.js.map +0 -1
  293. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-date.d.ts +0 -1
  294. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-date.d.ts.map +0 -1
  295. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-date.js +0 -70
  296. package/lib/abstract-document-exporters/__tests__/pdf/test-defs/single-date.js.map +0 -1
@@ -101,26 +101,38 @@ function renderPage(parentResources, pdf, desiredSizes, page) {
101
101
  }
102
102
  });
103
103
  const headerX = style.headerMargins.left;
104
- let headerY = style.headerMargins.top;
104
+ const headerStart = style.headerMargins.top;
105
+ let headerY = headerStart;
105
106
  for (let element of page.header) {
106
107
  const elementSize = getDesiredSize(element, desiredSizes);
107
- renderSectionElement(resources, pdf, desiredSizes, AD.Rect.create(headerX, headerY, elementSize.width, elementSize.height), element);
108
- headerY += elementSize.height;
108
+ const isAbsolute = AD.Position.isPositionAbsolute(element);
109
+ renderSectionElement(resources, pdf, desiredSizes, AD.Rect.create(headerX, isAbsolute ? headerStart : headerY, elementSize.width, elementSize.height), element);
110
+ if (!isAbsolute) {
111
+ headerY += elementSize.height;
112
+ }
109
113
  }
110
114
  headerY += style.headerMargins.bottom;
111
115
  const footerHeight = page.footer.reduce((a, b) => a + getDesiredSize(b, desiredSizes).height, style.footerMargins.top + style.footerMargins.bottom);
112
116
  const footerX = style.footerMargins.left;
113
- let footerY = pageHeight - (footerHeight - style.footerMargins.top);
117
+ const footerStart = pageHeight - (footerHeight - style.footerMargins.top);
118
+ let footerY = footerStart;
114
119
  for (let element of page.footer) {
115
120
  const elementSize = getDesiredSize(element, desiredSizes);
116
- renderSectionElement(resources, pdf, desiredSizes, AD.Rect.create(footerX, footerY, elementSize.width, elementSize.height), element);
117
- footerY += elementSize.height;
121
+ const isAbsolute = AD.Position.isPositionAbsolute(element);
122
+ renderSectionElement(resources, pdf, desiredSizes, AD.Rect.create(footerX, isAbsolute ? footerStart : footerY, elementSize.width, elementSize.height), element);
123
+ if (!isAbsolute) {
124
+ footerY += elementSize.height;
125
+ }
118
126
  }
119
- let y = contentRect.y;
127
+ const elementStart = contentRect.y;
128
+ let y = elementStart;
120
129
  for (const element of page.elements) {
121
130
  const elementSize = getDesiredSize(element, desiredSizes);
122
- renderSectionElement(resources, pdf, desiredSizes, AD.Rect.create(contentRect.x, y, elementSize.width, elementSize.height), element);
123
- y += elementSize.height;
131
+ const isAbsolute = AD.Position.isPositionAbsolute(element);
132
+ renderSectionElement(resources, pdf, desiredSizes, AD.Rect.create(contentRect.x, isAbsolute ? elementStart : y, elementSize.width, elementSize.height), element);
133
+ if (!isAbsolute) {
134
+ y += elementSize.height;
135
+ }
124
136
  }
125
137
  }
126
138
  function addPage(pdf, page) {
@@ -158,11 +170,16 @@ function renderSectionElement(parentResources, pdf, desiredSizes, finalRect, ele
158
170
  }
159
171
  }
160
172
  function renderGroup(resources, pdf, desiredSizes, finalRect, group) {
161
- let y = finalRect.y;
173
+ const finalX = finalRect.x + group.style.margins.left;
174
+ const startY = finalRect.y + group.style.margins.top;
175
+ let y = startY;
162
176
  for (const element of group.children) {
163
177
  const elementSize = getDesiredSize(element, desiredSizes);
164
- renderSectionElement(resources, pdf, desiredSizes, AD.Rect.create(finalRect.x, y, elementSize.width, elementSize.height), element);
165
- y += elementSize.height;
178
+ const isAbsolute = AD.Position.isPositionAbsolute(element);
179
+ renderSectionElement(resources, pdf, desiredSizes, AD.Rect.create(finalX, isAbsolute ? startY : y, elementSize.width, elementSize.height), element);
180
+ if (!isAbsolute) {
181
+ y += elementSize.height;
182
+ }
166
183
  }
167
184
  }
168
185
  function renderParagraph(resources, pdf, desiredSizes, finalRect, paragraph) {
@@ -227,6 +244,12 @@ function renderParagraph(resources, pdf, desiredSizes, finalRect, paragraph) {
227
244
  }
228
245
  const rowWidth = row.reduce((a, b) => a + getDesiredSize(b, desiredSizes).width, 0);
229
246
  let x = finalRect.x;
247
+ if (style.alignment === "Start" || style.alignment === "Justify") {
248
+ x += style.margins.left;
249
+ }
250
+ else if (style.alignment === "End") {
251
+ x -= style.margins.right;
252
+ }
230
253
  if (row.length > 1 || row[0].type === "Image") {
231
254
  // Using continued with alignment "center" or "right" is broken:
232
255
  // https://github.com/foliojs/pdfkit/issues/240
@@ -314,7 +337,7 @@ function renderTocSeparator(pdf, finalRect, textStyle) {
314
337
  drawDottedLine(pdf, finalRect, textStyle);
315
338
  }
316
339
  function drawHyperLink(pdf, finalRect, textStyle, hyperLink, alignment, isFirstAtom, isLastAtom, availableWidth) {
317
- const font = (0, font_1.getFontName)(textStyle);
340
+ const font = (0, font_1.getFontNameStyle)(textStyle);
318
341
  const isInternalLink = hyperLink.target.startsWith("#") && !hyperLink.target.startsWith("#page=");
319
342
  const fontSize = AD.TextStyle.calculateFontSize(textStyle, 10);
320
343
  const isSingleAtom = isFirstAtom && isLastAtom;
@@ -336,7 +359,7 @@ function drawHyperLink(pdf, finalRect, textStyle, hyperLink, alignment, isFirstA
336
359
  // if its just a single atom then we can use its alignment to partially support multi-line texts for other alignments
337
360
  if (isFirstAtom || alignment !== "left") {
338
361
  pdf
339
- .text(hyperLink.text, finalRect.x, finalRect.y, Object.assign({ width: availableWidth, underline: textStyle.underline || false, align: isSingleAtom ? alignment : "left", goTo: isInternalLink ? hyperLink.target.substr(1) : undefined, indent: textStyle.indent || 0, continued: alignment !== "left" ? false : !isLastAtom }, (textStyle.lineGap !== undefined ? { lineGap: textStyle.lineGap } : {})))
362
+ .text(hyperLink.text, finalRect.x, finalRect.y, Object.assign({ width: availableWidth, underline: textStyle.underline || false, align: isSingleAtom ? alignment : "left", goTo: isInternalLink ? hyperLink.target.substr(1) : undefined, indent: textStyle.indent || 0, continued: alignment !== "left" ? false : !isLastAtom, baseline: textStyle.baseline || "top" }, (textStyle.lineGap !== undefined ? { lineGap: textStyle.lineGap } : {})))
340
363
  .underline(xUnderline, finalRect.y + 2, finalRect.width, finalRect.height, {
341
364
  align: isSingleAtom ? alignment : "left",
342
365
  color: "blue",
@@ -355,7 +378,7 @@ function drawHyperLink(pdf, finalRect, textStyle, hyperLink, alignment, isFirstA
355
378
  }
356
379
  }
357
380
  function drawText(pdf, finalRect, textStyle, text, alignment, isFirstAtom, isLastAtom, availableWidth) {
358
- const font = (0, font_1.getFontName)(textStyle);
381
+ const font = (0, font_1.getFontNameStyle)(textStyle);
359
382
  const fontSize = AD.TextStyle.calculateFontSize(textStyle, 10);
360
383
  const isSingleAtom = isFirstAtom && isLastAtom;
361
384
  pdf
@@ -368,7 +391,7 @@ function drawText(pdf, finalRect, textStyle, text, alignment, isFirstAtom, isLas
368
391
  // so always set alignment to left and handle it through an x offset
369
392
  // if its just a single atom then we can use its alignment to partially support multi-line texts for other alignments
370
393
  if (isFirstAtom || alignment !== "left") {
371
- pdf.text(text, finalRect.x, finalRect.y, Object.assign({ width: availableWidth, underline: textStyle.underline || false, align: isSingleAtom ? alignment : "left", indent: textStyle.indent || 0, continued: alignment !== "left" ? false : !isLastAtom }, (textStyle.lineGap !== undefined ? { lineGap: textStyle.lineGap } : {})));
394
+ pdf.text(text, finalRect.x, finalRect.y, Object.assign({ width: availableWidth, underline: textStyle.underline || false, align: isSingleAtom ? alignment : "left", indent: textStyle.indent || 0, continued: alignment !== "left" ? false : !isLastAtom, baseline: textStyle.baseline || "top" }, (textStyle.lineGap !== undefined ? { lineGap: textStyle.lineGap } : {})));
372
395
  }
373
396
  else {
374
397
  pdf.text(text, Object.assign({ underline: textStyle.underline || false, align: "left", indent: textStyle.indent || 0, continued: !isLastAtom }, (textStyle.lineGap !== undefined ? { lineGap: textStyle.lineGap } : {})));
@@ -376,7 +399,7 @@ function drawText(pdf, finalRect, textStyle, text, alignment, isFirstAtom, isLas
376
399
  resetTextOffset(pdf, textStyle);
377
400
  }
378
401
  function drawDottedLine(pdf, finalRect, textStyle) {
379
- const font = (0, font_1.getFontName)(textStyle);
402
+ const font = (0, font_1.getFontNameStyle)(textStyle);
380
403
  const fontSize = AD.TextStyle.calculateFontSize(textStyle, 10);
381
404
  const oneDotW = pdf.widthOfString(".", {
382
405
  width: finalRect.width,
@@ -460,17 +483,23 @@ function renderCell(resources, pdf, desiredSizes, finalRect, tableCellStyle, cel
460
483
  }
461
484
  let x = finalRect.x + style.padding.left;
462
485
  const availableHeight = finalRect.height;
463
- let contentHeight = cell.children.map((c) => getDesiredSize(c, desiredSizes).height).reduce((a, b) => a + b, 0);
464
- let y = finalRect.y + style.padding.top;
486
+ let contentHeight = cell.children
487
+ .map((c) => (AD.Position.isPositionAbsolute(c) ? 0 : getDesiredSize(c, desiredSizes).height))
488
+ .reduce((a, b) => a + b, 0);
489
+ const startY = finalRect.y + style.padding.top;
490
+ let y = startY;
465
491
  if (style.verticalAlignment === "Middle")
466
492
  y += 0.5 * (availableHeight - contentHeight - style.padding.top - style.padding.bottom);
467
493
  else if (style.verticalAlignment === "Bottom")
468
494
  y += availableHeight - contentHeight - style.padding.top - style.padding.bottom;
469
495
  for (const element of cell.children) {
470
496
  const elementSize = getDesiredSize(element, desiredSizes);
471
- const elementRect = AD.Rect.create(x, y, elementSize.width, elementSize.height);
497
+ const isAbsolute = AD.Position.isPositionAbsolute(element);
498
+ const elementRect = AD.Rect.create(x, isAbsolute ? startY : y, elementSize.width, elementSize.height);
472
499
  renderSectionElement(resources, pdf, desiredSizes, elementRect, element);
473
- y += elementSize.height;
500
+ if (!isAbsolute) {
501
+ y += elementSize.height;
502
+ }
474
503
  }
475
504
  //Needed to counter aliasing caused by the cells background fill
476
505
  const pixelFix = 0.3;
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/abstract-document-exporters/pdf/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/abstract-document-exporters/pdf/render.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "abstract-document",
3
- "version": "6.4.0",
3
+ "version": "6.7.0",
4
4
  "description": "Dynamically create documents using code or JSX and render to any format",
5
5
  "repository": "https://github.com/dividab/abstract-visuals/tree/master/packages/abstract-document",
6
6
  "main": "lib/index.js",
@@ -15,7 +15,7 @@
15
15
  "README.md"
16
16
  ],
17
17
  "dependencies": {
18
- "abstract-image": "^3.1.3",
18
+ "abstract-image": "^3.2.1",
19
19
  "base64-js": "^1.2.0",
20
20
  "blob-stream": "^0.1.3",
21
21
  "docx": "^6.0.3",
@@ -39,5 +39,5 @@
39
39
  "jszip": "^3.7.1",
40
40
  "pdf2json": "^1.2.3"
41
41
  },
42
- "gitHead": "33ba6d10f674962df4be690f91dc39d1c82a30bb"
42
+ "gitHead": "98081a1566a9b59e3cac59bd1de9ad183a38cdf2"
43
43
  }
@@ -20,6 +20,7 @@ export const test: ExportTestDef = {
20
20
  style: {
21
21
  alignment: undefined,
22
22
  margins: { bottom: 0, left: 0, right: 0, top: 0 },
23
+ position: "relative",
23
24
  textStyle: { type: "TextStyle" },
24
25
  type: "ParagraphStyle",
25
26
  },
@@ -20,6 +20,7 @@ export const test: ExportTestDef = {
20
20
  style: {
21
21
  alignment: undefined,
22
22
  margins: { bottom: 0, left: 0, right: 0, top: 0 },
23
+ position: "relative",
23
24
  textStyle: { type: "TextStyle" },
24
25
  type: "ParagraphStyle",
25
26
  },
@@ -27,6 +27,7 @@ export const test: ExportTestDef = {
27
27
  right: 0,
28
28
  top: 0,
29
29
  },
30
+ position: "relative",
30
31
  textStyle: {
31
32
  type: "TextStyle",
32
33
  },
@@ -37,6 +38,16 @@ export const test: ExportTestDef = {
37
38
  },
38
39
  ],
39
40
  keepTogether: true,
41
+ style: {
42
+ margins: {
43
+ bottom: 0,
44
+ left: 0,
45
+ right: 0,
46
+ top: 0,
47
+ },
48
+ position: "relative",
49
+ type: "GroupStyle",
50
+ },
40
51
  type: "Group",
41
52
  },
42
53
  ],
@@ -25,6 +25,7 @@ export const test: ExportTestDef = {
25
25
  right: 0,
26
26
  top: 0,
27
27
  },
28
+ position: "relative",
28
29
  textStyle: {
29
30
  type: "TextStyle",
30
31
  },
@@ -20,6 +20,7 @@ export const test: ExportTestDef = {
20
20
  style: {
21
21
  alignment: undefined,
22
22
  margins: { bottom: 0, left: 0, right: 0, top: 0 },
23
+ position: "relative",
23
24
  textStyle: { type: "TextStyle" },
24
25
  type: "ParagraphStyle",
25
26
  },
@@ -34,6 +34,7 @@ export const test: ExportTestDef = {
34
34
  right: 0,
35
35
  top: 0,
36
36
  },
37
+ position: "relative",
37
38
  textStyle: {
38
39
  type: "TextStyle",
39
40
  },
@@ -44,6 +45,16 @@ export const test: ExportTestDef = {
44
45
  },
45
46
  ],
46
47
  keepTogether: true,
48
+ style: {
49
+ margins: {
50
+ bottom: 0,
51
+ left: 0,
52
+ right: 0,
53
+ top: 0,
54
+ },
55
+ position: "relative",
56
+ type: "GroupStyle",
57
+ },
47
58
  type: "Group",
48
59
  },
49
60
  ],
@@ -34,6 +34,7 @@ export const test: ExportTestDef = {
34
34
  style: {
35
35
  alignment: undefined,
36
36
  margins: { bottom: 0, left: 0, right: 0, top: 0 },
37
+ position: "relative",
37
38
  textStyle: { type: "TextStyle" },
38
39
  type: "ParagraphStyle",
39
40
  },
@@ -27,6 +27,7 @@ export const test: ExportTestDef = {
27
27
  style: {
28
28
  alignment: undefined,
29
29
  margins: { bottom: 0, left: 0, right: 0, top: 0 },
30
+ position: "relative",
30
31
  textStyle: { type: "TextStyle" },
31
32
  type: "ParagraphStyle",
32
33
  },
@@ -31,6 +31,7 @@ import * as Style from "./styles/style";
31
31
  import * as StyleKey from "./styles/style-key";
32
32
  import * as TableCellStyle from "./styles/table-cell-style";
33
33
  import * as TableStyle from "./styles/table-style";
34
+ import * as GroupStyle from "./styles/group-style";
34
35
  import * as TextStyle from "./styles/text-style";
35
36
  import * as TableCell from "./table/table-cell";
36
37
  import * as TableRow from "./table/table-row";
@@ -39,6 +40,7 @@ import * as Markdown from "./markdown/markdown";
39
40
  import * as Resources from "./resources";
40
41
  import * as Types from "./types";
41
42
  import * as PageBreak from "./section-elements/page-break";
43
+ import * as Position from "./styles/position";
42
44
 
43
45
  export {
44
46
  AbstractDoc,
@@ -82,4 +84,6 @@ export {
82
84
  Resources,
83
85
  Types,
84
86
  PageBreak,
87
+ Position,
88
+ GroupStyle,
85
89
  };
@@ -1,25 +1,28 @@
1
1
  import { Resources } from "../resources";
2
2
  import { SectionElement } from "./section-element";
3
+ import * as GroupStyle from "../styles/group-style";
4
+
5
+ export const sectionType = "Group";
3
6
 
4
7
  export type Group = Resources & {
5
- readonly type: "Group";
8
+ readonly type: typeof sectionType;
6
9
  readonly keepTogether: boolean;
10
+ readonly style: GroupStyle.GroupStyle;
7
11
  readonly children: ReadonlyArray<SectionElement>;
8
12
  };
9
13
 
10
14
  export type GroupProps = Resources & {
11
15
  readonly keepTogether?: boolean;
16
+ readonly style?: GroupStyle.GroupStyle;
12
17
  };
13
18
 
14
- export function create(
15
- props?: GroupProps,
16
- children?: ReadonlyArray<SectionElement>
17
- ): Group {
18
- const { keepTogether = false, ...rest } = props || {};
19
+ export function create(props?: GroupProps, children?: ReadonlyArray<SectionElement>): Group {
20
+ const { keepTogether = false, style = GroupStyle.create(), ...rest } = props || {};
19
21
  return {
20
- type: "Group",
22
+ type: sectionType,
21
23
  keepTogether: keepTogether,
24
+ style,
22
25
  children: children || [],
23
- ...rest
26
+ ...rest,
24
27
  };
25
28
  }
@@ -3,8 +3,10 @@ import { Atom } from "../atoms/atom";
3
3
  import { ParagraphNumbering } from "./paragraph-numbering";
4
4
  import * as ParagraphStyle from "../styles/paragraph-style";
5
5
 
6
+ export const sectionType = "Paragraph";
7
+
6
8
  export type Paragraph = Resources & {
7
- readonly type: "Paragraph";
9
+ readonly type: typeof sectionType;
8
10
  readonly styleName: string;
9
11
  readonly style: ParagraphStyle.ParagraphStyle;
10
12
  readonly numbering: ParagraphNumbering | undefined;
@@ -20,7 +22,7 @@ export type ParagraphProps = Resources & {
20
22
  export function create(props?: ParagraphProps, children?: ReadonlyArray<Atom>): Paragraph {
21
23
  const { styleName = "", style = ParagraphStyle.create(), numbering = undefined, ...rest } = props || {};
22
24
  return {
23
- type: "Paragraph",
25
+ type: sectionType,
24
26
  styleName,
25
27
  style,
26
28
  numbering,
@@ -1,6 +1,17 @@
1
- import { Group } from "./group";
2
- import { Paragraph } from "./paragraph";
3
- import { Table } from "./table";
4
- import { PageBreak } from "./page-break";
1
+ import * as Group from "./group";
2
+ import * as Paragraph from "./paragraph";
3
+ import * as Table from "./table";
4
+ import * as PageBreak from "./page-break";
5
5
 
6
- export type SectionElement = Group | Paragraph | Table | PageBreak;
6
+ export type SectionElement = Group.Group | Paragraph.Paragraph | Table.Table | PageBreak.PageBreak;
7
+ export type SectionElementNoPageBreak = Exclude<SectionElement, PageBreak.PageBreak>;
8
+ export type SectionElementStyle = SectionElementNoPageBreak["style"];
9
+ export const SectionElementTypeNoPagebreak = [Group.sectionType, Paragraph.sectionType, Table.sectionType];
10
+
11
+ export function isSectionElement(value: SectionElement): value is SectionElementNoPageBreak {
12
+ return SectionElementTypeNoPagebreak.includes(value.type);
13
+ }
14
+
15
+ export function getSectionStyle(element: SectionElement): SectionElementStyle | undefined {
16
+ return isSectionElement(element) ? element.style : undefined;
17
+ }
@@ -2,8 +2,10 @@ import { Resources } from "../resources";
2
2
  import * as TableRow from "../table/table-row";
3
3
  import * as TableStyle from "../styles/table-style";
4
4
 
5
+ export const sectionType = "Table";
6
+
5
7
  export type Table = Resources & {
6
- readonly type: "Table";
8
+ readonly type: typeof sectionType;
7
9
  readonly columnWidths: ReadonlyArray<number>;
8
10
  readonly styleName: string;
9
11
  readonly style: TableStyle.TableStyle;
@@ -21,7 +23,7 @@ export type TableProps = Resources & {
21
23
  export function create(props: TableProps, children?: ReadonlyArray<TableRow.TableRow>): Table {
22
24
  const { columnWidths, styleName = "", headerRows, style = TableStyle.create(), ...rest } = props;
23
25
  return {
24
- type: "Table",
26
+ type: sectionType,
25
27
  columnWidths,
26
28
  styleName,
27
29
  style,
@@ -0,0 +1,30 @@
1
+ import * as LayoutFoundation from "../primitives/layout-foundation";
2
+ import * as Position from "./position";
3
+
4
+ export interface GroupStyle {
5
+ readonly type: "GroupStyle";
6
+ readonly position: Position.Position;
7
+ readonly margins: LayoutFoundation.LayoutFoundation;
8
+ }
9
+
10
+ export interface GroupStyleProps {
11
+ readonly position?: Position.Position;
12
+ readonly margins?: LayoutFoundation.LayoutFoundation;
13
+ }
14
+
15
+ export function create(props?: GroupStyleProps): GroupStyle {
16
+ const { margins = LayoutFoundation.create(), position = "relative" } = props || {};
17
+ return {
18
+ type: "GroupStyle",
19
+ margins,
20
+ position,
21
+ };
22
+ }
23
+
24
+ export function overrideWith(overrider: GroupStyle | undefined, toOverride: GroupStyle | undefined): GroupStyle {
25
+ const a: GroupStyleProps = overrider || {};
26
+ const b: GroupStyleProps = toOverride || {};
27
+ return create({
28
+ margins: LayoutFoundation.overrideWith(a.margins, b.margins),
29
+ });
30
+ }
@@ -1,16 +1,19 @@
1
1
  import * as TextStyle from "./text-style";
2
2
  import * as LayoutFoundation from "../primitives/layout-foundation";
3
+ import * as Position from "./position";
3
4
 
4
5
  export type TextAlignment = "Start" | "Center" | "End" | "Justify";
5
6
 
6
7
  export interface ParagraphStyle {
7
8
  readonly type: "ParagraphStyle";
9
+ readonly position: Position.Position;
8
10
  readonly alignment?: TextAlignment;
9
11
  readonly margins: LayoutFoundation.LayoutFoundation;
10
12
  readonly textStyle: TextStyle.TextStyle;
11
13
  }
12
14
 
13
15
  export interface ParagraphStyleProps {
16
+ readonly position?: Position.Position;
14
17
  readonly alignment?: TextAlignment;
15
18
  readonly margins?: LayoutFoundation.LayoutFoundation;
16
19
  readonly textStyle?: TextStyle.TextStyle;
@@ -20,14 +23,15 @@ export function create(props?: ParagraphStyleProps): ParagraphStyle {
20
23
  const {
21
24
  alignment = undefined,
22
25
  margins = LayoutFoundation.create(),
23
- textStyle = TextStyle.create()
24
- } =
25
- props || {};
26
+ position = "relative",
27
+ textStyle = TextStyle.create(),
28
+ } = props || {};
26
29
  return {
27
30
  type: "ParagraphStyle",
28
31
  alignment,
29
32
  margins,
30
- textStyle
33
+ position,
34
+ textStyle,
31
35
  };
32
36
  }
33
37
 
@@ -40,6 +44,6 @@ export function overrideWith(
40
44
  return create({
41
45
  alignment: a.alignment || b.alignment,
42
46
  margins: LayoutFoundation.overrideWith(a.margins, b.margins),
43
- textStyle: TextStyle.overrideWith(a.textStyle, b.textStyle)
47
+ textStyle: TextStyle.overrideWith(a.textStyle, b.textStyle),
44
48
  });
45
49
  }
@@ -0,0 +1,8 @@
1
+ import * as SectionElement from "../section-elements/section-element";
2
+
3
+ export type Position = "absolute" | "relative";
4
+
5
+ export function isPositionAbsolute(element: SectionElement.SectionElement): boolean {
6
+ const elementStyle = SectionElement.getSectionStyle(element);
7
+ return elementStyle?.position === "absolute";
8
+ }