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

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 (561) hide show
  1. package/dist/atoms/icon/Icon.d.ts +6 -0
  2. package/dist/atoms/icon/Icon.js +12 -0
  3. package/dist/atoms/icon/Icon.js.map +1 -0
  4. package/dist/chunks/_commonjsHelpers.js +7 -0
  5. package/dist/chunks/_commonjsHelpers.js.map +1 -0
  6. package/dist/chunks/index.js +16 -18
  7. package/dist/chunks/index.js.map +1 -1
  8. package/dist/chunks/index.module.js +56 -0
  9. package/dist/chunks/index.module.js.map +1 -0
  10. package/dist/chunks/react-select-animated.esm.js +3513 -0
  11. package/dist/chunks/react-select-animated.esm.js.map +1 -0
  12. package/dist/index.d.ts +0 -6
  13. package/dist/index.js +12 -105
  14. package/dist/index.js.map +1 -1
  15. package/dist/interfaces/ActionType.d.ts +23 -0
  16. package/dist/interfaces/ActionType.js +2 -0
  17. package/dist/interfaces/ActionType.js.map +1 -0
  18. package/dist/interfaces/ComponentType.d.ts +2 -0
  19. package/dist/interfaces/ComponentType.js +2 -0
  20. package/dist/interfaces/ComponentType.js.map +1 -0
  21. package/dist/interfaces/FormOptions.d.ts +3 -0
  22. package/dist/interfaces/{FormSchema.d.ts → FormType.d.ts} +3 -3
  23. package/dist/interfaces/FormType.js +2 -0
  24. package/dist/interfaces/FormType.js.map +1 -0
  25. package/dist/interfaces/Operation.d.ts +1 -2
  26. package/dist/interfaces/{RoleSchema.d.ts → RoleType.d.ts} +1 -1
  27. package/dist/interfaces/RoleType.js +2 -0
  28. package/dist/interfaces/RoleType.js.map +1 -0
  29. package/dist/interfaces/SubmissionType.d.ts +29 -0
  30. package/dist/interfaces/SubmissionType.js +2 -0
  31. package/dist/interfaces/SubmissionType.js.map +1 -0
  32. package/dist/interfaces/index.d.ts +5 -4
  33. package/dist/molecules/alert/Alert.d.ts +6 -0
  34. package/dist/{components/alert/alert.component.js → molecules/alert/Alert.js} +10 -7
  35. package/dist/molecules/alert/Alert.js.map +1 -0
  36. package/dist/molecules/button/Button.d.ts +8 -0
  37. package/dist/molecules/button/Button.js +52 -0
  38. package/dist/molecules/button/Button.js.map +1 -0
  39. package/dist/molecules/card/Card.js +12 -0
  40. package/dist/molecules/card/Card.js.map +1 -0
  41. package/dist/molecules/forms/form-control/FormControl.d.ts +17 -0
  42. package/dist/molecules/forms/form-control/FormControl.js +51 -0
  43. package/dist/molecules/forms/form-control/FormControl.js.map +1 -0
  44. package/dist/molecules/forms/input-tags/InputTags.d.ts +2 -0
  45. package/dist/molecules/forms/input-tags/InputTags.interface.d.ts +7 -0
  46. package/dist/molecules/forms/input-tags/InputTags.interface.js +2 -0
  47. package/dist/molecules/forms/input-tags/InputTags.interface.js.map +1 -0
  48. package/dist/molecules/forms/input-tags/InputTags.js +25 -0
  49. package/dist/molecules/forms/input-tags/InputTags.js.map +1 -0
  50. package/dist/molecules/forms/input-tags/all.d.ts +2 -0
  51. package/dist/molecules/forms/input-tags/all.js +9 -0
  52. package/dist/molecules/forms/input-tags/all.js.map +1 -0
  53. package/dist/molecules/forms/input-tags/components/ChoicesTags.d.ts +307 -0
  54. package/dist/molecules/forms/input-tags/components/ChoicesTags.js +51 -0
  55. package/dist/molecules/forms/input-tags/components/ChoicesTags.js.map +1 -0
  56. package/dist/molecules/forms/input-tags/components/ReactTags.d.ts +2 -0
  57. package/dist/molecules/forms/input-tags/components/ReactTags.js +1937 -0
  58. package/dist/molecules/forms/input-tags/components/ReactTags.js.map +1 -0
  59. package/dist/molecules/forms/input-text/InputText.d.ts +2 -0
  60. package/dist/molecules/forms/input-text/InputText.interface.d.ts +4 -0
  61. package/dist/molecules/forms/input-text/InputText.interface.js +2 -0
  62. package/dist/molecules/forms/input-text/InputText.interface.js.map +1 -0
  63. package/dist/molecules/forms/input-text/InputText.js +54 -0
  64. package/dist/molecules/forms/input-text/InputText.js.map +1 -0
  65. package/dist/molecules/forms/select/Select.d.ts +2 -0
  66. package/dist/molecules/forms/select/Select.interface.d.ts +38 -0
  67. package/dist/molecules/forms/select/Select.interface.js +2 -0
  68. package/dist/molecules/forms/select/Select.interface.js.map +1 -0
  69. package/dist/molecules/forms/select/Select.js +16 -0
  70. package/dist/molecules/forms/select/Select.js.map +1 -0
  71. package/dist/molecules/forms/select/all.d.ts +2 -0
  72. package/dist/molecules/forms/select/all.js +9 -0
  73. package/dist/molecules/forms/select/all.js.map +1 -0
  74. package/dist/molecules/forms/select/components/ChoicesSelect.d.ts +7 -0
  75. package/dist/molecules/forms/select/components/ChoicesSelect.js +115 -0
  76. package/dist/molecules/forms/select/components/ChoicesSelect.js.map +1 -0
  77. package/dist/molecules/forms/select/components/HtmlSelect.d.ts +2 -0
  78. package/dist/molecules/forms/select/components/HtmlSelect.js +35 -0
  79. package/dist/molecules/forms/select/components/HtmlSelect.js.map +1 -0
  80. package/dist/molecules/forms/select/components/ReactSelect.d.ts +2 -0
  81. package/dist/molecules/forms/select/components/ReactSelect.js +46 -0
  82. package/dist/molecules/forms/select/components/ReactSelect.js.map +1 -0
  83. package/dist/molecules/forms/select/components/choices.template.d.ts +7 -0
  84. package/dist/molecules/forms/select/components/choices.template.js +9654 -0
  85. package/dist/molecules/forms/select/components/choices.template.js.map +1 -0
  86. package/dist/molecules/forms/select/hooks/useOptions.d.ts +9 -0
  87. package/dist/molecules/forms/select/hooks/useOptions.js +35 -0
  88. package/dist/molecules/forms/select/hooks/useOptions.js.map +1 -0
  89. package/dist/{components/loader/loader.component.d.ts → molecules/loader/Loader.d.ts} +0 -9
  90. package/dist/molecules/loader/Loader.js +19 -0
  91. package/dist/molecules/loader/Loader.js.map +1 -0
  92. package/dist/{components/modal/modal.component.js → molecules/modal/Modal.js} +1 -1
  93. package/dist/molecules/modal/Modal.js.map +1 -0
  94. package/dist/{components/pagination/pagination.component.d.ts → molecules/pagination/Pagination.d.ts} +6 -5
  95. package/dist/molecules/pagination/Pagination.js +77 -0
  96. package/dist/molecules/pagination/Pagination.js.map +1 -0
  97. package/dist/molecules/pagination/PaginationButton.d.ts +7 -0
  98. package/dist/molecules/pagination/PaginationButton.js +21 -0
  99. package/dist/molecules/pagination/PaginationButton.js.map +1 -0
  100. package/dist/molecules/pagination/all.d.ts +2 -0
  101. package/dist/molecules/pagination/all.js +12 -0
  102. package/dist/molecules/pagination/all.js.map +1 -0
  103. package/dist/molecules/pagination/utils/getPageNumbers.js.map +1 -0
  104. package/dist/molecules/table/Table.d.ts +9 -0
  105. package/dist/molecules/table/Table.js +58 -0
  106. package/dist/molecules/table/Table.js.map +1 -0
  107. package/dist/molecules/table/all.d.ts +0 -0
  108. package/dist/molecules/table/all.js +19 -0
  109. package/dist/molecules/table/all.js.map +1 -0
  110. package/dist/molecules/table/components/DefaultArrowSort.d.ts +5 -0
  111. package/dist/molecules/table/components/DefaultArrowSort.js +22 -0
  112. package/dist/molecules/table/components/DefaultArrowSort.js.map +1 -0
  113. package/dist/molecules/table/components/DefaultCell.d.ts +5 -0
  114. package/dist/molecules/table/components/DefaultCell.js +13 -0
  115. package/dist/molecules/table/components/DefaultCell.js.map +1 -0
  116. package/dist/molecules/table/components/DefaultCellFooter.d.ts +6 -0
  117. package/dist/molecules/table/components/DefaultCellFooter.js +12 -0
  118. package/dist/molecules/table/components/DefaultCellFooter.js.map +1 -0
  119. package/dist/molecules/table/components/DefaultCellHeader.d.ts +6 -0
  120. package/dist/molecules/table/components/DefaultCellHeader.js +30 -0
  121. package/dist/molecules/table/components/DefaultCellHeader.js.map +1 -0
  122. package/dist/molecules/table/components/DefaultCellOperations.d.ts +10 -0
  123. package/dist/molecules/table/components/DefaultCellOperations.js +24 -0
  124. package/dist/molecules/table/components/DefaultCellOperations.js.map +1 -0
  125. package/dist/molecules/table/components/DefaultFilter.d.ts +11 -0
  126. package/dist/molecules/table/components/DefaultFilter.js +15 -0
  127. package/dist/molecules/table/components/DefaultFilter.js.map +1 -0
  128. package/dist/molecules/table/components/DefaultOperationButton.d.ts +11 -0
  129. package/dist/molecules/table/components/DefaultOperationButton.js +30 -0
  130. package/dist/molecules/table/components/DefaultOperationButton.js.map +1 -0
  131. package/dist/molecules/table/filters/Filters.d.js +2 -0
  132. package/dist/molecules/table/filters/Filters.d.js.map +1 -0
  133. package/dist/molecules/table/filters/RangeFilter.d.ts +3 -0
  134. package/dist/molecules/table/filters/RangeFilter.js +42 -0
  135. package/dist/molecules/table/filters/RangeFilter.js.map +1 -0
  136. package/dist/molecules/table/filters/SelectFilter.d.ts +3 -0
  137. package/dist/molecules/table/filters/SelectFilter.js +35 -0
  138. package/dist/molecules/table/filters/SelectFilter.js.map +1 -0
  139. package/dist/molecules/table/filters/TextFieldFilter.d.ts +3 -0
  140. package/dist/molecules/table/filters/TextFieldFilter.js +27 -0
  141. package/dist/molecules/table/filters/TextFieldFilter.js.map +1 -0
  142. package/dist/molecules/table/hooks/useTable.d.ts +15 -0
  143. package/dist/molecules/table/hooks/useTable.js +34 -0
  144. package/dist/molecules/table/hooks/useTable.js.map +1 -0
  145. package/dist/molecules/table/hooks/useUniqValues.d.ts +5 -0
  146. package/dist/molecules/table/hooks/useUniqValues.js +11 -0
  147. package/dist/molecules/table/hooks/useUniqValues.js.map +1 -0
  148. package/dist/molecules/table/interfaces/extends.d.ts +14 -0
  149. package/dist/molecules/table/interfaces/extends.js +2 -0
  150. package/dist/molecules/table/interfaces/extends.js.map +1 -0
  151. package/dist/molecules/table/utils/mapFormToColumns.d.ts +3 -0
  152. package/dist/molecules/table/utils/mapFormToColumns.js +39 -0
  153. package/dist/molecules/table/utils/mapFormToColumns.js.map +1 -0
  154. package/dist/{components/tabs/tabs.component.js → molecules/tabs/Tabs.js} +12 -12
  155. package/dist/molecules/tabs/Tabs.js.map +1 -0
  156. package/dist/organisms/form/Form.d.ts +22 -0
  157. package/dist/organisms/form/Form.js +15 -0
  158. package/dist/organisms/form/Form.js.map +1 -0
  159. package/dist/{components/form-access/formAccess.component.d.ts → organisms/form/access/FormAccess.d.ts} +2 -2
  160. package/dist/{components/form-access/formAccess.component.js → organisms/form/access/FormAccess.js} +4 -5
  161. package/dist/organisms/form/access/FormAccess.js.map +1 -0
  162. package/dist/organisms/form/access/FormAccess.schema.d.ts +4 -0
  163. package/dist/{components/form-access/formAccess.schema.js → organisms/form/access/FormAccess.schema.js} +1 -1
  164. package/dist/organisms/form/access/FormAccess.schema.js.map +1 -0
  165. package/dist/organisms/form/access/FormAccess.utils.d.ts +23 -0
  166. package/dist/{components/form-access/formAccess.utils.js → organisms/form/access/FormAccess.utils.js} +2 -2
  167. package/dist/organisms/form/access/FormAccess.utils.js.map +1 -0
  168. package/dist/{components/form-action/formAction.component.d.ts → organisms/form/action/FormAction.d.ts} +4 -4
  169. package/dist/{components/form-action/formAction.component.js → organisms/form/action/FormAction.js} +2 -2
  170. package/dist/organisms/form/action/FormAction.js.map +1 -0
  171. package/dist/organisms/form/builder/FormBuilder.d.ts +7 -0
  172. package/dist/organisms/form/builder/FormBuilder.js +17 -0
  173. package/dist/organisms/form/builder/FormBuilder.js.map +1 -0
  174. package/dist/organisms/form/builder/FormEdit.d.ts +8 -0
  175. package/dist/organisms/form/builder/FormEdit.js +70 -0
  176. package/dist/organisms/form/builder/FormEdit.js.map +1 -0
  177. package/dist/organisms/form/builder/FormEdit.reducer.d.ts +10 -0
  178. package/dist/{components/form-edit/formEdit.reducer.js → organisms/form/builder/FormEdit.reducer.js} +1 -1
  179. package/dist/organisms/form/builder/FormEdit.reducer.js.map +1 -0
  180. package/dist/organisms/form/builder/FormEditCtas.d.ts +15 -0
  181. package/dist/organisms/form/builder/FormEditCtas.js +52 -0
  182. package/dist/organisms/form/builder/FormEditCtas.js.map +1 -0
  183. package/dist/organisms/form/builder/FormParameters.d.ts +24 -0
  184. package/dist/organisms/form/builder/FormParameters.js +84 -0
  185. package/dist/organisms/form/builder/FormParameters.js.map +1 -0
  186. package/dist/organisms/form/builder/all.d.ts +6 -0
  187. package/dist/organisms/form/builder/all.js +26 -0
  188. package/dist/organisms/form/builder/all.js.map +1 -0
  189. package/dist/organisms/form/builder/useFormBuilder.d.ts +28 -0
  190. package/dist/organisms/form/builder/useFormBuilder.js +71 -0
  191. package/dist/organisms/form/builder/useFormBuilder.js.map +1 -0
  192. package/dist/{components/form-edit/useFormEdit.hook.d.ts → organisms/form/builder/useFormEdit.d.ts} +7 -7
  193. package/dist/{components/form-edit/useFormEdit.hook.js → organisms/form/builder/useFormEdit.js} +2 -2
  194. package/dist/organisms/form/builder/useFormEdit.js.map +1 -0
  195. package/dist/{components/form-settings/formSettings.component.d.ts → organisms/form/settings/FormSettings.d.ts} +2 -2
  196. package/dist/{components/form-settings/formSettings.component.js → organisms/form/settings/FormSettings.js} +4 -4
  197. package/dist/organisms/form/settings/FormSettings.js.map +1 -0
  198. package/dist/organisms/form/settings/FormSettings.schema.d.ts +2 -0
  199. package/dist/{components/form-settings/formSettings.schema.js → organisms/form/settings/FormSettings.schema.js} +1 -1
  200. package/dist/organisms/form/settings/FormSettings.schema.js.map +1 -0
  201. package/dist/organisms/form/settings/FormSettings.utils.d.ts +8 -0
  202. package/dist/{components/form-settings/formSettings.utils.js → organisms/form/settings/FormSettings.utils.js} +1 -1
  203. package/dist/organisms/form/settings/FormSettings.utils.js.map +1 -0
  204. package/dist/organisms/form/types.d.ts +15 -0
  205. package/dist/organisms/form/types.js +2 -0
  206. package/dist/organisms/form/types.js.map +1 -0
  207. package/dist/organisms/form/useForm.d.ts +65 -0
  208. package/dist/organisms/form/useForm.js +776 -0
  209. package/dist/organisms/form/useForm.js.map +1 -0
  210. package/dist/{components/modal/removeModal.component.d.ts → organisms/modal/RemoveModal.d.ts} +1 -1
  211. package/dist/{components/modal/removeModal.component.js → organisms/modal/RemoveModal.js} +10 -10
  212. package/dist/organisms/modal/RemoveModal.js.map +1 -0
  213. package/dist/organisms/table/actions/ActionsTable.d.ts +10 -0
  214. package/dist/organisms/table/actions/ActionsTable.js +46 -0
  215. package/dist/organisms/table/actions/ActionsTable.js.map +1 -0
  216. package/dist/organisms/table/forms/FormsTable.d.ts +9 -0
  217. package/dist/organisms/table/forms/FormsTable.js +57 -0
  218. package/dist/organisms/table/forms/FormsTable.js.map +1 -0
  219. package/dist/organisms/table/forms/components/FormsCell.d.ts +5 -0
  220. package/dist/organisms/table/forms/components/FormsCell.js +50 -0
  221. package/dist/organisms/table/forms/components/FormsCell.js.map +1 -0
  222. package/dist/organisms/table/submissions/SubmissionsTable.d.ts +6 -0
  223. package/dist/organisms/table/submissions/SubmissionsTable.js +11 -0
  224. package/dist/organisms/table/submissions/SubmissionsTable.js.map +1 -0
  225. package/dist/registries/components.d.ts +3 -0
  226. package/dist/registries/components.js +19 -0
  227. package/dist/registries/components.js.map +1 -0
  228. package/package.json +10 -8
  229. package/readme.md +27 -14
  230. package/src/atoms/icon/Icon.stories.tsx +124 -0
  231. package/src/atoms/icon/Icon.tsx +16 -0
  232. package/src/index.ts +1 -6
  233. package/src/interfaces/ActionType.ts +26 -0
  234. package/src/interfaces/ComponentType.ts +3 -0
  235. package/src/interfaces/FormOptions.ts +4 -1
  236. package/src/interfaces/{FormSchema.ts → FormType.ts} +3 -3
  237. package/src/interfaces/Operation.ts +2 -2
  238. package/src/interfaces/{RoleSchema.ts → RoleType.ts} +1 -1
  239. package/src/interfaces/SubmissionType.ts +20 -0
  240. package/src/interfaces/index.ts +5 -4
  241. package/src/molecules/__fixtures__/build.js +28 -0
  242. package/src/molecules/__fixtures__/form-firstname.fixture.json +256 -0
  243. package/src/molecules/__fixtures__/form-schema.json +350 -0
  244. package/src/molecules/__fixtures__/form-submissions.json +11942 -0
  245. package/src/molecules/__fixtures__/form-wizard.fixture.json +2042 -0
  246. package/src/molecules/__fixtures__/products.json +81539 -0
  247. package/src/molecules/__fixtures__/useValue.hook.ts +14 -0
  248. package/src/{components/alert/alert.component.spec.tsx → molecules/alert/Alert.spec.tsx} +12 -14
  249. package/src/molecules/alert/Alert.stories.tsx +39 -0
  250. package/src/{components/alert/alert.component.tsx → molecules/alert/Alert.tsx} +10 -7
  251. package/src/molecules/button/Button.stories.tsx +106 -0
  252. package/src/molecules/button/Button.tsx +54 -0
  253. package/src/{components/card/card.component.spec.tsx → molecules/card/Card.spec.tsx} +3 -2
  254. package/src/{components/card/card.stories.tsx → molecules/card/Card.stories.tsx} +9 -2
  255. package/src/{components/form-control/formControl.component.spec.tsx → molecules/forms/form-control/FormControl.spec.tsx} +9 -8
  256. package/src/molecules/forms/form-control/FormControl.stories.tsx +58 -0
  257. package/src/molecules/forms/form-control/FormControl.tsx +86 -0
  258. package/src/molecules/forms/input-tags/InputTags.interface.ts +9 -0
  259. package/src/molecules/forms/input-tags/InputTags.tsx +30 -0
  260. package/src/molecules/forms/input-tags/all.ts +6 -0
  261. package/src/molecules/forms/input-tags/components/ChoicesTags.stories.tsx +110 -0
  262. package/src/molecules/forms/input-tags/components/ChoicesTags.tsx +72 -0
  263. package/src/molecules/forms/input-tags/components/ReactTags.stories.tsx +140 -0
  264. package/src/molecules/forms/input-tags/components/ReactTags.tsx +38 -0
  265. package/src/molecules/forms/input-text/InputText.interface.ts +5 -0
  266. package/src/{components/input-text/inputText.component.spec.tsx → molecules/forms/input-text/InputText.spec.tsx} +8 -7
  267. package/src/molecules/forms/input-text/InputText.stories.tsx +179 -0
  268. package/src/molecules/forms/input-text/InputText.tsx +63 -0
  269. package/src/molecules/forms/select/Select.interface.ts +45 -0
  270. package/src/molecules/forms/select/Select.tsx +28 -0
  271. package/src/molecules/forms/select/all.ts +7 -0
  272. package/src/molecules/forms/select/components/ChoicesSelect.stories.tsx +332 -0
  273. package/src/molecules/forms/select/components/ChoicesSelect.tsx +159 -0
  274. package/src/molecules/forms/select/components/HtmlSelect.stories.tsx +305 -0
  275. package/src/molecules/forms/select/components/HtmlSelect.tsx +54 -0
  276. package/src/molecules/forms/select/components/ReactSelect.stories.tsx +287 -0
  277. package/src/molecules/forms/select/components/ReactSelect.tsx +60 -0
  278. package/src/molecules/forms/select/components/choices.template.tsx +38 -0
  279. package/src/molecules/forms/select/hooks/useOptions.spec.ts +154 -0
  280. package/src/molecules/forms/select/hooks/useOptions.ts +53 -0
  281. package/src/{components/loader/loader.component.spec.tsx → molecules/loader/Loader.spec.tsx} +3 -3
  282. package/src/molecules/loader/Loader.stories.tsx +43 -0
  283. package/src/{components/loader/loader.component.tsx → molecules/loader/Loader.tsx} +2 -10
  284. package/src/{components/modal/modal.component.spec.tsx → molecules/modal/Modal.spec.tsx} +131 -4
  285. package/src/molecules/modal/Modal.stories.tsx +178 -0
  286. package/src/{components/pagination/pagination.component.spec.tsx → molecules/pagination/Pagination.spec.tsx} +20 -14
  287. package/src/molecules/pagination/Pagination.stories.tsx +99 -0
  288. package/src/{components/pagination/pagination.component.tsx → molecules/pagination/Pagination.tsx} +34 -47
  289. package/src/molecules/pagination/PaginationButton.tsx +30 -0
  290. package/src/molecules/pagination/all.ts +3 -0
  291. package/src/molecules/table/Table.stories.tsx +272 -0
  292. package/src/molecules/table/Table.tsx +100 -0
  293. package/src/molecules/table/all.ts +16 -0
  294. package/src/molecules/table/components/DefaultArrowSort.tsx +26 -0
  295. package/src/molecules/table/components/DefaultCell.tsx +22 -0
  296. package/src/molecules/table/components/DefaultCellFooter.tsx +16 -0
  297. package/src/molecules/table/components/DefaultCellHeader.tsx +42 -0
  298. package/src/molecules/table/components/DefaultCellOperations.tsx +42 -0
  299. package/src/molecules/table/components/DefaultFilter.tsx +42 -0
  300. package/src/molecules/table/components/DefaultOperationButton.tsx +40 -0
  301. package/src/molecules/table/filters/Filters.d.ts +31 -0
  302. package/src/molecules/table/filters/RangeFilter.tsx +43 -0
  303. package/src/molecules/table/filters/SelectFilter.tsx +47 -0
  304. package/src/molecules/table/filters/TextFieldFilter.tsx +36 -0
  305. package/src/molecules/table/hooks/useTable.tsx +75 -0
  306. package/src/molecules/table/hooks/useUniqValues.tsx +10 -0
  307. package/src/molecules/table/interfaces/extends.ts +18 -0
  308. package/src/molecules/table/utils/mapFormToColumns.tsx +74 -0
  309. package/src/{components/tabs/tabs.component.spec.tsx → molecules/tabs/Tabs.spec.tsx} +4 -4
  310. package/src/molecules/tabs/Tabs.stories.tsx +141 -0
  311. package/src/organisms/__fixtures__/WrapComponent.tsx +11 -0
  312. package/src/organisms/__fixtures__/form-actions.json +240 -0
  313. package/src/organisms/__fixtures__/form-firstname.fixture.json +256 -0
  314. package/src/organisms/__fixtures__/form-wizard.fixture.json +2042 -0
  315. package/src/organisms/__fixtures__/form.fixture.json +2067 -0
  316. package/src/organisms/__fixtures__/useEditForm.tsx +84 -0
  317. package/src/organisms/__fixtures__/utils.ts +74 -0
  318. package/src/{components/form/form.component.spec.tsx → organisms/form/Form.spec.tsx} +5 -6
  319. package/src/organisms/form/Form.stories.tsx +698 -0
  320. package/src/organisms/form/Form.tsx +29 -0
  321. package/src/{components/form-access/formAccess.schema.ts → organisms/form/access/FormAccess.schema.ts} +4 -6
  322. package/src/{components/form-access/formAccess.stories.tsx → organisms/form/access/FormAccess.stories.tsx} +8 -2
  323. package/src/{components/form-access/formAccess.component.tsx → organisms/form/access/FormAccess.tsx} +15 -17
  324. package/src/{components/form-access/formAccess.utils.spec.ts → organisms/form/access/FormAccess.utils.spec.ts} +13 -7
  325. package/src/{components/form-access/formAccess.utils.ts → organisms/form/access/FormAccess.utils.ts} +23 -20
  326. package/src/{components/form-action/formAction.stories.tsx → organisms/form/action/FormAction.stories.tsx} +11 -11
  327. package/src/{components/form-action/formAction.component.tsx → organisms/form/action/FormAction.tsx} +7 -7
  328. package/src/organisms/form/builder/FormBuilder.stories.tsx +97 -0
  329. package/src/organisms/form/builder/FormBuilder.tsx +28 -0
  330. package/src/{components/form-edit/formEdit.reducer.ts → organisms/form/builder/FormEdit.reducer.ts} +6 -6
  331. package/src/{components/form-edit/formEdit.stories.tsx → organisms/form/builder/FormEdit.stories.tsx} +89 -43
  332. package/src/organisms/form/builder/FormEdit.tsx +75 -0
  333. package/src/organisms/form/builder/FormEditCtas.tsx +97 -0
  334. package/src/{components/form-edit/formParameters.component.tsx → organisms/form/builder/FormParameters.tsx} +28 -28
  335. package/src/organisms/form/builder/all.ts +17 -0
  336. package/src/organisms/form/builder/useFormBuilder.ts +143 -0
  337. package/src/{components/form-edit/useFormEdit.hook.ts → organisms/form/builder/useFormEdit.ts} +8 -8
  338. package/src/{components/form-settings/formSettings.component.spec.tsx → organisms/form/settings/FormSettings.component.spec.tsx} +2 -2
  339. package/src/{components/form-settings/formSettings.schema.ts → organisms/form/settings/FormSettings.schema.ts} +2 -2
  340. package/src/{components/form-settings/formSettings.stories.tsx → organisms/form/settings/FormSettings.stories.tsx} +10 -8
  341. package/src/{components/form-settings/formSettings.component.tsx → organisms/form/settings/FormSettings.tsx} +7 -8
  342. package/src/{components/form-settings/formSettings.utils.spec.ts → organisms/form/settings/FormSettings.utils.spec.ts} +1 -1
  343. package/src/{components/form-settings/formSettings.utils.ts → organisms/form/settings/FormSettings.utils.ts} +4 -4
  344. package/src/organisms/form/types.ts +8 -0
  345. package/src/organisms/form/useForm.ts +223 -0
  346. package/src/organisms/modal/RemoveModal.stories.tsx +59 -0
  347. package/src/{components/modal/removeModal.component.tsx → organisms/modal/RemoveModal.tsx} +2 -2
  348. package/src/{components/actions-table/actionsTable.component.spec.tsx → organisms/table/actions/ActionsTable.spec.tsx} +11 -7
  349. package/src/{components/actions-table/actionsTable.stories.tsx → organisms/table/actions/ActionsTable.stories.tsx} +22 -24
  350. package/src/{components/actions-table/actionsTable.component.tsx → organisms/table/actions/ActionsTable.tsx} +13 -20
  351. package/src/{components/forms-table/formsTable.stories.tsx → organisms/table/forms/FormsTable.stories.tsx} +24 -27
  352. package/src/organisms/table/forms/FormsTable.tsx +66 -0
  353. package/src/organisms/table/forms/components/FormsCell.tsx +53 -0
  354. package/src/{components/submissions-table/submissionsTable.stories.tsx → organisms/table/submissions/SubmissionsTable.stories.tsx} +24 -27
  355. package/src/organisms/table/submissions/SubmissionsTable.tsx +13 -0
  356. package/src/registries/components.ts +23 -0
  357. package/tsconfig.app.json +1 -1
  358. package/tsconfig.json +3 -0
  359. package/tsconfig.node.json +13 -0
  360. package/dist/components/actions-table/actionsTable.component.d.ts +0 -10
  361. package/dist/components/actions-table/actionsTable.component.js +0 -53
  362. package/dist/components/actions-table/actionsTable.component.js.map +0 -1
  363. package/dist/components/alert/alert.component.d.ts +0 -5
  364. package/dist/components/alert/alert.component.js.map +0 -1
  365. package/dist/components/card/card.component.js +0 -12
  366. package/dist/components/card/card.component.js.map +0 -1
  367. package/dist/components/form/form.component.d.ts +0 -62
  368. package/dist/components/form/form.component.js +0 -64
  369. package/dist/components/form/form.component.js.map +0 -1
  370. package/dist/components/form/useForm.hook.d.ts +0 -59
  371. package/dist/components/form/useForm.hook.js +0 -64
  372. package/dist/components/form/useForm.hook.js.map +0 -1
  373. package/dist/components/form-access/formAccess.component.js.map +0 -1
  374. package/dist/components/form-access/formAccess.schema.d.ts +0 -5
  375. package/dist/components/form-access/formAccess.schema.js.map +0 -1
  376. package/dist/components/form-access/formAccess.utils.d.ts +0 -24
  377. package/dist/components/form-access/formAccess.utils.js.map +0 -1
  378. package/dist/components/form-action/formAction.component.js.map +0 -1
  379. package/dist/components/form-builder/formBuilder.component.d.ts +0 -53
  380. package/dist/components/form-builder/formBuilder.component.js +0 -142
  381. package/dist/components/form-builder/formBuilder.component.js.map +0 -1
  382. package/dist/components/form-control/formControl.component.d.ts +0 -14
  383. package/dist/components/form-control/formControl.component.js +0 -26
  384. package/dist/components/form-control/formControl.component.js.map +0 -1
  385. package/dist/components/form-edit/formCtas.component.d.ts +0 -28
  386. package/dist/components/form-edit/formCtas.component.js +0 -70
  387. package/dist/components/form-edit/formCtas.component.js.map +0 -1
  388. package/dist/components/form-edit/formEdit.component.d.ts +0 -18
  389. package/dist/components/form-edit/formEdit.component.js +0 -57
  390. package/dist/components/form-edit/formEdit.component.js.map +0 -1
  391. package/dist/components/form-edit/formEdit.reducer.d.ts +0 -10
  392. package/dist/components/form-edit/formEdit.reducer.js.map +0 -1
  393. package/dist/components/form-edit/formParameters.component.d.ts +0 -34
  394. package/dist/components/form-edit/formParameters.component.js +0 -92
  395. package/dist/components/form-edit/formParameters.component.js.map +0 -1
  396. package/dist/components/form-edit/useFormEdit.hook.js.map +0 -1
  397. package/dist/components/form-settings/formSettings.component.js.map +0 -1
  398. package/dist/components/form-settings/formSettings.schema.d.ts +0 -2
  399. package/dist/components/form-settings/formSettings.schema.js.map +0 -1
  400. package/dist/components/form-settings/formSettings.utils.d.ts +0 -8
  401. package/dist/components/form-settings/formSettings.utils.js.map +0 -1
  402. package/dist/components/forms-table/components/formCell.component.d.ts +0 -6
  403. package/dist/components/forms-table/components/formCell.component.js +0 -50
  404. package/dist/components/forms-table/components/formCell.component.js.map +0 -1
  405. package/dist/components/forms-table/formsTable.component.d.ts +0 -10
  406. package/dist/components/forms-table/formsTable.component.js +0 -29
  407. package/dist/components/forms-table/formsTable.component.js.map +0 -1
  408. package/dist/components/index.d.ts +0 -25
  409. package/dist/components/index.js +0 -86
  410. package/dist/components/index.js.map +0 -1
  411. package/dist/components/input-tags/inputTags.component.d.ts +0 -18
  412. package/dist/components/input-tags/inputTags.component.js +0 -37
  413. package/dist/components/input-tags/inputTags.component.js.map +0 -1
  414. package/dist/components/input-text/inputText.component.d.ts +0 -27
  415. package/dist/components/input-text/inputText.component.js +0 -70
  416. package/dist/components/input-text/inputText.component.js.map +0 -1
  417. package/dist/components/loader/loader.component.js +0 -26
  418. package/dist/components/loader/loader.component.js.map +0 -1
  419. package/dist/components/modal/modal.component.js.map +0 -1
  420. package/dist/components/modal/removeModal.component.js.map +0 -1
  421. package/dist/components/pagination/pagination.component.js +0 -87
  422. package/dist/components/pagination/pagination.component.js.map +0 -1
  423. package/dist/components/select/select.component.d.ts +0 -14
  424. package/dist/components/select/select.component.js +0 -60
  425. package/dist/components/select/select.component.js.map +0 -1
  426. package/dist/components/submissions-table/submissionsTable.component.d.ts +0 -6
  427. package/dist/components/submissions-table/submissionsTable.component.js +0 -11
  428. package/dist/components/submissions-table/submissionsTable.component.js.map +0 -1
  429. package/dist/components/table/components/defaultArrowSort.component.d.ts +0 -1
  430. package/dist/components/table/components/defaultArrowSort.component.js +0 -10
  431. package/dist/components/table/components/defaultArrowSort.component.js.map +0 -1
  432. package/dist/components/table/components/defaultCell.component.d.ts +0 -1
  433. package/dist/components/table/components/defaultCell.component.js +0 -11
  434. package/dist/components/table/components/defaultCell.component.js.map +0 -1
  435. package/dist/components/table/components/defaultCellHeader.component.d.ts +0 -5
  436. package/dist/components/table/components/defaultCellHeader.component.js +0 -14
  437. package/dist/components/table/components/defaultCellHeader.component.js.map +0 -1
  438. package/dist/components/table/components/defaultCellOperations.component.d.ts +0 -12
  439. package/dist/components/table/components/defaultCellOperations.component.js +0 -21
  440. package/dist/components/table/components/defaultCellOperations.component.js.map +0 -1
  441. package/dist/components/table/components/defaultCells.component.d.ts +0 -4
  442. package/dist/components/table/components/defaultCells.component.js +0 -23
  443. package/dist/components/table/components/defaultCells.component.js.map +0 -1
  444. package/dist/components/table/components/defaultOperationButton.component.d.ts +0 -15
  445. package/dist/components/table/components/defaultOperationButton.component.js +0 -45
  446. package/dist/components/table/components/defaultOperationButton.component.js.map +0 -1
  447. package/dist/components/table/components/defaultRow.component.d.ts +0 -12
  448. package/dist/components/table/components/defaultRow.component.js +0 -25
  449. package/dist/components/table/components/defaultRow.component.js.map +0 -1
  450. package/dist/components/table/components/dragNDropContainer.d.ts +0 -4
  451. package/dist/components/table/components/dragNDropContainer.js +0 -10
  452. package/dist/components/table/components/dragNDropContainer.js.map +0 -1
  453. package/dist/components/table/filters/defaultColumnFilter.component.d.ts +0 -5
  454. package/dist/components/table/filters/defaultColumnFilter.component.js +0 -32
  455. package/dist/components/table/filters/defaultColumnFilter.component.js.map +0 -1
  456. package/dist/components/table/filters/selectColumnFilter.component.d.ts +0 -10
  457. package/dist/components/table/filters/selectColumnFilter.component.js +0 -34
  458. package/dist/components/table/filters/selectColumnFilter.component.js.map +0 -1
  459. package/dist/components/table/filters/sliderColumnFilter.component.d.ts +0 -2
  460. package/dist/components/table/filters/sliderColumnFilter.component.js +0 -27
  461. package/dist/components/table/filters/sliderColumnFilter.component.js.map +0 -1
  462. package/dist/components/table/hooks/useCustomTable.hook.d.ts +0 -128
  463. package/dist/components/table/hooks/useCustomTable.hook.js +0 -130
  464. package/dist/components/table/hooks/useCustomTable.hook.js.map +0 -1
  465. package/dist/components/table/hooks/useDragnDropRow.hook.d.ts +0 -272
  466. package/dist/components/table/hooks/useDragnDropRow.hook.js +0 -40
  467. package/dist/components/table/hooks/useDragnDropRow.hook.js.map +0 -1
  468. package/dist/components/table/hooks/useOperations.hook.d.ts +0 -11
  469. package/dist/components/table/hooks/useOperations.hook.js +0 -25
  470. package/dist/components/table/hooks/useOperations.hook.js.map +0 -1
  471. package/dist/components/table/index.d.ts +0 -15
  472. package/dist/components/table/index.js +0 -35
  473. package/dist/components/table/index.js.map +0 -1
  474. package/dist/components/table/table.component.d.ts +0 -3
  475. package/dist/components/table/table.component.js +0 -81
  476. package/dist/components/table/table.component.js.map +0 -1
  477. package/dist/components/table/utils/getPageNumbers.js.map +0 -1
  478. package/dist/components/table/utils/mapFormToColumns.d.ts +0 -3
  479. package/dist/components/table/utils/mapFormToColumns.js +0 -23
  480. package/dist/components/table/utils/mapFormToColumns.js.map +0 -1
  481. package/dist/components/table/utils/swapElements.d.ts +0 -1
  482. package/dist/components/table/utils/swapElements.js +0 -5
  483. package/dist/components/table/utils/swapElements.js.map +0 -1
  484. package/dist/components/tabs/tabs.component.js.map +0 -1
  485. package/dist/interfaces/ActionSchema.d.ts +0 -23
  486. package/dist/interfaces/ActionSchema.js +0 -2
  487. package/dist/interfaces/ActionSchema.js.map +0 -1
  488. package/dist/interfaces/FormSchema.js +0 -2
  489. package/dist/interfaces/FormSchema.js.map +0 -1
  490. package/dist/interfaces/RoleSchema.js +0 -2
  491. package/dist/interfaces/RoleSchema.js.map +0 -1
  492. package/dist/interfaces/Submission.d.ts +0 -5
  493. package/dist/interfaces/Submission.js +0 -2
  494. package/dist/interfaces/Submission.js.map +0 -1
  495. package/dist/utils/callLast.d.ts +0 -1
  496. package/dist/utils/callLast.js +0 -10
  497. package/dist/utils/callLast.js.map +0 -1
  498. package/src/components/alert/alert.stories.tsx +0 -16
  499. package/src/components/form/form.component.tsx +0 -72
  500. package/src/components/form/form.stories.tsx +0 -253
  501. package/src/components/form/useForm.hook.ts +0 -216
  502. package/src/components/form-builder/formBuilder.component.tsx +0 -195
  503. package/src/components/form-builder/formBuilder.stories.tsx +0 -3665
  504. package/src/components/form-control/formControl.component.tsx +0 -58
  505. package/src/components/form-control/formControl.stories.tsx +0 -63
  506. package/src/components/form-edit/formCtas.component.tsx +0 -106
  507. package/src/components/form-edit/formEdit.component.tsx +0 -59
  508. package/src/components/forms-table/components/formCell.component.tsx +0 -47
  509. package/src/components/forms-table/formsTable.component.tsx +0 -40
  510. package/src/components/index.ts +0 -25
  511. package/src/components/input-tags/inputTags.component.tsx +0 -58
  512. package/src/components/input-tags/inputTags.stories.tsx +0 -97
  513. package/src/components/input-text/inputText.component.tsx +0 -85
  514. package/src/components/input-text/inputText.stories.tsx +0 -126
  515. package/src/components/loader/loader.stories.tsx +0 -16
  516. package/src/components/modal/modal.stories.tsx +0 -190
  517. package/src/components/pagination/pagination.stories.tsx +0 -40
  518. package/src/components/select/select.component.spec.tsx +0 -84
  519. package/src/components/select/select.component.tsx +0 -88
  520. package/src/components/select/select.stories.tsx +0 -173
  521. package/src/components/submissions-table/submissionsTable.component.tsx +0 -14
  522. package/src/components/table/components/defaultArrowSort.component.tsx +0 -10
  523. package/src/components/table/components/defaultCell.component.tsx +0 -13
  524. package/src/components/table/components/defaultCellHeader.component.tsx +0 -18
  525. package/src/components/table/components/defaultCellOperations.component.tsx +0 -37
  526. package/src/components/table/components/defaultCells.component.tsx +0 -30
  527. package/src/components/table/components/defaultOperationButton.component.tsx +0 -56
  528. package/src/components/table/components/defaultRow.component.tsx +0 -51
  529. package/src/components/table/components/dragNDropContainer.tsx +0 -7
  530. package/src/components/table/filters/defaultColumnFilter.component.spec.tsx +0 -31
  531. package/src/components/table/filters/defaultColumnFilter.component.tsx +0 -39
  532. package/src/components/table/filters/selectColumnFilter.component.spec.tsx +0 -66
  533. package/src/components/table/filters/selectColumnFilter.component.tsx +0 -51
  534. package/src/components/table/filters/sliderColumnFilter.component.tsx +0 -28
  535. package/src/components/table/hooks/useCustomTable.hook.tsx +0 -268
  536. package/src/components/table/hooks/useDragnDropRow.hook.ts +0 -80
  537. package/src/components/table/hooks/useOperations.hook.tsx +0 -39
  538. package/src/components/table/index.ts +0 -15
  539. package/src/components/table/table.component.tsx +0 -100
  540. package/src/components/table/table.stories.tsx +0 -120
  541. package/src/components/table/utils/mapFormToColumns.tsx +0 -33
  542. package/src/components/table/utils/swapElements.spec.ts +0 -7
  543. package/src/components/table/utils/swapElements.ts +0 -7
  544. package/src/components/tabs/tabs.component.stories.tsx +0 -127
  545. package/src/interfaces/ActionSchema.ts +0 -26
  546. package/src/interfaces/Submission.ts +0 -5
  547. package/src/utils/callLast.ts +0 -12
  548. /package/dist/{components/card/card.component.d.ts → molecules/card/Card.d.ts} +0 -0
  549. /package/dist/{components/modal/modal.component.d.ts → molecules/modal/Modal.d.ts} +0 -0
  550. /package/dist/{components/table → molecules/pagination}/utils/getPageNumbers.d.ts +0 -0
  551. /package/dist/{components/table → molecules/pagination}/utils/getPageNumbers.js +0 -0
  552. /package/dist/{components/tabs/tabs.component.d.ts → molecules/tabs/Tabs.d.ts} +0 -0
  553. /package/src/{components → molecules}/__fixtures__/form-actions.json +0 -0
  554. /package/src/{components → molecules}/__fixtures__/form.fixture.json +0 -0
  555. /package/src/{components/card/card.component.tsx → molecules/card/Card.tsx} +0 -0
  556. /package/src/{components/modal/modal.component.tsx → molecules/modal/Modal.tsx} +0 -0
  557. /package/src/{components/table → molecules/pagination}/utils/getPageNumbers.ts +0 -0
  558. /package/src/{components/tabs/tabs.component.tsx → molecules/tabs/Tabs.tsx} +0 -0
  559. /package/src/{components → organisms}/__fixtures__/form-schema.json +0 -0
  560. /package/src/{components → organisms}/__fixtures__/form-submissions.json +0 -0
  561. /package/src/{components/actions-table → organisms/table/actions}/__fixtures__/data.json +0 -0
