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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (554) hide show
  1. package/dist/atoms/icon/Icon.d.ts +6 -0
  2. package/dist/atoms/icon/Icon.js +12 -0
  3. package/dist/atoms/icon/Icon.js.map +1 -0
  4. package/dist/chunks/_commonjsHelpers.js +7 -0
  5. package/dist/chunks/_commonjsHelpers.js.map +1 -0
  6. package/dist/chunks/index.js +43 -0
  7. package/dist/chunks/index.js.map +1 -0
  8. package/dist/chunks/index.module.js +56 -0
  9. package/dist/chunks/index.module.js.map +1 -0
  10. package/dist/chunks/react-select-animated.esm.js +3513 -0
  11. package/dist/chunks/react-select-animated.esm.js.map +1 -0
  12. package/dist/hooks/useTooltip.d.ts +2 -3
  13. package/dist/hooks/useTooltip.js +12 -0
  14. package/dist/hooks/useTooltip.js.map +1 -0
  15. package/dist/index.d.ts +7 -13
  16. package/dist/index.js +14 -7653
  17. package/dist/index.js.map +1 -1
  18. package/dist/interfaces/ActionType.d.ts +23 -0
  19. package/dist/interfaces/ActionType.js +2 -0
  20. package/dist/interfaces/ActionType.js.map +1 -0
  21. package/dist/interfaces/ColumnIdentifier.d.ts +14 -14
  22. package/dist/interfaces/ColumnIdentifier.js +2 -0
  23. package/dist/interfaces/ColumnIdentifier.js.map +1 -0
  24. package/dist/interfaces/ComponentType.d.ts +2 -0
  25. package/dist/interfaces/ComponentType.js +2 -0
  26. package/dist/interfaces/ComponentType.js.map +1 -0
  27. package/dist/interfaces/FormOptions.d.ts +13 -10
  28. package/dist/interfaces/FormOptions.js +2 -0
  29. package/dist/interfaces/FormOptions.js.map +1 -0
  30. package/dist/interfaces/{FormSchema.d.ts → FormType.d.ts} +12 -12
  31. package/dist/interfaces/FormType.js +2 -0
  32. package/dist/interfaces/FormType.js.map +1 -0
  33. package/dist/interfaces/Operation.d.ts +28 -29
  34. package/dist/interfaces/Operation.js +2 -0
  35. package/dist/interfaces/Operation.js.map +1 -0
  36. package/dist/interfaces/QueryOptions.d.ts +23 -23
  37. package/dist/interfaces/QueryOptions.js +2 -0
  38. package/dist/interfaces/QueryOptions.js.map +1 -0
  39. package/dist/interfaces/{RoleSchema.d.ts → RoleType.d.ts} +6 -6
  40. package/dist/interfaces/RoleType.js +2 -0
  41. package/dist/interfaces/RoleType.js.map +1 -0
  42. package/dist/interfaces/SubmissionType.d.ts +29 -0
  43. package/dist/interfaces/SubmissionType.js +2 -0
  44. package/dist/interfaces/SubmissionType.js.map +1 -0
  45. package/dist/interfaces/index.d.ts +9 -8
  46. package/dist/interfaces/index.js +2 -0
  47. package/dist/interfaces/index.js.map +1 -0
  48. package/dist/molecules/alert/Alert.d.ts +6 -0
  49. package/dist/molecules/alert/Alert.js +27 -0
  50. package/dist/molecules/alert/Alert.js.map +1 -0
  51. package/dist/molecules/button/Button.d.ts +8 -0
  52. package/dist/molecules/button/Button.js +52 -0
  53. package/dist/molecules/button/Button.js.map +1 -0
  54. package/dist/{components/card/card.component.d.ts → molecules/card/Card.d.ts} +6 -7
  55. package/dist/molecules/card/Card.js +12 -0
  56. package/dist/molecules/card/Card.js.map +1 -0
  57. package/dist/molecules/forms/form-control/FormControl.d.ts +17 -0
  58. package/dist/molecules/forms/form-control/FormControl.js +51 -0
  59. package/dist/molecules/forms/form-control/FormControl.js.map +1 -0
  60. package/dist/molecules/forms/input-tags/InputTags.d.ts +2 -0
  61. package/dist/molecules/forms/input-tags/InputTags.interface.d.ts +7 -0
  62. package/dist/molecules/forms/input-tags/InputTags.interface.js +2 -0
  63. package/dist/molecules/forms/input-tags/InputTags.interface.js.map +1 -0
  64. package/dist/molecules/forms/input-tags/InputTags.js +25 -0
  65. package/dist/molecules/forms/input-tags/InputTags.js.map +1 -0
  66. package/dist/molecules/forms/input-tags/all.d.ts +2 -0
  67. package/dist/molecules/forms/input-tags/all.js +9 -0
  68. package/dist/molecules/forms/input-tags/all.js.map +1 -0
  69. package/dist/molecules/forms/input-tags/components/ChoicesTags.d.ts +307 -0
  70. package/dist/molecules/forms/input-tags/components/ChoicesTags.js +51 -0
  71. package/dist/molecules/forms/input-tags/components/ChoicesTags.js.map +1 -0
  72. package/dist/molecules/forms/input-tags/components/ReactTags.d.ts +2 -0
  73. package/dist/molecules/forms/input-tags/components/ReactTags.js +1937 -0
  74. package/dist/molecules/forms/input-tags/components/ReactTags.js.map +1 -0
  75. package/dist/molecules/forms/input-text/InputText.d.ts +2 -0
  76. package/dist/molecules/forms/input-text/InputText.interface.d.ts +4 -0
  77. package/dist/molecules/forms/input-text/InputText.interface.js +2 -0
  78. package/dist/molecules/forms/input-text/InputText.interface.js.map +1 -0
  79. package/dist/molecules/forms/input-text/InputText.js +54 -0
  80. package/dist/molecules/forms/input-text/InputText.js.map +1 -0
  81. package/dist/molecules/forms/select/Select.d.ts +2 -0
  82. package/dist/molecules/forms/select/Select.interface.d.ts +38 -0
  83. package/dist/molecules/forms/select/Select.interface.js +2 -0
  84. package/dist/molecules/forms/select/Select.interface.js.map +1 -0
  85. package/dist/molecules/forms/select/Select.js +16 -0
  86. package/dist/molecules/forms/select/Select.js.map +1 -0
  87. package/dist/molecules/forms/select/all.d.ts +2 -0
  88. package/dist/molecules/forms/select/all.js +9 -0
  89. package/dist/molecules/forms/select/all.js.map +1 -0
  90. package/dist/molecules/forms/select/components/ChoicesSelect.d.ts +7 -0
  91. package/dist/molecules/forms/select/components/ChoicesSelect.js +115 -0
  92. package/dist/molecules/forms/select/components/ChoicesSelect.js.map +1 -0
  93. package/dist/molecules/forms/select/components/HtmlSelect.d.ts +2 -0
  94. package/dist/molecules/forms/select/components/HtmlSelect.js +35 -0
  95. package/dist/molecules/forms/select/components/HtmlSelect.js.map +1 -0
  96. package/dist/molecules/forms/select/components/ReactSelect.d.ts +2 -0
  97. package/dist/molecules/forms/select/components/ReactSelect.js +46 -0
  98. package/dist/molecules/forms/select/components/ReactSelect.js.map +1 -0
  99. package/dist/molecules/forms/select/components/choices.template.d.ts +7 -0
  100. package/dist/molecules/forms/select/components/choices.template.js +9654 -0
  101. package/dist/molecules/forms/select/components/choices.template.js.map +1 -0
  102. package/dist/molecules/forms/select/hooks/useOptions.d.ts +9 -0
  103. package/dist/molecules/forms/select/hooks/useOptions.js +35 -0
  104. package/dist/molecules/forms/select/hooks/useOptions.js.map +1 -0
  105. package/dist/molecules/loader/Loader.d.ts +8 -0
  106. package/dist/molecules/loader/Loader.js +19 -0
  107. package/dist/molecules/loader/Loader.js.map +1 -0
  108. package/dist/{components/modal/modal.component.d.ts → molecules/modal/Modal.d.ts} +15 -15
  109. package/dist/molecules/modal/Modal.js +62 -0
  110. package/dist/molecules/modal/Modal.js.map +1 -0
  111. package/dist/molecules/pagination/Pagination.d.ts +18 -0
  112. package/dist/molecules/pagination/Pagination.js +77 -0
  113. package/dist/molecules/pagination/Pagination.js.map +1 -0
  114. package/dist/molecules/pagination/PaginationButton.d.ts +7 -0
  115. package/dist/molecules/pagination/PaginationButton.js +21 -0
  116. package/dist/molecules/pagination/PaginationButton.js.map +1 -0
  117. package/dist/molecules/pagination/all.d.ts +2 -0
  118. package/dist/molecules/pagination/all.js +12 -0
  119. package/dist/molecules/pagination/all.js.map +1 -0
  120. package/dist/{components/table → molecules/pagination}/utils/getPageNumbers.d.ts +3 -3
  121. package/dist/molecules/pagination/utils/getPageNumbers.js +25 -0
  122. package/dist/molecules/pagination/utils/getPageNumbers.js.map +1 -0
  123. package/dist/molecules/table/Table.d.ts +9 -0
  124. package/dist/molecules/table/Table.js +58 -0
  125. package/dist/molecules/table/Table.js.map +1 -0
  126. package/dist/molecules/table/all.d.ts +0 -0
  127. package/dist/molecules/table/all.js +19 -0
  128. package/dist/molecules/table/all.js.map +1 -0
  129. package/dist/molecules/table/components/DefaultArrowSort.d.ts +5 -0
  130. package/dist/molecules/table/components/DefaultArrowSort.js +22 -0
  131. package/dist/molecules/table/components/DefaultArrowSort.js.map +1 -0
  132. package/dist/molecules/table/components/DefaultCell.d.ts +5 -0
  133. package/dist/molecules/table/components/DefaultCell.js +13 -0
  134. package/dist/molecules/table/components/DefaultCell.js.map +1 -0
  135. package/dist/molecules/table/components/DefaultCellFooter.d.ts +6 -0
  136. package/dist/molecules/table/components/DefaultCellFooter.js +12 -0
  137. package/dist/molecules/table/components/DefaultCellFooter.js.map +1 -0
  138. package/dist/molecules/table/components/DefaultCellHeader.d.ts +6 -0
  139. package/dist/molecules/table/components/DefaultCellHeader.js +30 -0
  140. package/dist/molecules/table/components/DefaultCellHeader.js.map +1 -0
  141. package/dist/molecules/table/components/DefaultCellOperations.d.ts +10 -0
  142. package/dist/molecules/table/components/DefaultCellOperations.js +24 -0
  143. package/dist/molecules/table/components/DefaultCellOperations.js.map +1 -0
  144. package/dist/molecules/table/components/DefaultFilter.d.ts +11 -0
  145. package/dist/molecules/table/components/DefaultFilter.js +15 -0
  146. package/dist/molecules/table/components/DefaultFilter.js.map +1 -0
  147. package/dist/molecules/table/components/DefaultOperationButton.d.ts +11 -0
  148. package/dist/molecules/table/components/DefaultOperationButton.js +30 -0
  149. package/dist/molecules/table/components/DefaultOperationButton.js.map +1 -0
  150. package/dist/molecules/table/filters/Filters.d.js +2 -0
  151. package/dist/molecules/table/filters/Filters.d.js.map +1 -0
  152. package/dist/molecules/table/filters/RangeFilter.d.ts +3 -0
  153. package/dist/molecules/table/filters/RangeFilter.js +42 -0
  154. package/dist/molecules/table/filters/RangeFilter.js.map +1 -0
  155. package/dist/molecules/table/filters/SelectFilter.d.ts +3 -0
  156. package/dist/molecules/table/filters/SelectFilter.js +35 -0
  157. package/dist/molecules/table/filters/SelectFilter.js.map +1 -0
  158. package/dist/molecules/table/filters/TextFieldFilter.d.ts +3 -0
  159. package/dist/molecules/table/filters/TextFieldFilter.js +27 -0
  160. package/dist/molecules/table/filters/TextFieldFilter.js.map +1 -0
  161. package/dist/molecules/table/hooks/useTable.d.ts +15 -0
  162. package/dist/molecules/table/hooks/useTable.js +34 -0
  163. package/dist/molecules/table/hooks/useTable.js.map +1 -0
  164. package/dist/molecules/table/hooks/useUniqValues.d.ts +5 -0
  165. package/dist/molecules/table/hooks/useUniqValues.js +11 -0
  166. package/dist/molecules/table/hooks/useUniqValues.js.map +1 -0
  167. package/dist/molecules/table/interfaces/extends.d.ts +14 -0
  168. package/dist/molecules/table/interfaces/extends.js +2 -0
  169. package/dist/molecules/table/interfaces/extends.js.map +1 -0
  170. package/dist/molecules/table/utils/mapFormToColumns.d.ts +3 -0
  171. package/dist/molecules/table/utils/mapFormToColumns.js +39 -0
  172. package/dist/molecules/table/utils/mapFormToColumns.js.map +1 -0
  173. package/dist/{components/tabs/tabs.component.d.ts → molecules/tabs/Tabs.d.ts} +19 -19
  174. package/dist/molecules/tabs/Tabs.js +72 -0
  175. package/dist/molecules/tabs/Tabs.js.map +1 -0
  176. package/dist/organisms/form/Form.d.ts +22 -0
  177. package/dist/organisms/form/Form.js +15 -0
  178. package/dist/organisms/form/Form.js.map +1 -0
  179. package/dist/organisms/form/access/FormAccess.d.ts +9 -0
  180. package/dist/organisms/form/access/FormAccess.js +94 -0
  181. package/dist/organisms/form/access/FormAccess.js.map +1 -0
  182. package/dist/organisms/form/access/FormAccess.schema.d.ts +4 -0
  183. package/dist/organisms/form/access/FormAccess.schema.js +164 -0
  184. package/dist/organisms/form/access/FormAccess.schema.js.map +1 -0
  185. package/dist/organisms/form/access/FormAccess.utils.d.ts +23 -0
  186. package/dist/organisms/form/access/FormAccess.utils.js +68 -0
  187. package/dist/organisms/form/access/FormAccess.utils.js.map +1 -0
  188. package/dist/organisms/form/action/FormAction.d.ts +9 -0
  189. package/dist/organisms/form/action/FormAction.js +32 -0
  190. package/dist/organisms/form/action/FormAction.js.map +1 -0
  191. package/dist/organisms/form/builder/FormBuilder.d.ts +7 -0
  192. package/dist/organisms/form/builder/FormBuilder.js +17 -0
  193. package/dist/organisms/form/builder/FormBuilder.js.map +1 -0
  194. package/dist/organisms/form/builder/FormEdit.d.ts +8 -0
  195. package/dist/organisms/form/builder/FormEdit.js +70 -0
  196. package/dist/organisms/form/builder/FormEdit.js.map +1 -0
  197. package/dist/organisms/form/builder/FormEdit.reducer.d.ts +10 -0
  198. package/dist/organisms/form/builder/FormEdit.reducer.js +65 -0
  199. package/dist/organisms/form/builder/FormEdit.reducer.js.map +1 -0
  200. package/dist/organisms/form/builder/FormEditCtas.d.ts +15 -0
  201. package/dist/organisms/form/builder/FormEditCtas.js +52 -0
  202. package/dist/organisms/form/builder/FormEditCtas.js.map +1 -0
  203. package/dist/organisms/form/builder/FormParameters.d.ts +24 -0
  204. package/dist/organisms/form/builder/FormParameters.js +84 -0
  205. package/dist/organisms/form/builder/FormParameters.js.map +1 -0
  206. package/dist/organisms/form/builder/all.d.ts +6 -0
  207. package/dist/organisms/form/builder/all.js +26 -0
  208. package/dist/organisms/form/builder/all.js.map +1 -0
  209. package/dist/organisms/form/builder/useFormBuilder.d.ts +28 -0
  210. package/dist/organisms/form/builder/useFormBuilder.js +71 -0
  211. package/dist/organisms/form/builder/useFormBuilder.js.map +1 -0
  212. package/dist/{components/form-edit/useFormEdit.hook.d.ts → organisms/form/builder/useFormEdit.d.ts} +29 -29
  213. package/dist/organisms/form/builder/useFormEdit.js +36 -0
  214. package/dist/organisms/form/builder/useFormEdit.js.map +1 -0
  215. package/dist/{components/form-settings/formSettings.component.d.ts → organisms/form/settings/FormSettings.d.ts} +7 -8
  216. package/dist/organisms/form/settings/FormSettings.js +38 -0
  217. package/dist/organisms/form/settings/FormSettings.js.map +1 -0
  218. package/dist/organisms/form/settings/FormSettings.schema.d.ts +2 -0
  219. package/dist/organisms/form/settings/FormSettings.schema.js +60 -0
  220. package/dist/organisms/form/settings/FormSettings.schema.js.map +1 -0
  221. package/dist/organisms/form/settings/FormSettings.utils.d.ts +8 -0
  222. package/dist/organisms/form/settings/FormSettings.utils.js +23 -0
  223. package/dist/organisms/form/settings/FormSettings.utils.js.map +1 -0
  224. package/dist/organisms/form/types.d.ts +15 -0
  225. package/dist/organisms/form/types.js +2 -0
  226. package/dist/organisms/form/types.js.map +1 -0
  227. package/dist/organisms/form/useForm.d.ts +65 -0
  228. package/dist/organisms/form/useForm.js +776 -0
  229. package/dist/organisms/form/useForm.js.map +1 -0
  230. package/dist/{components/modal/removeModal.component.d.ts → organisms/modal/RemoveModal.d.ts} +9 -9
  231. package/dist/organisms/modal/RemoveModal.js +71 -0
  232. package/dist/organisms/modal/RemoveModal.js.map +1 -0
  233. package/dist/organisms/table/actions/ActionsTable.d.ts +10 -0
  234. package/dist/organisms/table/actions/ActionsTable.js +46 -0
  235. package/dist/organisms/table/actions/ActionsTable.js.map +1 -0
  236. package/dist/organisms/table/forms/FormsTable.d.ts +9 -0
  237. package/dist/organisms/table/forms/FormsTable.js +57 -0
  238. package/dist/organisms/table/forms/FormsTable.js.map +1 -0
  239. package/dist/organisms/table/forms/components/FormsCell.d.ts +5 -0
  240. package/dist/organisms/table/forms/components/FormsCell.js +50 -0
  241. package/dist/organisms/table/forms/components/FormsCell.js.map +1 -0
  242. package/dist/organisms/table/submissions/SubmissionsTable.d.ts +6 -0
  243. package/dist/organisms/table/submissions/SubmissionsTable.js +11 -0
  244. package/dist/organisms/table/submissions/SubmissionsTable.js.map +1 -0
  245. package/dist/react-app-env.d.js +2 -0
  246. package/dist/react-app-env.d.js.map +1 -0
  247. package/dist/react-table.d.js +2 -0
  248. package/dist/react-table.d.js.map +1 -0
  249. package/dist/registries/components.d.ts +3 -0
  250. package/dist/registries/components.js +19 -0
  251. package/dist/registries/components.js.map +1 -0
  252. package/dist/typings.d.js +2 -0
  253. package/dist/typings.d.js.map +1 -0
  254. package/dist/utils/getEventValue.d.ts +1 -1
  255. package/dist/utils/getEventValue.js +8 -0
  256. package/dist/utils/getEventValue.js.map +1 -0
  257. package/dist/utils/iconClass.d.ts +1 -1
  258. package/dist/utils/iconClass.js +9 -0
  259. package/dist/utils/iconClass.js.map +1 -0
  260. package/dist/utils/mapPagination.d.ts +1 -1
  261. package/dist/utils/mapPagination.js +11 -0
  262. package/dist/utils/mapPagination.js.map +1 -0
  263. package/dist/utils/stopPropagationWrapper.d.ts +1 -1
  264. package/dist/utils/stopPropagationWrapper.js +7 -0
  265. package/dist/utils/stopPropagationWrapper.js.map +1 -0
  266. package/package.json +29 -18
  267. package/readme.md +33 -20
  268. package/src/atoms/icon/Icon.stories.tsx +124 -0
  269. package/src/atoms/icon/Icon.tsx +16 -0
  270. package/src/index.ts +1 -6
  271. package/src/interfaces/ActionType.ts +26 -0
  272. package/src/interfaces/ComponentType.ts +3 -0
  273. package/src/interfaces/FormOptions.ts +4 -1
  274. package/src/interfaces/{FormSchema.ts → FormType.ts} +3 -3
  275. package/src/interfaces/Operation.ts +2 -2
  276. package/src/interfaces/{RoleSchema.ts → RoleType.ts} +1 -1
  277. package/src/interfaces/SubmissionType.ts +20 -0
  278. package/src/interfaces/index.ts +5 -4
  279. package/src/molecules/__fixtures__/build.js +28 -0
  280. package/src/molecules/__fixtures__/form-firstname.fixture.json +256 -0
  281. package/src/molecules/__fixtures__/form-schema.json +350 -0
  282. package/src/molecules/__fixtures__/form-submissions.json +11942 -0
  283. package/src/molecules/__fixtures__/form-wizard.fixture.json +2042 -0
  284. package/src/molecules/__fixtures__/products.json +81539 -0
  285. package/src/molecules/__fixtures__/useValue.hook.ts +14 -0
  286. package/src/{components/alert/alert.component.spec.tsx → molecules/alert/Alert.spec.tsx} +12 -15
  287. package/src/molecules/alert/Alert.stories.tsx +39 -0
  288. package/src/{components/alert/alert.component.tsx → molecules/alert/Alert.tsx} +9 -8
  289. package/src/molecules/button/Button.stories.tsx +106 -0
  290. package/src/molecules/button/Button.tsx +54 -0
  291. package/src/{components/card/card.component.spec.tsx → molecules/card/Card.spec.tsx} +3 -3
  292. package/src/{components/card/card.stories.tsx → molecules/card/Card.stories.tsx} +9 -4
  293. package/src/{components/card/card.component.tsx → molecules/card/Card.tsx} +1 -2
  294. package/src/{components/form-control/formControl.component.spec.tsx → molecules/forms/form-control/FormControl.spec.tsx} +9 -9
  295. package/src/molecules/forms/form-control/FormControl.stories.tsx +58 -0
  296. package/src/molecules/forms/form-control/FormControl.tsx +86 -0
  297. package/src/molecules/forms/input-tags/InputTags.interface.ts +9 -0
  298. package/src/molecules/forms/input-tags/InputTags.tsx +30 -0
  299. package/src/molecules/forms/input-tags/all.ts +6 -0
  300. package/src/molecules/forms/input-tags/components/ChoicesTags.stories.tsx +110 -0
  301. package/src/molecules/forms/input-tags/components/ChoicesTags.tsx +72 -0
  302. package/src/molecules/forms/input-tags/components/ReactTags.stories.tsx +140 -0
  303. package/src/molecules/forms/input-tags/components/ReactTags.tsx +38 -0
  304. package/src/molecules/forms/input-text/InputText.interface.ts +5 -0
  305. package/src/{components/input-text/inputText.component.spec.tsx → molecules/forms/input-text/InputText.spec.tsx} +8 -8
  306. package/src/molecules/forms/input-text/InputText.stories.tsx +179 -0
  307. package/src/molecules/forms/input-text/InputText.tsx +63 -0
  308. package/src/molecules/forms/select/Select.interface.ts +45 -0
  309. package/src/molecules/forms/select/Select.tsx +28 -0
  310. package/src/molecules/forms/select/all.ts +7 -0
  311. package/src/molecules/forms/select/components/ChoicesSelect.stories.tsx +332 -0
  312. package/src/molecules/forms/select/components/ChoicesSelect.tsx +159 -0
  313. package/src/molecules/forms/select/components/HtmlSelect.stories.tsx +305 -0
  314. package/src/molecules/forms/select/components/HtmlSelect.tsx +54 -0
  315. package/src/molecules/forms/select/components/ReactSelect.stories.tsx +287 -0
  316. package/src/molecules/forms/select/components/ReactSelect.tsx +60 -0
  317. package/src/molecules/forms/select/components/choices.template.tsx +38 -0
  318. package/src/molecules/forms/select/hooks/useOptions.spec.ts +154 -0
  319. package/src/molecules/forms/select/hooks/useOptions.ts +53 -0
  320. package/src/{components/loader/loader.component.spec.tsx → molecules/loader/Loader.spec.tsx} +4 -4
  321. package/src/molecules/loader/Loader.stories.tsx +43 -0
  322. package/src/{components/loader/loader.component.tsx → molecules/loader/Loader.tsx} +3 -11
  323. package/src/molecules/modal/Modal.spec.tsx +203 -0
  324. package/src/molecules/modal/Modal.stories.tsx +178 -0
  325. package/src/{components/modal/modal.component.tsx → molecules/modal/Modal.tsx} +1 -1
  326. package/src/{components/pagination/pagination.component.spec.tsx → molecules/pagination/Pagination.spec.tsx} +27 -22
  327. package/src/molecules/pagination/Pagination.stories.tsx +99 -0
  328. package/src/{components/pagination/pagination.component.tsx → molecules/pagination/Pagination.tsx} +34 -47
  329. package/src/molecules/pagination/PaginationButton.tsx +30 -0
  330. package/src/molecules/pagination/all.ts +3 -0
  331. package/src/molecules/table/Table.stories.tsx +272 -0
  332. package/src/molecules/table/Table.tsx +100 -0
  333. package/src/molecules/table/all.ts +16 -0
  334. package/src/molecules/table/components/DefaultArrowSort.tsx +26 -0
  335. package/src/molecules/table/components/DefaultCell.tsx +22 -0
  336. package/src/molecules/table/components/DefaultCellFooter.tsx +16 -0
  337. package/src/molecules/table/components/DefaultCellHeader.tsx +42 -0
  338. package/src/molecules/table/components/DefaultCellOperations.tsx +42 -0
  339. package/src/molecules/table/components/DefaultFilter.tsx +42 -0
  340. package/src/molecules/table/components/DefaultOperationButton.tsx +40 -0
  341. package/src/molecules/table/filters/Filters.d.ts +31 -0
  342. package/src/molecules/table/filters/RangeFilter.tsx +43 -0
  343. package/src/molecules/table/filters/SelectFilter.tsx +47 -0
  344. package/src/molecules/table/filters/TextFieldFilter.tsx +36 -0
  345. package/src/molecules/table/hooks/useTable.tsx +75 -0
  346. package/src/molecules/table/hooks/useUniqValues.tsx +10 -0
  347. package/src/molecules/table/interfaces/extends.ts +18 -0
  348. package/src/molecules/table/utils/mapFormToColumns.tsx +74 -0
  349. package/src/{components/tabs/tabs.component.spec.tsx → molecules/tabs/Tabs.spec.tsx} +6 -6
  350. package/src/molecules/tabs/Tabs.stories.tsx +141 -0
  351. package/src/{components/tabs/tabs.component.tsx → molecules/tabs/Tabs.tsx} +1 -1
  352. package/src/organisms/__fixtures__/WrapComponent.tsx +11 -0
  353. package/src/organisms/__fixtures__/form-actions.json +240 -0
  354. package/src/organisms/__fixtures__/form-firstname.fixture.json +256 -0
  355. package/src/organisms/__fixtures__/form-wizard.fixture.json +2042 -0
  356. package/src/organisms/__fixtures__/form.fixture.json +2067 -0
  357. package/src/organisms/__fixtures__/useEditForm.tsx +84 -0
  358. package/src/organisms/__fixtures__/utils.ts +74 -0
  359. package/src/{components/form/form.component.spec.tsx → organisms/form/Form.spec.tsx} +6 -7
  360. package/src/organisms/form/Form.stories.tsx +698 -0
  361. package/src/organisms/form/Form.tsx +29 -0
  362. package/src/{components/form-access/formAccess.schema.ts → organisms/form/access/FormAccess.schema.ts} +4 -6
  363. package/src/{components/form-access/formAccess.stories.tsx → organisms/form/access/FormAccess.stories.tsx} +8 -2
  364. package/src/{components/form-access/formAccess.component.tsx → organisms/form/access/FormAccess.tsx} +16 -18
  365. package/src/{components/form-access/formAccess.utils.spec.ts → organisms/form/access/FormAccess.utils.spec.ts} +13 -7
  366. package/src/{components/form-access/formAccess.utils.ts → organisms/form/access/FormAccess.utils.ts} +23 -20
  367. package/src/{components/form-action/formAction.stories.tsx → organisms/form/action/FormAction.stories.tsx} +11 -13
  368. package/src/{components/form-action/formAction.component.tsx → organisms/form/action/FormAction.tsx} +8 -8
  369. package/src/organisms/form/builder/FormBuilder.stories.tsx +97 -0
  370. package/src/organisms/form/builder/FormBuilder.tsx +28 -0
  371. package/src/{components/form-edit/formEdit.reducer.ts → organisms/form/builder/FormEdit.reducer.ts} +6 -6
  372. package/src/{components/form-edit/formEdit.stories.tsx → organisms/form/builder/FormEdit.stories.tsx} +88 -44
  373. package/src/organisms/form/builder/FormEdit.tsx +75 -0
  374. package/src/organisms/form/builder/FormEditCtas.tsx +97 -0
  375. package/src/{components/form-edit/formParameters.component.tsx → organisms/form/builder/FormParameters.tsx} +29 -29
  376. package/src/organisms/form/builder/all.ts +17 -0
  377. package/src/organisms/form/builder/useFormBuilder.ts +143 -0
  378. package/src/{components/form-edit/useFormEdit.hook.ts → organisms/form/builder/useFormEdit.ts} +8 -8
  379. package/src/{components/form-settings/formSettings.component.spec.tsx → organisms/form/settings/FormSettings.component.spec.tsx} +3 -4
  380. package/src/{components/form-settings/formSettings.schema.ts → organisms/form/settings/FormSettings.schema.ts} +2 -2
  381. package/src/{components/form-settings/formSettings.stories.tsx → organisms/form/settings/FormSettings.stories.tsx} +10 -10
  382. package/src/{components/form-settings/formSettings.component.tsx → organisms/form/settings/FormSettings.tsx} +8 -9
  383. package/src/{components/form-settings/formSettings.utils.spec.ts → organisms/form/settings/FormSettings.utils.spec.ts} +1 -1
  384. package/src/{components/form-settings/formSettings.utils.ts → organisms/form/settings/FormSettings.utils.ts} +4 -4
  385. package/src/organisms/form/types.ts +8 -0
  386. package/src/organisms/form/useForm.ts +223 -0
  387. package/src/organisms/modal/RemoveModal.stories.tsx +59 -0
  388. package/src/{components/modal/removeModal.component.tsx → organisms/modal/RemoveModal.tsx} +3 -3
  389. package/src/{components/actions-table/actionsTable.component.spec.tsx → organisms/table/actions/ActionsTable.spec.tsx} +14 -11
  390. package/src/{components/actions-table/actionsTable.stories.tsx → organisms/table/actions/ActionsTable.stories.tsx} +22 -24
  391. package/src/{components/actions-table/actionsTable.component.tsx → organisms/table/actions/ActionsTable.tsx} +14 -21
  392. package/src/{components/forms-table/formsTable.stories.tsx → organisms/table/forms/FormsTable.stories.tsx} +24 -28
  393. package/src/organisms/table/forms/FormsTable.tsx +66 -0
  394. package/src/organisms/table/forms/components/FormsCell.tsx +53 -0
  395. package/src/{components/submissions-table/submissionsTable.stories.tsx → organisms/table/submissions/SubmissionsTable.stories.tsx} +28 -31
  396. package/src/organisms/table/submissions/SubmissionsTable.tsx +13 -0
  397. package/src/registries/components.ts +23 -0
  398. package/src/utils/iconClass.ts +3 -1
  399. package/tsconfig.app.json +11 -0
  400. package/tsconfig.json +10 -5
  401. package/tsconfig.node.json +9 -4
  402. package/tsconfig.spec.json +14 -0
  403. package/vite.config.mts +69 -0
  404. package/vitest.config.mts +21 -0
  405. package/.eslintignore +0 -13
  406. package/.eslintrc.js +0 -7
  407. package/coverage.json +0 -6
  408. package/dist/components/actions-table/actionsTable.component.d.ts +0 -11
  409. package/dist/components/actions-table/actionsTable.component.spec.d.ts +0 -1
  410. package/dist/components/actions-table/actionsTable.stories.d.ts +0 -40
  411. package/dist/components/alert/alert.component.d.ts +0 -6
  412. package/dist/components/alert/alert.component.spec.d.ts +0 -1
  413. package/dist/components/alert/alert.stories.d.ts +0 -15
  414. package/dist/components/card/card.component.spec.d.ts +0 -1
  415. package/dist/components/card/card.stories.d.ts +0 -16
  416. package/dist/components/form/form.component.d.ts +0 -63
  417. package/dist/components/form/form.component.spec.d.ts +0 -1
  418. package/dist/components/form/form.stories.d.ts +0 -6445
  419. package/dist/components/form/useForm.hook.d.ts +0 -60
  420. package/dist/components/form-access/formAccess.component.d.ts +0 -9
  421. package/dist/components/form-access/formAccess.schema.d.ts +0 -5
  422. package/dist/components/form-access/formAccess.stories.d.ts +0 -21
  423. package/dist/components/form-access/formAccess.utils.d.ts +0 -24
  424. package/dist/components/form-access/formAccess.utils.spec.d.ts +0 -1
  425. package/dist/components/form-action/formAction.component.d.ts +0 -9
  426. package/dist/components/form-action/formAction.stories.d.ts +0 -409
  427. package/dist/components/form-builder/formBuilder.component.d.ts +0 -53
  428. package/dist/components/form-builder/formBuilder.stories.d.ts +0 -5989
  429. package/dist/components/form-control/formControl.component.d.ts +0 -14
  430. package/dist/components/form-control/formControl.component.spec.d.ts +0 -1
  431. package/dist/components/form-control/formControl.stories.d.ts +0 -58
  432. package/dist/components/form-edit/formCtas.component.d.ts +0 -28
  433. package/dist/components/form-edit/formEdit.component.d.ts +0 -19
  434. package/dist/components/form-edit/formEdit.reducer.d.ts +0 -10
  435. package/dist/components/form-edit/formEdit.stories.d.ts +0 -396
  436. package/dist/components/form-edit/formParameters.component.d.ts +0 -34
  437. package/dist/components/form-settings/formSettings.component.spec.d.ts +0 -1
  438. package/dist/components/form-settings/formSettings.schema.d.ts +0 -2
  439. package/dist/components/form-settings/formSettings.stories.d.ts +0 -58
  440. package/dist/components/form-settings/formSettings.utils.d.ts +0 -8
  441. package/dist/components/form-settings/formSettings.utils.spec.d.ts +0 -1
  442. package/dist/components/forms-table/components/formCell.component.d.ts +0 -7
  443. package/dist/components/forms-table/formsTable.component.d.ts +0 -11
  444. package/dist/components/forms-table/formsTable.stories.d.ts +0 -117
  445. package/dist/components/index.d.ts +0 -26
  446. package/dist/components/input-tags/inputTags.component.d.ts +0 -19
  447. package/dist/components/input-tags/inputTags.stories.d.ts +0 -76
  448. package/dist/components/input-text/inputText.component.d.ts +0 -28
  449. package/dist/components/input-text/inputText.component.spec.d.ts +0 -1
  450. package/dist/components/input-text/inputText.stories.d.ts +0 -101
  451. package/dist/components/loader/loader.component.d.ts +0 -17
  452. package/dist/components/loader/loader.component.spec.d.ts +0 -1
  453. package/dist/components/loader/loader.stories.d.ts +0 -15
  454. package/dist/components/modal/modal.component.spec.d.ts +0 -1
  455. package/dist/components/modal/modal.stories.d.ts +0 -44
  456. package/dist/components/pagination/pagination.component.d.ts +0 -18
  457. package/dist/components/pagination/pagination.component.spec.d.ts +0 -1
  458. package/dist/components/pagination/pagination.stories.d.ts +0 -16
  459. package/dist/components/react-component/reactComponent.component.d.ts +0 -90
  460. package/dist/components/select/select.component.d.ts +0 -14
  461. package/dist/components/select/select.component.spec.d.ts +0 -1
  462. package/dist/components/select/select.stories.d.ts +0 -164
  463. package/dist/components/submissions-table/submissionsTable.component.d.ts +0 -7
  464. package/dist/components/submissions-table/submissionsTable.stories.d.ts +0 -649
  465. package/dist/components/table/components/defaultArrowSort.component.d.ts +0 -2
  466. package/dist/components/table/components/defaultCell.component.d.ts +0 -2
  467. package/dist/components/table/components/defaultCellHeader.component.d.ts +0 -6
  468. package/dist/components/table/components/defaultCellOperations.component.d.ts +0 -13
  469. package/dist/components/table/components/defaultCells.component.d.ts +0 -5
  470. package/dist/components/table/components/defaultOperationButton.component.d.ts +0 -14
  471. package/dist/components/table/components/defaultRow.component.d.ts +0 -12
  472. package/dist/components/table/components/dragNDropContainer.d.ts +0 -4
  473. package/dist/components/table/filters/defaultColumnFilter.component.d.ts +0 -6
  474. package/dist/components/table/filters/defaultColumnFilter.component.spec.d.ts +0 -1
  475. package/dist/components/table/filters/selectColumnFilter.component.d.ts +0 -11
  476. package/dist/components/table/filters/selectColumnFilter.component.spec.d.ts +0 -1
  477. package/dist/components/table/filters/sliderColumnFilter.component.d.ts +0 -3
  478. package/dist/components/table/hooks/useCustomTable.hook.d.ts +0 -128
  479. package/dist/components/table/hooks/useDragnDropRow.hook.d.ts +0 -274
  480. package/dist/components/table/hooks/useOperations.hook.d.ts +0 -11
  481. package/dist/components/table/index.d.ts +0 -15
  482. package/dist/components/table/table.component.d.ts +0 -3
  483. package/dist/components/table/table.stories.d.ts +0 -71
  484. package/dist/components/table/utils/mapFormToColumns.d.ts +0 -3
  485. package/dist/components/table/utils/swapElements.d.ts +0 -1
  486. package/dist/components/table/utils/swapElements.spec.d.ts +0 -1
  487. package/dist/components/tabs/tabs.component.spec.d.ts +0 -1
  488. package/dist/components/tabs/tabs.component.stories.d.ts +0 -47
  489. package/dist/index.modern.js +0 -7437
  490. package/dist/index.modern.js.map +0 -1
  491. package/dist/interfaces/ActionSchema.d.ts +0 -23
  492. package/dist/interfaces/Submission.d.ts +0 -5
  493. package/dist/setupTests.d.ts +0 -1
  494. package/dist/utils/callLast.d.ts +0 -1
  495. package/jest.config.js +0 -6
  496. package/src/components/alert/alert.stories.tsx +0 -18
  497. package/src/components/form/form.component.tsx +0 -73
  498. package/src/components/form/form.stories.tsx +0 -253
  499. package/src/components/form/useForm.hook.ts +0 -216
  500. package/src/components/form-builder/formBuilder.component.tsx +0 -195
  501. package/src/components/form-builder/formBuilder.stories.tsx +0 -3667
  502. package/src/components/form-control/formControl.component.tsx +0 -58
  503. package/src/components/form-control/formControl.stories.tsx +0 -65
  504. package/src/components/form-edit/formCtas.component.tsx +0 -106
  505. package/src/components/form-edit/formEdit.component.tsx +0 -60
  506. package/src/components/forms-table/components/formCell.component.tsx +0 -48
  507. package/src/components/forms-table/formsTable.component.tsx +0 -42
  508. package/src/components/index.ts +0 -26
  509. package/src/components/input-tags/inputTags.component.tsx +0 -58
  510. package/src/components/input-tags/inputTags.stories.tsx +0 -97
  511. package/src/components/input-text/inputText.component.tsx +0 -85
  512. package/src/components/input-text/inputText.stories.tsx +0 -126
  513. package/src/components/loader/loader.stories.tsx +0 -18
  514. package/src/components/modal/modal.component.spec.tsx +0 -79
  515. package/src/components/modal/modal.stories.tsx +0 -192
  516. package/src/components/pagination/pagination.stories.tsx +0 -40
  517. package/src/components/react-component/reactComponent.component.tsx +0 -197
  518. package/src/components/select/select.component.spec.tsx +0 -85
  519. package/src/components/select/select.component.tsx +0 -88
  520. package/src/components/select/select.stories.tsx +0 -173
  521. package/src/components/submissions-table/submissionsTable.component.tsx +0 -16
  522. package/src/components/table/components/defaultArrowSort.component.tsx +0 -12
  523. package/src/components/table/components/defaultCell.component.tsx +0 -15
  524. package/src/components/table/components/defaultCellHeader.component.tsx +0 -19
  525. package/src/components/table/components/defaultCellOperations.component.tsx +0 -39
  526. package/src/components/table/components/defaultCells.component.tsx +0 -31
  527. package/src/components/table/components/defaultOperationButton.component.tsx +0 -53
  528. package/src/components/table/components/defaultRow.component.tsx +0 -51
  529. package/src/components/table/components/dragNDropContainer.tsx +0 -7
  530. package/src/components/table/filters/defaultColumnFilter.component.spec.tsx +0 -34
  531. package/src/components/table/filters/defaultColumnFilter.component.tsx +0 -39
  532. package/src/components/table/filters/selectColumnFilter.component.spec.tsx +0 -69
  533. package/src/components/table/filters/selectColumnFilter.component.tsx +0 -52
  534. package/src/components/table/filters/sliderColumnFilter.component.tsx +0 -31
  535. package/src/components/table/hooks/useCustomTable.hook.tsx +0 -272
  536. package/src/components/table/hooks/useDragnDropRow.hook.ts +0 -80
  537. package/src/components/table/hooks/useOperations.hook.tsx +0 -39
  538. package/src/components/table/index.ts +0 -15
  539. package/src/components/table/table.component.tsx +0 -100
  540. package/src/components/table/table.stories.tsx +0 -120
  541. package/src/components/table/utils/mapFormToColumns.tsx +0 -34
  542. package/src/components/table/utils/swapElements.spec.ts +0 -7
  543. package/src/components/table/utils/swapElements.ts +0 -7
  544. package/src/components/tabs/tabs.component.stories.tsx +0 -127
  545. package/src/interfaces/ActionSchema.ts +0 -26
  546. package/src/interfaces/Submission.ts +0 -5
  547. package/src/setupTests.tsx +0 -5
  548. package/src/utils/callLast.ts +0 -12
  549. /package/src/{components → molecules}/__fixtures__/form-actions.json +0 -0
  550. /package/src/{components → molecules}/__fixtures__/form.fixture.json +0 -0
  551. /package/src/{components/table → molecules/pagination}/utils/getPageNumbers.ts +0 -0
  552. /package/src/{components → organisms}/__fixtures__/form-schema.json +0 -0
  553. /package/src/{components → organisms}/__fixtures__/form-submissions.json +0 -0
  554. /package/src/{components/actions-table → organisms/table/actions}/__fixtures__/data.json +0 -0
