@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.
Files changed (832) hide show
  1. package/LICENSE +287 -0
  2. package/README.md +101 -0
  3. package/dist/@types/mui.d.ts +12 -0
  4. package/dist/@types/ui-casedb.d.ts +3 -0
  5. package/dist/@types/vite-env.d.ts +3 -0
  6. package/dist/_chunks/AddCasesToEventDialog.js +246 -0
  7. package/dist/_chunks/AddCasesToEventDialog.js.map +1 -0
  8. package/dist/_chunks/CaseContentForm.js +43 -0
  9. package/dist/_chunks/CaseContentForm.js.map +1 -0
  10. package/dist/_chunks/CaseDbDownloadUtil.js +2307 -0
  11. package/dist/_chunks/CaseDbDownloadUtil.js.map +1 -0
  12. package/dist/_chunks/CaseInfoDialog.js +509 -0
  13. package/dist/_chunks/CaseInfoDialog.js.map +1 -0
  14. package/dist/_chunks/CaseSetInfoDialog.js +479 -0
  15. package/dist/_chunks/CaseSetInfoDialog.js.map +1 -0
  16. package/dist/_chunks/CaseTypeInfoDialog.js +470 -0
  17. package/dist/_chunks/CaseTypeInfoDialog.js.map +1 -0
  18. package/dist/_chunks/CasesAlreadyInCaseSetWarning.js +123 -0
  19. package/dist/_chunks/CasesAlreadyInCaseSetWarning.js.map +1 -0
  20. package/dist/_chunks/CollectionIcon.js +18 -0
  21. package/dist/_chunks/CollectionIcon.js.map +1 -0
  22. package/dist/_chunks/CompletCaseTypeLoader.js +53 -0
  23. package/dist/_chunks/CompletCaseTypeLoader.js.map +1 -0
  24. package/dist/_chunks/CreateEventDialogSuccessNotificationMessage.js +18 -0
  25. package/dist/_chunks/CreateEventDialogSuccessNotificationMessage.js.map +1 -0
  26. package/dist/_chunks/CustomTabPanel.js +21 -0
  27. package/dist/_chunks/CustomTabPanel.js.map +1 -0
  28. package/dist/_chunks/Dashboard.js +2582 -0
  29. package/dist/_chunks/Dashboard.js.map +1 -0
  30. package/dist/_chunks/DashboardStoreLoader.js +67 -0
  31. package/dist/_chunks/DashboardStoreLoader.js.map +1 -0
  32. package/dist/_chunks/DataCollectionAccessInfo.js +66 -0
  33. package/dist/_chunks/DataCollectionAccessInfo.js.map +1 -0
  34. package/dist/_chunks/EpiCurveUtil.js +378 -0
  35. package/dist/_chunks/EpiCurveUtil.js.map +1 -0
  36. package/dist/_chunks/EpiCurveWidget.js +570 -0
  37. package/dist/_chunks/EpiCurveWidget.js.map +1 -0
  38. package/dist/_chunks/FilterUtil.js +1537 -0
  39. package/dist/_chunks/FilterUtil.js.map +1 -0
  40. package/dist/_chunks/FindSimilarCasesDialog.js +439 -0
  41. package/dist/_chunks/FindSimilarCasesDialog.js.map +1 -0
  42. package/dist/_chunks/FindSimilarCasesUtil.js +100 -0
  43. package/dist/_chunks/FindSimilarCasesUtil.js.map +1 -0
  44. package/dist/_chunks/HomePageTrends.js +276 -0
  45. package/dist/_chunks/HomePageTrends.js.map +1 -0
  46. package/dist/_chunks/LegendaItem.js +325 -0
  47. package/dist/_chunks/LegendaItem.js.map +1 -0
  48. package/dist/_chunks/LineListWidget.js +702 -0
  49. package/dist/_chunks/LineListWidget.js.map +1 -0
  50. package/dist/_chunks/PanelSeparator.js +1676 -0
  51. package/dist/_chunks/PanelSeparator.js.map +1 -0
  52. package/dist/_chunks/Upload.js +1506 -0
  53. package/dist/_chunks/Upload.js.map +1 -0
  54. package/dist/_chunks/UploadUtil.js +1976 -0
  55. package/dist/_chunks/UploadUtil.js.map +1 -0
  56. package/dist/_chunks/UserRightsDialog.js +152 -0
  57. package/dist/_chunks/UserRightsDialog.js.map +1 -0
  58. package/dist/_chunks/_MapCache.js +274 -0
  59. package/dist/_chunks/_MapCache.js.map +1 -0
  60. package/dist/_chunks/_Set.js +9 -0
  61. package/dist/_chunks/_Set.js.map +1 -0
  62. package/dist/_chunks/_arrayIncludesWith.js +42 -0
  63. package/dist/_chunks/_arrayIncludesWith.js.map +1 -0
  64. package/dist/_chunks/_baseClone.js +262 -0
  65. package/dist/_chunks/_baseClone.js.map +1 -0
  66. package/dist/_chunks/_baseFlatten.js +26 -0
  67. package/dist/_chunks/_baseFlatten.js.map +1 -0
  68. package/dist/_chunks/_baseGet.js +246 -0
  69. package/dist/_chunks/_baseGet.js.map +1 -0
  70. package/dist/_chunks/_baseIteratee.js +246 -0
  71. package/dist/_chunks/_baseIteratee.js.map +1 -0
  72. package/dist/_chunks/_cacheHas.js +29 -0
  73. package/dist/_chunks/_cacheHas.js.map +1 -0
  74. package/dist/_chunks/_defineProperty.js +15 -0
  75. package/dist/_chunks/_defineProperty.js.map +1 -0
  76. package/dist/_chunks/_setToArray.js +15 -0
  77. package/dist/_chunks/_setToArray.js.map +1 -0
  78. package/dist/_chunks/_setToString.js +64 -0
  79. package/dist/_chunks/_setToString.js.map +1 -0
  80. package/dist/_chunks/chunk-KS7C4IRE.js +1327 -0
  81. package/dist/_chunks/chunk-KS7C4IRE.js.map +1 -0
  82. package/dist/_chunks/cloneDeep.js +119 -0
  83. package/dist/_chunks/cloneDeep.js.map +1 -0
  84. package/dist/_chunks/dashboardStore.js +743 -0
  85. package/dist/_chunks/dashboardStore.js.map +1 -0
  86. package/dist/_chunks/eachYearOfInterval.js +104 -0
  87. package/dist/_chunks/eachYearOfInterval.js.map +1 -0
  88. package/dist/_chunks/esm.js +46335 -0
  89. package/dist/_chunks/esm.js.map +1 -0
  90. package/dist/_chunks/format.js +504 -0
  91. package/dist/_chunks/format.js.map +1 -0
  92. package/dist/_chunks/hasIn.js +34 -0
  93. package/dist/_chunks/hasIn.js.map +1 -0
  94. package/dist/_chunks/index.esm.js +1342 -0
  95. package/dist/_chunks/index.esm.js.map +1 -0
  96. package/dist/_chunks/index.module.js +72 -0
  97. package/dist/_chunks/index.module.js.map +1 -0
  98. package/dist/_chunks/intersection.js +58 -0
  99. package/dist/_chunks/intersection.js.map +1 -0
  100. package/dist/_chunks/isArguments.js +27 -0
  101. package/dist/_chunks/isArguments.js.map +1 -0
  102. package/dist/_chunks/isArray.js +9 -0
  103. package/dist/_chunks/isArray.js.map +1 -0
  104. package/dist/_chunks/isArrayLike.js +30 -0
  105. package/dist/_chunks/isArrayLike.js.map +1 -0
  106. package/dist/_chunks/isObjectLike.js +18 -0
  107. package/dist/_chunks/isObjectLike.js.map +1 -0
  108. package/dist/_chunks/isValid.js +14 -0
  109. package/dist/_chunks/isValid.js.map +1 -0
  110. package/dist/_chunks/last.js +13 -0
  111. package/dist/_chunks/last.js.map +1 -0
  112. package/dist/_chunks/noop.js +10 -0
  113. package/dist/_chunks/noop.js.map +1 -0
  114. package/dist/_chunks/omit.js +81 -0
  115. package/dist/_chunks/omit.js.map +1 -0
  116. package/dist/_chunks/parseISO.js +117 -0
  117. package/dist/_chunks/parseISO.js.map +1 -0
  118. package/dist/_chunks/protectedTokens.js +630 -0
  119. package/dist/_chunks/protectedTokens.js.map +1 -0
  120. package/dist/_chunks/react.js +11 -0
  121. package/dist/_chunks/react.js.map +1 -0
  122. package/dist/_chunks/round.js +64 -0
  123. package/dist/_chunks/round.js.map +1 -0
  124. package/dist/_chunks/shallow.js +31 -0
  125. package/dist/_chunks/shallow.js.map +1 -0
  126. package/dist/_chunks/sync.js +3796 -0
  127. package/dist/_chunks/sync.js.map +1 -0
  128. package/dist/_chunks/toDate.js +18 -0
  129. package/dist/_chunks/toDate.js.map +1 -0
  130. package/dist/_chunks/toString.js +31 -0
  131. package/dist/_chunks/toString.js.map +1 -0
  132. package/dist/_chunks/useUnit.js +30 -0
  133. package/dist/_chunks/useUnit.js.map +1 -0
  134. package/dist/_chunks/userProfileStoreContext.js +7 -0
  135. package/dist/_chunks/userProfileStoreContext.js.map +1 -0
  136. package/dist/_chunks/vanilla.js +20 -0
  137. package/dist/_chunks/vanilla.js.map +1 -0
  138. package/dist/_chunks/yup.js +73 -0
  139. package/dist/_chunks/yup.js.map +1 -0
  140. package/dist/classes/errors/UploadError.d.ts +5 -0
  141. package/dist/classes/errors/index.d.ts +1 -0
  142. package/dist/classes/errors/index.js +11 -0
  143. package/dist/classes/errors/index.js.map +1 -0
  144. package/dist/classes/filters/SelectionFilter.d.ts +11 -0
  145. package/dist/classes/filters/TreeFilter.d.ts +11 -0
  146. package/dist/classes/services/DataService/DataService.d.ts +13 -0
  147. package/dist/classes/services/DataService/index.d.ts +1 -0
  148. package/dist/classes/services/DataService/index.js +83 -0
  149. package/dist/classes/services/DataService/index.js.map +1 -0
  150. package/dist/classes/services/EventBusService/EventBusService.d.ts +49 -0
  151. package/dist/classes/services/EventBusService/index.d.ts +1 -0
  152. package/dist/classes/services/EventBusService/index.js +16 -0
  153. package/dist/classes/services/EventBusService/index.js.map +1 -0
  154. package/dist/classes/services/LineListService/LineListCaseSetMembersService/LineListCaseSetMembersService.d.ts +9 -0
  155. package/dist/classes/services/LineListService/LineListCaseSetMembersService/index.d.ts +1 -0
  156. package/dist/classes/services/LineListService/LineListCaseSetMembersService/index.js +27 -0
  157. package/dist/classes/services/LineListService/LineListCaseSetMembersService/index.js.map +1 -0
  158. package/dist/classes/services/LineListService/LineListIsOwnCaseService/LineListIsOwnCaseService.d.ts +9 -0
  159. package/dist/classes/services/LineListService/LineListIsOwnCaseService/index.d.ts +1 -0
  160. package/dist/classes/services/LineListService/LineListIsOwnCaseService/index.js +30 -0
  161. package/dist/classes/services/LineListService/LineListIsOwnCaseService/index.js.map +1 -0
  162. package/dist/classes/services/LineListService/LineListServiceAbstract/LineListServiceAbstract.d.ts +11 -0
  163. package/dist/classes/services/LineListService/LineListServiceAbstract/index.d.ts +1 -0
  164. package/dist/classes/services/LineListService/LineListServiceAbstract/index.js +55 -0
  165. package/dist/classes/services/LineListService/LineListServiceAbstract/index.js.map +1 -0
  166. package/dist/components/app/CaseDbApp/CaseDbApp.d.ts +1 -0
  167. package/dist/components/app/CaseDbApp/index.d.ts +1 -0
  168. package/dist/components/app/CaseDbApp/index.js +14 -0
  169. package/dist/components/app/CaseDbApp/index.js.map +1 -0
  170. package/dist/components/form/fields/ArrangementEditor/ArrangementEditor.d.ts +17 -0
  171. package/dist/components/form/fields/ArrangementEditor/index.d.ts +1 -0
  172. package/dist/components/form/fields/ArrangementEditor/index.js +130 -0
  173. package/dist/components/form/fields/ArrangementEditor/index.js.map +1 -0
  174. package/dist/components/ui/AddCasesToEventDialog/AddCasesToEventDialog.d.ts +10 -0
  175. package/dist/components/ui/AddCasesToEventDialog/AddCasesToEventDialogSuccessNotificationMessage.d.ts +6 -0
  176. package/dist/components/ui/AddCasesToEventDialog/index.d.ts +1 -0
  177. package/dist/components/ui/AddCasesToEventDialog/index.js +2 -0
  178. package/dist/components/ui/CaseContentForm/CaseContentForm.d.ts +10 -0
  179. package/dist/components/ui/CaseContentForm/index.d.ts +1 -0
  180. package/dist/components/ui/CaseContentForm/index.js +2 -0
  181. package/dist/components/ui/CaseContentFormDialog/CaseContentFormDialog.d.ts +9 -0
  182. package/dist/components/ui/CaseContentFormDialog/index.d.ts +1 -0
  183. package/dist/components/ui/CaseContentFormDialog/index.js +57 -0
  184. package/dist/components/ui/CaseContentFormDialog/index.js.map +1 -0
  185. package/dist/components/ui/CaseInfoDialog/CaseCaseSetInfo.d.ts +6 -0
  186. package/dist/components/ui/CaseInfoDialog/CaseContent.d.ts +6 -0
  187. package/dist/components/ui/CaseInfoDialog/CaseInfoDialog.d.ts +15 -0
  188. package/dist/components/ui/CaseInfoDialog/CaseInfoForm.d.ts +10 -0
  189. package/dist/components/ui/CaseInfoDialog/CaseSharingForm.d.ts +9 -0
  190. package/dist/components/ui/CaseInfoDialog/CaseSharingInfo.d.ts +3 -0
  191. package/dist/components/ui/CaseInfoDialog/ReadOnlyCaseContent.d.ts +6 -0
  192. package/dist/components/ui/CaseInfoDialog/index.d.ts +1 -0
  193. package/dist/components/ui/CaseInfoDialog/index.js +2 -0
  194. package/dist/components/ui/CaseSetInfoDialog/CaseSetContent.d.ts +6 -0
  195. package/dist/components/ui/CaseSetInfoDialog/CaseSetDescription.d.ts +6 -0
  196. package/dist/components/ui/CaseSetInfoDialog/CaseSetForm.d.ts +8 -0
  197. package/dist/components/ui/CaseSetInfoDialog/CaseSetInfoDialog.d.ts +10 -0
  198. package/dist/components/ui/CaseSetInfoDialog/CaseSetSharingForm.d.ts +10 -0
  199. package/dist/components/ui/CaseSetInfoDialog/CaseSetSharingInfo.d.ts +3 -0
  200. package/dist/components/ui/CaseSetInfoDialog/index.d.ts +1 -0
  201. package/dist/components/ui/CaseSetInfoDialog/index.js +2 -0
  202. package/dist/components/ui/CaseSummary/CaseSummary.d.ts +5 -0
  203. package/dist/components/ui/CaseSummary/index.d.ts +1 -0
  204. package/dist/components/ui/CaseSummary/index.js +92 -0
  205. package/dist/components/ui/CaseSummary/index.js.map +1 -0
  206. package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoAccessRights.d.ts +5 -0
  207. package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoColAccessRights.d.ts +4 -0
  208. package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoData.d.ts +5 -0
  209. package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoDialog.d.ts +7 -0
  210. package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoDialogContent.d.ts +3 -0
  211. package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoDialogWithLoader.d.ts +8 -0
  212. package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoRegions.d.ts +5 -0
  213. package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoTrees.d.ts +5 -0
  214. package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoValues.d.ts +5 -0
  215. package/dist/components/ui/CaseTypeInfoDialog/CaseTypeInfoVariableDetails.d.ts +6 -0
  216. package/dist/components/ui/CaseTypeInfoDialog/index.d.ts +10 -0
  217. package/dist/components/ui/CaseTypeInfoDialog/index.js +2 -0
  218. package/dist/components/ui/CasesAlreadyInCaseSetWarning/CasesAlreadyInCaseSetWarning.d.ts +5 -0
  219. package/dist/components/ui/CasesAlreadyInCaseSetWarning/CasesAlreadyInCaseSetWarningCaseSetLink.d.ts +5 -0
  220. package/dist/components/ui/CasesAlreadyInCaseSetWarning/index.d.ts +1 -0
  221. package/dist/components/ui/CasesAlreadyInCaseSetWarning/index.js +2 -0
  222. package/dist/components/ui/CompletCaseTypeLoader/CompletCaseTypeLoader.d.ts +7 -0
  223. package/dist/components/ui/CompletCaseTypeLoader/index.d.ts +1 -0
  224. package/dist/components/ui/CompletCaseTypeLoader/index.js +2 -0
  225. package/dist/components/ui/CompletCaseTypeLoader/withEpiCompleteCaseTypeLoader.d.ts +4 -0
  226. package/dist/components/ui/ContextMenu/ContextMenu.d.ts +20 -0
  227. package/dist/components/ui/ContextMenu/index.d.ts +1 -0
  228. package/dist/components/ui/ContextMenu/index.js +96 -0
  229. package/dist/components/ui/ContextMenu/index.js.map +1 -0
  230. package/dist/components/ui/CreateEventDialog/CreateEventDialog.d.ts +10 -0
  231. package/dist/components/ui/CreateEventDialog/CreateEventDialogSuccessNotificationMessage.d.ts +6 -0
  232. package/dist/components/ui/CreateEventDialog/index.d.ts +1 -0
  233. package/dist/components/ui/CreateEventDialog/index.js +278 -0
  234. package/dist/components/ui/CreateEventDialog/index.js.map +1 -0
  235. package/dist/components/ui/CustomTabPanel/CustomTabPanel.d.ts +6 -0
  236. package/dist/components/ui/CustomTabPanel/index.d.ts +1 -0
  237. package/dist/components/ui/CustomTabPanel/index.js +2 -0
  238. package/dist/components/ui/Dashboard/Dashboard.d.ts +1 -0
  239. package/dist/components/ui/Dashboard/DashboardContent.d.ts +6 -0
  240. package/dist/components/ui/Dashboard/DashboardDownloadSidebarItem.d.ts +6 -0
  241. package/dist/components/ui/Dashboard/DashboardGeneralSettingsForm.d.ts +1 -0
  242. package/dist/components/ui/Dashboard/DashboardLayoutRenderer.d.ts +9 -0
  243. package/dist/components/ui/Dashboard/DashboardLayoutSettingsForm.d.ts +4 -0
  244. package/dist/components/ui/Dashboard/DashboardSearch.d.ts +1 -0
  245. package/dist/components/ui/Dashboard/DashboardSearchSettings.d.ts +10 -0
  246. package/dist/components/ui/Dashboard/DashboardSettingsSidebarItem.d.ts +8 -0
  247. package/dist/components/ui/Dashboard/DashboardWidget.d.ts +12 -0
  248. package/dist/components/ui/Dashboard/DashboardWidgetPlaceHolder.d.ts +1 -0
  249. package/dist/components/ui/Dashboard/DashboardWidgetSettingsForm.d.ts +4 -0
  250. package/dist/components/ui/Dashboard/DashboardZoneContext.d.ts +1 -0
  251. package/dist/components/ui/Dashboard/context/DashboardContext.d.ts +12 -0
  252. package/dist/components/ui/Dashboard/context/DashboardContextProvider.d.ts +6 -0
  253. package/dist/components/ui/Dashboard/index.d.ts +2 -0
  254. package/dist/components/ui/Dashboard/index.js +2 -0
  255. package/dist/components/ui/DashboardEditCases/DashboardEditCases.d.ts +6 -0
  256. package/dist/components/ui/DashboardEditCases/index.d.ts +1 -0
  257. package/dist/components/ui/DashboardEditCases/index.js +70 -0
  258. package/dist/components/ui/DashboardEditCases/index.js.map +1 -0
  259. package/dist/components/ui/DashboardStoreLoader/DashboardStoreLoader.d.ts +7 -0
  260. package/dist/components/ui/DashboardStoreLoader/DashboardStoreLoaderContent.d.ts +8 -0
  261. package/dist/components/ui/DashboardStoreLoader/index.d.ts +2 -0
  262. package/dist/components/ui/DashboardStoreLoader/index.js +2 -0
  263. package/dist/components/ui/DashboardStoreLoader/withEpiDashboardStore.d.ts +4 -0
  264. package/dist/components/ui/DataCollectionAccessInfo/DataCollectionAccessInfo.d.ts +1 -0
  265. package/dist/components/ui/DataCollectionAccessInfo/index.d.ts +1 -0
  266. package/dist/components/ui/DataCollectionAccessInfo/index.js +2 -0
  267. package/dist/components/ui/EpiCurveWidget/EpiCurveBarChart.d.ts +21 -0
  268. package/dist/components/ui/EpiCurveWidget/EpiCurveStackedAreaChart.d.ts +22 -0
  269. package/dist/components/ui/EpiCurveWidget/EpiCurveWidget.d.ts +2 -0
  270. package/dist/components/ui/EpiCurveWidget/index.d.ts +1 -0
  271. package/dist/components/ui/EpiCurveWidget/index.js +2 -0
  272. package/dist/components/ui/FileSelector/FileSelector.d.ts +7 -0
  273. package/dist/components/ui/FileSelector/index.d.ts +1 -0
  274. package/dist/components/ui/FileSelector/index.js +206 -0
  275. package/dist/components/ui/FileSelector/index.js.map +1 -0
  276. package/dist/components/ui/FindSimilarCasesDialog/FindSimilarCasesDialog.d.ts +11 -0
  277. package/dist/components/ui/FindSimilarCasesDialog/FindSimilarCasesDialogDateRangeChart.d.ts +11 -0
  278. package/dist/components/ui/FindSimilarCasesDialog/index.d.ts +1 -0
  279. package/dist/components/ui/FindSimilarCasesDialog/index.js +2 -0
  280. package/dist/components/ui/Grouping/Grouping.d.ts +1 -0
  281. package/dist/components/ui/Grouping/index.d.ts +1 -0
  282. package/dist/components/ui/Grouping/index.js +102 -0
  283. package/dist/components/ui/Grouping/index.js.map +1 -0
  284. package/dist/components/ui/HistogramWidget/HistogramWidget.d.ts +1 -0
  285. package/dist/components/ui/HistogramWidget/index.d.ts +1 -0
  286. package/dist/components/ui/HistogramWidget/index.js +333 -0
  287. package/dist/components/ui/HistogramWidget/index.js.map +1 -0
  288. package/dist/components/ui/HomePageTrends/HomePageTrendCard.d.ts +9 -0
  289. package/dist/components/ui/HomePageTrends/HomePageTrends.d.ts +4 -0
  290. package/dist/components/ui/HomePageTrends/index.d.ts +1 -0
  291. package/dist/components/ui/HomePageTrends/index.js +2 -0
  292. package/dist/components/ui/LegendaItem/LegendaItem.d.ts +10 -0
  293. package/dist/components/ui/LegendaItem/index.d.ts +1 -0
  294. package/dist/components/ui/LegendaItem/index.js +2 -0
  295. package/dist/components/ui/LineListWidget/LineListWidget.d.ts +1 -0
  296. package/dist/components/ui/LineListWidget/LineListWidgetIsInEventCell.d.ts +6 -0
  297. package/dist/components/ui/LineListWidget/LineListWidgetIsOwnCaseCell.d.ts +6 -0
  298. package/dist/components/ui/LineListWidget/LineListWidgetPrimaryMenu.d.ts +5 -0
  299. package/dist/components/ui/LineListWidget/LineListWidgetSecondaryMenu.d.ts +1 -0
  300. package/dist/components/ui/LineListWidget/LineListWidgetTitle.d.ts +1 -0
  301. package/dist/components/ui/LineListWidget/index.d.ts +1 -0
  302. package/dist/components/ui/LineListWidget/index.js +2 -0
  303. package/dist/components/ui/LineListWidget/useEpiLineListWidgetEmitDownloadOptions.d.ts +1 -0
  304. package/dist/components/ui/MapWidget/MapWidget.d.ts +1 -0
  305. package/dist/components/ui/MapWidget/index.d.ts +1 -0
  306. package/dist/components/ui/MapWidget/index.js +302 -0
  307. package/dist/components/ui/MapWidget/index.js.map +1 -0
  308. package/dist/components/ui/PanelSeparator/PanelSeparatorHorizontal.d.ts +2 -0
  309. package/dist/components/ui/PanelSeparator/PanelSeparatorVertical.d.ts +2 -0
  310. package/dist/components/ui/PanelSeparator/index.d.ts +2 -0
  311. package/dist/components/ui/PanelSeparator/index.js +2 -0
  312. package/dist/components/ui/RemoveCasesFromEventDialog/RemoveCasesFromEventDialog.d.ts +10 -0
  313. package/dist/components/ui/RemoveCasesFromEventDialog/index.d.ts +1 -0
  314. package/dist/components/ui/RemoveCasesFromEventDialog/index.js +111 -0
  315. package/dist/components/ui/RemoveCasesFromEventDialog/index.js.map +1 -0
  316. package/dist/components/ui/RemoveFindSimilarCasesResultDialog/RemoveFindSimilarCasesResultDialog.d.ts +9 -0
  317. package/dist/components/ui/SequenceDownloadDialog/SequenceDownloadDialog.d.ts +10 -0
  318. package/dist/components/ui/SequenceDownloadDialog/index.d.ts +1 -0
  319. package/dist/components/ui/SequenceDownloadDialog/index.js +89 -0
  320. package/dist/components/ui/SequenceDownloadDialog/index.js.map +1 -0
  321. package/dist/components/ui/TreeDescription/TreeDescription.d.ts +5 -0
  322. package/dist/components/ui/TreeDescription/index.d.ts +1 -0
  323. package/dist/components/ui/TreeDescription/index.js +40 -0
  324. package/dist/components/ui/TreeDescription/index.js.map +1 -0
  325. package/dist/components/ui/TreeWidget/TreeWidget.d.ts +1 -0
  326. package/dist/components/ui/TreeWidget/index.d.ts +1 -0
  327. package/dist/components/ui/TreeWidget/index.js +404 -0
  328. package/dist/components/ui/TreeWidget/index.js.map +1 -0
  329. package/dist/components/ui/Upload/Upload.d.ts +1 -0
  330. package/dist/components/ui/Upload/UploadCaseResultTable.d.ts +18 -0
  331. package/dist/components/ui/Upload/UploadCreateCases.d.ts +1 -0
  332. package/dist/components/ui/Upload/UploadEditColumnValuesDialog.d.ts +12 -0
  333. package/dist/components/ui/Upload/UploadMapColumns.d.ts +1 -0
  334. package/dist/components/ui/Upload/UploadMapSequences.d.ts +1 -0
  335. package/dist/components/ui/Upload/UploadNavigation.d.ts +10 -0
  336. package/dist/components/ui/Upload/UploadPreview.d.ts +4 -0
  337. package/dist/components/ui/Upload/UploadPreviewNavigation.d.ts +5 -0
  338. package/dist/components/ui/Upload/UploadSelectFile.d.ts +1 -0
  339. package/dist/components/ui/Upload/UploadSelectSequenceFiles.d.ts +1 -0
  340. package/dist/components/ui/Upload/index.d.ts +1 -0
  341. package/dist/components/ui/Upload/index.js +2 -0
  342. package/dist/components/ui/UserRightsDialog/UserRightsDialog.d.ts +9 -0
  343. package/dist/components/ui/UserRightsDialog/UserRightsDialogCaseAccessPolicy.d.ts +5 -0
  344. package/dist/components/ui/UserRightsDialog/index.d.ts +1 -0
  345. package/dist/components/ui/UserRightsDialog/index.js +2 -0
  346. package/dist/components/ui/UsersEffectiveRightsDetailsDialog/UsersEffectiveRightsDetailsDialog.d.ts +13 -0
  347. package/dist/components/ui/UsersEffectiveRightsDetailsDialog/index.d.ts +1 -0
  348. package/dist/components/ui/UsersEffectiveRightsDetailsDialog/index.js +373 -0
  349. package/dist/components/ui/UsersEffectiveRightsDetailsDialog/index.js.map +1 -0
  350. package/dist/components/ui/Warning/Warning.d.ts +4 -0
  351. package/dist/components/ui/Warning/index.d.ts +1 -0
  352. package/dist/components/ui/Warning/index.js +29 -0
  353. package/dist/components/ui/Warning/index.js.map +1 -0
  354. package/dist/components/ui/WidgetHeaderIconButton/WidgetHeaderIconButton.d.ts +5 -0
  355. package/dist/components/ui/WidgetHeaderIconButton/index.d.ts +1 -0
  356. package/dist/components/ui/WidgetHeaderIconButton/index.js +24 -0
  357. package/dist/components/ui/WidgetHeaderIconButton/index.js.map +1 -0
  358. package/dist/components/ui/WidgetMenu/WidgetMenu.d.ts +6 -0
  359. package/dist/components/ui/WidgetMenu/index.d.ts +1 -0
  360. package/dist/components/ui/WidgetMenu/index.js +26 -0
  361. package/dist/components/ui/WidgetMenu/index.js.map +1 -0
  362. package/dist/components/ui/WidgetUnavailable/WidgetUnavailable.d.ts +6 -0
  363. package/dist/components/ui/WidgetUnavailable/index.d.ts +1 -0
  364. package/dist/components/ui/WidgetUnavailable/index.js +18 -0
  365. package/dist/components/ui/WidgetUnavailable/index.js.map +1 -0
  366. package/dist/constants/dashboard.d.ts +9 -0
  367. package/dist/constants/dashboard.js +14 -0
  368. package/dist/constants/dashboard.js.map +1 -0
  369. package/dist/constants/query.d.ts +62 -0
  370. package/dist/constants/query.js +163 -0
  371. package/dist/constants/query.js.map +1 -0
  372. package/dist/context/caseAbac/CaseAbacContext.d.ts +14 -0
  373. package/dist/context/caseAbac/CaseAbacContextProvider.d.ts +6 -0
  374. package/dist/context/caseAbac/index.d.ts +3 -0
  375. package/dist/context/caseAbac/useCaseAbacContext.d.ts +2 -0
  376. package/dist/context/caseTypeAbac/CaseTypeAbacContext.d.ts +14 -0
  377. package/dist/context/caseTypeAbac/CaseTypeAbacContextProvider.d.ts +6 -0
  378. package/dist/context/caseTypeAbac/index.d.ts +3 -0
  379. package/dist/context/caseTypeAbac/useCaseTypeAbacContext.d.ts +2 -0
  380. package/dist/dataHooks/useAssemblyProtocolsQuery/index.d.ts +1 -0
  381. package/dist/dataHooks/useAssemblyProtocolsQuery/index.js +21 -0
  382. package/dist/dataHooks/useAssemblyProtocolsQuery/index.js.map +1 -0
  383. package/dist/dataHooks/useAssemblyProtocolsQuery/useAssemblyProtocolsQuery.d.ts +6 -0
  384. package/dist/dataHooks/useCaseRightsQuery/index.d.ts +1 -0
  385. package/dist/dataHooks/useCaseRightsQuery/index.js +17 -0
  386. package/dist/dataHooks/useCaseRightsQuery/index.js.map +1 -0
  387. package/dist/dataHooks/useCaseRightsQuery/useCaseRightsQuery.d.ts +3 -0
  388. package/dist/dataHooks/useCaseSetCategoriesQuery/index.d.ts +1 -0
  389. package/dist/dataHooks/useCaseSetCategoriesQuery/index.js +22 -0
  390. package/dist/dataHooks/useCaseSetCategoriesQuery/index.js.map +1 -0
  391. package/dist/dataHooks/useCaseSetCategoriesQuery/useCaseSetCategoriesQuery.d.ts +6 -0
  392. package/dist/dataHooks/useCaseSetRightsQuery/index.d.ts +1 -0
  393. package/dist/dataHooks/useCaseSetRightsQuery/index.js +13 -0
  394. package/dist/dataHooks/useCaseSetRightsQuery/index.js.map +1 -0
  395. package/dist/dataHooks/useCaseSetRightsQuery/useCaseSetRightsQuery.d.ts +3 -0
  396. package/dist/dataHooks/useCaseSetStatsQuery/index.d.ts +1 -0
  397. package/dist/dataHooks/useCaseSetStatsQuery/index.js +19 -0
  398. package/dist/dataHooks/useCaseSetStatsQuery/index.js.map +1 -0
  399. package/dist/dataHooks/useCaseSetStatsQuery/useCaseSetStatsQuery.d.ts +5 -0
  400. package/dist/dataHooks/useCaseSetStatusesQuery/index.d.ts +1 -0
  401. package/dist/dataHooks/useCaseSetStatusesQuery/index.js +22 -0
  402. package/dist/dataHooks/useCaseSetStatusesQuery/index.js.map +1 -0
  403. package/dist/dataHooks/useCaseSetStatusesQuery/useCaseSetStatusesQuery.d.ts +6 -0
  404. package/dist/dataHooks/useCaseSetsQuery/index.d.ts +1 -0
  405. package/dist/dataHooks/useCaseSetsQuery/index.js +22 -0
  406. package/dist/dataHooks/useCaseSetsQuery/index.js.map +1 -0
  407. package/dist/dataHooks/useCaseSetsQuery/useCaseSetsQuery.d.ts +6 -0
  408. package/dist/dataHooks/useCaseTypeSetCategoriesQuery/index.d.ts +1 -0
  409. package/dist/dataHooks/useCaseTypeSetCategoriesQuery/index.js +22 -0
  410. package/dist/dataHooks/useCaseTypeSetCategoriesQuery/index.js.map +1 -0
  411. package/dist/dataHooks/useCaseTypeSetCategoriesQuery/useCaseTypeSetCategoriesQuery.d.ts +6 -0
  412. package/dist/dataHooks/useCaseTypeSetCategoryPurposeQuery/index.d.ts +1 -0
  413. package/dist/dataHooks/useCaseTypeSetCategoryPurposeQuery/index.js +21 -0
  414. package/dist/dataHooks/useCaseTypeSetCategoryPurposeQuery/index.js.map +1 -0
  415. package/dist/dataHooks/useCaseTypeSetCategoryPurposeQuery/useCaseTypeSetCategoryPurposeQuery.d.ts +4 -0
  416. package/dist/dataHooks/useCaseTypeSetMembersQuery/index.d.ts +1 -0
  417. package/dist/dataHooks/useCaseTypeSetMembersQuery/index.js +13 -0
  418. package/dist/dataHooks/useCaseTypeSetMembersQuery/index.js.map +1 -0
  419. package/dist/dataHooks/useCaseTypeSetMembersQuery/useCaseTypeSetMembersQuery.d.ts +3 -0
  420. package/dist/dataHooks/useCaseTypeSetsQuery/index.d.ts +1 -0
  421. package/dist/dataHooks/useCaseTypeSetsQuery/index.js +25 -0
  422. package/dist/dataHooks/useCaseTypeSetsQuery/index.js.map +1 -0
  423. package/dist/dataHooks/useCaseTypeSetsQuery/useCaseTypeSetsQuery.d.ts +7 -0
  424. package/dist/dataHooks/useCaseTypeStatsQuery/index.d.ts +1 -0
  425. package/dist/dataHooks/useCaseTypeStatsQuery/index.js +13 -0
  426. package/dist/dataHooks/useCaseTypeStatsQuery/index.js.map +1 -0
  427. package/dist/dataHooks/useCaseTypeStatsQuery/useCaseTypeStatsQuery.d.ts +3 -0
  428. package/dist/dataHooks/useCaseTypesQuery/index.d.ts +1 -0
  429. package/dist/dataHooks/useCaseTypesQuery/index.js +24 -0
  430. package/dist/dataHooks/useCaseTypesQuery/index.js.map +1 -0
  431. package/dist/dataHooks/useCaseTypesQuery/useCaseTypesQuery.d.ts +9 -0
  432. package/dist/dataHooks/useColSetMembersQuery/index.d.ts +1 -0
  433. package/dist/dataHooks/useColSetMembersQuery/index.js +13 -0
  434. package/dist/dataHooks/useColSetMembersQuery/index.js.map +1 -0
  435. package/dist/dataHooks/useColSetMembersQuery/useColSetMembersQuery.d.ts +3 -0
  436. package/dist/dataHooks/useColSetsQuery/index.d.ts +1 -0
  437. package/dist/dataHooks/useColSetsQuery/index.js +21 -0
  438. package/dist/dataHooks/useColSetsQuery/index.js.map +1 -0
  439. package/dist/dataHooks/useColSetsQuery/useColSetsQuery.d.ts +6 -0
  440. package/dist/dataHooks/useColTypesQuery/index.d.ts +1 -0
  441. package/dist/dataHooks/useColTypesQuery/index.js +51 -0
  442. package/dist/dataHooks/useColTypesQuery/index.js.map +1 -0
  443. package/dist/dataHooks/useColTypesQuery/useColTypesQuery.d.ts +4 -0
  444. package/dist/dataHooks/useColsQuery/index.d.ts +1 -0
  445. package/dist/dataHooks/useColsQuery/index.js +27 -0
  446. package/dist/dataHooks/useColsQuery/index.js.map +1 -0
  447. package/dist/dataHooks/useColsQuery/useColsQuery.d.ts +7 -0
  448. package/dist/dataHooks/useConceptQuery/index.d.ts +1 -0
  449. package/dist/dataHooks/useConceptQuery/index.js +26 -0
  450. package/dist/dataHooks/useConceptQuery/index.js.map +1 -0
  451. package/dist/dataHooks/useConceptQuery/useConceptQuery.d.ts +7 -0
  452. package/dist/dataHooks/useConceptRelationTypeQuery/index.d.ts +1 -0
  453. package/dist/dataHooks/useConceptRelationTypeQuery/index.js +15 -0
  454. package/dist/dataHooks/useConceptRelationTypeQuery/index.js.map +1 -0
  455. package/dist/dataHooks/useConceptRelationTypeQuery/useConceptRelationTypeQuery.d.ts +4 -0
  456. package/dist/dataHooks/useConceptSetTypeQuery/index.d.ts +1 -0
  457. package/dist/dataHooks/useConceptSetTypeQuery/index.js +22 -0
  458. package/dist/dataHooks/useConceptSetTypeQuery/index.js.map +1 -0
  459. package/dist/dataHooks/useConceptSetTypeQuery/useConceptSetTypeQuery.d.ts +4 -0
  460. package/dist/dataHooks/useConceptSetsQuery/index.d.ts +1 -0
  461. package/dist/dataHooks/useConceptSetsQuery/index.js +21 -0
  462. package/dist/dataHooks/useConceptSetsQuery/index.js.map +1 -0
  463. package/dist/dataHooks/useConceptSetsQuery/useConceptSetsQuery.d.ts +6 -0
  464. package/dist/dataHooks/useDataCollectionSetMembersQuery/index.d.ts +1 -0
  465. package/dist/dataHooks/useDataCollectionSetMembersQuery/index.js +13 -0
  466. package/dist/dataHooks/useDataCollectionSetMembersQuery/index.js.map +1 -0
  467. package/dist/dataHooks/useDataCollectionSetMembersQuery/useDataCollectionSetMembersQuery.d.ts +3 -0
  468. package/dist/dataHooks/useDataCollectionsQuery/index.d.ts +1 -0
  469. package/dist/dataHooks/useDataCollectionsQuery/index.js +22 -0
  470. package/dist/dataHooks/useDataCollectionsQuery/index.js.map +1 -0
  471. package/dist/dataHooks/useDataCollectionsQuery/useDataCollectionsQuery.d.ts +6 -0
  472. package/dist/dataHooks/useDimTypesQuery/index.d.ts +1 -0
  473. package/dist/dataHooks/useDimTypesQuery/index.js +26 -0
  474. package/dist/dataHooks/useDimTypesQuery/index.js.map +1 -0
  475. package/dist/dataHooks/useDimTypesQuery/useDimTypesQuery.d.ts +4 -0
  476. package/dist/dataHooks/useDimsQuery/index.d.ts +1 -0
  477. package/dist/dataHooks/useDimsQuery/index.js +26 -0
  478. package/dist/dataHooks/useDimsQuery/index.js.map +1 -0
  479. package/dist/dataHooks/useDimsQuery/useDimsQuery.d.ts +7 -0
  480. package/dist/dataHooks/useDiseasesQuery/index.d.ts +1 -0
  481. package/dist/dataHooks/useDiseasesQuery/index.js +21 -0
  482. package/dist/dataHooks/useDiseasesQuery/index.js.map +1 -0
  483. package/dist/dataHooks/useDiseasesQuery/useDiseasesQuery.d.ts +6 -0
  484. package/dist/dataHooks/useEtiologicalAgentsQuery/index.d.ts +1 -0
  485. package/dist/dataHooks/useEtiologicalAgentsQuery/index.js +21 -0
  486. package/dist/dataHooks/useEtiologicalAgentsQuery/index.js.map +1 -0
  487. package/dist/dataHooks/useEtiologicalAgentsQuery/useEtiologicalAgentsQuery.d.ts +6 -0
  488. package/dist/dataHooks/useGeneticDistanceProtocolsQuery/index.d.ts +1 -0
  489. package/dist/dataHooks/useGeneticDistanceProtocolsQuery/index.js +18 -0
  490. package/dist/dataHooks/useGeneticDistanceProtocolsQuery/index.js.map +1 -0
  491. package/dist/dataHooks/useGeneticDistanceProtocolsQuery/useGeneticDistanceProtocolsQuery.d.ts +5 -0
  492. package/dist/dataHooks/useOrganizationAccessCasePoliciesQuery/index.d.ts +1 -0
  493. package/dist/dataHooks/useOrganizationAccessCasePoliciesQuery/index.js +14 -0
  494. package/dist/dataHooks/useOrganizationAccessCasePoliciesQuery/index.js.map +1 -0
  495. package/dist/dataHooks/useOrganizationAccessCasePoliciesQuery/useOrganizationAccessCasePoliciesQuery.d.ts +3 -0
  496. package/dist/dataHooks/useOrganizationShareCasePoliciesQuery/index.d.ts +1 -0
  497. package/dist/dataHooks/useOrganizationShareCasePoliciesQuery/index.js +14 -0
  498. package/dist/dataHooks/useOrganizationShareCasePoliciesQuery/index.js.map +1 -0
  499. package/dist/dataHooks/useOrganizationShareCasePoliciesQuery/useOrganizationShareCasePoliciesQuery.d.ts +3 -0
  500. package/dist/dataHooks/useRefColsQuery/index.d.ts +1 -0
  501. package/dist/dataHooks/useRefColsQuery/index.js +22 -0
  502. package/dist/dataHooks/useRefColsQuery/index.js.map +1 -0
  503. package/dist/dataHooks/useRefColsQuery/useRefColsQuery.d.ts +6 -0
  504. package/dist/dataHooks/useRefColsValidationRulesQuery/index.d.ts +1 -0
  505. package/dist/dataHooks/useRefColsValidationRulesQuery/index.js +13 -0
  506. package/dist/dataHooks/useRefColsValidationRulesQuery/index.js.map +1 -0
  507. package/dist/dataHooks/useRefColsValidationRulesQuery/useRefColsValidationRulesQuery.d.ts +3 -0
  508. package/dist/dataHooks/useRefDimsQuery/index.d.ts +1 -0
  509. package/dist/dataHooks/useRefDimsQuery/index.js +22 -0
  510. package/dist/dataHooks/useRefDimsQuery/index.js.map +1 -0
  511. package/dist/dataHooks/useRefDimsQuery/useRefDimsQuery.d.ts +6 -0
  512. package/dist/dataHooks/useRegionQuery/index.d.ts +1 -0
  513. package/dist/dataHooks/useRegionQuery/index.js +25 -0
  514. package/dist/dataHooks/useRegionQuery/index.js.map +1 -0
  515. package/dist/dataHooks/useRegionQuery/useRegionQuery.d.ts +7 -0
  516. package/dist/dataHooks/useRegionRelationTypeQuery/index.d.ts +1 -0
  517. package/dist/dataHooks/useRegionRelationTypeQuery/index.js +20 -0
  518. package/dist/dataHooks/useRegionRelationTypeQuery/index.js.map +1 -0
  519. package/dist/dataHooks/useRegionRelationTypeQuery/useRegionRelationTypeQuery.d.ts +4 -0
  520. package/dist/dataHooks/useRegionSetsQuery/index.d.ts +1 -0
  521. package/dist/dataHooks/useRegionSetsQuery/index.js +21 -0
  522. package/dist/dataHooks/useRegionSetsQuery/index.js.map +1 -0
  523. package/dist/dataHooks/useRegionSetsQuery/useRegionSetsQuery.d.ts +6 -0
  524. package/dist/dataHooks/useSequencingProtocolsQuery/index.d.ts +1 -0
  525. package/dist/dataHooks/useSequencingProtocolsQuery/index.js +21 -0
  526. package/dist/dataHooks/useSequencingProtocolsQuery/index.js.map +1 -0
  527. package/dist/dataHooks/useSequencingProtocolsQuery/useSequencingProtocolsQuery.d.ts +6 -0
  528. package/dist/dataHooks/useTreeAlgorithmCodesQuery/index.d.ts +1 -0
  529. package/dist/dataHooks/useTreeAlgorithmCodesQuery/index.js +42 -0
  530. package/dist/dataHooks/useTreeAlgorithmCodesQuery/index.js.map +1 -0
  531. package/dist/dataHooks/useTreeAlgorithmCodesQuery/useTreeAlgorithmCodesQuery.d.ts +4 -0
  532. package/dist/dataHooks/useUnitQuery/index.d.ts +1 -0
  533. package/dist/dataHooks/useUnitQuery/index.js +2 -0
  534. package/dist/dataHooks/useUnitQuery/useUnit.d.ts +4 -0
  535. package/dist/dataHooks/useUserAccessCasePoliciesQuery/index.d.ts +1 -0
  536. package/dist/dataHooks/useUserAccessCasePoliciesQuery/index.js +14 -0
  537. package/dist/dataHooks/useUserAccessCasePoliciesQuery/index.js.map +1 -0
  538. package/dist/dataHooks/useUserAccessCasePoliciesQuery/useUserAccessCasePoliciesQuery.d.ts +3 -0
  539. package/dist/dataHooks/useUserEffectiveRightsQuery/index.d.ts +1 -0
  540. package/dist/dataHooks/useUserEffectiveRightsQuery/index.js +83 -0
  541. package/dist/dataHooks/useUserEffectiveRightsQuery/index.js.map +1 -0
  542. package/dist/dataHooks/useUserEffectiveRightsQuery/useUserEffectiveRightsQuery.d.ts +16 -0
  543. package/dist/dataHooks/useUserShareCasePoliciesQuery/index.d.ts +1 -0
  544. package/dist/dataHooks/useUserShareCasePoliciesQuery/index.js +14 -0
  545. package/dist/dataHooks/useUserShareCasePoliciesQuery/index.js.map +1 -0
  546. package/dist/dataHooks/useUserShareCasePoliciesQuery/useUserShareCasePoliciesQuery.d.ts +3 -0
  547. package/dist/hooks/useOrganizationCasePolicyNameFactory/index.d.ts +1 -0
  548. package/dist/hooks/useOrganizationCasePolicyNameFactory/index.js +25 -0
  549. package/dist/hooks/useOrganizationCasePolicyNameFactory/index.js.map +1 -0
  550. package/dist/hooks/useOrganizationCasePolicyNameFactory/useOrganizationCasePolicyNameFactory.d.ts +3 -0
  551. package/dist/hooks/useUserCasePolicyNameFactory/index.d.ts +1 -0
  552. package/dist/hooks/useUserCasePolicyNameFactory/index.js +28 -0
  553. package/dist/hooks/useUserCasePolicyNameFactory/index.js.map +1 -0
  554. package/dist/hooks/useUserCasePolicyNameFactory/useUserCasePolicyNameFactory.d.ts +3 -0
  555. package/dist/locale/en.json +676 -0
  556. package/dist/locale/nl.json +676 -0
  557. package/dist/models/caseAccess.d.ts +15 -0
  558. package/dist/models/caseAccess.js +0 -0
  559. package/dist/models/caseDb.d.ts +96 -0
  560. package/dist/models/caseDb.js +8 -0
  561. package/dist/models/caseDb.js.map +1 -0
  562. package/dist/models/config.d.ts +70 -0
  563. package/dist/models/config.js +0 -0
  564. package/dist/models/dashboard.d.ts +91 -0
  565. package/dist/models/dashboard.js +10 -0
  566. package/dist/models/dashboard.js.map +1 -0
  567. package/dist/models/stratification.d.ts +40 -0
  568. package/dist/models/stratification.js +12 -0
  569. package/dist/models/stratification.js.map +1 -0
  570. package/dist/models/theme.d.ts +17 -0
  571. package/dist/models/theme.js +0 -0
  572. package/dist/models/upload.d.ts +51 -0
  573. package/dist/models/upload.js +8 -0
  574. package/dist/models/upload.js.map +1 -0
  575. package/dist/pages/CaseDbUsersAdminPage/CaseDbUsersAdminPage.d.ts +1 -0
  576. package/dist/pages/CaseDbUsersAdminPage/index.d.ts +1 -0
  577. package/dist/pages/CaseDbUsersAdminPage/index.js +67 -0
  578. package/dist/pages/CaseDbUsersAdminPage/index.js.map +1 -0
  579. package/dist/pages/CaseSetCategoryAdminPage/CaseSetCategoryAdminPage.d.ts +1 -0
  580. package/dist/pages/CaseSetCategoryAdminPage/index.d.ts +1 -0
  581. package/dist/pages/CaseSetCategoryAdminPage/index.js +69 -0
  582. package/dist/pages/CaseSetCategoryAdminPage/index.js.map +1 -0
  583. package/dist/pages/CaseSetStatusAdminPage/CaseSetStatusAdminPage.d.ts +1 -0
  584. package/dist/pages/CaseSetStatusAdminPage/index.d.ts +1 -0
  585. package/dist/pages/CaseSetStatusAdminPage/index.js +69 -0
  586. package/dist/pages/CaseSetStatusAdminPage/index.js.map +1 -0
  587. package/dist/pages/CaseTypeSetCategoriesAdminPage/CaseTypeSetCategoriesAdminPage.d.ts +1 -0
  588. package/dist/pages/CaseTypeSetCategoriesAdminPage/index.d.ts +1 -0
  589. package/dist/pages/CaseTypeSetCategoriesAdminPage/index.js +92 -0
  590. package/dist/pages/CaseTypeSetCategoriesAdminPage/index.js.map +1 -0
  591. package/dist/pages/CaseTypeSetsAdminPage/CaseTypeSetsAdminPage.d.ts +1 -0
  592. package/dist/pages/CaseTypeSetsAdminPage/index.d.ts +1 -0
  593. package/dist/pages/CaseTypeSetsAdminPage/index.js +148 -0
  594. package/dist/pages/CaseTypeSetsAdminPage/index.js.map +1 -0
  595. package/dist/pages/CaseTypesAdminPage/CaseTypesAdminPage.d.ts +1 -0
  596. package/dist/pages/CaseTypesAdminPage/index.d.ts +1 -0
  597. package/dist/pages/CaseTypesAdminPage/index.js +288 -0
  598. package/dist/pages/CaseTypesAdminPage/index.js.map +1 -0
  599. package/dist/pages/CasesDetailPage/CasesDetailPage.d.ts +1 -0
  600. package/dist/pages/CasesDetailPage/index.d.ts +1 -0
  601. package/dist/pages/CasesDetailPage/index.js +41 -0
  602. package/dist/pages/CasesDetailPage/index.js.map +1 -0
  603. package/dist/pages/CasesPage/CasesPage.d.ts +1 -0
  604. package/dist/pages/CasesPage/index.d.ts +1 -0
  605. package/dist/pages/CasesPage/index.js +229 -0
  606. package/dist/pages/CasesPage/index.js.map +1 -0
  607. package/dist/pages/ColSetsAdminPage/ColSetsAdminPage.d.ts +1 -0
  608. package/dist/pages/ColSetsAdminPage/index.d.ts +1 -0
  609. package/dist/pages/ColSetsAdminPage/index.js +109 -0
  610. package/dist/pages/ColSetsAdminPage/index.js.map +1 -0
  611. package/dist/pages/ColsAdminPage/ColsAdminPage.d.ts +1 -0
  612. package/dist/pages/ColsAdminPage/index.d.ts +1 -0
  613. package/dist/pages/ColsAdminPage/index.js +315 -0
  614. package/dist/pages/ColsAdminPage/index.js.map +1 -0
  615. package/dist/pages/ConceptRelationsAdminPage/ConceptRelationsAdminPage.d.ts +1 -0
  616. package/dist/pages/ConceptRelationsAdminPage/index.d.ts +1 -0
  617. package/dist/pages/ConceptRelationsAdminPage/index.js +103 -0
  618. package/dist/pages/ConceptRelationsAdminPage/index.js.map +1 -0
  619. package/dist/pages/ConceptSetsAdminPage/ConceptSetsAdminPage.d.ts +1 -0
  620. package/dist/pages/ConceptSetsAdminPage/index.d.ts +1 -0
  621. package/dist/pages/ConceptSetsAdminPage/index.js +112 -0
  622. package/dist/pages/ConceptSetsAdminPage/index.js.map +1 -0
  623. package/dist/pages/ConceptsAdminPage/ConceptsAdminPage.d.ts +1 -0
  624. package/dist/pages/ConceptsAdminPage/index.d.ts +1 -0
  625. package/dist/pages/ConceptsAdminPage/index.js +94 -0
  626. package/dist/pages/ConceptsAdminPage/index.js.map +1 -0
  627. package/dist/pages/DataCollectionSetsAdminPage/DataCollectionSetsAdminPage.d.ts +1 -0
  628. package/dist/pages/DataCollectionSetsAdminPage/index.d.ts +1 -0
  629. package/dist/pages/DataCollectionSetsAdminPage/index.js +99 -0
  630. package/dist/pages/DataCollectionSetsAdminPage/index.js.map +1 -0
  631. package/dist/pages/DataCollectionVisualizationPage/DataCollectionVisualizationPage.d.ts +1 -0
  632. package/dist/pages/DataCollectionVisualizationPage/index.d.ts +1 -0
  633. package/dist/pages/DataCollectionVisualizationPage/index.js +494 -0
  634. package/dist/pages/DataCollectionVisualizationPage/index.js.map +1 -0
  635. package/dist/pages/DataCollectionsAdminPage/DataCollectionsAdminPage.d.ts +1 -0
  636. package/dist/pages/DataCollectionsAdminPage/index.d.ts +1 -0
  637. package/dist/pages/DataCollectionsAdminPage/index.js +54 -0
  638. package/dist/pages/DataCollectionsAdminPage/index.js.map +1 -0
  639. package/dist/pages/DimsAdminPage/DimsAdminPage.d.ts +1 -0
  640. package/dist/pages/DimsAdminPage/index.d.ts +1 -0
  641. package/dist/pages/DimsAdminPage/index.js +146 -0
  642. package/dist/pages/DimsAdminPage/index.js.map +1 -0
  643. package/dist/pages/DiseasesAdminPage/DiseasesAdminPage.d.ts +1 -0
  644. package/dist/pages/DiseasesAdminPage/index.d.ts +1 -0
  645. package/dist/pages/DiseasesAdminPage/index.js +57 -0
  646. package/dist/pages/DiseasesAdminPage/index.js.map +1 -0
  647. package/dist/pages/EtiologicalAgentsAdminPage/EtiologicalAgentsAdminPage.d.ts +1 -0
  648. package/dist/pages/EtiologicalAgentsAdminPage/index.d.ts +1 -0
  649. package/dist/pages/EtiologicalAgentsAdminPage/index.js +54 -0
  650. package/dist/pages/EtiologicalAgentsAdminPage/index.js.map +1 -0
  651. package/dist/pages/EtiologiesAdminPage/EtiologiesAdminPage.d.ts +1 -0
  652. package/dist/pages/EtiologiesAdminPage/index.d.ts +1 -0
  653. package/dist/pages/EtiologiesAdminPage/index.js +76 -0
  654. package/dist/pages/EtiologiesAdminPage/index.js.map +1 -0
  655. package/dist/pages/EventsDetailPage/EventsDetailPage.d.ts +1 -0
  656. package/dist/pages/EventsDetailPage/index.d.ts +1 -0
  657. package/dist/pages/EventsDetailPage/index.js +56 -0
  658. package/dist/pages/EventsDetailPage/index.js.map +1 -0
  659. package/dist/pages/EventsPage/EventsPage.d.ts +1 -0
  660. package/dist/pages/EventsPage/index.d.ts +1 -0
  661. package/dist/pages/EventsPage/index.js +221 -0
  662. package/dist/pages/EventsPage/index.js.map +1 -0
  663. package/dist/pages/HomePage/HomePage.d.ts +1 -0
  664. package/dist/pages/HomePage/index.d.ts +1 -0
  665. package/dist/pages/HomePage/index.js +35 -0
  666. package/dist/pages/HomePage/index.js.map +1 -0
  667. package/dist/pages/OrganizationAccessCasePoliciesAdminPage/OrganizationAccessCasePoliciesAdminPage.d.ts +1 -0
  668. package/dist/pages/OrganizationAccessCasePoliciesAdminPage/index.d.ts +1 -0
  669. package/dist/pages/OrganizationAccessCasePoliciesAdminPage/index.js +216 -0
  670. package/dist/pages/OrganizationAccessCasePoliciesAdminPage/index.js.map +1 -0
  671. package/dist/pages/OrganizationShareCasePoliciesAdminPage/OrganizationShareCasePoliciesAdminPage.d.ts +1 -0
  672. package/dist/pages/OrganizationShareCasePoliciesAdminPage/index.d.ts +1 -0
  673. package/dist/pages/OrganizationShareCasePoliciesAdminPage/index.js +170 -0
  674. package/dist/pages/OrganizationShareCasePoliciesAdminPage/index.js.map +1 -0
  675. package/dist/pages/RefColsAdminPage/RefColsAdminPage.d.ts +1 -0
  676. package/dist/pages/RefColsAdminPage/index.d.ts +1 -0
  677. package/dist/pages/RefColsAdminPage/index.js +302 -0
  678. package/dist/pages/RefColsAdminPage/index.js.map +1 -0
  679. package/dist/pages/RefDimsAdminPage/RefDimsAdminPage.d.ts +1 -0
  680. package/dist/pages/RefDimsAdminPage/index.d.ts +1 -0
  681. package/dist/pages/RefDimsAdminPage/index.js +110 -0
  682. package/dist/pages/RefDimsAdminPage/index.js.map +1 -0
  683. package/dist/pages/RegionRelationsAdminPage/RegionRelationsAdminPage.d.ts +1 -0
  684. package/dist/pages/RegionRelationsAdminPage/index.d.ts +1 -0
  685. package/dist/pages/RegionRelationsAdminPage/index.js +102 -0
  686. package/dist/pages/RegionRelationsAdminPage/index.js.map +1 -0
  687. package/dist/pages/RegionSetShapesAdminPage/RegionSetShapesAdminPage.d.ts +1 -0
  688. package/dist/pages/RegionSetShapesAdminPage/index.d.ts +1 -0
  689. package/dist/pages/RegionSetShapesAdminPage/index.js +73 -0
  690. package/dist/pages/RegionSetShapesAdminPage/index.js.map +1 -0
  691. package/dist/pages/RegionSetsAdminPage/RegionSetsAdminPage.d.ts +1 -0
  692. package/dist/pages/RegionSetsAdminPage/index.d.ts +1 -0
  693. package/dist/pages/RegionSetsAdminPage/index.js +101 -0
  694. package/dist/pages/RegionSetsAdminPage/index.js.map +1 -0
  695. package/dist/pages/RegionsAdminPage/RegionsAdminPage.d.ts +1 -0
  696. package/dist/pages/RegionsAdminPage/index.d.ts +1 -0
  697. package/dist/pages/RegionsAdminPage/index.js +99 -0
  698. package/dist/pages/RegionsAdminPage/index.js.map +1 -0
  699. package/dist/pages/TrendsPage/TrendsPage.d.ts +1 -0
  700. package/dist/pages/TrendsPage/index.d.ts +1 -0
  701. package/dist/pages/TrendsPage/index.js +17 -0
  702. package/dist/pages/TrendsPage/index.js.map +1 -0
  703. package/dist/pages/UploadPage/UploadPage.d.ts +1 -0
  704. package/dist/pages/UploadPage/index.d.ts +1 -0
  705. package/dist/pages/UploadPage/index.js +31 -0
  706. package/dist/pages/UploadPage/index.js.map +1 -0
  707. package/dist/pages/UserAccessCasePoliciesAdminPage/UserAccessCasePoliciesAdminPage.d.ts +1 -0
  708. package/dist/pages/UserAccessCasePoliciesAdminPage/index.d.ts +1 -0
  709. package/dist/pages/UserAccessCasePoliciesAdminPage/index.js +206 -0
  710. package/dist/pages/UserAccessCasePoliciesAdminPage/index.js.map +1 -0
  711. package/dist/pages/UserEffectiveRightsAdminPage/UserEffectiveRightsAdminPage.d.ts +1 -0
  712. package/dist/pages/UserEffectiveRightsAdminPage/index.d.ts +1 -0
  713. package/dist/pages/UserEffectiveRightsAdminPage/index.js +246 -0
  714. package/dist/pages/UserEffectiveRightsAdminPage/index.js.map +1 -0
  715. package/dist/pages/UserEffectiveRightsTesterAdminPage/UserEffectiveRightsTesterAdminPage.d.ts +1 -0
  716. package/dist/pages/UserEffectiveRightsTesterAdminPage/index.d.ts +1 -0
  717. package/dist/pages/UserEffectiveRightsTesterAdminPage/index.js +195 -0
  718. package/dist/pages/UserEffectiveRightsTesterAdminPage/index.js.map +1 -0
  719. package/dist/pages/UserShareCasePoliciesAdminPage/UserShareCasePoliciesAdminPage.d.ts +1 -0
  720. package/dist/pages/UserShareCasePoliciesAdminPage/index.d.ts +1 -0
  721. package/dist/pages/UserShareCasePoliciesAdminPage/index.js +169 -0
  722. package/dist/pages/UserShareCasePoliciesAdminPage/index.js.map +1 -0
  723. package/dist/routes/adminRoutes.d.ts +6 -0
  724. package/dist/routes/index.d.ts +2 -0
  725. package/dist/routes/index.js +1110 -0
  726. package/dist/routes/index.js.map +1 -0
  727. package/dist/routes/routes.d.ts +6 -0
  728. package/dist/setup/setup.d.ts +1 -0
  729. package/dist/setup/setup.js +28 -0
  730. package/dist/setup/setup.js.map +1 -0
  731. package/dist/stores/dashboardStore/dashboardStore.d.ts +80 -0
  732. package/dist/stores/dashboardStore/dashboardStoreContext.d.ts +3 -0
  733. package/dist/stores/dashboardStore/index.d.ts +2 -0
  734. package/dist/stores/dashboardStore/index.js +2 -0
  735. package/dist/stores/uploadStore/index.d.ts +2 -0
  736. package/dist/stores/uploadStore/index.js +185 -0
  737. package/dist/stores/uploadStore/index.js.map +1 -0
  738. package/dist/stores/uploadStore/uploadStore.d.ts +80 -0
  739. package/dist/stores/uploadStore/uploadStoreContext.d.ts +3 -0
  740. package/dist/stores/userProfileStore/index.d.ts +1 -0
  741. package/dist/stores/userProfileStore/index.js +81 -0
  742. package/dist/stores/userProfileStore/index.js.map +1 -0
  743. package/dist/stores/userProfileStore/userProfileStore.d.ts +38 -0
  744. package/dist/stores/userProfileStore/userProfileStoreContext.d.ts +3 -0
  745. package/dist/theme/demoTheme/demoTheme.d.ts +3 -0
  746. package/dist/theme/demoTheme/index.d.ts +1 -0
  747. package/dist/theme/demoTheme/index.js +20 -0
  748. package/dist/theme/demoTheme/index.js.map +1 -0
  749. package/dist/utils/AbacUtil/AbacUtil.d.ts +7 -0
  750. package/dist/utils/AbacUtil/index.d.ts +1 -0
  751. package/dist/utils/AbacUtil/index.js +31 -0
  752. package/dist/utils/AbacUtil/index.js.map +1 -0
  753. package/dist/utils/CaseDbDataUtil/CaseDbDataUtil.d.ts +31 -0
  754. package/dist/utils/CaseDbDataUtil/index.d.ts +1 -0
  755. package/dist/utils/CaseDbDataUtil/index.js +43 -0
  756. package/dist/utils/CaseDbDataUtil/index.js.map +1 -0
  757. package/dist/utils/CaseDbDownloadUtil/CaseDbDownloadUtil.d.ts +17 -0
  758. package/dist/utils/CaseDbDownloadUtil/index.d.ts +1 -0
  759. package/dist/utils/CaseDbDownloadUtil/index.js +2 -0
  760. package/dist/utils/CaseDbStandardConfigUtil/CaseDbStandardConfigUtil.d.ts +7 -0
  761. package/dist/utils/CaseDbStandardConfigUtil/index.d.ts +1 -0
  762. package/dist/utils/CaseDbStandardConfigUtil/index.js +4778 -0
  763. package/dist/utils/CaseDbStandardConfigUtil/index.js.map +1 -0
  764. package/dist/utils/CaseDbTableUtil/CaseDbTableUtil.d.ts +6 -0
  765. package/dist/utils/CaseDbTableUtil/index.d.ts +1 -0
  766. package/dist/utils/CaseDbTableUtil/index.js +41 -0
  767. package/dist/utils/CaseDbTableUtil/index.js.map +1 -0
  768. package/dist/utils/CaseSelectionUtil/CaseSelectionUtil.d.ts +8 -0
  769. package/dist/utils/CaseSelectionUtil/index.d.ts +1 -0
  770. package/dist/utils/CaseSelectionUtil/index.js +29 -0
  771. package/dist/utils/CaseSelectionUtil/index.js.map +1 -0
  772. package/dist/utils/CaseSetUtil/CaseSetUtil.d.ts +4 -0
  773. package/dist/utils/CaseSetUtil/index.d.ts +1 -0
  774. package/dist/utils/CaseSetUtil/index.js +13 -0
  775. package/dist/utils/CaseSetUtil/index.js.map +1 -0
  776. package/dist/utils/CaseTypeFormUtil/CaseTypeFormUtil.d.ts +20 -0
  777. package/dist/utils/CaseTypeFormUtil/index.d.ts +1 -0
  778. package/dist/utils/CaseTypeFormUtil/index.js +199 -0
  779. package/dist/utils/CaseTypeFormUtil/index.js.map +1 -0
  780. package/dist/utils/CaseTypeUtil/CaseTypeUtil.d.ts +39 -0
  781. package/dist/utils/CaseTypeUtil/index.d.ts +1 -0
  782. package/dist/utils/CaseTypeUtil/index.js +135 -0
  783. package/dist/utils/CaseTypeUtil/index.js.map +1 -0
  784. package/dist/utils/CaseUtil/CaseUtil.d.ts +18 -0
  785. package/dist/utils/CaseUtil/index.d.ts +1 -0
  786. package/dist/utils/CaseUtil/index.js +138 -0
  787. package/dist/utils/CaseUtil/index.js.map +1 -0
  788. package/dist/utils/DashboardUtil/DashboardUtil.d.ts +29 -0
  789. package/dist/utils/DashboardUtil/index.d.ts +1 -0
  790. package/dist/utils/DashboardUtil/index.js +152 -0
  791. package/dist/utils/DashboardUtil/index.js.map +1 -0
  792. package/dist/utils/DataSetUtil/DataSetUtil.d.ts +17 -0
  793. package/dist/utils/DataSetUtil/index.d.ts +1 -0
  794. package/dist/utils/DataSetUtil/index.js +43 -0
  795. package/dist/utils/DataSetUtil/index.js.map +1 -0
  796. package/dist/utils/EffectiveRightsUtil/EffectiveRightsUtil.d.ts +29 -0
  797. package/dist/utils/EffectiveRightsUtil/index.d.ts +1 -0
  798. package/dist/utils/EffectiveRightsUtil/index.js +118 -0
  799. package/dist/utils/EffectiveRightsUtil/index.js.map +1 -0
  800. package/dist/utils/EpiCurveUtil/EpiCurveUtil.d.ts +96 -0
  801. package/dist/utils/EpiCurveUtil/index.d.ts +1 -0
  802. package/dist/utils/EpiCurveUtil/index.js +2 -0
  803. package/dist/utils/FileUtil/FileUtil.d.ts +5 -0
  804. package/dist/utils/FileUtil/index.d.ts +1 -0
  805. package/dist/utils/FileUtil/index.js +15 -0
  806. package/dist/utils/FileUtil/index.js.map +1 -0
  807. package/dist/utils/FilterUtil/FilterUtil.d.ts +11 -0
  808. package/dist/utils/FilterUtil/index.d.ts +1 -0
  809. package/dist/utils/FilterUtil/index.js +2 -0
  810. package/dist/utils/FindSimilarCasesUtil/FindSimilarCasesUtil.d.ts +7 -0
  811. package/dist/utils/FindSimilarCasesUtil/index.d.ts +1 -0
  812. package/dist/utils/FindSimilarCasesUtil/index.js +2 -0
  813. package/dist/utils/HistogramUtil/HistogramUtil.d.ts +78 -0
  814. package/dist/utils/HistogramUtil/index.d.ts +1 -0
  815. package/dist/utils/HistogramUtil/index.js +145 -0
  816. package/dist/utils/HistogramUtil/index.js.map +1 -0
  817. package/dist/utils/MapUtil/MapUtil.d.ts +38 -0
  818. package/dist/utils/MapUtil/index.d.ts +1 -0
  819. package/dist/utils/MapUtil/index.js +210 -0
  820. package/dist/utils/MapUtil/index.js.map +1 -0
  821. package/dist/utils/StratificationUtil/StratificationUtil.d.ts +25 -0
  822. package/dist/utils/StratificationUtil/index.d.ts +1 -0
  823. package/dist/utils/StratificationUtil/index.js +198 -0
  824. package/dist/utils/StratificationUtil/index.js.map +1 -0
  825. package/dist/utils/TreeWidgetUtil/TreeWidgetUtil.d.ts +7 -0
  826. package/dist/utils/TreeWidgetUtil/index.d.ts +1 -0
  827. package/dist/utils/TreeWidgetUtil/index.js +35 -0
  828. package/dist/utils/TreeWidgetUtil/index.js.map +1 -0
  829. package/dist/utils/UploadUtil/UploadUtil.d.ts +106 -0
  830. package/dist/utils/UploadUtil/index.d.ts +1 -0
  831. package/dist/utils/UploadUtil/index.js +2 -0
  832. package/package.json +784 -0
