synapse-react-client 4.0.26 → 4.0.28

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 (360) hide show
  1. package/dist/SWC.index.d.ts +3 -2
  2. package/dist/SWC.index.d.ts.map +1 -1
  3. package/dist/SWC.index.js +4 -3
  4. package/dist/SWC.index.js.map +1 -1
  5. package/dist/assets/icons/FileCopy.d.ts +5 -0
  6. package/dist/assets/icons/FileCopy.d.ts.map +1 -0
  7. package/dist/assets/icons/FileCopy.js +13 -0
  8. package/dist/assets/icons/FileCopy.js.map +1 -0
  9. package/dist/assets/icons/NIHIcon.d.ts +4 -0
  10. package/dist/assets/icons/NIHIcon.d.ts.map +1 -0
  11. package/dist/assets/icons/NIHIcon.js +14 -0
  12. package/dist/assets/icons/NIHIcon.js.map +1 -0
  13. package/dist/assets/icons/fileCopy.svg +8 -0
  14. package/dist/assets/icons/fileCopy2.js +33 -0
  15. package/dist/assets/icons/fileCopy2.js.map +1 -0
  16. package/dist/assets/icons/nih.js +35 -0
  17. package/dist/assets/icons/nih.js.map +1 -0
  18. package/dist/assets/icons/nih.svg +9 -0
  19. package/dist/assets/illustrations/compute_illustration.js +485 -0
  20. package/dist/assets/illustrations/compute_illustration.js.map +1 -0
  21. package/dist/assets/illustrations/compute_illustration.svg +204 -0
  22. package/dist/assets/illustrations/curate_data_illustration.js +479 -0
  23. package/dist/assets/illustrations/curate_data_illustration.js.map +1 -0
  24. package/dist/assets/illustrations/curate_data_illustration.svg +91 -0
  25. package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js +1 -1
  26. package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js +1 -1
  27. package/dist/components/Authentication/AuthenticationMethodSelection.d.ts +1 -0
  28. package/dist/components/Authentication/AuthenticationMethodSelection.d.ts.map +1 -1
  29. package/dist/components/Authentication/AuthenticationMethodSelection.js +17 -10
  30. package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
  31. package/dist/components/Authentication/LastLoginInfo.d.ts +2 -2
  32. package/dist/components/Authentication/LoginForm.d.ts +1 -0
  33. package/dist/components/Authentication/LoginForm.d.ts.map +1 -1
  34. package/dist/components/Authentication/LoginForm.js +3 -2
  35. package/dist/components/Authentication/LoginForm.js.map +1 -1
  36. package/dist/components/Authentication/LoginMethod.d.ts +2 -2
  37. package/dist/components/Authentication/LoginMethod.d.ts.map +1 -1
  38. package/dist/components/Authentication/LoginMethod.js +10 -8
  39. package/dist/components/Authentication/LoginMethod.js.map +1 -1
  40. package/dist/components/Authentication/StandaloneLoginForm.d.ts +1 -0
  41. package/dist/components/Authentication/StandaloneLoginForm.d.ts.map +1 -1
  42. package/dist/components/Authentication/StandaloneLoginForm.js +16 -15
  43. package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
  44. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +0 -2
  45. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  46. package/dist/components/Breadcrumbs/Breadcrumbs.js +24 -30
  47. package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  48. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js +1 -1
  49. package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js +1 -1
  50. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +1 -1
  51. package/dist/components/ChangePassword/ChangePassword.js +1 -1
  52. package/dist/components/CopyToClipboardString/CopyToClipboardString.d.ts +3 -2
  53. package/dist/components/CopyToClipboardString/CopyToClipboardString.d.ts.map +1 -1
  54. package/dist/components/CopyToClipboardString/CopyToClipboardString.js +27 -18
  55. package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
  56. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  57. package/dist/components/DataGrid/SynapseGrid.js +2 -5
  58. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  59. package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts +35 -0
  60. package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts.map +1 -0
  61. package/dist/components/DataGrid/SyncGridWithSourceButton.js +115 -0
  62. package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -0
  63. package/dist/components/DataGrid/useMergeGridWithRecordSet.d.ts +2 -0
  64. package/dist/components/DataGrid/useMergeGridWithRecordSet.d.ts.map +1 -1
  65. package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
  66. package/dist/components/DataGrid/useMergeGridWithSource.d.ts +12 -7
  67. package/dist/components/DataGrid/useMergeGridWithSource.d.ts.map +1 -1
  68. package/dist/components/DataGrid/useMergeGridWithSource.js +31 -25
  69. package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
  70. package/dist/components/DownloadCart/DownloadListTable.js +1 -1
  71. package/dist/components/DynamicForm/DynamicForm.js +1 -1
  72. package/dist/components/EntityAclEditor/EntityAclEditorModal.js +1 -1
  73. package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js +1 -1
  74. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +1 -1
  75. package/dist/components/EntityFinder/EntityIdTextField.d.ts +1 -0
  76. package/dist/components/EntityFinder/EntityIdTextField.d.ts.map +1 -1
  77. package/dist/components/EntityFinder/EntityIdTextField.js +7 -6
  78. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  79. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +1 -1
  80. package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js +1 -1
  81. package/dist/components/EntitySidebar/EntitySidebar.css +1 -1
  82. package/dist/components/EntitySidebar/EntitySidebar.d.ts.map +1 -1
  83. package/dist/components/EntitySidebar/EntitySidebar.js +47 -39
  84. package/dist/components/EntitySidebar/EntitySidebar.js.map +1 -1
  85. package/dist/components/EntitySidebar/EntitySidebar.module.js +11 -11
  86. package/dist/components/EntitySidebar/EntitySidebar.module.js.map +1 -1
  87. package/dist/components/EntitySidebar/EntitySidebar.module.scss +6 -6
  88. package/dist/components/FieldDescription/FieldDescription.css +1 -0
  89. package/dist/components/FieldDescription/FieldDescription.d.ts +15 -0
  90. package/dist/components/FieldDescription/FieldDescription.d.ts.map +1 -0
  91. package/dist/components/FieldDescription/FieldDescription.js +13 -0
  92. package/dist/components/FieldDescription/FieldDescription.js.map +1 -0
  93. package/dist/components/FieldDescription/FieldDescription.module.js +5 -0
  94. package/dist/components/FieldDescription/FieldDescription.module.js.map +1 -0
  95. package/dist/components/FieldDescription/FieldDescription.module.scss +8 -0
  96. package/dist/components/FieldDescription/index.d.ts +3 -0
  97. package/dist/components/FieldDescription/index.d.ts.map +1 -0
  98. package/dist/components/FieldDescription/index.js +2 -0
  99. package/dist/components/IconSvg/IconSvg.d.ts +1 -1
  100. package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
  101. package/dist/components/IconSvg/IconSvg.js +216 -212
  102. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  103. package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js +1 -1
  104. package/dist/components/OAuthClientManagement/OAuthManagement.js +1 -1
  105. package/dist/components/PortalAclEditor/PortalAclEditorModal.js +1 -1
  106. package/dist/components/PortalList/CreatePortalModal.js +1 -1
  107. package/dist/components/PortalList/PortalCard.js +1 -1
  108. package/dist/components/ProjectInfo/ProjectInfo.css +1 -0
  109. package/dist/components/ProjectInfo/ProjectInfo.d.ts +5 -0
  110. package/dist/components/ProjectInfo/ProjectInfo.d.ts.map +1 -0
  111. package/dist/components/ProjectInfo/ProjectInfo.js +50 -0
  112. package/dist/components/ProjectInfo/ProjectInfo.js.map +1 -0
  113. package/dist/components/ProjectInfo/ProjectInfo.module.js +11 -0
  114. package/dist/components/ProjectInfo/ProjectInfo.module.js.map +1 -0
  115. package/dist/components/ProjectInfo/ProjectInfo.module.scss +35 -0
  116. package/dist/components/ProjectInfo/ProjectInfoPopover.d.ts +10 -0
  117. package/dist/components/ProjectInfo/ProjectInfoPopover.d.ts.map +1 -0
  118. package/dist/components/ProjectInfo/ProjectInfoPopover.js +94 -0
  119. package/dist/components/ProjectInfo/ProjectInfoPopover.js.map +1 -0
  120. package/dist/components/ProjectStorage/ProjectDataAvailability.d.ts +2 -1
  121. package/dist/components/ProjectStorage/ProjectDataAvailability.d.ts.map +1 -1
  122. package/dist/components/ProjectStorage/ProjectDataAvailability.js +67 -75
  123. package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
  124. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
  125. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +12 -3
  126. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  127. package/dist/components/StorybookComponentWrapper.js +1 -1
  128. package/dist/components/SynapseChat/SynapseChat.js +1 -1
  129. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +1 -1
  130. package/dist/components/SynapseTable/table-top/DownloadOptions.js +1 -1
  131. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  132. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js +1 -1
  133. package/dist/components/TextField/TextField.css +1 -1
  134. package/dist/components/TextField/TextField.d.ts.map +1 -1
  135. package/dist/components/TextField/TextField.js +27 -25
  136. package/dist/components/TextField/TextField.js.map +1 -1
  137. package/dist/components/TextField/TextField.module.js +3 -3
  138. package/dist/components/TextField/TextField.module.js.map +1 -1
  139. package/dist/components/TextField/TextField.module.scss +2 -5
  140. package/dist/components/Webhook/WebhookVerificationDialog.js +1 -1
  141. package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js +1 -1
  142. package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js +1 -1
  143. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +1 -1
  144. package/dist/components/entity/page/title_bar/EntityPageTitleBar.d.ts.map +1 -1
  145. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js +66 -49
  146. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
  147. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +1 -1
  148. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  149. package/dist/components/error/SendMessageToEntityOwnerDialog.js +1 -1
  150. package/dist/components/index.js +1 -1
  151. package/dist/components/menu/ComplexMenu.d.ts.map +1 -1
  152. package/dist/components/menu/ComplexMenu.js +1 -4
  153. package/dist/components/menu/ComplexMenu.js.map +1 -1
  154. package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js +1 -1
  155. package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
  156. package/dist/features/curator/dashboard/CuratorDashboard.d.ts +1 -1
  157. package/dist/features/curator/dashboard/CuratorDashboard.d.ts.map +1 -1
  158. package/dist/features/curator/dashboard/CuratorDashboard.js +36 -35
  159. package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
  160. package/dist/features/curator/dashboard/CuratorDashboardRouter.d.ts +13 -0
  161. package/dist/features/curator/dashboard/CuratorDashboardRouter.d.ts.map +1 -0
  162. package/dist/features/curator/dashboard/CuratorDashboardRouter.js +37 -0
  163. package/dist/features/curator/dashboard/CuratorDashboardRouter.js.map +1 -0
  164. package/dist/features/curator/dashboard/components/CurationTaskCard.css +1 -1
  165. package/dist/features/curator/dashboard/components/CurationTaskCard.d.ts +3 -1
  166. package/dist/features/curator/dashboard/components/CurationTaskCard.d.ts.map +1 -1
  167. package/dist/features/curator/dashboard/components/CurationTaskCard.js +26 -157
  168. package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
  169. package/dist/features/curator/dashboard/components/CurationTaskCard.module.js +10 -6
  170. package/dist/features/curator/dashboard/components/CurationTaskCard.module.js.map +1 -1
  171. package/dist/features/curator/dashboard/components/CurationTaskCard.module.scss +31 -0
  172. package/dist/features/curator/dashboard/components/CurationTaskCardLayout.d.ts +25 -0
  173. package/dist/features/curator/dashboard/components/CurationTaskCardLayout.d.ts.map +1 -0
  174. package/dist/features/curator/dashboard/components/CurationTaskCardLayout.js +134 -0
  175. package/dist/features/curator/dashboard/components/CurationTaskCardLayout.js.map +1 -0
  176. package/dist/features/curator/dashboard/components/ExecutableTaskCard.d.ts +10 -0
  177. package/dist/features/curator/dashboard/components/ExecutableTaskCard.d.ts.map +1 -0
  178. package/dist/features/curator/dashboard/components/ExecutableTaskCard.js +51 -0
  179. package/dist/features/curator/dashboard/components/ExecutableTaskCard.js.map +1 -0
  180. package/dist/features/curator/dashboard/components/GridTaskCard.d.ts +10 -0
  181. package/dist/features/curator/dashboard/components/GridTaskCard.d.ts.map +1 -0
  182. package/dist/features/curator/dashboard/components/GridTaskCard.js +35 -0
  183. package/dist/features/curator/dashboard/components/GridTaskCard.js.map +1 -0
  184. package/dist/features/curator/dashboard/components/NextStepButton.css +1 -1
  185. package/dist/features/curator/dashboard/components/NextStepButton.d.ts +3 -0
  186. package/dist/features/curator/dashboard/components/NextStepButton.d.ts.map +1 -1
  187. package/dist/features/curator/dashboard/components/NextStepButton.js +56 -26
  188. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  189. package/dist/features/curator/dashboard/components/NextStepButton.module.js +6 -5
  190. package/dist/features/curator/dashboard/components/NextStepButton.module.js.map +1 -1
  191. package/dist/features/curator/dashboard/components/NextStepButton.module.scss +28 -0
  192. package/dist/features/curator/dashboard/components/getExecutableTaskButtonState.d.ts +31 -0
  193. package/dist/features/curator/dashboard/components/getExecutableTaskButtonState.d.ts.map +1 -0
  194. package/dist/features/curator/dashboard/components/getExecutableTaskButtonState.js +32 -0
  195. package/dist/features/curator/dashboard/components/getExecutableTaskButtonState.js.map +1 -0
  196. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
  197. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +213 -204
  198. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  199. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts +0 -1
  200. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
  201. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +19 -39
  202. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  203. package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts +9 -3
  204. package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts.map +1 -1
  205. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +39 -49
  206. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  207. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.d.ts +17 -0
  208. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.d.ts.map +1 -0
  209. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.js +43 -0
  210. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.js.map +1 -0
  211. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.d.ts.map +1 -1
  212. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js +27 -26
  213. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  214. package/dist/features/entity/metadata-task/create-task/CommonTaskFields.d.ts +16 -0
  215. package/dist/features/entity/metadata-task/create-task/CommonTaskFields.d.ts.map +1 -0
  216. package/dist/features/entity/metadata-task/create-task/CommonTaskFields.js +64 -0
  217. package/dist/features/entity/metadata-task/create-task/CommonTaskFields.js.map +1 -0
  218. package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.d.ts +41 -0
  219. package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.d.ts.map +1 -0
  220. package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.js +165 -0
  221. package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.js.map +1 -0
  222. package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.d.ts +18 -0
  223. package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.d.ts.map +1 -0
  224. package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.js +78 -0
  225. package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.js.map +1 -0
  226. package/dist/features/entity/metadata-task/create-task/CreateTaskCategoryPicker.d.ts +10 -0
  227. package/dist/features/entity/metadata-task/create-task/CreateTaskCategoryPicker.d.ts.map +1 -0
  228. package/dist/features/entity/metadata-task/create-task/CreateTaskCategoryPicker.js +40 -0
  229. package/dist/features/entity/metadata-task/create-task/CreateTaskCategoryPicker.js.map +1 -0
  230. package/dist/features/entity/metadata-task/create-task/CreateTaskConfirmation.d.ts +13 -0
  231. package/dist/features/entity/metadata-task/create-task/CreateTaskConfirmation.d.ts.map +1 -0
  232. package/dist/features/entity/metadata-task/create-task/CreateTaskConfirmation.js +35 -0
  233. package/dist/features/entity/metadata-task/create-task/CreateTaskConfirmation.js.map +1 -0
  234. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.d.ts +41 -0
  235. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.d.ts.map +1 -0
  236. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js +198 -0
  237. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js.map +1 -0
  238. package/dist/features/entity/metadata-task/create-task/EditCurationTaskPage.d.ts +8 -0
  239. package/dist/features/entity/metadata-task/create-task/EditCurationTaskPage.d.ts.map +1 -0
  240. package/dist/features/entity/metadata-task/create-task/EditCurationTaskPage.js +29 -0
  241. package/dist/features/entity/metadata-task/create-task/EditCurationTaskPage.js.map +1 -0
  242. package/dist/features/entity/metadata-task/create-task/FileBasedFields.d.ts +13 -0
  243. package/dist/features/entity/metadata-task/create-task/FileBasedFields.d.ts.map +1 -0
  244. package/dist/features/entity/metadata-task/create-task/FileBasedFields.js +65 -0
  245. package/dist/features/entity/metadata-task/create-task/FileBasedFields.js.map +1 -0
  246. package/dist/features/entity/metadata-task/create-task/ProjectSelectorField.d.ts +11 -0
  247. package/dist/features/entity/metadata-task/create-task/ProjectSelectorField.d.ts.map +1 -0
  248. package/dist/features/entity/metadata-task/create-task/ProjectSelectorField.js +33 -0
  249. package/dist/features/entity/metadata-task/create-task/ProjectSelectorField.js.map +1 -0
  250. package/dist/features/entity/metadata-task/create-task/RecordBasedFields.d.ts +13 -0
  251. package/dist/features/entity/metadata-task/create-task/RecordBasedFields.d.ts.map +1 -0
  252. package/dist/features/entity/metadata-task/create-task/RecordBasedFields.js +38 -0
  253. package/dist/features/entity/metadata-task/create-task/RecordBasedFields.js.map +1 -0
  254. package/dist/features/entity/metadata-task/create-task/RecordSetFields.d.ts +13 -0
  255. package/dist/features/entity/metadata-task/create-task/RecordSetFields.d.ts.map +1 -0
  256. package/dist/features/entity/metadata-task/create-task/RecordSetFields.js +72 -0
  257. package/dist/features/entity/metadata-task/create-task/RecordSetFields.js.map +1 -0
  258. package/dist/features/entity/metadata-task/create-task/SampleSheetFields.d.ts +11 -0
  259. package/dist/features/entity/metadata-task/create-task/SampleSheetFields.d.ts.map +1 -0
  260. package/dist/features/entity/metadata-task/create-task/SampleSheetFields.js +42 -0
  261. package/dist/features/entity/metadata-task/create-task/SampleSheetFields.js.map +1 -0
  262. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.d.ts +17 -0
  263. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.d.ts.map +1 -0
  264. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js +70 -0
  265. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js.map +1 -0
  266. package/dist/features/entity/metadata-task/create-task/TaskFormActions.d.ts +23 -0
  267. package/dist/features/entity/metadata-task/create-task/TaskFormActions.d.ts.map +1 -0
  268. package/dist/features/entity/metadata-task/create-task/TaskFormActions.js +68 -0
  269. package/dist/features/entity/metadata-task/create-task/TaskFormActions.js.map +1 -0
  270. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.d.ts +17 -0
  271. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.d.ts.map +1 -0
  272. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js +33 -0
  273. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js.map +1 -0
  274. package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.d.ts +50 -0
  275. package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.d.ts.map +1 -0
  276. package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.js +76 -0
  277. package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.js.map +1 -0
  278. package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.d.ts +36 -0
  279. package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.d.ts.map +1 -0
  280. package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.js +31 -0
  281. package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.js.map +1 -0
  282. package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.d.ts +32 -0
  283. package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.d.ts.map +1 -0
  284. package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.js +33 -0
  285. package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.js.map +1 -0
  286. package/dist/features/entity/metadata-task/create-task/utils/taskIdValidation.d.ts +10 -0
  287. package/dist/features/entity/metadata-task/create-task/utils/taskIdValidation.d.ts.map +1 -0
  288. package/dist/features/entity/metadata-task/create-task/utils/taskIdValidation.js +13 -0
  289. package/dist/features/entity/metadata-task/create-task/utils/taskIdValidation.js.map +1 -0
  290. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.d.ts.map +1 -1
  291. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js +24 -24
  292. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
  293. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.d.ts.map +1 -1
  294. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js +2 -2
  295. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
  296. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
  297. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +33 -32
  298. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
  299. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.d.ts.map +1 -1
  300. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js +24 -21
  301. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
  302. package/dist/features/entity/metadata-task/utils/constants.d.ts +84 -15
  303. package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
  304. package/dist/features/entity/metadata-task/utils/constants.js +47 -3
  305. package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
  306. package/dist/features/entity/metadata-task/utils/dueDate.d.ts +22 -0
  307. package/dist/features/entity/metadata-task/utils/dueDate.d.ts.map +1 -0
  308. package/dist/features/entity/metadata-task/utils/dueDate.js +24 -0
  309. package/dist/features/entity/metadata-task/utils/dueDate.js.map +1 -0
  310. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.d.ts +2 -2
  311. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.d.ts.map +1 -1
  312. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js +5 -6
  313. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
  314. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.d.ts +4 -4
  315. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.d.ts.map +1 -1
  316. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js +5 -6
  317. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
  318. package/dist/features/entity/metadata-task/utils/types.d.ts +12 -0
  319. package/dist/features/entity/metadata-task/utils/types.d.ts.map +1 -0
  320. package/dist/features/entity/metadata-task/utils/types.js +18 -0
  321. package/dist/features/entity/metadata-task/utils/types.js.map +1 -0
  322. package/dist/mocks/curation/mockCurationTask.d.ts +6 -0
  323. package/dist/mocks/curation/mockCurationTask.d.ts.map +1 -1
  324. package/dist/mocks/curation/mockCurationTask.js +20 -3
  325. package/dist/mocks/curation/mockCurationTask.js.map +1 -1
  326. package/dist/mocks/msw/handlers/curationTaskExecutionHandlers.d.ts +16 -0
  327. package/dist/mocks/msw/handlers/curationTaskExecutionHandlers.d.ts.map +1 -0
  328. package/dist/mocks/msw/handlers/curationTaskExecutionHandlers.js +24 -0
  329. package/dist/mocks/msw/handlers/curationTaskExecutionHandlers.js.map +1 -0
  330. package/dist/synapse-client/SynapseClient.d.ts +7 -1
  331. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  332. package/dist/synapse-client/SynapseClient.js +493 -482
  333. package/dist/synapse-client/SynapseClient.js.map +1 -1
  334. package/dist/synapse-client/index.js +3 -3
  335. package/dist/synapse-queries/curation/task/useCurationTask.d.ts +8 -1
  336. package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
  337. package/dist/synapse-queries/curation/task/useCurationTask.js +48 -34
  338. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  339. package/dist/theme/palette/Palettes.js +2 -2
  340. package/dist/theme/palette/Palettes.js.map +1 -1
  341. package/dist/tsconfig.build.tsbuildinfo +1 -1
  342. package/dist/utils/AppUtils/session/useSessionManager.d.ts.map +1 -1
  343. package/dist/utils/AppUtils/session/useSessionManager.js +50 -48
  344. package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
  345. package/dist/utils/SynapseConstants.d.ts +4 -1
  346. package/dist/utils/SynapseConstants.d.ts.map +1 -1
  347. package/dist/utils/SynapseConstants.js +86 -83
  348. package/dist/utils/SynapseConstants.js.map +1 -1
  349. package/dist/utils/featureflag/FeatureFlags.d.ts +2 -2
  350. package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
  351. package/dist/utils/featureflag/FeatureFlags.js +1 -1
  352. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  353. package/dist/utils/hooks/useDetectSSOCode.d.ts.map +1 -1
  354. package/dist/utils/hooks/useDetectSSOCode.js +37 -27
  355. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  356. package/package.json +5 -5
  357. package/dist/components/DataGrid/MergeGridWithSourceTableButton.d.ts +0 -8
  358. package/dist/components/DataGrid/MergeGridWithSourceTableButton.d.ts.map +0 -1
  359. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js +0 -64
  360. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +0 -1