@@ -1,268 +0,0 @@
1
- import noop from "lodash/noop";
2
- import { ComponentType, CSSProperties, PropsWithChildren, useEffect, useState } from "react";
3
- import {
4
- Cell,
5
- CellProps,
6
- Column,
7
- FilterProps,
8
- Renderer,
9
- TableOptions,
10
- useFilters,
11
- useGroupBy,
12
- usePagination,
13
- useSortBy,
14
- useTable
15
- } from "react-table";
16
-
17
- import { OnClickOperation, Operation, QueryOptions } from "../../../interfaces";
18
- import { Pagination as DefaultPagination } from "../../pagination/pagination.component";
19
- import { DefaultArrowSort } from "../components/defaultArrowSort.component";
20
- import { DefaultCellHeader, DefaultCellHeaderProps } from "../components/defaultCellHeader.component";
21
- import { DefaultRow, DefaultRowProps } from "../components/defaultRow.component";
22
- import { DefaultColumnFilter } from "../filters/defaultColumnFilter.component";
23
- import { swapElements } from "../utils/swapElements";
24
- import { useOperations } from "./useOperations.hook";
25
-
26
- export interface ExtraColumnProps {
27
- colspan?: number;
28
- hidden?: boolean;
29
- className?: string;
30
- style?: CSSProperties;
31
- }
32
-
33
- export type ExtendedColumn<Data extends object = any> = Column<Data> & ExtraColumnProps;
34
-
35
- export type ExtendedCell<Data extends object = any> = Cell<Data, any> & {
36
- column: ExtraColumnProps;
37
- };
38
-
39
- export interface TableProps<Data extends object = any> extends TableOptions<Data>, Partial<QueryOptions> {
40
- /**
41
- * extended columns interface
42
- */
43
- columns: ReadonlyArray<ExtendedColumn<Data>>;
44
-
45
- className?: string;
46
- /**
47
- * Call the listener when a filter / pagination / sort change.
48
- */
49
- onChange?: (query: QueryOptions) => void;
50
- /**
51
- * Call the listener when a line is clicked.
52
- */
53
- onClick?: OnClickOperation<Data>;
54
- /**
55
- * Pagination steps list
56
- */
57
- pageSizes?: number[];
58
- /**
59
- * Total length of the data
60
- */
61
- totalLength?: number;
62
- /**
63
- *
64
- */
65
- isLoading?: boolean;
66
- /**
67
- * Custom EmptyData displayed when there is no data
68
- */
69
- EmptyData?: ComponentType;
70
- /**
71
- * Custom ArrowSort
72
- */
73
- ArrowSort?: ComponentType;
74
- /**
75
- * Custom default ColumnFilter
76
- */
77
- ColumnFilter?: Renderer<FilterProps<Data>>;
78
- /**
79
- * Custom cell
80
- */
81
- Cell?: ComponentType<CellProps<Data>>;
82
- /**
83
- * Custom Row
84
- */
85
- Row?: ComponentType<DefaultRowProps<Data>>;
86
- /**
87
- *
88
- */
89
- CellHeader?: ComponentType<DefaultCellHeaderProps<Data>>;
90
- /**
91
- *
92
- */
93
- CellOperations?: ComponentType;
94
- /**
95
- * Custom Loader
96
- */
97
- Loader?: ComponentType;
98
- /**
99
- * Custom Loader
100
- */
101
- Pagination?: ComponentType;
102
- /**
103
- * Disable filters
104
- */
105
- disableFilters?: boolean;
106
- /**
107
- * Disable pagination
108
- */
109
- disablePagination?: boolean;
110
- manualPagination?: boolean;
111
- manualSortBy?: boolean;
112
- manualFilters?: boolean;
113
- /**
114
- * Configuration operation for each line.
115
- */
116
- operations?: Operation[];
117
-
118
- i18n?: (f: string) => string;
119
-
120
- /**
121
- * Enable drag and drop rows
122
- */
123
- enableDragNDrop?: boolean;
124
- onDrag?: (data: Data[]) => void;
125
- onDrop?: (item: Data) => void;
126
- }
127
-
128
- export function getOperationCallback(operations: Operation[], onClick: OnClickOperation) {
129
- return (data: any, action: string) => {
130
- const operation = operations.find((operation) => operation.action === action || operation.alias === action);
131
- if (operation) {
132
- onClick(data, operation);
133
- }
134
- };
135
- }
136
-
137
- function DefaultLoader() {
138
- return <div className={"text-center p-2 pb-4 font-bold"}>Loading in progress</div>;
139
- }
140
-
141
- function DefaultEmptyData() {
142
- return <div className='text-center p-2 pb-4 font-bold'>No data found</div>;
143
- }
144
-
145
- const hooks = [useFilters, useGroupBy, useSortBy, usePagination];
146
-
147
- export function useCustomTable<Data extends object = {}>(props: PropsWithChildren<TableProps<Data>>) {
148
- const {
149
- children,
150
- className = "",
151
- columns,
152
- data,
153
- onChange = noop,
154
- onClick = noop,
155
- onDrag = noop,
156
- onDrop = noop,
157
- operations = [],
158
- pageSizes = [10, 25, 50, 100],
159
- filters: controlledFilters,
160
- filterId: controlledFilterId,
161
- pageSize: controlledPageSize,
162
- pageIndex: controlledPageIndex,
163
- totalLength,
164
- sortBy: controlledSortBy,
165
- isLoading,
166
- disableFilters,
167
- disablePagination,
168
- ArrowSort = DefaultArrowSort,
169
- ColumnFilter = DefaultColumnFilter,
170
- EmptyData = DefaultEmptyData,
171
- Loader = DefaultLoader,
172
- Pagination = DefaultPagination,
173
- Row = DefaultRow,
174
- CellHeader = DefaultCellHeader as any,
175
- CellOperations,
176
- i18n = (f: string) => f,
177
- ...ctx
178
- } = props;
179
-
180
- const _onClick = getOperationCallback(operations, onClick);
181
-
182
- const defaultColumn = {
183
- Filter: ColumnFilter,
184
- ArrowSort
185
- };
186
-
187
- const [filterId, setFilterId] = useState(controlledFilterId);
188
-
189
- // DND
190
- const [records, setRecords] = useState<readonly Data[]>(data);
191
-
192
- useEffect(() => {
193
- setRecords(data);
194
- }, [data]);
195
-
196
- const _onDrag = (dragIndex: number, hoverIndex: number) => {
197
- const newRecords = swapElements([...records], dragIndex, hoverIndex);
198
-
199
- setRecords(newRecords);
200
-
201
- onDrag(newRecords);
202
- };
203
-
204
- const tableInstance = useTable<Data>(
205
- {
206
- ...props,
207
- columns,
208
- data,
209
- ctx,
210
- defaultColumn,
211
- // getRowId,
212
- initialState: {
213
- ...(props.initialState || {}),
214
- filters: controlledFilters || [],
215
- pageIndex: controlledPageIndex || 0,
216
- pageSize: controlledPageSize || 10,
217
- sortBy: controlledSortBy || []
218
- } as any,
219
- manualPagination: props.manualPagination === undefined ? true : props.manualPagination,
220
- manualSortBy: props.manualSortBy === undefined ? true : props.manualPagination,
221
- manualFilters: props.manualFilters === undefined ? true : props.manualFilters,
222
- disableFilters,
223
- filterId,
224
- setFilterId
225
- } as any,
226
- ...hooks,
227
- useOperations({ operations, CellOperations, onClick: _onClick, ctx, i18n })
228
- );
229
-
230
- const {
231
- setPageSize,
232
- state: { pageIndex, pageSize, sortBy, filters }
233
- } = tableInstance;
234
-
235
- useEffect(() => {
236
- onChange({
237
- pageIndex,
238
- pageSize,
239
- sortBy,
240
- filters,
241
- filterId
242
- });
243
- }, [onChange, pageIndex, pageSize, sortBy, filters, filterId]);
244
-
245
- return {
246
- className,
247
- tableInstance,
248
- CellHeader,
249
- isLoading,
250
- Loader,
251
- EmptyData,
252
- Row,
253
- data,
254
- disablePagination,
255
- Pagination,
256
- pageIndex,
257
- pageSize,
258
- pageSizes,
259
- totalLength,
260
- setPageSize,
261
- i18n,
262
- children,
263
- onClick: _onClick as any,
264
- onDrag: _onDrag,
265
- onDrop: onDrop,
266
- enableDragNDrop: props.enableDragNDrop
267
- };
268
- }
@@ -1,80 +0,0 @@
1
- import { useRef } from "react";
2
- import { useDrag, useDrop } from "react-dnd";
3
-
4
- import { DefaultRowProps } from "../components/defaultRow.component";
5
-
6
- const DND_ITEM_TYPE = "row";
7
-
8
- export function useDndRow<Data extends object = {}>({ onDrag, onDrop, index, ...props }: DefaultRowProps<Data>) {
9
- const dropRef = useRef<HTMLTableRowElement>(null);
10
- const dragRef = useRef<HTMLTableDataCellElement>(null);
11
-
12
- const [, drop] = useDrop<Data>({
13
- accept: DND_ITEM_TYPE,
14
- drop(item) {
15
- onDrop(item);
16
- },
17
- hover(item: any, monitor) {
18
- if (!dropRef.current) {
19
- return;
20
- }
21
- const dragIndex = item.index;
22
- const hoverIndex = index;
23
- // Don't replace items with themselves
24
- if (dragIndex === hoverIndex) {
25
- return;
26
- }
27
- // Determine rectangle on screen
28
- const hoverBoundingRect = dropRef.current!.getBoundingClientRect();
29
- // Get vertical middle
30
- const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;
31
- // Determine mouse position
32
- const clientOffset = monitor.getClientOffset();
33
- if (!clientOffset) {
34
- return;
35
- }
36
- // Get pixels to the top
37
- const hoverClientY = clientOffset.y - hoverBoundingRect.top;
38
- // Only perform the move when the mouse has crossed half of the items height
39
- // When dragging downwards, only move when the cursor is below 50%
40
- // When dragging upwards, only move when the cursor is above 50%
41
- // Dragging downwards
42
- if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {
43
- return;
44
- }
45
- // Dragging upwards
46
- if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {
47
- return;
48
- }
49
-
50
- // Time to actually perform the action
51
- onDrag(dragIndex, hoverIndex);
52
- // Note: we're mutating the monitor item here!
53
- // Generally it's better to avoid mutations,
54
- // but it's good here for the sake of performance
55
- // to avoid expensive index searches.
56
- item.index = hoverIndex;
57
- }
58
- });
59
-
60
- const [{ isDragging }, drag, preview] = useDrag(() => ({
61
- type: DND_ITEM_TYPE,
62
- item: { index },
63
- collect: (monitor) => ({
64
- isDragging: monitor.isDragging()
65
- })
66
- }));
67
-
68
- const opacity = isDragging ? 0 : 1;
69
-
70
- preview(drop(dropRef));
71
- drag(dragRef);
72
-
73
- return {
74
- ...props,
75
- opacity,
76
- isDragging,
77
- dropRef,
78
- dragRef
79
- };
80
- }
@@ -1,39 +0,0 @@
1
- import { type ComponentType, type FunctionComponent } from "react";
2
- import { Hooks } from "react-table";
3
-
4
- import { Operation } from "../../../interfaces";
5
- import { DefaultCellOperations } from "../components/defaultCellOperations.component";
6
-
7
- export type UseOperationsHookProps = {
8
- CellOperations?: FunctionComponent | ComponentType<{}>;
9
- operations: Operation[];
10
- onClick?: (data: any, event: string) => void;
11
- i18n?: (f: string) => string;
12
- ctx?: any;
13
- };
14
-
15
- export function useOperations<D extends object = {}>({
16
- operations,
17
- CellOperations = DefaultCellOperations as FunctionComponent,
18
- onClick,
19
- i18n = (f: string) => f,
20
- ctx
21
- }: UseOperationsHookProps) {
22
- return (hooks: Hooks<D>): void => {
23
- hooks.visibleColumns.push((columns) => {
24
- if (!operations.length) {
25
- return columns;
26
- }
27
-
28
- return [
29
- ...columns,
30
- {
31
- id: "operations",
32
- groupByBoundary: true,
33
- Header: () => <div className={"text-center"}>{i18n("Operations")}</div>,
34
- Cell: (props: any) => <CellOperations {...props} operations={operations} onClick={onClick} ctx={ctx} i18n={i18n} />
35
- }
36
- ];
37
- });
38
- };
39
- }
@@ -1,15 +0,0 @@
1
- export * from "./components/defaultArrowSort.component";
2
- export * from "./components/defaultCell.component";
3
- export * from "./components/defaultCellHeader.component";
4
- export * from "./components/defaultCellHeader.component";
5
- export * from "./components/defaultCellOperations.component";
6
- export * from "./components/defaultOperationButton.component";
7
- export * from "./filters/defaultColumnFilter.component";
8
- export * from "./filters/selectColumnFilter.component";
9
- export * from "./filters/sliderColumnFilter.component";
10
- export * from "./hooks/useCustomTable.hook";
11
- export * from "./hooks/useOperations.hook";
12
- export * from "./table.component";
13
- export * from "./utils/getPageNumbers";
14
- export * from "./utils/mapFormToColumns";
15
- export * from "./utils/swapElements";
@@ -1,100 +0,0 @@
1
- import classnames from "classnames";
2
- import { PropsWithChildren } from "react";
3
-
4
- import { DrapNDropContainer } from "./components/dragNDropContainer";
5
- import { TableProps, useCustomTable } from "./hooks/useCustomTable.hook";
6
-
7
- export function Table<Data extends object = any>(props: PropsWithChildren<TableProps<Data>>) {
8
- const {
9
- className,
10
- tableInstance,
11
- CellHeader,
12
- isLoading,
13
- onClick,
14
- Loader,
15
- EmptyData,
16
- Row,
17
- data,
18
- disablePagination,
19
- Pagination,
20
- pageIndex,
21
- pageSize,
22
- pageSizes,
23
- setPageSize,
24
- totalLength,
25
- i18n,
26
- enableDragNDrop,
27
- children,
28
- onDrag,
29
- onDrop
30
- } = useCustomTable(props);
31
-
32
- // Render the UI for your table
33
- return (
34
- <DrapNDropContainer enableDragNDrop={enableDragNDrop}>
35
- <div className={classnames("table-group table-responsive", className)}>
36
- <table
37
- className={"table table-striped table-hover"}
38
- {...tableInstance.getTableProps()}
39
- /* style={{ marginBottom: disablePagination ? "-1px" : "0px" }} */
40
- >
41
- <thead>
42
- {tableInstance.headerGroups.map((headerGroup, i) => (
43
- <tr {...headerGroup.getHeaderGroupProps()} key={`tableInstance.headerGroups${i}`}>
44
- {enableDragNDrop ? (
45
- <th role='columnheader' className='text-center'>
46
- <div className='table-cell-header'></div>
47
- </th>
48
- ) : null}
49
- {headerGroup.headers.map((column) => (
50
- <th
51
- /* className='text-left py-2 align-top' */
52
- {...column.getHeaderProps()}
53
- key={`tableInstance.headers.column.${column.id}`}
54
- >
55
- <CellHeader column={column} />
56
- </th>
57
- ))}
58
- </tr>
59
- ))}
60
- </thead>
61
- {!isLoading ? (
62
- <tbody {...tableInstance.getTableBodyProps()}>
63
- {tableInstance.page.map((row, index) => {
64
- tableInstance.prepareRow(row);
65
- return (
66
- <Row<Data>
67
- index={index}
68
- enableDragNDrop={enableDragNDrop}
69
- onClick={onClick}
70
- row={row}
71
- key={`tableInstance.page.${row.id}`}
72
- onDrag={onDrag}
73
- onDrop={onDrop}
74
- />
75
- );
76
- })}
77
- </tbody>
78
- ) : null}
79
- </table>
80
- {isLoading ? <Loader /> : null}
81
- {!data.length ? <EmptyData /> : null}
82
- {!isLoading && data.length && !disablePagination ? (
83
- <div className={"overflow-hidden"}>
84
- <Pagination
85
- {...tableInstance}
86
- totalLength={totalLength}
87
- className={"text-sm"}
88
- pageIndex={pageIndex}
89
- pageSize={pageSize}
90
- pageSizes={pageSizes}
91
- setPageSize={setPageSize}
92
- i18n={i18n}
93
- />
94
- </div>
95
- ) : null}
96
- {children}
97
- </div>
98
- </DrapNDropContainer>
99
- );
100
- }
@@ -1,120 +0,0 @@
1
- import { useState } from "react";
2
-
3
- import { mapPagination } from "../../utils/mapPagination";
4
- import formSchema from "../__fixtures__/form-schema.json";
5
- import formSubmissions from "../__fixtures__/form-submissions.json";
6
- import { Table } from "./table.component";
7
- import { mapFormToColumns } from "./utils/mapFormToColumns";
8
-
9
- export default {
10
- title: "ReactFormio/Table",
11
- component: Table,
12
- argTypes: {},
13
- parameters: {}
14
- };
15
-
16
- export const Sandbox = (args: any) => {
17
- const [skip, setSkip] = useState(0);
18
- const [limit, setLimit] = useState(10);
19
- const [serverCount] = useState(87);
20
-
21
- const onChange = (obj: any) => {
22
- setLimit(obj.pageSize);
23
- setSkip(obj.pageIndex * obj.pageSize);
24
- args.onChange && args.onChange(obj);
25
- };
26
-
27
- return (
28
- <Table
29
- {...args}
30
- onChange={onChange}
31
- {...mapPagination({
32
- skip,
33
- limit,
34
- serverCount
35
- })}
36
- />
37
- );
38
- };
39
-
40
- Sandbox.args = {
41
- data: formSubmissions,
42
- columns: mapFormToColumns(formSchema as any),
43
- operations: [
44
- {
45
- title: "Edit",
46
- action: "edit",
47
- alias: "row",
48
- path: "/resources/:resourceId/submissions/:submissionId",
49
- icon: "edit",
50
- permissionsResolver() {
51
- return true;
52
- }
53
- },
54
- {
55
- action: "delete",
56
- path: "/resources/:resourceId/submissions/:submissionId/delete",
57
- icon: "trash",
58
- buttonType: "danger",
59
- permissionsResolver() {
60
- return true;
61
- }
62
- }
63
- ]
64
- };
65
-
66
- export const TableWithDragNDrop = (args: any) => {
67
- const [skip, setSkip] = useState(0);
68
- const [limit, setLimit] = useState(10);
69
- const [serverCount] = useState(87);
70
- const [data, setData] = useState(() => formSubmissions);
71
-
72
- const onChange = (obj: any) => {
73
- setLimit(obj.pageSize);
74
- setSkip(obj.pageIndex * obj.pageSize);
75
- args.onChange && args.onChange(obj);
76
- };
77
-
78
- return (
79
- <Table
80
- {...args}
81
- data={data}
82
- onChange={onChange}
83
- {...mapPagination({
84
- skip,
85
- limit,
86
- serverCount
87
- })}
88
- onDrag={(data) => {
89
- setData(data);
90
- }}
91
- />
92
- );
93
- };
94
-
95
- TableWithDragNDrop.args = {
96
- enableDragNDrop: true,
97
- data: [],
98
- columns: mapFormToColumns(formSchema as any),
99
- operations: [
100
- {
101
- title: "Edit",
102
- action: "edit",
103
- alias: "row",
104
- path: "/resources/:resourceId/submissions/:submissionId",
105
- icon: "edit",
106
- permissionsResolver() {
107
- return true;
108
- }
109
- },
110
- {
111
- action: "delete",
112
- path: "/resources/:resourceId/submissions/:submissionId/delete",
113
- icon: "trash",
114
- buttonType: "danger",
115
- permissionsResolver() {
116
- return true;
117
- }
118
- }
119
- ]
120
- };
@@ -1,33 +0,0 @@
1
- import { Components, ExtendedComponentSchema } from "formiojs";
2
- import FormioUtils from "formiojs/utils";
3
-
4
- import { FormSchema } from "../../../interfaces";
5
- import { DefaultCell } from "../components/defaultCell.component";
6
- import { SelectColumnFilter } from "../filters/selectColumnFilter.component";
7
- import { ExtendedColumn } from "../hooks/useCustomTable.hook";
8
-
9
- export function mapFormToColumns(form: FormSchema): ExtendedColumn[] {
10
- const columns: ExtendedColumn[] = [];
11
-
12
- FormioUtils.eachComponent(form.components, (component: ExtendedComponentSchema) => {
13
- if (component.tableView && component.key) {
14
- const cmp: any = Components.create(component, {}, null, true);
15
-
16
- const column: ExtendedColumn = {
17
- Header: component.label || component.title || component.key,
18
- accessor: `data.${component.key}`,
19
- className: "text-center",
20
- Cell: (props: any) => <DefaultCell {...props} render={(value: any) => cmp.asString(value)} />
21
- };
22
-
23
- if (component.type === "select" && component.dataSrc === "values") {
24
- column.Filter = SelectColumnFilter;
25
- (column as any).choices = component.data.values;
26
- }
27
-
28
- columns.push(column);
29
- }
30
- });
31
-
32
- return columns;
33
- }
@@ -1,7 +0,0 @@
1
- import { swapElements } from "./swapElements";
2
-
3
- describe("swapElements", () => {
4
- it("should swap elements in array", () => {
5
- expect(swapElements([1, 2, 3, 4, 5], 1, 3)).toEqual([1, 4, 3, 2, 5]);
6
- });
7
- });
@@ -1,7 +0,0 @@
1
- export const swapElements = <T = any>(myArray: T[], index1: number, index2: number): T[] => {
2
- myArray = [...myArray];
3
-
4
- [myArray[index1], myArray[index2]] = [myArray[index2], myArray[index1]];
5
-
6
- return myArray;
7
- };