@pdfme/schemas 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (419) hide show
  1. package/README.md +8 -0
  2. package/dist/cjs/__tests__/barcode.test.js +354 -0
  3. package/dist/cjs/__tests__/barcode.test.js.map +1 -0
  4. package/dist/cjs/__tests__/multiVariableText.test.js +102 -0
  5. package/dist/cjs/__tests__/multiVariableText.test.js.map +1 -0
  6. package/dist/cjs/__tests__/text.test.js +419 -0
  7. package/dist/cjs/__tests__/text.test.js.map +1 -0
  8. package/dist/cjs/__tests__/utils.test.js +193 -0
  9. package/dist/cjs/__tests__/utils.test.js.map +1 -0
  10. package/dist/cjs/src/barcodes/constants.js +21 -0
  11. package/dist/cjs/src/barcodes/constants.js.map +1 -0
  12. package/dist/cjs/src/barcodes/helper.js +161 -0
  13. package/dist/cjs/src/barcodes/helper.js.map +1 -0
  14. package/dist/cjs/src/barcodes/index.js +18 -0
  15. package/dist/cjs/src/barcodes/index.js.map +1 -0
  16. package/dist/cjs/src/barcodes/pdfRender.js +29 -0
  17. package/dist/cjs/src/barcodes/pdfRender.js.map +1 -0
  18. package/dist/cjs/src/barcodes/propPanel.js +241 -0
  19. package/dist/cjs/src/barcodes/propPanel.js.map +1 -0
  20. package/dist/cjs/src/barcodes/types.js +3 -0
  21. package/dist/cjs/src/barcodes/types.js.map +1 -0
  22. package/dist/cjs/src/barcodes/uiRender.js +91 -0
  23. package/dist/cjs/src/barcodes/uiRender.js.map +1 -0
  24. package/dist/cjs/src/checkbox/index.js +62 -0
  25. package/dist/cjs/src/checkbox/index.js.map +1 -0
  26. package/dist/cjs/src/constants.js +6 -0
  27. package/dist/cjs/src/constants.js.map +1 -0
  28. package/dist/cjs/src/date/date.js +9 -0
  29. package/dist/cjs/src/date/date.js.map +1 -0
  30. package/dist/cjs/src/date/dateTime.js +9 -0
  31. package/dist/cjs/src/date/dateTime.js.map +1 -0
  32. package/dist/cjs/src/date/helper.js +462 -0
  33. package/dist/cjs/src/date/helper.js.map +1 -0
  34. package/dist/cjs/src/date/time.js +9 -0
  35. package/dist/cjs/src/date/time.js.map +1 -0
  36. package/dist/cjs/src/date/types.js +3 -0
  37. package/dist/cjs/src/date/types.js.map +1 -0
  38. package/dist/cjs/src/graphics/image.js +172 -0
  39. package/dist/cjs/src/graphics/image.js.map +1 -0
  40. package/dist/cjs/src/graphics/imagehelper.js +124 -0
  41. package/dist/cjs/src/graphics/imagehelper.js.map +1 -0
  42. package/dist/cjs/src/graphics/svg.js +109 -0
  43. package/dist/cjs/src/graphics/svg.js.map +1 -0
  44. package/dist/cjs/src/index.js +41 -0
  45. package/dist/cjs/src/index.js.map +1 -0
  46. package/dist/cjs/src/multiVariableText/helper.js +55 -0
  47. package/dist/cjs/src/multiVariableText/helper.js.map +1 -0
  48. package/dist/cjs/src/multiVariableText/index.js +16 -0
  49. package/dist/cjs/src/multiVariableText/index.js.map +1 -0
  50. package/dist/cjs/src/multiVariableText/pdfRender.js +20 -0
  51. package/dist/cjs/src/multiVariableText/pdfRender.js.map +1 -0
  52. package/dist/cjs/src/multiVariableText/propPanel.js +148 -0
  53. package/dist/cjs/src/multiVariableText/propPanel.js.map +1 -0
  54. package/dist/cjs/src/multiVariableText/types.js +3 -0
  55. package/dist/cjs/src/multiVariableText/types.js.map +1 -0
  56. package/dist/cjs/src/multiVariableText/uiRender.js +146 -0
  57. package/dist/cjs/src/multiVariableText/uiRender.js.map +1 -0
  58. package/dist/cjs/src/radioGroup/index.js +93 -0
  59. package/dist/cjs/src/radioGroup/index.js.map +1 -0
  60. package/dist/cjs/src/select/index.js +170 -0
  61. package/dist/cjs/src/select/index.js.map +1 -0
  62. package/dist/cjs/src/shapes/line.js +76 -0
  63. package/dist/cjs/src/shapes/line.js.map +1 -0
  64. package/dist/cjs/src/shapes/rectAndEllipse.js +140 -0
  65. package/dist/cjs/src/shapes/rectAndEllipse.js.map +1 -0
  66. package/dist/cjs/src/tables/cell.js +126 -0
  67. package/dist/cjs/src/tables/cell.js.map +1 -0
  68. package/dist/cjs/src/tables/classes.js +467 -0
  69. package/dist/cjs/src/tables/classes.js.map +1 -0
  70. package/dist/cjs/src/tables/dynamicTemplate.js +66 -0
  71. package/dist/cjs/src/tables/dynamicTemplate.js.map +1 -0
  72. package/dist/cjs/src/tables/helper.js +189 -0
  73. package/dist/cjs/src/tables/helper.js.map +1 -0
  74. package/dist/cjs/src/tables/index.js +15 -0
  75. package/dist/cjs/src/tables/index.js.map +1 -0
  76. package/dist/cjs/src/tables/pdfRender.js +109 -0
  77. package/dist/cjs/src/tables/pdfRender.js.map +1 -0
  78. package/dist/cjs/src/tables/propPanel.js +108 -0
  79. package/dist/cjs/src/tables/propPanel.js.map +1 -0
  80. package/dist/cjs/src/tables/tableHelper.js +200 -0
  81. package/dist/cjs/src/tables/tableHelper.js.map +1 -0
  82. package/dist/cjs/src/tables/types.js +3 -0
  83. package/dist/cjs/src/tables/types.js.map +1 -0
  84. package/dist/cjs/src/tables/uiRender.js +368 -0
  85. package/dist/cjs/src/tables/uiRender.js.map +1 -0
  86. package/dist/cjs/src/text/constants.js +97 -0
  87. package/dist/cjs/src/text/constants.js.map +1 -0
  88. package/dist/cjs/src/text/extraFormatter.js +49 -0
  89. package/dist/cjs/src/text/extraFormatter.js.map +1 -0
  90. package/dist/cjs/src/text/helper.js +498 -0
  91. package/dist/cjs/src/text/helper.js.map +1 -0
  92. package/dist/cjs/src/text/icons/index.js +16 -0
  93. package/dist/cjs/src/text/icons/index.js.map +1 -0
  94. package/dist/cjs/src/text/index.js +15 -0
  95. package/dist/cjs/src/text/index.js.map +1 -0
  96. package/dist/cjs/src/text/pdfRender.js +167 -0
  97. package/dist/cjs/src/text/pdfRender.js.map +1 -0
  98. package/dist/cjs/src/text/propPanel.js +161 -0
  99. package/dist/cjs/src/text/propPanel.js.map +1 -0
  100. package/dist/cjs/src/text/types.js +3 -0
  101. package/dist/cjs/src/text/types.js.map +1 -0
  102. package/dist/cjs/src/text/uiRender.js +224 -0
  103. package/dist/cjs/src/text/uiRender.js.map +1 -0
  104. package/dist/cjs/src/utils.js +230 -0
  105. package/dist/cjs/src/utils.js.map +1 -0
  106. package/dist/esm/__tests__/barcode.test.js +349 -0
  107. package/dist/esm/__tests__/barcode.test.js.map +1 -0
  108. package/dist/esm/__tests__/multiVariableText.test.js +100 -0
  109. package/dist/esm/__tests__/multiVariableText.test.js.map +1 -0
  110. package/dist/esm/__tests__/text.test.js +384 -0
  111. package/dist/esm/__tests__/text.test.js.map +1 -0
  112. package/dist/esm/__tests__/utils.test.js +191 -0
  113. package/dist/esm/__tests__/utils.test.js.map +1 -0
  114. package/dist/esm/src/barcodes/constants.js +18 -0
  115. package/dist/esm/src/barcodes/constants.js.map +1 -0
  116. package/dist/esm/src/barcodes/helper.js +151 -0
  117. package/dist/esm/src/barcodes/helper.js.map +1 -0
  118. package/dist/esm/src/barcodes/index.js +16 -0
  119. package/dist/esm/src/barcodes/index.js.map +1 -0
  120. package/dist/esm/src/barcodes/pdfRender.js +25 -0
  121. package/dist/esm/src/barcodes/pdfRender.js.map +1 -0
  122. package/dist/esm/src/barcodes/propPanel.js +237 -0
  123. package/dist/esm/src/barcodes/propPanel.js.map +1 -0
  124. package/dist/esm/src/barcodes/types.js +2 -0
  125. package/dist/esm/src/barcodes/types.js.map +1 -0
  126. package/dist/esm/src/barcodes/uiRender.js +87 -0
  127. package/dist/esm/src/barcodes/uiRender.js.map +1 -0
  128. package/dist/esm/src/checkbox/index.js +57 -0
  129. package/dist/esm/src/checkbox/index.js.map +1 -0
  130. package/dist/esm/src/constants.js +3 -0
  131. package/dist/esm/src/constants.js.map +1 -0
  132. package/dist/esm/src/date/date.js +7 -0
  133. package/dist/esm/src/date/date.js.map +1 -0
  134. package/dist/esm/src/date/dateTime.js +7 -0
  135. package/dist/esm/src/date/dateTime.js.map +1 -0
  136. package/dist/esm/src/date/helper.js +422 -0
  137. package/dist/esm/src/date/helper.js.map +1 -0
  138. package/dist/esm/src/date/time.js +7 -0
  139. package/dist/esm/src/date/time.js.map +1 -0
  140. package/dist/esm/src/date/types.js +2 -0
  141. package/dist/esm/src/date/types.js.map +1 -0
  142. package/dist/esm/src/graphics/image.js +170 -0
  143. package/dist/esm/src/graphics/image.js.map +1 -0
  144. package/dist/esm/src/graphics/imagehelper.js +120 -0
  145. package/dist/esm/src/graphics/imagehelper.js.map +1 -0
  146. package/dist/esm/src/graphics/svg.js +107 -0
  147. package/dist/esm/src/graphics/svg.js.map +1 -0
  148. package/dist/esm/src/index.js +21 -0
  149. package/dist/esm/src/index.js.map +1 -0
  150. package/dist/esm/src/multiVariableText/helper.js +50 -0
  151. package/dist/esm/src/multiVariableText/helper.js.map +1 -0
  152. package/dist/esm/src/multiVariableText/index.js +14 -0
  153. package/dist/esm/src/multiVariableText/index.js.map +1 -0
  154. package/dist/esm/src/multiVariableText/pdfRender.js +16 -0
  155. package/dist/esm/src/multiVariableText/pdfRender.js.map +1 -0
  156. package/dist/esm/src/multiVariableText/propPanel.js +145 -0
  157. package/dist/esm/src/multiVariableText/propPanel.js.map +1 -0
  158. package/dist/esm/src/multiVariableText/types.js +2 -0
  159. package/dist/esm/src/multiVariableText/types.js.map +1 -0
  160. package/dist/esm/src/multiVariableText/uiRender.js +142 -0
  161. package/dist/esm/src/multiVariableText/uiRender.js.map +1 -0
  162. package/dist/esm/src/radioGroup/index.js +88 -0
  163. package/dist/esm/src/radioGroup/index.js.map +1 -0
  164. package/dist/esm/src/select/index.js +165 -0
  165. package/dist/esm/src/select/index.js.map +1 -0
  166. package/dist/esm/src/shapes/line.js +74 -0
  167. package/dist/esm/src/shapes/line.js.map +1 -0
  168. package/dist/esm/src/shapes/rectAndEllipse.js +137 -0
  169. package/dist/esm/src/shapes/rectAndEllipse.js.map +1 -0
  170. package/dist/esm/src/tables/cell.js +121 -0
  171. package/dist/esm/src/tables/cell.js.map +1 -0
  172. package/dist/esm/src/tables/classes.js +460 -0
  173. package/dist/esm/src/tables/classes.js.map +1 -0
  174. package/dist/esm/src/tables/dynamicTemplate.js +62 -0
  175. package/dist/esm/src/tables/dynamicTemplate.js.map +1 -0
  176. package/dist/esm/src/tables/helper.js +181 -0
  177. package/dist/esm/src/tables/helper.js.map +1 -0
  178. package/dist/esm/src/tables/index.js +13 -0
  179. package/dist/esm/src/tables/index.js.map +1 -0
  180. package/dist/esm/src/tables/pdfRender.js +102 -0
  181. package/dist/esm/src/tables/pdfRender.js.map +1 -0
  182. package/dist/esm/src/tables/propPanel.js +105 -0
  183. package/dist/esm/src/tables/propPanel.js.map +1 -0
  184. package/dist/esm/src/tables/tableHelper.js +197 -0
  185. package/dist/esm/src/tables/tableHelper.js.map +1 -0
  186. package/dist/esm/src/tables/types.js +2 -0
  187. package/dist/esm/src/tables/types.js.map +1 -0
  188. package/dist/esm/src/tables/uiRender.js +361 -0
  189. package/dist/esm/src/tables/uiRender.js.map +1 -0
  190. package/dist/esm/src/text/constants.js +94 -0
  191. package/dist/esm/src/text/constants.js.map +1 -0
  192. package/dist/esm/src/text/extraFormatter.js +45 -0
  193. package/dist/esm/src/text/extraFormatter.js.map +1 -0
  194. package/dist/esm/src/text/helper.js +451 -0
  195. package/dist/esm/src/text/helper.js.map +1 -0
  196. package/dist/esm/src/text/icons/index.js +13 -0
  197. package/dist/esm/src/text/icons/index.js.map +1 -0
  198. package/dist/esm/src/text/index.js +13 -0
  199. package/dist/esm/src/text/index.js.map +1 -0
  200. package/dist/esm/src/text/pdfRender.js +163 -0
  201. package/dist/esm/src/text/pdfRender.js.map +1 -0
  202. package/dist/esm/src/text/propPanel.js +158 -0
  203. package/dist/esm/src/text/propPanel.js.map +1 -0
  204. package/dist/esm/src/text/types.js +2 -0
  205. package/dist/esm/src/text/types.js.map +1 -0
  206. package/dist/esm/src/text/uiRender.js +217 -0
  207. package/dist/esm/src/text/uiRender.js.map +1 -0
  208. package/dist/esm/src/utils.js +218 -0
  209. package/dist/esm/src/utils.js.map +1 -0
  210. package/dist/node/__tests__/barcode.test.js +354 -0
  211. package/dist/node/__tests__/barcode.test.js.map +1 -0
  212. package/dist/node/__tests__/multiVariableText.test.js +102 -0
  213. package/dist/node/__tests__/multiVariableText.test.js.map +1 -0
  214. package/dist/node/__tests__/text.test.js +419 -0
  215. package/dist/node/__tests__/text.test.js.map +1 -0
  216. package/dist/node/__tests__/utils.test.js +193 -0
  217. package/dist/node/__tests__/utils.test.js.map +1 -0
  218. package/dist/node/src/barcodes/constants.js +21 -0
  219. package/dist/node/src/barcodes/constants.js.map +1 -0
  220. package/dist/node/src/barcodes/helper.js +161 -0
  221. package/dist/node/src/barcodes/helper.js.map +1 -0
  222. package/dist/node/src/barcodes/index.js +18 -0
  223. package/dist/node/src/barcodes/index.js.map +1 -0
  224. package/dist/node/src/barcodes/pdfRender.js +29 -0
  225. package/dist/node/src/barcodes/pdfRender.js.map +1 -0
  226. package/dist/node/src/barcodes/propPanel.js +241 -0
  227. package/dist/node/src/barcodes/propPanel.js.map +1 -0
  228. package/dist/node/src/barcodes/types.js +3 -0
  229. package/dist/node/src/barcodes/types.js.map +1 -0
  230. package/dist/node/src/barcodes/uiRender.js +91 -0
  231. package/dist/node/src/barcodes/uiRender.js.map +1 -0
  232. package/dist/node/src/checkbox/index.js +62 -0
  233. package/dist/node/src/checkbox/index.js.map +1 -0
  234. package/dist/node/src/constants.js +6 -0
  235. package/dist/node/src/constants.js.map +1 -0
  236. package/dist/node/src/date/date.js +9 -0
  237. package/dist/node/src/date/date.js.map +1 -0
  238. package/dist/node/src/date/dateTime.js +9 -0
  239. package/dist/node/src/date/dateTime.js.map +1 -0
  240. package/dist/node/src/date/helper.js +462 -0
  241. package/dist/node/src/date/helper.js.map +1 -0
  242. package/dist/node/src/date/time.js +9 -0
  243. package/dist/node/src/date/time.js.map +1 -0
  244. package/dist/node/src/date/types.js +3 -0
  245. package/dist/node/src/date/types.js.map +1 -0
  246. package/dist/node/src/graphics/image.js +172 -0
  247. package/dist/node/src/graphics/image.js.map +1 -0
  248. package/dist/node/src/graphics/imagehelper.js +124 -0
  249. package/dist/node/src/graphics/imagehelper.js.map +1 -0
  250. package/dist/node/src/graphics/svg.js +109 -0
  251. package/dist/node/src/graphics/svg.js.map +1 -0
  252. package/dist/node/src/index.js +41 -0
  253. package/dist/node/src/index.js.map +1 -0
  254. package/dist/node/src/multiVariableText/helper.js +55 -0
  255. package/dist/node/src/multiVariableText/helper.js.map +1 -0
  256. package/dist/node/src/multiVariableText/index.js +16 -0
  257. package/dist/node/src/multiVariableText/index.js.map +1 -0
  258. package/dist/node/src/multiVariableText/pdfRender.js +20 -0
  259. package/dist/node/src/multiVariableText/pdfRender.js.map +1 -0
  260. package/dist/node/src/multiVariableText/propPanel.js +148 -0
  261. package/dist/node/src/multiVariableText/propPanel.js.map +1 -0
  262. package/dist/node/src/multiVariableText/types.js +3 -0
  263. package/dist/node/src/multiVariableText/types.js.map +1 -0
  264. package/dist/node/src/multiVariableText/uiRender.js +146 -0
  265. package/dist/node/src/multiVariableText/uiRender.js.map +1 -0
  266. package/dist/node/src/radioGroup/index.js +93 -0
  267. package/dist/node/src/radioGroup/index.js.map +1 -0
  268. package/dist/node/src/select/index.js +170 -0
  269. package/dist/node/src/select/index.js.map +1 -0
  270. package/dist/node/src/shapes/line.js +76 -0
  271. package/dist/node/src/shapes/line.js.map +1 -0
  272. package/dist/node/src/shapes/rectAndEllipse.js +140 -0
  273. package/dist/node/src/shapes/rectAndEllipse.js.map +1 -0
  274. package/dist/node/src/tables/cell.js +126 -0
  275. package/dist/node/src/tables/cell.js.map +1 -0
  276. package/dist/node/src/tables/classes.js +467 -0
  277. package/dist/node/src/tables/classes.js.map +1 -0
  278. package/dist/node/src/tables/dynamicTemplate.js +66 -0
  279. package/dist/node/src/tables/dynamicTemplate.js.map +1 -0
  280. package/dist/node/src/tables/helper.js +189 -0
  281. package/dist/node/src/tables/helper.js.map +1 -0
  282. package/dist/node/src/tables/index.js +15 -0
  283. package/dist/node/src/tables/index.js.map +1 -0
  284. package/dist/node/src/tables/pdfRender.js +109 -0
  285. package/dist/node/src/tables/pdfRender.js.map +1 -0
  286. package/dist/node/src/tables/propPanel.js +108 -0
  287. package/dist/node/src/tables/propPanel.js.map +1 -0
  288. package/dist/node/src/tables/tableHelper.js +200 -0
  289. package/dist/node/src/tables/tableHelper.js.map +1 -0
  290. package/dist/node/src/tables/types.js +3 -0
  291. package/dist/node/src/tables/types.js.map +1 -0
  292. package/dist/node/src/tables/uiRender.js +368 -0
  293. package/dist/node/src/tables/uiRender.js.map +1 -0
  294. package/dist/node/src/text/constants.js +97 -0
  295. package/dist/node/src/text/constants.js.map +1 -0
  296. package/dist/node/src/text/extraFormatter.js +49 -0
  297. package/dist/node/src/text/extraFormatter.js.map +1 -0
  298. package/dist/node/src/text/helper.js +498 -0
  299. package/dist/node/src/text/helper.js.map +1 -0
  300. package/dist/node/src/text/icons/index.js +16 -0
  301. package/dist/node/src/text/icons/index.js.map +1 -0
  302. package/dist/node/src/text/index.js +15 -0
  303. package/dist/node/src/text/index.js.map +1 -0
  304. package/dist/node/src/text/pdfRender.js +167 -0
  305. package/dist/node/src/text/pdfRender.js.map +1 -0
  306. package/dist/node/src/text/propPanel.js +161 -0
  307. package/dist/node/src/text/propPanel.js.map +1 -0
  308. package/dist/node/src/text/types.js +3 -0
  309. package/dist/node/src/text/types.js.map +1 -0
  310. package/dist/node/src/text/uiRender.js +224 -0
  311. package/dist/node/src/text/uiRender.js.map +1 -0
  312. package/dist/node/src/utils.js +230 -0
  313. package/dist/node/src/utils.js.map +1 -0
  314. package/dist/types/__tests__/barcode.test.d.ts +1 -0
  315. package/dist/types/__tests__/multiVariableText.test.d.ts +1 -0
  316. package/dist/types/__tests__/text.test.d.ts +1 -0
  317. package/dist/types/__tests__/utils.test.d.ts +1 -0
  318. package/dist/types/src/barcodes/constants.d.ts +4 -0
  319. package/dist/types/src/barcodes/helper.d.ts +21 -0
  320. package/dist/types/src/barcodes/index.d.ts +4 -0
  321. package/dist/types/src/barcodes/pdfRender.d.ts +3 -0
  322. package/dist/types/src/barcodes/propPanel.d.ts +3 -0
  323. package/dist/types/src/barcodes/types.d.ts +10 -0
  324. package/dist/types/src/barcodes/uiRender.d.ts +3 -0
  325. package/dist/types/src/checkbox/index.d.ts +6 -0
  326. package/dist/types/src/constants.d.ts +2 -0
  327. package/dist/types/src/date/date.d.ts +2 -0
  328. package/dist/types/src/date/dateTime.d.ts +2 -0
  329. package/dist/types/src/date/helper.d.ts +8 -0
  330. package/dist/types/src/date/time.d.ts +2 -0
  331. package/dist/types/src/date/types.d.ts +17 -0
  332. package/dist/types/src/graphics/image.d.ts +5 -0
  333. package/dist/types/src/graphics/imagehelper.d.ts +4 -0
  334. package/dist/types/src/graphics/svg.d.ts +4 -0
  335. package/dist/types/src/index.d.ts +19 -0
  336. package/dist/types/src/multiVariableText/helper.d.ts +3 -0
  337. package/dist/types/src/multiVariableText/index.d.ts +4 -0
  338. package/dist/types/src/multiVariableText/pdfRender.d.ts +3 -0
  339. package/dist/types/src/multiVariableText/propPanel.d.ts +3 -0
  340. package/dist/types/src/multiVariableText/types.d.ts +5 -0
  341. package/dist/types/src/multiVariableText/uiRender.d.ts +3 -0
  342. package/dist/types/src/radioGroup/index.d.ts +7 -0
  343. package/dist/types/src/select/index.d.ts +7 -0
  344. package/dist/types/src/shapes/line.d.ts +6 -0
  345. package/dist/types/src/shapes/rectAndEllipse.d.ts +175 -0
  346. package/dist/types/src/tables/cell.d.ts +4 -0
  347. package/dist/types/src/tables/classes.d.ts +69 -0
  348. package/dist/types/src/tables/dynamicTemplate.d.ts +7 -0
  349. package/dist/types/src/tables/helper.d.ts +265 -0
  350. package/dist/types/src/tables/index.d.ts +4 -0
  351. package/dist/types/src/tables/pdfRender.d.ts +3 -0
  352. package/dist/types/src/tables/propPanel.d.ts +3 -0
  353. package/dist/types/src/tables/tableHelper.d.ts +10 -0
  354. package/dist/types/src/tables/types.d.ts +88 -0
  355. package/dist/types/src/tables/uiRender.d.ts +3 -0
  356. package/dist/types/src/text/constants.d.ts +23 -0
  357. package/dist/types/src/text/extraFormatter.d.ts +25 -0
  358. package/dist/types/src/text/helper.d.ts +39 -0
  359. package/dist/types/src/text/icons/index.d.ts +9 -0
  360. package/dist/types/src/text/index.d.ts +4 -0
  361. package/dist/types/src/text/pdfRender.d.ts +3 -0
  362. package/dist/types/src/text/propPanel.d.ts +3 -0
  363. package/dist/types/src/text/types.d.ts +28 -0
  364. package/dist/types/src/text/uiRender.d.ts +11 -0
  365. package/dist/types/src/utils.d.ts +40 -0
  366. package/eslint.config.mjs +22 -0
  367. package/package.json +97 -0
  368. package/src/barcodes/constants.ts +20 -0
  369. package/src/barcodes/helper.ts +187 -0
  370. package/src/barcodes/index.ts +23 -0
  371. package/src/barcodes/pdfRender.ts +37 -0
  372. package/src/barcodes/propPanel.ts +249 -0
  373. package/src/barcodes/types.ts +12 -0
  374. package/src/barcodes/uiRender.ts +94 -0
  375. package/src/checkbox/index.ts +70 -0
  376. package/src/constants.ts +2 -0
  377. package/src/date/date.ts +9 -0
  378. package/src/date/dateTime.ts +9 -0
  379. package/src/date/helper.ts +496 -0
  380. package/src/date/time.ts +9 -0
  381. package/src/date/types.ts +19 -0
  382. package/src/graphics/image.ts +201 -0
  383. package/src/graphics/imagehelper.ts +156 -0
  384. package/src/graphics/svg.ts +118 -0
  385. package/src/index.ts +39 -0
  386. package/src/multiVariableText/helper.ts +65 -0
  387. package/src/multiVariableText/index.ts +16 -0
  388. package/src/multiVariableText/pdfRender.ts +21 -0
  389. package/src/multiVariableText/propPanel.ts +160 -0
  390. package/src/multiVariableText/types.ts +6 -0
  391. package/src/multiVariableText/uiRender.ts +170 -0
  392. package/src/radioGroup/index.ts +115 -0
  393. package/src/select/index.ts +204 -0
  394. package/src/shapes/line.ts +94 -0
  395. package/src/shapes/rectAndEllipse.ts +152 -0
  396. package/src/tables/cell.ts +152 -0
  397. package/src/tables/classes.ts +402 -0
  398. package/src/tables/dynamicTemplate.ts +88 -0
  399. package/src/tables/helper.ts +216 -0
  400. package/src/tables/index.ts +15 -0
  401. package/src/tables/pdfRender.ts +144 -0
  402. package/src/tables/propPanel.ts +111 -0
  403. package/src/tables/tableHelper.ts +288 -0
  404. package/src/tables/types.ts +87 -0
  405. package/src/tables/uiRender.ts +436 -0
  406. package/src/text/constants.ts +104 -0
  407. package/src/text/extraFormatter.ts +83 -0
  408. package/src/text/helper.ts +550 -0
  409. package/src/text/icons/index.ts +30 -0
  410. package/src/text/index.ts +16 -0
  411. package/src/text/pdfRender.ts +239 -0
  412. package/src/text/propPanel.ts +184 -0
  413. package/src/text/types.ts +30 -0
  414. package/src/text/uiRender.ts +288 -0
  415. package/src/utils.ts +281 -0
  416. package/tsconfig.cjs.json +10 -0
  417. package/tsconfig.esm.json +11 -0
  418. package/tsconfig.json +6 -0
  419. package/tsconfig.node.json +11 -0
