@tsed/react-formio 2.3.1 → 3.0.0-alpha.1

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 (339) hide show
  1. package/dist/chunks/index.js +45 -0
  2. package/dist/chunks/index.js.map +1 -0
  3. package/dist/components/actions-table/actionsTable.component.d.ts +10 -11
  4. package/dist/components/actions-table/actionsTable.component.js +53 -0
  5. package/dist/components/actions-table/actionsTable.component.js.map +1 -0
  6. package/dist/components/alert/alert.component.d.ts +5 -6
  7. package/dist/components/alert/alert.component.js +24 -0
  8. package/dist/components/alert/alert.component.js.map +1 -0
  9. package/dist/components/card/card.component.d.ts +6 -7
  10. package/dist/components/card/card.component.js +12 -0
  11. package/dist/components/card/card.component.js.map +1 -0
  12. package/dist/components/form/form.component.d.ts +62 -63
  13. package/dist/components/form/form.component.js +64 -0
  14. package/dist/components/form/form.component.js.map +1 -0
  15. package/dist/components/form/useForm.hook.d.ts +59 -60
  16. package/dist/components/form/useForm.hook.js +64 -0
  17. package/dist/components/form/useForm.hook.js.map +1 -0
  18. package/dist/components/form-access/formAccess.component.d.ts +9 -20
  19. package/dist/components/form-access/formAccess.component.js +95 -0
  20. package/dist/components/form-access/formAccess.component.js.map +1 -0
  21. package/dist/components/form-access/formAccess.schema.d.ts +5 -5
  22. package/dist/components/form-access/formAccess.schema.js +164 -0
  23. package/dist/components/form-access/formAccess.schema.js.map +1 -0
  24. package/dist/components/form-access/formAccess.utils.d.ts +24 -24
  25. package/dist/components/form-access/formAccess.utils.js +68 -0
  26. package/dist/components/form-access/formAccess.utils.js.map +1 -0
  27. package/dist/components/form-action/formAction.component.d.ts +9 -9
  28. package/dist/components/form-action/formAction.component.js +32 -0
  29. package/dist/components/form-action/formAction.component.js.map +1 -0
  30. package/dist/components/form-builder/formBuilder.component.d.ts +53 -53
  31. package/dist/components/form-builder/formBuilder.component.js +142 -0
  32. package/dist/components/form-builder/formBuilder.component.js.map +1 -0
  33. package/dist/components/form-control/formControl.component.d.ts +14 -22
  34. package/dist/components/form-control/formControl.component.js +26 -0
  35. package/dist/components/form-control/formControl.component.js.map +1 -0
  36. package/dist/components/form-edit/formCtas.component.d.ts +28 -28
  37. package/dist/components/form-edit/formCtas.component.js +70 -0
  38. package/dist/components/form-edit/formCtas.component.js.map +1 -0
  39. package/dist/components/form-edit/formEdit.component.d.ts +18 -19
  40. package/dist/components/form-edit/formEdit.component.js +57 -0
  41. package/dist/components/form-edit/formEdit.component.js.map +1 -0
  42. package/dist/components/form-edit/formEdit.reducer.d.ts +10 -10
  43. package/dist/components/form-edit/formEdit.reducer.js +65 -0
  44. package/dist/components/form-edit/formEdit.reducer.js.map +1 -0
  45. package/dist/components/form-edit/formParameters.component.d.ts +34 -34
  46. package/dist/components/form-edit/formParameters.component.js +92 -0
  47. package/dist/components/form-edit/formParameters.component.js.map +1 -0
  48. package/dist/components/form-edit/useFormEdit.hook.d.ts +29 -29
  49. package/dist/components/form-edit/useFormEdit.hook.js +36 -0
  50. package/dist/components/form-edit/useFormEdit.hook.js.map +1 -0
  51. package/dist/components/form-settings/formSettings.component.d.ts +7 -8
  52. package/dist/components/form-settings/formSettings.component.js +38 -0
  53. package/dist/components/form-settings/formSettings.component.js.map +1 -0
  54. package/dist/components/form-settings/formSettings.schema.d.ts +2 -2
  55. package/dist/components/form-settings/formSettings.schema.js +60 -0
  56. package/dist/components/form-settings/formSettings.schema.js.map +1 -0
  57. package/dist/components/form-settings/formSettings.utils.d.ts +8 -8
  58. package/dist/components/form-settings/formSettings.utils.js +23 -0
  59. package/dist/components/form-settings/formSettings.utils.js.map +1 -0
  60. package/dist/components/forms-table/components/formCell.component.d.ts +6 -7
  61. package/dist/components/forms-table/components/formCell.component.js +50 -0
  62. package/dist/components/forms-table/components/formCell.component.js.map +1 -0
  63. package/dist/components/forms-table/formsTable.component.d.ts +10 -11
  64. package/dist/components/forms-table/formsTable.component.js +29 -0
  65. package/dist/components/forms-table/formsTable.component.js.map +1 -0
  66. package/dist/components/index.d.ts +25 -26
  67. package/dist/components/index.js +86 -0
  68. package/dist/components/index.js.map +1 -0
  69. package/dist/components/input-tags/inputTags.component.d.ts +18 -19
  70. package/dist/components/input-tags/inputTags.component.js +37 -0
  71. package/dist/components/input-tags/inputTags.component.js.map +1 -0
  72. package/dist/components/input-text/inputText.component.d.ts +27 -28
  73. package/dist/components/input-text/inputText.component.js +70 -0
  74. package/dist/components/input-text/inputText.component.js.map +1 -0
  75. package/dist/components/loader/loader.component.d.ts +17 -17
  76. package/dist/components/loader/loader.component.js +26 -0
  77. package/dist/components/loader/loader.component.js.map +1 -0
  78. package/dist/components/modal/modal.component.d.ts +15 -15
  79. package/dist/components/modal/modal.component.js +62 -0
  80. package/dist/components/modal/modal.component.js.map +1 -0
  81. package/dist/components/modal/removeModal.component.d.ts +9 -9
  82. package/dist/components/modal/removeModal.component.js +71 -0
  83. package/dist/components/modal/removeModal.component.js.map +1 -0
  84. package/dist/components/pagination/pagination.component.d.ts +17 -18
  85. package/dist/components/pagination/pagination.component.js +87 -0
  86. package/dist/components/pagination/pagination.component.js.map +1 -0
  87. package/dist/components/select/select.component.d.ts +14 -27
  88. package/dist/components/select/select.component.js +60 -0
  89. package/dist/components/select/select.component.js.map +1 -0
  90. package/dist/components/submissions-table/submissionsTable.component.d.ts +6 -7
  91. package/dist/components/submissions-table/submissionsTable.component.js +11 -0
  92. package/dist/components/submissions-table/submissionsTable.component.js.map +1 -0
  93. package/dist/components/table/components/defaultArrowSort.component.d.ts +1 -2
  94. package/dist/components/table/components/defaultArrowSort.component.js +10 -0
  95. package/dist/components/table/components/defaultArrowSort.component.js.map +1 -0
  96. package/dist/components/table/components/defaultCell.component.d.ts +1 -2
  97. package/dist/components/table/components/defaultCell.component.js +11 -0
  98. package/dist/components/table/components/defaultCell.component.js.map +1 -0
  99. package/dist/components/table/components/defaultCellHeader.component.d.ts +5 -6
  100. package/dist/components/table/components/defaultCellHeader.component.js +14 -0
  101. package/dist/components/table/components/defaultCellHeader.component.js.map +1 -0
  102. package/dist/components/table/components/defaultCellOperations.component.d.ts +12 -2
  103. package/dist/components/table/components/defaultCellOperations.component.js +21 -0
  104. package/dist/components/table/components/defaultCellOperations.component.js.map +1 -0
  105. package/dist/components/table/components/defaultCells.component.d.ts +4 -5
  106. package/dist/components/table/components/defaultCells.component.js +23 -0
  107. package/dist/components/table/components/defaultCells.component.js.map +1 -0
  108. package/dist/components/table/components/defaultOperationButton.component.d.ts +15 -14
  109. package/dist/components/table/components/defaultOperationButton.component.js +45 -0
  110. package/dist/components/table/components/defaultOperationButton.component.js.map +1 -0
  111. package/dist/components/table/components/defaultRow.component.d.ts +12 -12
  112. package/dist/components/table/components/defaultRow.component.js +25 -0
  113. package/dist/components/table/components/defaultRow.component.js.map +1 -0
  114. package/dist/components/table/components/dragNDropContainer.d.ts +4 -4
  115. package/dist/components/table/components/dragNDropContainer.js +10 -0
  116. package/dist/components/table/components/dragNDropContainer.js.map +1 -0
  117. package/dist/components/table/filters/defaultColumnFilter.component.d.ts +5 -6
  118. package/dist/components/table/filters/defaultColumnFilter.component.js +32 -0
  119. package/dist/components/table/filters/defaultColumnFilter.component.js.map +1 -0
  120. package/dist/components/table/filters/selectColumnFilter.component.d.ts +10 -11
  121. package/dist/components/table/filters/selectColumnFilter.component.js +34 -0
  122. package/dist/components/table/filters/selectColumnFilter.component.js.map +1 -0
  123. package/dist/components/table/filters/sliderColumnFilter.component.d.ts +2 -3
  124. package/dist/components/table/filters/sliderColumnFilter.component.js +27 -0
  125. package/dist/components/table/filters/sliderColumnFilter.component.js.map +1 -0
  126. package/dist/components/table/hooks/useCustomTable.hook.d.ts +128 -128
  127. package/dist/components/table/hooks/useCustomTable.hook.js +130 -0
  128. package/dist/components/table/hooks/useCustomTable.hook.js.map +1 -0
  129. package/dist/components/table/hooks/useDragnDropRow.hook.d.ts +272 -274
  130. package/dist/components/table/hooks/useDragnDropRow.hook.js +40 -0
  131. package/dist/components/table/hooks/useDragnDropRow.hook.js.map +1 -0
  132. package/dist/components/table/hooks/useOperations.hook.d.ts +11 -11
  133. package/dist/components/table/hooks/useOperations.hook.js +25 -0
  134. package/dist/components/table/hooks/useOperations.hook.js.map +1 -0
  135. package/dist/components/table/index.d.ts +15 -15
  136. package/dist/components/table/index.js +35 -0
  137. package/dist/components/table/index.js.map +1 -0
  138. package/dist/components/table/table.component.d.ts +3 -3
  139. package/dist/components/table/table.component.js +81 -0
  140. package/dist/components/table/table.component.js.map +1 -0
  141. package/dist/components/table/utils/getPageNumbers.d.ts +3 -3
  142. package/dist/components/table/utils/getPageNumbers.js +25 -0
  143. package/dist/components/table/utils/getPageNumbers.js.map +1 -0
  144. package/dist/components/table/utils/mapFormToColumns.d.ts +3 -3
  145. package/dist/components/table/utils/mapFormToColumns.js +23 -0
  146. package/dist/components/table/utils/mapFormToColumns.js.map +1 -0
  147. package/dist/components/table/utils/swapElements.d.ts +1 -1
  148. package/dist/components/table/utils/swapElements.js +5 -0
  149. package/dist/components/table/utils/swapElements.js.map +1 -0
  150. package/dist/components/tabs/tabs.component.d.ts +19 -19
  151. package/dist/components/tabs/tabs.component.js +72 -0
  152. package/dist/components/tabs/tabs.component.js.map +1 -0
  153. package/dist/hooks/useTooltip.d.ts +2 -3
  154. package/dist/hooks/useTooltip.js +12 -0
  155. package/dist/hooks/useTooltip.js.map +1 -0
  156. package/dist/index.d.ts +13 -13
  157. package/dist/index.js +107 -7803
  158. package/dist/index.js.map +1 -1
  159. package/dist/interfaces/ActionSchema.d.ts +23 -23
  160. package/dist/interfaces/ActionSchema.js +2 -0
  161. package/dist/interfaces/ActionSchema.js.map +1 -0
  162. package/dist/interfaces/ColumnIdentifier.d.ts +14 -14
  163. package/dist/interfaces/ColumnIdentifier.js +2 -0
  164. package/dist/interfaces/ColumnIdentifier.js.map +1 -0
  165. package/dist/interfaces/FormOptions.d.ts +10 -10
  166. package/dist/interfaces/FormOptions.js +2 -0
  167. package/dist/interfaces/FormOptions.js.map +1 -0
  168. package/dist/interfaces/FormSchema.d.ts +12 -12
  169. package/dist/interfaces/FormSchema.js +2 -0
  170. package/dist/interfaces/FormSchema.js.map +1 -0
  171. package/dist/interfaces/Operation.d.ts +29 -29
  172. package/dist/interfaces/Operation.js +2 -0
  173. package/dist/interfaces/Operation.js.map +1 -0
  174. package/dist/interfaces/QueryOptions.d.ts +23 -23
  175. package/dist/interfaces/QueryOptions.js +2 -0
  176. package/dist/interfaces/QueryOptions.js.map +1 -0
  177. package/dist/interfaces/RoleSchema.d.ts +6 -6
  178. package/dist/interfaces/RoleSchema.js +2 -0
  179. package/dist/interfaces/RoleSchema.js.map +1 -0
  180. package/dist/interfaces/Submission.d.ts +5 -5
  181. package/dist/interfaces/Submission.js +2 -0
  182. package/dist/interfaces/Submission.js.map +1 -0
  183. package/dist/interfaces/index.d.ts +8 -8
  184. package/dist/interfaces/index.js +2 -0
  185. package/dist/interfaces/index.js.map +1 -0
  186. package/dist/react-app-env.d.js +2 -0
  187. package/dist/react-app-env.d.js.map +1 -0
  188. package/dist/react-table.d.js +2 -0
  189. package/dist/react-table.d.js.map +1 -0
  190. package/dist/typings.d.js +2 -0
  191. package/dist/typings.d.js.map +1 -0
  192. package/dist/utils/callLast.d.ts +1 -1
  193. package/dist/utils/callLast.js +10 -0
  194. package/dist/utils/callLast.js.map +1 -0
  195. package/dist/utils/getEventValue.d.ts +1 -1
  196. package/dist/utils/getEventValue.js +8 -0
  197. package/dist/utils/getEventValue.js.map +1 -0
  198. package/dist/utils/iconClass.d.ts +1 -1
  199. package/dist/utils/iconClass.js +9 -0
  200. package/dist/utils/iconClass.js.map +1 -0
  201. package/dist/utils/mapPagination.d.ts +1 -1
  202. package/dist/utils/mapPagination.js +11 -0
  203. package/dist/utils/mapPagination.js.map +1 -0
  204. package/dist/utils/stopPropagationWrapper.d.ts +1 -1
  205. package/dist/utils/stopPropagationWrapper.js +7 -0
  206. package/dist/utils/stopPropagationWrapper.js.map +1 -0
  207. package/package.json +28 -15
  208. package/src/components/__fixtures__/form-actions.json +240 -0
  209. package/src/components/actions-table/__fixtures__/data.json +12 -0
  210. package/src/components/actions-table/actionsTable.component.spec.tsx +47 -17
  211. package/src/components/actions-table/actionsTable.component.tsx +3 -2
  212. package/src/components/actions-table/actionsTable.stories.tsx +71 -289
  213. package/src/components/alert/alert.component.spec.tsx +0 -1
  214. package/src/components/alert/alert.component.tsx +0 -2
  215. package/src/components/alert/alert.stories.tsx +0 -2
  216. package/src/components/card/card.component.spec.tsx +0 -1
  217. package/src/components/card/card.component.tsx +1 -2
  218. package/src/components/card/card.stories.tsx +0 -2
  219. package/src/components/form/form.component.spec.tsx +1 -1
  220. package/src/components/form/form.component.tsx +0 -1
  221. package/src/components/form/form.stories.tsx +2 -3
  222. package/src/components/form-access/formAccess.component.tsx +2 -13
  223. package/src/components/form-access/formAccess.stories.tsx +55 -49
  224. package/src/components/form-action/formAction.component.tsx +2 -1
  225. package/src/components/form-action/formAction.stories.tsx +0 -2
  226. package/src/components/form-builder/formBuilder.component.tsx +4 -4
  227. package/src/components/form-builder/formBuilder.stories.tsx +0 -2
  228. package/src/components/form-control/formControl.component.spec.tsx +0 -1
  229. package/src/components/form-control/formControl.component.tsx +8 -15
  230. package/src/components/form-control/formControl.stories.tsx +0 -2
  231. package/src/components/form-edit/formCtas.component.tsx +1 -1
  232. package/src/components/form-edit/formEdit.component.tsx +0 -1
  233. package/src/components/form-edit/formEdit.reducer.ts +0 -1
  234. package/src/components/form-edit/formEdit.stories.tsx +0 -2
  235. package/src/components/form-edit/formParameters.component.tsx +1 -1
  236. package/src/components/form-settings/formSettings.component.spec.tsx +5 -6
  237. package/src/components/form-settings/formSettings.component.tsx +1 -1
  238. package/src/components/form-settings/formSettings.stories.tsx +0 -2
  239. package/src/components/forms-table/components/formCell.component.tsx +0 -1
  240. package/src/components/forms-table/formsTable.component.tsx +0 -2
  241. package/src/components/forms-table/formsTable.stories.tsx +0 -1
  242. package/src/components/index.ts +0 -1
  243. package/src/components/input-tags/inputTags.component.tsx +1 -1
  244. package/src/components/input-tags/inputTags.stories.tsx +1 -1
  245. package/src/components/input-text/inputText.component.spec.tsx +0 -1
  246. package/src/components/input-text/inputText.component.tsx +1 -1
  247. package/src/components/input-text/inputText.stories.tsx +1 -1
  248. package/src/components/loader/loader.component.spec.tsx +1 -1
  249. package/src/components/loader/loader.component.tsx +1 -1
  250. package/src/components/loader/loader.stories.tsx +0 -2
  251. package/src/components/modal/modal.component.spec.tsx +2 -5
  252. package/src/components/modal/modal.component.tsx +1 -1
  253. package/src/components/modal/modal.stories.tsx +0 -2
  254. package/src/components/modal/removeModal.component.tsx +1 -1
  255. package/src/components/pagination/pagination.component.spec.tsx +7 -10
  256. package/src/components/pagination/pagination.component.tsx +1 -1
  257. package/src/components/pagination/pagination.stories.tsx +1 -1
  258. package/src/components/select/select.component.spec.tsx +1 -2
  259. package/src/components/select/select.component.tsx +10 -23
  260. package/src/components/select/select.stories.tsx +1 -1
  261. package/src/components/submissions-table/submissionsTable.component.tsx +0 -2
  262. package/src/components/submissions-table/submissionsTable.stories.tsx +4 -4
  263. package/src/components/table/components/defaultArrowSort.component.tsx +0 -2
  264. package/src/components/table/components/defaultCell.component.tsx +0 -2
  265. package/src/components/table/components/defaultCellHeader.component.tsx +0 -1
  266. package/src/components/table/components/defaultCellOperations.component.tsx +16 -5
  267. package/src/components/table/components/defaultCells.component.tsx +0 -1
  268. package/src/components/table/components/defaultOperationButton.component.tsx +14 -4
  269. package/src/components/table/components/defaultRow.component.tsx +2 -1
  270. package/src/components/table/components/dragNDropContainer.tsx +1 -1
  271. package/src/components/table/filters/defaultColumnFilter.component.spec.tsx +2 -5
  272. package/src/components/table/filters/defaultColumnFilter.component.tsx +2 -1
  273. package/src/components/table/filters/selectColumnFilter.component.spec.tsx +3 -6
  274. package/src/components/table/filters/selectColumnFilter.component.tsx +0 -1
  275. package/src/components/table/filters/sliderColumnFilter.component.tsx +7 -10
  276. package/src/components/table/hooks/useCustomTable.hook.tsx +16 -20
  277. package/src/components/table/hooks/useOperations.hook.tsx +3 -3
  278. package/src/components/table/table.component.tsx +1 -1
  279. package/src/components/table/table.stories.tsx +8 -8
  280. package/src/components/table/utils/mapFormToColumns.tsx +0 -1
  281. package/src/components/tabs/tabs.component.spec.tsx +2 -2
  282. package/src/components/tabs/tabs.component.stories.tsx +1 -1
  283. package/src/components/tabs/tabs.component.tsx +1 -1
  284. package/src/react-table.d.ts +2 -0
  285. package/src/utils/iconClass.ts +3 -1
  286. package/tsconfig.app.json +11 -0
  287. package/tsconfig.json +8 -6
  288. package/tsconfig.spec.json +14 -0
  289. package/vite.config.mts +69 -0
  290. package/vitest.config.mts +21 -0
  291. package/.eslintignore +0 -13
  292. package/.eslintrc.js +0 -7
  293. package/coverage.json +0 -6
  294. package/dist/components/actions-table/actionsTable.component.spec.d.ts +0 -1
  295. package/dist/components/actions-table/actionsTable.stories.d.ts +0 -85
  296. package/dist/components/alert/alert.component.spec.d.ts +0 -1
  297. package/dist/components/alert/alert.stories.d.ts +0 -15
  298. package/dist/components/card/card.component.spec.d.ts +0 -1
  299. package/dist/components/card/card.stories.d.ts +0 -16
  300. package/dist/components/form/form.component.spec.d.ts +0 -1
  301. package/dist/components/form/form.stories.d.ts +0 -6445
  302. package/dist/components/form-access/formAccess.stories.d.ts +0 -62
  303. package/dist/components/form-access/formAccess.utils.spec.d.ts +0 -1
  304. package/dist/components/form-action/formAction.stories.d.ts +0 -409
  305. package/dist/components/form-builder/formBuilder.stories.d.ts +0 -5989
  306. package/dist/components/form-control/formControl.component.spec.d.ts +0 -1
  307. package/dist/components/form-control/formControl.stories.d.ts +0 -58
  308. package/dist/components/form-edit/formEdit.stories.d.ts +0 -396
  309. package/dist/components/form-settings/formSettings.component.spec.d.ts +0 -1
  310. package/dist/components/form-settings/formSettings.stories.d.ts +0 -58
  311. package/dist/components/form-settings/formSettings.utils.spec.d.ts +0 -1
  312. package/dist/components/forms-table/formsTable.stories.d.ts +0 -117
  313. package/dist/components/input-tags/inputTags.stories.d.ts +0 -76
  314. package/dist/components/input-text/inputText.component.spec.d.ts +0 -1
  315. package/dist/components/input-text/inputText.stories.d.ts +0 -101
  316. package/dist/components/loader/loader.component.spec.d.ts +0 -1
  317. package/dist/components/loader/loader.stories.d.ts +0 -15
  318. package/dist/components/modal/modal.component.spec.d.ts +0 -1
  319. package/dist/components/modal/modal.stories.d.ts +0 -44
  320. package/dist/components/pagination/pagination.component.spec.d.ts +0 -1
  321. package/dist/components/pagination/pagination.stories.d.ts +0 -16
  322. package/dist/components/react-component/reactComponent.component.d.ts +0 -90
  323. package/dist/components/select/select.component.spec.d.ts +0 -1
  324. package/dist/components/select/select.stories.d.ts +0 -164
  325. package/dist/components/submissions-table/submissionsTable.stories.d.ts +0 -649
  326. package/dist/components/table/filters/defaultColumnFilter.component.spec.d.ts +0 -1
  327. package/dist/components/table/filters/selectColumnFilter.component.spec.d.ts +0 -1
  328. package/dist/components/table/table.stories.d.ts +0 -71
  329. package/dist/components/table/utils/swapElements.spec.d.ts +0 -1
  330. package/dist/components/tabs/tabs.component.spec.d.ts +0 -1
  331. package/dist/components/tabs/tabs.component.stories.d.ts +0 -47
  332. package/dist/index.modern.js +0 -7453
  333. package/dist/index.modern.js.map +0 -1
  334. package/dist/package.json +0 -3
  335. package/dist/setupTests.d.ts +0 -1
  336. package/jest.config.js +0 -6
  337. package/src/components/react-component/reactComponent.component.tsx +0 -197
  338. package/src/setupTests.tsx +0 -5
  339. package/tsconfig.node.json +0 -8