@@ -0,0 +1,439 @@
1
+ import { t as e } from "./format.js";
2
+ import { t } from "./FindSimilarCasesUtil.js";
3
+ import { t as n } from "./parseISO.js";
4
+ import { CASEDB_QUERY_KEY as r } from "../constants/query.js";
5
+ import { TreeWidgetUtil as i } from "../utils/TreeWidgetUtil/index.js";
6
+ import { DASHBOARD_COMPONENT_NAME as a } from "../constants/dashboard.js";
7
+ import { a as o, c as s, d as c, f as l, h as u, l as d, m as f, n as p, o as m, p as h, s as g, t as _ } from "./esm.js";
8
+ import { t as v } from "./react.js";
9
+ import { r as y, t as b } from "./dashboardStore.js";
10
+ import { c as ee, o as te, t as x } from "./index.esm.js";
11
+ import { t as ne } from "./yup.js";
12
+ import { mixed as re, object as ie, string as S } from "yup";
13
+ import { CaseDbCaseApi as C } from "@gen-epix/api-casedb";
14
+ import { QueryClientService as w } from "@gen-epix/ui/classes/services/QueryClientService";
15
+ import { FORM_FIELD_DEFINITION_TYPE as T } from "@gen-epix/ui-form/models/form";
16
+ import { DATE_FORMAT as E } from "@gen-epix/ui-core/constants/date";
17
+ import { ConfigService as D } from "@gen-epix/ui/classes/services/ConfigService";
18
+ import { Alert as O, AlertTitle as k, Box as A, Button as ae, Divider as oe, Typography as se, useTheme as j } from "@mui/material";
19
+ import { use as M, useCallback as N, useEffect as P, useId as F, useMemo as I, useRef as L, useState as R } from "react";
20
+ import { useTranslation as z } from "react-i18next";
21
+ import { Fragment as B, jsx as V, jsxs as H } from "react/jsx-runtime";
22
+ import { ResponseHandler as ce } from "@gen-epix/ui/components/ui/ResponseHandler";
23
+ import { GenericForm as le } from "@gen-epix/ui-form/components/helpers/GenericForm";
24
+ import { useQueryMemo as ue } from "@gen-epix/ui/hooks/useQueryMemo";
25
+ import { withDialog as U } from "@gen-epix/ui/hoc/withDialog";
26
+ import { TestIdUtil as W } from "@gen-epix/ui-core/utils/TestIdUtil";
27
+ import { SchemaUtil as de } from "@gen-epix/ui-form/utils/SchemaUtil";
28
+ //#region src/components/ui/FindSimilarCasesDialog/FindSimilarCasesDialogDateRangeChart.tsx
29
+ l([
30
+ o,
31
+ m,
32
+ c,
33
+ s,
34
+ d,
35
+ g,
36
+ p
37
+ ]);
38
+ var G = {
39
+ dispose: h,
40
+ getInstanceByDom: f,
41
+ init: u
42
+ }, fe = ({ control: e, data: n, name: r, onOrganizationFilterChange: i, organizationFilter: a }) => {
43
+ let { t: o } = z(), s = I(() => t.buildChartIntervals(n), [n]), c = j(), [l, u] = R(null), d = o`Own cases`, f = o`Cases from other organizations`, p = L(s);
44
+ P(() => {
45
+ p.current = s;
46
+ }, [s]);
47
+ let m = L(null), h = N((e) => {
48
+ let t = e, n = t.batch?.[0] ?? t, r = p.current.length - 1, i, a;
49
+ if (n.startValue !== void 0 && n.endValue !== void 0) i = Math.round(n.startValue), a = Math.round(n.endValue);
50
+ else if (n.start !== void 0 && n.end !== void 0) i = Math.round(n.start / 100 * r), a = Math.round(n.end / 100 * r);
51
+ else {
52
+ m.current?.(null);
53
+ return;
54
+ }
55
+ let o = p.current[i], s = p.current[a];
56
+ if (o && s) {
57
+ m.current?.([o.startDate, s.endDate]);
58
+ return;
59
+ }
60
+ m.current?.(null);
61
+ }, []), g = I(() => {
62
+ let { BASE_COLORS: e } = D.getInstance().config.epi.STRATIFICATION;
63
+ return {
64
+ color: e,
65
+ dataZoom: [{
66
+ borderColor: c.palette.primary.light,
67
+ bottom: 0,
68
+ fillerColor: `${c.palette.primary.main}33`,
69
+ handleStyle: {
70
+ borderColor: c.palette.primary.main,
71
+ color: c.palette.primary.main
72
+ },
73
+ height: 50,
74
+ left: 80,
75
+ right: 80,
76
+ selectedDataBackground: {
77
+ areaStyle: { color: c.palette.primary.light },
78
+ lineStyle: { color: c.palette.primary.main }
79
+ },
80
+ type: "slider"
81
+ }],
82
+ grid: {
83
+ bottom: 110,
84
+ left: 80,
85
+ right: 80,
86
+ top: 40
87
+ },
88
+ legend: {
89
+ data: [d, f],
90
+ selected: {
91
+ [f]: a !== "own",
92
+ [d]: a !== "otherOrganization"
93
+ },
94
+ top: 0
95
+ },
96
+ series: [
97
+ {
98
+ data: s.map((e) => e.count),
99
+ lineStyle: { opacity: 0 },
100
+ name: "dataZoomShadow",
101
+ silent: !0,
102
+ symbol: "none",
103
+ type: "line"
104
+ },
105
+ {
106
+ data: s.map((e) => e.ownCaseCount),
107
+ itemStyle: { color: e[0] },
108
+ name: d,
109
+ stack: "similarCases",
110
+ type: "bar"
111
+ },
112
+ {
113
+ data: s.map((e) => e.otherOrganizationCaseCount),
114
+ itemStyle: { color: e[1] },
115
+ name: f,
116
+ stack: "similarCases",
117
+ type: "bar"
118
+ }
119
+ ],
120
+ tooltip: { show: !1 },
121
+ xAxis: {
122
+ axisLabel: {
123
+ height: 100,
124
+ rotate: 45
125
+ },
126
+ axisTick: {
127
+ alignWithLabel: !0,
128
+ show: !0
129
+ },
130
+ data: s.map((e) => e.label),
131
+ type: "category"
132
+ },
133
+ yAxis: {
134
+ max: Math.max(...s.map((e) => e.count), 1),
135
+ minInterval: 1,
136
+ type: "value"
137
+ }
138
+ };
139
+ }, [
140
+ s,
141
+ a,
142
+ f,
143
+ d,
144
+ c
145
+ ]), v = N((e) => {
146
+ let { selected: t } = e;
147
+ if (!t) return;
148
+ let n = t[d] ?? !0, r = t[f] ?? !0;
149
+ if (n && !r) {
150
+ i("own");
151
+ return;
152
+ }
153
+ if (!n && r) {
154
+ i("otherOrganization");
155
+ return;
156
+ }
157
+ i("all");
158
+ }, [
159
+ i,
160
+ f,
161
+ d
162
+ ]), y = I(() => ({
163
+ datazoom: h,
164
+ legendselectchanged: v,
165
+ mouseout: () => {
166
+ u(null);
167
+ },
168
+ mouseover: (e) => {
169
+ let t = e, n = t.event?.event;
170
+ n && t.name !== null && t.name !== void 0 && u({
171
+ content: `${t.name} (n=${t.value ?? 0})`,
172
+ x: n.clientX + 12,
173
+ y: n.clientY + 12
174
+ });
175
+ }
176
+ }), [h, v]);
177
+ return /* @__PURE__ */ H(B, { children: [/* @__PURE__ */ V(x, {
178
+ control: e,
179
+ name: r,
180
+ render: N(({ field: { onChange: e } }) => (m.current = e, /* @__PURE__ */ V(_, {
181
+ echarts: G,
182
+ notMerge: !0,
183
+ onEvents: y,
184
+ option: g,
185
+ style: { height: 400 }
186
+ })), [y, g])
187
+ }), l && /* @__PURE__ */ V(A, {
188
+ sx: {
189
+ bgcolor: "background.paper",
190
+ border: "1px solid",
191
+ borderColor: "divider",
192
+ borderRadius: 1,
193
+ fontSize: 12,
194
+ left: l.x,
195
+ pointerEvents: "none",
196
+ position: "fixed",
197
+ px: 1,
198
+ py: .5,
199
+ top: l.y,
200
+ zIndex: "tooltip"
201
+ },
202
+ children: l.content
203
+ })] });
204
+ }, K = U(({ onActionsChange: t, onClose: o, onTitleChange: s, openProps: c }) => {
205
+ let { t: l } = z(), u = F(), d = M(b), f = d.getState().getWidgetDataPersistable(a.TREE).treeConfiguration, p = v(d, (e) => e.setFindSimilarCasesResults), m = v(d, (e) => e.findSimilarCasesResults), h = I(() => i.getTreeConfigurations(c.completeCaseType), [c.completeCaseType]), [g, _] = R(null), x = I(() => ie().shape({
206
+ dateRange: re().nullable().default(null),
207
+ maxDistance: de.number.required().positive().when("treeColId", ([e], t) => {
208
+ let n = h.find((t) => t.col.id === e);
209
+ return n ? t.integer(l`Max distance must be an integer`).max(n.geneticDistanceProtocol.seqdb_max_stored_distance || D.getInstance().config.epi.SEQDB_MAX_STORED_DISTANCE_FALLBACK) : t;
210
+ }),
211
+ organizationFilter: S().required().oneOf([
212
+ "all",
213
+ "own",
214
+ "otherOrganization"
215
+ ]),
216
+ treeColId: S().required()
217
+ }), [l, h]), j = I(() => {
218
+ let e = /* @__PURE__ */ new Set();
219
+ return h.forEach((t) => {
220
+ e.add(t.col);
221
+ }), Array.from(e).map((e) => ({
222
+ label: e.label,
223
+ value: e.id
224
+ }));
225
+ }, [h]), L = te({
226
+ defaultValues: {
227
+ dateRange: null,
228
+ maxDistance: 0,
229
+ organizationFilter: "all",
230
+ treeColId: f ? f.col.id : null
231
+ },
232
+ resolver: ne(x, void 0, { raw: !0 })
233
+ }), { control: U, handleSubmit: G } = L, K = ee({ control: U }), pe = I(() => {
234
+ let e = h.find((e) => e.col.id === K.treeColId);
235
+ return [{
236
+ definition: T.SELECT,
237
+ label: l`Tree`,
238
+ name: "treeColId",
239
+ options: j
240
+ }, {
241
+ definition: T.NUMBER,
242
+ label: l`Max distance`,
243
+ max: e?.geneticDistanceProtocol?.seqdb_max_stored_distance || D.getInstance().config.epi.SEQDB_MAX_STORED_DISTANCE_FALLBACK,
244
+ min: 0,
245
+ name: "maxDistance",
246
+ showSlider: !0,
247
+ step: 1
248
+ }];
249
+ }, [
250
+ K.treeColId,
251
+ l,
252
+ h,
253
+ j
254
+ ]);
255
+ P(() => {
256
+ s(l`Find similar cases`);
257
+ }, [l, s]);
258
+ let me = N((e) => {
259
+ L.setValue("dateRange", null), _({
260
+ ...e,
261
+ dateRange: null
262
+ });
263
+ }, [L]), he = N((e) => {
264
+ L.setValue("organizationFilter", e);
265
+ }, [L]), q = ue({
266
+ enabled: !!g,
267
+ queryFn: async ({ signal: e }) => {
268
+ let t = await C.getInstance().retrieveSimilarCases({
269
+ case_ids: c.selectedRows.map((e) => e.id),
270
+ case_type_id: c.completeCaseType.id,
271
+ genetic_distance_col_id: g?.treeColId,
272
+ max_distance: g?.maxDistance
273
+ }, { signal: e }), n = await C.getInstance().retrieveIsOwnCases({
274
+ case_ids: t.data.cases.map((e) => e.id),
275
+ case_type_id: c.completeCaseType.id
276
+ }, { signal: e });
277
+ return t.data.cases.map((e) => ({
278
+ ...e,
279
+ is_own_case: n.data[e.id] || !1
280
+ }));
281
+ },
282
+ queryKey: [w.getInstance().getGenericKey(r.SIMILAR_CASES), JSON.stringify({
283
+ formData: g,
284
+ rowIds: c.selectedRows.map((e) => e.id)
285
+ })]
286
+ }), J = I(() => q.data ? q.data.filter((e) => {
287
+ switch (K.organizationFilter) {
288
+ case "all": return !0;
289
+ case "otherOrganization": return !e.is_own_case;
290
+ case "own": return e.is_own_case;
291
+ default: return !0;
292
+ }
293
+ }) : [], [q.data, K.organizationFilter]), Y = I(() => {
294
+ let e = /* @__PURE__ */ new Map();
295
+ for (let { case_date: t, is_own_case: n } of q.data ?? []) if (t) {
296
+ let r = e.get(t) ?? {
297
+ count: 0,
298
+ date: t,
299
+ otherOrganizationCaseCount: 0,
300
+ ownCaseCount: 0
301
+ };
302
+ r.count += 1, n ? r.ownCaseCount += 1 : r.otherOrganizationCaseCount += 1, e.set(t, r);
303
+ }
304
+ return Array.from(e.values()).sort((e, t) => e.date.localeCompare(t.date));
305
+ }, [q.data]), X = I(() => {
306
+ let t = K.dateRange;
307
+ if (!t) return J;
308
+ let [r, i] = t;
309
+ return J.filter((t) => {
310
+ if (!t.case_date) return !1;
311
+ let a = e(n(t.case_date), E.DATE);
312
+ return a >= r && a <= i;
313
+ });
314
+ }, [K.dateRange, J]), Z = I(() => {
315
+ let e = c.allRows.map((e) => e.id);
316
+ return X.reduce((t, n) => {
317
+ let r = n.id;
318
+ return e.includes(r) || t.push(r), t;
319
+ }, []);
320
+ }, [X, c.allRows]), Q = I(() => {
321
+ let e = c.allRows.map((e) => e.id);
322
+ return X.reduce((t, n) => {
323
+ let r = n.id;
324
+ return e.includes(r) && t.push(r), t;
325
+ }, []);
326
+ }, [X, c.allRows]), $ = N(async () => {
327
+ await p(y(m, (e) => (e.push({
328
+ colId: g?.treeColId,
329
+ distance: g?.maxDistance,
330
+ key: m.length.toString(),
331
+ originalCaseIds: c.allRows.map((e) => e.id),
332
+ similarCaseIds: Z
333
+ }), e))), o();
334
+ }, [
335
+ p,
336
+ m,
337
+ o,
338
+ Z,
339
+ g?.maxDistance,
340
+ g?.treeColId,
341
+ c.allRows
342
+ ]);
343
+ return P(() => {
344
+ let e = [];
345
+ e.push({
346
+ ...W.createAttributes("FindSimilarCasesDialog-closeButton"),
347
+ color: "primary",
348
+ label: l`Close`,
349
+ onClick: o,
350
+ variant: "outlined"
351
+ }), e.push({
352
+ ...W.createAttributes("FindSimilarCasesDialog-addSimilarCasesButton"),
353
+ color: "secondary",
354
+ disabled: Z.length === 0,
355
+ label: l("Add {{count}} similar cases to line list", { count: Z.length }),
356
+ onClick: $,
357
+ variant: "contained"
358
+ }), t(e);
359
+ }, [
360
+ t,
361
+ $,
362
+ o,
363
+ Z.length,
364
+ l
365
+ ]), /* @__PURE__ */ H(A, { children: [
366
+ /* @__PURE__ */ V(A, {
367
+ sx: { marginBottom: 2 },
368
+ children: /* @__PURE__ */ V(se, { children: l("Select a tree and maximum distance to find similar cases for the {{count}} selected cases.", { count: c.selectedRows.length }) })
369
+ }),
370
+ /* @__PURE__ */ V(A, { children: /* @__PURE__ */ V(le, {
371
+ formFieldDefinitions: pe,
372
+ formId: u,
373
+ formMethods: L,
374
+ onSubmit: G(me),
375
+ schema: x
376
+ }) }),
377
+ /* @__PURE__ */ V(A, {
378
+ sx: {
379
+ display: "flex",
380
+ justifyContent: "flex-end",
381
+ marginTop: 2
382
+ },
383
+ children: /* @__PURE__ */ V(ae, {
384
+ color: "secondary",
385
+ form: u,
386
+ type: "submit",
387
+ variant: "contained",
388
+ children: g ? l`Search again` : l`Search`
389
+ })
390
+ }),
391
+ /* @__PURE__ */ V(oe, { sx: { marginY: 2 } }),
392
+ /* @__PURE__ */ V(ce, {
393
+ inlineSpinner: !0,
394
+ loadables: q,
395
+ children: q.data && /* @__PURE__ */ H(B, { children: [
396
+ /* @__PURE__ */ V(A, {
397
+ sx: { marginY: 2 },
398
+ children: /* @__PURE__ */ V(O, {
399
+ severity: q.data.length > 0 ? "success" : "warning",
400
+ children: /* @__PURE__ */ V(k, { children: l("Found {{count}} similar cases with a distance of {{distance}}.", {
401
+ count: q.data.length,
402
+ distance: g?.maxDistance
403
+ }) })
404
+ })
405
+ }),
406
+ Y.length > 0 && /* @__PURE__ */ V(A, {
407
+ sx: { marginY: 2 },
408
+ children: /* @__PURE__ */ V(fe, {
409
+ control: U,
410
+ data: Y,
411
+ name: "dateRange",
412
+ onOrganizationFilterChange: he,
413
+ organizationFilter: K.organizationFilter
414
+ })
415
+ }),
416
+ /* @__PURE__ */ V(A, {
417
+ sx: { marginY: 2 },
418
+ children: /* @__PURE__ */ V(O, {
419
+ severity: "info",
420
+ children: /* @__PURE__ */ V(k, { children: l("{{count}} similar cases can be added to the line list.", { count: Z.length }) })
421
+ })
422
+ }),
423
+ Q.length > 0 && /* @__PURE__ */ V(O, {
424
+ severity: "warning",
425
+ children: /* @__PURE__ */ V(k, { children: l("{{count}} similar cases found that are already in the line list.", { count: Q.length }) })
426
+ })
427
+ ] })
428
+ })
429
+ ] });
430
+ }, {
431
+ defaultTitle: "",
432
+ fullWidth: !0,
433
+ maxWidth: "md",
434
+ testId: "FindSimilarCasesDialog"
435
+ });
436
+ //#endregion
437
+ export { K as t };
438
+
439
+ //# sourceMappingURL=FindSimilarCasesDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FindSimilarCasesDialog.js","names":[],"sources":["../../src/components/ui/FindSimilarCasesDialog/FindSimilarCasesDialogDateRangeChart.tsx","../../src/components/ui/FindSimilarCasesDialog/FindSimilarCasesDialog.tsx"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { ReactElement } from 'react';\nimport {\n dispose,\n getInstanceByDom,\n init,\n use as registerECharts,\n} from 'echarts/core';\nimport {\n DataZoomComponent,\n GridComponent,\n LegendComponent,\n TooltipComponent,\n} from 'echarts/components';\nimport {\n BarChart,\n LineChart,\n} from 'echarts/charts';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport EChartsReact from 'echarts-for-react';\nimport type {\n Control,\n FieldValues,\n Path,\n} from 'react-hook-form';\nimport { Controller } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport {\n Box,\n useTheme,\n} from '@mui/material';\nimport { ConfigService } from '@gen-epix/ui/classes/services/ConfigService';\n\nimport { FindSimilarCasesUtil } from '../../../utils/FindSimilarCasesUtil';\nimport type {\n FindSimilarCasesChartDataPoint,\n FindSimilarCasesOrganizationFilter,\n} from '../../../models/caseDb';\nimport type { CaseDbConfig } from '../../../models/config';\n\nregisterECharts([BarChart, LineChart, GridComponent, LegendComponent, TooltipComponent, DataZoomComponent, CanvasRenderer]);\n\nconst echartsCore = {\n dispose,\n getInstanceByDom,\n init,\n};\n\nexport interface FindSimilarCasesDialogDateRangeChartProps<\n TFieldValues extends FieldValues,\n TName extends Path<TFieldValues> = Path<TFieldValues>,\n> {\n control: Control<TFieldValues>;\n data: FindSimilarCasesChartDataPoint[];\n name: TName;\n onOrganizationFilterChange: (organizationFilter: FindSimilarCasesOrganizationFilter) => void;\n organizationFilter: FindSimilarCasesOrganizationFilter;\n}\n\nexport const FindSimilarCasesDialogDateRangeChart = <\n TFieldValues extends FieldValues,\n TName extends Path<TFieldValues> = Path<TFieldValues>,\n>({\n control,\n data,\n name,\n onOrganizationFilterChange,\n organizationFilter,\n}: FindSimilarCasesDialogDateRangeChartProps<TFieldValues, TName>): ReactElement => {\n const { t } = useTranslation();\n const intervals = useMemo(() => FindSimilarCasesUtil.buildChartIntervals(data), [data]);\n const theme = useTheme();\n const [tooltipState, setTooltipState] = useState<{ content: string; x: number; y: number } | null>(null);\n const ownCasesLabel = t`Own cases`;\n const otherOrganizationCasesLabel = t`Cases from other organizations`;\n\n const intervalsRef = useRef(intervals);\n useEffect(() => {\n intervalsRef.current = intervals;\n }, [intervals]);\n\n // Keeps a stable reference to the latest onChange so onDataZoom never goes stale.\n const onChangeRef = useRef<((value: [string, string] | null) => void) | null>(null);\n\n const onDataZoom = useCallback((params: unknown) => {\n type ZoomPayload = { end?: number; endValue?: number; start?: number; startValue?: number };\n const event = params as { batch?: ZoomPayload[] } & ZoomPayload;\n const base = event.batch?.[0] ?? event;\n\n const n = intervalsRef.current.length - 1;\n let startIndex: number;\n let endIndex: number;\n\n if (base.startValue !== undefined && base.endValue !== undefined) {\n // index-based (e.g. inside/wheel zoom)\n startIndex = Math.round(base.startValue);\n endIndex = Math.round(base.endValue);\n } else if (base.start !== undefined && base.end !== undefined) {\n // percentage-based (slider drag)\n startIndex = Math.round((base.start / 100) * n);\n endIndex = Math.round((base.end / 100) * n);\n } else {\n onChangeRef.current?.(null);\n return;\n }\n\n const startInterval = intervalsRef.current[startIndex];\n const endInterval = intervalsRef.current[endIndex];\n if (startInterval && endInterval) {\n onChangeRef.current?.([startInterval.startDate, endInterval.endDate]);\n return;\n }\n onChangeRef.current?.(null);\n }, []);\n\n const option = useMemo(() => {\n const { BASE_COLORS } = ConfigService.getInstance<CaseDbConfig>().config.epi.STRATIFICATION;\n return {\n color: BASE_COLORS,\n dataZoom: [{\n borderColor: theme.palette.primary.light,\n bottom: 0,\n fillerColor: `${theme.palette.primary.main}33`,\n handleStyle: { borderColor: theme.palette.primary.main, color: theme.palette.primary.main },\n height: 50,\n left: 80,\n right: 80,\n selectedDataBackground: { areaStyle: { color: theme.palette.primary.light }, lineStyle: { color: theme.palette.primary.main } },\n type: 'slider',\n }],\n grid: { bottom: 110, left: 80, right: 80, top: 40 },\n legend: {\n data: [ownCasesLabel, otherOrganizationCasesLabel],\n selected: {\n [otherOrganizationCasesLabel]: organizationFilter !== 'own',\n [ownCasesLabel]: organizationFilter !== 'otherOrganization',\n },\n top: 0,\n },\n series: [\n {\n data: intervals.map(i => i.count),\n lineStyle: { opacity: 0 },\n name: 'dataZoomShadow',\n silent: true,\n symbol: 'none',\n type: 'line',\n },\n { data: intervals.map(i => i.ownCaseCount), itemStyle: { color: BASE_COLORS[0] }, name: ownCasesLabel, stack: 'similarCases', type: 'bar' },\n { data: intervals.map(i => i.otherOrganizationCaseCount), itemStyle: { color: BASE_COLORS[1] }, name: otherOrganizationCasesLabel, stack: 'similarCases', type: 'bar' },\n ],\n tooltip: { show: false },\n xAxis: { axisLabel: {\n height: 100,\n rotate: 45,\n }, axisTick: {\n alignWithLabel: true,\n show: true,\n }, data: intervals.map(i => i.label),\n type: 'category' },\n yAxis: { max: Math.max(...intervals.map(i => i.count), 1), minInterval: 1, type: 'value' },\n };\n }, [intervals, organizationFilter, otherOrganizationCasesLabel, ownCasesLabel, theme]);\n\n const onLegendSelectChanged = useCallback((params: unknown) => {\n const { selected } = params as { selected?: Record<string, boolean> };\n if (!selected) {\n return;\n }\n const ownCasesSelected = selected[ownCasesLabel] ?? true;\n const otherOrganizationCasesSelected = selected[otherOrganizationCasesLabel] ?? true;\n if (ownCasesSelected && !otherOrganizationCasesSelected) {\n onOrganizationFilterChange('own');\n return;\n }\n if (!ownCasesSelected && otherOrganizationCasesSelected) {\n onOrganizationFilterChange('otherOrganization');\n return;\n }\n onOrganizationFilterChange('all');\n }, [onOrganizationFilterChange, otherOrganizationCasesLabel, ownCasesLabel]);\n\n const onEvents = useMemo(() => ({\n datazoom: onDataZoom,\n legendselectchanged: onLegendSelectChanged,\n mouseout: () => {\n setTooltipState(null);\n },\n mouseover: (event: unknown) => {\n const e = event as { event?: { event?: MouseEvent }; name?: string; value?: number };\n const mouseEvent = e.event?.event;\n if (mouseEvent && e.name !== null && e.name !== undefined) {\n setTooltipState({ content: `${e.name} (n=${e.value ?? 0})`, x: mouseEvent.clientX + 12, y: mouseEvent.clientY + 12 });\n }\n },\n }), [onDataZoom, onLegendSelectChanged]);\n\n const renderChart = useCallback(({ field: { onChange } }: { field: { onChange: (value: [string, string] | null) => void } }) => {\n onChangeRef.current = onChange;\n return (\n <EChartsReact\n echarts={echartsCore}\n notMerge\n onEvents={onEvents}\n option={option}\n style={{ height: 400 }}\n />\n );\n }, [onEvents, option]);\n\n return (\n <>\n <Controller\n control={control}\n name={name}\n render={renderChart}\n />\n {tooltipState && (\n <Box\n sx={{\n bgcolor: 'background.paper',\n border: '1px solid',\n borderColor: 'divider',\n borderRadius: 1,\n fontSize: 12,\n left: tooltipState.x,\n pointerEvents: 'none',\n position: 'fixed',\n px: 1,\n py: 0.5,\n top: tooltipState.y,\n zIndex: 'tooltip',\n }}\n >\n {tooltipState.content}\n </Box>\n )}\n </>\n );\n};\n","import {\n use,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useState,\n} from 'react';\nimport type { ReactElement } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n mixed,\n object,\n string,\n} from 'yup';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport type { Resolver } from 'react-hook-form';\nimport {\n useForm,\n useWatch,\n} from 'react-hook-form';\nimport {\n Alert,\n AlertTitle,\n Box,\n Button,\n Divider,\n Typography,\n} from '@mui/material';\nimport { useStore } from 'zustand';\nimport { produce } from 'immer';\nimport {\n format,\n parseISO,\n} from 'date-fns';\nimport type {\n CaseDbCase,\n CaseDbCol,\n CaseDbCompleteCaseType,\n} from '@gen-epix/api-casedb';\nimport { CaseDbCaseApi } from '@gen-epix/api-casedb';\nimport type { DialogAction } from '@gen-epix/ui/components/ui/Dialog';\nimport type {\n WithDialogRefMethods,\n WithDialogRenderProps,\n} from '@gen-epix/ui/hoc/withDialog';\nimport { ConfigService } from '@gen-epix/ui/classes/services/ConfigService';\nimport { QueryClientService } from '@gen-epix/ui/classes/services/QueryClientService';\nimport { ResponseHandler } from '@gen-epix/ui/components/ui/ResponseHandler';\nimport { useQueryMemo } from '@gen-epix/ui/hooks/useQueryMemo';\nimport { withDialog } from '@gen-epix/ui/hoc/withDialog';\nimport { TestIdUtil } from '@gen-epix/ui-core/utils/TestIdUtil';\nimport { GenericForm } from '@gen-epix/ui-form/components/helpers/GenericForm';\nimport type {\n AutoCompleteOption,\n FormFieldDefinition,\n} from '@gen-epix/ui-form/models/form';\nimport { FORM_FIELD_DEFINITION_TYPE } from '@gen-epix/ui-form/models/form';\nimport { SchemaUtil } from '@gen-epix/ui-form/utils/SchemaUtil';\nimport { DATE_FORMAT } from '@gen-epix/ui-core/constants/date';\n\nimport { CASEDB_QUERY_KEY } from '../../../constants/query';\nimport type { CaseDbConfig } from '../../../models/config';\nimport { DashboardStoreContext } from '../../../stores/dashboardStore';\nimport { TreeWidgetUtil } from '../../../utils/TreeWidgetUtil';\nimport type {\n CaseDbSimilarCaseWithIsOwnCase,\n FindSimilarCasesChartDataPoint,\n FindSimilarCasesOrganizationFilter,\n} from '../../../models/caseDb';\nimport type { TreeWidgetDataPersistable } from '../../../models/dashboard';\nimport { DASHBOARD_COMPONENT_NAME } from '../../../constants/dashboard';\n\nimport { FindSimilarCasesDialogDateRangeChart } from './FindSimilarCasesDialogDateRangeChart';\n\nexport interface FindSimilarCasesDialogOpenProps {\n allRows: CaseDbCase[];\n completeCaseType: CaseDbCompleteCaseType;\n selectedRows: CaseDbCase[];\n}\n\nexport interface FindSimilarCasesDialogProps extends WithDialogRenderProps<FindSimilarCasesDialogOpenProps> {\n //\n}\n\nexport type FindSimilarCasesDialogRefMethods = WithDialogRefMethods<FindSimilarCasesDialogProps, FindSimilarCasesDialogOpenProps>;\n\ntype FormFields = {\n dateRange: [string, string] | null;\n maxDistance: number;\n organizationFilter: FindSimilarCasesOrganizationFilter;\n treeColId: string;\n};\n\nexport const FindSimilarCasesDialog = withDialog<FindSimilarCasesDialogProps, FindSimilarCasesDialogOpenProps>((\n {\n onActionsChange,\n onClose,\n onTitleChange,\n openProps,\n }: FindSimilarCasesDialogProps,\n): ReactElement => {\n const { t } = useTranslation();\n const searchFormId = useId();\n const dashboardStore = use(DashboardStoreContext);\n const treeConfiguration = dashboardStore.getState().getWidgetDataPersistable<TreeWidgetDataPersistable>(DASHBOARD_COMPONENT_NAME.TREE).treeConfiguration;\n const setFindSimilarCasesResults = useStore(dashboardStore, (state) => state.setFindSimilarCasesResults);\n const findSimilarCasesResults = useStore(dashboardStore, (state) => state.findSimilarCasesResults);\n const treeConfigurations = useMemo(() => TreeWidgetUtil.getTreeConfigurations(openProps.completeCaseType), [openProps.completeCaseType]);\n const [formData, setFormData] = useState<FormFields>(null);\n\n const schema = useMemo(() => object<FormFields>().shape({\n dateRange: mixed<[string, string] | null>().nullable().default(null),\n maxDistance: SchemaUtil.number.required().positive().when('treeColId', ([treeColId], s) => {\n const currentTreeConfiguration = treeConfigurations.find(x => x.col.id === treeColId);\n if (!currentTreeConfiguration) {\n return s;\n }\n const sWithIntegerCheck = s.integer(t`Max distance must be an integer`);\n return sWithIntegerCheck.max(currentTreeConfiguration.geneticDistanceProtocol.seqdb_max_stored_distance || ConfigService.getInstance<CaseDbConfig>().config.epi.SEQDB_MAX_STORED_DISTANCE_FALLBACK);\n }),\n organizationFilter: string<FindSimilarCasesOrganizationFilter>().required().oneOf(['all', 'own', 'otherOrganization']),\n treeColId: string().required(),\n }), [t, treeConfigurations]);\n\n const treeOptions = useMemo<AutoCompleteOption<string>[]>(() => {\n const cols = new Set<CaseDbCol>();\n treeConfigurations.forEach(x => {\n cols.add(x.col);\n });\n return Array.from(cols).map(x => {\n return {\n label: x.label,\n value: x.id,\n } satisfies AutoCompleteOption<string>;\n });\n\n }, [treeConfigurations]);\n\n const formMethods = useForm<FormFields>({\n defaultValues: {\n dateRange: null,\n maxDistance: 0,\n organizationFilter: 'all',\n treeColId: treeConfiguration ? treeConfiguration.col.id : null,\n },\n resolver: yupResolver(schema, undefined, { raw: true }) as Resolver<FormFields>,\n });\n const { control, handleSubmit } = formMethods;\n\n const formValues = useWatch({ control });\n\n const searchFormFieldDefinitions = useMemo(() => {\n const currentTreeConfiguration = treeConfigurations.find(x => x.col.id === formValues.treeColId);\n return [\n {\n definition: FORM_FIELD_DEFINITION_TYPE.SELECT,\n label: t`Tree`,\n name: 'treeColId',\n options: treeOptions,\n } as const satisfies FormFieldDefinition<FormFields>,\n {\n definition: FORM_FIELD_DEFINITION_TYPE.NUMBER,\n label: t`Max distance`,\n max: currentTreeConfiguration?.geneticDistanceProtocol?.seqdb_max_stored_distance || ConfigService.getInstance<CaseDbConfig>().config.epi.SEQDB_MAX_STORED_DISTANCE_FALLBACK,\n min: 0,\n name: 'maxDistance',\n showSlider: true,\n step: 1,\n } as const satisfies FormFieldDefinition<FormFields>,\n ];\n }, [formValues.treeColId, t, treeConfigurations, treeOptions]);\n\n useEffect(() => {\n onTitleChange(t`Find similar cases`);\n }, [t, onTitleChange]);\n\n const onFormSubmit = useCallback((data: FormFields) => {\n formMethods.setValue('dateRange', null);\n setFormData({ ...data, dateRange: null });\n }, [formMethods]);\n\n const onOrganizationFilterChange = useCallback((organizationFilter: FindSimilarCasesOrganizationFilter) => {\n formMethods.setValue('organizationFilter', organizationFilter);\n }, [formMethods]);\n\n const query = useQueryMemo({\n enabled: !!formData,\n queryFn: async ({ signal }) => {\n const retrieveSimilarCasesResponse = await CaseDbCaseApi.getInstance().retrieveSimilarCases({\n case_ids: openProps.selectedRows.map(x => x.id),\n case_type_id: openProps.completeCaseType.id,\n genetic_distance_col_id: formData?.treeColId,\n max_distance: formData?.maxDistance,\n }, { signal });\n const retrieveIsOwnCasesResponse = await CaseDbCaseApi.getInstance().retrieveIsOwnCases({\n case_ids: retrieveSimilarCasesResponse.data.cases.map(x => x.id),\n case_type_id: openProps.completeCaseType.id,\n }, { signal });\n\n return retrieveSimilarCasesResponse.data.cases.map(caseDbCase => {\n return {\n ...caseDbCase,\n is_own_case: retrieveIsOwnCasesResponse.data[caseDbCase.id] || false,\n } satisfies CaseDbSimilarCaseWithIsOwnCase;\n });\n },\n queryKey: [QueryClientService.getInstance().getGenericKey(CASEDB_QUERY_KEY.SIMILAR_CASES), JSON.stringify({ formData, rowIds: openProps.selectedRows.map(row => row.id) })],\n });\n\n const organizationFilteredCases = useMemo<CaseDbSimilarCaseWithIsOwnCase[]>(() => {\n if (!query.data) {\n return [];\n }\n return query.data.filter(c => {\n switch (formValues.organizationFilter) {\n case 'all': return true;\n case 'otherOrganization': return !c.is_own_case;\n case 'own': return c.is_own_case;\n default: return true;\n }\n });\n }, [query.data, formValues.organizationFilter]);\n\n const chartData = useMemo<FindSimilarCasesChartDataPoint[]>(() => {\n const counts = new Map<string, FindSimilarCasesChartDataPoint>();\n for (const { case_date, is_own_case } of query.data ?? []) {\n if (case_date) {\n const currentCount = counts.get(case_date) ?? {\n count: 0,\n date: case_date,\n otherOrganizationCaseCount: 0,\n ownCaseCount: 0,\n };\n currentCount.count += 1;\n if (is_own_case) {\n currentCount.ownCaseCount += 1;\n } else {\n currentCount.otherOrganizationCaseCount += 1;\n }\n counts.set(case_date, currentCount);\n }\n }\n return Array.from(counts.values())\n .sort((a, b) => a.date.localeCompare(b.date));\n }, [query.data]);\n\n const filteredCases = useMemo<CaseDbSimilarCaseWithIsOwnCase[]>(() => {\n const dateRange = formValues.dateRange;\n if (!dateRange) {\n return organizationFilteredCases;\n }\n const [startDate, endDate] = dateRange;\n return organizationFilteredCases.filter(c => {\n if (!c.case_date) {\n return false;\n }\n const caseDateOnly = format(parseISO(c.case_date), DATE_FORMAT.DATE);\n return caseDateOnly >= startDate && caseDateOnly <= endDate;\n });\n }, [formValues.dateRange, organizationFilteredCases]);\n\n const similarCaseIdsNotInLineListWithDateFilter = useMemo<string[]>(() => {\n const allRowIds = openProps.allRows.map(x => x.id);\n return filteredCases.reduce<string[]>((acc, caseIdAndDate) => {\n const caseId = caseIdAndDate.id;\n if (!allRowIds.includes(caseId)) {\n acc.push(caseId);\n }\n return acc;\n }, []);\n }, [filteredCases, openProps.allRows]);\n\n const similarCaseIdsAlreadyInLineListWithDateFilter = useMemo<string[]>(() => {\n const allRowIds = openProps.allRows.map(x => x.id);\n return filteredCases.reduce<string[]>((acc, caseIdAndDate) => {\n const caseId = caseIdAndDate.id;\n if (allRowIds.includes(caseId)) {\n acc.push(caseId);\n }\n return acc;\n }, []);\n }, [filteredCases, openProps.allRows]);\n\n const onAddToLineListButtonClick = useCallback(async () => {\n\n await setFindSimilarCasesResults(produce(findSimilarCasesResults, draft => {\n draft.push({\n colId: formData?.treeColId,\n distance: formData?.maxDistance,\n key: findSimilarCasesResults.length.toString(),\n originalCaseIds: openProps.allRows.map(x => x.id),\n similarCaseIds: similarCaseIdsNotInLineListWithDateFilter,\n });\n return draft;\n }));\n\n onClose();\n }, [setFindSimilarCasesResults, findSimilarCasesResults, onClose, similarCaseIdsNotInLineListWithDateFilter, formData?.maxDistance, formData?.treeColId, openProps.allRows]);\n\n useEffect(() => {\n const actions: DialogAction[] = [];\n actions.push({\n ...TestIdUtil.createAttributes('FindSimilarCasesDialog-closeButton'),\n color: 'primary',\n label: t`Close`,\n onClick: onClose,\n variant: 'outlined',\n });\n actions.push({\n ...TestIdUtil.createAttributes('FindSimilarCasesDialog-addSimilarCasesButton'),\n color: 'secondary',\n disabled: similarCaseIdsNotInLineListWithDateFilter.length === 0,\n label: t('Add {{count}} similar cases to line list', { count: similarCaseIdsNotInLineListWithDateFilter.length }),\n onClick: onAddToLineListButtonClick,\n variant: 'contained',\n });\n onActionsChange(actions);\n }, [onActionsChange, onAddToLineListButtonClick, onClose, similarCaseIdsNotInLineListWithDateFilter.length, t]);\n\n return (\n <Box>\n <Box\n sx={{\n marginBottom: 2,\n }}\n >\n <Typography>\n {t('Select a tree and maximum distance to find similar cases for the {{count}} selected cases.', { count: openProps.selectedRows.length })}\n </Typography>\n </Box>\n <Box>\n <GenericForm<FormFields>\n formFieldDefinitions={searchFormFieldDefinitions}\n formId={searchFormId}\n formMethods={formMethods}\n onSubmit={handleSubmit(onFormSubmit)}\n schema={schema}\n />\n </Box>\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n marginTop: 2,\n }}\n >\n <Button\n color={'secondary'}\n form={searchFormId}\n type={'submit'}\n variant={'contained'}\n >\n {formData ? t`Search again` : t`Search`}\n </Button>\n </Box>\n <Divider sx={{ marginY: 2 }} />\n <ResponseHandler\n inlineSpinner\n loadables={query}\n >\n {query.data && (\n <>\n <Box\n sx={{\n marginY: 2,\n }}\n >\n <Alert\n severity={query.data.length > 0 ? 'success' : 'warning'}\n >\n <AlertTitle>\n {t('Found {{count}} similar cases with a distance of {{distance}}.', { count: query.data.length, distance: formData?.maxDistance })}\n </AlertTitle>\n </Alert>\n </Box>\n {chartData.length > 0 && (\n <Box\n sx={{\n marginY: 2,\n }}\n >\n <FindSimilarCasesDialogDateRangeChart<FormFields>\n control={control}\n data={chartData}\n name={'dateRange'}\n onOrganizationFilterChange={onOrganizationFilterChange}\n organizationFilter={formValues.organizationFilter}\n />\n </Box>\n )}\n <Box\n sx={{\n marginY: 2,\n }}\n >\n <Alert\n severity={'info'}\n >\n <AlertTitle>\n {t('{{count}} similar cases can be added to the line list.', { count: similarCaseIdsNotInLineListWithDateFilter.length })}\n </AlertTitle>\n </Alert>\n </Box>\n {similarCaseIdsAlreadyInLineListWithDateFilter.length > 0 && (\n <Alert\n severity={'warning'}\n >\n <AlertTitle>\n {t('{{count}} similar cases found that are already in the line list.', { count: similarCaseIdsAlreadyInLineListWithDateFilter.length })}\n </AlertTitle>\n </Alert>\n )}\n </>\n )}\n </ResponseHandler>\n </Box>\n );\n}, {\n defaultTitle: '',\n fullWidth: true,\n maxWidth: 'md',\n testId: 'FindSimilarCasesDialog',\n});\n"],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { t as e } from "./toDate.js";
2
+ import { a as t, c as n, i as r, l as i, n as a, r as o, s, t as c } from "./eachYearOfInterval.js";
3
+ import { i as l, n as u, t as d } from "./format.js";
4
+ import { t as f } from "./parseISO.js";
5
+ import { DATE_FORMAT as p } from "@gen-epix/ui-core/constants/date";
6
+ //#region ../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/endOfQuarter.js
7
+ function m(t, n) {
8
+ let r = e(t, n?.in), i = r.getMonth(), a = i - i % 3 + 3;
9
+ return r.setMonth(a, 0), r.setHours(23, 59, 59, 999), r;
10
+ }
11
+ //#endregion
12
+ //#region ../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/endOfYear.js
13
+ function h(t, n) {
14
+ let r = e(t, n?.in), i = r.getFullYear();
15
+ return r.setFullYear(i + 1, 0, 0), r.setHours(23, 59, 59, 999), r;
16
+ }
17
+ //#endregion
18
+ //#region ../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfMonth.js
19
+ function g(t, n) {
20
+ let r = e(t, n?.in);
21
+ return r.setDate(1), r.setHours(0, 0, 0, 0), r;
22
+ }
23
+ //#endregion
24
+ //#region src/utils/FindSimilarCasesUtil/FindSimilarCasesUtil.ts
25
+ var _ = class e {
26
+ static buildChartIntervals(t) {
27
+ if (t.length === 0) return [];
28
+ let n = f(t[0].date), r = f(t[t.length - 1].date), i = e.pickGranularity(n, r), a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map();
29
+ for (let { count: n, date: r, otherOrganizationCaseCount: c, ownCaseCount: l } of t) {
30
+ let { label: t } = e.getIntervalBoundsAndLabel(f(r), i);
31
+ a.set(t, (a.get(t) ?? 0) + n), o.set(t, (o.get(t) ?? 0) + l), s.set(t, (s.get(t) ?? 0) + c);
32
+ }
33
+ let { start: c } = e.getIntervalBoundsAndLabel(n, i), { start: l } = e.getIntervalBoundsAndLabel(r, i);
34
+ return e.generateIntervalStartDates(c, l, i).map((t) => {
35
+ let { end: n, label: r, start: c } = e.getIntervalBoundsAndLabel(t, i);
36
+ return {
37
+ count: a.get(r) ?? 0,
38
+ endDate: d(n, p.DATE),
39
+ label: r,
40
+ otherOrganizationCaseCount: s.get(r) ?? 0,
41
+ ownCaseCount: o.get(r) ?? 0,
42
+ startDate: d(c, p.DATE)
43
+ };
44
+ });
45
+ }
46
+ static generateIntervalStartDates(e, n, i) {
47
+ switch (i) {
48
+ case "day": return t({
49
+ end: n,
50
+ start: e
51
+ });
52
+ case "month": return r({
53
+ end: n,
54
+ start: e
55
+ });
56
+ case "quarter": return a({
57
+ end: n,
58
+ start: e
59
+ });
60
+ case "year": return c({
61
+ end: n,
62
+ start: e
63
+ });
64
+ default: throw Error(`Unhandled granularity: ${String(i)}`);
65
+ }
66
+ }
67
+ static getIntervalBoundsAndLabel(e, t) {
68
+ switch (t) {
69
+ case "day": return {
70
+ end: n(e),
71
+ label: d(l(e), p.DATE),
72
+ start: l(e)
73
+ };
74
+ case "month": return {
75
+ end: s(e),
76
+ label: d(g(e), p.YEAR_MONTH),
77
+ start: g(e)
78
+ };
79
+ case "quarter": return {
80
+ end: m(e),
81
+ label: d(o(e), p.YEAR_QUARTER),
82
+ start: o(e)
83
+ };
84
+ case "year": return {
85
+ end: h(e),
86
+ label: d(u(e), p.YEAR),
87
+ start: u(e)
88
+ };
89
+ default: throw Error(`Unhandled granularity: ${String(t)}`);
90
+ }
91
+ }
92
+ static pickGranularity(e, t) {
93
+ let n = i(t, e);
94
+ return n <= 90 ? "day" : n <= 730 ? "month" : n <= 2920 ? "quarter" : "year";
95
+ }
96
+ };
97
+ //#endregion
98
+ export { m as i, g as n, h as r, _ as t };
99
+
100
+ //# sourceMappingURL=FindSimilarCasesUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FindSimilarCasesUtil.js","names":[],"sources":["../../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/endOfQuarter.js","../../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/endOfYear.js","../../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfMonth.js","../../src/utils/FindSimilarCasesUtil/FindSimilarCasesUtil.ts"],"sourcesContent":["import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfQuarter} function options.\n */\n\n/**\n * @name endOfQuarter\n * @category Quarter Helpers\n * @summary Return the end of a year quarter for the given date.\n *\n * @description\n * Return the end of a year quarter 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 quarter\n *\n * @example\n * // The end of a quarter for 2 September 2014 11:55:00:\n * const result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport function endOfQuarter(date, options) {\n const _date = toDate(date, options?.in);\n const currentMonth = _date.getMonth();\n const month = currentMonth - (currentMonth % 3) + 3;\n _date.setMonth(month, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfQuarter;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfYear} function options.\n */\n\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year 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 - The options\n *\n * @returns The end of a year\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nexport function endOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n _date.setFullYear(year + 1, 0, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfMonth} function options.\n */\n\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date. The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments.\n * 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,\n * or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfMonth(date, options) {\n const _date = toDate(date, options?.in);\n _date.setDate(1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfMonth;\n","import {\n differenceInDays,\n eachDayOfInterval,\n eachMonthOfInterval,\n eachQuarterOfInterval,\n eachYearOfInterval,\n endOfDay,\n endOfMonth,\n endOfQuarter,\n endOfYear,\n format,\n parseISO,\n startOfDay,\n startOfMonth,\n startOfQuarter,\n startOfYear,\n} from 'date-fns';\nimport { DATE_FORMAT } from '@gen-epix/ui-core/constants/date';\n\nimport type {\n FindSimilarCasesChartDataPoint,\n FindSimilarCasesChartGranularity,\n FindSimilarCasesChartInterval,\n} from '../../models/caseDb';\n\nexport class FindSimilarCasesUtil {\n public static buildChartIntervals(data: FindSimilarCasesChartDataPoint[]): FindSimilarCasesChartInterval[] {\n if (data.length === 0) {\n return [];\n }\n\n const minDate = parseISO(data[0].date);\n const maxDate = parseISO(data[data.length - 1].date);\n const granularity = FindSimilarCasesUtil.pickGranularity(minDate, maxDate);\n\n const countsMap = new Map<string, number>();\n const ownCaseCountsMap = new Map<string, number>();\n const otherOrganizationCaseCountsMap = new Map<string, number>();\n for (const { count, date, otherOrganizationCaseCount, ownCaseCount } of data) {\n const { label } = FindSimilarCasesUtil.getIntervalBoundsAndLabel(parseISO(date), granularity);\n countsMap.set(label, (countsMap.get(label) ?? 0) + count);\n ownCaseCountsMap.set(label, (ownCaseCountsMap.get(label) ?? 0) + ownCaseCount);\n otherOrganizationCaseCountsMap.set(label, (otherOrganizationCaseCountsMap.get(label) ?? 0) + otherOrganizationCaseCount);\n }\n\n const { start: rangeStart } = FindSimilarCasesUtil.getIntervalBoundsAndLabel(minDate, granularity);\n const { start: rangeEnd } = FindSimilarCasesUtil.getIntervalBoundsAndLabel(maxDate, granularity);\n const intervalDates = FindSimilarCasesUtil.generateIntervalStartDates(rangeStart, rangeEnd, granularity);\n\n return intervalDates.map(d => {\n const { end, label, start } = FindSimilarCasesUtil.getIntervalBoundsAndLabel(d, granularity);\n return {\n count: countsMap.get(label) ?? 0,\n endDate: format(end, DATE_FORMAT.DATE),\n label,\n otherOrganizationCaseCount: otherOrganizationCaseCountsMap.get(label) ?? 0,\n ownCaseCount: ownCaseCountsMap.get(label) ?? 0,\n startDate: format(start, DATE_FORMAT.DATE),\n };\n });\n }\n\n private static generateIntervalStartDates(rangeStart: Date, rangeEnd: Date, granularity: FindSimilarCasesChartGranularity): Date[] {\n switch (granularity) {\n case 'day': return eachDayOfInterval({ end: rangeEnd, start: rangeStart });\n case 'month': return eachMonthOfInterval({ end: rangeEnd, start: rangeStart });\n case 'quarter': return eachQuarterOfInterval({ end: rangeEnd, start: rangeStart });\n case 'year': return eachYearOfInterval({ end: rangeEnd, start: rangeStart });\n default: throw new Error(`Unhandled granularity: ${String(granularity)}`);\n }\n }\n\n private static getIntervalBoundsAndLabel(d: Date, granularity: FindSimilarCasesChartGranularity): { end: Date; label: string; start: Date } {\n switch (granularity) {\n case 'day': return { end: endOfDay(d), label: format(startOfDay(d), DATE_FORMAT.DATE), start: startOfDay(d) };\n case 'month': return { end: endOfMonth(d), label: format(startOfMonth(d), DATE_FORMAT.YEAR_MONTH), start: startOfMonth(d) };\n case 'quarter': return { end: endOfQuarter(d), label: format(startOfQuarter(d), DATE_FORMAT.YEAR_QUARTER), start: startOfQuarter(d) };\n case 'year': return { end: endOfYear(d), label: format(startOfYear(d), DATE_FORMAT.YEAR), start: startOfYear(d) };\n default: throw new Error(`Unhandled granularity: ${String(granularity)}`);\n }\n }\n\n private static pickGranularity(minDate: Date, maxDate: Date): FindSimilarCasesChartGranularity {\n const days = differenceInDays(maxDate, minDate);\n if (days <= 90) {\n return 'day';\n }\n if (days <= 730) {\n return 'month';\n }\n if (days <= 2920) {\n return 'quarter';\n }\n return 'year';\n }\n}\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}