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

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 (626) 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/hooks/keyboard.constants.d.ts +38 -0
  13. package/dist/hooks/keyboard.constants.js +7 -0
  14. package/dist/hooks/keyboard.constants.js.map +1 -0
  15. package/dist/hooks/useKeyboardControls.d.ts +12 -0
  16. package/dist/hooks/useKeyboardControls.js +35 -0
  17. package/dist/hooks/useKeyboardControls.js.map +1 -0
  18. package/dist/index.d.ts +0 -6
  19. package/dist/index.js +12 -105
  20. package/dist/index.js.map +1 -1
  21. package/dist/interfaces/ActionType.d.ts +23 -0
  22. package/dist/interfaces/ActionType.js +2 -0
  23. package/dist/interfaces/ActionType.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 +3 -0
  28. package/dist/interfaces/{FormSchema.d.ts → FormType.d.ts} +3 -3
  29. package/dist/interfaces/FormType.js +2 -0
  30. package/dist/interfaces/FormType.js.map +1 -0
  31. package/dist/interfaces/Operation.d.ts +13 -4
  32. package/dist/interfaces/{RoleSchema.d.ts → RoleType.d.ts} +1 -1
  33. package/dist/interfaces/RoleType.js +2 -0
  34. package/dist/interfaces/RoleType.js.map +1 -0
  35. package/dist/interfaces/SubmissionType.d.ts +29 -0
  36. package/dist/interfaces/SubmissionType.js +2 -0
  37. package/dist/interfaces/SubmissionType.js.map +1 -0
  38. package/dist/interfaces/index.d.ts +5 -4
  39. package/dist/molecules/alert/Alert.d.ts +6 -0
  40. package/dist/{components/alert/alert.component.js → molecules/alert/Alert.js} +10 -7
  41. package/dist/molecules/alert/Alert.js.map +1 -0
  42. package/dist/molecules/button/Button.d.ts +21 -0
  43. package/dist/molecules/button/Button.js +51 -0
  44. package/dist/molecules/button/Button.js.map +1 -0
  45. package/dist/molecules/card/Card.js +14 -0
  46. package/dist/molecules/card/Card.js.map +1 -0
  47. package/dist/molecules/forms/form-control/FormControl.d.ts +17 -0
  48. package/dist/molecules/forms/form-control/FormControl.js +51 -0
  49. package/dist/molecules/forms/form-control/FormControl.js.map +1 -0
  50. package/dist/molecules/forms/input-tags/InputTags.d.ts +2 -0
  51. package/dist/molecules/forms/input-tags/InputTags.interface.d.ts +7 -0
  52. package/dist/molecules/forms/input-tags/InputTags.interface.js +2 -0
  53. package/dist/molecules/forms/input-tags/InputTags.interface.js.map +1 -0
  54. package/dist/molecules/forms/input-tags/InputTags.js +25 -0
  55. package/dist/molecules/forms/input-tags/InputTags.js.map +1 -0
  56. package/dist/molecules/forms/input-tags/all.d.ts +2 -0
  57. package/dist/molecules/forms/input-tags/all.js +9 -0
  58. package/dist/molecules/forms/input-tags/all.js.map +1 -0
  59. package/dist/molecules/forms/input-tags/components/ChoicesTags.d.ts +307 -0
  60. package/dist/molecules/forms/input-tags/components/ChoicesTags.js +51 -0
  61. package/dist/molecules/forms/input-tags/components/ChoicesTags.js.map +1 -0
  62. package/dist/molecules/forms/input-tags/components/ReactTags.d.ts +2 -0
  63. package/dist/molecules/forms/input-tags/components/ReactTags.js +1937 -0
  64. package/dist/molecules/forms/input-tags/components/ReactTags.js.map +1 -0
  65. package/dist/molecules/forms/input-text/InputText.d.ts +2 -0
  66. package/dist/molecules/forms/input-text/InputText.interface.d.ts +4 -0
  67. package/dist/molecules/forms/input-text/InputText.interface.js +2 -0
  68. package/dist/molecules/forms/input-text/InputText.interface.js.map +1 -0
  69. package/dist/molecules/forms/input-text/InputText.js +54 -0
  70. package/dist/molecules/forms/input-text/InputText.js.map +1 -0
  71. package/dist/molecules/forms/select/Select.d.ts +2 -0
  72. package/dist/molecules/forms/select/Select.interface.d.ts +38 -0
  73. package/dist/molecules/forms/select/Select.interface.js +2 -0
  74. package/dist/molecules/forms/select/Select.interface.js.map +1 -0
  75. package/dist/molecules/forms/select/Select.js +16 -0
  76. package/dist/molecules/forms/select/Select.js.map +1 -0
  77. package/dist/molecules/forms/select/all.d.ts +2 -0
  78. package/dist/molecules/forms/select/all.js +9 -0
  79. package/dist/molecules/forms/select/all.js.map +1 -0
  80. package/dist/molecules/forms/select/components/ChoicesSelect.d.ts +7 -0
  81. package/dist/molecules/forms/select/components/ChoicesSelect.js +115 -0
  82. package/dist/molecules/forms/select/components/ChoicesSelect.js.map +1 -0
  83. package/dist/molecules/forms/select/components/HtmlSelect.d.ts +2 -0
  84. package/dist/molecules/forms/select/components/HtmlSelect.js +35 -0
  85. package/dist/molecules/forms/select/components/HtmlSelect.js.map +1 -0
  86. package/dist/molecules/forms/select/components/ReactSelect.d.ts +2 -0
  87. package/dist/molecules/forms/select/components/ReactSelect.js +46 -0
  88. package/dist/molecules/forms/select/components/ReactSelect.js.map +1 -0
  89. package/dist/molecules/forms/select/components/choices.template.d.ts +7 -0
  90. package/dist/molecules/forms/select/components/choices.template.js +9654 -0
  91. package/dist/molecules/forms/select/components/choices.template.js.map +1 -0
  92. package/dist/molecules/forms/select/hooks/useOptions.d.ts +9 -0
  93. package/dist/molecules/forms/select/hooks/useOptions.js +35 -0
  94. package/dist/molecules/forms/select/hooks/useOptions.js.map +1 -0
  95. package/dist/{components/loader/loader.component.d.ts → molecules/loader/Loader.d.ts} +0 -9
  96. package/dist/molecules/loader/Loader.js +19 -0
  97. package/dist/molecules/loader/Loader.js.map +1 -0
  98. package/dist/{components/modal/modal.component.js → molecules/modal/Modal.js} +1 -1
  99. package/dist/molecules/modal/Modal.js.map +1 -0
  100. package/dist/{components/pagination/pagination.component.d.ts → molecules/pagination/Pagination.d.ts} +6 -5
  101. package/dist/molecules/pagination/Pagination.js +77 -0
  102. package/dist/molecules/pagination/Pagination.js.map +1 -0
  103. package/dist/molecules/pagination/PaginationButton.d.ts +7 -0
  104. package/dist/molecules/pagination/PaginationButton.js +21 -0
  105. package/dist/molecules/pagination/PaginationButton.js.map +1 -0
  106. package/dist/molecules/pagination/all.d.ts +2 -0
  107. package/dist/molecules/pagination/all.js +12 -0
  108. package/dist/molecules/pagination/all.js.map +1 -0
  109. package/dist/molecules/pagination/utils/getPageNumbers.js.map +1 -0
  110. package/dist/molecules/table/Table.d.ts +17 -0
  111. package/dist/molecules/table/Table.js +63 -0
  112. package/dist/molecules/table/Table.js.map +1 -0
  113. package/dist/molecules/table/all.d.ts +0 -0
  114. package/dist/molecules/table/all.js +19 -0
  115. package/dist/molecules/table/all.js.map +1 -0
  116. package/dist/molecules/table/components/DefaultArrowSort.d.ts +5 -0
  117. package/dist/molecules/table/components/DefaultArrowSort.js +22 -0
  118. package/dist/molecules/table/components/DefaultArrowSort.js.map +1 -0
  119. package/dist/molecules/table/components/DefaultCell.d.ts +5 -0
  120. package/dist/molecules/table/components/DefaultCell.js +13 -0
  121. package/dist/molecules/table/components/DefaultCell.js.map +1 -0
  122. package/dist/molecules/table/components/DefaultCellFooter.d.ts +6 -0
  123. package/dist/molecules/table/components/DefaultCellFooter.js +12 -0
  124. package/dist/molecules/table/components/DefaultCellFooter.js.map +1 -0
  125. package/dist/molecules/table/components/DefaultCellHeader.d.ts +6 -0
  126. package/dist/molecules/table/components/DefaultCellHeader.js +30 -0
  127. package/dist/molecules/table/components/DefaultCellHeader.js.map +1 -0
  128. package/dist/molecules/table/components/DefaultCellOperations.d.ts +18 -0
  129. package/dist/molecules/table/components/DefaultCellOperations.js +30 -0
  130. package/dist/molecules/table/components/DefaultCellOperations.js.map +1 -0
  131. package/dist/molecules/table/components/DefaultFilter.d.ts +11 -0
  132. package/dist/molecules/table/components/DefaultFilter.js +15 -0
  133. package/dist/molecules/table/components/DefaultFilter.js.map +1 -0
  134. package/dist/molecules/table/components/DefaultOperationButton.d.ts +19 -0
  135. package/dist/molecules/table/components/DefaultOperationButton.js +30 -0
  136. package/dist/molecules/table/components/DefaultOperationButton.js.map +1 -0
  137. package/dist/molecules/table/filters/Filters.d.js +2 -0
  138. package/dist/molecules/table/filters/Filters.d.js.map +1 -0
  139. package/dist/molecules/table/filters/RangeFilter.d.ts +3 -0
  140. package/dist/molecules/table/filters/RangeFilter.js +42 -0
  141. package/dist/molecules/table/filters/RangeFilter.js.map +1 -0
  142. package/dist/molecules/table/filters/SelectFilter.d.ts +3 -0
  143. package/dist/molecules/table/filters/SelectFilter.js +35 -0
  144. package/dist/molecules/table/filters/SelectFilter.js.map +1 -0
  145. package/dist/molecules/table/filters/TextFieldFilter.d.ts +3 -0
  146. package/dist/molecules/table/filters/TextFieldFilter.js +27 -0
  147. package/dist/molecules/table/filters/TextFieldFilter.js.map +1 -0
  148. package/dist/molecules/table/hooks/useTable.d.ts +23 -0
  149. package/dist/molecules/table/hooks/useTable.js +34 -0
  150. package/dist/molecules/table/hooks/useTable.js.map +1 -0
  151. package/dist/molecules/table/hooks/useUniqValues.d.ts +5 -0
  152. package/dist/molecules/table/hooks/useUniqValues.js +11 -0
  153. package/dist/molecules/table/hooks/useUniqValues.js.map +1 -0
  154. package/dist/molecules/table/interfaces/extends.d.ts +14 -0
  155. package/dist/molecules/table/interfaces/extends.js +2 -0
  156. package/dist/molecules/table/interfaces/extends.js.map +1 -0
  157. package/dist/molecules/table/utils/mapFormToColumns.d.ts +3 -0
  158. package/dist/molecules/table/utils/mapFormToColumns.js +39 -0
  159. package/dist/molecules/table/utils/mapFormToColumns.js.map +1 -0
  160. package/dist/molecules/tabs/Tab.d.ts +13 -0
  161. package/dist/molecules/tabs/Tab.js +67 -0
  162. package/dist/molecules/tabs/Tab.js.map +1 -0
  163. package/dist/molecules/tabs/TabList.d.ts +2 -0
  164. package/dist/molecules/tabs/TabList.js +24 -0
  165. package/dist/molecules/tabs/TabList.js.map +1 -0
  166. package/dist/molecules/tabs/TabPanel.d.ts +9 -0
  167. package/dist/molecules/tabs/TabPanel.js +27 -0
  168. package/dist/molecules/tabs/TabPanel.js.map +1 -0
  169. package/dist/molecules/tabs/Tabs.d.ts +7 -0
  170. package/dist/molecules/tabs/Tabs.js +12 -0
  171. package/dist/molecules/tabs/Tabs.js.map +1 -0
  172. package/dist/molecules/tabs/TabsBody.d.ts +1 -0
  173. package/dist/molecules/tabs/TabsBody.js +10 -0
  174. package/dist/molecules/tabs/TabsBody.js.map +1 -0
  175. package/dist/molecules/tabs/TabsLegacy.d.ts +17 -0
  176. package/dist/molecules/tabs/TabsLegacy.js +49 -0
  177. package/dist/molecules/tabs/TabsLegacy.js.map +1 -0
  178. package/dist/molecules/tabs/all.d.ts +5 -0
  179. package/dist/molecules/tabs/all.js +13 -0
  180. package/dist/molecules/tabs/all.js.map +1 -0
  181. package/dist/molecules/tabs/context/TabControl.d.ts +52 -0
  182. package/dist/molecules/tabs/context/TabControl.js +85 -0
  183. package/dist/molecules/tabs/context/TabControl.js.map +1 -0
  184. package/dist/molecules/tabs/hooks/tabControl.d.ts +44 -0
  185. package/dist/molecules/tabs/hooks/tabControl.js +34 -0
  186. package/dist/molecules/tabs/hooks/tabControl.js.map +1 -0
  187. package/dist/organisms/form/Form.d.ts +22 -0
  188. package/dist/organisms/form/Form.js +15 -0
  189. package/dist/organisms/form/Form.js.map +1 -0
  190. package/dist/{components/form-access/formAccess.component.d.ts → organisms/form/access/FormAccess.d.ts} +2 -2
  191. package/dist/{components/form-access/formAccess.component.js → organisms/form/access/FormAccess.js} +4 -5
  192. package/dist/organisms/form/access/FormAccess.js.map +1 -0
  193. package/dist/organisms/form/access/FormAccess.schema.d.ts +4 -0
  194. package/dist/{components/form-access/formAccess.schema.js → organisms/form/access/FormAccess.schema.js} +1 -1
  195. package/dist/organisms/form/access/FormAccess.schema.js.map +1 -0
  196. package/dist/organisms/form/access/FormAccess.utils.d.ts +23 -0
  197. package/dist/{components/form-access/formAccess.utils.js → organisms/form/access/FormAccess.utils.js} +2 -2
  198. package/dist/organisms/form/access/FormAccess.utils.js.map +1 -0
  199. package/dist/{components/form-action/formAction.component.d.ts → organisms/form/actions/FormAction.d.ts} +4 -4
  200. package/dist/{components/form-action/formAction.component.js → organisms/form/actions/FormAction.js} +2 -2
  201. package/dist/organisms/form/actions/FormAction.js.map +1 -0
  202. package/dist/organisms/form/builder/FormBuilder.d.ts +7 -0
  203. package/dist/organisms/form/builder/FormBuilder.js +17 -0
  204. package/dist/organisms/form/builder/FormBuilder.js.map +1 -0
  205. package/dist/organisms/form/builder/FormEdit.d.ts +10 -0
  206. package/dist/organisms/form/builder/FormEdit.js +73 -0
  207. package/dist/organisms/form/builder/FormEdit.js.map +1 -0
  208. package/dist/organisms/form/builder/FormEdit.reducer.d.ts +10 -0
  209. package/dist/{components/form-edit/formEdit.reducer.js → organisms/form/builder/FormEdit.reducer.js} +1 -1
  210. package/dist/organisms/form/builder/FormEdit.reducer.js.map +1 -0
  211. package/dist/organisms/form/builder/FormEditCtas.d.ts +15 -0
  212. package/dist/organisms/form/builder/FormEditCtas.js +52 -0
  213. package/dist/organisms/form/builder/FormEditCtas.js.map +1 -0
  214. package/dist/organisms/form/builder/FormParameters.d.ts +24 -0
  215. package/dist/organisms/form/builder/FormParameters.js +84 -0
  216. package/dist/organisms/form/builder/FormParameters.js.map +1 -0
  217. package/dist/organisms/form/builder/all.d.ts +6 -0
  218. package/dist/organisms/form/builder/all.js +26 -0
  219. package/dist/organisms/form/builder/all.js.map +1 -0
  220. package/dist/organisms/form/builder/useFormBuilder.d.ts +28 -0
  221. package/dist/organisms/form/builder/useFormBuilder.js +71 -0
  222. package/dist/organisms/form/builder/useFormBuilder.js.map +1 -0
  223. package/dist/{components/form-edit/useFormEdit.hook.d.ts → organisms/form/builder/useFormEdit.d.ts} +7 -7
  224. package/dist/organisms/form/builder/useFormEdit.js +36 -0
  225. package/dist/organisms/form/builder/useFormEdit.js.map +1 -0
  226. package/dist/organisms/form/exports/FormExport.d.ts +5 -0
  227. package/dist/organisms/form/exports/FormExport.js +55 -0
  228. package/dist/organisms/form/exports/FormExport.js.map +1 -0
  229. package/dist/organisms/form/preview/FormPreview.d.ts +6 -0
  230. package/dist/organisms/form/preview/FormPreview.js +11 -0
  231. package/dist/organisms/form/preview/FormPreview.js.map +1 -0
  232. package/dist/{components/form-settings/formSettings.component.d.ts → organisms/form/settings/FormSettings.d.ts} +2 -2
  233. package/dist/{components/form-settings/formSettings.component.js → organisms/form/settings/FormSettings.js} +4 -4
  234. package/dist/organisms/form/settings/FormSettings.js.map +1 -0
  235. package/dist/organisms/form/settings/FormSettings.schema.d.ts +2 -0
  236. package/dist/{components/form-settings/formSettings.schema.js → organisms/form/settings/FormSettings.schema.js} +1 -1
  237. package/dist/organisms/form/settings/FormSettings.schema.js.map +1 -0
  238. package/dist/organisms/form/settings/FormSettings.utils.d.ts +8 -0
  239. package/dist/{components/form-settings/formSettings.utils.js → organisms/form/settings/FormSettings.utils.js} +1 -1
  240. package/dist/organisms/form/settings/FormSettings.utils.js.map +1 -0
  241. package/dist/organisms/form/types.d.ts +15 -0
  242. package/dist/organisms/form/types.js +2 -0
  243. package/dist/organisms/form/types.js.map +1 -0
  244. package/dist/organisms/form/useForm.d.ts +65 -0
  245. package/dist/organisms/form/useForm.js +776 -0
  246. package/dist/organisms/form/useForm.js.map +1 -0
  247. package/dist/{components/modal/removeModal.component.d.ts → organisms/modal/RemoveModal.d.ts} +1 -1
  248. package/dist/{components/modal/removeModal.component.js → organisms/modal/RemoveModal.js} +10 -10
  249. package/dist/organisms/modal/RemoveModal.js.map +1 -0
  250. package/dist/organisms/table/actions/ActionsTable.d.ts +10 -0
  251. package/dist/organisms/table/actions/ActionsTable.js +46 -0
  252. package/dist/organisms/table/actions/ActionsTable.js.map +1 -0
  253. package/dist/organisms/table/forms/FormsTable.d.ts +9 -0
  254. package/dist/organisms/table/forms/FormsTable.js +57 -0
  255. package/dist/organisms/table/forms/FormsTable.js.map +1 -0
  256. package/dist/organisms/table/forms/components/FormsCell.d.ts +5 -0
  257. package/dist/organisms/table/forms/components/FormsCell.js +50 -0
  258. package/dist/organisms/table/forms/components/FormsCell.js.map +1 -0
  259. package/dist/organisms/table/submissions/SubmissionsTable.d.ts +14 -0
  260. package/dist/organisms/table/submissions/SubmissionsTable.js +14 -0
  261. package/dist/organisms/table/submissions/SubmissionsTable.js.map +1 -0
  262. package/dist/organisms/views/FormViews.d.ts +24 -0
  263. package/dist/organisms/views/FormViews.js +96 -0
  264. package/dist/organisms/views/FormViews.js.map +1 -0
  265. package/dist/registries/components.d.ts +3 -0
  266. package/dist/registries/components.js +19 -0
  267. package/dist/registries/components.js.map +1 -0
  268. package/package.json +10 -8
  269. package/readme.md +27 -14
  270. package/src/atoms/icon/Icon.stories.tsx +124 -0
  271. package/src/atoms/icon/Icon.tsx +16 -0
  272. package/src/hooks/keyboard.constants.ts +40 -0
  273. package/src/hooks/useKeyboardControls.spec.tsx +208 -0
  274. package/src/hooks/useKeyboardControls.ts +84 -0
  275. package/src/index.ts +1 -6
  276. package/src/interfaces/ActionType.ts +26 -0
  277. package/src/interfaces/ComponentType.ts +3 -0
  278. package/src/interfaces/FormOptions.ts +4 -1
  279. package/src/interfaces/{FormSchema.ts → FormType.ts} +3 -3
  280. package/src/interfaces/Operation.ts +10 -4
  281. package/src/interfaces/{RoleSchema.ts → RoleType.ts} +1 -1
  282. package/src/interfaces/SubmissionType.ts +20 -0
  283. package/src/interfaces/index.ts +5 -4
  284. package/src/molecules/__fixtures__/build.js +28 -0
  285. package/src/molecules/__fixtures__/form-firstname.fixture.json +256 -0
  286. package/src/molecules/__fixtures__/form-schema.json +350 -0
  287. package/src/molecules/__fixtures__/form-submissions.json +11942 -0
  288. package/src/molecules/__fixtures__/form-wizard.fixture.json +2042 -0
  289. package/src/molecules/__fixtures__/products.json +81539 -0
  290. package/src/molecules/__fixtures__/useValue.hook.ts +14 -0
  291. package/src/{components/alert/alert.component.spec.tsx → molecules/alert/Alert.spec.tsx} +12 -14
  292. package/src/molecules/alert/Alert.stories.tsx +39 -0
  293. package/src/{components/alert/alert.component.tsx → molecules/alert/Alert.tsx} +10 -7
  294. package/src/molecules/button/Button.stories.tsx +106 -0
  295. package/src/molecules/button/Button.tsx +73 -0
  296. package/src/{components/card/card.component.spec.tsx → molecules/card/Card.spec.tsx} +3 -2
  297. package/src/{components/card/card.stories.tsx → molecules/card/Card.stories.tsx} +9 -2
  298. package/src/{components/card/card.component.tsx → molecules/card/Card.tsx} +4 -0
  299. package/src/{components/form-control/formControl.component.spec.tsx → molecules/forms/form-control/FormControl.spec.tsx} +9 -8
  300. package/src/molecules/forms/form-control/FormControl.stories.tsx +58 -0
  301. package/src/molecules/forms/form-control/FormControl.tsx +86 -0
  302. package/src/molecules/forms/input-tags/InputTags.interface.ts +9 -0
  303. package/src/molecules/forms/input-tags/InputTags.tsx +30 -0
  304. package/src/molecules/forms/input-tags/all.ts +6 -0
  305. package/src/molecules/forms/input-tags/components/ChoicesTags.stories.tsx +110 -0
  306. package/src/molecules/forms/input-tags/components/ChoicesTags.tsx +72 -0
  307. package/src/molecules/forms/input-tags/components/ReactTags.stories.tsx +140 -0
  308. package/src/molecules/forms/input-tags/components/ReactTags.tsx +38 -0
  309. package/src/molecules/forms/input-text/InputText.interface.ts +5 -0
  310. package/src/{components/input-text/inputText.component.spec.tsx → molecules/forms/input-text/InputText.spec.tsx} +8 -7
  311. package/src/molecules/forms/input-text/InputText.stories.tsx +179 -0
  312. package/src/molecules/forms/input-text/InputText.tsx +63 -0
  313. package/src/molecules/forms/select/Select.interface.ts +45 -0
  314. package/src/molecules/forms/select/Select.tsx +28 -0
  315. package/src/molecules/forms/select/all.ts +7 -0
  316. package/src/molecules/forms/select/components/ChoicesSelect.stories.tsx +332 -0
  317. package/src/molecules/forms/select/components/ChoicesSelect.tsx +159 -0
  318. package/src/molecules/forms/select/components/HtmlSelect.stories.tsx +305 -0
  319. package/src/molecules/forms/select/components/HtmlSelect.tsx +54 -0
  320. package/src/molecules/forms/select/components/ReactSelect.stories.tsx +287 -0
  321. package/src/molecules/forms/select/components/ReactSelect.tsx +60 -0
  322. package/src/molecules/forms/select/components/choices.template.tsx +38 -0
  323. package/src/molecules/forms/select/hooks/useOptions.spec.ts +154 -0
  324. package/src/molecules/forms/select/hooks/useOptions.ts +53 -0
  325. package/src/{components/loader/loader.component.spec.tsx → molecules/loader/Loader.spec.tsx} +3 -3
  326. package/src/molecules/loader/Loader.stories.tsx +43 -0
  327. package/src/{components/loader/loader.component.tsx → molecules/loader/Loader.tsx} +2 -10
  328. package/src/{components/modal/modal.component.spec.tsx → molecules/modal/Modal.spec.tsx} +131 -4
  329. package/src/molecules/modal/Modal.stories.tsx +178 -0
  330. package/src/{components/pagination/pagination.component.spec.tsx → molecules/pagination/Pagination.spec.tsx} +20 -14
  331. package/src/molecules/pagination/Pagination.stories.tsx +92 -0
  332. package/src/{components/pagination/pagination.component.tsx → molecules/pagination/Pagination.tsx} +34 -47
  333. package/src/molecules/pagination/PaginationButton.tsx +30 -0
  334. package/src/molecules/pagination/all.ts +3 -0
  335. package/src/molecules/table/Table.stories.tsx +305 -0
  336. package/src/molecules/table/Table.tsx +106 -0
  337. package/src/molecules/table/all.ts +16 -0
  338. package/src/molecules/table/components/DefaultArrowSort.tsx +26 -0
  339. package/src/molecules/table/components/DefaultCell.tsx +22 -0
  340. package/src/molecules/table/components/DefaultCellFooter.tsx +16 -0
  341. package/src/molecules/table/components/DefaultCellHeader.tsx +42 -0
  342. package/src/molecules/table/components/DefaultCellOperations.tsx +48 -0
  343. package/src/molecules/table/components/DefaultFilter.tsx +42 -0
  344. package/src/molecules/table/components/DefaultOperationButton.tsx +41 -0
  345. package/src/molecules/table/filters/Filters.d.ts +31 -0
  346. package/src/molecules/table/filters/RangeFilter.tsx +43 -0
  347. package/src/molecules/table/filters/SelectFilter.tsx +47 -0
  348. package/src/molecules/table/filters/TextFieldFilter.tsx +36 -0
  349. package/src/molecules/table/hooks/useTable.tsx +75 -0
  350. package/src/molecules/table/hooks/useUniqValues.tsx +10 -0
  351. package/src/molecules/table/interfaces/extends.ts +18 -0
  352. package/src/molecules/table/utils/mapFormToColumns.tsx +74 -0
  353. package/src/molecules/tabs/Tab.tsx +106 -0
  354. package/src/molecules/tabs/TabList.tsx +37 -0
  355. package/src/molecules/tabs/TabPanel.tsx +37 -0
  356. package/src/molecules/tabs/Tabs.spec.tsx +140 -0
  357. package/src/molecules/tabs/Tabs.stories.tsx +374 -0
  358. package/src/molecules/tabs/Tabs.tsx +21 -0
  359. package/src/molecules/tabs/TabsBody.tsx +11 -0
  360. package/src/molecules/tabs/TabsLegacy.stories.tsx +103 -0
  361. package/src/molecules/tabs/TabsLegacy.tsx +84 -0
  362. package/src/molecules/tabs/all.ts +5 -0
  363. package/src/molecules/tabs/context/TabControl.tsx +166 -0
  364. package/src/molecules/tabs/hooks/tabControl.spec.tsx +388 -0
  365. package/src/molecules/tabs/hooks/tabControl.ts +52 -0
  366. package/src/organisms/__fixtures__/WrapComponent.tsx +11 -0
  367. package/src/organisms/__fixtures__/form-actions.json +240 -0
  368. package/src/organisms/__fixtures__/form-firstname.fixture.json +257 -0
  369. package/src/organisms/__fixtures__/form-wizard.fixture.json +2042 -0
  370. package/src/organisms/__fixtures__/form.fixture.json +2068 -0
  371. package/src/organisms/__fixtures__/useEditForm.tsx +84 -0
  372. package/src/organisms/__fixtures__/utils.ts +74 -0
  373. package/src/{components/form/form.component.spec.tsx → organisms/form/Form.spec.tsx} +5 -6
  374. package/src/organisms/form/Form.stories.tsx +698 -0
  375. package/src/organisms/form/Form.tsx +29 -0
  376. package/src/{components/form-access/formAccess.schema.ts → organisms/form/access/FormAccess.schema.ts} +4 -6
  377. package/src/{components/form-access/formAccess.stories.tsx → organisms/form/access/FormAccess.stories.tsx} +8 -2
  378. package/src/{components/form-access/formAccess.component.tsx → organisms/form/access/FormAccess.tsx} +15 -17
  379. package/src/{components/form-access/formAccess.utils.spec.ts → organisms/form/access/FormAccess.utils.spec.ts} +13 -7
  380. package/src/{components/form-access/formAccess.utils.ts → organisms/form/access/FormAccess.utils.ts} +23 -20
  381. package/src/organisms/form/actions/FormAction.stories.tsx +422 -0
  382. package/src/{components/form-action/formAction.component.tsx → organisms/form/actions/FormAction.tsx} +7 -7
  383. package/src/organisms/form/builder/FormBuilder.stories.tsx +97 -0
  384. package/src/organisms/form/builder/FormBuilder.tsx +28 -0
  385. package/src/{components/form-edit/formEdit.reducer.ts → organisms/form/builder/FormEdit.reducer.ts} +6 -6
  386. package/src/{components/form-edit/formEdit.stories.tsx → organisms/form/builder/FormEdit.stories.tsx} +89 -43
  387. package/src/organisms/form/builder/FormEdit.tsx +81 -0
  388. package/src/organisms/form/builder/FormEditCtas.tsx +97 -0
  389. package/src/{components/form-edit/formParameters.component.tsx → organisms/form/builder/FormParameters.tsx} +28 -28
  390. package/src/organisms/form/builder/all.ts +17 -0
  391. package/src/organisms/form/builder/useFormBuilder.ts +143 -0
  392. package/src/{components/form-edit/useFormEdit.hook.ts → organisms/form/builder/useFormEdit.ts} +9 -9
  393. package/src/organisms/form/exports/FormExport.stories.tsx +71 -0
  394. package/src/organisms/form/exports/FormExport.tsx +58 -0
  395. package/src/organisms/form/preview/FormPreview.stories.tsx +61 -0
  396. package/src/organisms/form/preview/FormPreview.tsx +21 -0
  397. package/src/{components/form-settings/formSettings.component.spec.tsx → organisms/form/settings/FormSettings.component.spec.tsx} +2 -2
  398. package/src/{components/form-settings/formSettings.schema.ts → organisms/form/settings/FormSettings.schema.ts} +2 -2
  399. package/src/{components/form-settings/formSettings.stories.tsx → organisms/form/settings/FormSettings.stories.tsx} +10 -8
  400. package/src/{components/form-settings/formSettings.component.tsx → organisms/form/settings/FormSettings.tsx} +7 -8
  401. package/src/{components/form-settings/formSettings.utils.spec.ts → organisms/form/settings/FormSettings.utils.spec.ts} +1 -1
  402. package/src/{components/form-settings/formSettings.utils.ts → organisms/form/settings/FormSettings.utils.ts} +4 -4
  403. package/src/organisms/form/types.ts +8 -0
  404. package/src/organisms/form/useForm.ts +223 -0
  405. package/src/organisms/modal/RemoveModal.stories.tsx +59 -0
  406. package/src/{components/modal/removeModal.component.tsx → organisms/modal/RemoveModal.tsx} +2 -2
  407. package/src/{components/actions-table/actionsTable.component.spec.tsx → organisms/table/actions/ActionsTable.spec.tsx} +11 -7
  408. package/src/{components/actions-table/actionsTable.stories.tsx → organisms/table/actions/ActionsTable.stories.tsx} +58 -58
  409. package/src/{components/actions-table/actionsTable.component.tsx → organisms/table/actions/ActionsTable.tsx} +13 -20
  410. package/src/{components/forms-table/formsTable.stories.tsx → organisms/table/forms/FormsTable.stories.tsx} +24 -27
  411. package/src/organisms/table/forms/FormsTable.tsx +66 -0
  412. package/src/organisms/table/forms/components/FormsCell.tsx +53 -0
  413. package/src/organisms/table/submissions/SubmissionsTable.stories.tsx +142 -0
  414. package/src/organisms/table/submissions/SubmissionsTable.tsx +19 -0
  415. package/src/organisms/views/FormViews.stories.tsx +224 -0
  416. package/src/organisms/views/FormViews.tsx +146 -0
  417. package/src/registries/components.ts +23 -0
  418. package/tsconfig.app.json +1 -1
  419. package/tsconfig.json +3 -0
  420. package/tsconfig.node.json +13 -0
  421. package/dist/components/actions-table/actionsTable.component.d.ts +0 -10
  422. package/dist/components/actions-table/actionsTable.component.js +0 -53
  423. package/dist/components/actions-table/actionsTable.component.js.map +0 -1
  424. package/dist/components/alert/alert.component.d.ts +0 -5
  425. package/dist/components/alert/alert.component.js.map +0 -1
  426. package/dist/components/card/card.component.js +0 -12
  427. package/dist/components/card/card.component.js.map +0 -1
  428. package/dist/components/form/form.component.d.ts +0 -62
  429. package/dist/components/form/form.component.js +0 -64
  430. package/dist/components/form/form.component.js.map +0 -1
  431. package/dist/components/form/useForm.hook.d.ts +0 -59
  432. package/dist/components/form/useForm.hook.js +0 -64
  433. package/dist/components/form/useForm.hook.js.map +0 -1
  434. package/dist/components/form-access/formAccess.component.js.map +0 -1
  435. package/dist/components/form-access/formAccess.schema.d.ts +0 -5
  436. package/dist/components/form-access/formAccess.schema.js.map +0 -1
  437. package/dist/components/form-access/formAccess.utils.d.ts +0 -24
  438. package/dist/components/form-access/formAccess.utils.js.map +0 -1
  439. package/dist/components/form-action/formAction.component.js.map +0 -1
  440. package/dist/components/form-builder/formBuilder.component.d.ts +0 -53
  441. package/dist/components/form-builder/formBuilder.component.js +0 -142
  442. package/dist/components/form-builder/formBuilder.component.js.map +0 -1
  443. package/dist/components/form-control/formControl.component.d.ts +0 -14
  444. package/dist/components/form-control/formControl.component.js +0 -26
  445. package/dist/components/form-control/formControl.component.js.map +0 -1
  446. package/dist/components/form-edit/formCtas.component.d.ts +0 -28
  447. package/dist/components/form-edit/formCtas.component.js +0 -70
  448. package/dist/components/form-edit/formCtas.component.js.map +0 -1
  449. package/dist/components/form-edit/formEdit.component.d.ts +0 -18
  450. package/dist/components/form-edit/formEdit.component.js +0 -57
  451. package/dist/components/form-edit/formEdit.component.js.map +0 -1
  452. package/dist/components/form-edit/formEdit.reducer.d.ts +0 -10
  453. package/dist/components/form-edit/formEdit.reducer.js.map +0 -1
  454. package/dist/components/form-edit/formParameters.component.d.ts +0 -34
  455. package/dist/components/form-edit/formParameters.component.js +0 -92
  456. package/dist/components/form-edit/formParameters.component.js.map +0 -1
  457. package/dist/components/form-edit/useFormEdit.hook.js +0 -36
  458. package/dist/components/form-edit/useFormEdit.hook.js.map +0 -1
  459. package/dist/components/form-settings/formSettings.component.js.map +0 -1
  460. package/dist/components/form-settings/formSettings.schema.d.ts +0 -2
  461. package/dist/components/form-settings/formSettings.schema.js.map +0 -1
  462. package/dist/components/form-settings/formSettings.utils.d.ts +0 -8
  463. package/dist/components/form-settings/formSettings.utils.js.map +0 -1
  464. package/dist/components/forms-table/components/formCell.component.d.ts +0 -6
  465. package/dist/components/forms-table/components/formCell.component.js +0 -50
  466. package/dist/components/forms-table/components/formCell.component.js.map +0 -1
  467. package/dist/components/forms-table/formsTable.component.d.ts +0 -10
  468. package/dist/components/forms-table/formsTable.component.js +0 -29
  469. package/dist/components/forms-table/formsTable.component.js.map +0 -1
  470. package/dist/components/index.d.ts +0 -25
  471. package/dist/components/index.js +0 -86
  472. package/dist/components/index.js.map +0 -1
  473. package/dist/components/input-tags/inputTags.component.d.ts +0 -18
  474. package/dist/components/input-tags/inputTags.component.js +0 -37
  475. package/dist/components/input-tags/inputTags.component.js.map +0 -1
  476. package/dist/components/input-text/inputText.component.d.ts +0 -27
  477. package/dist/components/input-text/inputText.component.js +0 -70
  478. package/dist/components/input-text/inputText.component.js.map +0 -1
  479. package/dist/components/loader/loader.component.js +0 -26
  480. package/dist/components/loader/loader.component.js.map +0 -1
  481. package/dist/components/modal/modal.component.js.map +0 -1
  482. package/dist/components/modal/removeModal.component.js.map +0 -1
  483. package/dist/components/pagination/pagination.component.js +0 -87
  484. package/dist/components/pagination/pagination.component.js.map +0 -1
  485. package/dist/components/select/select.component.d.ts +0 -14
  486. package/dist/components/select/select.component.js +0 -60
  487. package/dist/components/select/select.component.js.map +0 -1
  488. package/dist/components/submissions-table/submissionsTable.component.d.ts +0 -6
  489. package/dist/components/submissions-table/submissionsTable.component.js +0 -11
  490. package/dist/components/submissions-table/submissionsTable.component.js.map +0 -1
  491. package/dist/components/table/components/defaultArrowSort.component.d.ts +0 -1
  492. package/dist/components/table/components/defaultArrowSort.component.js +0 -10
  493. package/dist/components/table/components/defaultArrowSort.component.js.map +0 -1
  494. package/dist/components/table/components/defaultCell.component.d.ts +0 -1
  495. package/dist/components/table/components/defaultCell.component.js +0 -11
  496. package/dist/components/table/components/defaultCell.component.js.map +0 -1
  497. package/dist/components/table/components/defaultCellHeader.component.d.ts +0 -5
  498. package/dist/components/table/components/defaultCellHeader.component.js +0 -14
  499. package/dist/components/table/components/defaultCellHeader.component.js.map +0 -1
  500. package/dist/components/table/components/defaultCellOperations.component.d.ts +0 -12
  501. package/dist/components/table/components/defaultCellOperations.component.js +0 -21
  502. package/dist/components/table/components/defaultCellOperations.component.js.map +0 -1
  503. package/dist/components/table/components/defaultCells.component.d.ts +0 -4
  504. package/dist/components/table/components/defaultCells.component.js +0 -23
  505. package/dist/components/table/components/defaultCells.component.js.map +0 -1
  506. package/dist/components/table/components/defaultOperationButton.component.d.ts +0 -15
  507. package/dist/components/table/components/defaultOperationButton.component.js +0 -45
  508. package/dist/components/table/components/defaultOperationButton.component.js.map +0 -1
  509. package/dist/components/table/components/defaultRow.component.d.ts +0 -12
  510. package/dist/components/table/components/defaultRow.component.js +0 -25
  511. package/dist/components/table/components/defaultRow.component.js.map +0 -1
  512. package/dist/components/table/components/dragNDropContainer.d.ts +0 -4
  513. package/dist/components/table/components/dragNDropContainer.js +0 -10
  514. package/dist/components/table/components/dragNDropContainer.js.map +0 -1
  515. package/dist/components/table/filters/defaultColumnFilter.component.d.ts +0 -5
  516. package/dist/components/table/filters/defaultColumnFilter.component.js +0 -32
  517. package/dist/components/table/filters/defaultColumnFilter.component.js.map +0 -1
  518. package/dist/components/table/filters/selectColumnFilter.component.d.ts +0 -10
  519. package/dist/components/table/filters/selectColumnFilter.component.js +0 -34
  520. package/dist/components/table/filters/selectColumnFilter.component.js.map +0 -1
  521. package/dist/components/table/filters/sliderColumnFilter.component.d.ts +0 -2
  522. package/dist/components/table/filters/sliderColumnFilter.component.js +0 -27
  523. package/dist/components/table/filters/sliderColumnFilter.component.js.map +0 -1
  524. package/dist/components/table/hooks/useCustomTable.hook.d.ts +0 -128
  525. package/dist/components/table/hooks/useCustomTable.hook.js +0 -130
  526. package/dist/components/table/hooks/useCustomTable.hook.js.map +0 -1
  527. package/dist/components/table/hooks/useDragnDropRow.hook.d.ts +0 -272
  528. package/dist/components/table/hooks/useDragnDropRow.hook.js +0 -40
  529. package/dist/components/table/hooks/useDragnDropRow.hook.js.map +0 -1
  530. package/dist/components/table/hooks/useOperations.hook.d.ts +0 -11
  531. package/dist/components/table/hooks/useOperations.hook.js +0 -25
  532. package/dist/components/table/hooks/useOperations.hook.js.map +0 -1
  533. package/dist/components/table/index.d.ts +0 -15
  534. package/dist/components/table/index.js +0 -35
  535. package/dist/components/table/index.js.map +0 -1
  536. package/dist/components/table/table.component.d.ts +0 -3
  537. package/dist/components/table/table.component.js +0 -81
  538. package/dist/components/table/table.component.js.map +0 -1
  539. package/dist/components/table/utils/getPageNumbers.js.map +0 -1
  540. package/dist/components/table/utils/mapFormToColumns.d.ts +0 -3
  541. package/dist/components/table/utils/mapFormToColumns.js +0 -23
  542. package/dist/components/table/utils/mapFormToColumns.js.map +0 -1
  543. package/dist/components/table/utils/swapElements.d.ts +0 -1
  544. package/dist/components/table/utils/swapElements.js +0 -5
  545. package/dist/components/table/utils/swapElements.js.map +0 -1
  546. package/dist/components/tabs/tabs.component.d.ts +0 -19
  547. package/dist/components/tabs/tabs.component.js +0 -72
  548. package/dist/components/tabs/tabs.component.js.map +0 -1
  549. package/dist/interfaces/ActionSchema.d.ts +0 -23
  550. package/dist/interfaces/ActionSchema.js +0 -2
  551. package/dist/interfaces/ActionSchema.js.map +0 -1
  552. package/dist/interfaces/FormSchema.js +0 -2
  553. package/dist/interfaces/FormSchema.js.map +0 -1
  554. package/dist/interfaces/RoleSchema.js +0 -2
  555. package/dist/interfaces/RoleSchema.js.map +0 -1
  556. package/dist/interfaces/Submission.d.ts +0 -5
  557. package/dist/interfaces/Submission.js +0 -2
  558. package/dist/interfaces/Submission.js.map +0 -1
  559. package/dist/utils/callLast.d.ts +0 -1
  560. package/dist/utils/callLast.js +0 -10
  561. package/dist/utils/callLast.js.map +0 -1
  562. package/src/components/alert/alert.stories.tsx +0 -16
  563. package/src/components/form/form.component.tsx +0 -72
  564. package/src/components/form/form.stories.tsx +0 -253
  565. package/src/components/form/useForm.hook.ts +0 -216
  566. package/src/components/form-action/formAction.stories.tsx +0 -364
  567. package/src/components/form-builder/formBuilder.component.tsx +0 -195
  568. package/src/components/form-builder/formBuilder.stories.tsx +0 -3665
  569. package/src/components/form-control/formControl.component.tsx +0 -58
  570. package/src/components/form-control/formControl.stories.tsx +0 -63
  571. package/src/components/form-edit/formCtas.component.tsx +0 -106
  572. package/src/components/form-edit/formEdit.component.tsx +0 -59
  573. package/src/components/forms-table/components/formCell.component.tsx +0 -47
  574. package/src/components/forms-table/formsTable.component.tsx +0 -40
  575. package/src/components/index.ts +0 -25
  576. package/src/components/input-tags/inputTags.component.tsx +0 -58
  577. package/src/components/input-tags/inputTags.stories.tsx +0 -97
  578. package/src/components/input-text/inputText.component.tsx +0 -85
  579. package/src/components/input-text/inputText.stories.tsx +0 -126
  580. package/src/components/loader/loader.stories.tsx +0 -16
  581. package/src/components/modal/modal.stories.tsx +0 -190
  582. package/src/components/pagination/pagination.stories.tsx +0 -40
  583. package/src/components/select/select.component.spec.tsx +0 -84
  584. package/src/components/select/select.component.tsx +0 -88
  585. package/src/components/select/select.stories.tsx +0 -173
  586. package/src/components/submissions-table/submissionsTable.component.tsx +0 -14
  587. package/src/components/submissions-table/submissionsTable.stories.tsx +0 -99
  588. package/src/components/table/components/defaultArrowSort.component.tsx +0 -10
  589. package/src/components/table/components/defaultCell.component.tsx +0 -13
  590. package/src/components/table/components/defaultCellHeader.component.tsx +0 -18
  591. package/src/components/table/components/defaultCellOperations.component.tsx +0 -37
  592. package/src/components/table/components/defaultCells.component.tsx +0 -30
  593. package/src/components/table/components/defaultOperationButton.component.tsx +0 -56
  594. package/src/components/table/components/defaultRow.component.tsx +0 -51
  595. package/src/components/table/components/dragNDropContainer.tsx +0 -7
  596. package/src/components/table/filters/defaultColumnFilter.component.spec.tsx +0 -31
  597. package/src/components/table/filters/defaultColumnFilter.component.tsx +0 -39
  598. package/src/components/table/filters/selectColumnFilter.component.spec.tsx +0 -66
  599. package/src/components/table/filters/selectColumnFilter.component.tsx +0 -51
  600. package/src/components/table/filters/sliderColumnFilter.component.tsx +0 -28
  601. package/src/components/table/hooks/useCustomTable.hook.tsx +0 -268
  602. package/src/components/table/hooks/useDragnDropRow.hook.ts +0 -80
  603. package/src/components/table/hooks/useOperations.hook.tsx +0 -39
  604. package/src/components/table/index.ts +0 -15
  605. package/src/components/table/table.component.tsx +0 -100
  606. package/src/components/table/table.stories.tsx +0 -120
  607. package/src/components/table/utils/mapFormToColumns.tsx +0 -33
  608. package/src/components/table/utils/swapElements.spec.ts +0 -7
  609. package/src/components/table/utils/swapElements.ts +0 -7
  610. package/src/components/tabs/tabs.component.spec.tsx +0 -87
  611. package/src/components/tabs/tabs.component.stories.tsx +0 -127
  612. package/src/components/tabs/tabs.component.tsx +0 -92
  613. package/src/interfaces/ActionSchema.ts +0 -26
  614. package/src/interfaces/Submission.ts +0 -5
  615. package/src/utils/callLast.ts +0 -12
  616. /package/dist/{components/card/card.component.d.ts → molecules/card/Card.d.ts} +0 -0
  617. /package/dist/{components/modal/modal.component.d.ts → molecules/modal/Modal.d.ts} +0 -0
  618. /package/dist/{components/table → molecules/pagination}/utils/getPageNumbers.d.ts +0 -0
  619. /package/dist/{components/table → molecules/pagination}/utils/getPageNumbers.js +0 -0
  620. /package/src/{components → molecules}/__fixtures__/form-actions.json +0 -0
  621. /package/src/{components → molecules}/__fixtures__/form.fixture.json +0 -0
  622. /package/src/{components/modal/modal.component.tsx → molecules/modal/Modal.tsx} +0 -0
  623. /package/src/{components/table → molecules/pagination}/utils/getPageNumbers.ts +0 -0
  624. /package/src/{components → organisms}/__fixtures__/form-schema.json +0 -0
  625. /package/src/{components → organisms}/__fixtures__/form-submissions.json +0 -0
  626. /package/src/{components/actions-table → organisms/table/actions}/__fixtures__/data.json +0 -0