@@ -1,5 +1,8 @@
1
- import React from "react";
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { expect, fn, userEvent, within } from "@storybook/test";
2
3
 
4
+ import availableActions from "../__fixtures__/form-actions.json";
5
+ import data from "./__fixtures__/data.json";
3
6
  import { ActionsTable } from "./actionsTable.component";
4
7
 
5
8
  export default {
@@ -21,11 +24,6 @@ export default {
21
24
  type: "boolean"
22
25
  }
23
26
  },
24
- isEmpty: {
25
- control: {
26
- type: "boolean"
27
- }
28
- },
29
27
  disableFilters: {
30
28
  control: {
31
29
  type: "boolean"
@@ -36,296 +34,80 @@ export default {
36
34
  type: "boolean"
37
35
  }
38
36
  },
39
- tags: {
40
- control: {
41
- type: "object"
42
- }
43
- },
44
37
  onAddAction: {
45
38
  action: "onAddAction"
46
39
  }
47
40
  },
48
41
  parameters: {}
49
- };
42
+ } satisfies Meta<typeof ActionsTable>;
50
43
 
51
- export const Sandbox = (args: any) => {
52
- return <ActionsTable {...args} data={args.isEmpty ? [] : args.data} />;
53
- };
44
+ type Story = StoryObj<typeof ActionsTable>;
54
45
 
