@tsed/react-formio 2.3.6 → 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 (554) 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 +43 -0
  7. package/dist/chunks/index.js.map +1 -0
  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/hooks/useTooltip.d.ts +2 -3
  13. package/dist/hooks/useTooltip.js +12 -0
  14. package/dist/hooks/useTooltip.js.map +1 -0
  15. package/dist/index.d.ts +7 -13
  16. package/dist/index.js +14 -7653
  17. package/dist/index.js.map +1 -1
  18. package/dist/interfaces/ActionType.d.ts +23 -0
  19. package/dist/interfaces/ActionType.js +2 -0
  20. package/dist/interfaces/ActionType.js.map +1 -0
  21. package/dist/interfaces/ColumnIdentifier.d.ts +14 -14
  22. package/dist/interfaces/ColumnIdentifier.js +2 -0
  23. package/dist/interfaces/ColumnIdentifier.js.map +1 -0
  24. package/dist/interfaces/ComponentType.d.ts +2 -0
  25. package/dist/interfaces/ComponentType.js +2 -0
  26. package/dist/interfaces/ComponentType.js.map +1 -0
  27. package/dist/interfaces/FormOptions.d.ts +13 -10
  28. package/dist/interfaces/FormOptions.js +2 -0
  29. package/dist/interfaces/FormOptions.js.map +1 -0
  30. package/dist/interfaces/{FormSchema.d.ts → FormType.d.ts} +12 -12
  31. package/dist/interfaces/FormType.js +2 -0
  32. package/dist/interfaces/FormType.js.map +1 -0
  33. package/dist/interfaces/Operation.d.ts +28 -29
  34. package/dist/interfaces/Operation.js +2 -0
  35. package/dist/interfaces/Operation.js.map +1 -0
  36. package/dist/interfaces/QueryOptions.d.ts +23 -23
  37. package/dist/interfaces/QueryOptions.js +2 -0
  38. package/dist/interfaces/QueryOptions.js.map +1 -0
  39. package/dist/interfaces/{RoleSchema.d.ts → RoleType.d.ts} +6 -6
  40. package/dist/interfaces/RoleType.js +2 -0
  41. package/dist/interfaces/RoleType.js.map +1 -0
  42. package/dist/interfaces/SubmissionType.d.ts +29 -0
  43. package/dist/interfaces/SubmissionType.js +2 -0
  44. package/dist/interfaces/SubmissionType.js.map +1 -0
  45. package/dist/interfaces/index.d.ts +9 -8
  46. package/dist/interfaces/index.js +2 -0
  47. package/dist/interfaces/index.js.map +1 -0
  48. package/dist/molecules/alert/Alert.d.ts +6 -0
  49. package/dist/molecules/alert/Alert.js +27 -0
  50. package/dist/molecules/alert/Alert.js.map +1 -0
  51. package/dist/molecules/button/Button.d.ts +8 -0
  52. package/dist/molecules/button/Button.js +52 -0
  53. package/dist/molecules/button/Button.js.map +1 -0
  54. package/dist/{components/card/card.component.d.ts → molecules/card/Card.d.ts} +6 -7
  55. package/dist/molecules/card/Card.js +12 -0
  56. package/dist/molecules/card/Card.js.map +1 -0
  57. package/dist/molecules/forms/form-control/FormControl.d.ts +17 -0
  58. package/dist/molecules/forms/form-control/FormControl.js +51 -0
  59. package/dist/molecules/forms/form-control/FormControl.js.map +1 -0
  60. package/dist/molecules/forms/input-tags/InputTags.d.ts +2 -0
  61. package/dist/molecules/forms/input-tags/InputTags.interface.d.ts +7 -0
  62. package/dist/molecules/forms/input-tags/InputTags.interface.js +2 -0
  63. package/dist/molecules/forms/input-tags/InputTags.interface.js.map +1 -0
  64. package/dist/molecules/forms/input-tags/InputTags.js +25 -0
  65. package/dist/molecules/forms/input-tags/InputTags.js.map +1 -0
  66. package/dist/molecules/forms/input-tags/all.d.ts +2 -0
  67. package/dist/molecules/forms/input-tags/all.js +9 -0
  68. package/dist/molecules/forms/input-tags/all.js.map +1 -0
  69. package/dist/molecules/forms/input-tags/components/ChoicesTags.d.ts +307 -0
  70. package/dist/molecules/forms/input-tags/components/ChoicesTags.js +51 -0
  71. package/dist/molecules/forms/input-tags/components/ChoicesTags.js.map +1 -0
  72. package/dist/molecules/forms/input-tags/components/ReactTags.d.ts +2 -0
  73. package/dist/molecules/forms/input-tags/components/ReactTags.js +1937 -0
  74. package/dist/molecules/forms/input-tags/components/ReactTags.js.map +1 -0
  75. package/dist/molecules/forms/input-text/InputText.d.ts +2 -0
  76. package/dist/molecules/forms/input-text/InputText.interface.d.ts +4 -0
  77. package/dist/molecules/forms/input-text/InputText.interface.js +2 -0
  78. package/dist/molecules/forms/input-text/InputText.interface.js.map +1 -0
  79. package/dist/molecules/forms/input-text/InputText.js +54 -0
  80. package/dist/molecules/forms/input-text/InputText.js.map +1 -0
  81. package/dist/molecules/forms/select/Select.d.ts +2 -0
  82. package/dist/molecules/forms/select/Select.interface.d.ts +38 -0
  83. package/dist/molecules/forms/select/Select.interface.js +2 -0
  84. package/dist/molecules/forms/select/Select.interface.js.map +1 -0
  85. package/dist/molecules/forms/select/Select.js +16 -0
  86. package/dist/molecules/forms/select/Select.js.map +1 -0
  87. package/dist/molecules/forms/select/all.d.ts +2 -0
  88. package/dist/molecules/forms/select/all.js +9 -0
  89. package/dist/molecules/forms/select/all.js.map +1 -0
  90. package/dist/molecules/forms/select/components/ChoicesSelect.d.ts +7 -0
  91. package/dist/molecules/forms/select/components/ChoicesSelect.js +115 -0
  92. package/dist/molecules/forms/select/components/ChoicesSelect.js.map +1 -0
  93. package/dist/molecules/forms/select/components/HtmlSelect.d.ts +2 -0
  94. package/dist/molecules/forms/select/components/HtmlSelect.js +35 -0
  95. package/dist/molecules/forms/select/components/HtmlSelect.js.map +1 -0
  96. package/dist/molecules/forms/select/components/ReactSelect.d.ts +2 -0
  97. package/dist/molecules/forms/select/components/ReactSelect.js +46 -0
  98. package/dist/molecules/forms/select/components/ReactSelect.js.map +1 -0
  99. package/dist/molecules/forms/select/components/choices.template.d.ts +7 -0
  100. package/dist/molecules/forms/select/components/choices.template.js +9654 -0
  101. package/dist/molecules/forms/select/components/choices.template.js.map +1 -0
  102. package/dist/molecules/forms/select/hooks/useOptions.d.ts +9 -0
  103. package/dist/molecules/forms/select/hooks/useOptions.js +35 -0
  104. package/dist/molecules/forms/select/hooks/useOptions.js.map +1 -0
  105. package/dist/molecules/loader/Loader.d.ts +8 -0
  106. package/dist/molecules/loader/Loader.js +19 -0
  107. package/dist/molecules/loader/Loader.js.map +1 -0
  108. package/dist/{components/modal/modal.component.d.ts → molecules/modal/Modal.d.ts} +15 -15
  109. package/dist/molecules/modal/Modal.js +62 -0
  110. package/dist/molecules/modal/Modal.js.map +1 -0
  111. package/dist/molecules/pagination/Pagination.d.ts +18 -0
  112. package/dist/molecules/pagination/Pagination.js +77 -0
  113. package/dist/molecules/pagination/Pagination.js.map +1 -0
  114. package/dist/molecules/pagination/PaginationButton.d.ts +7 -0
  115. package/dist/molecules/pagination/PaginationButton.js +21 -0
  116. package/dist/molecules/pagination/PaginationButton.js.map +1 -0
  117. package/dist/molecules/pagination/all.d.ts +2 -0
  118. package/dist/molecules/pagination/all.js +12 -0
  119. package/dist/molecules/pagination/all.js.map +1 -0
  120. package/dist/{components/table → molecules/pagination}/utils/getPageNumbers.d.ts +3 -3
  121. package/dist/molecules/pagination/utils/getPageNumbers.js +25 -0
  122. package/dist/molecules/pagination/utils/getPageNumbers.js.map +1 -0
  123. package/dist/molecules/table/Table.d.ts +9 -0
  124. package/dist/molecules/table/Table.js +58 -0
  125. package/dist/molecules/table/Table.js.map +1 -0
  126. package/dist/molecules/table/all.d.ts +0 -0
  127. package/dist/molecules/table/all.js +19 -0
  128. package/dist/molecules/table/all.js.map +1 -0
  129. package/dist/molecules/table/components/DefaultArrowSort.d.ts +5 -0
  130. package/dist/molecules/table/components/DefaultArrowSort.js +22 -0
  131. package/dist/molecules/table/components/DefaultArrowSort.js.map +1 -0
  132. package/dist/molecules/table/components/DefaultCell.d.ts +5 -0
  133. package/dist/molecules/table/components/DefaultCell.js +13 -0
  134. package/dist/molecules/table/components/DefaultCell.js.map +1 -0
  135. package/dist/molecules/table/components/DefaultCellFooter.d.ts +6 -0
  136. package/dist/molecules/table/components/DefaultCellFooter.js +12 -0
  137. package/dist/molecules/table/components/DefaultCellFooter.js.map +1 -0
  138. package/dist/molecules/table/components/DefaultCellHeader.d.ts +6 -0
  139. package/dist/molecules/table/components/DefaultCellHeader.js +30 -0
  140. package/dist/molecules/table/components/DefaultCellHeader.js.map +1 -0
  141. package/dist/molecules/table/components/DefaultCellOperations.d.ts +10 -0
  142. package/dist/molecules/table/components/DefaultCellOperations.js +24 -0
  143. package/dist/molecules/table/components/DefaultCellOperations.js.map +1 -0
  144. package/dist/molecules/table/components/DefaultFilter.d.ts +11 -0
  145. package/dist/molecules/table/components/DefaultFilter.js +15 -0
  146. package/dist/molecules/table/components/DefaultFilter.js.map +1 -0
  147. package/dist/molecules/table/components/DefaultOperationButton.d.ts +11 -0
  148. package/dist/molecules/table/components/DefaultOperationButton.js +30 -0
  149. package/dist/molecules/table/components/DefaultOperationButton.js.map +1 -0
  150. package/dist/molecules/table/filters/Filters.d.js +2 -0
  151. package/dist/molecules/table/filters/Filters.d.js.map +1 -0
  152. package/dist/molecules/table/filters/RangeFilter.d.ts +3 -0
  153. package/dist/molecules/table/filters/RangeFilter.js +42 -0
  154. package/dist/molecules/table/filters/RangeFilter.js.map +1 -0
  155. package/dist/molecules/table/filters/SelectFilter.d.ts +3 -0
  156. package/dist/molecules/table/filters/SelectFilter.js +35 -0
  157. package/dist/molecules/table/filters/SelectFilter.js.map +1 -0
  158. package/dist/molecules/table/filters/TextFieldFilter.d.ts +3 -0
  159. package/dist/molecules/table/filters/TextFieldFilter.js +27 -0
  160. package/dist/molecules/table/filters/TextFieldFilter.js.map +1 -0
  161. package/dist/molecules/table/hooks/useTable.d.ts +15 -0
  162. package/dist/molecules/table/hooks/useTable.js +34 -0
  163. package/dist/molecules/table/hooks/useTable.js.map +1 -0
  164. package/dist/molecules/table/hooks/useUniqValues.d.ts +5 -0
  165. package/dist/molecules/table/hooks/useUniqValues.js +11 -0
  166. package/dist/molecules/table/hooks/useUniqValues.js.map +1 -0
  167. package/dist/molecules/table/interfaces/extends.d.ts +14 -0
  168. package/dist/molecules/table/interfaces/extends.js +2 -0
  169. package/dist/molecules/table/interfaces/extends.js.map +1 -0
  170. package/dist/molecules/table/utils/mapFormToColumns.d.ts +3 -0
  171. package/dist/molecules/table/utils/mapFormToColumns.js +39 -0
  172. package/dist/molecules/table/utils/mapFormToColumns.js.map +1 -0
  173. package/dist/{components/tabs/tabs.component.d.ts → molecules/tabs/Tabs.d.ts} +19 -19
  174. package/dist/molecules/tabs/Tabs.js +72 -0
  175. package/dist/molecules/tabs/Tabs.js.map +1 -0
  176. package/dist/organisms/form/Form.d.ts +22 -0
  177. package/dist/organisms/form/Form.js +15 -0
  178. package/dist/organisms/form/Form.js.map +1 -0
  179. package/dist/organisms/form/access/FormAccess.d.ts +9 -0
  180. package/dist/organisms/form/access/FormAccess.js +94 -0
  181. package/dist/organisms/form/access/FormAccess.js.map +1 -0
  182. package/dist/organisms/form/access/FormAccess.schema.d.ts +4 -0
  183. package/dist/organisms/form/access/FormAccess.schema.js +164 -0
  184. package/dist/organisms/form/access/FormAccess.schema.js.map +1 -0
  185. package/dist/organisms/form/access/FormAccess.utils.d.ts +23 -0
  186. package/dist/organisms/form/access/FormAccess.utils.js +68 -0
  187. package/dist/organisms/form/access/FormAccess.utils.js.map +1 -0
  188. package/dist/organisms/form/action/FormAction.d.ts +9 -0
  189. package/dist/organisms/form/action/FormAction.js +32 -0
  190. package/dist/organisms/form/action/FormAction.js.map +1 -0
  191. package/dist/organisms/form/builder/FormBuilder.d.ts +7 -0
  192. package/dist/organisms/form/builder/FormBuilder.js +17 -0
  193. package/dist/organisms/form/builder/FormBuilder.js.map +1 -0
  194. package/dist/organisms/form/builder/FormEdit.d.ts +8 -0
  195. package/dist/organisms/form/builder/FormEdit.js +70 -0
  196. package/dist/organisms/form/builder/FormEdit.js.map +1 -0
  197. package/dist/organisms/form/builder/FormEdit.reducer.d.ts +10 -0
  198. package/dist/organisms/form/builder/FormEdit.reducer.js +65 -0
  199. package/dist/organisms/form/builder/FormEdit.reducer.js.map +1 -0
  200. package/dist/organisms/form/builder/FormEditCtas.d.ts +15 -0
  201. package/dist/organisms/form/builder/FormEditCtas.js +52 -0
  202. package/dist/organisms/form/builder/FormEditCtas.js.map +1 -0
  203. package/dist/organisms/form/builder/FormParameters.d.ts +24 -0
  204. package/dist/organisms/form/builder/FormParameters.js +84 -0
  205. package/dist/organisms/form/builder/FormParameters.js.map +1 -0
  206. package/dist/organisms/form/builder/all.d.ts +6 -0
  207. package/dist/organisms/form/builder/all.js +26 -0
  208. package/dist/organisms/form/builder/all.js.map +1 -0
  209. package/dist/organisms/form/builder/useFormBuilder.d.ts +28 -0
  210. package/dist/organisms/form/builder/useFormBuilder.js +71 -0
  211. package/dist/organisms/form/builder/useFormBuilder.js.map +1 -0
  212. package/dist/{components/form-edit/useFormEdit.hook.d.ts → organisms/form/builder/useFormEdit.d.ts} +29 -29
  213. package/dist/organisms/form/builder/useFormEdit.js +36 -0
  214. package/dist/organisms/form/builder/useFormEdit.js.map +1 -0
  215. package/dist/{components/form-settings/formSettings.component.d.ts → organisms/form/settings/FormSettings.d.ts} +7 -8
  216. package/dist/organisms/form/settings/FormSettings.js +38 -0
  217. package/dist/organisms/form/settings/FormSettings.js.map +1 -0
  218. package/dist/organisms/form/settings/FormSettings.schema.d.ts +2 -0
  219. package/dist/organisms/form/settings/FormSettings.schema.js +60 -0
  220. package/dist/organisms/form/settings/FormSettings.schema.js.map +1 -0
  221. package/dist/organisms/form/settings/FormSettings.utils.d.ts +8 -0
  222. package/dist/organisms/form/settings/FormSettings.utils.js +23 -0
  223. package/dist/organisms/form/settings/FormSettings.utils.js.map +1 -0
  224. package/dist/organisms/form/types.d.ts +15 -0
  225. package/dist/organisms/form/types.js +2 -0
  226. package/dist/organisms/form/types.js.map +1 -0
  227. package/dist/organisms/form/useForm.d.ts +65 -0
  228. package/dist/organisms/form/useForm.js +776 -0
  229. package/dist/organisms/form/useForm.js.map +1 -0
  230. package/dist/{components/modal/removeModal.component.d.ts → organisms/modal/RemoveModal.d.ts} +9 -9
  231. package/dist/organisms/modal/RemoveModal.js +71 -0
  232. package/dist/organisms/modal/RemoveModal.js.map +1 -0
  233. package/dist/organisms/table/actions/ActionsTable.d.ts +10 -0
  234. package/dist/organisms/table/actions/ActionsTable.js +46 -0
  235. package/dist/organisms/table/actions/ActionsTable.js.map +1 -0
  236. package/dist/organisms/table/forms/FormsTable.d.ts +9 -0
  237. package/dist/organisms/table/forms/FormsTable.js +57 -0
  238. package/dist/organisms/table/forms/FormsTable.js.map +1 -0
  239. package/dist/organisms/table/forms/components/FormsCell.d.ts +5 -0
  240. package/dist/organisms/table/forms/components/FormsCell.js +50 -0
  241. package/dist/organisms/table/forms/components/FormsCell.js.map +1 -0
  242. package/dist/organisms/table/submissions/SubmissionsTable.d.ts +6 -0
  243. package/dist/organisms/table/submissions/SubmissionsTable.js +11 -0
  244. package/dist/organisms/table/submissions/SubmissionsTable.js.map +1 -0
  245. package/dist/react-app-env.d.js +2 -0
  246. package/dist/react-app-env.d.js.map +1 -0
  247. package/dist/react-table.d.js +2 -0
  248. package/dist/react-table.d.js.map +1 -0
  249. package/dist/registries/components.d.ts +3 -0
  250. package/dist/registries/components.js +19 -0
  251. package/dist/registries/components.js.map +1 -0
  252. package/dist/typings.d.js +2 -0
  253. package/dist/typings.d.js.map +1 -0
  254. package/dist/utils/getEventValue.d.ts +1 -1
  255. package/dist/utils/getEventValue.js +8 -0
  256. package/dist/utils/getEventValue.js.map +1 -0
  257. package/dist/utils/iconClass.d.ts +1 -1
  258. package/dist/utils/iconClass.js +9 -0
  259. package/dist/utils/iconClass.js.map +1 -0
  260. package/dist/utils/mapPagination.d.ts +1 -1
  261. package/dist/utils/mapPagination.js +11 -0
  262. package/dist/utils/mapPagination.js.map +1 -0
  263. package/dist/utils/stopPropagationWrapper.d.ts +1 -1
  264. package/dist/utils/stopPropagationWrapper.js +7 -0
  265. package/dist/utils/stopPropagationWrapper.js.map +1 -0
  266. package/package.json +29 -18
  267. package/readme.md +33 -20
  268. package/src/atoms/icon/Icon.stories.tsx +124 -0
  269. package/src/atoms/icon/Icon.tsx +16 -0
  270. package/src/index.ts +1 -6
  271. package/src/interfaces/ActionType.ts +26 -0
  272. package/src/interfaces/ComponentType.ts +3 -0
  273. package/src/interfaces/FormOptions.ts +4 -1
  274. package/src/interfaces/{FormSchema.ts → FormType.ts} +3 -3
  275. package/src/interfaces/Operation.ts +2 -2
  276. package/src/interfaces/{RoleSchema.ts → RoleType.ts} +1 -1
  277. package/src/interfaces/SubmissionType.ts +20 -0
  278. package/src/interfaces/index.ts +5 -4
  279. package/src/molecules/__fixtures__/build.js +28 -0
  280. package/src/molecules/__fixtures__/form-firstname.fixture.json +256 -0
  281. package/src/molecules/__fixtures__/form-schema.json +350 -0
  282. package/src/molecules/__fixtures__/form-submissions.json +11942 -0
  283. package/src/molecules/__fixtures__/form-wizard.fixture.json +2042 -0
  284. package/src/molecules/__fixtures__/products.json +81539 -0
  285. package/src/molecules/__fixtures__/useValue.hook.ts +14 -0
  286. package/src/{components/alert/alert.component.spec.tsx → molecules/alert/Alert.spec.tsx} +12 -15
  287. package/src/molecules/alert/Alert.stories.tsx +39 -0
  288. package/src/{components/alert/alert.component.tsx → molecules/alert/Alert.tsx} +9 -8
  289. package/src/molecules/button/Button.stories.tsx +106 -0
  290. package/src/molecules/button/Button.tsx +54 -0
  291. package/src/{components/card/card.component.spec.tsx → molecules/card/Card.spec.tsx} +3 -3
  292. package/src/{components/card/card.stories.tsx → molecules/card/Card.stories.tsx} +9 -4
  293. package/src/{components/card/card.component.tsx → molecules/card/Card.tsx} +1 -2
  294. package/src/{components/form-control/formControl.component.spec.tsx → molecules/forms/form-control/FormControl.spec.tsx} +9 -9
  295. package/src/molecules/forms/form-control/FormControl.stories.tsx +58 -0
  296. package/src/molecules/forms/form-control/FormControl.tsx +86 -0
  297. package/src/molecules/forms/input-tags/InputTags.interface.ts +9 -0
  298. package/src/molecules/forms/input-tags/InputTags.tsx +30 -0
  299. package/src/molecules/forms/input-tags/all.ts +6 -0
  300. package/src/molecules/forms/input-tags/components/ChoicesTags.stories.tsx +110 -0
  301. package/src/molecules/forms/input-tags/components/ChoicesTags.tsx +72 -0
  302. package/src/molecules/forms/input-tags/components/ReactTags.stories.tsx +140 -0
  303. package/src/molecules/forms/input-tags/components/ReactTags.tsx +38 -0
  304. package/src/molecules/forms/input-text/InputText.interface.ts +5 -0
  305. package/src/{components/input-text/inputText.component.spec.tsx → molecules/forms/input-text/InputText.spec.tsx} +8 -8
  306. package/src/molecules/forms/input-text/InputText.stories.tsx +179 -0
  307. package/src/molecules/forms/input-text/InputText.tsx +63 -0
  308. package/src/molecules/forms/select/Select.interface.ts +45 -0
  309. package/src/molecules/forms/select/Select.tsx +28 -0
  310. package/src/molecules/forms/select/all.ts +7 -0
  311. package/src/molecules/forms/select/components/ChoicesSelect.stories.tsx +332 -0
  312. package/src/molecules/forms/select/components/ChoicesSelect.tsx +159 -0
  313. package/src/molecules/forms/select/components/HtmlSelect.stories.tsx +305 -0
  314. package/src/molecules/forms/select/components/HtmlSelect.tsx +54 -0
  315. package/src/molecules/forms/select/components/ReactSelect.stories.tsx +287 -0
  316. package/src/molecules/forms/select/components/ReactSelect.tsx +60 -0
  317. package/src/molecules/forms/select/components/choices.template.tsx +38 -0
  318. package/src/molecules/forms/select/hooks/useOptions.spec.ts +154 -0
  319. package/src/molecules/forms/select/hooks/useOptions.ts +53 -0
  320. package/src/{components/loader/loader.component.spec.tsx → molecules/loader/Loader.spec.tsx} +4 -4
  321. package/src/molecules/loader/Loader.stories.tsx +43 -0
  322. package/src/{components/loader/loader.component.tsx → molecules/loader/Loader.tsx} +3 -11
  323. package/src/molecules/modal/Modal.spec.tsx +203 -0
  324. package/src/molecules/modal/Modal.stories.tsx +178 -0
  325. package/src/{components/modal/modal.component.tsx → molecules/modal/Modal.tsx} +1 -1
  326. package/src/{components/pagination/pagination.component.spec.tsx → molecules/pagination/Pagination.spec.tsx} +27 -22
  327. package/src/molecules/pagination/Pagination.stories.tsx +99 -0
  328. package/src/{components/pagination/pagination.component.tsx → molecules/pagination/Pagination.tsx} +34 -47
  329. package/src/molecules/pagination/PaginationButton.tsx +30 -0
  330. package/src/molecules/pagination/all.ts +3 -0
  331. package/src/molecules/table/Table.stories.tsx +272 -0
  332. package/src/molecules/table/Table.tsx +100 -0
  333. package/src/molecules/table/all.ts +16 -0
  334. package/src/molecules/table/components/DefaultArrowSort.tsx +26 -0
  335. package/src/molecules/table/components/DefaultCell.tsx +22 -0
  336. package/src/molecules/table/components/DefaultCellFooter.tsx +16 -0
  337. package/src/molecules/table/components/DefaultCellHeader.tsx +42 -0
  338. package/src/molecules/table/components/DefaultCellOperations.tsx +42 -0
  339. package/src/molecules/table/components/DefaultFilter.tsx +42 -0
  340. package/src/molecules/table/components/DefaultOperationButton.tsx +40 -0
  341. package/src/molecules/table/filters/Filters.d.ts +31 -0
  342. package/src/molecules/table/filters/RangeFilter.tsx +43 -0
  343. package/src/molecules/table/filters/SelectFilter.tsx +47 -0
  344. package/src/molecules/table/filters/TextFieldFilter.tsx +36 -0
  345. package/src/molecules/table/hooks/useTable.tsx +75 -0
  346. package/src/molecules/table/hooks/useUniqValues.tsx +10 -0
  347. package/src/molecules/table/interfaces/extends.ts +18 -0
  348. package/src/molecules/table/utils/mapFormToColumns.tsx +74 -0
  349. package/src/{components/tabs/tabs.component.spec.tsx → molecules/tabs/Tabs.spec.tsx} +6 -6
  350. package/src/molecules/tabs/Tabs.stories.tsx +141 -0
  351. package/src/{components/tabs/tabs.component.tsx → molecules/tabs/Tabs.tsx} +1 -1
  352. package/src/organisms/__fixtures__/WrapComponent.tsx +11 -0
  353. package/src/organisms/__fixtures__/form-actions.json +240 -0
  354. package/src/organisms/__fixtures__/form-firstname.fixture.json +256 -0
  355. package/src/organisms/__fixtures__/form-wizard.fixture.json +2042 -0
  356. package/src/organisms/__fixtures__/form.fixture.json +2067 -0
  357. package/src/organisms/__fixtures__/useEditForm.tsx +84 -0
  358. package/src/organisms/__fixtures__/utils.ts +74 -0
  359. package/src/{components/form/form.component.spec.tsx → organisms/form/Form.spec.tsx} +6 -7
  360. package/src/organisms/form/Form.stories.tsx +698 -0
  361. package/src/organisms/form/Form.tsx +29 -0
  362. package/src/{components/form-access/formAccess.schema.ts → organisms/form/access/FormAccess.schema.ts} +4 -6
  363. package/src/{components/form-access/formAccess.stories.tsx → organisms/form/access/FormAccess.stories.tsx} +8 -2
  364. package/src/{components/form-access/formAccess.component.tsx → organisms/form/access/FormAccess.tsx} +16 -18
  365. package/src/{components/form-access/formAccess.utils.spec.ts → organisms/form/access/FormAccess.utils.spec.ts} +13 -7
  366. package/src/{components/form-access/formAccess.utils.ts → organisms/form/access/FormAccess.utils.ts} +23 -20
  367. package/src/{components/form-action/formAction.stories.tsx → organisms/form/action/FormAction.stories.tsx} +11 -13
  368. package/src/{components/form-action/formAction.component.tsx → organisms/form/action/FormAction.tsx} +8 -8
  369. package/src/organisms/form/builder/FormBuilder.stories.tsx +97 -0
  370. package/src/organisms/form/builder/FormBuilder.tsx +28 -0
  371. package/src/{components/form-edit/formEdit.reducer.ts → organisms/form/builder/FormEdit.reducer.ts} +6 -6
  372. package/src/{components/form-edit/formEdit.stories.tsx → organisms/form/builder/FormEdit.stories.tsx} +88 -44
  373. package/src/organisms/form/builder/FormEdit.tsx +75 -0
  374. package/src/organisms/form/builder/FormEditCtas.tsx +97 -0
  375. package/src/{components/form-edit/formParameters.component.tsx → organisms/form/builder/FormParameters.tsx} +29 -29
  376. package/src/organisms/form/builder/all.ts +17 -0
  377. package/src/organisms/form/builder/useFormBuilder.ts +143 -0
  378. package/src/{components/form-edit/useFormEdit.hook.ts → organisms/form/builder/useFormEdit.ts} +8 -8
  379. package/src/{components/form-settings/formSettings.component.spec.tsx → organisms/form/settings/FormSettings.component.spec.tsx} +3 -4
  380. package/src/{components/form-settings/formSettings.schema.ts → organisms/form/settings/FormSettings.schema.ts} +2 -2
  381. package/src/{components/form-settings/formSettings.stories.tsx → organisms/form/settings/FormSettings.stories.tsx} +10 -10
  382. package/src/{components/form-settings/formSettings.component.tsx → organisms/form/settings/FormSettings.tsx} +8 -9
  383. package/src/{components/form-settings/formSettings.utils.spec.ts → organisms/form/settings/FormSettings.utils.spec.ts} +1 -1
  384. package/src/{components/form-settings/formSettings.utils.ts → organisms/form/settings/FormSettings.utils.ts} +4 -4
  385. package/src/organisms/form/types.ts +8 -0
  386. package/src/organisms/form/useForm.ts +223 -0
  387. package/src/organisms/modal/RemoveModal.stories.tsx +59 -0
  388. package/src/{components/modal/removeModal.component.tsx → organisms/modal/RemoveModal.tsx} +3 -3
  389. package/src/{components/actions-table/actionsTable.component.spec.tsx → organisms/table/actions/ActionsTable.spec.tsx} +14 -11
  390. package/src/{components/actions-table/actionsTable.stories.tsx → organisms/table/actions/ActionsTable.stories.tsx} +22 -24
  391. package/src/{components/actions-table/actionsTable.component.tsx → organisms/table/actions/ActionsTable.tsx} +14 -21
  392. package/src/{components/forms-table/formsTable.stories.tsx → organisms/table/forms/FormsTable.stories.tsx} +24 -28
  393. package/src/organisms/table/forms/FormsTable.tsx +66 -0
  394. package/src/organisms/table/forms/components/FormsCell.tsx +53 -0
  395. package/src/{components/submissions-table/submissionsTable.stories.tsx → organisms/table/submissions/SubmissionsTable.stories.tsx} +28 -31
  396. package/src/organisms/table/submissions/SubmissionsTable.tsx +13 -0
  397. package/src/registries/components.ts +23 -0
  398. package/src/utils/iconClass.ts +3 -1
  399. package/tsconfig.app.json +11 -0
  400. package/tsconfig.json +10 -5
  401. package/tsconfig.node.json +9 -4
  402. package/tsconfig.spec.json +14 -0
  403. package/vite.config.mts +69 -0
  404. package/vitest.config.mts +21 -0
  405. package/.eslintignore +0 -13
  406. package/.eslintrc.js +0 -7
  407. package/coverage.json +0 -6
  408. package/dist/components/actions-table/actionsTable.component.d.ts +0 -11
  409. package/dist/components/actions-table/actionsTable.component.spec.d.ts +0 -1
  410. package/dist/components/actions-table/actionsTable.stories.d.ts +0 -40
  411. package/dist/components/alert/alert.component.d.ts +0 -6
  412. package/dist/components/alert/alert.component.spec.d.ts +0 -1
  413. package/dist/components/alert/alert.stories.d.ts +0 -15
  414. package/dist/components/card/card.component.spec.d.ts +0 -1
  415. package/dist/components/card/card.stories.d.ts +0 -16
  416. package/dist/components/form/form.component.d.ts +0 -63
  417. package/dist/components/form/form.component.spec.d.ts +0 -1
  418. package/dist/components/form/form.stories.d.ts +0 -6445
  419. package/dist/components/form/useForm.hook.d.ts +0 -60
  420. package/dist/components/form-access/formAccess.component.d.ts +0 -9
  421. package/dist/components/form-access/formAccess.schema.d.ts +0 -5
  422. package/dist/components/form-access/formAccess.stories.d.ts +0 -21
  423. package/dist/components/form-access/formAccess.utils.d.ts +0 -24
  424. package/dist/components/form-access/formAccess.utils.spec.d.ts +0 -1
  425. package/dist/components/form-action/formAction.component.d.ts +0 -9
  426. package/dist/components/form-action/formAction.stories.d.ts +0 -409
  427. package/dist/components/form-builder/formBuilder.component.d.ts +0 -53
  428. package/dist/components/form-builder/formBuilder.stories.d.ts +0 -5989
  429. package/dist/components/form-control/formControl.component.d.ts +0 -14
  430. package/dist/components/form-control/formControl.component.spec.d.ts +0 -1
  431. package/dist/components/form-control/formControl.stories.d.ts +0 -58
  432. package/dist/components/form-edit/formCtas.component.d.ts +0 -28
  433. package/dist/components/form-edit/formEdit.component.d.ts +0 -19
  434. package/dist/components/form-edit/formEdit.reducer.d.ts +0 -10
  435. package/dist/components/form-edit/formEdit.stories.d.ts +0 -396
  436. package/dist/components/form-edit/formParameters.component.d.ts +0 -34
  437. package/dist/components/form-settings/formSettings.component.spec.d.ts +0 -1
  438. package/dist/components/form-settings/formSettings.schema.d.ts +0 -2
  439. package/dist/components/form-settings/formSettings.stories.d.ts +0 -58
  440. package/dist/components/form-settings/formSettings.utils.d.ts +0 -8
  441. package/dist/components/form-settings/formSettings.utils.spec.d.ts +0 -1
  442. package/dist/components/forms-table/components/formCell.component.d.ts +0 -7
  443. package/dist/components/forms-table/formsTable.component.d.ts +0 -11
  444. package/dist/components/forms-table/formsTable.stories.d.ts +0 -117
  445. package/dist/components/index.d.ts +0 -26
  446. package/dist/components/input-tags/inputTags.component.d.ts +0 -19
  447. package/dist/components/input-tags/inputTags.stories.d.ts +0 -76
  448. package/dist/components/input-text/inputText.component.d.ts +0 -28
  449. package/dist/components/input-text/inputText.component.spec.d.ts +0 -1
  450. package/dist/components/input-text/inputText.stories.d.ts +0 -101
  451. package/dist/components/loader/loader.component.d.ts +0 -17
  452. package/dist/components/loader/loader.component.spec.d.ts +0 -1
  453. package/dist/components/loader/loader.stories.d.ts +0 -15
  454. package/dist/components/modal/modal.component.spec.d.ts +0 -1
  455. package/dist/components/modal/modal.stories.d.ts +0 -44
  456. package/dist/components/pagination/pagination.component.d.ts +0 -18
  457. package/dist/components/pagination/pagination.component.spec.d.ts +0 -1
  458. package/dist/components/pagination/pagination.stories.d.ts +0 -16
  459. package/dist/components/react-component/reactComponent.component.d.ts +0 -90
  460. package/dist/components/select/select.component.d.ts +0 -14
  461. package/dist/components/select/select.component.spec.d.ts +0 -1
  462. package/dist/components/select/select.stories.d.ts +0 -164
  463. package/dist/components/submissions-table/submissionsTable.component.d.ts +0 -7
  464. package/dist/components/submissions-table/submissionsTable.stories.d.ts +0 -649
  465. package/dist/components/table/components/defaultArrowSort.component.d.ts +0 -2
  466. package/dist/components/table/components/defaultCell.component.d.ts +0 -2
  467. package/dist/components/table/components/defaultCellHeader.component.d.ts +0 -6
  468. package/dist/components/table/components/defaultCellOperations.component.d.ts +0 -13
  469. package/dist/components/table/components/defaultCells.component.d.ts +0 -5
  470. package/dist/components/table/components/defaultOperationButton.component.d.ts +0 -14
  471. package/dist/components/table/components/defaultRow.component.d.ts +0 -12
  472. package/dist/components/table/components/dragNDropContainer.d.ts +0 -4
  473. package/dist/components/table/filters/defaultColumnFilter.component.d.ts +0 -6
  474. package/dist/components/table/filters/defaultColumnFilter.component.spec.d.ts +0 -1
  475. package/dist/components/table/filters/selectColumnFilter.component.d.ts +0 -11
  476. package/dist/components/table/filters/selectColumnFilter.component.spec.d.ts +0 -1
  477. package/dist/components/table/filters/sliderColumnFilter.component.d.ts +0 -3
  478. package/dist/components/table/hooks/useCustomTable.hook.d.ts +0 -128
  479. package/dist/components/table/hooks/useDragnDropRow.hook.d.ts +0 -274
  480. package/dist/components/table/hooks/useOperations.hook.d.ts +0 -11
  481. package/dist/components/table/index.d.ts +0 -15
  482. package/dist/components/table/table.component.d.ts +0 -3
  483. package/dist/components/table/table.stories.d.ts +0 -71
  484. package/dist/components/table/utils/mapFormToColumns.d.ts +0 -3
  485. package/dist/components/table/utils/swapElements.d.ts +0 -1
  486. package/dist/components/table/utils/swapElements.spec.d.ts +0 -1
  487. package/dist/components/tabs/tabs.component.spec.d.ts +0 -1
  488. package/dist/components/tabs/tabs.component.stories.d.ts +0 -47
  489. package/dist/index.modern.js +0 -7437
  490. package/dist/index.modern.js.map +0 -1
  491. package/dist/interfaces/ActionSchema.d.ts +0 -23
  492. package/dist/interfaces/Submission.d.ts +0 -5
  493. package/dist/setupTests.d.ts +0 -1
  494. package/dist/utils/callLast.d.ts +0 -1
  495. package/jest.config.js +0 -6
  496. package/src/components/alert/alert.stories.tsx +0 -18
  497. package/src/components/form/form.component.tsx +0 -73
  498. package/src/components/form/form.stories.tsx +0 -253
  499. package/src/components/form/useForm.hook.ts +0 -216
  500. package/src/components/form-builder/formBuilder.component.tsx +0 -195
  501. package/src/components/form-builder/formBuilder.stories.tsx +0 -3667
  502. package/src/components/form-control/formControl.component.tsx +0 -58
  503. package/src/components/form-control/formControl.stories.tsx +0 -65
  504. package/src/components/form-edit/formCtas.component.tsx +0 -106
  505. package/src/components/form-edit/formEdit.component.tsx +0 -60
  506. package/src/components/forms-table/components/formCell.component.tsx +0 -48
  507. package/src/components/forms-table/formsTable.component.tsx +0 -42
  508. package/src/components/index.ts +0 -26
  509. package/src/components/input-tags/inputTags.component.tsx +0 -58
  510. package/src/components/input-tags/inputTags.stories.tsx +0 -97
  511. package/src/components/input-text/inputText.component.tsx +0 -85
  512. package/src/components/input-text/inputText.stories.tsx +0 -126
  513. package/src/components/loader/loader.stories.tsx +0 -18
  514. package/src/components/modal/modal.component.spec.tsx +0 -79
  515. package/src/components/modal/modal.stories.tsx +0 -192
  516. package/src/components/pagination/pagination.stories.tsx +0 -40
  517. package/src/components/react-component/reactComponent.component.tsx +0 -197
  518. package/src/components/select/select.component.spec.tsx +0 -85
  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 -16
  522. package/src/components/table/components/defaultArrowSort.component.tsx +0 -12
  523. package/src/components/table/components/defaultCell.component.tsx +0 -15
  524. package/src/components/table/components/defaultCellHeader.component.tsx +0 -19
  525. package/src/components/table/components/defaultCellOperations.component.tsx +0 -39
  526. package/src/components/table/components/defaultCells.component.tsx +0 -31
  527. package/src/components/table/components/defaultOperationButton.component.tsx +0 -53
  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 -34
  531. package/src/components/table/filters/defaultColumnFilter.component.tsx +0 -39
  532. package/src/components/table/filters/selectColumnFilter.component.spec.tsx +0 -69
  533. package/src/components/table/filters/selectColumnFilter.component.tsx +0 -52
  534. package/src/components/table/filters/sliderColumnFilter.component.tsx +0 -31
  535. package/src/components/table/hooks/useCustomTable.hook.tsx +0 -272
  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 -34
  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/setupTests.tsx +0 -5
  548. package/src/utils/callLast.ts +0 -12
  549. /package/src/{components → molecules}/__fixtures__/form-actions.json +0 -0
  550. /package/src/{components → molecules}/__fixtures__/form.fixture.json +0 -0
  551. /package/src/{components/table → molecules/pagination}/utils/getPageNumbers.ts +0 -0
  552. /package/src/{components → organisms}/__fixtures__/form-schema.json +0 -0
  553. /package/src/{components → organisms}/__fixtures__/form-submissions.json +0 -0
  554. /package/src/{components/actions-table → organisms/table/actions}/__fixtures__/data.json +0 -0
