@gen-epix/ui-client-casedb 4.0.0
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/LICENSE +287 -0
- package/README.md +101 -0
- package/dist/@types/mui.d.ts +12 -0
- package/dist/@types/ui-casedb.d.ts +3 -0
- package/dist/@types/vite-env.d.ts +3 -0
- package/dist/_chunks/AddCasesToEventDialog.js +246 -0
- package/dist/_chunks/AddCasesToEventDialog.js.map +1 -0
- package/dist/_chunks/CaseContentForm.js +43 -0
- package/dist/_chunks/CaseContentForm.js.map +1 -0
- package/dist/_chunks/CaseDbDownloadUtil.js +2307 -0
- package/dist/_chunks/CaseDbDownloadUtil.js.map +1 -0
- package/dist/_chunks/CaseInfoDialog.js +509 -0
- package/dist/_chunks/CaseInfoDialog.js.map +1 -0
- package/dist/_chunks/CaseSetInfoDialog.js +479 -0
- package/dist/_chunks/CaseSetInfoDialog.js.map +1 -0
- package/dist/_chunks/CaseTypeInfoDialog.js +470 -0
- package/dist/_chunks/CaseTypeInfoDialog.js.map +1 -0
- package/dist/_chunks/CasesAlreadyInCaseSetWarning.js +123 -0
- package/dist/_chunks/CasesAlreadyInCaseSetWarning.js.map +1 -0
- package/dist/_chunks/CollectionIcon.js +18 -0
- package/dist/_chunks/CollectionIcon.js.map +1 -0
- package/dist/_chunks/CompletCaseTypeLoader.js +53 -0
- package/dist/_chunks/CompletCaseTypeLoader.js.map +1 -0
- package/dist/_chunks/CreateEventDialogSuccessNotificationMessage.js +18 -0
- package/dist/_chunks/CreateEventDialogSuccessNotificationMessage.js.map +1 -0
- package/dist/_chunks/CustomTabPanel.js +21 -0
- package/dist/_chunks/CustomTabPanel.js.map +1 -0
- package/dist/_chunks/Dashboard.js +2582 -0
- package/dist/_chunks/Dashboard.js.map +1 -0
- package/dist/_chunks/DashboardStoreLoader.js +67 -0
- package/dist/_chunks/DashboardStoreLoader.js.map +1 -0
- package/dist/_chunks/DataCollectionAccessInfo.js +66 -0
- package/dist/_chunks/DataCollectionAccessInfo.js.map +1 -0
- package/dist/_chunks/EpiCurveUtil.js +378 -0
- package/dist/_chunks/EpiCurveUtil.js.map +1 -0
- package/dist/_chunks/EpiCurveWidget.js +570 -0
- package/dist/_chunks/EpiCurveWidget.js.map +1 -0
- package/dist/_chunks/FilterUtil.js +1537 -0
- package/dist/_chunks/FilterUtil.js.map +1 -0
- package/dist/_chunks/FindSimilarCasesDialog.js +439 -0
- package/dist/_chunks/FindSimilarCasesDialog.js.map +1 -0
- package/dist/_chunks/FindSimilarCasesUtil.js +100 -0
- package/dist/_chunks/FindSimilarCasesUtil.js.map +1 -0
- package/dist/_chunks/HomePageTrends.js +276 -0
- package/dist/_chunks/HomePageTrends.js.map +1 -0
- package/dist/_chunks/LegendaItem.js +325 -0
- package/dist/_chunks/LegendaItem.js.map +1 -0
- package/dist/_chunks/LineListWidget.js +702 -0
- package/dist/_chunks/LineListWidget.js.map +1 -0
- package/dist/_chunks/PanelSeparator.js +1676 -0
- package/dist/_chunks/PanelSeparator.js.map +1 -0
- package/dist/_chunks/Upload.js +1506 -0
- package/dist/_chunks/Upload.js.map +1 -0
- package/dist/_chunks/UploadUtil.js +1976 -0
- package/dist/_chunks/UploadUtil.js.map +1 -0
- package/dist/_chunks/UserRightsDialog.js +152 -0
- package/dist/_chunks/UserRightsDialog.js.map +1 -0
- package/dist/_chunks/_MapCache.js +274 -0
- package/dist/_chunks/_MapCache.js.map +1 -0
- package/dist/_chunks/_Set.js +9 -0
- package/dist/_chunks/_Set.js.map +1 -0
- package/dist/_chunks/_arrayIncludesWith.js +42 -0
- package/dist/_chunks/_arrayIncludesWith.js.map +1 -0
- package/dist/_chunks/_baseClone.js +262 -0
- package/dist/_chunks/_baseClone.js.map +1 -0
- package/dist/_chunks/_baseFlatten.js +26 -0
- package/dist/_chunks/_baseFlatten.js.map +1 -0
- package/dist/_chunks/_baseGet.js +246 -0
- package/dist/_chunks/_baseGet.js.map +1 -0
- package/dist/_chunks/_baseIteratee.js +246 -0
- package/dist/_chunks/_baseIteratee.js.map +1 -0
- package/dist/_chunks/_cacheHas.js +29 -0
- package/dist/_chunks/_cacheHas.js.map +1 -0
- package/dist/_chunks/_defineProperty.js +15 -0
- package/dist/_chunks/_defineProperty.js.map +1 -0
- package/dist/_chunks/_setToArray.js +15 -0
- package/dist/_chunks/_setToArray.js.map +1 -0
- package/dist/_chunks/_setToString.js +64 -0
- package/dist/_chunks/_setToString.js.map +1 -0
- package/dist/_chunks/chunk-KS7C4IRE.js +1327 -0
- package/dist/_chunks/chunk-KS7C4IRE.js.map +1 -0
- package/dist/_chunks/cloneDeep.js +119 -0
- package/dist/_chunks/cloneDeep.js.map +1 -0
- package/dist/_chunks/dashboardStore.js +743 -0
- package/dist/_chunks/dashboardStore.js.map +1 -0
- package/dist/_chunks/eachYearOfInterval.js +104 -0
- package/dist/_chunks/eachYearOfInterval.js.map +1 -0
- package/dist/_chunks/esm.js +46335 -0
- package/dist/_chunks/esm.js.map +1 -0
- package/dist/_chunks/format.js +504 -0
- package/dist/_chunks/format.js.map +1 -0
- package/dist/_chunks/hasIn.js +34 -0
- package/dist/_chunks/hasIn.js.map +1 -0
- package/dist/_chunks/index.esm.js +1342 -0
- package/dist/_chunks/index.esm.js.map +1 -0
- package/dist/_chunks/index.module.js +72 -0
- package/dist/_chunks/index.module.js.map +1 -0
- package/dist/_chunks/intersection.js +58 -0
- package/dist/_chunks/intersection.js.map +1 -0
- package/dist/_chunks/isArguments.js +27 -0
- package/dist/_chunks/isArguments.js.map +1 -0
- package/dist/_chunks/isArray.js +9 -0
- package/dist/_chunks/isArray.js.map +1 -0
- package/dist/_chunks/isArrayLike.js +30 -0
- package/dist/_chunks/isArrayLike.js.map +1 -0
- package/dist/_chunks/isObjectLike.js +18 -0
- package/dist/_chunks/isObjectLike.js.map +1 -0
- package/dist/_chunks/isValid.js +14 -0
- package/dist/_chunks/isValid.js.map +1 -0
- package/dist/_chunks/last.js +13 -0
- package/dist/_chunks/last.js.map +1 -0
- package/dist/_chunks/noop.js +10 -0
- package/dist/_chunks/noop.js.map +1 -0
- package/dist/_chunks/omit.js +81 -0
- package/dist/_chunks/omit.js.map +1 -0
- package/dist/_chunks/parseISO.js +117 -0
- package/dist/_chunks/parseISO.js.map +1 -0
- package/dist/_chunks/protectedTokens.js +630 -0
- package/dist/_chunks/protectedTokens.js.map +1 -0
- package/dist/_chunks/react.js +11 -0
- package/dist/_chunks/react.js.map +1 -0
- package/dist/_chunks/round.js +64 -0
- package/dist/_chunks/round.js.map +1 -0
- package/dist/_chunks/shallow.js +31 -0
- package/dist/_chunks/shallow.js.map +1 -0
- package/dist/_chunks/sync.js +3796 -0
- package/dist/_chunks/sync.js.map +1 -0
- package/dist/_chunks/toDate.js +18 -0
- package/dist/_chunks/toDate.js.map +1 -0
- package/dist/_chunks/toString.js +31 -0
- package/dist/_chunks/toString.js.map +1 -0
- package/dist/_chunks/useUnit.js +30 -0
- package/dist/_chunks/useUnit.js.map +1 -0
- package/dist/_chunks/userProfileStoreContext.js +7 -0
- package/dist/_chunks/userProfileStoreContext.js.map +1 -0
- package/dist/_chunks/vanilla.js +20 -0
- package/dist/_chunks/vanilla.js.map +1 -0
- package/dist/_chunks/yup.js +73 -0
- package/dist/_chunks/yup.js.map +1 -0
- package/dist/classes/errors/UploadError.d.ts +5 -0
- package/dist/classes/errors/index.d.ts +1 -0
- package/dist/classes/errors/index.js +11 -0
- package/dist/classes/errors/index.js.map +1 -0
- package/dist/classes/filters/SelectionFilter.d.ts +11 -0
- package/dist/classes/filters/TreeFilter.d.ts +11 -0
- package/dist/classes/services/DataService/DataService.d.ts +13 -0
- package/dist/classes/services/DataService/index.d.ts +1 -0
- package/dist/classes/services/DataService/index.js +83 -0
- package/dist/classes/services/DataService/index.js.map +1 -0
- package/dist/classes/services/EventBusService/EventBusService.d.ts +49 -0
- package/dist/classes/services/EventBusService/index.d.ts +1 -0
- package/dist/classes/services/EventBusService/index.js +16 -0
- package/dist/classes/services/EventBusService/index.js.map +1 -0
- package/dist/classes/services/LineListService/LineListCaseSetMembersService/LineListCaseSetMembersService.d.ts +9 -0
- package/dist/classes/services/LineListService/LineListCaseSetMembersService/index.d.ts +1 -0
- package/dist/classes/services/LineListService/LineListCaseSetMembersService/index.js +27 -0
- package/dist/classes/services/LineListService/LineListCaseSetMembersService/index.js.map +1 -0
- package/dist/classes/services/LineListService/LineListIsOwnCaseService/LineListIsOwnCaseService.d.ts +9 -0
- package/dist/classes/services/LineListService/LineListIsOwnCaseService/index.d.ts +1 -0
- package/dist/classes/services/LineListService/LineListIsOwnCaseService/index.js +30 -0
- package/dist/classes/services/LineListService/LineListIsOwnCaseService/index.js.map +1 -0
- package/dist/classes/services/LineListService/LineListServiceAbstract/LineListServiceAbstract.d.ts +11 -0
- package/dist/classes/services/LineListService/LineListServiceAbstract/index.d.ts +1 -0
- package/dist/classes/services/LineListService/LineListServiceAbstract/index.js +55 -0
- package/dist/classes/services/LineListService/LineListServiceAbstract/index.js.map +1 -0
- package/dist/components/app/CaseDbApp/CaseDbApp.d.ts +1 -0
- package/dist/components/app/CaseDbApp/index.d.ts +1 -0
- package/dist/components/app/CaseDbApp/index.js +14 -0
- package/dist/components/app/CaseDbApp/index.js.map +1 -0
- package/dist/components/form/fields/ArrangementEditor/ArrangementEditor.d.ts +17 -0
- package/dist/components/form/fields/ArrangementEditor/index.d.ts +1 -0
- package/dist/components/form/fields/ArrangementEditor/index.js +130 -0
- package/dist/components/form/fields/ArrangementEditor/index.js.map +1 -0
- package/dist/components/ui/AddCasesToEventDialog/AddCasesToEventDialog.d.ts +10 -0
- package/dist/components/ui/AddCasesToEventDialog/AddCasesToEventDialogSuccessNotificationMessage.d.ts +6 -0
- package/dist/components/ui/AddCasesToEventDialog/index.d.ts +1 -0
- package/dist/components/ui/AddCasesToEventDialog/index.js +2 -0
- package/dist/components/ui/CaseContentForm/CaseContentForm.d.ts +10 -0
- package/dist/components/ui/CaseContentForm/index.d.ts +1 -0
- package/dist/components/ui/CaseContentForm/index.js +2 -0
- package/dist/components/ui/CaseContentFormDialog/CaseContentFormDialog.d.ts +9 -0
- package/dist/components/ui/CaseContentFormDialog/index.d.ts +1 -0
- package/dist/components/ui/CaseContentFormDialog/index.js +57 -0
- package/dist/components/ui/CaseContentFormDialog/index.js.map +1 -0
- package/dist/components/ui/CaseInfoDialog/CaseCaseSetInfo.d.ts +6 -0
- package/dist/components/ui/CaseInfoDialog/CaseContent.d.ts +6 -0
- package/dist/components/ui/CaseInfoDialog/CaseInfoDialog.d.ts +15 -0
- package/dist/components/ui/CaseInfoDialog/CaseInfoForm.d.ts +10 -0
- package/dist/components/ui/CaseInfoDialog/CaseSharingForm.d.ts +9 -0
- package/dist/components/ui/CaseInfoDialog/CaseSharingInfo.d.ts +3 -0
- package/dist/components/ui/CaseInfoDialog/ReadOnlyCaseContent.d.ts +6 -0
- package/dist/components/ui/CaseInfoDialog/index.d.ts +1 -0
- package/dist/components/ui/CaseInfoDialog/index.js +2 -0
- package/dist/components/ui/CaseSetInfoDialog/CaseSetContent.d.ts +6 -0
- package/dist/components/ui/CaseSetInfoDialog/CaseSetDescription.d.ts +6 -0
- package/dist/components/ui/CaseSetInfoDialog/CaseSetForm.d.ts +8 -0
- package/dist/components/ui/CaseSetInfoDialog/CaseSetInfoDialog.d.ts +10 -0
- package/dist/components/ui/CaseSetInfoDialog/CaseSetSharingForm.d.ts +10 -0
- package/dist/components/ui/CaseSetInfoDialog/CaseSetSharingInfo.d.ts +3 -0
- package/dist/components/ui/CaseSetInfoDialog/index.d.ts +1 -0
- package/dist/components/ui/CaseSetInfoDialog/index.js +2 -0
- package/dist/components/ui/CaseSummary/CaseSummary.d.ts +5 -0
- package/dist/components/ui/CaseSummary/index.d.ts +1 -0
- package/dist/components/ui/CaseSummary/index.js +92 -0
- package/dist/components/ui/CaseSummary/index.js.map +1 -0
- package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoAccessRights.d.ts +5 -0
- package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoColAccessRights.d.ts +4 -0
- package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoData.d.ts +5 -0
- package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoDialog.d.ts +7 -0
- package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoDialogContent.d.ts +3 -0
- package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoDialogWithLoader.d.ts +8 -0
- package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoRegions.d.ts +5 -0
- package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoTrees.d.ts +5 -0
- package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoValues.d.ts +5 -0
- package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoVariableDetails.d.ts +6 -0
- package/dist/components/ui/CaseTypeInfoDialog/index.d.ts +10 -0
- package/dist/components/ui/CaseTypeInfoDialog/index.js +2 -0
- package/dist/components/ui/CasesAlreadyInCaseSetWarning/CasesAlreadyInCaseSetWarning.d.ts +5 -0
- package/dist/components/ui/CasesAlreadyInCaseSetWarning/CasesAlreadyInCaseSetWarningCaseSetLink.d.ts +5 -0
- package/dist/components/ui/CasesAlreadyInCaseSetWarning/index.d.ts +1 -0
- package/dist/components/ui/CasesAlreadyInCaseSetWarning/index.js +2 -0
- package/dist/components/ui/CompletCaseTypeLoader/CompletCaseTypeLoader.d.ts +7 -0
- package/dist/components/ui/CompletCaseTypeLoader/index.d.ts +1 -0
- package/dist/components/ui/CompletCaseTypeLoader/index.js +2 -0
- package/dist/components/ui/CompletCaseTypeLoader/withEpiCompleteCaseTypeLoader.d.ts +4 -0
- package/dist/components/ui/ContextMenu/ContextMenu.d.ts +20 -0
- package/dist/components/ui/ContextMenu/index.d.ts +1 -0
- package/dist/components/ui/ContextMenu/index.js +96 -0
- package/dist/components/ui/ContextMenu/index.js.map +1 -0
- package/dist/components/ui/CreateEventDialog/CreateEventDialog.d.ts +10 -0
- package/dist/components/ui/CreateEventDialog/CreateEventDialogSuccessNotificationMessage.d.ts +6 -0
- package/dist/components/ui/CreateEventDialog/index.d.ts +1 -0
- package/dist/components/ui/CreateEventDialog/index.js +278 -0
- package/dist/components/ui/CreateEventDialog/index.js.map +1 -0
- package/dist/components/ui/CustomTabPanel/CustomTabPanel.d.ts +6 -0
- package/dist/components/ui/CustomTabPanel/index.d.ts +1 -0
- package/dist/components/ui/CustomTabPanel/index.js +2 -0
- package/dist/components/ui/Dashboard/Dashboard.d.ts +1 -0
- package/dist/components/ui/Dashboard/DashboardContent.d.ts +6 -0
- package/dist/components/ui/Dashboard/DashboardDownloadSidebarItem.d.ts +6 -0
- package/dist/components/ui/Dashboard/DashboardGeneralSettingsForm.d.ts +1 -0
- package/dist/components/ui/Dashboard/DashboardLayoutRenderer.d.ts +9 -0
- package/dist/components/ui/Dashboard/DashboardLayoutSettingsForm.d.ts +4 -0
- package/dist/components/ui/Dashboard/DashboardSearch.d.ts +1 -0
- package/dist/components/ui/Dashboard/DashboardSearchSettings.d.ts +10 -0
- package/dist/components/ui/Dashboard/DashboardSettingsSidebarItem.d.ts +8 -0
- package/dist/components/ui/Dashboard/DashboardWidget.d.ts +12 -0
- package/dist/components/ui/Dashboard/DashboardWidgetPlaceHolder.d.ts +1 -0
- package/dist/components/ui/Dashboard/DashboardWidgetSettingsForm.d.ts +4 -0
- package/dist/components/ui/Dashboard/DashboardZoneContext.d.ts +1 -0
- package/dist/components/ui/Dashboard/context/DashboardContext.d.ts +12 -0
- package/dist/components/ui/Dashboard/context/DashboardContextProvider.d.ts +6 -0
- package/dist/components/ui/Dashboard/index.d.ts +2 -0
- package/dist/components/ui/Dashboard/index.js +2 -0
- package/dist/components/ui/DashboardEditCases/DashboardEditCases.d.ts +6 -0
- package/dist/components/ui/DashboardEditCases/index.d.ts +1 -0
- package/dist/components/ui/DashboardEditCases/index.js +70 -0
- package/dist/components/ui/DashboardEditCases/index.js.map +1 -0
- package/dist/components/ui/DashboardStoreLoader/DashboardStoreLoader.d.ts +7 -0
- package/dist/components/ui/DashboardStoreLoader/DashboardStoreLoaderContent.d.ts +8 -0
- package/dist/components/ui/DashboardStoreLoader/index.d.ts +2 -0
- package/dist/components/ui/DashboardStoreLoader/index.js +2 -0
- package/dist/components/ui/DashboardStoreLoader/withEpiDashboardStore.d.ts +4 -0
- package/dist/components/ui/DataCollectionAccessInfo/DataCollectionAccessInfo.d.ts +1 -0
- package/dist/components/ui/DataCollectionAccessInfo/index.d.ts +1 -0
- package/dist/components/ui/DataCollectionAccessInfo/index.js +2 -0
- package/dist/components/ui/EpiCurveWidget/EpiCurveBarChart.d.ts +21 -0
- package/dist/components/ui/EpiCurveWidget/EpiCurveStackedAreaChart.d.ts +22 -0
- package/dist/components/ui/EpiCurveWidget/EpiCurveWidget.d.ts +2 -0
- package/dist/components/ui/EpiCurveWidget/index.d.ts +1 -0
- package/dist/components/ui/EpiCurveWidget/index.js +2 -0
- package/dist/components/ui/FileSelector/FileSelector.d.ts +7 -0
- package/dist/components/ui/FileSelector/index.d.ts +1 -0
- package/dist/components/ui/FileSelector/index.js +206 -0
- package/dist/components/ui/FileSelector/index.js.map +1 -0
- package/dist/components/ui/FindSimilarCasesDialog/FindSimilarCasesDialog.d.ts +11 -0
- package/dist/components/ui/FindSimilarCasesDialog/FindSimilarCasesDialogDateRangeChart.d.ts +11 -0
- package/dist/components/ui/FindSimilarCasesDialog/index.d.ts +1 -0
- package/dist/components/ui/FindSimilarCasesDialog/index.js +2 -0
- package/dist/components/ui/Grouping/Grouping.d.ts +1 -0
- package/dist/components/ui/Grouping/index.d.ts +1 -0
- package/dist/components/ui/Grouping/index.js +102 -0
- package/dist/components/ui/Grouping/index.js.map +1 -0
- package/dist/components/ui/HistogramWidget/HistogramWidget.d.ts +1 -0
- package/dist/components/ui/HistogramWidget/index.d.ts +1 -0
- package/dist/components/ui/HistogramWidget/index.js +333 -0
- package/dist/components/ui/HistogramWidget/index.js.map +1 -0
- package/dist/components/ui/HomePageTrends/HomePageTrendCard.d.ts +9 -0
- package/dist/components/ui/HomePageTrends/HomePageTrends.d.ts +4 -0
- package/dist/components/ui/HomePageTrends/index.d.ts +1 -0
- package/dist/components/ui/HomePageTrends/index.js +2 -0
- package/dist/components/ui/LegendaItem/LegendaItem.d.ts +10 -0
- package/dist/components/ui/LegendaItem/index.d.ts +1 -0
- package/dist/components/ui/LegendaItem/index.js +2 -0
- package/dist/components/ui/LineListWidget/LineListWidget.d.ts +1 -0
- package/dist/components/ui/LineListWidget/LineListWidgetIsInEventCell.d.ts +6 -0
- package/dist/components/ui/LineListWidget/LineListWidgetIsOwnCaseCell.d.ts +6 -0
- package/dist/components/ui/LineListWidget/LineListWidgetPrimaryMenu.d.ts +5 -0
- package/dist/components/ui/LineListWidget/LineListWidgetSecondaryMenu.d.ts +1 -0
- package/dist/components/ui/LineListWidget/LineListWidgetTitle.d.ts +1 -0
- package/dist/components/ui/LineListWidget/index.d.ts +1 -0
- package/dist/components/ui/LineListWidget/index.js +2 -0
- package/dist/components/ui/LineListWidget/useEpiLineListWidgetEmitDownloadOptions.d.ts +1 -0
- package/dist/components/ui/MapWidget/MapWidget.d.ts +1 -0
- package/dist/components/ui/MapWidget/index.d.ts +1 -0
- package/dist/components/ui/MapWidget/index.js +302 -0
- package/dist/components/ui/MapWidget/index.js.map +1 -0
- package/dist/components/ui/PanelSeparator/PanelSeparatorHorizontal.d.ts +2 -0
- package/dist/components/ui/PanelSeparator/PanelSeparatorVertical.d.ts +2 -0
- package/dist/components/ui/PanelSeparator/index.d.ts +2 -0
- package/dist/components/ui/PanelSeparator/index.js +2 -0
- package/dist/components/ui/RemoveCasesFromEventDialog/RemoveCasesFromEventDialog.d.ts +10 -0
- package/dist/components/ui/RemoveCasesFromEventDialog/index.d.ts +1 -0
- package/dist/components/ui/RemoveCasesFromEventDialog/index.js +111 -0
- package/dist/components/ui/RemoveCasesFromEventDialog/index.js.map +1 -0
- package/dist/components/ui/RemoveFindSimilarCasesResultDialog/RemoveFindSimilarCasesResultDialog.d.ts +9 -0
- package/dist/components/ui/SequenceDownloadDialog/SequenceDownloadDialog.d.ts +10 -0
- package/dist/components/ui/SequenceDownloadDialog/index.d.ts +1 -0
- package/dist/components/ui/SequenceDownloadDialog/index.js +89 -0
- package/dist/components/ui/SequenceDownloadDialog/index.js.map +1 -0
- package/dist/components/ui/TreeDescription/TreeDescription.d.ts +5 -0
- package/dist/components/ui/TreeDescription/index.d.ts +1 -0
- package/dist/components/ui/TreeDescription/index.js +40 -0
- package/dist/components/ui/TreeDescription/index.js.map +1 -0
- package/dist/components/ui/TreeWidget/TreeWidget.d.ts +1 -0
- package/dist/components/ui/TreeWidget/index.d.ts +1 -0
- package/dist/components/ui/TreeWidget/index.js +404 -0
- package/dist/components/ui/TreeWidget/index.js.map +1 -0
- package/dist/components/ui/Upload/Upload.d.ts +1 -0
- package/dist/components/ui/Upload/UploadCaseResultTable.d.ts +18 -0
- package/dist/components/ui/Upload/UploadCreateCases.d.ts +1 -0
- package/dist/components/ui/Upload/UploadEditColumnValuesDialog.d.ts +12 -0
- package/dist/components/ui/Upload/UploadMapColumns.d.ts +1 -0
- package/dist/components/ui/Upload/UploadMapSequences.d.ts +1 -0
- package/dist/components/ui/Upload/UploadNavigation.d.ts +10 -0
- package/dist/components/ui/Upload/UploadPreview.d.ts +4 -0
- package/dist/components/ui/Upload/UploadPreviewNavigation.d.ts +5 -0
- package/dist/components/ui/Upload/UploadSelectFile.d.ts +1 -0
- package/dist/components/ui/Upload/UploadSelectSequenceFiles.d.ts +1 -0
- package/dist/components/ui/Upload/index.d.ts +1 -0
- package/dist/components/ui/Upload/index.js +2 -0
- package/dist/components/ui/UserRightsDialog/UserRightsDialog.d.ts +9 -0
- package/dist/components/ui/UserRightsDialog/UserRightsDialogCaseAccessPolicy.d.ts +5 -0
- package/dist/components/ui/UserRightsDialog/index.d.ts +1 -0
- package/dist/components/ui/UserRightsDialog/index.js +2 -0
- package/dist/components/ui/UsersEffectiveRightsDetailsDialog/UsersEffectiveRightsDetailsDialog.d.ts +13 -0
- package/dist/components/ui/UsersEffectiveRightsDetailsDialog/index.d.ts +1 -0
- package/dist/components/ui/UsersEffectiveRightsDetailsDialog/index.js +373 -0
- package/dist/components/ui/UsersEffectiveRightsDetailsDialog/index.js.map +1 -0
- package/dist/components/ui/Warning/Warning.d.ts +4 -0
- package/dist/components/ui/Warning/index.d.ts +1 -0
- package/dist/components/ui/Warning/index.js +29 -0
- package/dist/components/ui/Warning/index.js.map +1 -0
- package/dist/components/ui/WidgetHeaderIconButton/WidgetHeaderIconButton.d.ts +5 -0
- package/dist/components/ui/WidgetHeaderIconButton/index.d.ts +1 -0
- package/dist/components/ui/WidgetHeaderIconButton/index.js +24 -0
- package/dist/components/ui/WidgetHeaderIconButton/index.js.map +1 -0
- package/dist/components/ui/WidgetMenu/WidgetMenu.d.ts +6 -0
- package/dist/components/ui/WidgetMenu/index.d.ts +1 -0
- package/dist/components/ui/WidgetMenu/index.js +26 -0
- package/dist/components/ui/WidgetMenu/index.js.map +1 -0
- package/dist/components/ui/WidgetUnavailable/WidgetUnavailable.d.ts +6 -0
- package/dist/components/ui/WidgetUnavailable/index.d.ts +1 -0
- package/dist/components/ui/WidgetUnavailable/index.js +18 -0
- package/dist/components/ui/WidgetUnavailable/index.js.map +1 -0
- package/dist/constants/dashboard.d.ts +9 -0
- package/dist/constants/dashboard.js +14 -0
- package/dist/constants/dashboard.js.map +1 -0
- package/dist/constants/query.d.ts +62 -0
- package/dist/constants/query.js +163 -0
- package/dist/constants/query.js.map +1 -0
- package/dist/context/caseAbac/CaseAbacContext.d.ts +14 -0
- package/dist/context/caseAbac/CaseAbacContextProvider.d.ts +6 -0
- package/dist/context/caseAbac/index.d.ts +3 -0
- package/dist/context/caseAbac/useCaseAbacContext.d.ts +2 -0
- package/dist/context/caseTypeAbac/CaseTypeAbacContext.d.ts +14 -0
- package/dist/context/caseTypeAbac/CaseTypeAbacContextProvider.d.ts +6 -0
- package/dist/context/caseTypeAbac/index.d.ts +3 -0
- package/dist/context/caseTypeAbac/useCaseTypeAbacContext.d.ts +2 -0
- package/dist/dataHooks/useAssemblyProtocolsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useAssemblyProtocolsQuery/index.js +21 -0
- package/dist/dataHooks/useAssemblyProtocolsQuery/index.js.map +1 -0
- package/dist/dataHooks/useAssemblyProtocolsQuery/useAssemblyProtocolsQuery.d.ts +6 -0
- package/dist/dataHooks/useCaseRightsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useCaseRightsQuery/index.js +17 -0
- package/dist/dataHooks/useCaseRightsQuery/index.js.map +1 -0
- package/dist/dataHooks/useCaseRightsQuery/useCaseRightsQuery.d.ts +3 -0
- package/dist/dataHooks/useCaseSetCategoriesQuery/index.d.ts +1 -0
- package/dist/dataHooks/useCaseSetCategoriesQuery/index.js +22 -0
- package/dist/dataHooks/useCaseSetCategoriesQuery/index.js.map +1 -0
- package/dist/dataHooks/useCaseSetCategoriesQuery/useCaseSetCategoriesQuery.d.ts +6 -0
- package/dist/dataHooks/useCaseSetRightsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useCaseSetRightsQuery/index.js +13 -0
- package/dist/dataHooks/useCaseSetRightsQuery/index.js.map +1 -0
- package/dist/dataHooks/useCaseSetRightsQuery/useCaseSetRightsQuery.d.ts +3 -0
- package/dist/dataHooks/useCaseSetStatsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useCaseSetStatsQuery/index.js +19 -0
- package/dist/dataHooks/useCaseSetStatsQuery/index.js.map +1 -0
- package/dist/dataHooks/useCaseSetStatsQuery/useCaseSetStatsQuery.d.ts +5 -0
- package/dist/dataHooks/useCaseSetStatusesQuery/index.d.ts +1 -0
- package/dist/dataHooks/useCaseSetStatusesQuery/index.js +22 -0
- package/dist/dataHooks/useCaseSetStatusesQuery/index.js.map +1 -0
- package/dist/dataHooks/useCaseSetStatusesQuery/useCaseSetStatusesQuery.d.ts +6 -0
- package/dist/dataHooks/useCaseSetsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useCaseSetsQuery/index.js +22 -0
- package/dist/dataHooks/useCaseSetsQuery/index.js.map +1 -0
- package/dist/dataHooks/useCaseSetsQuery/useCaseSetsQuery.d.ts +6 -0
- package/dist/dataHooks/useCaseTypeSetCategoriesQuery/index.d.ts +1 -0
- package/dist/dataHooks/useCaseTypeSetCategoriesQuery/index.js +22 -0
- package/dist/dataHooks/useCaseTypeSetCategoriesQuery/index.js.map +1 -0
- package/dist/dataHooks/useCaseTypeSetCategoriesQuery/useCaseTypeSetCategoriesQuery.d.ts +6 -0
- package/dist/dataHooks/useCaseTypeSetCategoryPurposeQuery/index.d.ts +1 -0
- package/dist/dataHooks/useCaseTypeSetCategoryPurposeQuery/index.js +21 -0
- package/dist/dataHooks/useCaseTypeSetCategoryPurposeQuery/index.js.map +1 -0
- package/dist/dataHooks/useCaseTypeSetCategoryPurposeQuery/useCaseTypeSetCategoryPurposeQuery.d.ts +4 -0
- package/dist/dataHooks/useCaseTypeSetMembersQuery/index.d.ts +1 -0
- package/dist/dataHooks/useCaseTypeSetMembersQuery/index.js +13 -0
- package/dist/dataHooks/useCaseTypeSetMembersQuery/index.js.map +1 -0
- package/dist/dataHooks/useCaseTypeSetMembersQuery/useCaseTypeSetMembersQuery.d.ts +3 -0
- package/dist/dataHooks/useCaseTypeSetsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useCaseTypeSetsQuery/index.js +25 -0
- package/dist/dataHooks/useCaseTypeSetsQuery/index.js.map +1 -0
- package/dist/dataHooks/useCaseTypeSetsQuery/useCaseTypeSetsQuery.d.ts +7 -0
- package/dist/dataHooks/useCaseTypeStatsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useCaseTypeStatsQuery/index.js +13 -0
- package/dist/dataHooks/useCaseTypeStatsQuery/index.js.map +1 -0
- package/dist/dataHooks/useCaseTypeStatsQuery/useCaseTypeStatsQuery.d.ts +3 -0
- package/dist/dataHooks/useCaseTypesQuery/index.d.ts +1 -0
- package/dist/dataHooks/useCaseTypesQuery/index.js +24 -0
- package/dist/dataHooks/useCaseTypesQuery/index.js.map +1 -0
- package/dist/dataHooks/useCaseTypesQuery/useCaseTypesQuery.d.ts +9 -0
- package/dist/dataHooks/useColSetMembersQuery/index.d.ts +1 -0
- package/dist/dataHooks/useColSetMembersQuery/index.js +13 -0
- package/dist/dataHooks/useColSetMembersQuery/index.js.map +1 -0
- package/dist/dataHooks/useColSetMembersQuery/useColSetMembersQuery.d.ts +3 -0
- package/dist/dataHooks/useColSetsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useColSetsQuery/index.js +21 -0
- package/dist/dataHooks/useColSetsQuery/index.js.map +1 -0
- package/dist/dataHooks/useColSetsQuery/useColSetsQuery.d.ts +6 -0
- package/dist/dataHooks/useColTypesQuery/index.d.ts +1 -0
- package/dist/dataHooks/useColTypesQuery/index.js +51 -0
- package/dist/dataHooks/useColTypesQuery/index.js.map +1 -0
- package/dist/dataHooks/useColTypesQuery/useColTypesQuery.d.ts +4 -0
- package/dist/dataHooks/useColsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useColsQuery/index.js +27 -0
- package/dist/dataHooks/useColsQuery/index.js.map +1 -0
- package/dist/dataHooks/useColsQuery/useColsQuery.d.ts +7 -0
- package/dist/dataHooks/useConceptQuery/index.d.ts +1 -0
- package/dist/dataHooks/useConceptQuery/index.js +26 -0
- package/dist/dataHooks/useConceptQuery/index.js.map +1 -0
- package/dist/dataHooks/useConceptQuery/useConceptQuery.d.ts +7 -0
- package/dist/dataHooks/useConceptRelationTypeQuery/index.d.ts +1 -0
- package/dist/dataHooks/useConceptRelationTypeQuery/index.js +15 -0
- package/dist/dataHooks/useConceptRelationTypeQuery/index.js.map +1 -0
- package/dist/dataHooks/useConceptRelationTypeQuery/useConceptRelationTypeQuery.d.ts +4 -0
- package/dist/dataHooks/useConceptSetTypeQuery/index.d.ts +1 -0
- package/dist/dataHooks/useConceptSetTypeQuery/index.js +22 -0
- package/dist/dataHooks/useConceptSetTypeQuery/index.js.map +1 -0
- package/dist/dataHooks/useConceptSetTypeQuery/useConceptSetTypeQuery.d.ts +4 -0
- package/dist/dataHooks/useConceptSetsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useConceptSetsQuery/index.js +21 -0
- package/dist/dataHooks/useConceptSetsQuery/index.js.map +1 -0
- package/dist/dataHooks/useConceptSetsQuery/useConceptSetsQuery.d.ts +6 -0
- package/dist/dataHooks/useDataCollectionSetMembersQuery/index.d.ts +1 -0
- package/dist/dataHooks/useDataCollectionSetMembersQuery/index.js +13 -0
- package/dist/dataHooks/useDataCollectionSetMembersQuery/index.js.map +1 -0
- package/dist/dataHooks/useDataCollectionSetMembersQuery/useDataCollectionSetMembersQuery.d.ts +3 -0
- package/dist/dataHooks/useDataCollectionsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useDataCollectionsQuery/index.js +22 -0
- package/dist/dataHooks/useDataCollectionsQuery/index.js.map +1 -0
- package/dist/dataHooks/useDataCollectionsQuery/useDataCollectionsQuery.d.ts +6 -0
- package/dist/dataHooks/useDimTypesQuery/index.d.ts +1 -0
- package/dist/dataHooks/useDimTypesQuery/index.js +26 -0
- package/dist/dataHooks/useDimTypesQuery/index.js.map +1 -0
- package/dist/dataHooks/useDimTypesQuery/useDimTypesQuery.d.ts +4 -0
- package/dist/dataHooks/useDimsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useDimsQuery/index.js +26 -0
- package/dist/dataHooks/useDimsQuery/index.js.map +1 -0
- package/dist/dataHooks/useDimsQuery/useDimsQuery.d.ts +7 -0
- package/dist/dataHooks/useDiseasesQuery/index.d.ts +1 -0
- package/dist/dataHooks/useDiseasesQuery/index.js +21 -0
- package/dist/dataHooks/useDiseasesQuery/index.js.map +1 -0
- package/dist/dataHooks/useDiseasesQuery/useDiseasesQuery.d.ts +6 -0
- package/dist/dataHooks/useEtiologicalAgentsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useEtiologicalAgentsQuery/index.js +21 -0
- package/dist/dataHooks/useEtiologicalAgentsQuery/index.js.map +1 -0
- package/dist/dataHooks/useEtiologicalAgentsQuery/useEtiologicalAgentsQuery.d.ts +6 -0
- package/dist/dataHooks/useGeneticDistanceProtocolsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useGeneticDistanceProtocolsQuery/index.js +18 -0
- package/dist/dataHooks/useGeneticDistanceProtocolsQuery/index.js.map +1 -0
- package/dist/dataHooks/useGeneticDistanceProtocolsQuery/useGeneticDistanceProtocolsQuery.d.ts +5 -0
- package/dist/dataHooks/useOrganizationAccessCasePoliciesQuery/index.d.ts +1 -0
- package/dist/dataHooks/useOrganizationAccessCasePoliciesQuery/index.js +14 -0
- package/dist/dataHooks/useOrganizationAccessCasePoliciesQuery/index.js.map +1 -0
- package/dist/dataHooks/useOrganizationAccessCasePoliciesQuery/useOrganizationAccessCasePoliciesQuery.d.ts +3 -0
- package/dist/dataHooks/useOrganizationShareCasePoliciesQuery/index.d.ts +1 -0
- package/dist/dataHooks/useOrganizationShareCasePoliciesQuery/index.js +14 -0
- package/dist/dataHooks/useOrganizationShareCasePoliciesQuery/index.js.map +1 -0
- package/dist/dataHooks/useOrganizationShareCasePoliciesQuery/useOrganizationShareCasePoliciesQuery.d.ts +3 -0
- package/dist/dataHooks/useRefColsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useRefColsQuery/index.js +22 -0
- package/dist/dataHooks/useRefColsQuery/index.js.map +1 -0
- package/dist/dataHooks/useRefColsQuery/useRefColsQuery.d.ts +6 -0
- package/dist/dataHooks/useRefColsValidationRulesQuery/index.d.ts +1 -0
- package/dist/dataHooks/useRefColsValidationRulesQuery/index.js +13 -0
- package/dist/dataHooks/useRefColsValidationRulesQuery/index.js.map +1 -0
- package/dist/dataHooks/useRefColsValidationRulesQuery/useRefColsValidationRulesQuery.d.ts +3 -0
- package/dist/dataHooks/useRefDimsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useRefDimsQuery/index.js +22 -0
- package/dist/dataHooks/useRefDimsQuery/index.js.map +1 -0
- package/dist/dataHooks/useRefDimsQuery/useRefDimsQuery.d.ts +6 -0
- package/dist/dataHooks/useRegionQuery/index.d.ts +1 -0
- package/dist/dataHooks/useRegionQuery/index.js +25 -0
- package/dist/dataHooks/useRegionQuery/index.js.map +1 -0
- package/dist/dataHooks/useRegionQuery/useRegionQuery.d.ts +7 -0
- package/dist/dataHooks/useRegionRelationTypeQuery/index.d.ts +1 -0
- package/dist/dataHooks/useRegionRelationTypeQuery/index.js +20 -0
- package/dist/dataHooks/useRegionRelationTypeQuery/index.js.map +1 -0
- package/dist/dataHooks/useRegionRelationTypeQuery/useRegionRelationTypeQuery.d.ts +4 -0
- package/dist/dataHooks/useRegionSetsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useRegionSetsQuery/index.js +21 -0
- package/dist/dataHooks/useRegionSetsQuery/index.js.map +1 -0
- package/dist/dataHooks/useRegionSetsQuery/useRegionSetsQuery.d.ts +6 -0
- package/dist/dataHooks/useSequencingProtocolsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useSequencingProtocolsQuery/index.js +21 -0
- package/dist/dataHooks/useSequencingProtocolsQuery/index.js.map +1 -0
- package/dist/dataHooks/useSequencingProtocolsQuery/useSequencingProtocolsQuery.d.ts +6 -0
- package/dist/dataHooks/useTreeAlgorithmCodesQuery/index.d.ts +1 -0
- package/dist/dataHooks/useTreeAlgorithmCodesQuery/index.js +42 -0
- package/dist/dataHooks/useTreeAlgorithmCodesQuery/index.js.map +1 -0
- package/dist/dataHooks/useTreeAlgorithmCodesQuery/useTreeAlgorithmCodesQuery.d.ts +4 -0
- package/dist/dataHooks/useUnitQuery/index.d.ts +1 -0
- package/dist/dataHooks/useUnitQuery/index.js +2 -0
- package/dist/dataHooks/useUnitQuery/useUnit.d.ts +4 -0
- package/dist/dataHooks/useUserAccessCasePoliciesQuery/index.d.ts +1 -0
- package/dist/dataHooks/useUserAccessCasePoliciesQuery/index.js +14 -0
- package/dist/dataHooks/useUserAccessCasePoliciesQuery/index.js.map +1 -0
- package/dist/dataHooks/useUserAccessCasePoliciesQuery/useUserAccessCasePoliciesQuery.d.ts +3 -0
- package/dist/dataHooks/useUserEffectiveRightsQuery/index.d.ts +1 -0
- package/dist/dataHooks/useUserEffectiveRightsQuery/index.js +83 -0
- package/dist/dataHooks/useUserEffectiveRightsQuery/index.js.map +1 -0
- package/dist/dataHooks/useUserEffectiveRightsQuery/useUserEffectiveRightsQuery.d.ts +16 -0
- package/dist/dataHooks/useUserShareCasePoliciesQuery/index.d.ts +1 -0
- package/dist/dataHooks/useUserShareCasePoliciesQuery/index.js +14 -0
- package/dist/dataHooks/useUserShareCasePoliciesQuery/index.js.map +1 -0
- package/dist/dataHooks/useUserShareCasePoliciesQuery/useUserShareCasePoliciesQuery.d.ts +3 -0
- package/dist/hooks/useOrganizationCasePolicyNameFactory/index.d.ts +1 -0
- package/dist/hooks/useOrganizationCasePolicyNameFactory/index.js +25 -0
- package/dist/hooks/useOrganizationCasePolicyNameFactory/index.js.map +1 -0
- package/dist/hooks/useOrganizationCasePolicyNameFactory/useOrganizationCasePolicyNameFactory.d.ts +3 -0
- package/dist/hooks/useUserCasePolicyNameFactory/index.d.ts +1 -0
- package/dist/hooks/useUserCasePolicyNameFactory/index.js +28 -0
- package/dist/hooks/useUserCasePolicyNameFactory/index.js.map +1 -0
- package/dist/hooks/useUserCasePolicyNameFactory/useUserCasePolicyNameFactory.d.ts +3 -0
- package/dist/locale/en.json +676 -0
- package/dist/locale/nl.json +676 -0
- package/dist/models/caseAccess.d.ts +15 -0
- package/dist/models/caseAccess.js +0 -0
- package/dist/models/caseDb.d.ts +96 -0
- package/dist/models/caseDb.js +8 -0
- package/dist/models/caseDb.js.map +1 -0
- package/dist/models/config.d.ts +70 -0
- package/dist/models/config.js +0 -0
- package/dist/models/dashboard.d.ts +91 -0
- package/dist/models/dashboard.js +10 -0
- package/dist/models/dashboard.js.map +1 -0
- package/dist/models/stratification.d.ts +40 -0
- package/dist/models/stratification.js +12 -0
- package/dist/models/stratification.js.map +1 -0
- package/dist/models/theme.d.ts +17 -0
- package/dist/models/theme.js +0 -0
- package/dist/models/upload.d.ts +51 -0
- package/dist/models/upload.js +8 -0
- package/dist/models/upload.js.map +1 -0
- package/dist/pages/CaseDbUsersAdminPage/CaseDbUsersAdminPage.d.ts +1 -0
- package/dist/pages/CaseDbUsersAdminPage/index.d.ts +1 -0
- package/dist/pages/CaseDbUsersAdminPage/index.js +67 -0
- package/dist/pages/CaseDbUsersAdminPage/index.js.map +1 -0
- package/dist/pages/CaseSetCategoryAdminPage/CaseSetCategoryAdminPage.d.ts +1 -0
- package/dist/pages/CaseSetCategoryAdminPage/index.d.ts +1 -0
- package/dist/pages/CaseSetCategoryAdminPage/index.js +69 -0
- package/dist/pages/CaseSetCategoryAdminPage/index.js.map +1 -0
- package/dist/pages/CaseSetStatusAdminPage/CaseSetStatusAdminPage.d.ts +1 -0
- package/dist/pages/CaseSetStatusAdminPage/index.d.ts +1 -0
- package/dist/pages/CaseSetStatusAdminPage/index.js +69 -0
- package/dist/pages/CaseSetStatusAdminPage/index.js.map +1 -0
- package/dist/pages/CaseTypeSetCategoriesAdminPage/CaseTypeSetCategoriesAdminPage.d.ts +1 -0
- package/dist/pages/CaseTypeSetCategoriesAdminPage/index.d.ts +1 -0
- package/dist/pages/CaseTypeSetCategoriesAdminPage/index.js +92 -0
- package/dist/pages/CaseTypeSetCategoriesAdminPage/index.js.map +1 -0
- package/dist/pages/CaseTypeSetsAdminPage/CaseTypeSetsAdminPage.d.ts +1 -0
- package/dist/pages/CaseTypeSetsAdminPage/index.d.ts +1 -0
- package/dist/pages/CaseTypeSetsAdminPage/index.js +148 -0
- package/dist/pages/CaseTypeSetsAdminPage/index.js.map +1 -0
- package/dist/pages/CaseTypesAdminPage/CaseTypesAdminPage.d.ts +1 -0
- package/dist/pages/CaseTypesAdminPage/index.d.ts +1 -0
- package/dist/pages/CaseTypesAdminPage/index.js +288 -0
- package/dist/pages/CaseTypesAdminPage/index.js.map +1 -0
- package/dist/pages/CasesDetailPage/CasesDetailPage.d.ts +1 -0
- package/dist/pages/CasesDetailPage/index.d.ts +1 -0
- package/dist/pages/CasesDetailPage/index.js +41 -0
- package/dist/pages/CasesDetailPage/index.js.map +1 -0
- package/dist/pages/CasesPage/CasesPage.d.ts +1 -0
- package/dist/pages/CasesPage/index.d.ts +1 -0
- package/dist/pages/CasesPage/index.js +229 -0
- package/dist/pages/CasesPage/index.js.map +1 -0
- package/dist/pages/ColSetsAdminPage/ColSetsAdminPage.d.ts +1 -0
- package/dist/pages/ColSetsAdminPage/index.d.ts +1 -0
- package/dist/pages/ColSetsAdminPage/index.js +109 -0
- package/dist/pages/ColSetsAdminPage/index.js.map +1 -0
- package/dist/pages/ColsAdminPage/ColsAdminPage.d.ts +1 -0
- package/dist/pages/ColsAdminPage/index.d.ts +1 -0
- package/dist/pages/ColsAdminPage/index.js +315 -0
- package/dist/pages/ColsAdminPage/index.js.map +1 -0
- package/dist/pages/ConceptRelationsAdminPage/ConceptRelationsAdminPage.d.ts +1 -0
- package/dist/pages/ConceptRelationsAdminPage/index.d.ts +1 -0
- package/dist/pages/ConceptRelationsAdminPage/index.js +103 -0
- package/dist/pages/ConceptRelationsAdminPage/index.js.map +1 -0
- package/dist/pages/ConceptSetsAdminPage/ConceptSetsAdminPage.d.ts +1 -0
- package/dist/pages/ConceptSetsAdminPage/index.d.ts +1 -0
- package/dist/pages/ConceptSetsAdminPage/index.js +112 -0
- package/dist/pages/ConceptSetsAdminPage/index.js.map +1 -0
- package/dist/pages/ConceptsAdminPage/ConceptsAdminPage.d.ts +1 -0
- package/dist/pages/ConceptsAdminPage/index.d.ts +1 -0
- package/dist/pages/ConceptsAdminPage/index.js +94 -0
- package/dist/pages/ConceptsAdminPage/index.js.map +1 -0
- package/dist/pages/DataCollectionSetsAdminPage/DataCollectionSetsAdminPage.d.ts +1 -0
- package/dist/pages/DataCollectionSetsAdminPage/index.d.ts +1 -0
- package/dist/pages/DataCollectionSetsAdminPage/index.js +99 -0
- package/dist/pages/DataCollectionSetsAdminPage/index.js.map +1 -0
- package/dist/pages/DataCollectionVisualizationPage/DataCollectionVisualizationPage.d.ts +1 -0
- package/dist/pages/DataCollectionVisualizationPage/index.d.ts +1 -0
- package/dist/pages/DataCollectionVisualizationPage/index.js +494 -0
- package/dist/pages/DataCollectionVisualizationPage/index.js.map +1 -0
- package/dist/pages/DataCollectionsAdminPage/DataCollectionsAdminPage.d.ts +1 -0
- package/dist/pages/DataCollectionsAdminPage/index.d.ts +1 -0
- package/dist/pages/DataCollectionsAdminPage/index.js +54 -0
- package/dist/pages/DataCollectionsAdminPage/index.js.map +1 -0
- package/dist/pages/DimsAdminPage/DimsAdminPage.d.ts +1 -0
- package/dist/pages/DimsAdminPage/index.d.ts +1 -0
- package/dist/pages/DimsAdminPage/index.js +146 -0
- package/dist/pages/DimsAdminPage/index.js.map +1 -0
- package/dist/pages/DiseasesAdminPage/DiseasesAdminPage.d.ts +1 -0
- package/dist/pages/DiseasesAdminPage/index.d.ts +1 -0
- package/dist/pages/DiseasesAdminPage/index.js +57 -0
- package/dist/pages/DiseasesAdminPage/index.js.map +1 -0
- package/dist/pages/EtiologicalAgentsAdminPage/EtiologicalAgentsAdminPage.d.ts +1 -0
- package/dist/pages/EtiologicalAgentsAdminPage/index.d.ts +1 -0
- package/dist/pages/EtiologicalAgentsAdminPage/index.js +54 -0
- package/dist/pages/EtiologicalAgentsAdminPage/index.js.map +1 -0
- package/dist/pages/EtiologiesAdminPage/EtiologiesAdminPage.d.ts +1 -0
- package/dist/pages/EtiologiesAdminPage/index.d.ts +1 -0
- package/dist/pages/EtiologiesAdminPage/index.js +76 -0
- package/dist/pages/EtiologiesAdminPage/index.js.map +1 -0
- package/dist/pages/EventsDetailPage/EventsDetailPage.d.ts +1 -0
- package/dist/pages/EventsDetailPage/index.d.ts +1 -0
- package/dist/pages/EventsDetailPage/index.js +56 -0
- package/dist/pages/EventsDetailPage/index.js.map +1 -0
- package/dist/pages/EventsPage/EventsPage.d.ts +1 -0
- package/dist/pages/EventsPage/index.d.ts +1 -0
- package/dist/pages/EventsPage/index.js +221 -0
- package/dist/pages/EventsPage/index.js.map +1 -0
- package/dist/pages/HomePage/HomePage.d.ts +1 -0
- package/dist/pages/HomePage/index.d.ts +1 -0
- package/dist/pages/HomePage/index.js +35 -0
- package/dist/pages/HomePage/index.js.map +1 -0
- package/dist/pages/OrganizationAccessCasePoliciesAdminPage/OrganizationAccessCasePoliciesAdminPage.d.ts +1 -0
- package/dist/pages/OrganizationAccessCasePoliciesAdminPage/index.d.ts +1 -0
- package/dist/pages/OrganizationAccessCasePoliciesAdminPage/index.js +216 -0
- package/dist/pages/OrganizationAccessCasePoliciesAdminPage/index.js.map +1 -0
- package/dist/pages/OrganizationShareCasePoliciesAdminPage/OrganizationShareCasePoliciesAdminPage.d.ts +1 -0
- package/dist/pages/OrganizationShareCasePoliciesAdminPage/index.d.ts +1 -0
- package/dist/pages/OrganizationShareCasePoliciesAdminPage/index.js +170 -0
- package/dist/pages/OrganizationShareCasePoliciesAdminPage/index.js.map +1 -0
- package/dist/pages/RefColsAdminPage/RefColsAdminPage.d.ts +1 -0
- package/dist/pages/RefColsAdminPage/index.d.ts +1 -0
- package/dist/pages/RefColsAdminPage/index.js +302 -0
- package/dist/pages/RefColsAdminPage/index.js.map +1 -0
- package/dist/pages/RefDimsAdminPage/RefDimsAdminPage.d.ts +1 -0
- package/dist/pages/RefDimsAdminPage/index.d.ts +1 -0
- package/dist/pages/RefDimsAdminPage/index.js +110 -0
- package/dist/pages/RefDimsAdminPage/index.js.map +1 -0
- package/dist/pages/RegionRelationsAdminPage/RegionRelationsAdminPage.d.ts +1 -0
- package/dist/pages/RegionRelationsAdminPage/index.d.ts +1 -0
- package/dist/pages/RegionRelationsAdminPage/index.js +102 -0
- package/dist/pages/RegionRelationsAdminPage/index.js.map +1 -0
- package/dist/pages/RegionSetShapesAdminPage/RegionSetShapesAdminPage.d.ts +1 -0
- package/dist/pages/RegionSetShapesAdminPage/index.d.ts +1 -0
- package/dist/pages/RegionSetShapesAdminPage/index.js +73 -0
- package/dist/pages/RegionSetShapesAdminPage/index.js.map +1 -0
- package/dist/pages/RegionSetsAdminPage/RegionSetsAdminPage.d.ts +1 -0
- package/dist/pages/RegionSetsAdminPage/index.d.ts +1 -0
- package/dist/pages/RegionSetsAdminPage/index.js +101 -0
- package/dist/pages/RegionSetsAdminPage/index.js.map +1 -0
- package/dist/pages/RegionsAdminPage/RegionsAdminPage.d.ts +1 -0
- package/dist/pages/RegionsAdminPage/index.d.ts +1 -0
- package/dist/pages/RegionsAdminPage/index.js +99 -0
- package/dist/pages/RegionsAdminPage/index.js.map +1 -0
- package/dist/pages/TrendsPage/TrendsPage.d.ts +1 -0
- package/dist/pages/TrendsPage/index.d.ts +1 -0
- package/dist/pages/TrendsPage/index.js +17 -0
- package/dist/pages/TrendsPage/index.js.map +1 -0
- package/dist/pages/UploadPage/UploadPage.d.ts +1 -0
- package/dist/pages/UploadPage/index.d.ts +1 -0
- package/dist/pages/UploadPage/index.js +31 -0
- package/dist/pages/UploadPage/index.js.map +1 -0
- package/dist/pages/UserAccessCasePoliciesAdminPage/UserAccessCasePoliciesAdminPage.d.ts +1 -0
- package/dist/pages/UserAccessCasePoliciesAdminPage/index.d.ts +1 -0
- package/dist/pages/UserAccessCasePoliciesAdminPage/index.js +206 -0
- package/dist/pages/UserAccessCasePoliciesAdminPage/index.js.map +1 -0
- package/dist/pages/UserEffectiveRightsAdminPage/UserEffectiveRightsAdminPage.d.ts +1 -0
- package/dist/pages/UserEffectiveRightsAdminPage/index.d.ts +1 -0
- package/dist/pages/UserEffectiveRightsAdminPage/index.js +246 -0
- package/dist/pages/UserEffectiveRightsAdminPage/index.js.map +1 -0
- package/dist/pages/UserEffectiveRightsTesterAdminPage/UserEffectiveRightsTesterAdminPage.d.ts +1 -0
- package/dist/pages/UserEffectiveRightsTesterAdminPage/index.d.ts +1 -0
- package/dist/pages/UserEffectiveRightsTesterAdminPage/index.js +195 -0
- package/dist/pages/UserEffectiveRightsTesterAdminPage/index.js.map +1 -0
- package/dist/pages/UserShareCasePoliciesAdminPage/UserShareCasePoliciesAdminPage.d.ts +1 -0
- package/dist/pages/UserShareCasePoliciesAdminPage/index.d.ts +1 -0
- package/dist/pages/UserShareCasePoliciesAdminPage/index.js +169 -0
- package/dist/pages/UserShareCasePoliciesAdminPage/index.js.map +1 -0
- package/dist/routes/adminRoutes.d.ts +6 -0
- package/dist/routes/index.d.ts +2 -0
- package/dist/routes/index.js +1110 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/routes.d.ts +6 -0
- package/dist/setup/setup.d.ts +1 -0
- package/dist/setup/setup.js +28 -0
- package/dist/setup/setup.js.map +1 -0
- package/dist/stores/dashboardStore/dashboardStore.d.ts +80 -0
- package/dist/stores/dashboardStore/dashboardStoreContext.d.ts +3 -0
- package/dist/stores/dashboardStore/index.d.ts +2 -0
- package/dist/stores/dashboardStore/index.js +2 -0
- package/dist/stores/uploadStore/index.d.ts +2 -0
- package/dist/stores/uploadStore/index.js +185 -0
- package/dist/stores/uploadStore/index.js.map +1 -0
- package/dist/stores/uploadStore/uploadStore.d.ts +80 -0
- package/dist/stores/uploadStore/uploadStoreContext.d.ts +3 -0
- package/dist/stores/userProfileStore/index.d.ts +1 -0
- package/dist/stores/userProfileStore/index.js +81 -0
- package/dist/stores/userProfileStore/index.js.map +1 -0
- package/dist/stores/userProfileStore/userProfileStore.d.ts +38 -0
- package/dist/stores/userProfileStore/userProfileStoreContext.d.ts +3 -0
- package/dist/theme/demoTheme/demoTheme.d.ts +3 -0
- package/dist/theme/demoTheme/index.d.ts +1 -0
- package/dist/theme/demoTheme/index.js +20 -0
- package/dist/theme/demoTheme/index.js.map +1 -0
- package/dist/utils/AbacUtil/AbacUtil.d.ts +7 -0
- package/dist/utils/AbacUtil/index.d.ts +1 -0
- package/dist/utils/AbacUtil/index.js +31 -0
- package/dist/utils/AbacUtil/index.js.map +1 -0
- package/dist/utils/CaseDbDataUtil/CaseDbDataUtil.d.ts +31 -0
- package/dist/utils/CaseDbDataUtil/index.d.ts +1 -0
- package/dist/utils/CaseDbDataUtil/index.js +43 -0
- package/dist/utils/CaseDbDataUtil/index.js.map +1 -0
- package/dist/utils/CaseDbDownloadUtil/CaseDbDownloadUtil.d.ts +17 -0
- package/dist/utils/CaseDbDownloadUtil/index.d.ts +1 -0
- package/dist/utils/CaseDbDownloadUtil/index.js +2 -0
- package/dist/utils/CaseDbStandardConfigUtil/CaseDbStandardConfigUtil.d.ts +7 -0
- package/dist/utils/CaseDbStandardConfigUtil/index.d.ts +1 -0
- package/dist/utils/CaseDbStandardConfigUtil/index.js +4778 -0
- package/dist/utils/CaseDbStandardConfigUtil/index.js.map +1 -0
- package/dist/utils/CaseDbTableUtil/CaseDbTableUtil.d.ts +6 -0
- package/dist/utils/CaseDbTableUtil/index.d.ts +1 -0
- package/dist/utils/CaseDbTableUtil/index.js +41 -0
- package/dist/utils/CaseDbTableUtil/index.js.map +1 -0
- package/dist/utils/CaseSelectionUtil/CaseSelectionUtil.d.ts +8 -0
- package/dist/utils/CaseSelectionUtil/index.d.ts +1 -0
- package/dist/utils/CaseSelectionUtil/index.js +29 -0
- package/dist/utils/CaseSelectionUtil/index.js.map +1 -0
- package/dist/utils/CaseSetUtil/CaseSetUtil.d.ts +4 -0
- package/dist/utils/CaseSetUtil/index.d.ts +1 -0
- package/dist/utils/CaseSetUtil/index.js +13 -0
- package/dist/utils/CaseSetUtil/index.js.map +1 -0
- package/dist/utils/CaseTypeFormUtil/CaseTypeFormUtil.d.ts +20 -0
- package/dist/utils/CaseTypeFormUtil/index.d.ts +1 -0
- package/dist/utils/CaseTypeFormUtil/index.js +199 -0
- package/dist/utils/CaseTypeFormUtil/index.js.map +1 -0
- package/dist/utils/CaseTypeUtil/CaseTypeUtil.d.ts +39 -0
- package/dist/utils/CaseTypeUtil/index.d.ts +1 -0
- package/dist/utils/CaseTypeUtil/index.js +135 -0
- package/dist/utils/CaseTypeUtil/index.js.map +1 -0
- package/dist/utils/CaseUtil/CaseUtil.d.ts +18 -0
- package/dist/utils/CaseUtil/index.d.ts +1 -0
- package/dist/utils/CaseUtil/index.js +138 -0
- package/dist/utils/CaseUtil/index.js.map +1 -0
- package/dist/utils/DashboardUtil/DashboardUtil.d.ts +29 -0
- package/dist/utils/DashboardUtil/index.d.ts +1 -0
- package/dist/utils/DashboardUtil/index.js +152 -0
- package/dist/utils/DashboardUtil/index.js.map +1 -0
- package/dist/utils/DataSetUtil/DataSetUtil.d.ts +17 -0
- package/dist/utils/DataSetUtil/index.d.ts +1 -0
- package/dist/utils/DataSetUtil/index.js +43 -0
- package/dist/utils/DataSetUtil/index.js.map +1 -0
- package/dist/utils/EffectiveRightsUtil/EffectiveRightsUtil.d.ts +29 -0
- package/dist/utils/EffectiveRightsUtil/index.d.ts +1 -0
- package/dist/utils/EffectiveRightsUtil/index.js +118 -0
- package/dist/utils/EffectiveRightsUtil/index.js.map +1 -0
- package/dist/utils/EpiCurveUtil/EpiCurveUtil.d.ts +96 -0
- package/dist/utils/EpiCurveUtil/index.d.ts +1 -0
- package/dist/utils/EpiCurveUtil/index.js +2 -0
- package/dist/utils/FileUtil/FileUtil.d.ts +5 -0
- package/dist/utils/FileUtil/index.d.ts +1 -0
- package/dist/utils/FileUtil/index.js +15 -0
- package/dist/utils/FileUtil/index.js.map +1 -0
- package/dist/utils/FilterUtil/FilterUtil.d.ts +11 -0
- package/dist/utils/FilterUtil/index.d.ts +1 -0
- package/dist/utils/FilterUtil/index.js +2 -0
- package/dist/utils/FindSimilarCasesUtil/FindSimilarCasesUtil.d.ts +7 -0
- package/dist/utils/FindSimilarCasesUtil/index.d.ts +1 -0
- package/dist/utils/FindSimilarCasesUtil/index.js +2 -0
- package/dist/utils/HistogramUtil/HistogramUtil.d.ts +78 -0
- package/dist/utils/HistogramUtil/index.d.ts +1 -0
- package/dist/utils/HistogramUtil/index.js +145 -0
- package/dist/utils/HistogramUtil/index.js.map +1 -0
- package/dist/utils/MapUtil/MapUtil.d.ts +38 -0
- package/dist/utils/MapUtil/index.d.ts +1 -0
- package/dist/utils/MapUtil/index.js +210 -0
- package/dist/utils/MapUtil/index.js.map +1 -0
- package/dist/utils/StratificationUtil/StratificationUtil.d.ts +25 -0
- package/dist/utils/StratificationUtil/index.d.ts +1 -0
- package/dist/utils/StratificationUtil/index.js +198 -0
- package/dist/utils/StratificationUtil/index.js.map +1 -0
- package/dist/utils/TreeWidgetUtil/TreeWidgetUtil.d.ts +7 -0
- package/dist/utils/TreeWidgetUtil/index.d.ts +1 -0
- package/dist/utils/TreeWidgetUtil/index.js +35 -0
- package/dist/utils/TreeWidgetUtil/index.js.map +1 -0
- package/dist/utils/UploadUtil/UploadUtil.d.ts +106 -0
- package/dist/utils/UploadUtil/index.d.ts +1 -0
- package/dist/utils/UploadUtil/index.js +2 -0
- package/package.json +784 -0
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
import { h as e } from "../../../_chunks/_MapCache.js";
|
|
2
|
+
import { t } from "../../../_chunks/intersection.js";
|
|
3
|
+
import { CaseTypeUtil as n } from "../../../utils/CaseTypeUtil/index.js";
|
|
4
|
+
import { CASEDB_QUERY_KEY as r } from "../../../constants/query.js";
|
|
5
|
+
import { DataService as i } from "../../../classes/services/DataService/index.js";
|
|
6
|
+
import { StratificationUtil as a } from "../../../utils/StratificationUtil/index.js";
|
|
7
|
+
import { t as o } from "../../../_chunks/round.js";
|
|
8
|
+
import { DashboardUtil as ee } from "../../../utils/DashboardUtil/index.js";
|
|
9
|
+
import { MapUtil as s } from "../../../utils/MapUtil/index.js";
|
|
10
|
+
import { DASHBOARD_COMPONENT_NAME as c } from "../../../constants/dashboard.js";
|
|
11
|
+
import { c as l, f as u, g as te, h as d, i as f, l as p, m, n as h, p as g, t as ne, u as _ } from "../../../_chunks/esm.js";
|
|
12
|
+
import { t as v } from "../../../_chunks/react.js";
|
|
13
|
+
import { t as re } from "../../../_chunks/dashboardStore.js";
|
|
14
|
+
import { ContextMenu as ie } from "../ContextMenu/index.js";
|
|
15
|
+
import { WidgetUnavailable as ae } from "../WidgetUnavailable/index.js";
|
|
16
|
+
import { EventBusService as y } from "../../../classes/services/EventBusService/index.js";
|
|
17
|
+
import { t as b } from "../../../_chunks/CaseDbDownloadUtil.js";
|
|
18
|
+
import { n as oe } from "../../../_chunks/LegendaItem.js";
|
|
19
|
+
import { t as se } from "../../../_chunks/Dashboard.js";
|
|
20
|
+
import { CaseDbDimType as x, CaseDbGeoApi as ce } from "@gen-epix/api-casedb";
|
|
21
|
+
import { QueryClientService as le } from "@gen-epix/ui/classes/services/QueryClientService";
|
|
22
|
+
import { Box as ue, ListItemIcon as de, ListItemText as fe, MenuItem as pe, useTheme as me } from "@mui/material";
|
|
23
|
+
import { use as S, useCallback as C, useEffect as w, useMemo as T, useRef as E, useState as D } from "react";
|
|
24
|
+
import { useTranslation as he } from "react-i18next";
|
|
25
|
+
import ge from "@mui/icons-material/FilterAlt";
|
|
26
|
+
import { jsx as O, jsxs as k } from "react/jsx-runtime";
|
|
27
|
+
import { useQueryMemo as _e } from "@gen-epix/ui/hooks/useQueryMemo";
|
|
28
|
+
import { useDimensions as ve } from "@gen-epix/ui-core/hooks/useDimensions";
|
|
29
|
+
//#region src/components/ui/MapWidget/MapWidget.tsx
|
|
30
|
+
var ye = /* @__PURE__ */ e(t(), 1), be = /* @__PURE__ */ e(o(), 1), xe = {
|
|
31
|
+
dispose: g,
|
|
32
|
+
getInstanceByDom: m,
|
|
33
|
+
init: d
|
|
34
|
+
};
|
|
35
|
+
u([
|
|
36
|
+
_,
|
|
37
|
+
p,
|
|
38
|
+
l,
|
|
39
|
+
h,
|
|
40
|
+
f
|
|
41
|
+
]);
|
|
42
|
+
var A = () => {
|
|
43
|
+
let { t: e } = he(), t = me(), [o, l] = D(null), u = o?.label ?? "", [d, f] = D(null), p = E(null), m = E(null), { dimensions: { height: h, width: g } } = ve(p), _ = S(oe), A = S(re), j = v(A, (e) => e.stratification), Se = v(A, (e) => e.isDataLoading), M = v(A, (e) => e.sortedData), N = v(A, (e) => e.updateWidgetData), P = v(A, (e) => e.getWidgetData(c.MAP)), F = v(A, (e) => e.setFilterValue), I = v(A, (e) => e.completeCaseType), [L, R] = D(), z = T(() => n.getDims(I, [x.GEO]), [I]), B = T(() => ({
|
|
44
|
+
invert: !1,
|
|
45
|
+
key: "region_set_id",
|
|
46
|
+
members: n.getRegionSetIds(I),
|
|
47
|
+
type: "UUID_SET"
|
|
48
|
+
}), [I]), { data: V, error: Ce, isLoading: we } = _e({
|
|
49
|
+
queryFn: async ({ signal: e }) => (await ce.getInstance().regionSetShapesPostQuery(B, null, null, { signal: e })).data,
|
|
50
|
+
queryKey: le.getInstance().getGenericKey(r.REGION_SET_SHAPES, B),
|
|
51
|
+
retry: !1,
|
|
52
|
+
select: (e) => Object.fromEntries(e.map((e) => [e.region_set_id, e]))
|
|
53
|
+
});
|
|
54
|
+
w(() => {
|
|
55
|
+
if (o) return;
|
|
56
|
+
if (!z.length) throw Error("Epi map can not be shown");
|
|
57
|
+
let e;
|
|
58
|
+
e = P.columnId ? n.getCols(I).find((e) => e.id === P.columnId) : n.getPreferredGEOCol(n.getCols(I, z[0].id)), l(e);
|
|
59
|
+
}, [
|
|
60
|
+
o,
|
|
61
|
+
I,
|
|
62
|
+
P.columnId,
|
|
63
|
+
z
|
|
64
|
+
]);
|
|
65
|
+
let H = T(() => {
|
|
66
|
+
if (!o) return [];
|
|
67
|
+
let e = I.ref_cols[o.ref_col_id].region_set_id;
|
|
68
|
+
return i.getInstance().data.regionsByRegionSetId[e];
|
|
69
|
+
}, [o, I.ref_cols]), U = T(() => ee.getCaseCount(M), [M]), Te = C(() => {
|
|
70
|
+
f(null), R(null);
|
|
71
|
+
}, []), Ee = we || Se, De = Ce, W = T(() => !o || !V ? null : V[I.ref_cols[o.ref_col_id].region_set_id], [
|
|
72
|
+
o,
|
|
73
|
+
I.ref_cols,
|
|
74
|
+
V
|
|
75
|
+
]), G = T(() => {
|
|
76
|
+
if (!W) return 0;
|
|
77
|
+
try {
|
|
78
|
+
return JSON.parse(W.geo_json).features.length;
|
|
79
|
+
} catch {
|
|
80
|
+
return 0;
|
|
81
|
+
}
|
|
82
|
+
}, [W]), K = T(() => s.getMaxPieChartArea(g, h, G), [
|
|
83
|
+
h,
|
|
84
|
+
G,
|
|
85
|
+
g
|
|
86
|
+
]), q = T(() => s.getRegionStatistics(M, o?.id, H), [
|
|
87
|
+
o,
|
|
88
|
+
M,
|
|
89
|
+
H
|
|
90
|
+
]), J = C((e) => s.getPieChartRadius(e, K, q), [q, K]), { mapCaseCount: Y, series: X } = T(() => s.getMapSeries(o, H, M, j, J), [
|
|
91
|
+
o,
|
|
92
|
+
J,
|
|
93
|
+
M,
|
|
94
|
+
H,
|
|
95
|
+
j
|
|
96
|
+
]), Oe = C(() => {
|
|
97
|
+
if (!W) return;
|
|
98
|
+
te(W.id, W.geo_json);
|
|
99
|
+
let e = s.getGeoJsonAspectScale(W.geo_json);
|
|
100
|
+
return {
|
|
101
|
+
color: a.getEchartsColors(j, t),
|
|
102
|
+
geo: {
|
|
103
|
+
aspectScale: e,
|
|
104
|
+
emphasis: { disabled: !0 },
|
|
105
|
+
itemStyle: { areaColor: "#e7e8ea" },
|
|
106
|
+
label: {
|
|
107
|
+
show: !1,
|
|
108
|
+
silent: !0
|
|
109
|
+
},
|
|
110
|
+
map: W.id,
|
|
111
|
+
roam: !0,
|
|
112
|
+
scaleLimit: {
|
|
113
|
+
max: 5,
|
|
114
|
+
min: 1
|
|
115
|
+
},
|
|
116
|
+
silent: !0,
|
|
117
|
+
zoom: 1
|
|
118
|
+
},
|
|
119
|
+
legend: { show: !1 },
|
|
120
|
+
series: X,
|
|
121
|
+
tooltip: {}
|
|
122
|
+
};
|
|
123
|
+
}, [
|
|
124
|
+
W,
|
|
125
|
+
X,
|
|
126
|
+
j,
|
|
127
|
+
t
|
|
128
|
+
]), ke = C((t) => {
|
|
129
|
+
let n = t.getDom();
|
|
130
|
+
n?.setAttribute("aria-label", e("Figure of a map showing the geographical distribution of cases per region ({{label}})", { label: u })), n?.setAttribute("role", "img");
|
|
131
|
+
}, [u, e]), Ae = T(() => ({
|
|
132
|
+
mouseout: () => {
|
|
133
|
+
_.highlight({
|
|
134
|
+
caseIds: [],
|
|
135
|
+
origin: c.MAP
|
|
136
|
+
});
|
|
137
|
+
},
|
|
138
|
+
mouseover: (e) => {
|
|
139
|
+
try {
|
|
140
|
+
_.highlight({
|
|
141
|
+
caseIds: e.data.genEpixData.caseIds,
|
|
142
|
+
origin: c.MAP
|
|
143
|
+
});
|
|
144
|
+
} catch {}
|
|
145
|
+
},
|
|
146
|
+
mouseup: (e) => {
|
|
147
|
+
let t = e?.event?.event, n = e.data.genEpixData.caseIds, r = H.find((t) => t.id === e.data.genEpixData.regionId);
|
|
148
|
+
f({
|
|
149
|
+
caseIds: n,
|
|
150
|
+
mouseEvent: t,
|
|
151
|
+
position: {
|
|
152
|
+
left: e.event.event.clientX,
|
|
153
|
+
top: e.event.event.clientY
|
|
154
|
+
}
|
|
155
|
+
}), R(r);
|
|
156
|
+
}
|
|
157
|
+
}), [_, H]);
|
|
158
|
+
w(() => {
|
|
159
|
+
let e = _.highlightSubject.subscribe((e) => {
|
|
160
|
+
let t = [], n = [];
|
|
161
|
+
X.forEach((r, i) => {
|
|
162
|
+
r.data.forEach((r, a) => {
|
|
163
|
+
let o = r.genEpixData.caseIds;
|
|
164
|
+
(0, ye.default)(o, e.caseIds).length && (t.includes(i) || t.push(i), n.push(a));
|
|
165
|
+
});
|
|
166
|
+
}), m?.current && (e.caseIds.length ? m.current.getEchartsInstance()?.dispatchAction({
|
|
167
|
+
dataIndex: n,
|
|
168
|
+
seriesIndex: t,
|
|
169
|
+
type: "highlight"
|
|
170
|
+
}) : m.current.getEchartsInstance()?.dispatchAction({ type: "downplay" }));
|
|
171
|
+
});
|
|
172
|
+
return () => {
|
|
173
|
+
e();
|
|
174
|
+
};
|
|
175
|
+
}, [
|
|
176
|
+
m,
|
|
177
|
+
_.highlightSubject,
|
|
178
|
+
X
|
|
179
|
+
]);
|
|
180
|
+
let je = T(() => {
|
|
181
|
+
let t = {
|
|
182
|
+
disabled: !z?.length,
|
|
183
|
+
items: [],
|
|
184
|
+
label: o?.label ? e("Map: {{label}}", { label: o.label }) : e`Map`,
|
|
185
|
+
tooltip: o ? I.ref_cols[o.ref_col_id].description : void 0
|
|
186
|
+
};
|
|
187
|
+
return I.ordered_dim_ids.map((e) => I.dims[e]).filter((e) => I.ref_dims[e.ref_dim_id].dim_type === x.GEO).forEach((e) => {
|
|
188
|
+
t.items.length && (t.items.at(-1).divider = !0), I.ordered_col_ids_by_dim[e.id].map((e) => I.cols[e]).forEach((e) => {
|
|
189
|
+
t.items.push({
|
|
190
|
+
active: e.id === o?.id,
|
|
191
|
+
callback: () => {
|
|
192
|
+
N(c.MAP, { columnId: e.id }), l(e);
|
|
193
|
+
},
|
|
194
|
+
label: e.label,
|
|
195
|
+
tooltip: e.description
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
}), t;
|
|
199
|
+
}, [
|
|
200
|
+
o,
|
|
201
|
+
I,
|
|
202
|
+
z.length,
|
|
203
|
+
e,
|
|
204
|
+
N
|
|
205
|
+
]), Z = Y === void 0 ? 0 : U - Y, Me = Z > 0 ? (0, be.default)(Z / U * 100, 1) : 0, Q = Ee && !De, $ = !!o && W?.geo_json && W?.geo_json !== "null" && X.length > 0, Ne = T(() => {
|
|
206
|
+
if (!$) return o ? !W?.geo_json || W?.geo_json === "null" ? e`No geographical shape found for the selected column.` : X.length ? null : e`No cases with valid geographical information found for the selected column.` : e`No geographical column found.`;
|
|
207
|
+
}, [
|
|
208
|
+
$,
|
|
209
|
+
o,
|
|
210
|
+
W?.geo_json,
|
|
211
|
+
X.length,
|
|
212
|
+
e
|
|
213
|
+
]), Pe = C(async (e) => {
|
|
214
|
+
await F(o.id, [L.id]), e();
|
|
215
|
+
}, [
|
|
216
|
+
o,
|
|
217
|
+
L,
|
|
218
|
+
F
|
|
219
|
+
]), Fe = C((t) => !o || !L?.name ? null : /* @__PURE__ */ k(pe, {
|
|
220
|
+
divider: !0,
|
|
221
|
+
onClick: async () => await Pe(t),
|
|
222
|
+
children: [/* @__PURE__ */ O(de, { children: /* @__PURE__ */ O(ge, { fontSize: "small" }) }), /* @__PURE__ */ O(fe, { children: e("Filter (show only {{regionName}})", { regionName: L?.name ?? "-" }) })]
|
|
223
|
+
}), [
|
|
224
|
+
o,
|
|
225
|
+
L,
|
|
226
|
+
Pe,
|
|
227
|
+
e
|
|
228
|
+
]);
|
|
229
|
+
return w(() => {
|
|
230
|
+
let t = () => {
|
|
231
|
+
y.getInstance().emit("onDownloadOptionsChanged", {
|
|
232
|
+
disabled: !$,
|
|
233
|
+
items: [{
|
|
234
|
+
callback: () => b.downloadEchartsImage(e`Incidence map`, m.current.getEchartsInstance(), "png", I, e),
|
|
235
|
+
label: e`Save as PNG`
|
|
236
|
+
}, {
|
|
237
|
+
callback: () => b.downloadEchartsImage(e`Incidence map`, m.current.getEchartsInstance(), "jpeg", I, e),
|
|
238
|
+
label: e`Save as JPEG`
|
|
239
|
+
}],
|
|
240
|
+
zone: c.MAP,
|
|
241
|
+
zoneLabel: e`Map`
|
|
242
|
+
});
|
|
243
|
+
};
|
|
244
|
+
t();
|
|
245
|
+
let n = y.getInstance();
|
|
246
|
+
return n.addEventListener("onDownloadOptionsRequested", t), () => {
|
|
247
|
+
y.getInstance().emit("onDownloadOptionsChanged", {
|
|
248
|
+
items: null,
|
|
249
|
+
zone: c.MAP,
|
|
250
|
+
zoneLabel: e`Map`
|
|
251
|
+
}), n.removeEventListener("onDownloadOptionsRequested", t);
|
|
252
|
+
};
|
|
253
|
+
}, [
|
|
254
|
+
I,
|
|
255
|
+
$,
|
|
256
|
+
e
|
|
257
|
+
]), /* @__PURE__ */ O(se, {
|
|
258
|
+
expandDisabled: !$,
|
|
259
|
+
isLoading: Q,
|
|
260
|
+
title: je,
|
|
261
|
+
warningMessage: $ && Y > 0 && Z > 0 ? e("Missing cases: {{missingCasesCount}} ({{missingCasesPercentage}}%)", {
|
|
262
|
+
missingCasesCount: Z,
|
|
263
|
+
missingCasesPercentage: Me
|
|
264
|
+
}) : void 0,
|
|
265
|
+
widgetName: c.MAP,
|
|
266
|
+
children: /* @__PURE__ */ k(ue, {
|
|
267
|
+
ref: p,
|
|
268
|
+
sx: {
|
|
269
|
+
height: "100%",
|
|
270
|
+
position: "relative"
|
|
271
|
+
},
|
|
272
|
+
children: [
|
|
273
|
+
!Q && !$ && /* @__PURE__ */ O(ae, {
|
|
274
|
+
reason: Ne,
|
|
275
|
+
widgetLabel: e`map`
|
|
276
|
+
}),
|
|
277
|
+
$ && /* @__PURE__ */ O(ne, {
|
|
278
|
+
echarts: xe,
|
|
279
|
+
notMerge: !0,
|
|
280
|
+
onChartReady: ke,
|
|
281
|
+
onEvents: Ae,
|
|
282
|
+
option: Oe(),
|
|
283
|
+
ref: m,
|
|
284
|
+
style: {
|
|
285
|
+
height: "100%",
|
|
286
|
+
position: "absolute",
|
|
287
|
+
width: "100%"
|
|
288
|
+
}
|
|
289
|
+
}),
|
|
290
|
+
/* @__PURE__ */ O(ie, {
|
|
291
|
+
config: d,
|
|
292
|
+
getExtraItems: Fe,
|
|
293
|
+
onMenuClose: Te
|
|
294
|
+
})
|
|
295
|
+
]
|
|
296
|
+
})
|
|
297
|
+
});
|
|
298
|
+
};
|
|
299
|
+
//#endregion
|
|
300
|
+
export { A as MapWidget };
|
|
301
|
+
|
|
302
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/ui/MapWidget/MapWidget.tsx"],"sourcesContent":["import {\n Box,\n ListItemIcon,\n ListItemText,\n MenuItem,\n useTheme,\n} from '@mui/material';\nimport FilterAltIcon from '@mui/icons-material/FilterAlt';\nimport type { EChartsReactProps } from 'echarts-for-react';\nimport EChartsReact from 'echarts-for-react';\nimport {\n GeoComponent,\n LegendComponent,\n TooltipComponent,\n} from 'echarts/components';\nimport { PieChart } from 'echarts/charts';\nimport {\n dispose,\n getInstanceByDom,\n init,\n use as registerECharts,\n registerMap,\n} from 'echarts/core';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport type { ReactElement } from 'react';\nimport {\n use,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type {\n EChartsOption,\n EChartsType,\n} from 'echarts';\nimport { useTranslation } from 'react-i18next';\nimport intersection from 'lodash/intersection';\nimport round from 'lodash/round';\nimport { useStore } from 'zustand';\nimport type {\n CaseDbCol,\n CaseDbRegion,\n CaseDbRegionSetShape,\n CaseDbTypedUuidSetFilter,\n} from '@gen-epix/api-casedb';\nimport {\n CaseDbDimType,\n CaseDbGeoApi,\n} from '@gen-epix/api-casedb';\nimport type { MenuItemData } from '@gen-epix/ui/models/nestedMenu';\nimport { QueryClientService } from '@gen-epix/ui/classes/services/QueryClientService';\nimport { useQueryMemo } from '@gen-epix/ui/hooks/useQueryMemo';\nimport { useDimensions } from '@gen-epix/ui-core/hooks/useDimensions';\n\nimport { DataService } from '../../../classes/services/DataService';\nimport { EventBusService } from '../../../classes/services/EventBusService';\nimport { DashboardStoreContext } from '../../../stores/dashboardStore';\nimport { CaseTypeUtil } from '../../../utils/CaseTypeUtil';\nimport { DashboardUtil } from '../../../utils/DashboardUtil';\nimport { MapUtil } from '../../../utils/MapUtil';\nimport type { GenEpixPieSeriesOptionEventData } from '../../../utils/MapUtil';\nimport type { ContextMenuConfigWithPosition } from '../ContextMenu';\nimport { ContextMenu } from '../ContextMenu';\nimport { WidgetUnavailable } from '../WidgetUnavailable';\nimport { CaseDbDownloadUtil } from '../../../utils/CaseDbDownloadUtil';\nimport { CASEDB_QUERY_KEY } from '../../../constants/query';\nimport { StratificationUtil } from '../../../utils/StratificationUtil';\nimport { DashboardWidget } from '../Dashboard';\nimport { DASHBOARD_COMPONENT_NAME } from '../../../constants/dashboard';\nimport { DashboardContext } from '../Dashboard/context/DashboardContext';\nimport type { MapWidgetData } from '../../../models/dashboard';\n\nconst echartsCore = {\n dispose,\n getInstanceByDom,\n init,\n};\n\nregisterECharts([GeoComponent, TooltipComponent, LegendComponent, CanvasRenderer, PieChart]);\n\ntype GenEpixEchartsEvent = {\n data: GenEpixPieSeriesOptionEventData;\n event: {\n event: MouseEvent;\n };\n};\n\ntype GeoJSON = { features: unknown[] };\n\nexport const MapWidget = () => {\n const { t } = useTranslation();\n const theme = useTheme();\n const [col, setCol] = useState<CaseDbCol>(null);\n const colLabel = col?.label ?? '';\n const [contextMenuConfig, setContextMenuConfig] = useState<ContextMenuConfigWithPosition | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const chartRef = useRef<EChartsReact>(null);\n const { dimensions: { height, width } } = useDimensions(containerRef);\n\n const dashboardContext = use(DashboardContext);\n const dashboardStore = use(DashboardStoreContext);\n const stratification = useStore(dashboardStore, (state) => state.stratification);\n const isDataLoading = useStore(dashboardStore, (state) => state.isDataLoading);\n const sortedData = useStore(dashboardStore, (state) => state.sortedData);\n const updateWidgetData = useStore(dashboardStore, (state) => state.updateWidgetData);\n const mapWidgetData = useStore(dashboardStore, (state) => state.getWidgetData<MapWidgetData>(DASHBOARD_COMPONENT_NAME.MAP));\n const setFilterValue = useStore(dashboardStore, (state) => state.setFilterValue);\n const completeCaseType = useStore(dashboardStore, (state) => state.completeCaseType);\n\n const [focussedRegion, setFocussedRegion] = useState<CaseDbRegion>();\n const geoDims = useMemo(() => CaseTypeUtil.getDims(completeCaseType, [CaseDbDimType.GEO]), [completeCaseType]);\n const regionSetShapesFilter = useMemo<CaseDbTypedUuidSetFilter>(() => {\n return {\n invert: false,\n key: 'region_set_id',\n members: CaseTypeUtil.getRegionSetIds(completeCaseType),\n type: 'UUID_SET',\n };\n }, [completeCaseType]);\n\n const { data: regionSetShapes, error: regionSetShapesError, isLoading: isRegionSetShapesLoading } = useQueryMemo({\n queryFn: async ({ signal }) => {\n return (await CaseDbGeoApi.getInstance().regionSetShapesPostQuery(regionSetShapesFilter, null, null, { signal })).data;\n },\n queryKey: QueryClientService.getInstance().getGenericKey(CASEDB_QUERY_KEY.REGION_SET_SHAPES, regionSetShapesFilter),\n retry: false,\n select: (shapes) => Object.fromEntries(shapes.map(regionSetShape => [regionSetShape.region_set_id, regionSetShape])),\n });\n\n useEffect(() => {\n if (col) {\n return;\n }\n if (!geoDims.length) {\n throw Error('Epi map can not be shown');\n }\n let preferredCol: CaseDbCol;\n if (mapWidgetData.columnId) {\n preferredCol = CaseTypeUtil.getCols(completeCaseType).find(c => c.id === mapWidgetData.columnId);\n } else {\n preferredCol = CaseTypeUtil.getPreferredGEOCol(CaseTypeUtil.getCols(completeCaseType, geoDims[0].id));\n }\n setCol(preferredCol);\n }, [col, completeCaseType, mapWidgetData.columnId, geoDims]);\n\n const regions = useMemo(() => {\n if (!col) {\n return [];\n }\n const regionSetId = completeCaseType.ref_cols[col.ref_col_id].region_set_id;\n return DataService.getInstance().data.regionsByRegionSetId[regionSetId];\n }, [col, completeCaseType.ref_cols]);\n\n const lineListCaseCount = useMemo(() => {\n return DashboardUtil.getCaseCount(sortedData);\n }, [sortedData]);\n\n const onEpiContextMenuClose = useCallback(() => {\n setContextMenuConfig(null);\n setFocussedRegion(null);\n }, []);\n\n const isLoading = isRegionSetShapesLoading || isDataLoading;\n const error = regionSetShapesError;\n\n const regionSetShape = useMemo<CaseDbRegionSetShape>(() => {\n if (!col || !regionSetShapes) {\n return null;\n }\n const regionSetId = completeCaseType.ref_cols[col.ref_col_id].region_set_id;\n return regionSetShapes[regionSetId];\n }, [col, completeCaseType.ref_cols, regionSetShapes]);\n\n const numZones = useMemo(() => {\n if (!regionSetShape) {\n return 0;\n }\n try {\n return (JSON.parse(regionSetShape.geo_json) as GeoJSON).features.length;\n } catch {\n return 0;\n }\n }, [regionSetShape]);\n\n const maxPieChartArea = useMemo(() => MapUtil.getMaxPieChartArea(width, height, numZones), [height, numZones, width]);\n\n const lineListRegionStatistics = useMemo(() => MapUtil.getRegionStatistics(sortedData, col?.id, regions), [col, sortedData, regions]);\n const getPieChartRadius = useCallback((numCases: number): number => {\n return MapUtil.getPieChartRadius(numCases, maxPieChartArea, lineListRegionStatistics);\n }, [lineListRegionStatistics, maxPieChartArea]);\n\n const { mapCaseCount, series } = useMemo(\n () => MapUtil.getMapSeries(col, regions, sortedData, stratification, getPieChartRadius),\n [col, getPieChartRadius, sortedData, regions, stratification],\n );\n\n const getOptions = useCallback(() => {\n if (!regionSetShape) {\n return;\n }\n\n registerMap(regionSetShape.id, regionSetShape.geo_json);\n const aspectScale = MapUtil.getGeoJsonAspectScale(regionSetShape.geo_json);\n\n return {\n color: StratificationUtil.getEchartsColors(stratification, theme),\n geo: {\n aspectScale,\n emphasis: {\n disabled: true,\n },\n itemStyle: {\n areaColor: '#e7e8ea',\n },\n label: {\n show: false,\n silent: true,\n },\n map: regionSetShape.id,\n roam: true,\n scaleLimit: {\n max: 5,\n min: 1,\n },\n silent: true,\n zoom: 1,\n },\n legend: {\n show: false,\n },\n series: series as unknown,\n tooltip: {},\n } satisfies EChartsOption;\n }, [regionSetShape, series, stratification, theme]);\n\n const onChartReady = useCallback((chart: EChartsType) => {\n const dom = chart.getDom();\n dom?.setAttribute('aria-label', t('Figure of a map showing the geographical distribution of cases per region ({{label}})', { label: colLabel }));\n dom?.setAttribute('role', 'img');\n }, [colLabel, t]);\n\n const onEvents = useMemo<EChartsReactProps['onEvents']>(() => {\n return {\n mouseout: () => {\n dashboardContext.highlight({\n caseIds: [],\n origin: DASHBOARD_COMPONENT_NAME.MAP,\n });\n },\n mouseover: (event: unknown) => {\n try {\n dashboardContext.highlight({\n caseIds: (event as GenEpixEchartsEvent).data.genEpixData.caseIds,\n origin: DASHBOARD_COMPONENT_NAME.MAP,\n });\n } catch (_error) {\n // ignore\n }\n },\n mouseup: (event: unknown) => {\n const mouseEvent = (event as GenEpixEchartsEvent)?.event?.event;\n const eventCaseIds = (event as GenEpixEchartsEvent).data.genEpixData.caseIds;\n const region = regions.find(r => r.id === (event as GenEpixEchartsEvent).data.genEpixData.regionId);\n setContextMenuConfig({\n caseIds: eventCaseIds,\n mouseEvent,\n position: {\n left: (event as { event: { event: MouseEvent } }).event.event.clientX,\n top: (event as { event: { event: MouseEvent } }).event.event.clientY,\n },\n });\n setFocussedRegion(region);\n },\n };\n }, [dashboardContext, regions]);\n\n useEffect(() => {\n const unsubscribe = dashboardContext.highlightSubject.subscribe((highlighting) => {\n const foundSerieIndexes: number[] = [];\n const foundDataIndexes: number[] = [];\n series.forEach((serie, serieIndex) => {\n serie.data.forEach((dataArray, dataIndex) => {\n const caseIds = (dataArray as GenEpixPieSeriesOptionEventData).genEpixData.caseIds;\n if (intersection(caseIds, highlighting.caseIds).length) {\n if (!foundSerieIndexes.includes(serieIndex)) {\n foundSerieIndexes.push(serieIndex);\n }\n foundDataIndexes.push(dataIndex);\n }\n });\n });\n if (!chartRef?.current) {\n return;\n }\n\n if (highlighting.caseIds.length) {\n chartRef.current.getEchartsInstance()?.dispatchAction({\n dataIndex: foundDataIndexes,\n seriesIndex: foundSerieIndexes,\n type: 'highlight',\n });\n } else {\n chartRef.current.getEchartsInstance()?.dispatchAction({\n type: 'downplay',\n });\n }\n });\n\n // use highlighting imperatively\n return () => {\n unsubscribe();\n };\n }, [chartRef, dashboardContext.highlightSubject, series]);\n\n const titleMenu = useMemo<MenuItemData>(() => {\n const menu: MenuItemData = {\n disabled: !geoDims?.length,\n items: [],\n label: col?.label ? t('Map: {{label}}', { label: col.label }) : t`Map`,\n tooltip: col ? completeCaseType.ref_cols[col.ref_col_id].description : undefined,\n };\n\n completeCaseType.ordered_dim_ids.map(x => completeCaseType.dims[x]).filter(dim => {\n const refDim = completeCaseType.ref_dims[dim.ref_dim_id];\n return refDim.dim_type === CaseDbDimType.GEO;\n }).forEach((dim) => {\n if (menu.items.length) {\n menu.items.at(-1).divider = true;\n }\n completeCaseType.ordered_col_ids_by_dim[dim.id].map(id => completeCaseType.cols[id]).forEach((c) => {\n menu.items.push({\n active: !!(c.id === col?.id),\n callback: () => {\n updateWidgetData<MapWidgetData>(DASHBOARD_COMPONENT_NAME.MAP, { columnId: c.id });\n setCol(c);\n },\n label: c.label,\n tooltip: c.description,\n });\n });\n });\n\n return menu;\n }, [col, completeCaseType, geoDims.length, t, updateWidgetData]);\n\n const missingCasesCount = mapCaseCount !== undefined ? lineListCaseCount - mapCaseCount : 0;\n const missingCasesPercentage = missingCasesCount > 0 ? round(missingCasesCount / lineListCaseCount * 100, 1) : 0;\n const shouldShowLoading = isLoading && !error;\n const canShowWidget = !!col && (regionSetShape?.geo_json && regionSetShape?.geo_json !== 'null') && series.length > 0;\n\n const widgetUnavailableReason = useMemo<ReactElement | string>(() => {\n if (canShowWidget) {\n return;\n }\n if (!col) {\n return t`No geographical column found.`;\n }\n if (!regionSetShape?.geo_json || regionSetShape?.geo_json === 'null') {\n return t`No geographical shape found for the selected column.`;\n }\n if (!series.length) {\n return t`No cases with valid geographical information found for the selected column.`;\n }\n return null;\n }, [canShowWidget, col, regionSetShape?.geo_json, series.length, t]);\n\n const onShowOnlySelectedRegionMenuItemClick = useCallback(async (onMenuClose: () => void) => {\n await setFilterValue(col.id, [focussedRegion.id]);\n onMenuClose();\n }, [col, focussedRegion, setFilterValue]);\n\n const getEpiContextMenuExtraItems = useCallback((onMenuClose: () => void): ReactElement => {\n if (!col || !focussedRegion?.name) {\n return null;\n }\n return (\n <MenuItem\n divider\n // eslint-disable-next-line @eslint-react/kit/jsx-no-bind\n onClick={async () => await onShowOnlySelectedRegionMenuItemClick(onMenuClose)}\n >\n <ListItemIcon>\n <FilterAltIcon fontSize={'small'} />\n </ListItemIcon>\n <ListItemText>\n {t('Filter (show only {{regionName}})', { regionName: focussedRegion?.name ?? '-' })}\n </ListItemText>\n </MenuItem>\n );\n }, [col, focussedRegion, onShowOnlySelectedRegionMenuItemClick, t]);\n\n useEffect(() => {\n const emitDownloadOptions = () => {\n EventBusService.getInstance().emit('onDownloadOptionsChanged', {\n disabled: !canShowWidget,\n items: [\n {\n callback: () => CaseDbDownloadUtil.downloadEchartsImage(t`Incidence map`, chartRef.current.getEchartsInstance(), 'png', completeCaseType, t),\n label: t`Save as PNG`,\n },\n {\n callback: () => CaseDbDownloadUtil.downloadEchartsImage(t`Incidence map`, chartRef.current.getEchartsInstance(), 'jpeg', completeCaseType, t),\n label: t`Save as JPEG`,\n },\n ],\n zone: DASHBOARD_COMPONENT_NAME.MAP,\n zoneLabel: t`Map`,\n });\n };\n\n\n emitDownloadOptions();\n const eventBusService = EventBusService.getInstance();\n eventBusService.addEventListener('onDownloadOptionsRequested', emitDownloadOptions);\n return () => {\n EventBusService.getInstance().emit('onDownloadOptionsChanged', {\n items: null,\n zone: DASHBOARD_COMPONENT_NAME.MAP,\n zoneLabel: t`Map`,\n });\n eventBusService.removeEventListener('onDownloadOptionsRequested', emitDownloadOptions);\n };\n }, [completeCaseType, canShowWidget, t]);\n\n return (\n <DashboardWidget\n expandDisabled={!canShowWidget}\n isLoading={shouldShowLoading}\n title={titleMenu}\n warningMessage={canShowWidget && mapCaseCount > 0 && missingCasesCount > 0 ? t('Missing cases: {{missingCasesCount}} ({{missingCasesPercentage}}%)', { missingCasesCount, missingCasesPercentage }) : undefined}\n widgetName={DASHBOARD_COMPONENT_NAME.MAP}\n >\n <Box\n ref={containerRef}\n sx={{\n height: '100%',\n position: 'relative',\n }}\n >\n {!shouldShowLoading && !canShowWidget && (\n <WidgetUnavailable\n reason={widgetUnavailableReason}\n widgetLabel={t`map`}\n />\n )}\n {canShowWidget && (\n <EChartsReact\n echarts={echartsCore}\n notMerge\n onChartReady={onChartReady}\n onEvents={onEvents}\n option={getOptions()}\n ref={chartRef}\n style={{\n height: '100%',\n position: 'absolute',\n width: '100%',\n }}\n />\n )}\n <ContextMenu\n config={contextMenuConfig}\n getExtraItems={getEpiContextMenuExtraItems}\n onMenuClose={onEpiContextMenuClose}\n />\n </Box>\n </DashboardWidget>\n );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CaseDbCase, CaseDbCaseSet } from '@gen-epix/api-casedb';
|
|
2
|
+
import { WithDialogRefMethods, WithDialogRenderProps } from '@gen-epix/ui/hoc/withDialog';
|
|
3
|
+
export interface RemoveCasesFromEventDialogOpenProps {
|
|
4
|
+
caseSet: CaseDbCaseSet;
|
|
5
|
+
rows: CaseDbCase[];
|
|
6
|
+
}
|
|
7
|
+
export interface RemoveCasesFromEventDialogProps extends WithDialogRenderProps<RemoveCasesFromEventDialogOpenProps> {
|
|
8
|
+
}
|
|
9
|
+
export type RemoveCasesFromEventDialogRefMethods = WithDialogRefMethods<RemoveCasesFromEventDialogProps, RemoveCasesFromEventDialogOpenProps>;
|
|
10
|
+
export declare const RemoveCasesFromEventDialog: import('react').ComponentClass<RemoveCasesFromEventDialogProps, import('@gen-epix/ui/hoc/withDialog').WithDialogState<RemoveCasesFromEventDialogOpenProps>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './RemoveCasesFromEventDialog';
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { CASEDB_QUERY_KEY as e } from "../../../constants/query.js";
|
|
2
|
+
import { t } from "../../../_chunks/react.js";
|
|
3
|
+
import { t as n } from "../../../_chunks/dashboardStore.js";
|
|
4
|
+
import { t as r } from "../../../_chunks/shallow.js";
|
|
5
|
+
import { CaseDbCaseApi as i } from "@gen-epix/api-casedb";
|
|
6
|
+
import { QueryClientService as a } from "@gen-epix/ui/classes/services/QueryClientService";
|
|
7
|
+
import { Box as o } from "@mui/material";
|
|
8
|
+
import { use as s, useCallback as c, useEffect as l, useMemo as u } from "react";
|
|
9
|
+
import { useTranslation as d } from "react-i18next";
|
|
10
|
+
import { jsx as f } from "react/jsx-runtime";
|
|
11
|
+
import { ResponseHandler as p } from "@gen-epix/ui/components/ui/ResponseHandler";
|
|
12
|
+
import { useQueryMemo as m } from "@gen-epix/ui/hooks/useQueryMemo";
|
|
13
|
+
import { withDialog as h } from "@gen-epix/ui/hoc/withDialog";
|
|
14
|
+
import { TestIdUtil as g } from "@gen-epix/ui-core/utils/TestIdUtil";
|
|
15
|
+
import { Spinner as _ } from "@gen-epix/ui/components/ui/Spinner";
|
|
16
|
+
import { useDeleteMutation as v } from "@gen-epix/ui/hooks/useDeleteMutation";
|
|
17
|
+
//#region src/components/ui/RemoveCasesFromEventDialog/RemoveCasesFromEventDialog.tsx
|
|
18
|
+
var y = h(({ onActionsChange: h, onClose: y, onTitleChange: b, openProps: x }) => {
|
|
19
|
+
let { t: S } = d(), C = s(n), w = t(C, r((e) => e.completeCaseType)), T = t(C, r((e) => e.fetchData)), E = t(C, r((e) => e.setSelectedIds)), D = x.rows.length > w.props.delete_max_n_cases, O = u(() => ({
|
|
20
|
+
filters: [{
|
|
21
|
+
invert: !1,
|
|
22
|
+
key: "case_id",
|
|
23
|
+
members: x.rows.map((e) => e.id),
|
|
24
|
+
type: "UUID_SET"
|
|
25
|
+
}, {
|
|
26
|
+
invert: !1,
|
|
27
|
+
key: "case_set_id",
|
|
28
|
+
members: [x.caseSet.id],
|
|
29
|
+
type: "UUID_SET"
|
|
30
|
+
}],
|
|
31
|
+
operator: "AND",
|
|
32
|
+
type: "COMPOSITE"
|
|
33
|
+
}), [x.caseSet.id, x.rows]), { data: k, error: A, isLoading: j } = m({
|
|
34
|
+
queryFn: async ({ signal: e }) => (await i.getInstance().caseSetMembersPostQuery(O, null, null, { signal: e })).data,
|
|
35
|
+
queryKey: a.getInstance().getGenericKey(e.CASE_SET_MEMBERS, O)
|
|
36
|
+
}), M = c(async () => {
|
|
37
|
+
E([]), await T(), y();
|
|
38
|
+
}, [
|
|
39
|
+
T,
|
|
40
|
+
y,
|
|
41
|
+
E
|
|
42
|
+
]), N = c(async () => {
|
|
43
|
+
await T(), y();
|
|
44
|
+
}, [T, y]), { isMutating: P, mutate: F } = v({
|
|
45
|
+
associationQueryKeys: a.getInstance().getQueryKeyDependencies([e.CASE_SET_MEMBERS], !0),
|
|
46
|
+
getErrorNotificationMessage: () => S("Could not remove all cases from {{eventName}}.", { eventName: x.caseSet.name }),
|
|
47
|
+
getProgressNotificationMessage: (e) => S("Removing {{numCases}} case(s) from {{eventName}}...", {
|
|
48
|
+
eventName: x.caseSet.name,
|
|
49
|
+
numCases: e.length
|
|
50
|
+
}),
|
|
51
|
+
getSuccessNotificationMessage: (e) => S("Successfully removed {{numCases}} case(s) from {{eventName}}.", {
|
|
52
|
+
eventName: x.caseSet.name,
|
|
53
|
+
numCases: e.length
|
|
54
|
+
}),
|
|
55
|
+
onError: N,
|
|
56
|
+
onSuccess: M,
|
|
57
|
+
queryFn: async (e) => {
|
|
58
|
+
await i.getInstance().caseSetMembersDeleteSome(e.map((e) => e.id).join(","));
|
|
59
|
+
}
|
|
60
|
+
}), I = c((() => {
|
|
61
|
+
F(k);
|
|
62
|
+
}), [F, k]), L = c((() => {
|
|
63
|
+
y();
|
|
64
|
+
}), [y]);
|
|
65
|
+
return l(() => {
|
|
66
|
+
b(S`Remove selected cases from event`);
|
|
67
|
+
}, [b, S]), l(() => {
|
|
68
|
+
let e = [];
|
|
69
|
+
e.push({
|
|
70
|
+
...g.createAttributes("RemoveCasesFromEventDialog-closeButton"),
|
|
71
|
+
autoFocus: !0,
|
|
72
|
+
color: "primary",
|
|
73
|
+
disabled: P,
|
|
74
|
+
label: S`Close`,
|
|
75
|
+
onClick: L,
|
|
76
|
+
variant: "outlined"
|
|
77
|
+
}), D || e.push({
|
|
78
|
+
...g.createAttributes("RemoveCasesFromEventDialog-confirmButton"),
|
|
79
|
+
autoFocus: !0,
|
|
80
|
+
color: "secondary",
|
|
81
|
+
disabled: P,
|
|
82
|
+
label: S`Confirm`,
|
|
83
|
+
onClick: I,
|
|
84
|
+
variant: "contained"
|
|
85
|
+
}), h(e);
|
|
86
|
+
}, [
|
|
87
|
+
D,
|
|
88
|
+
P,
|
|
89
|
+
h,
|
|
90
|
+
L,
|
|
91
|
+
I,
|
|
92
|
+
S
|
|
93
|
+
]), P ? /* @__PURE__ */ f(_, {}) : /* @__PURE__ */ f(p, {
|
|
94
|
+
error: A,
|
|
95
|
+
isLoading: j,
|
|
96
|
+
shouldHideActionButtons: !0,
|
|
97
|
+
children: D ? /* @__PURE__ */ f(o, { children: S("You can only remove up to {{maxCases}} cases at a time. Please refine your selection and try again.", { maxCases: w.props.delete_max_n_cases }) }) : /* @__PURE__ */ f(o, { children: S("Are you sure you want to remove {{numCases}} selected cases from {{eventName}}?", {
|
|
98
|
+
eventName: x.caseSet.name,
|
|
99
|
+
numCases: x.rows.length
|
|
100
|
+
}) })
|
|
101
|
+
});
|
|
102
|
+
}, {
|
|
103
|
+
defaultTitle: "",
|
|
104
|
+
fullWidth: !0,
|
|
105
|
+
maxWidth: "md",
|
|
106
|
+
testId: "RemoveCasesFromEventDialog"
|
|
107
|
+
});
|
|
108
|
+
//#endregion
|
|
109
|
+
export { y as RemoveCasesFromEventDialog };
|
|
110
|
+
|
|
111
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/ui/RemoveCasesFromEventDialog/RemoveCasesFromEventDialog.tsx"],"sourcesContent":["import { Box } from '@mui/material';\nimport {\n use,\n useCallback,\n useEffect,\n useMemo,\n} from 'react';\nimport type { ReactElement } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useStore } from 'zustand';\nimport { useShallow } from 'zustand/shallow';\nimport type {\n CaseDbCase,\n CaseDbCaseSet,\n CaseDbCaseSetMember,\n CaseDbTypedCompositeFilter,\n} from '@gen-epix/api-casedb';\nimport { CaseDbCaseApi } from '@gen-epix/api-casedb';\nimport type { DialogAction } from '@gen-epix/ui/components/ui/Dialog';\nimport type {\n WithDialogRefMethods,\n WithDialogRenderProps,\n} from '@gen-epix/ui/hoc/withDialog';\nimport { QueryClientService } from '@gen-epix/ui/classes/services/QueryClientService';\nimport { ResponseHandler } from '@gen-epix/ui/components/ui/ResponseHandler';\nimport { Spinner } from '@gen-epix/ui/components/ui/Spinner';\nimport { useDeleteMutation } from '@gen-epix/ui/hooks/useDeleteMutation';\nimport { useQueryMemo } from '@gen-epix/ui/hooks/useQueryMemo';\nimport { withDialog } from '@gen-epix/ui/hoc/withDialog';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\n\nimport { DashboardStoreContext } from '../../../stores/dashboardStore';\nimport { CASEDB_QUERY_KEY } from '../../../constants/query';\n\nexport interface RemoveCasesFromEventDialogOpenProps {\n caseSet: CaseDbCaseSet;\n rows: CaseDbCase[];\n}\n\nexport interface RemoveCasesFromEventDialogProps extends WithDialogRenderProps<RemoveCasesFromEventDialogOpenProps> {\n //\n}\n\nexport type RemoveCasesFromEventDialogRefMethods = WithDialogRefMethods<RemoveCasesFromEventDialogProps, RemoveCasesFromEventDialogOpenProps>;\n\nexport const RemoveCasesFromEventDialog = withDialog<RemoveCasesFromEventDialogProps, RemoveCasesFromEventDialogOpenProps>((\n {\n onActionsChange,\n onClose,\n onTitleChange,\n openProps,\n }: RemoveCasesFromEventDialogProps,\n): ReactElement => {\n const { t } = useTranslation();\n\n const dashboardStore = use(DashboardStoreContext);\n const completeCaseType = useStore(dashboardStore, useShallow((state) => state.completeCaseType));\n const fetchData = useStore(dashboardStore, useShallow((state) => state.fetchData));\n const setSelectedIds = useStore(dashboardStore, useShallow((state) => state.setSelectedIds));\n\n const isMaxExceeded = openProps.rows.length > completeCaseType.props.delete_max_n_cases;\n\n const caseSetMembersFilter = useMemo<CaseDbTypedCompositeFilter>(() => ({\n filters: [\n {\n invert: false,\n key: 'case_id',\n members: openProps.rows.map(row => row.id),\n type: 'UUID_SET',\n },\n {\n invert: false,\n key: 'case_set_id',\n members: [openProps.caseSet.id],\n type: 'UUID_SET',\n },\n ],\n operator: 'AND',\n type: 'COMPOSITE',\n }), [openProps.caseSet.id, openProps.rows]);\n\n const { data: caseSetMembers, error: caseSetMembersError, isLoading: isCaseSetMembersLoading } = useQueryMemo({\n queryFn: async ({ signal }) => {\n const response = await CaseDbCaseApi.getInstance().caseSetMembersPostQuery(caseSetMembersFilter, null, null, { signal });\n return response.data;\n },\n queryKey: QueryClientService.getInstance().getGenericKey(CASEDB_QUERY_KEY.CASE_SET_MEMBERS, caseSetMembersFilter),\n });\n\n const onSuccess = useCallback(async () => {\n setSelectedIds([]);\n await fetchData();\n onClose();\n }, [fetchData, onClose, setSelectedIds]);\n\n const onError = useCallback(async () => {\n await fetchData();\n onClose();\n }, [fetchData, onClose]);\n\n const { isMutating, mutate } = useDeleteMutation<CaseDbCaseSetMember[]>({\n associationQueryKeys: QueryClientService.getInstance().getQueryKeyDependencies([CASEDB_QUERY_KEY.CASE_SET_MEMBERS], true),\n getErrorNotificationMessage: () => t('Could not remove all cases from {{eventName}}.', { eventName: openProps.caseSet.name }),\n getProgressNotificationMessage: (items) => t('Removing {{numCases}} case(s) from {{eventName}}...', { eventName: openProps.caseSet.name, numCases: items.length }),\n getSuccessNotificationMessage: (items) => t('Successfully removed {{numCases}} case(s) from {{eventName}}.', { eventName: openProps.caseSet.name, numCases: items.length }),\n onError,\n onSuccess,\n queryFn: async (items: CaseDbCaseSetMember[]) => {\n await CaseDbCaseApi.getInstance().caseSetMembersDeleteSome(items.map(item => item.id).join(','));\n },\n });\n\n const onConfirmButtonClick = useCallback((() => {\n mutate(caseSetMembers);\n }), [mutate, caseSetMembers]);\n\n const onCancelButtonClick = useCallback((() => {\n onClose();\n }), [onClose]);\n\n useEffect(() => {\n onTitleChange(t`Remove selected cases from event`);\n }, [onTitleChange, t]);\n\n\n useEffect(() => {\n const actions: DialogAction[] = [];\n actions.push(\n {\n ...TestIdUtil.createAttributes('RemoveCasesFromEventDialog-closeButton'),\n autoFocus: true,\n color: 'primary',\n disabled: isMutating,\n label: t`Close`,\n onClick: onCancelButtonClick,\n variant: 'outlined',\n },\n );\n if (!isMaxExceeded) {\n actions.push(\n {\n ...TestIdUtil.createAttributes('RemoveCasesFromEventDialog-confirmButton'),\n autoFocus: true,\n color: 'secondary',\n disabled: isMutating,\n label: t`Confirm`,\n onClick: onConfirmButtonClick,\n variant: 'contained',\n },\n );\n }\n onActionsChange(actions);\n }, [isMaxExceeded, isMutating, onActionsChange, onCancelButtonClick, onConfirmButtonClick, t]);\n\n if (isMutating) {\n return <Spinner />;\n }\n\n return (\n <ResponseHandler\n error={caseSetMembersError}\n isLoading={isCaseSetMembersLoading}\n shouldHideActionButtons\n >\n {isMaxExceeded ? (\n <Box>\n {t('You can only remove up to {{maxCases}} cases at a time. Please refine your selection and try again.', { maxCases: completeCaseType.props.delete_max_n_cases })}\n </Box>\n ) : (\n <Box>\n {t('Are you sure you want to remove {{numCases}} selected cases from {{eventName}}?', { eventName: openProps.caseSet.name, numCases: openProps.rows.length })}\n </Box>\n )}\n </ResponseHandler>\n );\n}, {\n defaultTitle: '',\n fullWidth: true,\n maxWidth: 'md',\n testId: 'RemoveCasesFromEventDialog',\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CaseDbCompleteCaseType } from '@gen-epix/api-casedb';
|
|
2
|
+
import { WithDialogRefMethods, WithDialogRenderProps } from '@gen-epix/ui/hoc/withDialog';
|
|
3
|
+
export interface RemoveFindSimilarCasesResultDialogOpenProps {
|
|
4
|
+
completeCaseType: CaseDbCompleteCaseType;
|
|
5
|
+
}
|
|
6
|
+
export interface RemoveFindSimilarCasesResultDialogProps extends WithDialogRenderProps<RemoveFindSimilarCasesResultDialogOpenProps> {
|
|
7
|
+
}
|
|
8
|
+
export type RemoveFindSimilarCasesResultDialogRefMethods = WithDialogRefMethods<RemoveFindSimilarCasesResultDialogProps, RemoveFindSimilarCasesResultDialogOpenProps>;
|
|
9
|
+
export declare const RemoveFindSimilarCasesResultDialog: import('react').ComponentClass<RemoveFindSimilarCasesResultDialogProps, import('@gen-epix/ui/hoc/withDialog').WithDialogState<RemoveFindSimilarCasesResultDialogOpenProps>>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CaseDbCase } from '@gen-epix/api-casedb';
|
|
2
|
+
import { WithDialogRefMethods, WithDialogRenderProps } from '@gen-epix/ui/hoc/withDialog';
|
|
3
|
+
export interface SequenceDownloadDialogOpenProps {
|
|
4
|
+
cases: CaseDbCase[];
|
|
5
|
+
geneticSequenceColId?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface SequenceDownloadDialogProps extends WithDialogRenderProps<SequenceDownloadDialogOpenProps> {
|
|
8
|
+
}
|
|
9
|
+
export type SequenceDownloadDialogRefMethods = WithDialogRefMethods<SequenceDownloadDialogProps, SequenceDownloadDialogOpenProps>;
|
|
10
|
+
export declare const SequenceDownloadDialog: import('react').ComponentClass<SequenceDownloadDialogProps, import('@gen-epix/ui/hoc/withDialog').WithDialogState<SequenceDownloadDialogOpenProps>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './SequenceDownloadDialog';
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { t as e } from "../../../_chunks/react.js";
|
|
2
|
+
import { t } from "../../../_chunks/dashboardStore.js";
|
|
3
|
+
import { t as n } from "../../../_chunks/shallow.js";
|
|
4
|
+
import { n as r, o as i } from "../../../_chunks/index.esm.js";
|
|
5
|
+
import { CaseDbColType as a } from "@gen-epix/api-casedb";
|
|
6
|
+
import { StringUtil as o } from "@gen-epix/ui-core/utils/StringUtil";
|
|
7
|
+
import { ConfigService as s } from "@gen-epix/ui/classes/services/ConfigService";
|
|
8
|
+
import { Box as c, Button as l } from "@mui/material";
|
|
9
|
+
import { use as u, useCallback as d, useEffect as f, useMemo as p, useState as m } from "react";
|
|
10
|
+
import { useTranslation as h } from "react-i18next";
|
|
11
|
+
import { jsx as g, jsxs as _ } from "react/jsx-runtime";
|
|
12
|
+
import { DownloadUtil as v } from "@gen-epix/ui-core/utils/DownloadUtil";
|
|
13
|
+
import { withDialog as y } from "@gen-epix/ui/hoc/withDialog";
|
|
14
|
+
import { Autocomplete as b } from "@gen-epix/ui-form/components/fields/Autocomplete";
|
|
15
|
+
import x from "@mui/icons-material/Download";
|
|
16
|
+
import { AuthenticationService as S } from "@gen-epix/ui/classes/services/AuthenticationService";
|
|
17
|
+
//#region src/components/ui/SequenceDownloadDialog/SequenceDownloadDialog.tsx
|
|
18
|
+
var C = y(({ onClose: y, onTitleChange: C, openProps: w }) => {
|
|
19
|
+
let { t: T } = h(), E = e(u(t), n((e) => e.completeCaseType)), D = p(() => {
|
|
20
|
+
let e = [];
|
|
21
|
+
return E.ordered_dim_ids.map((e) => E.dims[e]).forEach((t) => {
|
|
22
|
+
E.ordered_col_ids_by_dim[t.id].map((e) => E.cols[e]).forEach((t) => {
|
|
23
|
+
E.ref_cols[t.ref_col_id]?.col_type === a.GENETIC_SEQUENCE && e.push({
|
|
24
|
+
label: t.label,
|
|
25
|
+
value: t.id
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}), e;
|
|
29
|
+
}, [E]), [O, k] = m(w?.geneticSequenceColId ?? D?.length === 1 ? D[0].value : ""), A = i({ values: { geneticSequenceColId: O } }), j = d(() => {}, []), M = d(() => {
|
|
30
|
+
v.downloadAsMultiPartForm({
|
|
31
|
+
accessToken: S.getInstance().authContextProps?.user?.access_token ?? "",
|
|
32
|
+
action: `${s.getInstance().config.getAPIBaseUrl()}/v1/retrieve/genetic_sequence/fasta`,
|
|
33
|
+
data: {
|
|
34
|
+
case_ids: w.cases.map((e) => e.id),
|
|
35
|
+
case_type_id: E.id,
|
|
36
|
+
file_name: `${o.createSlug(E.name)}-${o.createSlug(D.find((e) => e.value === O)?.label)}-sequences.fasta`,
|
|
37
|
+
genetic_sequence_col_id: O
|
|
38
|
+
}
|
|
39
|
+
}), y();
|
|
40
|
+
}, [
|
|
41
|
+
E.id,
|
|
42
|
+
E.name,
|
|
43
|
+
O,
|
|
44
|
+
D,
|
|
45
|
+
y,
|
|
46
|
+
w.cases
|
|
47
|
+
]);
|
|
48
|
+
return f(() => {
|
|
49
|
+
C(T`Download sequences`);
|
|
50
|
+
}, [C, T]), /* @__PURE__ */ _(c, { children: [/* @__PURE__ */ g(c, {
|
|
51
|
+
sx: { marginBottom: 3 },
|
|
52
|
+
children: /* @__PURE__ */ g(r, {
|
|
53
|
+
...A,
|
|
54
|
+
children: /* @__PURE__ */ g("form", {
|
|
55
|
+
autoComplete: "off",
|
|
56
|
+
onSubmit: j,
|
|
57
|
+
children: /* @__PURE__ */ g(b, {
|
|
58
|
+
disabled: D.length < 2,
|
|
59
|
+
label: T`Genetic sequence column`,
|
|
60
|
+
name: "geneticSequenceColId",
|
|
61
|
+
onChange: (e) => k(e),
|
|
62
|
+
options: D
|
|
63
|
+
})
|
|
64
|
+
})
|
|
65
|
+
})
|
|
66
|
+
}), O && /* @__PURE__ */ g(c, {
|
|
67
|
+
sx: {
|
|
68
|
+
display: "flex",
|
|
69
|
+
gap: 1,
|
|
70
|
+
justifyContent: "flex-end",
|
|
71
|
+
marginBottom: 1
|
|
72
|
+
},
|
|
73
|
+
children: /* @__PURE__ */ g(c, { children: /* @__PURE__ */ g(l, {
|
|
74
|
+
color: "primary",
|
|
75
|
+
onClick: M,
|
|
76
|
+
startIcon: /* @__PURE__ */ g(x, {}),
|
|
77
|
+
children: T`Download FASTA`
|
|
78
|
+
}) })
|
|
79
|
+
})] });
|
|
80
|
+
}, {
|
|
81
|
+
defaultTitle: "",
|
|
82
|
+
fullWidth: !0,
|
|
83
|
+
maxWidth: "lg",
|
|
84
|
+
testId: "SequenceDownloadDialog"
|
|
85
|
+
});
|
|
86
|
+
//#endregion
|
|
87
|
+
export { C as SequenceDownloadDialog };
|
|
88
|
+
|
|
89
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/ui/SequenceDownloadDialog/SequenceDownloadDialog.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\nimport {\n Box,\n Button,\n} from '@mui/material';\nimport DownloadIcon from '@mui/icons-material/Download';\nimport type { ReactElement } from 'react';\nimport {\n use,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { useStore } from 'zustand';\nimport { useShallow } from 'zustand/shallow';\nimport {\n FormProvider,\n useForm,\n} from 'react-hook-form';\nimport type { CaseDbCase } from '@gen-epix/api-casedb';\nimport { CaseDbColType } from '@gen-epix/api-casedb';\nimport type {\n WithDialogRefMethods,\n WithDialogRenderProps,\n} from '@gen-epix/ui/hoc/withDialog';\nimport { AuthenticationService } from '@gen-epix/ui/classes/services/AuthenticationService';\nimport { ConfigService } from '@gen-epix/ui/classes/services/ConfigService';\nimport { withDialog } from '@gen-epix/ui/hoc/withDialog';\nimport { StringUtil } from '@gen-epix/ui-core/utils/StringUtil';\nimport { DownloadUtil } from '@gen-epix/ui-core/utils/DownloadUtil';\nimport { Autocomplete } from '@gen-epix/ui-form/components/fields/Autocomplete';\nimport type { AutoCompleteOption } from '@gen-epix/ui-form/models/form';\n\nimport { DashboardStoreContext } from '../../../stores/dashboardStore';\n\n\nexport interface SequenceDownloadDialogOpenProps {\n cases: CaseDbCase[];\n geneticSequenceColId?: string;\n}\n\nexport interface SequenceDownloadDialogProps extends WithDialogRenderProps<SequenceDownloadDialogOpenProps> {\n //\n}\n\nexport type SequenceDownloadDialogRefMethods = WithDialogRefMethods<SequenceDownloadDialogProps, SequenceDownloadDialogOpenProps>;\n\ntype FormFields = {\n geneticSequenceColId: string;\n};\n\nexport const SequenceDownloadDialog = withDialog<SequenceDownloadDialogProps, SequenceDownloadDialogOpenProps>((\n {\n onClose,\n onTitleChange,\n openProps,\n }: SequenceDownloadDialogProps,\n): ReactElement => {\n const { t } = useTranslation();\n const dashboardStore = use(DashboardStoreContext);\n const completeCaseType = useStore(dashboardStore, useShallow((state) => state.completeCaseType));\n\n const geneticSequenceColOptions = useMemo<AutoCompleteOption<string>[]>(() => {\n const options: AutoCompleteOption<string>[] = [];\n\n completeCaseType.ordered_dim_ids.map(x => completeCaseType.dims[x]).forEach((dim) => {\n completeCaseType.ordered_col_ids_by_dim[dim.id].map(id => completeCaseType.cols[id]).forEach(col => {\n const refCol = completeCaseType.ref_cols[col.ref_col_id];\n if (refCol?.col_type === CaseDbColType.GENETIC_SEQUENCE) {\n options.push({\n label: col.label,\n value: col.id,\n });\n }\n });\n });\n return options;\n }, [completeCaseType]);\n\n const [geneticSequenceColId, setGeneticSequenceColId] = useState(openProps?.geneticSequenceColId ?? geneticSequenceColOptions?.length === 1 ? geneticSequenceColOptions[0].value : '');\n\n const formMethods = useForm<FormFields>({\n values: {\n geneticSequenceColId,\n },\n });\n\n const onSubmit = useCallback(() => {\n // noop, as the download is triggered by a button outside of the form\n }, []);\n\n const onDownloadFastaButtonClick = useCallback(() => {\n DownloadUtil.downloadAsMultiPartForm({\n accessToken: AuthenticationService.getInstance().authContextProps?.user?.access_token ?? '',\n action: `${ConfigService.getInstance().config.getAPIBaseUrl()}/v1/retrieve/genetic_sequence/fasta`,\n data: {\n case_ids: openProps.cases.map(c => c.id),\n case_type_id: completeCaseType.id,\n file_name: `${StringUtil.createSlug(completeCaseType.name)}-${StringUtil.createSlug(geneticSequenceColOptions.find(x => x.value === geneticSequenceColId)?.label)}-sequences.fasta`,\n genetic_sequence_col_id: geneticSequenceColId,\n },\n });\n onClose();\n }, [completeCaseType.id, completeCaseType.name, geneticSequenceColId, geneticSequenceColOptions, onClose, openProps.cases]);\n\n useEffect(() => {\n onTitleChange(t`Download sequences`);\n }, [onTitleChange, t]);\n\n return (\n <Box>\n <Box\n sx={{\n marginBottom: 3,\n }}\n >\n <FormProvider {...formMethods}>\n <form\n autoComplete={'off'}\n onSubmit={onSubmit}\n >\n <Autocomplete\n disabled={geneticSequenceColOptions.length < 2}\n label={t`Genetic sequence column`}\n name={'geneticSequenceColId'}\n // eslint-disable-next-line @eslint-react/kit/jsx-no-bind\n onChange={(value: string) => setGeneticSequenceColId(value)}\n options={geneticSequenceColOptions}\n />\n </form>\n </FormProvider>\n </Box>\n {geneticSequenceColId && (\n <Box\n sx={{\n display: 'flex',\n gap: 1,\n justifyContent: 'flex-end',\n marginBottom: 1,\n }}\n >\n <Box>\n <Button\n color={'primary'}\n onClick={onDownloadFastaButtonClick}\n startIcon={<DownloadIcon />}\n >\n {t`Download FASTA`}\n </Button>\n </Box>\n </Box>\n )}\n </Box>\n );\n}, {\n defaultTitle: '',\n fullWidth: true,\n maxWidth: 'lg',\n testId: 'SequenceDownloadDialog',\n});\n"],"mappings":";;;;;;;;;;;;;;;;;AAoDA,IAAa,IAAyB,GACpC,EACE,YACA,kBACA,mBAEe;CACjB,IAAM,EAAE,SAAM,EAAe,GAEvB,IAAmB,EADF,EAAI,CACO,GAAgB,GAAY,MAAU,EAAM,gBAAgB,CAAC,GAEzF,IAA4B,QAA4C;EAC5E,IAAM,IAAwC,CAAC;EAa/C,OAXA,EAAiB,gBAAgB,KAAI,MAAK,EAAiB,KAAK,EAAE,CAAC,CAAC,SAAS,MAAQ;GACnF,EAAiB,uBAAuB,EAAI,GAAG,CAAC,KAAI,MAAM,EAAiB,KAAK,EAAG,CAAC,CAAC,SAAQ,MAAO;IAElG,AADe,EAAiB,SAAS,EAAI,WACzC,EAAQ,aAAa,EAAc,oBACrC,EAAQ,KAAK;KACX,OAAO,EAAI;KACX,OAAO,EAAI;IACb,CAAC;GAEL,CAAC;EACH,CAAC,GACM;CACT,GAAG,CAAC,CAAgB,CAAC,GAEf,CAAC,GAAsB,KAA2B,EAAS,GAAW,wBAAwB,GAA2B,WAAW,IAAI,EAA0B,EAAE,CAAC,QAAQ,EAAE,GAE/K,IAAc,EAAoB,EACtC,QAAQ,EACN,wBACF,EACF,CAAC,GAEK,IAAW,QAAkB,CAEnC,GAAG,CAAC,CAAC,GAEC,IAA6B,QAAkB;EAWnD,AAVA,EAAa,wBAAwB;GACnC,aAAa,EAAsB,YAAY,CAAC,CAAC,kBAAkB,MAAM,gBAAgB;GACzF,QAAQ,GAAG,EAAc,YAAY,CAAC,CAAC,OAAO,cAAc,EAAE;GAC9D,MAAM;IACJ,UAAU,EAAU,MAAM,KAAI,MAAK,EAAE,EAAE;IACvC,cAAc,EAAiB;IAC/B,WAAW,GAAG,EAAW,WAAW,EAAiB,IAAI,EAAE,GAAG,EAAW,WAAW,EAA0B,MAAK,MAAK,EAAE,UAAU,CAAoB,CAAC,EAAE,KAAK,EAAE;IAClK,yBAAyB;GAC3B;EACF,CAAC,GACD,EAAQ;CACV,GAAG;EAAC,EAAiB;EAAI,EAAiB;EAAM;EAAsB;EAA2B;EAAS,EAAU;CAAK,CAAC;CAM1H,OAJA,QAAgB;EACd,EAAc,CAAC,oBAAoB;CACrC,GAAG,CAAC,GAAe,CAAC,CAAC,GAGnB,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,IAAI,EACF,cAAc,EAChB;YAEA,kBAAC,GAAD;GAAc,GAAI;aAChB,kBAAC,QAAD;IACE,cAAc;IACJ;cAEV,kBAAC,GAAD;KACE,UAAU,EAA0B,SAAS;KAC7C,OAAO,CAAC;KACR,MAAM;KAEN,WAAW,MAAkB,EAAwB,CAAK;KAC1D,SAAS;IACV,CAAA;GACG,CAAA;EACM,CAAA;CACX,CAAA,GACJ,KACC,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,KAAK;GACL,gBAAgB;GAChB,cAAc;EAChB;YAEA,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;GACE,OAAO;GACP,SAAS;GACT,WAAW,kBAAC,GAAD,CAAe,CAAA;aAEzB,CAAC;EACI,CAAA,EACL,CAAA;CACF,CAAA,CAEJ,EAAA,CAAA;AAET,GAAG;CACD,cAAc;CACd,WAAW;CACX,UAAU;CACV,QAAQ;AACV,CAAC"}
|