@@ -0,0 +1,15 @@
1
+ import type { Plugin } from '@pdfme/common';
2
+ import type { TableSchema } from './types.js';
3
+ import { pdfRender } from './pdfRender.js';
4
+ import { uiRender } from './uiRender.js';
5
+ import { propPanel } from './propPanel.js';
6
+ import { Table } from 'lucide';
7
+ import { createSvgStr } from '../utils.js';
8
+
9
+ const tableSchema: Plugin<TableSchema> = {
10
+ pdf: pdfRender,
11
+ ui: uiRender,
12
+ propPanel,
13
+ icon: createSvgStr(Table),
14
+ };
15
+ export default tableSchema;
@@ -0,0 +1,144 @@
1
+ import type { TableSchema } from './types.js';
2
+ import type { PDFRenderProps, Schema, BasePdf, CommonOptions } from '@pdfme/common';
3
+ import { Cell, Table, Row, Column } from './classes.js';
4
+ import { rectangle } from '../shapes/rectAndEllipse.js';
5
+ import cell from './cell.js';
6
+ import { getBodyWithRange } from './helper.js';
7
+ import { createSingleTable } from './tableHelper.js';
8
+
9
+ // Define the CreateTableArgs interface locally since it's not exported from tableHelper.js
10
+ interface CreateTableArgs {
11
+ schema: Schema;
12
+ basePdf: BasePdf;
13
+ options: CommonOptions;
14
+ _cache: Map<string | number, unknown>;
15
+ }
16
+
17
+ type Pos = { x: number; y: number };
18
+
19
+ const rectanglePdfRender = rectangle.pdf;
20
+ const cellPdfRender = cell.pdf;
21
+
22
+ async function drawCell(arg: PDFRenderProps<TableSchema>, cell: Cell) {
23
+ await cellPdfRender({
24
+ ...arg,
25
+ value: cell.raw,
26
+ schema: {
27
+ name: '',
28
+ type: 'cell',
29
+ position: { x: cell.x, y: cell.y },
30
+ width: cell.width,
31
+ height: cell.height,
32
+ fontName: cell.styles.fontName,
33
+ alignment: cell.styles.alignment,
34
+ verticalAlignment: cell.styles.verticalAlignment,
35
+ fontSize: cell.styles.fontSize,
36
+ lineHeight: cell.styles.lineHeight,
37
+ characterSpacing: cell.styles.characterSpacing,
38
+ backgroundColor: cell.styles.backgroundColor,
39
+ fontColor: cell.styles.textColor,
40
+ borderColor: cell.styles.lineColor,
41
+ borderWidth: cell.styles.lineWidth,
42
+ padding: cell.styles.cellPadding,
43
+ },
44
+ });
45
+ }
46
+
47
+ async function drawRow(
48
+ arg: PDFRenderProps<TableSchema>,
49
+ table: Table,
50
+ row: Row,
51
+ cursor: Pos,
52
+ columns: Column[],
53
+ ) {
54
+ cursor.x = table.settings.margin.left;
55
+ for (const column of columns) {
56
+ const cell = row.cells[column.index];
57
+ if (!cell) {
58
+ cursor.x += column.width;
59
+ continue;
60
+ }
61
+
62
+ cell.x = cursor.x;
63
+ cell.y = cursor.y;
64
+
65
+ await drawCell(arg, cell);
66
+
67
+ cursor.x += column.width;
68
+ }
69
+ cursor.y += row.height;
70
+ }
71
+
72
+ async function drawTableBorder(
73
+ arg: PDFRenderProps<TableSchema>,
74
+ table: Table,
75
+ startPos: Pos,
76
+ cursor: Pos,
77
+ ) {
78
+ const lineWidth = table.settings.tableLineWidth;
79
+ const lineColor = table.settings.tableLineColor;
80
+ if (!lineWidth || !lineColor) return;
81
+ await rectanglePdfRender({
82
+ ...arg,
83
+ schema: {
84
+ name: '',
85
+ type: 'rectangle',
86
+ borderWidth: lineWidth,
87
+ borderColor: lineColor,
88
+ color: '',
89
+ position: { x: startPos.x, y: startPos.y },
90
+ width: table.getWidth(),
91
+ height: cursor.y - startPos.y,
92
+ readOnly: true,
93
+ },
94
+ });
95
+ }
96
+
97
+ async function drawTable(arg: PDFRenderProps<TableSchema>, table: Table): Promise<void> {
98
+ const settings = table.settings;
99
+ const startY = settings.startY;
100
+ const margin = settings.margin;
101
+ const cursor = { x: margin.left, y: startY };
102
+
103
+ const startPos = Object.assign({}, cursor);
104
+
105
+ if (settings.showHead) {
106
+ for (const row of table.head) {
107
+ await drawRow(arg, table, row, cursor, table.columns);
108
+ }
109
+ }
110
+
111
+ for (const row of table.body) {
112
+ await drawRow(arg, table, row, cursor, table.columns);
113
+ }
114
+
115
+ await drawTableBorder(arg, table, startPos, cursor);
116
+ }
117
+
118
+ export const pdfRender = async (arg: PDFRenderProps<TableSchema>) => {
119
+ const { value, schema, basePdf, options, _cache } = arg;
120
+
121
+ const body = getBodyWithRange(
122
+ typeof value !== 'string' ? JSON.stringify(value || '[]') : value,
123
+ schema.__bodyRange,
124
+ );
125
+
126
+ // Create a properly typed CreateTableArgs object
127
+ const createTableArgs: CreateTableArgs = {
128
+ schema,
129
+ basePdf,
130
+ options,
131
+ _cache,
132
+ };
133
+
134
+ // Ensure body is properly typed before passing to createSingleTable
135
+ // Ensure body is properly typed as string[][] before passing to createSingleTable
136
+ const typedBody: string[][] = Array.isArray(body)
137
+ ? body.map((row) => (Array.isArray(row) ? row.map((cell) => String(cell)) : []))
138
+ : [];
139
+ const table = await createSingleTable(typedBody, createTableArgs);
140
+
141
+ // Use the original arg directly since drawTable expects PDFRenderProps<TableSchema>
142
+ // which is the same type as our arg parameter
143
+ await drawTable(arg, table);
144
+ };
@@ -0,0 +1,111 @@
1
+ import type { PropPanel } from '@pdfme/common';
2
+ import type { TableSchema } from './types.js';
3
+ import { getFallbackFontName, DEFAULT_FONT_NAME } from '@pdfme/common';
4
+ import {
5
+ getDefaultCellStyles,
6
+ getCellPropPanelSchema,
7
+ getColumnStylesPropPanelSchema,
8
+ } from './helper.js';
9
+ import { HEX_COLOR_PATTERN } from '../constants.js';
10
+
11
+ export const propPanel: PropPanel<TableSchema> = {
12
+ schema: ({ activeSchema, options, i18n }) => {
13
+ // @ts-expect-error Type casting is necessary here as the activeSchema type is generic
14
+ const tableSchema = activeSchema as TableSchema;
15
+ const head = tableSchema.head || [];
16
+ const showHead = tableSchema.showHead || false;
17
+ const font = options.font || { [DEFAULT_FONT_NAME]: { data: '', fallback: true } };
18
+ const fontNames = Object.keys(font);
19
+ const fallbackFontName = getFallbackFontName(font);
20
+ return {
21
+ showHead: {
22
+ title: i18n('schemas.table.showHead'),
23
+ type: 'boolean',
24
+ widget: 'checkbox',
25
+ span: 12,
26
+ },
27
+ repeatHead: {
28
+ title: i18n('schemas.table.repeatHead'),
29
+ type: 'boolean',
30
+ widget: 'checkbox',
31
+ span: 12,
32
+ },
33
+ '-------': { type: 'void', widget: 'Divider' },
34
+ tableStyles: {
35
+ title: i18n('schemas.table.tableStyle'),
36
+ type: 'object',
37
+ widget: 'Card',
38
+ span: 24,
39
+ properties: {
40
+ borderWidth: {
41
+ title: i18n('schemas.borderWidth'),
42
+ type: 'number',
43
+ widget: 'inputNumber',
44
+ props: { min: 0, step: 0.1 },
45
+ step: 1,
46
+ },
47
+ borderColor: {
48
+ title: i18n('schemas.borderColor'),
49
+ type: 'string',
50
+ widget: 'color',
51
+ props: {
52
+ disabledAlpha: true,
53
+ },
54
+ rules: [{ pattern: HEX_COLOR_PATTERN, message: i18n('validation.hexColor') }],
55
+ },
56
+ },
57
+ },
58
+ headStyles: {
59
+ hidden: !showHead,
60
+ title: i18n('schemas.table.headStyle'),
61
+ type: 'object',
62
+ widget: 'Card',
63
+ span: 24,
64
+ properties: getCellPropPanelSchema({ i18n, fallbackFontName, fontNames }),
65
+ },
66
+ bodyStyles: {
67
+ title: i18n('schemas.table.bodyStyle'),
68
+ type: 'object',
69
+ widget: 'Card',
70
+ span: 24,
71
+ properties: getCellPropPanelSchema({ i18n, fallbackFontName, fontNames, isBody: true }),
72
+ },
73
+ columnStyles: {
74
+ title: i18n('schemas.table.columnStyle'),
75
+ type: 'object',
76
+ widget: 'Card',
77
+ span: 24,
78
+ properties: getColumnStylesPropPanelSchema({ head, i18n }),
79
+ },
80
+ };
81
+ },
82
+ defaultSchema: {
83
+ name: '',
84
+ type: 'table',
85
+ position: { x: 0, y: 0 },
86
+ width: 150,
87
+ height: 20,
88
+ content: JSON.stringify([
89
+ ['Alice', 'New York', 'Alice is a freelance web designer and developer'],
90
+ ['Bob', 'Paris', 'Bob is a freelance illustrator and graphic designer'],
91
+ ]),
92
+ showHead: true,
93
+ repeatHead: false,
94
+ head: ['Name', 'City', 'Description'],
95
+ headWidthPercentages: [30, 30, 40],
96
+ tableStyles: {
97
+ borderColor: '#000000',
98
+ borderWidth: 0.3,
99
+ },
100
+ headStyles: Object.assign(getDefaultCellStyles(), {
101
+ fontColor: '#ffffff',
102
+ backgroundColor: '#2980ba',
103
+ borderColor: '',
104
+ borderWidth: { top: 0, right: 0, bottom: 0, left: 0 },
105
+ }),
106
+ bodyStyles: Object.assign(getDefaultCellStyles(), {
107
+ alternateBackgroundColor: '#f5f5f5',
108
+ }),
109
+ columnStyles: {},
110
+ },
111
+ };
@@ -0,0 +1,288 @@
1
+ import {
2
+ Schema,
3
+ isBlankPdf,
4
+ BasePdf,
5
+ CommonOptions,
6
+ getDefaultFont,
7
+ getFallbackFontName,
8
+ cloneDeep,
9
+ } from '@pdfme/common';
10
+ import type { Font as FontKitFont } from 'fontkit';
11
+ import type {
12
+ TableSchema,
13
+ CellStyle,
14
+ Styles,
15
+ Spacing,
16
+ TableInput,
17
+ StylesProps,
18
+ Section,
19
+ } from './types.js';
20
+ import { Cell, Column, Row, Table } from './classes.js';
21
+
22
+ type StyleProp = 'styles' | 'headStyles' | 'bodyStyles' | 'alternateRowStyles' | 'columnStyles';
23
+
24
+ interface CreateTableArgs {
25
+ schema: Schema;
26
+ basePdf: BasePdf;
27
+ options: CommonOptions;
28
+ _cache: Map<string | number, unknown>;
29
+ }
30
+
31
+ interface UserOptions {
32
+ startY: number;
33
+ tableWidth: number;
34
+ margin: Spacing;
35
+ showHead: boolean;
36
+ tableLineWidth?: number;
37
+ tableLineColor?: string;
38
+ head?: string[][];
39
+ body?: string[][];
40
+
41
+ styles?: Partial<Styles>;
42
+ bodyStyles?: Partial<Styles>;
43
+ headStyles?: Partial<Styles>;
44
+ alternateRowStyles?: Partial<Styles>;
45
+ columnStyles?: {
46
+ [key: string]: Partial<Styles>;
47
+ };
48
+ }
49
+
50
+ function parseSection(
51
+ sectionName: Section,
52
+ sectionRows: string[][],
53
+ columns: Column[],
54
+ styleProps: StylesProps,
55
+ fallbackFontName: string,
56
+ ): Row[] {
57
+ const rowSpansLeftForColumn: { [key: string]: { left: number; times: number } } = {};
58
+ const result = sectionRows.map((rawRow, rowIndex) => {
59
+ let skippedRowForRowSpans = 0;
60
+ const cells: { [key: string]: Cell } = {};
61
+
62
+ let colSpansAdded = 0;
63
+ let columnSpansLeft = 0;
64
+ for (const column of columns) {
65
+ if (
66
+ rowSpansLeftForColumn[column.index] == null ||
67
+ rowSpansLeftForColumn[column.index].left === 0
68
+ ) {
69
+ if (columnSpansLeft === 0) {
70
+ let rawCell;
71
+ if (Array.isArray(rawRow)) {
72
+ rawCell = rawRow[column.index - colSpansAdded - skippedRowForRowSpans];
73
+ } else {
74
+ rawCell = rawRow[column.index];
75
+ }
76
+ const styles = cellStyles(sectionName, column, rowIndex, styleProps, fallbackFontName);
77
+ const cell = new Cell(rawCell, styles, sectionName);
78
+ cells[column.index] = cell;
79
+
80
+ columnSpansLeft = 0;
81
+ rowSpansLeftForColumn[column.index] = {
82
+ left: 0,
83
+ times: columnSpansLeft,
84
+ };
85
+ } else {
86
+ columnSpansLeft--;
87
+ colSpansAdded++;
88
+ }
89
+ } else {
90
+ rowSpansLeftForColumn[column.index].left--;
91
+ columnSpansLeft = rowSpansLeftForColumn[column.index].times;
92
+ skippedRowForRowSpans++;
93
+ }
94
+ }
95
+ return new Row(rawRow, rowIndex, sectionName, cells);
96
+ });
97
+ return result;
98
+ }
99
+
100
+ function parseContent4Table(input: TableInput, fallbackFontName: string) {
101
+ const content = input.content;
102
+ const columns = content.columns.map((index) => new Column(index));
103
+ const styles = input.styles;
104
+ return {
105
+ columns,
106
+ head: parseSection('head', content.head, columns, styles, fallbackFontName),
107
+ body: parseSection('body', content.body, columns, styles, fallbackFontName),
108
+ };
109
+ }
110
+
111
+ function cellStyles(
112
+ sectionName: Section,
113
+ column: Column,
114
+ rowIndex: number,
115
+ styles: StylesProps,
116
+ fallbackFontName: string,
117
+ ) {
118
+ let sectionStyles;
119
+ if (sectionName === 'head') {
120
+ sectionStyles = styles.headStyles;
121
+ } else if (sectionName === 'body') {
122
+ sectionStyles = styles.bodyStyles;
123
+ }
124
+ const otherStyles = Object.assign({}, styles.styles, sectionStyles);
125
+
126
+ const colStyles = styles.columnStyles[column.index] || styles.columnStyles[column.index] || {};
127
+
128
+ const rowStyles =
129
+ sectionName === 'body' && rowIndex % 2 === 0
130
+ ? Object.assign({}, styles.alternateRowStyles)
131
+ : {};
132
+
133
+ const defaultStyle = {
134
+ fontName: fallbackFontName,
135
+ backgroundColor: '',
136
+ textColor: '#000000',
137
+ lineHeight: 1,
138
+ characterSpacing: 0,
139
+ alignment: 'left',
140
+ verticalAlignment: 'middle',
141
+ fontSize: 10,
142
+ cellPadding: 5,
143
+ lineColor: '#000000',
144
+ lineWidth: 0,
145
+ minCellHeight: 0,
146
+ minCellWidth: 0,
147
+ };
148
+ return Object.assign(defaultStyle, otherStyles, rowStyles, colStyles) as Styles;
149
+ }
150
+
151
+ function mapCellStyle(style: CellStyle): Partial<Styles> {
152
+ return {
153
+ fontName: style.fontName,
154
+ alignment: style.alignment,
155
+ verticalAlignment: style.verticalAlignment,
156
+ fontSize: style.fontSize,
157
+ lineHeight: style.lineHeight,
158
+ characterSpacing: style.characterSpacing,
159
+ backgroundColor: style.backgroundColor,
160
+ // ---
161
+ textColor: style.fontColor,
162
+ lineColor: style.borderColor,
163
+ lineWidth: style.borderWidth,
164
+ cellPadding: style.padding,
165
+ };
166
+ }
167
+
168
+ function getTableOptions(schema: TableSchema, body: string[][]): UserOptions {
169
+ const columnStylesWidth = schema.headWidthPercentages.reduce(
170
+ (acc, cur, i) => ({ ...acc, [i]: { cellWidth: schema.width * (cur / 100) } }),
171
+ {} as Record<number, Partial<Styles>>,
172
+ );
173
+
174
+ const columnStylesAlignment = Object.entries(schema.columnStyles.alignment || {}).reduce(
175
+ (acc, [key, value]) => ({ ...acc, [key]: { alignment: value } }),
176
+ {} as Record<number, Partial<Styles>>,
177
+ );
178
+
179
+ const allKeys = new Set([
180
+ ...Object.keys(columnStylesWidth).map(Number),
181
+ ...Object.keys(columnStylesAlignment).map(Number),
182
+ ]);
183
+ const columnStyles = Array.from(allKeys).reduce(
184
+ (acc, key) => {
185
+ const widthStyle = columnStylesWidth[key] || {};
186
+ const alignmentStyle = columnStylesAlignment[key] || {};
187
+ return { ...acc, [key]: { ...widthStyle, ...alignmentStyle } };
188
+ },
189
+ {} as Record<number, Partial<Styles>>,
190
+ );
191
+
192
+ return {
193
+ head: [schema.head],
194
+ body,
195
+ showHead: schema.showHead,
196
+ startY: schema.position.y,
197
+ tableWidth: schema.width,
198
+ tableLineColor: schema.tableStyles.borderColor,
199
+ tableLineWidth: schema.tableStyles.borderWidth,
200
+ headStyles: mapCellStyle(schema.headStyles),
201
+ bodyStyles: mapCellStyle(schema.bodyStyles),
202
+ alternateRowStyles: { backgroundColor: schema.bodyStyles.alternateBackgroundColor },
203
+ columnStyles,
204
+ margin: { top: 0, right: 0, left: schema.position.x, bottom: 0 },
205
+ };
206
+ }
207
+
208
+ function parseStyles(cInput: UserOptions) {
209
+ const styleOptions: StylesProps = {
210
+ styles: {},
211
+ headStyles: {},
212
+ bodyStyles: {},
213
+ alternateRowStyles: {},
214
+ columnStyles: {},
215
+ };
216
+ for (const prop of Object.keys(styleOptions) as StyleProp[]) {
217
+ if (prop === 'columnStyles') {
218
+ const current = cInput[prop];
219
+ styleOptions.columnStyles = Object.assign({}, current);
220
+ } else {
221
+ const allOptions = [cInput];
222
+ const styles = allOptions.map((opts) => opts[prop] || {});
223
+ styleOptions[prop] = Object.assign({}, styles[0], styles[1], styles[2]);
224
+ }
225
+ }
226
+ return styleOptions;
227
+ }
228
+
229
+ function parseContent4Input(options: UserOptions) {
230
+ const head = options.head || [];
231
+ const body = options.body || [];
232
+ const columns = (head[0] || body[0] || []).map((_, index) => index);
233
+ return { columns, head, body };
234
+ }
235
+
236
+ function parseInput(schema: TableSchema, body: string[][]): TableInput {
237
+ const options = getTableOptions(schema, body);
238
+ const styles = parseStyles(options);
239
+ const settings = {
240
+ startY: options.startY,
241
+ margin: options.margin,
242
+ tableWidth: options.tableWidth,
243
+ showHead: options.showHead,
244
+ tableLineWidth: options.tableLineWidth ?? 0,
245
+ tableLineColor: options.tableLineColor ?? '',
246
+ };
247
+
248
+ const content = parseContent4Input(options);
249
+
250
+ return { content, styles, settings };
251
+ }
252
+
253
+ export function createSingleTable(body: string[][], args: CreateTableArgs) {
254
+ const { options, _cache, basePdf } = args;
255
+ if (!isBlankPdf(basePdf)) {
256
+ console.warn(
257
+ '[@pdfme/schema/table]' +
258
+ 'When specifying a custom PDF for basePdf, ' +
259
+ 'you cannot use features such as page breaks or re-layout of other elements.' +
260
+ 'To utilize these features, please define basePdf as follows:\n' +
261
+ '{ width: number; height: number; padding: [number, number, number, number]; }',
262
+ );
263
+ }
264
+
265
+ const schema = cloneDeep(args.schema) as TableSchema;
266
+ const { start } = schema.__bodyRange || { start: 0 };
267
+ if (start % 2 === 1) {
268
+ const alternateBackgroundColor = schema.bodyStyles.alternateBackgroundColor;
269
+ schema.bodyStyles.alternateBackgroundColor = schema.bodyStyles.backgroundColor;
270
+ schema.bodyStyles.backgroundColor = alternateBackgroundColor;
271
+ }
272
+ schema.showHead = schema.showHead === false ? false : (!schema.__isSplit || schema.repeatHead === true);
273
+
274
+ const input = parseInput(schema, body);
275
+
276
+ const font = options.font || getDefaultFont();
277
+
278
+ const fallbackFontName = getFallbackFontName(font);
279
+
280
+ const content = parseContent4Table(input, fallbackFontName);
281
+
282
+ return Table.create({
283
+ input,
284
+ content,
285
+ font,
286
+ _cache: _cache as unknown as Map<string | number, FontKitFont>,
287
+ });
288
+ }
@@ -0,0 +1,87 @@
1
+ import type { ALIGNMENT, VERTICAL_ALIGNMENT } from '../text/types.js';
2
+ import type { Schema } from '@pdfme/common';
3
+
4
+ export type Spacing = { top: number; right: number; bottom: number; left: number };
5
+ type BorderInsets = Spacing;
6
+ type BoxDimensions = Spacing;
7
+
8
+ export interface CellStyle {
9
+ fontName?: string;
10
+ alignment: ALIGNMENT;
11
+ verticalAlignment: VERTICAL_ALIGNMENT;
12
+ fontSize: number;
13
+ lineHeight: number;
14
+ characterSpacing: number;
15
+ fontColor: string;
16
+ backgroundColor: string;
17
+ borderColor: string;
18
+ borderWidth: BoxDimensions;
19
+ padding: BoxDimensions;
20
+ }
21
+
22
+ export type CellSchema = Schema & CellStyle;
23
+
24
+ export interface TableSchema extends Schema {
25
+ showHead: boolean;
26
+ head: string[];
27
+ headWidthPercentages: number[];
28
+ repeatHead?: boolean;
29
+
30
+ tableStyles: {
31
+ borderColor: string;
32
+ borderWidth: number;
33
+ };
34
+ headStyles: CellStyle;
35
+ bodyStyles: CellStyle & { alternateBackgroundColor: string };
36
+ columnStyles: {
37
+ alignment?: { [colIndex: number]: ALIGNMENT };
38
+ };
39
+ }
40
+
41
+ export interface Styles {
42
+ fontName: string | undefined;
43
+ backgroundColor: string;
44
+ textColor: string;
45
+ lineHeight: number;
46
+ characterSpacing: number;
47
+ alignment: 'left' | 'center' | 'right' | 'justify';
48
+ verticalAlignment: 'top' | 'middle' | 'bottom';
49
+ fontSize: number;
50
+ cellPadding: Spacing;
51
+ lineColor: string;
52
+ lineWidth: BorderInsets;
53
+ cellWidth: number;
54
+ minCellHeight: number;
55
+ minCellWidth: number;
56
+ }
57
+
58
+ export interface TableInput {
59
+ settings: Settings;
60
+ styles: StylesProps;
61
+ content: ContentInput;
62
+ }
63
+
64
+ interface ContentInput {
65
+ body: string[][];
66
+ head: string[][];
67
+ columns: number[];
68
+ }
69
+
70
+ export interface Settings {
71
+ startY: number;
72
+ margin: Spacing;
73
+ tableWidth: number;
74
+ showHead: boolean;
75
+ tableLineWidth: number;
76
+ tableLineColor: string;
77
+ }
78
+
79
+ export interface StylesProps {
80
+ styles: Partial<Styles>;
81
+ headStyles: Partial<Styles>;
82
+ bodyStyles: Partial<Styles>;
83
+ alternateRowStyles: Partial<Styles>;
84
+ columnStyles: { [key: string]: Partial<Styles> };
85
+ }
86
+
87
+ export type Section = 'head' | 'body';