synapse-react-client 4.0.9 → 4.0.10

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 (543) hide show
  1. package/dist/SWC.index.d.ts +1 -0
  2. package/dist/SWC.index.d.ts.map +1 -1
  3. package/dist/SWC.index.js +2 -1
  4. package/dist/SWC.index.js.map +1 -1
  5. package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
  6. package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
  7. package/dist/assets/icons/TasksIcon.d.ts.map +1 -1
  8. package/dist/assets/icons/TasksIcon.js +6 -10
  9. package/dist/assets/icons/TasksIcon.js.map +1 -1
  10. package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.d.ts.map +1 -1
  11. package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js +69 -63
  12. package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
  13. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
  14. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  15. package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
  16. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
  17. package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
  18. package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
  19. package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
  20. package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
  21. package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
  22. package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
  23. package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
  24. package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
  25. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  26. package/dist/components/Authentication/AuthenticationMethodSelection.d.ts.map +1 -1
  27. package/dist/components/Authentication/AuthenticationMethodSelection.js +38 -37
  28. package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
  29. package/dist/components/Authentication/Constants.d.ts +1 -0
  30. package/dist/components/Authentication/Constants.d.ts.map +1 -1
  31. package/dist/components/Authentication/Constants.js +2 -2
  32. package/dist/components/Authentication/Constants.js.map +1 -1
  33. package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
  34. package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
  35. package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
  36. package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
  37. package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
  38. package/dist/components/Authentication/StandaloneLoginForm.js +1 -1
  39. package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
  40. package/dist/components/Authentication/TwoFactorEnrollmentForm.d.ts.map +1 -1
  41. package/dist/components/Authentication/TwoFactorEnrollmentForm.js +2 -1
  42. package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
  43. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
  44. package/dist/components/CardContainer/CardContainer.js.map +1 -1
  45. package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
  46. package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
  47. package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
  48. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
  49. package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
  50. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
  51. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
  52. package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
  53. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
  54. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
  55. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
  56. package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
  57. package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
  58. package/dist/components/ChangePassword/useChangePasswordFormState.js +1 -1
  59. package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
  60. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  61. package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
  62. package/dist/components/ComponentCollapse.js.map +1 -1
  63. package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
  64. package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
  65. package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
  66. package/dist/components/DataGrid/DataGrid.d.ts +0 -1
  67. package/dist/components/DataGrid/DataGrid.d.ts.map +1 -1
  68. package/dist/components/DataGrid/DataGrid.js +72 -72
  69. package/dist/components/DataGrid/DataGrid.js.map +1 -1
  70. package/dist/components/DataGrid/DataGridWebSocket.d.ts +4 -0
  71. package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
  72. package/dist/components/DataGrid/DataGridWebSocket.js +9 -8
  73. package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
  74. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  75. package/dist/components/DataGrid/SynapseGrid.js +326 -268
  76. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  77. package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts +2 -0
  78. package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
  79. package/dist/components/DataGrid/columns/AutocompleteColumn.js +113 -67
  80. package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
  81. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.d.ts +2 -1
  82. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.d.ts.map +1 -1
  83. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js +126 -122
  84. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
  85. package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts +58 -0
  86. package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts.map +1 -0
  87. package/dist/components/DataGrid/columns/useGridAutocompleteState.js +52 -0
  88. package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -0
  89. package/dist/components/DataGrid/components/ValidationAlert.d.ts +5 -2
  90. package/dist/components/DataGrid/components/ValidationAlert.d.ts.map +1 -1
  91. package/dist/components/DataGrid/components/ValidationAlert.js +429 -24
  92. package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
  93. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
  94. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
  95. package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
  96. package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
  97. package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
  98. package/dist/components/DataGrid/useDataGridWebsocket.d.ts +7 -0
  99. package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
  100. package/dist/components/DataGrid/useDataGridWebsocket.js +16 -2
  101. package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
  102. package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
  103. package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
  104. package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
  105. package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
  106. package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
  107. package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
  108. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  109. package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
  110. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
  111. package/dist/components/DataGrid/utils/getCellClassName.d.ts.map +1 -1
  112. package/dist/components/DataGrid/utils/getCellClassName.js +8 -8
  113. package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
  114. package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
  115. package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
  116. package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
  117. package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
  118. package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
  119. package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
  120. package/dist/components/DirectDownloadButton.js.map +1 -1
  121. package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
  122. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  123. package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
  124. package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
  125. package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
  126. package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
  127. package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
  128. package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
  129. package/dist/components/EntityAclEditor/EntityAclEditor.d.ts.map +1 -1
  130. package/dist/components/EntityAclEditor/EntityAclEditor.js +103 -103
  131. package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
  132. package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
  133. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  134. package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
  135. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  136. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.d.ts.map +1 -1
  137. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js +36 -30
  138. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
  139. package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
  140. package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
  141. package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
  142. package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
  143. package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
  144. package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
  145. package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
  146. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  147. package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
  148. package/dist/components/EntityForm/EntityForm.js.map +1 -1
  149. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  150. package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
  151. package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
  152. package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
  153. package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
  154. package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
  155. package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
  156. package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
  157. package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
  158. package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
  159. package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
  160. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
  161. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  162. package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
  163. package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
  164. package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
  165. package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
  166. package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
  167. package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
  168. package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
  169. package/dist/components/Forum/DiscussionReply.js.map +1 -1
  170. package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
  171. package/dist/components/Forum/ForumTable.js.map +1 -1
  172. package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
  173. package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
  174. package/dist/components/GenericCard/GenericCard.d.ts.map +1 -1
  175. package/dist/components/GenericCard/GenericCard.js +12 -7
  176. package/dist/components/GenericCard/GenericCard.js.map +1 -1
  177. package/dist/components/GenericCard/Linkify.js.map +1 -1
  178. package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
  179. package/dist/components/GenericCard/TableRowGenericCard.js +105 -105
  180. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  181. package/dist/components/Goals/Goals.Mobile.js.map +1 -1
  182. package/dist/components/Goals/Goals.js.map +1 -1
  183. package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
  184. package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
  185. package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
  186. package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
  187. package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
  188. package/dist/components/HasAccess/AccessIcon.js.map +1 -1
  189. package/dist/components/HasAccess/useHasAccess.js.map +1 -1
  190. package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
  191. package/dist/components/HeaderCard.d.ts +6 -1
  192. package/dist/components/HeaderCard.d.ts.map +1 -1
  193. package/dist/components/HeaderCard.js +107 -76
  194. package/dist/components/HeaderCard.js.map +1 -1
  195. package/dist/components/HexGrid/HexGrid.js.map +1 -1
  196. package/dist/components/IconList.js.map +1 -1
  197. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
  198. package/dist/components/ImageFromSynapseTable.js.map +1 -1
  199. package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
  200. package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
  201. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
  202. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
  203. package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
  204. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
  205. package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
  206. package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
  207. package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
  208. package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
  209. package/dist/components/Markdown/UserMentionModal.js.map +1 -1
  210. package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
  211. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  212. package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
  213. package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.d.ts.map +1 -1
  214. package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js +45 -39
  215. package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
  216. package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
  217. package/dist/components/PageProgress/PageProgress.js.map +1 -1
  218. package/dist/components/Plot/DotPlot.js.map +1 -1
  219. package/dist/components/Plot/Plot.js.map +1 -1
  220. package/dist/components/Plot/SynapsePlot.js.map +1 -1
  221. package/dist/components/Plot/ThemesPlot.js.map +1 -1
  222. package/dist/components/Plot/UpsetPlot.js.map +1 -1
  223. package/dist/components/PortalAclEditor/PortalAclEditor.d.ts.map +1 -1
  224. package/dist/components/PortalAclEditor/PortalAclEditor.js +43 -41
  225. package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
  226. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
  227. package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
  228. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
  229. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
  230. package/dist/components/Programs/Programs.Mobile.js.map +1 -1
  231. package/dist/components/Programs/Programs.js.map +1 -1
  232. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
  233. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  234. package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
  235. package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
  236. package/dist/components/QueryCount/QueryCount.js.map +1 -1
  237. package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
  238. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
  239. package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
  240. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
  241. package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
  242. package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
  243. package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
  244. package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
  245. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  246. package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
  247. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
  248. package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
  249. package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
  250. package/dist/components/Resources/Resources.Mobile.js.map +1 -1
  251. package/dist/components/Resources/Resources.js.map +1 -1
  252. package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
  253. package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
  254. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
  255. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  256. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
  257. package/dist/components/SmartLink/SmartButton.js.map +1 -1
  258. package/dist/components/SmartLink/SmartLink.js.map +1 -1
  259. package/dist/components/SourceAppImage.js.map +1 -1
  260. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
  261. package/dist/components/StatisticsPlot.js.map +1 -1
  262. package/dist/components/StorybookComponentWrapper.js.map +1 -1
  263. package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
  264. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
  265. package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
  266. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  267. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  268. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
  269. package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
  270. package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
  271. package/dist/components/SynapseForm/SynapseForm.js +4 -2
  272. package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
  273. package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
  274. package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
  275. package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
  276. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
  277. package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
  278. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
  279. package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
  280. package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
  281. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts +8 -7
  282. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts.map +1 -1
  283. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +173 -164
  284. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  285. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  286. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
  287. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
  288. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
  289. package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
  290. package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
  291. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  292. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
  293. package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
  294. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  295. package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
  296. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  297. package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
  298. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  299. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
  300. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
  301. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts +1 -1
  302. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts.map +1 -1
  303. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  304. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  305. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
  306. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
  307. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
  308. package/dist/components/TanStackTable/ColumnHeader.d.ts +1 -0
  309. package/dist/components/TanStackTable/ColumnHeader.d.ts.map +1 -1
  310. package/dist/components/TanStackTable/ColumnHeader.js +8 -8
  311. package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
  312. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
  313. package/dist/components/TanStackTable/TableBody.js.map +1 -1
  314. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
  315. package/dist/components/TextField/TextField.js.map +1 -1
  316. package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
  317. package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
  318. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
  319. package/dist/components/UserCard/Avatar.js.map +1 -1
  320. package/dist/components/UserCardList/UserCardList.js.map +1 -1
  321. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
  322. package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
  323. package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
  324. package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
  325. package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
  326. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  327. package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
  328. package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
  329. package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
  330. package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
  331. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
  332. package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
  333. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
  334. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  335. package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
  336. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  337. package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
  338. package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
  339. package/dist/components/error/ErrorPage.js.map +1 -1
  340. package/dist/components/favorites/FavoritesPage.js.map +1 -1
  341. package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
  342. package/dist/components/layout/SWCHeader.d.ts +9 -0
  343. package/dist/components/layout/SWCHeader.d.ts.map +1 -0
  344. package/dist/components/layout/SWCHeader.js +19 -0
  345. package/dist/components/layout/SWCHeader.js.map +1 -0
  346. package/dist/components/layout/SWCPageLayout.d.ts +9 -0
  347. package/dist/components/layout/SWCPageLayout.d.ts.map +1 -0
  348. package/dist/components/layout/SWCPageLayout.js +14 -0
  349. package/dist/components/layout/SWCPageLayout.js.map +1 -0
  350. package/dist/components/menu/ComplexMenu.js.map +1 -1
  351. package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
  352. package/dist/components/styled/StyledPopover.js.map +1 -1
  353. package/dist/components/table/CsvPreview/CsvPreview.js +2 -1
  354. package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
  355. package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
  356. package/dist/components/trash/TrashCanList.js.map +1 -1
  357. package/dist/components/widgets/FileHandleLink.js.map +1 -1
  358. package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
  359. package/dist/components/widgets/SynapseVideo.js.map +1 -1
  360. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  361. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  362. package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
  363. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  364. package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
  365. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  366. package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
  367. package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
  368. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
  369. package/dist/features/curator/GridPage/components/GridPageTitle.d.ts.map +1 -1
  370. package/dist/features/curator/GridPage/components/GridPageTitle.js +23 -30
  371. package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
  372. package/dist/features/curator/dashboard/CuratorDashboard.d.ts +2 -0
  373. package/dist/features/curator/dashboard/CuratorDashboard.d.ts.map +1 -0
  374. package/dist/features/curator/dashboard/CuratorDashboard.js +45 -0
  375. package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -0
  376. package/dist/features/curator/dashboard/components/CurationTaskCard.css +1 -0
  377. package/dist/features/curator/dashboard/components/CurationTaskCard.d.ts +9 -0
  378. package/dist/features/curator/dashboard/components/CurationTaskCard.d.ts.map +1 -0
  379. package/dist/features/curator/dashboard/components/CurationTaskCard.js +106 -0
  380. package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -0
  381. package/dist/features/curator/dashboard/components/CurationTaskCard.module.js +12 -0
  382. package/dist/features/curator/dashboard/components/CurationTaskCard.module.js.map +1 -0
  383. package/dist/features/curator/dashboard/components/CurationTaskCard.module.scss +52 -0
  384. package/dist/features/curator/dashboard/components/NextStepButton.css +1 -0
  385. package/dist/features/curator/dashboard/components/NextStepButton.d.ts +14 -0
  386. package/dist/features/curator/dashboard/components/NextStepButton.d.ts.map +1 -0
  387. package/dist/features/curator/dashboard/components/NextStepButton.js +35 -0
  388. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -0
  389. package/dist/features/curator/dashboard/components/NextStepButton.module.js +11 -0
  390. package/dist/features/curator/dashboard/components/NextStepButton.module.js.map +1 -0
  391. package/dist/features/curator/dashboard/components/NextStepButton.module.scss +57 -0
  392. package/dist/features/curator/dashboard/components/UserOrTeamChip.css +1 -1
  393. package/dist/features/curator/dashboard/components/UserOrTeamChip.module.js +1 -1
  394. package/dist/features/curator/dashboard/components/UserOrTeamChip.module.js.map +1 -1
  395. package/dist/features/curator/dashboard/components/UserOrTeamChip.module.scss +5 -5
  396. package/dist/features/curator/dashboard/components/shared.css +1 -0
  397. package/dist/features/curator/dashboard/components/shared.module.js +5 -0
  398. package/dist/features/curator/dashboard/components/shared.module.js.map +1 -0
  399. package/dist/features/curator/dashboard/components/shared.module.scss +8 -0
  400. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts +0 -2
  401. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
  402. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +16 -34
  403. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  404. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  405. package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
  406. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
  407. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
  408. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
  409. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
  410. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.d.ts +10 -0
  411. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.d.ts.map +1 -0
  412. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js +37 -0
  413. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -0
  414. package/dist/features/entity/metadata-task/utils/constants.d.ts +5 -0
  415. package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -0
  416. package/dist/features/entity/metadata-task/utils/constants.js +6 -0
  417. package/dist/features/entity/metadata-task/utils/constants.js.map +1 -0
  418. package/dist/mocks/challenge/mockChallenge.js.map +1 -1
  419. package/dist/mocks/entity/mockDataset.js.map +1 -1
  420. package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
  421. package/dist/mocks/entity/mockFileEntity.js.map +1 -1
  422. package/dist/mocks/entity/mockFileView.js.map +1 -1
  423. package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
  424. package/dist/mocks/entity/mockProject.js.map +1 -1
  425. package/dist/mocks/entity/mockProjectView.js.map +1 -1
  426. package/dist/mocks/entity/mockRootEntity.js.map +1 -1
  427. package/dist/mocks/entity/mockTableEntity.js.map +1 -1
  428. package/dist/mocks/mockWiki.js.map +1 -1
  429. package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
  430. package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
  431. package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
  432. package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
  433. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  434. package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
  435. package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
  436. package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
  437. package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
  438. package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
  439. package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
  440. package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
  441. package/dist/mocks/provenance/mockActivity.js.map +1 -1
  442. package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
  443. package/dist/ror-client/index.js.map +1 -1
  444. package/dist/style/components/_cards.scss +4 -0
  445. package/dist/style/components/_data-grid-extra.css +1 -1
  446. package/dist/style/components/_data-grid-extra.scss +2 -0
  447. package/dist/style/main.css +1 -1
  448. package/dist/synapse-client/HttpClient.js.map +1 -1
  449. package/dist/synapse-client/SynapseClient.js.map +1 -1
  450. package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
  451. package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
  452. package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -1
  453. package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
  454. package/dist/synapse-queries/curation/task/useCurationTask.js +1 -1
  455. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  456. package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
  457. package/dist/synapse-queries/doi/useDOI.js.map +1 -1
  458. package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
  459. package/dist/synapse-queries/entity/useEntity.js.map +1 -1
  460. package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
  461. package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
  462. package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
  463. package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
  464. package/dist/synapse-queries/entity/useSchema.js.map +1 -1
  465. package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
  466. package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
  467. package/dist/synapse-queries/file/useFiles.js.map +1 -1
  468. package/dist/synapse-queries/forum/useReply.js.map +1 -1
  469. package/dist/synapse-queries/forum/useThread.js.map +1 -1
  470. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.d.ts +2 -0
  471. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.d.ts.map +1 -1
  472. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
  473. package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
  474. package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
  475. package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
  476. package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
  477. package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
  478. package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
  479. package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
  480. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  481. package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
  482. package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
  483. package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
  484. package/dist/theme/ThemeProvider.js.map +1 -1
  485. package/dist/tsconfig.build.tsbuildinfo +1 -1
  486. package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
  487. package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
  488. package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
  489. package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
  490. package/dist/utils/context/SynapseContext.js.map +1 -1
  491. package/dist/utils/functions/AccessControlListUtils.d.ts +4 -0
  492. package/dist/utils/functions/AccessControlListUtils.d.ts.map +1 -1
  493. package/dist/utils/functions/AccessControlListUtils.js +12 -1
  494. package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
  495. package/dist/utils/functions/GridApiUtils.js.map +1 -1
  496. package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
  497. package/dist/utils/functions/RealmUtils.d.ts +4 -0
  498. package/dist/utils/functions/RealmUtils.d.ts.map +1 -1
  499. package/dist/utils/functions/RealmUtils.js +9 -3
  500. package/dist/utils/functions/RealmUtils.js.map +1 -1
  501. package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
  502. package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
  503. package/dist/utils/functions/SqlFunctions.js.map +1 -1
  504. package/dist/utils/functions/StringUtils.js.map +1 -1
  505. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  506. package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
  507. package/dist/utils/functions/getEndpoint.js.map +1 -1
  508. package/dist/utils/functions/getUserData.js.map +1 -1
  509. package/dist/utils/functions/queryUtils.js.map +1 -1
  510. package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
  511. package/dist/utils/hooks/useConfirmItems.js.map +1 -1
  512. package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
  513. package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
  514. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  515. package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
  516. package/dist/utils/hooks/useGetGoalData.js.map +1 -1
  517. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  518. package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
  519. package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
  520. package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
  521. package/dist/utils/hooks/useIsBot.js.map +1 -1
  522. package/dist/utils/hooks/useListState.js.map +1 -1
  523. package/dist/utils/hooks/useLogin.d.ts.map +1 -1
  524. package/dist/utils/hooks/useLogin.js +53 -52
  525. package/dist/utils/hooks/useLogin.js.map +1 -1
  526. package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
  527. package/dist/utils/hooks/useOverlay.js.map +1 -1
  528. package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
  529. package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
  530. package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
  531. package/dist/utils/hooks/useSet.js.map +1 -1
  532. package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
  533. package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
  534. package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
  535. package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
  536. package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
  537. package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
  538. package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
  539. package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
  540. package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
  541. package/dist/utils/html/TargetEnum.js.map +1 -1
  542. package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
  543. package/package.json +4 -4
@@ -0,0 +1,57 @@
1
+ .button {
2
+ display: flex;
3
+ flex-direction: row;
4
+ align-items: center;
5
+ justify-content: flex-end;
6
+ gap: 32px;
7
+
8
+ .icon {
9
+ color: var(--synapse-gray-700);
10
+ font-size: 30px;
11
+ }
12
+
13
+ .buttonText {
14
+ display: flex;
15
+ flex-direction: column;
16
+ align-items: flex-start;
17
+ justify-content: center;
18
+ gap: 0;
19
+ flex-shrink: 0;
20
+ margin-left: 16px;
21
+ margin-right: 16px;
22
+ }
23
+
24
+ .buttonTextSub {
25
+ color: var(--synapse-gray-700);
26
+ }
27
+
28
+ &:disabled {
29
+ pointer-events: all;
30
+ opacity: 0.5;
31
+ }
32
+
33
+ &:hover:not(:disabled) {
34
+ .buttonTextMain {
35
+ text-decoration: underline;
36
+ }
37
+ .icon {
38
+ color: var(--synapse-gray-800);
39
+ }
40
+ .buttonTextSub {
41
+ color: var(--synapse-gray-800);
42
+ }
43
+ }
44
+
45
+ &:active:not(:disabled) {
46
+ .buttonTextMain {
47
+ text-decoration: underline;
48
+ text-decoration-thickness: 3px;
49
+ }
50
+ .icon {
51
+ color: var(--synapse-gray-900);
52
+ }
53
+ .buttonTextSub {
54
+ color: var(--synapse-gray-900);
55
+ }
56
+ }
57
+ }
@@ -1 +1 @@
1
- ._chip_1591f_1{padding-left:6px;padding-right:14px;font-weight:600}._chip_1591f_1 .MuiChip-label{padding-left:10px;padding-right:0}
1
+ ._chip_1pdl4_1.MuiChip-root{font-weight:600}._chip_1pdl4_1.MuiChip-root .MuiAvatar-root{margin-left:.5em}._chip_1pdl4_1.MuiChip-root .MuiChip-label{padding-left:.75em}
@@ -1,4 +1,4 @@
1
- import './UserOrTeamChip.css';var e = { chip: "_chip_1591f_1" };
1
+ import './UserOrTeamChip.css';var e = { chip: "_chip_1pdl4_1" };
2
2
  //#endregion
3
3
  export { e as default };
