@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,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.propPanel = void 0;
4
+ const propPanel_js_1 = require("../text/propPanel.js");
5
+ const mapDynamicVariables = (props) => {
6
+ const { rootElement, changeSchemas, activeSchema, i18n, options } = props;
7
+ const mvtSchema = activeSchema;
8
+ const text = mvtSchema.text || '';
9
+ const variables = JSON.parse(mvtSchema.content || '{}');
10
+ const variablesChanged = updateVariablesFromText(text, variables);
11
+ const varNames = Object.keys(variables);
12
+ if (variablesChanged) {
13
+ changeSchemas([
14
+ { key: 'content', value: JSON.stringify(variables), schemaId: activeSchema.id },
15
+ { key: 'variables', value: varNames, schemaId: activeSchema.id },
16
+ { key: 'readOnly', value: varNames.length === 0, schemaId: activeSchema.id },
17
+ ]);
18
+ }
19
+ const placeholderRowEl = document
20
+ .getElementById('placeholder-dynamic-var')
21
+ ?.closest('.ant-form-item');
22
+ if (!placeholderRowEl) {
23
+ throw new Error('Failed to find Ant form placeholder row to create dynamic variables inputs.');
24
+ }
25
+ placeholderRowEl.style.display = 'none';
26
+ // The wrapping form element has a display:flex which limits the width of the form fields, removing.
27
+ rootElement.parentElement.style.display = 'block';
28
+ if (varNames.length > 0) {
29
+ for (let variableName of varNames) {
30
+ const varRow = placeholderRowEl.cloneNode(true);
31
+ const textarea = varRow.querySelector('textarea');
32
+ textarea.id = 'dynamic-var-' + variableName;
33
+ textarea.value = variables[variableName];
34
+ textarea.addEventListener('change', (e) => {
35
+ if (variableName in variables) {
36
+ variables[variableName] = e.target.value;
37
+ changeSchemas([
38
+ { key: 'content', value: JSON.stringify(variables), schemaId: activeSchema.id },
39
+ ]);
40
+ }
41
+ });
42
+ const label = varRow.querySelector('label');
43
+ label.innerText = variableName;
44
+ varRow.style.display = 'block';
45
+ rootElement.appendChild(varRow);
46
+ }
47
+ }
48
+ else {
49
+ const para = document.createElement('p');
50
+ // Extract color value to avoid unsafe property access
51
+ const colorValue = options?.theme?.token?.colorPrimary || '#168fe3';
52
+ const isValidColor = /^#[0-9A-F]{6}$/i.test(colorValue) ||
53
+ /^(rgb|hsl)a?\(\s*([+-]?\d+%?\s*,\s*){2,3}[+-]?\d+%?\s*\)$/i.test(colorValue);
54
+ const safeColorValue = isValidColor ? colorValue : '#168fe3';
55
+ // Use safe string concatenation for innerHTML
56
+ const typingInstructions = i18n('schemas.mvt.typingInstructions');
57
+ const sampleField = i18n('schemas.mvt.sampleField');
58
+ para.innerHTML =
59
+ typingInstructions +
60
+ ` <code style="color:${safeColorValue}; font-weight:bold;">{` +
61
+ sampleField +
62
+ '}</code>';
63
+ rootElement.appendChild(para);
64
+ }
65
+ };
66
+ exports.propPanel = {
67
+ schema: (propPanelProps) => {
68
+ if (typeof propPanel_js_1.propPanel.schema !== 'function') {
69
+ throw new Error('Oops, is text schema no longer a function?');
70
+ }
71
+ // Safely call schema function with proper type handling
72
+ const parentSchema = typeof propPanel_js_1.propPanel.schema === 'function' ? propPanel_js_1.propPanel.schema(propPanelProps) : {};
73
+ return {
74
+ ...parentSchema,
75
+ '-------': { type: 'void', widget: 'Divider' },
76
+ dynamicVarContainer: {
77
+ title: 'Variables Sample Data',
78
+ type: 'string',
79
+ widget: 'Card',
80
+ span: 24,
81
+ properties: {
82
+ dynamicVariables: {
83
+ type: 'object',
84
+ widget: 'mapDynamicVariables',
85
+ bind: false,
86
+ span: 24,
87
+ },
88
+ placeholderDynamicVar: {
89
+ title: 'Placeholder Dynamic Variable',
90
+ type: 'string',
91
+ format: 'textarea',
92
+ props: {
93
+ id: 'placeholder-dynamic-var',
94
+ autoSize: {
95
+ minRows: 2,
96
+ maxRows: 5,
97
+ },
98
+ },
99
+ span: 24,
100
+ },
101
+ },
102
+ },
103
+ };
104
+ },
105
+ widgets: { ...(propPanel_js_1.propPanel.widgets || {}), mapDynamicVariables },
106
+ defaultSchema: {
107
+ ...propPanel_js_1.propPanel.defaultSchema,
108
+ readOnly: false,
109
+ type: 'multiVariableText',
110
+ text: 'Add text here using {} for variables ',
111
+ width: 50,
112
+ height: 15,
113
+ content: '{}',
114
+ variables: [],
115
+ },
116
+ };
117
+ const updateVariablesFromText = (text, variables) => {
118
+ const regex = /\{([^{}]+)}/g;
119
+ const matches = text.match(regex);
120
+ let changed = false;
121
+ if (matches) {
122
+ // Add any new variables
123
+ for (const match of matches) {
124
+ const variableName = match.replace('{', '').replace('}', '');
125
+ if (!(variableName in variables)) {
126
+ // NOTE: We upper case the variable name as the default value
127
+ variables[variableName] = variableName.toUpperCase();
128
+ changed = true;
129
+ }
130
+ }
131
+ // Remove any that no longer exist
132
+ Object.keys(variables).forEach((variableName) => {
133
+ if (!matches.includes('{' + variableName + '}')) {
134
+ delete variables[variableName];
135
+ changed = true;
136
+ }
137
+ });
138
+ }
139
+ else {
140
+ // No matches at all, so clear all variables
141
+ Object.keys(variables).forEach((variableName) => {
142
+ delete variables[variableName];
143
+ changed = true;
144
+ });
145
+ }
146
+ return changed;
147
+ };
148
+ //# sourceMappingURL=propPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propPanel.js","sourceRoot":"","sources":["../../../../src/multiVariableText/propPanel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/multiVariableText/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.uiRender = void 0;
4
+ const common_1 = require("@pdfme/common");
5
+ const uiRender_js_1 = require("../text/uiRender.js");
6
+ const utils_js_1 = require("../utils.js");
7
+ const helper_js_1 = require("../text/helper.js");
8
+ const helper_js_2 = require("./helper.js");
9
+ const uiRender = async (arg) => {
10
+ const { value, schema, rootElement, mode, onChange, ...rest } = arg;
11
+ let text = schema.text;
12
+ let numVariables = schema.variables.length;
13
+ if (mode === 'form' && numVariables > 0) {
14
+ await formUiRender(arg);
15
+ return;
16
+ }
17
+ await (0, uiRender_js_1.uiRender)({
18
+ value: (0, utils_js_1.isEditable)(mode, schema) ? text : (0, helper_js_2.substituteVariables)(text, value),
19
+ schema,
20
+ mode: mode === 'form' ? 'viewer' : mode, // if no variables for form it's just a viewer
21
+ rootElement,
22
+ onChange: (arg) => {
23
+ if (!Array.isArray(arg)) {
24
+ if (onChange) {
25
+ onChange({ key: 'text', value: arg.value });
26
+ }
27
+ }
28
+ else {
29
+ throw new Error('onChange is not an array, the parent text plugin has changed...');
30
+ }
31
+ },
32
+ ...rest,
33
+ });
34
+ const textBlock = rootElement.querySelector('#text-' + String(schema.id));
35
+ if (!textBlock) {
36
+ throw new Error('Text block not found. Ensure the text block has an id of "text-" + schema.id');
37
+ }
38
+ if (mode === 'designer') {
39
+ textBlock.addEventListener('keyup', (event) => {
40
+ text = textBlock.textContent || '';
41
+ if (keyPressShouldBeChecked(event)) {
42
+ const newNumVariables = countUniqueVariableNames(text);
43
+ if (numVariables !== newNumVariables) {
44
+ // If variables were modified during this keypress, we trigger a change
45
+ if (onChange) {
46
+ onChange({ key: 'text', value: text });
47
+ }
48
+ numVariables = newNumVariables;
49
+ }
50
+ }
51
+ });
52
+ }
53
+ };
54
+ exports.uiRender = uiRender;
55
+ const formUiRender = async (arg) => {
56
+ const { value, schema, rootElement, onChange, stopEditing, theme, _cache, options } = arg;
57
+ const rawText = schema.text;
58
+ if (rootElement.parentElement) {
59
+ // remove the outline for the whole schema, we'll apply outlines on each individual variable field instead
60
+ rootElement.parentElement.style.outline = '';
61
+ }
62
+ const variables = value
63
+ ? JSON.parse(value) || {}
64
+ : {};
65
+ const variableIndices = getVariableIndices(rawText);
66
+ const substitutedText = (0, helper_js_2.substituteVariables)(rawText, variables);
67
+ const font = options?.font || (0, common_1.getDefaultFont)();
68
+ const fontKitFont = await (0, helper_js_1.getFontKitFont)(schema.fontName, font, _cache);
69
+ const textBlock = (0, uiRender_js_1.buildStyledTextContainer)(arg, fontKitFont, substitutedText);
70
+ // Construct content-editable spans for each variable within the string
71
+ let inVarString = false;
72
+ for (let i = 0; i < rawText.length; i++) {
73
+ if (variableIndices[i]) {
74
+ inVarString = true;
75
+ let span = document.createElement('span');
76
+ span.style.outline = `${theme.colorPrimary} dashed 1px`;
77
+ (0, uiRender_js_1.makeElementPlainTextContentEditable)(span);
78
+ span.textContent = variables[variableIndices[i]];
79
+ span.addEventListener('blur', (e) => {
80
+ const newValue = e.target.textContent || '';
81
+ if (newValue !== variables[variableIndices[i]]) {
82
+ variables[variableIndices[i]] = newValue;
83
+ if (onChange)
84
+ onChange({ key: 'content', value: JSON.stringify(variables) });
85
+ if (stopEditing)
86
+ stopEditing();
87
+ }
88
+ });
89
+ textBlock.appendChild(span);
90
+ }
91
+ else if (inVarString) {
92
+ if (rawText[i] === '}') {
93
+ inVarString = false;
94
+ }
95
+ }
96
+ else {
97
+ let span = document.createElement('span');
98
+ span.style.letterSpacing = rawText.length === i + 1 ? '0' : 'inherit';
99
+ span.textContent = rawText[i];
100
+ textBlock.appendChild(span);
101
+ }
102
+ }
103
+ };
104
+ const getVariableIndices = (content) => {
105
+ const regex = /\{([^}]+)}/g;
106
+ const indices = [];
107
+ let match;
108
+ while ((match = regex.exec(content)) !== null) {
109
+ indices[match.index] = match[1];
110
+ }
111
+ return indices;
112
+ };
113
+ const countUniqueVariableNames = (content) => {
114
+ const regex = /\{([^}]+)}/g;
115
+ const uniqueMatchesSet = new Set();
116
+ let match;
117
+ while ((match = regex.exec(content)) !== null) {
118
+ uniqueMatchesSet.add(match[1]);
119
+ }
120
+ return uniqueMatchesSet.size;
121
+ };
122
+ /**
123
+ * An optimisation to try to minimise jank while typing.
124
+ * Only check whether variables were modified based on certain key presses.
125
+ * Regex would otherwise be performed on every key press (which isn't terrible, but this code helps).
126
+ */
127
+ const keyPressShouldBeChecked = (event) => {
128
+ if (event.key === 'ArrowUp' ||
129
+ event.key === 'ArrowDown' ||
130
+ event.key === 'ArrowLeft' ||
131
+ event.key === 'ArrowRight') {
132
+ return false;
133
+ }
134
+ const selection = window.getSelection();
135
+ const contenteditable = event.target;
136
+ const isCursorAtEnd = selection?.focusOffset === contenteditable?.textContent?.length;
137
+ if (isCursorAtEnd) {
138
+ return event.key === '}' || event.key === 'Backspace' || event.key === 'Delete';
139
+ }
140
+ const isCursorAtStart = selection?.anchorOffset === 0;
141
+ if (isCursorAtStart) {
142
+ return event.key === '{' || event.key === 'Backspace' || event.key === 'Delete';
143
+ }
144
+ return true;
145
+ };
146
+ //# sourceMappingURL=uiRender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uiRender.js","sourceRoot":"","sources":["../../../../src/multiVariableText/uiRender.ts"],"names":[],"mappings":";;;AAAA,0CAA8D;AAE9D,qDAI6B;AAC7B,0CAAyC;AACzC,iDAAmD;AACnD,2CAAkD;AAE3C,MAAM,QAAQ,GAAG,KAAK,EAAE,GAA2C,EAAE,EAAE;IAC5E,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;IAEpE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACvB,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;IAE3C,IAAI,IAAI,KAAK,MAAM,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO;IACT,CAAC;IAED,MAAM,IAAA,sBAAc,EAAC;QACnB,KAAK,EAAE,IAAA,qBAAU,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,+BAAmB,EAAC,IAAI,EAAE,KAAK,CAAC;QACzE,MAAM;QACN,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,8CAA8C;QACvF,WAAW;QACX,QAAQ,EAAE,CAAC,GAAwE,EAAE,EAAE;YACrF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QACD,GAAG,IAAI;KACR,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAmB,CAAC;IAC5F,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAoB,EAAE,EAAE;YAC3D,IAAI,GAAG,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC;YACnC,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,eAAe,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;gBACvD,IAAI,YAAY,KAAK,eAAe,EAAE,CAAC;oBACrC,uEAAuE;oBACvE,IAAI,QAAQ,EAAE,CAAC;wBACb,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACzC,CAAC;oBACD,YAAY,GAAG,eAAe,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAhDW,QAAA,QAAQ,YAgDnB;AAEF,MAAM,YAAY,GAAG,KAAK,EAAE,GAA2C,EAAE,EAAE;IACzE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAC1F,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;IAE5B,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;QAC9B,0GAA0G;QAC1G,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,SAAS,GAA2B,KAAK;QAC7C,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAA4B,IAAI,EAAE;QACrD,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,IAAA,+BAAmB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,IAAA,uBAAc,GAAE,CAAC;IAC/C,MAAM,WAAW,GAAG,MAAM,IAAA,0BAAc,EACtC,MAAM,CAAC,QAAQ,EACf,IAAI,EACJ,MAA6C,CAC9C,CAAC;IAEF,MAAM,SAAS,GAAG,IAAA,sCAAwB,EAAC,GAAG,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IAE9E,uEAAuE;IACvE,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,WAAW,GAAG,IAAI,CAAC;YACnB,IAAI,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,KAAK,CAAC,YAAY,aAAa,CAAC;YACxD,IAAA,iDAAmC,EAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAQ,EAAE,EAAE;gBACzC,MAAM,QAAQ,GAAI,CAAC,CAAC,MAA0B,CAAC,WAAW,IAAI,EAAE,CAAC;gBACjE,IAAI,QAAQ,KAAK,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/C,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;oBACzC,IAAI,QAAQ;wBAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBAC7E,IAAI,WAAW;wBAAE,WAAW,EAAE,CAAC;gBACjC,CAAC;YACH,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACvB,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACvB,WAAW,GAAG,KAAK,CAAC;YACtB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9B,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAE,EAAE;IAC7C,MAAM,KAAK,GAAG,aAAa,CAAC;IAC5B,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,OAAe,EAAE,EAAE;IACnD,MAAM,KAAK,GAAG,aAAa,CAAC;IAC5B,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;IACnC,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,gBAAgB,CAAC,IAAI,CAAC;AAC/B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,CAAC,KAAoB,EAAE,EAAE;IACvD,IACE,KAAK,CAAC,GAAG,KAAK,SAAS;QACvB,KAAK,CAAC,GAAG,KAAK,WAAW;QACzB,KAAK,CAAC,GAAG,KAAK,WAAW;QACzB,KAAK,CAAC,GAAG,KAAK,YAAY,EAC1B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IACxC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAwB,CAAC;IAEvD,MAAM,aAAa,GAAG,SAAS,EAAE,WAAW,KAAK,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC;IACtF,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC;IAClF,CAAC;IAED,MAAM,eAAe,GAAG,SAAS,EAAE,YAAY,KAAK,CAAC,CAAC;IACtD,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC;IAClF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const lucide_1 = require("lucide");
7
+ const svg_js_1 = __importDefault(require("../graphics/svg.js"));
8
+ const utils_js_1 = require("../utils.js");
9
+ const constants_js_1 = require("../constants.js");
10
+ const defaultStroke = 'currentColor';
11
+ const getCheckedIcon = (stroke = defaultStroke) => (0, utils_js_1.createSvgStr)(lucide_1.CircleDot, { stroke });
12
+ const getUncheckedIcon = (stroke = defaultStroke) => (0, utils_js_1.createSvgStr)(lucide_1.Circle, { stroke });
13
+ const getIcon = ({ value, color }) => value === 'true' ? getCheckedIcon(color) : getUncheckedIcon(color);
14
+ const eventEmitter = new EventTarget();
15
+ const radioButtonStates = new Map();
16
+ const eventListeners = new Map();
17
+ const schema = {
18
+ ui: (arg) => {
19
+ const { schema, value, onChange, rootElement, mode } = arg;
20
+ const container = document.createElement('div');
21
+ container.style.width = '100%';
22
+ container.style.height = '100%';
23
+ if (onChange) {
24
+ radioButtonStates.set(schema.name, { value, onChange });
25
+ }
26
+ const oldListener = eventListeners.get(schema.name);
27
+ if (oldListener) {
28
+ eventEmitter.removeEventListener(`group-${schema.group}`, oldListener);
29
+ }
30
+ const handleGroupEvent = (event) => {
31
+ const customEvent = event;
32
+ const selectedSchemaName = customEvent.detail;
33
+ if (selectedSchemaName !== schema.name) {
34
+ const radioButtonState = radioButtonStates.get(schema.name);
35
+ if (!radioButtonState)
36
+ return;
37
+ if (radioButtonState.value === 'true') {
38
+ radioButtonState.onChange({ key: 'content', value: 'false' });
39
+ }
40
+ }
41
+ };
42
+ eventListeners.set(schema.name, handleGroupEvent);
43
+ eventEmitter.addEventListener(`group-${schema.group}`, handleGroupEvent);
44
+ if ((0, utils_js_1.isEditable)(mode, schema)) {
45
+ container.addEventListener('click', () => {
46
+ if (value !== 'true' && onChange) {
47
+ onChange({ key: 'content', value: 'true' });
48
+ radioButtonStates.set(schema.name, { value: 'true', onChange });
49
+ eventEmitter.dispatchEvent(new CustomEvent(`group-${schema.group}`, { detail: schema.name }));
50
+ }
51
+ });
52
+ }
53
+ void svg_js_1.default.ui({
54
+ ...arg,
55
+ rootElement: container,
56
+ mode: 'viewer',
57
+ value: getIcon({ value, color: schema.color }),
58
+ });
59
+ rootElement.appendChild(container);
60
+ },
61
+ pdf: (arg) => svg_js_1.default.pdf(Object.assign(arg, { value: getIcon({ value: arg.value, color: arg.schema.color }) })),
62
+ propPanel: {
63
+ schema: ({ i18n }) => ({
64
+ color: {
65
+ title: i18n('schemas.color'),
66
+ type: 'string',
67
+ widget: 'color',
68
+ props: {
69
+ disabledAlpha: true,
70
+ },
71
+ required: true,
72
+ rules: [{ pattern: constants_js_1.HEX_COLOR_PATTERN, message: i18n('validation.hexColor') }],
73
+ },
74
+ group: {
75
+ title: i18n('schemas.radioGroup.groupName'),
76
+ type: 'string',
77
+ },
78
+ }),
79
+ defaultSchema: {
80
+ name: '',
81
+ type: 'radioGroup',
82
+ content: 'false',
83
+ position: { x: 0, y: 0 },
84
+ width: 8,
85
+ height: 8,
86
+ group: 'MyGroup',
87
+ color: '#000000',
88
+ },
89
+ },
90
+ icon: getCheckedIcon(),
91
+ };
92
+ exports.default = schema;
93
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/radioGroup/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const propPanel_js_1 = require("../text/propPanel.js");
7
+ const index_js_1 = __importDefault(require("../text/index.js"));
8
+ const lucide_1 = require("lucide");
9
+ const utils_js_1 = require("../utils.js");
10
+ const selectIcon = (0, utils_js_1.createSvgStr)(lucide_1.ChevronDown);
11
+ const addOptions = (props) => {
12
+ const { rootElement, changeSchemas, activeSchema, i18n } = props;
13
+ rootElement.style.width = '100%';
14
+ const selectSchema = activeSchema;
15
+ const currentOptions = selectSchema.options ? [...selectSchema.options] : [];
16
+ const inputStyle = {
17
+ width: '100%',
18
+ padding: '6.25px 11px',
19
+ border: '1px solid #ccc',
20
+ borderRadius: '4px',
21
+ };
22
+ const buttonStyle = { border: 'none', borderRadius: '4px', cursor: 'pointer' };
23
+ const updateSchemas = () => {
24
+ changeSchemas([
25
+ { key: 'options', value: currentOptions, schemaId: activeSchema.id },
26
+ { key: 'content', value: currentOptions[0] || '', schemaId: activeSchema.id },
27
+ ]);
28
+ };
29
+ const formContainer = document.createElement('div');
30
+ Object.assign(formContainer.style, {
31
+ width: '100%',
32
+ display: 'flex',
33
+ alignItems: 'center',
34
+ marginBottom: '10px',
35
+ });
36
+ const input = document.createElement('input');
37
+ input.type = 'text';
38
+ input.placeholder = i18n('schemas.select.optionPlaceholder');
39
+ Object.assign(input.style, inputStyle, { marginRight: '10px' });
40
+ const addButton = document.createElement('button');
41
+ addButton.textContent = '+';
42
+ Object.assign(addButton.style, buttonStyle, {
43
+ width: '25px',
44
+ height: '25px',
45
+ padding: '4px 8px',
46
+ });
47
+ addButton.addEventListener('click', () => {
48
+ const newValue = input.value.trim();
49
+ if (newValue) {
50
+ currentOptions.push(newValue);
51
+ updateSchemas();
52
+ renderOptions();
53
+ input.value = '';
54
+ }
55
+ });
56
+ formContainer.appendChild(input);
57
+ formContainer.appendChild(addButton);
58
+ const optionsList = document.createElement('ul');
59
+ Object.assign(optionsList.style, { listStyle: 'none', padding: '0' });
60
+ const renderOptions = () => {
61
+ optionsList.innerHTML = '';
62
+ currentOptions.forEach((option, index) => {
63
+ const li = document.createElement('li');
64
+ Object.assign(li.style, { display: 'flex', alignItems: 'center', marginBottom: '5px' });
65
+ const optionInput = document.createElement('input');
66
+ optionInput.type = 'text';
67
+ optionInput.value = option;
68
+ Object.assign(optionInput.style, inputStyle, { marginRight: '10px' });
69
+ optionInput.addEventListener('change', () => {
70
+ currentOptions[index] = optionInput.value;
71
+ updateSchemas();
72
+ });
73
+ const removeButton = document.createElement('button');
74
+ removeButton.textContent = 'x';
75
+ Object.assign(removeButton.style, buttonStyle, { padding: '4px 8px' });
76
+ removeButton.addEventListener('click', () => {
77
+ currentOptions.splice(index, 1);
78
+ updateSchemas();
79
+ renderOptions();
80
+ });
81
+ li.appendChild(optionInput);
82
+ li.appendChild(removeButton);
83
+ optionsList.appendChild(li);
84
+ });
85
+ };
86
+ rootElement.appendChild(formContainer);
87
+ rootElement.appendChild(optionsList);
88
+ renderOptions();
89
+ };
90
+ const schema = {
91
+ ui: async (arg) => {
92
+ const { schema, value, onChange, rootElement, mode } = arg;
93
+ await index_js_1.default.ui(Object.assign(arg, { mode: 'viewer' }));
94
+ if (mode !== 'viewer' && !(mode === 'form' && schema.readOnly)) {
95
+ const buttonWidth = 30;
96
+ const selectButton = document.createElement('button');
97
+ selectButton.innerHTML = selectIcon;
98
+ const selectButtonStyle = {
99
+ position: 'absolute',
100
+ zIndex: -1,
101
+ right: `-${buttonWidth}px`,
102
+ top: '0',
103
+ padding: '0',
104
+ margin: '0',
105
+ cursor: 'pointer',
106
+ height: `${buttonWidth}px`,
107
+ width: `${buttonWidth}px`,
108
+ };
109
+ Object.assign(selectButton.style, selectButtonStyle);
110
+ rootElement.appendChild(selectButton);
111
+ const selectElement = document.createElement('select');
112
+ const selectElementStyle = {
113
+ opacity: '0',
114
+ position: 'absolute',
115
+ width: `calc(100% + ${buttonWidth}px)`,
116
+ height: '100%',
117
+ top: '0',
118
+ left: '0',
119
+ appearance: 'initial',
120
+ };
121
+ Object.assign(selectElement.style, selectElementStyle);
122
+ selectElement.value = value;
123
+ selectElement.addEventListener('change', (e) => {
124
+ if (onChange && e.target instanceof HTMLSelectElement) {
125
+ if (onChange)
126
+ onChange({ key: 'content', value: e.target.value });
127
+ }
128
+ });
129
+ // Ensure schema.options is an array before mapping
130
+ const options = Array.isArray(schema.options) ? schema.options : [];
131
+ selectElement.innerHTML = options
132
+ .map((option) => `<option value="${option}" ${option === value ? 'selected' : ''}>${option}</option>`)
133
+ .join('');
134
+ rootElement.appendChild(selectElement);
135
+ }
136
+ },
137
+ pdf: index_js_1.default.pdf,
138
+ propPanel: {
139
+ ...index_js_1.default.propPanel,
140
+ widgets: { ...propPanel_js_1.propPanel.widgets, addOptions },
141
+ schema: (propPanelProps) => {
142
+ if (typeof propPanel_js_1.propPanel.schema !== 'function') {
143
+ throw Error('Oops, is text schema no longer a function?');
144
+ }
145
+ // Safely call the parent schema function with proper type checking
146
+ const parentSchema = propPanel_js_1.propPanel.schema(propPanelProps);
147
+ // Create a type-safe return object
148
+ return {
149
+ ...parentSchema,
150
+ '-------': { type: 'void', widget: 'Divider' },
151
+ optionsContainer: {
152
+ title: propPanelProps.i18n('schemas.select.options'),
153
+ type: 'string',
154
+ widget: 'Card',
155
+ span: 24,
156
+ properties: { options: { widget: 'addOptions', span: 24 } },
157
+ },
158
+ };
159
+ },
160
+ defaultSchema: {
161
+ ...index_js_1.default.propPanel.defaultSchema,
162
+ type: 'select',
163
+ content: 'option1',
164
+ options: ['option1', 'option2'],
165
+ },
166
+ },
167
+ icon: selectIcon,
168
+ };
169
+ exports.default = schema;
170
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/select/index.ts"],"names":[],"mappings":"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"}