@gen-epix/ui-client-casedb 4.0.0 → 4.0.2

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 (393) hide show
  1. package/dist/@types/mui.d.ts +1 -1
  2. package/dist/@types/{ui-casedb.d.ts → ui-client-casedb.d.ts} +1 -1
  3. package/dist/_chunks/AddCasesToEventDialog.js +74 -74
  4. package/dist/_chunks/AddCasesToEventDialog.js.map +1 -1
  5. package/dist/_chunks/CaseContentForm.js +2 -2
  6. package/dist/_chunks/CaseContentForm.js.map +1 -1
  7. package/dist/_chunks/CaseDbDownloadUtil.js +40 -35
  8. package/dist/_chunks/CaseDbDownloadUtil.js.map +1 -1
  9. package/dist/_chunks/CaseInfoDialog.js +195 -195
  10. package/dist/_chunks/CaseInfoDialog.js.map +1 -1
  11. package/dist/_chunks/CaseSetInfoDialog.js +131 -131
  12. package/dist/_chunks/CaseSetInfoDialog.js.map +1 -1
  13. package/dist/_chunks/CaseTypeInfoDialog.js +63 -61
  14. package/dist/_chunks/CaseTypeInfoDialog.js.map +1 -1
  15. package/dist/_chunks/CasesAlreadyInCaseSetWarning.js +6 -6
  16. package/dist/_chunks/CasesAlreadyInCaseSetWarning.js.map +1 -1
  17. package/dist/_chunks/CompletCaseTypeLoader.js +3 -3
  18. package/dist/_chunks/CompletCaseTypeLoader.js.map +1 -1
  19. package/dist/_chunks/CreateEventDialogSuccessNotificationMessage.js +1 -1
  20. package/dist/_chunks/CreateEventDialogSuccessNotificationMessage.js.map +1 -1
  21. package/dist/_chunks/CustomTabPanel.js.map +1 -1
  22. package/dist/_chunks/Dashboard.js +399 -386
  23. package/dist/_chunks/Dashboard.js.map +1 -1
  24. package/dist/_chunks/DashboardStoreLoader.js +5 -5
  25. package/dist/_chunks/DashboardStoreLoader.js.map +1 -1
  26. package/dist/_chunks/DataCollectionAccessInfo.js +21 -21
  27. package/dist/_chunks/DataCollectionAccessInfo.js.map +1 -1
  28. package/dist/_chunks/EpiCurveUtil.js +4 -4
  29. package/dist/_chunks/EpiCurveUtil.js.map +1 -1
  30. package/dist/_chunks/EpiCurveWidget.js +189 -183
  31. package/dist/_chunks/EpiCurveWidget.js.map +1 -1
  32. package/dist/_chunks/FilterUtil.js +103 -101
  33. package/dist/_chunks/FilterUtil.js.map +1 -1
  34. package/dist/_chunks/FindSimilarCasesDialog.js +16 -16
  35. package/dist/_chunks/FindSimilarCasesDialog.js.map +1 -1
  36. package/dist/_chunks/FindSimilarCasesUtil.js +9 -9
  37. package/dist/_chunks/FindSimilarCasesUtil.js.map +1 -1
  38. package/dist/_chunks/HomePageTrends.js +8 -8
  39. package/dist/_chunks/HomePageTrends.js.map +1 -1
  40. package/dist/_chunks/LegendaItem.js +3 -3
  41. package/dist/_chunks/LegendaItem.js.map +1 -1
  42. package/dist/_chunks/LineListWidget.js +23 -21
  43. package/dist/_chunks/LineListWidget.js.map +1 -1
  44. package/dist/_chunks/PanelSeparator.js +374 -384
  45. package/dist/_chunks/PanelSeparator.js.map +1 -1
  46. package/dist/_chunks/Upload.js +222 -207
  47. package/dist/_chunks/Upload.js.map +1 -1
  48. package/dist/_chunks/UploadUtil.js +1970 -841
  49. package/dist/_chunks/UploadUtil.js.map +1 -1
  50. package/dist/_chunks/UserRightsDialog.js +12 -12
  51. package/dist/_chunks/UserRightsDialog.js.map +1 -1
  52. package/dist/_chunks/_MapCache.js +2 -2
  53. package/dist/_chunks/_baseGet.js +1 -1
  54. package/dist/_chunks/_baseGet.js.map +1 -1
  55. package/dist/_chunks/_baseIteratee.js +1 -1
  56. package/dist/_chunks/_baseIteratee.js.map +1 -1
  57. package/dist/_chunks/_setToString.js.map +1 -1
  58. package/dist/_chunks/{chunk-KS7C4IRE.js → chunk-BV7QT456.js} +330 -495
  59. package/dist/_chunks/chunk-BV7QT456.js.map +1 -0
  60. package/dist/_chunks/cloneDeep.js +11 -9
  61. package/dist/_chunks/cloneDeep.js.map +1 -1
  62. package/dist/_chunks/dashboardStore.js +259 -261
  63. package/dist/_chunks/dashboardStore.js.map +1 -1
  64. package/dist/_chunks/esm.js +2900 -2868
  65. package/dist/_chunks/esm.js.map +1 -1
  66. package/dist/_chunks/format.js +8 -8
  67. package/dist/_chunks/format.js.map +1 -1
  68. package/dist/_chunks/index.esm.js +919 -796
  69. package/dist/_chunks/index.esm.js.map +1 -1
  70. package/dist/_chunks/index.module.js +1 -1
  71. package/dist/_chunks/index.module.js.map +1 -1
  72. package/dist/_chunks/protectedTokens.js +79 -81
  73. package/dist/_chunks/protectedTokens.js.map +1 -1
  74. package/dist/_chunks/react.js +1 -1
  75. package/dist/_chunks/react.js.map +1 -1
  76. package/dist/_chunks/round.js +1 -1
  77. package/dist/_chunks/round.js.map +1 -1
  78. package/dist/_chunks/shallow.js +2 -2
  79. package/dist/_chunks/shallow.js.map +1 -1
  80. package/dist/_chunks/sync.js +198 -161
  81. package/dist/_chunks/sync.js.map +1 -1
  82. package/dist/_chunks/toDate.js +1 -1
  83. package/dist/_chunks/toDate.js.map +1 -1
  84. package/dist/_chunks/toString.js +1 -1
  85. package/dist/_chunks/toString.js.map +1 -1
  86. package/dist/_chunks/useUnit.js.map +1 -1
  87. package/dist/_chunks/vanilla.js +1 -1
  88. package/dist/_chunks/vanilla.js.map +1 -1
  89. package/dist/_chunks/yup.js +5 -5
  90. package/dist/_chunks/yup.js.map +1 -1
  91. package/dist/classes/filters/SelectionFilter.d.ts +2 -2
  92. package/dist/classes/filters/TreeFilter.d.ts +2 -2
  93. package/dist/classes/services/DataService/index.js +3 -3
  94. package/dist/classes/services/DataService/index.js.map +1 -1
  95. package/dist/classes/services/EventBusService/EventBusService.d.ts +1 -1
  96. package/dist/classes/services/EventBusService/index.js.map +1 -1
  97. package/dist/classes/services/LineListService/LineListServiceAbstract/index.js +1 -1
  98. package/dist/classes/services/LineListService/LineListServiceAbstract/index.js.map +1 -1
  99. package/dist/components/app/CaseDbApp/index.js +8 -5
  100. package/dist/components/app/CaseDbApp/index.js.map +1 -1
  101. package/dist/components/form/fields/ArrangementEditor/index.js +83 -83
  102. package/dist/components/form/fields/ArrangementEditor/index.js.map +1 -1
  103. package/dist/components/ui/AddCasesToEventDialog/AddCasesToEventDialog.d.ts +2 -2
  104. package/dist/components/ui/CaseContentFormDialog/CaseContentFormDialog.d.ts +2 -2
  105. package/dist/components/ui/CaseContentFormDialog/index.js +1 -1
  106. package/dist/components/ui/CaseContentFormDialog/index.js.map +1 -1
  107. package/dist/components/ui/CaseInfoDialog/CaseInfoDialog.d.ts +2 -2
  108. package/dist/components/ui/CaseSetInfoDialog/CaseSetInfoDialog.d.ts +2 -2
  109. package/dist/components/ui/CaseSummary/index.js +1 -1
  110. package/dist/components/ui/CaseSummary/index.js.map +1 -1
  111. package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoDialog.d.ts +2 -2
  112. package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoDialogContent.d.ts +1 -1
  113. package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoDialogWithLoader.d.ts +2 -2
  114. package/dist/components/ui/ContextMenu/index.js.map +1 -1
  115. package/dist/components/ui/CreateEventDialog/CreateEventDialog.d.ts +2 -2
  116. package/dist/components/ui/CreateEventDialog/index.js +9 -9
  117. package/dist/components/ui/CreateEventDialog/index.js.map +1 -1
  118. package/dist/components/ui/Dashboard/DashboardDownloadSidebarItem.d.ts +1 -1
  119. package/dist/components/ui/Dashboard/DashboardSettingsSidebarItem.d.ts +1 -1
  120. package/dist/components/ui/Dashboard/DashboardWidget.d.ts +1 -1
  121. package/dist/components/ui/DashboardEditCases/index.js +1 -1
  122. package/dist/components/ui/DashboardEditCases/index.js.map +1 -1
  123. package/dist/components/ui/FileSelector/index.js +46 -46
  124. package/dist/components/ui/FileSelector/index.js.map +1 -1
  125. package/dist/components/ui/FindSimilarCasesDialog/FindSimilarCasesDialog.d.ts +2 -2
  126. package/dist/components/ui/Grouping/index.js +50 -50
  127. package/dist/components/ui/Grouping/index.js.map +1 -1
  128. package/dist/components/ui/HistogramWidget/index.js +1 -1
  129. package/dist/components/ui/HistogramWidget/index.js.map +1 -1
  130. package/dist/components/ui/MapWidget/index.js +7 -3
  131. package/dist/components/ui/MapWidget/index.js.map +1 -1
  132. package/dist/components/ui/RemoveCasesFromEventDialog/RemoveCasesFromEventDialog.d.ts +2 -2
  133. package/dist/components/ui/RemoveCasesFromEventDialog/index.js +6 -6
  134. package/dist/components/ui/RemoveCasesFromEventDialog/index.js.map +1 -1
  135. package/dist/components/ui/RemoveFindSimilarCasesResultDialog/RemoveFindSimilarCasesResultDialog.d.ts +2 -2
  136. package/dist/components/ui/SequenceDownloadDialog/SequenceDownloadDialog.d.ts +2 -2
  137. package/dist/components/ui/SequenceDownloadDialog/index.js +22 -22
  138. package/dist/components/ui/SequenceDownloadDialog/index.js.map +1 -1
  139. package/dist/components/ui/TreeDescription/index.js.map +1 -1
  140. package/dist/components/ui/TreeWidget/index.js +11 -11
  141. package/dist/components/ui/TreeWidget/index.js.map +1 -1
  142. package/dist/components/ui/Upload/UploadCaseResultTable.d.ts +2 -2
  143. package/dist/components/ui/Upload/UploadEditColumnValuesDialog.d.ts +2 -2
  144. package/dist/components/ui/UserRightsDialog/UserRightsDialog.d.ts +2 -2
  145. package/dist/components/ui/UsersEffectiveRightsDetailsDialog/UsersEffectiveRightsDetailsDialog.d.ts +2 -2
  146. package/dist/components/ui/UsersEffectiveRightsDetailsDialog/index.js +25 -11
  147. package/dist/components/ui/UsersEffectiveRightsDetailsDialog/index.js.map +1 -1
  148. package/dist/components/ui/Warning/index.js.map +1 -1
  149. package/dist/components/ui/WidgetHeaderIconButton/index.js.map +1 -1
  150. package/dist/components/ui/WidgetMenu/WidgetMenu.d.ts +1 -1
  151. package/dist/components/ui/WidgetMenu/index.js +2 -2
  152. package/dist/components/ui/WidgetMenu/index.js.map +1 -1
  153. package/dist/components/ui/WidgetUnavailable/index.js.map +1 -1
  154. package/dist/constants/query.d.ts +1 -1
  155. package/dist/constants/query.js +1 -1
  156. package/dist/constants/query.js.map +1 -1
  157. package/dist/context/caseAbac/CaseAbacContext.d.ts +1 -1
  158. package/dist/dataHooks/useAssemblyProtocolsQuery/index.js +3 -3
  159. package/dist/dataHooks/useAssemblyProtocolsQuery/index.js.map +1 -1
  160. package/dist/dataHooks/useAssemblyProtocolsQuery/useAssemblyProtocolsQuery.d.ts +1 -1
  161. package/dist/dataHooks/useCaseRightsQuery/index.js +2 -2
  162. package/dist/dataHooks/useCaseRightsQuery/index.js.map +1 -1
  163. package/dist/dataHooks/useCaseSetCategoriesQuery/index.js +3 -3
  164. package/dist/dataHooks/useCaseSetCategoriesQuery/index.js.map +1 -1
  165. package/dist/dataHooks/useCaseSetCategoriesQuery/useCaseSetCategoriesQuery.d.ts +1 -1
  166. package/dist/dataHooks/useCaseSetRightsQuery/index.js +2 -2
  167. package/dist/dataHooks/useCaseSetRightsQuery/index.js.map +1 -1
  168. package/dist/dataHooks/useCaseSetStatsQuery/index.js +3 -3
  169. package/dist/dataHooks/useCaseSetStatsQuery/index.js.map +1 -1
  170. package/dist/dataHooks/useCaseSetStatsQuery/useCaseSetStatsQuery.d.ts +1 -1
  171. package/dist/dataHooks/useCaseSetStatusesQuery/index.js +3 -3
  172. package/dist/dataHooks/useCaseSetStatusesQuery/index.js.map +1 -1
  173. package/dist/dataHooks/useCaseSetStatusesQuery/useCaseSetStatusesQuery.d.ts +1 -1
  174. package/dist/dataHooks/useCaseSetsQuery/index.js +3 -3
  175. package/dist/dataHooks/useCaseSetsQuery/index.js.map +1 -1
  176. package/dist/dataHooks/useCaseSetsQuery/useCaseSetsQuery.d.ts +1 -1
  177. package/dist/dataHooks/useCaseTypeSetCategoriesQuery/index.js +3 -3
  178. package/dist/dataHooks/useCaseTypeSetCategoriesQuery/index.js.map +1 -1
  179. package/dist/dataHooks/useCaseTypeSetCategoriesQuery/useCaseTypeSetCategoriesQuery.d.ts +1 -1
  180. package/dist/dataHooks/useCaseTypeSetCategoryPurposeQuery/index.js.map +1 -1
  181. package/dist/dataHooks/useCaseTypeSetCategoryPurposeQuery/useCaseTypeSetCategoryPurposeQuery.d.ts +1 -1
  182. package/dist/dataHooks/useCaseTypeSetMembersQuery/index.js +2 -2
  183. package/dist/dataHooks/useCaseTypeSetMembersQuery/index.js.map +1 -1
  184. package/dist/dataHooks/useCaseTypeSetsQuery/index.js +3 -3
  185. package/dist/dataHooks/useCaseTypeSetsQuery/index.js.map +1 -1
  186. package/dist/dataHooks/useCaseTypeSetsQuery/useCaseTypeSetsQuery.d.ts +1 -1
  187. package/dist/dataHooks/useCaseTypeStatsQuery/index.js +2 -2
  188. package/dist/dataHooks/useCaseTypeStatsQuery/index.js.map +1 -1
  189. package/dist/dataHooks/useCaseTypesQuery/index.js +3 -3
  190. package/dist/dataHooks/useCaseTypesQuery/index.js.map +1 -1
  191. package/dist/dataHooks/useCaseTypesQuery/useCaseTypesQuery.d.ts +1 -1
  192. package/dist/dataHooks/useColSetMembersQuery/index.js +2 -2
  193. package/dist/dataHooks/useColSetMembersQuery/index.js.map +1 -1
  194. package/dist/dataHooks/useColSetsQuery/index.js +3 -3
  195. package/dist/dataHooks/useColSetsQuery/index.js.map +1 -1
  196. package/dist/dataHooks/useColSetsQuery/useColSetsQuery.d.ts +1 -1
  197. package/dist/dataHooks/useColTypesQuery/index.js.map +1 -1
  198. package/dist/dataHooks/useColTypesQuery/useColTypesQuery.d.ts +1 -1
  199. package/dist/dataHooks/useColsQuery/index.js +3 -3
  200. package/dist/dataHooks/useColsQuery/index.js.map +1 -1
  201. package/dist/dataHooks/useColsQuery/useColsQuery.d.ts +1 -1
  202. package/dist/dataHooks/useConceptQuery/index.js +3 -3
  203. package/dist/dataHooks/useConceptQuery/index.js.map +1 -1
  204. package/dist/dataHooks/useConceptQuery/useConceptQuery.d.ts +1 -1
  205. package/dist/dataHooks/useConceptRelationTypeQuery/index.js.map +1 -1
  206. package/dist/dataHooks/useConceptRelationTypeQuery/useConceptRelationTypeQuery.d.ts +1 -1
  207. package/dist/dataHooks/useConceptSetTypeQuery/index.js.map +1 -1
  208. package/dist/dataHooks/useConceptSetTypeQuery/useConceptSetTypeQuery.d.ts +1 -1
  209. package/dist/dataHooks/useConceptSetsQuery/index.js +3 -3
  210. package/dist/dataHooks/useConceptSetsQuery/index.js.map +1 -1
  211. package/dist/dataHooks/useConceptSetsQuery/useConceptSetsQuery.d.ts +1 -1
  212. package/dist/dataHooks/useDataCollectionSetMembersQuery/index.js +2 -2
  213. package/dist/dataHooks/useDataCollectionSetMembersQuery/index.js.map +1 -1
  214. package/dist/dataHooks/useDataCollectionsQuery/index.js +3 -3
  215. package/dist/dataHooks/useDataCollectionsQuery/index.js.map +1 -1
  216. package/dist/dataHooks/useDataCollectionsQuery/useDataCollectionsQuery.d.ts +1 -1
  217. package/dist/dataHooks/useDimTypesQuery/index.js.map +1 -1
  218. package/dist/dataHooks/useDimTypesQuery/useDimTypesQuery.d.ts +1 -1
  219. package/dist/dataHooks/useDimsQuery/index.js +3 -3
  220. package/dist/dataHooks/useDimsQuery/index.js.map +1 -1
  221. package/dist/dataHooks/useDimsQuery/useDimsQuery.d.ts +1 -1
  222. package/dist/dataHooks/useDiseasesQuery/index.js +3 -3
  223. package/dist/dataHooks/useDiseasesQuery/index.js.map +1 -1
  224. package/dist/dataHooks/useDiseasesQuery/useDiseasesQuery.d.ts +1 -1
  225. package/dist/dataHooks/useEtiologicalAgentsQuery/index.js +3 -3
  226. package/dist/dataHooks/useEtiologicalAgentsQuery/index.js.map +1 -1
  227. package/dist/dataHooks/useEtiologicalAgentsQuery/useEtiologicalAgentsQuery.d.ts +1 -1
  228. package/dist/dataHooks/useGeneticDistanceProtocolsQuery/index.js +3 -3
  229. package/dist/dataHooks/useGeneticDistanceProtocolsQuery/index.js.map +1 -1
  230. package/dist/dataHooks/useGeneticDistanceProtocolsQuery/useGeneticDistanceProtocolsQuery.d.ts +1 -1
  231. package/dist/dataHooks/useOrganizationAccessCasePoliciesQuery/index.js +2 -2
  232. package/dist/dataHooks/useOrganizationAccessCasePoliciesQuery/index.js.map +1 -1
  233. package/dist/dataHooks/useOrganizationShareCasePoliciesQuery/index.js +2 -2
  234. package/dist/dataHooks/useOrganizationShareCasePoliciesQuery/index.js.map +1 -1
  235. package/dist/dataHooks/useRefColsQuery/index.js +3 -3
  236. package/dist/dataHooks/useRefColsQuery/index.js.map +1 -1
  237. package/dist/dataHooks/useRefColsQuery/useRefColsQuery.d.ts +1 -1
  238. package/dist/dataHooks/useRefColsValidationRulesQuery/index.js +2 -2
  239. package/dist/dataHooks/useRefColsValidationRulesQuery/index.js.map +1 -1
  240. package/dist/dataHooks/useRefDimsQuery/index.js +3 -3
  241. package/dist/dataHooks/useRefDimsQuery/index.js.map +1 -1
  242. package/dist/dataHooks/useRefDimsQuery/useRefDimsQuery.d.ts +1 -1
  243. package/dist/dataHooks/useRegionQuery/index.js +3 -3
  244. package/dist/dataHooks/useRegionQuery/index.js.map +1 -1
  245. package/dist/dataHooks/useRegionQuery/useRegionQuery.d.ts +1 -1
  246. package/dist/dataHooks/useRegionRelationTypeQuery/index.js.map +1 -1
  247. package/dist/dataHooks/useRegionRelationTypeQuery/useRegionRelationTypeQuery.d.ts +1 -1
  248. package/dist/dataHooks/useRegionSetsQuery/index.js +3 -3
  249. package/dist/dataHooks/useRegionSetsQuery/index.js.map +1 -1
  250. package/dist/dataHooks/useRegionSetsQuery/useRegionSetsQuery.d.ts +1 -1
  251. package/dist/dataHooks/useSequencingProtocolsQuery/index.js +3 -3
  252. package/dist/dataHooks/useSequencingProtocolsQuery/index.js.map +1 -1
  253. package/dist/dataHooks/useSequencingProtocolsQuery/useSequencingProtocolsQuery.d.ts +1 -1
  254. package/dist/dataHooks/useTreeAlgorithmCodesQuery/index.js.map +1 -1
  255. package/dist/dataHooks/useTreeAlgorithmCodesQuery/useTreeAlgorithmCodesQuery.d.ts +1 -1
  256. package/dist/dataHooks/useUnitQuery/useUnit.d.ts +1 -1
  257. package/dist/dataHooks/useUserAccessCasePoliciesQuery/index.js +2 -2
  258. package/dist/dataHooks/useUserAccessCasePoliciesQuery/index.js.map +1 -1
  259. package/dist/dataHooks/useUserEffectiveRightsQuery/index.js +3 -3
  260. package/dist/dataHooks/useUserEffectiveRightsQuery/index.js.map +1 -1
  261. package/dist/dataHooks/useUserEffectiveRightsQuery/useUserEffectiveRightsQuery.d.ts +1 -1
  262. package/dist/dataHooks/useUserShareCasePoliciesQuery/index.js +2 -2
  263. package/dist/dataHooks/useUserShareCasePoliciesQuery/index.js.map +1 -1
  264. package/dist/hooks/useOrganizationCasePolicyNameFactory/index.js +2 -2
  265. package/dist/hooks/useOrganizationCasePolicyNameFactory/index.js.map +1 -1
  266. package/dist/hooks/useOrganizationCasePolicyNameFactory/useOrganizationCasePolicyNameFactory.d.ts +1 -1
  267. package/dist/hooks/useUserCasePolicyNameFactory/index.js +3 -3
  268. package/dist/hooks/useUserCasePolicyNameFactory/index.js.map +1 -1
  269. package/dist/hooks/useUserCasePolicyNameFactory/useUserCasePolicyNameFactory.d.ts +1 -1
  270. package/dist/locale/nl.json +1 -1
  271. package/dist/models/config.d.ts +1 -1
  272. package/dist/models/dashboard.d.ts +1 -1
  273. package/dist/models/dashboard.js.map +1 -1
  274. package/dist/models/theme.d.ts +2 -2
  275. package/dist/pages/CaseDbUsersAdminPage/index.js +5 -5
  276. package/dist/pages/CaseDbUsersAdminPage/index.js.map +1 -1
  277. package/dist/pages/CaseSetCategoryAdminPage/index.js +4 -4
  278. package/dist/pages/CaseSetCategoryAdminPage/index.js.map +1 -1
  279. package/dist/pages/CaseSetStatusAdminPage/index.js +4 -4
  280. package/dist/pages/CaseSetStatusAdminPage/index.js.map +1 -1
  281. package/dist/pages/CaseTypeSetCategoriesAdminPage/index.js +4 -4
  282. package/dist/pages/CaseTypeSetCategoriesAdminPage/index.js.map +1 -1
  283. package/dist/pages/CaseTypeSetsAdminPage/index.js +6 -6
  284. package/dist/pages/CaseTypeSetsAdminPage/index.js.map +1 -1
  285. package/dist/pages/CaseTypesAdminPage/index.js +5 -5
  286. package/dist/pages/CaseTypesAdminPage/index.js.map +1 -1
  287. package/dist/pages/CasesDetailPage/index.js +5 -5
  288. package/dist/pages/CasesDetailPage/index.js.map +1 -1
  289. package/dist/pages/CasesPage/index.js +10 -10
  290. package/dist/pages/CasesPage/index.js.map +1 -1
  291. package/dist/pages/ColSetsAdminPage/index.js +6 -6
  292. package/dist/pages/ColSetsAdminPage/index.js.map +1 -1
  293. package/dist/pages/ColsAdminPage/index.js +5 -5
  294. package/dist/pages/ColsAdminPage/index.js.map +1 -1
  295. package/dist/pages/ConceptRelationsAdminPage/index.js +19 -19
  296. package/dist/pages/ConceptRelationsAdminPage/index.js.map +1 -1
  297. package/dist/pages/ConceptSetsAdminPage/index.js +5 -5
  298. package/dist/pages/ConceptSetsAdminPage/index.js.map +1 -1
  299. package/dist/pages/ConceptsAdminPage/index.js +5 -5
  300. package/dist/pages/ConceptsAdminPage/index.js.map +1 -1
  301. package/dist/pages/DataCollectionSetsAdminPage/index.js +12 -12
  302. package/dist/pages/DataCollectionSetsAdminPage/index.js.map +1 -1
  303. package/dist/pages/DataCollectionVisualizationPage/index.js +4 -4
  304. package/dist/pages/DataCollectionVisualizationPage/index.js.map +1 -1
  305. package/dist/pages/DataCollectionsAdminPage/index.js +4 -4
  306. package/dist/pages/DataCollectionsAdminPage/index.js.map +1 -1
  307. package/dist/pages/DimsAdminPage/index.js +6 -6
  308. package/dist/pages/DimsAdminPage/index.js.map +1 -1
  309. package/dist/pages/DiseasesAdminPage/index.js +4 -4
  310. package/dist/pages/DiseasesAdminPage/index.js.map +1 -1
  311. package/dist/pages/EtiologicalAgentsAdminPage/index.js +4 -4
  312. package/dist/pages/EtiologicalAgentsAdminPage/index.js.map +1 -1
  313. package/dist/pages/EtiologiesAdminPage/index.js +3 -3
  314. package/dist/pages/EtiologiesAdminPage/index.js.map +1 -1
  315. package/dist/pages/EventsDetailPage/index.js +5 -5
  316. package/dist/pages/EventsDetailPage/index.js.map +1 -1
  317. package/dist/pages/EventsPage/index.js +11 -11
  318. package/dist/pages/EventsPage/index.js.map +1 -1
  319. package/dist/pages/HomePage/index.js +2 -2
  320. package/dist/pages/HomePage/index.js.map +1 -1
  321. package/dist/pages/OrganizationAccessCasePoliciesAdminPage/index.js +4 -4
  322. package/dist/pages/OrganizationAccessCasePoliciesAdminPage/index.js.map +1 -1
  323. package/dist/pages/OrganizationShareCasePoliciesAdminPage/index.js +4 -4
  324. package/dist/pages/OrganizationShareCasePoliciesAdminPage/index.js.map +1 -1
  325. package/dist/pages/RefColsAdminPage/index.js +7 -7
  326. package/dist/pages/RefColsAdminPage/index.js.map +1 -1
  327. package/dist/pages/RefDimsAdminPage/index.js +5 -5
  328. package/dist/pages/RefDimsAdminPage/index.js.map +1 -1
  329. package/dist/pages/RegionRelationsAdminPage/index.js +3 -3
  330. package/dist/pages/RegionRelationsAdminPage/index.js.map +1 -1
  331. package/dist/pages/RegionSetShapesAdminPage/index.js +4 -4
  332. package/dist/pages/RegionSetShapesAdminPage/index.js.map +1 -1
  333. package/dist/pages/RegionSetsAdminPage/index.js +5 -5
  334. package/dist/pages/RegionSetsAdminPage/index.js.map +1 -1
  335. package/dist/pages/RegionsAdminPage/index.js +5 -5
  336. package/dist/pages/RegionsAdminPage/index.js.map +1 -1
  337. package/dist/pages/TrendsPage/index.js +1 -1
  338. package/dist/pages/TrendsPage/index.js.map +1 -1
  339. package/dist/pages/UploadPage/index.js +1 -1
  340. package/dist/pages/UploadPage/index.js.map +1 -1
  341. package/dist/pages/UserAccessCasePoliciesAdminPage/index.js +4 -4
  342. package/dist/pages/UserAccessCasePoliciesAdminPage/index.js.map +1 -1
  343. package/dist/pages/UserEffectiveRightsAdminPage/index.js +12 -12
  344. package/dist/pages/UserEffectiveRightsAdminPage/index.js.map +1 -1
  345. package/dist/pages/UserEffectiveRightsTesterAdminPage/index.js +8 -8
  346. package/dist/pages/UserEffectiveRightsTesterAdminPage/index.js.map +1 -1
  347. package/dist/pages/UserShareCasePoliciesAdminPage/index.js +4 -4
  348. package/dist/pages/UserShareCasePoliciesAdminPage/index.js.map +1 -1
  349. package/dist/routes/adminRoutes.d.ts +1 -1
  350. package/dist/routes/index.js +11 -8
  351. package/dist/routes/index.js.map +1 -1
  352. package/dist/routes/routes.d.ts +1 -1
  353. package/dist/setup/setup.js +5 -5
  354. package/dist/setup/setup.js.map +1 -1
  355. package/dist/stores/dashboardStore/dashboardStore.d.ts +1 -1
  356. package/dist/stores/uploadStore/index.js +2 -2
  357. package/dist/stores/uploadStore/index.js.map +1 -1
  358. package/dist/stores/uploadStore/uploadStore.d.ts +1 -1
  359. package/dist/stores/userProfileStore/index.js +2 -2
  360. package/dist/stores/userProfileStore/index.js.map +1 -1
  361. package/dist/theme/demoTheme/index.js +2 -2
  362. package/dist/theme/demoTheme/index.js.map +1 -1
  363. package/dist/utils/CaseDbDataUtil/CaseDbDataUtil.d.ts +1 -1
  364. package/dist/utils/CaseDbDataUtil/index.js +1 -1
  365. package/dist/utils/CaseDbDataUtil/index.js.map +1 -1
  366. package/dist/utils/CaseDbStandardConfigUtil/index.js +2488 -1408
  367. package/dist/utils/CaseDbStandardConfigUtil/index.js.map +1 -1
  368. package/dist/utils/CaseDbTableUtil/CaseDbTableUtil.d.ts +1 -1
  369. package/dist/utils/CaseDbTableUtil/index.js +1 -1
  370. package/dist/utils/CaseDbTableUtil/index.js.map +1 -1
  371. package/dist/utils/CaseSelectionUtil/index.js.map +1 -1
  372. package/dist/utils/CaseTypeFormUtil/CaseTypeFormUtil.d.ts +1 -1
  373. package/dist/utils/CaseTypeFormUtil/index.js +7 -10
  374. package/dist/utils/CaseTypeFormUtil/index.js.map +1 -1
  375. package/dist/utils/CaseTypeUtil/index.js +1 -1
  376. package/dist/utils/CaseTypeUtil/index.js.map +1 -1
  377. package/dist/utils/CaseUtil/index.js +3 -3
  378. package/dist/utils/CaseUtil/index.js.map +1 -1
  379. package/dist/utils/DashboardUtil/index.js +1 -1
  380. package/dist/utils/DashboardUtil/index.js.map +1 -1
  381. package/dist/utils/DataSetUtil/index.js.map +1 -1
  382. package/dist/utils/FileUtil/index.js +1 -1
  383. package/dist/utils/FileUtil/index.js.map +1 -1
  384. package/dist/utils/FilterUtil/FilterUtil.d.ts +2 -2
  385. package/dist/utils/HistogramUtil/index.js +1 -1
  386. package/dist/utils/HistogramUtil/index.js.map +1 -1
  387. package/dist/utils/MapUtil/index.js +1 -1
  388. package/dist/utils/MapUtil/index.js.map +1 -1
  389. package/dist/utils/StratificationUtil/index.js +3 -2
  390. package/dist/utils/StratificationUtil/index.js.map +1 -1
  391. package/dist/utils/UploadUtil/UploadUtil.d.ts +1 -1
  392. package/package.json +19 -11
  393. package/dist/_chunks/chunk-KS7C4IRE.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/RegionSetShapesAdminPage/RegionSetShapesAdminPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n number,\n object,\n string,\n} from 'yup';\nimport { useParams } from 'react-router-dom';\nimport type {\n CaseDbApiPermission,\n CaseDbRegionSetShape,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbCommandName,\n CaseDbGeoApi,\n} from '@gen-epix/api-casedb';\nimport type { OmitWithMetaData } from '@gen-epix/ui/models/data';\nimport type { TableColumn } from '@gen-epix/ui/models/table';\nimport { CrudPage } from '@gen-epix/ui/pages/CrudPage';\nimport { TableUtil } from '@gen-epix/ui/utils/TableUtil';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { useArray } from '@gen-epix/ui-core/hooks/useArray';\nimport type { FormFieldDefinition } from '@gen-epix/ui-form/models/form';\nimport { FORM_FIELD_DEFINITION_TYPE } from '@gen-epix/ui-form/models/form';\n\nimport { useRegionSetsMapQuery } from '../../dataHooks/useRegionSetsQuery';\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\n\n// Note: region_set_id is given in the route params\ntype FormFields = OmitWithMetaData<CaseDbRegionSetShape, 'region_set_id' | 'region_set'>;\n\nexport const RegionSetShapesAdminPage = () => {\n const { regionSetId } = useParams();\n const { t } = useTranslation();\n const regionSetsMapQuery = useRegionSetsMapQuery();\n\n const loadables = useArray([regionSetsMapQuery]);\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbGeoApi.getInstance().regionSetShapesGetAll(null, null, { signal }))?.data;\n }, []);\n\n const fetchAllSelect = useCallback((regionSetShapes: CaseDbRegionSetShape[]) => {\n return regionSetShapes.filter((regionSetShape) => regionSetShape.region_set_id === regionSetId);\n }, [regionSetId]);\n\n const deleteOne = useCallback(async (item: CaseDbRegionSetShape) => {\n return await CaseDbGeoApi.getInstance().regionSetShapesDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbRegionSetShape) => {\n return (await CaseDbGeoApi.getInstance().regionSetShapesPutOne(item.id, {\n ...variables,\n id: item.id,\n region_set_id: regionSetId,\n })).data;\n }, [regionSetId]);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbGeoApi.getInstance().regionSetShapesPostOne({\n ...variables,\n region_set_id: regionSetId,\n })).data;\n }, [regionSetId]);\n\n const getName = useCallback((item: FormFields) => {\n const regionSet = regionSetsMapQuery.map.get(regionSetId);\n return `${regionSet.name} - ${item.scale}`;\n }, [regionSetId, regionSetsMapQuery.map]);\n\n const schema = useMemo(() => {\n return object<FormFields>().shape({\n geo_json: string().freeFormText(),\n scale: number().required().positive().transform((_val: unknown, orig: number | string) => orig === '' ? undefined : orig),\n });\n }, []);\n\n const formFieldDefinitions = useMemo<FormFieldDefinition<FormFields>[]>(() => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Scale`,\n name: 'scale',\n type: 'number',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Scale`,\n multiline: true,\n name: 'geo_json',\n rows: 20,\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbRegionSetShape>[] => {\n return [\n TableUtil.createNumberColumn<CaseDbRegionSetShape>({ id: 'scale', name: t`Scale` }),\n TableUtil.createBooleanColumn<CaseDbRegionSetShape>({ id: 'geo_json', name: t`GEO JSON` }),\n ];\n }, [t]);\n\n const getOptimisticUpdateIntermediateItem = useCallback((variables: FormFields, previousItem: CaseDbRegionSetShape): CaseDbRegionSetShape => {\n return {\n id: previousItem.id,\n region_set_id: previousItem.region_set_id,\n ...variables,\n };\n }, []);\n\n return (\n <CrudPage<FormFields, CaseDbRegionSetShape, CaseDbRegionSetShape, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new region set shape`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.RegionSetShapeCrudCommand}\n defaultSortByField={'scale'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n fetchAllSelect={fetchAllSelect}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n getOptimisticUpdateIntermediateItem={getOptimisticUpdateIntermediateItem}\n itemName={t`Region set shape`}\n loadables={loadables}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.REGION_SET_SHAPES}\n schema={schema}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('RegionSetShapesAdminPage')}\n title={t`Region set shapes`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;AAkCA,IAAa,UAAiC;CAC5C,IAAM,EAAE,mBAAgB,EAAU,GAC5B,EAAE,SAAM,EAAe,GACvB,IAAqB,EAAsB,GAE3C,IAAY,EAAS,CAAC,CAAkB,CAAC,GAEzC,IAAW,EAAY,OAAO,OAC1B,MAAM,EAAa,YAAY,CAAC,CAAC,sBAAsB,MAAM,MAAM,EAAE,UAAO,CAAC,EAAA,EAAI,MACxF,CAAC,CAAC,GAEC,IAAiB,GAAa,MAC3B,EAAgB,QAAQ,MAAmB,EAAe,kBAAkB,CAAW,GAC7F,CAAC,CAAW,CAAC,GAEV,IAAY,EAAY,OAAO,MAC5B,MAAM,EAAa,YAAY,CAAC,CAAC,yBAAyB,EAAK,EAAE,GACvE,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,GAAuB,OAClD,MAAM,EAAa,YAAY,CAAC,CAAC,sBAAsB,EAAK,IAAI;EACtE,GAAG;EACH,IAAI,EAAK;EACT,eAAe;CACjB,CAAC,EAAA,CAAG,MACH,CAAC,CAAW,CAAC,GAEV,IAAY,EAAY,OAAO,OAC3B,MAAM,EAAa,YAAY,CAAC,CAAC,uBAAuB;EAC9D,GAAG;EACH,eAAe;CACjB,CAAC,EAAA,CAAG,MACH,CAAC,CAAW,CAAC,GAEV,IAAU,GAAa,MAEpB,GADW,EAAmB,IAAI,IAAI,CACnC,CAAA,CAAU,KAAK,KAAK,EAAK,SAClC,CAAC,GAAa,EAAmB,GAAG,CAAC,GAElC,IAAS,QACN,EAAmB,CAAC,CAAC,MAAM;EAChC,UAAU,EAAO,CAAC,CAAC,aAAa;EAChC,OAAO,EAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,GAAe,MAA0B,MAAS,KAAK,KAAA,IAAY,CAAI;CAC1H,CAAC,GACA,CAAC,CAAC,GAEC,IAAuB,QACpB,CACL;EACE,YAAY,EAA2B;EACvC,OAAO,CAAC;EACR,MAAM;EACN,MAAM;CACR,GACA;EACE,YAAY,EAA2B;EACvC,OAAO,CAAC;EACR,WAAW;EACX,MAAM;EACN,MAAM;CACR,CACF,GACC,CAAC,CAAC,CAAC,GAEA,IAAe,QACZ,CACL,EAAU,mBAAyC;EAAE,IAAI;EAAS,MAAM,CAAC;CAAQ,CAAC,GAClF,EAAU,oBAA0C;EAAE,IAAI;EAAY,MAAM,CAAC;CAAW,CAAC,CAC3F,GACC,CAAC,CAAC,CAAC,GAEA,IAAsC,GAAa,GAAuB,OACvE;EACL,IAAI,EAAa;EACjB,eAAe,EAAa;EAC5B,GAAG;CACL,IACC,CAAC,CAAC;CAEL,OACE,kBAAC,GAAD;EACE,uBAAuB,CAAC;EACb;EACX,iBAAiB,EAAkB;EACnC,oBAAoB;EACpB,sBAAsB;EACX;EACD;EACM;EACM;EACb;EAC4B;EACrC,UAAU,CAAC;EACA;EACX,sBAAsB,EAAiB;EAC/B;EACM;EACd,kBAAkB,EAAW,iBAAiB,0BAA0B;EACxE,OAAO,CAAC;EACG;CACZ,CAAA;AAEL"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/RegionSetShapesAdminPage/RegionSetShapesAdminPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n number,\n object,\n string,\n} from 'yup';\nimport { useParams } from 'react-router-dom';\nimport type {\n CaseDbApiPermission,\n CaseDbRegionSetShape,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbCommandName,\n CaseDbGeoApi,\n} from '@gen-epix/api-casedb';\nimport type { OmitWithMetaData } from '@gen-epix/ui-client-common/models/data';\nimport type { TableColumn } from '@gen-epix/ui-client-common/models/table';\nimport { CrudPage } from '@gen-epix/ui-client-common/pages/CrudPage';\nimport { TableUtil } from '@gen-epix/ui-client-common/utils/TableUtil';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { useArray } from '@gen-epix/ui-core/hooks/useArray';\nimport type { FormFieldDefinition } from '@gen-epix/ui-core-form/models/form';\nimport { FORM_FIELD_DEFINITION_TYPE } from '@gen-epix/ui-core-form/models/form';\n\nimport { useRegionSetsMapQuery } from '../../dataHooks/useRegionSetsQuery';\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\n\n// Note: region_set_id is given in the route params\ntype FormFields = OmitWithMetaData<CaseDbRegionSetShape, 'region_set_id' | 'region_set'>;\n\nexport const RegionSetShapesAdminPage = () => {\n const { regionSetId } = useParams();\n const { t } = useTranslation();\n const regionSetsMapQuery = useRegionSetsMapQuery();\n\n const loadables = useArray([regionSetsMapQuery]);\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbGeoApi.getInstance().regionSetShapesGetAll(null, null, { signal }))?.data;\n }, []);\n\n const fetchAllSelect = useCallback((regionSetShapes: CaseDbRegionSetShape[]) => {\n return regionSetShapes.filter((regionSetShape) => regionSetShape.region_set_id === regionSetId);\n }, [regionSetId]);\n\n const deleteOne = useCallback(async (item: CaseDbRegionSetShape) => {\n return await CaseDbGeoApi.getInstance().regionSetShapesDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbRegionSetShape) => {\n return (await CaseDbGeoApi.getInstance().regionSetShapesPutOne(item.id, {\n ...variables,\n id: item.id,\n region_set_id: regionSetId,\n })).data;\n }, [regionSetId]);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbGeoApi.getInstance().regionSetShapesPostOne({\n ...variables,\n region_set_id: regionSetId,\n })).data;\n }, [regionSetId]);\n\n const getName = useCallback((item: FormFields) => {\n const regionSet = regionSetsMapQuery.map.get(regionSetId);\n return `${regionSet.name} - ${item.scale}`;\n }, [regionSetId, regionSetsMapQuery.map]);\n\n const schema = useMemo(() => {\n return object<FormFields>().shape({\n geo_json: string().freeFormText(),\n scale: number().required().positive().transform((_val: unknown, orig: number | string) => orig === '' ? undefined : orig),\n });\n }, []);\n\n const formFieldDefinitions = useMemo<FormFieldDefinition<FormFields>[]>(() => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Scale`,\n name: 'scale',\n type: 'number',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Scale`,\n multiline: true,\n name: 'geo_json',\n rows: 20,\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbRegionSetShape>[] => {\n return [\n TableUtil.createNumberColumn<CaseDbRegionSetShape>({ id: 'scale', name: t`Scale` }),\n TableUtil.createBooleanColumn<CaseDbRegionSetShape>({ id: 'geo_json', name: t`GEO JSON` }),\n ];\n }, [t]);\n\n const getOptimisticUpdateIntermediateItem = useCallback((variables: FormFields, previousItem: CaseDbRegionSetShape): CaseDbRegionSetShape => {\n return {\n id: previousItem.id,\n region_set_id: previousItem.region_set_id,\n ...variables,\n };\n }, []);\n\n return (\n <CrudPage<FormFields, CaseDbRegionSetShape, CaseDbRegionSetShape, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new region set shape`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.RegionSetShapeCrudCommand}\n defaultSortByField={'scale'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n fetchAllSelect={fetchAllSelect}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n getOptimisticUpdateIntermediateItem={getOptimisticUpdateIntermediateItem}\n itemName={t`Region set shape`}\n loadables={loadables}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.REGION_SET_SHAPES}\n schema={schema}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('RegionSetShapesAdminPage')}\n title={t`Region set shapes`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;AAkCA,IAAa,UAAiC;CAC5C,IAAM,EAAE,mBAAgB,EAAU,GAC5B,EAAE,SAAM,EAAe,GACvB,IAAqB,EAAsB,GAE3C,IAAY,EAAS,CAAC,CAAkB,CAAC,GAEzC,IAAW,EAAY,OAAO,OAC1B,MAAM,EAAa,YAAY,CAAC,CAAC,sBAAsB,MAAM,MAAM,EAAE,UAAO,CAAC,EAAA,EAAI,MACxF,CAAC,CAAC,GAEC,IAAiB,GAAa,MAC3B,EAAgB,QAAQ,MAAmB,EAAe,kBAAkB,CAAW,GAC7F,CAAC,CAAW,CAAC,GAEV,IAAY,EAAY,OAAO,MAC5B,MAAM,EAAa,YAAY,CAAC,CAAC,yBAAyB,EAAK,EAAE,GACvE,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,GAAuB,OAClD,MAAM,EAAa,YAAY,CAAC,CAAC,sBAAsB,EAAK,IAAI;EACtE,GAAG;EACH,IAAI,EAAK;EACT,eAAe;CACjB,CAAC,EAAA,CAAG,MACH,CAAC,CAAW,CAAC,GAEV,IAAY,EAAY,OAAO,OAC3B,MAAM,EAAa,YAAY,CAAC,CAAC,uBAAuB;EAC9D,GAAG;EACH,eAAe;CACjB,CAAC,EAAA,CAAG,MACH,CAAC,CAAW,CAAC,GAEV,IAAU,GAAa,MAEpB,GADW,EAAmB,IAAI,IAAI,CACnC,CAAA,CAAU,KAAK,KAAK,EAAK,SAClC,CAAC,GAAa,EAAmB,GAAG,CAAC,GAElC,IAAS,QACN,EAAmB,CAAC,CAAC,MAAM;EAChC,UAAU,EAAO,CAAC,CAAC,aAAa;EAChC,OAAO,EAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,GAAe,MAA0B,MAAS,KAAK,KAAA,IAAY,CAAI;CAC1H,CAAC,GACA,CAAC,CAAC,GAEC,IAAuB,QACpB,CACL;EACE,YAAY,EAA2B;EACvC,OAAO,CAAC;EACR,MAAM;EACN,MAAM;CACR,GACA;EACE,YAAY,EAA2B;EACvC,OAAO,CAAC;EACR,WAAW;EACX,MAAM;EACN,MAAM;CACR,CACF,GACC,CAAC,CAAC,CAAC,GAEA,IAAe,QACZ,CACL,EAAU,mBAAyC;EAAE,IAAI;EAAS,MAAM,CAAC;CAAQ,CAAC,GAClF,EAAU,oBAA0C;EAAE,IAAI;EAAY,MAAM,CAAC;CAAW,CAAC,CAC3F,GACC,CAAC,CAAC,CAAC,GAEA,IAAsC,GAAa,GAAuB,OACvE;EACL,IAAI,EAAa;EACjB,eAAe,EAAa;EAC5B,GAAG;CACL,IACC,CAAC,CAAC;CAEL,OACE,kBAAC,GAAD;EACE,uBAAuB,CAAC;EACb;EACX,iBAAiB,EAAkB;EACnC,oBAAoB;EACpB,sBAAsB;EACX;EACD;EACM;EACM;EACb;EAC4B;EACrC,UAAU,CAAC;EACA;EACX,sBAAsB,EAAiB;EAC/B;EACM;EACd,kBAAkB,EAAW,iBAAiB,0BAA0B;EACxE,OAAO,CAAC;EACG;CACZ,CAAA;AAEL"}
