@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,570 @@
|
|
|
1
|
+
import { h as e, l as t, p as n } from "./_MapCache.js";
|
|
2
|
+
import { t as r } from "./isObjectLike.js";
|
|
3
|
+
import { t as i } from "./isArray.js";
|
|
4
|
+
import { t as a } from "./intersection.js";
|
|
5
|
+
import { t as o } from "./toDate.js";
|
|
6
|
+
import { i as s } from "./FilterUtil.js";
|
|
7
|
+
import { r as c } from "./eachYearOfInterval.js";
|
|
8
|
+
import { t as l } from "./EpiCurveUtil.js";
|
|
9
|
+
import { f as u, l as d } from "./protectedTokens.js";
|
|
10
|
+
import { n as f } from "./format.js";
|
|
11
|
+
import { i as p, n as m, r as h } from "./FindSimilarCasesUtil.js";
|
|
12
|
+
import { CaseTypeUtil as g } from "../utils/CaseTypeUtil/index.js";
|
|
13
|
+
import { StratificationUtil as _ } from "../utils/StratificationUtil/index.js";
|
|
14
|
+
import { t as v } from "./round.js";
|
|
15
|
+
import { DashboardUtil as y } from "../utils/DashboardUtil/index.js";
|
|
16
|
+
import { DASHBOARD_COMPONENT_NAME as b } from "../constants/dashboard.js";
|
|
17
|
+
import { a as x, d as S, f as C, h as w, l as T, m as E, n as D, o as O, p as ee, s as k, t as A } from "./esm.js";
|
|
18
|
+
import { t as j } from "./react.js";
|
|
19
|
+
import { t as te } from "./dashboardStore.js";
|
|
20
|
+
import { ContextMenu as ne } from "../components/ui/ContextMenu/index.js";
|
|
21
|
+
import { WidgetUnavailable as re } from "../components/ui/WidgetUnavailable/index.js";
|
|
22
|
+
import { EventBusService as ie } from "../classes/services/EventBusService/index.js";
|
|
23
|
+
import { t as M } from "./CaseDbDownloadUtil.js";
|
|
24
|
+
import { n as N } from "./LegendaItem.js";
|
|
25
|
+
import { t as ae } from "./Dashboard.js";
|
|
26
|
+
import { t as oe } from "./userProfileStoreContext.js";
|
|
27
|
+
import { CaseDbDimType as P } from "@gen-epix/api-casedb";
|
|
28
|
+
import { DATE_FORMAT as F } from "@gen-epix/ui-core/constants/date";
|
|
29
|
+
import { Box as se, ListItemIcon as ce, ListItemText as le, MenuItem as ue, useTheme as I } from "@mui/material";
|
|
30
|
+
import de from "@mui/icons-material/Leaderboard";
|
|
31
|
+
import fe from "@mui/icons-material/AreaChart";
|
|
32
|
+
import { use as L, useCallback as R, useEffect as z, useMemo as B, useRef as V, useState as H } from "react";
|
|
33
|
+
import { useTranslation as pe } from "react-i18next";
|
|
34
|
+
import me from "@mui/icons-material/FilterAlt";
|
|
35
|
+
import { jsx as U, jsxs as W } from "react/jsx-runtime";
|
|
36
|
+
//#region ../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/endOfWeek.js
|
|
37
|
+
function G(e, t) {
|
|
38
|
+
let n = u(), r = t?.weekStartsOn ?? t?.locale?.options?.weekStartsOn ?? n.weekStartsOn ?? n.locale?.options?.weekStartsOn ?? 0, i = o(e, t?.in), a = i.getDay(), s = (a < r ? -7 : 0) + 6 - (a - r);
|
|
39
|
+
return i.setDate(i.getDate() + s), i.setHours(23, 59, 59, 999), i;
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
//#region ../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/endOfISOWeek.js
|
|
43
|
+
function he(e, t) {
|
|
44
|
+
return G(e, {
|
|
45
|
+
...t,
|
|
46
|
+
weekStartsOn: 1
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//#endregion
|
|
50
|
+
//#region ../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/lastDayOfMonth.js
|
|
51
|
+
function ge(e, t) {
|
|
52
|
+
let n = o(e, t?.in), r = n.getMonth();
|
|
53
|
+
return n.setFullYear(n.getFullYear(), r + 1, 0), n.setHours(0, 0, 0, 0), o(n, t?.in);
|
|
54
|
+
}
|
|
55
|
+
//#endregion
|
|
56
|
+
//#region ../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isString.js
|
|
57
|
+
var K = /* @__PURE__ */ n(((e, n) => {
|
|
58
|
+
var a = t(), o = i(), s = r(), c = "[object String]";
|
|
59
|
+
function l(e) {
|
|
60
|
+
return typeof e == "string" || !o(e) && s(e) && a(e) == c;
|
|
61
|
+
}
|
|
62
|
+
n.exports = l;
|
|
63
|
+
})), _e = /* @__PURE__ */ e(v(), 1), q = /* @__PURE__ */ e(K(), 1), J = /* @__PURE__ */ e(a(), 1), ve = ({ chartRef: e, echarts: t, getXAxisLabel: n, items: r, onCaseIdsChange: i, onChartReady: a, onPointMouseUp: o, stratification: s, xAxisIntervals: c }) => {
|
|
64
|
+
let u = I(), d = V(null), f = L(N), p = B(() => l.getBarChartSeriesData(r, c, n, s, u), [
|
|
65
|
+
r,
|
|
66
|
+
c,
|
|
67
|
+
n,
|
|
68
|
+
s,
|
|
69
|
+
u
|
|
70
|
+
]);
|
|
71
|
+
z(() => {
|
|
72
|
+
let e = f.highlightSubject.subscribe((e) => {
|
|
73
|
+
if (e.origin === b.EPI_CURVE) return;
|
|
74
|
+
let t = d.current;
|
|
75
|
+
if (!t) return;
|
|
76
|
+
if (!e.caseIds.length) {
|
|
77
|
+
t.dispatchAction({ type: "downplay" });
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
let n = [];
|
|
81
|
+
p.series?.forEach((t, r) => {
|
|
82
|
+
t.data?.forEach((t, i) => {
|
|
83
|
+
(0, J.default)(JSON.parse(t[2]), e.caseIds).length && n.push({
|
|
84
|
+
dataIndex: i,
|
|
85
|
+
seriesIndex: r
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
}), t.dispatchAction({ type: "downplay" }), n.forEach((e) => {
|
|
89
|
+
t.dispatchAction({
|
|
90
|
+
dataIndex: e.dataIndex,
|
|
91
|
+
seriesIndex: e.seriesIndex,
|
|
92
|
+
type: "highlight"
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
return () => {
|
|
97
|
+
e();
|
|
98
|
+
};
|
|
99
|
+
}, [f, p]);
|
|
100
|
+
let m = R((e) => {
|
|
101
|
+
d.current = e, a?.(e);
|
|
102
|
+
}, [a]), h = R(() => ({
|
|
103
|
+
grid: {
|
|
104
|
+
bottom: 64,
|
|
105
|
+
left: 48,
|
|
106
|
+
right: 8,
|
|
107
|
+
top: 16
|
|
108
|
+
},
|
|
109
|
+
series: p.series,
|
|
110
|
+
tooltip: {
|
|
111
|
+
formatter: (e) => {
|
|
112
|
+
let t = e;
|
|
113
|
+
return s?.legendaItems?.length ? `${t.name} - ${t.seriesName} (n=${t.value[1]})` : `${t.name} (n=${t.value[1]})`;
|
|
114
|
+
},
|
|
115
|
+
show: !0,
|
|
116
|
+
trigger: "item",
|
|
117
|
+
triggerOn: "mousemove"
|
|
118
|
+
},
|
|
119
|
+
xAxis: {
|
|
120
|
+
axisLabel: {
|
|
121
|
+
height: 100,
|
|
122
|
+
rotate: 45
|
|
123
|
+
},
|
|
124
|
+
axisTick: {
|
|
125
|
+
alignWithLabel: !0,
|
|
126
|
+
show: !0
|
|
127
|
+
},
|
|
128
|
+
data: c.map((e) => n(e)),
|
|
129
|
+
type: "category"
|
|
130
|
+
},
|
|
131
|
+
yAxis: {
|
|
132
|
+
max: p.max,
|
|
133
|
+
min: 0,
|
|
134
|
+
minInterval: 1,
|
|
135
|
+
type: "value"
|
|
136
|
+
}
|
|
137
|
+
}), [
|
|
138
|
+
s,
|
|
139
|
+
p.series,
|
|
140
|
+
p.max,
|
|
141
|
+
c,
|
|
142
|
+
n
|
|
143
|
+
]);
|
|
144
|
+
return /* @__PURE__ */ U(A, {
|
|
145
|
+
echarts: t,
|
|
146
|
+
notMerge: !0,
|
|
147
|
+
onChartReady: m,
|
|
148
|
+
onEvents: B(() => {
|
|
149
|
+
let e = (e) => {
|
|
150
|
+
let t = e?.data?.[2];
|
|
151
|
+
return (0, q.default)(t) ? JSON.parse(t) : [];
|
|
152
|
+
};
|
|
153
|
+
return {
|
|
154
|
+
mouseout: () => {
|
|
155
|
+
i?.([]);
|
|
156
|
+
},
|
|
157
|
+
mouseover: (t) => {
|
|
158
|
+
i?.(e(t));
|
|
159
|
+
},
|
|
160
|
+
mouseup: (t) => {
|
|
161
|
+
let n = t?.event?.event;
|
|
162
|
+
o?.({
|
|
163
|
+
caseIds: e(t),
|
|
164
|
+
focussedDate: t?.name,
|
|
165
|
+
mouseEvent: n
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
}, [i, o]),
|
|
170
|
+
option: h(),
|
|
171
|
+
ref: e,
|
|
172
|
+
style: {
|
|
173
|
+
height: "100%",
|
|
174
|
+
position: "absolute",
|
|
175
|
+
width: "100%"
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
}, ye = ({ chartRef: e, echarts: t, getXAxisLabel: n, includeMissingValues: r, items: i, onCaseIdsChange: a, onChartReady: o, onPointMouseUp: s, stratification: c, xAxisIntervals: u }) => {
|
|
179
|
+
let d = I(), f = V(null), p = V(null), m = L(N), h = B(() => l.getAreaChartSeriesData(i, u, n, r, c), [
|
|
180
|
+
i,
|
|
181
|
+
u,
|
|
182
|
+
n,
|
|
183
|
+
r,
|
|
184
|
+
c
|
|
185
|
+
]), g = B(() => {
|
|
186
|
+
let e = {}, t = c?.caseIdColors ?? {};
|
|
187
|
+
return Object.entries(t).forEach(([t, n]) => {
|
|
188
|
+
e[n] || (e[n] = []), e[n].push(t);
|
|
189
|
+
}), e;
|
|
190
|
+
}, [c]), v = B(() => h.series?.length ? h.series.map((e) => {
|
|
191
|
+
let t = e.color;
|
|
192
|
+
return typeof t == "string" ? g[t] ?? [] : [];
|
|
193
|
+
}) : [], [g, h]), y = R((e, t) => {
|
|
194
|
+
if (!h.series || e < 0 || t < 0) return [];
|
|
195
|
+
let n = h.series?.[e]?.data?.[t];
|
|
196
|
+
return n?.[2] && (0, q.default)(n[2]) ? JSON.parse(n[2]) : [];
|
|
197
|
+
}, [h]), x = R((e) => {
|
|
198
|
+
if (!e.length) return [];
|
|
199
|
+
let t = c?.caseIdColors;
|
|
200
|
+
if (!t) return e;
|
|
201
|
+
let n = e.find((e) => !!t[e]);
|
|
202
|
+
return n ? g[t[n]] ?? e : e;
|
|
203
|
+
}, [g, c]), S = R(() => ({
|
|
204
|
+
color: _.getEchartsColors(c, d),
|
|
205
|
+
grid: {
|
|
206
|
+
bottom: 64,
|
|
207
|
+
left: 48,
|
|
208
|
+
right: 8,
|
|
209
|
+
top: 16
|
|
210
|
+
},
|
|
211
|
+
series: h.series,
|
|
212
|
+
tooltip: {
|
|
213
|
+
formatter: (e) => {
|
|
214
|
+
let t = e;
|
|
215
|
+
if (!t?.length) return "";
|
|
216
|
+
let n = t[0].name, r = f.current;
|
|
217
|
+
return [n, ...t.map((e) => {
|
|
218
|
+
let t = `${e.marker ?? ""}${e.seriesName} (${Number(e.value[1]).toFixed(1)}%)`;
|
|
219
|
+
return r !== null && e.seriesIndex === r ? `<b>${t}</b>` : t;
|
|
220
|
+
})].join("<br/>");
|
|
221
|
+
},
|
|
222
|
+
show: !0,
|
|
223
|
+
trigger: "axis",
|
|
224
|
+
triggerOn: "mousemove"
|
|
225
|
+
},
|
|
226
|
+
xAxis: {
|
|
227
|
+
axisLabel: {
|
|
228
|
+
height: 100,
|
|
229
|
+
rotate: 45
|
|
230
|
+
},
|
|
231
|
+
axisTick: {
|
|
232
|
+
alignWithLabel: !0,
|
|
233
|
+
show: !0
|
|
234
|
+
},
|
|
235
|
+
data: u.map((e) => n(e)),
|
|
236
|
+
type: "category"
|
|
237
|
+
},
|
|
238
|
+
yAxis: {
|
|
239
|
+
max: h.max,
|
|
240
|
+
min: 0,
|
|
241
|
+
minInterval: 1,
|
|
242
|
+
type: "value"
|
|
243
|
+
}
|
|
244
|
+
}), [
|
|
245
|
+
c,
|
|
246
|
+
d,
|
|
247
|
+
h.series,
|
|
248
|
+
h.max,
|
|
249
|
+
u,
|
|
250
|
+
n
|
|
251
|
+
]), C = R((e) => {
|
|
252
|
+
let t = p.current;
|
|
253
|
+
t && (t.dispatchAction({ type: "downplay" }), typeof e == "number" && e >= 0 && t.dispatchAction({
|
|
254
|
+
seriesIndex: e,
|
|
255
|
+
type: "highlight"
|
|
256
|
+
}));
|
|
257
|
+
}, []);
|
|
258
|
+
return z(() => {
|
|
259
|
+
let e = m.highlightSubject.subscribe((e) => {
|
|
260
|
+
if (e.origin === b.EPI_CURVE) return;
|
|
261
|
+
let t = p.current;
|
|
262
|
+
if (!t) return;
|
|
263
|
+
if (!e.caseIds.length) {
|
|
264
|
+
t.dispatchAction({ type: "downplay" });
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
let n = [];
|
|
268
|
+
h.series?.forEach((t, r) => {
|
|
269
|
+
t.data?.forEach((t, i) => {
|
|
270
|
+
(0, J.default)(JSON.parse(t[2]), e.caseIds).length && n.push({
|
|
271
|
+
dataIndex: i,
|
|
272
|
+
seriesIndex: r
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
}), t.dispatchAction({ type: "downplay" }), n.forEach((e) => {
|
|
276
|
+
t.dispatchAction({
|
|
277
|
+
dataIndex: e.dataIndex,
|
|
278
|
+
seriesIndex: e.seriesIndex,
|
|
279
|
+
type: "highlight"
|
|
280
|
+
});
|
|
281
|
+
});
|
|
282
|
+
});
|
|
283
|
+
return () => {
|
|
284
|
+
e();
|
|
285
|
+
};
|
|
286
|
+
}, [m, h]), /* @__PURE__ */ U(A, {
|
|
287
|
+
echarts: t,
|
|
288
|
+
notMerge: !0,
|
|
289
|
+
onChartReady: R((e) => {
|
|
290
|
+
p.current = e, o?.(e);
|
|
291
|
+
}, [o]),
|
|
292
|
+
onEvents: B(() => {
|
|
293
|
+
let e = (e) => {
|
|
294
|
+
let t = e;
|
|
295
|
+
if (typeof t.seriesIndex == "number" && t.seriesIndex >= 0) return v[t.seriesIndex] ?? [];
|
|
296
|
+
let n = t?.data?.[2];
|
|
297
|
+
return (0, q.default)(n) ? x(JSON.parse(n)) : typeof t.seriesIndex == "number" && typeof t.dataIndex == "number" && t.seriesIndex >= 0 && t.dataIndex >= 0 ? x(y(t.seriesIndex, t.dataIndex)) : [];
|
|
298
|
+
};
|
|
299
|
+
return {
|
|
300
|
+
globalout: () => {
|
|
301
|
+
f.current = null, C(null), a?.([]);
|
|
302
|
+
},
|
|
303
|
+
mouseout: () => {
|
|
304
|
+
f.current = null, C(null), a?.([]);
|
|
305
|
+
},
|
|
306
|
+
mouseover: (t) => {
|
|
307
|
+
let n = t;
|
|
308
|
+
f.current = typeof n.seriesIndex == "number" ? n.seriesIndex : null, C(f.current);
|
|
309
|
+
let r = e(t);
|
|
310
|
+
r.length && a?.(r);
|
|
311
|
+
},
|
|
312
|
+
mouseup: (t) => {
|
|
313
|
+
let n = t?.event?.event;
|
|
314
|
+
s?.({
|
|
315
|
+
caseIds: e(t),
|
|
316
|
+
focussedDate: t?.name,
|
|
317
|
+
mouseEvent: n
|
|
318
|
+
});
|
|
319
|
+
},
|
|
320
|
+
updateAxisPointer: (e) => {
|
|
321
|
+
let t = e.seriesDataIndices?.[0]?.seriesIndex;
|
|
322
|
+
typeof t == "number" && (f.current = t), C(f.current);
|
|
323
|
+
}
|
|
324
|
+
};
|
|
325
|
+
}, [
|
|
326
|
+
v,
|
|
327
|
+
x,
|
|
328
|
+
y,
|
|
329
|
+
a,
|
|
330
|
+
s,
|
|
331
|
+
C
|
|
332
|
+
]),
|
|
333
|
+
option: S(),
|
|
334
|
+
ref: e,
|
|
335
|
+
style: {
|
|
336
|
+
height: "100%",
|
|
337
|
+
position: "absolute",
|
|
338
|
+
width: "100%"
|
|
339
|
+
}
|
|
340
|
+
});
|
|
341
|
+
}, be = {
|
|
342
|
+
dispose: ee,
|
|
343
|
+
getInstanceByDom: E,
|
|
344
|
+
init: w
|
|
345
|
+
};
|
|
346
|
+
C([
|
|
347
|
+
T,
|
|
348
|
+
S,
|
|
349
|
+
k,
|
|
350
|
+
x,
|
|
351
|
+
O,
|
|
352
|
+
D
|
|
353
|
+
]);
|
|
354
|
+
var Y = () => {
|
|
355
|
+
let { t: e } = pe(), [t, n] = H(null), [r, i] = H("bar"), a = V(null), o = L(N), u = L(oe), _ = L(te), v = j(_, (e) => e.stratification), x = j(_, (e) => e.isDataLoading), S = j(_, (e) => e.sortedData), C = j(_, (e) => e.completeCaseType), w = j(_, (e) => e.updateWidgetData), T = j(_, (e) => e.getWidgetData(b.EPI_CURVE)), E = j(_, (e) => e.setFilterValue), D = j(_, (e) => e.filterDimensions), O = B(() => g.getDims(C, [P.TIME]), [C]), ee = j(u, (e) => e.dashboardWidgetSettings[b.EPI_CURVE].isIncludeMissingValuesInAreaChartEnabled), [k, A] = H(null), [I, G] = H(null), K = I?.label ?? "", J = R(() => {
|
|
356
|
+
n(null), A(null);
|
|
357
|
+
}, []), Y = B(() => y.getCaseCount(S), [S]);
|
|
358
|
+
z(() => {
|
|
359
|
+
!v && r === "area" && i("bar");
|
|
360
|
+
}, [v, r]);
|
|
361
|
+
let xe = B(() => [{
|
|
362
|
+
active: r === "bar",
|
|
363
|
+
callback: () => {
|
|
364
|
+
i("bar");
|
|
365
|
+
},
|
|
366
|
+
label: e`Bar chart`,
|
|
367
|
+
leftIcon: /* @__PURE__ */ U(de, {})
|
|
368
|
+
}, {
|
|
369
|
+
active: r === "area",
|
|
370
|
+
callback: () => {
|
|
371
|
+
i("area");
|
|
372
|
+
},
|
|
373
|
+
disabled: !v,
|
|
374
|
+
label: e`Normalized stacked area chart`,
|
|
375
|
+
leftIcon: /* @__PURE__ */ U(fe, {})
|
|
376
|
+
}], [
|
|
377
|
+
e,
|
|
378
|
+
r,
|
|
379
|
+
v
|
|
380
|
+
]), Se = B(() => {
|
|
381
|
+
let t;
|
|
382
|
+
t = I ? e("Epi curve: {{label}}", { label: I.label }) : e`Epi curve`;
|
|
383
|
+
let n = {
|
|
384
|
+
disabled: !O.length,
|
|
385
|
+
items: [],
|
|
386
|
+
label: t,
|
|
387
|
+
tooltip: I ? C.ref_cols[I.ref_col_id].description : void 0
|
|
388
|
+
};
|
|
389
|
+
return C.ordered_dim_ids.map((e) => C.dims[e]).filter((e) => C.ref_dims[e.ref_dim_id].dim_type === P.TIME).forEach((e) => {
|
|
390
|
+
n.items.length && (n.items.at(-1).divider = !0), C.ordered_col_ids_by_dim[e.id].map((e) => C.cols[e]).forEach((e) => {
|
|
391
|
+
n.items.push({
|
|
392
|
+
active: e.id === I?.id,
|
|
393
|
+
callback: () => {
|
|
394
|
+
w(b.EPI_CURVE, { columnId: e.id }), G(e);
|
|
395
|
+
},
|
|
396
|
+
label: e.label,
|
|
397
|
+
tooltip: e.description
|
|
398
|
+
});
|
|
399
|
+
});
|
|
400
|
+
}), n;
|
|
401
|
+
}, [
|
|
402
|
+
I,
|
|
403
|
+
C,
|
|
404
|
+
e,
|
|
405
|
+
O.length,
|
|
406
|
+
w
|
|
407
|
+
]);
|
|
408
|
+
z(() => {
|
|
409
|
+
I || O.length && (T.columnId ? G(g.getCols(C).find((e) => e.id === T.columnId)) : S.length && G(l.getPreferredTimeColumn(C, S, g.getCols(C, C.case_date_dim_id))));
|
|
410
|
+
}, [
|
|
411
|
+
I,
|
|
412
|
+
C,
|
|
413
|
+
T.columnId,
|
|
414
|
+
O,
|
|
415
|
+
S
|
|
416
|
+
]);
|
|
417
|
+
let X = B(() => I ? l.getSortedItems(C, S, [I]) : [], [
|
|
418
|
+
I,
|
|
419
|
+
S,
|
|
420
|
+
C
|
|
421
|
+
]), Z = B(() => X.reduce((e, t) => e + t.value, 0) ?? 0, [X]), Ce = R((e) => I ? l.getXAxisLabel(C.ref_cols[I.ref_col_id].col_type, e) : null, [I, C.ref_cols]), we = B(() => I ? l.getXAxisIntervals(C.ref_cols[I.ref_col_id].col_type, X) : [], [
|
|
422
|
+
I,
|
|
423
|
+
C.ref_cols,
|
|
424
|
+
X
|
|
425
|
+
]), Te = R((e) => {
|
|
426
|
+
o.highlight({
|
|
427
|
+
caseIds: e,
|
|
428
|
+
origin: b.EPI_CURVE
|
|
429
|
+
});
|
|
430
|
+
}, [o]), Ee = R((e) => {
|
|
431
|
+
A(e.focussedDate), n({
|
|
432
|
+
caseIds: e.caseIds,
|
|
433
|
+
mouseEvent: e.mouseEvent,
|
|
434
|
+
position: {
|
|
435
|
+
left: e.mouseEvent?.clientX,
|
|
436
|
+
top: e.mouseEvent?.clientY
|
|
437
|
+
}
|
|
438
|
+
});
|
|
439
|
+
}, []), De = R((t) => {
|
|
440
|
+
let n = t.getDom();
|
|
441
|
+
n?.setAttribute("aria-label", e("Epidemiological curve showing the number of cases over time ({{label}})", { label: K })), n?.setAttribute("role", "img");
|
|
442
|
+
}, [K, e]), Oe = R(async (e) => {
|
|
443
|
+
if (!(0, q.default)(k) || !I?.id) {
|
|
444
|
+
e();
|
|
445
|
+
return;
|
|
446
|
+
}
|
|
447
|
+
let t = D.find((e) => e.filterIds.includes(I.id)).preferredFilterId, n, r;
|
|
448
|
+
if (k.match(/^\d{4}$/)) {
|
|
449
|
+
let e = s(k, F.YEAR, /* @__PURE__ */ new Date());
|
|
450
|
+
n = f(e), r = h(e);
|
|
451
|
+
} else if (k.match(/^\d{4}-\d{2}$/)) {
|
|
452
|
+
let e = s(k, F.YEAR_MONTH, /* @__PURE__ */ new Date());
|
|
453
|
+
n = m(e), r = ge(e);
|
|
454
|
+
} else if (k.match(/^\d{4}-\d{2}-\d{2}$/)) {
|
|
455
|
+
let e = s(k, F.DATE, /* @__PURE__ */ new Date());
|
|
456
|
+
n = e, r = e;
|
|
457
|
+
} else if (k.match(/^\d{4}-W\d{2}$/)) {
|
|
458
|
+
let e = s(k, F.YEAR_WEEK, /* @__PURE__ */ new Date(), { useAdditionalWeekYearTokens: !0 });
|
|
459
|
+
n = d(e), r = he(e);
|
|
460
|
+
} else if (k.match(/^\d{4}-Q\d$/)) {
|
|
461
|
+
let e = s(k, F.YEAR_QUARTER, /* @__PURE__ */ new Date());
|
|
462
|
+
n = c(e), r = p(e);
|
|
463
|
+
}
|
|
464
|
+
n && r && await E(t, [n, r]), e();
|
|
465
|
+
}, [
|
|
466
|
+
k,
|
|
467
|
+
I,
|
|
468
|
+
D,
|
|
469
|
+
E
|
|
470
|
+
]), ke = R((t) => k ? /* @__PURE__ */ W(ue, {
|
|
471
|
+
divider: !0,
|
|
472
|
+
onClick: async () => await Oe(t),
|
|
473
|
+
children: [/* @__PURE__ */ U(ce, { children: /* @__PURE__ */ U(me, { fontSize: "small" }) }), /* @__PURE__ */ U(le, { children: e("Filter (show only {{date}})", { date: k }) })]
|
|
474
|
+
}) : null, [
|
|
475
|
+
k,
|
|
476
|
+
Oe,
|
|
477
|
+
e
|
|
478
|
+
]), Q = Y - Z, Ae = Q > 0 ? (0, _e.default)(Q / Y * 100, 1) : 0, $ = Z > 0 && O.length > 0, je = B(() => {
|
|
479
|
+
if (!$) return O.length ? Y ? I ? Z ? null : e`No cases with valid date- / time information found for the selected column.` : e`No time column selected.` : e`No cases found.` : e`No time column found.`;
|
|
480
|
+
}, [
|
|
481
|
+
$,
|
|
482
|
+
I,
|
|
483
|
+
Z,
|
|
484
|
+
Y,
|
|
485
|
+
e,
|
|
486
|
+
O.length
|
|
487
|
+
]);
|
|
488
|
+
return z(() => {
|
|
489
|
+
let t = () => {
|
|
490
|
+
ie.getInstance().emit("onDownloadOptionsChanged", {
|
|
491
|
+
disabled: !$,
|
|
492
|
+
items: [{
|
|
493
|
+
callback: () => M.downloadEchartsImage(e`Epi curve`, a.current.getEchartsInstance(), "png", C, e),
|
|
494
|
+
label: e`Save as PNG`
|
|
495
|
+
}, {
|
|
496
|
+
callback: () => M.downloadEchartsImage(e`Epi curve`, a.current.getEchartsInstance(), "jpeg", C, e),
|
|
497
|
+
label: e`Save as JPEG`
|
|
498
|
+
}],
|
|
499
|
+
zone: b.EPI_CURVE,
|
|
500
|
+
zoneLabel: e`Epi curve`
|
|
501
|
+
});
|
|
502
|
+
};
|
|
503
|
+
t();
|
|
504
|
+
let n = ie.getInstance();
|
|
505
|
+
return n.addEventListener("onDownloadOptionsRequested", t), () => {
|
|
506
|
+
n.emit("onDownloadOptionsChanged", {
|
|
507
|
+
items: null,
|
|
508
|
+
zone: b.EPI_CURVE,
|
|
509
|
+
zoneLabel: e`Epi curve`
|
|
510
|
+
}), n.removeEventListener("onDownloadOptionsRequested", t);
|
|
511
|
+
};
|
|
512
|
+
}, [
|
|
513
|
+
C,
|
|
514
|
+
$,
|
|
515
|
+
e
|
|
516
|
+
]), /* @__PURE__ */ W(ae, {
|
|
517
|
+
expandDisabled: !$,
|
|
518
|
+
isLoading: x,
|
|
519
|
+
primaryMenu: xe,
|
|
520
|
+
title: Se,
|
|
521
|
+
warningMessage: $ && Z > 0 && Q > 0 ? e("Missing cases: {{missingCasesCount}} ({{missingCasesPercentage}}%)", {
|
|
522
|
+
missingCasesCount: Q,
|
|
523
|
+
missingCasesPercentage: Ae
|
|
524
|
+
}) : void 0,
|
|
525
|
+
widgetName: b.EPI_CURVE,
|
|
526
|
+
children: [!$ && /* @__PURE__ */ U(re, {
|
|
527
|
+
reason: je,
|
|
528
|
+
widgetLabel: e`epi curve`
|
|
529
|
+
}), $ && /* @__PURE__ */ W(se, {
|
|
530
|
+
sx: {
|
|
531
|
+
height: "100%",
|
|
532
|
+
position: "relative"
|
|
533
|
+
},
|
|
534
|
+
children: [
|
|
535
|
+
X?.length > 0 && r === "bar" && /* @__PURE__ */ U(ve, {
|
|
536
|
+
chartRef: a,
|
|
537
|
+
echarts: be,
|
|
538
|
+
getXAxisLabel: Ce,
|
|
539
|
+
items: X,
|
|
540
|
+
onCaseIdsChange: Te,
|
|
541
|
+
onChartReady: De,
|
|
542
|
+
onPointMouseUp: Ee,
|
|
543
|
+
stratification: v,
|
|
544
|
+
xAxisIntervals: we
|
|
545
|
+
}),
|
|
546
|
+
X?.length > 0 && r === "area" && /* @__PURE__ */ U(ye, {
|
|
547
|
+
chartRef: a,
|
|
548
|
+
echarts: be,
|
|
549
|
+
getXAxisLabel: Ce,
|
|
550
|
+
includeMissingValues: ee,
|
|
551
|
+
items: X,
|
|
552
|
+
onCaseIdsChange: Te,
|
|
553
|
+
onChartReady: De,
|
|
554
|
+
onPointMouseUp: Ee,
|
|
555
|
+
stratification: v,
|
|
556
|
+
xAxisIntervals: we
|
|
557
|
+
}),
|
|
558
|
+
/* @__PURE__ */ U(ne, {
|
|
559
|
+
config: t,
|
|
560
|
+
getExtraItems: ke,
|
|
561
|
+
onMenuClose: J
|
|
562
|
+
})
|
|
563
|
+
]
|
|
564
|
+
})]
|
|
565
|
+
});
|
|
566
|
+
};
|
|
567
|
+
//#endregion
|
|
568
|
+
export { Y as t };
|
|
569
|
+
|
|
570
|
+
//# sourceMappingURL=EpiCurveWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EpiCurveWidget.js","names":[],"sources":["../../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/endOfWeek.js","../../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/endOfISOWeek.js","../../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/lastDayOfMonth.js","../../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isString.js","../../src/components/ui/EpiCurveWidget/EpiCurveBarChart.tsx","../../src/components/ui/EpiCurveWidget/EpiCurveStackedAreaChart.tsx","../../src/components/ui/EpiCurveWidget/EpiCurveWidget.tsx"],"sourcesContent":["import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfWeek} function options.\n */\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport function endOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n _date.setDate(_date.getDate() + diff);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfWeek;\n","import { endOfWeek } from \"./endOfWeek.js\";\n\n/**\n * The {@link endOfISOWeek} function options.\n */\n\n/**\n * @name endOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the end of an ISO week for the given date.\n *\n * @description\n * Return the end of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of an ISO week\n *\n * @example\n * // The end of an ISO week for 2 September 2014 11:55:00:\n * const result = endOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport function endOfISOWeek(date, options) {\n return endOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default endOfISOWeek;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link lastDayOfMonth} function options.\n */\n\n/**\n * @name lastDayOfMonth\n * @category Month Helpers\n * @summary Return the last day of a month for the given date.\n *\n * @description\n * Return the last day of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The last day of a month\n *\n * @example\n * // The last day of a month for 2 September 2014 11:55:00:\n * const result = lastDayOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\nexport function lastDayOfMonth(date, options) {\n const _date = toDate(date, options?.in);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(0, 0, 0, 0);\n return toDate(_date, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default lastDayOfMonth;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","import type { EChartsReactProps } from 'echarts-for-react';\nimport EChartsReact from 'echarts-for-react';\nimport type {\n EChartsOption,\n EChartsType,\n} from 'echarts';\nimport {\n use,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport type { Ref } from 'react';\nimport isString from 'lodash/isString';\nimport intersection from 'lodash/intersection';\nimport { useTheme } from '@mui/material';\n\nimport { EpiCurveUtil } from '../../../utils/EpiCurveUtil';\nimport type { EpiCurveChartItem } from '../../../utils/EpiCurveUtil';\nimport type { Stratification } from '../../../models/stratification';\nimport { DashboardContext } from '../Dashboard/context/DashboardContext';\nimport { DASHBOARD_COMPONENT_NAME } from '../../../constants/dashboard';\n\nexport interface EpiCurveBarChartProps {\n chartRef: Ref<EChartsReact>;\n echarts: unknown;\n getXAxisLabel: (value: Date) => string;\n items: EpiCurveChartItem[];\n onCaseIdsChange?: (caseIds: string[]) => void;\n onChartReady?: (chart: EChartsType) => void;\n onPointMouseUp?: (payload: { caseIds: string[]; focussedDate: string; mouseEvent: MouseEvent }) => void;\n stratification?: Stratification;\n xAxisIntervals: Date[];\n}\n\nexport const EpiCurveBarChart = ({\n chartRef,\n echarts,\n getXAxisLabel,\n items,\n onCaseIdsChange,\n onChartReady,\n onPointMouseUp,\n stratification,\n xAxisIntervals,\n}: EpiCurveBarChartProps) => {\n const theme = useTheme();\n const chartInstanceRef = useRef<EChartsType | null>(null);\n const dashboardContext = use(DashboardContext);\n\n // Calculate series data only when rendering\n const seriesData = useMemo(() => EpiCurveUtil.getBarChartSeriesData(items, xAxisIntervals, getXAxisLabel, stratification, theme), [items, xAxisIntervals, getXAxisLabel, stratification, theme]);\n\n useEffect(() => {\n const unsubscribe = dashboardContext.highlightSubject.subscribe((highlighting) => {\n if (highlighting.origin === DASHBOARD_COMPONENT_NAME.EPI_CURVE) {\n return;\n }\n\n const instance = chartInstanceRef.current;\n if (!instance) {\n return;\n }\n\n if (!highlighting.caseIds.length) {\n instance.dispatchAction({\n type: 'downplay',\n });\n return;\n }\n\n const highlightTargets: Array<{ dataIndex: number; seriesIndex: number }> = [];\n seriesData.series?.forEach((serie, serieIndex) => {\n const serieData = (serie as { data: unknown[] }).data;\n serieData?.forEach((dataArray: unknown, dataIndex: number) => {\n const caseIds = JSON.parse((dataArray as [unknown, unknown, string])[2]) as string[];\n if (intersection(caseIds, highlighting.caseIds).length) {\n highlightTargets.push({\n dataIndex,\n seriesIndex: serieIndex,\n });\n }\n });\n });\n\n instance.dispatchAction({\n type: 'downplay',\n });\n\n highlightTargets.forEach((target) => {\n instance.dispatchAction({\n dataIndex: target.dataIndex,\n seriesIndex: target.seriesIndex,\n type: 'highlight',\n });\n });\n });\n\n return () => {\n unsubscribe();\n };\n }, [dashboardContext, seriesData]);\n\n const onInternalChartReady = useCallback((chart: EChartsType) => {\n chartInstanceRef.current = chart;\n onChartReady?.(chart);\n }, [onChartReady]);\n\n const getOptions = useCallback(() => {\n return {\n grid: {\n bottom: 64,\n left: 48,\n right: 8,\n top: 16,\n },\n series: seriesData.series,\n tooltip: {\n formatter: (params) => {\n const typedParams = params as { name: string; seriesName: string; value: number[] };\n\n // For bar chart, show count\n if (stratification?.legendaItems?.length) {\n return `${typedParams.name} - ${typedParams.seriesName} (n=${typedParams.value[1]})`;\n }\n return `${typedParams.name} (n=${typedParams.value[1]})`;\n },\n show: true,\n trigger: 'item',\n triggerOn: 'mousemove',\n },\n xAxis: {\n axisLabel: {\n height: 100,\n rotate: 45,\n },\n axisTick: {\n alignWithLabel: true,\n show: true,\n },\n data: xAxisIntervals.map(x => getXAxisLabel(x)),\n type: 'category',\n },\n yAxis: {\n max: seriesData.max,\n min: 0,\n minInterval: 1,\n type: 'value',\n },\n } satisfies EChartsOption;\n }, [stratification, seriesData.series, seriesData.max, xAxisIntervals, getXAxisLabel]);\n\n const onEvents = useMemo<EChartsReactProps['onEvents']>(() => {\n const getCaseIdsFromEvent = (event: unknown): string[] => {\n const caseIds = (event as { data?: [unknown, unknown, string] })?.data?.[2];\n if (isString(caseIds)) {\n return JSON.parse(caseIds) as string[];\n }\n return [];\n };\n\n return {\n mouseout: () => {\n onCaseIdsChange?.([]);\n },\n mouseover: (event: unknown) => {\n onCaseIdsChange?.(getCaseIdsFromEvent(event));\n },\n mouseup: (event: unknown) => {\n const mouseEvent = (event as { event?: { event?: MouseEvent } })?.event?.event;\n onPointMouseUp?.({\n caseIds: getCaseIdsFromEvent(event),\n focussedDate: (event as { name?: string })?.name,\n mouseEvent,\n });\n },\n };\n }, [onCaseIdsChange, onPointMouseUp]);\n\n return (\n <EChartsReact\n echarts={echarts}\n notMerge\n onChartReady={onInternalChartReady}\n onEvents={onEvents}\n option={getOptions()}\n ref={chartRef}\n style={{\n height: '100%',\n position: 'absolute',\n width: '100%',\n }}\n />\n );\n};\n","import type { EChartsReactProps } from 'echarts-for-react';\nimport EChartsReact from 'echarts-for-react';\nimport type {\n EChartsOption,\n EChartsType,\n} from 'echarts';\nimport {\n use,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport type { Ref } from 'react';\nimport isString from 'lodash/isString';\nimport intersection from 'lodash/intersection';\nimport { useTheme } from '@mui/material';\n\nimport { EpiCurveUtil } from '../../../utils/EpiCurveUtil';\nimport type { EpiCurveChartItem } from '../../../utils/EpiCurveUtil';\nimport type { Stratification } from '../../../models/stratification';\nimport { StratificationUtil } from '../../../utils/StratificationUtil';\nimport { DashboardContext } from '../Dashboard/context/DashboardContext';\nimport { DASHBOARD_COMPONENT_NAME } from '../../../constants/dashboard';\n\nexport interface EpiCurveStackedAreaChartProps {\n chartRef: Ref<EChartsReact>;\n echarts: unknown;\n getXAxisLabel: (value: Date) => string;\n includeMissingValues: boolean;\n items: EpiCurveChartItem[];\n onCaseIdsChange?: (caseIds: string[]) => void;\n onChartReady?: (chart: EChartsType) => void;\n onPointMouseUp?: (payload: { caseIds: string[]; focussedDate: string; mouseEvent: MouseEvent }) => void;\n stratification?: Stratification;\n xAxisIntervals: Date[];\n}\n\nexport const EpiCurveStackedAreaChart = ({\n chartRef,\n echarts,\n getXAxisLabel,\n includeMissingValues,\n items,\n onCaseIdsChange,\n onChartReady,\n onPointMouseUp,\n stratification,\n xAxisIntervals,\n}: EpiCurveStackedAreaChartProps) => {\n const theme = useTheme();\n const hoveredSeriesIndexRef = useRef<null | number>(null);\n const chartInstanceRef = useRef<EChartsType | null>(null);\n const dashboardContext = use(DashboardContext);\n\n // Calculate series data only when rendering\n const seriesData = useMemo(() =>\n EpiCurveUtil.getAreaChartSeriesData(items, xAxisIntervals, getXAxisLabel, includeMissingValues, stratification),\n [items, xAxisIntervals, getXAxisLabel, includeMissingValues, stratification]);\n\n // Fast lookup table: color -> all caseIds having that stratification color.\n const caseIdsByColor = useMemo(() => {\n const buckets: { [color: string]: string[] } = {};\n const colorMap = stratification?.caseIdColors ?? {};\n\n Object.entries(colorMap).forEach(([caseId, color]) => {\n if (!buckets[color]) {\n buckets[color] = [];\n }\n buckets[color].push(caseId);\n });\n\n return buckets;\n }, [stratification]);\n\n // Fast O(1) lookup: all caseIds for a hovered stratification area (series).\n const caseIdsBySeriesIndex = useMemo(() => {\n if (!seriesData.series?.length) {\n return [] as string[][];\n }\n\n return (seriesData.series as Array<{ color?: string }>).map((series) => {\n const seriesColor = series.color;\n return typeof seriesColor === 'string' ? (caseIdsByColor[seriesColor] ?? []) : [];\n });\n }, [caseIdsByColor, seriesData]);\n\n const getCaseIdsForPoint = useCallback((seriesIndex: number, dataIndex: number): string[] => {\n if (!seriesData.series || seriesIndex < 0 || dataIndex < 0) {\n return [];\n }\n const series = (seriesData.series as Array<{ data?: unknown[] }>)?.[seriesIndex];\n const point = (series?.data as Array<[unknown, unknown, string]>)?.[dataIndex];\n if (point?.[2] && isString(point[2])) {\n return JSON.parse(point[2]) as string[];\n }\n return [];\n }, [seriesData]);\n\n const expandToStratificationColorCaseIds = useCallback((candidateCaseIds: string[]): string[] => {\n if (!candidateCaseIds.length) {\n return [];\n }\n\n const colorMap = stratification?.caseIdColors;\n if (!colorMap) {\n return candidateCaseIds;\n }\n\n const referenceCaseId = candidateCaseIds.find(caseId => !!colorMap[caseId]);\n if (!referenceCaseId) {\n return candidateCaseIds;\n }\n\n const referenceColor = colorMap[referenceCaseId];\n return caseIdsByColor[referenceColor] ?? candidateCaseIds;\n }, [caseIdsByColor, stratification]);\n\n const getOptions = useCallback(() => {\n return {\n color: StratificationUtil.getEchartsColors(stratification, theme),\n grid: {\n bottom: 64,\n left: 48,\n right: 8,\n top: 16,\n },\n series: seriesData.series,\n tooltip: {\n formatter: (params) => {\n const typedParams = params as Array<{ marker?: string; name: string; seriesIndex: number; seriesName: string; value: number[] }>;\n if (!typedParams?.length) {\n return '';\n }\n\n const header = typedParams[0].name;\n const hoveredSeriesIndex = hoveredSeriesIndexRef.current;\n const lines = typedParams.map(param => {\n const line = `${param.marker ?? ''}${param.seriesName} (${Number(param.value[1]).toFixed(1)}%)`;\n if (hoveredSeriesIndex !== null && param.seriesIndex === hoveredSeriesIndex) {\n return `<b>${line}</b>`;\n }\n return line;\n });\n return [header, ...lines].join('<br/>');\n },\n show: true,\n trigger: 'axis',\n triggerOn: 'mousemove',\n },\n xAxis: {\n axisLabel: {\n height: 100,\n rotate: 45,\n },\n axisTick: {\n alignWithLabel: true,\n show: true,\n },\n data: xAxisIntervals.map(x => getXAxisLabel(x)),\n type: 'category',\n },\n yAxis: {\n max: seriesData.max,\n min: 0,\n minInterval: 1,\n type: 'value',\n },\n } satisfies EChartsOption;\n }, [stratification, theme, seriesData.series, seriesData.max, xAxisIntervals, getXAxisLabel]);\n\n const setHighlightedSeries = useCallback((seriesIndex: null | number) => {\n const instance = chartInstanceRef.current;\n if (!instance) {\n return;\n }\n\n instance.dispatchAction({\n type: 'downplay',\n });\n\n if (typeof seriesIndex === 'number' && seriesIndex >= 0) {\n instance.dispatchAction({\n seriesIndex,\n type: 'highlight',\n });\n }\n }, []);\n\n useEffect(() => {\n const unsubscribe = dashboardContext.highlightSubject.subscribe((highlighting) => {\n if (highlighting.origin === DASHBOARD_COMPONENT_NAME.EPI_CURVE) {\n return;\n }\n\n const instance = chartInstanceRef.current;\n if (!instance) {\n return;\n }\n\n if (!highlighting.caseIds.length) {\n instance.dispatchAction({\n type: 'downplay',\n });\n return;\n }\n\n const highlightTargets: Array<{ dataIndex: number; seriesIndex: number }> = [];\n seriesData.series?.forEach((serie, serieIndex) => {\n const serieData = (serie as { data: unknown[] }).data;\n serieData?.forEach((dataArray: unknown, dataIndex: number) => {\n const caseIds = JSON.parse((dataArray as [unknown, unknown, string])[2]) as string[];\n if (intersection(caseIds, highlighting.caseIds).length) {\n highlightTargets.push({\n dataIndex,\n seriesIndex: serieIndex,\n });\n }\n });\n });\n\n instance.dispatchAction({\n type: 'downplay',\n });\n\n highlightTargets.forEach((target) => {\n instance.dispatchAction({\n dataIndex: target.dataIndex,\n seriesIndex: target.seriesIndex,\n type: 'highlight',\n });\n });\n });\n\n return () => {\n unsubscribe();\n };\n }, [dashboardContext, seriesData]);\n\n const onInternalChartReady = useCallback((chart: EChartsType) => {\n chartInstanceRef.current = chart;\n onChartReady?.(chart);\n }, [onChartReady]);\n\n const onEvents = useMemo<EChartsReactProps['onEvents']>(() => {\n const getCaseIdsFromItemEvent = (event: unknown): string[] => {\n const eventData = event as {\n data?: [unknown, unknown, string];\n dataIndex?: number;\n seriesIndex?: number;\n };\n\n if (typeof eventData.seriesIndex === 'number' && eventData.seriesIndex >= 0) {\n return caseIdsBySeriesIndex[eventData.seriesIndex] ?? [];\n }\n\n const caseIdsFromData = eventData?.data?.[2];\n if (isString(caseIdsFromData)) {\n return expandToStratificationColorCaseIds(JSON.parse(caseIdsFromData) as string[]);\n }\n\n if (typeof eventData.seriesIndex === 'number'\n && typeof eventData.dataIndex === 'number'\n && eventData.seriesIndex >= 0\n && eventData.dataIndex >= 0) {\n return expandToStratificationColorCaseIds(getCaseIdsForPoint(eventData.seriesIndex, eventData.dataIndex));\n }\n\n return [];\n };\n\n return {\n globalout: () => {\n hoveredSeriesIndexRef.current = null;\n setHighlightedSeries(null);\n onCaseIdsChange?.([]);\n },\n mouseout: () => {\n hoveredSeriesIndexRef.current = null;\n setHighlightedSeries(null);\n onCaseIdsChange?.([]);\n },\n mouseover: (event: unknown) => {\n const eventData = event as { seriesIndex?: number };\n hoveredSeriesIndexRef.current = typeof eventData.seriesIndex === 'number' ? eventData.seriesIndex : null;\n setHighlightedSeries(hoveredSeriesIndexRef.current);\n const caseIds = getCaseIdsFromItemEvent(event);\n if (caseIds.length) {\n onCaseIdsChange?.(caseIds);\n }\n },\n mouseup: (event: unknown) => {\n const mouseEvent = (event as { event?: { event?: MouseEvent } })?.event?.event;\n onPointMouseUp?.({\n caseIds: getCaseIdsFromItemEvent(event),\n focussedDate: (event as { name?: string })?.name,\n mouseEvent,\n });\n },\n updateAxisPointer: (event: unknown) => {\n const axisEvent = event as {\n seriesDataIndices?: Array<{ seriesIndex?: number }>;\n };\n const hoveredSeriesIndex = axisEvent.seriesDataIndices?.[0]?.seriesIndex;\n if (typeof hoveredSeriesIndex === 'number') {\n hoveredSeriesIndexRef.current = hoveredSeriesIndex;\n }\n setHighlightedSeries(hoveredSeriesIndexRef.current);\n },\n };\n }, [caseIdsBySeriesIndex, expandToStratificationColorCaseIds, getCaseIdsForPoint, onCaseIdsChange, onPointMouseUp, setHighlightedSeries]);\n\n return (\n <EChartsReact\n echarts={echarts}\n notMerge\n onChartReady={onInternalChartReady}\n onEvents={onEvents}\n option={getOptions()}\n ref={chartRef}\n style={{\n height: '100%',\n position: 'absolute',\n width: '100%',\n }}\n />\n );\n};\n","import {\n Box,\n ListItemIcon,\n ListItemText,\n MenuItem,\n} from '@mui/material';\nimport LeaderboardIcon from '@mui/icons-material/Leaderboard';\nimport AreaChartIcon from '@mui/icons-material/AreaChart';\nimport {\n dispose,\n getInstanceByDom,\n init,\n use as registerECharts,\n} from 'echarts/core';\nimport {\n DataZoomComponent,\n GridComponent,\n TooltipComponent,\n} from 'echarts/components';\nimport {\n BarChart,\n LineChart,\n} from 'echarts/charts';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport type EChartsReact from 'echarts-for-react';\nimport type { ReactElement } from 'react';\nimport {\n use,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport isString from 'lodash/isString';\nimport round from 'lodash/round';\nimport type { EChartsType } from 'echarts';\nimport { useTranslation } from 'react-i18next';\nimport { useStore } from 'zustand';\nimport FilterAltIcon from '@mui/icons-material/FilterAlt';\nimport {\n endOfISOWeek,\n endOfQuarter,\n endOfYear,\n lastDayOfMonth,\n parse,\n startOfISOWeek,\n startOfMonth,\n startOfQuarter,\n startOfYear,\n} from 'date-fns';\nimport type { CaseDbCol } from '@gen-epix/api-casedb';\nimport { CaseDbDimType } from '@gen-epix/api-casedb';\nimport type { MenuItemData } from '@gen-epix/ui/models/nestedMenu';\nimport { DATE_FORMAT } from '@gen-epix/ui-core/constants/date';\n\nimport { DashboardStoreContext } from '../../../stores/dashboardStore';\nimport { CaseTypeUtil } from '../../../utils/CaseTypeUtil';\nimport { EpiCurveUtil } from '../../../utils/EpiCurveUtil';\nimport type { ContextMenuConfigWithPosition } from '../ContextMenu';\nimport { ContextMenu } from '../ContextMenu';\nimport { WidgetUnavailable } from '../WidgetUnavailable';\nimport { EventBusService } from '../../../classes/services/EventBusService';\nimport { CaseDbDownloadUtil } from '../../../utils/CaseDbDownloadUtil';\nimport { DashboardUtil } from '../../../utils/DashboardUtil';\nimport { DashboardWidget } from '../Dashboard';\nimport { DASHBOARD_COMPONENT_NAME } from '../../../constants/dashboard';\nimport { UserProfileStoreContext } from '../../../stores/userProfileStore/userProfileStoreContext';\nimport { DashboardContext } from '../Dashboard/context/DashboardContext';\nimport type {\n DashboardEpiCurveSettings,\n EpiCurveWidgetData,\n} from '../../../models/dashboard';\n\nimport { EpiCurveBarChart } from './EpiCurveBarChart';\nimport { EpiCurveStackedAreaChart } from './EpiCurveStackedAreaChart';\n\nconst echartsCore = {\n dispose,\n getInstanceByDom,\n init,\n};\n\nregisterECharts([TooltipComponent, GridComponent, DataZoomComponent, BarChart, LineChart, CanvasRenderer]);\n\nexport type ChartType = 'area' | 'bar';\n\nexport const EpiCurveWidget = () => {\n const { t } = useTranslation();\n const [contextMenuConfig, setContextMenuConfig] = useState<ContextMenuConfigWithPosition | null>(null);\n const [chartType, setChartType] = useState<ChartType>('bar');\n const chartRef = useRef<EChartsReact>(null);\n const dashboardContext = use(DashboardContext);\n const userProfileStore = use(UserProfileStoreContext);\n\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 completeCaseType = useStore(dashboardStore, (state) => state.completeCaseType);\n const updateWidgetData = useStore(dashboardStore, (state) => state.updateWidgetData);\n const epiCurveWidgetData = useStore(dashboardStore, (state) => state.getWidgetData<EpiCurveWidgetData>(DASHBOARD_COMPONENT_NAME.EPI_CURVE));\n const setFilterValue = useStore(dashboardStore, (state) => state.setFilterValue);\n const filterDimensions = useStore(dashboardStore, (state) => state.filterDimensions);\n const timeDims = useMemo(() => CaseTypeUtil.getDims(completeCaseType, [CaseDbDimType.TIME]), [completeCaseType]);\n const isIncludeMissingValuesInAreaChartEnabled = useStore(userProfileStore, (state) => (state.dashboardWidgetSettings[DASHBOARD_COMPONENT_NAME.EPI_CURVE] as DashboardEpiCurveSettings).isIncludeMissingValuesInAreaChartEnabled);\n const [focussedDate, setFocussedDate] = useState<string>(null);\n const [col, setCol] = useState<CaseDbCol>(null);\n const colLabel = col?.label ?? '';\n\n const onEpiContextMenuClose = useCallback(() => {\n setContextMenuConfig(null);\n setFocussedDate(null);\n }, []);\n\n const lineListCaseCount = useMemo(() => {\n return DashboardUtil.getCaseCount(sortedData);\n }, [sortedData]);\n\n\n // Auto-switch to bar chart if stratification is disabled while showing area chart\n useEffect(() => {\n if (!stratification && chartType === 'area') {\n setChartType('bar');\n }\n }, [stratification, chartType]);\n\n const primaryMenu = useMemo<MenuItemData[]>(() => {\n return [\n {\n active: chartType === 'bar',\n callback: () => {\n setChartType('bar');\n },\n label: t`Bar chart`,\n leftIcon: <LeaderboardIcon />,\n },\n {\n active: chartType === 'area',\n callback: () => {\n setChartType('area');\n },\n disabled: !stratification,\n label: t`Normalized stacked area chart`,\n leftIcon: <AreaChartIcon />,\n },\n ];\n }, [t, chartType, stratification]);\n\n const titleMenu = useMemo<MenuItemData>(() => {\n let label: string;\n if (col) {\n label = t('Epi curve: {{label}}', { label: col.label });\n } else {\n label = t`Epi curve`;\n }\n\n const menu: MenuItemData = {\n disabled: !timeDims.length,\n items: [],\n label,\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.TIME;\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<EpiCurveWidgetData>(DASHBOARD_COMPONENT_NAME.EPI_CURVE, { 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, t, timeDims.length, updateWidgetData]);\n\n useEffect(() => {\n if (col) {\n return;\n }\n if (!timeDims.length) {\n return;\n }\n if (epiCurveWidgetData.columnId) {\n setCol(CaseTypeUtil.getCols(completeCaseType).find(c => c.id === epiCurveWidgetData.columnId));\n } else if (sortedData.length) {\n setCol(EpiCurveUtil.getPreferredTimeColumn(\n completeCaseType,\n sortedData,\n CaseTypeUtil.getCols(completeCaseType, completeCaseType.case_date_dim_id),\n ));\n }\n }, [col, completeCaseType, epiCurveWidgetData.columnId, timeDims, sortedData]);\n\n const items = useMemo(() => {\n if (!col) {\n return [];\n }\n return EpiCurveUtil.getSortedItems(completeCaseType, sortedData, [col]);\n }, [col, sortedData, completeCaseType]);\n\n const epiCurveCaseCount = useMemo(() => {\n return items.reduce((prev, current) => {\n return prev + current.value;\n }, 0) ?? 0;\n }, [items]);\n\n const getXAxisLabel = useCallback((value: Date): string => {\n if (!col) {\n return null;\n }\n\n return EpiCurveUtil.getXAxisLabel(completeCaseType.ref_cols[col.ref_col_id].col_type, value);\n }, [col, completeCaseType.ref_cols]);\n\n const xAxisIntervals = useMemo<Date[]>(() => {\n if (!col) {\n return [];\n }\n return EpiCurveUtil.getXAxisIntervals(completeCaseType.ref_cols[col.ref_col_id].col_type, items);\n }, [col, completeCaseType.ref_cols, items]);\n\n const onChartCaseIdsChange = useCallback((caseIds: string[]) => {\n dashboardContext.highlight({\n caseIds,\n origin: DASHBOARD_COMPONENT_NAME.EPI_CURVE,\n });\n }, [dashboardContext]);\n\n const onChartPointMouseUp = useCallback((payload: { caseIds: string[]; focussedDate: string; mouseEvent: MouseEvent }) => {\n setFocussedDate(payload.focussedDate);\n setContextMenuConfig({\n caseIds: payload.caseIds,\n mouseEvent: payload.mouseEvent,\n position: {\n left: payload.mouseEvent?.clientX,\n top: payload.mouseEvent?.clientY,\n },\n });\n }, []);\n\n const onChartReady = useCallback((chart: EChartsType) => {\n const dom = chart.getDom();\n dom?.setAttribute('aria-label', t('Epidemiological curve showing the number of cases over time ({{label}})', { label: colLabel }));\n dom?.setAttribute('role', 'img');\n }, [colLabel, t]);\n\n const onShowOnlySelectedDateMenuItemClick = useCallback(async (onMenuClose: () => void) => {\n if (!isString(focussedDate) || !col?.id) {\n onMenuClose();\n return;\n }\n const dateDimension = filterDimensions.find(filterDimension => filterDimension.filterIds.includes(col.id));\n const dateColumnId = dateDimension.preferredFilterId;\n\n let fromDate: Date;\n let toDate: Date;\n\n if (focussedDate.match(/^\\d{4}$/)) {\n const date = parse(focussedDate, DATE_FORMAT.YEAR, new Date());\n fromDate = startOfYear(date);\n toDate = endOfYear(date);\n // year\n } else if (focussedDate.match(/^\\d{4}-\\d{2}$/)) {\n // month\n const date = parse(focussedDate, DATE_FORMAT.YEAR_MONTH, new Date());\n fromDate = startOfMonth(date);\n toDate = lastDayOfMonth(date);\n } else if (focussedDate.match(/^\\d{4}-\\d{2}-\\d{2}$/)) {\n // full date\n const date = parse(focussedDate, DATE_FORMAT.DATE, new Date());\n fromDate = date;\n toDate = date;\n } else if (focussedDate.match(/^\\d{4}-W\\d{2}$/)) {\n // week\n const date = parse(focussedDate, DATE_FORMAT.YEAR_WEEK, new Date(), {\n useAdditionalWeekYearTokens: true,\n });\n fromDate = startOfISOWeek(date);\n toDate = endOfISOWeek(date);\n } else if (focussedDate.match(/^\\d{4}-Q\\d$/)) {\n // quarter\n const date = parse(focussedDate, DATE_FORMAT.YEAR_QUARTER, new Date());\n fromDate = startOfQuarter(date);\n toDate = endOfQuarter(date);\n }\n\n if (fromDate && toDate) {\n await setFilterValue(dateColumnId, [fromDate, toDate]);\n }\n\n onMenuClose();\n }, [focussedDate, col, filterDimensions, setFilterValue]);\n\n const getEpiContextMenuExtraItems = useCallback((onMenuClose: () => void): ReactElement => {\n if (!focussedDate) {\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 onShowOnlySelectedDateMenuItemClick(onMenuClose)}\n >\n <ListItemIcon>\n <FilterAltIcon fontSize={'small'} />\n </ListItemIcon>\n <ListItemText>\n {t('Filter (show only {{date}})', { date: focussedDate })}\n </ListItemText>\n </MenuItem>\n );\n }, [focussedDate, onShowOnlySelectedDateMenuItemClick, t]);\n\n const missingCasesCount = lineListCaseCount - epiCurveCaseCount;\n const missingCasesPercentage = missingCasesCount > 0 ? round(missingCasesCount / lineListCaseCount * 100, 1) : 0;\n const canShowWidget = epiCurveCaseCount > 0 && timeDims.length > 0;\n\n const widgetUnavailableReason = useMemo<ReactElement | string>(() => {\n if (canShowWidget) {\n return;\n }\n if (!timeDims.length) {\n return t`No time column found.`;\n }\n if (!lineListCaseCount) {\n return t`No cases found.`;\n }\n if (!col) {\n return t`No time column selected.`;\n }\n if (!epiCurveCaseCount) {\n return t`No cases with valid date- / time information found for the selected column.`;\n }\n return null;\n }, [canShowWidget, col, epiCurveCaseCount, lineListCaseCount, t, timeDims.length]);\n\n\n useEffect(() => {\n const emitDownloadOptions = () => {\n EventBusService.getInstance().emit('onDownloadOptionsChanged', {\n disabled: !canShowWidget,\n items: [\n {\n callback: () => CaseDbDownloadUtil.downloadEchartsImage(t`Epi curve`, chartRef.current.getEchartsInstance(), 'png', completeCaseType, t),\n label: t`Save as PNG`,\n },\n {\n callback: () => CaseDbDownloadUtil.downloadEchartsImage(t`Epi curve`, chartRef.current.getEchartsInstance(), 'jpeg', completeCaseType, t),\n label: t`Save as JPEG`,\n },\n ],\n zone: DASHBOARD_COMPONENT_NAME.EPI_CURVE,\n zoneLabel: t`Epi curve`,\n });\n };\n emitDownloadOptions();\n const eventBusManager = EventBusService.getInstance();\n eventBusManager.addEventListener('onDownloadOptionsRequested', emitDownloadOptions);\n return () => {\n eventBusManager.emit('onDownloadOptionsChanged', {\n items: null,\n zone: DASHBOARD_COMPONENT_NAME.EPI_CURVE,\n zoneLabel: t`Epi curve`,\n });\n eventBusManager.removeEventListener('onDownloadOptionsRequested', emitDownloadOptions);\n };\n }, [completeCaseType, canShowWidget, t]);\n\n return (\n <DashboardWidget\n expandDisabled={!canShowWidget}\n isLoading={isDataLoading}\n primaryMenu={primaryMenu}\n title={titleMenu}\n warningMessage={canShowWidget && epiCurveCaseCount > 0 && missingCasesCount > 0 ? t('Missing cases: {{missingCasesCount}} ({{missingCasesPercentage}}%)', { missingCasesCount, missingCasesPercentage }) : undefined}\n widgetName={DASHBOARD_COMPONENT_NAME.EPI_CURVE}\n >\n {!canShowWidget && (\n <WidgetUnavailable\n reason={widgetUnavailableReason}\n widgetLabel={t`epi curve`}\n />\n )}\n {canShowWidget && (\n <Box\n sx={{\n height: '100%',\n position: 'relative',\n }}\n >\n {items?.length > 0 && chartType === 'bar' && (\n <EpiCurveBarChart\n chartRef={chartRef}\n echarts={echartsCore}\n getXAxisLabel={getXAxisLabel}\n items={items}\n onCaseIdsChange={onChartCaseIdsChange}\n onChartReady={onChartReady}\n onPointMouseUp={onChartPointMouseUp}\n stratification={stratification}\n xAxisIntervals={xAxisIntervals}\n />\n )}\n {items?.length > 0 && chartType === 'area' && (\n <EpiCurveStackedAreaChart\n chartRef={chartRef}\n echarts={echartsCore}\n getXAxisLabel={getXAxisLabel}\n includeMissingValues={isIncludeMissingValuesInAreaChartEnabled}\n items={items}\n onCaseIdsChange={onChartCaseIdsChange}\n onChartReady={onChartReady}\n onPointMouseUp={onChartPointMouseUp}\n stratification={stratification}\n xAxisIntervals={xAxisIntervals}\n />\n )}\n <ContextMenu\n config={contextMenuConfig}\n getExtraItems={getEpiContextMenuExtraItems}\n onMenuClose={onEpiContextMenuClose}\n />\n </Box>\n )}\n </DashboardWidget>\n );\n};\n"],"x_google_ignoreList":[0,1,2,3],"mappings":"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"}
|