@@ -0,0 +1,72 @@
1
+ import { jsxs as e, jsx as t } from "react/jsx-runtime";
2
+ import { c as i } from "../../chunks/index.js";
3
+ import { iconClass as p } from "../../utils/iconClass.js";
4
+ function N({ icon: c, back: s, onClick: r, isActive: b, reverse: l, children: o, className: n, after: _ }) {
5
+ return /* @__PURE__ */ e(
6
+ "div",
7
+ {
8
+ title: "button-wrapper",
9
+ className: i("tw-tabs__button-wrapper", b ? "-active" : "", s ? "-back" : "", n),
10
+ children: [
11
+ /* @__PURE__ */ e(
12
+ "button",
13
+ {
14
+ title: "button-tab",
15
+ className: i("tw-tabs__button", l ? "-reverse" : "", b ? "-active" : "", s ? "-back" : ""),
16
+ onClick: r,
17
+ children: [
18
+ c && /* @__PURE__ */ t("i", { className: i(p(void 0, c), "tw-tabs__button-icon") }),
19
+ /* @__PURE__ */ t("span", { className: "tw-tabs__button-label", children: o }),
20
+ _
21
+ ]
22
+ }
23
+ ),
24
+ /* @__PURE__ */ t("div", { className: i("tw-tabs__button-border", b ? "-active" : "") })
25
+ ]
26
+ }
27
+ );
28
+ }
29
+ function x({
30
+ style: c,
31
+ current: s,
32
+ items: r = [],
33
+ children: b,
34
+ HeaderChildren: l,
35
+ AddButton: o,
36
+ Button: n = N,
37
+ className: _,
38
+ onClick: w,
39
+ i18n: m = (a) => a,
40
+ ...d
41
+ }) {
42
+ return /* @__PURE__ */ e("div", { "data-testid": "tabs-comp", className: `tw-tabs ${_}`, style: c, children: [
43
+ /* @__PURE__ */ e("div", { children: [
44
+ /* @__PURE__ */ t("nav", { className: "tw-tabs__header", children: /* @__PURE__ */ e("div", { className: "tw-tabs__header-wrapper", children: [
45
+ /* @__PURE__ */ t("div", { className: "tw-tabs__header-border" }),
46
+ r.filter((a) => a.label || a.icon).map((a, v) => /* @__PURE__ */ t(
47
+ n,
48
+ {
49
+ back: a.back,
50
+ isActive: (s == null ? void 0 : s.action) === a.action,
51
+ exact: a.exact,
52
+ onClick: () => {
53
+ w && w(a);
54
+ },
55
+ ...d,
56
+ ...a,
57
+ children: m(a.label || "")
58
+ },
59
+ v
60
+ )),
61
+ o && /* @__PURE__ */ t(o, { ...d, current: s })
62
+ ] }) }),
63
+ l && /* @__PURE__ */ t(l, { ...d, current: s })
64
+ ] }),
65
+ /* @__PURE__ */ t("div", { title: "tab-body", className: "tw-tabs__body", children: b })
66
+ ] });
67
+ }
68
+ export {
69
+ N as ButtonTab,
70
+ x as Tabs
71
+ };
72
+ //# 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 { PropsWithChildren } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport function ButtonTab({ icon, back, onClick, isActive, reverse, children, className, after }: PropsWithChildren<any>) {\n return (\n <div\n title={\"button-wrapper\"}\n className={classnames(\"tw-tabs__button-wrapper\", isActive ? \"-active\" : \"\", back ? \"-back\" : \"\", className)}\n >\n <button\n title={\"button-tab\"}\n className={classnames(\"tw-tabs__button\", reverse ? \"-reverse\" : \"\", isActive ? \"-active\" : \"\", back ? \"-back\" : \"\")}\n onClick={onClick}\n >\n {icon && <i className={classnames(iconClass(undefined, icon), \"tw-tabs__button-icon\")} />}\n <span className={\"tw-tabs__button-label\"}>{children}</span>\n {after}\n </button>\n <div className={classnames(\"tw-tabs__button-border\", isActive ? \"-active\" : \"\")} />\n </div>\n );\n}\n\nexport interface TabsItemProps extends Record<string, any> {\n label?: string;\n icon?: string;\n}\n\nexport interface TabsProps extends Record<string, any> {\n headerChildren?: any;\n AddButton?: any;\n current?: TabsItemProps;\n items?: TabsItemProps[];\n style?: any;\n className?: string;\n reverse?: boolean;\n Button?: any;\n onClick?: (item: TabsItemProps) => void;\n i18n?: (f: string) => string;\n}\n\nexport function Tabs({\n style,\n current,\n items = [],\n children,\n HeaderChildren,\n AddButton,\n Button = ButtonTab,\n className,\n onClick,\n i18n = (f) => f,\n ...additionalProps\n}: PropsWithChildren<TabsProps>) {\n return (\n <div data-testid={\"tabs-comp\"} className={`tw-tabs ${className}`} style={style}>\n <div>\n <nav className='tw-tabs__header'>\n <div className='tw-tabs__header-wrapper'>\n <div className='tw-tabs__header-border' />\n {items\n .filter((item) => item.label || item.icon)\n .map((item, index) => {\n return (\n <Button\n key={index}\n back={item.back}\n isActive={current?.action === item.action}\n exact={item.exact}\n onClick={() => {\n onClick && onClick(item);\n }}\n {...additionalProps}\n {...item}\n >\n {i18n(item.label || \"\")}\n </Button>\n );\n })}\n {AddButton && <AddButton {...additionalProps} current={current} />}\n </div>\n </nav>\n {HeaderChildren && <HeaderChildren {...additionalProps} current={current} />}\n </div>\n <div title={\"tab-body\"} className={\"tw-tabs__body\"}>\n {children}\n </div>\n </div>\n );\n}\n"],"names":["ButtonTab","icon","back","onClick","isActive","reverse","children","className","after","jsxs","classnames","jsx","iconClass","Tabs","style","current","items","HeaderChildren","AddButton","Button","i18n","f","additionalProps","item","index"],"mappings":";;;AAKgB,SAAAA,EAAU,EAAE,MAAAC,GAAM,MAAAC,GAAM,SAAAC,GAAS,UAAAC,GAAU,SAAAC,GAAS,UAAAC,GAAU,WAAAC,GAAW,OAAAC,KAAiC;AAEtH,SAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP,WAAWC,EAAW,2BAA2BN,IAAW,YAAY,IAAIF,IAAO,UAAU,IAAIK,CAAS;AAAA,MAE1G,UAAA;AAAA,QAAA,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,YACP,WAAWC,EAAW,mBAAmBL,IAAU,aAAa,IAAID,IAAW,YAAY,IAAIF,IAAO,UAAU,EAAE;AAAA,YAClH,SAAAC;AAAA,YAEC,UAAA;AAAA,cAAQF,KAAA,gBAAAU,EAAC,OAAE,WAAWD,EAAWE,EAAU,QAAWX,CAAI,GAAG,sBAAsB,EAAG,CAAA;AAAA,cACtF,gBAAAU,EAAA,QAAA,EAAK,WAAW,yBAA0B,UAAAL,EAAS,CAAA;AAAA,cACnDE;AAAA,YAAA;AAAA,UAAA;AAAA,QACH;AAAA,QACA,gBAAAG,EAAC,SAAI,WAAWD,EAAW,0BAA0BN,IAAW,YAAY,EAAE,EAAG,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACnF;AAEJ;AAoBO,SAASS,EAAK;AAAA,EACnB,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC,IAAQ,CAAC;AAAA,EACT,UAAAV;AAAA,EACA,gBAAAW;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC,IAASnB;AAAA,EACT,WAAAO;AAAA,EACA,SAAAJ;AAAA,EACA,MAAAiB,IAAO,CAACC,MAAMA;AAAA,EACd,GAAGC;AACL,GAAiC;AAE7B,SAAA,gBAAAb,EAAC,SAAI,eAAa,aAAa,WAAW,WAAWF,CAAS,IAAI,OAAAO,GAChE,UAAA;AAAA,IAAA,gBAAAL,EAAC,OACC,EAAA,UAAA;AAAA,MAAA,gBAAAE,EAAC,SAAI,WAAU,mBACb,UAAC,gBAAAF,EAAA,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,QAAC,gBAAAE,EAAA,OAAA,EAAI,WAAU,yBAAyB,CAAA;AAAA,QACvCK,EACE,OAAO,CAACO,MAASA,EAAK,SAASA,EAAK,IAAI,EACxC,IAAI,CAACA,GAAMC,MAER,gBAAAb;AAAA,UAACQ;AAAA,UAAA;AAAA,YAEC,MAAMI,EAAK;AAAA,YACX,WAAUR,KAAA,gBAAAA,EAAS,YAAWQ,EAAK;AAAA,YACnC,OAAOA,EAAK;AAAA,YACZ,SAAS,MAAM;AACb,cAAApB,KAAWA,EAAQoB,CAAI;AAAA,YACzB;AAAA,YACC,GAAGD;AAAA,YACH,GAAGC;AAAA,YAEH,UAAAH,EAAKG,EAAK,SAAS,EAAE;AAAA,UAAA;AAAA,UAVjBC;AAAA,QAWP,CAEH;AAAA,QACFN,KAAa,gBAAAP,EAACO,GAAW,EAAA,GAAGI,GAAiB,SAAAP,EAAkB,CAAA;AAAA,MAAA,EAAA,CAClE,EACF,CAAA;AAAA,MACCE,KAAkB,gBAAAN,EAACM,GAAgB,EAAA,GAAGK,GAAiB,SAAAP,EAAkB,CAAA;AAAA,IAAA,GAC5E;AAAA,sBACC,OAAI,EAAA,OAAO,YAAY,WAAW,iBAChC,UAAAT,EACH,CAAA;AAAA,EAAA,GACF;AAEJ;"}
@@ -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;"}
@@ -0,0 +1,9 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { FormOptions, FormType } from '../../../interfaces';
3
+ export interface FormAccessProps {
4
+ form: Partial<FormType>;
5
+ roles: any;
6
+ onSubmit?: Function;
7
+ options?: FormOptions;
8
+ }
9
+ export declare function FormAccess(props: PropsWithChildren<FormAccessProps>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,94 @@
1
+ import { jsxs as a, jsx as e, Fragment as y } from "react/jsx-runtime";
2
+ import { useMemo as f, useState as g, useCallback as A, useEffect as N } from "react";
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
+ function T({ form: s, roles: r, onSubmit: l, options: t }) {
7
+ const o = f(() => S(r), [r]), [i, n] = g(() => b(s, o)), m = A(
8
+ (c, h) => {
9
+ x(c, h, i, n);
10
+ },
11
+ [i]
12
+ );
13
+ return N(() => {
14
+ const c = b(s, o);
15
+ s != null && s._id && (p("access", i.access, c) || p("submissionAccess", i.submissionAccess, c)) && n(c);
16
+ }, [s == null ? void 0 : s._id]), {
17
+ options: t,
18
+ form: o,
19
+ type: s.type,
20
+ submissions: i,
21
+ onChange: m,
22
+ onSubmit: () => {
23
+ l && l(F(s, i));
24
+ }
25
+ };
26
+ }
27
+ function w({ name: s, form: r, submissions: l, options: t, onChange: o, onSubmit: i, children: n }) {
28
+ const [m, c] = g(!0);
29
+ return /* @__PURE__ */ a(y, { children: [
30
+ /* @__PURE__ */ e(
31
+ v,
32
+ {
33
+ form: r[s],
34
+ submission: l[s],
35
+ onChange: ({ data: h, isValid: u }) => {
36
+ u && o(s, { data: h }), c(u);
37
+ },
38
+ options: t
39
+ }
40
+ ),
41
+ /* @__PURE__ */ e("button", { disabled: !m, className: "mt-5 btn btn-primary", onClick: i, children: "Save access" }),
42
+ n,
43
+ /* @__PURE__ */ e("div", { className: "alert alert-warning mt-5", children: "Elevated permissions allow users to access and modify other user's entities. Assign with caution." })
44
+ ] });
45
+ }
46
+ function O(s) {
47
+ const { type: r, form: l, submissions: t, options: o, onChange: i, onSubmit: n } = T(s);
48
+ return /* @__PURE__ */ a("div", { children: [
49
+ s.children,
50
+ /* @__PURE__ */ a("div", { className: "flex mb-5", children: [
51
+ /* @__PURE__ */ e(d, { label: "Manage submission access", className: "flex-1", children: /* @__PURE__ */ e(
52
+ w,
53
+ {
54
+ name: "submissionAccess",
55
+ form: l,
56
+ submissions: t,
57
+ onChange: i,
58
+ onSubmit: n,
59
+ options: o,
60
+ children: s.children
61
+ }
62
+ ) }),
63
+ /* @__PURE__ */ e("div", { className: "w-1/4 pl-4", children: /* @__PURE__ */ a(d, { label: "About Submission Data Permissions", children: [
64
+ /* @__PURE__ */ e("p", { children: "Submission Data Permissions allow you to control who can create, view, and modify form submission data." }),
65
+ /* @__PURE__ */ a("ul", { className: "mt-5 pl-7 list-disc", children: [
66
+ /* @__PURE__ */ a("li", { className: "pb-2", children: [
67
+ /* @__PURE__ */ e("strong", { children: "Own Permissions" }),
68
+ " - These permissions apply if the user is the original creator of the submission data and is listed as the owner of the submission in submission.owner. This allows users to create and edit their own submission data without seeing other user's data."
69
+ ] }),
70
+ /* @__PURE__ */ a("li", { children: [
71
+ /* @__PURE__ */ e("strong", { children: "All Permissions" }),
72
+ " - These permissions apply to all submission data regardless of who owns it."
73
+ ] })
74
+ ] })
75
+ ] }) })
76
+ ] }),
77
+ /* @__PURE__ */ a("div", { className: "flex mb-5", children: [
78
+ /* @__PURE__ */ e(d, { label: `Manage ${r} definition access`, className: "flex-1", children: /* @__PURE__ */ e(w, { name: "access", form: l, submissions: t, onChange: i, onSubmit: n, options: o, children: s.children }) }),
79
+ /* @__PURE__ */ e("div", { className: "w-1/4 pl-4", children: /* @__PURE__ */ a(d, { label: "About Form Definition Access", children: [
80
+ /* @__PURE__ */ e("p", { children: "These permissions allow you to give access to a single form's JSON definition so they can render the form." }),
81
+ /* @__PURE__ */ e("p", { children: "Typically you will want to allow all of your roles to be able to Read the form definition." }),
82
+ /* @__PURE__ */ a("p", { children: [
83
+ "Each form also has an owner at ",
84
+ /* @__PURE__ */ e("strong", { children: "form.owner" }),
85
+ " which is the user who created the form. In some applications users are allowed to create their own forms. In those cases it is helpful to have Owner based permissions as well."
86
+ ] })
87
+ ] }) })
88
+ ] })
89
+ ] });
90
+ }
91
+ export {
92
+ O as FormAccess
93
+ };
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;
@@ -0,0 +1,164 @@
1
+ function s({ label: e, key: o, description: i, choices: l, data: a }) {
2
+ return {
3
+ label: e,
4
+ key: o,
5
+ description: i,
6
+ type: "select",
7
+ labelPosition: "top",
8
+ widget: "choicesjs",
9
+ placeholder: "Select roles...",
10
+ tooltip: "",
11
+ multiple: !0,
12
+ dataSrc: "values",
13
+ defaultValue: "",
14
+ data: {
15
+ values: l
16
+ },
17
+ template: "<span>{{ item.label }}</span>",
18
+ searchEnabled: !0,
19
+ selectThreshold: 0,
20
+ validate: {
21
+ required: !1,
22
+ custom: "",
23
+ customPrivate: !1
24
+ },
25
+ values: a
26
+ };
27
+ }
28
+ function t(e, o = !0) {
29
+ return '<span class="text-sm">' + e + "</span> " + (o ? '<hr class="mt-6 mb-5 border-gray-200 mx-20"/>' : "");
30
+ }
31
+ function n({ choices: e }) {
32
+ return {
33
+ description: "<strong>Elevated permissions allow users to access and modify other user's entities. Assign with caution.</strong>",
34
+ components: [
35
+ s({
36
+ key: "create_own",
37
+ label: '<h4 class="text-gray-800">Create Own Submissions</h4>',
38
+ description: t(
39
+ "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."
40
+ ),
41
+ choices: e
42
+ }),
43
+ s({
44
+ key: "create_all",
45
+ label: '<h4 class="text-gray-800">Create All Submissions</h4>',
46
+ description: t(
47
+ '<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.'
48
+ ),
49
+ choices: e
50
+ }),
51
+ s({
52
+ key: "read_own",
53
+ label: '<h4 class="text-gray-800">Read Own Submissions</h4>',
54
+ description: t(
55
+ "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."
56
+ ),
57
+ choices: e
58
+ }),
59
+ s({
60
+ key: "read_all",
61
+ label: '<h4 class="text-gray-800">Read All Submissions</h4>',
62
+ description: t(
63
+ '<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.'
64
+ ),
65
+ choices: e
66
+ }),
67
+ s({
68
+ key: "update_own",
69
+ label: '<h4 class="text-gray-800">Update Own Submissions</h4>',
70
+ description: t(
71
+ "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."
72
+ ),
73
+ choices: e
74
+ }),
75
+ s({
76
+ key: "update_all",
77
+ label: '<h4 class="text-gray-800">Update All Submissions</h4>',
78
+ description: t(
79
+ '<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.'
80
+ ),
81
+ choices: e
82
+ }),
83
+ s({
84
+ key: "delete_own",
85
+ label: '<h4 class="text-gray-800">Delete Own Submissions</h4>',
86
+ description: t(
87
+ "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."
88
+ ),
89
+ choices: e
90
+ }),
91
+ s({
92
+ key: "delete_all",
93
+ label: '<h4 class="text-gray-800">Delete All Submissions</h4>',
94
+ description: t(
95
+ '<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.',
96
+ !1
97
+ ),
98
+ choices: e
99
+ })
100
+ ]
101
+ };
102
+ }
103
+ function r({ choices: e }) {
104
+ return {
105
+ description: "<strong>Elevated permissions allow users to access and modify other user's entities. Assign with caution.</strong>",
106
+ components: [
107
+ s({
108
+ key: "read_own",
109
+ label: '<h4 class="text-gray-800">Read Form Definition (Restricted to owner)</h4>',
110
+ description: t(
111
+ "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."
112
+ ),
113
+ choices: e
114
+ }),
115
+ s({
116
+ key: "read_all",
117
+ label: "<h4>Read Form Definition</h4>",
118
+ description: t(
119
+ '<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.'
120
+ ),
121
+ choices: e
122
+ }),
123
+ s({
124
+ key: "update_own",
125
+ label: '<h4 class="text-gray-800">Update Form Definition (Restricted to owner)</h4>',
126
+ description: t(
127
+ "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."
128
+ ),
129
+ choices: e
130
+ }),
131
+ s({
132
+ key: "update_all",
133
+ label: '<h4 class="text-gray-800">Update Form Definition</h4>',
134
+ description: t(
135
+ '<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.'
136
+ ),
137
+ choices: e
138
+ }),
139
+ s({
140
+ key: "delete_own",
141
+ label: '<h4 class="text-gray-800">Delete Form Definition (Restricted to owner)</h4>',
142
+ description: t(
143
+ "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."
144
+ ),
145
+ choices: e
146
+ }),
147
+ s({
148
+ key: "delete_all",
149
+ label: '<h4 class="text-gray-800">Delete Form Definition</h4>',
150
+ description: t(
151
+ '<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.',
152
+ !1
153
+ ),
154
+ choices: e
155
+ })
156
+ ]
157
+ };
158
+ }
159
+ export {
160
+ r as getAccessPermissionForm,
161
+ s as getRoleComponent,
162
+ n as getSubmissionPermissionForm
163
+ };
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;
@@ -0,0 +1,68 @@
1
+ import r from "lodash/cloneDeep";
2
+ import i from "lodash/isEqual";
3
+ import u from "lodash/noop";
4
+ import { getAccessPermissionForm as m, getSubmissionPermissionForm as d } from "./FormAccess.schema.js";
5
+ function f(e) {
6
+ return Object.values(e).map((s) => ({
7
+ label: s.title || "",
8
+ value: s._id || ""
9
+ }));
10
+ }
11
+ function o(e, s = []) {
12
+ const c = Object.values(s).reduce((t, n) => (t[n.type] = n.roles, t), {});
13
+ return (e || []).filter(Boolean).reduce((t, n) => ({
14
+ ...t,
15
+ [n]: c[n] || []
16
+ }), {});
17
+ }
18
+ function a(e) {
19
+ const s = [];
20
+ return Object.entries(e).forEach(([c, t]) => {
21
+ c !== "submit" && s.push({
22
+ type: c,
23
+ roles: t
24
+ });
25
+ }), s;
26
+ }
27
+ function g(e) {
28
+ const s = f(e), c = m({ choices: s }), t = d({ choices: s });
29
+ return {
30
+ access: c,
31
+ submissionAccess: t
32
+ };
33
+ }
34
+ function T(e, s) {
35
+ const c = (t) => t.map(({ key: n }) => n);
36
+ return {
37
+ access: {
38
+ data: o(c(s.access.components), e.access)
39
+ },
40
+ submissionAccess: {
41
+ data: o(c(s.submissionAccess.components), e.submissionAccess)
42
+ }
43
+ };
44
+ }
45
+ function j(e, s) {
46
+ return {
47
+ ...r(e),
48
+ access: a(s.access.data),
49
+ submissionAccess: a(s.submissionAccess.data)
50
+ };
51
+ }
52
+ function p(e, s, c) {
53
+ return !i(s.data, c[e].data);
54
+ }
55
+ function v(e, s, c, t = u) {
56
+ return p(e, s, c) && (c = {
57
+ ...c,
58
+ [e]: { data: s.data }
59
+ }, t(c)), c;
60
+ }
61
+ export {
62
+ T as dataAccessToSubmissions,
63
+ g as getFormAccess,
64
+ p as shouldUpdate,
65
+ j as submissionsToDataAccess,
66
+ v as updateSubmissions
67
+ };
68
+ //# sourceMappingURL=FormAccess.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormAccess.utils.js","sources":["../../../../src/organisms/form/access/FormAccess.utils.ts"],"sourcesContent":["import cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\nimport noop from \"lodash/noop\";\n\nimport type { ComponentType, FormType, RoleType, SubmissionType } from \"../../../interfaces\";\nimport { getAccessPermissionForm, getSubmissionPermissionForm } from \"./FormAccess.schema\";\n\nexport interface Choice {\n label: string;\n value: string;\n}\n\nexport interface Access {\n roles: string[];\n type: string;\n}\n\nexport type AccessRolesType = Record<string, string[]>;\n\nexport type FormAccessType = {\n access: FormType;\n submissionAccess: FormType;\n};\n\nexport type SubmissionAccessType = {\n access: SubmissionType<AccessRolesType>;\n submissionAccess: SubmissionType<AccessRolesType>;\n};\n\nfunction rolesToChoices(roles: RoleType[]): Choice[] {\n return Object.values(roles).map((role) => {\n return {\n label: role.title || \"\",\n value: role._id || \"\"\n };\n });\n}\n\nfunction accessToHash(keys: (string | undefined)[] | undefined, access: Access[] = []): AccessRolesType {\n const hash = Object.values(access).reduce((o: any, role: any) => {\n o[role.type] = role.roles;\n return o;\n }, {});\n\n return ((keys || []).filter(Boolean) as any[]).reduce((data, key: string) => {\n return {\n ...data,\n [key]: hash[key] || []\n };\n }, {});\n}\n\nfunction hashToAccess(data: AccessRolesType) {\n const accessRoles: any[] = [];\n\n Object.entries(data).forEach(([accessType, roles]) => {\n if (accessType === \"submit\") {\n return;\n }\n accessRoles.push({\n type: accessType,\n roles\n });\n });\n\n return accessRoles;\n}\n\nexport function getFormAccess(roles: RoleType[]): FormAccessType {\n const choices = rolesToChoices(roles);\n const access = getAccessPermissionForm({ choices });\n const submissionAccess = getSubmissionPermissionForm({ choices });\n\n return {\n access,\n submissionAccess\n };\n}\n\nexport function dataAccessToSubmissions(form: Partial<FormType>, formAccess: FormAccessType): SubmissionAccessType {\n const getKeys = (components: ComponentType[]) => components.map(({ key }) => key);\n\n return {\n access: {\n data: accessToHash(getKeys(formAccess.access.components), form.access)\n },\n submissionAccess: {\n data: accessToHash(getKeys(formAccess.submissionAccess.components), form.submissionAccess)\n }\n };\n}\n\nexport function submissionsToDataAccess(form: Partial<FormType>, submissions: SubmissionAccessType): Partial<FormType> {\n return {\n ...cloneDeep(form),\n access: hashToAccess(submissions.access.data),\n submissionAccess: hashToAccess(submissions.submissionAccess.data)\n };\n}\n\nexport function shouldUpdate(type: string, submission: SubmissionType<AccessRolesType>, submissions: SubmissionAccessType) {\n return !isEqual(submission.data, (submissions as any)[type].data);\n}\n\nexport function updateSubmissions(\n type: string,\n submission: SubmissionType<AccessRolesType>,\n submissions: SubmissionAccessType,\n cb: Function = noop\n) {\n if (shouldUpdate(type, submission, submissions)) {\n submissions = {\n ...submissions,\n [type]: { data: submission.data }\n };\n cb(submissions);\n }\n\n return submissions;\n}\n"],"names":["rolesToChoices","roles","role","accessToHash","keys","access","hash","o","data","key","hashToAccess","accessRoles","accessType","getFormAccess","choices","getAccessPermissionForm","submissionAccess","getSubmissionPermissionForm","dataAccessToSubmissions","form","formAccess","getKeys","components","submissionsToDataAccess","submissions","cloneDeep","shouldUpdate","type","submission","isEqual","updateSubmissions","cb","noop"],"mappings":";;;;AA6BA,SAASA,EAAeC,GAA6B;AACnD,SAAO,OAAO,OAAOA,CAAK,EAAE,IAAI,CAACC,OACxB;AAAA,IACL,OAAOA,EAAK,SAAS;AAAA,IACrB,OAAOA,EAAK,OAAO;AAAA,EACrB,EACD;AACH;AAEA,SAASC,EAAaC,GAA0CC,IAAmB,IAAqB;AAChG,QAAAC,IAAO,OAAO,OAAOD,CAAM,EAAE,OAAO,CAACE,GAAQL,OAC/CK,EAAAL,EAAK,IAAI,IAAIA,EAAK,OACbK,IACN,EAAE;AAEI,UAAAH,KAAQ,CAAA,GAAI,OAAO,OAAO,EAAY,OAAO,CAACI,GAAMC,OACpD;AAAA,IACL,GAAGD;AAAA,IACH,CAACC,CAAG,GAAGH,EAAKG,CAAG,KAAK,CAAA;AAAA,EACtB,IACC,EAAE;AACP;AAEA,SAASC,EAAaF,GAAuB;AAC3C,QAAMG,IAAqB,CAAC;AAErB,gBAAA,QAAQH,CAAI,EAAE,QAAQ,CAAC,CAACI,GAAYX,CAAK,MAAM;AACpD,IAAIW,MAAe,YAGnBD,EAAY,KAAK;AAAA,MACf,MAAMC;AAAA,MACN,OAAAX;AAAA,IAAA,CACD;AAAA,EAAA,CACF,GAEMU;AACT;AAEO,SAASE,EAAcZ,GAAmC;AACzD,QAAAa,IAAUd,EAAeC,CAAK,GAC9BI,IAASU,EAAwB,EAAE,SAAAD,GAAS,GAC5CE,IAAmBC,EAA4B,EAAE,SAAAH,GAAS;AAEzD,SAAA;AAAA,IACL,QAAAT;AAAA,IACA,kBAAAW;AAAA,EACF;AACF;AAEgB,SAAAE,EAAwBC,GAAyBC,GAAkD;AAC3G,QAAAC,IAAU,CAACC,MAAgCA,EAAW,IAAI,CAAC,EAAE,KAAAb,EAAI,MAAMA,CAAG;AAEzE,SAAA;AAAA,IACL,QAAQ;AAAA,MACN,MAAMN,EAAakB,EAAQD,EAAW,OAAO,UAAU,GAAGD,EAAK,MAAM;AAAA,IACvE;AAAA,IACA,kBAAkB;AAAA,MAChB,MAAMhB,EAAakB,EAAQD,EAAW,iBAAiB,UAAU,GAAGD,EAAK,gBAAgB;AAAA,IAAA;AAAA,EAE7F;AACF;AAEgB,SAAAI,EAAwBJ,GAAyBK,GAAsD;AAC9G,SAAA;AAAA,IACL,GAAGC,EAAUN,CAAI;AAAA,IACjB,QAAQT,EAAac,EAAY,OAAO,IAAI;AAAA,IAC5C,kBAAkBd,EAAac,EAAY,iBAAiB,IAAI;AAAA,EAClE;AACF;AAEgB,SAAAE,EAAaC,GAAcC,GAA6CJ,GAAmC;AACzH,SAAO,CAACK,EAAQD,EAAW,MAAOJ,EAAoBG,CAAI,EAAE,IAAI;AAClE;AAEO,SAASG,EACdH,GACAC,GACAJ,GACAO,IAAeC,GACf;AACA,SAAIN,EAAaC,GAAMC,GAAYJ,CAAW,MAC9BA,IAAA;AAAA,IACZ,GAAGA;AAAA,IACH,CAACG,CAAI,GAAG,EAAE,MAAMC,EAAW,KAAK;AAAA,EAClC,GACAG,EAAGP,CAAW,IAGTA;AACT;"}
@@ -0,0 +1,9 @@
1
+ import { PropsWithChildren, ReactElement } from 'react';
2
+ import { ActionType, FormOptions, SubmissionType } from '../../../interfaces';
3
+ export interface FormActionProps {
4
+ actionInfo: Partial<ActionType>;
5
+ submission?: Partial<SubmissionType>;
6
+ onSubmit?: (submission: SubmissionType<ActionType>) => void;
7
+ options: FormOptions;
8
+ }
9
+ export declare function FormAction({ actionInfo, children, onSubmit, options, ...props }: PropsWithChildren<FormActionProps>): ReactElement;
@@ -0,0 +1,32 @@
1
+ import { jsxs as m, jsx as l } from "react/jsx-runtime";
2
+ import f from "formiojs/utils";
3
+ import { Form as d } from "../Form.js";
4
+ function n(t, s) {
5
+ return {
6
+ ...s,
7
+ ...t
8
+ };
9
+ }
10
+ function c({ action: t, ...s }) {
11
+ return f.eachComponent(s.components, (r) => {
12
+ const e = "";
13
+ r.type === "resourcefields" && (r.type = "select", r.label = r.title, r.dataSrc = "url", r.data = {
14
+ url: `${r.basePath}?type=resource${e}`
15
+ }, r.valueProperty = "_id", r.template = "<span>{{ item.title }}</span>", r.persistent = !0);
16
+ }), s;
17
+ }
18
+ function F({ actionInfo: t, children: s, onSubmit: r, options: e, ...i }) {
19
+ const { form: u, submission: a } = (() => {
20
+ const o = n(i.submission || {}, t.defaults);
21
+ return { form: c(t.settingsForm), submission: { data: o } };
22
+ })();
23
+ return /* @__PURE__ */ m("div", { children: [
24
+ s,
25
+ /* @__PURE__ */ l(d, { form: u, submission: a, onSubmit: r, options: e }),
26
+ s
27
+ ] });
28
+ }
29
+ export {
30
+ F as FormAction
31
+ };
32
+ //# sourceMappingURL=FormAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormAction.js","sources":["../../../../src/organisms/form/action/FormAction.tsx"],"sourcesContent":["import FormioUtils from \"formiojs/utils\";\nimport { PropsWithChildren, ReactElement } from \"react\";\n\nimport { ActionDefaultsType, ActionType, FormOptions, SubmissionType } from \"../../../interfaces\";\nimport { Form } from \"../../form/Form\";\n\nfunction mapData(options: any, defaults: ActionDefaultsType): any {\n return {\n ...defaults,\n ...options\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction mapSettingsForm({ action, ...settingsForm }: any): any {\n FormioUtils.eachComponent(settingsForm.components, (component: any) => {\n const resourceExclude = \"\";\n\n if (component.type === \"resourcefields\") {\n component.type = \"select\";\n component.label = component.title;\n component.dataSrc = \"url\";\n component.data = {\n url: `${component.basePath}?type=resource${resourceExclude}`\n };\n component.valueProperty = \"_id\";\n component.template = \"<span>{{ item.title }}</span>\";\n component.persistent = true;\n }\n });\n\n return settingsForm;\n}\n\nexport interface FormActionProps {\n actionInfo: Partial<ActionType>;\n submission?: Partial<SubmissionType>;\n onSubmit?: (submission: SubmissionType<ActionType>) => void;\n options: FormOptions;\n}\n\nexport function FormAction({ actionInfo, children, onSubmit, options, ...props }: PropsWithChildren<FormActionProps>): ReactElement {\n const { form, submission } = (() => {\n const submission = mapData(props.submission || {}, actionInfo.defaults!);\n const form = mapSettingsForm(actionInfo.settingsForm);\n\n return { form, submission: { data: submission } };\n })();\n\n return (\n <div>\n {children}\n\n <Form<ActionType> form={form} submission={submission} onSubmit={onSubmit} options={options} />\n\n {children}\n </div>\n );\n}\n"],"names":["mapData","options","defaults","mapSettingsForm","action","settingsForm","FormioUtils","component","resourceExclude","FormAction","actionInfo","children","onSubmit","props","form","submission","jsx","Form"],"mappings":";;;AAMA,SAASA,EAAQC,GAAcC,GAAmC;AACzD,SAAA;AAAA,IACL,GAAGA;AAAA,IACH,GAAGD;AAAA,EACL;AACF;AAGA,SAASE,EAAgB,EAAE,QAAAC,GAAQ,GAAGC,KAA0B;AAC9D,SAAAC,EAAY,cAAcD,EAAa,YAAY,CAACE,MAAmB;AACrE,UAAMC,IAAkB;AAEpB,IAAAD,EAAU,SAAS,qBACrBA,EAAU,OAAO,UACjBA,EAAU,QAAQA,EAAU,OAC5BA,EAAU,UAAU,OACpBA,EAAU,OAAO;AAAA,MACf,KAAK,GAAGA,EAAU,QAAQ,iBAAiBC,CAAe;AAAA,IAC5D,GACAD,EAAU,gBAAgB,OAC1BA,EAAU,WAAW,iCACrBA,EAAU,aAAa;AAAA,EACzB,CACD,GAEMF;AACT;AASgB,SAAAI,EAAW,EAAE,YAAAC,GAAY,UAAAC,GAAU,UAAAC,GAAU,SAAAX,GAAS,GAAGY,KAA2D;AAClI,QAAM,EAAE,MAAAC,GAAM,YAAAC,EAAW,KAAK,MAAM;AAClC,UAAMA,IAAaf,EAAQa,EAAM,cAAc,CAAC,GAAGH,EAAW,QAAS;AAGvE,WAAO,EAAE,MAFIP,EAAgBO,EAAW,YAAY,GAErC,YAAY,EAAE,MAAMK,IAAa;AAAA,EAAA,GAC/C;AAEH,2BACG,OACE,EAAA,UAAA;AAAA,IAAAJ;AAAA,IAEA,gBAAAK,EAAAC,GAAA,EAAiB,MAAAH,GAAY,YAAAC,GAAwB,UAAAH,GAAoB,SAAAX,GAAkB;AAAA,IAE3FU;AAAA,EAAA,GACH;AAEJ;"}
@@ -0,0 +1,7 @@
1
+ import { CSSProperties } from 'react';
2
+ import { UseFormBuilderProps } from './useFormBuilder';
3
+ export declare function FormBuilder({ className, style, ["data-testid"]: dataTestId, ...props }: UseFormBuilderProps & {
4
+ className?: string;
5
+ style?: CSSProperties;
6
+ ["data-testid"]?: string;
7
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { registerComponent as m } from "../../../registries/components.js";
3
+ import { useFormBuilder as l } from "./useFormBuilder.js";
4
+ function a({
5
+ className: o = "",
6
+ style: e = {},
7
+ ["data-testid"]: i = "formio-builder-container",
8
+ ...t
9
+ }) {
10
+ const d = l(t);
11
+ return /* @__PURE__ */ r("div", { style: e, className: o, "data-testid": i, children: /* @__PURE__ */ r("div", { ref: d, onClick: (n) => n.stopPropagation(), children: /* @__PURE__ */ r("div", {}) }) });
12
+ }
13
+ m("FormBuilder", a);
14
+ export {
15
+ a as FormBuilder
16
+ };
17
+ //# sourceMappingURL=FormBuilder.js.map