@@ -1,15 +1,15 @@
1
1
  import { CASEDB_QUERY_KEY as e } from "../../constants/query.js";
2
2
  import { boolean as t, object as n } from "yup";
3
3
  import { CaseDbCommandName as r, CaseDbGeoApi as i, CaseDbPermissionType as a } from "@gen-epix/api-casedb";
4
- import { FORM_FIELD_DEFINITION_TYPE as o } from "@gen-epix/ui-form/models/form";
4
+ import { FORM_FIELD_DEFINITION_TYPE as o } from "@gen-epix/ui-core-form/models/form";
5
5
  import { useCallback as s, useMemo as c } from "react";
6
6
  import { useTranslation as l } from "react-i18next";
7
7
  import { jsx as u } from "react/jsx-runtime";
8
- import { TableUtil as d } from "@gen-epix/ui/utils/TableUtil";
8
+ import { TableUtil as d } from "@gen-epix/ui-client-common/utils/TableUtil";
9
9
  import { TestIdUtil as f } from "@gen-epix/ui-core/utils/TestIdUtil";
10
- import { SchemaUtil as p } from "@gen-epix/ui-form/utils/SchemaUtil";
11
- import { AuthorizationService as m } from "@gen-epix/ui/classes/services/AuthorizationService";
12
- import { CrudPage as h } from "@gen-epix/ui/pages/CrudPage";
10
+ import { SchemaUtil as p } from "@gen-epix/ui-core-form/utils/SchemaUtil";
11
+ import { AuthorizationService as m } from "@gen-epix/ui-client-common/classes/services/AuthorizationService";
12
+ import { CrudPage as h } from "@gen-epix/ui-client-common/pages/CrudPage";
13
13
  //#region src/pages/RegionSetsAdminPage/RegionSetsAdminPage.tsx