4
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"UserOrTeamChip.module.js","names":[],"sources":["../../../../../src/features/curator/dashboard/components/UserOrTeamChip.module.scss"],"sourcesContent":[".chip {\n font-weight: 600;\n padding-left: 6px;\n padding-right: 14px;\n & :global(.MuiChip-label) {\n padding-left: 10px;\n padding-right: 0;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"UserOrTeamChip.module.js","names":[],"sources":["../../../../../src/features/curator/dashboard/components/UserOrTeamChip.module.scss"],"sourcesContent":[".chip:global(.MuiChip-root) {\n font-weight: 600;\n & :global(.MuiAvatar-root) {\n margin-left: 0.5em;\n }\n & :global(.MuiChip-label) {\n padding-left: 0.75em;\n }\n}\n"],"mappings":""}
@@ -1,9 +1,9 @@
1
- .chip {
1
+ .chip:global(.MuiChip-root) {
2
2
  font-weight: 600;
3
- padding-left: 6px;
4
- padding-right: 14px;
3
+ & :global(.MuiAvatar-root) {
4
+ margin-left: 0.5em;
5
+ }
5
6
  & :global(.MuiChip-label) {
6
- padding-left: 10px;
7
- padding-right: 0;
7
+ padding-left: 0.75em;
8
8
  }
9
9
  }
@@ -0,0 +1 @@
1
+ ._card_1y1lm_1{padding:32px}@media (width<=768px){._card_1y1lm_1{padding-left:24px;padding-right:24px}}
@@ -0,0 +1,5 @@
1
+ import './shared.css';var e = { card: "_card_1y1lm_1" };
2
+ //#endregion
3
+ export { e as default };
4
+
5
+ //# sourceMappingURL=shared.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.module.js","names":[],"sources":["../../../../../src/features/curator/dashboard/components/shared.module.scss"],"sourcesContent":[".card {\n padding: 32px 32px;\n\n @media (max-width: 768px) {\n padding-left: 24px;\n padding-right: 24px;\n }\n}\n"],"mappings":""}
@@ -0,0 +1,8 @@
1
+ .card {
2
+ padding: 32px 32px;
3
+
4
+ @media (max-width: 768px) {
5
+ padding-left: 24px;
6
+ padding-right: 24px;
7
+ }
8
+ }
@@ -1,6 +1,4 @@
1
1
  import { TaskBundle } from '@sage-bionetworks/synapse-client';
2
- export declare const OPEN_CURATOR_ERROR_TITLE = "An error occurred while trying to open Curator";
3
- export declare const OPEN_CURATOR_UNAUTHORIZED_ERROR_MESSAGE = "You don't have permission to view the existing Curator session for this task. It was likely created by another data contributor. A data manager should create a new task and assign it to you or your team.";
4
2
  export declare const NO_TASK_ASSIGNEE_WARNING_DIALOG_TITLE = "Task is Unassigned";
5
3
  /**
6
4
  * Handles rendering the 'Actions' cell in the Metadata Task table, which provides buttons for the user
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataTaskTableActionCell.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/components/MetadataTaskTableActionCell.tsx"],"names":[],"mappings":"AAMA,OAAO,EAGL,UAAU,EACX,MAAM,kCAAkC,CAAA;AAIzC,eAAO,MAAM,wBAAwB,mDACa,CAAA;AAClD,eAAO,MAAM,uCAAuC,gNAC2J,CAAA;AAE/M,eAAO,MAAM,qCAAqC,uBAAuB,CAAA;AAOzE;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,2BAA2B,CAAC,KAAK,EAAE;IACzD,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;CACjB,2CAwEA"}
1
+ {"version":3,"file":"MetadataTaskTableActionCell.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/components/MetadataTaskTableActionCell.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAO7D,eAAO,MAAM,qCAAqC,uBAAuB,CAAA;AAEzE;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,2BAA2B,CAAC,KAAK,EAAE;IACzD,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;CACjB,2CAgCA"}
@@ -1,43 +1,25 @@
1
- import { displayToast as e } from "../../../../components/ToastMessage/ToastMessage.js";
2
- import { useGetEntityPermissions as t } from "../../../../synapse-queries/entity/useEntity.js";
3
- import { getLinkToGridSession as n } from "../../../../utils/functions/getSynapseWebClientLink.js";
4
- import { getGridSourceIdForTask as r } from "../utils/getGridSourceIdForTask.js";
5
- import i from "../hooks/useGridSessionForCurationTask_legacy.js";
6
- import { useCallback as a } from "react";
7
- import { Button as o, Tooltip as s } from "@mui/material";
8
- import { Fragment as c, jsx as l } from "react/jsx-runtime";
9
- import { SynapseClientError as u } from "@sage-bionetworks/synapse-client";
10
- import { StickyNote2Outlined as d } from "@mui/icons-material";
1
+ import { OPEN_CURATOR_NO_PERMISSION_ON_SOURCE_ERROR_MESSAGE as e, OPEN_CURATOR_TOOLTIP_TITLE as t } from "../utils/constants.js";
2
+ import n from "../hooks/useOpenCuratorButton.js";
3
+ import { Button as r, Tooltip as i } from "@mui/material";
4
+ import { Fragment as a, jsx as o } from "react/jsx-runtime";
5
+ import { StickyNote2Outlined as s } from "@mui/icons-material";
11
6
  //#region src/features/entity/metadata-task/components/MetadataTaskTableActionCell.tsx
12
- var f = "An error occurred while trying to open Curator", p = "You don't have permission to view the existing Curator session for this task. It was likely created by another data contributor. A data manager should create a new task and assign it to you or your team.", m = "Task is Unassigned";
13
- function h(e, t) {
14
- let r = n(e, t);
15
- window.open(r, "_blank", "noopener");
16
- }
17
- function g(n) {
18
- let { taskBundle: m } = n, g = m.task, { mutateAsync: _, isPending: v } = i(), y = r(g), { data: b, isLoading: x } = t(y), S = x, C = b?.canView, w = v || S || !C, T = C ? "Open Curator to edit metadata" : b?.canView ? "You must have READ access to " + y + " to view the Working Copy" : "You do not have permission to view the Working Copy", E = a(async () => {
19
- let t;
20
- try {
21
- t = await _({ curationTask: g }), h(t.sessionId, g.taskId);
22
- } catch (t) {
23
- t instanceof u && t.status === 403 ? (console.error(t), e(p, "danger", { title: f })) : (console.error("Error opening Curator for curation task", t), e(t.message, "danger", { title: f }));
24
- }
25
- }, [g, _]), D = a(() => {
26
- E();
27
- }, [E]);
28
- return /* @__PURE__ */ l(c, { children: /* @__PURE__ */ l(s, {
29
- title: T,
30
- children: /* @__PURE__ */ l("span", { children: /* @__PURE__ */ l(o, {
7
+ var c = "Task is Unassigned";
8
+ function l(c) {
9
+ let { taskBundle: l } = c, u = l.task, { hasPermission: d, isLoading: f, isPending: p, onClick: m } = n(u), h = p || f || !d, g;
10
+ return d === !0 ? g = t : d === !1 && (g = e), /* @__PURE__ */ o(a, { children: /* @__PURE__ */ o(i, {
11
+ title: g,
12
+ children: /* @__PURE__ */ o("span", { children: /* @__PURE__ */ o(r, {
31
13
  size: "small",
32
- startIcon: /* @__PURE__ */ l(d, {}),
33
- loading: v || S,
34
- disabled: w,
35
- onClick: D,
14
+ startIcon: /* @__PURE__ */ o(s, {}),
15
+ loading: p,
16
+ disabled: h,
17
+ onClick: m,
36
18
  children: "Open Curator"
37
19
  }) })
38
20
  }) });
39
21
  }
40
22
  //#endregion
41
- export { m as NO_TASK_ASSIGNEE_WARNING_DIALOG_TITLE, f as OPEN_CURATOR_ERROR_TITLE, p as OPEN_CURATOR_UNAUTHORIZED_ERROR_MESSAGE, g as default };
23
+ export { c as NO_TASK_ASSIGNEE_WARNING_DIALOG_TITLE, l as default };
42
24
 
43
25
  //# sourceMappingURL=MetadataTaskTableActionCell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataTaskTableActionCell.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/components/MetadataTaskTableActionCell.tsx"],"sourcesContent":["import { displayToast } from '@/components/ToastMessage/ToastMessage'\nimport useGridSessionForCurationTask_legacy from '@/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy'\nimport { useGetEntityPermissions } from '@/synapse-queries/entity/useEntity'\nimport { getLinkToGridSession } from '@/utils/functions/getSynapseWebClientLink'\nimport { StickyNote2Outlined } from '@mui/icons-material'\nimport { Button, Tooltip } from '@mui/material'\nimport {\n GridSession,\n SynapseClientError,\n TaskBundle,\n} from '@sage-bionetworks/synapse-client'\nimport { useCallback } from 'react'\nimport { getGridSourceIdForTask } from '../utils/getGridSourceIdForTask'\n\nexport const OPEN_CURATOR_ERROR_TITLE =\n 'An error occurred while trying to open Curator'\nexport const OPEN_CURATOR_UNAUTHORIZED_ERROR_MESSAGE =\n \"You don't have permission to view the existing Curator session for this task. It was likely created by another data contributor. A data manager should create a new task and assign it to you or your team.\"\n\nexport const NO_TASK_ASSIGNEE_WARNING_DIALOG_TITLE = 'Task is Unassigned'\n\nfunction openGridSessionInNewWindow(gridSessionId: string, taskId: number) {\n const gridUrl = getLinkToGridSession(gridSessionId, taskId)\n window.open(gridUrl, '_blank', 'noopener')\n}\n\n/**\n * Handles rendering the 'Actions' cell in the Metadata Task table, which provides buttons for the user\n * to accomplish the actions they can take on a Metadata Task, such as opening a data grid for the entity referenced\n * by the task.\n */\nexport default function MetadataTaskTableActionCell(props: {\n taskBundle: TaskBundle\n canEdit: boolean\n}) {\n const { taskBundle } = props\n const curationTask = taskBundle.task!\n\n const {\n mutateAsync: getOrCreateLegacyGridSessionForUnassignedTask,\n isPending: openGridIsPending,\n } = useGridSessionForCurationTask_legacy()\n\n const gridSourceEntityId = getGridSourceIdForTask(curationTask)\n const {\n data: sourceEntityPermissions,\n isLoading: isLoadingEntityPermissions,\n } = useGetEntityPermissions(gridSourceEntityId)\n\n const isLoading = isLoadingEntityPermissions\n\n const hasPermission = sourceEntityPermissions?.canView\n\n const isOpenDataGridDisabled =\n openGridIsPending || isLoading || !hasPermission\n const toolTipTitle = hasPermission\n ? 'Open Curator to edit metadata'\n : sourceEntityPermissions?.canView\n ? 'You must have READ access to ' +\n gridSourceEntityId +\n ' to view the Working Copy'\n : 'You do not have permission to view the Working Copy'\n\n const openNewOrExistingCuratorSession = useCallback(async () => {\n let gridSession: GridSession\n try {\n gridSession = await getOrCreateLegacyGridSessionForUnassignedTask({\n curationTask,\n })\n openGridSessionInNewWindow(gridSession.sessionId!, curationTask.taskId!)\n } catch (error) {\n if (error instanceof SynapseClientError && error.status === 403) {\n console.error(error)\n displayToast(OPEN_CURATOR_UNAUTHORIZED_ERROR_MESSAGE, 'danger', {\n title: OPEN_CURATOR_ERROR_TITLE,\n })\n } else {\n console.error('Error opening Curator for curation task', error)\n displayToast(error.message, 'danger', {\n title: OPEN_CURATOR_ERROR_TITLE,\n })\n }\n }\n }, [curationTask, getOrCreateLegacyGridSessionForUnassignedTask])\n\n const handleClickOpenCurator = useCallback(() => {\n void openNewOrExistingCuratorSession()\n }, [openNewOrExistingCuratorSession])\n\n return (\n <>\n <Tooltip title={toolTipTitle}>\n <span>\n <Button\n size={'small'}\n startIcon={<StickyNote2Outlined />}\n loading={openGridIsPending || isLoading}\n disabled={isOpenDataGridDisabled}\n onClick={handleClickOpenCurator}\n >\n Open Curator\n </Button>\n </span>\n </Tooltip>\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;AAcA,IAAa,IACX,kDACW,IACX,+MAEW,IAAwC;AAErD,SAAS,EAA2B,GAAuB,GAAgB;CACzE,IAAM,IAAU,EAAqB,GAAe,EAAO;AAC3D,QAAO,KAAK,GAAS,UAAU,WAAW;;AAQ5C,SAAwB,EAA4B,GAGjD;CACD,IAAM,EAAE,kBAAe,GACjB,IAAe,EAAW,MAE1B,EACJ,aAAa,GACb,WAAW,MACT,GAAsC,EAEpC,IAAqB,EAAuB,EAAa,EACzD,EACJ,MAAM,GACN,WAAW,MACT,EAAwB,EAAmB,EAEzC,IAAY,GAEZ,IAAgB,GAAyB,SAEzC,IACJ,KAAqB,KAAa,CAAC,GAC/B,IAAe,IACjB,kCACA,GAAyB,UACzB,kCACA,IACA,8BACA,uDAEE,IAAkC,EAAY,YAAY;EAC9D,IAAI;AACJ,MAAI;AAIF,GAHA,IAAc,MAAM,EAA8C,EAChE,iBACD,CAAC,EACF,EAA2B,EAAY,WAAY,EAAa,OAAQ;WACjE,GAAO;AACd,GAAI,aAAiB,KAAsB,EAAM,WAAW,OAC1D,QAAQ,MAAM,EAAM,EACpB,EAAa,GAAyC,UAAU,EAC9D,OAAO,GACR,CAAC,KAEF,QAAQ,MAAM,2CAA2C,EAAM,EAC/D,EAAa,EAAM,SAAS,UAAU,EACpC,OAAO,GACR,CAAC;;IAGL,CAAC,GAAc,EAA8C,CAAC,EAE3D,IAAyB,QAAkB;AAC1C,KAAiC;IACrC,CAAC,EAAgC,CAAC;AAErC,QACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;EAAS,OAAO;YACd,kBAAC,QAAD,EAAA,UACE,kBAAC,GAAD;GACE,MAAM;GACN,WAAW,kBAAC,GAAD,EAAuB,CAAA;GAClC,SAAS,KAAqB;GAC9B,UAAU;GACV,SAAS;aACV;GAEQ,CAAA,EACJ,CAAA;EACC,CAAA,EACT,CAAA"}
1
+ {"version":3,"file":"MetadataTaskTableActionCell.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/components/MetadataTaskTableActionCell.tsx"],"sourcesContent":["import { StickyNote2Outlined } from '@mui/icons-material'\nimport { Button, Tooltip } from '@mui/material'\nimport { TaskBundle } from '@sage-bionetworks/synapse-client'\nimport useOpenCuratorFromTaskButton from '../hooks/useOpenCuratorButton'\nimport {\n OPEN_CURATOR_TOOLTIP_TITLE,\n OPEN_CURATOR_NO_PERMISSION_ON_SOURCE_ERROR_MESSAGE,\n} from '../utils/constants'\n\nexport const NO_TASK_ASSIGNEE_WARNING_DIALOG_TITLE = 'Task is Unassigned'\n\n/**\n * Handles rendering the 'Actions' cell in the Metadata Task table, which provides buttons for the user\n * to accomplish the actions they can take on a Metadata Task, such as opening a data grid for the entity referenced\n * by the task.\n */\nexport default function MetadataTaskTableActionCell(props: {\n taskBundle: TaskBundle\n canEdit: boolean\n}) {\n const { taskBundle } = props\n const curationTask = taskBundle.task!\n\n const { hasPermission, isLoading, isPending, onClick } =\n useOpenCuratorFromTaskButton(curationTask)\n\n const disableButton = isPending || isLoading || !hasPermission\n let tooltipTitle: string | undefined = undefined\n if (hasPermission === true) {\n tooltipTitle = OPEN_CURATOR_TOOLTIP_TITLE\n } else if (hasPermission === false) {\n tooltipTitle = OPEN_CURATOR_NO_PERMISSION_ON_SOURCE_ERROR_MESSAGE\n }\n\n return (\n <>\n <Tooltip title={tooltipTitle}>\n <span>\n <Button\n size={'small'}\n startIcon={<StickyNote2Outlined />}\n loading={isPending}\n disabled={disableButton}\n onClick={onClick}\n >\n Open Curator\n </Button>\n </span>\n </Tooltip>\n </>\n )\n}\n"],"mappings":";;;;;;AASA,IAAa,IAAwC;AAOrD,SAAwB,EAA4B,GAGjD;CACD,IAAM,EAAE,kBAAe,GACjB,IAAe,EAAW,MAE1B,EAAE,kBAAe,cAAW,cAAW,eAC3C,EAA6B,EAAa,EAEtC,IAAgB,KAAa,KAAa,CAAC,GAC7C;AAOJ,QANI,MAAkB,KACpB,IAAe,IACN,MAAkB,OAC3B,IAAe,IAIf,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;EAAS,OAAO;YACd,kBAAC,QAAD,EAAA,UACE,kBAAC,GAAD;GACE,MAAM;GACN,WAAW,kBAAC,GAAD,EAAuB,CAAA;GAClC,SAAS;GACT,UAAU;GACD;aACV;GAEQ,CAAA,EACJ,CAAA;EACC,CAAA,EACT,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataTasksTableAssigneeCell.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.tsx"],"sourcesContent":["import { ConfirmationDialog } from '@/components/ConfirmationDialog'\nimport UserOrTeamBadge from '@/components/UserOrTeamBadge/UserOrTeamBadge'\nimport UserSearchBox from '@/components/UserSearchBox/UserSearchBox'\nimport { displayToast } from '@/index'\nimport { useUpdateCurationTask } from '@/synapse-queries/curation/task/useCurationTask'\nimport { EditTwoTone } from '@mui/icons-material'\nimport { Alert, Box, IconButton, Stack, Typography } from '@mui/material'\nimport { TaskBundle } from '@sage-bionetworks/synapse-client'\nimport { TYPE_FILTER } from '@sage-bionetworks/synapse-types'\nimport { useCallback, useState } from 'react'\nimport taskHasAssignee from '../utils/taskHasAssignee'\n\nexport type MetadataTasksTableAssigneeCellProps = {\n taskBundle: TaskBundle\n canEdit: boolean\n}\n\nexport default function MetadataTasksTableAssigneeCell(\n props: MetadataTasksTableAssigneeCellProps,\n) {\n const { taskBundle, canEdit } = props\n const curationTask = taskBundle.task!\n const { assigneePrincipalId } = curationTask\n const [showUserPicker, setShowUserPicker] = useState(false)\n const [selectedPrincipalId, setSelectedPrincipalId] = useState<string | null>(\n assigneePrincipalId ?? null,\n )\n const [isHoveringOnCell, setIsHoveringOnCell] = useState(false)\n\n const { mutateAsync: updateCurationTask, isPending: updateTaskIsPending } =\n useUpdateCurationTask({\n onError: error => {\n displayToast('Error updating task assignee: ' + error.message, 'danger')\n },\n })\n\n let assigneeDisplay = (\n <Box\n component=\"span\"\n sx={{ flexGrow: 1, fontStyle: 'italic', color: 'grey.700' }}\n >\n Unassigned\n </Box>\n )\n\n const hasAssignee = taskHasAssignee(curationTask)\n if (hasAssignee) {\n assigneeDisplay = <UserOrTeamBadge principalId={assigneePrincipalId} />\n }\n\n const onConfirmUpdateAssignee = useCallback(\n async (assigneeId: string | undefined) => {\n await updateCurationTask({\n ...curationTask,\n assigneePrincipalId: assigneeId,\n })\n setShowUserPicker(false)\n },\n [curationTask, updateCurationTask],\n )\n\n const editDialog = (\n <ConfirmationDialog\n title=\"Set Assignee\"\n open={showUserPicker}\n content={\n <Stack gap={2}>\n <Typography variant=\"body1\" gutterBottom>\n Assign this task to a team or an individual user. All members of a\n team will be able to collaborate in the same Curator session.\n </Typography>\n <UserSearchBox\n key={showUserPicker.toString()}\n defaultValue={assigneePrincipalId}\n onChange={principalId => setSelectedPrincipalId(principalId)}\n typeFilter={TYPE_FILTER.ALL}\n />\n {taskBundle.status?.executionDetails?.activeSessionId && (\n <Alert severity=\"warning\">\n This task has an active Curator session. If you change the\n assignee, these effects could happen:\n <ul>\n <li>\n Current assignee(s) may lose access to the session, unsaved\n changes will be lost, and they may not be able to complete\n their work.\n </li>\n <li>\n New assignee(s) may not have permission to access the current\n session\n </li>\n </ul>\n To avoid these issues, a data manager should create a new task.\n </Alert>\n )}\n </Stack>\n }\n confirmButtonProps={{\n children: 'Save',\n loading: updateTaskIsPending,\n }}\n onConfirm={() => {\n onConfirmUpdateAssignee(selectedPrincipalId ?? undefined)\n }}\n onCancel={() => setShowUserPicker(false)}\n />\n )\n\n const editButton = (\n <div>\n <IconButton\n aria-label=\"Edit assignee\"\n size=\"small\"\n onClick={() => setShowUserPicker(true)}\n >\n <EditTwoTone fontSize=\"inherit\" />\n </IconButton>\n </div>\n )\n\n return (\n <Stack\n direction={'row'}\n alignItems={'center'}\n justifyContent={'space-between'}\n spacing={1}\n onMouseOver={() => {\n setIsHoveringOnCell(true)\n }}\n onMouseLeave={() => {\n setIsHoveringOnCell(false)\n }}\n >\n <span style={{ overflow: 'hidden' }}>{assigneeDisplay}</span>\n {isHoveringOnCell && canEdit && editButton}\n {editDialog}\n </Stack>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;AAiBA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,eAAY,eAAY,GAC1B,IAAe,EAAW,MAC1B,EAAE,2BAAwB,GAC1B,CAAC,GAAgB,KAAqB,EAAS,GAAM,EACrD,CAAC,GAAqB,KAA0B,EACpD,KAAuB,KACxB,EACK,CAAC,GAAkB,KAAuB,EAAS,GAAM,EAEzD,EAAE,aAAa,GAAoB,WAAW,MAClD,EAAsB,EACpB,UAAS,MAAS;AAChB,IAAa,mCAAmC,EAAM,SAAS,SAAS;IAE3E,CAAC,EAEA,IACF,kBAAC,GAAD;EACE,WAAU;EACV,IAAI;GAAE,UAAU;GAAG,WAAW;GAAU,OAAO;GAAY;YAC5D;EAEK,CAAA;AAIR,CADoB,EAAgB,EAAa,KAE/C,IAAkB,kBAAC,GAAD,EAAiB,aAAa,GAAuB,CAAA;CAGzE,IAAM,IAA0B,EAC9B,OAAO,MAAmC;AAKxC,EAJA,MAAM,EAAmB;GACvB,GAAG;GACH,qBAAqB;GACtB,CAAC,EACF,EAAkB,GAAM;IAE1B,CAAC,GAAc,EAAmB,CACnC,EAEK,IACJ,kBAAC,GAAD;EACE,OAAM;EACN,MAAM;EACN,SACE,kBAAC,GAAD;GAAO,KAAK;aAAZ;IACE,kBAAC,GAAD;KAAY,SAAQ;KAAQ,cAAA;eAAa;KAG5B,CAAA;IACb,kBAAC,GAAD;KAEE,cAAc;KACd,WAAU,MAAe,EAAuB,EAAY;KAC5D,YAAY,EAAY;KACxB,EAJK,EAAe,UAAU,CAI9B;IACD,EAAW,QAAQ,kBAAkB,mBACpC,kBAAC,GAAD;KAAO,UAAS;eAAhB;MAA0B;MAGxB,kBAAC,MAAD,EAAA,UAAA,CACE,kBAAC,MAAD,EAAA,UAAI,sIAIC,CAAA,EACL,kBAAC,MAAD,EAAA,UAAI,yEAGC,CAAA,CACF,EAAA,CAAA;;MAEC;;IAEJ;;EAEV,oBAAoB;GAClB,UAAU;GACV,SAAS;GACV;EACD,iBAAiB;AACf,KAAwB,KAAuB,KAAA,EAAU;;EAE3D,gBAAgB,EAAkB,GAAM;EACxC,CAAA;AAeJ,QACE,kBAAC,GAAD;EACE,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,SAAS;EACT,mBAAmB;AACjB,KAAoB,GAAK;;EAE3B,oBAAoB;AAClB,KAAoB,GAAM;;YAT9B;GAYE,kBAAC,QAAD;IAAM,OAAO,EAAE,UAAU,UAAU;cAAG;IAAuB,CAAA;GAC5D,KAAoB,KAzBvB,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD;IACE,cAAW;IACX,MAAK;IACL,eAAe,EAAkB,GAAK;cAEtC,kBAAC,GAAD,EAAa,UAAS,WAAY,CAAA;IACvB,CAAA,EACT,CAAA;GAkBH;GACK"}
1
+ {"version":3,"file":"MetadataTasksTableAssigneeCell.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.tsx"],"sourcesContent":["import { ConfirmationDialog } from '@/components/ConfirmationDialog'\nimport UserOrTeamBadge from '@/components/UserOrTeamBadge/UserOrTeamBadge'\nimport UserSearchBox from '@/components/UserSearchBox/UserSearchBox'\nimport { displayToast } from '@/index'\nimport { useUpdateCurationTask } from '@/synapse-queries/curation/task/useCurationTask'\nimport { EditTwoTone } from '@mui/icons-material'\nimport { Alert, Box, IconButton, Stack, Typography } from '@mui/material'\nimport { TaskBundle } from '@sage-bionetworks/synapse-client'\nimport { TYPE_FILTER } from '@sage-bionetworks/synapse-types'\nimport { useCallback, useState } from 'react'\nimport taskHasAssignee from '../utils/taskHasAssignee'\n\nexport type MetadataTasksTableAssigneeCellProps = {\n taskBundle: TaskBundle\n canEdit: boolean\n}\n\nexport default function MetadataTasksTableAssigneeCell(\n props: MetadataTasksTableAssigneeCellProps,\n) {\n const { taskBundle, canEdit } = props\n const curationTask = taskBundle.task!\n const { assigneePrincipalId } = curationTask\n const [showUserPicker, setShowUserPicker] = useState(false)\n const [selectedPrincipalId, setSelectedPrincipalId] = useState<string | null>(\n assigneePrincipalId ?? null,\n )\n const [isHoveringOnCell, setIsHoveringOnCell] = useState(false)\n\n const { mutateAsync: updateCurationTask, isPending: updateTaskIsPending } =\n useUpdateCurationTask({\n onError: error => {\n displayToast('Error updating task assignee: ' + error.message, 'danger')\n },\n })\n\n let assigneeDisplay = (\n <Box\n component=\"span\"\n sx={{ flexGrow: 1, fontStyle: 'italic', color: 'grey.700' }}\n >\n Unassigned\n </Box>\n )\n\n const hasAssignee = taskHasAssignee(curationTask)\n if (hasAssignee) {\n assigneeDisplay = <UserOrTeamBadge principalId={assigneePrincipalId} />\n }\n\n const onConfirmUpdateAssignee = useCallback(\n async (assigneeId: string | undefined) => {\n await updateCurationTask({\n ...curationTask,\n assigneePrincipalId: assigneeId,\n })\n setShowUserPicker(false)\n },\n [curationTask, updateCurationTask],\n )\n\n const editDialog = (\n <ConfirmationDialog\n title=\"Set Assignee\"\n open={showUserPicker}\n content={\n <Stack gap={2}>\n <Typography variant=\"body1\" gutterBottom>\n Assign this task to a team or an individual user. All members of a\n team will be able to collaborate in the same Curator session.\n </Typography>\n <UserSearchBox\n key={showUserPicker.toString()}\n defaultValue={assigneePrincipalId}\n onChange={principalId => setSelectedPrincipalId(principalId)}\n typeFilter={TYPE_FILTER.ALL}\n />\n {taskBundle.status?.executionDetails?.activeSessionId && (\n <Alert severity=\"warning\">\n This task has an active Curator session. If you change the\n assignee, these effects could happen:\n <ul>\n <li>\n Current assignee(s) may lose access to the session, unsaved\n changes will be lost, and they may not be able to complete\n their work.\n </li>\n <li>\n New assignee(s) may not have permission to access the current\n session\n </li>\n </ul>\n To avoid these issues, a data manager should create a new task.\n </Alert>\n )}\n </Stack>\n }\n confirmButtonProps={{\n children: 'Save',\n loading: updateTaskIsPending,\n }}\n onConfirm={() => {\n onConfirmUpdateAssignee(selectedPrincipalId ?? undefined)\n }}\n onCancel={() => setShowUserPicker(false)}\n />\n )\n\n const editButton = (\n <div>\n <IconButton\n aria-label=\"Edit assignee\"\n size=\"small\"\n onClick={() => setShowUserPicker(true)}\n >\n <EditTwoTone fontSize=\"inherit\" />\n </IconButton>\n </div>\n )\n\n return (\n <Stack\n direction={'row'}\n alignItems={'center'}\n justifyContent={'space-between'}\n spacing={1}\n onMouseOver={() => {\n setIsHoveringOnCell(true)\n }}\n onMouseLeave={() => {\n setIsHoveringOnCell(false)\n }}\n >\n <span style={{ overflow: 'hidden' }}>{assigneeDisplay}</span>\n {isHoveringOnCell && canEdit && editButton}\n {editDialog}\n </Stack>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;AAiBA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,eAAY,eAAY,GAC1B,IAAe,EAAW,MAC1B,EAAE,2BAAwB,GAC1B,CAAC,GAAgB,KAAqB,EAAS,GAAM,EACrD,CAAC,GAAqB,KAA0B,EACpD,KAAuB,KACxB,EACK,CAAC,GAAkB,KAAuB,EAAS,GAAM,EAEzD,EAAE,aAAa,GAAoB,WAAW,MAClD,EAAsB,EACpB,UAAS,MAAS;AAChB,IAAa,mCAAmC,EAAM,SAAS,SAAS;IAE3E,CAAC,EAEA,IACF,kBAAC,GAAD;EACE,WAAU;EACV,IAAI;GAAE,UAAU;GAAG,WAAW;GAAU,OAAO;GAAY;YAC5D;EAEK,CAAA;AAIR,CADoB,EAAgB,EAChC,KACF,IAAkB,kBAAC,GAAD,EAAiB,aAAa,GAAuB,CAAA;CAGzE,IAAM,IAA0B,EAC9B,OAAO,MAAmC;AAKxC,EAJA,MAAM,EAAmB;GACvB,GAAG;GACH,qBAAqB;GACtB,CAAC,EACF,EAAkB,GAAM;IAE1B,CAAC,GAAc,EAAmB,CACnC,EAEK,IACJ,kBAAC,GAAD;EACE,OAAM;EACN,MAAM;EACN,SACE,kBAAC,GAAD;GAAO,KAAK;aAAZ;IACE,kBAAC,GAAD;KAAY,SAAQ;KAAQ,cAAA;eAAa;KAG5B,CAAA;IACb,kBAAC,GAAD;KAEE,cAAc;KACd,WAAU,MAAe,EAAuB,EAAY;KAC5D,YAAY,EAAY;KACxB,EAJK,EAAe,UAAU,CAI9B;IACD,EAAW,QAAQ,kBAAkB,mBACpC,kBAAC,GAAD;KAAO,UAAS;eAAhB;MAA0B;MAGxB,kBAAC,MAAD,EAAA,UAAA,CACE,kBAAC,MAAD,EAAA,UAAI,sIAIC,CAAA,EACL,kBAAC,MAAD,EAAA,UAAI,yEAGC,CAAA,CACF,EAAA,CAAA;;MAEC;;IAEJ;;EAEV,oBAAoB;GAClB,UAAU;GACV,SAAS;GACV;EACD,iBAAiB;AACf,KAAwB,KAAuB,KAAA,EAAU;;EAE3D,gBAAgB,EAAkB,GAAM;EACxC,CAAA;AAeJ,QACE,kBAAC,GAAD;EACE,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,SAAS;EACT,mBAAmB;AACjB,KAAoB,GAAK;;EAE3B,oBAAoB;AAClB,KAAoB,GAAM;;YAT9B;GAYE,kBAAC,QAAD;IAAM,OAAO,EAAE,UAAU,UAAU;cAAG;IAAuB,CAAA;GAC5D,KAAoB,KAzBvB,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD;IACE,cAAW;IACX,MAAK;IACL,eAAe,EAAkB,GAAK;cAEtC,kBAAC,GAAD,EAAa,UAAS,WAAY,CAAA;IACvB,CAAA,EACT,CAiB4B;GAC/B;GACK"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGetOrCreateGridSessionForSource.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.ts"],"sourcesContent":["import { getLatestGridSessionForSource } from '@/features/entity/metadata-task/utils/getLatestGridSessionForSource'\nimport { useCreateGridSession } from '@/synapse-queries/grid/useGridSession'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n CreateGridRequest,\n GridSession,\n SynapseClientError,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, useQueryClient } from '@tanstack/react-query'\n\n/**\n * Given a source ID, retrieve the latest grid session owned by the user that uses that source. If no grid session\n * exists, a new one is created.\n * @deprecated Functionality to retrieve grid sessions has been replaced by tasks. This hook only remains to enable a legacy\n * scenario that will be removed in the future.\n */\nexport default function useGetOrCreateGridSessionForSource_legacy() {\n const queryClient = useQueryClient()\n const synapseContext = useSynapseContext()\n\n const { mutateAsync: createGridSession } = useCreateGridSession()\n\n return useMutation<\n GridSession,\n SynapseClientError,\n { sourceId: string; createRequest: CreateGridRequest }\n >({\n mutationFn: async ({ sourceId, createRequest }) => {\n const maybeGridSession = await getLatestGridSessionForSource(sourceId, {\n queryClient,\n synapseContext,\n })\n\n if (maybeGridSession != null) {\n return maybeGridSession\n }\n return (await createGridSession(createRequest)).gridSession!\n },\n })\n}\n"],"mappings":";;;;;AAgBA,SAAwB,IAA4C;CAClE,IAAM,IAAc,GAAgB,EAC9B,IAAiB,GAAmB,EAEpC,EAAE,aAAa,MAAsB,GAAsB;AAEjE,QAAO,EAIL,EACA,YAAY,OAAO,EAAE,aAAU,uBACJ,MAAM,EAA8B,GAAU;EACrE;EACA;EACD,CAAC,KAKM,MAAM,EAAkB,EAAc,EAAE,aAEnD,CAAC"}
1
+ {"version":3,"file":"useGetOrCreateGridSessionForSource.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.ts"],"sourcesContent":["import { getLatestGridSessionForSource } from '@/features/entity/metadata-task/utils/getLatestGridSessionForSource'\nimport { useCreateGridSession } from '@/synapse-queries/grid/useGridSession'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n CreateGridRequest,\n GridSession,\n SynapseClientError,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, useQueryClient } from '@tanstack/react-query'\n\n/**\n * Given a source ID, retrieve the latest grid session owned by the user that uses that source. If no grid session\n * exists, a new one is created.\n * @deprecated Functionality to retrieve grid sessions has been replaced by tasks. This hook only remains to enable a legacy\n * scenario that will be removed in the future.\n */\nexport default function useGetOrCreateGridSessionForSource_legacy() {\n const queryClient = useQueryClient()\n const synapseContext = useSynapseContext()\n\n const { mutateAsync: createGridSession } = useCreateGridSession()\n\n return useMutation<\n GridSession,\n SynapseClientError,\n { sourceId: string; createRequest: CreateGridRequest }\n >({\n mutationFn: async ({ sourceId, createRequest }) => {\n const maybeGridSession = await getLatestGridSessionForSource(sourceId, {\n queryClient,\n synapseContext,\n })\n\n if (maybeGridSession != null) {\n return maybeGridSession\n }\n return (await createGridSession(createRequest)).gridSession!\n },\n })\n}\n"],"mappings":";;;;;AAgBA,SAAwB,IAA4C;CAClE,IAAM,IAAc,GAAgB,EAC9B,IAAiB,GAAmB,EAEpC,EAAE,aAAa,MAAsB,GAAsB;AAEjE,QAAO,EAIL,EACA,YAAY,OAAO,EAAE,aAAU,uBAMzB,MAL2B,EAA8B,GAAU;EACrE;EACA;EACD,CAAC,KAKM,MAAM,EAAkB,EAAc,EAAE,aAEnD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGridSessionForCurationTask.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/hooks/useGridSessionForCurationTask.ts"],"sourcesContent":["import { useUpdateCurationTaskStatus } from '@/synapse-queries/curation/task/useCurationTask'\nimport {\n getGridSessionQuery,\n useCreateGridSession,\n useDeleteGridSession,\n} from '@/synapse-queries/grid/useGridSession'\nimport { useSynapseContext } from '@/utils'\nimport {\n GridSession,\n SynapseClientError,\n TaskBundle,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, useQueryClient } from '@tanstack/react-query'\nimport { getCreateGridRequestForMetadataTask } from '../utils/getCreateGridRequestForMetadataTask'\nimport taskHasAssignee from '../utils/taskHasAssignee'\n\nexport type UseGridSessionForCurationTaskResult = {\n gridSession: GridSession\n gridSessionOwnerMatchesTaskAssignee: boolean\n}\n\n/**\n * A hook to get or create a GridSession for a given CurationTask. If an appropriate GridSession exists, it will be returned.\n * If not, a new GridSession will be created based on the CurationTask's properties.\n *\n * @returns A mutation object with a function to get or create a GridSession for a CurationTask. The response will also indicate\n * if the GridSession owner matches the task assignee (if there is one).\n * @throws SynapseClientError with status 403 if the user does not have permission to access an existing GridSession\n */\nexport default function useGridSessionForCurationTask() {\n const { mutateAsync: createGridSession } = useCreateGridSession()\n const { mutateAsync: updateCurationTaskStatus } =\n useUpdateCurationTaskStatus()\n const { mutateAsync: deleteGridSession } = useDeleteGridSession()\n\n const synapseContext = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useMutation<\n UseGridSessionForCurationTaskResult,\n SynapseClientError,\n TaskBundle\n >({\n mutationFn: async curationTaskBundle => {\n const { task, status } = curationTaskBundle\n if (!task || !status) {\n throw new Error('CurationTaskBundle is missing task or status')\n }\n\n const hasAssignee = taskHasAssignee(task)\n\n const gridSessionId = status?.executionDetails?.activeSessionId\n if (gridSessionId) {\n try {\n // Verify the session is still active before returning it\n const gridSession = await queryClient.fetchQuery({\n ...getGridSessionQuery(gridSessionId, {\n ...synapseContext,\n queryClient,\n }),\n staleTime: 0,\n })\n\n const assigneeMatchesGridSessionOwner =\n hasAssignee &&\n gridSession.ownerPrincipalId == task.assigneePrincipalId\n\n return {\n gridSession,\n gridSessionOwnerMatchesTaskAssignee:\n assigneeMatchesGridSessionOwner,\n }\n } catch (e) {\n if (e instanceof SynapseClientError && e.status === 404) {\n // Session not found, will create a new one\n } else {\n throw e\n }\n }\n }\n // Create a session and link it to the task\n const taskProperties = task.taskProperties\n if (taskProperties == null) {\n throw new Error('CurationTask is missing taskProperties')\n }\n\n const createGridRequest = getCreateGridRequestForMetadataTask(task)\n const createGridResponse = await createGridSession(createGridRequest)\n const gridSession = createGridResponse.gridSession!\n\n // Associate the new session with the task\n try {\n await updateCurationTaskStatus({\n ...status,\n executionDetails: {\n ...status.executionDetails,\n activeSessionId: gridSession.sessionId!,\n concreteType:\n 'org.sagebionetworks.repo.model.curation.execution.GridExecutionDetails',\n },\n })\n } catch (e) {\n if (e instanceof SynapseClientError && e.status === 412) {\n // etag mismatch -- possible race condition.\n // Delete the session we just created to avoid orphaned sessions, and throw an error to notify the user that they may need to refresh and try again.\n await deleteGridSession(gridSession.sessionId!)\n throw new Error(\n 'Failed to link Grid session to Curation Task. The task was updated since it was last retrieved. Please refresh and try again.',\n )\n } else {\n // Rethrow any other error\n throw e\n }\n }\n\n // Since we just created the session, the user must have access, and the owner must match the assignee (if there is one).\n return {\n gridSession,\n gridSessionOwnerMatchesTaskAssignee: hasAssignee,\n }\n },\n })\n}\n"],"mappings":";;;;;;;;;AA6BA,SAAwB,IAAgC;CACtD,IAAM,EAAE,aAAa,MAAsB,GAAsB,EAC3D,EAAE,aAAa,MACnB,GAA6B,EACzB,EAAE,aAAa,MAAsB,GAAsB,EAE3D,IAAiB,GAAmB,EACpC,IAAc,GAAgB;AAEpC,QAAO,EAIL,EACA,YAAY,OAAM,MAAsB;EACtC,IAAM,EAAE,SAAM,cAAW;AACzB,MAAI,CAAC,KAAQ,CAAC,EACZ,OAAU,MAAM,+CAA+C;EAGjE,IAAM,IAAc,EAAgB,EAAK,EAEnC,IAAgB,GAAQ,kBAAkB;AAChD,MAAI,EACF,KAAI;GAEF,IAAM,IAAc,MAAM,EAAY,WAAW;IAC/C,GAAG,EAAoB,GAAe;KACpC,GAAG;KACH;KACD,CAAC;IACF,WAAW;IACZ,CAAC;AAMF,UAAO;IACL;IACA,qCALA,KACA,EAAY,oBAAoB,EAAK;IAMtC;WACM,GAAG;AACV,OAAI,eAAa,KAAsB,EAAE,WAAW,KAGlD,OAAM;;AAMZ,MADuB,EAAK,kBACN,KACpB,OAAU,MAAM,yCAAyC;EAK3D,IAAM,KADqB,MAAM,EADP,EAAoC,EAAK,CACE,EAC9B;AAGvC,MAAI;AACF,SAAM,EAAyB;IAC7B,GAAG;IACH,kBAAkB;KAChB,GAAG,EAAO;KACV,iBAAiB,EAAY;KAC7B,cACE;KACH;IACF,CAAC;WACK,GAAG;AAUR,SATE,aAAa,KAAsB,EAAE,WAAW,OAGlD,MAAM,EAAkB,EAAY,UAAW,EACrC,MACR,gIACD,IAGK;;AAKV,SAAO;GACL;GACA,qCAAqC;GACtC;IAEJ,CAAC"}
1
+ {"version":3,"file":"useGridSessionForCurationTask.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/hooks/useGridSessionForCurationTask.ts"],"sourcesContent":["import { useUpdateCurationTaskStatus } from '@/synapse-queries/curation/task/useCurationTask'\nimport {\n getGridSessionQuery,\n useCreateGridSession,\n useDeleteGridSession,\n} from '@/synapse-queries/grid/useGridSession'\nimport { useSynapseContext } from '@/utils'\nimport {\n GridSession,\n SynapseClientError,\n TaskBundle,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, useQueryClient } from '@tanstack/react-query'\nimport { getCreateGridRequestForMetadataTask } from '../utils/getCreateGridRequestForMetadataTask'\nimport taskHasAssignee from '../utils/taskHasAssignee'\n\nexport type UseGridSessionForCurationTaskResult = {\n gridSession: GridSession\n gridSessionOwnerMatchesTaskAssignee: boolean\n}\n\n/**\n * A hook to get or create a GridSession for a given CurationTask. If an appropriate GridSession exists, it will be returned.\n * If not, a new GridSession will be created based on the CurationTask's properties.\n *\n * @returns A mutation object with a function to get or create a GridSession for a CurationTask. The response will also indicate\n * if the GridSession owner matches the task assignee (if there is one).\n * @throws SynapseClientError with status 403 if the user does not have permission to access an existing GridSession\n */\nexport default function useGridSessionForCurationTask() {\n const { mutateAsync: createGridSession } = useCreateGridSession()\n const { mutateAsync: updateCurationTaskStatus } =\n useUpdateCurationTaskStatus()\n const { mutateAsync: deleteGridSession } = useDeleteGridSession()\n\n const synapseContext = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useMutation<\n UseGridSessionForCurationTaskResult,\n SynapseClientError,\n TaskBundle\n >({\n mutationFn: async curationTaskBundle => {\n const { task, status } = curationTaskBundle\n if (!task || !status) {\n throw new Error('CurationTaskBundle is missing task or status')\n }\n\n const hasAssignee = taskHasAssignee(task)\n\n const gridSessionId = status?.executionDetails?.activeSessionId\n if (gridSessionId) {\n try {\n // Verify the session is still active before returning it\n const gridSession = await queryClient.fetchQuery({\n ...getGridSessionQuery(gridSessionId, {\n ...synapseContext,\n queryClient,\n }),\n staleTime: 0,\n })\n\n const assigneeMatchesGridSessionOwner =\n hasAssignee &&\n gridSession.ownerPrincipalId == task.assigneePrincipalId\n\n return {\n gridSession,\n gridSessionOwnerMatchesTaskAssignee:\n assigneeMatchesGridSessionOwner,\n }\n } catch (e) {\n if (e instanceof SynapseClientError && e.status === 404) {\n // Session not found, will create a new one\n } else {\n throw e\n }\n }\n }\n // Create a session and link it to the task\n const taskProperties = task.taskProperties\n if (taskProperties == null) {\n throw new Error('CurationTask is missing taskProperties')\n }\n\n const createGridRequest = getCreateGridRequestForMetadataTask(task)\n const createGridResponse = await createGridSession(createGridRequest)\n const gridSession = createGridResponse.gridSession!\n\n // Associate the new session with the task\n try {\n await updateCurationTaskStatus({\n ...status,\n executionDetails: {\n ...status.executionDetails,\n activeSessionId: gridSession.sessionId!,\n concreteType:\n 'org.sagebionetworks.repo.model.curation.execution.GridExecutionDetails',\n },\n })\n } catch (e) {\n if (e instanceof SynapseClientError && e.status === 412) {\n // etag mismatch -- possible race condition.\n // Delete the session we just created to avoid orphaned sessions, and throw an error to notify the user that they may need to refresh and try again.\n await deleteGridSession(gridSession.sessionId!)\n throw new Error(\n 'Failed to link Grid session to Curation Task. The task was updated since it was last retrieved. Please refresh and try again.',\n )\n } else {\n // Rethrow any other error\n throw e\n }\n }\n\n // Since we just created the session, the user must have access, and the owner must match the assignee (if there is one).\n return {\n gridSession,\n gridSessionOwnerMatchesTaskAssignee: hasAssignee,\n }\n },\n })\n}\n"],"mappings":";;;;;;;;;AA6BA,SAAwB,IAAgC;CACtD,IAAM,EAAE,aAAa,MAAsB,GAAsB,EAC3D,EAAE,aAAa,MACnB,GAA6B,EACzB,EAAE,aAAa,MAAsB,GAAsB,EAE3D,IAAiB,GAAmB,EACpC,IAAc,GAAgB;AAEpC,QAAO,EAIL,EACA,YAAY,OAAM,MAAsB;EACtC,IAAM,EAAE,SAAM,cAAW;AACzB,MAAI,CAAC,KAAQ,CAAC,EACZ,OAAU,MAAM,+CAA+C;EAGjE,IAAM,IAAc,EAAgB,EAAK,EAEnC,IAAgB,GAAQ,kBAAkB;AAChD,MAAI,EACF,KAAI;GAEF,IAAM,IAAc,MAAM,EAAY,WAAW;IAC/C,GAAG,EAAoB,GAAe;KACpC,GAAG;KACH;KACD,CAAC;IACF,WAAW;IACZ,CAAC;AAMF,UAAO;IACL;IACA,qCALA,KACA,EAAY,oBAAoB,EAAK;IAMtC;WACM,GAAG;AACV,OAAI,eAAa,KAAsB,EAAE,WAAW,KAGlD,OAAM;;AAMZ,MADuB,EAAK,kBACN,KACpB,OAAU,MAAM,yCAAyC;EAK3D,IAAM,KAAc,MADa,EADP,EAAoC,EACX,CAAkB,EAC9B;AAGvC,MAAI;AACF,SAAM,EAAyB;IAC7B,GAAG;IACH,kBAAkB;KAChB,GAAG,EAAO;KACV,iBAAiB,EAAY;KAC7B,cACE;KACH;IACF,CAAC;WACK,GAAG;AAUR,SATE,aAAa,KAAsB,EAAE,WAAW,OAGlD,MAAM,EAAkB,EAAY,UAAW,EACrC,MACR,gIACD,IAGK;;AAKV,SAAO;GACL;GACA,qCAAqC;GACtC;IAEJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGridSessionForCurationTask_legacy.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.ts"],"sourcesContent":["import {\n CurationTask,\n GridSession,\n SynapseClientError,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation } from '@tanstack/react-query'\nimport { getCreateGridRequestForMetadataTask } from '../utils/getCreateGridRequestForMetadataTask'\nimport { getGridSourceIdForTask } from '../utils/getGridSourceIdForTask'\nimport useGetOrCreateGridSessionForSource from './useGetOrCreateGridSessionForSource'\n\n/**\n * A hook to get or create a GridSession for an unassigned CurationTask. The session will be owned by the calling user.\n *\n * @returns A mutation object with a function to get or create a GridSession for a CurationTask.\n * @deprecated This functionality is preserved to ensure users are not blocked from doing work, but enables a critical\n * data loss scenario, so we must aim to remove it.\n */\nexport default function useGridSessionForCurationTask_legacy() {\n const { mutateAsync: getOrCreateGridSession } =\n useGetOrCreateGridSessionForSource()\n\n return useMutation<\n GridSession,\n SynapseClientError,\n { curationTask: CurationTask }\n >({\n mutationFn: async ({ curationTask }) => {\n const gridSourceId = getGridSourceIdForTask(curationTask)\n\n const createGridRequest =\n getCreateGridRequestForMetadataTask(curationTask)\n return await getOrCreateGridSession({\n sourceId: gridSourceId,\n createRequest: createGridRequest,\n })\n },\n })\n}\n"],"mappings":";;;;;AAiBA,SAAwB,IAAuC;CAC7D,IAAM,EAAE,aAAa,MACnB,GAAoC;AAEtC,QAAO,EAIL,EACA,YAAY,OAAO,EAAE,sBAKZ,MAAM,EAAuB;EAClC,UALmB,EAAuB,EAAa;EAMvD,eAHA,EAAoC,EAAa;EAIlD,CAAC,EAEL,CAAC"}
1
+ {"version":3,"file":"useGridSessionForCurationTask_legacy.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.ts"],"sourcesContent":["import {\n CurationTask,\n GridSession,\n SynapseClientError,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation } from '@tanstack/react-query'\nimport { getCreateGridRequestForMetadataTask } from '../utils/getCreateGridRequestForMetadataTask'\nimport { getGridSourceIdForTask } from '../utils/getGridSourceIdForTask'\nimport useGetOrCreateGridSessionForSource from './useGetOrCreateGridSessionForSource'\n\n/**\n * A hook to get or create a GridSession for an unassigned CurationTask. The session will be owned by the calling user.\n *\n * @returns A mutation object with a function to get or create a GridSession for a CurationTask.\n * @deprecated This functionality is preserved to ensure users are not blocked from doing work, but enables a critical\n * data loss scenario, so we must aim to remove it.\n */\nexport default function useGridSessionForCurationTask_legacy() {\n const { mutateAsync: getOrCreateGridSession } =\n useGetOrCreateGridSessionForSource()\n\n return useMutation<\n GridSession,\n SynapseClientError,\n { curationTask: CurationTask }\n >({\n mutationFn: async ({ curationTask }) => {\n const gridSourceId = getGridSourceIdForTask(curationTask)\n\n const createGridRequest =\n getCreateGridRequestForMetadataTask(curationTask)\n return await getOrCreateGridSession({\n sourceId: gridSourceId,\n createRequest: createGridRequest,\n })\n },\n })\n}\n"],"mappings":";;;;;AAiBA,SAAwB,IAAuC;CAC7D,IAAM,EAAE,aAAa,MACnB,GAAoC;AAEtC,QAAO,EAIL,EACA,YAAY,OAAO,EAAE,sBAKZ,MAAM,EAAuB;EAClC,UALmB,EAAuB,EAKhC;EACV,eAHA,EAAoC,EAGrB;EAChB,CAAC,EAEL,CAAC"}
@@ -3,7 +3,7 @@ import "../../../../synapse-queries/index.js";
3
3
  import { formatDate as t } from "../../../../utils/functions/DateFormatter.js";
4
4
  import n from "../../../../components/TanStackTable/ColumnHeader.js";
5
5
  import { getLinkToEntityPage as r } from "../../../../utils/functions/getSynapseWebClientLink.js";
6
- import { useGetCurationTasksByProjectInfinite as i } from "../../../../synapse-queries/curation/task/useCurationTask.js";
6
+ import { useGetCurationTasksInfinite as i } from "../../../../synapse-queries/curation/task/useCurationTask.js";
7
7
  import { getGridSourceIdForTask as a } from "../utils/getGridSourceIdForTask.js";
8
8
  import o from "../components/MetadataTaskTableActionCell.js";
9
9
  import s from "../components/MetadataTasksTableAssigneeCell.js";
@@ -1 +1 @@
1
- {"version":3,"file":"useMetadataTaskTable.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/hooks/useMetadataTaskTable.tsx"],"sourcesContent":["import ColumnHeader from '@/components/TanStackTable/ColumnHeader'\nimport { getGridSourceIdForTask } from '@/features/entity/metadata-task/utils/getGridSourceIdForTask'\nimport { useGetCurationTasksByProjectInfinite } from '@/synapse-queries/curation/task/useCurationTask'\nimport { useGetEntityBundle } from '@/synapse-queries/index'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { getLinkToEntityPage } from '@/utils/functions/getSynapseWebClientLink'\nimport { Link } from '@mui/material'\nimport {\n ListCurationTaskRequest,\n TaskBundle,\n} from '@sage-bionetworks/synapse-client'\nimport {\n createColumnHelper,\n getCoreRowModel,\n Table,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport { useMemo } from 'react'\nimport MetadataTaskTableActionCell from '../components/MetadataTaskTableActionCell'\nimport MetadataTasksTableAssigneeCell from '../components/MetadataTasksTableAssigneeCell'\n\nfunction getColumns(canEdit: boolean) {\n const columnHelper = createColumnHelper<TaskBundle>()\n return [\n columnHelper.accessor('task.dataType', {\n header: props => <ColumnHeader {...props} title={'Task'} />,\n cell: ({ row, getValue }) => {\n const entityId = getGridSourceIdForTask(row.original.task!)\n return <Link href={getLinkToEntityPage(entityId)}>{getValue()}</Link>\n },\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('task.instructions', {\n header: props => <ColumnHeader {...props} title={'Instructions'} />,\n cell: ({ getValue }) => <p>{getValue()}</p>,\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('task.assigneePrincipalId', {\n header: props => <ColumnHeader {...props} title={'Assignee'} />,\n cell: ({ row }) => (\n <MetadataTasksTableAssigneeCell\n taskBundle={row.original}\n canEdit={canEdit}\n />\n ),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('task.modifiedOn', {\n header: props => <ColumnHeader {...props} title={'Modified On'} />,\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.display({\n id: 'actions',\n header: props => <ColumnHeader {...props} title={'Actions'} />,\n cell: ({ row }) => (\n <MetadataTaskTableActionCell\n taskBundle={row.original}\n canEdit={canEdit}\n />\n ),\n }),\n ]\n}\n\ntype UseMetadataTaskTableOptions = {\n listCurationTaskRequest: ListCurationTaskRequest\n}\n\n/**\n * Provides a table instance and loading states for displaying metadata curation tasks associated with a project.\n */\nexport function useMetadataTaskTable(opts: UseMetadataTaskTableOptions) {\n const { listCurationTaskRequest } = opts\n\n const {\n data,\n hasNextPage,\n fetchNextPage,\n isLoading: isLoadingTasks,\n isFetchingNextPage,\n } = useGetCurationTasksByProjectInfinite(listCurationTaskRequest)\n\n const { data: projectBundle, isLoading: isLoadingProjectBundle } =\n useGetEntityBundle(\n listCurationTaskRequest.projectId,\n undefined,\n { includePermissions: true },\n {\n enabled: !!listCurationTaskRequest.projectId,\n },\n )\n\n const canEditTasks = projectBundle?.permissions?.canEdit ?? false\n\n const tasks = useMemo(\n () => data?.pages.flatMap(page => page.bundlePage!) ?? [],\n [data],\n )\n\n const table: Table<TaskBundle> = useReactTable<TaskBundle>({\n data: tasks,\n columns: getColumns(canEditTasks),\n getRowId: row => String(row.task!.taskId!),\n getCoreRowModel: getCoreRowModel(),\n columnResizeMode: 'onChange',\n manualSorting: false,\n meta: {\n getWrapInExpandableTd: cell => cell.column.id === 'instructions',\n },\n })\n\n return {\n table,\n isLoading: isLoadingTasks || isLoadingProjectBundle,\n hasNextPage,\n fetchNextPage,\n isFetchingNextPage,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAsBA,SAAS,EAAW,GAAkB;CACpC,IAAM,IAAe,GAAgC;AACrD,QAAO;EACL,EAAa,SAAS,iBAAiB;GACrC,SAAQ,MAAS,kBAAC,GAAD;IAAc,GAAI;IAAO,OAAO;IAAU,CAAA;GAC3D,OAAO,EAAE,QAAK,kBAEL,kBAAC,GAAD;IAAM,MAAM,EADF,EAAuB,EAAI,SAAS,KAAM,CACX;cAAG,GAAU;IAAQ,CAAA;GAEvE,eAAe;GACf,oBAAoB;GACrB,CAAC;EACF,EAAa,SAAS,qBAAqB;GACzC,SAAQ,MAAS,kBAAC,GAAD;IAAc,GAAI;IAAO,OAAO;IAAkB,CAAA;GACnE,OAAO,EAAE,kBAAe,kBAAC,KAAD,EAAA,UAAI,GAAU,EAAK,CAAA;GAC3C,eAAe;GACf,oBAAoB;GACrB,CAAC;EACF,EAAa,SAAS,4BAA4B;GAChD,SAAQ,MAAS,kBAAC,GAAD;IAAc,GAAI;IAAO,OAAO;IAAc,CAAA;GAC/D,OAAO,EAAE,aACP,kBAAC,GAAD;IACE,YAAY,EAAI;IACP;IACT,CAAA;GAEJ,eAAe;GACf,oBAAoB;GACrB,CAAC;EACF,EAAa,SAAS,mBAAmB;GACvC,SAAQ,MAAS,kBAAC,GAAD;IAAc,GAAI;IAAO,OAAO;IAAiB,CAAA;GAClE,OAAO,EAAE,kBAAe,EAAW,EAAM,GAAU,CAAC,CAAC;GACrD,eAAe;GACf,oBAAoB;GACrB,CAAC;EACF,EAAa,QAAQ;GACnB,IAAI;GACJ,SAAQ,MAAS,kBAAC,GAAD;IAAc,GAAI;IAAO,OAAO;IAAa,CAAA;GAC9D,OAAO,EAAE,aACP,kBAAC,GAAD;IACE,YAAY,EAAI;IACP;IACT,CAAA;GAEL,CAAC;EACH;;AAUH,SAAgB,EAAqB,GAAmC;CACtE,IAAM,EAAE,+BAA4B,GAE9B,EACJ,SACA,gBACA,kBACA,WAAW,GACX,0BACE,EAAqC,EAAwB,EAE3D,EAAE,MAAM,GAAe,WAAW,MACtC,EACE,EAAwB,WACxB,KAAA,GACA,EAAE,oBAAoB,IAAM,EAC5B,EACE,SAAS,CAAC,CAAC,EAAwB,WACpC,CACF,EAEG,IAAe,GAAe,aAAa,WAAW;AAmB5D,QAAO;EACL,OAb+B,EAA0B;GACzD,MANY,QACN,GAAM,MAAM,SAAQ,MAAQ,EAAK,WAAY,IAAI,EAAE,EACzD,CAAC,EAAK,CACP;GAIC,SAAS,EAAW,EAAa;GACjC,WAAU,MAAO,OAAO,EAAI,KAAM,OAAQ;GAC1C,iBAAiB,GAAiB;GAClC,kBAAkB;GAClB,eAAe;GACf,MAAM,EACJ,wBAAuB,MAAQ,EAAK,OAAO,OAAO,gBACnD;GACF,CAAC;EAIA,WAAW,KAAkB;EAC7B;EACA;EACA;EACD"}
1
+ {"version":3,"file":"useMetadataTaskTable.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/hooks/useMetadataTaskTable.tsx"],"sourcesContent":["import ColumnHeader from '@/components/TanStackTable/ColumnHeader'\nimport { getGridSourceIdForTask } from '@/features/entity/metadata-task/utils/getGridSourceIdForTask'\nimport { useGetCurationTasksInfinite } from '@/synapse-queries/curation/task/useCurationTask'\nimport { useGetEntityBundle } from '@/synapse-queries/index'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { getLinkToEntityPage } from '@/utils/functions/getSynapseWebClientLink'\nimport { Link } from '@mui/material'\nimport {\n ListCurationTaskRequest,\n TaskBundle,\n} from '@sage-bionetworks/synapse-client'\nimport {\n createColumnHelper,\n getCoreRowModel,\n Table,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport { useMemo } from 'react'\nimport MetadataTaskTableActionCell from '../components/MetadataTaskTableActionCell'\nimport MetadataTasksTableAssigneeCell from '../components/MetadataTasksTableAssigneeCell'\n\nfunction getColumns(canEdit: boolean) {\n const columnHelper = createColumnHelper<TaskBundle>()\n return [\n columnHelper.accessor('task.dataType', {\n header: props => <ColumnHeader {...props} title={'Task'} />,\n cell: ({ row, getValue }) => {\n const entityId = getGridSourceIdForTask(row.original.task!)\n return <Link href={getLinkToEntityPage(entityId)}>{getValue()}</Link>\n },\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('task.instructions', {\n header: props => <ColumnHeader {...props} title={'Instructions'} />,\n cell: ({ getValue }) => <p>{getValue()}</p>,\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('task.assigneePrincipalId', {\n header: props => <ColumnHeader {...props} title={'Assignee'} />,\n cell: ({ row }) => (\n <MetadataTasksTableAssigneeCell\n taskBundle={row.original}\n canEdit={canEdit}\n />\n ),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('task.modifiedOn', {\n header: props => <ColumnHeader {...props} title={'Modified On'} />,\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.display({\n id: 'actions',\n header: props => <ColumnHeader {...props} title={'Actions'} />,\n cell: ({ row }) => (\n <MetadataTaskTableActionCell\n taskBundle={row.original}\n canEdit={canEdit}\n />\n ),\n }),\n ]\n}\n\ntype UseMetadataTaskTableOptions = {\n listCurationTaskRequest: ListCurationTaskRequest\n}\n\n/**\n * Provides a table instance and loading states for displaying metadata curation tasks associated with a project.\n */\nexport function useMetadataTaskTable(opts: UseMetadataTaskTableOptions) {\n const { listCurationTaskRequest } = opts\n\n const {\n data,\n hasNextPage,\n fetchNextPage,\n isLoading: isLoadingTasks,\n isFetchingNextPage,\n } = useGetCurationTasksInfinite(listCurationTaskRequest)\n\n const { data: projectBundle, isLoading: isLoadingProjectBundle } =\n useGetEntityBundle(\n listCurationTaskRequest.projectId,\n undefined,\n { includePermissions: true },\n {\n enabled: !!listCurationTaskRequest.projectId,\n },\n )\n\n const canEditTasks = projectBundle?.permissions?.canEdit ?? false\n\n const tasks = useMemo(\n () => data?.pages.flatMap(page => page.bundlePage!) ?? [],\n [data],\n )\n\n const table: Table<TaskBundle> = useReactTable<TaskBundle>({\n data: tasks,\n columns: getColumns(canEditTasks),\n getRowId: row => String(row.task!.taskId!),\n getCoreRowModel: getCoreRowModel(),\n columnResizeMode: 'onChange',\n manualSorting: false,\n meta: {\n getWrapInExpandableTd: cell => cell.column.id === 'instructions',\n },\n })\n\n return {\n table,\n isLoading: isLoadingTasks || isLoadingProjectBundle,\n hasNextPage,\n fetchNextPage,\n isFetchingNextPage,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAsBA,SAAS,EAAW,GAAkB;CACpC,IAAM,IAAe,GAAgC;AACrD,QAAO;EACL,EAAa,SAAS,iBAAiB;GACrC,SAAQ,MAAS,kBAAC,GAAD;IAAc,GAAI;IAAO,OAAO;IAAU,CAAA;GAC3D,OAAO,EAAE,QAAK,kBAEL,kBAAC,GAAD;IAAM,MAAM,EADF,EAAuB,EAAI,SAAS,KACd,CAAS;cAAG,GAAU;IAAQ,CAAA;GAEvE,eAAe;GACf,oBAAoB;GACrB,CAAC;EACF,EAAa,SAAS,qBAAqB;GACzC,SAAQ,MAAS,kBAAC,GAAD;IAAc,GAAI;IAAO,OAAO;IAAkB,CAAA;GACnE,OAAO,EAAE,kBAAe,kBAAC,KAAD,EAAA,UAAI,GAAU,EAAK,CAAA;GAC3C,eAAe;GACf,oBAAoB;GACrB,CAAC;EACF,EAAa,SAAS,4BAA4B;GAChD,SAAQ,MAAS,kBAAC,GAAD;IAAc,GAAI;IAAO,OAAO;IAAc,CAAA;GAC/D,OAAO,EAAE,aACP,kBAAC,GAAD;IACE,YAAY,EAAI;IACP;IACT,CAAA;GAEJ,eAAe;GACf,oBAAoB;GACrB,CAAC;EACF,EAAa,SAAS,mBAAmB;GACvC,SAAQ,MAAS,kBAAC,GAAD;IAAc,GAAI;IAAO,OAAO;IAAiB,CAAA;GAClE,OAAO,EAAE,kBAAe,EAAW,EAAM,GAAU,CAAC,CAAC;GACrD,eAAe;GACf,oBAAoB;GACrB,CAAC;EACF,EAAa,QAAQ;GACnB,IAAI;GACJ,SAAQ,MAAS,kBAAC,GAAD;IAAc,GAAI;IAAO,OAAO;IAAa,CAAA;GAC9D,OAAO,EAAE,aACP,kBAAC,GAAD;IACE,YAAY,EAAI;IACP;IACT,CAAA;GAEL,CAAC;EACH;;AAUH,SAAgB,EAAqB,GAAmC;CACtE,IAAM,EAAE,+BAA4B,GAE9B,EACJ,SACA,gBACA,kBACA,WAAW,GACX,0BACE,EAA4B,EAAwB,EAElD,EAAE,MAAM,GAAe,WAAW,MACtC,EACE,EAAwB,WACxB,KAAA,GACA,EAAE,oBAAoB,IAAM,EAC5B,EACE,SAAS,CAAC,CAAC,EAAwB,WACpC,CACF,EAEG,IAAe,GAAe,aAAa,WAAW;AAmB5D,QAAO;EACL,OAb+B,EAA0B;GACzD,MANY,QACN,GAAM,MAAM,SAAQ,MAAQ,EAAK,WAAY,IAAI,EAAE,EACzD,CAAC,EAAK,CAIA;GACN,SAAS,EAAW,EAAa;GACjC,WAAU,MAAO,OAAO,EAAI,KAAM,OAAQ;GAC1C,iBAAiB,GAAiB;GAClC,kBAAkB;GAClB,eAAe;GACf,MAAM,EACJ,wBAAuB,MAAQ,EAAK,OAAO,OAAO,gBACnD;GACF,CAGC;EACA,WAAW,KAAkB;EAC7B;EACA;EACA;EACD"}
@@ -0,0 +1,10 @@
1
+ import { CurationTask } from '@sage-bionetworks/synapse-client';
2
+ type UseOpenCuratorFromTaskButtonReturn = {
3
+ isLoading: boolean;
4
+ isPending: boolean;
5
+ hasPermission?: boolean;
6
+ onClick: () => void;
7
+ };
8
+ export default function useOpenCuratorFromTaskButton(curationTask: CurationTask): UseOpenCuratorFromTaskButtonReturn;
9
+ export {};
10
+ //# sourceMappingURL=useOpenCuratorButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOpenCuratorButton.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/hooks/useOpenCuratorButton.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EAGb,MAAM,kCAAkC,CAAA;AAUzC,KAAK,kCAAkC,GAAG;IACxC,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAOD,MAAM,CAAC,OAAO,UAAU,4BAA4B,CAClD,YAAY,EAAE,YAAY,GACzB,kCAAkC,CAgDpC"}
@@ -0,0 +1,37 @@
1
+ import { displayToast as e } from "../../../../components/ToastMessage/ToastMessage.js";
2
+ import { useGetEntityPermissions as t } from "../../../../synapse-queries/entity/useEntity.js";
3
+ import "../../../../synapse-queries/index.js";
4
+ import "../../../../components/index.js";
5
+ import { getLinkToGridSession as n } from "../../../../utils/functions/getSynapseWebClientLink.js";
6
+ import { OPEN_CURATOR_ERROR_TITLE as r, OPEN_CURATOR_UNAUTHORIZED_ERROR_MESSAGE as i } from "../utils/constants.js";
7
+ import { getGridSourceIdForTask as a } from "../utils/getGridSourceIdForTask.js";
8
+ import o from "./useGridSessionForCurationTask_legacy.js";
9
+ import { useCallback as s } from "react";
10
+ import { SynapseClientError as c } from "@sage-bionetworks/synapse-client";
11
+ //#region src/features/entity/metadata-task/hooks/useOpenCuratorButton.ts
12
+ function l(e, t) {
13
+ let r = n(e, t);
14
+ window.open(r, "_blank", "noopener");
15
+ }
16
+ function u(n) {
17
+ let { mutateAsync: u, isPending: d } = o(), { data: f, isLoading: p } = t(a(n)), m = f?.canView, h = s(async () => {
18
+ let t;
19
+ try {
20
+ t = await u({ curationTask: n }), l(t.sessionId, n.taskId);
21
+ } catch (t) {
22
+ t instanceof c && t.status === 403 ? (console.error(t), e(i, "danger", { title: r })) : (console.error("Error opening Curator for curation task", t), e(t instanceof Error ? t.message : String(t), "danger", { title: r }));
23
+ }
24
+ }, [n, u]);
25
+ return {
26
+ hasPermission: m,
27
+ isLoading: p,
28
+ isPending: d,
29
+ onClick: s(() => {
30
+ h();
31
+ }, [h])
32
+ };
33
+ }
34
+ //#endregion
35
+ export { u as default };
36
+
37
+ //# sourceMappingURL=useOpenCuratorButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOpenCuratorButton.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/hooks/useOpenCuratorButton.ts"],"sourcesContent":["import { displayToast } from '@/components'\nimport { useGetEntityPermissions } from '@/synapse-queries'\nimport {\n CurationTask,\n GridSession,\n SynapseClientError,\n} from '@sage-bionetworks/synapse-client'\nimport { useCallback } from 'react'\nimport {\n OPEN_CURATOR_ERROR_TITLE,\n OPEN_CURATOR_UNAUTHORIZED_ERROR_MESSAGE,\n} from '../utils/constants'\nimport { getGridSourceIdForTask } from '../utils/getGridSourceIdForTask'\nimport useGridSessionForCurationTask_legacy from './useGridSessionForCurationTask_legacy'\nimport { getLinkToGridSession } from '@/utils/functions/getSynapseWebClientLink'\n\ntype UseOpenCuratorFromTaskButtonReturn = {\n isLoading: boolean\n isPending: boolean\n hasPermission?: boolean\n onClick: () => void\n}\n\nfunction openGridSessionInNewWindow(gridSessionId: string, taskId: number) {\n const gridUrl = getLinkToGridSession(gridSessionId, taskId)\n window.open(gridUrl, '_blank', 'noopener')\n}\n\nexport default function useOpenCuratorFromTaskButton(\n curationTask: CurationTask,\n): UseOpenCuratorFromTaskButtonReturn {\n const {\n mutateAsync: getOrCreateLegacyGridSessionForUnassignedTask,\n isPending: openGridIsPending,\n } = useGridSessionForCurationTask_legacy()\n\n const gridSourceEntityId = getGridSourceIdForTask(curationTask)\n const {\n data: sourceEntityPermissions,\n isLoading: isLoadingEntityPermissions,\n } = useGetEntityPermissions(gridSourceEntityId)\n\n const hasPermission = sourceEntityPermissions?.canView\n\n const openNewOrExistingCuratorSession = useCallback(async () => {\n let gridSession: GridSession\n try {\n gridSession = await getOrCreateLegacyGridSessionForUnassignedTask({\n curationTask,\n })\n openGridSessionInNewWindow(gridSession.sessionId!, curationTask.taskId!)\n } catch (error) {\n if (error instanceof SynapseClientError && error.status === 403) {\n console.error(error)\n displayToast(OPEN_CURATOR_UNAUTHORIZED_ERROR_MESSAGE, 'danger', {\n title: OPEN_CURATOR_ERROR_TITLE,\n })\n } else {\n console.error('Error opening Curator for curation task', error)\n const errorMessage =\n error instanceof Error ? error.message : String(error)\n displayToast(errorMessage, 'danger', {\n title: OPEN_CURATOR_ERROR_TITLE,\n })\n }\n }\n }, [curationTask, getOrCreateLegacyGridSessionForUnassignedTask])\n\n const handleClickOpenCurator = useCallback(() => {\n void openNewOrExistingCuratorSession()\n }, [openNewOrExistingCuratorSession])\n\n return {\n hasPermission,\n isLoading: isLoadingEntityPermissions,\n isPending: openGridIsPending,\n onClick: handleClickOpenCurator,\n }\n}\n"],"mappings":";;;;;;;;;;;AAuBA,SAAS,EAA2B,GAAuB,GAAgB;CACzE,IAAM,IAAU,EAAqB,GAAe,EAAO;AAC3D,QAAO,KAAK,GAAS,UAAU,WAAW;;AAG5C,SAAwB,EACtB,GACoC;CACpC,IAAM,EACJ,aAAa,GACb,WAAW,MACT,GAAsC,EAGpC,EACJ,MAAM,GACN,WAAW,MACT,EAJuB,EAAuB,EAItB,CAAmB,EAEzC,IAAgB,GAAyB,SAEzC,IAAkC,EAAY,YAAY;EAC9D,IAAI;AACJ,MAAI;AAIF,GAHA,IAAc,MAAM,EAA8C,EAChE,iBACD,CAAC,EACF,EAA2B,EAAY,WAAY,EAAa,OAAQ;WACjE,GAAO;AACd,GAAI,aAAiB,KAAsB,EAAM,WAAW,OAC1D,QAAQ,MAAM,EAAM,EACpB,EAAa,GAAyC,UAAU,EAC9D,OAAO,GACR,CAAC,KAEF,QAAQ,MAAM,2CAA2C,EAAM,EAG/D,EADE,aAAiB,QAAQ,EAAM,UAAU,OAAO,EAAM,EAC7B,UAAU,EACnC,OAAO,GACR,CAAC;;IAGL,CAAC,GAAc,EAA8C,CAAC;AAMjE,QAAO;EACL;EACA,WAAW;EACX,WAAW;EACX,SAR6B,QAAkB;AAC1C,MAAiC;KACrC,CAAC,EAAgC,CAMzB;EACV"}
@@ -0,0 +1,5 @@
1
+ export declare const OPEN_CURATOR_ERROR_TITLE = "An error occurred while trying to open Curator";
2
+ export declare const OPEN_CURATOR_UNAUTHORIZED_ERROR_MESSAGE = "You don't have permission to view the existing Curator session for this task. It was likely created by another data contributor. A data manager should create a new task and assign it to you or your team.";
3
+ export declare const OPEN_CURATOR_TOOLTIP_TITLE = "Open Curator to edit metadata";
4
+ export declare const OPEN_CURATOR_NO_PERMISSION_ON_SOURCE_ERROR_MESSAGE = "You do not have permission to view the Working Copy";
5
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,mDACa,CAAA;AAClD,eAAO,MAAM,uCAAuC,gNAC2J,CAAA;AAE/M,eAAO,MAAM,0BAA0B,kCAAkC,CAAA;AACzE,eAAO,MAAM,kDAAkD,wDACR,CAAA"}
@@ -0,0 +1,6 @@
1
+ //#region src/features/entity/metadata-task/utils/constants.ts
2
+ var e = "An error occurred while trying to open Curator", t = "You don't have permission to view the existing Curator session for this task. It was likely created by another data contributor. A data manager should create a new task and assign it to you or your team.", n = "Open Curator to edit metadata", r = "You do not have permission to view the Working Copy";
3
+ //#endregion
4
+ export { e as OPEN_CURATOR_ERROR_TITLE, r as OPEN_CURATOR_NO_PERMISSION_ON_SOURCE_ERROR_MESSAGE, n as OPEN_CURATOR_TOOLTIP_TITLE, t as OPEN_CURATOR_UNAUTHORIZED_ERROR_MESSAGE };
5
+
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/utils/constants.ts"],"sourcesContent":["export const OPEN_CURATOR_ERROR_TITLE =\n 'An error occurred while trying to open Curator'\nexport const OPEN_CURATOR_UNAUTHORIZED_ERROR_MESSAGE =\n \"You don't have permission to view the existing Curator session for this task. It was likely created by another data contributor. A data manager should create a new task and assign it to you or your team.\"\n\nexport const OPEN_CURATOR_TOOLTIP_TITLE = 'Open Curator to edit metadata'\nexport const OPEN_CURATOR_NO_PERMISSION_ON_SOURCE_ERROR_MESSAGE =\n 'You do not have permission to view the Working Copy'\n"],"mappings":";AAAA,IAAa,IACX,kDACW,IACX,+MAEW,IAA6B,iCAC7B,IACX"}
@@ -1 +1 @@
1
- {"version":3,"file":"mockChallenge.js","names":[],"sources":["../../../src/mocks/challenge/mockChallenge.ts"],"sourcesContent":["import {\n Challenge,\n ChallengeTeam,\n ChallengeTeamPagedResults,\n ListWrapper,\n Team,\n TeamMember,\n TeamMembershipStatus,\n} from '@sage-bionetworks/synapse-types'\nimport { MOCK_USER_ID, mockUserGroupHeader } from '../user/mock_user_profile'\nimport {\n MOCK_CHALLENGE_PARTICIPANT_TEAM_ID,\n MOCK_TEAM_ID_2,\n MOCK_TEAM_ID_3,\n MOCK_TEAM_ID_4,\n MOCK_TEAM_ID_5,\n} from '../team/mockTeam'\n\nexport const MOCK_CHALLENGE_ID = '1234'\nexport const MOCK_CHALLENGE_PROJECT_ID = 'syn12345678'\nconst etag = 'f1b29c62-e987-4e69-9cec-198bf017a586'\n\nconst getRandomId = (len: number) => {\n const exp = Math.pow(10, len - 1)\n return Math.floor(Math.random() * 9 * exp + exp)\n}\n\nexport const mockChallenge: Challenge = {\n id: MOCK_CHALLENGE_ID,\n etag,\n projectId: MOCK_CHALLENGE_PROJECT_ID,\n participantTeamId: String(MOCK_CHALLENGE_PARTICIPANT_TEAM_ID),\n}\n\nexport const mockChallengeTeamMember: TeamMember = {\n teamId: String(MOCK_CHALLENGE_PARTICIPANT_TEAM_ID),\n member: mockUserGroupHeader,\n isAdmin: false,\n}\n\nexport const mockChallengeTeamMembershipStatus = (\n isMember: boolean = false,\n canJoin: boolean = true,\n): TeamMembershipStatus => {\n return {\n teamId: String(MOCK_CHALLENGE_PARTICIPANT_TEAM_ID),\n userId: MOCK_USER_ID.toString(),\n isMember,\n hasOpenInvitation: false,\n hasOpenRequest: false,\n canJoin,\n membershipApprovalRequired: false,\n hasUnmetAccessRequirement: false,\n canSendEmail: true,\n }\n}\n\nexport const mockChallengeTeam = (\n override?: Partial<ChallengeTeam>,\n): ChallengeTeam => {\n const id: string = getRandomId(6).toString()\n const teamId: string = getRandomId(6).toString()\n return {\n id,\n etag,\n challengeId: MOCK_CHALLENGE_ID,\n teamId,\n message: `Message for team ${teamId}`,\n ...override,\n }\n}\n\nexport const mockChallengeTeamResults = (): ChallengeTeamPagedResults => {\n const results: ChallengeTeam[] = []\n do {\n results.push(mockChallengeTeam())\n } while (results.length < 10)\n return {\n results,\n totalNumberOfResults: results.length,\n }\n}\n\nexport const mockTeamList = (teams: ChallengeTeam[]): ListWrapper<Team> => {\n const list: Team[] = teams.map((team: ChallengeTeam, index: number) => {\n const canPublicJoin: boolean = index % 2 === 0\n return {\n id: team.teamId,\n name: `Team ${team.teamId}`,\n description: `Description for team ${team.teamId}`,\n icon: '',\n canPublicJoin,\n etag,\n createdOn: '2023-05-25T14:24:28.840Z',\n modifiedOn: '',\n createdBy: '',\n modifiedBy: '',\n }\n })\n return {\n list,\n }\n}\n\nexport const mockRegisteredChallengeTeams: ChallengeTeam[] = [\n mockChallengeTeam({\n teamId: String(MOCK_TEAM_ID_2),\n challengeId: MOCK_CHALLENGE_ID,\n }),\n mockChallengeTeam({\n teamId: String(MOCK_TEAM_ID_3),\n challengeId: MOCK_CHALLENGE_ID,\n }),\n mockChallengeTeam({\n teamId: String(MOCK_TEAM_ID_4),\n challengeId: MOCK_CHALLENGE_ID,\n }),\n mockChallengeTeam({\n teamId: String(MOCK_TEAM_ID_5),\n challengeId: MOCK_CHALLENGE_ID,\n }),\n]\n"],"mappings":";;;AAkBA,IAAa,IAAoB,QACpB,IAA4B,eACnC,IAAO,wCAEP,KAAe,MAAgB;CACnC,IAAM,IAAe,OAAI,IAAM;AAC/B,QAAO,KAAK,MAAM,KAAK,QAAQ,GAAG,IAAI,IAAM,EAAI;GAGrC,IAA2B;CACtC,IAAI;CACJ;CACA,WAAW;CACX,mBAAmB,OAAO,EAAmC;CAC9D,EAEY,IAAsC;CACjD,QAAQ,OAAO,EAAmC;CAClD,QAAQ;CACR,SAAS;CACV,EAEY,KACX,IAAoB,IACpB,IAAmB,QAEZ;CACL,QAAQ,OAAO,EAAmC;CAClD,QAAA;CACA;CACA,mBAAmB;CACnB,gBAAgB;CAChB;CACA,4BAA4B;CAC5B,2BAA2B;CAC3B,cAAc;CACf,GAGU,KACX,MACkB;CAClB,IAAM,IAAa,EAAY,EAAE,CAAC,UAAU,EACtC,IAAiB,EAAY,EAAE,CAAC,UAAU;AAChD,QAAO;EACL;EACA;EACA,aAAa;EACb;EACA,SAAS,oBAAoB;EAC7B,GAAG;EACJ;GAGU,UAA4D;CACvE,IAAM,IAA2B,EAAE;AACnC;AACE,IAAQ,KAAK,GAAmB,CAAC;QAC1B,EAAQ,SAAS;AAC1B,QAAO;EACL;EACA,sBAAsB,EAAQ;EAC/B;GAGU,KAAgB,OAgBpB,EACL,MAhBmB,EAAM,KAAK,GAAqB,MAAkB;CACrE,IAAM,IAAyB,IAAQ,KAAM;AAC7C,QAAO;EACL,IAAI,EAAK;EACT,MAAM,QAAQ,EAAK;EACnB,aAAa,wBAAwB,EAAK;EAC1C,MAAM;EACN;EACA;EACA,WAAW;EACX,YAAY;EACZ,WAAW;EACX,YAAY;EACb;EACD,EAGD,GAGU,IAAgD;CAC3D,EAAkB;EAChB,QAAQ,OAAO,EAAe;EAC9B,aAAa;EACd,CAAC;CACF,EAAkB;EAChB,QAAQ,OAAO,EAAe;EAC9B,aAAa;EACd,CAAC;CACF,EAAkB;EAChB,QAAQ,OAAO,EAAe;EAC9B,aAAa;EACd,CAAC;CACF,EAAkB;EAChB,QAAQ,OAAO,EAAe;EAC9B,aAAa;EACd,CAAC;CACH"}
1
+ {"version":3,"file":"mockChallenge.js","names":[],"sources":["../../../src/mocks/challenge/mockChallenge.ts"],"sourcesContent":["import {\n Challenge,\n ChallengeTeam,\n ChallengeTeamPagedResults,\n ListWrapper,\n Team,\n TeamMember,\n TeamMembershipStatus,\n} from '@sage-bionetworks/synapse-types'\nimport { MOCK_USER_ID, mockUserGroupHeader } from '../user/mock_user_profile'\nimport {\n MOCK_CHALLENGE_PARTICIPANT_TEAM_ID,\n MOCK_TEAM_ID_2,\n MOCK_TEAM_ID_3,\n MOCK_TEAM_ID_4,\n MOCK_TEAM_ID_5,\n} from '../team/mockTeam'\n\nexport const MOCK_CHALLENGE_ID = '1234'\nexport const MOCK_CHALLENGE_PROJECT_ID = 'syn12345678'\nconst etag = 'f1b29c62-e987-4e69-9cec-198bf017a586'\n\nconst getRandomId = (len: number) => {\n const exp = Math.pow(10, len - 1)\n return Math.floor(Math.random() * 9 * exp + exp)\n}\n\nexport const mockChallenge: Challenge = {\n id: MOCK_CHALLENGE_ID,\n etag,\n projectId: MOCK_CHALLENGE_PROJECT_ID,\n participantTeamId: String(MOCK_CHALLENGE_PARTICIPANT_TEAM_ID),\n}\n\nexport const mockChallengeTeamMember: TeamMember = {\n teamId: String(MOCK_CHALLENGE_PARTICIPANT_TEAM_ID),\n member: mockUserGroupHeader,\n isAdmin: false,\n}\n\nexport const mockChallengeTeamMembershipStatus = (\n isMember: boolean = false,\n canJoin: boolean = true,\n): TeamMembershipStatus => {\n return {\n teamId: String(MOCK_CHALLENGE_PARTICIPANT_TEAM_ID),\n userId: MOCK_USER_ID.toString(),\n isMember,\n hasOpenInvitation: false,\n hasOpenRequest: false,\n canJoin,\n membershipApprovalRequired: false,\n hasUnmetAccessRequirement: false,\n canSendEmail: true,\n }\n}\n\nexport const mockChallengeTeam = (\n override?: Partial<ChallengeTeam>,\n): ChallengeTeam => {\n const id: string = getRandomId(6).toString()\n const teamId: string = getRandomId(6).toString()\n return {\n id,\n etag,\n challengeId: MOCK_CHALLENGE_ID,\n teamId,\n message: `Message for team ${teamId}`,\n ...override,\n }\n}\n\nexport const mockChallengeTeamResults = (): ChallengeTeamPagedResults => {\n const results: ChallengeTeam[] = []\n do {\n results.push(mockChallengeTeam())\n } while (results.length < 10)\n return {\n results,\n totalNumberOfResults: results.length,\n }\n}\n\nexport const mockTeamList = (teams: ChallengeTeam[]): ListWrapper<Team> => {\n const list: Team[] = teams.map((team: ChallengeTeam, index: number) => {\n const canPublicJoin: boolean = index % 2 === 0\n return {\n id: team.teamId,\n name: `Team ${team.teamId}`,\n description: `Description for team ${team.teamId}`,\n icon: '',\n canPublicJoin,\n etag,\n createdOn: '2023-05-25T14:24:28.840Z',\n modifiedOn: '',\n createdBy: '',\n modifiedBy: '',\n }\n })\n return {\n list,\n }\n}\n\nexport const mockRegisteredChallengeTeams: ChallengeTeam[] = [\n mockChallengeTeam({\n teamId: String(MOCK_TEAM_ID_2),\n challengeId: MOCK_CHALLENGE_ID,\n }),\n mockChallengeTeam({\n teamId: String(MOCK_TEAM_ID_3),\n challengeId: MOCK_CHALLENGE_ID,\n }),\n mockChallengeTeam({\n teamId: String(MOCK_TEAM_ID_4),\n challengeId: MOCK_CHALLENGE_ID,\n }),\n mockChallengeTeam({\n teamId: String(MOCK_TEAM_ID_5),\n challengeId: MOCK_CHALLENGE_ID,\n }),\n]\n"],"mappings":";;;AAkBA,IAAa,IAAoB,QACpB,IAA4B,eACnC,IAAO,wCAEP,KAAe,MAAgB;CACnC,IAAM,IAAe,OAAI,IAAM;AAC/B,QAAO,KAAK,MAAM,KAAK,QAAQ,GAAG,IAAI,IAAM,EAAI;GAGrC,IAA2B;CACtC,IAAI;CACJ;CACA,WAAW;CACX,mBAAmB,OAAO,EAAmC;CAC9D,EAEY,IAAsC;CACjD,QAAQ,OAAO,EAAmC;CAClD,QAAQ;CACR,SAAS;CACV,EAEY,KACX,IAAoB,IACpB,IAAmB,QAEZ;CACL,QAAQ,OAAO,EAAmC;CAClD,QAAA;CACA;CACA,mBAAmB;CACnB,gBAAgB;CAChB;CACA,4BAA4B;CAC5B,2BAA2B;CAC3B,cAAc;CACf,GAGU,KACX,MACkB;CAClB,IAAM,IAAa,EAAY,EAAE,CAAC,UAAU,EACtC,IAAiB,EAAY,EAAE,CAAC,UAAU;AAChD,QAAO;EACL;EACA;EACA,aAAa;EACb;EACA,SAAS,oBAAoB;EAC7B,GAAG;EACJ;GAGU,UAA4D;CACvE,IAAM,IAA2B,EAAE;AACnC;AACE,IAAQ,KAAK,GAAmB,CAAC;QAC1B,EAAQ,SAAS;AAC1B,QAAO;EACL;EACA,sBAAsB,EAAQ;EAC/B;GAGU,KAAgB,OAgBpB,EACL,MAhBmB,EAAM,KAAK,GAAqB,MAAkB;CACrE,IAAM,IAAyB,IAAQ,KAAM;AAC7C,QAAO;EACL,IAAI,EAAK;EACT,MAAM,QAAQ,EAAK;EACnB,aAAa,wBAAwB,EAAK;EAC1C,MAAM;EACN;EACA;EACA,WAAW;EACX,YAAY;EACZ,WAAW;EACX,YAAY;EACb;EAGD,EACD,GAGU,IAAgD;CAC3D,EAAkB;EAChB,QAAQ,OAAO,EAAe;EAC9B,aAAa;EACd,CAAC;CACF,EAAkB;EAChB,QAAQ,OAAO,EAAe;EAC9B,aAAa;EACd,CAAC;CACF,EAAkB;EAChB,QAAQ,OAAO,EAAe;EAC9B,aAAa;EACd,CAAC;CACF,EAAkB;EAChB,QAAQ,OAAO,EAAe;EAC9B,aAAa;EACd,CAAC;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"mockDataset.js","names":[],"sources":["../../../src/mocks/entity/mockDataset.ts"],"sourcesContent":["import { normalizeNumericId } from '@/utils/functions/StringUtils'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport {\n Dataset,\n EntityBundle,\n EntityHeader,\n EntityPath,\n RestrictionLevel,\n VersionInfo,\n} from '@sage-bionetworks/synapse-types'\nimport { MOCK_USER_ID, MOCK_USER_ID_2 } from '../user/mock_user_profile'\nimport { MockEntityData } from './MockEntityData'\nimport mockProjectEntityData from './mockProject'\n\nexport const MOCK_DATASET_ENTITY_ID = `syn60000`\nexport const MOCK_DATASET_NAME = 'A Mocked Dataset'\n\nexport const mockDatasetEntity: Dataset = {\n id: MOCK_DATASET_ENTITY_ID,\n parentId: mockProjectEntityData.id,\n name: MOCK_DATASET_NAME,\n concreteType: 'org.sagebionetworks.repo.model.table.Dataset',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID_2.toString(),\n createdOn: '2020-01-01T00:00:00.000Z',\n modifiedOn: '2020-02-01T00:00:00.000Z',\n versionNumber: 3,\n versionLabel: 'in progress',\n versionComment: 'in progress',\n isLatestVersion: true,\n etag: '00000000-0000-0000-0000-000000000000',\n items: [],\n columnIds: [],\n isSearchEnabled: false,\n}\n\nconst mockHeader: EntityHeader = {\n id: MOCK_DATASET_ENTITY_ID,\n type: 'org.sagebionetworks.repo.model.table.Dataset',\n name: MOCK_DATASET_NAME,\n benefactorId: parseInt(mockProjectEntityData.id),\n createdOn: '2020-01-01T00:00:00.000Z',\n modifiedOn: '2020-02-01T00:00:00.000Z',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n versionNumber: 3,\n versionLabel: 'in progress',\n isLatestVersion: true,\n}\n\nconst path: EntityPath = {\n path: [\n {\n name: 'root',\n id: 'syn4489',\n type: 'org.sagebionetworks.repo.model.Folder',\n },\n {\n name: mockProjectEntityData.name,\n id: mockProjectEntityData.id,\n type: 'org.sagebionetworks.repo.model.Project',\n },\n {\n name: MOCK_DATASET_NAME,\n id: MOCK_DATASET_ENTITY_ID,\n type: 'org.sagebionetworks.repo.model.table.Dataset',\n },\n ],\n}\n\nconst versions: Record<number, Dataset> = {\n 1: {\n ...mockDatasetEntity,\n versionNumber: 1,\n versionLabel: 'snapshot 1',\n versionComment: '',\n isLatestVersion: false,\n },\n 2: {\n ...mockDatasetEntity,\n versionNumber: 2,\n versionLabel: 'snapshot 2',\n versionComment: '',\n isLatestVersion: false,\n },\n}\n\nconst versionInfo: VersionInfo[] = [\n {\n id: MOCK_DATASET_ENTITY_ID,\n versionNumber: 2,\n versionLabel: 'snapshot 2',\n versionComment: '',\n isLatestVersion: false,\n modifiedBy: MOCK_USER_ID.toString(),\n modifiedByPrincipalId: MOCK_USER_ID.toString(),\n modifiedOn: '2022-03-22T18:50:22.336Z',\n },\n {\n id: MOCK_DATASET_ENTITY_ID,\n versionNumber: 1,\n versionLabel: 'snapshot 1',\n versionComment: '',\n isLatestVersion: false,\n modifiedBy: MOCK_USER_ID.toString(),\n modifiedByPrincipalId: MOCK_USER_ID.toString(),\n modifiedOn: '2022-03-22T18:47:34.797Z',\n },\n]\n\nconst bundle: EntityBundle = {\n accessControlList: { id: '239443242', resourceAccess: [] },\n annotations: {\n id: '34243',\n etag: '00000000-0000-0000-0000-000000000000',\n annotations: {},\n },\n benefactorAcl: { id: '239443242', resourceAccess: [] },\n fileHandles: [],\n hasChildren: false,\n restrictionInformation: {\n objectId: normalizeNumericId(MOCK_DATASET_ENTITY_ID),\n restrictionDetails: [],\n restrictionLevel: RestrictionLevel.OPEN,\n hasUnmetAccessRequirement: false,\n },\n threadCount: 0,\n entity: mockDatasetEntity,\n entityType: EntityType.dataset,\n path: path,\n permissions: {\n canView: true,\n canEdit: true,\n canMove: true,\n canAddChild: true,\n canCertifiedUserEdit: true,\n canCertifiedUserAddChild: true,\n isCertifiedUser: true,\n canChangePermissions: true,\n canChangeSettings: true,\n canDelete: true,\n canDownload: true,\n canUpload: true,\n canEnableInheritance: true,\n ownerPrincipalId: 3350396,\n canPublicRead: true,\n canModerate: true,\n isCertificationRequired: true,\n isEntityOpenData: false,\n isUserDataContributor: true,\n },\n}\n\nconst mockDatasetData = {\n id: MOCK_DATASET_ENTITY_ID,\n name: MOCK_DATASET_NAME,\n entity: mockDatasetEntity,\n entityHeader: mockHeader,\n path: path,\n bundle: bundle,\n versions: versions,\n versionInfo: versionInfo,\n} satisfies MockEntityData<Dataset>\n\nexport default mockDatasetData\n"],"mappings":";;;;;;AAcA,IAAa,IAAyB,YACzB,IAAoB,oBAEpB,IAA6B;CACxC,IAAI;CACJ,UAAU,EAAsB;CAChC,MAAM;CACN,cAAc;CACd,WAAA;CACA,YAAY,EAAe,UAAU;CACrC,WAAW;CACX,YAAY;CACZ,eAAe;CACf,cAAc;CACd,gBAAgB;CAChB,iBAAiB;CACjB,MAAM;CACN,OAAO,EAAE;CACT,WAAW,EAAE;CACb,iBAAiB;CAClB,EAEK,IAA2B;CAC/B,IAAI;CACJ,MAAM;CACN,MAAM;CACN,cAAc,SAAS,EAAsB,GAAG;CAChD,WAAW;CACX,YAAY;CACZ,WAAA;CACA,YAAA;CACA,eAAe;CACf,cAAc;CACd,iBAAiB;CAClB,EAEK,IAAmB,EACvB,MAAM;CACJ;EACE,MAAM;EACN,IAAI;EACJ,MAAM;EACP;CACD;EACE,MAAM,EAAsB;EAC5B,IAAI,EAAsB;EAC1B,MAAM;EACP;CACD;EACE,MAAM;EACN,IAAI;EACJ,MAAM;EACP;CACF,EACF,EAEK,IAAoC;CACxC,GAAG;EACD,GAAG;EACH,eAAe;EACf,cAAc;EACd,gBAAgB;EAChB,iBAAiB;EAClB;CACD,GAAG;EACD,GAAG;EACH,eAAe;EACf,cAAc;EACd,gBAAgB;EAChB,iBAAiB;EAClB;CACF,EAEK,IAA6B,CACjC;CACE,IAAI;CACJ,eAAe;CACf,cAAc;CACd,gBAAgB;CAChB,iBAAiB;CACjB,YAAA;CACA,uBAAA;CACA,YAAY;CACb,EACD;CACE,IAAI;CACJ,eAAe;CACf,cAAc;CACd,gBAAgB;CAChB,iBAAiB;CACjB,YAAA;CACA,uBAAA;CACA,YAAY;CACb,CACF,EA6CK,IAAkB;CACtB,IAAI;CACJ,MAAM;CACN,QAAQ;CACR,cAAc;CACR;CACE,QAjDmB;EAC3B,mBAAmB;GAAE,IAAI;GAAa,gBAAgB,EAAE;GAAE;EAC1D,aAAa;GACX,IAAI;GACJ,MAAM;GACN,aAAa,EAAE;GAChB;EACD,eAAe;GAAE,IAAI;GAAa,gBAAgB,EAAE;GAAE;EACtD,aAAa,EAAE;EACf,aAAa;EACb,wBAAwB;GACtB,UAAU,EAAmB,EAAuB;GACpD,oBAAoB,EAAE;GACtB,kBAAkB,EAAiB;GACnC,2BAA2B;GAC5B;EACD,aAAa;EACb,QAAQ;EACR,YAAY,EAAW;EACjB;EACN,aAAa;GACX,SAAS;GACT,SAAS;GACT,SAAS;GACT,aAAa;GACb,sBAAsB;GACtB,0BAA0B;GAC1B,iBAAiB;GACjB,sBAAsB;GACtB,mBAAmB;GACnB,WAAW;GACX,aAAa;GACb,WAAW;GACX,sBAAsB;GACtB,kBAAkB;GAClB,eAAe;GACf,aAAa;GACb,yBAAyB;GACzB,kBAAkB;GAClB,uBAAuB;GACxB;EACF;CASW;CACG;CACd"}
1
+ {"version":3,"file":"mockDataset.js","names":[],"sources":["../../../src/mocks/entity/mockDataset.ts"],"sourcesContent":["import { normalizeNumericId } from '@/utils/functions/StringUtils'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport {\n Dataset,\n EntityBundle,\n EntityHeader,\n EntityPath,\n RestrictionLevel,\n VersionInfo,\n} from '@sage-bionetworks/synapse-types'\nimport { MOCK_USER_ID, MOCK_USER_ID_2 } from '../user/mock_user_profile'\nimport { MockEntityData } from './MockEntityData'\nimport mockProjectEntityData from './mockProject'\n\nexport const MOCK_DATASET_ENTITY_ID = `syn60000`\nexport const MOCK_DATASET_NAME = 'A Mocked Dataset'\n\nexport const mockDatasetEntity: Dataset = {\n id: MOCK_DATASET_ENTITY_ID,\n parentId: mockProjectEntityData.id,\n name: MOCK_DATASET_NAME,\n concreteType: 'org.sagebionetworks.repo.model.table.Dataset',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID_2.toString(),\n createdOn: '2020-01-01T00:00:00.000Z',\n modifiedOn: '2020-02-01T00:00:00.000Z',\n versionNumber: 3,\n versionLabel: 'in progress',\n versionComment: 'in progress',\n isLatestVersion: true,\n etag: '00000000-0000-0000-0000-000000000000',\n items: [],\n columnIds: [],\n isSearchEnabled: false,\n}\n\nconst mockHeader: EntityHeader = {\n id: MOCK_DATASET_ENTITY_ID,\n type: 'org.sagebionetworks.repo.model.table.Dataset',\n name: MOCK_DATASET_NAME,\n benefactorId: parseInt(mockProjectEntityData.id),\n createdOn: '2020-01-01T00:00:00.000Z',\n modifiedOn: '2020-02-01T00:00:00.000Z',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n versionNumber: 3,\n versionLabel: 'in progress',\n isLatestVersion: true,\n}\n\nconst path: EntityPath = {\n path: [\n {\n name: 'root',\n id: 'syn4489',\n type: 'org.sagebionetworks.repo.model.Folder',\n },\n {\n name: mockProjectEntityData.name,\n id: mockProjectEntityData.id,\n type: 'org.sagebionetworks.repo.model.Project',\n },\n {\n name: MOCK_DATASET_NAME,\n id: MOCK_DATASET_ENTITY_ID,\n type: 'org.sagebionetworks.repo.model.table.Dataset',\n },\n ],\n}\n\nconst versions: Record<number, Dataset> = {\n 1: {\n ...mockDatasetEntity,\n versionNumber: 1,\n versionLabel: 'snapshot 1',\n versionComment: '',\n isLatestVersion: false,\n },\n 2: {\n ...mockDatasetEntity,\n versionNumber: 2,\n versionLabel: 'snapshot 2',\n versionComment: '',\n isLatestVersion: false,\n },\n}\n\nconst versionInfo: VersionInfo[] = [\n {\n id: MOCK_DATASET_ENTITY_ID,\n versionNumber: 2,\n versionLabel: 'snapshot 2',\n versionComment: '',\n isLatestVersion: false,\n modifiedBy: MOCK_USER_ID.toString(),\n modifiedByPrincipalId: MOCK_USER_ID.toString(),\n modifiedOn: '2022-03-22T18:50:22.336Z',\n },\n {\n id: MOCK_DATASET_ENTITY_ID,\n versionNumber: 1,\n versionLabel: 'snapshot 1',\n versionComment: '',\n isLatestVersion: false,\n modifiedBy: MOCK_USER_ID.toString(),\n modifiedByPrincipalId: MOCK_USER_ID.toString(),\n modifiedOn: '2022-03-22T18:47:34.797Z',\n },\n]\n\nconst bundle: EntityBundle = {\n accessControlList: { id: '239443242', resourceAccess: [] },\n annotations: {\n id: '34243',\n etag: '00000000-0000-0000-0000-000000000000',\n annotations: {},\n },\n benefactorAcl: { id: '239443242', resourceAccess: [] },\n fileHandles: [],\n hasChildren: false,\n restrictionInformation: {\n objectId: normalizeNumericId(MOCK_DATASET_ENTITY_ID),\n restrictionDetails: [],\n restrictionLevel: RestrictionLevel.OPEN,\n hasUnmetAccessRequirement: false,\n },\n threadCount: 0,\n entity: mockDatasetEntity,\n entityType: EntityType.dataset,\n path: path,\n permissions: {\n canView: true,\n canEdit: true,\n canMove: true,\n canAddChild: true,\n canCertifiedUserEdit: true,\n canCertifiedUserAddChild: true,\n isCertifiedUser: true,\n canChangePermissions: true,\n canChangeSettings: true,\n canDelete: true,\n canDownload: true,\n canUpload: true,\n canEnableInheritance: true,\n ownerPrincipalId: 3350396,\n canPublicRead: true,\n canModerate: true,\n isCertificationRequired: true,\n isEntityOpenData: false,\n isUserDataContributor: true,\n },\n}\n\nconst mockDatasetData = {\n id: MOCK_DATASET_ENTITY_ID,\n name: MOCK_DATASET_NAME,\n entity: mockDatasetEntity,\n entityHeader: mockHeader,\n path: path,\n bundle: bundle,\n versions: versions,\n versionInfo: versionInfo,\n} satisfies MockEntityData<Dataset>\n\nexport default mockDatasetData\n"],"mappings":";;;;;;AAcA,IAAa,IAAyB,YACzB,IAAoB,oBAEpB,IAA6B;CACxC,IAAI;CACJ,UAAU,EAAsB;CAChC,MAAM;CACN,cAAc;CACd,WAAA;CACA,YAAY,EAAe,UAAU;CACrC,WAAW;CACX,YAAY;CACZ,eAAe;CACf,cAAc;CACd,gBAAgB;CAChB,iBAAiB;CACjB,MAAM;CACN,OAAO,EAAE;CACT,WAAW,EAAE;CACb,iBAAiB;CAClB,EAEK,IAA2B;CAC/B,IAAI;CACJ,MAAM;CACN,MAAM;CACN,cAAc,SAAS,EAAsB,GAAG;CAChD,WAAW;CACX,YAAY;CACZ,WAAA;CACA,YAAA;CACA,eAAe;CACf,cAAc;CACd,iBAAiB;CAClB,EAEK,IAAmB,EACvB,MAAM;CACJ;EACE,MAAM;EACN,IAAI;EACJ,MAAM;EACP;CACD;EACE,MAAM,EAAsB;EAC5B,IAAI,EAAsB;EAC1B,MAAM;EACP;CACD;EACE,MAAM;EACN,IAAI;EACJ,MAAM;EACP;CACF,EACF,EAEK,IAAoC;CACxC,GAAG;EACD,GAAG;EACH,eAAe;EACf,cAAc;EACd,gBAAgB;EAChB,iBAAiB;EAClB;CACD,GAAG;EACD,GAAG;EACH,eAAe;EACf,cAAc;EACd,gBAAgB;EAChB,iBAAiB;EAClB;CACF,EAEK,IAA6B,CACjC;CACE,IAAI;CACJ,eAAe;CACf,cAAc;CACd,gBAAgB;CAChB,iBAAiB;CACjB,YAAA;CACA,uBAAA;CACA,YAAY;CACb,EACD;CACE,IAAI;CACJ,eAAe;CACf,cAAc;CACd,gBAAgB;CAChB,iBAAiB;CACjB,YAAA;CACA,uBAAA;CACA,YAAY;CACb,CACF,EA6CK,IAAkB;CACtB,IAAI;CACJ,MAAM;CACN,QAAQ;CACR,cAAc;CACR;CACE,QAAA;EAhDR,mBAAmB;GAAE,IAAI;GAAa,gBAAgB,EAAE;GAAE;EAC1D,aAAa;GACX,IAAI;GACJ,MAAM;GACN,aAAa,EAAE;GAChB;EACD,eAAe;GAAE,IAAI;GAAa,gBAAgB,EAAE;GAAE;EACtD,aAAa,EAAE;EACf,aAAa;EACb,wBAAwB;GACtB,UAAU,EAAmB,EAAuB;GACpD,oBAAoB,EAAE;GACtB,kBAAkB,EAAiB;GACnC,2BAA2B;GAC5B;EACD,aAAa;EACb,QAAQ;EACR,YAAY,EAAW;EACjB;EACN,aAAa;GACX,SAAS;GACT,SAAS;GACT,SAAS;GACT,aAAa;GACb,sBAAsB;GACtB,0BAA0B;GAC1B,iBAAiB;GACjB,sBAAsB;GACtB,mBAAmB;GACnB,WAAW;GACX,aAAa;GACb,WAAW;GACX,sBAAsB;GACtB,kBAAkB;GAClB,eAAe;GACf,aAAa;GACb,yBAAyB;GACzB,kBAAkB;GAClB,uBAAuB;GACxB;EASO;CACE;CACG;CACd"}
@@ -1 +1 @@
1
- {"version":3,"file":"mockDatasetCollection.js","names":[],"sources":["../../../src/mocks/entity/mockDatasetCollection.ts"],"sourcesContent":["import { DatasetCollection, EntityPath } from '@sage-bionetworks/synapse-types'\nimport { MOCK_USER_ID } from '../user/mock_user_profile'\nimport mockDatasetData from './mockDataset'\nimport { MockEntityData } from './MockEntityData'\nimport mockProjectEntityData from './mockProject'\n\nconst MOCK_DATASET_COLLECTION_ENTITY_ID = `syn70000`\nconst MOCK_DATASET_COLLECTION_NAME = 'A Mocked Dataset Collection'\n\nexport const mockDatasetCollectionEntity: DatasetCollection = {\n id: MOCK_DATASET_COLLECTION_ENTITY_ID,\n parentId: mockProjectEntityData.id,\n name: MOCK_DATASET_COLLECTION_NAME,\n concreteType: 'org.sagebionetworks.repo.model.table.DatasetCollection',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n etag: '00000000-0000-0000-0000-000000000000',\n items: [\n {\n entityId: mockDatasetData.id,\n versionNumber: 1,\n },\n ],\n columnIds: [],\n isSearchEnabled: false,\n}\n\nconst path: EntityPath = {\n path: [\n {\n name: 'root',\n id: 'syn4489',\n type: 'org.sagebionetworks.repo.model.Folder',\n },\n {\n name: mockProjectEntityData.name,\n id: mockProjectEntityData.id,\n type: 'org.sagebionetworks.repo.model.Project',\n },\n {\n name: MOCK_DATASET_COLLECTION_NAME,\n id: MOCK_DATASET_COLLECTION_ENTITY_ID,\n type: 'org.sagebionetworks.repo.model.FileEntity',\n },\n ],\n}\n\nconst mockDatasetCollectionData: MockEntityData<DatasetCollection> = {\n id: MOCK_DATASET_COLLECTION_ENTITY_ID,\n name: MOCK_DATASET_COLLECTION_NAME,\n entity: mockDatasetCollectionEntity,\n path: path,\n}\n\nexport default mockDatasetCollectionData\n"],"mappings":";;;;AAMA,IAAM,IAAoC,YACpC,IAA+B,+BAExB,IAAiD;CAC5D,IAAI;CACJ,UAAU,EAAsB;CAChC,MAAM;CACN,cAAc;CACd,WAAA;CACA,YAAA;CACA,MAAM;CACN,OAAO,CACL;EACE,UAAU,EAAgB;EAC1B,eAAe;EAChB,CACF;CACD,WAAW,EAAE;CACb,iBAAiB;CAClB,EAsBK,IAA+D;CACnE,IAAI;CACJ,MAAM;CACN,QAAQ;CACF,MAxBiB,EACvB,MAAM;EACJ;GACE,MAAM;GACN,IAAI;GACJ,MAAM;GACP;EACD;GACE,MAAM,EAAsB;GAC5B,IAAI,EAAsB;GAC1B,MAAM;GACP;EACD;GACE,MAAM;GACN,IAAI;GACJ,MAAM;GACP;EACF,EACF;CAOA"}
1
+ {"version":3,"file":"mockDatasetCollection.js","names":[],"sources":["../../../src/mocks/entity/mockDatasetCollection.ts"],"sourcesContent":["import { DatasetCollection, EntityPath } from '@sage-bionetworks/synapse-types'\nimport { MOCK_USER_ID } from '../user/mock_user_profile'\nimport mockDatasetData from './mockDataset'\nimport { MockEntityData } from './MockEntityData'\nimport mockProjectEntityData from './mockProject'\n\nconst MOCK_DATASET_COLLECTION_ENTITY_ID = `syn70000`\nconst MOCK_DATASET_COLLECTION_NAME = 'A Mocked Dataset Collection'\n\nexport const mockDatasetCollectionEntity: DatasetCollection = {\n id: MOCK_DATASET_COLLECTION_ENTITY_ID,\n parentId: mockProjectEntityData.id,\n name: MOCK_DATASET_COLLECTION_NAME,\n concreteType: 'org.sagebionetworks.repo.model.table.DatasetCollection',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n etag: '00000000-0000-0000-0000-000000000000',\n items: [\n {\n entityId: mockDatasetData.id,\n versionNumber: 1,\n },\n ],\n columnIds: [],\n isSearchEnabled: false,\n}\n\nconst path: EntityPath = {\n path: [\n {\n name: 'root',\n id: 'syn4489',\n type: 'org.sagebionetworks.repo.model.Folder',\n },\n {\n name: mockProjectEntityData.name,\n id: mockProjectEntityData.id,\n type: 'org.sagebionetworks.repo.model.Project',\n },\n {\n name: MOCK_DATASET_COLLECTION_NAME,\n id: MOCK_DATASET_COLLECTION_ENTITY_ID,\n type: 'org.sagebionetworks.repo.model.FileEntity',\n },\n ],\n}\n\nconst mockDatasetCollectionData: MockEntityData<DatasetCollection> = {\n id: MOCK_DATASET_COLLECTION_ENTITY_ID,\n name: MOCK_DATASET_COLLECTION_NAME,\n entity: mockDatasetCollectionEntity,\n path: path,\n}\n\nexport default mockDatasetCollectionData\n"],"mappings":";;;;AAMA,IAAM,IAAoC,YACpC,IAA+B,+BAExB,IAAiD;CAC5D,IAAI;CACJ,UAAU,EAAsB;CAChC,MAAM;CACN,cAAc;CACd,WAAA;CACA,YAAA;CACA,MAAM;CACN,OAAO,CACL;EACE,UAAU,EAAgB;EAC1B,eAAe;EAChB,CACF;CACD,WAAW,EAAE;CACb,iBAAiB;CAClB,EAsBK,IAA+D;CACnE,IAAI;CACJ,MAAM;CACN,QAAQ;CACF,MAAA,EAvBN,MAAM;EACJ;GACE,MAAM;GACN,IAAI;GACJ,MAAM;GACP;EACD;GACE,MAAM,EAAsB;GAC5B,IAAI,EAAsB;GAC1B,MAAM;GACP;EACD;GACE,MAAM;GACN,IAAI;GACJ,MAAM;GACP;EACF,EAOK;CACP"}
@@ -1 +1 @@
1
- {"version":3,"file":"mockFileEntity.js","names":[],"sources":["../../../src/mocks/entity/mockFileEntity.ts"],"sourcesContent":["import { normalizeNumericId } from '@/utils/functions/StringUtils'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport {\n AnnotationsValueType,\n EntityBundle,\n EntityHeader,\n EntityJson,\n EntityPath,\n FileEntity,\n RestrictionLevel,\n VersionInfo,\n} from '@sage-bionetworks/synapse-types'\nimport {\n MOCK_FILE_HANDLE_ID,\n mockFileHandle,\n mockPreviewFileHandle,\n} from '../mock_file_handle'\nimport { MOCK_USER_ID, MOCK_USER_ID_2 } from '../user/mock_user_profile'\nimport { MockEntityData } from './MockEntityData'\nimport mockProject from './mockProject'\nimport mockProjectEntityData from './mockProject'\n\nconst parentId = mockProject.id\nconst projectName = mockProject.name\n\nexport const MOCK_FILE_ENTITY_ID = `syn30000`\nexport const MOCK_FILE_NAME = 'My mock file entity'\n\n// TODO: Create a mock wiki\nconst MOCK_WIKI_ID = '45745485'\n\nconst mockFileEntity: FileEntity = {\n id: MOCK_FILE_ENTITY_ID,\n parentId: parentId,\n dataFileHandleId: MOCK_FILE_HANDLE_ID,\n name: MOCK_FILE_NAME,\n concreteType: 'org.sagebionetworks.repo.model.FileEntity',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID_2.toString(),\n etag: '00000000-0000-0000-0000-000000000000',\n versionNumber: 3,\n versionLabel: 'a label for version 3',\n isLatestVersion: true,\n createdOn: '2021-03-02T15:05:34.973Z',\n modifiedOn: '2021-03-05T11:31:24.521Z',\n}\n\nconst mockFileEntityVersionInfo: VersionInfo[] = [\n {\n id: MOCK_FILE_ENTITY_ID,\n modifiedBy: MOCK_USER_ID.toString(),\n versionNumber: 1,\n versionLabel: 'a label for version 1',\n versionComment: 'a comment',\n contentSize: '100',\n contentMd5: 'd836adae5632872014783b05cd2f76d7',\n modifiedByPrincipalId: MOCK_USER_ID.toString(),\n modifiedOn: '2021-03-02T15:05:34.973Z',\n isLatestVersion: false,\n },\n {\n id: MOCK_FILE_ENTITY_ID,\n modifiedBy: MOCK_USER_ID.toString(),\n versionNumber: 3,\n versionLabel: 'a label for version 3',\n versionComment: 'a comment about version 3',\n contentSize: '100',\n contentMd5: 'bc91a4a16ccb21944fcee55275dc4574',\n modifiedByPrincipalId: MOCK_USER_ID.toString(),\n modifiedOn: '2021-03-05T11:31:24.521Z',\n isLatestVersion: true,\n },\n]\n\nconst mockFileEntityVersions: Record<number, FileEntity> = {\n 3: {\n id: MOCK_FILE_ENTITY_ID,\n parentId: parentId,\n dataFileHandleId: MOCK_FILE_HANDLE_ID,\n name: MOCK_FILE_NAME,\n concreteType: 'org.sagebionetworks.repo.model.FileEntity',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n etag: '00000000-0000-0000-0000-000000000000',\n versionNumber: 3,\n versionLabel: 'a label for version 3',\n isLatestVersion: true,\n },\n 1: {\n id: MOCK_FILE_ENTITY_ID,\n parentId: parentId,\n dataFileHandleId: MOCK_FILE_HANDLE_ID,\n name: MOCK_FILE_NAME,\n concreteType: 'org.sagebionetworks.repo.model.FileEntity',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n etag: '00000000-0000-0000-0000-000000000000',\n versionNumber: 1,\n versionLabel: 'a label for version 1',\n isLatestVersion: false,\n },\n}\n\nconst filePath: EntityPath = {\n path: [\n {\n name: 'root',\n id: 'syn4489',\n type: 'org.sagebionetworks.repo.model.Folder',\n },\n {\n name: projectName,\n id: parentId,\n type: 'org.sagebionetworks.repo.model.Project',\n },\n {\n name: MOCK_FILE_NAME,\n id: MOCK_FILE_ENTITY_ID,\n type: 'org.sagebionetworks.repo.model.FileEntity',\n },\n ],\n}\n\nconst mockFileEntityBundle: EntityBundle = {\n entity: mockFileEntity,\n entityType: EntityType.file,\n fileHandles: [mockFileHandle, mockPreviewFileHandle],\n annotations: {\n id: MOCK_FILE_ENTITY_ID,\n etag: '00000000-0000-0000-0000-000000000000',\n annotations: {\n myStringKey: {\n type: AnnotationsValueType.STRING,\n value: ['myValue'],\n },\n myIntegerKey: {\n type: AnnotationsValueType.LONG,\n value: [4325435345213, 4321],\n },\n myFloatKey: {\n type: AnnotationsValueType.LONG,\n value: [1.5, 17 / 13],\n },\n },\n },\n rootWikiId: MOCK_WIKI_ID,\n fileName: mockFileEntity.name,\n benefactorAcl: mockProjectEntityData.bundle.accessControlList!,\n permissions: {\n canView: true,\n canEdit: true,\n canMove: true,\n canAddChild: true,\n canCertifiedUserEdit: true,\n canCertifiedUserAddChild: true,\n isCertifiedUser: true,\n canChangePermissions: true,\n canChangeSettings: true,\n canDelete: true,\n canDownload: true,\n canUpload: true,\n canEnableInheritance: true,\n ownerPrincipalId: 3350396,\n canPublicRead: true,\n canModerate: true,\n isCertificationRequired: true,\n isEntityOpenData: false,\n isUserDataContributor: true,\n },\n threadCount: 5,\n path: filePath,\n restrictionInformation: {\n objectId: normalizeNumericId(MOCK_FILE_ENTITY_ID),\n restrictionDetails: [],\n restrictionLevel: RestrictionLevel.OPEN,\n hasUnmetAccessRequirement: false,\n },\n hasChildren: false,\n}\n\nconst mockFileEntityJson: EntityJson = {\n id: mockFileEntity.id!,\n name: mockFileEntity.name,\n etag: mockFileEntity.etag!,\n createdOn: mockFileEntity.createdOn!,\n modifiedOn: mockFileEntity.modifiedOn!,\n createdBy: mockFileEntity.createdBy!,\n modifiedBy: mockFileEntity.modifiedBy!,\n parentId: 'syn4489',\n concreteType: 'org.sagebionetworks.repo.model.FileEntity',\n myStringKey: 'myValue',\n myIntegerKey: [4325435345213, 4321],\n myFloatKey: [1.5, 17 / 13],\n}\n\nconst mockFileEntityHeader: EntityHeader = {\n id: mockFileEntity.id!,\n name: mockFileEntity.name,\n type: mockFileEntity.concreteType,\n versionNumber: 3,\n versionLabel: 'a label for version 3',\n benefactorId: 123,\n createdOn: mockFileEntity.createdOn!,\n modifiedOn: mockFileEntity.modifiedOn!,\n createdBy: MOCK_USER_ID.toString(), // TODO: Replace with a valid mock user ID\n modifiedBy: MOCK_USER_ID_2.toString(),\n isLatestVersion: true,\n}\n\nconst mockFileEntityData = {\n id: MOCK_FILE_ENTITY_ID,\n name: MOCK_FILE_NAME,\n entity: mockFileEntity,\n bundle: mockFileEntityBundle,\n json: mockFileEntityJson,\n versions: mockFileEntityVersions,\n versionInfo: mockFileEntityVersionInfo,\n entityHeader: mockFileEntityHeader,\n path: filePath,\n} satisfies MockEntityData<FileEntity>\n\nexport default mockFileEntityData\n"],"mappings":";;;;;;;AAsBA,IAAM,IAAW,EAAY,IACvB,IAAc,EAAY,MAEnB,IAAsB,YACtB,IAAiB,uBAGxB,IAAe,YAEf,IAA6B;CACjC,IAAI;CACM;CACV,kBAAkB;CAClB,MAAM;CACN,cAAc;CACd,WAAA;CACA,YAAY,EAAe,UAAU;CACrC,MAAM;CACN,eAAe;CACf,cAAc;CACd,iBAAiB;CACjB,WAAW;CACX,YAAY;CACb,EAEK,IAA2C,CAC/C;CACE,IAAI;CACJ,YAAA;CACA,eAAe;CACf,cAAc;CACd,gBAAgB;CAChB,aAAa;CACb,YAAY;CACZ,uBAAA;CACA,YAAY;CACZ,iBAAiB;CAClB,EACD;CACE,IAAI;CACJ,YAAA;CACA,eAAe;CACf,cAAc;CACd,gBAAgB;CAChB,aAAa;CACb,YAAY;CACZ,uBAAA;CACA,YAAY;CACZ,iBAAiB;CAClB,CACF,EAEK,IAAqD;CACzD,GAAG;EACD,IAAI;EACM;EACV,kBAAkB;EAClB,MAAM;EACN,cAAc;EACd,WAAA;EACA,YAAA;EACA,MAAM;EACN,eAAe;EACf,cAAc;EACd,iBAAiB;EAClB;CACD,GAAG;EACD,IAAI;EACM;EACV,kBAAkB;EAClB,MAAM;EACN,cAAc;EACd,WAAA;EACA,YAAA;EACA,MAAM;EACN,eAAe;EACf,cAAc;EACd,iBAAiB;EAClB;CACF,EAEK,IAAuB,EAC3B,MAAM;CACJ;EACE,MAAM;EACN,IAAI;EACJ,MAAM;EACP;CACD;EACE,MAAM;EACN,IAAI;EACJ,MAAM;EACP;CACD;EACE,MAAM;EACN,IAAI;EACJ,MAAM;EACP;CACF,EACF,EAwFK,IAAqB;CACzB,IAAI;CACJ,MAAM;CACN,QAAQ;CACR,QA1FyC;EACzC,QAAQ;EACR,YAAY,EAAW;EACvB,aAAa,CAAC,GAAgB,EAAsB;EACpD,aAAa;GACX,IAAI;GACJ,MAAM;GACN,aAAa;IACX,aAAa;KACX,MAAM,EAAqB;KAC3B,OAAO,CAAC,UAAU;KACnB;IACD,cAAc;KACZ,MAAM,EAAqB;KAC3B,OAAO,CAAC,eAAe,KAAK;KAC7B;IACD,YAAY;KACV,MAAM,EAAqB;KAC3B,OAAO,CAAC,KAAK,KAAK,GAAG;KACtB;IACF;GACF;EACD,YAAY;EACZ,UAAU,EAAe;EACzB,eAAe,EAAsB,OAAO;EAC5C,aAAa;GACX,SAAS;GACT,SAAS;GACT,SAAS;GACT,aAAa;GACb,sBAAsB;GACtB,0BAA0B;GAC1B,iBAAiB;GACjB,sBAAsB;GACtB,mBAAmB;GACnB,WAAW;GACX,aAAa;GACb,WAAW;GACX,sBAAsB;GACtB,kBAAkB;GAClB,eAAe;GACf,aAAa;GACb,yBAAyB;GACzB,kBAAkB;GAClB,uBAAuB;GACxB;EACD,aAAa;EACb,MAAM;EACN,wBAAwB;GACtB,UAAU,EAAmB,EAAoB;GACjD,oBAAoB,EAAE;GACtB,kBAAkB,EAAiB;GACnC,2BAA2B;GAC5B;EACD,aAAa;EACd;CAoCC,MAlCqC;EACrC,IAAI,EAAe;EACnB,MAAM,EAAe;EACrB,MAAM,EAAe;EACrB,WAAW,EAAe;EAC1B,YAAY,EAAe;EAC3B,WAAW,EAAe;EAC1B,YAAY,EAAe;EAC3B,UAAU;EACV,cAAc;EACd,aAAa;EACb,cAAc,CAAC,eAAe,KAAK;EACnC,YAAY,CAAC,KAAK,KAAK,GAAG;EAC3B;CAsBC,UAAU;CACV,aAAa;CACb,cAtByC;EACzC,IAAI,EAAe;EACnB,MAAM,EAAe;EACrB,MAAM,EAAe;EACrB,eAAe;EACf,cAAc;EACd,cAAc;EACd,WAAW,EAAe;EAC1B,YAAY,EAAe;EAC3B,WAAA;EACA,YAAY,EAAe,UAAU;EACrC,iBAAiB;EAClB;CAWC,MAAM;CACP"}
1
+ {"version":3,"file":"mockFileEntity.js","names":[],"sources":["../../../src/mocks/entity/mockFileEntity.ts"],"sourcesContent":["import { normalizeNumericId } from '@/utils/functions/StringUtils'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport {\n AnnotationsValueType,\n EntityBundle,\n EntityHeader,\n EntityJson,\n EntityPath,\n FileEntity,\n RestrictionLevel,\n VersionInfo,\n} from '@sage-bionetworks/synapse-types'\nimport {\n MOCK_FILE_HANDLE_ID,\n mockFileHandle,\n mockPreviewFileHandle,\n} from '../mock_file_handle'\nimport { MOCK_USER_ID, MOCK_USER_ID_2 } from '../user/mock_user_profile'\nimport { MockEntityData } from './MockEntityData'\nimport mockProject from './mockProject'\nimport mockProjectEntityData from './mockProject'\n\nconst parentId = mockProject.id\nconst projectName = mockProject.name\n\nexport const MOCK_FILE_ENTITY_ID = `syn30000`\nexport const MOCK_FILE_NAME = 'My mock file entity'\n\n// TODO: Create a mock wiki\nconst MOCK_WIKI_ID = '45745485'\n\nconst mockFileEntity: FileEntity = {\n id: MOCK_FILE_ENTITY_ID,\n parentId: parentId,\n dataFileHandleId: MOCK_FILE_HANDLE_ID,\n name: MOCK_FILE_NAME,\n concreteType: 'org.sagebionetworks.repo.model.FileEntity',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID_2.toString(),\n etag: '00000000-0000-0000-0000-000000000000',\n versionNumber: 3,\n versionLabel: 'a label for version 3',\n isLatestVersion: true,\n createdOn: '2021-03-02T15:05:34.973Z',\n modifiedOn: '2021-03-05T11:31:24.521Z',\n}\n\nconst mockFileEntityVersionInfo: VersionInfo[] = [\n {\n id: MOCK_FILE_ENTITY_ID,\n modifiedBy: MOCK_USER_ID.toString(),\n versionNumber: 1,\n versionLabel: 'a label for version 1',\n versionComment: 'a comment',\n contentSize: '100',\n contentMd5: 'd836adae5632872014783b05cd2f76d7',\n modifiedByPrincipalId: MOCK_USER_ID.toString(),\n modifiedOn: '2021-03-02T15:05:34.973Z',\n isLatestVersion: false,\n },\n {\n id: MOCK_FILE_ENTITY_ID,\n modifiedBy: MOCK_USER_ID.toString(),\n versionNumber: 3,\n versionLabel: 'a label for version 3',\n versionComment: 'a comment about version 3',\n contentSize: '100',\n contentMd5: 'bc91a4a16ccb21944fcee55275dc4574',\n modifiedByPrincipalId: MOCK_USER_ID.toString(),\n modifiedOn: '2021-03-05T11:31:24.521Z',\n isLatestVersion: true,\n },\n]\n\nconst mockFileEntityVersions: Record<number, FileEntity> = {\n 3: {\n id: MOCK_FILE_ENTITY_ID,\n parentId: parentId,\n dataFileHandleId: MOCK_FILE_HANDLE_ID,\n name: MOCK_FILE_NAME,\n concreteType: 'org.sagebionetworks.repo.model.FileEntity',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n etag: '00000000-0000-0000-0000-000000000000',\n versionNumber: 3,\n versionLabel: 'a label for version 3',\n isLatestVersion: true,\n },\n 1: {\n id: MOCK_FILE_ENTITY_ID,\n parentId: parentId,\n dataFileHandleId: MOCK_FILE_HANDLE_ID,\n name: MOCK_FILE_NAME,\n concreteType: 'org.sagebionetworks.repo.model.FileEntity',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n etag: '00000000-0000-0000-0000-000000000000',\n versionNumber: 1,\n versionLabel: 'a label for version 1',\n isLatestVersion: false,\n },\n}\n\nconst filePath: EntityPath = {\n path: [\n {\n name: 'root',\n id: 'syn4489',\n type: 'org.sagebionetworks.repo.model.Folder',\n },\n {\n name: projectName,\n id: parentId,\n type: 'org.sagebionetworks.repo.model.Project',\n },\n {\n name: MOCK_FILE_NAME,\n id: MOCK_FILE_ENTITY_ID,\n type: 'org.sagebionetworks.repo.model.FileEntity',\n },\n ],\n}\n\nconst mockFileEntityBundle: EntityBundle = {\n entity: mockFileEntity,\n entityType: EntityType.file,\n fileHandles: [mockFileHandle, mockPreviewFileHandle],\n annotations: {\n id: MOCK_FILE_ENTITY_ID,\n etag: '00000000-0000-0000-0000-000000000000',\n annotations: {\n myStringKey: {\n type: AnnotationsValueType.STRING,\n value: ['myValue'],\n },\n myIntegerKey: {\n type: AnnotationsValueType.LONG,\n value: [4325435345213, 4321],\n },\n myFloatKey: {\n type: AnnotationsValueType.LONG,\n value: [1.5, 17 / 13],\n },\n },\n },\n rootWikiId: MOCK_WIKI_ID,\n fileName: mockFileEntity.name,\n benefactorAcl: mockProjectEntityData.bundle.accessControlList!,\n permissions: {\n canView: true,\n canEdit: true,\n canMove: true,\n canAddChild: true,\n canCertifiedUserEdit: true,\n canCertifiedUserAddChild: true,\n isCertifiedUser: true,\n canChangePermissions: true,\n canChangeSettings: true,\n canDelete: true,\n canDownload: true,\n canUpload: true,\n canEnableInheritance: true,\n ownerPrincipalId: 3350396,\n canPublicRead: true,\n canModerate: true,\n isCertificationRequired: true,\n isEntityOpenData: false,\n isUserDataContributor: true,\n },\n threadCount: 5,\n path: filePath,\n restrictionInformation: {\n objectId: normalizeNumericId(MOCK_FILE_ENTITY_ID),\n restrictionDetails: [],\n restrictionLevel: RestrictionLevel.OPEN,\n hasUnmetAccessRequirement: false,\n },\n hasChildren: false,\n}\n\nconst mockFileEntityJson: EntityJson = {\n id: mockFileEntity.id!,\n name: mockFileEntity.name,\n etag: mockFileEntity.etag!,\n createdOn: mockFileEntity.createdOn!,\n modifiedOn: mockFileEntity.modifiedOn!,\n createdBy: mockFileEntity.createdBy!,\n modifiedBy: mockFileEntity.modifiedBy!,\n parentId: 'syn4489',\n concreteType: 'org.sagebionetworks.repo.model.FileEntity',\n myStringKey: 'myValue',\n myIntegerKey: [4325435345213, 4321],\n myFloatKey: [1.5, 17 / 13],\n}\n\nconst mockFileEntityHeader: EntityHeader = {\n id: mockFileEntity.id!,\n name: mockFileEntity.name,\n type: mockFileEntity.concreteType,\n versionNumber: 3,\n versionLabel: 'a label for version 3',\n benefactorId: 123,\n createdOn: mockFileEntity.createdOn!,\n modifiedOn: mockFileEntity.modifiedOn!,\n createdBy: MOCK_USER_ID.toString(), // TODO: Replace with a valid mock user ID\n modifiedBy: MOCK_USER_ID_2.toString(),\n isLatestVersion: true,\n}\n\nconst mockFileEntityData = {\n id: MOCK_FILE_ENTITY_ID,\n name: MOCK_FILE_NAME,\n entity: mockFileEntity,\n bundle: mockFileEntityBundle,\n json: mockFileEntityJson,\n versions: mockFileEntityVersions,\n versionInfo: mockFileEntityVersionInfo,\n entityHeader: mockFileEntityHeader,\n path: filePath,\n} satisfies MockEntityData<FileEntity>\n\nexport default mockFileEntityData\n"],"mappings":";;;;;;;AAsBA,IAAM,IAAW,EAAY,IACvB,IAAc,EAAY,MAEnB,IAAsB,YACtB,IAAiB,uBAGxB,IAAe,YAEf,IAA6B;CACjC,IAAI;CACM;CACV,kBAAkB;CAClB,MAAM;CACN,cAAc;CACd,WAAA;CACA,YAAY,EAAe,UAAU;CACrC,MAAM;CACN,eAAe;CACf,cAAc;CACd,iBAAiB;CACjB,WAAW;CACX,YAAY;CACb,EAEK,IAA2C,CAC/C;CACE,IAAI;CACJ,YAAA;CACA,eAAe;CACf,cAAc;CACd,gBAAgB;CAChB,aAAa;CACb,YAAY;CACZ,uBAAA;CACA,YAAY;CACZ,iBAAiB;CAClB,EACD;CACE,IAAI;CACJ,YAAA;CACA,eAAe;CACf,cAAc;CACd,gBAAgB;CAChB,aAAa;CACb,YAAY;CACZ,uBAAA;CACA,YAAY;CACZ,iBAAiB;CAClB,CACF,EAEK,IAAqD;CACzD,GAAG;EACD,IAAI;EACM;EACV,kBAAkB;EAClB,MAAM;EACN,cAAc;EACd,WAAA;EACA,YAAA;EACA,MAAM;EACN,eAAe;EACf,cAAc;EACd,iBAAiB;EAClB;CACD,GAAG;EACD,IAAI;EACM;EACV,kBAAkB;EAClB,MAAM;EACN,cAAc;EACd,WAAA;EACA,YAAA;EACA,MAAM;EACN,eAAe;EACf,cAAc;EACd,iBAAiB;EAClB;CACF,EAEK,IAAuB,EAC3B,MAAM;CACJ;EACE,MAAM;EACN,IAAI;EACJ,MAAM;EACP;CACD;EACE,MAAM;EACN,IAAI;EACJ,MAAM;EACP;CACD;EACE,MAAM;EACN,IAAI;EACJ,MAAM;EACP;CACF,EACF,EAwFK,IAAqB;CACzB,IAAI;CACJ,MAAM;CACN,QAAQ;CACR,QAAQ;EAzFR,QAAQ;EACR,YAAY,EAAW;EACvB,aAAa,CAAC,GAAgB,EAAsB;EACpD,aAAa;GACX,IAAI;GACJ,MAAM;GACN,aAAa;IACX,aAAa;KACX,MAAM,EAAqB;KAC3B,OAAO,CAAC,UAAU;KACnB;IACD,cAAc;KACZ,MAAM,EAAqB;KAC3B,OAAO,CAAC,eAAe,KAAK;KAC7B;IACD,YAAY;KACV,MAAM,EAAqB;KAC3B,OAAO,CAAC,KAAK,KAAK,GAAG;KACtB;IACF;GACF;EACD,YAAY;EACZ,UAAU,EAAe;EACzB,eAAe,EAAsB,OAAO;EAC5C,aAAa;GACX,SAAS;GACT,SAAS;GACT,SAAS;GACT,aAAa;GACb,sBAAsB;GACtB,0BAA0B;GAC1B,iBAAiB;GACjB,sBAAsB;GACtB,mBAAmB;GACnB,WAAW;GACX,aAAa;GACb,WAAW;GACX,sBAAsB;GACtB,kBAAkB;GAClB,eAAe;GACf,aAAa;GACb,yBAAyB;GACzB,kBAAkB;GAClB,uBAAuB;GACxB;EACD,aAAa;EACb,MAAM;EACN,wBAAwB;GACtB,UAAU,EAAmB,EAAoB;GACjD,oBAAoB,EAAE;GACtB,kBAAkB,EAAiB;GACnC,2BAA2B;GAC5B;EACD,aAAa;EAoCL;CACR,MAAM;EAjCN,IAAI,EAAe;EACnB,MAAM,EAAe;EACrB,MAAM,EAAe;EACrB,WAAW,EAAe;EAC1B,YAAY,EAAe;EAC3B,WAAW,EAAe;EAC1B,YAAY,EAAe;EAC3B,UAAU;EACV,cAAc;EACd,aAAa;EACb,cAAc,CAAC,eAAe,KAAK;EACnC,YAAY,CAAC,KAAK,KAAK,GAAG;EAsBpB;CACN,UAAU;CACV,aAAa;CACb,cAAc;EArBd,IAAI,EAAe;EACnB,MAAM,EAAe;EACrB,MAAM,EAAe;EACrB,eAAe;EACf,cAAc;EACd,cAAc;EACd,WAAW,EAAe;EAC1B,YAAY,EAAe;EAC3B,WAAA;EACA,YAAY,EAAe,UAAU;EACrC,iBAAiB;EAWH;CACd,MAAM;CACP"}
@@ -1 +1 @@
1
- {"version":3,"file":"mockFileView.js","names":[],"sources":["../../../src/mocks/entity/mockFileView.ts"],"sourcesContent":["import { MOCK_USER_ID } from '../user/mock_user_profile'\nimport {\n ENTITY_VIEW_TYPE_MASK_FILE,\n EntityHeader,\n EntityView,\n} from '@sage-bionetworks/synapse-types'\nimport mockProject from './mockProject'\nimport { MockEntityData } from './MockEntityData'\nimport { MOCK_TABLE_ENTITY_ID } from './mockTableEntity'\n\nexport const MOCK_FILE_VIEW_ENTITY_ID = `syn50000`\nexport const MOCK_FILE_VIEW_NAME = 'Mocked File View'\nexport const mockFileViewEntity = {\n id: MOCK_FILE_VIEW_ENTITY_ID,\n parentId: mockProject.id,\n name: MOCK_FILE_VIEW_NAME,\n concreteType: 'org.sagebionetworks.repo.model.table.EntityView',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n etag: '00000000-0000-0000-0000-000000000000',\n columnIds: [],\n viewTypeMask: ENTITY_VIEW_TYPE_MASK_FILE,\n scopeIds: [mockProject.id],\n isSearchEnabled: true,\n versionNumber: 1,\n versionLabel: 'in progress',\n createdOn: '2023-02-09T12:44:35.457Z',\n modifiedOn: '2023-03-17T17:10:36.915Z',\n isLatestVersion: true,\n} satisfies EntityView\n\nconst mockFileViewEntityHeader: EntityHeader = {\n name: mockFileViewEntity.name,\n id: MOCK_TABLE_ENTITY_ID,\n type: 'org.sagebionetworks.repo.model.table.EntityView',\n versionNumber: mockFileViewEntity.versionNumber,\n versionLabel: mockFileViewEntity.versionLabel,\n benefactorId: parseInt(mockProject.id),\n createdOn: mockFileViewEntity.createdOn,\n modifiedOn: mockFileViewEntity.modifiedOn,\n createdBy: mockFileViewEntity.createdBy,\n modifiedBy: mockFileViewEntity.modifiedBy,\n isLatestVersion: mockFileViewEntity.isLatestVersion,\n}\n\nexport const mockFileViewData: MockEntityData<EntityView> = {\n id: MOCK_FILE_VIEW_ENTITY_ID,\n name: MOCK_FILE_VIEW_NAME,\n entity: mockFileViewEntity,\n entityHeader: mockFileViewEntityHeader,\n}\n"],"mappings":";;;;;AAUA,IAAa,IAA2B,YAC3B,IAAsB,oBACtB,IAAqB;CAChC,IAAI;CACJ,UAAU,EAAY;CACtB,MAAM;CACN,cAAc;CACd,WAAA;CACA,YAAA;CACA,MAAM;CACN,WAAW,EAAE;CACb,cAAc;CACd,UAAU,CAAC,EAAY,GAAG;CAC1B,iBAAiB;CACjB,eAAe;CACf,cAAc;CACd,WAAW;CACX,YAAY;CACZ,iBAAiB;CAClB,EAgBY,IAA+C;CAC1D,IAAI;CACJ,MAAM;CACN,QAAQ;CACR,cAlB6C;EAC7C,MAAM,EAAmB;EACzB,IAAI;EACJ,MAAM;EACN,eAAe,EAAmB;EAClC,cAAc,EAAmB;EACjC,cAAc,SAAS,EAAY,GAAG;EACtC,WAAW,EAAmB;EAC9B,YAAY,EAAmB;EAC/B,WAAW,EAAmB;EAC9B,YAAY,EAAmB;EAC/B,iBAAiB,EAAmB;EACrC;CAOA"}
1
+ {"version":3,"file":"mockFileView.js","names":[],"sources":["../../../src/mocks/entity/mockFileView.ts"],"sourcesContent":["import { MOCK_USER_ID } from '../user/mock_user_profile'\nimport {\n ENTITY_VIEW_TYPE_MASK_FILE,\n EntityHeader,\n EntityView,\n} from '@sage-bionetworks/synapse-types'\nimport mockProject from './mockProject'\nimport { MockEntityData } from './MockEntityData'\nimport { MOCK_TABLE_ENTITY_ID } from './mockTableEntity'\n\nexport const MOCK_FILE_VIEW_ENTITY_ID = `syn50000`\nexport const MOCK_FILE_VIEW_NAME = 'Mocked File View'\nexport const mockFileViewEntity = {\n id: MOCK_FILE_VIEW_ENTITY_ID,\n parentId: mockProject.id,\n name: MOCK_FILE_VIEW_NAME,\n concreteType: 'org.sagebionetworks.repo.model.table.EntityView',\n createdBy: MOCK_USER_ID.toString(),\n modifiedBy: MOCK_USER_ID.toString(),\n etag: '00000000-0000-0000-0000-000000000000',\n columnIds: [],\n viewTypeMask: ENTITY_VIEW_TYPE_MASK_FILE,\n scopeIds: [mockProject.id],\n isSearchEnabled: true,\n versionNumber: 1,\n versionLabel: 'in progress',\n createdOn: '2023-02-09T12:44:35.457Z',\n modifiedOn: '2023-03-17T17:10:36.915Z',\n isLatestVersion: true,\n} satisfies EntityView\n\nconst mockFileViewEntityHeader: EntityHeader = {\n name: mockFileViewEntity.name,\n id: MOCK_TABLE_ENTITY_ID,\n type: 'org.sagebionetworks.repo.model.table.EntityView',\n versionNumber: mockFileViewEntity.versionNumber,\n versionLabel: mockFileViewEntity.versionLabel,\n benefactorId: parseInt(mockProject.id),\n createdOn: mockFileViewEntity.createdOn,\n modifiedOn: mockFileViewEntity.modifiedOn,\n createdBy: mockFileViewEntity.createdBy,\n modifiedBy: mockFileViewEntity.modifiedBy,\n isLatestVersion: mockFileViewEntity.isLatestVersion,\n}\n\nexport const mockFileViewData: MockEntityData<EntityView> = {\n id: MOCK_FILE_VIEW_ENTITY_ID,\n name: MOCK_FILE_VIEW_NAME,\n entity: mockFileViewEntity,\n entityHeader: mockFileViewEntityHeader,\n}\n"],"mappings":";;;;;AAUA,IAAa,IAA2B,YAC3B,IAAsB,oBACtB,IAAqB;CAChC,IAAI;CACJ,UAAU,EAAY;CACtB,MAAM;CACN,cAAc;CACd,WAAA;CACA,YAAA;CACA,MAAM;CACN,WAAW,EAAE;CACb,cAAc;CACd,UAAU,CAAC,EAAY,GAAG;CAC1B,iBAAiB;CACjB,eAAe;CACf,cAAc;CACd,WAAW;CACX,YAAY;CACZ,iBAAiB;CAClB,EAgBY,IAA+C;CAC1D,IAAI;CACJ,MAAM;CACN,QAAQ;CACR,cAAc;EAjBd,MAAM,EAAmB;EACzB,IAAI;EACJ,MAAM;EACN,eAAe,EAAmB;EAClC,cAAc,EAAmB;EACjC,cAAc,SAAS,EAAY,GAAG;EACtC,WAAW,EAAmB;EAC9B,YAAY,EAAmB;EAC/B,WAAW,EAAmB;EAC9B,YAAY,EAAmB;EAC/B,iBAAiB,EAAmB;EAOtB;CACf"}
@@ -1 +1 @@
1
- {"version":3,"file":"mockGeneratedEntityData.js","names":[],"sources":["../../../src/mocks/entity/mockGeneratedEntityData.ts"],"sourcesContent":["import { EntityType } from '@sage-bionetworks/synapse-client'\nimport { FileEntity } from '@sage-bionetworks/synapse-types'\nimport { times } from 'lodash-es'\nimport {\n generateBaseEntity,\n generateProject,\n} from '../faker/generateFakeEntity'\nimport { MockEntityData } from './MockEntityData'\nimport { aclCustomizedMockFileEntities } from './mockFileEntityACLVariants'\nimport mockProjectEntityData from './mockProject'\nimport mockProject, { mockProjectIds } from './mockProject'\n\nconst generatedFileEntityData: MockEntityData<FileEntity>[] = times(50).map(i =>\n generateBaseEntity({\n id: 30000 + i + 1,\n type: EntityType.file,\n entity: {\n parentId: mockProject.id,\n },\n }),\n)\n\nconst generatedProjectsEntityData = mockProjectIds.map(id => {\n if (`syn${id}` === mockProjectEntityData.id) {\n return mockProjectEntityData\n }\n return generateProject(undefined, id)\n})\n\nexport const mockGeneratedEntityData: MockEntityData[] = [\n ...generatedProjectsEntityData,\n ...generatedFileEntityData,\n ...aclCustomizedMockFileEntities,\n]\n"],"mappings":";;;;;;AAYA,IAAM,IAAwD,EAAM,GAAG,CAAC,KAAI,MAC1E,EAAmB;CACjB,IAAI,MAAQ,IAAI;CAChB,MAAM,EAAW;CACjB,QAAQ,EACN,UAAU,EAAY,IACvB;CACF,CAAC,CACH,EASY,IAA4C;CACvD,GARkC,EAAe,KAAI,MACjD,MAAM,QAAS,EAAsB,KAChC,IAEF,EAAgB,KAAA,GAAW,EAAG,CACrC;CAIA,GAAG;CACH,GAAG;CACJ"}
1
+ {"version":3,"file":"mockGeneratedEntityData.js","names":[],"sources":["../../../src/mocks/entity/mockGeneratedEntityData.ts"],"sourcesContent":["import { EntityType } from '@sage-bionetworks/synapse-client'\nimport { FileEntity } from '@sage-bionetworks/synapse-types'\nimport { times } from 'lodash-es'\nimport {\n generateBaseEntity,\n generateProject,\n} from '../faker/generateFakeEntity'\nimport { MockEntityData } from './MockEntityData'\nimport { aclCustomizedMockFileEntities } from './mockFileEntityACLVariants'\nimport mockProjectEntityData from './mockProject'\nimport mockProject, { mockProjectIds } from './mockProject'\n\nconst generatedFileEntityData: MockEntityData<FileEntity>[] = times(50).map(i =>\n generateBaseEntity({\n id: 30000 + i + 1,\n type: EntityType.file,\n entity: {\n parentId: mockProject.id,\n },\n }),\n)\n\nconst generatedProjectsEntityData = mockProjectIds.map(id => {\n if (`syn${id}` === mockProjectEntityData.id) {\n return mockProjectEntityData\n }\n return generateProject(undefined, id)\n})\n\nexport const mockGeneratedEntityData: MockEntityData[] = [\n ...generatedProjectsEntityData,\n ...generatedFileEntityData,\n ...aclCustomizedMockFileEntities,\n]\n"],"mappings":";;;;;;AAYA,IAAM,IAAwD,EAAM,GAAG,CAAC,KAAI,MAC1E,EAAmB;CACjB,IAAI,MAAQ,IAAI;CAChB,MAAM,EAAW;CACjB,QAAQ,EACN,UAAU,EAAY,IACvB;CACF,CAAC,CACH,EASY,IAA4C;CACvD,GARkC,EAAe,KAAI,MACjD,MAAM,QAAS,EAAsB,KAChC,IAEF,EAAgB,KAAA,GAAW,EAAG,CAIlC;CACH,GAAG;CACH,GAAG;CACJ"}