@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,436 @@
1
+ import type { UIRenderProps, Mode } from '@pdfme/common';
2
+ import type { TableSchema, CellStyle, Styles } from './types.js';
3
+ import { px2mm, ZOOM } from '@pdfme/common';
4
+ import { createSingleTable } from './tableHelper.js';
5
+ import { getBody, getBodyWithRange } from './helper.js';
6
+ import cell from './cell.js';
7
+ import { Row } from './classes.js';
8
+
9
+ const buttonSize = 30;
10
+
11
+ function createButton(options: {
12
+ width: number;
13
+ height: number;
14
+ top: string;
15
+ left?: string;
16
+ right?: string;
17
+ text: string;
18
+ onClick: (e: MouseEvent) => void;
19
+ }): HTMLButtonElement {
20
+ const button = document.createElement('button');
21
+ button.style.width = `${options.width}px`;
22
+ button.style.height = `${options.height}px`;
23
+ button.style.position = 'absolute';
24
+ button.style.top = options.top;
25
+ if (options.left !== undefined) {
26
+ button.style.left = options.left;
27
+ }
28
+ if (options.right !== undefined) {
29
+ button.style.right = options.right;
30
+ }
31
+ button.innerText = options.text;
32
+ button.onclick = options.onClick;
33
+ return button;
34
+ }
35
+
36
+ type RowType = InstanceType<typeof Row>;
37
+
38
+ const cellUiRender = cell.ui;
39
+
40
+ const convertToCellStyle = (styles: Styles): CellStyle => ({
41
+ fontName: styles.fontName,
42
+ alignment: styles.alignment,
43
+ verticalAlignment: styles.verticalAlignment,
44
+ fontSize: styles.fontSize,
45
+ lineHeight: styles.lineHeight,
46
+ characterSpacing: styles.characterSpacing,
47
+ backgroundColor: styles.backgroundColor,
48
+ // ---
49
+ fontColor: styles.textColor,
50
+ borderColor: styles.lineColor,
51
+ borderWidth: styles.lineWidth,
52
+ padding: styles.cellPadding,
53
+ });
54
+
55
+ const calcResizedHeadWidthPercentages = (arg: {
56
+ currentHeadWidthPercentages: number[];
57
+ currentHeadWidths: number[];
58
+ changedHeadWidth: number;
59
+ changedHeadIndex: number;
60
+ }) => {
61
+ const { currentHeadWidthPercentages, currentHeadWidths, changedHeadWidth, changedHeadIndex } =
62
+ arg;
63
+ const headWidthPercentages = [...currentHeadWidthPercentages];
64
+ const totalWidth = currentHeadWidths.reduce((a, b) => a + b, 0);
65
+ const changedWidthPercentage = (changedHeadWidth / totalWidth) * 100;
66
+ const originalNextWidthPercentage = headWidthPercentages[changedHeadIndex + 1] ?? 0;
67
+ const adjustment = headWidthPercentages[changedHeadIndex] - changedWidthPercentage;
68
+ headWidthPercentages[changedHeadIndex] = changedWidthPercentage;
69
+ if (changedHeadIndex + 1 < headWidthPercentages.length) {
70
+ headWidthPercentages[changedHeadIndex + 1] = originalNextWidthPercentage + adjustment;
71
+ }
72
+ return headWidthPercentages;
73
+ };
74
+
75
+ const setBorder = (
76
+ div: HTMLDivElement,
77
+ borderPosition: 'Top' | 'Left' | 'Right' | 'Bottom',
78
+ arg: UIRenderProps<TableSchema>,
79
+ ) => {
80
+ div.style[`border${borderPosition}`] = `${String(arg.schema.tableStyles.borderWidth)}mm solid ${
81
+ arg.schema.tableStyles.borderColor
82
+ }`;
83
+ };
84
+
85
+ const drawBorder = (
86
+ div: HTMLDivElement,
87
+ row: RowType,
88
+ colIndex: number,
89
+ rowIndex: number,
90
+ rowsLength: number,
91
+ arg: UIRenderProps<TableSchema>,
92
+ ) => {
93
+ const isFirstColumn = colIndex === 0;
94
+ const isLastColumn = colIndex === Object.values(row.cells).length - 1;
95
+ const isLastRow = rowIndex === rowsLength - 1;
96
+
97
+ if (row.section === 'head') {
98
+ setBorder(div, 'Top', arg);
99
+ if (isFirstColumn) setBorder(div, 'Left', arg);
100
+ if (isLastColumn) setBorder(div, 'Right', arg);
101
+ if ((JSON.parse(arg.value || '[]') as string[][]).length === 0) {
102
+ setBorder(div, 'Bottom', arg);
103
+ }
104
+ } else if (row.section === 'body') {
105
+ if (!arg.schema.showHead && rowIndex === 0) {
106
+ setBorder(div, 'Top', arg);
107
+ }
108
+ if (isFirstColumn) setBorder(div, 'Left', arg);
109
+ if (isLastColumn) setBorder(div, 'Right', arg);
110
+ if (isLastRow) setBorder(div, 'Bottom', arg);
111
+ }
112
+ };
113
+
114
+ const renderRowUi = (args: {
115
+ rows: RowType[];
116
+ arg: UIRenderProps<TableSchema>;
117
+ editingPosition: { rowIndex: number; colIndex: number };
118
+ onChangeEditingPosition: (position: { rowIndex: number; colIndex: number }) => void;
119
+ offsetY?: number;
120
+ }) => {
121
+ const { rows, arg, onChangeEditingPosition, offsetY = 0, editingPosition } = args;
122
+ const value = JSON.parse(arg.value || '[]') as string[][];
123
+
124
+ let rowOffsetY = offsetY;
125
+ rows.forEach((row, rowIndex) => {
126
+ const { cells, height, section } = row;
127
+ let colOffsetX = 0;
128
+ Object.values(cells).forEach((cell, colIndex) => {
129
+ const div = document.createElement('div');
130
+ div.style.position = 'absolute';
131
+ div.style.top = `${rowOffsetY}mm`;
132
+ div.style.left = `${colOffsetX}mm`;
133
+ div.style.width = `${cell.width}mm`;
134
+ div.style.height = `${cell.height}mm`;
135
+ div.style.boxSizing = 'border-box';
136
+
137
+ drawBorder(div, row, colIndex, rowIndex, rows.length, arg);
138
+
139
+ div.style.cursor =
140
+ arg.mode === 'designer' || (arg.mode === 'form' && section === 'body') ? 'text' : 'default';
141
+
142
+ div.addEventListener('click', () => {
143
+ if (arg.mode === 'viewer') return;
144
+ onChangeEditingPosition({ rowIndex, colIndex });
145
+ });
146
+ arg.rootElement.appendChild(div);
147
+ const isEditing =
148
+ editingPosition.rowIndex === rowIndex && editingPosition.colIndex === colIndex;
149
+ let mode: Mode = 'viewer';
150
+ if (arg.mode === 'form') {
151
+ mode = section === 'body' && isEditing && !arg.schema.readOnly ? 'designer' : 'viewer';
152
+ } else if (arg.mode === 'designer') {
153
+ mode = isEditing ? 'designer' : 'form';
154
+ }
155
+
156
+ void cellUiRender({
157
+ ...arg,
158
+ stopEditing: () => {
159
+ if (arg.mode === 'form') {
160
+ resetEditingPosition();
161
+ }
162
+ },
163
+ mode,
164
+ onChange: (v) => {
165
+ if (!arg.onChange) return;
166
+ const newValue = (Array.isArray(v) ? v[0].value : v.value) as string;
167
+ if (section === 'body') {
168
+ const startRange = arg.schema.__bodyRange?.start ?? 0;
169
+ value[rowIndex + startRange][colIndex] = newValue;
170
+ arg.onChange({ key: 'content', value: JSON.stringify(value) });
171
+ } else {
172
+ const newHead = [...arg.schema.head];
173
+ newHead[colIndex] = newValue;
174
+ arg.onChange({ key: 'head', value: newHead });
175
+ }
176
+ },
177
+ value: cell.raw,
178
+ placeholder: '',
179
+ rootElement: div,
180
+ schema: {
181
+ name: '',
182
+ type: 'cell',
183
+ content: cell.raw,
184
+ position: { x: colOffsetX, y: rowOffsetY },
185
+ width: cell.width,
186
+ height: cell.height,
187
+ ...convertToCellStyle(cell.styles),
188
+ },
189
+ });
190
+ colOffsetX += cell.width;
191
+ });
192
+ rowOffsetY += height;
193
+ });
194
+ };
195
+
196
+ const headEditingPosition = { rowIndex: -1, colIndex: -1 };
197
+ const bodyEditingPosition = { rowIndex: -1, colIndex: -1 };
198
+ const resetEditingPosition = () => {
199
+ headEditingPosition.rowIndex = -1;
200
+ headEditingPosition.colIndex = -1;
201
+ bodyEditingPosition.rowIndex = -1;
202
+ bodyEditingPosition.colIndex = -1;
203
+ };
204
+
205
+ export const uiRender = async (arg: UIRenderProps<TableSchema>) => {
206
+ const { rootElement, onChange, schema, value, mode, scale} = arg;
207
+ const body = getBody(value);
208
+ const bodyWidthRange = getBodyWithRange(value, schema.__bodyRange);
209
+ const table = await createSingleTable(bodyWidthRange, arg);
210
+ const showHead = table.settings.showHead;
211
+
212
+ rootElement.innerHTML = '';
213
+
214
+ const handleChangeEditingPosition = (
215
+ newPosition: { rowIndex: number; colIndex: number },
216
+ editingPosition: { rowIndex: number; colIndex: number },
217
+ ) => {
218
+ resetEditingPosition();
219
+ editingPosition.rowIndex = newPosition.rowIndex;
220
+ editingPosition.colIndex = newPosition.colIndex;
221
+ void uiRender(arg);
222
+ };
223
+
224
+ if (showHead) {
225
+ renderRowUi({
226
+ rows: table.head,
227
+ arg,
228
+ editingPosition: headEditingPosition,
229
+ onChangeEditingPosition: (p) => handleChangeEditingPosition(p, headEditingPosition),
230
+ });
231
+ }
232
+
233
+ const offsetY = showHead ? table.getHeadHeight() : 0;
234
+ renderRowUi({
235
+ rows: table.body,
236
+ arg,
237
+ editingPosition: bodyEditingPosition,
238
+ onChangeEditingPosition: (p) => {
239
+ handleChangeEditingPosition(p, bodyEditingPosition);
240
+ },
241
+ offsetY,
242
+ });
243
+
244
+ const createAddRowButton = () =>
245
+ createButton({
246
+ width: buttonSize,
247
+ height: buttonSize,
248
+ top: `${table.getHeight()}mm`,
249
+ left: `calc(50% - ${buttonSize / 2}px)`,
250
+ text: '+',
251
+ onClick: () => {
252
+ const newRow = Array(schema.head.length).fill('') as string[];
253
+ if (onChange) onChange({ key: 'content', value: JSON.stringify(body.concat([newRow])) });
254
+ },
255
+ });
256
+
257
+ const createRemoveRowButtons = () => {
258
+ let offsetY = showHead ? table.getHeadHeight() : 0;
259
+ return table.body.map((row, i) => {
260
+ offsetY = offsetY + row.height;
261
+ const removeRowButton = createButton({
262
+ width: buttonSize,
263
+ height: buttonSize,
264
+ top: `${offsetY - px2mm(buttonSize)}mm`,
265
+ right: `-${buttonSize}px`,
266
+ text: '-',
267
+ onClick: () => {
268
+ const newTableBody = body.filter((_, j) => j !== i + (schema.__bodyRange?.start ?? 0));
269
+ if (onChange) onChange({ key: 'content', value: JSON.stringify(newTableBody) });
270
+ },
271
+ });
272
+ return removeRowButton;
273
+ });
274
+ };
275
+
276
+ if (mode === 'form' && onChange && !schema.readOnly) {
277
+ if (
278
+ schema.__bodyRange?.end === undefined ||
279
+ schema.__bodyRange.end >= (JSON.parse(value || '[]') as string[][]).length
280
+ ) {
281
+ rootElement.appendChild(createAddRowButton());
282
+ }
283
+
284
+ createRemoveRowButtons().forEach((button) => rootElement.appendChild(button));
285
+ }
286
+
287
+ if (mode === 'designer' && onChange) {
288
+ const addColumnButton = createButton({
289
+ width: buttonSize,
290
+ height: buttonSize,
291
+ top: `${(showHead ? table.getHeadHeight() : 0) - px2mm(buttonSize)}mm`,
292
+ right: `-${buttonSize}px`,
293
+ text: '+',
294
+ onClick: (e) => {
295
+ e.preventDefault();
296
+ const newColumnWidthPercentage = 25;
297
+ const totalCurrentWidth = schema.headWidthPercentages.reduce(
298
+ (acc, width) => acc + width,
299
+ 0,
300
+ );
301
+ const scalingRatio = (100 - newColumnWidthPercentage) / totalCurrentWidth;
302
+ const scaledWidths = schema.headWidthPercentages.map((width) => width * scalingRatio);
303
+ onChange([
304
+ { key: 'head', value: schema.head.concat(`Head ${schema.head.length + 1}`) },
305
+ { key: 'headWidthPercentages', value: scaledWidths.concat(newColumnWidthPercentage) },
306
+ {
307
+ key: 'content',
308
+ value: JSON.stringify(bodyWidthRange.map((row, i) => row.concat(`Row ${i + 1}`))),
309
+ },
310
+ ]);
311
+ },
312
+ });
313
+ rootElement.appendChild(addColumnButton);
314
+
315
+ rootElement.appendChild(createAddRowButton());
316
+
317
+ createRemoveRowButtons().forEach((button) => rootElement.appendChild(button));
318
+
319
+ let offsetX = 0;
320
+ table.columns.forEach((column, i, columns) => {
321
+ if (columns.length === 1) return;
322
+ offsetX = offsetX + column.width;
323
+ const removeColumnButton = createButton({
324
+ width: buttonSize,
325
+ height: buttonSize,
326
+ top: `${-buttonSize}px`,
327
+ left: `${offsetX - px2mm(buttonSize)}mm`,
328
+ text: '-',
329
+ onClick: () => {
330
+ const totalWidthMinusRemoved = schema.headWidthPercentages.reduce(
331
+ (sum, width, j) => (j !== i ? sum + width : sum),
332
+ 0,
333
+ );
334
+
335
+ // TODO Should also remove the deleted columnStyles when deleting
336
+ onChange([
337
+ { key: 'head', value: schema.head.filter((_, j) => j !== i) },
338
+ {
339
+ key: 'headWidthPercentages',
340
+ value: schema.headWidthPercentages
341
+ .filter((_, j) => j !== i)
342
+ .map((width) => (width / totalWidthMinusRemoved) * 100),
343
+ },
344
+ {
345
+ key: 'content',
346
+ value: JSON.stringify(bodyWidthRange.map((row) => row.filter((_, j) => j !== i))),
347
+ },
348
+ ]);
349
+ },
350
+ });
351
+ rootElement.appendChild(removeColumnButton);
352
+
353
+ if (i === table.columns.length - 1) return;
354
+
355
+ const dragHandle = document.createElement('div');
356
+ const lineWidth = 5;
357
+ dragHandle.style.width = `${lineWidth}px`;
358
+ dragHandle.style.height = '100%';
359
+ dragHandle.style.backgroundColor = '#eee';
360
+ dragHandle.style.opacity = '0.5';
361
+ dragHandle.style.cursor = 'col-resize';
362
+ dragHandle.style.position = 'absolute';
363
+ dragHandle.style.zIndex = '10';
364
+ dragHandle.style.left = `${offsetX - px2mm(lineWidth) / 2}mm`;
365
+ dragHandle.style.top = '0';
366
+ const setColor = (e: MouseEvent) => {
367
+ const handle = e.target as HTMLDivElement;
368
+ handle.style.backgroundColor = '#2196f3';
369
+ };
370
+ const resetColor = (e: MouseEvent) => {
371
+ const handle = e.target as HTMLDivElement;
372
+ handle.style.backgroundColor = '#eee';
373
+ };
374
+ dragHandle.addEventListener('mouseover', setColor);
375
+ dragHandle.addEventListener('mouseout', resetColor);
376
+
377
+ const prevColumnLeft = offsetX - column.width;
378
+ const nextColumnRight = offsetX - px2mm(lineWidth) + table.columns[i + 1].width;
379
+
380
+ dragHandle.addEventListener('mousedown', (e) => {
381
+ resetEditingPosition();
382
+ const handle = e.target as HTMLDivElement;
383
+ dragHandle.removeEventListener('mouseover', setColor);
384
+ dragHandle.removeEventListener('mouseout', resetColor);
385
+
386
+ const startClientX = e.clientX;
387
+ const startLeft = Number(handle.style.left.replace('mm', ''));
388
+
389
+ let move = 0;
390
+ const mouseMove = (e: MouseEvent) => {
391
+ const deltaX = e.clientX - startClientX;
392
+ const moveX = deltaX / ZOOM / scale;
393
+ let newLeft = startLeft + moveX;
394
+
395
+ if (newLeft < prevColumnLeft) {
396
+ newLeft = prevColumnLeft;
397
+ }
398
+ if (newLeft >= nextColumnRight) {
399
+ newLeft = nextColumnRight;
400
+ }
401
+ handle.style.left = `${newLeft}mm`;
402
+ move = newLeft - startLeft;
403
+ };
404
+ rootElement.addEventListener('mousemove', mouseMove);
405
+
406
+ const commitResize = () => {
407
+ if (move !== 0) {
408
+ const newHeadWidthPercentages = calcResizedHeadWidthPercentages({
409
+ currentHeadWidthPercentages: schema.headWidthPercentages,
410
+ currentHeadWidths: table.columns.map((column) => column.width),
411
+ changedHeadWidth: table.columns[i].width + move,
412
+ changedHeadIndex: i,
413
+ });
414
+ onChange({ key: 'headWidthPercentages', value: newHeadWidthPercentages });
415
+ }
416
+ move = 0;
417
+ dragHandle.addEventListener('mouseover', setColor);
418
+ dragHandle.addEventListener('mouseout', resetColor);
419
+ rootElement.removeEventListener('mousemove', mouseMove);
420
+ rootElement.removeEventListener('mouseup', commitResize);
421
+ };
422
+ rootElement.addEventListener('mouseup', commitResize);
423
+ });
424
+ rootElement.appendChild(dragHandle);
425
+ });
426
+ }
427
+
428
+ if (mode === 'viewer') {
429
+ resetEditingPosition();
430
+ }
431
+
432
+ const tableHeight = showHead ? table.getHeight() : table.getBodyHeight();
433
+ if (schema.height !== tableHeight && onChange) {
434
+ onChange({ key: 'height', value: tableHeight });
435
+ }
436
+ };
@@ -0,0 +1,104 @@
1
+ import { ALIGNMENT, VERTICAL_ALIGNMENT, DYNAMIC_FONT_SIZE_FIT } from './types.js';
2
+
3
+ export const DEFAULT_FONT_SIZE = 13;
4
+
5
+ export const ALIGN_LEFT = 'left' as ALIGNMENT;
6
+ export const ALIGN_CENTER = 'center' as ALIGNMENT;
7
+ export const ALIGN_RIGHT = 'right' as ALIGNMENT;
8
+ export const ALIGN_JUSTIFY = 'justify' as ALIGNMENT;
9
+ export const DEFAULT_ALIGNMENT = ALIGN_LEFT;
10
+ export const VERTICAL_ALIGN_TOP = 'top' as VERTICAL_ALIGNMENT;
11
+ export const VERTICAL_ALIGN_MIDDLE = 'middle' as VERTICAL_ALIGNMENT;
12
+ export const VERTICAL_ALIGN_BOTTOM = 'bottom' as VERTICAL_ALIGNMENT;
13
+ export const DEFAULT_VERTICAL_ALIGNMENT = VERTICAL_ALIGN_TOP;
14
+ export const DEFAULT_LINE_HEIGHT = 1;
15
+ export const DEFAULT_CHARACTER_SPACING = 0;
16
+ export const DEFAULT_FONT_COLOR = '#000000';
17
+ export const PLACEHOLDER_FONT_COLOR = '#A0A0A0';
18
+ export const DYNAMIC_FIT_VERTICAL = 'vertical' as DYNAMIC_FONT_SIZE_FIT;
19
+ export const DYNAMIC_FIT_HORIZONTAL = 'horizontal' as DYNAMIC_FONT_SIZE_FIT;
20
+ export const DEFAULT_DYNAMIC_FIT = DYNAMIC_FIT_VERTICAL;
21
+ export const DEFAULT_DYNAMIC_MIN_FONT_SIZE = 4;
22
+
23
+ export const DEFAULT_DYNAMIC_MAX_FONT_SIZE = 72;
24
+ export const FONT_SIZE_ADJUSTMENT = 0.25;
25
+
26
+ export const LINE_START_FORBIDDEN_CHARS = [
27
+ // 句読点
28
+ '、',
29
+ '。',
30
+ ',',
31
+ '.',
32
+
33
+ // 閉じカッコ類
34
+ '」',
35
+ '』',
36
+ ')',
37
+ '}',
38
+ '】',
39
+ '>',
40
+ '≫',
41
+ ']',
42
+
43
+ // 記号
44
+ '・',
45
+ 'ー',
46
+ '―',
47
+ '-',
48
+
49
+ // 約物
50
+ '!',
51
+ '!',
52
+ '?',
53
+ '?',
54
+ ':',
55
+ ':',
56
+ ';',
57
+ ';',
58
+ '/',
59
+ '/',
60
+
61
+ // 繰り返し記号
62
+ 'ゝ',
63
+ '々',
64
+ '〃',
65
+
66
+ // 拗音・促音(小書きのかな)
67
+ 'ぁ',
68
+ 'ぃ',
69
+ 'ぅ',
70
+ 'ぇ',
71
+ 'ぉ',
72
+ 'っ',
73
+ 'ゃ',
74
+ 'ゅ',
75
+ 'ょ',
76
+ 'ァ',
77
+ 'ィ',
78
+ 'ゥ',
79
+ 'ェ',
80
+ 'ォ',
81
+ 'ッ',
82
+ 'ャ',
83
+ 'ュ',
84
+ 'ョ',
85
+ ];
86
+
87
+ export const LINE_END_FORBIDDEN_CHARS = [
88
+ // 始め括弧類
89
+ '「',
90
+ '『',
91
+ '(',
92
+ '{',
93
+ '【',
94
+ '<',
95
+ '≪',
96
+ '[',
97
+ '〘',
98
+ '〖',
99
+ '〝',
100
+ '‘',
101
+ '“',
102
+ '⦅',
103
+ '«',
104
+ ];
@@ -0,0 +1,83 @@
1
+ // No imports needed from @pdfme/common
2
+ import {
3
+ TextAlignCenterIcon,
4
+ TextAlignLeftIcon,
5
+ TextAlignRightIcon,
6
+ TextAlignJustifyIcon,
7
+ TextStrikethroughIcon,
8
+ TextUnderlineIcon,
9
+ TextVerticalAlignBottomIcon,
10
+ TextVerticalAlignMiddleIcon,
11
+ TextVerticalAlignTopIcon,
12
+ } from './icons/index.js';
13
+ import {
14
+ ALIGN_CENTER,
15
+ ALIGN_RIGHT,
16
+ DEFAULT_ALIGNMENT,
17
+ DEFAULT_VERTICAL_ALIGNMENT,
18
+ VERTICAL_ALIGN_BOTTOM,
19
+ VERTICAL_ALIGN_MIDDLE,
20
+ ALIGN_JUSTIFY,
21
+ } from './constants.js';
22
+
23
+ export enum Formatter {
24
+ STRIKETHROUGH = 'strikethrough',
25
+ UNDERLINE = 'underline',
26
+ ALIGNMENT = 'alignment',
27
+ VERTICAL_ALIGNMENT = 'verticalAlignment',
28
+ }
29
+
30
+ interface GroupButtonBoolean {
31
+ key: Formatter;
32
+ icon: string;
33
+ type: 'boolean';
34
+ }
35
+
36
+ interface GroupButtonString {
37
+ key: Formatter;
38
+ icon: string;
39
+ type: 'select';
40
+ value: string;
41
+ }
42
+
43
+ type GroupButton = GroupButtonBoolean | GroupButtonString;
44
+
45
+ export function getExtraFormatterSchema(i18n: (key: string) => string): {
46
+ title: string;
47
+ widget: string;
48
+ buttons: GroupButton[];
49
+ span: number;
50
+ } {
51
+ const buttons: GroupButton[] = [
52
+ { key: Formatter.STRIKETHROUGH, icon: TextStrikethroughIcon, type: 'boolean' },
53
+ { key: Formatter.UNDERLINE, icon: TextUnderlineIcon, type: 'boolean' },
54
+ { key: Formatter.ALIGNMENT, icon: TextAlignLeftIcon, type: 'select', value: DEFAULT_ALIGNMENT },
55
+ { key: Formatter.ALIGNMENT, icon: TextAlignCenterIcon, type: 'select', value: ALIGN_CENTER },
56
+ { key: Formatter.ALIGNMENT, icon: TextAlignRightIcon, type: 'select', value: ALIGN_RIGHT },
57
+ { key: Formatter.ALIGNMENT, icon: TextAlignJustifyIcon, type: 'select', value: ALIGN_JUSTIFY },
58
+ {
59
+ key: Formatter.VERTICAL_ALIGNMENT,
60
+ icon: TextVerticalAlignTopIcon,
61
+ type: 'select',
62
+ value: DEFAULT_VERTICAL_ALIGNMENT,
63
+ },
64
+ {
65
+ key: Formatter.VERTICAL_ALIGNMENT,
66
+ icon: TextVerticalAlignMiddleIcon,
67
+ type: 'select',
68
+ value: VERTICAL_ALIGN_MIDDLE,
69
+ },
70
+ {
71
+ key: Formatter.VERTICAL_ALIGNMENT,
72
+ icon: TextVerticalAlignBottomIcon,
73
+ type: 'select',
74
+ value: VERTICAL_ALIGN_BOTTOM,
75
+ },
76
+ ];
77
+ return {
78
+ title: i18n('schemas.text.format'),
79
+ widget: 'ButtonGroup',
80
+ buttons,
81
+ span: 24,
82
+ };
83
+ }