@@ -1,69 +0,0 @@
1
- import "@testing-library/jest-dom/extend-expect";
2
-
3
- import { render, screen } from "@testing-library/react";
4
- import React from "react";
5
-
6
- import { SelectColumnFilter } from "./selectColumnFilter.component";
7
-
8
- describe("SelectColumnFilter", () => {
9
- it("should display select with choices", async () => {
10
- const mockSetFilter = jest.fn();
11
- const props = {
12
- name: "data.id",
13
- setFilter: mockSetFilter,
14
- column: {
15
- id: "id",
16
- preFilteredRows: [{ values: { id: "select-choice-1" } }, { values: { id: "select-choice-2" } }]
17
- }
18
- };
19
-
20
- render(
21
- // @ts-ignore
22
- <SelectColumnFilter {...props} />
23
- );
24
-
25
- expect(screen.getByText("select-choice-1")).toBeDefined();
26
- expect(screen.getByText("select-choice-2")).toBeDefined();
27
- });
28
- it("should display select with custom choices", async () => {
29
- const mockSetFilter = jest.fn();
30
- const props = {
31
- name: "data.id",
32
- setFilter: mockSetFilter,
33
- column: {
34
- id: "id",
35
- preFilteredRows: [{ values: { id: "select-choice-1" } }, { values: { id: "select-choice-2" } }],
36
- choices: [{ label: "fake-choice", value: "fake-choice" }]
37
- }
38
- };
39
-
40
- render(
41
- // @ts-ignore
42
- <SelectColumnFilter {...props} />
43
- );
44
-
45
- expect(screen.queryByText("select-choice-1")).toBeNull();
46
- expect(screen.getByText("fake-choice")).toBeDefined();
47
- });
48
-
49
- it("should display select with custom choices (function)", async () => {
50
- const mockSetFilter = jest.fn();
51
- const props = {
52
- name: "data.id",
53
- setFilter: mockSetFilter,
54
- column: {
55
- id: "id",
56
- preFilteredRows: [{ values: { id: "select-choice-1" } }, { values: { id: "select-choice-2" } }],
57
- choices: () => [{ label: "fake-choice", value: "fake-choice" }]
58
- }
59
- };
60
-
61
- render(
62
- // @ts-ignore
63
- <SelectColumnFilter {...props} />
64
- );
65
-
66
- expect(screen.queryByText("select-choice-1")).toBeNull();
67
- expect(screen.getByText("fake-choice")).toBeDefined();
68
- });
69
- });
@@ -1,52 +0,0 @@
1
- import React from "react";
2
- import { FilterProps } from "react-table";
3
-
4
- import { Select } from "../../select/select.component";
5
-
6
- export function useSelectColumnFilter<D extends Record<string, unknown> = {}>(props: FilterProps<D>) {
7
- const { column } = props;
8
- const { id, preFilteredRows } = column;
9
- const { choices: customChoices } = column as any;
10
- const { filterValue, setFilter } = column;
11
-
12
- const choices = (() => {
13
- if (customChoices) {
14
- if (typeof customChoices === "function") {
15
- return customChoices(props);
16
- }
17
- return customChoices;
18
- }
19
-
20
- return [...new Set(preFilteredRows.map((row) => row.values[id]))]
21
- .filter((value) => value)
22
- .map((value) => ({
23
- label: value,
24
- value
25
- }));
26
- })();
27
-
28
- const onChange = (_: string, value: any) => {
29
- setFilter(value || undefined);
30
- };
31
-
32
- return {
33
- value: filterValue,
34
- onChange,
35
- choices: [{ value: "", label: "All" }].concat(choices)
36
- };
37
- }
38
-
39
- export function SelectColumnFilter<D extends Record<string, unknown> = {}>(props: FilterProps<D>) {
40
- const { value, choices, onChange } = useSelectColumnFilter(props);
41
-
42
- return (
43
- <Select
44
- key={`filter-${props.column.id}`}
45
- name={`filter-${props.column.id}`}
46
- size={"sm"}
47
- value={value}
48
- choices={choices}
49
- onChange={onChange}
50
- />
51
- );
52
- }
@@ -1,31 +0,0 @@
1
- import React from "react";
2
- import { FilterProps } from "react-table";
3
-
4
- export function SliderColumnFilter<D extends Record<string, unknown> = {}>({
5
- column: { filterValue, setFilter, preFilteredRows, id }
6
- }: FilterProps<D>) {
7
- const [min, max] = React.useMemo(() => {
8
- let min = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;
9
- let max = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;
10
- preFilteredRows.forEach((row) => {
11
- min = Math.min(row?.values[id], min);
12
- max = Math.max(row?.values[id], max);
13
- });
14
- return [min, max];
15
- }, [id, preFilteredRows]);
16
-
17
- return (
18
- <>
19
- <input
20
- type='range'
21
- min={min}
22
- max={max}
23
- value={filterValue || min}
24
- onChange={(e) => {
25
- setFilter(parseInt(e.target.value, 10));
26
- }}
27
- />
28
- <button onClick={() => setFilter(undefined)}>Off</button>
29
- </>
30
- );
31
- }
@@ -1,272 +0,0 @@
1
- import noop from "lodash/noop";
2
- import React, { 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?: React.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?: React.ComponentType;
70
- /**
71
- * Custom ArrowSort
72
- */
73
- ArrowSort?: React.ComponentType;
74
- /**
75
- * Custom default ColumnFilter
76
- */
77
- ColumnFilter?: Renderer<FilterProps<Data>>;
78
- /**
79
- * Custom cell
80
- */
81
- Cell?: React.ComponentType<CellProps<Data>>;
82
- /**
83
- * Custom Row
84
- */
85
- Row?: React.ComponentType<DefaultRowProps<Data>>;
86
- /**
87
- *
88
- */
89
- CellHeader?: React.ComponentType<DefaultCellHeaderProps<Data>>;
90
- /**
91
- *
92
- */
93
- CellOperations?: React.ComponentType;
94
- /**
95
- * Custom Loader
96
- */
97
- Loader?: React.ComponentType;
98
- /**
99
- * Custom Loader
100
- */
101
- Pagination?: React.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 = React.useMemo(
183
- () => ({
184
- // Let's set up our default Filter UI
185
- Filter: ColumnFilter,
186
- ArrowSort
187
- }),
188
- [ColumnFilter, ArrowSort]
189
- ) as any;
190
-
191
- const [filterId, setFilterId] = React.useState(controlledFilterId);
192
-
193
- // DND
194
- const [records, setRecords] = useState<readonly Data[]>(data);
195
-
196
- useEffect(() => {
197
- setRecords(data);
198
- }, [data]);
199
-
200
- const _onDrag = (dragIndex: number, hoverIndex: number) => {
201
- const newRecords = swapElements([...records], dragIndex, hoverIndex);
202
-
203
- setRecords(newRecords);
204
-
205
- onDrag(newRecords);
206
- };
207
-
208
- const tableInstance = useTable<Data>(
209
- {
210
- ...props,
211
- columns,
212
- data,
213
- ctx,
214
- defaultColumn,
215
- // getRowId,
216
- initialState: {
217
- ...(props.initialState || {}),
218
- filters: controlledFilters || [],
219
- pageIndex: controlledPageIndex || 0,
220
- pageSize: controlledPageSize || 10,
221
- sortBy: controlledSortBy || []
222
- } as any,
223
- manualPagination: props.manualPagination === undefined ? true : props.manualPagination,
224
- manualSortBy: props.manualSortBy === undefined ? true : props.manualPagination,
225
- manualFilters: props.manualFilters === undefined ? true : props.manualFilters,
226
- disableFilters,
227
- filterId,
228
- setFilterId
229
- } as any,
230
- ...hooks,
231
- useOperations({ operations, CellOperations, onClick: _onClick, ctx, i18n })
232
- );
233
-
234
- const {
235
- setPageSize,
236
- state: { pageIndex, pageSize, sortBy, filters }
237
- } = tableInstance;
238
-
239
- React.useEffect(() => {
240
- onChange({
241
- pageIndex,
242
- pageSize,
243
- sortBy,
244
- filters,
245
- filterId
246
- });
247
- }, [onChange, pageIndex, pageSize, sortBy, filters, filterId]);
248
-
249
- return {
250
- className,
251
- tableInstance,
252
- CellHeader,
253
- isLoading,
254
- Loader,
255
- EmptyData,
256
- Row,
257
- data,
258
- disablePagination,
259
- Pagination,
260
- pageIndex,
261
- pageSize,
262
- pageSizes,
263
- totalLength,
264
- setPageSize,
265
- i18n,
266
- children,
267
- onClick: _onClick as any,
268
- onDrag: _onDrag,
269
- onDrop: onDrop,
270
- enableDragNDrop: props.enableDragNDrop
271
- };
272
- }
@@ -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 React, { 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 React, { 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
- }