14
14
  var g = () => {
15
15
  let { t: g } = l(), _ = s(async (e) => (await i.getInstance().regionSetsGetAll(null, null, { signal: e }))?.data, []), v = s(async (e) => await i.getInstance().regionSetsDeleteOne(e.id), []), y = s(async (e, t) => (await i.getInstance().regionSetsPutOne(t.id, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/RegionSetsAdminPage/RegionSetsAdminPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n boolean,\n object,\n} from 'yup';\nimport type {\n CaseDbApiPermission,\n CaseDbRegionSet,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbCommandName,\n CaseDbGeoApi,\n CaseDbPermissionType,\n} from '@gen-epix/api-casedb';\nimport type { CrudPageSubPage } from '@gen-epix/ui/pages/CrudPage';\nimport type { OmitWithMetaData } from '@gen-epix/ui/models/data';\nimport type { TableColumn } from '@gen-epix/ui/models/table';\nimport { AuthorizationService } from '@gen-epix/ui/classes/services/AuthorizationService';\nimport { CrudPage } from '@gen-epix/ui/pages/CrudPage';\nimport { TableUtil } from '@gen-epix/ui/utils/TableUtil';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport type { FormFieldDefinition } from '@gen-epix/ui-form/models/form';\nimport { FORM_FIELD_DEFINITION_TYPE } from '@gen-epix/ui-form/models/form';\nimport { SchemaUtil } from '@gen-epix/ui-form/utils/SchemaUtil';\n\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\n\n\ntype FormFields = OmitWithMetaData<CaseDbRegionSet>;\n\nexport const RegionSetsAdminPage = () => {\n const { t } = useTranslation();\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbGeoApi.getInstance().regionSetsGetAll(null, null, { signal }))?.data;\n }, []);\n\n const deleteOne = useCallback(async (item: CaseDbRegionSet) => {\n return await CaseDbGeoApi.getInstance().regionSetsDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbRegionSet) => {\n return (await CaseDbGeoApi.getInstance().regionSetsPutOne(item.id, { id: item.id, ...variables })).data;\n }, []);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbGeoApi.getInstance().regionSetsPostOne(variables)).data;\n }, []);\n\n const getName = useCallback((item: CaseDbRegionSet) => {\n return item.name;\n }, []);\n\n const schema = useMemo(() => {\n return object<FormFields>().shape({\n code: SchemaUtil.code,\n name: SchemaUtil.name,\n region_code_as_label: boolean().required(),\n resolution: SchemaUtil.number.integer().positive().max(10000).required(),\n });\n }, []);\n\n const formFieldDefinitions = useMemo<FormFieldDefinition<FormFields>[]>(() => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Name`,\n name: 'name',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Code`,\n name: 'code',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Resolution`,\n name: 'resolution',\n type: 'number',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Region code as label`,\n name: 'region_code_as_label',\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbRegionSet>[] => {\n return [\n TableUtil.createTextColumn<CaseDbRegionSet>({ id: 'name', name: t`Name` }),\n TableUtil.createTextColumn<CaseDbRegionSet>({ id: 'code', name: t`Code` }),\n TableUtil.createNumberColumn<CaseDbRegionSet>({ id: 'resolution', name: t`Resolution` }),\n TableUtil.createBooleanColumn<CaseDbRegionSet>({ id: 'region_code_as_label', name: t`Region code as label` }),\n ];\n }, [t]);\n\n\n const subPages = useMemo<CrudPageSubPage<CaseDbRegionSet>[]>(() => {\n const pages: CrudPageSubPage<CaseDbRegionSet>[] = [];\n\n if (AuthorizationService.getInstance().doesUserHavePermission<CaseDbApiPermission>([\n { command_name: CaseDbCommandName.RegionCrudCommand, permission_type: CaseDbPermissionType.READ },\n ])) {\n pages.push(\n {\n getPathName: (item: CaseDbRegionSet) => `/management/region-sets/${item.id}/regions`,\n label: t`Manage regions`,\n } satisfies CrudPageSubPage<CaseDbRegionSet>,\n );\n }\n\n if (AuthorizationService.getInstance().doesUserHavePermission<CaseDbApiPermission>([\n { command_name: CaseDbCommandName.RegionSetShapeCrudCommand, permission_type: CaseDbPermissionType.READ },\n ])) {\n pages.push(\n {\n getPathName: (item: CaseDbRegionSet) => `/management/region-sets/${item.id}/shapes`,\n label: t`Manage shapes`,\n } satisfies CrudPageSubPage<CaseDbRegionSet>,\n );\n }\n return pages;\n }, [t]);\n\n\n return (\n <CrudPage<FormFields, CaseDbRegionSet, CaseDbRegionSet, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new region set`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.RegionSetCrudCommand}\n defaultSortByField={'name'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n itemName={t`Region set`}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.REGION_SETS}\n schema={schema}\n subPages={subPages}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('RegionSetsAdminPage')}\n title={t`Region sets`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;AAkCA,IAAa,UAA4B;CACvC,IAAM,EAAE,SAAM,EAAe,GAEvB,IAAW,EAAY,OAAO,OAC1B,MAAM,EAAa,YAAY,CAAC,CAAC,iBAAiB,MAAM,MAAM,EAAE,UAAO,CAAC,EAAA,EAAI,MACnF,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,MAC5B,MAAM,EAAa,YAAY,CAAC,CAAC,oBAAoB,EAAK,EAAE,GAClE,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,GAAuB,OAClD,MAAM,EAAa,YAAY,CAAC,CAAC,iBAAiB,EAAK,IAAI;EAAE,IAAI,EAAK;EAAI,GAAG;CAAU,CAAC,EAAA,CAAG,MAClG,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,OAC3B,MAAM,EAAa,YAAY,CAAC,CAAC,kBAAkB,CAAS,EAAA,CAAG,MACtE,CAAC,CAAC,GAEC,IAAU,GAAa,MACpB,EAAK,MACX,CAAC,CAAC,GAEC,IAAS,QACN,EAAmB,CAAC,CAAC,MAAM;EAChC,MAAM,EAAW;EACjB,MAAM,EAAW;EACjB,sBAAsB,EAAQ,CAAC,CAAC,SAAS;EACzC,YAAY,EAAW,OAAO,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAK,CAAC,CAAC,SAAS;CACzE,CAAC,GACA,CAAC,CAAC,GAEC,IAAuB,QACpB;EACL;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;GACN,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;EACR;CACF,GACC,CAAC,CAAC,CAAC,GAEA,IAAe,QACZ;EACL,EAAU,iBAAkC;GAAE,IAAI;GAAQ,MAAM,CAAC;EAAO,CAAC;EACzE,EAAU,iBAAkC;GAAE,IAAI;GAAQ,MAAM,CAAC;EAAO,CAAC;EACzE,EAAU,mBAAoC;GAAE,IAAI;GAAc,MAAM,CAAC;EAAa,CAAC;EACvF,EAAU,oBAAqC;GAAE,IAAI;GAAwB,MAAM,CAAC;EAAuB,CAAC;CAC9G,GACC,CAAC,CAAC,CAAC,GAGA,IAAW,QAAkD;EACjE,IAAM,IAA4C,CAAC;EAuBnD,OArBI,EAAqB,YAAY,CAAC,CAAC,uBAA4C,CACjF;GAAE,cAAc,EAAkB;GAAmB,iBAAiB,EAAqB;EAAK,CAClG,CAAC,KACC,EAAM,KACJ;GACE,cAAc,MAA0B,2BAA2B,EAAK,GAAG;GAC3E,OAAO,CAAC;EACV,CACF,GAGE,EAAqB,YAAY,CAAC,CAAC,uBAA4C,CACjF;GAAE,cAAc,EAAkB;GAA2B,iBAAiB,EAAqB;EAAK,CAC1G,CAAC,KACC,EAAM,KACJ;GACE,cAAc,MAA0B,2BAA2B,EAAK,GAAG;GAC3E,OAAO,CAAC;EACV,CACF,GAEK;CACT,GAAG,CAAC,CAAC,CAAC;CAGN,OACE,kBAAC,GAAD;EACE,uBAAuB,CAAC;EACb;EACX,iBAAiB,EAAkB;EACnC,oBAAoB;EACpB,sBAAsB;EACX;EACD;EACY;EACb;EACT,UAAU,CAAC;EACX,sBAAsB,EAAiB;EAC/B;EACE;EACI;EACd,kBAAkB,EAAW,iBAAiB,qBAAqB;EACnE,OAAO,CAAC;EACG;CACZ,CAAA;AAEL"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/RegionSetsAdminPage/RegionSetsAdminPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n boolean,\n object,\n} from 'yup';\nimport type {\n CaseDbApiPermission,\n CaseDbRegionSet,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbCommandName,\n CaseDbGeoApi,\n CaseDbPermissionType,\n} from '@gen-epix/api-casedb';\nimport type { CrudPageSubPage } from '@gen-epix/ui-client-common/pages/CrudPage';\nimport type { OmitWithMetaData } from '@gen-epix/ui-client-common/models/data';\nimport type { TableColumn } from '@gen-epix/ui-client-common/models/table';\nimport { AuthorizationService } from '@gen-epix/ui-client-common/classes/services/AuthorizationService';\nimport { CrudPage } from '@gen-epix/ui-client-common/pages/CrudPage';\nimport { TableUtil } from '@gen-epix/ui-client-common/utils/TableUtil';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport type { FormFieldDefinition } from '@gen-epix/ui-core-form/models/form';\nimport { FORM_FIELD_DEFINITION_TYPE } from '@gen-epix/ui-core-form/models/form';\nimport { SchemaUtil } from '@gen-epix/ui-core-form/utils/SchemaUtil';\n\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\n\n\ntype FormFields = OmitWithMetaData<CaseDbRegionSet>;\n\nexport const RegionSetsAdminPage = () => {\n const { t } = useTranslation();\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbGeoApi.getInstance().regionSetsGetAll(null, null, { signal }))?.data;\n }, []);\n\n const deleteOne = useCallback(async (item: CaseDbRegionSet) => {\n return await CaseDbGeoApi.getInstance().regionSetsDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbRegionSet) => {\n return (await CaseDbGeoApi.getInstance().regionSetsPutOne(item.id, { id: item.id, ...variables })).data;\n }, []);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbGeoApi.getInstance().regionSetsPostOne(variables)).data;\n }, []);\n\n const getName = useCallback((item: CaseDbRegionSet) => {\n return item.name;\n }, []);\n\n const schema = useMemo(() => {\n return object<FormFields>().shape({\n code: SchemaUtil.code,\n name: SchemaUtil.name,\n region_code_as_label: boolean().required(),\n resolution: SchemaUtil.number.integer().positive().max(10000).required(),\n });\n }, []);\n\n const formFieldDefinitions = useMemo<FormFieldDefinition<FormFields>[]>(() => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Name`,\n name: 'name',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Code`,\n name: 'code',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Resolution`,\n name: 'resolution',\n type: 'number',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Region code as label`,\n name: 'region_code_as_label',\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbRegionSet>[] => {\n return [\n TableUtil.createTextColumn<CaseDbRegionSet>({ id: 'name', name: t`Name` }),\n TableUtil.createTextColumn<CaseDbRegionSet>({ id: 'code', name: t`Code` }),\n TableUtil.createNumberColumn<CaseDbRegionSet>({ id: 'resolution', name: t`Resolution` }),\n TableUtil.createBooleanColumn<CaseDbRegionSet>({ id: 'region_code_as_label', name: t`Region code as label` }),\n ];\n }, [t]);\n\n\n const subPages = useMemo<CrudPageSubPage<CaseDbRegionSet>[]>(() => {\n const pages: CrudPageSubPage<CaseDbRegionSet>[] = [];\n\n if (AuthorizationService.getInstance().doesUserHavePermission<CaseDbApiPermission>([\n { command_name: CaseDbCommandName.RegionCrudCommand, permission_type: CaseDbPermissionType.READ },\n ])) {\n pages.push(\n {\n getPathName: (item: CaseDbRegionSet) => `/management/region-sets/${item.id}/regions`,\n label: t`Manage regions`,\n } satisfies CrudPageSubPage<CaseDbRegionSet>,\n );\n }\n\n if (AuthorizationService.getInstance().doesUserHavePermission<CaseDbApiPermission>([\n { command_name: CaseDbCommandName.RegionSetShapeCrudCommand, permission_type: CaseDbPermissionType.READ },\n ])) {\n pages.push(\n {\n getPathName: (item: CaseDbRegionSet) => `/management/region-sets/${item.id}/shapes`,\n label: t`Manage shapes`,\n } satisfies CrudPageSubPage<CaseDbRegionSet>,\n );\n }\n return pages;\n }, [t]);\n\n\n return (\n <CrudPage<FormFields, CaseDbRegionSet, CaseDbRegionSet, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new region set`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.RegionSetCrudCommand}\n defaultSortByField={'name'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n itemName={t`Region set`}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.REGION_SETS}\n schema={schema}\n subPages={subPages}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('RegionSetsAdminPage')}\n title={t`Region sets`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;AAkCA,IAAa,UAA4B;CACvC,IAAM,EAAE,SAAM,EAAe,GAEvB,IAAW,EAAY,OAAO,OAC1B,MAAM,EAAa,YAAY,CAAC,CAAC,iBAAiB,MAAM,MAAM,EAAE,UAAO,CAAC,EAAA,EAAI,MACnF,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,MAC5B,MAAM,EAAa,YAAY,CAAC,CAAC,oBAAoB,EAAK,EAAE,GAClE,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,GAAuB,OAClD,MAAM,EAAa,YAAY,CAAC,CAAC,iBAAiB,EAAK,IAAI;EAAE,IAAI,EAAK;EAAI,GAAG;CAAU,CAAC,EAAA,CAAG,MAClG,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,OAC3B,MAAM,EAAa,YAAY,CAAC,CAAC,kBAAkB,CAAS,EAAA,CAAG,MACtE,CAAC,CAAC,GAEC,IAAU,GAAa,MACpB,EAAK,MACX,CAAC,CAAC,GAEC,IAAS,QACN,EAAmB,CAAC,CAAC,MAAM;EAChC,MAAM,EAAW;EACjB,MAAM,EAAW;EACjB,sBAAsB,EAAQ,CAAC,CAAC,SAAS;EACzC,YAAY,EAAW,OAAO,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAK,CAAC,CAAC,SAAS;CACzE,CAAC,GACA,CAAC,CAAC,GAEC,IAAuB,QACpB;EACL;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;GACN,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;EACR;CACF,GACC,CAAC,CAAC,CAAC,GAEA,IAAe,QACZ;EACL,EAAU,iBAAkC;GAAE,IAAI;GAAQ,MAAM,CAAC;EAAO,CAAC;EACzE,EAAU,iBAAkC;GAAE,IAAI;GAAQ,MAAM,CAAC;EAAO,CAAC;EACzE,EAAU,mBAAoC;GAAE,IAAI;GAAc,MAAM,CAAC;EAAa,CAAC;EACvF,EAAU,oBAAqC;GAAE,IAAI;GAAwB,MAAM,CAAC;EAAuB,CAAC;CAC9G,GACC,CAAC,CAAC,CAAC,GAGA,IAAW,QAAkD;EACjE,IAAM,IAA4C,CAAC;EAuBnD,OArBI,EAAqB,YAAY,CAAC,CAAC,uBAA4C,CACjF;GAAE,cAAc,EAAkB;GAAmB,iBAAiB,EAAqB;EAAK,CAClG,CAAC,KACC,EAAM,KACJ;GACE,cAAc,MAA0B,2BAA2B,EAAK,GAAG;GAC3E,OAAO,CAAC;EACV,CACF,GAGE,EAAqB,YAAY,CAAC,CAAC,uBAA4C,CACjF;GAAE,cAAc,EAAkB;GAA2B,iBAAiB,EAAqB;EAAK,CAC1G,CAAC,KACC,EAAM,KACJ;GACE,cAAc,MAA0B,2BAA2B,EAAK,GAAG;GAC3E,OAAO,CAAC;EACV,CACF,GAEK;CACT,GAAG,CAAC,CAAC,CAAC;CAGN,OACE,kBAAC,GAAD;EACE,uBAAuB,CAAC;EACb;EACX,iBAAiB,EAAkB;EACnC,oBAAoB;EACpB,sBAAsB;EACX;EACD;EACY;EACb;EACT,UAAU,CAAC;EACX,sBAAsB,EAAiB;EAC/B;EACE;EACI;EACd,kBAAkB,EAAW,iBAAiB,qBAAqB;EACnE,OAAO,CAAC;EACG;CACZ,CAAA;AAEL"}
@@ -1,15 +1,15 @@
1
1
  import { CASEDB_QUERY_KEY as e } from "../../constants/query.js";
2
- import { t } from "../../_chunks/chunk-KS7C4IRE.js";
2
+ import { t } from "../../_chunks/chunk-BV7QT456.js";
3
3
  import { object as n } from "yup";
4
4
  import { CaseDbCommandName as r, CaseDbGeoApi as i } from "@gen-epix/api-casedb";
5
- import { FORM_FIELD_DEFINITION_TYPE as a } from "@gen-epix/ui-form/models/form";
5
+ import { FORM_FIELD_DEFINITION_TYPE as a } from "@gen-epix/ui-core-form/models/form";
6
6
  import { useCallback as o, useMemo as s } from "react";
7
7
  import { useTranslation as c } from "react-i18next";
8
8
  import { jsx as l } from "react/jsx-runtime";
9
- import { TableUtil as u } from "@gen-epix/ui/utils/TableUtil";
9
+ import { TableUtil as u } from "@gen-epix/ui-client-common/utils/TableUtil";
10
10
  import { TestIdUtil as d } from "@gen-epix/ui-core/utils/TestIdUtil";
11
- import { SchemaUtil as f } from "@gen-epix/ui-form/utils/SchemaUtil";
12
- import { CrudPage as p } from "@gen-epix/ui/pages/CrudPage";
11
+ import { SchemaUtil as f } from "@gen-epix/ui-core-form/utils/SchemaUtil";
12
+ import { CrudPage as p } from "@gen-epix/ui-client-common/pages/CrudPage";
13
13
  //#region src/pages/RegionsAdminPage/RegionsAdminPage.tsx
14
14
  var m = () => {
15
15
  let { regionSetId: m } = t(), { t: h } = c(), g = o(async (e) => (await i.getInstance().regionsGetAll(null, null, { signal: e }))?.data, []), _ = o((e) => e.filter((e) => e.region_set_id === m), [m]), v = o(async (e) => await i.getInstance().regionsDeleteOne(e.id), []), y = o(async (e, t) => (await i.getInstance().regionsPutOne(t.id, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/RegionsAdminPage/RegionsAdminPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { object } from 'yup';\nimport { useParams } from 'react-router-dom';\nimport type {\n CaseDbApiPermission,\n CaseDbRegion,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbCommandName,\n CaseDbGeoApi,\n} from '@gen-epix/api-casedb';\nimport type { OmitWithMetaData } from '@gen-epix/ui/models/data';\nimport type { TableColumn } from '@gen-epix/ui/models/table';\nimport { CrudPage } from '@gen-epix/ui/pages/CrudPage';\nimport { TableUtil } from '@gen-epix/ui/utils/TableUtil';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport type { FormFieldDefinition } from '@gen-epix/ui-form/models/form';\nimport { FORM_FIELD_DEFINITION_TYPE } from '@gen-epix/ui-form/models/form';\nimport { SchemaUtil } from '@gen-epix/ui-form/utils/SchemaUtil';\n\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\n\n\n// Note: region_set_id is given in the route params\ntype FormFields = OmitWithMetaData<CaseDbRegion, 'region_set_id' | 'region_set'>;\n\nexport const RegionsAdminPage = () => {\n const { regionSetId } = useParams();\n const { t } = useTranslation();\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbGeoApi.getInstance().regionsGetAll(null, null, { signal }))?.data;\n }, []);\n\n const fetchAllSelect = useCallback((regions: CaseDbRegion[]) => {\n return regions.filter((region) => region.region_set_id === regionSetId);\n }, [regionSetId]);\n\n const deleteOne = useCallback(async (item: CaseDbRegion) => {\n return await CaseDbGeoApi.getInstance().regionsDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbRegion) => {\n return (await CaseDbGeoApi.getInstance().regionsPutOne(item.id, {\n ...variables,\n id: item.id,\n region_set_id: regionSetId,\n })).data;\n }, [regionSetId]);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbGeoApi.getInstance().regionsPostOne({\n ...variables,\n region_set_id: regionSetId,\n })).data;\n }, [regionSetId]);\n\n const getName = useCallback((item: FormFields) => {\n return item.name;\n }, []);\n\n const schema = useMemo(() => {\n return object<FormFields>().shape({\n center_lat: SchemaUtil.number.required(),\n center_lon: SchemaUtil.number.required(),\n centroid_lat: SchemaUtil.number.required(),\n centroid_lon: SchemaUtil.number.required(),\n code: SchemaUtil.code,\n name: SchemaUtil.name,\n });\n }, []);\n\n\n const formFieldDefinitions = useMemo<FormFieldDefinition<FormFields>[]>(() => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Name`,\n name: 'name',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Code`,\n name: 'code',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Centroid latitude`,\n name: 'centroid_lat',\n type: 'number',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Centroid longitude`,\n name: 'centroid_lon',\n type: 'number',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Center latitude`,\n name: 'center_lat',\n type: 'number',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Center longitude`,\n name: 'center_lon',\n type: 'number',\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbRegion>[] => {\n return [\n TableUtil.createTextColumn<CaseDbRegion>({ id: 'name', name: t`Name` }),\n TableUtil.createTextColumn<CaseDbRegion>({ id: 'code', name: t`Code` }),\n ];\n }, [t]);\n\n const getOptimisticUpdateIntermediateItem = useCallback((variables: FormFields, previousItem: CaseDbRegion): CaseDbRegion => {\n return {\n id: previousItem.id,\n region_set_id: previousItem.region_set_id,\n ...variables,\n };\n }, []);\n\n return (\n <CrudPage<FormFields, CaseDbRegion, CaseDbRegion, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new region`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.RegionCrudCommand}\n defaultSortByField={'name'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n fetchAllSelect={fetchAllSelect}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n getOptimisticUpdateIntermediateItem={getOptimisticUpdateIntermediateItem}\n itemName={t`Region`}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.REGIONS}\n schema={schema}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('RegionsAdminPage')}\n title={t`Regions`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;AA8BA,IAAa,UAAyB;CACpC,IAAM,EAAE,mBAAgB,EAAU,GAC5B,EAAE,SAAM,EAAe,GAEvB,IAAW,EAAY,OAAO,OAC1B,MAAM,EAAa,YAAY,CAAC,CAAC,cAAc,MAAM,MAAM,EAAE,UAAO,CAAC,EAAA,EAAI,MAChF,CAAC,CAAC,GAEC,IAAiB,GAAa,MAC3B,EAAQ,QAAQ,MAAW,EAAO,kBAAkB,CAAW,GACrE,CAAC,CAAW,CAAC,GAEV,IAAY,EAAY,OAAO,MAC5B,MAAM,EAAa,YAAY,CAAC,CAAC,iBAAiB,EAAK,EAAE,GAC/D,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,GAAuB,OAClD,MAAM,EAAa,YAAY,CAAC,CAAC,cAAc,EAAK,IAAI;EAC9D,GAAG;EACH,IAAI,EAAK;EACT,eAAe;CACjB,CAAC,EAAA,CAAG,MACH,CAAC,CAAW,CAAC,GAEV,IAAY,EAAY,OAAO,OAC3B,MAAM,EAAa,YAAY,CAAC,CAAC,eAAe;EACtD,GAAG;EACH,eAAe;CACjB,CAAC,EAAA,CAAG,MACH,CAAC,CAAW,CAAC,GAEV,IAAU,GAAa,MACpB,EAAK,MACX,CAAC,CAAC,GAEC,IAAS,QACN,EAAmB,CAAC,CAAC,MAAM;EAChC,YAAY,EAAW,OAAO,SAAS;EACvC,YAAY,EAAW,OAAO,SAAS;EACvC,cAAc,EAAW,OAAO,SAAS;EACzC,cAAc,EAAW,OAAO,SAAS;EACzC,MAAM,EAAW;EACjB,MAAM,EAAW;CACnB,CAAC,GACA,CAAC,CAAC,GAGC,IAAuB,QACpB;EACL;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;GACN,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;GACN,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;GACN,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;GACN,MAAM;EACR;CACF,GACC,CAAC,CAAC,CAAC,GAEA,IAAe,QACZ,CACL,EAAU,iBAA+B;EAAE,IAAI;EAAQ,MAAM,CAAC;CAAO,CAAC,GACtE,EAAU,iBAA+B;EAAE,IAAI;EAAQ,MAAM,CAAC;CAAO,CAAC,CACxE,GACC,CAAC,CAAC,CAAC,GAEA,IAAsC,GAAa,GAAuB,OACvE;EACL,IAAI,EAAa;EACjB,eAAe,EAAa;EAC5B,GAAG;CACL,IACC,CAAC,CAAC;CAEL,OACE,kBAAC,GAAD;EACE,uBAAuB,CAAC;EACb;EACX,iBAAiB,EAAkB;EACnC,oBAAoB;EACpB,sBAAsB;EACX;EACD;EACM;EACM;EACb;EAC4B;EACrC,UAAU,CAAC;EACX,sBAAsB,EAAiB;EAC/B;EACM;EACd,kBAAkB,EAAW,iBAAiB,kBAAkB;EAChE,OAAO,CAAC;EACG;CACZ,CAAA;AAEL"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/RegionsAdminPage/RegionsAdminPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { object } from 'yup';\nimport { useParams } from 'react-router-dom';\nimport type {\n CaseDbApiPermission,\n CaseDbRegion,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbCommandName,\n CaseDbGeoApi,\n} from '@gen-epix/api-casedb';\nimport type { OmitWithMetaData } from '@gen-epix/ui-client-common/models/data';\nimport type { TableColumn } from '@gen-epix/ui-client-common/models/table';\nimport { CrudPage } from '@gen-epix/ui-client-common/pages/CrudPage';\nimport { TableUtil } from '@gen-epix/ui-client-common/utils/TableUtil';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport type { FormFieldDefinition } from '@gen-epix/ui-core-form/models/form';\nimport { FORM_FIELD_DEFINITION_TYPE } from '@gen-epix/ui-core-form/models/form';\nimport { SchemaUtil } from '@gen-epix/ui-core-form/utils/SchemaUtil';\n\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\n\n\n// Note: region_set_id is given in the route params\ntype FormFields = OmitWithMetaData<CaseDbRegion, 'region_set_id' | 'region_set'>;\n\nexport const RegionsAdminPage = () => {\n const { regionSetId } = useParams();\n const { t } = useTranslation();\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbGeoApi.getInstance().regionsGetAll(null, null, { signal }))?.data;\n }, []);\n\n const fetchAllSelect = useCallback((regions: CaseDbRegion[]) => {\n return regions.filter((region) => region.region_set_id === regionSetId);\n }, [regionSetId]);\n\n const deleteOne = useCallback(async (item: CaseDbRegion) => {\n return await CaseDbGeoApi.getInstance().regionsDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbRegion) => {\n return (await CaseDbGeoApi.getInstance().regionsPutOne(item.id, {\n ...variables,\n id: item.id,\n region_set_id: regionSetId,\n })).data;\n }, [regionSetId]);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbGeoApi.getInstance().regionsPostOne({\n ...variables,\n region_set_id: regionSetId,\n })).data;\n }, [regionSetId]);\n\n const getName = useCallback((item: FormFields) => {\n return item.name;\n }, []);\n\n const schema = useMemo(() => {\n return object<FormFields>().shape({\n center_lat: SchemaUtil.number.required(),\n center_lon: SchemaUtil.number.required(),\n centroid_lat: SchemaUtil.number.required(),\n centroid_lon: SchemaUtil.number.required(),\n code: SchemaUtil.code,\n name: SchemaUtil.name,\n });\n }, []);\n\n\n const formFieldDefinitions = useMemo<FormFieldDefinition<FormFields>[]>(() => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Name`,\n name: 'name',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Code`,\n name: 'code',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Centroid latitude`,\n name: 'centroid_lat',\n type: 'number',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Centroid longitude`,\n name: 'centroid_lon',\n type: 'number',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Center latitude`,\n name: 'center_lat',\n type: 'number',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Center longitude`,\n name: 'center_lon',\n type: 'number',\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbRegion>[] => {\n return [\n TableUtil.createTextColumn<CaseDbRegion>({ id: 'name', name: t`Name` }),\n TableUtil.createTextColumn<CaseDbRegion>({ id: 'code', name: t`Code` }),\n ];\n }, [t]);\n\n const getOptimisticUpdateIntermediateItem = useCallback((variables: FormFields, previousItem: CaseDbRegion): CaseDbRegion => {\n return {\n id: previousItem.id,\n region_set_id: previousItem.region_set_id,\n ...variables,\n };\n }, []);\n\n return (\n <CrudPage<FormFields, CaseDbRegion, CaseDbRegion, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new region`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.RegionCrudCommand}\n defaultSortByField={'name'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n fetchAllSelect={fetchAllSelect}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n getOptimisticUpdateIntermediateItem={getOptimisticUpdateIntermediateItem}\n itemName={t`Region`}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.REGIONS}\n schema={schema}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('RegionsAdminPage')}\n title={t`Regions`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;AA8BA,IAAa,UAAyB;CACpC,IAAM,EAAE,mBAAgB,EAAU,GAC5B,EAAE,SAAM,EAAe,GAEvB,IAAW,EAAY,OAAO,OAC1B,MAAM,EAAa,YAAY,CAAC,CAAC,cAAc,MAAM,MAAM,EAAE,UAAO,CAAC,EAAA,EAAI,MAChF,CAAC,CAAC,GAEC,IAAiB,GAAa,MAC3B,EAAQ,QAAQ,MAAW,EAAO,kBAAkB,CAAW,GACrE,CAAC,CAAW,CAAC,GAEV,IAAY,EAAY,OAAO,MAC5B,MAAM,EAAa,YAAY,CAAC,CAAC,iBAAiB,EAAK,EAAE,GAC/D,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,GAAuB,OAClD,MAAM,EAAa,YAAY,CAAC,CAAC,cAAc,EAAK,IAAI;EAC9D,GAAG;EACH,IAAI,EAAK;EACT,eAAe;CACjB,CAAC,EAAA,CAAG,MACH,CAAC,CAAW,CAAC,GAEV,IAAY,EAAY,OAAO,OAC3B,MAAM,EAAa,YAAY,CAAC,CAAC,eAAe;EACtD,GAAG;EACH,eAAe;CACjB,CAAC,EAAA,CAAG,MACH,CAAC,CAAW,CAAC,GAEV,IAAU,GAAa,MACpB,EAAK,MACX,CAAC,CAAC,GAEC,IAAS,QACN,EAAmB,CAAC,CAAC,MAAM;EAChC,YAAY,EAAW,OAAO,SAAS;EACvC,YAAY,EAAW,OAAO,SAAS;EACvC,cAAc,EAAW,OAAO,SAAS;EACzC,cAAc,EAAW,OAAO,SAAS;EACzC,MAAM,EAAW;EACjB,MAAM,EAAW;CACnB,CAAC,GACA,CAAC,CAAC,GAGC,IAAuB,QACpB;EACL;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;GACN,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;GACN,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;GACN,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;GACN,MAAM;EACR;CACF,GACC,CAAC,CAAC,CAAC,GAEA,IAAe,QACZ,CACL,EAAU,iBAA+B;EAAE,IAAI;EAAQ,MAAM,CAAC;CAAO,CAAC,GACtE,EAAU,iBAA+B;EAAE,IAAI;EAAQ,MAAM,CAAC;CAAO,CAAC,CACxE,GACC,CAAC,CAAC,CAAC,GAEA,IAAsC,GAAa,GAAuB,OACvE;EACL,IAAI,EAAa;EACjB,eAAe,EAAa;EAC5B,GAAG;CACL,IACC,CAAC,CAAC;CAEL,OACE,kBAAC,GAAD;EACE,uBAAuB,CAAC;EACb;EACX,iBAAiB,EAAkB;EACnC,oBAAoB;EACpB,sBAAsB;EACX;EACD;EACM;EACM;EACb;EAC4B;EACrC,UAAU,CAAC;EACX,sBAAsB,EAAiB;EAC/B;EACM;EACd,kBAAkB,EAAW,iBAAiB,kBAAkB;EAChE,OAAO,CAAC;EACG;CACZ,CAAA;AAEL"}
@@ -1,7 +1,7 @@
1
1
  import { useTranslation as e } from "react-i18next";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
3
  import { TestIdUtil as n } from "@gen-epix/ui-core/utils/TestIdUtil";
4
- import { PageContainer as r } from "@gen-epix/ui/components/ui/PageContainer";
4
+ import { PageContainer as r } from "@gen-epix/ui-client-common/components/ui/PageContainer";
5
5
  //#region src/pages/TrendsPage/TrendsPage.tsx
6
6
  var i = () => {
7
7
  let { t: i } = e();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/TrendsPage/TrendsPage.tsx"],"sourcesContent":["import { PageContainer } from '@gen-epix/ui/components/ui/PageContainer';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { useTranslation } from 'react-i18next';\n\n\nexport const TrendsPage = () => {\n const { t } = useTranslation();\n\n return (\n <PageContainer\n testIdAttributes={TestIdUtil.createAttributes('TrendsPage')}\n title={t`Statistics`}\n >\n {t`Statistics`}\n </PageContainer>\n );\n};\n"],"mappings":";;;;;AAKA,IAAa,UAAmB;CAC9B,IAAM,EAAE,SAAM,EAAe;CAE7B,OACE,kBAAC,GAAD;EACE,kBAAkB,EAAW,iBAAiB,YAAY;EAC1D,OAAO,CAAC;YAEP,CAAC;CACW,CAAA;AAEnB"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/TrendsPage/TrendsPage.tsx"],"sourcesContent":["import { PageContainer } from '@gen-epix/ui-client-common/components/ui/PageContainer';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { useTranslation } from 'react-i18next';\n\n\nexport const TrendsPage = () => {\n const { t } = useTranslation();\n\n return (\n <PageContainer\n testIdAttributes={TestIdUtil.createAttributes('TrendsPage')}\n title={t`Statistics`}\n >\n {t`Statistics`}\n </PageContainer>\n );\n};\n"],"mappings":";;;;;AAKA,IAAa,UAAmB;CAC9B,IAAM,EAAE,SAAM,EAAe;CAE7B,OACE,kBAAC,GAAD;EACE,kBAAkB,EAAW,iBAAiB,YAAY;EAC1D,OAAO,CAAC;EAEP,UAAA,CAAC;CACW,CAAA;AAEnB"}
@@ -6,7 +6,7 @@ import { useEffect as o, useMemo as s } from "react";
6
6
  import { useTranslation as c } from "react-i18next";
7
7
  import { jsx as l } from "react/jsx-runtime";
8
8
  import { TestIdUtil as u } from "@gen-epix/ui-core/utils/TestIdUtil";
9
- import { PageContainer as d } from "@gen-epix/ui/components/ui/PageContainer";
9
+ import { PageContainer as d } from "@gen-epix/ui-client-common/components/ui/PageContainer";
10
10
  //#region src/pages/UploadPage/UploadPage.tsx
11
11
  var f = /* @__PURE__ */ e(t(), 1), p = () => {
12
12
  let { t: e } = c(), t = s(() => i({ stepOrder: n }), []);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/UploadPage/UploadPage.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\nimport {\n useEffect,\n useMemo,\n} from 'react';\nimport noop from 'lodash/noop';\nimport { PageContainer } from '@gen-epix/ui/components/ui/PageContainer';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\n\nimport { Upload } from '../../components/ui/Upload';\nimport {\n createUploadStore,\n STEP_ORDER_UPLOAD,\n UploadStoreContext,\n} from '../../stores/uploadStore';\n\nexport const UploadPage = () => {\n const { t } = useTranslation();\n\n const uploadStore = useMemo(() => createUploadStore({\n stepOrder: STEP_ORDER_UPLOAD,\n }), []);\n\n useEffect(() => {\n return () => {\n uploadStore.getState().destroy().catch(noop);\n };\n }, [uploadStore]);\n\n return (\n <PageContainer\n contentHeader={t`Upload`}\n fullHeight\n fullWidth\n showBreadcrumbs\n testIdAttributes={TestIdUtil.createAttributes('UploadPage')}\n title={t`Upload`}\n >\n <UploadStoreContext value={uploadStore}>\n <Upload />\n </UploadStoreContext>\n </PageContainer>\n );\n};\n"],"mappings":";;;;;;;;;;mCAgBa,UAAmB;CAC9B,IAAM,EAAE,SAAM,EAAe,GAEvB,IAAc,QAAc,EAAkB,EAClD,WAAW,EACb,CAAC,GAAG,CAAC,CAAC;CAQN,OANA,cACe;EACX,EAAY,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAA,OAAI;CAC7C,GACC,CAAC,CAAW,CAAC,GAGd,kBAAC,GAAD;EACE,eAAe,CAAC;EAChB,YAAA;EACA,WAAA;EACA,iBAAA;EACA,kBAAkB,EAAW,iBAAiB,YAAY;EAC1D,OAAO,CAAC;YAER,kBAAC,GAAD;GAAoB,OAAO;aACzB,kBAAC,GAAD,CAAS,CAAA;EACS,CAAA;CACP,CAAA;AAEnB"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/UploadPage/UploadPage.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\nimport {\n useEffect,\n useMemo,\n} from 'react';\nimport noop from 'lodash/noop';\nimport { PageContainer } from '@gen-epix/ui-client-common/components/ui/PageContainer';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\n\nimport { Upload } from '../../components/ui/Upload';\nimport {\n createUploadStore,\n STEP_ORDER_UPLOAD,\n UploadStoreContext,\n} from '../../stores/uploadStore';\n\nexport const UploadPage = () => {\n const { t } = useTranslation();\n\n const uploadStore = useMemo(() => createUploadStore({\n stepOrder: STEP_ORDER_UPLOAD,\n }), []);\n\n useEffect(() => {\n return () => {\n uploadStore.getState().destroy().catch(noop);\n };\n }, [uploadStore]);\n\n return (\n <PageContainer\n contentHeader={t`Upload`}\n fullHeight\n fullWidth\n showBreadcrumbs\n testIdAttributes={TestIdUtil.createAttributes('UploadPage')}\n title={t`Upload`}\n >\n <UploadStoreContext value={uploadStore}>\n <Upload />\n </UploadStoreContext>\n </PageContainer>\n );\n};\n"],"mappings":";;;;;;;;;;mCAgBa,UAAmB;CAC9B,IAAM,EAAE,SAAM,EAAe,GAEvB,IAAc,QAAc,EAAkB,EAClD,WAAW,EACb,CAAC,GAAG,CAAC,CAAC;CAQN,OANA,cACe;EACX,EAAY,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAA,OAAI;CAC7C,GACC,CAAC,CAAW,CAAC,GAGd,kBAAC,GAAD;EACE,eAAe,CAAC;EAChB,YAAA;EACA,WAAA;EACA,iBAAA;EACA,kBAAkB,EAAW,iBAAiB,YAAY;EAC1D,OAAO,CAAC;EAER,UAAA,kBAAC,GAAD;GAAoB,OAAO;GACzB,UAAA,kBAAC,GAAD,CAAS,CAAA;EACS,CAAA;CACP,CAAA;AAEnB"}
@@ -5,15 +5,15 @@ import { useCaseTypeSetOptionsQuery as r } from "../../dataHooks/useCaseTypeSets
5
5
  import { useUserCasePolicyNameFactory as i } from "../../hooks/useUserCasePolicyNameFactory/index.js";
6
6
  import { boolean as a, object as o, string as s } from "yup";
7
7
  import { CaseDbAbacApi as c, CaseDbCommandName as l } from "@gen-epix/api-casedb";
8
- import { FORM_FIELD_DEFINITION_TYPE as u } from "@gen-epix/ui-form/models/form";
8
+ import { FORM_FIELD_DEFINITION_TYPE as u } from "@gen-epix/ui-core-form/models/form";
9
9
  import { useCallback as d, useMemo as f } from "react";
10
10
  import { useTranslation as p } from "react-i18next";
11
11
  import { jsx as m } from "react/jsx-runtime";
12
12
  import { useArray as h } from "@gen-epix/ui-core/hooks/useArray";
13
- import { TableUtil as g } from "@gen-epix/ui/utils/TableUtil";
13
+ import { TableUtil as g } from "@gen-epix/ui-client-common/utils/TableUtil";
14
14
  import { TestIdUtil as _ } from "@gen-epix/ui-core/utils/TestIdUtil";
15
- import { CrudPage as v } from "@gen-epix/ui/pages/CrudPage";
16
- import { useUserOptionsQuery as y } from "@gen-epix/ui/dataHooks/useUsersQuery";
15
+ import { CrudPage as v } from "@gen-epix/ui-client-common/pages/CrudPage";
16
+ import { useUserOptionsQuery as y } from "@gen-epix/ui-client-common/dataHooks/useUsersQuery";
17
17
  //#region src/pages/UserAccessCasePoliciesAdminPage/UserAccessCasePoliciesAdminPage.tsx
18
18
  var b = () => {
19
19
  let { t: b } = p(), x = y(), S = t(), C = n(), w = r(), T = i(), E = h([
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/UserAccessCasePoliciesAdminPage/UserAccessCasePoliciesAdminPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n boolean,\n object,\n string,\n} from 'yup';\nimport type {\n CaseDbApiPermission,\n CaseDbUserAccessCasePolicy,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbAbacApi,\n CaseDbCommandName,\n} from '@gen-epix/api-casedb';\nimport type { OmitWithMetaData } from '@gen-epix/ui/models/data';\nimport type { TableColumn } from '@gen-epix/ui/models/table';\nimport { CrudPage } from '@gen-epix/ui/pages/CrudPage';\nimport { TableUtil } from '@gen-epix/ui/utils/TableUtil';\nimport { useUserOptionsQuery } from '@gen-epix/ui/dataHooks/useUsersQuery';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { useArray } from '@gen-epix/ui-core/hooks/useArray';\nimport type { FormFieldDefinition } from '@gen-epix/ui-form/models/form';\nimport { FORM_FIELD_DEFINITION_TYPE } from '@gen-epix/ui-form/models/form';\n\nimport { useColSetOptionsQuery } from '../../dataHooks/useColSetsQuery';\nimport { useCaseTypeSetOptionsQuery } from '../../dataHooks/useCaseTypeSetsQuery';\nimport { useDataCollectionOptionsQuery } from '../../dataHooks/useDataCollectionsQuery';\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\nimport { useUserCasePolicyNameFactory } from '../../hooks/useUserCasePolicyNameFactory';\n\ntype FormFields = OmitWithMetaData<CaseDbUserAccessCasePolicy, 'case_type_set' | 'data_collection' | 'read_col_set' | 'user' | 'write_col_set'>;\n\nexport const UserAccessCasePoliciesAdminPage = () => {\n const { t } = useTranslation();\n const userOptionsQuery = useUserOptionsQuery();\n const dataCollectionOptionsQuery = useDataCollectionOptionsQuery();\n const colSetOptionsQuery = useColSetOptionsQuery();\n const caseTypeSetOptions = useCaseTypeSetOptionsQuery();\n\n const nameFactory = useUserCasePolicyNameFactory();\n\n const loadables = useArray([nameFactory, userOptionsQuery, dataCollectionOptionsQuery, colSetOptionsQuery, caseTypeSetOptions]);\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbAbacApi.getInstance().userAccessCasePoliciesGetAll(null, null, { signal }))?.data;\n }, []);\n\n const deleteOne = useCallback(async (item: CaseDbUserAccessCasePolicy) => {\n return await CaseDbAbacApi.getInstance().userAccessCasePoliciesDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbUserAccessCasePolicy) => {\n return (await CaseDbAbacApi.getInstance().userAccessCasePoliciesPutOne(item.id, { id: item.id, ...variables })).data;\n }, []);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbAbacApi.getInstance().userAccessCasePoliciesPostOne(variables)).data;\n }, []);\n\n const getName = useCallback((item: CaseDbUserAccessCasePolicy) => {\n return nameFactory.getName(item);\n }, [nameFactory]);\n\n const schema = useMemo(() => {\n return object<FormFields>().shape({\n add_case: boolean().required(),\n add_case_set: boolean().required(),\n case_type_set_id: string().uuid4().required().max(100),\n data_collection_id: string().uuid4().required().max(100),\n is_active: boolean().required(),\n read_case_set: boolean().required(),\n read_col_set_id: string().uuid4().required().max(100),\n remove_case: boolean().required(),\n remove_case_set: boolean().required(),\n user_id: string().uuid4().required().max(100),\n write_case_set: boolean().required(),\n write_col_set_id: string().uuid4().nullable().notRequired().max(100),\n });\n }, []);\n\n const formFieldDefinitions = useMemo<FormFieldDefinition<FormFields>[]>(() => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`User`,\n loading: userOptionsQuery.isLoading,\n name: 'user_id',\n options: userOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Data collection`,\n loading: dataCollectionOptionsQuery.isLoading,\n name: 'data_collection_id',\n options: dataCollectionOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Case type set`,\n loading: caseTypeSetOptions.isLoading,\n name: 'case_type_set_id',\n options: caseTypeSetOptions.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Read column set`,\n loading: colSetOptionsQuery.isLoading,\n name: 'read_col_set_id',\n options: colSetOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Write column set`,\n loading: colSetOptionsQuery.isLoading,\n name: 'write_col_set_id',\n options: colSetOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Add case`,\n name: 'add_case',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Remove case`,\n name: 'remove_case',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Add case set`,\n name: 'add_case_set',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Remove case set`,\n name: 'remove_case_set',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Read case set`,\n name: 'read_case_set',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Write case set`,\n name: 'write_case_set',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Is active`,\n name: 'is_active',\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [colSetOptionsQuery.isLoading, colSetOptionsQuery.options, caseTypeSetOptions.isLoading, caseTypeSetOptions.options, dataCollectionOptionsQuery.isLoading, dataCollectionOptionsQuery.options, userOptionsQuery.isLoading, userOptionsQuery.options, t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbUserAccessCasePolicy>[] => {\n return [\n TableUtil.createOptionsColumn<CaseDbUserAccessCasePolicy>({ id: 'user_id', name: t`User`, options: userOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbUserAccessCasePolicy>({ id: 'data_collection_id', name: t`Data collection`, options: dataCollectionOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbUserAccessCasePolicy>({ id: 'case_type_set_id', name: t`Case type set`, options: caseTypeSetOptions.options }),\n TableUtil.createOptionsColumn<CaseDbUserAccessCasePolicy>({ id: 'read_col_set_id', name: t`Read column set`, options: colSetOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbUserAccessCasePolicy>({ id: 'write_col_set_id', name: t`Write column set`, options: colSetOptionsQuery.options }),\n\n TableUtil.createBooleanColumn<CaseDbUserAccessCasePolicy>({ id: 'add_case', name: t`Add case` }),\n TableUtil.createBooleanColumn<CaseDbUserAccessCasePolicy>({ id: 'remove_case', name: t`Remove case` }),\n TableUtil.createBooleanColumn<CaseDbUserAccessCasePolicy>({ id: 'add_case_set', name: t`Add case set` }),\n TableUtil.createBooleanColumn<CaseDbUserAccessCasePolicy>({ id: 'remove_case_set', name: t`Remove case set` }),\n TableUtil.createBooleanColumn<CaseDbUserAccessCasePolicy>({ id: 'read_case_set', name: t`Read case set` }),\n TableUtil.createBooleanColumn<CaseDbUserAccessCasePolicy>({ id: 'write_case_set', name: t`Write case set` }),\n\n TableUtil.createBooleanColumn<CaseDbUserAccessCasePolicy>({ id: 'is_active', name: t`Active` }),\n ];\n }, [colSetOptionsQuery.options, caseTypeSetOptions.options, dataCollectionOptionsQuery.options, userOptionsQuery.options, t]);\n\n return (\n <CrudPage<FormFields, CaseDbUserAccessCasePolicy, CaseDbUserAccessCasePolicy, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new user access case policy`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.UserAccessCasePolicyCrudCommand}\n defaultSortByField={'user_id'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n itemName={t`User access case policy`}\n loadables={loadables}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.USER_ACCESS_CASE_POLICIES}\n schema={schema}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('UserAccessCasePoliciesAdminPage')}\n title={t`User access case policies`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/UserAccessCasePoliciesAdminPage/UserAccessCasePoliciesAdminPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n boolean,\n object,\n string,\n} from 'yup';\nimport type {\n CaseDbApiPermission,\n CaseDbUserAccessCasePolicy,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbAbacApi,\n CaseDbCommandName,\n} from '@gen-epix/api-casedb';\nimport type { OmitWithMetaData } from '@gen-epix/ui-client-common/models/data';\nimport type { TableColumn } from '@gen-epix/ui-client-common/models/table';\nimport { CrudPage } from '@gen-epix/ui-client-common/pages/CrudPage';\nimport { TableUtil } from '@gen-epix/ui-client-common/utils/TableUtil';\nimport { useUserOptionsQuery } from '@gen-epix/ui-client-common/dataHooks/useUsersQuery';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { useArray } from '@gen-epix/ui-core/hooks/useArray';\nimport type { FormFieldDefinition } from '@gen-epix/ui-core-form/models/form';\nimport { FORM_FIELD_DEFINITION_TYPE } from '@gen-epix/ui-core-form/models/form';\n\nimport { useColSetOptionsQuery } from '../../dataHooks/useColSetsQuery';\nimport { useCaseTypeSetOptionsQuery } from '../../dataHooks/useCaseTypeSetsQuery';\nimport { useDataCollectionOptionsQuery } from '../../dataHooks/useDataCollectionsQuery';\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\nimport { useUserCasePolicyNameFactory } from '../../hooks/useUserCasePolicyNameFactory';\n\ntype FormFields = OmitWithMetaData<CaseDbUserAccessCasePolicy, 'case_type_set' | 'data_collection' | 'read_col_set' | 'user' | 'write_col_set'>;\n\nexport const UserAccessCasePoliciesAdminPage = () => {\n const { t } = useTranslation();\n const userOptionsQuery = useUserOptionsQuery();\n const dataCollectionOptionsQuery = useDataCollectionOptionsQuery();\n const colSetOptionsQuery = useColSetOptionsQuery();\n const caseTypeSetOptions = useCaseTypeSetOptionsQuery();\n\n const nameFactory = useUserCasePolicyNameFactory();\n\n const loadables = useArray([nameFactory, userOptionsQuery, dataCollectionOptionsQuery, colSetOptionsQuery, caseTypeSetOptions]);\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbAbacApi.getInstance().userAccessCasePoliciesGetAll(null, null, { signal }))?.data;\n }, []);\n\n const deleteOne = useCallback(async (item: CaseDbUserAccessCasePolicy) => {\n return await CaseDbAbacApi.getInstance().userAccessCasePoliciesDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbUserAccessCasePolicy) => {\n return (await CaseDbAbacApi.getInstance().userAccessCasePoliciesPutOne(item.id, { id: item.id, ...variables })).data;\n }, []);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbAbacApi.getInstance().userAccessCasePoliciesPostOne(variables)).data;\n }, []);\n\n const getName = useCallback((item: CaseDbUserAccessCasePolicy) => {\n return nameFactory.getName(item);\n }, [nameFactory]);\n\n const schema = useMemo(() => {\n return object<FormFields>().shape({\n add_case: boolean().required(),\n add_case_set: boolean().required(),\n case_type_set_id: string().uuid4().required().max(100),\n data_collection_id: string().uuid4().required().max(100),\n is_active: boolean().required(),\n read_case_set: boolean().required(),\n read_col_set_id: string().uuid4().required().max(100),\n remove_case: boolean().required(),\n remove_case_set: boolean().required(),\n user_id: string().uuid4().required().max(100),\n write_case_set: boolean().required(),\n write_col_set_id: string().uuid4().nullable().notRequired().max(100),\n });\n }, []);\n\n const formFieldDefinitions = useMemo<FormFieldDefinition<FormFields>[]>(() => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`User`,\n loading: userOptionsQuery.isLoading,\n name: 'user_id',\n options: userOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Data collection`,\n loading: dataCollectionOptionsQuery.isLoading,\n name: 'data_collection_id',\n options: dataCollectionOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Case type set`,\n loading: caseTypeSetOptions.isLoading,\n name: 'case_type_set_id',\n options: caseTypeSetOptions.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Read column set`,\n loading: colSetOptionsQuery.isLoading,\n name: 'read_col_set_id',\n options: colSetOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Write column set`,\n loading: colSetOptionsQuery.isLoading,\n name: 'write_col_set_id',\n options: colSetOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Add case`,\n name: 'add_case',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Remove case`,\n name: 'remove_case',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Add case set`,\n name: 'add_case_set',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Remove case set`,\n name: 'remove_case_set',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Read case set`,\n name: 'read_case_set',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Write case set`,\n name: 'write_case_set',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN,\n label: t`Is active`,\n name: 'is_active',\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [colSetOptionsQuery.isLoading, colSetOptionsQuery.options, caseTypeSetOptions.isLoading, caseTypeSetOptions.options, dataCollectionOptionsQuery.isLoading, dataCollectionOptionsQuery.options, userOptionsQuery.isLoading, userOptionsQuery.options, t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbUserAccessCasePolicy>[] => {\n return [\n TableUtil.createOptionsColumn<CaseDbUserAccessCasePolicy>({ id: 'user_id', name: t`User`, options: userOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbUserAccessCasePolicy>({ id: 'data_collection_id', name: t`Data collection`, options: dataCollectionOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbUserAccessCasePolicy>({ id: 'case_type_set_id', name: t`Case type set`, options: caseTypeSetOptions.options }),\n TableUtil.createOptionsColumn<CaseDbUserAccessCasePolicy>({ id: 'read_col_set_id', name: t`Read column set`, options: colSetOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbUserAccessCasePolicy>({ id: 'write_col_set_id', name: t`Write column set`, options: colSetOptionsQuery.options }),\n\n TableUtil.createBooleanColumn<CaseDbUserAccessCasePolicy>({ id: 'add_case', name: t`Add case` }),\n TableUtil.createBooleanColumn<CaseDbUserAccessCasePolicy>({ id: 'remove_case', name: t`Remove case` }),\n TableUtil.createBooleanColumn<CaseDbUserAccessCasePolicy>({ id: 'add_case_set', name: t`Add case set` }),\n TableUtil.createBooleanColumn<CaseDbUserAccessCasePolicy>({ id: 'remove_case_set', name: t`Remove case set` }),\n TableUtil.createBooleanColumn<CaseDbUserAccessCasePolicy>({ id: 'read_case_set', name: t`Read case set` }),\n TableUtil.createBooleanColumn<CaseDbUserAccessCasePolicy>({ id: 'write_case_set', name: t`Write case set` }),\n\n TableUtil.createBooleanColumn<CaseDbUserAccessCasePolicy>({ id: 'is_active', name: t`Active` }),\n ];\n }, [colSetOptionsQuery.options, caseTypeSetOptions.options, dataCollectionOptionsQuery.options, userOptionsQuery.options, t]);\n\n return (\n <CrudPage<FormFields, CaseDbUserAccessCasePolicy, CaseDbUserAccessCasePolicy, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new user access case policy`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.UserAccessCasePolicyCrudCommand}\n defaultSortByField={'user_id'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n itemName={t`User access case policy`}\n loadables={loadables}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.USER_ACCESS_CASE_POLICIES}\n schema={schema}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('UserAccessCasePoliciesAdminPage')}\n title={t`User access case policies`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { EffectiveRightsUtil as e } from "../../utils/EffectiveRightsUtil/index.js";
2
2
  import { useDataCollectionOptionsQuery as t, useDataCollectionsMapQuery as n } from "../../dataHooks/useDataCollectionsQuery/index.js";
3
3
  import { useCaseTypeSetMembersQuery as r } from "../../dataHooks/useCaseTypeSetMembersQuery/index.js";
4
- import { t as i } from "../../_chunks/chunk-KS7C4IRE.js";
4
+ import { t as i } from "../../_chunks/chunk-BV7QT456.js";
5
5
  import { useColSetMembersQuery as a } from "../../dataHooks/useColSetMembersQuery/index.js";
6
6
  import { useOrganizationAccessCasePoliciesQuery as o } from "../../dataHooks/useOrganizationAccessCasePoliciesQuery/index.js";
7
7
  import { useOrganizationShareCasePoliciesQuery as s } from "../../dataHooks/useOrganizationShareCasePoliciesQuery/index.js";
@@ -11,23 +11,23 @@ import { UsersEffectiveRightsDetailsDialog as te } from "../../components/ui/Use
11
11
  import { useUserAccessCasePoliciesQuery as u } from "../../dataHooks/useUserAccessCasePoliciesQuery/index.js";
12
12
  import { useUserShareCasePoliciesQuery as ne } from "../../dataHooks/useUserShareCasePoliciesQuery/index.js";
13
13
  import { CaseDbOrganizationApi as re } from "@gen-epix/api-casedb";
14
- import { ConfigService as d } from "@gen-epix/ui/classes/services/ConfigService";
15
- import { COMMON_QUERY_KEY as f } from "@gen-epix/ui/constants/query";
14
+ import { ConfigService as d } from "@gen-epix/ui-client-common/classes/services/ConfigService";
15
+ import { COMMON_QUERY_KEY as f } from "@gen-epix/ui-client-common/constants/query";
16
16
  import { Box as p, Link as m, useTheme as h } from "@mui/material";
17
17
  import { useCallback as g, useMemo as _, useRef as v } from "react";
18
18
  import { useTranslation as y } from "react-i18next";
19
- import { TableStoreContextProvider as b, createTableStore as x } from "@gen-epix/ui/stores/tableStore";
19
+ import { TableStoreContextProvider as b, createTableStore as x } from "@gen-epix/ui-client-common/stores/tableStore";
20
20
  import { Fragment as ie, jsx as S, jsxs as C } from "react/jsx-runtime";
21
- import { ResponseHandler as ae } from "@gen-epix/ui/components/ui/ResponseHandler";
22
- import { useItemQuery as oe } from "@gen-epix/ui/hooks/useItemQuery";
21
+ import { ResponseHandler as ae } from "@gen-epix/ui-client-common/components/ui/ResponseHandler";
22
+ import { useItemQuery as oe } from "@gen-epix/ui-client-common/hooks/useItemQuery";
23
23
  import { useArray as se } from "@gen-epix/ui-core/hooks/useArray";
24
- import { Table as ce, TableCaption as le, TableMenu as ue, TableSidebarMenu as de } from "@gen-epix/ui/components/ui/Table";
25
- import { TableUtil as w } from "@gen-epix/ui/utils/TableUtil";
26
- import { useInitializeTableStore as T } from "@gen-epix/ui/hooks/useInitializeTableStore";
24
+ import { Table as ce, TableCaption as le, TableMenu as ue, TableSidebarMenu as de } from "@gen-epix/ui-client-common/components/ui/Table";
25
+ import { TableUtil as w } from "@gen-epix/ui-client-common/utils/TableUtil";
26
+ import { useInitializeTableStore as T } from "@gen-epix/ui-client-common/hooks/useInitializeTableStore";
27
27
  import { TestIdUtil as E } from "@gen-epix/ui-core/utils/TestIdUtil";
28
- import { RouterService as D } from "@gen-epix/ui/classes/services/RouterService";
29
- import { PageContainer as O } from "@gen-epix/ui/components/ui/PageContainer";
30
- import { UserUtil as k } from "@gen-epix/ui/utils/UserUtil";
28
+ import { RouterService as D } from "@gen-epix/ui-client-common/classes/services/RouterService";
29
+ import { PageContainer as O } from "@gen-epix/ui-client-common/components/ui/PageContainer";
30
+ import { UserUtil as k } from "@gen-epix/ui-client-common/utils/UserUtil";
31
31
  //#region src/pages/UserEffectiveRightsAdminPage/UserEffectiveRightsAdminPage.tsx
32
32
  var A = () => {
33
33
  let { t: A } = y(), j = h(), M = v(null), { userId: N } = i(), { data: P, error: F, isLoading: I } = oe({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/UserEffectiveRightsAdminPage/UserEffectiveRightsAdminPage.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\nimport {\n Box,\n Link,\n useTheme,\n} from '@mui/material';\nimport {\n useCallback,\n useMemo,\n useRef,\n} from 'react';\nimport type { MouseEvent as ReactMouseEvent } from 'react';\nimport { useParams } from 'react-router-dom';\nimport type { CaseDbUser } from '@gen-epix/api-casedb';\nimport { CaseDbOrganizationApi } from '@gen-epix/api-casedb';\nimport type {\n TableColumn,\n TableRowParams,\n} from '@gen-epix/ui/models/table';\nimport { COMMON_QUERY_KEY } from '@gen-epix/ui/constants/query';\nimport { ConfigService } from '@gen-epix/ui/classes/services/ConfigService';\nimport {\n createTableStore,\n TableStoreContextProvider,\n} from '@gen-epix/ui/stores/tableStore';\nimport { PageContainer } from '@gen-epix/ui/components/ui/PageContainer';\nimport { ResponseHandler } from '@gen-epix/ui/components/ui/ResponseHandler';\nimport { RouterService } from '@gen-epix/ui/classes/services/RouterService';\nimport {\n Table,\n TableCaption,\n TableMenu,\n TableSidebarMenu,\n} from '@gen-epix/ui/components/ui/Table';\nimport { TableUtil } from '@gen-epix/ui/utils/TableUtil';\nimport { useInitializeTableStore } from '@gen-epix/ui/hooks/useInitializeTableStore';\nimport { useItemQuery } from '@gen-epix/ui/hooks/useItemQuery';\nimport { UserUtil } from '@gen-epix/ui/utils/UserUtil';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { useArray } from '@gen-epix/ui-core/hooks/useArray';\n\nimport type {\n UsersEffectiveRightsDetailsDialogOpenProps,\n UsersEffectiveRightsDetailsDialogRefMethods,\n} from '../../components/ui/UsersEffectiveRightsDetailsDialog';\nimport { UsersEffectiveRightsDetailsDialog } from '../../components/ui/UsersEffectiveRightsDetailsDialog';\nimport { useCaseTypeSetMembersQuery } from '../../dataHooks/useCaseTypeSetMembersQuery';\nimport {\n useCaseTypeSetNameFactory,\n useCaseTypeSetsMapQuery,\n} from '../../dataHooks/useCaseTypeSetsQuery';\nimport { useColSetMembersQuery } from '../../dataHooks/useColSetMembersQuery';\nimport { useColSetMapQuery } from '../../dataHooks/useColSetsQuery';\nimport {\n useDataCollectionOptionsQuery,\n useDataCollectionsMapQuery,\n} from '../../dataHooks/useDataCollectionsQuery';\nimport { useOrganizationAccessCasePoliciesQuery } from '../../dataHooks/useOrganizationAccessCasePoliciesQuery';\nimport { useOrganizationShareCasePoliciesQuery } from '../../dataHooks/useOrganizationShareCasePoliciesQuery';\nimport { useUserAccessCasePoliciesQuery } from '../../dataHooks/useUserAccessCasePoliciesQuery';\nimport { useUserShareCasePoliciesQuery } from '../../dataHooks/useUserShareCasePoliciesQuery';\nimport type { UserEffectiveRight } from '../../models/caseAccess';\nimport { EffectiveRightsUtil } from '../../utils/EffectiveRightsUtil';\n\n\nexport const UserEffectiveRightsAdminPage = () => {\n const { t } = useTranslation();\n const theme = useTheme();\n const usersEffectiveRightsDetailsDialogRef = useRef<UsersEffectiveRightsDetailsDialogRefMethods>(null);\n\n const { userId } = useParams();\n\n const { data: user, error: userError, isLoading: isUserLoading } = useItemQuery<CaseDbUser>({\n baseQueryKey: COMMON_QUERY_KEY.USERS,\n itemId: userId,\n useQueryOptions: {\n queryFn: async ({ signal }) => {\n const response = await CaseDbOrganizationApi.getInstance().usersGetOne(userId, { signal });\n return response.data;\n },\n },\n });\n\n const colSetMembersQuery = useColSetMembersQuery();\n const caseTypeSetsMapQuery = useCaseTypeSetsMapQuery();\n const colSetMapQuery = useColSetMapQuery();\n const caseTypeSetMembersQuery = useCaseTypeSetMembersQuery();\n const caseTypeSetNameFactory = useCaseTypeSetNameFactory();\n const dataCollectionMapQuery = useDataCollectionsMapQuery();\n const dataCollectionOptionsQuery = useDataCollectionOptionsQuery();\n const organizationAccessCasePoliciesQuery = useOrganizationAccessCasePoliciesQuery(policies => policies.filter(policy => policy.is_active && policy.organization_id === user.organization_id));\n const organizationShareCasePoliciesQuery = useOrganizationShareCasePoliciesQuery(policies => policies.filter(policy => policy.is_active && policy.organization_id === user.organization_id));\n const userAccessCasePoliciesQuery = useUserAccessCasePoliciesQuery(policies => policies.filter(policy => policy.is_active && policy.user_id === user.id));\n const userShareCasePoliciesQuery = useUserShareCasePoliciesQuery(policies => policies.filter(policy => policy.is_active && policy.user_id === user.id));\n\n const loadables = useArray([\n organizationAccessCasePoliciesQuery,\n organizationShareCasePoliciesQuery,\n userAccessCasePoliciesQuery,\n userShareCasePoliciesQuery,\n caseTypeSetMembersQuery,\n colSetMembersQuery,\n dataCollectionMapQuery,\n dataCollectionOptionsQuery,\n colSetMapQuery,\n caseTypeSetNameFactory,\n caseTypeSetsMapQuery,\n ]);\n\n const tableStore = useMemo(() => createTableStore<UserEffectiveRight>({\n defaultSortByField: 'data_collection_id',\n defaultSortDirection: 'asc',\n idSelectorCallback: (entry) => entry.data_collection_id,\n navigatorFunction: RouterService.getInstance().router.navigate,\n storageNamePostFix: 'UsersEffectiveRightsAdminPage-Table',\n storageVersion: 1,\n }), []);\n\n const effectiveRights = useMemo<UserEffectiveRight[]>(() => {\n const { data: organizationAccessCasePolicies } = organizationAccessCasePoliciesQuery;\n const { data: organizationShareCasePolicies } = organizationShareCasePoliciesQuery;\n const { data: userAccessCasePolicies } = userAccessCasePoliciesQuery;\n const { data: userShareCasePolicies } = userShareCasePoliciesQuery;\n const { data: caseTypeSetMembers } = caseTypeSetMembersQuery;\n const { data: colSetMembers } = colSetMembersQuery;\n\n return EffectiveRightsUtil.assembleUserEffectiveRights({\n caseTypeSetMembers,\n colSetMembers,\n organizationAccessCasePolicies,\n organizationShareCasePolicies,\n user,\n userAccessCasePolicies,\n userShareCasePolicies,\n });\n\n }, [colSetMembersQuery, caseTypeSetMembersQuery, organizationAccessCasePoliciesQuery, organizationShareCasePoliciesQuery, user, userAccessCasePoliciesQuery, userShareCasePoliciesQuery]);\n\n const renderSetCell = useCallback((params: { getName: (memberId: string) => string; setIds: string[]; type: UsersEffectiveRightsDetailsDialogOpenProps['type']; uncategorizedMemberIds: string[]; userEffectiveRight: UserEffectiveRight }) => {\n const { getName, setIds, type, uncategorizedMemberIds, userEffectiveRight } = params;\n const onLinkClick = (event: ReactMouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n usersEffectiveRightsDetailsDialogRef.current.open({\n type,\n user,\n userEffectiveRight,\n });\n };\n\n if (uncategorizedMemberIds.length > 0) {\n return (\n <Link\n href={'#'}\n // eslint-disable-next-line @eslint-react/kit/jsx-no-bind\n onClick={onLinkClick}\n tabIndex={0}\n >\n {t`View all`}\n </Link>\n );\n }\n if (setIds.length > 2) {\n return (\n <Link\n href={'#'}\n // eslint-disable-next-line @eslint-react/kit/jsx-no-bind\n onClick={onLinkClick}\n tabIndex={0}\n >\n {t('View {{numSets}} sets', { numSets: setIds.length })}\n </Link>\n );\n }\n\n return (\n <>\n {setIds.map(setId => (\n <Link\n href={'#'}\n key={setId}\n\n onClick={onLinkClick}\n >\n {getName(setId) ?? setId}\n </Link>\n ))}\n </>\n );\n }, [t, user]);\n\n const renderCaseTypeSetsCell = useCallback(({ row }: TableRowParams<UserEffectiveRight>) => {\n return renderSetCell({\n getName: (caseTypeId: string) => caseTypeSetNameFactory.getName(caseTypeSetsMapQuery.map.get(caseTypeId)),\n setIds: row.case_type_set_ids,\n type: 'caseTypeSets',\n uncategorizedMemberIds: row.uncategorized_case_type_ids,\n userEffectiveRight: row,\n });\n }, [caseTypeSetNameFactory, caseTypeSetsMapQuery.map, renderSetCell]);\n\n const renderReadCaseSetsCell = useCallback(({ row }: TableRowParams<UserEffectiveRight>) => {\n return renderSetCell({\n getName: (colId: string) => colSetMapQuery.map.get(colId).name,\n setIds: row.read_col_set_ids,\n type: 'readColSets',\n uncategorizedMemberIds: row.uncategorized_read_col_ids,\n userEffectiveRight: row,\n });\n }, [colSetMapQuery.map, renderSetCell]);\n\n const renderWriteCaseSetsCell = useCallback(({ row }: TableRowParams<UserEffectiveRight>) => {\n return renderSetCell({\n getName: (colId: string) => colSetMapQuery.map.get(colId)?.name,\n setIds: row.write_col_set_ids,\n type: 'writeColSets',\n uncategorizedMemberIds: row.uncategorized_write_col_ids,\n userEffectiveRight: row,\n });\n }, [colSetMapQuery.map, renderSetCell]);\n\n const tableColumns = useMemo<TableColumn<UserEffectiveRight>[]>(() => {\n return [\n TableUtil.createReadableIndexColumn(),\n TableUtil.createOptionsColumn({ id: 'data_collection_id', name: t`Data collection`, options: dataCollectionOptionsQuery.options }),\n {\n headerName: t`Case type sets`,\n hideInFilter: true,\n id: 'case_type_set_ids',\n isInitiallyVisible: true,\n renderCell: renderCaseTypeSetsCell,\n type: 'text',\n widthFlex: 1,\n },\n {\n headerName: t`Read column sets`,\n hideInFilter: true,\n id: 'read_col_set_ids',\n isInitiallyVisible: true,\n renderCell: renderReadCaseSetsCell,\n type: 'text',\n widthFlex: 1,\n },\n {\n headerName: t`Write column sets`,\n hideInFilter: true,\n id: 'write_col_set_ids',\n isInitiallyVisible: true,\n renderCell: renderWriteCaseSetsCell,\n type: 'text',\n widthFlex: 1,\n },\n\n TableUtil.createBooleanColumn<UserEffectiveRight>({ id: 'add_case', name: t`Add case` }),\n TableUtil.createBooleanColumn<UserEffectiveRight>({ id: 'remove_case', name: t`Remove case` }),\n TableUtil.createBooleanColumn<UserEffectiveRight>({ id: 'add_case_set', name: t`Add case set` }),\n TableUtil.createBooleanColumn<UserEffectiveRight>({ id: 'remove_case_set', name: t`Remove case set` }),\n TableUtil.createBooleanColumn<UserEffectiveRight>({ id: 'read_case_set', name: t`Read case set` }),\n TableUtil.createBooleanColumn<UserEffectiveRight>({ id: 'write_case_set', name: t`Write case set` }),\n {\n headerName: t`Addition al rights`,\n id: 'has_additional_rights',\n isInitiallyVisible: true,\n type: 'boolean',\n valueGetter: (params) => params.row.effective_share_case_rights.length > 0,\n widthFlex: 0.25,\n },\n ];\n }, [dataCollectionOptionsQuery.options, renderCaseTypeSetsCell, renderReadCaseSetsCell, renderWriteCaseSetsCell, t]);\n\n const getRowName = useCallback((row: UserEffectiveRight) => {\n return dataCollectionMapQuery.map.get(row.data_collection_id)?.name ?? row.data_collection_id;\n }, [dataCollectionMapQuery.map]);\n\n const onRowClick = useCallback((params: TableRowParams<UserEffectiveRight>) => {\n usersEffectiveRightsDetailsDialogRef.current.open({\n type: 'caseTypeSets',\n user,\n userEffectiveRight: params.row,\n });\n }, [user]);\n\n useInitializeTableStore({ columns: tableColumns, createFiltersFromColumns: true, rows: effectiveRights, store: tableStore });\n\n return (\n <TableStoreContextProvider store={tableStore}>\n <PageContainer\n contentActions={(<TableMenu />)}\n contentHeader={(\n <TableCaption\n caption={user ? t('{{userName}} effective rights', { userName: UserUtil.getUserDisplayValue(user, t) }) : t`⌛ Loading...`}\n component={'h2'}\n variant={'h2'}\n />\n )}\n fullWidth\n showBreadcrumbs\n testIdAttributes={TestIdUtil.createAttributes('UsersEffectiveRightsAdminPage')}\n title={t`Users effective rights`}\n >\n <Box\n sx={{\n height: '100%',\n position: 'relative',\n }}\n >\n <ResponseHandler\n error={userError}\n inlineSpinner\n isLoading={isUserLoading}\n loadables={loadables}\n >\n <TableSidebarMenu />\n <Box\n sx={{\n height: '100%',\n paddingLeft: theme.spacing(ConfigService.getInstance().config.layout.SIDEBAR_MENU_WIDTH + 1),\n width: '100%',\n }}\n >\n <Table\n getRowName={getRowName}\n onRowClick={onRowClick}\n />\n </Box>\n </ResponseHandler>\n </Box>\n <UsersEffectiveRightsDetailsDialog ref={usersEffectiveRightsDetailsDialogRef} />\n </PageContainer>\n </TableStoreContextProvider>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/UserEffectiveRightsAdminPage/UserEffectiveRightsAdminPage.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\nimport {\n Box,\n Link,\n useTheme,\n} from '@mui/material';\nimport {\n useCallback,\n useMemo,\n useRef,\n} from 'react';\nimport type { MouseEvent as ReactMouseEvent } from 'react';\nimport { useParams } from 'react-router-dom';\nimport type { CaseDbUser } from '@gen-epix/api-casedb';\nimport { CaseDbOrganizationApi } from '@gen-epix/api-casedb';\nimport type {\n TableColumn,\n TableRowParams,\n} from '@gen-epix/ui-client-common/models/table';\nimport { COMMON_QUERY_KEY } from '@gen-epix/ui-client-common/constants/query';\nimport { ConfigService } from '@gen-epix/ui-client-common/classes/services/ConfigService';\nimport {\n createTableStore,\n TableStoreContextProvider,\n} from '@gen-epix/ui-client-common/stores/tableStore';\nimport { PageContainer } from '@gen-epix/ui-client-common/components/ui/PageContainer';\nimport { ResponseHandler } from '@gen-epix/ui-client-common/components/ui/ResponseHandler';\nimport { RouterService } from '@gen-epix/ui-client-common/classes/services/RouterService';\nimport {\n Table,\n TableCaption,\n TableMenu,\n TableSidebarMenu,\n} from '@gen-epix/ui-client-common/components/ui/Table';\nimport { TableUtil } from '@gen-epix/ui-client-common/utils/TableUtil';\nimport { useInitializeTableStore } from '@gen-epix/ui-client-common/hooks/useInitializeTableStore';\nimport { useItemQuery } from '@gen-epix/ui-client-common/hooks/useItemQuery';\nimport { UserUtil } from '@gen-epix/ui-client-common/utils/UserUtil';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { useArray } from '@gen-epix/ui-core/hooks/useArray';\n\nimport type {\n UsersEffectiveRightsDetailsDialogOpenProps,\n UsersEffectiveRightsDetailsDialogRefMethods,\n} from '../../components/ui/UsersEffectiveRightsDetailsDialog';\nimport { UsersEffectiveRightsDetailsDialog } from '../../components/ui/UsersEffectiveRightsDetailsDialog';\nimport { useCaseTypeSetMembersQuery } from '../../dataHooks/useCaseTypeSetMembersQuery';\nimport {\n useCaseTypeSetNameFactory,\n useCaseTypeSetsMapQuery,\n} from '../../dataHooks/useCaseTypeSetsQuery';\nimport { useColSetMembersQuery } from '../../dataHooks/useColSetMembersQuery';\nimport { useColSetMapQuery } from '../../dataHooks/useColSetsQuery';\nimport {\n useDataCollectionOptionsQuery,\n useDataCollectionsMapQuery,\n} from '../../dataHooks/useDataCollectionsQuery';\nimport { useOrganizationAccessCasePoliciesQuery } from '../../dataHooks/useOrganizationAccessCasePoliciesQuery';\nimport { useOrganizationShareCasePoliciesQuery } from '../../dataHooks/useOrganizationShareCasePoliciesQuery';\nimport { useUserAccessCasePoliciesQuery } from '../../dataHooks/useUserAccessCasePoliciesQuery';\nimport { useUserShareCasePoliciesQuery } from '../../dataHooks/useUserShareCasePoliciesQuery';\nimport type { UserEffectiveRight } from '../../models/caseAccess';\nimport { EffectiveRightsUtil } from '../../utils/EffectiveRightsUtil';\n\n\nexport const UserEffectiveRightsAdminPage = () => {\n const { t } = useTranslation();\n const theme = useTheme();\n const usersEffectiveRightsDetailsDialogRef = useRef<UsersEffectiveRightsDetailsDialogRefMethods>(null);\n\n const { userId } = useParams();\n\n const { data: user, error: userError, isLoading: isUserLoading } = useItemQuery<CaseDbUser>({\n baseQueryKey: COMMON_QUERY_KEY.USERS,\n itemId: userId,\n useQueryOptions: {\n queryFn: async ({ signal }) => {\n const response = await CaseDbOrganizationApi.getInstance().usersGetOne(userId, { signal });\n return response.data;\n },\n },\n });\n\n const colSetMembersQuery = useColSetMembersQuery();\n const caseTypeSetsMapQuery = useCaseTypeSetsMapQuery();\n const colSetMapQuery = useColSetMapQuery();\n const caseTypeSetMembersQuery = useCaseTypeSetMembersQuery();\n const caseTypeSetNameFactory = useCaseTypeSetNameFactory();\n const dataCollectionMapQuery = useDataCollectionsMapQuery();\n const dataCollectionOptionsQuery = useDataCollectionOptionsQuery();\n const organizationAccessCasePoliciesQuery = useOrganizationAccessCasePoliciesQuery(policies => policies.filter(policy => policy.is_active && policy.organization_id === user.organization_id));\n const organizationShareCasePoliciesQuery = useOrganizationShareCasePoliciesQuery(policies => policies.filter(policy => policy.is_active && policy.organization_id === user.organization_id));\n const userAccessCasePoliciesQuery = useUserAccessCasePoliciesQuery(policies => policies.filter(policy => policy.is_active && policy.user_id === user.id));\n const userShareCasePoliciesQuery = useUserShareCasePoliciesQuery(policies => policies.filter(policy => policy.is_active && policy.user_id === user.id));\n\n const loadables = useArray([\n organizationAccessCasePoliciesQuery,\n organizationShareCasePoliciesQuery,\n userAccessCasePoliciesQuery,\n userShareCasePoliciesQuery,\n caseTypeSetMembersQuery,\n colSetMembersQuery,\n dataCollectionMapQuery,\n dataCollectionOptionsQuery,\n colSetMapQuery,\n caseTypeSetNameFactory,\n caseTypeSetsMapQuery,\n ]);\n\n const tableStore = useMemo(() => createTableStore<UserEffectiveRight>({\n defaultSortByField: 'data_collection_id',\n defaultSortDirection: 'asc',\n idSelectorCallback: (entry) => entry.data_collection_id,\n navigatorFunction: RouterService.getInstance().router.navigate,\n storageNamePostFix: 'UsersEffectiveRightsAdminPage-Table',\n storageVersion: 1,\n }), []);\n\n const effectiveRights = useMemo<UserEffectiveRight[]>(() => {\n const { data: organizationAccessCasePolicies } = organizationAccessCasePoliciesQuery;\n const { data: organizationShareCasePolicies } = organizationShareCasePoliciesQuery;\n const { data: userAccessCasePolicies } = userAccessCasePoliciesQuery;\n const { data: userShareCasePolicies } = userShareCasePoliciesQuery;\n const { data: caseTypeSetMembers } = caseTypeSetMembersQuery;\n const { data: colSetMembers } = colSetMembersQuery;\n\n return EffectiveRightsUtil.assembleUserEffectiveRights({\n caseTypeSetMembers,\n colSetMembers,\n organizationAccessCasePolicies,\n organizationShareCasePolicies,\n user,\n userAccessCasePolicies,\n userShareCasePolicies,\n });\n\n }, [colSetMembersQuery, caseTypeSetMembersQuery, organizationAccessCasePoliciesQuery, organizationShareCasePoliciesQuery, user, userAccessCasePoliciesQuery, userShareCasePoliciesQuery]);\n\n const renderSetCell = useCallback((params: { getName: (memberId: string) => string; setIds: string[]; type: UsersEffectiveRightsDetailsDialogOpenProps['type']; uncategorizedMemberIds: string[]; userEffectiveRight: UserEffectiveRight }) => {\n const { getName, setIds, type, uncategorizedMemberIds, userEffectiveRight } = params;\n const onLinkClick = (event: ReactMouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n usersEffectiveRightsDetailsDialogRef.current.open({\n type,\n user,\n userEffectiveRight,\n });\n };\n\n if (uncategorizedMemberIds.length > 0) {\n return (\n <Link\n href={'#'}\n // eslint-disable-next-line @eslint-react/kit/jsx-no-bind\n onClick={onLinkClick}\n tabIndex={0}\n >\n {t`View all`}\n </Link>\n );\n }\n if (setIds.length > 2) {\n return (\n <Link\n href={'#'}\n // eslint-disable-next-line @eslint-react/kit/jsx-no-bind\n onClick={onLinkClick}\n tabIndex={0}\n >\n {t('View {{numSets}} sets', { numSets: setIds.length })}\n </Link>\n );\n }\n\n return (\n <>\n {setIds.map(setId => (\n <Link\n href={'#'}\n key={setId}\n\n onClick={onLinkClick}\n >\n {getName(setId) ?? setId}\n </Link>\n ))}\n </>\n );\n }, [t, user]);\n\n const renderCaseTypeSetsCell = useCallback(({ row }: TableRowParams<UserEffectiveRight>) => {\n return renderSetCell({\n getName: (caseTypeId: string) => caseTypeSetNameFactory.getName(caseTypeSetsMapQuery.map.get(caseTypeId)),\n setIds: row.case_type_set_ids,\n type: 'caseTypeSets',\n uncategorizedMemberIds: row.uncategorized_case_type_ids,\n userEffectiveRight: row,\n });\n }, [caseTypeSetNameFactory, caseTypeSetsMapQuery.map, renderSetCell]);\n\n const renderReadCaseSetsCell = useCallback(({ row }: TableRowParams<UserEffectiveRight>) => {\n return renderSetCell({\n getName: (colId: string) => colSetMapQuery.map.get(colId).name,\n setIds: row.read_col_set_ids,\n type: 'readColSets',\n uncategorizedMemberIds: row.uncategorized_read_col_ids,\n userEffectiveRight: row,\n });\n }, [colSetMapQuery.map, renderSetCell]);\n\n const renderWriteCaseSetsCell = useCallback(({ row }: TableRowParams<UserEffectiveRight>) => {\n return renderSetCell({\n getName: (colId: string) => colSetMapQuery.map.get(colId)?.name,\n setIds: row.write_col_set_ids,\n type: 'writeColSets',\n uncategorizedMemberIds: row.uncategorized_write_col_ids,\n userEffectiveRight: row,\n });\n }, [colSetMapQuery.map, renderSetCell]);\n\n const tableColumns = useMemo<TableColumn<UserEffectiveRight>[]>(() => {\n return [\n TableUtil.createReadableIndexColumn(),\n TableUtil.createOptionsColumn({ id: 'data_collection_id', name: t`Data collection`, options: dataCollectionOptionsQuery.options }),\n {\n headerName: t`Case type sets`,\n hideInFilter: true,\n id: 'case_type_set_ids',\n isInitiallyVisible: true,\n renderCell: renderCaseTypeSetsCell,\n type: 'text',\n widthFlex: 1,\n },\n {\n headerName: t`Read column sets`,\n hideInFilter: true,\n id: 'read_col_set_ids',\n isInitiallyVisible: true,\n renderCell: renderReadCaseSetsCell,\n type: 'text',\n widthFlex: 1,\n },\n {\n headerName: t`Write column sets`,\n hideInFilter: true,\n id: 'write_col_set_ids',\n isInitiallyVisible: true,\n renderCell: renderWriteCaseSetsCell,\n type: 'text',\n widthFlex: 1,\n },\n\n TableUtil.createBooleanColumn<UserEffectiveRight>({ id: 'add_case', name: t`Add case` }),\n TableUtil.createBooleanColumn<UserEffectiveRight>({ id: 'remove_case', name: t`Remove case` }),\n TableUtil.createBooleanColumn<UserEffectiveRight>({ id: 'add_case_set', name: t`Add case set` }),\n TableUtil.createBooleanColumn<UserEffectiveRight>({ id: 'remove_case_set', name: t`Remove case set` }),\n TableUtil.createBooleanColumn<UserEffectiveRight>({ id: 'read_case_set', name: t`Read case set` }),\n TableUtil.createBooleanColumn<UserEffectiveRight>({ id: 'write_case_set', name: t`Write case set` }),\n {\n headerName: t`Addition al rights`,\n id: 'has_additional_rights',\n isInitiallyVisible: true,\n type: 'boolean',\n valueGetter: (params) => params.row.effective_share_case_rights.length > 0,\n widthFlex: 0.25,\n },\n ];\n }, [dataCollectionOptionsQuery.options, renderCaseTypeSetsCell, renderReadCaseSetsCell, renderWriteCaseSetsCell, t]);\n\n const getRowName = useCallback((row: UserEffectiveRight) => {\n return dataCollectionMapQuery.map.get(row.data_collection_id)?.name ?? row.data_collection_id;\n }, [dataCollectionMapQuery.map]);\n\n const onRowClick = useCallback((params: TableRowParams<UserEffectiveRight>) => {\n usersEffectiveRightsDetailsDialogRef.current.open({\n type: 'caseTypeSets',\n user,\n userEffectiveRight: params.row,\n });\n }, [user]);\n\n useInitializeTableStore({ columns: tableColumns, createFiltersFromColumns: true, rows: effectiveRights, store: tableStore });\n\n return (\n <TableStoreContextProvider store={tableStore}>\n <PageContainer\n contentActions={(<TableMenu />)}\n contentHeader={(\n <TableCaption\n caption={user ? t('{{userName}} effective rights', { userName: UserUtil.getUserDisplayValue(user, t) }) : t`⌛ Loading...`}\n component={'h2'}\n variant={'h2'}\n />\n )}\n fullWidth\n showBreadcrumbs\n testIdAttributes={TestIdUtil.createAttributes('UsersEffectiveRightsAdminPage')}\n title={t`Users effective rights`}\n >\n <Box\n sx={{\n height: '100%',\n position: 'relative',\n }}\n >\n <ResponseHandler\n error={userError}\n inlineSpinner\n isLoading={isUserLoading}\n loadables={loadables}\n >\n <TableSidebarMenu />\n <Box\n sx={{\n height: '100%',\n paddingLeft: theme.spacing(ConfigService.getInstance().config.layout.SIDEBAR_MENU_WIDTH + 1),\n width: '100%',\n }}\n >\n <Table\n getRowName={getRowName}\n onRowClick={onRowClick}\n />\n </Box>\n </ResponseHandler>\n </Box>\n <UsersEffectiveRightsDetailsDialog ref={usersEffectiveRightsDetailsDialogRef} />\n </PageContainer>\n </TableStoreContextProvider>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiEA,IAAa,UAAqC;CAChD,IAAM,EAAE,SAAM,EAAe,GACvB,IAAQ,EAAS,GACjB,IAAuC,EAAoD,IAAI,GAE/F,EAAE,cAAW,EAAU,GAEvB,EAAE,MAAM,GAAM,OAAO,GAAW,WAAW,MAAkB,GAAyB;EAC1F,cAAc,EAAiB;EAC/B,QAAQ;EACR,iBAAiB,EACf,SAAS,OAAO,EAAE,iBAET,MADgB,GAAsB,YAAY,CAAC,CAAC,YAAY,GAAQ,EAAE,UAAO,CAAC,EAAA,CACzE,KAEpB;CACF,CAAC,GAEK,IAAqB,EAAsB,GAC3C,IAAuB,GAAwB,GAC/C,IAAiB,EAAkB,GACnC,IAA0B,EAA2B,GACrD,IAAyB,EAA0B,GACnD,IAAyB,EAA2B,GACpD,IAA6B,EAA8B,GAC3D,IAAsC,GAAuC,MAAY,EAAS,QAAO,MAAU,EAAO,aAAa,EAAO,oBAAoB,EAAK,eAAe,CAAC,GACvL,IAAqC,GAAsC,MAAY,EAAS,QAAO,MAAU,EAAO,aAAa,EAAO,oBAAoB,EAAK,eAAe,CAAC,GACrL,IAA8B,GAA+B,MAAY,EAAS,QAAO,MAAU,EAAO,aAAa,EAAO,YAAY,EAAK,EAAE,CAAC,GAClJ,IAA6B,IAA8B,MAAY,EAAS,QAAO,MAAU,EAAO,aAAa,EAAO,YAAY,EAAK,EAAE,CAAC,GAEhJ,IAAY,GAAS;EACzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,GAEK,IAAa,QAAc,EAAqC;EACpE,oBAAoB;EACpB,sBAAsB;EACtB,qBAAqB,MAAU,EAAM;EACrC,mBAAmB,EAAc,YAAY,CAAC,CAAC,OAAO;EACtD,oBAAoB;EACpB,gBAAgB;CAClB,CAAC,GAAG,CAAC,CAAC,GAEA,KAAkB,QAAoC;EAC1D,IAAM,EAAE,MAAM,MAAmC,GAC3C,EAAE,MAAM,MAAkC,GAC1C,EAAE,MAAM,MAA2B,GACnC,EAAE,MAAM,MAA0B,GAClC,EAAE,MAAM,MAAuB,GAC/B,EAAE,MAAM,MAAkB;EAEhC,OAAO,EAAoB,4BAA4B;GACrD;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAAC;CAEH,GAAG;EAAC;EAAoB;EAAyB;EAAqC;EAAoC;EAAM;EAA6B;CAA0B,CAAC,GAElL,IAAgB,GAAa,MAA4M;EAC7O,IAAM,EAAE,YAAS,WAAQ,SAAM,2BAAwB,0BAAuB,GACxE,KAAe,MAA2B;GAG9C,AAFA,EAAM,eAAe,GACrB,EAAM,gBAAgB,GACtB,EAAqC,QAAQ,KAAK;IAChD;IACA;IACA;GACF,CAAC;EACH;EA2BA,OAzBI,EAAuB,SAAS,IAEhC,kBAAC,GAAD;GACE,MAAM;GAEN,SAAS;GACT,UAAU;GAET,UAAA,CAAC;EACE,CAAA,IAGN,EAAO,SAAS,IAEhB,kBAAC,GAAD;GACE,MAAM;GAEN,SAAS;GACT,UAAU;GAET,UAAA,EAAE,yBAAyB,EAAE,SAAS,EAAO,OAAO,CAAC;EAClD,CAAA,IAKR,kBAAA,IAAA,EAAA,UACG,EAAO,KAAI,MACV,kBAAC,GAAD;GACE,MAAM;GAGN,SAAS;GAER,UAAA,EAAQ,CAAK,KAAK;EACf,GALC,CAKD,CACP,EACD,CAAA;CAEN,GAAG,CAAC,GAAG,CAAI,CAAC,GAEN,IAAyB,GAAa,EAAE,aACrC,EAAc;EACnB,UAAU,MAAuB,EAAuB,QAAQ,EAAqB,IAAI,IAAI,CAAU,CAAC;EACxG,QAAQ,EAAI;EACZ,MAAM;EACN,wBAAwB,EAAI;EAC5B,oBAAoB;CACtB,CAAC,GACA;EAAC;EAAwB,EAAqB;EAAK;CAAa,CAAC,GAE9D,IAAyB,GAAa,EAAE,aACrC,EAAc;EACnB,UAAU,MAAkB,EAAe,IAAI,IAAI,CAAK,CAAC,CAAC;EAC1D,QAAQ,EAAI;EACZ,MAAM;EACN,wBAAwB,EAAI;EAC5B,oBAAoB;CACtB,CAAC,GACA,CAAC,EAAe,KAAK,CAAa,CAAC,GAEhC,IAA0B,GAAa,EAAE,aACtC,EAAc;EACnB,UAAU,MAAkB,EAAe,IAAI,IAAI,CAAK,CAAC,EAAE;EAC3D,QAAQ,EAAI;EACZ,MAAM;EACN,wBAAwB,EAAI;EAC5B,oBAAoB;CACtB,CAAC,GACA,CAAC,EAAe,KAAK,CAAa,CAAC,GAEhC,KAAe,QACZ;EACL,EAAU,0BAA0B;EACpC,EAAU,oBAAoB;GAAE,IAAI;GAAsB,MAAM,CAAC;GAAmB,SAAS,EAA2B;EAAQ,CAAC;EACjI;GACE,YAAY,CAAC;GACb,cAAc;GACd,IAAI;GACJ,oBAAoB;GACpB,YAAY;GACZ,MAAM;GACN,WAAW;EACb;EACA;GACE,YAAY,CAAC;GACb,cAAc;GACd,IAAI;GACJ,oBAAoB;GACpB,YAAY;GACZ,MAAM;GACN,WAAW;EACb;EACA;GACE,YAAY,CAAC;GACb,cAAc;GACd,IAAI;GACJ,oBAAoB;GACpB,YAAY;GACZ,MAAM;GACN,WAAW;EACb;EAEA,EAAU,oBAAwC;GAAE,IAAI;GAAY,MAAM,CAAC;EAAW,CAAC;EACvF,EAAU,oBAAwC;GAAE,IAAI;GAAe,MAAM,CAAC;EAAc,CAAC;EAC7F,EAAU,oBAAwC;GAAE,IAAI;GAAgB,MAAM,CAAC;EAAe,CAAC;EAC/F,EAAU,oBAAwC;GAAE,IAAI;GAAmB,MAAM,CAAC;EAAkB,CAAC;EACrG,EAAU,oBAAwC;GAAE,IAAI;GAAiB,MAAM,CAAC;EAAgB,CAAC;EACjG,EAAU,oBAAwC;GAAE,IAAI;GAAkB,MAAM,CAAC;EAAiB,CAAC;EACnG;GACE,YAAY,CAAC;GACb,IAAI;GACJ,oBAAoB;GACpB,MAAM;GACN,cAAc,MAAW,EAAO,IAAI,4BAA4B,SAAS;GACzE,WAAW;EACb;CACF,GACC;EAAC,EAA2B;EAAS;EAAwB;EAAwB;EAAyB;CAAC,CAAC,GAE7G,KAAa,GAAa,MACvB,EAAuB,IAAI,IAAI,EAAI,kBAAkB,CAAC,EAAE,QAAQ,EAAI,oBAC1E,CAAC,EAAuB,GAAG,CAAC,GAEzB,KAAa,GAAa,MAA+C;EAC7E,EAAqC,QAAQ,KAAK;GAChD,MAAM;GACN;GACA,oBAAoB,EAAO;EAC7B,CAAC;CACH,GAAG,CAAC,CAAI,CAAC;CAIT,OAFA,EAAwB;EAAE,SAAS;EAAc,0BAA0B;EAAM,MAAM;EAAiB,OAAO;CAAW,CAAC,GAGzH,kBAAC,GAAD;EAA2B,OAAO;EAChC,UAAA,kBAAC,GAAD;GACE,gBAAiB,kBAAC,IAAD,CAAY,CAAA;GAC7B,eACE,kBAAC,IAAD;IACE,SAAS,IAAO,EAAE,iCAAiC,EAAE,UAAU,EAAS,oBAAoB,GAAM,CAAC,EAAE,CAAC,IAAI,CAAC;IAC3G,WAAW;IACX,SAAS;GACV,CAAA;GAEH,WAAA;GACA,iBAAA;GACA,kBAAkB,EAAW,iBAAiB,+BAA+B;GAC7E,OAAO,CAAC;GAZV,UAAA,CAcE,kBAAC,GAAD;IACE,IAAI;KACF,QAAQ;KACR,UAAU;IACZ;IAEA,UAAA,kBAAC,IAAD;KACE,OAAO;KACP,eAAA;KACA,WAAW;KACA;KAJb,UAAA,CAME,kBAAC,IAAD,CAAmB,CAAA,GACnB,kBAAC,GAAD;MACE,IAAI;OACF,QAAQ;OACR,aAAa,EAAM,QAAQ,EAAc,YAAY,CAAC,CAAC,OAAO,OAAO,qBAAqB,CAAC;OAC3F,OAAO;MACT;MAEA,UAAA,kBAAC,IAAD;OACc;OACA;MACb,CAAA;KACE,CAAA,CACU;;GACd,CAAA,GACL,kBAAC,IAAD,EAAmC,KAAK,EAAuC,CAAA,CAClE;;CACU,CAAA;AAE/B"}
@@ -6,7 +6,7 @@ import { t as a } from "../../_chunks/yup.js";
6
6
  import { useCaseTypeOptionsQuery as o } from "../../dataHooks/useCaseTypesQuery/index.js";
7
7
  import { useDataCollectionOptionsQuery as s } from "../../dataHooks/useDataCollectionsQuery/index.js";
8
8
  import { useCaseTypeSetMembersQuery as c } from "../../dataHooks/useCaseTypeSetMembersQuery/index.js";
9
- import { t as l } from "../../_chunks/chunk-KS7C4IRE.js";
9
+ import { t as l } from "../../_chunks/chunk-BV7QT456.js";
10
10
  import { useColSetMembersQuery as u } from "../../dataHooks/useColSetMembersQuery/index.js";
11
11
  import { useOrganizationAccessCasePoliciesQuery as d } from "../../dataHooks/useOrganizationAccessCasePoliciesQuery/index.js";
12
12
  import { useOrganizationShareCasePoliciesQuery as f } from "../../dataHooks/useOrganizationShareCasePoliciesQuery/index.js";
@@ -14,19 +14,19 @@ import { useUserAccessCasePoliciesQuery as p } from "../../dataHooks/useUserAcce
14
14
  import { useUserShareCasePoliciesQuery as m } from "../../dataHooks/useUserShareCasePoliciesQuery/index.js";
15
15
  import { object as h, string as g } from "yup";
16
16
  import { CaseDbOrganizationApi as _ } from "@gen-epix/api-casedb";
17
- import { FORM_FIELD_DEFINITION_TYPE as v } from "@gen-epix/ui-form/models/form";
18
- import { COMMON_QUERY_KEY as y } from "@gen-epix/ui/constants/query";
17
+ import { FORM_FIELD_DEFINITION_TYPE as v } from "@gen-epix/ui-core-form/models/form";
18
+ import { COMMON_QUERY_KEY as y } from "@gen-epix/ui-client-common/constants/query";
19
19
  import { Box as b, Container as ee, Typography as x } from "@mui/material";
20
20
  import { useId as S, useMemo as C } from "react";
21
21
  import { useTranslation as w } from "react-i18next";
22
22
  import { jsx as T, jsxs as E } from "react/jsx-runtime";
23
- import { ResponseHandler as D } from "@gen-epix/ui/components/ui/ResponseHandler";
24
- import { useItemQuery as O } from "@gen-epix/ui/hooks/useItemQuery";
23
+ import { ResponseHandler as D } from "@gen-epix/ui-client-common/components/ui/ResponseHandler";
24
+ import { useItemQuery as O } from "@gen-epix/ui-client-common/hooks/useItemQuery";
25
25
  import { useArray as k } from "@gen-epix/ui-core/hooks/useArray";
26
- import { GenericForm as A } from "@gen-epix/ui-form/components/helpers/GenericForm";
26
+ import { GenericForm as A } from "@gen-epix/ui-core-form/components/helpers/GenericForm";
27
27
  import { TestIdUtil as j } from "@gen-epix/ui-core/utils/TestIdUtil";
28
- import { PageContainer as M } from "@gen-epix/ui/components/ui/PageContainer";
29
- import { useOrganizationMapQuery as N } from "@gen-epix/ui/dataHooks/useOrganizationsQuery";
28
+ import { PageContainer as M } from "@gen-epix/ui-client-common/components/ui/PageContainer";
29
+ import { useOrganizationMapQuery as N } from "@gen-epix/ui-client-common/dataHooks/useOrganizationsQuery";
30
30
  //#region src/pages/UserEffectiveRightsTesterAdminPage/UserEffectiveRightsTesterAdminPage.tsx
31
31
  var P = /* @__PURE__ */ e(t(), 1), F = () => {
32
32
  let { t: e } = w(), t = S(), { userId: F } = l(), I = O({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/UserEffectiveRightsTesterAdminPage/UserEffectiveRightsTesterAdminPage.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\nimport {\n Box,\n Container,\n Typography,\n} from '@mui/material';\nimport {\n useId,\n useMemo,\n} from 'react';\nimport { useParams } from 'react-router-dom';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport type { Resolver } from 'react-hook-form';\nimport {\n useForm,\n useWatch,\n} from 'react-hook-form';\nimport {\n object,\n string,\n} from 'yup';\nimport noop from 'lodash/noop';\nimport type { CaseDbUser } from '@gen-epix/api-casedb';\nimport { CaseDbOrganizationApi } from '@gen-epix/api-casedb';\nimport { COMMON_QUERY_KEY } from '@gen-epix/ui/constants/query';\nimport { PageContainer } from '@gen-epix/ui/components/ui/PageContainer';\nimport { ResponseHandler } from '@gen-epix/ui/components/ui/ResponseHandler';\nimport { useItemQuery } from '@gen-epix/ui/hooks/useItemQuery';\nimport { useOrganizationMapQuery } from '@gen-epix/ui/dataHooks/useOrganizationsQuery';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { useArray } from '@gen-epix/ui-core/hooks/useArray';\nimport { GenericForm } from '@gen-epix/ui-form/components/helpers/GenericForm';\nimport type { FormFieldDefinition } from '@gen-epix/ui-form/models/form';\nimport { FORM_FIELD_DEFINITION_TYPE } from '@gen-epix/ui-form/models/form';\n\nimport { useColSetMembersQuery } from '../../dataHooks/useColSetMembersQuery';\nimport { useCaseTypeSetMembersQuery } from '../../dataHooks/useCaseTypeSetMembersQuery';\nimport { useDataCollectionOptionsQuery } from '../../dataHooks/useDataCollectionsQuery';\nimport { useOrganizationAccessCasePoliciesQuery } from '../../dataHooks/useOrganizationAccessCasePoliciesQuery';\nimport { useOrganizationShareCasePoliciesQuery } from '../../dataHooks/useOrganizationShareCasePoliciesQuery';\nimport { useUserAccessCasePoliciesQuery } from '../../dataHooks/useUserAccessCasePoliciesQuery';\nimport { useUserShareCasePoliciesQuery } from '../../dataHooks/useUserShareCasePoliciesQuery';\nimport { useCaseTypeOptionsQuery } from '../../dataHooks/useCaseTypesQuery';\nimport type { UserEffectiveRight } from '../../models/caseAccess';\nimport { EffectiveRightsUtil } from '../../utils/EffectiveRightsUtil';\n\n\ntype FormFields = {\n caseTypeId: string;\n dataCollectionId: string;\n fromDataCollectionId: string;\n};\n\ntype Result = {\n add_case: boolean;\n add_case_set: boolean;\n has_share_case_rights?: boolean;\n read_case_set: boolean;\n read_col_ids: string[];\n remove_case: boolean;\n remove_case_set: boolean;\n write_case_set: boolean;\n write_col_ids: string[];\n};\n\nexport const UserEffectiveRightsTesterAdminPage = () => {\n const { t } = useTranslation();\n const formId = useId();\n\n const { userId } = useParams();\n\n const userQuery = useItemQuery<CaseDbUser>({\n baseQueryKey: COMMON_QUERY_KEY.USERS,\n itemId: userId,\n useQueryOptions: {\n queryFn: async ({ signal }) => {\n const response = await CaseDbOrganizationApi.getInstance().usersGetOne(userId, { signal });\n return response.data;\n },\n },\n });\n\n const colSetMembersQuery = useColSetMembersQuery();\n const caseTypeOptionsQuery = useCaseTypeOptionsQuery();\n const organizationMapQuery = useOrganizationMapQuery();\n const caseTypeSetMembersQuery = useCaseTypeSetMembersQuery();\n const dataCollectionOptionsQuery = useDataCollectionOptionsQuery();\n const organizationAccessCasePoliciesQuery = useOrganizationAccessCasePoliciesQuery(policies => policies.filter(policy => policy.is_active && policy.organization_id === userQuery.data?.organization_id));\n const organizationShareCasePoliciesQuery = useOrganizationShareCasePoliciesQuery(policies => policies.filter(policy => policy.is_active && policy.organization_id === userQuery.data?.organization_id));\n const userAccessCasePoliciesQuery = useUserAccessCasePoliciesQuery(policies => policies.filter(policy => policy.is_active && policy.user_id === userQuery.data?.id));\n const userShareCasePoliciesQuery = useUserShareCasePoliciesQuery(policies => policies.filter(policy => policy.is_active && policy.user_id === userQuery.data?.id));\n\n const loadables = useArray([\n userQuery,\n colSetMembersQuery,\n caseTypeOptionsQuery,\n caseTypeSetMembersQuery,\n dataCollectionOptionsQuery,\n organizationAccessCasePoliciesQuery,\n organizationShareCasePoliciesQuery,\n userAccessCasePoliciesQuery,\n userShareCasePoliciesQuery,\n organizationMapQuery,\n ]);\n\n\n const effectiveRights = useMemo<UserEffectiveRight[]>(() => {\n const { data: organizationAccessCasePolicies } = organizationAccessCasePoliciesQuery;\n const { data: organizationShareCasePolicies } = organizationShareCasePoliciesQuery;\n const { data: userAccessCasePolicies } = userAccessCasePoliciesQuery;\n const { data: userShareCasePolicies } = userShareCasePoliciesQuery;\n const { data: caseTypeSetMembers } = caseTypeSetMembersQuery;\n const { data: colSetMembers } = colSetMembersQuery;\n\n return EffectiveRightsUtil.assembleUserEffectiveRights({\n caseTypeSetMembers,\n colSetMembers,\n organizationAccessCasePolicies,\n organizationShareCasePolicies,\n user: userQuery.data,\n userAccessCasePolicies,\n userShareCasePolicies,\n });\n\n }, [colSetMembersQuery, caseTypeSetMembersQuery, organizationAccessCasePoliciesQuery, organizationShareCasePoliciesQuery, userAccessCasePoliciesQuery, userQuery.data, userShareCasePoliciesQuery]);\n\n const schema = useMemo(() => object<FormFields>().shape({\n caseTypeId: string().uuid4().required(),\n dataCollectionId: string().uuid4().required(),\n fromDataCollectionId: string().uuid4().nullable().notRequired(),\n }), []);\n\n const formMethods = useForm<FormFields>({\n resolver: yupResolver(schema) as unknown as Resolver<FormFields>,\n values: {\n caseTypeId: null,\n dataCollectionId: null,\n fromDataCollectionId: null,\n },\n });\n const { control, handleSubmit } = formMethods;\n const formValues = useWatch({ control });\n\n const result = useMemo<Result>(() => {\n if (!formValues.caseTypeId || !formValues.dataCollectionId) {\n return null;\n }\n const effectiveRight = effectiveRights.find(right => {\n return right.data_collection_id === formValues.dataCollectionId && right.categorized_case_type_ids.some(x => x === formValues.caseTypeId);\n });\n\n const shareCaseRight = formValues.fromDataCollectionId && effectiveRight?.effective_share_case_rights?.find(shareRight => {\n return shareRight.categorized_case_type_ids.some(x => x === formValues.caseTypeId) && shareRight.from_data_collection_id === formValues.fromDataCollectionId;\n });\n\n return {\n add_case: effectiveRight?.add_case || shareCaseRight?.add_case,\n add_case_set: effectiveRight?.add_case_set || shareCaseRight?.add_case_set,\n has_share_case_rights: effectiveRight?.effective_share_case_rights.length > 0,\n read_case_set: effectiveRight?.read_case_set,\n read_col_ids: effectiveRight?.categorized_read_col_ids,\n remove_case: effectiveRight?.remove_case || shareCaseRight?.remove_case,\n remove_case_set: effectiveRight?.remove_case_set || shareCaseRight?.remove_case_set,\n write_case_set: effectiveRight?.write_case_set,\n write_col_ids: effectiveRight?.categorized_write_col_ids,\n } satisfies Result;\n }, [effectiveRights, formValues.caseTypeId, formValues.dataCollectionId, formValues.fromDataCollectionId]);\n\n const formFieldDefinitions = useMemo<FormFieldDefinition<FormFields>[]>(() => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Case type`,\n loading: caseTypeOptionsQuery.isLoading,\n name: 'caseTypeId',\n options: caseTypeOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Data collection`,\n loading: dataCollectionOptionsQuery.isLoading,\n name: 'dataCollectionId',\n options: dataCollectionOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n disabled: !result?.has_share_case_rights,\n label: t`From data collection`,\n loading: dataCollectionOptionsQuery.isLoading,\n name: 'fromDataCollectionId',\n options: dataCollectionOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [caseTypeOptionsQuery.isLoading, caseTypeOptionsQuery.options, dataCollectionOptionsQuery.isLoading, dataCollectionOptionsQuery.options, result?.has_share_case_rights, t]);\n\n\n return (\n <PageContainer\n fullWidth\n showBreadcrumbs\n testIdAttributes={TestIdUtil.createAttributes('UserEffectiveRightsTesterAdminPage')}\n title={t`Users effective rights`}\n >\n <Box\n sx={{\n height: '100%',\n position: 'relative',\n }}\n >\n <ResponseHandler\n inlineSpinner\n loadables={loadables}\n >\n <Container maxWidth={'md'}>\n <Box\n sx={{\n marginY: 2,\n }}\n >\n <Typography\n component={'h2'}\n variant={'h4'}\n >\n {t('Testing effective rights for user: {{userEmail}}', { userEmail: userQuery.data?.email })}\n </Typography>\n <Typography>\n {t('Organization: {{organizationName}}', { organizationName: organizationMapQuery.map.get(userQuery.data?.organization_id)?.name })}\n </Typography>\n <Typography>\n {t('Roles: {{roles}}', { roles: userQuery.data?.roles.join(', ') })}\n </Typography>\n </Box>\n <GenericForm<FormFields>\n formFieldDefinitions={formFieldDefinitions}\n formId={formId}\n formMethods={formMethods}\n onSubmit={handleSubmit(noop)}\n schema={schema}\n />\n {result !== null && typeof result === 'object' && (\n <Box\n sx={{\n marginY: 2,\n }}\n >\n <Typography variant={'h6'}>\n {t('Effective rights result:')}\n </Typography>\n {!formValues.fromDataCollectionId && result.has_share_case_rights && (\n <Box\n sx={{\n marginY: 2,\n }}\n >\n <Typography\n sx={{\n fontStyle: 'italic',\n }}\n >\n {t`Note: The user has share case rights that may affect the result when a 'From data collection' is selected.`}\n </Typography>\n </Box>\n )}\n <Typography>\n {t('Add case: {{addCase}}', { addCase: result?.add_case ? t`Yes` : t`No` })}\n </Typography>\n <Typography>\n {t('Remove case: {{removeCase}}', { removeCase: result?.remove_case ? t`Yes` : t`No` })}\n </Typography>\n <Typography>\n {t('Add case set: {{addCaseSet}}', { addCaseSet: result?.add_case_set ? t`Yes` : t`No` })}\n </Typography>\n <Typography>\n {t('Remove case set: {{removeCaseSet}}', { removeCaseSet: result?.remove_case_set ? t`Yes` : t`No` })}\n </Typography>\n <Typography>\n {t('Read case set: {{readCaseSet}}', { readCaseSet: result?.read_case_set ? t`Yes` : t`No` })}\n </Typography>\n <Typography>\n {t('Write case set: {{writeCaseSet}}', { writeCaseSet: result?.write_case_set ? t`Yes` : t`No` })}\n </Typography>\n <Typography>\n {t('Read case properties: {{readSomeProperties}}', { readSomeProperties: result?.read_col_ids?.length > 0 ? t`Yes` : t`No` })}\n </Typography>\n <Typography>\n {t('Write case properties: {{writeSomeProperties}}', { writeSomeProperties: result?.write_col_ids?.length > 0 ? t`Yes` : t`No` })}\n </Typography>\n\n </Box>\n )}\n </Container>\n </ResponseHandler>\n </Box>\n </PageContainer>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/UserEffectiveRightsTesterAdminPage/UserEffectiveRightsTesterAdminPage.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\nimport {\n Box,\n Container,\n Typography,\n} from '@mui/material';\nimport {\n useId,\n useMemo,\n} from 'react';\nimport { useParams } from 'react-router-dom';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport type { Resolver } from 'react-hook-form';\nimport {\n useForm,\n useWatch,\n} from 'react-hook-form';\nimport {\n object,\n string,\n} from 'yup';\nimport noop from 'lodash/noop';\nimport type { CaseDbUser } from '@gen-epix/api-casedb';\nimport { CaseDbOrganizationApi } from '@gen-epix/api-casedb';\nimport { COMMON_QUERY_KEY } from '@gen-epix/ui-client-common/constants/query';\nimport { PageContainer } from '@gen-epix/ui-client-common/components/ui/PageContainer';\nimport { ResponseHandler } from '@gen-epix/ui-client-common/components/ui/ResponseHandler';\nimport { useItemQuery } from '@gen-epix/ui-client-common/hooks/useItemQuery';\nimport { useOrganizationMapQuery } from '@gen-epix/ui-client-common/dataHooks/useOrganizationsQuery';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { useArray } from '@gen-epix/ui-core/hooks/useArray';\nimport { GenericForm } from '@gen-epix/ui-core-form/components/helpers/GenericForm';\nimport type { FormFieldDefinition } from '@gen-epix/ui-core-form/models/form';\nimport { FORM_FIELD_DEFINITION_TYPE } from '@gen-epix/ui-core-form/models/form';\n\nimport { useColSetMembersQuery } from '../../dataHooks/useColSetMembersQuery';\nimport { useCaseTypeSetMembersQuery } from '../../dataHooks/useCaseTypeSetMembersQuery';\nimport { useDataCollectionOptionsQuery } from '../../dataHooks/useDataCollectionsQuery';\nimport { useOrganizationAccessCasePoliciesQuery } from '../../dataHooks/useOrganizationAccessCasePoliciesQuery';\nimport { useOrganizationShareCasePoliciesQuery } from '../../dataHooks/useOrganizationShareCasePoliciesQuery';\nimport { useUserAccessCasePoliciesQuery } from '../../dataHooks/useUserAccessCasePoliciesQuery';\nimport { useUserShareCasePoliciesQuery } from '../../dataHooks/useUserShareCasePoliciesQuery';\nimport { useCaseTypeOptionsQuery } from '../../dataHooks/useCaseTypesQuery';\nimport type { UserEffectiveRight } from '../../models/caseAccess';\nimport { EffectiveRightsUtil } from '../../utils/EffectiveRightsUtil';\n\n\ntype FormFields = {\n caseTypeId: string;\n dataCollectionId: string;\n fromDataCollectionId: string;\n};\n\ntype Result = {\n add_case: boolean;\n add_case_set: boolean;\n has_share_case_rights?: boolean;\n read_case_set: boolean;\n read_col_ids: string[];\n remove_case: boolean;\n remove_case_set: boolean;\n write_case_set: boolean;\n write_col_ids: string[];\n};\n\nexport const UserEffectiveRightsTesterAdminPage = () => {\n const { t } = useTranslation();\n const formId = useId();\n\n const { userId } = useParams();\n\n const userQuery = useItemQuery<CaseDbUser>({\n baseQueryKey: COMMON_QUERY_KEY.USERS,\n itemId: userId,\n useQueryOptions: {\n queryFn: async ({ signal }) => {\n const response = await CaseDbOrganizationApi.getInstance().usersGetOne(userId, { signal });\n return response.data;\n },\n },\n });\n\n const colSetMembersQuery = useColSetMembersQuery();\n const caseTypeOptionsQuery = useCaseTypeOptionsQuery();\n const organizationMapQuery = useOrganizationMapQuery();\n const caseTypeSetMembersQuery = useCaseTypeSetMembersQuery();\n const dataCollectionOptionsQuery = useDataCollectionOptionsQuery();\n const organizationAccessCasePoliciesQuery = useOrganizationAccessCasePoliciesQuery(policies => policies.filter(policy => policy.is_active && policy.organization_id === userQuery.data?.organization_id));\n const organizationShareCasePoliciesQuery = useOrganizationShareCasePoliciesQuery(policies => policies.filter(policy => policy.is_active && policy.organization_id === userQuery.data?.organization_id));\n const userAccessCasePoliciesQuery = useUserAccessCasePoliciesQuery(policies => policies.filter(policy => policy.is_active && policy.user_id === userQuery.data?.id));\n const userShareCasePoliciesQuery = useUserShareCasePoliciesQuery(policies => policies.filter(policy => policy.is_active && policy.user_id === userQuery.data?.id));\n\n const loadables = useArray([\n userQuery,\n colSetMembersQuery,\n caseTypeOptionsQuery,\n caseTypeSetMembersQuery,\n dataCollectionOptionsQuery,\n organizationAccessCasePoliciesQuery,\n organizationShareCasePoliciesQuery,\n userAccessCasePoliciesQuery,\n userShareCasePoliciesQuery,\n organizationMapQuery,\n ]);\n\n\n const effectiveRights = useMemo<UserEffectiveRight[]>(() => {\n const { data: organizationAccessCasePolicies } = organizationAccessCasePoliciesQuery;\n const { data: organizationShareCasePolicies } = organizationShareCasePoliciesQuery;\n const { data: userAccessCasePolicies } = userAccessCasePoliciesQuery;\n const { data: userShareCasePolicies } = userShareCasePoliciesQuery;\n const { data: caseTypeSetMembers } = caseTypeSetMembersQuery;\n const { data: colSetMembers } = colSetMembersQuery;\n\n return EffectiveRightsUtil.assembleUserEffectiveRights({\n caseTypeSetMembers,\n colSetMembers,\n organizationAccessCasePolicies,\n organizationShareCasePolicies,\n user: userQuery.data,\n userAccessCasePolicies,\n userShareCasePolicies,\n });\n\n }, [colSetMembersQuery, caseTypeSetMembersQuery, organizationAccessCasePoliciesQuery, organizationShareCasePoliciesQuery, userAccessCasePoliciesQuery, userQuery.data, userShareCasePoliciesQuery]);\n\n const schema = useMemo(() => object<FormFields>().shape({\n caseTypeId: string().uuid4().required(),\n dataCollectionId: string().uuid4().required(),\n fromDataCollectionId: string().uuid4().nullable().notRequired(),\n }), []);\n\n const formMethods = useForm<FormFields>({\n resolver: yupResolver(schema) as unknown as Resolver<FormFields>,\n values: {\n caseTypeId: null,\n dataCollectionId: null,\n fromDataCollectionId: null,\n },\n });\n const { control, handleSubmit } = formMethods;\n const formValues = useWatch({ control });\n\n const result = useMemo<Result>(() => {\n if (!formValues.caseTypeId || !formValues.dataCollectionId) {\n return null;\n }\n const effectiveRight = effectiveRights.find(right => {\n return right.data_collection_id === formValues.dataCollectionId && right.categorized_case_type_ids.some(x => x === formValues.caseTypeId);\n });\n\n const shareCaseRight = formValues.fromDataCollectionId && effectiveRight?.effective_share_case_rights?.find(shareRight => {\n return shareRight.categorized_case_type_ids.some(x => x === formValues.caseTypeId) && shareRight.from_data_collection_id === formValues.fromDataCollectionId;\n });\n\n return {\n add_case: effectiveRight?.add_case || shareCaseRight?.add_case,\n add_case_set: effectiveRight?.add_case_set || shareCaseRight?.add_case_set,\n has_share_case_rights: effectiveRight?.effective_share_case_rights.length > 0,\n read_case_set: effectiveRight?.read_case_set,\n read_col_ids: effectiveRight?.categorized_read_col_ids,\n remove_case: effectiveRight?.remove_case || shareCaseRight?.remove_case,\n remove_case_set: effectiveRight?.remove_case_set || shareCaseRight?.remove_case_set,\n write_case_set: effectiveRight?.write_case_set,\n write_col_ids: effectiveRight?.categorized_write_col_ids,\n } satisfies Result;\n }, [effectiveRights, formValues.caseTypeId, formValues.dataCollectionId, formValues.fromDataCollectionId]);\n\n const formFieldDefinitions = useMemo<FormFieldDefinition<FormFields>[]>(() => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Case type`,\n loading: caseTypeOptionsQuery.isLoading,\n name: 'caseTypeId',\n options: caseTypeOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Data collection`,\n loading: dataCollectionOptionsQuery.isLoading,\n name: 'dataCollectionId',\n options: dataCollectionOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n disabled: !result?.has_share_case_rights,\n label: t`From data collection`,\n loading: dataCollectionOptionsQuery.isLoading,\n name: 'fromDataCollectionId',\n options: dataCollectionOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [caseTypeOptionsQuery.isLoading, caseTypeOptionsQuery.options, dataCollectionOptionsQuery.isLoading, dataCollectionOptionsQuery.options, result?.has_share_case_rights, t]);\n\n\n return (\n <PageContainer\n fullWidth\n showBreadcrumbs\n testIdAttributes={TestIdUtil.createAttributes('UserEffectiveRightsTesterAdminPage')}\n title={t`Users effective rights`}\n >\n <Box\n sx={{\n height: '100%',\n position: 'relative',\n }}\n >\n <ResponseHandler\n inlineSpinner\n loadables={loadables}\n >\n <Container maxWidth={'md'}>\n <Box\n sx={{\n marginY: 2,\n }}\n >\n <Typography\n component={'h2'}\n variant={'h4'}\n >\n {t('Testing effective rights for user: {{userEmail}}', { userEmail: userQuery.data?.email })}\n </Typography>\n <Typography>\n {t('Organization: {{organizationName}}', { organizationName: organizationMapQuery.map.get(userQuery.data?.organization_id)?.name })}\n </Typography>\n <Typography>\n {t('Roles: {{roles}}', { roles: userQuery.data?.roles.join(', ') })}\n </Typography>\n </Box>\n <GenericForm<FormFields>\n formFieldDefinitions={formFieldDefinitions}\n formId={formId}\n formMethods={formMethods}\n onSubmit={handleSubmit(noop)}\n schema={schema}\n />\n {result !== null && typeof result === 'object' && (\n <Box\n sx={{\n marginY: 2,\n }}\n >\n <Typography variant={'h6'}>\n {t('Effective rights result:')}\n </Typography>\n {!formValues.fromDataCollectionId && result.has_share_case_rights && (\n <Box\n sx={{\n marginY: 2,\n }}\n >\n <Typography\n sx={{\n fontStyle: 'italic',\n }}\n >\n {t`Note: The user has share case rights that may affect the result when a 'From data collection' is selected.`}\n </Typography>\n </Box>\n )}\n <Typography>\n {t('Add case: {{addCase}}', { addCase: result?.add_case ? t`Yes` : t`No` })}\n </Typography>\n <Typography>\n {t('Remove case: {{removeCase}}', { removeCase: result?.remove_case ? t`Yes` : t`No` })}\n </Typography>\n <Typography>\n {t('Add case set: {{addCaseSet}}', { addCaseSet: result?.add_case_set ? t`Yes` : t`No` })}\n </Typography>\n <Typography>\n {t('Remove case set: {{removeCaseSet}}', { removeCaseSet: result?.remove_case_set ? t`Yes` : t`No` })}\n </Typography>\n <Typography>\n {t('Read case set: {{readCaseSet}}', { readCaseSet: result?.read_case_set ? t`Yes` : t`No` })}\n </Typography>\n <Typography>\n {t('Write case set: {{writeCaseSet}}', { writeCaseSet: result?.write_case_set ? t`Yes` : t`No` })}\n </Typography>\n <Typography>\n {t('Read case properties: {{readSomeProperties}}', { readSomeProperties: result?.read_col_ids?.length > 0 ? t`Yes` : t`No` })}\n </Typography>\n <Typography>\n {t('Write case properties: {{writeSomeProperties}}', { writeSomeProperties: result?.write_col_ids?.length > 0 ? t`Yes` : t`No` })}\n </Typography>\n\n </Box>\n )}\n </Container>\n </ResponseHandler>\n </Box>\n </PageContainer>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAiEa,UAA2C;CACtD,IAAM,EAAE,SAAM,EAAe,GACvB,IAAS,EAAM,GAEf,EAAE,cAAW,EAAU,GAEvB,IAAY,EAAyB;EACzC,cAAc,EAAiB;EAC/B,QAAQ;EACR,iBAAiB,EACf,SAAS,OAAO,EAAE,iBAET,MADgB,EAAsB,YAAY,CAAC,CAAC,YAAY,GAAQ,EAAE,UAAO,CAAC,EAAA,CACzE,KAEpB;CACF,CAAC,GAEK,IAAqB,EAAsB,GAC3C,IAAuB,EAAwB,GAC/C,IAAuB,EAAwB,GAC/C,IAA0B,EAA2B,GACrD,IAA6B,EAA8B,GAC3D,IAAsC,GAAuC,MAAY,EAAS,QAAO,MAAU,EAAO,aAAa,EAAO,oBAAoB,EAAU,MAAM,eAAe,CAAC,GAClM,IAAqC,GAAsC,MAAY,EAAS,QAAO,MAAU,EAAO,aAAa,EAAO,oBAAoB,EAAU,MAAM,eAAe,CAAC,GAChM,IAA8B,GAA+B,MAAY,EAAS,QAAO,MAAU,EAAO,aAAa,EAAO,YAAY,EAAU,MAAM,EAAE,CAAC,GAC7J,IAA6B,GAA8B,MAAY,EAAS,QAAO,MAAU,EAAO,aAAa,EAAO,YAAY,EAAU,MAAM,EAAE,CAAC,GAE3J,IAAY,EAAS;EACzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,GAGK,IAAkB,QAAoC;EAC1D,IAAM,EAAE,MAAM,MAAmC,GAC3C,EAAE,MAAM,MAAkC,GAC1C,EAAE,MAAM,MAA2B,GACnC,EAAE,MAAM,MAA0B,GAClC,EAAE,MAAM,MAAuB,GAC/B,EAAE,MAAM,MAAkB;EAEhC,OAAO,EAAoB,4BAA4B;GACrD;GACA;GACA;GACA;GACA,MAAM,EAAU;GAChB;GACA;EACF,CAAC;CAEH,GAAG;EAAC;EAAoB;EAAyB;EAAqC;EAAoC;EAA6B,EAAU;EAAM;CAA0B,CAAC,GAE5L,IAAS,QAAc,EAAmB,CAAC,CAAC,MAAM;EACtD,YAAY,EAAO,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS;EACtC,kBAAkB,EAAO,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS;EAC5C,sBAAsB,EAAO,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY;CAChE,CAAC,GAAG,CAAC,CAAC,GAEA,IAAc,EAAoB;EACtC,UAAU,EAAY,CAAM;EAC5B,QAAQ;GACN,YAAY;GACZ,kBAAkB;GAClB,sBAAsB;EACxB;CACF,CAAC,GACK,EAAE,YAAS,oBAAiB,GAC5B,IAAa,EAAS,EAAE,WAAQ,CAAC,GAEjC,IAAS,QAAsB;EACnC,IAAI,CAAC,EAAW,cAAc,CAAC,EAAW,kBACxC,OAAO;EAET,IAAM,IAAiB,EAAgB,MAAK,MACnC,EAAM,uBAAuB,EAAW,oBAAoB,EAAM,0BAA0B,MAAK,MAAK,MAAM,EAAW,UAAU,CACzI,GAEK,IAAiB,EAAW,wBAAwB,GAAgB,6BAA6B,MAAK,MACnG,EAAW,0BAA0B,MAAK,MAAK,MAAM,EAAW,UAAU,KAAK,EAAW,4BAA4B,EAAW,oBACzI;EAED,OAAO;GACL,UAAU,GAAgB,YAAY,GAAgB;GACtD,cAAc,GAAgB,gBAAgB,GAAgB;GAC9D,uBAAuB,GAAgB,4BAA4B,SAAS;GAC5E,eAAe,GAAgB;GAC/B,cAAc,GAAgB;GAC9B,aAAa,GAAgB,eAAe,GAAgB;GAC5D,iBAAiB,GAAgB,mBAAmB,GAAgB;GACpE,gBAAgB,GAAgB;GAChC,eAAe,GAAgB;EACjC;CACF,GAAG;EAAC;EAAiB,EAAW;EAAY,EAAW;EAAkB,EAAW;CAAoB,CAAC,GAEnG,KAAuB,QACpB;EACL;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,SAAS,EAAqB;GAC9B,MAAM;GACN,SAAS,EAAqB;EAChC;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,SAAS,EAA2B;GACpC,MAAM;GACN,SAAS,EAA2B;EACtC;EACA;GACE,YAAY,EAA2B;GACvC,UAAU,CAAC,GAAQ;GACnB,OAAO,CAAC;GACR,SAAS,EAA2B;GACpC,MAAM;GACN,SAAS,EAA2B;EACtC;CACF,GACC;EAAC,EAAqB;EAAW,EAAqB;EAAS,EAA2B;EAAW,EAA2B;EAAS,GAAQ;EAAuB;CAAC,CAAC;CAG7K,OACE,kBAAC,GAAD;EACE,WAAA;EACA,iBAAA;EACA,kBAAkB,EAAW,iBAAiB,oCAAoC;EAClF,OAAO,CAAC;EAER,UAAA,kBAAC,GAAD;GACE,IAAI;IACF,QAAQ;IACR,UAAU;GACZ;GAEA,UAAA,kBAAC,GAAD;IACE,eAAA;IACW;IAEX,UAAA,kBAAC,IAAD;KAAW,UAAU;KAArB,UAAA;MACE,kBAAC,GAAD;OACE,IAAI,EACF,SAAS,EACX;OAHF,UAAA;QAKE,kBAAC,GAAD;SACE,WAAW;SACX,SAAS;SAER,UAAA,EAAE,oDAAoD,EAAE,WAAW,EAAU,MAAM,MAAM,CAAC;QACjF,CAAA;QACZ,kBAAC,GAAD,EAAA,UACG,EAAE,sCAAsC,EAAE,kBAAkB,EAAqB,IAAI,IAAI,EAAU,MAAM,eAAe,CAAC,EAAE,KAAK,CAAC,EACxH,CAAA;QACZ,kBAAC,GAAD,EAAA,UACG,EAAE,oBAAoB,EAAE,OAAO,EAAU,MAAM,MAAM,KAAK,IAAI,EAAE,CAAC,EACxD,CAAA;OACT;;MACL,kBAAC,GAAD;OACwB;OACd;OACK;OACb,UAAU,EAAa,EAAA,OAAI;OACnB;MACT,CAAA;MACmB,OAAO,KAAW,cAArC,KACC,kBAAC,GAAD;OACE,IAAI,EACF,SAAS,EACX;OAHF,UAAA;QAKE,kBAAC,GAAD;SAAY,SAAS;SAClB,UAAA,EAAE,0BAA0B;QACnB,CAAA;QACX,CAAC,EAAW,wBAAwB,EAAO,yBAC1C,kBAAC,GAAD;SACE,IAAI,EACF,SAAS,EACX;SAEA,UAAA,kBAAC,GAAD;UACE,IAAI,EACF,WAAW,SACb;UAEC,UAAA,CAAC;SACQ,CAAA;QACT,CAAA;QAEP,kBAAC,GAAD,EAAA,UACG,EAAE,yBAAyB,EAAE,SAAS,GAAQ,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAChE,CAAA;QACZ,kBAAC,GAAD,EAAA,UACG,EAAE,+BAA+B,EAAE,YAAY,GAAQ,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC5E,CAAA;QACZ,kBAAC,GAAD,EAAA,UACG,EAAE,gCAAgC,EAAE,YAAY,GAAQ,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC9E,CAAA;QACZ,kBAAC,GAAD,EAAA,UACG,EAAE,sCAAsC,EAAE,eAAe,GAAQ,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC1F,CAAA;QACZ,kBAAC,GAAD,EAAA,UACG,EAAE,kCAAkC,EAAE,aAAa,GAAQ,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAClF,CAAA;QACZ,kBAAC,GAAD,EAAA,UACG,EAAE,oCAAoC,EAAE,cAAc,GAAQ,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,EACtF,CAAA;QACZ,kBAAC,GAAD,EAAA,UACG,EAAE,gDAAgD,EAAE,oBAAoB,GAAQ,cAAc,SAAS,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAClH,CAAA;QACZ,kBAAC,GAAD,EAAA,UACG,EAAE,kDAAkD,EAAE,qBAAqB,GAAQ,eAAe,SAAS,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACtH,CAAA;OAET;;KAEE;;GACI,CAAA;EACd,CAAA;CACQ,CAAA;AAEnB"}
@@ -5,15 +5,15 @@ import { useCaseTypeSetOptionsQuery as r } from "../../dataHooks/useCaseTypeSets
5
5
  import { useUserCasePolicyNameFactory as i } from "../../hooks/useUserCasePolicyNameFactory/index.js";
6
6
  import { boolean as a, object as o, string as s } from "yup";
7
7
  import { CaseDbAbacApi as c, CaseDbCommandName as l } from "@gen-epix/api-casedb";
8
- import { FORM_FIELD_DEFINITION_TYPE as u } from "@gen-epix/ui-form/models/form";
8
+ import { FORM_FIELD_DEFINITION_TYPE as u } from "@gen-epix/ui-core-form/models/form";
9
9
  import { useCallback as d, useMemo as f } from "react";
10
10
  import { useTranslation as p } from "react-i18next";
11
11
  import { jsx as m } from "react/jsx-runtime";
12
12
  import { useArray as h } from "@gen-epix/ui-core/hooks/useArray";
13
- import { TableUtil as g } from "@gen-epix/ui/utils/TableUtil";
13
+ import { TableUtil as g } from "@gen-epix/ui-client-common/utils/TableUtil";
14
14
  import { TestIdUtil as _ } from "@gen-epix/ui-core/utils/TestIdUtil";
15
- import { CrudPage as v } from "@gen-epix/ui/pages/CrudPage";
16
- import { useUserOptionsQuery as y } from "@gen-epix/ui/dataHooks/useUsersQuery";
15
+ import { CrudPage as v } from "@gen-epix/ui-client-common/pages/CrudPage";
16
+ import { useUserOptionsQuery as y } from "@gen-epix/ui-client-common/dataHooks/useUsersQuery";
17
17
  //#region src/pages/UserShareCasePoliciesAdminPage/UserShareCasePoliciesAdminPage.tsx
18
18
  var b = () => {
19
19
  let { t: b } = p(), x = y(), S = t(), C = n(), w = r(), T = i(), E = h([