@@ -0,0 +1,27 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { c as b } from "../../chunks/index.js";
3
+ import { registerComponent as s } from "../../registries/components.js";
4
+ import { useActiveTab as c, useTabsUid as m } from "./hooks/tabControl.js";
5
+ function d({ value: a, className: i, children: n }) {
6
+ const o = c(), t = m(), e = o === a;
7
+ return /* @__PURE__ */ r(
8
+ "div",
9
+ {
10
+ id: `TabPanel_${a}_${t}`,
11
+ "data-name": `TabPanel_${a}`,
12
+ role: "tabpanel",
13
+ "aria-hidden": !e,
14
+ "aria-labelledby": `Tab_${a}_${t}`,
15
+ tabIndex: e ? 0 : -1,
16
+ className: b("tw-tabs__panel", i, {
17
+ "-active": e
18
+ }),
19
+ children: n
20
+ }
21
+ );
22
+ }
23
+ s("TabPanel", d);
24
+ export {
25
+ d as TabPanel
26
+ };
27
+ //# sourceMappingURL=TabPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabPanel.js","sources":["../../../src/molecules/tabs/TabPanel.tsx"],"sourcesContent":["import classnames from \"classnames\";\n\nimport { registerComponent } from \"../../registries/components.js\";\nimport { useActiveTab, useTabsUid } from \"./hooks/tabControl.js\";\n\nexport interface TabPanelProps {\n className?: string;\n /**\n * Tab panel index<br/>\n * _Can be **0** or **1** indexed_\n */\n value: number;\n}\n\nexport function TabPanel({ value, className, children }: React.PropsWithChildren<TabPanelProps>) {\n const tabSelected = useActiveTab();\n const uid = useTabsUid();\n const isActive = tabSelected === value;\n\n return (\n <div\n id={`TabPanel_${value}_${uid}`}\n data-name={`TabPanel_${value}`}\n role='tabpanel'\n aria-hidden={!isActive}\n aria-labelledby={`Tab_${value}_${uid}`}\n tabIndex={isActive ? 0 : -1}\n className={classnames(\"tw-tabs__panel\", className, {\n \"-active\": isActive\n })}\n >\n {children}\n </div>\n );\n}\n\nregisterComponent(\"TabPanel\", TabPanel);\n"],"names":["TabPanel","value","className","children","tabSelected","useActiveTab","uid","useTabsUid","isActive","jsx","classnames","registerComponent"],"mappings":";;;;AAcO,SAASA,EAAS,EAAE,OAAAC,GAAO,WAAAC,GAAW,UAAAC,KAAoD;AAC/F,QAAMC,IAAcC,EAAa,GAC3BC,IAAMC,EAAW,GACjBC,IAAWJ,MAAgBH;AAG/B,SAAA,gBAAAQ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAI,YAAYR,CAAK,IAAIK,CAAG;AAAA,MAC5B,aAAW,YAAYL,CAAK;AAAA,MAC5B,MAAK;AAAA,MACL,eAAa,CAACO;AAAA,MACd,mBAAiB,OAAOP,CAAK,IAAIK,CAAG;AAAA,MACpC,UAAUE,IAAW,IAAI;AAAA,MACzB,WAAWE,EAAW,kBAAkBR,GAAW;AAAA,QACjD,WAAWM;AAAA,MAAA,CACZ;AAAA,MAEA,UAAAL;AAAA,IAAA;AAAA,EACH;AAEJ;AAEAQ,EAAkB,YAAYX,CAAQ;"}
@@ -0,0 +1,7 @@
1
+ import { CSSProperties, PropsWithChildren } from 'react';
2
+ export interface TabsProps extends Record<string, any> {
3
+ style?: CSSProperties;
4
+ className?: string;
5
+ selected?: number;
6
+ }
7
+ export declare function Tabs({ style, selected, children, className }: PropsWithChildren<TabsProps>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { c as i } from "../../chunks/index.js";
3
+ import { registerComponent as m } from "../../registries/components.js";
4
+ import { TabsProvider as e } from "./context/TabControl.js";
5
+ function n({ style: t, selected: o, children: s, className: a }) {
6
+ return /* @__PURE__ */ r("div", { "data-testid": "Tabs", className: i("tw-tabs", a), style: t, children: /* @__PURE__ */ r(e, { selected: o, children: s }) });
7
+ }
8
+ m("Tabs", n);
9
+ export {
10
+ n as Tabs
11
+ };
12
+ //# sourceMappingURL=Tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.js","sources":["../../../src/molecules/tabs/Tabs.tsx"],"sourcesContent":["import classnames from \"classnames\";\nimport type { CSSProperties, PropsWithChildren } from \"react\";\n\nimport { registerComponent } from \"../../registries/components.js\";\nimport { TabsProvider } from \"./context/TabControl.js\";\n\nexport interface TabsProps extends Record<string, any> {\n style?: CSSProperties;\n className?: string;\n selected?: number;\n}\n\nexport function Tabs({ style, selected, children, className }: PropsWithChildren<TabsProps>) {\n return (\n <div data-testid={\"Tabs\"} className={classnames(\"tw-tabs\", className)} style={style}>\n <TabsProvider selected={selected}>{children}</TabsProvider>\n </div>\n );\n}\n\nregisterComponent(\"Tabs\", Tabs);\n"],"names":["Tabs","style","selected","children","className","jsx","classnames","TabsProvider","registerComponent"],"mappings":";;;;AAYO,SAASA,EAAK,EAAE,OAAAC,GAAO,UAAAC,GAAU,UAAAC,GAAU,WAAAC,KAA2C;AAC3F,SACG,gBAAAC,EAAA,OAAA,EAAI,eAAa,QAAQ,WAAWC,EAAW,WAAWF,CAAS,GAAG,OAAAH,GACrE,UAAA,gBAAAI,EAACE,GAAa,EAAA,UAAAL,GAAqB,UAAAC,EAAS,CAAA,GAC9C;AAEJ;AAEAK,EAAkB,QAAQR,CAAI;"}
@@ -0,0 +1 @@
1
+ export declare function TabsBody(props: React.PropsWithChildren<{}>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { registerComponent as r } from "../../registries/components.js";
3
+ function d(t) {
4
+ return /* @__PURE__ */ o("div", { title: "tabs-body", "data-testid": "TabsBody", className: "tw-tabs__body", children: t.children });
5
+ }
6
+ r("TabsBody", d);
7
+ export {
8
+ d as TabsBody
9
+ };
10
+ //# sourceMappingURL=TabsBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsBody.js","sources":["../../../src/molecules/tabs/TabsBody.tsx"],"sourcesContent":["import { registerComponent } from \"../../registries/components.js\";\n\nexport function TabsBody(props: React.PropsWithChildren<{}>) {\n return (\n <div title={\"tabs-body\"} data-testid={\"TabsBody\"} className={\"tw-tabs__body\"}>\n {props.children}\n </div>\n );\n}\n\nregisterComponent(\"TabsBody\", TabsBody);\n"],"names":["TabsBody","props","jsx","registerComponent"],"mappings":";;AAEO,SAASA,EAASC,GAAoC;AAEzD,SAAA,gBAAAC,EAAC,SAAI,OAAO,aAAa,eAAa,YAAY,WAAW,iBAC1D,UAAAD,EAAM,SACT,CAAA;AAEJ;AAEAE,EAAkB,YAAYH,CAAQ;"}
@@ -0,0 +1,17 @@
1
+ import { CSSProperties, ReactNode } from 'react';
2
+ export interface TabsItemProps extends Record<string, any> {
3
+ label?: string;
4
+ icon?: string;
5
+ children?: ReactNode;
6
+ }
7
+ export interface TabsLegacyProps extends Record<string, any> {
8
+ AddButton?: any;
9
+ current?: TabsItemProps;
10
+ items?: TabsItemProps[];
11
+ style?: CSSProperties;
12
+ className?: string;
13
+ reverse?: boolean;
14
+ onClick?: (item: TabsItemProps) => void;
15
+ i18n?: (f: string) => string;
16
+ }
17
+ export declare function TabsLegacy({ style, current, items, HeaderChildren, AddButton, className, onClick, i18n, reverse, after, ...additionalProps }: TabsLegacyProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,49 @@
1
+ import { jsxs as s, jsx as r } from "react/jsx-runtime";
2
+ import "./Tab.js";
3
+ import "./TabList.js";
4
+ import "./TabPanel.js";
5
+ import "./Tabs.js";
6
+ import "./TabsBody.js";
7
+ import { getComponent as a } from "../../registries/components.js";
8
+ function w({
9
+ style: p,
10
+ current: t,
11
+ items: m = [],
12
+ HeaderChildren: e,
13
+ AddButton: l,
14
+ className: h,
15
+ onClick: b,
16
+ i18n: f = (c) => c,
17
+ reverse: u,
18
+ after: v,
19
+ ...i
20
+ }) {
21
+ const c = a("Tab"), y = a("TabsBody"), L = a("TabList"), d = a("TabPanel"), g = a("Tabs"), T = m.filter((o) => o.label || o.icon);
22
+ return /* @__PURE__ */ s(g, { className: h, style: p, children: [
23
+ /* @__PURE__ */ s("div", { children: [
24
+ /* @__PURE__ */ s(L, { children: [
25
+ T.map((o, n) => /* @__PURE__ */ r(
26
+ c,
27
+ {
28
+ onClick: () => {
29
+ b && b(o);
30
+ },
31
+ icon: o.icon,
32
+ value: n,
33
+ className: u ? "-reverse" : "",
34
+ after: v,
35
+ children: f(o.label || "")
36
+ },
37
+ n
38
+ )),
39
+ l && /* @__PURE__ */ r(l, { ...i, current: t })
40
+ ] }),
41
+ e && /* @__PURE__ */ r(e, { ...i, current: t })
42
+ ] }),
43
+ /* @__PURE__ */ r(y, { children: T.map((o, n) => /* @__PURE__ */ r(d, { value: n, children: o.children || o.content }, n)) })
44
+ ] });
45
+ }
46
+ export {
47
+ w as TabsLegacy
48
+ };
49
+ //# sourceMappingURL=TabsLegacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsLegacy.js","sources":["../../../src/molecules/tabs/TabsLegacy.tsx"],"sourcesContent":["import \"./all.js\";\n\nimport { CSSProperties, ReactNode } from \"react\";\n\nimport { getComponent } from \"../../registries/components.js\";\nimport type { Tab as DefaultTab } from \"./Tab.js\";\nimport type { TabList as DefaultTabList } from \"./TabList.js\";\nimport type { TabPanel as DefaultTabPanel } from \"./TabPanel.js\";\nimport type { Tabs as DefaultTabs } from \"./Tabs.js\";\nimport type { TabsBody as DefaultTabsBody } from \"./TabsBody.js\";\n\nexport interface TabsItemProps extends Record<string, any> {\n label?: string;\n icon?: string;\n children?: ReactNode;\n}\n\nexport interface TabsLegacyProps extends Record<string, any> {\n AddButton?: any;\n current?: TabsItemProps;\n items?: TabsItemProps[];\n style?: CSSProperties;\n className?: string;\n reverse?: boolean;\n onClick?: (item: TabsItemProps) => void;\n i18n?: (f: string) => string;\n}\n\nexport function TabsLegacy({\n style,\n current,\n items = [],\n HeaderChildren,\n AddButton,\n className,\n onClick,\n i18n = (f) => f,\n reverse,\n after,\n ...additionalProps\n}: TabsLegacyProps) {\n const Tab = getComponent<typeof DefaultTab>(\"Tab\");\n const TabsBody = getComponent<typeof DefaultTabsBody>(\"TabsBody\");\n const TabList = getComponent<typeof DefaultTabList>(\"TabList\");\n const TabPanel = getComponent<typeof DefaultTabPanel>(\"TabPanel\");\n const Tabs = getComponent<typeof DefaultTabs>(\"Tabs\");\n const tabs = items.filter((item) => item.label || item.icon);\n\n return (\n <Tabs className={className} style={style}>\n <div>\n <TabList>\n {tabs.map((item, index) => {\n return (\n <Tab\n key={index}\n onClick={() => {\n onClick && onClick(item);\n }}\n icon={item.icon}\n value={index}\n className={reverse ? \"-reverse\" : \"\"}\n after={after}\n >\n {i18n(item.label || \"\")}\n </Tab>\n );\n })}\n {AddButton && <AddButton {...additionalProps} current={current} />}\n </TabList>\n {HeaderChildren && <HeaderChildren {...additionalProps} current={current} />}\n </div>\n <TabsBody>\n {tabs.map((item, index) => {\n return (\n <TabPanel key={index} value={index}>\n {item.children || item.content}\n </TabPanel>\n );\n })}\n </TabsBody>\n </Tabs>\n );\n}\n"],"names":["TabsLegacy","style","current","items","HeaderChildren","AddButton","className","onClick","i18n","f","reverse","after","additionalProps","Tab","getComponent","TabsBody","TabList","TabPanel","Tabs","tabs","item","jsxs","index","jsx"],"mappings":";;;;;;;AA4BO,SAASA,EAAW;AAAA,EACzB,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC,IAAQ,CAAC;AAAA,EACT,gBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC,IAAO,CAACC,MAAMA;AAAA,EACd,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,GAAoB;AACZ,QAAAC,IAAMC,EAAgC,KAAK,GAC3CC,IAAWD,EAAqC,UAAU,GAC1DE,IAAUF,EAAoC,SAAS,GACvDG,IAAWH,EAAqC,UAAU,GAC1DI,IAAOJ,EAAiC,MAAM,GAC9CK,IAAOhB,EAAM,OAAO,CAACiB,MAASA,EAAK,SAASA,EAAK,IAAI;AAGzD,SAAA,gBAAAC,EAACH,GAAK,EAAA,WAAAZ,GAAsB,OAAAL,GAC1B,UAAA;AAAA,IAAA,gBAAAoB,EAAC,OACC,EAAA,UAAA;AAAA,MAAA,gBAAAA,EAACL,GACE,EAAA,UAAA;AAAA,QAAKG,EAAA,IAAI,CAACC,GAAME,MAEb,gBAAAC;AAAA,UAACV;AAAA,UAAA;AAAA,YAEC,SAAS,MAAM;AACb,cAAAN,KAAWA,EAAQa,CAAI;AAAA,YACzB;AAAA,YACA,MAAMA,EAAK;AAAA,YACX,OAAOE;AAAA,YACP,WAAWZ,IAAU,aAAa;AAAA,YAClC,OAAAC;AAAA,YAEC,UAAAH,EAAKY,EAAK,SAAS,EAAE;AAAA,UAAA;AAAA,UATjBE;AAAA,QAUP,CAEH;AAAA,QACAjB,KAAa,gBAAAkB,EAAClB,GAAW,EAAA,GAAGO,GAAiB,SAAAV,EAAkB,CAAA;AAAA,MAAA,GAClE;AAAA,MACCE,KAAkB,gBAAAmB,EAACnB,GAAgB,EAAA,GAAGQ,GAAiB,SAAAV,EAAkB,CAAA;AAAA,IAAA,GAC5E;AAAA,sBACCa,GACE,EAAA,UAAAI,EAAK,IAAI,CAACC,GAAME,MAEb,gBAAAC,EAACN,KAAqB,OAAOK,GAC1B,YAAK,YAAYF,EAAK,WADVE,CAEf,CAEH,EACH,CAAA;AAAA,EAAA,GACF;AAEJ;"}
@@ -0,0 +1,5 @@
1
+ export * from './Tab';
2
+ export * from './TabList';
3
+ export * from './TabPanel';
4
+ export * from './Tabs';
5
+ export * from './TabsBody';
@@ -0,0 +1,13 @@
1
+ import { Tab as a } from "./Tab.js";
2
+ import { TabList as t } from "./TabList.js";
3
+ import { TabPanel as f } from "./TabPanel.js";
4
+ import { Tabs as p } from "./Tabs.js";
5
+ import { TabsBody as T } from "./TabsBody.js";
6
+ export {
7
+ a as Tab,
8
+ t as TabList,
9
+ f as TabPanel,
10
+ p as Tabs,
11
+ T as TabsBody
12
+ };
13
+ //# sourceMappingURL=all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"all.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1,52 @@
1
+ import { Dispatch, PropsWithChildren, RefObject } from 'react';
2
+ type RefTab<T extends HTMLElement = HTMLElement> = RefObject<T>;
3
+ type RefTabs<T extends HTMLElement = HTMLElement> = Map<number, RefTab<T>>;
4
+ type TabsUpdateAction = {
5
+ type: "update";
6
+ payload: number;
7
+ };
8
+ type TabsRegisterAction<T extends HTMLElement = HTMLElement> = {
9
+ type: "register";
10
+ payload: {
11
+ value: number;
12
+ ref: RefObject<T>;
13
+ };
14
+ };
15
+ type TabsUnregisterAction = {
16
+ type: "unregister";
17
+ payload: {
18
+ value: number;
19
+ };
20
+ };
21
+ type TabsAction<T extends HTMLElement = HTMLElement> = {
22
+ type: "start" | "end" | "previous" | "next";
23
+ } | TabsUpdateAction | TabsRegisterAction<T> | TabsUnregisterAction;
24
+ interface TabsState<T extends HTMLElement = HTMLElement> {
25
+ uid: string;
26
+ value: number;
27
+ refs: RefTabs<T>;
28
+ }
29
+ interface TabControl<T extends HTMLElement = HTMLElement> extends TabsState<T> {
30
+ uid: string;
31
+ value: number;
32
+ refs: RefTabs<T>;
33
+ dispatch: Dispatch<TabsAction>;
34
+ register: (value: number, ref: RefTab<T>) => void;
35
+ unregister: (value: number) => void;
36
+ }
37
+ export declare const TabControlContext: import('react').Context<TabControl<HTMLElement>>;
38
+ export interface TabsProviderProps {
39
+ selected?: number;
40
+ /**
41
+ * The selected tab value
42
+ * @deprecated Min props as no effect on the Tabs component and will be removed in future versions
43
+ */
44
+ min?: number;
45
+ /**
46
+ * The selected tab value
47
+ * @deprecated Max props as no effect on the Tabs component and will be removed in future versions
48
+ */
49
+ max?: number;
50
+ }
51
+ export declare function TabsProvider({ selected, children }: PropsWithChildren<TabsProviderProps>): import("react/jsx-runtime").JSX.Element;
52
+ export {};
@@ -0,0 +1,85 @@
1
+ "use client";
2
+ import { jsx as f } from "react/jsx-runtime";
3
+ import { createContext as p, useId as x, useReducer as y, useCallback as u } from "react";
4
+ function v(e) {
5
+ const n = [...e.refs.keys()], o = (n.findIndex((t) => t === e.value) + 1) % n.length;
6
+ return { ...e, value: n[o] };
7
+ }
8
+ function g(e) {
9
+ const n = [...e.refs.keys()], o = (n.findIndex((t) => t === e.value) - 1 + n.length) % n.length;
10
+ return { ...e, value: n[o] };
11
+ }
12
+ function C(e) {
13
+ const r = [...e.refs.keys()][0];
14
+ return {
15
+ ...e,
16
+ value: r
17
+ };
18
+ }
19
+ function k(e) {
20
+ const n = [...e.refs.keys()], r = n[n.length - 1];
21
+ return {
22
+ ...e,
23
+ value: r
24
+ };
25
+ }
26
+ function b(e, n) {
27
+ const r = new Map(e.refs);
28
+ return r.delete(n.payload.value), {
29
+ ...e,
30
+ refs: r
31
+ };
32
+ }
33
+ function h(e, n) {
34
+ return {
35
+ ...e,
36
+ refs: new Map(e.refs).set(n.payload.value, n.payload.ref)
37
+ };
38
+ }
39
+ function w(e, n) {
40
+ return { ...e, value: n.payload };
41
+ }
42
+ const i = {
43
+ next: v,
44
+ previous: g,
45
+ start: C,
46
+ end: k,
47
+ register: h,
48
+ unregister: b,
49
+ update: w
50
+ };
51
+ function I(e, n) {
52
+ if (n.type in i) {
53
+ const r = i[n.type];
54
+ return r(e, n);
55
+ }
56
+ return e;
57
+ }
58
+ const d = p({
59
+ uid: "",
60
+ value: 0,
61
+ refs: /* @__PURE__ */ new Map(),
62
+ dispatch: () => {
63
+ console.warn("Tab Controller Context dispatch used outside of Provider");
64
+ },
65
+ register: () => {
66
+ console.warn("Tab Controller Context register used outside of Provider");
67
+ },
68
+ unregister: () => {
69
+ console.warn("Tab Controller Context unregister used outside of Provider");
70
+ }
71
+ });
72
+ d.displayName = "TabControlContext";
73
+ function P({ selected: e = 0, children: n }) {
74
+ const r = x(), [o, t] = y(I, { uid: r, value: e, refs: /* @__PURE__ */ new Map() }), a = u((s, c) => {
75
+ t({ type: "register", payload: { value: s, ref: c } });
76
+ }, []), l = u((s) => {
77
+ t({ type: "unregister", payload: { value: s } });
78
+ }, []);
79
+ return /* @__PURE__ */ f(d.Provider, { value: { ...o, dispatch: t, register: a, unregister: l }, children: n });
80
+ }
81
+ export {
82
+ d as TabControlContext,
83
+ P as TabsProvider
84
+ };
85
+ //# sourceMappingURL=TabControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabControl.js","sources":["../../../../src/molecules/tabs/context/TabControl.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, type Dispatch, type PropsWithChildren, type RefObject, useCallback, useId, useReducer } from \"react\";\n\ntype RefTab<T extends HTMLElement = HTMLElement> = RefObject<T>;\ntype RefTabs<T extends HTMLElement = HTMLElement> = Map<number, RefTab<T>>;\n\ntype TabsUpdateAction = {\n type: \"update\";\n payload: number;\n};\n\ntype TabsRegisterAction<T extends HTMLElement = HTMLElement> = {\n type: \"register\";\n payload: { value: number; ref: RefObject<T> };\n};\n\ntype TabsUnregisterAction = {\n type: \"unregister\";\n payload: { value: number };\n};\n\ntype TabsAction<T extends HTMLElement = HTMLElement> =\n | { type: \"start\" | \"end\" | \"previous\" | \"next\" }\n | TabsUpdateAction\n | TabsRegisterAction<T>\n | TabsUnregisterAction;\n\ninterface TabsState<T extends HTMLElement = HTMLElement> {\n uid: string;\n value: number;\n refs: RefTabs<T>;\n}\n\ninterface TabControl<T extends HTMLElement = HTMLElement> extends TabsState<T> {\n uid: string;\n value: number;\n refs: RefTabs<T>;\n dispatch: Dispatch<TabsAction>;\n register: (value: number, ref: RefTab<T>) => void;\n unregister: (value: number) => void;\n}\n\nfunction next(state: TabsState) {\n const keys = [...state.refs.keys()];\n const index = keys.findIndex((value) => value === state.value);\n const nextIndex = (index + 1) % keys.length;\n\n return { ...state, value: keys[nextIndex] };\n}\n\nfunction previous(state: TabsState) {\n const keys = [...state.refs.keys()];\n const index = keys.findIndex((value) => value === state.value);\n const previousIndex = (index - 1 + keys.length) % keys.length;\n\n return { ...state, value: keys[previousIndex] };\n}\n\nfunction start(state: TabsState) {\n const keys = [...state.refs.keys()];\n const firstIndex = keys[0];\n\n return {\n ...state,\n value: firstIndex\n };\n}\n\nfunction end(state: TabsState) {\n const keys = [...state.refs.keys()];\n const lastIndex = keys[keys.length - 1];\n\n return {\n ...state,\n value: lastIndex\n };\n}\n\nfunction unregister(state: TabsState, action: TabsUnregisterAction) {\n const deletedRefs = new Map(state.refs);\n deletedRefs.delete(action.payload.value);\n\n return {\n ...state,\n refs: deletedRefs\n };\n}\n\nfunction register(state: TabsState, action: TabsRegisterAction) {\n return {\n ...state,\n refs: new Map(state.refs).set(action.payload.value, action.payload.ref)\n };\n}\n\nfunction update(state: TabsState, action: TabsUpdateAction) {\n return { ...state, value: action.payload };\n}\n\nconst actions = {\n next,\n previous,\n start,\n end,\n register,\n unregister,\n update\n};\n\nfunction tabsReducer(state: TabsState, action: TabsAction): TabsState {\n if (action.type in actions) {\n const actionFunction = actions[action.type as keyof typeof actions] as (state: TabsState, action: TabsAction) => TabsState;\n\n return actionFunction(state, action);\n }\n\n return state;\n}\n\nexport const TabControlContext = createContext<TabControl>({\n uid: \"\",\n value: 0,\n refs: new Map(),\n dispatch: () => {\n console.warn(\"Tab Controller Context dispatch used outside of Provider\");\n },\n register: () => {\n console.warn(\"Tab Controller Context register used outside of Provider\");\n },\n unregister: () => {\n console.warn(\"Tab Controller Context unregister used outside of Provider\");\n }\n});\n\nTabControlContext.displayName = \"TabControlContext\";\n\nexport interface TabsProviderProps {\n selected?: number;\n /**\n * The selected tab value\n * @deprecated Min props as no effect on the Tabs component and will be removed in future versions\n */\n min?: number;\n\n /**\n * The selected tab value\n * @deprecated Max props as no effect on the Tabs component and will be removed in future versions\n */\n max?: number;\n}\n\nexport function TabsProvider({ selected = 0, children }: PropsWithChildren<TabsProviderProps>) {\n const uid = useId();\n const [state, dispatch] = useReducer(tabsReducer, { uid, value: selected, refs: new Map() });\n\n const register = useCallback(<T extends HTMLElement>(value: number, ref: RefTab<T>) => {\n dispatch({ type: \"register\", payload: { value, ref } });\n }, []);\n\n const unregister = useCallback((value: number) => {\n dispatch({ type: \"unregister\", payload: { value } });\n }, []);\n\n return <TabControlContext.Provider value={{ ...state, dispatch, register, unregister }}>{children}</TabControlContext.Provider>;\n}\n"],"names":["next","state","keys","nextIndex","value","previous","previousIndex","start","firstIndex","end","lastIndex","unregister","action","deletedRefs","register","update","actions","tabsReducer","actionFunction","TabControlContext","createContext","TabsProvider","selected","children","uid","useId","dispatch","useReducer","useCallback","ref","jsx"],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { RefObject } from 'react';
2
+ export declare const useActiveTab: () => number;
3
+ export declare const useTabDispatch: () => import('react').Dispatch<{
4
+ type: "update";
5
+ payload: number;
6
+ } | {
7
+ type: "unregister";
8
+ payload: {
9
+ value: number;
10
+ };
11
+ } | {
12
+ type: "start" | "end" | "previous" | "next";
13
+ } | {
14
+ type: "register";
15
+ payload: {
16
+ value: number;
17
+ ref: RefObject<HTMLElement>;
18
+ };
19
+ }>;
20
+ export declare const useTabsUid: () => string;
21
+ interface Props<T extends HTMLElement> {
22
+ value: number;
23
+ ref: RefObject<T>;
24
+ }
25
+ export declare function useRegisterTabControl<T extends HTMLElement>({ value, ref }: Props<T>): import('react').Dispatch<{
26
+ type: "update";
27
+ payload: number;
28
+ } | {
29
+ type: "unregister";
30
+ payload: {
31
+ value: number;
32
+ };
33
+ } | {
34
+ type: "start" | "end" | "previous" | "next";
35
+ } | {
36
+ type: "register";
37
+ payload: {
38
+ value: number;
39
+ ref: RefObject<HTMLElement>;
40
+ };
41
+ }>;
42
+ export declare const useTabControls: () => Map<number, RefObject<HTMLElement>>;
43
+ export declare const useActiveTabControl: () => readonly [number, RefObject<HTMLElement> | undefined];
44
+ export {};
@@ -0,0 +1,34 @@
1
+ import { useContext as e, useEffect as u } from "react";
2
+ import { TabControlContext as r } from "../context/TabControl.js";
3
+ const b = () => {
4
+ const { value: t } = e(r);
5
+ return t;
6
+ }, T = () => {
7
+ const { dispatch: t } = e(r);
8
+ return t;
9
+ }, f = () => {
10
+ const { uid: t } = e(r);
11
+ return t;
12
+ };
13
+ function p({ value: t, ref: s }) {
14
+ const { dispatch: c, register: n, unregister: o } = e(r);
15
+ return u(() => (n(t, s), () => {
16
+ o(t);
17
+ }), [t, s, n, o]), c;
18
+ }
19
+ const C = () => {
20
+ const { refs: t } = e(r);
21
+ return t;
22
+ }, d = () => {
23
+ const { value: t, refs: s } = e(r);
24
+ return [t, s.get(t)];
25
+ };
26
+ export {
27
+ b as useActiveTab,
28
+ d as useActiveTabControl,
29
+ p as useRegisterTabControl,
30
+ C as useTabControls,
31
+ T as useTabDispatch,
32
+ f as useTabsUid
33
+ };
34
+ //# sourceMappingURL=tabControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabControl.js","sources":["../../../../src/molecules/tabs/hooks/tabControl.ts"],"sourcesContent":["import { type RefObject, useContext, useEffect } from \"react\";\n\nimport { TabControlContext } from \"../context/TabControl\";\n\nexport const useActiveTab = () => {\n const { value } = useContext(TabControlContext);\n\n return value;\n};\n\nexport const useTabDispatch = () => {\n const { dispatch } = useContext(TabControlContext);\n\n return dispatch;\n};\n\nexport const useTabsUid = () => {\n const { uid } = useContext(TabControlContext);\n\n return uid;\n};\n\ninterface Props<T extends HTMLElement> {\n value: number;\n ref: RefObject<T>;\n}\n\nexport function useRegisterTabControl<T extends HTMLElement>({ value, ref }: Props<T>) {\n const { dispatch, register, unregister } = useContext(TabControlContext);\n\n useEffect(() => {\n register(value, ref);\n\n return () => {\n unregister(value);\n };\n }, [value, ref, register, unregister]);\n\n return dispatch;\n}\n\nexport const useTabControls = () => {\n const { refs } = useContext(TabControlContext);\n\n return refs;\n};\n\nexport const useActiveTabControl = () => {\n const { value, refs } = useContext(TabControlContext);\n\n return [value, refs.get(value)] as const;\n};\n"],"names":["useActiveTab","value","useContext","TabControlContext","useTabDispatch","dispatch","useTabsUid","uid","useRegisterTabControl","ref","register","unregister","useEffect","useTabControls","refs","useActiveTabControl"],"mappings":";;AAIO,MAAMA,IAAe,MAAM;AAChC,QAAM,EAAE,OAAAC,EAAA,IAAUC,EAAWC,CAAiB;AAEvC,SAAAF;AACT,GAEaG,IAAiB,MAAM;AAClC,QAAM,EAAE,UAAAC,EAAA,IAAaH,EAAWC,CAAiB;AAE1C,SAAAE;AACT,GAEaC,IAAa,MAAM;AAC9B,QAAM,EAAE,KAAAC,EAAA,IAAQL,EAAWC,CAAiB;AAErC,SAAAI;AACT;AAOO,SAASC,EAA6C,EAAE,OAAAP,GAAO,KAAAQ,KAAiB;AACrF,QAAM,EAAE,UAAAJ,GAAU,UAAAK,GAAU,YAAAC,EAAW,IAAIT,EAAWC,CAAiB;AAEvE,SAAAS,EAAU,OACRF,EAAST,GAAOQ,CAAG,GAEZ,MAAM;AACX,IAAAE,EAAWV,CAAK;AAAA,EAClB,IACC,CAACA,GAAOQ,GAAKC,GAAUC,CAAU,CAAC,GAE9BN;AACT;AAEO,MAAMQ,IAAiB,MAAM;AAClC,QAAM,EAAE,MAAAC,EAAA,IAASZ,EAAWC,CAAiB;AAEtC,SAAAW;AACT,GAEaC,IAAsB,MAAM;AACvC,QAAM,EAAE,OAAAd,GAAO,MAAAa,MAASZ,EAAWC,CAAiB;AAEpD,SAAO,CAACF,GAAOa,EAAK,IAAIb,CAAK,CAAC;AAChC;"}
@@ -0,0 +1,22 @@
1
+ import { JSON } from '../../interfaces';
2
+ import { UseFormProps } from './useForm';
3
+ declare class CSSProperties {
4
+ }
5
+ export interface FormProps<Data extends {
6
+ [key: string]: JSON;
7
+ } = {
8
+ [key: string]: JSON;
9
+ }> extends UseFormProps<Data> {
10
+ ["data-testid"]?: string;
11
+ /**
12
+ *
13
+ */
14
+ className?: string;
15
+ style?: CSSProperties;
16
+ }
17
+ export declare function Form<Data extends {
18
+ [key: string]: JSON;
19
+ } = {
20
+ [key: string]: JSON;
21
+ }>({ style, className, "data-testid": dataTestId, ...props }: Partial<FormProps<Data>>): import("react/jsx-runtime").JSX.Element;
22
+ export {};
@@ -0,0 +1,15 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { useForm as n } from "./useForm.js";
3
+ function f({
4
+ style: r,
5
+ className: o,
6
+ "data-testid": e = "formio-container",
7
+ ...i
8
+ }) {
9
+ const { element: m } = n(i);
10
+ return /* @__PURE__ */ t("div", { children: /* @__PURE__ */ t("div", { "data-testid": e, style: r, className: o, ref: m }) });
11
+ }
12
+ export {
13
+ f as Form
14
+ };
15
+ //# sourceMappingURL=Form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form.js","sources":["../../../src/organisms/form/Form.tsx"],"sourcesContent":["import { JSON } from \"../../interfaces\";\nimport { useForm, UseFormProps } from \"./useForm\";\n\nclass CSSProperties {}\n\nexport interface FormProps<Data extends { [key: string]: JSON } = { [key: string]: JSON }> extends UseFormProps<Data> {\n [\"data-testid\"]?: string;\n /**\n *\n */\n className?: string;\n\n style?: CSSProperties;\n}\n\nexport function Form<Data extends { [key: string]: JSON } = { [key: string]: JSON }>({\n style,\n className,\n \"data-testid\": dataTestId = \"formio-container\",\n ...props\n}: Partial<FormProps<Data>>) {\n const { element } = useForm<Data>(props);\n\n return (\n <div>\n <div data-testid={dataTestId} style={style} className={className} ref={element} />\n </div>\n );\n}\n"],"names":["Form","style","className","dataTestId","props","element","useForm","jsx"],"mappings":";;AAeO,SAASA,EAAqE;AAAA,EACnF,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAeC,IAAa;AAAA,EAC5B,GAAGC;AACL,GAA6B;AAC3B,QAAM,EAAE,SAAAC,EAAA,IAAYC,EAAcF,CAAK;AAGrC,SAAA,gBAAAG,EAAC,OACC,EAAA,UAAA,gBAAAA,EAAC,OAAI,EAAA,eAAaJ,GAAY,OAAAF,GAAc,WAAAC,GAAsB,KAAKG,EAAA,CAAS,EAClF,CAAA;AAEJ;"}
@@ -1,7 +1,7 @@
1
1
  import { PropsWithChildren } from 'react';
2
- import { FormOptions, FormSchema } from '../../interfaces';
2
+ import { FormOptions, FormType } from '../../../interfaces';
3
3
  export interface FormAccessProps {
4
- form: Partial<FormSchema>;
4
+ form: Partial<FormType>;
5
5
  roles: any;
6
6
  onSubmit?: Function;
7
7
  options?: FormOptions;
@@ -1,8 +1,8 @@
1
1
  import { jsxs as a, jsx as e, Fragment as y } from "react/jsx-runtime";
2
2
  import { useMemo as f, useState as g, useCallback as A, useEffect as N } from "react";
3
- import { Card as d } from "../card/card.component.js";
4
- import { Form as v } from "../form/form.component.js";
5
- import { getFormAccess as S, dataAccessToSubmissions as b, updateSubmissions as x, shouldUpdate as p, submissionsToDataAccess as F } from "./formAccess.utils.js";
3
+ import { Card as d } from "../../../molecules/card/Card.js";
4
+ import { Form as v } from "../Form.js";
5
+ import { getFormAccess as S, dataAccessToSubmissions as b, updateSubmissions as x, shouldUpdate as p, submissionsToDataAccess as F } from "./FormAccess.utils.js";
6
6
  function T({ form: s, roles: r, onSubmit: l, options: t }) {
7
7
  const o = f(() => S(r), [r]), [i, n] = g(() => b(s, o)), m = A(
8
8
  (c, h) => {
@@ -30,7 +30,6 @@ function w({ name: s, form: r, submissions: l, options: t, onChange: o, onSubmit
30
30
  /* @__PURE__ */ e(
31
31
  v,
32
32
  {
33
- name: s,
34
33
  form: r[s],
35
34
  submission: l[s],
36
35
  onChange: ({ data: h, isValid: u }) => {
@@ -92,4 +91,4 @@ function O(s) {
92
91
  export {
93
92
  O as FormAccess
94
93
  };
95
- //# sourceMappingURL=formAccess.component.js.map
94
+ //# sourceMappingURL=FormAccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormAccess.js","sources":["../../../../src/organisms/form/access/FormAccess.tsx"],"sourcesContent":["import { PropsWithChildren, useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport type { FormOptions, FormType, SubmissionType } from \"../../../interfaces\";\nimport { Card } from \"../../../molecules/card/Card\";\nimport { Form } from \"../../form/Form\";\nimport {\n AccessRolesType,\n dataAccessToSubmissions,\n FormAccessType,\n getFormAccess,\n shouldUpdate,\n SubmissionAccessType,\n submissionsToDataAccess,\n updateSubmissions\n} from \"./FormAccess.utils\";\n\nexport interface FormAccessProps {\n form: Partial<FormType>;\n roles: any;\n onSubmit?: Function;\n options?: FormOptions;\n}\n\nfunction useFormAccess({ form: formDefinition, roles, onSubmit, options }: FormAccessProps) {\n const form = useMemo(() => getFormAccess(roles), [roles]);\n\n const [submissions, setSubmissions] = useState(() => dataAccessToSubmissions(formDefinition, form));\n\n const onChange = useCallback(\n (type: string, submission: SubmissionType<AccessRolesType>) => {\n updateSubmissions(type, submission, submissions, setSubmissions);\n },\n [submissions]\n );\n\n useEffect(() => {\n const input = dataAccessToSubmissions(formDefinition, form);\n if (formDefinition?._id) {\n if (shouldUpdate(\"access\", submissions.access, input) || shouldUpdate(\"submissionAccess\", submissions.submissionAccess, input)) {\n setSubmissions(input);\n }\n }\n }, [formDefinition?._id]);\n\n return {\n options,\n form,\n type: formDefinition.type,\n submissions,\n onChange,\n onSubmit: () => {\n onSubmit && onSubmit(submissionsToDataAccess(formDefinition, submissions));\n }\n };\n}\n\ninterface NamedFormAccessProps {\n name: \"access\" | \"submissionAccess\";\n form: FormAccessType;\n submissions: SubmissionAccessType;\n options: any;\n onSubmit: any;\n\n onChange(name: \"access\" | \"submissionAccess\", submission: SubmissionType<AccessRolesType>): void;\n}\n\nfunction NamedFormAccess({ name, form, submissions, options, onChange, onSubmit, children }: PropsWithChildren<NamedFormAccessProps>) {\n const [isValid, setIsValid] = useState(true);\n\n return (\n <>\n <Form<AccessRolesType>\n form={form[name]}\n submission={submissions[name]}\n onChange={({ data, isValid }) => {\n isValid && onChange(name, { data: data as unknown as AccessRolesType });\n setIsValid(isValid);\n }}\n options={options}\n />\n\n <button disabled={!isValid} className={\"mt-5 btn btn-primary\"} onClick={onSubmit}>\n Save access\n </button>\n\n {children}\n\n <div className={\"alert alert-warning mt-5\"}>\n Elevated permissions allow users to access and modify other user's entities. Assign with caution.\n </div>\n </>\n );\n}\n\nexport function FormAccess(props: PropsWithChildren<FormAccessProps>) {\n const { type, form, submissions, options, onChange, onSubmit } = useFormAccess(props);\n\n return (\n <div>\n {props.children}\n <div className={\"flex mb-5\"}>\n <Card label={\"Manage submission access\"} className={\"flex-1\"}>\n <NamedFormAccess\n name={\"submissionAccess\"}\n form={form}\n submissions={submissions}\n onChange={onChange}\n onSubmit={onSubmit}\n options={options}\n >\n {props.children}\n </NamedFormAccess>\n </Card>\n <div className={\"w-1/4 pl-4\"}>\n <Card label={\"About Submission Data Permissions\"}>\n <p>Submission Data Permissions allow you to control who can create, view, and modify form submission data.</p>\n\n <ul className={\"mt-5 pl-7 list-disc\"}>\n <li className={\"pb-2\"}>\n <strong>Own Permissions</strong> - These permissions apply if the user is the original creator of the submission data and is\n listed as the owner of the submission in submission.owner. This allows users to create and edit their own submission data\n without seeing other user's data.\n </li>\n <li>\n <strong>All Permissions</strong> - These permissions apply to all submission data regardless of who owns it.\n </li>\n </ul>\n </Card>\n </div>\n </div>\n <div className={\"flex mb-5\"}>\n <Card label={`Manage ${type} definition access`} className={\"flex-1\"}>\n <NamedFormAccess name={\"access\"} form={form} submissions={submissions} onChange={onChange} onSubmit={onSubmit} options={options}>\n {props.children}\n </NamedFormAccess>\n </Card>\n\n <div className={\"w-1/4 pl-4\"}>\n <Card label={\"About Form Definition Access\"}>\n <p>These permissions allow you to give access to a single form's JSON definition so they can render the form.</p>\n\n <p>Typically you will want to allow all of your roles to be able to Read the form definition.</p>\n\n <p>\n Each form also has an owner at <strong>form.owner</strong> which is the user who created the form. In some applications users\n are allowed to create their own forms. In those cases it is helpful to have Owner based permissions as well.\n </p>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n"],"names":["useFormAccess","formDefinition","roles","onSubmit","options","form","useMemo","getFormAccess","submissions","setSubmissions","useState","dataAccessToSubmissions","onChange","useCallback","type","submission","updateSubmissions","useEffect","input","shouldUpdate","submissionsToDataAccess","NamedFormAccess","name","children","isValid","setIsValid","jsxs","Fragment","jsx","Form","data","FormAccess","props","Card"],"mappings":";;;;;AAuBA,SAASA,EAAc,EAAE,MAAMC,GAAgB,OAAAC,GAAO,UAAAC,GAAU,SAAAC,KAA4B;AACpF,QAAAC,IAAOC,EAAQ,MAAMC,EAAcL,CAAK,GAAG,CAACA,CAAK,CAAC,GAElD,CAACM,GAAaC,CAAc,IAAIC,EAAS,MAAMC,EAAwBV,GAAgBI,CAAI,CAAC,GAE5FO,IAAWC;AAAA,IACf,CAACC,GAAcC,MAAgD;AAC3C,MAAAC,EAAAF,GAAMC,GAAYP,GAAaC,CAAc;AAAA,IACjE;AAAA,IACA,CAACD,CAAW;AAAA,EACd;AAEA,SAAAS,EAAU,MAAM;AACR,UAAAC,IAAQP,EAAwBV,GAAgBI,CAAI;AAC1D,IAAIJ,KAAA,QAAAA,EAAgB,QACdkB,EAAa,UAAUX,EAAY,QAAQU,CAAK,KAAKC,EAAa,oBAAoBX,EAAY,kBAAkBU,CAAK,MAC3HT,EAAeS,CAAK;AAAA,EAExB,GACC,CAACjB,KAAA,gBAAAA,EAAgB,GAAG,CAAC,GAEjB;AAAA,IACL,SAAAG;AAAA,IACA,MAAAC;AAAA,IACA,MAAMJ,EAAe;AAAA,IACrB,aAAAO;AAAA,IACA,UAAAI;AAAA,IACA,UAAU,MAAM;AACd,MAAAT,KAAYA,EAASiB,EAAwBnB,GAAgBO,CAAW,CAAC;AAAA,IAAA;AAAA,EAE7E;AACF;AAYA,SAASa,EAAgB,EAAE,MAAAC,GAAM,MAAAjB,GAAM,aAAAG,GAAa,SAAAJ,GAAS,UAAAQ,GAAU,UAAAT,GAAU,UAAAoB,KAAqD;AACpI,QAAM,CAACC,GAASC,CAAU,IAAIf,EAAS,EAAI;AAE3C,SAEI,gBAAAgB,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAMxB,EAAKiB,CAAI;AAAA,QACf,YAAYd,EAAYc,CAAI;AAAA,QAC5B,UAAU,CAAC,EAAE,MAAAQ,GAAM,SAAAN,QAAc;AAC/BA,UAAAA,KAAWZ,EAASU,GAAM,EAAE,MAAAQ,GAA0C,GACtEL,EAAWD,CAAO;AAAA,QACpB;AAAA,QACA,SAAApB;AAAA,MAAA;AAAA,IACF;AAAA,IAEA,gBAAAwB,EAAC,YAAO,UAAU,CAACJ,GAAS,WAAW,wBAAwB,SAASrB,GAAU,UAElF,cAAA,CAAA;AAAA,IAECoB;AAAA,IAEA,gBAAAK,EAAA,OAAA,EAAI,WAAW,4BAA4B,UAE5C,oGAAA,CAAA;AAAA,EAAA,GACF;AAEJ;AAEO,SAASG,EAAWC,GAA2C;AAC9D,QAAA,EAAE,MAAAlB,GAAM,MAAAT,GAAM,aAAAG,GAAa,SAAAJ,GAAS,UAAAQ,GAAU,UAAAT,EAAA,IAAaH,EAAcgC,CAAK;AAEpF,2BACG,OACE,EAAA,UAAA;AAAA,IAAMA,EAAA;AAAA,IACP,gBAAAN,EAAC,OAAI,EAAA,WAAW,aACd,UAAA;AAAA,MAAA,gBAAAE,EAACK,GAAK,EAAA,OAAO,4BAA4B,WAAW,UAClD,UAAA,gBAAAL;AAAA,QAACP;AAAA,QAAA;AAAA,UACC,MAAM;AAAA,UACN,MAAAhB;AAAA,UACA,aAAAG;AAAA,UACA,UAAAI;AAAA,UACA,UAAAT;AAAA,UACA,SAAAC;AAAA,UAEC,UAAM4B,EAAA;AAAA,QAAA;AAAA,MAAA,GAEX;AAAA,wBACC,OAAI,EAAA,WAAW,cACd,UAAC,gBAAAN,EAAAO,GAAA,EAAK,OAAO,qCACX,UAAA;AAAA,QAAA,gBAAAL,EAAC,OAAE,UAAuG,0GAAA,CAAA;AAAA,QAE1G,gBAAAF,EAAC,MAAG,EAAA,WAAW,uBACb,UAAA;AAAA,UAAC,gBAAAA,EAAA,MAAA,EAAG,WAAW,QACb,UAAA;AAAA,YAAA,gBAAAE,EAAC,YAAO,UAAe,kBAAA,CAAA;AAAA,YAAS;AAAA,UAAA,GAGlC;AAAA,4BACC,MACC,EAAA,UAAA;AAAA,YAAA,gBAAAA,EAAC,YAAO,UAAe,kBAAA,CAAA;AAAA,YAAS;AAAA,UAAA,EAClC,CAAA;AAAA,QAAA,EACF,CAAA;AAAA,MAAA,EAAA,CACF,EACF,CAAA;AAAA,IAAA,GACF;AAAA,IACA,gBAAAF,EAAC,OAAI,EAAA,WAAW,aACd,UAAA;AAAA,MAAA,gBAAAE,EAACK,KAAK,OAAO,UAAUnB,CAAI,sBAAsB,WAAW,UAC1D,UAAC,gBAAAc,EAAAP,GAAA,EAAgB,MAAM,UAAU,MAAAhB,GAAY,aAAAG,GAA0B,UAAAI,GAAoB,UAAAT,GAAoB,SAAAC,GAC5G,UAAA4B,EAAM,UACT,EACF,CAAA;AAAA,wBAEC,OAAI,EAAA,WAAW,cACd,UAAC,gBAAAN,EAAAO,GAAA,EAAK,OAAO,gCACX,UAAA;AAAA,QAAA,gBAAAL,EAAC,OAAE,UAA0G,6GAAA,CAAA;AAAA,QAE7G,gBAAAA,EAAC,OAAE,UAA0F,6FAAA,CAAA;AAAA,0BAE5F,KAAE,EAAA,UAAA;AAAA,UAAA;AAAA,UAC8B,gBAAAA,EAAC,YAAO,UAAU,aAAA,CAAA;AAAA,UAAS;AAAA,QAAA,EAE5D,CAAA;AAAA,MAAA,EAAA,CACF,EACF,CAAA;AAAA,IAAA,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;"}
@@ -0,0 +1,4 @@
1
+ import { ComponentType, FormType } from '../../../interfaces';
2
+ export declare function getRoleComponent({ label, key, description, choices, data }: any): ComponentType;
3
+ export declare function getSubmissionPermissionForm({ choices }: any): FormType;
4
+ export declare function getAccessPermissionForm({ choices }: any): FormType;
@@ -161,4 +161,4 @@ export {
161
161
  s as getRoleComponent,
162
162
  n as getSubmissionPermissionForm
163
163
  };
164
- //# sourceMappingURL=formAccess.schema.js.map
164
+ //# sourceMappingURL=FormAccess.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormAccess.schema.js","sources":["../../../../src/organisms/form/access/FormAccess.schema.ts"],"sourcesContent":["import type { ComponentType, FormType } from \"../../../interfaces\";\n\nexport function getRoleComponent({ label, key, description, choices, data }: any): ComponentType {\n return {\n label,\n key,\n description,\n type: \"select\",\n labelPosition: \"top\",\n widget: \"choicesjs\",\n placeholder: \"Select roles...\",\n tooltip: \"\",\n multiple: true,\n dataSrc: \"values\",\n defaultValue: \"\",\n data: {\n values: choices\n },\n template: \"<span>{{ item.label }}</span>\",\n searchEnabled: true,\n selectThreshold: 0,\n validate: {\n required: false,\n custom: \"\",\n customPrivate: false\n },\n values: data\n };\n}\n\nfunction toDescription(description: string, hr = true): string {\n return '<span class=\"text-sm\">' + description + \"</span> \" + (hr ? '<hr class=\"mt-6 mb-5 border-gray-200 mx-20\"/>' : \"\");\n}\n\nexport function getSubmissionPermissionForm({ choices }: any): FormType {\n return {\n description: \"<strong>Elevated permissions allow users to access and modify other user's entities. Assign with caution.</strong>\",\n components: [\n getRoleComponent({\n key: \"create_own\",\n label: '<h4 class=\"text-gray-800\">Create Own Submissions</h4>',\n description: toDescription(\n \"The Create Own Submissions permission will allow a user with one of the Roles to create a Submission. Upon creating the Submission, the user will be defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"create_all\",\n label: '<h4 class=\"text-gray-800\">Create All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Create All Submissions permission will allow a user with one of the Roles to create a new Submission and assign ownership of that Submission to another user.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_own\",\n label: '<h4 class=\"text-gray-800\">Read Own Submissions</h4>',\n description: toDescription(\n \"The Read Own Submissions permission will allow a user with one of the Roles to read a Submission. A user can only read a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_all\",\n label: '<h4 class=\"text-gray-800\">Read All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Read All Submissions permission will allow a user with one of the Roles to read all Submissions regardless of who owns them.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_own\",\n label: '<h4 class=\"text-gray-800\">Update Own Submissions</h4>',\n description: toDescription(\n \"The Update Own Submissions permission will allow a user with one of the Roles to update a Submission. A user can only update a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_all\",\n label: '<h4 class=\"text-gray-800\">Update All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Update All Submissions permission will allow a user with one of the Roles to update a Submission, regardless of who owns the Submission. Additionally with this permission, a user can change the owner of a Submission.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_own\",\n label: '<h4 class=\"text-gray-800\">Delete Own Submissions</h4>',\n description: toDescription(\n \"The Delete Own Submissions permission will allow a user with one of the Roles, to delete a Submission. A user can only delete a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_all\",\n label: '<h4 class=\"text-gray-800\">Delete All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Delete All Submissions permission will allow a user with one of the Roles to delete a Submission, regardless of who owns the Submission.',\n false\n ),\n choices\n })\n ]\n };\n}\n\nexport function getAccessPermissionForm({ choices }: any): FormType {\n return {\n description: \"<strong>Elevated permissions allow users to access and modify other user's entities. Assign with caution.</strong>\",\n components: [\n getRoleComponent({\n key: \"read_own\",\n label: '<h4 class=\"text-gray-800\">Read Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Read Own permission will allow a user, with one of the given Roles, to read a form. A user can only read a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_all\",\n label: \"<h4>Read Form Definition</h4>\",\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Read permission will allow a user, with one of the given Roles, to read the form.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_own\",\n label: '<h4 class=\"text-gray-800\">Update Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Update Own permission will allow a user, with one of the given Roles, to update a form. A user can only update a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_all\",\n label: '<h4 class=\"text-gray-800\">Update Form Definition</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Update permission will allow a user, with one of the given Roles, to read and edit the form.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_own\",\n label: '<h4 class=\"text-gray-800\">Delete Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Delete Own permission will allow a user, with one of the given Roles, to delete a form. A user can only delete a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_all\",\n label: '<h4 class=\"text-gray-800\">Delete Form Definition</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Delete permission will allow a user, with one of the given Roles, to delete the form.',\n false\n ),\n choices\n })\n ]\n };\n}\n"],"names":["getRoleComponent","label","key","description","choices","data","toDescription","hr","getSubmissionPermissionForm","getAccessPermissionForm"],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { FormType, RoleType, SubmissionType } from '../../../interfaces';
2
+ export interface Choice {
3
+ label: string;
4
+ value: string;
5
+ }
6
+ export interface Access {
7
+ roles: string[];
8
+ type: string;
9
+ }
10
+ export type AccessRolesType = Record<string, string[]>;
11
+ export type FormAccessType = {
12
+ access: FormType;
13
+ submissionAccess: FormType;
14
+ };
15
+ export type SubmissionAccessType = {
16
+ access: SubmissionType<AccessRolesType>;
17
+ submissionAccess: SubmissionType<AccessRolesType>;
18
+ };
19
+ export declare function getFormAccess(roles: RoleType[]): FormAccessType;
20
+ export declare function dataAccessToSubmissions(form: Partial<FormType>, formAccess: FormAccessType): SubmissionAccessType;
21
+ export declare function submissionsToDataAccess(form: Partial<FormType>, submissions: SubmissionAccessType): Partial<FormType>;
22
+ export declare function shouldUpdate(type: string, submission: SubmissionType<AccessRolesType>, submissions: SubmissionAccessType): boolean;
23
+ export declare function updateSubmissions(type: string, submission: SubmissionType<AccessRolesType>, submissions: SubmissionAccessType, cb?: Function): SubmissionAccessType;
@@ -1,7 +1,7 @@
1
1
  import r from "lodash/cloneDeep";
2
2
  import i from "lodash/isEqual";
3
3
  import u from "lodash/noop";
4
- import { getAccessPermissionForm as m, getSubmissionPermissionForm as d } from "./formAccess.schema.js";
4
+ import { getAccessPermissionForm as m, getSubmissionPermissionForm as d } from "./FormAccess.schema.js";
5
5
  function f(e) {
6
6
  return Object.values(e).map((s) => ({
7
7
  label: s.title || "",
@@ -65,4 +65,4 @@ export {
65
65
  j as submissionsToDataAccess,
66
66
  v as updateSubmissions
67
67
  };
68
- //# sourceMappingURL=formAccess.utils.js.map
68
+ //# sourceMappingURL=FormAccess.utils.js.map