@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.
- package/dist/@types/mui.d.ts +1 -1
- package/dist/@types/{ui-casedb.d.ts → ui-client-casedb.d.ts} +1 -1
- package/dist/_chunks/AddCasesToEventDialog.js +74 -74
- package/dist/_chunks/AddCasesToEventDialog.js.map +1 -1
- package/dist/_chunks/CaseContentForm.js +2 -2
- package/dist/_chunks/CaseContentForm.js.map +1 -1
- package/dist/_chunks/CaseDbDownloadUtil.js +40 -35
- package/dist/_chunks/CaseDbDownloadUtil.js.map +1 -1
- package/dist/_chunks/CaseInfoDialog.js +195 -195
- package/dist/_chunks/CaseInfoDialog.js.map +1 -1
- package/dist/_chunks/CaseSetInfoDialog.js +131 -131
- package/dist/_chunks/CaseSetInfoDialog.js.map +1 -1
- package/dist/_chunks/CaseTypeInfoDialog.js +63 -61
- package/dist/_chunks/CaseTypeInfoDialog.js.map +1 -1
- package/dist/_chunks/CasesAlreadyInCaseSetWarning.js +6 -6
- package/dist/_chunks/CasesAlreadyInCaseSetWarning.js.map +1 -1
- package/dist/_chunks/CompletCaseTypeLoader.js +3 -3
- package/dist/_chunks/CompletCaseTypeLoader.js.map +1 -1
- package/dist/_chunks/CreateEventDialogSuccessNotificationMessage.js +1 -1
- package/dist/_chunks/CreateEventDialogSuccessNotificationMessage.js.map +1 -1
- package/dist/_chunks/CustomTabPanel.js.map +1 -1
- package/dist/_chunks/Dashboard.js +399 -386
- package/dist/_chunks/Dashboard.js.map +1 -1
- package/dist/_chunks/DashboardStoreLoader.js +5 -5
- package/dist/_chunks/DashboardStoreLoader.js.map +1 -1
- package/dist/_chunks/DataCollectionAccessInfo.js +21 -21
- package/dist/_chunks/DataCollectionAccessInfo.js.map +1 -1
- package/dist/_chunks/EpiCurveUtil.js +4 -4
- package/dist/_chunks/EpiCurveUtil.js.map +1 -1
- package/dist/_chunks/EpiCurveWidget.js +189 -183
- package/dist/_chunks/EpiCurveWidget.js.map +1 -1
- package/dist/_chunks/FilterUtil.js +103 -101
- package/dist/_chunks/FilterUtil.js.map +1 -1
- package/dist/_chunks/FindSimilarCasesDialog.js +16 -16
- package/dist/_chunks/FindSimilarCasesDialog.js.map +1 -1
- package/dist/_chunks/FindSimilarCasesUtil.js +9 -9
- package/dist/_chunks/FindSimilarCasesUtil.js.map +1 -1
- package/dist/_chunks/HomePageTrends.js +8 -8
- package/dist/_chunks/HomePageTrends.js.map +1 -1
- package/dist/_chunks/LegendaItem.js +3 -3
- package/dist/_chunks/LegendaItem.js.map +1 -1
- package/dist/_chunks/LineListWidget.js +23 -21
- package/dist/_chunks/LineListWidget.js.map +1 -1
- package/dist/_chunks/PanelSeparator.js +374 -384
- package/dist/_chunks/PanelSeparator.js.map +1 -1
- package/dist/_chunks/Upload.js +222 -207
- package/dist/_chunks/Upload.js.map +1 -1
- package/dist/_chunks/UploadUtil.js +1970 -841
- package/dist/_chunks/UploadUtil.js.map +1 -1
- package/dist/_chunks/UserRightsDialog.js +12 -12
- package/dist/_chunks/UserRightsDialog.js.map +1 -1
- package/dist/_chunks/_MapCache.js +2 -2
- package/dist/_chunks/_baseGet.js +1 -1
- package/dist/_chunks/_baseGet.js.map +1 -1
- package/dist/_chunks/_baseIteratee.js +1 -1
- package/dist/_chunks/_baseIteratee.js.map +1 -1
- package/dist/_chunks/_setToString.js.map +1 -1
- package/dist/_chunks/{chunk-KS7C4IRE.js → chunk-BV7QT456.js} +330 -495
- package/dist/_chunks/chunk-BV7QT456.js.map +1 -0
- package/dist/_chunks/cloneDeep.js +11 -9
- package/dist/_chunks/cloneDeep.js.map +1 -1
- package/dist/_chunks/dashboardStore.js +259 -261
- package/dist/_chunks/dashboardStore.js.map +1 -1
- package/dist/_chunks/esm.js +2900 -2868
- package/dist/_chunks/esm.js.map +1 -1
- package/dist/_chunks/format.js +8 -8
- package/dist/_chunks/format.js.map +1 -1
- package/dist/_chunks/index.esm.js +919 -796
- package/dist/_chunks/index.esm.js.map +1 -1
- package/dist/_chunks/index.module.js +1 -1
- package/dist/_chunks/index.module.js.map +1 -1
- package/dist/_chunks/protectedTokens.js +79 -81
- package/dist/_chunks/protectedTokens.js.map +1 -1
- package/dist/_chunks/react.js +1 -1
- package/dist/_chunks/react.js.map +1 -1
- package/dist/_chunks/round.js +1 -1
- package/dist/_chunks/round.js.map +1 -1
- package/dist/_chunks/shallow.js +2 -2
- package/dist/_chunks/shallow.js.map +1 -1
- package/dist/_chunks/sync.js +198 -161
- package/dist/_chunks/sync.js.map +1 -1
- package/dist/_chunks/toDate.js +1 -1
- package/dist/_chunks/toDate.js.map +1 -1
- package/dist/_chunks/toString.js +1 -1
- package/dist/_chunks/toString.js.map +1 -1
- package/dist/_chunks/useUnit.js.map +1 -1
- package/dist/_chunks/vanilla.js +1 -1
- package/dist/_chunks/vanilla.js.map +1 -1
- package/dist/_chunks/yup.js +5 -5
- package/dist/_chunks/yup.js.map +1 -1
- package/dist/classes/filters/SelectionFilter.d.ts +2 -2
- package/dist/classes/filters/TreeFilter.d.ts +2 -2
- package/dist/classes/services/DataService/index.js +3 -3
- package/dist/classes/services/DataService/index.js.map +1 -1
- package/dist/classes/services/EventBusService/EventBusService.d.ts +1 -1
- package/dist/classes/services/EventBusService/index.js.map +1 -1
- package/dist/classes/services/LineListService/LineListServiceAbstract/index.js +1 -1
- package/dist/classes/services/LineListService/LineListServiceAbstract/index.js.map +1 -1
- package/dist/components/app/CaseDbApp/index.js +8 -5
- package/dist/components/app/CaseDbApp/index.js.map +1 -1
- package/dist/components/form/fields/ArrangementEditor/index.js +83 -83
- package/dist/components/form/fields/ArrangementEditor/index.js.map +1 -1
- package/dist/components/ui/AddCasesToEventDialog/AddCasesToEventDialog.d.ts +2 -2
- package/dist/components/ui/CaseContentFormDialog/CaseContentFormDialog.d.ts +2 -2
- package/dist/components/ui/CaseContentFormDialog/index.js +1 -1
- package/dist/components/ui/CaseContentFormDialog/index.js.map +1 -1
- package/dist/components/ui/CaseInfoDialog/CaseInfoDialog.d.ts +2 -2
- package/dist/components/ui/CaseSetInfoDialog/CaseSetInfoDialog.d.ts +2 -2
- package/dist/components/ui/CaseSummary/index.js +1 -1
- package/dist/components/ui/CaseSummary/index.js.map +1 -1
- package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoDialog.d.ts +2 -2
- package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoDialogContent.d.ts +1 -1
- package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoDialogWithLoader.d.ts +2 -2
- package/dist/components/ui/ContextMenu/index.js.map +1 -1
- package/dist/components/ui/CreateEventDialog/CreateEventDialog.d.ts +2 -2
- package/dist/components/ui/CreateEventDialog/index.js +9 -9
- package/dist/components/ui/CreateEventDialog/index.js.map +1 -1
- package/dist/components/ui/Dashboard/DashboardDownloadSidebarItem.d.ts +1 -1
- package/dist/components/ui/Dashboard/DashboardSettingsSidebarItem.d.ts +1 -1
- package/dist/components/ui/Dashboard/DashboardWidget.d.ts +1 -1
- package/dist/components/ui/DashboardEditCases/index.js +1 -1
- package/dist/components/ui/DashboardEditCases/index.js.map +1 -1
- package/dist/components/ui/FileSelector/index.js +46 -46
- package/dist/components/ui/FileSelector/index.js.map +1 -1
- package/dist/components/ui/FindSimilarCasesDialog/FindSimilarCasesDialog.d.ts +2 -2
- package/dist/components/ui/Grouping/index.js +50 -50
- package/dist/components/ui/Grouping/index.js.map +1 -1
- package/dist/components/ui/HistogramWidget/index.js +1 -1
- package/dist/components/ui/HistogramWidget/index.js.map +1 -1
- package/dist/components/ui/MapWidget/index.js +7 -3
- package/dist/components/ui/MapWidget/index.js.map +1 -1
- package/dist/components/ui/RemoveCasesFromEventDialog/RemoveCasesFromEventDialog.d.ts +2 -2
- package/dist/components/ui/RemoveCasesFromEventDialog/index.js +6 -6
- package/dist/components/ui/RemoveCasesFromEventDialog/index.js.map +1 -1
- package/dist/components/ui/RemoveFindSimilarCasesResultDialog/RemoveFindSimilarCasesResultDialog.d.ts +2 -2
- package/dist/components/ui/SequenceDownloadDialog/SequenceDownloadDialog.d.ts +2 -2
- package/dist/components/ui/SequenceDownloadDialog/index.js +22 -22
- package/dist/components/ui/SequenceDownloadDialog/index.js.map +1 -1
- package/dist/components/ui/TreeDescription/index.js.map +1 -1
- package/dist/components/ui/TreeWidget/index.js +11 -11
- package/dist/components/ui/TreeWidget/index.js.map +1 -1
- package/dist/components/ui/Upload/UploadCaseResultTable.d.ts +2 -2
- package/dist/components/ui/Upload/UploadEditColumnValuesDialog.d.ts +2 -2
- package/dist/components/ui/UserRightsDialog/UserRightsDialog.d.ts +2 -2
- package/dist/components/ui/UsersEffectiveRightsDetailsDialog/UsersEffectiveRightsDetailsDialog.d.ts +2 -2
- package/dist/components/ui/UsersEffectiveRightsDetailsDialog/index.js +25 -11
- package/dist/components/ui/UsersEffectiveRightsDetailsDialog/index.js.map +1 -1
- package/dist/components/ui/Warning/index.js.map +1 -1
- package/dist/components/ui/WidgetHeaderIconButton/index.js.map +1 -1
- package/dist/components/ui/WidgetMenu/WidgetMenu.d.ts +1 -1
- package/dist/components/ui/WidgetMenu/index.js +2 -2
- package/dist/components/ui/WidgetMenu/index.js.map +1 -1
- package/dist/components/ui/WidgetUnavailable/index.js.map +1 -1
- package/dist/constants/query.d.ts +1 -1
- package/dist/constants/query.js +1 -1
- package/dist/constants/query.js.map +1 -1
- package/dist/context/caseAbac/CaseAbacContext.d.ts +1 -1
- package/dist/dataHooks/useAssemblyProtocolsQuery/index.js +3 -3
- package/dist/dataHooks/useAssemblyProtocolsQuery/index.js.map +1 -1
- package/dist/dataHooks/useAssemblyProtocolsQuery/useAssemblyProtocolsQuery.d.ts +1 -1
- package/dist/dataHooks/useCaseRightsQuery/index.js +2 -2
- package/dist/dataHooks/useCaseRightsQuery/index.js.map +1 -1
- package/dist/dataHooks/useCaseSetCategoriesQuery/index.js +3 -3
- package/dist/dataHooks/useCaseSetCategoriesQuery/index.js.map +1 -1
- package/dist/dataHooks/useCaseSetCategoriesQuery/useCaseSetCategoriesQuery.d.ts +1 -1
- package/dist/dataHooks/useCaseSetRightsQuery/index.js +2 -2
- package/dist/dataHooks/useCaseSetRightsQuery/index.js.map +1 -1
- package/dist/dataHooks/useCaseSetStatsQuery/index.js +3 -3
- package/dist/dataHooks/useCaseSetStatsQuery/index.js.map +1 -1
- package/dist/dataHooks/useCaseSetStatsQuery/useCaseSetStatsQuery.d.ts +1 -1
- package/dist/dataHooks/useCaseSetStatusesQuery/index.js +3 -3
- package/dist/dataHooks/useCaseSetStatusesQuery/index.js.map +1 -1
- package/dist/dataHooks/useCaseSetStatusesQuery/useCaseSetStatusesQuery.d.ts +1 -1
- package/dist/dataHooks/useCaseSetsQuery/index.js +3 -3
- package/dist/dataHooks/useCaseSetsQuery/index.js.map +1 -1
- package/dist/dataHooks/useCaseSetsQuery/useCaseSetsQuery.d.ts +1 -1
- package/dist/dataHooks/useCaseTypeSetCategoriesQuery/index.js +3 -3
- package/dist/dataHooks/useCaseTypeSetCategoriesQuery/index.js.map +1 -1
- package/dist/dataHooks/useCaseTypeSetCategoriesQuery/useCaseTypeSetCategoriesQuery.d.ts +1 -1
- package/dist/dataHooks/useCaseTypeSetCategoryPurposeQuery/index.js.map +1 -1
- package/dist/dataHooks/useCaseTypeSetCategoryPurposeQuery/useCaseTypeSetCategoryPurposeQuery.d.ts +1 -1
- package/dist/dataHooks/useCaseTypeSetMembersQuery/index.js +2 -2
- package/dist/dataHooks/useCaseTypeSetMembersQuery/index.js.map +1 -1
- package/dist/dataHooks/useCaseTypeSetsQuery/index.js +3 -3
- package/dist/dataHooks/useCaseTypeSetsQuery/index.js.map +1 -1
- package/dist/dataHooks/useCaseTypeSetsQuery/useCaseTypeSetsQuery.d.ts +1 -1
- package/dist/dataHooks/useCaseTypeStatsQuery/index.js +2 -2
- package/dist/dataHooks/useCaseTypeStatsQuery/index.js.map +1 -1
- package/dist/dataHooks/useCaseTypesQuery/index.js +3 -3
- package/dist/dataHooks/useCaseTypesQuery/index.js.map +1 -1
- package/dist/dataHooks/useCaseTypesQuery/useCaseTypesQuery.d.ts +1 -1
- package/dist/dataHooks/useColSetMembersQuery/index.js +2 -2
- package/dist/dataHooks/useColSetMembersQuery/index.js.map +1 -1
- package/dist/dataHooks/useColSetsQuery/index.js +3 -3
- package/dist/dataHooks/useColSetsQuery/index.js.map +1 -1
- package/dist/dataHooks/useColSetsQuery/useColSetsQuery.d.ts +1 -1
- package/dist/dataHooks/useColTypesQuery/index.js.map +1 -1
- package/dist/dataHooks/useColTypesQuery/useColTypesQuery.d.ts +1 -1
- package/dist/dataHooks/useColsQuery/index.js +3 -3
- package/dist/dataHooks/useColsQuery/index.js.map +1 -1
- package/dist/dataHooks/useColsQuery/useColsQuery.d.ts +1 -1
- package/dist/dataHooks/useConceptQuery/index.js +3 -3
- package/dist/dataHooks/useConceptQuery/index.js.map +1 -1
- package/dist/dataHooks/useConceptQuery/useConceptQuery.d.ts +1 -1
- package/dist/dataHooks/useConceptRelationTypeQuery/index.js.map +1 -1
- package/dist/dataHooks/useConceptRelationTypeQuery/useConceptRelationTypeQuery.d.ts +1 -1
- package/dist/dataHooks/useConceptSetTypeQuery/index.js.map +1 -1
- package/dist/dataHooks/useConceptSetTypeQuery/useConceptSetTypeQuery.d.ts +1 -1
- package/dist/dataHooks/useConceptSetsQuery/index.js +3 -3
- package/dist/dataHooks/useConceptSetsQuery/index.js.map +1 -1
- package/dist/dataHooks/useConceptSetsQuery/useConceptSetsQuery.d.ts +1 -1
- package/dist/dataHooks/useDataCollectionSetMembersQuery/index.js +2 -2
- package/dist/dataHooks/useDataCollectionSetMembersQuery/index.js.map +1 -1
- package/dist/dataHooks/useDataCollectionsQuery/index.js +3 -3
- package/dist/dataHooks/useDataCollectionsQuery/index.js.map +1 -1
- package/dist/dataHooks/useDataCollectionsQuery/useDataCollectionsQuery.d.ts +1 -1
- package/dist/dataHooks/useDimTypesQuery/index.js.map +1 -1
- package/dist/dataHooks/useDimTypesQuery/useDimTypesQuery.d.ts +1 -1
- package/dist/dataHooks/useDimsQuery/index.js +3 -3
- package/dist/dataHooks/useDimsQuery/index.js.map +1 -1
- package/dist/dataHooks/useDimsQuery/useDimsQuery.d.ts +1 -1
- package/dist/dataHooks/useDiseasesQuery/index.js +3 -3
- package/dist/dataHooks/useDiseasesQuery/index.js.map +1 -1
- package/dist/dataHooks/useDiseasesQuery/useDiseasesQuery.d.ts +1 -1
- package/dist/dataHooks/useEtiologicalAgentsQuery/index.js +3 -3
- package/dist/dataHooks/useEtiologicalAgentsQuery/index.js.map +1 -1
- package/dist/dataHooks/useEtiologicalAgentsQuery/useEtiologicalAgentsQuery.d.ts +1 -1
- package/dist/dataHooks/useGeneticDistanceProtocolsQuery/index.js +3 -3
- package/dist/dataHooks/useGeneticDistanceProtocolsQuery/index.js.map +1 -1
- package/dist/dataHooks/useGeneticDistanceProtocolsQuery/useGeneticDistanceProtocolsQuery.d.ts +1 -1
- package/dist/dataHooks/useOrganizationAccessCasePoliciesQuery/index.js +2 -2
- package/dist/dataHooks/useOrganizationAccessCasePoliciesQuery/index.js.map +1 -1
- package/dist/dataHooks/useOrganizationShareCasePoliciesQuery/index.js +2 -2
- package/dist/dataHooks/useOrganizationShareCasePoliciesQuery/index.js.map +1 -1
- package/dist/dataHooks/useRefColsQuery/index.js +3 -3
- package/dist/dataHooks/useRefColsQuery/index.js.map +1 -1
- package/dist/dataHooks/useRefColsQuery/useRefColsQuery.d.ts +1 -1
- package/dist/dataHooks/useRefColsValidationRulesQuery/index.js +2 -2
- package/dist/dataHooks/useRefColsValidationRulesQuery/index.js.map +1 -1
- package/dist/dataHooks/useRefDimsQuery/index.js +3 -3
- package/dist/dataHooks/useRefDimsQuery/index.js.map +1 -1
- package/dist/dataHooks/useRefDimsQuery/useRefDimsQuery.d.ts +1 -1
- package/dist/dataHooks/useRegionQuery/index.js +3 -3
- package/dist/dataHooks/useRegionQuery/index.js.map +1 -1
- package/dist/dataHooks/useRegionQuery/useRegionQuery.d.ts +1 -1
- package/dist/dataHooks/useRegionRelationTypeQuery/index.js.map +1 -1
- package/dist/dataHooks/useRegionRelationTypeQuery/useRegionRelationTypeQuery.d.ts +1 -1
- package/dist/dataHooks/useRegionSetsQuery/index.js +3 -3
- package/dist/dataHooks/useRegionSetsQuery/index.js.map +1 -1
- package/dist/dataHooks/useRegionSetsQuery/useRegionSetsQuery.d.ts +1 -1
- package/dist/dataHooks/useSequencingProtocolsQuery/index.js +3 -3
- package/dist/dataHooks/useSequencingProtocolsQuery/index.js.map +1 -1
- package/dist/dataHooks/useSequencingProtocolsQuery/useSequencingProtocolsQuery.d.ts +1 -1
- package/dist/dataHooks/useTreeAlgorithmCodesQuery/index.js.map +1 -1
- package/dist/dataHooks/useTreeAlgorithmCodesQuery/useTreeAlgorithmCodesQuery.d.ts +1 -1
- package/dist/dataHooks/useUnitQuery/useUnit.d.ts +1 -1
- package/dist/dataHooks/useUserAccessCasePoliciesQuery/index.js +2 -2
- package/dist/dataHooks/useUserAccessCasePoliciesQuery/index.js.map +1 -1
- package/dist/dataHooks/useUserEffectiveRightsQuery/index.js +3 -3
- package/dist/dataHooks/useUserEffectiveRightsQuery/index.js.map +1 -1
- package/dist/dataHooks/useUserEffectiveRightsQuery/useUserEffectiveRightsQuery.d.ts +1 -1
- package/dist/dataHooks/useUserShareCasePoliciesQuery/index.js +2 -2
- package/dist/dataHooks/useUserShareCasePoliciesQuery/index.js.map +1 -1
- package/dist/hooks/useOrganizationCasePolicyNameFactory/index.js +2 -2
- package/dist/hooks/useOrganizationCasePolicyNameFactory/index.js.map +1 -1
- package/dist/hooks/useOrganizationCasePolicyNameFactory/useOrganizationCasePolicyNameFactory.d.ts +1 -1
- package/dist/hooks/useUserCasePolicyNameFactory/index.js +3 -3
- package/dist/hooks/useUserCasePolicyNameFactory/index.js.map +1 -1
- package/dist/hooks/useUserCasePolicyNameFactory/useUserCasePolicyNameFactory.d.ts +1 -1
- package/dist/locale/nl.json +1 -1
- package/dist/models/config.d.ts +1 -1
- package/dist/models/dashboard.d.ts +1 -1
- package/dist/models/dashboard.js.map +1 -1
- package/dist/models/theme.d.ts +2 -2
- package/dist/pages/CaseDbUsersAdminPage/index.js +5 -5
- package/dist/pages/CaseDbUsersAdminPage/index.js.map +1 -1
- package/dist/pages/CaseSetCategoryAdminPage/index.js +4 -4
- package/dist/pages/CaseSetCategoryAdminPage/index.js.map +1 -1
- package/dist/pages/CaseSetStatusAdminPage/index.js +4 -4
- package/dist/pages/CaseSetStatusAdminPage/index.js.map +1 -1
- package/dist/pages/CaseTypeSetCategoriesAdminPage/index.js +4 -4
- package/dist/pages/CaseTypeSetCategoriesAdminPage/index.js.map +1 -1
- package/dist/pages/CaseTypeSetsAdminPage/index.js +6 -6
- package/dist/pages/CaseTypeSetsAdminPage/index.js.map +1 -1
- package/dist/pages/CaseTypesAdminPage/index.js +5 -5
- package/dist/pages/CaseTypesAdminPage/index.js.map +1 -1
- package/dist/pages/CasesDetailPage/index.js +5 -5
- package/dist/pages/CasesDetailPage/index.js.map +1 -1
- package/dist/pages/CasesPage/index.js +10 -10
- package/dist/pages/CasesPage/index.js.map +1 -1
- package/dist/pages/ColSetsAdminPage/index.js +6 -6
- package/dist/pages/ColSetsAdminPage/index.js.map +1 -1
- package/dist/pages/ColsAdminPage/index.js +5 -5
- package/dist/pages/ColsAdminPage/index.js.map +1 -1
- package/dist/pages/ConceptRelationsAdminPage/index.js +19 -19
- package/dist/pages/ConceptRelationsAdminPage/index.js.map +1 -1
- package/dist/pages/ConceptSetsAdminPage/index.js +5 -5
- package/dist/pages/ConceptSetsAdminPage/index.js.map +1 -1
- package/dist/pages/ConceptsAdminPage/index.js +5 -5
- package/dist/pages/ConceptsAdminPage/index.js.map +1 -1
- package/dist/pages/DataCollectionSetsAdminPage/index.js +12 -12
- package/dist/pages/DataCollectionSetsAdminPage/index.js.map +1 -1
- package/dist/pages/DataCollectionVisualizationPage/index.js +4 -4
- package/dist/pages/DataCollectionVisualizationPage/index.js.map +1 -1
- package/dist/pages/DataCollectionsAdminPage/index.js +4 -4
- package/dist/pages/DataCollectionsAdminPage/index.js.map +1 -1
- package/dist/pages/DimsAdminPage/index.js +6 -6
- package/dist/pages/DimsAdminPage/index.js.map +1 -1
- package/dist/pages/DiseasesAdminPage/index.js +4 -4
- package/dist/pages/DiseasesAdminPage/index.js.map +1 -1
- package/dist/pages/EtiologicalAgentsAdminPage/index.js +4 -4
- package/dist/pages/EtiologicalAgentsAdminPage/index.js.map +1 -1
- package/dist/pages/EtiologiesAdminPage/index.js +3 -3
- package/dist/pages/EtiologiesAdminPage/index.js.map +1 -1
- package/dist/pages/EventsDetailPage/index.js +5 -5
- package/dist/pages/EventsDetailPage/index.js.map +1 -1
- package/dist/pages/EventsPage/index.js +11 -11
- package/dist/pages/EventsPage/index.js.map +1 -1
- package/dist/pages/HomePage/index.js +2 -2
- package/dist/pages/HomePage/index.js.map +1 -1
- package/dist/pages/OrganizationAccessCasePoliciesAdminPage/index.js +4 -4
- package/dist/pages/OrganizationAccessCasePoliciesAdminPage/index.js.map +1 -1
- package/dist/pages/OrganizationShareCasePoliciesAdminPage/index.js +4 -4
- package/dist/pages/OrganizationShareCasePoliciesAdminPage/index.js.map +1 -1
- package/dist/pages/RefColsAdminPage/index.js +7 -7
- package/dist/pages/RefColsAdminPage/index.js.map +1 -1
- package/dist/pages/RefDimsAdminPage/index.js +5 -5
- package/dist/pages/RefDimsAdminPage/index.js.map +1 -1
- package/dist/pages/RegionRelationsAdminPage/index.js +3 -3
- package/dist/pages/RegionRelationsAdminPage/index.js.map +1 -1
- package/dist/pages/RegionSetShapesAdminPage/index.js +4 -4
- package/dist/pages/RegionSetShapesAdminPage/index.js.map +1 -1
- package/dist/pages/RegionSetsAdminPage/index.js +5 -5
- package/dist/pages/RegionSetsAdminPage/index.js.map +1 -1
- package/dist/pages/RegionsAdminPage/index.js +5 -5
- package/dist/pages/RegionsAdminPage/index.js.map +1 -1
- package/dist/pages/TrendsPage/index.js +1 -1
- package/dist/pages/TrendsPage/index.js.map +1 -1
- package/dist/pages/UploadPage/index.js +1 -1
- package/dist/pages/UploadPage/index.js.map +1 -1
- package/dist/pages/UserAccessCasePoliciesAdminPage/index.js +4 -4
- package/dist/pages/UserAccessCasePoliciesAdminPage/index.js.map +1 -1
- package/dist/pages/UserEffectiveRightsAdminPage/index.js +12 -12
- package/dist/pages/UserEffectiveRightsAdminPage/index.js.map +1 -1
- package/dist/pages/UserEffectiveRightsTesterAdminPage/index.js +8 -8
- package/dist/pages/UserEffectiveRightsTesterAdminPage/index.js.map +1 -1
- package/dist/pages/UserShareCasePoliciesAdminPage/index.js +4 -4
- package/dist/pages/UserShareCasePoliciesAdminPage/index.js.map +1 -1
- package/dist/routes/adminRoutes.d.ts +1 -1
- package/dist/routes/index.js +11 -8
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/routes.d.ts +1 -1
- package/dist/setup/setup.js +5 -5
- package/dist/setup/setup.js.map +1 -1
- package/dist/stores/dashboardStore/dashboardStore.d.ts +1 -1
- package/dist/stores/uploadStore/index.js +2 -2
- package/dist/stores/uploadStore/index.js.map +1 -1
- package/dist/stores/uploadStore/uploadStore.d.ts +1 -1
- package/dist/stores/userProfileStore/index.js +2 -2
- package/dist/stores/userProfileStore/index.js.map +1 -1
- package/dist/theme/demoTheme/index.js +2 -2
- package/dist/theme/demoTheme/index.js.map +1 -1
- package/dist/utils/CaseDbDataUtil/CaseDbDataUtil.d.ts +1 -1
- package/dist/utils/CaseDbDataUtil/index.js +1 -1
- package/dist/utils/CaseDbDataUtil/index.js.map +1 -1
- package/dist/utils/CaseDbStandardConfigUtil/index.js +2488 -1408
- package/dist/utils/CaseDbStandardConfigUtil/index.js.map +1 -1
- package/dist/utils/CaseDbTableUtil/CaseDbTableUtil.d.ts +1 -1
- package/dist/utils/CaseDbTableUtil/index.js +1 -1
- package/dist/utils/CaseDbTableUtil/index.js.map +1 -1
- package/dist/utils/CaseSelectionUtil/index.js.map +1 -1
- package/dist/utils/CaseTypeFormUtil/CaseTypeFormUtil.d.ts +1 -1
- package/dist/utils/CaseTypeFormUtil/index.js +7 -10
- package/dist/utils/CaseTypeFormUtil/index.js.map +1 -1
- package/dist/utils/CaseTypeUtil/index.js +1 -1
- package/dist/utils/CaseTypeUtil/index.js.map +1 -1
- package/dist/utils/CaseUtil/index.js +3 -3
- package/dist/utils/CaseUtil/index.js.map +1 -1
- package/dist/utils/DashboardUtil/index.js +1 -1
- package/dist/utils/DashboardUtil/index.js.map +1 -1
- package/dist/utils/DataSetUtil/index.js.map +1 -1
- package/dist/utils/FileUtil/index.js +1 -1
- package/dist/utils/FileUtil/index.js.map +1 -1
- package/dist/utils/FilterUtil/FilterUtil.d.ts +2 -2
- package/dist/utils/HistogramUtil/index.js +1 -1
- package/dist/utils/HistogramUtil/index.js.map +1 -1
- package/dist/utils/MapUtil/index.js +1 -1
- package/dist/utils/MapUtil/index.js.map +1 -1
- package/dist/utils/StratificationUtil/index.js +3 -2
- package/dist/utils/StratificationUtil/index.js.map +1 -1
- package/dist/utils/UploadUtil/UploadUtil.d.ts +1 -1
- package/package.json +19 -11
- package/dist/_chunks/chunk-KS7C4IRE.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/EventsPage/EventsPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n useRef,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n Box,\n Button,\n ListItemIcon,\n ListItemText,\n MenuItem,\n Typography,\n useTheme,\n} from '@mui/material';\nimport ArrowCircleRightIcon from '@mui/icons-material/ArrowCircleRight';\nimport type {\n CaseDbCaseSet,\n CaseDbCaseStats,\n} from '@gen-epix/api-casedb';\nimport { CaseDbCaseApi } from '@gen-epix/api-casedb';\nimport type {\n TableColumn,\n TableRowParams,\n} from '@gen-epix/ui/models/table';\nimport { ConfigService } from '@gen-epix/ui/classes/services/ConfigService';\nimport {\n createTableStore,\n TableStoreContextProvider,\n} from '@gen-epix/ui/stores/tableStore';\nimport { LoadableUtil } from '@gen-epix/ui/utils/LoadableUtil';\nimport { PageContainer } from '@gen-epix/ui/components/ui/PageContainer';\nimport { QueryClientService } from '@gen-epix/ui/classes/services/QueryClientService';\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 { useQueryMemo } from '@gen-epix/ui/hooks/useQueryMemo';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { useArray } from '@gen-epix/ui-core/hooks/useArray';\nimport { DATE_FORMAT } from '@gen-epix/ui-core/constants/date';\n\nimport CollectionIcon from '../../assets/icons/CollectionIcon.svg?react';\nimport type { CaseSetInfoDialogRefMethods } from '../../components/ui/CaseSetInfoDialog';\nimport { CaseSetInfoDialog } from '../../components/ui/CaseSetInfoDialog';\nimport type { CreateEventDialogRefMethods } from '../../components/ui/CreateEventDialog';\nimport { CreateEventDialog } from '../../components/ui/CreateEventDialog';\nimport { useCaseSetCategoryOptionsQuery } from '../../dataHooks/useCaseSetCategoriesQuery';\nimport { useCaseSetStatsMapQuery } from '../../dataHooks/useCaseSetStatsQuery';\nimport { useCaseSetStatusOptionsQuery } from '../../dataHooks/useCaseSetStatusesQuery';\nimport { useCaseTypeOptionsQuery } from '../../dataHooks/useCaseTypesQuery';\nimport { CaseSetUtil } from '../../utils/CaseSetUtil';\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\n\n\ntype Row = CaseDbCaseSet & CaseDbCaseStats;\n\nexport const EventsPage = () => {\n const { t } = useTranslation();\n const theme = useTheme();\n const caseTypeOptionsQuery = useCaseTypeOptionsQuery();\n const caseSetCategoryOptionsQuery = useCaseSetCategoryOptionsQuery();\n const caseSetStatusOptionsQuery = useCaseSetStatusOptionsQuery();\n const caseSetInfoDialogRef = useRef<CaseSetInfoDialogRefMethods>(null);\n const createEventDialogRef = useRef<CreateEventDialogRefMethods>(null);\n\n const { data: caseSets, error: caseSetsError, isLoading: isCaseSetsLoading } = useQueryMemo({\n queryFn: async ({ signal }) => {\n const response = await CaseDbCaseApi.getInstance().caseSetsGetAll(null, null, { signal });\n return response.data;\n },\n queryKey: QueryClientService.getInstance().getGenericKey(CASEDB_QUERY_KEY.CASE_SETS),\n });\n const caseSetStatsMapQuery = useCaseSetStatsMapQuery(caseSets ? caseSets.map(cs => cs.id) : null);\n const loadables = useArray([caseTypeOptionsQuery, caseSetCategoryOptionsQuery, caseSetStatusOptionsQuery, caseSetStatsMapQuery]);\n\n const navigateToEvent = useCallback(async (row: CaseDbCaseSet) => {\n await RouterService.getInstance().router.navigate(CaseSetUtil.createCaseSetLink(row));\n }, []);\n\n const showEventInformation = useCallback((row: CaseDbCaseSet) => {\n caseSetInfoDialogRef.current?.open({\n caseSetId: row.id,\n caseTypeId: row.case_type_id,\n });\n }, []);\n\n const onRowClick = useCallback(async (tableRowParams: TableRowParams<Row>) => {\n await navigateToEvent(tableRowParams.row);\n }, [navigateToEvent]);\n\n const onIndexCellClick = useCallback((row: CaseDbCaseSet) => {\n showEventInformation(row);\n }, [showEventInformation]);\n\n const onCreateItemButtonClick = useCallback(() => {\n createEventDialogRef.current?.open({});\n }, []);\n\n const data = useMemo<Row[]>(() => {\n if (!caseSets || !caseSetStatsMapQuery.map) {\n return [];\n }\n return caseSets.map(caseSet => {\n return {\n ...caseSetStatsMapQuery.map?.get(caseSet.id),\n ...caseSet,\n } satisfies Row;\n });\n }, [caseSetStatsMapQuery.map, caseSets]);\n\n const columns = useMemo<TableColumn<Row>[]>(() => {\n return [\n TableUtil.createReadableIndexColumn({\n getAriaLabel: (params: TableRowParams<Row>) => t('Open event information for {{name}}', { name: params.row.name }),\n }),\n TableUtil.createOptionsColumn({ flex: 1.5, id: 'case_type_id', name: t`Case type`, options: caseTypeOptionsQuery.options, shouldFilterOptions: true }),\n TableUtil.createTextColumn({ flex: 1.5, id: 'name', name: t`Name` }),\n TableUtil.createOptionsColumn({ flex: 0.4, id: 'case_set_category_id', name: t`Category`, options: caseSetCategoryOptionsQuery.options }),\n TableUtil.createOptionsColumn({ flex: 0.4, id: 'case_set_status_id', name: t`Status`, options: caseSetStatusOptionsQuery.options }),\n TableUtil.createDateColumn({ dateFormat: DATE_FORMAT.DATE, id: 'first_case_date', name: t`First case date` }),\n TableUtil.createDateColumn({ dateFormat: DATE_FORMAT.DATE, id: 'last_case_date', name: t`Last case date` }),\n TableUtil.createDateColumn({ dateFormat: DATE_FORMAT.DATE, id: 'case_set_date', name: t`Created on` }),\n TableUtil.createNumberColumn({ flex: 0.35, id: 'n_cases', name: t`Cases` }),\n TableUtil.createNumberColumn({ flex: 0.35, id: 'n_own_cases', name: t`Own cases` }),\n TableUtil.createActionsColumn({\n getActions: (params) => {\n return [\n (\n <MenuItem\n key={'actions1'}\n // eslint-disable-next-line @eslint-react/kit/jsx-no-bind\n onClick={async () => onRowClick(params)}\n >\n <ListItemIcon>\n <ArrowCircleRightIcon />\n </ListItemIcon>\n <ListItemText>\n {t`Go to event`}\n </ListItemText>\n </MenuItem>\n ),\n (\n <MenuItem\n key={'actions2'}\n // eslint-disable-next-line @eslint-react/kit/jsx-no-bind\n onClick={() => showEventInformation(params.row)}\n >\n <ListItemIcon>\n <CollectionIcon />\n </ListItemIcon>\n <ListItemText>\n {t`Show event information`}\n </ListItemText>\n </MenuItem>\n ),\n ];\n },\n t,\n }),\n ];\n }, [caseSetCategoryOptionsQuery.options, caseSetStatusOptionsQuery.options, caseTypeOptionsQuery.options, onRowClick, showEventInformation, t]);\n\n const tableStore = useMemo(() => createTableStore<Row>({\n defaultSortByField: 'case_set_date',\n defaultSortDirection: 'desc',\n idSelectorCallback: (row) => row.id,\n navigatorFunction: RouterService.getInstance().router.navigate,\n storageNamePostFix: 'caseSets',\n storageVersion: 3,\n }), []);\n\n useInitializeTableStore({ columns, createFiltersFromColumns: true, rows: data, store: tableStore });\n\n const contentActions = useMemo(() => {\n const isLoading = LoadableUtil.isSomeLoading(loadables);\n return (\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n gap: theme.spacing(1),\n }}\n >\n <TableMenu />\n <Button\n color={'secondary'}\n disabled={isLoading}\n loading={isLoading}\n onClick={onCreateItemButtonClick}\n size={'small'}\n variant={'contained'}\n >\n {t`Create event`}\n </Button>\n </Box>\n );\n }, [loadables, onCreateItemButtonClick, t, theme]);\n\n const getRowName = useCallback((row: Row) => {\n return row.name;\n }, []);\n\n return (\n <TableStoreContextProvider store={tableStore}>\n <PageContainer\n contentActions={contentActions}\n contentHeader={(\n <TableCaption\n caption={t`Events`}\n component={'h2'}\n variant={'h2'}\n />\n )}\n fullWidth\n showBreadcrumbs\n testIdAttributes={TestIdUtil.createAttributes('EventsPage')}\n title={t`Events`}\n >\n <Box\n sx={{\n height: '100%',\n position: 'relative',\n }}\n >\n <ResponseHandler\n error={caseSetsError}\n isLoading={isCaseSetsLoading}\n loadables={loadables}\n >\n {caseSets?.length === 0 && (\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <Typography variant={'h6'}>\n {t`No events found`}\n </Typography>\n </Box>\n )}\n {caseSets?.length > 0 && (\n <>\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 onReadableIndexClick={onIndexCellClick}\n onRowClick={onRowClick}\n />\n </Box>\n <TableSidebarMenu />\n </>\n )}\n\n </ResponseHandler>\n <CaseSetInfoDialog\n ref={caseSetInfoDialogRef}\n showNavigationButton\n />\n <CreateEventDialog\n ref={createEventDialogRef}\n />\n </Box>\n </PageContainer>\n </TableStoreContextProvider>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/EventsPage/EventsPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n useRef,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n Box,\n Button,\n ListItemIcon,\n ListItemText,\n MenuItem,\n Typography,\n useTheme,\n} from '@mui/material';\nimport ArrowCircleRightIcon from '@mui/icons-material/ArrowCircleRight';\nimport type {\n CaseDbCaseSet,\n CaseDbCaseStats,\n} from '@gen-epix/api-casedb';\nimport { CaseDbCaseApi } from '@gen-epix/api-casedb';\nimport type {\n TableColumn,\n TableRowParams,\n} from '@gen-epix/ui-client-common/models/table';\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 { LoadableUtil } from '@gen-epix/ui-client-common/utils/LoadableUtil';\nimport { PageContainer } from '@gen-epix/ui-client-common/components/ui/PageContainer';\nimport { QueryClientService } from '@gen-epix/ui-client-common/classes/services/QueryClientService';\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 { useQueryMemo } from '@gen-epix/ui-client-common/hooks/useQueryMemo';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { useArray } from '@gen-epix/ui-core/hooks/useArray';\nimport { DATE_FORMAT } from '@gen-epix/ui-core/constants/date';\n\nimport CollectionIcon from '../../assets/icons/CollectionIcon.svg?react';\nimport type { CaseSetInfoDialogRefMethods } from '../../components/ui/CaseSetInfoDialog';\nimport { CaseSetInfoDialog } from '../../components/ui/CaseSetInfoDialog';\nimport type { CreateEventDialogRefMethods } from '../../components/ui/CreateEventDialog';\nimport { CreateEventDialog } from '../../components/ui/CreateEventDialog';\nimport { useCaseSetCategoryOptionsQuery } from '../../dataHooks/useCaseSetCategoriesQuery';\nimport { useCaseSetStatsMapQuery } from '../../dataHooks/useCaseSetStatsQuery';\nimport { useCaseSetStatusOptionsQuery } from '../../dataHooks/useCaseSetStatusesQuery';\nimport { useCaseTypeOptionsQuery } from '../../dataHooks/useCaseTypesQuery';\nimport { CaseSetUtil } from '../../utils/CaseSetUtil';\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\n\n\ntype Row = CaseDbCaseSet & CaseDbCaseStats;\n\nexport const EventsPage = () => {\n const { t } = useTranslation();\n const theme = useTheme();\n const caseTypeOptionsQuery = useCaseTypeOptionsQuery();\n const caseSetCategoryOptionsQuery = useCaseSetCategoryOptionsQuery();\n const caseSetStatusOptionsQuery = useCaseSetStatusOptionsQuery();\n const caseSetInfoDialogRef = useRef<CaseSetInfoDialogRefMethods>(null);\n const createEventDialogRef = useRef<CreateEventDialogRefMethods>(null);\n\n const { data: caseSets, error: caseSetsError, isLoading: isCaseSetsLoading } = useQueryMemo({\n queryFn: async ({ signal }) => {\n const response = await CaseDbCaseApi.getInstance().caseSetsGetAll(null, null, { signal });\n return response.data;\n },\n queryKey: QueryClientService.getInstance().getGenericKey(CASEDB_QUERY_KEY.CASE_SETS),\n });\n const caseSetStatsMapQuery = useCaseSetStatsMapQuery(caseSets ? caseSets.map(cs => cs.id) : null);\n const loadables = useArray([caseTypeOptionsQuery, caseSetCategoryOptionsQuery, caseSetStatusOptionsQuery, caseSetStatsMapQuery]);\n\n const navigateToEvent = useCallback(async (row: CaseDbCaseSet) => {\n await RouterService.getInstance().router.navigate(CaseSetUtil.createCaseSetLink(row));\n }, []);\n\n const showEventInformation = useCallback((row: CaseDbCaseSet) => {\n caseSetInfoDialogRef.current?.open({\n caseSetId: row.id,\n caseTypeId: row.case_type_id,\n });\n }, []);\n\n const onRowClick = useCallback(async (tableRowParams: TableRowParams<Row>) => {\n await navigateToEvent(tableRowParams.row);\n }, [navigateToEvent]);\n\n const onIndexCellClick = useCallback((row: CaseDbCaseSet) => {\n showEventInformation(row);\n }, [showEventInformation]);\n\n const onCreateItemButtonClick = useCallback(() => {\n createEventDialogRef.current?.open({});\n }, []);\n\n const data = useMemo<Row[]>(() => {\n if (!caseSets || !caseSetStatsMapQuery.map) {\n return [];\n }\n return caseSets.map(caseSet => {\n return {\n ...caseSetStatsMapQuery.map?.get(caseSet.id),\n ...caseSet,\n } satisfies Row;\n });\n }, [caseSetStatsMapQuery.map, caseSets]);\n\n const columns = useMemo<TableColumn<Row>[]>(() => {\n return [\n TableUtil.createReadableIndexColumn({\n getAriaLabel: (params: TableRowParams<Row>) => t('Open event information for {{name}}', { name: params.row.name }),\n }),\n TableUtil.createOptionsColumn({ flex: 1.5, id: 'case_type_id', name: t`Case type`, options: caseTypeOptionsQuery.options, shouldFilterOptions: true }),\n TableUtil.createTextColumn({ flex: 1.5, id: 'name', name: t`Name` }),\n TableUtil.createOptionsColumn({ flex: 0.4, id: 'case_set_category_id', name: t`Category`, options: caseSetCategoryOptionsQuery.options }),\n TableUtil.createOptionsColumn({ flex: 0.4, id: 'case_set_status_id', name: t`Status`, options: caseSetStatusOptionsQuery.options }),\n TableUtil.createDateColumn({ dateFormat: DATE_FORMAT.DATE, id: 'first_case_date', name: t`First case date` }),\n TableUtil.createDateColumn({ dateFormat: DATE_FORMAT.DATE, id: 'last_case_date', name: t`Last case date` }),\n TableUtil.createDateColumn({ dateFormat: DATE_FORMAT.DATE, id: 'case_set_date', name: t`Created on` }),\n TableUtil.createNumberColumn({ flex: 0.35, id: 'n_cases', name: t`Cases` }),\n TableUtil.createNumberColumn({ flex: 0.35, id: 'n_own_cases', name: t`Own cases` }),\n TableUtil.createActionsColumn({\n getActions: (params) => {\n return [\n (\n <MenuItem\n key={'actions1'}\n // eslint-disable-next-line @eslint-react/kit/jsx-no-bind\n onClick={async () => onRowClick(params)}\n >\n <ListItemIcon>\n <ArrowCircleRightIcon />\n </ListItemIcon>\n <ListItemText>\n {t`Go to event`}\n </ListItemText>\n </MenuItem>\n ),\n (\n <MenuItem\n key={'actions2'}\n // eslint-disable-next-line @eslint-react/kit/jsx-no-bind\n onClick={() => showEventInformation(params.row)}\n >\n <ListItemIcon>\n <CollectionIcon />\n </ListItemIcon>\n <ListItemText>\n {t`Show event information`}\n </ListItemText>\n </MenuItem>\n ),\n ];\n },\n t,\n }),\n ];\n }, [caseSetCategoryOptionsQuery.options, caseSetStatusOptionsQuery.options, caseTypeOptionsQuery.options, onRowClick, showEventInformation, t]);\n\n const tableStore = useMemo(() => createTableStore<Row>({\n defaultSortByField: 'case_set_date',\n defaultSortDirection: 'desc',\n idSelectorCallback: (row) => row.id,\n navigatorFunction: RouterService.getInstance().router.navigate,\n storageNamePostFix: 'caseSets',\n storageVersion: 3,\n }), []);\n\n useInitializeTableStore({ columns, createFiltersFromColumns: true, rows: data, store: tableStore });\n\n const contentActions = useMemo(() => {\n const isLoading = LoadableUtil.isSomeLoading(loadables);\n return (\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n gap: theme.spacing(1),\n }}\n >\n <TableMenu />\n <Button\n color={'secondary'}\n disabled={isLoading}\n loading={isLoading}\n onClick={onCreateItemButtonClick}\n size={'small'}\n variant={'contained'}\n >\n {t`Create event`}\n </Button>\n </Box>\n );\n }, [loadables, onCreateItemButtonClick, t, theme]);\n\n const getRowName = useCallback((row: Row) => {\n return row.name;\n }, []);\n\n return (\n <TableStoreContextProvider store={tableStore}>\n <PageContainer\n contentActions={contentActions}\n contentHeader={(\n <TableCaption\n caption={t`Events`}\n component={'h2'}\n variant={'h2'}\n />\n )}\n fullWidth\n showBreadcrumbs\n testIdAttributes={TestIdUtil.createAttributes('EventsPage')}\n title={t`Events`}\n >\n <Box\n sx={{\n height: '100%',\n position: 'relative',\n }}\n >\n <ResponseHandler\n error={caseSetsError}\n isLoading={isCaseSetsLoading}\n loadables={loadables}\n >\n {caseSets?.length === 0 && (\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <Typography variant={'h6'}>\n {t`No events found`}\n </Typography>\n </Box>\n )}\n {caseSets?.length > 0 && (\n <>\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 onReadableIndexClick={onIndexCellClick}\n onRowClick={onRowClick}\n />\n </Box>\n <TableSidebarMenu />\n </>\n )}\n\n </ResponseHandler>\n <CaseSetInfoDialog\n ref={caseSetInfoDialogRef}\n showNavigationButton\n />\n <CreateEventDialog\n ref={createEventDialogRef}\n />\n </Box>\n </PageContainer>\n </TableStoreContextProvider>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { t as e } from "../../_chunks/HomePageTrends.js";
|
|
2
|
-
import { ConfigService as t } from "@gen-epix/ui/classes/services/ConfigService";
|
|
2
|
+
import { ConfigService as t } from "@gen-epix/ui-client-common/classes/services/ConfigService";
|
|
3
3
|
import { Box as n } from "@mui/material";
|
|
4
4
|
import { useTranslation as r } from "react-i18next";
|
|
5
5
|
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
6
6
|
import { TestIdUtil as o } from "@gen-epix/ui-core/utils/TestIdUtil";
|
|
7
|
-
import { PageContainer as s } from "@gen-epix/ui/components/ui/PageContainer";
|
|
7
|
+
import { PageContainer as s } from "@gen-epix/ui-client-common/components/ui/PageContainer";
|
|
8
8
|
//#region src/pages/HomePage/HomePage.tsx
|
|
9
9
|
var c = () => {
|
|
10
10
|
let { t: c } = r(), { HomePageIntroduction: l } = t.getInstance().config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/HomePage/HomePage.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\nimport { Box } from '@mui/material';\nimport { ConfigService } from '@gen-epix/ui/classes/services/ConfigService';\nimport { PageContainer } from '@gen-epix/ui/components/ui/PageContainer';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\n\nimport { HomePageTrends } from '../../components/ui/HomePageTrends';\n\n\nexport const HomePage = () => {\n const { t } = useTranslation();\n const { HomePageIntroduction } = ConfigService.getInstance().config;\n\n return (\n <PageContainer\n testIdAttributes={TestIdUtil.createAttributes('HomePage')}\n title={t`Home`}\n >\n <Box\n sx={{\n display: 'grid',\n gap: 2,\n gridTemplateRows: 'auto max-content',\n height: '100%',\n }}\n >\n <Box\n sx={{\n display: 'grid',\n gap: 2,\n gridTemplateColumns: '1fr 1fr',\n }}\n >\n <HomePageIntroduction />\n </Box>\n <HomePageTrends />\n </Box>\n </PageContainer>\n );\n};\n"],"mappings":";;;;;;;;AASA,IAAa,UAAiB;CAC5B,IAAM,EAAE,SAAM,EAAe,GACvB,EAAE,4BAAyB,EAAc,YAAY,CAAC,CAAC;CAE7D,OACE,kBAAC,GAAD;EACE,kBAAkB,EAAW,iBAAiB,UAAU;EACxD,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/HomePage/HomePage.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\nimport { Box } from '@mui/material';\nimport { ConfigService } from '@gen-epix/ui-client-common/classes/services/ConfigService';\nimport { PageContainer } from '@gen-epix/ui-client-common/components/ui/PageContainer';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\n\nimport { HomePageTrends } from '../../components/ui/HomePageTrends';\n\n\nexport const HomePage = () => {\n const { t } = useTranslation();\n const { HomePageIntroduction } = ConfigService.getInstance().config;\n\n return (\n <PageContainer\n testIdAttributes={TestIdUtil.createAttributes('HomePage')}\n title={t`Home`}\n >\n <Box\n sx={{\n display: 'grid',\n gap: 2,\n gridTemplateRows: 'auto max-content',\n height: '100%',\n }}\n >\n <Box\n sx={{\n display: 'grid',\n gap: 2,\n gridTemplateColumns: '1fr 1fr',\n }}\n >\n <HomePageIntroduction />\n </Box>\n <HomePageTrends />\n </Box>\n </PageContainer>\n );\n};\n"],"mappings":";;;;;;;;AASA,IAAa,UAAiB;CAC5B,IAAM,EAAE,SAAM,EAAe,GACvB,EAAE,4BAAyB,EAAc,YAAY,CAAC,CAAC;CAE7D,OACE,kBAAC,GAAD;EACE,kBAAkB,EAAW,iBAAiB,UAAU;EACxD,OAAO,CAAC;EAER,UAAA,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,KAAK;IACL,kBAAkB;IAClB,QAAQ;GACV;GANF,UAAA,CAQE,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,KAAK;KACL,qBAAqB;IACvB;IAEA,UAAA,kBAAC,GAAD,CAAuB,CAAA;GACpB,CAAA,GACL,kBAAC,GAAD,CAAiB,CAAA,CACd;;CACQ,CAAA;AAEnB"}
|
|
@@ -5,15 +5,15 @@ import { useCaseTypeSetOptionsQuery as r } from "../../dataHooks/useCaseTypeSets
|
|
|
5
5
|
import { useOrganizationCasePolicyNameFactory as i } from "../../hooks/useOrganizationCasePolicyNameFactory/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 { useOrganizationOptionsQuery as y } from "@gen-epix/ui/dataHooks/useOrganizationsQuery";
|
|
15
|
+
import { CrudPage as v } from "@gen-epix/ui-client-common/pages/CrudPage";
|
|
16
|
+
import { useOrganizationOptionsQuery as y } from "@gen-epix/ui-client-common/dataHooks/useOrganizationsQuery";
|
|
17
17
|
//#region src/pages/OrganizationAccessCasePoliciesAdminPage/OrganizationAccessCasePoliciesAdminPage.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/OrganizationAccessCasePoliciesAdminPage/OrganizationAccessCasePoliciesAdminPage.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 CaseDbOrganizationAccessCasePolicy,\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 { useOrganizationOptionsQuery } 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 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 { useOrganizationCasePolicyNameFactory } from '../../hooks/useOrganizationCasePolicyNameFactory';\n\ntype FormFields = OmitWithMetaData<CaseDbOrganizationAccessCasePolicy, 'case_type_set' | 'data_collection' | 'organization' | 'read_col_set' | 'write_col_set'>;\n\nexport const OrganizationAccessCasePoliciesAdminPage = () => {\n const { t } = useTranslation();\n const organizationOptionsQuery = useOrganizationOptionsQuery();\n const dataCollectionOptionsQuery = useDataCollectionOptionsQuery();\n const colSetOptionsQuery = useColSetOptionsQuery();\n const caseTypeSetOptionsQuery = useCaseTypeSetOptionsQuery();\n\n const nameFactory = useOrganizationCasePolicyNameFactory();\n\n const loadables = useArray([nameFactory, organizationOptionsQuery, dataCollectionOptionsQuery, colSetOptionsQuery, caseTypeSetOptionsQuery]);\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbAbacApi.getInstance().organizationAccessCasePoliciesGetAll(null, null, { signal }))?.data;\n }, []);\n\n const deleteOne = useCallback(async (item: CaseDbOrganizationAccessCasePolicy) => {\n return await CaseDbAbacApi.getInstance().organizationAccessCasePoliciesDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbOrganizationAccessCasePolicy) => {\n return (await CaseDbAbacApi.getInstance().organizationAccessCasePoliciesPutOne(item.id, { id: item.id, ...variables })).data;\n }, []);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbAbacApi.getInstance().organizationAccessCasePoliciesPostOne(variables)).data;\n }, []);\n\n const getName = useCallback((item: CaseDbOrganizationAccessCasePolicy) => {\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 is_private: boolean().required(),\n organization_id: string().uuid4().required().max(100),\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 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`Organization`,\n loading: organizationOptionsQuery.isLoading,\n name: 'organization_id',\n options: organizationOptionsQuery.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: caseTypeSetOptionsQuery.isLoading,\n name: 'case_type_set_id',\n options: caseTypeSetOptionsQuery.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 private`,\n name: 'is_private',\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, caseTypeSetOptionsQuery.isLoading, caseTypeSetOptionsQuery.options, dataCollectionOptionsQuery.isLoading, dataCollectionOptionsQuery.options, organizationOptionsQuery.isLoading, organizationOptionsQuery.options, t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbOrganizationAccessCasePolicy>[] => {\n return [\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'organization_id', name: t`Organization`, options: organizationOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'data_collection_id', name: t`Data collection`, options: dataCollectionOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'case_type_set_id', name: t`Case type set`, options: caseTypeSetOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'read_col_set_id', name: t`Read column set`, options: colSetOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'write_col_set_id', name: t`Write column set`, options: colSetOptionsQuery.options }),\n\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'add_case', name: t`Add case` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'remove_case', name: t`Remove case` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'add_case_set', name: t`Add case set` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'remove_case_set', name: t`Remove case set` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'read_case_set', name: t`Read case set` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'write_case_set', name: t`Write case set` }),\n\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'is_private', name: t`Private` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'is_active', name: t`Active` }),\n ];\n }, [colSetOptionsQuery.options, caseTypeSetOptionsQuery.options, dataCollectionOptionsQuery.options, organizationOptionsQuery.options, t]);\n\n return (\n <CrudPage<FormFields, CaseDbOrganizationAccessCasePolicy, CaseDbOrganizationAccessCasePolicy, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new organization access case policy`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.OrganizationAccessCasePolicyCrudCommand}\n defaultSortByField={'organization_id'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n itemName={t`Organization access case policy`}\n loadables={loadables}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.ORGANIZATION_ACCESS_CASE_POLICIES}\n schema={schema}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('OrganizationAccessCasePoliciesAdminPage')}\n title={t`Organization 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/OrganizationAccessCasePoliciesAdminPage/OrganizationAccessCasePoliciesAdminPage.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 CaseDbOrganizationAccessCasePolicy,\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 { useOrganizationOptionsQuery } 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 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 { useOrganizationCasePolicyNameFactory } from '../../hooks/useOrganizationCasePolicyNameFactory';\n\ntype FormFields = OmitWithMetaData<CaseDbOrganizationAccessCasePolicy, 'case_type_set' | 'data_collection' | 'organization' | 'read_col_set' | 'write_col_set'>;\n\nexport const OrganizationAccessCasePoliciesAdminPage = () => {\n const { t } = useTranslation();\n const organizationOptionsQuery = useOrganizationOptionsQuery();\n const dataCollectionOptionsQuery = useDataCollectionOptionsQuery();\n const colSetOptionsQuery = useColSetOptionsQuery();\n const caseTypeSetOptionsQuery = useCaseTypeSetOptionsQuery();\n\n const nameFactory = useOrganizationCasePolicyNameFactory();\n\n const loadables = useArray([nameFactory, organizationOptionsQuery, dataCollectionOptionsQuery, colSetOptionsQuery, caseTypeSetOptionsQuery]);\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbAbacApi.getInstance().organizationAccessCasePoliciesGetAll(null, null, { signal }))?.data;\n }, []);\n\n const deleteOne = useCallback(async (item: CaseDbOrganizationAccessCasePolicy) => {\n return await CaseDbAbacApi.getInstance().organizationAccessCasePoliciesDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbOrganizationAccessCasePolicy) => {\n return (await CaseDbAbacApi.getInstance().organizationAccessCasePoliciesPutOne(item.id, { id: item.id, ...variables })).data;\n }, []);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbAbacApi.getInstance().organizationAccessCasePoliciesPostOne(variables)).data;\n }, []);\n\n const getName = useCallback((item: CaseDbOrganizationAccessCasePolicy) => {\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 is_private: boolean().required(),\n organization_id: string().uuid4().required().max(100),\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 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`Organization`,\n loading: organizationOptionsQuery.isLoading,\n name: 'organization_id',\n options: organizationOptionsQuery.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: caseTypeSetOptionsQuery.isLoading,\n name: 'case_type_set_id',\n options: caseTypeSetOptionsQuery.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 private`,\n name: 'is_private',\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, caseTypeSetOptionsQuery.isLoading, caseTypeSetOptionsQuery.options, dataCollectionOptionsQuery.isLoading, dataCollectionOptionsQuery.options, organizationOptionsQuery.isLoading, organizationOptionsQuery.options, t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbOrganizationAccessCasePolicy>[] => {\n return [\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'organization_id', name: t`Organization`, options: organizationOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'data_collection_id', name: t`Data collection`, options: dataCollectionOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'case_type_set_id', name: t`Case type set`, options: caseTypeSetOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'read_col_set_id', name: t`Read column set`, options: colSetOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'write_col_set_id', name: t`Write column set`, options: colSetOptionsQuery.options }),\n\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'add_case', name: t`Add case` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'remove_case', name: t`Remove case` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'add_case_set', name: t`Add case set` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'remove_case_set', name: t`Remove case set` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'read_case_set', name: t`Read case set` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'write_case_set', name: t`Write case set` }),\n\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'is_private', name: t`Private` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationAccessCasePolicy>({ id: 'is_active', name: t`Active` }),\n ];\n }, [colSetOptionsQuery.options, caseTypeSetOptionsQuery.options, dataCollectionOptionsQuery.options, organizationOptionsQuery.options, t]);\n\n return (\n <CrudPage<FormFields, CaseDbOrganizationAccessCasePolicy, CaseDbOrganizationAccessCasePolicy, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new organization access case policy`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.OrganizationAccessCasePolicyCrudCommand}\n defaultSortByField={'organization_id'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n itemName={t`Organization access case policy`}\n loadables={loadables}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.ORGANIZATION_ACCESS_CASE_POLICIES}\n schema={schema}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('OrganizationAccessCasePoliciesAdminPage')}\n title={t`Organization access case policies`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":"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"}
|
|
@@ -5,15 +5,15 @@ import { useCaseTypeSetOptionsQuery as r } from "../../dataHooks/useCaseTypeSets
|
|
|
5
5
|
import { useOrganizationCasePolicyNameFactory as i } from "../../hooks/useOrganizationCasePolicyNameFactory/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 { useOrganizationOptionsQuery as y } from "@gen-epix/ui/dataHooks/useOrganizationsQuery";
|
|
15
|
+
import { CrudPage as v } from "@gen-epix/ui-client-common/pages/CrudPage";
|
|
16
|
+
import { useOrganizationOptionsQuery as y } from "@gen-epix/ui-client-common/dataHooks/useOrganizationsQuery";
|
|
17
17
|
//#region src/pages/OrganizationShareCasePoliciesAdminPage/OrganizationShareCasePoliciesAdminPage.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/OrganizationShareCasePoliciesAdminPage/OrganizationShareCasePoliciesAdminPage.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 CaseDbOrganizationShareCasePolicy,\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 { useOrganizationOptionsQuery } 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 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 { useOrganizationCasePolicyNameFactory } from '../../hooks/useOrganizationCasePolicyNameFactory';\n\ntype FormFields = OmitWithMetaData<CaseDbOrganizationShareCasePolicy, 'case_type_set' | 'data_collection' | 'from_data_collection' | 'organization'>;\n\nexport const OrganizationShareCasePoliciesAdminPage = () => {\n const { t } = useTranslation();\n const organizationOptionsQuery = useOrganizationOptionsQuery();\n const dataCollectionOptionsQuery = useDataCollectionOptionsQuery();\n const colSetOptionsQuery = useColSetOptionsQuery();\n const caseTypeSetOptions = useCaseTypeSetOptionsQuery();\n\n const nameFactory = useOrganizationCasePolicyNameFactory();\n\n const loadables = useArray([nameFactory, organizationOptionsQuery, dataCollectionOptionsQuery, colSetOptionsQuery, caseTypeSetOptions]);\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbAbacApi.getInstance().organizationShareCasePoliciesGetAll(null, null, { signal }))?.data;\n }, []);\n\n const deleteOne = useCallback(async (item: CaseDbOrganizationShareCasePolicy) => {\n return await CaseDbAbacApi.getInstance().organizationShareCasePoliciesDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbOrganizationShareCasePolicy) => {\n return (await CaseDbAbacApi.getInstance().organizationShareCasePoliciesPutOne(item.id, { id: item.id, ...variables })).data;\n }, []);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbAbacApi.getInstance().organizationShareCasePoliciesPostOne(variables)).data;\n }, []);\n\n const getName = useCallback((item: CaseDbOrganizationShareCasePolicy) => {\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 from_data_collection_id: string().uuid4().required().max(100),\n is_active: boolean().required(),\n organization_id: string().uuid4().required().max(100),\n remove_case: boolean().required(),\n remove_case_set: boolean().required(),\n });\n }, []);\n\n const formFieldDefinitions = useMemo<FormFieldDefinition<FormFields>[]>(() => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Organization`,\n loading: organizationOptionsQuery.isLoading,\n name: 'organization_id',\n options: organizationOptionsQuery.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`From data collection`,\n loading: dataCollectionOptionsQuery.isLoading,\n name: 'from_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.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`Is active`,\n name: 'is_active',\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [caseTypeSetOptions.isLoading, caseTypeSetOptions.options, dataCollectionOptionsQuery.isLoading, dataCollectionOptionsQuery.options, organizationOptionsQuery.isLoading, organizationOptionsQuery.options, t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbOrganizationShareCasePolicy>[] => {\n return [\n TableUtil.createOptionsColumn<CaseDbOrganizationShareCasePolicy>({ id: 'organization_id', name: t`Organization`, options: organizationOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationShareCasePolicy>({ id: 'data_collection_id', name: t`Data collection`, options: dataCollectionOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationShareCasePolicy>({ id: 'from_data_collection_id', name: t`From collection`, options: dataCollectionOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationShareCasePolicy>({ id: 'case_type_set_id', name: t`Case type set`, options: caseTypeSetOptions.options }),\n\n TableUtil.createBooleanColumn<CaseDbOrganizationShareCasePolicy>({ id: 'add_case', name: t`Add case` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationShareCasePolicy>({ id: 'remove_case', name: t`Remove case` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationShareCasePolicy>({ id: 'add_case_set', name: t`Add case set` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationShareCasePolicy>({ id: 'remove_case_set', name: t`Remove case set` }),\n\n TableUtil.createBooleanColumn<CaseDbOrganizationShareCasePolicy>({ id: 'is_active', name: t`Active` }),\n ];\n }, [caseTypeSetOptions.options, dataCollectionOptionsQuery.options, organizationOptionsQuery.options, t]);\n\n return (\n <CrudPage<FormFields, CaseDbOrganizationShareCasePolicy, CaseDbOrganizationShareCasePolicy, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new organization share case policy`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.OrganizationShareCasePolicyCrudCommand}\n defaultSortByField={'organization_id'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n itemName={t`Organization share case policy`}\n loadables={loadables}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.ORGANIZATION_SHARE_CASE_POLICIES}\n schema={schema}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('OrganizationShareCasePoliciesAdminPage')}\n title={t`Organization share case policies`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAoCA,IAAa,UAA+C;CAC1D,IAAM,EAAE,SAAM,EAAe,GACvB,IAA2B,EAA4B,GACvD,IAA6B,EAA8B,GAC3D,IAAqB,EAAsB,GAC3C,IAAqB,EAA2B,GAEhD,IAAc,EAAqC,GAEnD,IAAY,EAAS;EAAC;EAAa;EAA0B;EAA4B;EAAoB;CAAkB,CAAC,GAEhI,IAAW,EAAY,OAAO,OAC1B,MAAM,EAAc,YAAY,CAAC,CAAC,oCAAoC,MAAM,MAAM,EAAE,UAAO,CAAC,EAAA,EAAI,MACvG,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,MAC5B,MAAM,EAAc,YAAY,CAAC,CAAC,uCAAuC,EAAK,EAAE,GACtF,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,GAAuB,OAClD,MAAM,EAAc,YAAY,CAAC,CAAC,oCAAoC,EAAK,IAAI;EAAE,IAAI,EAAK;EAAI,GAAG;CAAU,CAAC,EAAA,CAAG,MACtH,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,OAC3B,MAAM,EAAc,YAAY,CAAC,CAAC,qCAAqC,CAAS,EAAA,CAAG,MAC1F,CAAC,CAAC,GAEC,IAAU,GAAa,MACpB,EAAY,QAAQ,CAAI,GAC9B,CAAC,CAAW,CAAC,GAEV,IAAS,QACN,EAAmB,CAAC,CAAC,MAAM;EAChC,UAAU,EAAQ,CAAC,CAAC,SAAS;EAC7B,cAAc,EAAQ,CAAC,CAAC,SAAS;EACjC,kBAAkB,EAAO,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG;EACrD,oBAAoB,EAAO,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG;EACvD,yBAAyB,EAAO,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG;EAC5D,WAAW,EAAQ,CAAC,CAAC,SAAS;EAC9B,iBAAiB,EAAO,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG;EACpD,aAAa,EAAQ,CAAC,CAAC,SAAS;EAChC,iBAAiB,EAAQ,CAAC,CAAC,SAAS;CACtC,CAAC,GACA,CAAC,CAAC,GAEC,IAAuB,QACpB;EACL;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,SAAS,EAAyB;GAClC,MAAM;GACN,SAAS,EAAyB;EACpC;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,SAAS,EAA2B;GACpC,MAAM;GACN,SAAS,EAA2B;EACtC;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,SAAS,EAA2B;GACpC,MAAM;GACN,SAAS,EAA2B;EACtC;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,SAAS,EAAmB;GAC5B,MAAM;GACN,SAAS,EAAmB;EAC9B;EACA;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;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;EACR;CACF,GACC;EAAC,EAAmB;EAAW,EAAmB;EAAS,EAA2B;EAAW,EAA2B;EAAS,EAAyB;EAAW,EAAyB;EAAS;CAAC,CAAC,GAE1M,IAAe,QACZ;EACL,EAAU,oBAAuD;GAAE,IAAI;GAAmB,MAAM,CAAC;GAAgB,SAAS,EAAyB;EAAQ,CAAC;EAC5J,EAAU,oBAAuD;GAAE,IAAI;GAAsB,MAAM,CAAC;GAAmB,SAAS,EAA2B;EAAQ,CAAC;EACpK,EAAU,oBAAuD;GAAE,IAAI;GAA2B,MAAM,CAAC;GAAmB,SAAS,EAA2B;EAAQ,CAAC;EACzK,EAAU,oBAAuD;GAAE,IAAI;GAAoB,MAAM,CAAC;GAAiB,SAAS,EAAmB;EAAQ,CAAC;EAExJ,EAAU,oBAAuD;GAAE,IAAI;GAAY,MAAM,CAAC;EAAW,CAAC;EACtG,EAAU,oBAAuD;GAAE,IAAI;GAAe,MAAM,CAAC;EAAc,CAAC;EAC5G,EAAU,oBAAuD;GAAE,IAAI;GAAgB,MAAM,CAAC;EAAe,CAAC;EAC9G,EAAU,oBAAuD;GAAE,IAAI;GAAmB,MAAM,CAAC;EAAkB,CAAC;EAEpH,EAAU,oBAAuD;GAAE,IAAI;GAAa,MAAM,CAAC;EAAS,CAAC;CACvG,GACC;EAAC,EAAmB;EAAS,EAA2B;EAAS,EAAyB;EAAS;CAAC,CAAC;CAExG,OACE,kBAAC,GAAD;EACE,uBAAuB,CAAC;EACb;EACX,iBAAiB,EAAkB;EACnC,oBAAoB;EACpB,sBAAsB;EACX;EACD;EACY;EACb;EACT,UAAU,CAAC;EACA;EACX,sBAAsB,EAAiB;EAC/B;EACM;EACd,kBAAkB,EAAW,iBAAiB,wCAAwC;EACtF,OAAO,CAAC;EACG;CACZ,CAAA;AAEL"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/OrganizationShareCasePoliciesAdminPage/OrganizationShareCasePoliciesAdminPage.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 CaseDbOrganizationShareCasePolicy,\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 { useOrganizationOptionsQuery } 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 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 { useOrganizationCasePolicyNameFactory } from '../../hooks/useOrganizationCasePolicyNameFactory';\n\ntype FormFields = OmitWithMetaData<CaseDbOrganizationShareCasePolicy, 'case_type_set' | 'data_collection' | 'from_data_collection' | 'organization'>;\n\nexport const OrganizationShareCasePoliciesAdminPage = () => {\n const { t } = useTranslation();\n const organizationOptionsQuery = useOrganizationOptionsQuery();\n const dataCollectionOptionsQuery = useDataCollectionOptionsQuery();\n const colSetOptionsQuery = useColSetOptionsQuery();\n const caseTypeSetOptions = useCaseTypeSetOptionsQuery();\n\n const nameFactory = useOrganizationCasePolicyNameFactory();\n\n const loadables = useArray([nameFactory, organizationOptionsQuery, dataCollectionOptionsQuery, colSetOptionsQuery, caseTypeSetOptions]);\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbAbacApi.getInstance().organizationShareCasePoliciesGetAll(null, null, { signal }))?.data;\n }, []);\n\n const deleteOne = useCallback(async (item: CaseDbOrganizationShareCasePolicy) => {\n return await CaseDbAbacApi.getInstance().organizationShareCasePoliciesDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbOrganizationShareCasePolicy) => {\n return (await CaseDbAbacApi.getInstance().organizationShareCasePoliciesPutOne(item.id, { id: item.id, ...variables })).data;\n }, []);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbAbacApi.getInstance().organizationShareCasePoliciesPostOne(variables)).data;\n }, []);\n\n const getName = useCallback((item: CaseDbOrganizationShareCasePolicy) => {\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 from_data_collection_id: string().uuid4().required().max(100),\n is_active: boolean().required(),\n organization_id: string().uuid4().required().max(100),\n remove_case: boolean().required(),\n remove_case_set: boolean().required(),\n });\n }, []);\n\n const formFieldDefinitions = useMemo<FormFieldDefinition<FormFields>[]>(() => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Organization`,\n loading: organizationOptionsQuery.isLoading,\n name: 'organization_id',\n options: organizationOptionsQuery.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`From data collection`,\n loading: dataCollectionOptionsQuery.isLoading,\n name: 'from_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.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`Is active`,\n name: 'is_active',\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [caseTypeSetOptions.isLoading, caseTypeSetOptions.options, dataCollectionOptionsQuery.isLoading, dataCollectionOptionsQuery.options, organizationOptionsQuery.isLoading, organizationOptionsQuery.options, t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbOrganizationShareCasePolicy>[] => {\n return [\n TableUtil.createOptionsColumn<CaseDbOrganizationShareCasePolicy>({ id: 'organization_id', name: t`Organization`, options: organizationOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationShareCasePolicy>({ id: 'data_collection_id', name: t`Data collection`, options: dataCollectionOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationShareCasePolicy>({ id: 'from_data_collection_id', name: t`From collection`, options: dataCollectionOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbOrganizationShareCasePolicy>({ id: 'case_type_set_id', name: t`Case type set`, options: caseTypeSetOptions.options }),\n\n TableUtil.createBooleanColumn<CaseDbOrganizationShareCasePolicy>({ id: 'add_case', name: t`Add case` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationShareCasePolicy>({ id: 'remove_case', name: t`Remove case` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationShareCasePolicy>({ id: 'add_case_set', name: t`Add case set` }),\n TableUtil.createBooleanColumn<CaseDbOrganizationShareCasePolicy>({ id: 'remove_case_set', name: t`Remove case set` }),\n\n TableUtil.createBooleanColumn<CaseDbOrganizationShareCasePolicy>({ id: 'is_active', name: t`Active` }),\n ];\n }, [caseTypeSetOptions.options, dataCollectionOptionsQuery.options, organizationOptionsQuery.options, t]);\n\n return (\n <CrudPage<FormFields, CaseDbOrganizationShareCasePolicy, CaseDbOrganizationShareCasePolicy, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new organization share case policy`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.OrganizationShareCasePolicyCrudCommand}\n defaultSortByField={'organization_id'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n itemName={t`Organization share case policy`}\n loadables={loadables}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.ORGANIZATION_SHARE_CASE_POLICIES}\n schema={schema}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('OrganizationShareCasePoliciesAdminPage')}\n title={t`Organization share case policies`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CASEDB_QUERY_KEY as e } from "../../constants/query.js";
|
|
2
2
|
import { CaseDbDataUtil as t } from "../../utils/CaseDbDataUtil/index.js";
|
|
3
|
-
import { t as n } from "../../_chunks/chunk-
|
|
3
|
+
import { t as n } from "../../_chunks/chunk-BV7QT456.js";
|
|
4
4
|
import { useRefColsValidationRulesQuery as r } from "../../dataHooks/useRefColsValidationRulesQuery/index.js";
|
|
5
5
|
import { useRefDimMapQuery as i, useRefDimOptionsQuery as a } from "../../dataHooks/useRefDimsQuery/index.js";
|
|
6
6
|
import { useConceptSetMapQuery as o, useConceptSetOptionsQuery as s } from "../../dataHooks/useConceptSetsQuery/index.js";
|
|
@@ -10,15 +10,15 @@ import { useGeneticDistanceProtocolOptionsQuery as u } from "../../dataHooks/use
|
|
|
10
10
|
import { useRegionSetOptionsQuery as d } from "../../dataHooks/useRegionSetsQuery/index.js";
|
|
11
11
|
import { mixed as f, object as p, string as m } from "yup";
|
|
12
12
|
import { CaseDbCaseApi as h, CaseDbColType as g, CaseDbCommandName as _ } from "@gen-epix/api-casedb";
|
|
13
|
-
import { FORM_FIELD_DEFINITION_TYPE as v } from "@gen-epix/ui-form/models/form";
|
|
13
|
+
import { FORM_FIELD_DEFINITION_TYPE as v } from "@gen-epix/ui-core-form/models/form";
|
|
14
14
|
import { useCallback as y, useMemo as b, useRef as x } from "react";
|
|
15
15
|
import { useTranslation as S } from "react-i18next";
|
|
16
16
|
import { jsx as C } from "react/jsx-runtime";
|
|
17
17
|
import { useArray as w } from "@gen-epix/ui-core/hooks/useArray";
|
|
18
|
-
import { TableUtil as T } from "@gen-epix/ui/utils/TableUtil";
|
|
18
|
+
import { TableUtil as T } from "@gen-epix/ui-client-common/utils/TableUtil";
|
|
19
19
|
import { TestIdUtil as E } from "@gen-epix/ui-core/utils/TestIdUtil";
|
|
20
|
-
import { SchemaUtil as D } from "@gen-epix/ui-form/utils/SchemaUtil";
|
|
21
|
-
import { CrudPage as O } from "@gen-epix/ui/pages/CrudPage";
|
|
20
|
+
import { SchemaUtil as D } from "@gen-epix/ui-core-form/utils/SchemaUtil";
|
|
21
|
+
import { CrudPage as O } from "@gen-epix/ui-client-common/pages/CrudPage";
|
|
22
22
|
//#region src/pages/RefColsAdminPage/RefColsAdminPage.tsx
|
|
23
23
|
var k = [
|
|
24
24
|
g.NOMINAL,
|
|
@@ -90,7 +90,7 @@ var k = [
|
|
|
90
90
|
name: "unit-is-required-for-col-type",
|
|
91
91
|
test: (e, t) => {
|
|
92
92
|
let { col_type: n } = t.parent;
|
|
93
|
-
return Y.includes(n)
|
|
93
|
+
return !Y.includes(n) || !!e;
|
|
94
94
|
}
|
|
95
95
|
}).test({
|
|
96
96
|
message: j`Unit should match the unit of the selected concept set`,
|
|
@@ -99,7 +99,7 @@ var k = [
|
|
|
99
99
|
let { concept_set_id: n } = t.parent;
|
|
100
100
|
if (!n) return !0;
|
|
101
101
|
let r = I.map.get(n);
|
|
102
|
-
return r?.unit
|
|
102
|
+
return !r?.unit || e === r.unit;
|
|
103
103
|
}
|
|
104
104
|
})
|
|
105
105
|
}), [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/RefColsAdminPage/RefColsAdminPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n useRef,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n mixed,\n object,\n string,\n} from 'yup';\nimport { useParams } from 'react-router-dom';\nimport type { UseFormReturn } from 'react-hook-form';\nimport type {\n CaseDbApiPermission,\n CaseDbRefCol,\n CaseDbUnit,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbCaseApi,\n CaseDbColType,\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 { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { useArray } from '@gen-epix/ui-core/hooks/useArray';\nimport type {\n FormFieldDefinition,\n OptionBase,\n} 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 { useColTypeOptionsQuery } from '../../dataHooks/useColTypesQuery';\nimport { useUnitOptionsQuery } from '../../dataHooks/useUnitQuery/useUnit';\nimport {\n useConceptSetMapQuery,\n useConceptSetOptionsQuery,\n} from '../../dataHooks/useConceptSetsQuery';\nimport {\n useRefDimMapQuery,\n useRefDimOptionsQuery,\n} from '../../dataHooks/useRefDimsQuery';\nimport { useGeneticDistanceProtocolOptionsQuery } from '../../dataHooks/useGeneticDistanceProtocolsQuery';\nimport { useRegionSetOptionsQuery } from '../../dataHooks/useRegionSetsQuery';\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\nimport { useRefColsValidationRulesQuery } from '../../dataHooks/useRefColsValidationRulesQuery';\nimport { CaseDbDataUtil } from '../../utils/CaseDbDataUtil';\n\ntype FormFields = OmitWithMetaData<CaseDbRefCol, 'concept_set' | 'genetic_distance_protocol' | 'props' | 'ref_dim' | 'region_set'>;\n\nconst CONCEPT_COL_TYPES: CaseDbColType[] = [CaseDbColType.NOMINAL, CaseDbColType.ORDINAL, CaseDbColType.INTERVAL];\n\nexport const RefColsAdminPage = () => {\n const { refDimId } = useParams();\n const { t } = useTranslation();\n const refDimOptionsQuery = useRefDimOptionsQuery();\n const refDimMapQuery = useRefDimMapQuery();\n const colTypeOptionsQuery = useColTypeOptionsQuery();\n const conceptSetOptionsQuery = useConceptSetOptionsQuery();\n const conceptSetMapQuery = useConceptSetMapQuery();\n const regionSetOptionsQuery = useRegionSetOptionsQuery();\n const unitOptionsQuery = useUnitOptionsQuery();\n const geneticDistanceProtocolOptionsQuery = useGeneticDistanceProtocolOptionsQuery();\n const colsValidationRulesQuery = useRefColsValidationRulesQuery();\n const colTypeOptionsByDimIdCacheRef = useRef(new Map<string, OptionBase<string>[]>());\n\n const loadables = useArray([unitOptionsQuery, conceptSetMapQuery, refDimMapQuery, refDimOptionsQuery, colTypeOptionsQuery, conceptSetOptionsQuery, regionSetOptionsQuery, geneticDistanceProtocolOptionsQuery, colsValidationRulesQuery]);\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbCaseApi.getInstance().refColsGetAll(null, null, { signal }))?.data;\n }, []);\n\n const fetchAllSelect = useCallback((refCols: CaseDbRefCol[]) => {\n if (refDimId) {\n return refCols.filter((refCol) => refCol.ref_dim_id === refDimId);\n }\n return refCols;\n }, [refDimId]);\n\n const deleteOne = useCallback(async (item: CaseDbRefCol) => {\n return await CaseDbCaseApi.getInstance().refColsDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbRefCol) => {\n return (await CaseDbCaseApi.getInstance().refColsPutOne(item.id, { id: item.id, ...variables })).data;\n }, []);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbCaseApi.getInstance().refColsPostOne(variables)).data;\n }, []);\n\n const getName = useCallback((item: CaseDbRefCol) => {\n return item.label;\n }, []);\n\n const colTypesThatRequireUnit = useMemo(() => [\n CaseDbColType.INTERVAL,\n CaseDbColType.DECIMAL_0,\n CaseDbColType.DECIMAL_1,\n CaseDbColType.DECIMAL_2,\n CaseDbColType.DECIMAL_3,\n CaseDbColType.DECIMAL_4,\n CaseDbColType.DECIMAL_5,\n CaseDbColType.DECIMAL_6] as CaseDbColType[], []);\n\n const schema = useMemo(() => {\n return object<FormFields>().shape({\n code: SchemaUtil.code,\n code_suffix: SchemaUtil.code,\n col_type: mixed<CaseDbColType>().required().oneOf(Object.values(CaseDbColType)),\n concept_set_id: string().when('col_type', {\n is: (colType: CaseDbColType) => CONCEPT_COL_TYPES.includes(colType),\n otherwise: () => string().nullable().notRequired(),\n then: () => string().uuid4().required(),\n }),\n description: SchemaUtil.description,\n genetic_distance_protocol_id: string().when('col_type', {\n is: (col_type: CaseDbColType) => col_type === CaseDbColType.GENETIC_DISTANCE,\n otherwise: () => string().nullable().notRequired(),\n then: () => string().uuid4().required(),\n }),\n label: SchemaUtil.label,\n rank: SchemaUtil.rank,\n ref_dim_id: string().uuid4().required().max(100),\n regex: string().when('col_type', {\n is: (col_type: CaseDbColType) => col_type === CaseDbColType.REGULAR_LANGUAGE,\n otherwise: () => string().regex().max(500).nullable().notRequired(),\n then: () => string().regex().max(500).required(),\n }),\n region_set_id: string().when('col_type', {\n is: (col_type: CaseDbColType) => col_type === CaseDbColType.GEO_REGION,\n otherwise: () => string().nullable().notRequired(),\n then: () => string().uuid4().required(),\n }),\n schema_definition: string().when('col_type', {\n is: (col_type: CaseDbColType) => ([CaseDbColType.CONTEXT_FREE_GRAMMAR_JSON, CaseDbColType.CONTEXT_FREE_GRAMMAR_XML] as CaseDbColType[]).includes(col_type),\n otherwise: () => string().nullable().notRequired(),\n then: () => string().freeFormText().max(10000).required(),\n }),\n schema_uri: string().when('col_type', {\n is: (col_type: CaseDbColType) => ([CaseDbColType.CONTEXT_FREE_GRAMMAR_JSON, CaseDbColType.CONTEXT_FREE_GRAMMAR_XML] as CaseDbColType[]).includes(col_type),\n otherwise: () => string().url().max(1000).nullable().notRequired(),\n then: () => string().url().max(1000).required(),\n }),\n unit: mixed<CaseDbUnit>().nullable()\n .test({\n message: t`Unit is required for this column type`,\n name: 'unit-is-required-for-col-type',\n test: (fieldValue, context) => {\n const { col_type: colType } = context.parent as Partial<FormFields> | undefined;\n if (colTypesThatRequireUnit.includes(colType)) {\n return !!fieldValue;\n }\n return true;\n },\n })\n .test({\n message: t`Unit should match the unit of the selected concept set`,\n name: 'unit-should-match-concept-set',\n test: (fieldValue, context) => {\n const { concept_set_id: conceptSetId } = context.parent as Partial<FormFields> | undefined;\n if (!conceptSetId) {\n return true;\n }\n const conceptSet = conceptSetMapQuery.map.get(conceptSetId);\n if (!conceptSet?.unit) {\n return true;\n }\n return fieldValue === conceptSet.unit;\n },\n }),\n });\n }, [colTypesThatRequireUnit, conceptSetMapQuery.map, t]);\n\n const getColTypeOptionsForDimId = useCallback((id: string): OptionBase<string>[] => {\n if (colTypeOptionsByDimIdCacheRef.current.has(id)) {\n return colTypeOptionsByDimIdCacheRef.current.get(id);\n }\n const options = CaseDbDataUtil.getColTypeOptionsForRefDimId({\n colsValidationRules: colsValidationRulesQuery.data?.valid_col_types_by_dim_type ?? {},\n colTypeOptions: colTypeOptionsQuery.options,\n refDimId: id,\n refDimMap: refDimMapQuery.map,\n });\n colTypeOptionsByDimIdCacheRef.current.set(id, options);\n return options;\n }, [colTypeOptionsQuery.options, colsValidationRulesQuery.data?.valid_col_types_by_dim_type, refDimMapQuery.map]);\n\n const onFormChange = useCallback((_item: CaseDbRefCol, values: FormFields, formMethods: UseFormReturn<FormFields>) => {\n if (values.col_type && values.concept_set_id && !CONCEPT_COL_TYPES.includes(values.col_type)) {\n formMethods.setValue('concept_set_id', null);\n }\n if (values.col_type && values.unit && !colTypesThatRequireUnit.includes(values.col_type)) {\n formMethods.setValue('unit', null);\n }\n if (values.concept_set_id) {\n const conceptSetUnit = conceptSetMapQuery.map.get(values.concept_set_id)?.unit;\n if (conceptSetUnit && values.unit !== conceptSetUnit) {\n formMethods.setValue('unit', conceptSetUnit);\n }\n }\n if (values.col_type && values.region_set_id && values.col_type !== CaseDbColType.GEO_REGION) {\n formMethods.setValue('region_set_id', null);\n }\n if (values.col_type && values.genetic_distance_protocol_id && values.col_type !== CaseDbColType.GENETIC_DISTANCE) {\n formMethods.setValue('genetic_distance_protocol_id', null);\n }\n if (values.col_type && values.ref_dim_id) {\n const validColOptions = getColTypeOptionsForDimId(values.ref_dim_id);\n if (!validColOptions.find(option => option.value === values.col_type)) {\n formMethods.setValue('col_type', validColOptions.length === 1 ? validColOptions[0].value as CaseDbColType : null);\n }\n }\n\n }, [colTypesThatRequireUnit, conceptSetMapQuery.map, getColTypeOptionsForDimId]);\n\n\n const formFieldDefinitions = useCallback((item: CaseDbRefCol, values: FormFields): FormFieldDefinition<FormFields>[] => {\n const normalizedRefDimId = values?.ref_dim_id ?? item?.ref_dim_id ?? refDimId ?? null;\n const normalizedColType = values?.col_type ?? item?.col_type ?? null;\n\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n disabled: !!item,\n label: t`Reference dimension`,\n name: 'ref_dim_id',\n options: refDimOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n disabled: !!item,\n label: t`Column type`,\n loading: colTypeOptionsQuery.isLoading,\n name: 'col_type',\n options: getColTypeOptionsForDimId(normalizedRefDimId),\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Label`,\n name: 'label',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Description`,\n multiline: true,\n name: 'description',\n rows: 5,\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`Column code prefix`,\n name: 'code_suffix',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Concept set`,\n name: 'concept_set_id',\n options: conceptSetOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Region set`,\n name: 'region_set_id',\n options: regionSetOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Genetic distance protocol`,\n name: 'genetic_distance_protocol_id',\n options: geneticDistanceProtocolOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Rank`,\n name: 'rank',\n type: 'number',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Regex`,\n name: 'regex',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Schema URI`,\n name: 'schema_uri',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Schema definition`,\n multiline: true,\n name: 'schema_definition',\n rows: 10,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n disabled: !normalizedColType || !colTypesThatRequireUnit.includes(normalizedColType),\n label: t`Unit`,\n loading: unitOptionsQuery.isLoading,\n name: 'unit',\n options: unitOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const satisfies FormFieldDefinition<FormFields>[];\n }, [refDimId, t, refDimOptionsQuery.options, colTypeOptionsQuery.isLoading, getColTypeOptionsForDimId, conceptSetOptionsQuery.options, regionSetOptionsQuery.options, geneticDistanceProtocolOptionsQuery.options, colTypesThatRequireUnit, unitOptionsQuery.isLoading, unitOptionsQuery.options]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbRefCol>[] => {\n const columns: TableColumn<CaseDbRefCol>[] = [];\n\n if (!refDimId) {\n columns.push(\n TableUtil.createOptionsColumn<CaseDbRefCol>({ id: 'ref_dim_id', name: t`Reference dimension`, options: refDimOptionsQuery.options }),\n );\n }\n\n columns.push(\n TableUtil.createTextColumn<CaseDbRefCol>({ id: 'code', name: t`Code` }),\n TableUtil.createOptionsColumn<CaseDbRefCol>({ id: 'col_type', name: t`Column type`, options: colTypeOptionsQuery.options }),\n TableUtil.createTextColumn<CaseDbRefCol>({ id: 'label', name: t`Label` }),\n TableUtil.createNumberColumn<CaseDbRefCol>({ id: 'rank', name: t`Rank` }),\n );\n\n return columns;\n }, [colTypeOptionsQuery.options, refDimId, refDimOptionsQuery.options, t]);\n\n const getOptimisticUpdateIntermediateItem = useCallback((variables: FormFields, previousItem: CaseDbRefCol): CaseDbRefCol => {\n return {\n id: previousItem.id,\n ref_dim_id: previousItem.ref_dim_id,\n ...variables,\n };\n }, []);\n\n const defaultNewItem = useMemo<Partial<FormFields>>(() => {\n return {\n ref_dim_id: refDimId ?? null,\n };\n }, [refDimId]);\n\n const title = useMemo(() => {\n const parts: string[] = [];\n\n if (refDimId && refDimMapQuery.map.has(refDimId)) {\n parts.push(refDimMapQuery.map.get(refDimId)?.code);\n }\n parts.push(t`Reference columns`);\n\n return parts;\n }, [refDimId, refDimMapQuery.map, t]);\n\n return (\n <CrudPage<FormFields, CaseDbRefCol, CaseDbRefCol, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new reference column`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.RefColCrudCommand}\n defaultNewItem={defaultNewItem}\n defaultSortByField={refDimId ? 'rank' : 'ref_dim_id'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n fetchAllSelect={fetchAllSelect}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n getOptimisticUpdateIntermediateItem={getOptimisticUpdateIntermediateItem}\n itemName={t`Reference column`}\n loadables={loadables}\n onFormChange={onFormChange}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.REF_COLS}\n schema={schema}\n tableColumns={tableColumns}\n tableStoreStorageNamePostFix={refDimId ? 'RefDim' : undefined}\n testIdAttributes={TestIdUtil.createAttributes('RefColsAdminPage')}\n title={title}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/RefColsAdminPage/RefColsAdminPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n useRef,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n mixed,\n object,\n string,\n} from 'yup';\nimport { useParams } from 'react-router-dom';\nimport type { UseFormReturn } from 'react-hook-form';\nimport type {\n CaseDbApiPermission,\n CaseDbRefCol,\n CaseDbUnit,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbCaseApi,\n CaseDbColType,\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 { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { useArray } from '@gen-epix/ui-core/hooks/useArray';\nimport type {\n FormFieldDefinition,\n OptionBase,\n} 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 { useColTypeOptionsQuery } from '../../dataHooks/useColTypesQuery';\nimport { useUnitOptionsQuery } from '../../dataHooks/useUnitQuery/useUnit';\nimport {\n useConceptSetMapQuery,\n useConceptSetOptionsQuery,\n} from '../../dataHooks/useConceptSetsQuery';\nimport {\n useRefDimMapQuery,\n useRefDimOptionsQuery,\n} from '../../dataHooks/useRefDimsQuery';\nimport { useGeneticDistanceProtocolOptionsQuery } from '../../dataHooks/useGeneticDistanceProtocolsQuery';\nimport { useRegionSetOptionsQuery } from '../../dataHooks/useRegionSetsQuery';\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\nimport { useRefColsValidationRulesQuery } from '../../dataHooks/useRefColsValidationRulesQuery';\nimport { CaseDbDataUtil } from '../../utils/CaseDbDataUtil';\n\ntype FormFields = OmitWithMetaData<CaseDbRefCol, 'concept_set' | 'genetic_distance_protocol' | 'props' | 'ref_dim' | 'region_set'>;\n\nconst CONCEPT_COL_TYPES: CaseDbColType[] = [CaseDbColType.NOMINAL, CaseDbColType.ORDINAL, CaseDbColType.INTERVAL];\n\nexport const RefColsAdminPage = () => {\n const { refDimId } = useParams();\n const { t } = useTranslation();\n const refDimOptionsQuery = useRefDimOptionsQuery();\n const refDimMapQuery = useRefDimMapQuery();\n const colTypeOptionsQuery = useColTypeOptionsQuery();\n const conceptSetOptionsQuery = useConceptSetOptionsQuery();\n const conceptSetMapQuery = useConceptSetMapQuery();\n const regionSetOptionsQuery = useRegionSetOptionsQuery();\n const unitOptionsQuery = useUnitOptionsQuery();\n const geneticDistanceProtocolOptionsQuery = useGeneticDistanceProtocolOptionsQuery();\n const colsValidationRulesQuery = useRefColsValidationRulesQuery();\n const colTypeOptionsByDimIdCacheRef = useRef(new Map<string, OptionBase<string>[]>());\n\n const loadables = useArray([unitOptionsQuery, conceptSetMapQuery, refDimMapQuery, refDimOptionsQuery, colTypeOptionsQuery, conceptSetOptionsQuery, regionSetOptionsQuery, geneticDistanceProtocolOptionsQuery, colsValidationRulesQuery]);\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbCaseApi.getInstance().refColsGetAll(null, null, { signal }))?.data;\n }, []);\n\n const fetchAllSelect = useCallback((refCols: CaseDbRefCol[]) => {\n if (refDimId) {\n return refCols.filter((refCol) => refCol.ref_dim_id === refDimId);\n }\n return refCols;\n }, [refDimId]);\n\n const deleteOne = useCallback(async (item: CaseDbRefCol) => {\n return await CaseDbCaseApi.getInstance().refColsDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbRefCol) => {\n return (await CaseDbCaseApi.getInstance().refColsPutOne(item.id, { id: item.id, ...variables })).data;\n }, []);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbCaseApi.getInstance().refColsPostOne(variables)).data;\n }, []);\n\n const getName = useCallback((item: CaseDbRefCol) => {\n return item.label;\n }, []);\n\n const colTypesThatRequireUnit = useMemo(() => [\n CaseDbColType.INTERVAL,\n CaseDbColType.DECIMAL_0,\n CaseDbColType.DECIMAL_1,\n CaseDbColType.DECIMAL_2,\n CaseDbColType.DECIMAL_3,\n CaseDbColType.DECIMAL_4,\n CaseDbColType.DECIMAL_5,\n CaseDbColType.DECIMAL_6] as CaseDbColType[], []);\n\n const schema = useMemo(() => {\n return object<FormFields>().shape({\n code: SchemaUtil.code,\n code_suffix: SchemaUtil.code,\n col_type: mixed<CaseDbColType>().required().oneOf(Object.values(CaseDbColType)),\n concept_set_id: string().when('col_type', {\n is: (colType: CaseDbColType) => CONCEPT_COL_TYPES.includes(colType),\n otherwise: () => string().nullable().notRequired(),\n then: () => string().uuid4().required(),\n }),\n description: SchemaUtil.description,\n genetic_distance_protocol_id: string().when('col_type', {\n is: (col_type: CaseDbColType) => col_type === CaseDbColType.GENETIC_DISTANCE,\n otherwise: () => string().nullable().notRequired(),\n then: () => string().uuid4().required(),\n }),\n label: SchemaUtil.label,\n rank: SchemaUtil.rank,\n ref_dim_id: string().uuid4().required().max(100),\n regex: string().when('col_type', {\n is: (col_type: CaseDbColType) => col_type === CaseDbColType.REGULAR_LANGUAGE,\n otherwise: () => string().regex().max(500).nullable().notRequired(),\n then: () => string().regex().max(500).required(),\n }),\n region_set_id: string().when('col_type', {\n is: (col_type: CaseDbColType) => col_type === CaseDbColType.GEO_REGION,\n otherwise: () => string().nullable().notRequired(),\n then: () => string().uuid4().required(),\n }),\n schema_definition: string().when('col_type', {\n is: (col_type: CaseDbColType) => ([CaseDbColType.CONTEXT_FREE_GRAMMAR_JSON, CaseDbColType.CONTEXT_FREE_GRAMMAR_XML] as CaseDbColType[]).includes(col_type),\n otherwise: () => string().nullable().notRequired(),\n then: () => string().freeFormText().max(10000).required(),\n }),\n schema_uri: string().when('col_type', {\n is: (col_type: CaseDbColType) => ([CaseDbColType.CONTEXT_FREE_GRAMMAR_JSON, CaseDbColType.CONTEXT_FREE_GRAMMAR_XML] as CaseDbColType[]).includes(col_type),\n otherwise: () => string().url().max(1000).nullable().notRequired(),\n then: () => string().url().max(1000).required(),\n }),\n unit: mixed<CaseDbUnit>().nullable()\n .test({\n message: t`Unit is required for this column type`,\n name: 'unit-is-required-for-col-type',\n test: (fieldValue, context) => {\n const { col_type: colType } = context.parent as Partial<FormFields> | undefined;\n if (colTypesThatRequireUnit.includes(colType)) {\n return !!fieldValue;\n }\n return true;\n },\n })\n .test({\n message: t`Unit should match the unit of the selected concept set`,\n name: 'unit-should-match-concept-set',\n test: (fieldValue, context) => {\n const { concept_set_id: conceptSetId } = context.parent as Partial<FormFields> | undefined;\n if (!conceptSetId) {\n return true;\n }\n const conceptSet = conceptSetMapQuery.map.get(conceptSetId);\n if (!conceptSet?.unit) {\n return true;\n }\n return fieldValue === conceptSet.unit;\n },\n }),\n });\n }, [colTypesThatRequireUnit, conceptSetMapQuery.map, t]);\n\n const getColTypeOptionsForDimId = useCallback((id: string): OptionBase<string>[] => {\n if (colTypeOptionsByDimIdCacheRef.current.has(id)) {\n return colTypeOptionsByDimIdCacheRef.current.get(id);\n }\n const options = CaseDbDataUtil.getColTypeOptionsForRefDimId({\n colsValidationRules: colsValidationRulesQuery.data?.valid_col_types_by_dim_type ?? {},\n colTypeOptions: colTypeOptionsQuery.options,\n refDimId: id,\n refDimMap: refDimMapQuery.map,\n });\n colTypeOptionsByDimIdCacheRef.current.set(id, options);\n return options;\n }, [colTypeOptionsQuery.options, colsValidationRulesQuery.data?.valid_col_types_by_dim_type, refDimMapQuery.map]);\n\n const onFormChange = useCallback((_item: CaseDbRefCol, values: FormFields, formMethods: UseFormReturn<FormFields>) => {\n if (values.col_type && values.concept_set_id && !CONCEPT_COL_TYPES.includes(values.col_type)) {\n formMethods.setValue('concept_set_id', null);\n }\n if (values.col_type && values.unit && !colTypesThatRequireUnit.includes(values.col_type)) {\n formMethods.setValue('unit', null);\n }\n if (values.concept_set_id) {\n const conceptSetUnit = conceptSetMapQuery.map.get(values.concept_set_id)?.unit;\n if (conceptSetUnit && values.unit !== conceptSetUnit) {\n formMethods.setValue('unit', conceptSetUnit);\n }\n }\n if (values.col_type && values.region_set_id && values.col_type !== CaseDbColType.GEO_REGION) {\n formMethods.setValue('region_set_id', null);\n }\n if (values.col_type && values.genetic_distance_protocol_id && values.col_type !== CaseDbColType.GENETIC_DISTANCE) {\n formMethods.setValue('genetic_distance_protocol_id', null);\n }\n if (values.col_type && values.ref_dim_id) {\n const validColOptions = getColTypeOptionsForDimId(values.ref_dim_id);\n if (!validColOptions.find(option => option.value === values.col_type)) {\n formMethods.setValue('col_type', validColOptions.length === 1 ? validColOptions[0].value as CaseDbColType : null);\n }\n }\n\n }, [colTypesThatRequireUnit, conceptSetMapQuery.map, getColTypeOptionsForDimId]);\n\n\n const formFieldDefinitions = useCallback((item: CaseDbRefCol, values: FormFields): FormFieldDefinition<FormFields>[] => {\n const normalizedRefDimId = values?.ref_dim_id ?? item?.ref_dim_id ?? refDimId ?? null;\n const normalizedColType = values?.col_type ?? item?.col_type ?? null;\n\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n disabled: !!item,\n label: t`Reference dimension`,\n name: 'ref_dim_id',\n options: refDimOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n disabled: !!item,\n label: t`Column type`,\n loading: colTypeOptionsQuery.isLoading,\n name: 'col_type',\n options: getColTypeOptionsForDimId(normalizedRefDimId),\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Label`,\n name: 'label',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Description`,\n multiline: true,\n name: 'description',\n rows: 5,\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`Column code prefix`,\n name: 'code_suffix',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Concept set`,\n name: 'concept_set_id',\n options: conceptSetOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Region set`,\n name: 'region_set_id',\n options: regionSetOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Genetic distance protocol`,\n name: 'genetic_distance_protocol_id',\n options: geneticDistanceProtocolOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Rank`,\n name: 'rank',\n type: 'number',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Regex`,\n name: 'regex',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Schema URI`,\n name: 'schema_uri',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Schema definition`,\n multiline: true,\n name: 'schema_definition',\n rows: 10,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n disabled: !normalizedColType || !colTypesThatRequireUnit.includes(normalizedColType),\n label: t`Unit`,\n loading: unitOptionsQuery.isLoading,\n name: 'unit',\n options: unitOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const satisfies FormFieldDefinition<FormFields>[];\n }, [refDimId, t, refDimOptionsQuery.options, colTypeOptionsQuery.isLoading, getColTypeOptionsForDimId, conceptSetOptionsQuery.options, regionSetOptionsQuery.options, geneticDistanceProtocolOptionsQuery.options, colTypesThatRequireUnit, unitOptionsQuery.isLoading, unitOptionsQuery.options]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbRefCol>[] => {\n const columns: TableColumn<CaseDbRefCol>[] = [];\n\n if (!refDimId) {\n columns.push(\n TableUtil.createOptionsColumn<CaseDbRefCol>({ id: 'ref_dim_id', name: t`Reference dimension`, options: refDimOptionsQuery.options }),\n );\n }\n\n columns.push(\n TableUtil.createTextColumn<CaseDbRefCol>({ id: 'code', name: t`Code` }),\n TableUtil.createOptionsColumn<CaseDbRefCol>({ id: 'col_type', name: t`Column type`, options: colTypeOptionsQuery.options }),\n TableUtil.createTextColumn<CaseDbRefCol>({ id: 'label', name: t`Label` }),\n TableUtil.createNumberColumn<CaseDbRefCol>({ id: 'rank', name: t`Rank` }),\n );\n\n return columns;\n }, [colTypeOptionsQuery.options, refDimId, refDimOptionsQuery.options, t]);\n\n const getOptimisticUpdateIntermediateItem = useCallback((variables: FormFields, previousItem: CaseDbRefCol): CaseDbRefCol => {\n return {\n id: previousItem.id,\n ref_dim_id: previousItem.ref_dim_id,\n ...variables,\n };\n }, []);\n\n const defaultNewItem = useMemo<Partial<FormFields>>(() => {\n return {\n ref_dim_id: refDimId ?? null,\n };\n }, [refDimId]);\n\n const title = useMemo(() => {\n const parts: string[] = [];\n\n if (refDimId && refDimMapQuery.map.has(refDimId)) {\n parts.push(refDimMapQuery.map.get(refDimId)?.code);\n }\n parts.push(t`Reference columns`);\n\n return parts;\n }, [refDimId, refDimMapQuery.map, t]);\n\n return (\n <CrudPage<FormFields, CaseDbRefCol, CaseDbRefCol, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new reference column`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.RefColCrudCommand}\n defaultNewItem={defaultNewItem}\n defaultSortByField={refDimId ? 'rank' : 'ref_dim_id'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n fetchAllSelect={fetchAllSelect}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n getOptimisticUpdateIntermediateItem={getOptimisticUpdateIntermediateItem}\n itemName={t`Reference column`}\n loadables={loadables}\n onFormChange={onFormChange}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.REF_COLS}\n schema={schema}\n tableColumns={tableColumns}\n tableStoreStorageNamePostFix={refDimId ? 'RefDim' : undefined}\n testIdAttributes={TestIdUtil.createAttributes('RefColsAdminPage')}\n title={title}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":"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"}
|
|
@@ -2,15 +2,15 @@ import { CASEDB_QUERY_KEY as e } from "../../constants/query.js";
|
|
|
2
2
|
import { useDimTypeOptionsQuery as t } from "../../dataHooks/useDimTypesQuery/index.js";
|
|
3
3
|
import { mixed as n, object as r, string as i } from "yup";
|
|
4
4
|
import { CaseDbCaseApi as a, CaseDbCommandName as o, CaseDbDimType as s, CaseDbPermissionType as c } from "@gen-epix/api-casedb";
|
|
5
|
-
import { FORM_FIELD_DEFINITION_TYPE as l } from "@gen-epix/ui-form/models/form";
|
|
5
|
+
import { FORM_FIELD_DEFINITION_TYPE as l } from "@gen-epix/ui-core-form/models/form";
|
|
6
6
|
import { useCallback as u, useMemo as d } from "react";
|
|
7
7
|
import { useTranslation as f } from "react-i18next";
|
|
8
8
|
import { jsx as p } from "react/jsx-runtime";
|
|
9
|
-
import { TableUtil as m } from "@gen-epix/ui/utils/TableUtil";
|
|
9
|
+
import { TableUtil as m } from "@gen-epix/ui-client-common/utils/TableUtil";
|
|
10
10
|
import { TestIdUtil as h } from "@gen-epix/ui-core/utils/TestIdUtil";
|
|
11
|
-
import { SchemaUtil as g } from "@gen-epix/ui-form/utils/SchemaUtil";
|
|
12
|
-
import { AuthorizationService as _ } from "@gen-epix/ui/classes/services/AuthorizationService";
|
|
13
|
-
import { CrudPage as v } from "@gen-epix/ui/pages/CrudPage";
|
|
11
|
+
import { SchemaUtil as g } from "@gen-epix/ui-core-form/utils/SchemaUtil";
|
|
12
|
+
import { AuthorizationService as _ } from "@gen-epix/ui-client-common/classes/services/AuthorizationService";
|
|
13
|
+
import { CrudPage as v } from "@gen-epix/ui-client-common/pages/CrudPage";
|
|
14
14
|
//#region src/pages/RefDimsAdminPage/RefDimsAdminPage.tsx
|
|
15
15
|
var y = () => {
|
|
16
16
|
let { t: y } = f(), b = t(), x = u(async (e) => (await a.getInstance().refDimsGetAll(null, null, { signal: e }))?.data, []), S = u(async (e) => await a.getInstance().refDimsDeleteOne(e.id), []), C = u(async (e, t) => (await a.getInstance().refDimsPutOne(t.id, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/RefDimsAdminPage/RefDimsAdminPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n mixed,\n object,\n string,\n} from 'yup';\nimport type {\n CaseDbApiPermission,\n CaseDbRefDim,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbCaseApi,\n CaseDbCommandName,\n CaseDbDimType,\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 { useDimTypeOptionsQuery } from '../../dataHooks/useDimTypesQuery';\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\n\ntype FormFields = OmitWithMetaData<CaseDbRefDim, 'props'>;\n\nexport const RefDimsAdminPage = () => {\n const { t } = useTranslation();\n const dimTypeOptionsQuery = useDimTypeOptionsQuery();\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbCaseApi.getInstance().refDimsGetAll(null, null, { signal }))?.data;\n }, []);\n\n const deleteOne = useCallback(async (item: CaseDbRefDim) => {\n return await CaseDbCaseApi.getInstance().refDimsDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbRefDim) => {\n return (await CaseDbCaseApi.getInstance().refDimsPutOne(item.id, { id: item.id, ...variables })).data;\n }, []);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbCaseApi.getInstance().refDimsPostOne(variables)).data;\n }, []);\n\n const getName = useCallback((item: CaseDbRefDim) => {\n return item.label;\n }, []);\n\n const schema = useMemo(() => {\n return object<FormFields>().shape({\n code: SchemaUtil.code,\n col_code_prefix: string().alphaNumeric().required().max(100),\n description: SchemaUtil.description,\n dim_type: mixed<CaseDbDimType>().required().oneOf(Object.values(CaseDbDimType)),\n label: SchemaUtil.label,\n rank: SchemaUtil.rank,\n });\n }, []);\n\n const formFieldDefinitions = useCallback((item: CaseDbRefDim): FormFieldDefinition<FormFields>[] => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n disabled: !!item,\n label: t`Dimension type`,\n name: 'dim_type',\n options: dimTypeOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Label`,\n name: 'label',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Description`,\n multiline: true,\n name: 'description',\n rows: 5,\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`Column code prefix`,\n name: 'col_code_prefix',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Rank`,\n name: 'rank',\n type: 'number',\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [dimTypeOptionsQuery.options, t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbRefDim>[] => {\n return [\n TableUtil.createTextColumn<CaseDbRefDim>({ id: 'code', name: t`Code` }),\n TableUtil.createOptionsColumn<CaseDbRefDim>({ id: 'dim_type', name: t`Dimension type`, options: dimTypeOptionsQuery.options }),\n TableUtil.createTextColumn<CaseDbRefDim>({ id: 'label', name: t`Label` }),\n TableUtil.createNumberColumn<CaseDbRefDim>({ id: 'rank', name: t`Rank` }),\n ];\n }, [dimTypeOptionsQuery.options, t]);\n\n const subPages = useMemo<CrudPageSubPage<CaseDbRefDim>[]>(() => {\n if (!AuthorizationService.getInstance().doesUserHavePermission<CaseDbApiPermission>([\n { command_name: CaseDbCommandName.RefColCrudCommand, permission_type: CaseDbPermissionType.READ },\n ])) {\n return [];\n }\n\n return [\n {\n getPathName: (item: CaseDbRefDim) => `/management/reference-dimensions/${item.id}/reference-columns`,\n label: t`Manage reference columns`,\n } satisfies CrudPageSubPage<CaseDbRefDim>,\n ];\n }, [t]);\n\n return (\n <CrudPage<FormFields, CaseDbRefDim, CaseDbRefDim, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new reference dimension`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.RefDimCrudCommand}\n defaultSortByField={'code'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n itemName={t`Reference dimension`}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.REF_DIMS}\n schema={schema}\n subPages={subPages}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('RefDimsAdminPage')}\n title={t`Dimensions`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;AAoCA,IAAa,UAAyB;CACpC,IAAM,EAAE,SAAM,EAAe,GACvB,IAAsB,EAAuB,GAE7C,IAAW,EAAY,OAAO,OAC1B,MAAM,EAAc,YAAY,CAAC,CAAC,cAAc,MAAM,MAAM,EAAE,UAAO,CAAC,EAAA,EAAI,MACjF,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,MAC5B,MAAM,EAAc,YAAY,CAAC,CAAC,iBAAiB,EAAK,EAAE,GAChE,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,GAAuB,OAClD,MAAM,EAAc,YAAY,CAAC,CAAC,cAAc,EAAK,IAAI;EAAE,IAAI,EAAK;EAAI,GAAG;CAAU,CAAC,EAAA,CAAG,MAChG,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,OAC3B,MAAM,EAAc,YAAY,CAAC,CAAC,eAAe,CAAS,EAAA,CAAG,MACpE,CAAC,CAAC,GAEC,IAAU,GAAa,MACpB,EAAK,OACX,CAAC,CAAC,GAEC,IAAS,QACN,EAAmB,CAAC,CAAC,MAAM;EAChC,MAAM,EAAW;EACjB,iBAAiB,EAAO,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG;EAC3D,aAAa,EAAW;EACxB,UAAU,EAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,OAAO,OAAO,CAAa,CAAC;EAC9E,OAAO,EAAW;EAClB,MAAM,EAAW;CACnB,CAAC,GACA,CAAC,CAAC,GAEC,IAAuB,GAAa,MACjC;EACL;GACE,YAAY,EAA2B;GACvC,UAAU,CAAC,CAAC;GACZ,OAAO,CAAC;GACR,MAAM;GACN,SAAS,EAAoB;EAC/B;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,WAAW;GACX,MAAM;GACN,MAAM;EACR;EACA;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;CACF,GACC,CAAC,EAAoB,SAAS,CAAC,CAAC,GAE7B,IAAe,QACZ;EACL,EAAU,iBAA+B;GAAE,IAAI;GAAQ,MAAM,CAAC;EAAO,CAAC;EACtE,EAAU,oBAAkC;GAAE,IAAI;GAAY,MAAM,CAAC;GAAkB,SAAS,EAAoB;EAAQ,CAAC;EAC7H,EAAU,iBAA+B;GAAE,IAAI;GAAS,MAAM,CAAC;EAAQ,CAAC;EACxE,EAAU,mBAAiC;GAAE,IAAI;GAAQ,MAAM,CAAC;EAAO,CAAC;CAC1E,GACC,CAAC,EAAoB,SAAS,CAAC,CAAC,GAE7B,IAAW,QACV,EAAqB,YAAY,CAAC,CAAC,uBAA4C,CAClF;EAAE,cAAc,EAAkB;EAAmB,iBAAiB,EAAqB;CAAK,CAClG,CAAC,IAIM,CACL;EACE,cAAc,MAAuB,oCAAoC,EAAK,GAAG;EACjF,OAAO,CAAC;CACV,CACF,IARS,CAAC,GAST,CAAC,CAAC,CAAC;CAEN,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,kBAAkB;EAChE,OAAO,CAAC;EACG;CACZ,CAAA;AAEL"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/RefDimsAdminPage/RefDimsAdminPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n mixed,\n object,\n string,\n} from 'yup';\nimport type {\n CaseDbApiPermission,\n CaseDbRefDim,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbCaseApi,\n CaseDbCommandName,\n CaseDbDimType,\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 { useDimTypeOptionsQuery } from '../../dataHooks/useDimTypesQuery';\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\n\ntype FormFields = OmitWithMetaData<CaseDbRefDim, 'props'>;\n\nexport const RefDimsAdminPage = () => {\n const { t } = useTranslation();\n const dimTypeOptionsQuery = useDimTypeOptionsQuery();\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbCaseApi.getInstance().refDimsGetAll(null, null, { signal }))?.data;\n }, []);\n\n const deleteOne = useCallback(async (item: CaseDbRefDim) => {\n return await CaseDbCaseApi.getInstance().refDimsDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbRefDim) => {\n return (await CaseDbCaseApi.getInstance().refDimsPutOne(item.id, { id: item.id, ...variables })).data;\n }, []);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbCaseApi.getInstance().refDimsPostOne(variables)).data;\n }, []);\n\n const getName = useCallback((item: CaseDbRefDim) => {\n return item.label;\n }, []);\n\n const schema = useMemo(() => {\n return object<FormFields>().shape({\n code: SchemaUtil.code,\n col_code_prefix: string().alphaNumeric().required().max(100),\n description: SchemaUtil.description,\n dim_type: mixed<CaseDbDimType>().required().oneOf(Object.values(CaseDbDimType)),\n label: SchemaUtil.label,\n rank: SchemaUtil.rank,\n });\n }, []);\n\n const formFieldDefinitions = useCallback((item: CaseDbRefDim): FormFieldDefinition<FormFields>[] => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n disabled: !!item,\n label: t`Dimension type`,\n name: 'dim_type',\n options: dimTypeOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Label`,\n name: 'label',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Description`,\n multiline: true,\n name: 'description',\n rows: 5,\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`Column code prefix`,\n name: 'col_code_prefix',\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD,\n label: t`Rank`,\n name: 'rank',\n type: 'number',\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [dimTypeOptionsQuery.options, t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbRefDim>[] => {\n return [\n TableUtil.createTextColumn<CaseDbRefDim>({ id: 'code', name: t`Code` }),\n TableUtil.createOptionsColumn<CaseDbRefDim>({ id: 'dim_type', name: t`Dimension type`, options: dimTypeOptionsQuery.options }),\n TableUtil.createTextColumn<CaseDbRefDim>({ id: 'label', name: t`Label` }),\n TableUtil.createNumberColumn<CaseDbRefDim>({ id: 'rank', name: t`Rank` }),\n ];\n }, [dimTypeOptionsQuery.options, t]);\n\n const subPages = useMemo<CrudPageSubPage<CaseDbRefDim>[]>(() => {\n if (!AuthorizationService.getInstance().doesUserHavePermission<CaseDbApiPermission>([\n { command_name: CaseDbCommandName.RefColCrudCommand, permission_type: CaseDbPermissionType.READ },\n ])) {\n return [];\n }\n\n return [\n {\n getPathName: (item: CaseDbRefDim) => `/management/reference-dimensions/${item.id}/reference-columns`,\n label: t`Manage reference columns`,\n } satisfies CrudPageSubPage<CaseDbRefDim>,\n ];\n }, [t]);\n\n return (\n <CrudPage<FormFields, CaseDbRefDim, CaseDbRefDim, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new reference dimension`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.RefDimCrudCommand}\n defaultSortByField={'code'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n itemName={t`Reference dimension`}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.REF_DIMS}\n schema={schema}\n subPages={subPages}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('RefDimsAdminPage')}\n title={t`Dimensions`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;AAoCA,IAAa,UAAyB;CACpC,IAAM,EAAE,SAAM,EAAe,GACvB,IAAsB,EAAuB,GAE7C,IAAW,EAAY,OAAO,OAC1B,MAAM,EAAc,YAAY,CAAC,CAAC,cAAc,MAAM,MAAM,EAAE,UAAO,CAAC,EAAA,EAAI,MACjF,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,MAC5B,MAAM,EAAc,YAAY,CAAC,CAAC,iBAAiB,EAAK,EAAE,GAChE,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,GAAuB,OAClD,MAAM,EAAc,YAAY,CAAC,CAAC,cAAc,EAAK,IAAI;EAAE,IAAI,EAAK;EAAI,GAAG;CAAU,CAAC,EAAA,CAAG,MAChG,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,OAC3B,MAAM,EAAc,YAAY,CAAC,CAAC,eAAe,CAAS,EAAA,CAAG,MACpE,CAAC,CAAC,GAEC,IAAU,GAAa,MACpB,EAAK,OACX,CAAC,CAAC,GAEC,IAAS,QACN,EAAmB,CAAC,CAAC,MAAM;EAChC,MAAM,EAAW;EACjB,iBAAiB,EAAO,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG;EAC3D,aAAa,EAAW;EACxB,UAAU,EAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,OAAO,OAAO,CAAa,CAAC;EAC9E,OAAO,EAAW;EAClB,MAAM,EAAW;CACnB,CAAC,GACA,CAAC,CAAC,GAEC,IAAuB,GAAa,MACjC;EACL;GACE,YAAY,EAA2B;GACvC,UAAU,CAAC,CAAC;GACZ,OAAO,CAAC;GACR,MAAM;GACN,SAAS,EAAoB;EAC/B;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,MAAM;EACR;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,WAAW;GACX,MAAM;GACN,MAAM;EACR;EACA;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;CACF,GACC,CAAC,EAAoB,SAAS,CAAC,CAAC,GAE7B,IAAe,QACZ;EACL,EAAU,iBAA+B;GAAE,IAAI;GAAQ,MAAM,CAAC;EAAO,CAAC;EACtE,EAAU,oBAAkC;GAAE,IAAI;GAAY,MAAM,CAAC;GAAkB,SAAS,EAAoB;EAAQ,CAAC;EAC7H,EAAU,iBAA+B;GAAE,IAAI;GAAS,MAAM,CAAC;EAAQ,CAAC;EACxE,EAAU,mBAAiC;GAAE,IAAI;GAAQ,MAAM,CAAC;EAAO,CAAC;CAC1E,GACC,CAAC,EAAoB,SAAS,CAAC,CAAC,GAE7B,IAAW,QACV,EAAqB,YAAY,CAAC,CAAC,uBAA4C,CAClF;EAAE,cAAc,EAAkB;EAAmB,iBAAiB,EAAqB;CAAK,CAClG,CAAC,IAIM,CACL;EACE,cAAc,MAAuB,oCAAoC,EAAK,GAAG;EACjF,OAAO,CAAC;CACV,CACF,IARS,CAAC,GAST,CAAC,CAAC,CAAC;CAEN,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,kBAAkB;EAChE,OAAO,CAAC;EACG;CACZ,CAAA;AAEL"}
|
|
@@ -3,14 +3,14 @@ import { useRegionMapQuery as t, useRegionOptionsQuery as n } from "../../dataHo
|
|
|
3
3
|
import { useRegionRelationTypeOptionsQuery as r } from "../../dataHooks/useRegionRelationTypeQuery/index.js";
|
|
4
4
|
import { mixed as i, object as a, string as o } from "yup";
|
|
5
5
|
import { CaseDbCommandName as s, CaseDbGeoApi as c, CaseDbRegionRelationType as l } from "@gen-epix/api-casedb";
|
|
6
|
-
import { FORM_FIELD_DEFINITION_TYPE as u } from "@gen-epix/ui-form/models/form";
|
|
6
|
+
import { FORM_FIELD_DEFINITION_TYPE as u } from "@gen-epix/ui-core-form/models/form";
|
|
7
7
|
import { useCallback as d, useMemo as f } from "react";
|
|
8
8
|
import { useTranslation as p } from "react-i18next";
|
|
9
9
|
import { jsx as m } from "react/jsx-runtime";
|
|
10
10
|
import { useArray as h } from "@gen-epix/ui-core/hooks/useArray";
|
|
11
|
-
import { TableUtil as g } from "@gen-epix/ui/utils/TableUtil";
|
|
11
|
+
import { TableUtil as g } from "@gen-epix/ui-client-common/utils/TableUtil";
|
|
12
12
|
import { TestIdUtil as _ } from "@gen-epix/ui-core/utils/TestIdUtil";
|
|
13
|
-
import { CrudPage as v } from "@gen-epix/ui/pages/CrudPage";
|
|
13
|
+
import { CrudPage as v } from "@gen-epix/ui-client-common/pages/CrudPage";
|
|
14
14
|
//#region src/pages/RegionRelationsAdminPage/RegionRelationsAdminPage.tsx
|
|
15
15
|
var y = () => {
|
|
16
16
|
let { t: y } = p(), b = t(), x = n(), S = r(), C = h([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/pages/RegionRelationsAdminPage/RegionRelationsAdminPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n mixed,\n object,\n string,\n} from 'yup';\nimport type {\n CaseDbApiPermission,\n CaseDbRegionRelation,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbCommandName,\n CaseDbGeoApi,\n CaseDbRegionRelationType,\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 { CASEDB_QUERY_KEY } from '../../constants/query';\nimport {\n useRegionMapQuery,\n useRegionOptionsQuery,\n} from '../../dataHooks/useRegionQuery';\nimport { useRegionRelationTypeOptionsQuery } from '../../dataHooks/useRegionRelationTypeQuery';\n\n\ntype FormFields = OmitWithMetaData<CaseDbRegionRelation, 'from_region' | 'to_region'>;\n\nexport const RegionRelationsAdminPage = () => {\n const { t } = useTranslation();\n\n const regionMapQuery = useRegionMapQuery();\n const regionOptionsQuery = useRegionOptionsQuery();\n const regionRelationTypeOptionsQuery = useRegionRelationTypeOptionsQuery();\n\n const loadables = useArray([regionOptionsQuery, regionMapQuery, regionRelationTypeOptionsQuery]);\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbGeoApi.getInstance().regionRelationsGetAll(null, null, { signal }))?.data;\n }, []);\n\n const deleteOne = useCallback(async (item: CaseDbRegionRelation) => {\n return await CaseDbGeoApi.getInstance().regionRelationsDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbRegionRelation) => {\n return (await CaseDbGeoApi.getInstance().regionRelationsPutOne(item.id, { id: item.id, ...variables })).data;\n }, []);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbGeoApi.getInstance().regionRelationsPostOne(variables)).data;\n }, []);\n\n const getName = useCallback((item: CaseDbRegionRelation) => {\n const fromRegion = regionMapQuery.map.get(item.from_region_id);\n const toRegion = regionMapQuery.map.get(item.to_region_id);\n if (fromRegion && toRegion) {\n return `${fromRegion.name} -> ${toRegion.name}`;\n }\n return `${item.from_region_id} -> ${item.to_region_id}`;\n }, [regionMapQuery.map]);\n\n const schema = useMemo(() => {\n return object<FormFields>().shape({\n from_region_id: string().uuid4().required(),\n relation: mixed<CaseDbRegionRelationType>().required().oneOf(Object.values(CaseDbRegionRelationType)),\n to_region_id: string().uuid4().required(),\n });\n }, []);\n\n const formFieldDefinitions = useMemo<FormFieldDefinition<FormFields>[]>(() => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`From Region`,\n loading: regionOptionsQuery.isLoading,\n name: 'from_region_id',\n options: regionOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`To Region`,\n loading: regionOptionsQuery.isLoading,\n name: 'to_region_id',\n options: regionOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Relation`,\n loading: regionRelationTypeOptionsQuery.isLoading,\n name: 'relation',\n options: regionRelationTypeOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [regionOptionsQuery.isLoading, regionOptionsQuery.options, regionRelationTypeOptionsQuery.isLoading, regionRelationTypeOptionsQuery.options, t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbRegionRelation>[] => {\n return [\n TableUtil.createOptionsColumn<CaseDbRegionRelation>({ id: 'from_region_id', name: t`From Region`, options: regionOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbRegionRelation>({ id: 'to_region_id', name: t`To Region`, options: regionOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbRegionRelation>({ id: 'relation', name: t`Relation`, options: regionRelationTypeOptionsQuery.options }),\n ];\n }, [regionOptionsQuery.options, regionRelationTypeOptionsQuery.options, t]);\n\n\n return (\n <CrudPage<FormFields, CaseDbRegionRelation, CaseDbRegionRelation, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new region relation`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.RegionRelationCrudCommand}\n defaultSortByField={'from_region_id'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n itemName={t`Region relation`}\n loadables={loadables}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.REGION_RELATIONS}\n schema={schema}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('RegionRelationsAdminPage')}\n title={t`Region Relations`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;AAsCA,IAAa,UAAiC;CAC5C,IAAM,EAAE,SAAM,EAAe,GAEvB,IAAiB,EAAkB,GACnC,IAAqB,EAAsB,GAC3C,IAAiC,EAAkC,GAEnE,IAAY,EAAS;EAAC;EAAoB;EAAgB;CAA8B,CAAC,GAEzF,IAAW,EAAY,OAAO,OAC1B,MAAM,EAAa,YAAY,CAAC,CAAC,sBAAsB,MAAM,MAAM,EAAE,UAAO,CAAC,EAAA,EAAI,MACxF,CAAC,CAAC,GAEC,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;EAAE,IAAI,EAAK;EAAI,GAAG;CAAU,CAAC,EAAA,CAAG,MACvG,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,OAC3B,MAAM,EAAa,YAAY,CAAC,CAAC,uBAAuB,CAAS,EAAA,CAAG,MAC3E,CAAC,CAAC,GAEC,IAAU,GAAa,MAA+B;EAC1D,IAAM,IAAa,EAAe,IAAI,IAAI,EAAK,cAAc,GACvD,IAAW,EAAe,IAAI,IAAI,EAAK,YAAY;EAIzD,OAHI,KAAc,IACT,GAAG,EAAW,KAAK,MAAM,EAAS,SAEpC,GAAG,EAAK,eAAe,MAAM,EAAK;CAC3C,GAAG,CAAC,EAAe,GAAG,CAAC,GAEjB,IAAS,QACN,EAAmB,CAAC,CAAC,MAAM;EAChC,gBAAgB,EAAO,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS;EAC1C,UAAU,EAAgC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,OAAO,OAAO,CAAwB,CAAC;EACpG,cAAc,EAAO,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS;CAC1C,CAAC,GACA,CAAC,CAAC,GAEC,IAAuB,QACpB;EACL;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,SAAS,EAAmB;GAC5B,MAAM;GACN,SAAS,EAAmB;EAC9B;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,SAAS,EAAmB;GAC5B,MAAM;GACN,SAAS,EAAmB;EAC9B;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,SAAS,EAA+B;GACxC,MAAM;GACN,SAAS,EAA+B;EAC1C;CACF,GACC;EAAC,EAAmB;EAAW,EAAmB;EAAS,EAA+B;EAAW,EAA+B;EAAS;CAAC,CAAC,GAE5I,IAAe,QACZ;EACL,EAAU,oBAA0C;GAAE,IAAI;GAAkB,MAAM,CAAC;GAAe,SAAS,EAAmB;EAAQ,CAAC;EACvI,EAAU,oBAA0C;GAAE,IAAI;GAAgB,MAAM,CAAC;GAAa,SAAS,EAAmB;EAAQ,CAAC;EACnI,EAAU,oBAA0C;GAAE,IAAI;GAAY,MAAM,CAAC;GAAY,SAAS,EAA+B;EAAQ,CAAC;CAC5I,GACC;EAAC,EAAmB;EAAS,EAA+B;EAAS;CAAC,CAAC;CAG1E,OACE,kBAAC,GAAD;EACE,uBAAuB,CAAC;EACb;EACX,iBAAiB,EAAkB;EACnC,oBAAoB;EACpB,sBAAsB;EACX;EACD;EACY;EACb;EACT,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/RegionRelationsAdminPage/RegionRelationsAdminPage.tsx"],"sourcesContent":["import {\n useCallback,\n useMemo,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n mixed,\n object,\n string,\n} from 'yup';\nimport type {\n CaseDbApiPermission,\n CaseDbRegionRelation,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbCommandName,\n CaseDbGeoApi,\n CaseDbRegionRelationType,\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 { CASEDB_QUERY_KEY } from '../../constants/query';\nimport {\n useRegionMapQuery,\n useRegionOptionsQuery,\n} from '../../dataHooks/useRegionQuery';\nimport { useRegionRelationTypeOptionsQuery } from '../../dataHooks/useRegionRelationTypeQuery';\n\n\ntype FormFields = OmitWithMetaData<CaseDbRegionRelation, 'from_region' | 'to_region'>;\n\nexport const RegionRelationsAdminPage = () => {\n const { t } = useTranslation();\n\n const regionMapQuery = useRegionMapQuery();\n const regionOptionsQuery = useRegionOptionsQuery();\n const regionRelationTypeOptionsQuery = useRegionRelationTypeOptionsQuery();\n\n const loadables = useArray([regionOptionsQuery, regionMapQuery, regionRelationTypeOptionsQuery]);\n\n const fetchAll = useCallback(async (signal: AbortSignal) => {\n return (await CaseDbGeoApi.getInstance().regionRelationsGetAll(null, null, { signal }))?.data;\n }, []);\n\n const deleteOne = useCallback(async (item: CaseDbRegionRelation) => {\n return await CaseDbGeoApi.getInstance().regionRelationsDeleteOne(item.id);\n }, []);\n\n const updateOne = useCallback(async (variables: FormFields, item: CaseDbRegionRelation) => {\n return (await CaseDbGeoApi.getInstance().regionRelationsPutOne(item.id, { id: item.id, ...variables })).data;\n }, []);\n\n const createOne = useCallback(async (variables: FormFields) => {\n return (await CaseDbGeoApi.getInstance().regionRelationsPostOne(variables)).data;\n }, []);\n\n const getName = useCallback((item: CaseDbRegionRelation) => {\n const fromRegion = regionMapQuery.map.get(item.from_region_id);\n const toRegion = regionMapQuery.map.get(item.to_region_id);\n if (fromRegion && toRegion) {\n return `${fromRegion.name} -> ${toRegion.name}`;\n }\n return `${item.from_region_id} -> ${item.to_region_id}`;\n }, [regionMapQuery.map]);\n\n const schema = useMemo(() => {\n return object<FormFields>().shape({\n from_region_id: string().uuid4().required(),\n relation: mixed<CaseDbRegionRelationType>().required().oneOf(Object.values(CaseDbRegionRelationType)),\n to_region_id: string().uuid4().required(),\n });\n }, []);\n\n const formFieldDefinitions = useMemo<FormFieldDefinition<FormFields>[]>(() => {\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`From Region`,\n loading: regionOptionsQuery.isLoading,\n name: 'from_region_id',\n options: regionOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`To Region`,\n loading: regionOptionsQuery.isLoading,\n name: 'to_region_id',\n options: regionOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE,\n label: t`Relation`,\n loading: regionRelationTypeOptionsQuery.isLoading,\n name: 'relation',\n options: regionRelationTypeOptionsQuery.options,\n } as const satisfies FormFieldDefinition<FormFields>,\n ] as const;\n }, [regionOptionsQuery.isLoading, regionOptionsQuery.options, regionRelationTypeOptionsQuery.isLoading, regionRelationTypeOptionsQuery.options, t]);\n\n const tableColumns = useMemo((): TableColumn<CaseDbRegionRelation>[] => {\n return [\n TableUtil.createOptionsColumn<CaseDbRegionRelation>({ id: 'from_region_id', name: t`From Region`, options: regionOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbRegionRelation>({ id: 'to_region_id', name: t`To Region`, options: regionOptionsQuery.options }),\n TableUtil.createOptionsColumn<CaseDbRegionRelation>({ id: 'relation', name: t`Relation`, options: regionRelationTypeOptionsQuery.options }),\n ];\n }, [regionOptionsQuery.options, regionRelationTypeOptionsQuery.options, t]);\n\n\n return (\n <CrudPage<FormFields, CaseDbRegionRelation, CaseDbRegionRelation, CASEDB_QUERY_KEY, CaseDbApiPermission>\n createItemDialogTitle={t`Create new region relation`}\n createOne={createOne}\n crudCommandType={CaseDbCommandName.RegionRelationCrudCommand}\n defaultSortByField={'from_region_id'}\n defaultSortDirection={'asc'}\n deleteOne={deleteOne}\n fetchAll={fetchAll}\n formFieldDefinitions={formFieldDefinitions}\n getName={getName}\n itemName={t`Region relation`}\n loadables={loadables}\n resourceQueryKeyBase={CASEDB_QUERY_KEY.REGION_RELATIONS}\n schema={schema}\n tableColumns={tableColumns}\n testIdAttributes={TestIdUtil.createAttributes('RegionRelationsAdminPage')}\n title={t`Region Relations`}\n updateOne={updateOne}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;AAsCA,IAAa,UAAiC;CAC5C,IAAM,EAAE,SAAM,EAAe,GAEvB,IAAiB,EAAkB,GACnC,IAAqB,EAAsB,GAC3C,IAAiC,EAAkC,GAEnE,IAAY,EAAS;EAAC;EAAoB;EAAgB;CAA8B,CAAC,GAEzF,IAAW,EAAY,OAAO,OAC1B,MAAM,EAAa,YAAY,CAAC,CAAC,sBAAsB,MAAM,MAAM,EAAE,UAAO,CAAC,EAAA,EAAI,MACxF,CAAC,CAAC,GAEC,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;EAAE,IAAI,EAAK;EAAI,GAAG;CAAU,CAAC,EAAA,CAAG,MACvG,CAAC,CAAC,GAEC,IAAY,EAAY,OAAO,OAC3B,MAAM,EAAa,YAAY,CAAC,CAAC,uBAAuB,CAAS,EAAA,CAAG,MAC3E,CAAC,CAAC,GAEC,IAAU,GAAa,MAA+B;EAC1D,IAAM,IAAa,EAAe,IAAI,IAAI,EAAK,cAAc,GACvD,IAAW,EAAe,IAAI,IAAI,EAAK,YAAY;EAIzD,OAHI,KAAc,IACT,GAAG,EAAW,KAAK,MAAM,EAAS,SAEpC,GAAG,EAAK,eAAe,MAAM,EAAK;CAC3C,GAAG,CAAC,EAAe,GAAG,CAAC,GAEjB,IAAS,QACN,EAAmB,CAAC,CAAC,MAAM;EAChC,gBAAgB,EAAO,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS;EAC1C,UAAU,EAAgC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,OAAO,OAAO,CAAwB,CAAC;EACpG,cAAc,EAAO,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS;CAC1C,CAAC,GACA,CAAC,CAAC,GAEC,IAAuB,QACpB;EACL;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,SAAS,EAAmB;GAC5B,MAAM;GACN,SAAS,EAAmB;EAC9B;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,SAAS,EAAmB;GAC5B,MAAM;GACN,SAAS,EAAmB;EAC9B;EACA;GACE,YAAY,EAA2B;GACvC,OAAO,CAAC;GACR,SAAS,EAA+B;GACxC,MAAM;GACN,SAAS,EAA+B;EAC1C;CACF,GACC;EAAC,EAAmB;EAAW,EAAmB;EAAS,EAA+B;EAAW,EAA+B;EAAS;CAAC,CAAC,GAE5I,IAAe,QACZ;EACL,EAAU,oBAA0C;GAAE,IAAI;GAAkB,MAAM,CAAC;GAAe,SAAS,EAAmB;EAAQ,CAAC;EACvI,EAAU,oBAA0C;GAAE,IAAI;GAAgB,MAAM,CAAC;GAAa,SAAS,EAAmB;EAAQ,CAAC;EACnI,EAAU,oBAA0C;GAAE,IAAI;GAAY,MAAM,CAAC;GAAY,SAAS,EAA+B;EAAQ,CAAC;CAC5I,GACC;EAAC,EAAmB;EAAS,EAA+B;EAAS;CAAC,CAAC;CAG1E,OACE,kBAAC,GAAD;EACE,uBAAuB,CAAC;EACb;EACX,iBAAiB,EAAkB;EACnC,oBAAoB;EACpB,sBAAsB;EACX;EACD;EACY;EACb;EACT,UAAU,CAAC;EACA;EACX,sBAAsB,EAAiB;EAC/B;EACM;EACd,kBAAkB,EAAW,iBAAiB,0BAA0B;EACxE,OAAO,CAAC;EACG;CACZ,CAAA;AAEL"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { CASEDB_QUERY_KEY as e } from "../../constants/query.js";
|
|
2
|
-
import { t } from "../../_chunks/chunk-
|
|
2
|
+
import { t } from "../../_chunks/chunk-BV7QT456.js";
|
|
3
3
|
import { useRegionSetsMapQuery as n } from "../../dataHooks/useRegionSetsQuery/index.js";
|
|
4
4
|
import { number as r, object as i, string as a } from "yup";
|
|
5
5
|
import { CaseDbCommandName as o, CaseDbGeoApi as s } from "@gen-epix/api-casedb";
|
|
6
|
-
import { FORM_FIELD_DEFINITION_TYPE as c } from "@gen-epix/ui-form/models/form";
|
|
6
|
+
import { FORM_FIELD_DEFINITION_TYPE as c } from "@gen-epix/ui-core-form/models/form";
|
|
7
7
|
import { useCallback as l, useMemo as u } from "react";
|
|
8
8
|
import { useTranslation as d } from "react-i18next";
|
|
9
9
|
import { jsx as f } from "react/jsx-runtime";
|
|
10
10
|
import { useArray as p } from "@gen-epix/ui-core/hooks/useArray";
|
|
11
|
-
import { TableUtil as m } from "@gen-epix/ui/utils/TableUtil";
|
|
11
|
+
import { TableUtil as m } from "@gen-epix/ui-client-common/utils/TableUtil";
|
|
12
12
|
import { TestIdUtil as h } from "@gen-epix/ui-core/utils/TestIdUtil";
|
|
13
|
-
import { CrudPage as g } from "@gen-epix/ui/pages/CrudPage";
|
|
13
|
+
import { CrudPage as g } from "@gen-epix/ui-client-common/pages/CrudPage";
|
|
14
14
|
//#region src/pages/RegionSetShapesAdminPage/RegionSetShapesAdminPage.tsx
|
|
15
15
|
var _ = () => {
|
|
16
16
|
let { regionSetId: _ } = t(), { t: v } = d(), y = n(), b = p([y]), x = l(async (e) => (await s.getInstance().regionSetShapesGetAll(null, null, { signal: e }))?.data, []), S = l((e) => e.filter((e) => e.region_set_id === _), [_]), C = l(async (e) => await s.getInstance().regionSetShapesDeleteOne(e.id), []), w = l(async (e, t) => (await s.getInstance().regionSetShapesPutOne(t.id, {
|