@@ -1,45 +1,46 @@
1
- import e from "../../../components/layout/InfiniteTableLayout.js";
2
- import { useGetCurationTasksInfinite as t } from "../../../synapse-queries/curation/task/useCurationTask.js";
3
- import n from "../../team/invitation/components/OpenInvitationsToUserCard.js";
4
- import r from "./components/shared.module.js";
5
- import i from "./components/CurationTaskCard.js";
6
- import a from "../../../components/layout/SWCPageLayout.js";
1
+ import { GRID_PAGE_TASK_ID_QUERY_PARAM as e } from "../../../utils/SynapseConstants.js";
2
+ import t from "../../../components/layout/InfiniteTableLayout.js";
3
+ import { useGetCurationTasksInfinite as n } from "../../../synapse-queries/curation/task/useCurationTask.js";
4
+ import r from "../../team/invitation/components/OpenInvitationsToUserCard.js";
5
+ import i from "./components/shared.module.js";
6
+ import a from "./components/CurationTaskCard.js";
7
7
  import { useMemo as o } from "react";
8
8
  import { Typography as s } from "@mui/material";
9
9
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
10
- import u from "@mui/material/Stack";
10
+ import { useSearchParams as u } from "react-router";
11
+ import d from "@mui/material/Stack";
11
12
  //#region src/features/curator/dashboard/CuratorDashboard.tsx