55
- Sandbox.args = {
56
- icon: "server",
57
- availableActions: [
58
- {
59
- name: "email",
60
- title: "Email",
61
- description: "Allows you to email people on submission.",
62
- priority: 0,
63
- defaults: {
64
- handler: ["after"],
65
- method: ["create"],
66
- priority: 0,
67
- name: "email",
68
- title: "Email"
69
- }
70
- },
71
- {
72
- name: "webhook",
73
- title: "Webhook (Premium)",
74
- description: "Allows you to trigger an external interface.",
75
- priority: 0,
76
- defaults: {
77
- handler: ["after"],
78
- method: ["create", "update", "delete"],
79
- priority: 0,
80
- name: "webhook",
81
- title: "Webhook (Premium)"
82
- },
83
- premium: true
84
- },
85
- {
86
- name: "sql",
87
- title: "SQL Query",
88
- description: "Allows you to execute a remote SQL Query.",
89
- priority: 0,
90
- defaults: {
91
- handler: ["after"],
92
- method: ["create"],
93
- priority: 0,
94
- name: "sql",
95
- title: "SQL Query"
96
- }
97
- },
98
- {
99
- name: "role",
100
- title: "Role Assignment",
101
- description: "Provides the Role Assignment capabilities.",
102
- priority: 1,
103
- defaults: {
104
- handler: ["after"],
105
- method: ["create"],
106
- priority: 1,
107
- name: "role",
108
- title: "Role Assignment"
109
- },
110
- access: { handler: false, method: false }
111
- },
112
- {
113
- name: "resetpass",
114
- title: "Reset Password",
115
- description: "Provides a way to reset a password field.",
116
- defaults: {
117
- handler: ["after", "before"],
118
- method: ["form", "create"],
119
- priority: 0,
120
- name: "resetpass",
121
- title: "Reset Password"
122
- },
123
- access: { handler: false, method: false }
124
- },
125
- {
126
- name: "save",
127
- title: "Save Submission",
128
- description: "Saves the submission into the database.",
129
- priority: 10,
130
- defaults: {
131
- handler: ["before"],
132
- method: ["create", "update"],
133
- priority: 10,
134
- name: "save",
135
- title: "Save Submission"
136
- },
137
- access: { handler: false, method: false }
138
- },
139
- {
140
- name: "login",
141
- title: "Login",
142
- description: "Provides a way to login to the application.",
143
- priority: 2,
144
- defaults: {
145
- handler: ["before"],
146
- method: ["create"],
147
- priority: 2,
148
- name: "login",
149
- title: "Login"
150
- },
151
- access: { handler: false, method: false }
152
- },
153
- {
154
- name: "office365contact",
155
- title: "Office 365 Contacts (Premium)",
156
- description: "Allows you to integrate into your Office 365 Contacts.",
157
- priority: 0,
158
- defaults: {
159
- handler: ["after"],
160
- method: ["create", "update", "delete"],
161
- priority: 0,
162
- name: "office365contact",
163
- title: "Office 365 Contacts (Premium)"
164
- },
165
- premium: true
166
- },
167
- {
168
- name: "office365calendar",
169
- title: "Office 365 Calendar (Premium)",
170
- description: "Allows you to integrate into your Office 365 Calendar.",
171
- premium: true,
172
- priority: 0,
173
- defaults: {
174
- handler: ["after"],
175
- method: ["create", "update", "delete"],
176
- priority: 0,
177
- name: "office365calendar",
178
- title: "Office 365 Calendar (Premium)"
179
- }
180
- },
181
- {
182
- name: "hubspotContact",
183
- title: "Hubspot Contact (Premium)",
184
- description: "Allows you to change contact fields in hubspot.",
185
- priority: 0,
186
- defaults: {
187
- handler: ["after"],
188
- method: ["create"],
189
- priority: 0,
190
- name: "hubspotContact",
191
- title: "Hubspot Contact (Premium)"
192
- },
193
- premium: true
194
- },
195
- {
196
- name: "oauth",
197
- title: "OAuth (Premium)",
198
- description: "Provides OAuth authentication behavior to this form.",
199
- priority: 20,
200
- defaults: {
201
- handler: ["after"],
202
- method: ["form", "create"],
203
- priority: 20,
204
- name: "oauth",
205
- title: "OAuth (Premium)"
206
- },
207
- premium: true
208
- },
209
- {
210
- name: "ldap",
211
- title: "LDAP Login (Premium)",
212
- description: "Provides ldap login.",
213
- priority: 3,
214
- defaults: {
215
- handler: ["before"],
216
- method: ["create"],
217
- priority: 3,
218
- name: "ldap",
219
- title: "LDAP Login (Premium)"
220
- },
221
- premium: true
222
- },
223
- {
224
- name: "googlesheet",
225
- title: "Google Sheets (Premium)",
226
- description: "Allows you to integrate data into Google sheets.",
227
- priority: 0,
228
- defaults: {
229
- handler: ["after"],
230
- method: ["create", "update", "delete"],
231
- priority: 0,
232
- name: "googlesheet",
233
- title: "Google Sheets (Premium)"
234
- },
235
- premium: true
236
- },
237
- {
238
- name: "sqlconnector",
239
- title: "SQL Connector (Premium)",
240
- description: "Allows you to execute a remote SQL Query via Resquel.",
241
- priority: 0,
242
- defaults: {
243
- handler: ["after"],
244
- method: ["create", "update", "delete"],
245
- priority: 0,
246
- name: "sqlconnector",
247
- title: "SQL Connector (Premium)"
248
- },
249
- premium: true
250
- },
251
- {
252
- name: "jira",
253
- title: "Jira (Premium)",
254
- description: "Allows you to create issues within Jira.",
255
- priority: 0,
256
- defaults: {
257
- handler: ["after"],
258
- method: ["create", "update", "delete"],
259
- priority: 0,
260
- name: "jira",
261
- title: "Jira (Premium)"
262
- },
263
- premium: true
264
- },
265
- {
266
- name: "group",
267
- title: "Group Assignment (Premium)",
268
- premium: true,
269
- description: "Provides the Group Assignment capabilities.",
270
- priority: 5,
271
- defaults: {
272
- handler: ["after"],
273
- method: ["create", "update", "delete"],
274
- priority: 5,
275
- name: "group",
276
- title: "Group Assignment (Premium)"
46
+ export const Sandbox: Story = {
47
+ async play({ canvasElement, args }) {
48
+ const canvas = within(canvasElement);
49
+
50
+ const select = canvas.getByTestId("action-table-select");
51
+ const addButton = canvas.getByTestId("action-table-add");
52
+
53
+ expect(addButton).toHaveAttribute("disabled");
54
+
55
+ await userEvent.selectOptions(select, "save", {
56
+ delay: 100
57
+ });
58
+
59
+ await userEvent.click(addButton);
60
+
61
+ expect(args.onAddAction).toHaveBeenCalledWith("save");
62
+
63
+ const editButton = await canvas.getByRole("button", { name: /Operation button: Edit/i });
64
+ const deleteButton = await canvas.getByRole("button", { name: /Operation button: delete/i });
65
+
66
+ expect(editButton).toBeInTheDocument();
67
+ expect(deleteButton).toBeInTheDocument();
68
+
69
+ await userEvent.click(editButton);
70
+
71
+ expect(args.onClick).toHaveBeenCalledWith(
72
+ args.data[0],
73
+ args.operations!.find(({ action }) => action === "edit")
74
+ );
75
+
76
+ await userEvent.click(deleteButton);
77
+
78
+ expect(args.onClick).toHaveBeenCalledWith(
79
+ args.data[0],
80
+ args.operations!.find(({ action }) => action === "delete")
81
+ );
82
+ },
83
+ args: {
84
+ onAddAction: fn(),
85
+ onClick: fn(),
86
+ availableActions: availableActions.map(({ name, title }) => ({
87
+ label: title,
88
+ value: name
89
+ })),
90
+ data: data as never,
91
+ operations: [
92
+ {
93
+ title: "Edit",
94
+ action: "edit",
95
+ alias: "row",
96
+ path: "/resources/:resourceId/submissions/:submissionId",
97
+ icon: "edit",
98
+ permissionsResolver() {
99
+ return true;
100
+ }
277
101
  },
278
- access: { handler: false, method: false }
279
- },
280
- {
281
- name: "twilioSMS",
282
- title: "Twilio SMS (Premium)",
283
- premium: true,
284
- description: "Allows you to send SMS to phone numbers.",
285
- priority: 0,
286
- defaults: {
287
- handler: ["after"],
288
- method: ["create"],
289
- priority: 0,
290
- name: "twilioSMS",
291
- title: "Twilio SMS (Premium)"
292
- }
293
- }
294
- ].map(({ name, title }) => ({
295
- label: title,
296
- value: name
297
- })),
298
- data: [
299
- {
300
- _id: "602967600685b2158b24e99a",
301
- handler: ["before"],
302
- method: ["create", "update"],
303
- priority: 10,
304
- name: "save",
305
- title: "Save Submission",
306
- form: "602967600685b24dbe24e999",
307
- machineName: "tcspjwhsevrzpcd:testForm:save"
308
- }
309
- ],
310
- operations: [
311
- {
312
- title: "Edit",
313
- action: "edit",
314
- alias: "row",
315
- path: "/resources/:resourceId/submissions/:submissionId",
316
- icon: "edit",
317
- permissionsResolver() {
318
- return true;
102
+ {
103
+ action: "delete",
104
+ path: "/resources/:resourceId/submissions/:submissionId/delete",
105
+ icon: "trash",
106
+ buttonType: "danger",
107
+ permissionsResolver() {
108
+ return true;
109
+ }
319
110
  }
320
- },
321
- {
322
- action: "delete",
323
- path: "/resources/:resourceId/submissions/:submissionId/delete",
324
- icon: "trash",
325
- buttonType: "danger",
326
- permissionsResolver() {
327
- return true;
328
- }
329
- }
330
- ]
111
+ ]
112
+ }
331
113
  };
@@ -1,5 +1,4 @@
1
1
  import { render, screen } from "@testing-library/react";
2
- import React from "react";
3
2
 
4
3
  import { Sandbox } from "./alert.stories";
5
4
 
@@ -1,5 +1,3 @@
1
- import React from "react";
2
-
3
1
  function formatError(error: any): any {
4
2
  if (typeof error === "string") {
5
3
  return error;
@@ -1,5 +1,3 @@
1
- import React from "react";
2
-
3
1
  import { Alert } from "./alert.component";
4
2
 
5
3
  export default {
@@ -1,5 +1,4 @@
1
1
  import { render, screen } from "@testing-library/react";
2
- import React from "react";
3
2
 
4
3
  import { Sandbox } from "./card.stories";
5
4
 
@@ -1,8 +1,7 @@
1
1
  import classnames from "classnames";
2
- import React, { PropsWithChildren } from "react";
2
+ import { PropsWithChildren } from "react";
3
3
 
4
4
  export interface CardProps {
5
- children: React.ReactNode;
6
5
  label: string;
7
6
  className?: string;
8
7
  }
@@ -1,5 +1,3 @@
1
- import React from "react";
2
-
3
1
  import { Card } from "./card.component";
4
2
 
5
3
  export default {
@@ -4,7 +4,7 @@ import { render } from "@testing-library/react";
4
4
  import { Form } from "./form.component";
5
5
 
6
6
  async function createFixture(props: any = {}) {
7
- const onSubmit = jest.fn();
7
+ const onSubmit = vi.fn();
8
8
  const form = {
9
9
  type: "form",
10
10
  display: "form",
@@ -1,7 +1,6 @@
1
1
  import { Components } from "formiojs";
2
2
  import AllComponents from "formiojs/components";
3
3
  import PropTypes from "prop-types";
4
- import React from "react";
5
4
 
6
5
  import { useForm, UseFormHookProps } from "./useForm.hook";
7
6
 
@@ -1,6 +1,5 @@
1
- import React, { useState } from "react";
1
+ import { useState } from "react";
2
2
 
3
- import { Submission } from "../../interfaces";
4
3
  import form from "../__fixtures__/form.fixture.json";
5
4
  import { Form } from "./form.component";
6
5
 
@@ -123,7 +122,7 @@ export const Sandbox = {
123
122
 
124
123
  export const TriggerError = {
125
124
  render: (args: any) => {
126
- const onAsyncSubmit = (submission: Submission) => {
125
+ const onAsyncSubmit = () => {
127
126
  return new Promise((resolve, reject) => {
128
127
  setTimeout(() => {
129
128
  reject(new Error("server error"));
@@ -1,5 +1,4 @@
1
- import PropTypes from "prop-types";
2
- import React, { PropsWithChildren, ReactElement, useCallback, useEffect, useMemo, useState } from "react";
1
+ import { PropsWithChildren, useCallback, useEffect, useMemo, useState } from "react";
3
2
 
4
3
  import type { FormOptions, FormSchema, Submission } from "../../interfaces";
5
4
  import { Card } from "../card/card.component";
@@ -24,7 +23,6 @@ export interface FormAccessProps {
24
23
  }
25
24
 
26
25
  function useFormAccess({ form: formDefinition, roles, onSubmit, options }: FormAccessProps) {
27
- // eslint-disable-next-line no-undef
28
26
  const form = useMemo(() => getFormAccess(roles), [roles]);
29
27
 
30
28
  const [submissions, setSubmissions] = useState(() => dataAccessToSubmissions(formDefinition, form));
@@ -96,7 +94,7 @@ function NamedFormAccess({ name, form, submissions, options, onChange, onSubmit,
96
94
  );
97
95
  }
98
96
 
99
- export function FormAccess(props: PropsWithChildren<FormAccessProps>): ReactElement {
97
+ export function FormAccess(props: PropsWithChildren<FormAccessProps>) {
100
98
  const { type, form, submissions, options, onChange, onSubmit } = useFormAccess(props);
101
99
 
102
100
  return (
@@ -155,12 +153,3 @@ export function FormAccess(props: PropsWithChildren<FormAccessProps>): ReactElem
155
153
  </div>
156
154
  );
157
155
  }
158
-
159
- FormAccess.propTypes = {
160
- type: PropTypes.string.isRequired,
161
- form: PropTypes.object,
162
- roles: PropTypes.any,
163
- children: PropTypes.any,
164
- options: PropTypes.any,
165
- onSubmit: PropTypes.func
166
- };
@@ -1,4 +1,5 @@
1
- import React from "react";
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { expect, fn, userEvent, within } from "@storybook/test";
2
3
 
3
4
  import { FormAccess } from "./formAccess.component";
4
5
 
@@ -6,17 +7,7 @@ export default {
6
7
  title: "ReactFormio/FormAccess",
7
8
  component: FormAccess,
8
9
  argTypes: {
9
- onSubmit: { action: "onSubmit" },
10
- actionInfo: {
11
- control: {
12
- type: "object"
13
- }
14
- },
15
- options: {
16
- control: {
17
- type: "object"
18
- }
19
- }
10
+ onSubmit: { action: "onSubmit" }
20
11
  },
21
12
  parameters: {
22
13
  docs: {
@@ -25,45 +16,60 @@ export default {
25
16
  }
26
17
  }
27
18
  }
28
- };
19
+ } satisfies Meta<typeof FormAccess>;
29
20
 
30
- export const Sandbox = (args: any) => {
31
- // @ts-ignore
32
- return <FormAccess {...args} options={{ template: "tailwind", iconset: "bx" }} />;
33
- };
21
+ type Story = StoryObj<typeof FormAccess>;
34
22
 
35
- Sandbox.args = {
36
- form: {
37
- _id: "6023f8fe4b1a2ab9a3aae096",
38
- type: "form",
39
- tags: [],
40
- owner: "5d0797a382461b6656d2c790",
41
- access: [
42
- {
43
- roles: ["5d0797bc872fc747da559858", "5d0797bc872fc71d05559859", "5d0797bc872fc7da3b55985a"],
44
- type: "read_all"
45
- }
46
- ],
47
- submissionAccess: [
48
- {
49
- roles: ["5d0797bc872fc747da559858"],
50
- type: "read_all"
51
- }
52
- ],
53
- controller: "",
54
- properties: {},
55
- settings: {},
56
- name: "textField",
57
- path: "textfield",
58
- machineName: "tcspjwhsevrzpcd:textField"
23
+ export const Sandbox: Story = {
24
+ play: async ({ canvasElement, args }) => {
25
+ const canvas = within(canvasElement);
26
+
27
+ // Vérifiez que le bouton "Save access" est présent
28
+ const saveButtons = await canvas.getAllByRole("button", { name: /Save access/i });
29
+ const saveButton = saveButtons[0];
30
+
31
+ expect(saveButton).toBeInTheDocument();
32
+
33
+ // Simulez un clic sur le bouton "Save access"
34
+ await userEvent.click(saveButton);
35
+
36
+ // Vérifiez que l'action onSubmit a été appelée
37
+ expect(args.onSubmit).toHaveBeenCalled();
59
38
  },
60
- roles: [
61
- {
62
- title: "Administrator",
63
- _id: "5d0797bc872fc747da559858"
39
+ args: {
40
+ onSubmit: fn(),
41
+ form: {
42
+ _id: "6023f8fe4b1a2ab9a3aae096",
43
+ type: "form",
44
+ tags: [],
45
+ owner: "5d0797a382461b6656d2c790",
46
+ access: [
47
+ {
48
+ roles: ["5d0797bc872fc747da559858", "5d0797bc872fc71d05559859", "5d0797bc872fc7da3b55985a"],
49
+ type: "read_all"
50
+ }
51
+ ],
52
+ submissionAccess: [
53
+ {
54
+ roles: ["5d0797bc872fc747da559858"],
55
+ type: "read_all"
56
+ }
57
+ ],
58
+ controller: "",
59
+ properties: {},
60
+ settings: {},
61
+ name: "textField",
62
+ path: "textfield",
63
+ machineName: "tcspjwhsevrzpcd:textField"
64
64
  },
65
- { title: "Authenticated", _id: "5d0797bc872fc71d05559859" },
66
- { title: "Anonymous", _id: "5d0797bc872fc7da3b55985a" }
67
- ],
68
- options: { template: "tailwind", iconset: "bx" }
65
+ roles: [
66
+ {
67
+ title: "Administrator",
68
+ _id: "5d0797bc872fc747da559858"
69
+ },
70
+ { title: "Authenticated", _id: "5d0797bc872fc71d05559859" },
71
+ { title: "Anonymous", _id: "5d0797bc872fc7da3b55985a" }
72
+ ],
73
+ options: { template: "tailwind", iconset: "bx" }
74
+ }
69
75
  };
@@ -1,5 +1,5 @@
1
1
  import FormioUtils from "formiojs/utils";
2
- import React, { PropsWithChildren, ReactElement } from "react";
2
+ import { PropsWithChildren, ReactElement } from "react";
3
3
 
4
4
  import { ActionDefaultsSchema, ActionSchema, FormOptions, Submission } from "../../interfaces";
5
5
  import { Form } from "../form/form.component";
@@ -11,6 +11,7 @@ function mapData(options: any, defaults: ActionDefaultsSchema): any {
11
11
  };
12
12
  }
13
13
 
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
15
  function mapSettingsForm({ action, ...settingsForm }: any): any {
15
16
  FormioUtils.eachComponent(settingsForm.components, (component: any) => {
16
17
  const resourceExclude = "";
@@ -1,5 +1,3 @@
1
- import React from "react";
2
-
3
1
  import { FormAction } from "./formAction.component";
4
2
 
5
3
  export default {
@@ -1,5 +1,3 @@
1
- /* eslint-disable jsx-a11y/no-static-element-interactions */
2
- /* eslint-disable jsx-a11y/click-events-have-key-events */
3
1
  import { ComponentSchema } from "formiojs";
4
2
  import AllComponents from "formiojs/components";
5
3
  import Components from "formiojs/components/Components";
@@ -7,7 +5,7 @@ import FormioFormBuilder from "formiojs/FormBuilder";
7
5
  import cloneDeep from "lodash/cloneDeep";
8
6
  import noop from "lodash/noop";
9
7
  import PropTypes from "prop-types";
10
- import React from "react";
8
+ import { Component } from "react";
11
9
 
12
10
  import { callLast } from "../../utils/callLast";
13
11
 
@@ -73,7 +71,7 @@ export interface FormBuilderProps {
73
71
  onPasteComponent?: Function;
74
72
  }
75
73
 
76
- export class FormBuilder extends React.Component<FormBuilderProps, any> {
74
+ export class FormBuilder extends Component<FormBuilderProps, any> {
77
75
  static defaultProps = {
78
76
  options: {},
79
77
  onChange: noop,
@@ -180,6 +178,8 @@ export class FormBuilder extends React.Component<FormBuilderProps, any> {
180
178
  });
181
179
  }
182
180
 
181
+ /* eslint-disable jsx-a11y/no-static-element-interactions */
182
+ /* eslint-disable jsx-a11y/click-events-have-key-events */
183
183
  render() {
184
184
  return (
185
185
  <div