12
- function d() {
13
- let { data: d, isLoading: f, hasNextPage: p, isFetchingNextPage: m, fetchNextPage: h } = t({ assignedToMe: !0 }), g = o(() => d?.pages.flatMap((e) => e.bundlePage ?? []) ?? [], [d]);
14
- return /* @__PURE__ */ c(a, {
15
- header: { title: "Curator Dashboard" },
16
- children: /* @__PURE__ */ l(u, {
17
- className: "pageContent",
18
- gap: 4,
19
- mt: 5,
20
- children: [
21
- /* @__PURE__ */ c(s, {
22
- variant: "headline1",
23
- children: "On Your Radar"
13
+ function f() {
14
+ let [f] = u(), p = f.get(e), { data: m, isLoading: h, hasNextPage: g, isFetchingNextPage: _, fetchNextPage: v } = n({
15
+ assignedToMe: !0,
16
+ taskIds: o(() => {
17
+ if (p) return p.split(",").map((e) => parseInt(e, 10)).filter((e) => !isNaN(e));
18
+ }, [p])
19
+ }), y = o(() => m?.pages.flatMap((e) => e.bundlePage ?? []) ?? [], [m]);
20
+ return /* @__PURE__ */ l(d, {
21
+ gap: 4,
22
+ children: [
23
+ /* @__PURE__ */ c(s, {
24
+ variant: "headline1",
25
+ children: "On Your Radar"
26
+ }),
27
+ /* @__PURE__ */ c(r, { cardProps: { className: i.card } }),
28
+ /* @__PURE__ */ c(t, {
29
+ table: /* @__PURE__ */ c(d, {
30
+ gap: 3,
31
+ children: y.map((e) => /* @__PURE__ */ c(a, { taskBundle: e }, e.task?.taskId))
24
32
  }),
25
- /* @__PURE__ */ c(n, { cardProps: { className: r.card } }),
26
- /* @__PURE__ */ c(e, {
27
- table: /* @__PURE__ */ c(u, {
28
- gap: 3,
29
- children: g.map((e) => /* @__PURE__ */ c(i, { taskBundle: e }, e.task?.taskId))
30
- }),
31
- isLoading: f,
32
- isEmpty: g.length === 0,
33
- hasNextPage: p,
34
- isFetchingNextPage: m,
35
- onFetchNextPageClicked: () => void h(),
36
- noResults: "There are currently no curation tasks assigned to you."
37
- })
38
- ]
39
- })
33
+ isLoading: h,
34
+ isEmpty: y.length === 0,
35
+ hasNextPage: g,
36
+ isFetchingNextPage: _,
37
+ onFetchNextPageClicked: () => void v(),
38
+ noResults: "There are currently no curation tasks assigned to you."
39
+ })
40
+ ]
40
41
  });
41
42
  }
42
43
  //#endregion
43
- export { d as default };
44
+ export { f as default };
44
45
 
45
46
  //# sourceMappingURL=CuratorDashboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CuratorDashboard.js","names":[],"sources":["../../../../src/features/curator/dashboard/CuratorDashboard.tsx"],"sourcesContent":["import InfiniteTableLayout from '@/components/layout/InfiniteTableLayout'\nimport OpenInvitationsToUserCard from '@/features/team/invitation/components/OpenInvitationsToUserCard'\nimport { useGetCurationTasksInfinite } from '@/synapse-queries/curation/task/useCurationTask'\nimport { Typography } from '@mui/material'\nimport Stack from '@mui/material/Stack'\nimport { useMemo } from 'react'\nimport CurationTaskCard from './components/CurationTaskCard'\nimport sharedStyles from './components/shared.module.scss'\nimport SWCPageLayout from '@/components/layout/SWCPageLayout'\n\nexport default function CuratorDashboard() {\n const {\n data: curationTasks,\n isLoading,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n } = useGetCurationTasksInfinite({\n assignedToMe: true,\n })\n\n const tasks = useMemo(() => {\n return curationTasks?.pages.flatMap(page => page.bundlePage ?? []) ?? []\n }, [curationTasks])\n\n return (\n <SWCPageLayout header={{ title: 'Curator Dashboard' }}>\n <Stack className=\"pageContent\" gap={4} mt={5}>\n <Typography variant=\"headline1\">On Your Radar</Typography>\n <OpenInvitationsToUserCard\n cardProps={{ className: sharedStyles.card }}\n />\n <InfiniteTableLayout\n table={\n <Stack gap={3}>\n {tasks.map(taskBundle => (\n <CurationTaskCard\n key={taskBundle.task?.taskId}\n taskBundle={taskBundle}\n />\n ))}\n </Stack>\n }\n isLoading={isLoading}\n isEmpty={tasks.length === 0}\n hasNextPage={hasNextPage}\n isFetchingNextPage={isFetchingNextPage}\n onFetchNextPageClicked={() => void fetchNextPage()}\n noResults={'There are currently no curation tasks assigned to you.'}\n ></InfiniteTableLayout>\n </Stack>\n </SWCPageLayout>\n )\n}\n"],"mappings":";;;;;;;;;;;AAUA,SAAwB,IAAmB;CACzC,IAAM,EACJ,MAAM,GACN,cACA,gBACA,uBACA,qBACE,EAA4B,EAC9B,cAAc,GAChB,CAAC,GAEK,IAAQ,QACL,GAAe,MAAM,SAAQ,MAAQ,EAAK,cAAc,CAAC,CAAC,KAAK,CAAC,GACtE,CAAC,CAAa,CAAC;CAElB,OACE,kBAAC,GAAD;EAAe,QAAQ,EAAE,OAAO,oBAAoB;YAClD,kBAAC,GAAD;GAAO,WAAU;GAAc,KAAK;GAAG,IAAI;aAA3C;IACE,kBAAC,GAAD;KAAY,SAAQ;eAAY;IAAyB,CAAA;IACzD,kBAAC,GAAD,EACE,WAAW,EAAE,WAAW,EAAa,KAAK,EAC3C,CAAA;IACD,kBAAC,GAAD;KACE,OACE,kBAAC,GAAD;MAAO,KAAK;gBACT,EAAM,KAAI,MACT,kBAAC,GAAD,EAEc,cACb,GAFM,EAAW,MAAM,MAEvB,CACF;KACI,CAAA;KAEE;KACX,SAAS,EAAM,WAAW;KACb;KACO;KACpB,8BAA8B,KAAK,EAAc;KACjD,WAAW;IACS,CAAA;GACjB;;CACM,CAAA;AAEnB"}
1
+ {"version":3,"file":"CuratorDashboard.js","names":[],"sources":["../../../../src/features/curator/dashboard/CuratorDashboard.tsx"],"sourcesContent":["import InfiniteTableLayout from '@/components/layout/InfiniteTableLayout'\nimport OpenInvitationsToUserCard from '@/features/team/invitation/components/OpenInvitationsToUserCard'\nimport { useGetCurationTasksInfinite } from '@/synapse-queries/curation/task/useCurationTask'\nimport { Typography } from '@mui/material'\nimport Stack from '@mui/material/Stack'\nimport { useMemo } from 'react'\nimport CurationTaskCard from './components/CurationTaskCard'\nimport sharedStyles from './components/shared.module.scss'\nimport { useSearchParams } from 'react-router'\nimport { GRID_PAGE_TASK_ID_QUERY_PARAM } from '@/utils/SynapseConstants'\n\nexport default function CuratorDashboardContent() {\n const [searchParams] = useSearchParams()\n const taskIdParam = searchParams.get(GRID_PAGE_TASK_ID_QUERY_PARAM)\n\n const taskIds = useMemo(() => {\n if (!taskIdParam) return undefined\n return taskIdParam\n .split(',')\n .map(id => parseInt(id, 10))\n .filter(id => !isNaN(id))\n }, [taskIdParam])\n\n const {\n data: curationTasks,\n isLoading,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n } = useGetCurationTasksInfinite({\n assignedToMe: true,\n taskIds,\n })\n\n const tasks = useMemo(() => {\n return curationTasks?.pages.flatMap(page => page.bundlePage ?? []) ?? []\n }, [curationTasks])\n\n return (\n <Stack gap={4}>\n <Typography variant=\"headline1\">On Your Radar</Typography>\n <OpenInvitationsToUserCard cardProps={{ className: sharedStyles.card }} />\n <InfiniteTableLayout\n table={\n <Stack gap={3}>\n {tasks.map(taskBundle => (\n <CurationTaskCard\n key={taskBundle.task?.taskId}\n taskBundle={taskBundle}\n />\n ))}\n </Stack>\n }\n isLoading={isLoading}\n isEmpty={tasks.length === 0}\n hasNextPage={hasNextPage}\n isFetchingNextPage={isFetchingNextPage}\n onFetchNextPageClicked={() => void fetchNextPage()}\n noResults={'There are currently no curation tasks assigned to you.'}\n ></InfiniteTableLayout>\n </Stack>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAWA,SAAwB,IAA0B;CAChD,IAAM,CAAC,KAAgB,EAAgB,GACjC,IAAc,EAAa,IAAI,CAA6B,GAU5D,EACJ,MAAM,GACN,cACA,gBACA,uBACA,qBACE,EAA4B;EAC9B,cAAc;EACd,SAhBc,QAAc;GACvB,OACL,OAAO,EACJ,MAAM,GAAG,EACT,KAAI,MAAM,SAAS,GAAI,EAAE,CAAC,EAC1B,QAAO,MAAM,CAAC,MAAM,CAAE,CAAC;EAC5B,GAAG,CAAC,CAAW,CAUb;CACF,CAAC,GAEK,IAAQ,QACL,GAAe,MAAM,SAAQ,MAAQ,EAAK,cAAc,CAAC,CAAC,KAAK,CAAC,GACtE,CAAC,CAAa,CAAC;CAElB,OACE,kBAAC,GAAD;EAAO,KAAK;YAAZ;GACE,kBAAC,GAAD;IAAY,SAAQ;cAAY;GAAyB,CAAA;GACzD,kBAAC,GAAD,EAA2B,WAAW,EAAE,WAAW,EAAa,KAAK,EAAI,CAAA;GACzE,kBAAC,GAAD;IACE,OACE,kBAAC,GAAD;KAAO,KAAK;eACT,EAAM,KAAI,MACT,kBAAC,GAAD,EAEc,cACb,GAFM,EAAW,MAAM,MAEvB,CACF;IACI,CAAA;IAEE;IACX,SAAS,EAAM,WAAW;IACb;IACO;IACpB,8BAA8B,KAAK,EAAc;IACjD,WAAW;GACS,CAAA;EACjB;;AAEX"}
@@ -0,0 +1,13 @@
1
+ import { PropsWithChildren } from 'react';
2
+ export type CuratorDashboardRouterProps = PropsWithChildren<{
3
+ /** Used to determine the base path for the component. Default is CuratorDashboard:0 */
4
+ routerBaseName?: string;
5
+ /** If true use a MemoryRouter, which prevents the browser URL from updating. For testing purposes only. */
6
+ useMemoryRouter?: boolean;
7
+ }>;
8
+ /**
9
+ * A router wrapper for the CuratorDashboard, which applies a router around the component to support using react-router APIs
10
+ * from within the dashboard.
11
+ */
12
+ export default function CuratorDashboardRouter(props: CuratorDashboardRouterProps): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=CuratorDashboardRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CuratorDashboardRouter.d.ts","sourceRoot":"","sources":["../../../../src/features/curator/dashboard/CuratorDashboardRouter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAA;AAWlD,MAAM,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;IAC1D,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,2GAA2G;IAC3G,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,KAAK,EAAE,2BAA2B,2CA0CnC"}
@@ -0,0 +1,37 @@
1
+ import e from "../../entity/metadata-task/create-task/EditCurationTaskPage.js";
2
+ import t from "./CuratorDashboard.js";
3
+ import n from "../../../components/layout/SWCPageLayout.js";
4
+ import { useMemo as r } from "react";
5
+ import { jsx as i } from "react/jsx-runtime";
6
+ import { Outlet as a, RouterProvider as o, createBrowserRouter as s, createMemoryRouter as c } from "react-router";
7
+ import { RouterProvider as l } from "react-router/dom";
8
+ //#region src/features/curator/dashboard/CuratorDashboardRouter.tsx
9
+ function u(u) {
10
+ let { routerBaseName: d = "/CuratorDashboard:0", useMemoryRouter: f = !1 } = u, p = r(() => [{
11
+ path: "/",
12
+ element: /* @__PURE__ */ i(n, {
13
+ header: { title: "Curator Dashboard" },
14
+ children: /* @__PURE__ */ i("div", {
15
+ className: "pageContent",
16
+ style: { marginTop: "2rem" },
17
+ children: /* @__PURE__ */ i(a, {})
18
+ })
19
+ }),
20
+ children: [{
21
+ index: !0,
22
+ element: /* @__PURE__ */ i(t, {})
23
+ }, {
24
+ path: "edit/:taskId",
25
+ element: /* @__PURE__ */ i(e, {})
26
+ }]
27
+ }], []), m = r(() => f ? c(p, { basename: d }) : s(p, { basename: d }), [
28
+ f,
29
+ p,
30
+ d
31
+ ]);
32
+ return i(f ? o : l, { router: m });
33
+ }
34
+ //#endregion
35
+ export { u as default };
36
+
37
+ //# sourceMappingURL=CuratorDashboardRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CuratorDashboardRouter.js","names":[],"sources":["../../../../src/features/curator/dashboard/CuratorDashboardRouter.tsx"],"sourcesContent":["import EditCurationTaskPage from '@/features/entity/metadata-task/create-task/EditCurationTaskPage'\nimport CuratorDashboardContent from './CuratorDashboard'\nimport { PropsWithChildren, useMemo } from 'react'\nimport { Outlet } from 'react-router'\nimport {\n createBrowserRouter,\n createMemoryRouter,\n RouteObject,\n RouterProvider,\n} from 'react-router'\nimport { RouterProvider as DOMRouterProvider } from 'react-router/dom'\nimport SWCPageLayout from '@/components/layout/SWCPageLayout'\n\nexport type CuratorDashboardRouterProps = PropsWithChildren<{\n /** Used to determine the base path for the component. Default is CuratorDashboard:0 */\n routerBaseName?: string\n /** If true use a MemoryRouter, which prevents the browser URL from updating. For testing purposes only. */\n useMemoryRouter?: boolean\n}>\n\n/**\n * A router wrapper for the CuratorDashboard, which applies a router around the component to support using react-router APIs\n * from within the dashboard.\n */\nexport default function CuratorDashboardRouter(\n props: CuratorDashboardRouterProps,\n) {\n const { routerBaseName = '/CuratorDashboard:0', useMemoryRouter = false } =\n props\n\n const routes: RouteObject[] = useMemo(\n () => [\n {\n path: '/',\n element: (\n <SWCPageLayout header={{ title: 'Curator Dashboard' }}>\n <div className=\"pageContent\" style={{ marginTop: '2rem' }}>\n <Outlet />\n </div>\n </SWCPageLayout>\n ),\n children: [\n { index: true, element: <CuratorDashboardContent /> },\n { path: 'edit/:taskId', element: <EditCurationTaskPage /> },\n ],\n },\n ],\n [],\n )\n\n const router = useMemo(() => {\n if (useMemoryRouter) {\n return createMemoryRouter(routes, {\n basename: routerBaseName,\n })\n } else {\n return createBrowserRouter(routes, {\n basename: routerBaseName,\n })\n }\n }, [useMemoryRouter, routes, routerBaseName])\n\n if (useMemoryRouter) {\n return <RouterProvider router={router} />\n }\n\n return <DOMRouterProvider router={router} />\n}\n"],"mappings":";;;;;;;;AAwBA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,oBAAiB,uBAAuB,qBAAkB,OAChE,GAEI,IAAwB,QACtB,CACJ;EACE,MAAM;EACN,SACE,kBAAC,GAAD;GAAe,QAAQ,EAAE,OAAO,oBAAoB;aAClD,kBAAC,OAAD;IAAK,WAAU;IAAc,OAAO,EAAE,WAAW,OAAO;cACtD,kBAAC,GAAD,CAAS,CAAA;GACN,CAAA;EACQ,CAAA;EAEjB,UAAU,CACR;GAAE,OAAO;GAAM,SAAS,kBAAC,GAAD,CAA0B,CAAA;EAAE,GACpD;GAAE,MAAM;GAAgB,SAAS,kBAAC,GAAD,CAAuB,CAAA;EAAE,CAC5D;CACF,CACF,GACA,CAAC,CACH,GAEM,IAAS,QACT,IACK,EAAmB,GAAQ,EAChC,UAAU,EACZ,CAAC,IAEM,EAAoB,GAAQ,EACjC,UAAU,EACZ,CAAC,GAEF;EAAC;EAAiB;EAAQ;CAAc,CAAC;CAM5C,OAHS,EADL,IACM,IAGF,GAHC,EAAwB,UAAS,CAAA;AAI5C"}
@@ -1 +1 @@
1
- ._card_12r05_1.MuiCard-root{background-color:#f5f8fa}._cardContent_12r05_5{flex-direction:row;align-items:stretch;gap:24px;margin-bottom:16px;display:flex}@media (width<=768px){._cardContent_12r05_5{flex-direction:column}}._mainContent_12r05_18{flex-direction:column;flex-grow:1;gap:16px;display:flex}._titleChipContainer_12r05_25{flex-direction:row;align-items:center;gap:16px;display:flex}@media (width<=768px){._titleChipContainer_12r05_25{flex-direction:column;align-items:flex-start}}._userChipContainer_12r05_39{flex-flow:wrap;align-items:center;gap:16px;display:flex}._buttonContainer_12r05_47{flex-grow:0;flex-shrink:0;margin-left:auto;display:flex}@media (width<=768px){._buttonContainer_12r05_47{margin-left:0}}
1
+ ._card_pb0lb_1.MuiCard-root{background-color:#f5f8fa}._cardContent_pb0lb_5{flex-direction:row;align-items:stretch;gap:24px;margin-bottom:16px;display:flex}@media (width<=768px){._cardContent_pb0lb_5{flex-direction:column}}._mainContent_pb0lb_18{flex-direction:column;flex:1;gap:16px;display:flex}._titleChipContainer_pb0lb_26{flex-direction:row;align-items:center;gap:16px;display:flex}@media (width<=768px){._titleChipContainer_pb0lb_26{flex-direction:column;align-items:flex-start}}._title_pb0lb_26{cursor:pointer}._title_pb0lb_26:hover{text-decoration:underline}._entityInfo_pb0lb_47{gap:16px;display:flex}._statusContainer_pb0lb_52{flex-direction:column;align-items:flex-start;gap:8px;display:flex}._expandedContent_pb0lb_59{background-color:#fff;border-radius:4px;flex-direction:column;gap:16px;margin:16px;padding:16px;display:flex}._userChipContainer_pb0lb_69{flex-flow:wrap;align-items:center;gap:16px;display:flex}._buttonContainer_pb0lb_77{flex-grow:0;flex-shrink:0;margin-left:auto;display:flex}@media (width<=768px){._buttonContainer_pb0lb_77{margin-left:0}}
@@ -3,7 +3,9 @@ export type CurationTaskCardProps = {
3
3
  taskBundle: TaskBundle;
4
4
  };
5
5
  /**
6
- * Card component for displaying a curation task on the curator dashboard. Shows relevant information about the task and includes a button to proceed to the next step in the workflow.
6
+ * Card component for displaying a curation task on the curator dashboard. Dispatches to the card
7
+ * variant appropriate for the task's type: an executable (Compute Data) task, a grid-supported
8
+ * (Curate Data) task, or a fallback for unrecognized types.
7
9
  */
8
10
  export default function CurationTaskCard(props: CurationTaskCardProps): import("react/jsx-runtime").JSX.Element;
9
11
  //# sourceMappingURL=CurationTaskCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CurationTaskCard.d.ts","sourceRoot":"","sources":["../../../../../src/features/curator/dashboard/components/CurationTaskCard.tsx"],"names":[],"mappings":"AAeA,OAAO,EACL,UAAU,EAEX,MAAM,kCAAkC,CAAA;AASzC,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AA8ED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,2CA+FpE"}
1
+ {"version":3,"file":"CurationTaskCard.d.ts","sourceRoot":"","sources":["../../../../../src/features/curator/dashboard/components/CurationTaskCard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAS7D,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,2CAuCpE"}
@@ -1,166 +1,35 @@
1
1
  import { displayToast as e } from "../../../../components/ToastMessage/ToastMessage.js";
2
- import t from "../../../../synapse-queries/entity/useEntityBundle.js";
3
2
  import "../../../../components/index.js";
4
- import { OPEN_CURATOR_NO_PERMISSION_ON_SOURCE_ERROR_MESSAGE as n, TASK_STATUS_CONFIG as r } from "../../../entity/metadata-task/utils/constants.js";
5
- import i from "../../../entity/metadata-task/hooks/useOpenCuratorButton.js";
6
- import a from "../../../entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js";
7
- import o from "./CurationTaskCard.module.js";
8
- import s from "./NextStepButton.js";
9
- import c from "./shared.module.js";
10
- import l from "./UserOrTeamChip.js";
11
- import { useState as u } from "react";
12
- import { Box as d, Card as f, Chip as p, Divider as m, IconButton as h, Skeleton as g, Typography as _ } from "@mui/material";
13
- import { jsx as v, jsxs as y } from "react/jsx-runtime";
14
- import b from "classnames";
15
- import x from "@mui/icons-material/SettingsOutlined";
3
+ import { getComputeTaskConcreteType as t } from "../../../entity/metadata-task/utils/types.js";
4
+ import n from "./CurationTaskCard.module.js";
5
+ import r, { deriveCardFields as i } from "./CurationTaskCardLayout.js";
6
+ import a from "./NextStepButton.js";
7
+ import o from "./ExecutableTaskCard.js";
8
+ import s from "./GridTaskCard.js";
9
+ import { jsx as c } from "react/jsx-runtime";
16
10
  //#region src/features/curator/dashboard/components/CurationTaskCard.tsx
17
- function S(t) {
18
- let { onClick: n, isLoading: r, isPending: a, hasPermission: o } = i(t);
19
- if (!t.task || !t.status) throw Error("Task bundle is missing required properties");
20
- switch (t.task?.taskProperties?.concreteType) {
11
+ function l(l) {
12
+ let { taskBundle: u } = l;
13
+ if (!u.task || !u.status) throw Error("Task bundle is missing required properties");
14
+ let d = u.task.taskProperties?.concreteType;
15
+ if (t(u.task.taskProperties)) return /* @__PURE__ */ c(o, { taskBundle: u });
16
+ switch (d) {
21
17
  case "org.sagebionetworks.repo.model.curation.metadata.FileBasedMetadataTaskProperties":
22
- case "org.sagebionetworks.repo.model.curation.metadata.RecordBasedMetadataTaskProperties": return {
23
- title: t.task.dataType,
24
- description: t.task.instructions ?? "",
25
- taskId: t.task.taskId,
26
- principalIds: t.task.assigneePrincipalId ? [t.task.assigneePrincipalId] : [],
27
- buttonText: "Open Curator",
28
- taskType: "Curate Data",
29
- statusState: t.status.state,
30
- onClickNextStep: n,
31
- isLoading: r,
32
- isPending: a,
33
- hasPermission: o
34
- };
35
- default: console.error("No UI implemented for task type: " + t.task?.taskProperties?.concreteType);
18
+ case "org.sagebionetworks.repo.model.curation.metadata.RecordBasedMetadataTaskProperties": return /* @__PURE__ */ c(s, { taskBundle: u });
19
+ default: return console.error("No UI implemented for task type: " + d), /* @__PURE__ */ c(r, {
20
+ taskBundle: u,
21
+ ...i(u.task),
22
+ taskType: "",
23
+ renderActionButton: ({ expanded: t }) => /* @__PURE__ */ c(a, {
24
+ className: n.cardButton,
25
+ buttonText: "Continue",
26
+ onClick: () => e("No action defined for this task type", "danger", { title: "Unexpected Error" }),
27
+ expanded: t
28
+ })
29
+ });
36
30
  }
37
- return {
38
- title: t.task.dataType,
39
- description: t.task.instructions ?? "",
40
- taskId: t.task.taskId,
41
- principalIds: t.task.assigneePrincipalId ? [t.task.assigneePrincipalId] : [],
42
- buttonText: "Continue",
43
- taskType: "",
44
- statusState: t.status.state,
45
- onClickNextStep: () => {
46
- e("No action defined for this task type", "danger", { title: "Unexpected Error" });
47
- },
48
- isLoading: !1,
49
- isPending: !1,
50
- hasPermission: void 0
51
- };
52
- }
53
- function C(e) {
54
- let { label: t } = e;
55
- return /* @__PURE__ */ v(p, {
56
- sx: {
57
- fontWeight: 600,
58
- backgroundColor: "#BFD3ED"
59
- },
60
- label: t
61
- });
62
- }
63
- function w(e) {
64
- let { state: t } = e;
65
- if (!t) return null;
66
- let { label: n, backgroundColor: i } = r[t];
67
- return /* @__PURE__ */ v(p, {
68
- size: "small",
69
- sx: {
70
- fontWeight: 600,
71
- backgroundColor: i
72
- },
73
- label: n
74
- });
75
- }
76
- function T(r) {
77
- let { taskBundle: i } = r, { title: p, description: T, taskId: E, taskType: D, principalIds: O, buttonText: k, statusState: A, onClickNextStep: j, hasPermission: M, isLoading: N, isPending: P } = S(i), [F, I] = u(!1), L = i.task?.projectId, { data: R } = t(L, void 0, {
78
- includeEntity: !0,
79
- includePermissions: !0
80
- }), z = R?.permissions?.canEdit ?? !1;
81
- function B() {
82
- M ? j() : e(n, "danger");
83
- }
84
- return /* @__PURE__ */ y(f, {
85
- className: b(c.card, o.card),
86
- children: [/* @__PURE__ */ y("div", {
87
- className: o.cardContent,
88
- children: [
89
- /* @__PURE__ */ y("div", {
90
- className: o.mainContent,
91
- children: [
92
- /* @__PURE__ */ y("div", {
93
- className: o.titleChipContainer,
94
- children: [
95
- /* @__PURE__ */ v(_, {
96
- variant: "headline3",
97
- children: p
98
- }),
99
- D && /* @__PURE__ */ v(C, { label: D }),
100
- z && /* @__PURE__ */ v(h, {
101
- onClick: () => I(!0),
102
- "aria-label": "Task settings",
103
- children: /* @__PURE__ */ v(x, {})
104
- })
105
- ]
106
- }),
107
- /* @__PURE__ */ y(d, {
108
- sx: {
109
- display: "flex",
110
- gap: 4
111
- },
112
- children: [R?.entity?.name ? /* @__PURE__ */ v(_, {
113
- variant: "body1",
114
- children: R.entity.name
115
- }) : /* @__PURE__ */ v(g, { width: 100 }), E && /* @__PURE__ */ y(_, {
116
- variant: "body1",
117
- children: ["Task ID: ", E]
118
- })]
119
- }),
120
- T && /* @__PURE__ */ v(_, {
121
- variant: "body1",
122
- children: T
123
- }),
124
- /* @__PURE__ */ v("div", {
125
- className: o.userChipContainer,
126
- children: O.map((e) => /* @__PURE__ */ v(l, { principalId: e }, e))
127
- })
128
- ]
129
- }),
130
- /* @__PURE__ */ v(d, {
131
- sx: {
132
- display: "flex",
133
- alignItems: "center"
134
- },
135
- children: /* @__PURE__ */ v(w, { state: A })
136
- }),
137
- /* @__PURE__ */ v(m, {
138
- orientation: "vertical",
139
- flexItem: !0,
140
- sx: { display: {
141
- xs: "none",
142
- md: "block"
143
- } }
144
- }),
145
- /* @__PURE__ */ v(s, {
146
- className: o.cardButton,
147
- buttonText: k,
148
- onClick: B,
149
- disabled: N,
150
- loading: P
151
- })
152
- ]
153
- }), /* @__PURE__ */ v(a, {
154
- open: F,
155
- onCancel: () => I(!1),
156
- onSuccess: () => I(!1),
157
- onDeleteSuccess: () => I(!1),
158
- projectId: L ?? "",
159
- task: i.task
160
- }, String(F))]
161
- });
162
31
  }
163
32
  //#endregion
164
- export { T as default };
33
+ export { l as default };
165
34
 
166
35
  //# sourceMappingURL=CurationTaskCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CurationTaskCard.js","names":[],"sources":["../../../../../src/features/curator/dashboard/components/CurationTaskCard.tsx"],"sourcesContent":["import { displayToast } from '@/components'\nimport CreateOrUpdateCurationTaskDialog from '@/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog'\nimport { TASK_STATUS_CONFIG } from '@/features/entity/metadata-task/utils/constants'\nimport useOpenCuratorFromTaskButton from '@/features/entity/metadata-task/hooks/useOpenCuratorButton'\nimport { OPEN_CURATOR_NO_PERMISSION_ON_SOURCE_ERROR_MESSAGE } from '@/features/entity/metadata-task/utils/constants'\nimport useGetEntityBundle from '@/synapse-queries/entity/useEntityBundle'\nimport {\n Box,\n Card,\n Chip,\n Divider,\n IconButton,\n Skeleton,\n Typography,\n} from '@mui/material'\nimport {\n TaskBundle,\n TaskStatusStateEnum,\n} from '@sage-bionetworks/synapse-client'\nimport classNames from 'classnames'\nimport styles from './CurationTaskCard.module.scss'\nimport NextStepButton from './NextStepButton'\nimport sharedStyles from './shared.module.scss'\nimport UserOrTeamChip from './UserOrTeamChip'\nimport SettingsOutlinedIcon from '@mui/icons-material/SettingsOutlined'\nimport { useState } from 'react'\n\nexport type CurationTaskCardProps = {\n taskBundle: TaskBundle\n}\n\nfunction useUiForTask(taskBundle: TaskBundle) {\n const { onClick, isLoading, isPending, hasPermission } =\n useOpenCuratorFromTaskButton(taskBundle)\n\n if (!taskBundle.task || !taskBundle.status) {\n throw new Error('Task bundle is missing required properties')\n }\n\n switch (taskBundle.task?.taskProperties?.concreteType) {\n case 'org.sagebionetworks.repo.model.curation.metadata.FileBasedMetadataTaskProperties':\n case 'org.sagebionetworks.repo.model.curation.metadata.RecordBasedMetadataTaskProperties':\n return {\n title: taskBundle.task.dataType,\n description: taskBundle.task.instructions ?? '',\n taskId: taskBundle.task.taskId,\n principalIds: taskBundle.task.assigneePrincipalId\n ? [taskBundle.task.assigneePrincipalId]\n : [],\n buttonText: 'Open Curator',\n taskType: 'Curate Data',\n statusState: taskBundle.status.state,\n onClickNextStep: onClick,\n isLoading,\n isPending,\n hasPermission,\n }\n default: {\n console.error(\n 'No UI implemented for task type: ' +\n // @ts-expect-error - the switch should be exhaustive for known types\n taskBundle.task?.taskProperties?.concreteType,\n )\n }\n }\n\n return {\n title: taskBundle.task.dataType,\n description: taskBundle.task.instructions ?? '',\n taskId: taskBundle.task.taskId!,\n principalIds: taskBundle.task.assigneePrincipalId\n ? [taskBundle.task.assigneePrincipalId]\n : [],\n buttonText: 'Continue',\n taskType: '',\n statusState: taskBundle.status.state,\n onClickNextStep: () => {\n displayToast('No action defined for this task type', 'danger', {\n title: 'Unexpected Error',\n })\n },\n isLoading: false,\n isPending: false,\n hasPermission: undefined,\n }\n}\n\nfunction TaskTypeChip(props: { label: string }) {\n const { label } = props\n return (\n <Chip sx={{ fontWeight: 600, backgroundColor: '#BFD3ED' }} label={label} />\n )\n}\n\nfunction TaskStatusChip(props: { state: TaskStatusStateEnum | undefined }) {\n const { state } = props\n if (!state) return null\n const { label, backgroundColor } = TASK_STATUS_CONFIG[state]\n return (\n <Chip\n size=\"small\"\n sx={{ fontWeight: 600, backgroundColor }}\n label={label}\n />\n )\n}\n\n/**\n * Card component for displaying a curation task on the curator dashboard. Shows relevant information about the task and includes a button to proceed to the next step in the workflow.\n */\nexport default function CurationTaskCard(props: CurationTaskCardProps) {\n const { taskBundle } = props\n const {\n title,\n description,\n taskId,\n taskType,\n principalIds,\n buttonText,\n statusState,\n onClickNextStep,\n hasPermission: hasPermissionToOpenGrid,\n isLoading,\n isPending,\n } = useUiForTask(taskBundle)\n\n const [isSettingsOpen, setIsSettingsOpen] = useState(false)\n\n const projectId = taskBundle.task?.projectId\n const { data: bundle } = useGetEntityBundle(projectId, undefined, {\n includeEntity: true,\n includePermissions: true,\n })\n const canEdit = bundle?.permissions?.canEdit ?? false\n\n function onClickAction() {\n if (hasPermissionToOpenGrid) {\n onClickNextStep()\n } else {\n displayToast(OPEN_CURATOR_NO_PERMISSION_ON_SOURCE_ERROR_MESSAGE, 'danger')\n }\n }\n\n return (\n <Card className={classNames(sharedStyles.card, styles.card)}>\n <div className={styles.cardContent}>\n <div className={styles.mainContent}>\n <div className={styles.titleChipContainer}>\n <Typography variant=\"headline3\">{title}</Typography>\n {taskType && <TaskTypeChip label={taskType} />}\n {canEdit && (\n <IconButton\n onClick={() => setIsSettingsOpen(true)}\n aria-label=\"Task settings\"\n >\n <SettingsOutlinedIcon />\n </IconButton>\n )}\n </div>\n <Box sx={{ display: 'flex', gap: 4 }}>\n {bundle?.entity?.name ? (\n <Typography variant=\"body1\">{bundle.entity.name}</Typography>\n ) : (\n <Skeleton width={100} />\n )}\n {taskId && (\n <Typography variant=\"body1\">Task ID: {taskId}</Typography>\n )}\n </Box>\n {description && (\n <Typography variant=\"body1\">{description}</Typography>\n )}\n <div className={styles.userChipContainer}>\n {principalIds.map(principalId => (\n <UserOrTeamChip key={principalId} principalId={principalId} />\n ))}\n </div>\n </div>\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n <TaskStatusChip state={statusState} />\n </Box>\n <Divider\n orientation=\"vertical\"\n flexItem\n sx={{ display: { xs: 'none', md: 'block' } }}\n />\n <NextStepButton\n className={styles.cardButton}\n buttonText={buttonText}\n onClick={onClickAction}\n disabled={isLoading}\n loading={isPending}\n />\n </div>\n <CreateOrUpdateCurationTaskDialog\n key={String(isSettingsOpen)}\n open={isSettingsOpen}\n onCancel={() => setIsSettingsOpen(false)}\n onSuccess={() => setIsSettingsOpen(false)}\n onDeleteSuccess={() => setIsSettingsOpen(false)}\n projectId={projectId ?? ''}\n task={taskBundle.task}\n />\n </Card>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA+BA,SAAS,EAAa,GAAwB;CAC5C,IAAM,EAAE,YAAS,cAAW,cAAW,qBACrC,EAA6B,CAAU;CAEzC,IAAI,CAAC,EAAW,QAAQ,CAAC,EAAW,QAClC,MAAU,MAAM,4CAA4C;CAG9D,QAAQ,EAAW,MAAM,gBAAgB,cAAzC;EACE,KAAK;EACL,KAAK,sFACH,OAAO;GACL,OAAO,EAAW,KAAK;GACvB,aAAa,EAAW,KAAK,gBAAgB;GAC7C,QAAQ,EAAW,KAAK;GACxB,cAAc,EAAW,KAAK,sBAC1B,CAAC,EAAW,KAAK,mBAAmB,IACpC,CAAC;GACL,YAAY;GACZ,UAAU;GACV,aAAa,EAAW,OAAO;GAC/B,iBAAiB;GACjB;GACA;GACA;EACF;EACF,SACE,QAAQ,MACN,sCAEE,EAAW,MAAM,gBAAgB,YACrC;CAEJ;CAEA,OAAO;EACL,OAAO,EAAW,KAAK;EACvB,aAAa,EAAW,KAAK,gBAAgB;EAC7C,QAAQ,EAAW,KAAK;EACxB,cAAc,EAAW,KAAK,sBAC1B,CAAC,EAAW,KAAK,mBAAmB,IACpC,CAAC;EACL,YAAY;EACZ,UAAU;EACV,aAAa,EAAW,OAAO;EAC/B,uBAAuB;GACrB,EAAa,wCAAwC,UAAU,EAC7D,OAAO,mBACT,CAAC;EACH;EACA,WAAW;EACX,WAAW;EACX,eAAe,KAAA;CACjB;AACF;AAEA,SAAS,EAAa,GAA0B;CAC9C,IAAM,EAAE,aAAU;CAClB,OACE,kBAAC,GAAD;EAAM,IAAI;GAAE,YAAY;GAAK,iBAAiB;EAAU;EAAU;CAAQ,CAAA;AAE9E;AAEA,SAAS,EAAe,GAAmD;CACzE,IAAM,EAAE,aAAU;CAClB,IAAI,CAAC,GAAO,OAAO;CACnB,IAAM,EAAE,UAAO,uBAAoB,EAAmB;CACtD,OACE,kBAAC,GAAD;EACE,MAAK;EACL,IAAI;GAAE,YAAY;GAAK;EAAgB;EAChC;CACR,CAAA;AAEL;AAKA,SAAwB,EAAiB,GAA8B;CACrE,IAAM,EAAE,kBAAe,GACjB,EACJ,UACA,gBACA,WACA,aACA,iBACA,eACA,gBACA,oBACA,eAAe,GACf,cACA,iBACE,EAAa,CAAU,GAErB,CAAC,GAAgB,KAAqB,EAAS,EAAK,GAEpD,IAAY,EAAW,MAAM,WAC7B,EAAE,MAAM,MAAW,EAAmB,GAAW,KAAA,GAAW;EAChE,eAAe;EACf,oBAAoB;CACtB,CAAC,GACK,IAAU,GAAQ,aAAa,WAAW;CAEhD,SAAS,IAAgB;EACvB,AAAI,IACF,EAAgB,IAEhB,EAAa,GAAoD,QAAQ;CAE7E;CAEA,OACE,kBAAC,GAAD;EAAM,WAAW,EAAW,EAAa,MAAM,EAAO,IAAI;YAA1D,CACE,kBAAC,OAAD;GAAK,WAAW,EAAO;aAAvB;IACE,kBAAC,OAAD;KAAK,WAAW,EAAO;eAAvB;MACE,kBAAC,OAAD;OAAK,WAAW,EAAO;iBAAvB;QACE,kBAAC,GAAD;SAAY,SAAQ;mBAAa;QAAkB,CAAA;QAClD,KAAY,kBAAC,GAAD,EAAc,OAAO,EAAW,CAAA;QAC5C,KACC,kBAAC,GAAD;SACE,eAAe,EAAkB,EAAI;SACrC,cAAW;mBAEX,kBAAC,GAAD,CAAuB,CAAA;QACb,CAAA;OAEX;;MACL,kBAAC,GAAD;OAAK,IAAI;QAAE,SAAS;QAAQ,KAAK;OAAE;iBAAnC,CACG,GAAQ,QAAQ,OACf,kBAAC,GAAD;QAAY,SAAQ;kBAAS,EAAO,OAAO;OAAiB,CAAA,IAE5D,kBAAC,GAAD,EAAU,OAAO,IAAM,CAAA,GAExB,KACC,kBAAC,GAAD;QAAY,SAAQ;kBAApB,CAA4B,aAAU,CAAmB;SAExD;;MACJ,KACC,kBAAC,GAAD;OAAY,SAAQ;iBAAS;MAAwB,CAAA;MAEvD,kBAAC,OAAD;OAAK,WAAW,EAAO;iBACpB,EAAa,KAAI,MAChB,kBAAC,GAAD,EAA+C,eAAc,GAAxC,CAAwC,CAC9D;MACE,CAAA;KACF;;IACL,kBAAC,GAAD;KAAK,IAAI;MAAE,SAAS;MAAQ,YAAY;KAAS;eAC/C,kBAAC,GAAD,EAAgB,OAAO,EAAc,CAAA;IAClC,CAAA;IACL,kBAAC,GAAD;KACE,aAAY;KACZ,UAAA;KACA,IAAI,EAAE,SAAS;MAAE,IAAI;MAAQ,IAAI;KAAQ,EAAE;IAC5C,CAAA;IACD,kBAAC,GAAD;KACE,WAAW,EAAO;KACN;KACZ,SAAS;KACT,UAAU;KACV,SAAS;IACV,CAAA;GACE;MACL,kBAAC,GAAD;GAEE,MAAM;GACN,gBAAgB,EAAkB,EAAK;GACvC,iBAAiB,EAAkB,EAAK;GACxC,uBAAuB,EAAkB,EAAK;GAC9C,WAAW,KAAa;GACxB,MAAM,EAAW;EAClB,GAPM,OAAO,CAAc,CAO3B,CACG;;AAEV"}
1
+ {"version":3,"file":"CurationTaskCard.js","names":[],"sources":["../../../../../src/features/curator/dashboard/components/CurationTaskCard.tsx"],"sourcesContent":["import { displayToast } from '@/components'\nimport { getComputeTaskConcreteType } from '@/features/entity/metadata-task/utils/types'\nimport { TaskBundle } from '@sage-bionetworks/synapse-client'\nimport CurationTaskCardLayout, {\n deriveCardFields,\n} from './CurationTaskCardLayout'\nimport ExecutableTaskCard from './ExecutableTaskCard'\nimport GridTaskCard from './GridTaskCard'\nimport NextStepButton from './NextStepButton'\nimport styles from './CurationTaskCard.module.scss'\n\nexport type CurationTaskCardProps = {\n taskBundle: TaskBundle\n}\n\n/**\n * Card component for displaying a curation task on the curator dashboard. Dispatches to the card\n * variant appropriate for the task's type: an executable (Compute Data) task, a grid-supported\n * (Curate Data) task, or a fallback for unrecognized types.\n */\nexport default function CurationTaskCard(props: CurationTaskCardProps) {\n const { taskBundle } = props\n\n if (!taskBundle.task || !taskBundle.status) {\n throw new Error('Task bundle is missing required properties')\n }\n\n const concreteType = taskBundle.task.taskProperties?.concreteType\n\n if (getComputeTaskConcreteType(taskBundle.task.taskProperties)) {\n return <ExecutableTaskCard taskBundle={taskBundle} />\n }\n\n switch (concreteType) {\n case 'org.sagebionetworks.repo.model.curation.metadata.FileBasedMetadataTaskProperties':\n case 'org.sagebionetworks.repo.model.curation.metadata.RecordBasedMetadataTaskProperties':\n return <GridTaskCard taskBundle={taskBundle} />\n default:\n console.error('No UI implemented for task type: ' + concreteType)\n return (\n <CurationTaskCardLayout\n taskBundle={taskBundle}\n {...deriveCardFields(taskBundle.task)}\n taskType=\"\"\n renderActionButton={({ expanded }) => (\n <NextStepButton\n className={styles.cardButton}\n buttonText=\"Continue\"\n onClick={() =>\n displayToast('No action defined for this task type', 'danger', {\n title: 'Unexpected Error',\n })\n }\n expanded={expanded}\n />\n )}\n />\n )\n }\n}\n"],"mappings":";;;;;;;;;;AAoBA,SAAwB,EAAiB,GAA8B;CACrE,IAAM,EAAE,kBAAe;CAEvB,IAAI,CAAC,EAAW,QAAQ,CAAC,EAAW,QAClC,MAAU,MAAM,4CAA4C;CAG9D,IAAM,IAAe,EAAW,KAAK,gBAAgB;CAErD,IAAI,EAA2B,EAAW,KAAK,cAAc,GAC3D,OAAO,kBAAC,GAAD,EAAgC,cAAa,CAAA;CAGtD,QAAQ,GAAR;EACE,KAAK;EACL,KAAK,sFACH,OAAO,kBAAC,GAAD,EAA0B,cAAa,CAAA;EAChD,SAEE,OADA,QAAQ,MAAM,sCAAsC,CAAY,GAE9D,kBAAC,GAAD;GACc;GACZ,GAAI,EAAiB,EAAW,IAAI;GACpC,UAAS;GACT,qBAAqB,EAAE,kBACrB,kBAAC,GAAD;IACE,WAAW,EAAO;IAClB,YAAW;IACX,eACE,EAAa,wCAAwC,UAAU,EAC7D,OAAO,mBACT,CAAC;IAEO;GACX,CAAA;EAEJ,CAAA;CAEP;AACF"}
@@ -1,10 +1,14 @@
1
1
  import './CurationTaskCard.css';var e = {
2
- card: "_card_12r05_1",
3
- cardContent: "_cardContent_12r05_5",
4
- mainContent: "_mainContent_12r05_18",
5
- titleChipContainer: "_titleChipContainer_12r05_25",
6
- userChipContainer: "_userChipContainer_12r05_39",
7
- buttonContainer: "_buttonContainer_12r05_47"
2
+ card: "_card_pb0lb_1",
3
+ cardContent: "_cardContent_pb0lb_5",
4
+ mainContent: "_mainContent_pb0lb_18",
5
+ titleChipContainer: "_titleChipContainer_pb0lb_26",
6
+ title: "_title_pb0lb_26",
7
+ entityInfo: "_entityInfo_pb0lb_47",
8
+ statusContainer: "_statusContainer_pb0lb_52",
9
+ expandedContent: "_expandedContent_pb0lb_59",
10
+ userChipContainer: "_userChipContainer_pb0lb_69",
11
+ buttonContainer: "_buttonContainer_pb0lb_77"
8
12
  };
9
13
  //#endregion
10
14
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"CurationTaskCard.module.js","names":[],"sources":["../../../../../src/features/curator/dashboard/components/CurationTaskCard.module.scss"],"sourcesContent":[".card:global(.MuiCard-root) {\n background-color: #f5f8fa;\n}\n\n.cardContent {\n display: flex;\n flex-direction: row;\n margin-bottom: 16px;\n gap: 24px;\n align-items: stretch;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n}\n\n.mainContent {\n display: flex;\n flex-direction: column;\n gap: 16px;\n flex-grow: 1;\n}\n\n.titleChipContainer {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 16px;\n align-items: center;\n @media (max-width: 768px) {\n flex-direction: column;\n align-items: flex-start;\n }\n}\n\n.userChipContainer {\n display: flex;\n flex-direction: row;\n gap: 16px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.buttonContainer {\n display: flex;\n flex-grow: 0;\n flex-shrink: 0;\n margin-left: auto;\n @media (max-width: 768px) {\n margin-left: 0;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"CurationTaskCard.module.js","names":[],"sources":["../../../../../src/features/curator/dashboard/components/CurationTaskCard.module.scss"],"sourcesContent":[".card:global(.MuiCard-root) {\n background-color: #f5f8fa;\n}\n\n.cardContent {\n display: flex;\n flex-direction: row;\n margin-bottom: 16px;\n gap: 24px;\n align-items: stretch;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n}\n\n.mainContent {\n display: flex;\n flex-direction: column;\n gap: 16px;\n flex-grow: 1;\n flex: 1;\n}\n\n.titleChipContainer {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 16px;\n align-items: center;\n @media (max-width: 768px) {\n flex-direction: column;\n align-items: flex-start;\n }\n}\n\n.title {\n cursor: pointer;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.entityInfo {\n display: flex;\n gap: 16px;\n}\n\n.statusContainer {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n}\n\n.expandedContent {\n background-color: #fff;\n padding: 16px;\n margin: 16px;\n border-radius: 4px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.userChipContainer {\n display: flex;\n flex-direction: row;\n gap: 16px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.buttonContainer {\n display: flex;\n flex-grow: 0;\n flex-shrink: 0;\n margin-left: auto;\n @media (max-width: 768px) {\n margin-left: 0;\n }\n}\n"],"mappings":""}
@@ -19,6 +19,7 @@
19
19
  flex-direction: column;
20
20
  gap: 16px;
21
21
  flex-grow: 1;
22
+ flex: 1;
22
23
  }
23
24
 
24
25
  .titleChipContainer {
@@ -33,6 +34,36 @@
33
34
  }
34
35
  }
35
36
 
37
+ .title {
38
+ cursor: pointer;
39
+
40
+ &:hover {
41
+ text-decoration: underline;
42
+ }
43
+ }
44
+
45
+ .entityInfo {
46
+ display: flex;
47
+ gap: 16px;
48
+ }
49
+
50
+ .statusContainer {
51
+ display: flex;
52
+ flex-direction: column;
53
+ align-items: flex-start;
54
+ gap: 8px;
55
+ }
56
+
57
+ .expandedContent {
58
+ background-color: #fff;
59
+ padding: 16px;
60
+ margin: 16px;
61
+ border-radius: 4px;
62
+ display: flex;
63
+ flex-direction: column;
64
+ gap: 16px;
65
+ }
66
+
36
67
  .userChipContainer {
37
68
  display: flex;
38
69
  flex-direction: row;
@@ -0,0 +1,25 @@
1
+ import { TaskBundle } from '@sage-bionetworks/synapse-client';
2
+ import { ReactNode } from 'react';
3
+ export type CurationTaskCardLayoutProps = {
4
+ taskBundle: TaskBundle;
5
+ title: string;
6
+ description: string;
7
+ taskType: string;
8
+ principalIds: string[];
9
+ /** Renders the action button. `expanded` reflects whether the card is in its expanded layout. */
10
+ renderActionButton: (props: {
11
+ expanded: boolean;
12
+ }) => ReactNode;
13
+ };
14
+ /** Derives the fields shared by every card variant from a task's common properties. */
15
+ export declare function deriveCardFields(task: TaskBundle['task']): {
16
+ title: string;
17
+ description: string;
18
+ principalIds: string[];
19
+ };
20
+ /**
21
+ * Shared presentational chrome for a curation task card: title, chips, entity info, assignees,
22
+ * status/due date, and an action button slot. Both the grid and executable task cards compose this.
23
+ */
24
+ export default function CurationTaskCardLayout(props: CurationTaskCardLayoutProps): import("react/jsx-runtime").JSX.Element;
25
+ //# sourceMappingURL=CurationTaskCardLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CurationTaskCardLayout.d.ts","sourceRoot":"","sources":["../../../../../src/features/curator/dashboard/components/CurationTaskCardLayout.tsx"],"names":[],"mappings":"AASA,OAAO,EACL,UAAU,EAEX,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAA;AA+D3C,MAAM,MAAM,2BAA2B,GAAG;IACxC,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,iGAAiG;IACjG,kBAAkB,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,SAAS,CAAA;CAChE,CAAA;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;;;;EAMxD;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,KAAK,EAAE,2BAA2B,2CAqFnC"}