synapse-react-client 4.0.26 → 4.0.27

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 (357) hide show
  1. package/dist/SWC.index.d.ts +3 -2
  2. package/dist/SWC.index.d.ts.map +1 -1
  3. package/dist/SWC.index.js +4 -3
  4. package/dist/SWC.index.js.map +1 -1
  5. package/dist/assets/icons/FileCopy.d.ts +5 -0
  6. package/dist/assets/icons/FileCopy.d.ts.map +1 -0
  7. package/dist/assets/icons/FileCopy.js +13 -0
  8. package/dist/assets/icons/FileCopy.js.map +1 -0
  9. package/dist/assets/icons/NIHIcon.d.ts +4 -0
  10. package/dist/assets/icons/NIHIcon.d.ts.map +1 -0
  11. package/dist/assets/icons/NIHIcon.js +14 -0
  12. package/dist/assets/icons/NIHIcon.js.map +1 -0
  13. package/dist/assets/icons/fileCopy.svg +8 -0
  14. package/dist/assets/icons/fileCopy2.js +33 -0
  15. package/dist/assets/icons/fileCopy2.js.map +1 -0
  16. package/dist/assets/icons/nih.js +35 -0
  17. package/dist/assets/icons/nih.js.map +1 -0
  18. package/dist/assets/icons/nih.svg +9 -0
  19. package/dist/assets/illustrations/compute_illustration.js +485 -0
  20. package/dist/assets/illustrations/compute_illustration.js.map +1 -0
  21. package/dist/assets/illustrations/compute_illustration.svg +204 -0
  22. package/dist/assets/illustrations/curate_data_illustration.js +479 -0
  23. package/dist/assets/illustrations/curate_data_illustration.js.map +1 -0
  24. package/dist/assets/illustrations/curate_data_illustration.svg +91 -0
  25. package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js +1 -1
  26. package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js +1 -1
  27. package/dist/components/Authentication/AuthenticationMethodSelection.d.ts +1 -0
  28. package/dist/components/Authentication/AuthenticationMethodSelection.d.ts.map +1 -1
  29. package/dist/components/Authentication/AuthenticationMethodSelection.js +17 -10
  30. package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
  31. package/dist/components/Authentication/LastLoginInfo.d.ts +2 -2
  32. package/dist/components/Authentication/LoginForm.d.ts +1 -0
  33. package/dist/components/Authentication/LoginForm.d.ts.map +1 -1
  34. package/dist/components/Authentication/LoginForm.js +3 -2
  35. package/dist/components/Authentication/LoginForm.js.map +1 -1
  36. package/dist/components/Authentication/LoginMethod.d.ts +2 -2
  37. package/dist/components/Authentication/LoginMethod.d.ts.map +1 -1
  38. package/dist/components/Authentication/LoginMethod.js +10 -8
  39. package/dist/components/Authentication/LoginMethod.js.map +1 -1
  40. package/dist/components/Authentication/StandaloneLoginForm.d.ts +1 -0
  41. package/dist/components/Authentication/StandaloneLoginForm.d.ts.map +1 -1
  42. package/dist/components/Authentication/StandaloneLoginForm.js +16 -15
  43. package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
  44. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +0 -2
  45. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  46. package/dist/components/Breadcrumbs/Breadcrumbs.js +24 -30
  47. package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  48. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js +1 -1
  49. package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js +1 -1
  50. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +1 -1
  51. package/dist/components/ChangePassword/ChangePassword.js +1 -1
  52. package/dist/components/CopyToClipboardString/CopyToClipboardString.d.ts +3 -2
  53. package/dist/components/CopyToClipboardString/CopyToClipboardString.d.ts.map +1 -1
  54. package/dist/components/CopyToClipboardString/CopyToClipboardString.js +27 -18
  55. package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
  56. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  57. package/dist/components/DataGrid/SynapseGrid.js +2 -5
  58. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  59. package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts +35 -0
  60. package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts.map +1 -0
  61. package/dist/components/DataGrid/SyncGridWithSourceButton.js +115 -0
  62. package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -0
  63. package/dist/components/DataGrid/useMergeGridWithRecordSet.d.ts +2 -0
  64. package/dist/components/DataGrid/useMergeGridWithRecordSet.d.ts.map +1 -1
  65. package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
  66. package/dist/components/DataGrid/useMergeGridWithSource.d.ts +12 -7
  67. package/dist/components/DataGrid/useMergeGridWithSource.d.ts.map +1 -1
  68. package/dist/components/DataGrid/useMergeGridWithSource.js +31 -25
  69. package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
  70. package/dist/components/DownloadCart/DownloadListTable.js +1 -1
  71. package/dist/components/DynamicForm/DynamicForm.js +1 -1
  72. package/dist/components/EntityAclEditor/EntityAclEditorModal.js +1 -1
  73. package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js +1 -1
  74. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +1 -1
  75. package/dist/components/EntityFinder/EntityIdTextField.d.ts +1 -0
  76. package/dist/components/EntityFinder/EntityIdTextField.d.ts.map +1 -1
  77. package/dist/components/EntityFinder/EntityIdTextField.js +7 -6
  78. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  79. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +1 -1
  80. package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js +1 -1
  81. package/dist/components/EntitySidebar/EntitySidebar.css +1 -1
  82. package/dist/components/EntitySidebar/EntitySidebar.d.ts.map +1 -1
  83. package/dist/components/EntitySidebar/EntitySidebar.js +47 -39
  84. package/dist/components/EntitySidebar/EntitySidebar.js.map +1 -1
  85. package/dist/components/EntitySidebar/EntitySidebar.module.js +11 -11
  86. package/dist/components/EntitySidebar/EntitySidebar.module.js.map +1 -1
  87. package/dist/components/EntitySidebar/EntitySidebar.module.scss +6 -6
  88. package/dist/components/FieldDescription/FieldDescription.css +1 -0
  89. package/dist/components/FieldDescription/FieldDescription.d.ts +15 -0
  90. package/dist/components/FieldDescription/FieldDescription.d.ts.map +1 -0
  91. package/dist/components/FieldDescription/FieldDescription.js +13 -0
  92. package/dist/components/FieldDescription/FieldDescription.js.map +1 -0
  93. package/dist/components/FieldDescription/FieldDescription.module.js +5 -0
  94. package/dist/components/FieldDescription/FieldDescription.module.js.map +1 -0
  95. package/dist/components/FieldDescription/FieldDescription.module.scss +8 -0
  96. package/dist/components/FieldDescription/index.d.ts +3 -0
  97. package/dist/components/FieldDescription/index.d.ts.map +1 -0
  98. package/dist/components/FieldDescription/index.js +2 -0
  99. package/dist/components/IconSvg/IconSvg.d.ts +1 -1
  100. package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
  101. package/dist/components/IconSvg/IconSvg.js +216 -212
  102. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  103. package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js +1 -1
  104. package/dist/components/OAuthClientManagement/OAuthManagement.js +1 -1
  105. package/dist/components/PortalAclEditor/PortalAclEditorModal.js +1 -1
  106. package/dist/components/PortalList/CreatePortalModal.js +1 -1
  107. package/dist/components/PortalList/PortalCard.js +1 -1
  108. package/dist/components/ProjectInfo/ProjectInfo.css +1 -0
  109. package/dist/components/ProjectInfo/ProjectInfo.d.ts +5 -0
  110. package/dist/components/ProjectInfo/ProjectInfo.d.ts.map +1 -0
  111. package/dist/components/ProjectInfo/ProjectInfo.js +50 -0
  112. package/dist/components/ProjectInfo/ProjectInfo.js.map +1 -0
  113. package/dist/components/ProjectInfo/ProjectInfo.module.js +11 -0
  114. package/dist/components/ProjectInfo/ProjectInfo.module.js.map +1 -0
  115. package/dist/components/ProjectInfo/ProjectInfo.module.scss +35 -0
  116. package/dist/components/ProjectInfo/ProjectInfoPopover.d.ts +10 -0
  117. package/dist/components/ProjectInfo/ProjectInfoPopover.d.ts.map +1 -0
  118. package/dist/components/ProjectInfo/ProjectInfoPopover.js +94 -0
  119. package/dist/components/ProjectInfo/ProjectInfoPopover.js.map +1 -0
  120. package/dist/components/ProjectStorage/ProjectDataAvailability.d.ts +2 -1
  121. package/dist/components/ProjectStorage/ProjectDataAvailability.d.ts.map +1 -1
  122. package/dist/components/ProjectStorage/ProjectDataAvailability.js +67 -75
  123. package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
  124. package/dist/components/StorybookComponentWrapper.js +1 -1
  125. package/dist/components/SynapseChat/SynapseChat.js +1 -1
  126. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +1 -1
  127. package/dist/components/SynapseTable/table-top/DownloadOptions.js +1 -1
  128. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  129. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js +1 -1
  130. package/dist/components/TextField/TextField.css +1 -1
  131. package/dist/components/TextField/TextField.d.ts.map +1 -1
  132. package/dist/components/TextField/TextField.js +27 -25
  133. package/dist/components/TextField/TextField.js.map +1 -1
  134. package/dist/components/TextField/TextField.module.js +3 -3
  135. package/dist/components/TextField/TextField.module.js.map +1 -1
  136. package/dist/components/TextField/TextField.module.scss +2 -5
  137. package/dist/components/Webhook/WebhookVerificationDialog.js +1 -1
  138. package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js +1 -1
  139. package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js +1 -1
  140. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +1 -1
  141. package/dist/components/entity/page/title_bar/EntityPageTitleBar.d.ts.map +1 -1
  142. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js +66 -49
  143. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
  144. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +1 -1
  145. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  146. package/dist/components/error/SendMessageToEntityOwnerDialog.js +1 -1
  147. package/dist/components/index.js +1 -1
  148. package/dist/components/menu/ComplexMenu.d.ts.map +1 -1
  149. package/dist/components/menu/ComplexMenu.js +1 -4
  150. package/dist/components/menu/ComplexMenu.js.map +1 -1
  151. package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js +1 -1
  152. package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
  153. package/dist/features/curator/dashboard/CuratorDashboard.d.ts +1 -1
  154. package/dist/features/curator/dashboard/CuratorDashboard.d.ts.map +1 -1
  155. package/dist/features/curator/dashboard/CuratorDashboard.js +36 -35
  156. package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
  157. package/dist/features/curator/dashboard/CuratorDashboardRouter.d.ts +13 -0
  158. package/dist/features/curator/dashboard/CuratorDashboardRouter.d.ts.map +1 -0
  159. package/dist/features/curator/dashboard/CuratorDashboardRouter.js +37 -0
  160. package/dist/features/curator/dashboard/CuratorDashboardRouter.js.map +1 -0
  161. package/dist/features/curator/dashboard/components/CurationTaskCard.css +1 -1
  162. package/dist/features/curator/dashboard/components/CurationTaskCard.d.ts +3 -1
  163. package/dist/features/curator/dashboard/components/CurationTaskCard.d.ts.map +1 -1
  164. package/dist/features/curator/dashboard/components/CurationTaskCard.js +26 -157
  165. package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
  166. package/dist/features/curator/dashboard/components/CurationTaskCard.module.js +10 -6
  167. package/dist/features/curator/dashboard/components/CurationTaskCard.module.js.map +1 -1
  168. package/dist/features/curator/dashboard/components/CurationTaskCard.module.scss +31 -0
  169. package/dist/features/curator/dashboard/components/CurationTaskCardLayout.d.ts +25 -0
  170. package/dist/features/curator/dashboard/components/CurationTaskCardLayout.d.ts.map +1 -0
  171. package/dist/features/curator/dashboard/components/CurationTaskCardLayout.js +134 -0
  172. package/dist/features/curator/dashboard/components/CurationTaskCardLayout.js.map +1 -0
  173. package/dist/features/curator/dashboard/components/ExecutableTaskCard.d.ts +10 -0
  174. package/dist/features/curator/dashboard/components/ExecutableTaskCard.d.ts.map +1 -0
  175. package/dist/features/curator/dashboard/components/ExecutableTaskCard.js +51 -0
  176. package/dist/features/curator/dashboard/components/ExecutableTaskCard.js.map +1 -0
  177. package/dist/features/curator/dashboard/components/GridTaskCard.d.ts +10 -0
  178. package/dist/features/curator/dashboard/components/GridTaskCard.d.ts.map +1 -0
  179. package/dist/features/curator/dashboard/components/GridTaskCard.js +35 -0
  180. package/dist/features/curator/dashboard/components/GridTaskCard.js.map +1 -0
  181. package/dist/features/curator/dashboard/components/NextStepButton.css +1 -1
  182. package/dist/features/curator/dashboard/components/NextStepButton.d.ts +3 -0
  183. package/dist/features/curator/dashboard/components/NextStepButton.d.ts.map +1 -1
  184. package/dist/features/curator/dashboard/components/NextStepButton.js +56 -26
  185. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  186. package/dist/features/curator/dashboard/components/NextStepButton.module.js +6 -5
  187. package/dist/features/curator/dashboard/components/NextStepButton.module.js.map +1 -1
  188. package/dist/features/curator/dashboard/components/NextStepButton.module.scss +28 -0
  189. package/dist/features/curator/dashboard/components/getExecutableTaskButtonState.d.ts +31 -0
  190. package/dist/features/curator/dashboard/components/getExecutableTaskButtonState.d.ts.map +1 -0
  191. package/dist/features/curator/dashboard/components/getExecutableTaskButtonState.js +32 -0
  192. package/dist/features/curator/dashboard/components/getExecutableTaskButtonState.js.map +1 -0
  193. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
  194. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +213 -204
  195. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  196. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts +0 -1
  197. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
  198. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +19 -39
  199. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  200. package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts +9 -3
  201. package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts.map +1 -1
  202. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +37 -46
  203. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  204. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.d.ts +17 -0
  205. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.d.ts.map +1 -0
  206. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.js +43 -0
  207. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.js.map +1 -0
  208. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.d.ts.map +1 -1
  209. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js +27 -26
  210. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  211. package/dist/features/entity/metadata-task/create-task/CommonTaskFields.d.ts +16 -0
  212. package/dist/features/entity/metadata-task/create-task/CommonTaskFields.d.ts.map +1 -0
  213. package/dist/features/entity/metadata-task/create-task/CommonTaskFields.js +64 -0
  214. package/dist/features/entity/metadata-task/create-task/CommonTaskFields.js.map +1 -0
  215. package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.d.ts +41 -0
  216. package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.d.ts.map +1 -0
  217. package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.js +165 -0
  218. package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.js.map +1 -0
  219. package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.d.ts +18 -0
  220. package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.d.ts.map +1 -0
  221. package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.js +78 -0
  222. package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.js.map +1 -0
  223. package/dist/features/entity/metadata-task/create-task/CreateTaskCategoryPicker.d.ts +10 -0
  224. package/dist/features/entity/metadata-task/create-task/CreateTaskCategoryPicker.d.ts.map +1 -0
  225. package/dist/features/entity/metadata-task/create-task/CreateTaskCategoryPicker.js +40 -0
  226. package/dist/features/entity/metadata-task/create-task/CreateTaskCategoryPicker.js.map +1 -0
  227. package/dist/features/entity/metadata-task/create-task/CreateTaskConfirmation.d.ts +13 -0
  228. package/dist/features/entity/metadata-task/create-task/CreateTaskConfirmation.d.ts.map +1 -0
  229. package/dist/features/entity/metadata-task/create-task/CreateTaskConfirmation.js +35 -0
  230. package/dist/features/entity/metadata-task/create-task/CreateTaskConfirmation.js.map +1 -0
  231. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.d.ts +41 -0
  232. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.d.ts.map +1 -0
  233. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js +198 -0
  234. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js.map +1 -0
  235. package/dist/features/entity/metadata-task/create-task/EditCurationTaskPage.d.ts +8 -0
  236. package/dist/features/entity/metadata-task/create-task/EditCurationTaskPage.d.ts.map +1 -0
  237. package/dist/features/entity/metadata-task/create-task/EditCurationTaskPage.js +29 -0
  238. package/dist/features/entity/metadata-task/create-task/EditCurationTaskPage.js.map +1 -0
  239. package/dist/features/entity/metadata-task/create-task/FileBasedFields.d.ts +13 -0
  240. package/dist/features/entity/metadata-task/create-task/FileBasedFields.d.ts.map +1 -0
  241. package/dist/features/entity/metadata-task/create-task/FileBasedFields.js +65 -0
  242. package/dist/features/entity/metadata-task/create-task/FileBasedFields.js.map +1 -0
  243. package/dist/features/entity/metadata-task/create-task/ProjectSelectorField.d.ts +11 -0
  244. package/dist/features/entity/metadata-task/create-task/ProjectSelectorField.d.ts.map +1 -0
  245. package/dist/features/entity/metadata-task/create-task/ProjectSelectorField.js +33 -0
  246. package/dist/features/entity/metadata-task/create-task/ProjectSelectorField.js.map +1 -0
  247. package/dist/features/entity/metadata-task/create-task/RecordBasedFields.d.ts +13 -0
  248. package/dist/features/entity/metadata-task/create-task/RecordBasedFields.d.ts.map +1 -0
  249. package/dist/features/entity/metadata-task/create-task/RecordBasedFields.js +38 -0
  250. package/dist/features/entity/metadata-task/create-task/RecordBasedFields.js.map +1 -0
  251. package/dist/features/entity/metadata-task/create-task/RecordSetFields.d.ts +13 -0
  252. package/dist/features/entity/metadata-task/create-task/RecordSetFields.d.ts.map +1 -0
  253. package/dist/features/entity/metadata-task/create-task/RecordSetFields.js +72 -0
  254. package/dist/features/entity/metadata-task/create-task/RecordSetFields.js.map +1 -0
  255. package/dist/features/entity/metadata-task/create-task/SampleSheetFields.d.ts +11 -0
  256. package/dist/features/entity/metadata-task/create-task/SampleSheetFields.d.ts.map +1 -0
  257. package/dist/features/entity/metadata-task/create-task/SampleSheetFields.js +42 -0
  258. package/dist/features/entity/metadata-task/create-task/SampleSheetFields.js.map +1 -0
  259. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.d.ts +17 -0
  260. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.d.ts.map +1 -0
  261. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js +70 -0
  262. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js.map +1 -0
  263. package/dist/features/entity/metadata-task/create-task/TaskFormActions.d.ts +23 -0
  264. package/dist/features/entity/metadata-task/create-task/TaskFormActions.d.ts.map +1 -0
  265. package/dist/features/entity/metadata-task/create-task/TaskFormActions.js +68 -0
  266. package/dist/features/entity/metadata-task/create-task/TaskFormActions.js.map +1 -0
  267. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.d.ts +17 -0
  268. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.d.ts.map +1 -0
  269. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js +33 -0
  270. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js.map +1 -0
  271. package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.d.ts +50 -0
  272. package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.d.ts.map +1 -0
  273. package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.js +76 -0
  274. package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.js.map +1 -0
  275. package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.d.ts +36 -0
  276. package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.d.ts.map +1 -0
  277. package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.js +31 -0
  278. package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.js.map +1 -0
  279. package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.d.ts +32 -0
  280. package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.d.ts.map +1 -0
  281. package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.js +33 -0
  282. package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.js.map +1 -0
  283. package/dist/features/entity/metadata-task/create-task/utils/taskIdValidation.d.ts +10 -0
  284. package/dist/features/entity/metadata-task/create-task/utils/taskIdValidation.d.ts.map +1 -0
  285. package/dist/features/entity/metadata-task/create-task/utils/taskIdValidation.js +13 -0
  286. package/dist/features/entity/metadata-task/create-task/utils/taskIdValidation.js.map +1 -0
  287. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.d.ts.map +1 -1
  288. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js +24 -24
  289. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
  290. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.d.ts.map +1 -1
  291. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js +2 -2
  292. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
  293. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
  294. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +33 -32
  295. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
  296. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.d.ts.map +1 -1
  297. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js +24 -21
  298. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
  299. package/dist/features/entity/metadata-task/utils/constants.d.ts +84 -15
  300. package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
  301. package/dist/features/entity/metadata-task/utils/constants.js +47 -3
  302. package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
  303. package/dist/features/entity/metadata-task/utils/dueDate.d.ts +22 -0
  304. package/dist/features/entity/metadata-task/utils/dueDate.d.ts.map +1 -0
  305. package/dist/features/entity/metadata-task/utils/dueDate.js +24 -0
  306. package/dist/features/entity/metadata-task/utils/dueDate.js.map +1 -0
  307. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.d.ts +2 -2
  308. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.d.ts.map +1 -1
  309. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js +5 -6
  310. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
  311. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.d.ts +4 -4
  312. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.d.ts.map +1 -1
  313. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js +5 -6
  314. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
  315. package/dist/features/entity/metadata-task/utils/types.d.ts +12 -0
  316. package/dist/features/entity/metadata-task/utils/types.d.ts.map +1 -0
  317. package/dist/features/entity/metadata-task/utils/types.js +18 -0
  318. package/dist/features/entity/metadata-task/utils/types.js.map +1 -0
  319. package/dist/mocks/curation/mockCurationTask.d.ts +6 -0
  320. package/dist/mocks/curation/mockCurationTask.d.ts.map +1 -1
  321. package/dist/mocks/curation/mockCurationTask.js +20 -3
  322. package/dist/mocks/curation/mockCurationTask.js.map +1 -1
  323. package/dist/mocks/msw/handlers/curationTaskExecutionHandlers.d.ts +16 -0
  324. package/dist/mocks/msw/handlers/curationTaskExecutionHandlers.d.ts.map +1 -0
  325. package/dist/mocks/msw/handlers/curationTaskExecutionHandlers.js +24 -0
  326. package/dist/mocks/msw/handlers/curationTaskExecutionHandlers.js.map +1 -0
  327. package/dist/synapse-client/SynapseClient.d.ts +7 -1
  328. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  329. package/dist/synapse-client/SynapseClient.js +493 -482
  330. package/dist/synapse-client/SynapseClient.js.map +1 -1
  331. package/dist/synapse-client/index.js +3 -3
  332. package/dist/synapse-queries/curation/task/useCurationTask.d.ts +8 -1
  333. package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
  334. package/dist/synapse-queries/curation/task/useCurationTask.js +48 -34
  335. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  336. package/dist/theme/palette/Palettes.js +2 -2
  337. package/dist/theme/palette/Palettes.js.map +1 -1
  338. package/dist/tsconfig.build.tsbuildinfo +1 -1
  339. package/dist/utils/AppUtils/session/useSessionManager.d.ts.map +1 -1
  340. package/dist/utils/AppUtils/session/useSessionManager.js +50 -48
  341. package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
  342. package/dist/utils/SynapseConstants.d.ts +4 -1
  343. package/dist/utils/SynapseConstants.d.ts.map +1 -1
  344. package/dist/utils/SynapseConstants.js +86 -83
  345. package/dist/utils/SynapseConstants.js.map +1 -1
  346. package/dist/utils/featureflag/FeatureFlags.d.ts +2 -2
  347. package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
  348. package/dist/utils/featureflag/FeatureFlags.js +1 -1
  349. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  350. package/dist/utils/hooks/useDetectSSOCode.d.ts.map +1 -1
  351. package/dist/utils/hooks/useDetectSSOCode.js +37 -27
  352. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  353. package/package.json +5 -5
  354. package/dist/components/DataGrid/MergeGridWithSourceTableButton.d.ts +0 -8
  355. package/dist/components/DataGrid/MergeGridWithSourceTableButton.d.ts.map +0 -1
  356. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js +0 -64
  357. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +0 -1
@@ -0,0 +1,115 @@
1
+ import { displayToast as e } from "../ToastMessage/ToastMessage.js";
2
+ import { convertToEntityType as t } from "../../utils/functions/EntityTypeUtils.js";
3
+ import { useGetEntity as n } from "../../synapse-queries/entity/useEntity.js";
4
+ import { useGetSchemaBinding as r } from "../../synapse-queries/entity/useEntityBoundSchema.js";
5
+ import { useGetFeatureFlag as i } from "../../synapse-queries/featureflags/useGetFeatureFlag.js";
6
+ import "../../synapse-queries/featureflags/index.js";
7
+ import "../../synapse-queries/index.js";
8
+ import { FeatureFlagEnum as a } from "../../utils/featureflag/FeatureFlags.js";
9
+ import "../index.js";
10
+ import o from "./components/GridMenuButton/GridMenuButton.js";
11
+ import s from "./useMergeGridWithSource.js";
12
+ import { Skeleton as c, Tooltip as l } from "@mui/material";
13
+ import { jsx as u } from "react/jsx-runtime";
14
+ import { EntityType as d, instanceOfEntityUpdateResults as f, instanceOfRecordSet as p, instanceOfUploadToTableResult as m } from "@sage-bionetworks/synapse-client";
15
+ import { CloudDownloadTwoTone as h, CloudSyncTwoTone as g } from "@mui/icons-material";
16
+ import { c as _ } from "react/compiler-runtime";
17
+ //#region src/components/DataGrid/SyncGridWithSourceButton.tsx
18
+ function v(e) {
19
+ let d = _(19), { gridSession: f } = e, { data: p, isLoading: m } = n(f.sourceEntityId), v = !!f.sourceEntityId, w;
20
+ d[0] === v ? w = d[1] : (w = { enabled: v }, d[0] = v, d[1] = w);
21
+ let { data: T, isLoading: E } = r(f.sourceEntityId ?? "", w), D = p?.concreteType ? t(p.concreteType) : void 0, O = i(a.ENABLE_RECORDSET_SYNCHRONIZATION), k;
22
+ d[2] === Symbol.for("react.memo_cache_sentinel") ? (k = {
23
+ onSuccess: b,
24
+ onError: y
25
+ }, d[2] = k) : k = d[2];
26
+ let { mutate: A, isPending: j } = s(k), M = O && p !== void 0 && T !== void 0 && x(f, p, T), { buttonText: N, tooltipText: P } = S(M, D, O);
27
+ if (m || E) {
28
+ let e;
29
+ return d[3] === Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ u(c, { width: "100px" }), d[3] = e) : e = d[3], e;
30
+ }
31
+ let F;
32
+ d[4] === M ? F = d[5] : (F = u(M ? h : g, {}), d[4] = M, d[5] = F);
33
+ let I;
34
+ d[6] !== f || d[7] !== A || d[8] !== M || d[9] !== D ? (I = () => {
35
+ A(C(f, D, M));
36
+ }, d[6] = f, d[7] = A, d[8] = M, d[9] = D, d[10] = I) : I = d[10];
37
+ let L;
38
+ d[11] !== N || d[12] !== j || d[13] !== F || d[14] !== I ? (L = /* @__PURE__ */ u(o, {
39
+ startIcon: F,
40
+ loading: j,
41
+ onClick: I,
42
+ variant: "contained",
43
+ children: N
44
+ }), d[11] = N, d[12] = j, d[13] = F, d[14] = I, d[15] = L) : L = d[15];
45
+ let R;
46
+ return d[16] !== L || d[17] !== P ? (R = /* @__PURE__ */ u(l, {
47
+ title: P,
48
+ describeChild: !0,
49
+ children: L
50
+ }), d[16] = L, d[17] = P, d[18] = R) : R = d[18], R;
51
+ }
52
+ function y(t) {
53
+ return e(t.message, "danger");
54
+ }
55
+ function b(t, n) {
56
+ bb14: switch (t.type) {
57
+ case "synchronize":
58
+ w(t.data, n.syncType);
59
+ break bb14;
60
+ case "tableUpdateTransaction":
61
+ T(t.data);
62
+ break bb14;
63
+ case "recordset_overwrite":
64
+ e("Successfully updated RecordSet.", "success");
65
+ break bb14;
66
+ default:
67
+ }
68
+ }
69
+ function x(e, t, n) {
70
+ if (!(t != null && p(t))) return !1;
71
+ let r = e.sourceEntityVersionNumber != null && t.versionNumber != null && e.sourceEntityVersionNumber < t.versionNumber, i = n != null && e.gridJsonSchema$Id !== n.jsonSchemaVersionInfo?.$id;
72
+ return r || i;
73
+ }
74
+ function S(e, t, n) {
75
+ return e ? {
76
+ buttonText: "Import latest changes",
77
+ tooltipText: "Imports any recent changes into this Curator session. Your changes will not yet be applied."
78
+ } : t === d.table || t === d.recordset && !n ? {
79
+ buttonText: "Apply changes",
80
+ tooltipText: "Applies any changes made in this Curator session to the source"
81
+ } : {
82
+ buttonText: "Sync changes",
83
+ tooltipText: "Applies any changes made in this Curator session, and imports any recent changes into this Curator session."
84
+ };
85
+ }
86
+ function C(e, t, n) {
87
+ return {
88
+ gridSessionId: e.sessionId,
89
+ sourceEntityId: e.sourceEntityId,
90
+ sourceEntityType: t,
91
+ syncType: n ? "PULL" : "PULL_PUSH"
92
+ };
93
+ }
94
+ function w(t, n) {
95
+ t.errorMessages == null || t.errorMessages.length === 0 ? e(n === "PULL" ? "Successfully imported latest changes." : "Successfully synchronized changes.", "success") : e(/* @__PURE__ */ u("ul", { children: t.errorMessages.map((e, t) => /* @__PURE__ */ u("li", { children: e }, t)) }), "warning", { title: "Some changes could not be applied" });
96
+ }
97
+ function T(t) {
98
+ if (t.results?.length) {
99
+ let n = t.results[0];
100
+ if (f(n)) {
101
+ let t = E(n).join("\n");
102
+ t ? e(`Some changes could not be applied:\n${t}`, "danger") : e("Changes applied successfully", "success");
103
+ } else if (m(n)) {
104
+ let t = n.rowsProcessed?.toLocaleString();
105
+ e(`Successfully updated ${t} rows.`, "success");
106
+ }
107
+ }
108
+ }
109
+ function E(e) {
110
+ return e.updateResults?.filter((e) => !!e.failureCode).map((e) => `${e.entityId}: ${e.failureMessage} (code: ${e.failureCode})`) ?? [];
111
+ }
112
+ //#endregion
113
+ export { C as buildMergeGridVariables, v as default, S as getSyncButtonLabels, w as onSynchronizeSuccess, x as shouldPullBeforePush };
114
+
115
+ //# sourceMappingURL=SyncGridWithSourceButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncGridWithSourceButton.js","names":["GridMenuButton","useMergeGridWithSource","MergeGridWithSource","displayToast","useGetEntity","useGetSchemaBinding","useGetFeatureFlag","FeatureFlagEnum","convertToEntityType","CloudDownloadTwoTone","CloudSyncTwoTone","Skeleton","Tooltip","Entity","EntityType","EntityUpdateResults","GridSession","instanceOfEntityUpdateResults","instanceOfRecordSet","instanceOfUploadToTableResult","JsonSchemaObjectBinding","SynchronizeGridResponse","TableUpdateTransactionResponse","SyncType","SyncGridWithSourceButtonProps","gridSession","SyncGridWithSourceButton","props","$","_c","data","entity","isLoading","entityLoading","sourceEntityId","t0","t1","enabled","sourceEntitySchemaBinding","schemaBindingIsLoading","sourceEntityType","concreteType","undefined","enableRecordSetSync","ENABLE_RECORDSET_SYNCHRONIZATION","t2","Symbol","for","onSuccess","_temp","onError","_temp2","mutate","mergeGrid","isPending","shouldPull","shouldPullBeforePush","buttonText","tooltipText","getSyncButtonLabels","isLoadingPrerequisiteData","t3","t4","buildMergeGridVariables","t5","t6","e","message","result","variables","bb14","type","onSynchronizeSuccess","syncType","onMergeTableSuccess","sourceEntity","isPullSupported","isSourceEntityUpdated","sourceEntityVersionNumber","versionNumber","isSchemaBindingUpdated","gridJsonSchema$Id","jsonSchemaVersionInfo","$id","table","recordset","gridSessionId","sessionId","errorMessages","length","map","msg","index","title","results","updateResult","failureMessages","getEntityUpdateResultsErrorMessages","join","rowsUpdatedStr","rowsProcessed","toLocaleString","updateResults","filter","failureCode","r","entityId","failureMessage"],"sources":["../../../src/components/DataGrid/SyncGridWithSourceButton.tsx"],"sourcesContent":["import GridMenuButton from '@/components/DataGrid/components/GridMenuButton/GridMenuButton'\nimport useMergeGridWithSource, {\n MergeGridWithSource,\n} from '@/components/DataGrid/useMergeGridWithSource'\nimport { displayToast } from '@/components/index'\nimport { useGetEntity } from '@/synapse-queries'\nimport { useGetSchemaBinding } from '@/synapse-queries/entity/useEntityBoundSchema'\nimport { useGetFeatureFlag } from '@/synapse-queries/featureflags'\nimport { FeatureFlagEnum } from '@/utils/featureflag/FeatureFlags'\nimport { convertToEntityType } from '@/utils/functions/EntityTypeUtils'\nimport { CloudDownloadTwoTone, CloudSyncTwoTone } from '@mui/icons-material'\nimport { Skeleton, Tooltip } from '@mui/material'\nimport {\n Entity,\n EntityType,\n EntityUpdateResults,\n GridSession,\n instanceOfEntityUpdateResults,\n instanceOfRecordSet,\n instanceOfUploadToTableResult,\n JsonSchemaObjectBinding,\n SynchronizeGridResponse,\n TableUpdateTransactionResponse,\n} from '@sage-bionetworks/synapse-client'\nimport { SyncType } from '@sage-bionetworks/synapse-client/generated/models/SyncType'\n\nexport type SyncGridWithSourceButtonProps = {\n gridSession: GridSession\n}\n\nexport default function SyncGridWithSourceButton(\n props: SyncGridWithSourceButtonProps,\n) {\n const { gridSession } = props\n\n const { data: entity, isLoading: entityLoading } = useGetEntity(\n gridSession.sourceEntityId,\n )\n\n const { data: sourceEntitySchemaBinding, isLoading: schemaBindingIsLoading } =\n useGetSchemaBinding(gridSession.sourceEntityId ?? '', {\n enabled: !!gridSession.sourceEntityId,\n })\n\n const sourceEntityType = entity?.concreteType\n ? convertToEntityType(entity.concreteType)\n : undefined\n\n const enableRecordSetSync = useGetFeatureFlag(\n FeatureFlagEnum.ENABLE_RECORDSET_SYNCHRONIZATION,\n )\n\n const { mutate: mergeGrid, isPending } = useMergeGridWithSource({\n onSuccess: (result, variables) => {\n switch (result.type) {\n case 'synchronize':\n onSynchronizeSuccess(result.data, variables.syncType)\n break\n case 'tableUpdateTransaction':\n onMergeTableSuccess(result.data)\n break\n case 'recordset_overwrite':\n displayToast('Successfully updated RecordSet.', 'success')\n break\n default:\n result satisfies never\n }\n },\n onError: e => displayToast(e.message, 'danger'),\n })\n\n // At this time, only RecordSet sync supports PULL.\n // If the RecordSet source or JSON Schema has been updated since this grid was created,\n // we have the user PULL the latest changes before enabling a full PULL_PUSH, so they\n // have an opportunity to handle and fix unexpected merge outcomes.\n const shouldPull =\n enableRecordSetSync &&\n entity !== undefined &&\n sourceEntitySchemaBinding !== undefined &&\n shouldPullBeforePush(gridSession, entity, sourceEntitySchemaBinding)\n\n const { buttonText, tooltipText } = getSyncButtonLabels(\n shouldPull,\n sourceEntityType,\n enableRecordSetSync,\n )\n\n const isLoadingPrerequisiteData = entityLoading || schemaBindingIsLoading\n\n if (isLoadingPrerequisiteData) {\n return <Skeleton width=\"100px\" />\n }\n\n return (\n <Tooltip title={tooltipText} describeChild>\n <GridMenuButton\n startIcon={shouldPull ? <CloudDownloadTwoTone /> : <CloudSyncTwoTone />}\n loading={isPending}\n onClick={() => {\n mergeGrid(\n buildMergeGridVariables(gridSession, sourceEntityType, shouldPull),\n )\n }}\n variant=\"contained\"\n >\n {buttonText}\n </GridMenuButton>\n </Tooltip>\n )\n}\n\n/**\n * If the source data or JSON Schema has been updated since this grid was created, we have\n * the user PULL the latest changes before enabling a full PULL_PUSH, so they have an\n * opportunity to handle unexpected merge outcomes.\n *\n * This only applies to source types that support the PULL SyncType.\n *\n * @param gridSession The grid session to check.\n * @param sourceEntity The source entity to check.\n * @param sourceEntitySchemaBinding The source entity's schema binding to check.\n * @returns True if the user should PULL before PULL_PUSH, false otherwise.\n */\nexport function shouldPullBeforePush(\n gridSession: GridSession,\n sourceEntity: Entity | null,\n sourceEntitySchemaBinding: JsonSchemaObjectBinding | null,\n): boolean {\n // Currently, only RecordSet supports PULL\n const isPullSupported =\n sourceEntity != null && instanceOfRecordSet(sourceEntity)\n if (!isPullSupported) {\n return false\n }\n\n // Guide the user to PULL first if the source was updated since the grid was\n // created/synced, or if the JSON Schema binding has updated.\n const isSourceEntityUpdated =\n gridSession.sourceEntityVersionNumber != null &&\n sourceEntity.versionNumber != null &&\n gridSession.sourceEntityVersionNumber < sourceEntity.versionNumber\n\n const isSchemaBindingUpdated =\n sourceEntitySchemaBinding != null &&\n gridSession.gridJsonSchema$Id !==\n sourceEntitySchemaBinding.jsonSchemaVersionInfo?.$id\n\n return isSourceEntityUpdated || isSchemaBindingUpdated\n}\n\n/**\n * Determines the button label and tooltip copy for the sync button based on whether the\n * user should PULL before PULL_PUSH, and the source entity's type.\n */\nexport function getSyncButtonLabels(\n shouldPull: boolean,\n sourceEntityType: EntityType | undefined,\n enableRecordSetSync: boolean,\n): { buttonText: string; tooltipText: string } {\n if (shouldPull) {\n return {\n buttonText: 'Import latest changes',\n tooltipText:\n 'Imports any recent changes into this Curator session. Your changes will not yet be applied.',\n }\n }\n if (\n sourceEntityType === EntityType.table ||\n (sourceEntityType === EntityType.recordset && !enableRecordSetSync)\n ) {\n return {\n buttonText: 'Apply changes',\n tooltipText:\n 'Applies any changes made in this Curator session to the source',\n }\n }\n return {\n buttonText: 'Sync changes',\n tooltipText:\n 'Applies any changes made in this Curator session, and imports any recent changes into this Curator session.',\n }\n}\n\n/**\n * Builds the variables passed to the merge grid mutation for the given grid session,\n * source entity type, and whether the user should PULL before PULL_PUSH.\n */\nexport function buildMergeGridVariables(\n gridSession: GridSession,\n sourceEntityType: EntityType | undefined,\n shouldPull: boolean,\n): MergeGridWithSource {\n return {\n gridSessionId: gridSession.sessionId!,\n sourceEntityId: gridSession.sourceEntityId!,\n sourceEntityType,\n syncType: shouldPull ? 'PULL' : 'PULL_PUSH',\n }\n}\n\nexport function onSynchronizeSuccess(\n result: SynchronizeGridResponse,\n syncType?: SyncType,\n) {\n if (result.errorMessages == null || result.errorMessages.length === 0) {\n if (syncType === 'PULL') {\n displayToast('Successfully imported latest changes.', 'success')\n } else {\n displayToast('Successfully synchronized changes.', 'success')\n }\n } else {\n displayToast(\n <ul>\n {result.errorMessages.map((msg, index) => (\n <li key={index}>{msg}</li>\n ))}\n </ul>,\n 'warning',\n { title: 'Some changes could not be applied' },\n )\n }\n}\n\nfunction onMergeTableSuccess(result: TableUpdateTransactionResponse) {\n if (result.results?.length) {\n // There should only be one result since the CSV upload is done in one step\n const updateResult = result.results[0]\n if (instanceOfEntityUpdateResults(updateResult)) {\n // This is an update to the contents of a View\n const failureMessages =\n getEntityUpdateResultsErrorMessages(updateResult).join('\\n')\n\n if (failureMessages) {\n displayToast(\n `Some changes could not be applied:\\n${failureMessages}`,\n 'danger',\n )\n } else {\n displayToast('Changes applied successfully', 'success')\n }\n } else if (instanceOfUploadToTableResult(updateResult)) {\n // This is an update to a TableEntity\n const rowsUpdatedStr = updateResult.rowsProcessed?.toLocaleString()\n displayToast(`Successfully updated ${rowsUpdatedStr} rows.`, 'success')\n }\n }\n}\n\nfunction getEntityUpdateResultsErrorMessages(\n results: EntityUpdateResults,\n): string[] {\n return (\n results.updateResults\n ?.filter(e => !!e.failureCode)\n .map(\n r => `${r.entityId}: ${r.failureMessage} (code: ${r.failureCode})`,\n ) ?? []\n )\n}\n"],"mappings":"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"}
@@ -5,6 +5,8 @@ export type MergeGridWithRecordSetInput = {
5
5
  };
6
6
  /**
7
7
  * Query mutation hook for exporting a grid session back into a RecordSet.
8
+ *
9
+ * @deprecated This is a legacy method for overwriting a RecordSet with data from a Grid. Use `useSynchronizeGridSession` instead.
8
10
  */
9
11
  export default function useMergeGridWithRecordSet(options?: Omit<UseMutationOptions<GridRecordSetExportResponse, SynapseClientError, MergeGridWithRecordSetInput>, 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<GridRecordSetExportResponse, SynapseClientError, MergeGridWithRecordSetInput, unknown>;
10
12
  //# sourceMappingURL=useMergeGridWithRecordSet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMergeGridWithRecordSet.d.ts","sourceRoot":"","sources":["../../../src/components/DataGrid/useMergeGridWithRecordSet.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,2BAA2B,EAC3B,kBAAkB,EAEnB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAe,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAEvE,MAAM,MAAM,2BAA2B,GAAG;IACxC,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,OAAO,CAAC,EAAE,IAAI,CACZ,kBAAkB,CAChB,2BAA2B,EAC3B,kBAAkB,EAClB,2BAA2B,CAC5B,EACD,YAAY,CACb,4IAmCF"}
1
+ {"version":3,"file":"useMergeGridWithRecordSet.d.ts","sourceRoot":"","sources":["../../../src/components/DataGrid/useMergeGridWithRecordSet.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,2BAA2B,EAC3B,kBAAkB,EAEnB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAe,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAEvE,MAAM,MAAM,2BAA2B,GAAG;IACxC,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,OAAO,CAAC,EAAE,IAAI,CACZ,kBAAkB,CAChB,2BAA2B,EAC3B,kBAAkB,EAClB,2BAA2B,CAC5B,EACD,YAAY,CACb,4IAmCF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMergeGridWithRecordSet.js","names":["useSynapseContext","GridRecordSetExportRequest","GridRecordSetExportResponse","SynapseClientError","waitForAsyncResult","useMutation","UseMutationOptions","MergeGridWithRecordSetInput","gridSessionId","useMergeGridWithRecordSet","options","$","_c","synapseClient","t0","t1","gridExportRequest","sessionId","concreteType","asyncJobId","gridServicesClient","postRepoV1GridExportRecordsetAsyncStart","gridRecordSetExportRequest","asyncJobResponse","asynchronousJobServicesClient","getRepoV1AsynchronousJobJobId","jobId","token","responseBody","mutationFn"],"sources":["../../../src/components/DataGrid/useMergeGridWithRecordSet.ts"],"sourcesContent":["import { useSynapseContext } from '@/utils'\nimport {\n GridRecordSetExportRequest,\n GridRecordSetExportResponse,\n SynapseClientError,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\n\nexport type MergeGridWithRecordSetInput = {\n gridSessionId: string\n}\n\n/**\n * Query mutation hook for exporting a grid session back into a RecordSet.\n */\nexport default function useMergeGridWithRecordSet(\n options?: Omit<\n UseMutationOptions<\n GridRecordSetExportResponse,\n SynapseClientError,\n MergeGridWithRecordSetInput\n >,\n 'mutationFn'\n >,\n) {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<\n GridRecordSetExportResponse,\n SynapseClientError,\n MergeGridWithRecordSetInput\n >({\n ...options,\n mutationFn: async ({ gridSessionId }) => {\n const gridExportRequest: GridRecordSetExportRequest = {\n sessionId: gridSessionId,\n concreteType:\n 'org.sagebionetworks.repo.model.grid.GridRecordSetExportRequest',\n }\n\n // Start the async export job\n const asyncJobId =\n await synapseClient.gridServicesClient.postRepoV1GridExportRecordsetAsyncStart(\n { gridRecordSetExportRequest: gridExportRequest },\n )\n\n // Poll for the async job\n const asyncJobResponse = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n\n return asyncJobResponse.responseBody as GridRecordSetExportResponse\n },\n })\n}\n"],"mappings":";;;;;;AAgBA,SAAeS,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAUb,EAAAC,qBAA0Bb,EAAkB,GAACc;CAAA,AAAAH,EAAA,OAAAE,IA+B1CC,IAAAH,EAAA,MAvBWG,IAAA,OAAAC,MAAA;EAAO,IAAA,EAAAP,qBAAAO,GACjBC,IAAsD;GAAAC,WACzCT;GAAaU,cAEtB;EACJ,GAGAC,IACE,MAAMN,EAAaO,mBAAmBC,wCACpC,EAAAC,4BAA8BN,EAAkB,CAClD;EASD,QAEMO,MARwBnB,QAC7BS,EAAaW,8BAA8BC,8BACzC,EAAAC,OACSP,EAAUQ,MACnB,CACF,CACF,GAEuBC;CAA4C,GACpEjB,EAAA,KAAAE,GAAAF,EAAA,KAAAG;CAAA,IAAAC;CACF,OADEJ,EAAA,OAAAD,KAAAC,EAAA,OAAAG,KAzBDC,IAAA;EAAA,GACGL;EAAOmB,YACEf;CAwBd,GAACH,EAAA,KAAAD,GAAAC,EAAA,KAAAG,GAAAH,EAAA,KAAAI,KAAAA,IAAAJ,EAAA,IA9BMN,EAILU,CA0BD;AAAC"}
1
+ {"version":3,"file":"useMergeGridWithRecordSet.js","names":["useSynapseContext","GridRecordSetExportRequest","GridRecordSetExportResponse","SynapseClientError","waitForAsyncResult","useMutation","UseMutationOptions","MergeGridWithRecordSetInput","gridSessionId","useMergeGridWithRecordSet","options","$","_c","synapseClient","t0","t1","gridExportRequest","sessionId","concreteType","asyncJobId","gridServicesClient","postRepoV1GridExportRecordsetAsyncStart","gridRecordSetExportRequest","asyncJobResponse","asynchronousJobServicesClient","getRepoV1AsynchronousJobJobId","jobId","token","responseBody","mutationFn"],"sources":["../../../src/components/DataGrid/useMergeGridWithRecordSet.ts"],"sourcesContent":["import { useSynapseContext } from '@/utils'\nimport {\n GridRecordSetExportRequest,\n GridRecordSetExportResponse,\n SynapseClientError,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\n\nexport type MergeGridWithRecordSetInput = {\n gridSessionId: string\n}\n\n/**\n * Query mutation hook for exporting a grid session back into a RecordSet.\n *\n * @deprecated This is a legacy method for overwriting a RecordSet with data from a Grid. Use `useSynchronizeGridSession` instead.\n */\nexport default function useMergeGridWithRecordSet(\n options?: Omit<\n UseMutationOptions<\n GridRecordSetExportResponse,\n SynapseClientError,\n MergeGridWithRecordSetInput\n >,\n 'mutationFn'\n >,\n) {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<\n GridRecordSetExportResponse,\n SynapseClientError,\n MergeGridWithRecordSetInput\n >({\n ...options,\n mutationFn: async ({ gridSessionId }) => {\n const gridExportRequest: GridRecordSetExportRequest = {\n sessionId: gridSessionId,\n concreteType:\n 'org.sagebionetworks.repo.model.grid.GridRecordSetExportRequest',\n }\n\n // Start the async export job\n const asyncJobId =\n await synapseClient.gridServicesClient.postRepoV1GridExportRecordsetAsyncStart(\n { gridRecordSetExportRequest: gridExportRequest },\n )\n\n // Poll for the async job\n const asyncJobResponse = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n\n return asyncJobResponse.responseBody as GridRecordSetExportResponse\n },\n })\n}\n"],"mappings":";;;;;;AAkBA,SAAeS,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAUb,EAAAC,qBAA0Bb,EAAkB,GAACc;CAAA,AAAAH,EAAA,OAAAE,IA+B1CC,IAAAH,EAAA,MAvBWG,IAAA,OAAAC,MAAA;EAAO,IAAA,EAAAP,qBAAAO,GACjBC,IAAsD;GAAAC,WACzCT;GAAaU,cAEtB;EACJ,GAGAC,IACE,MAAMN,EAAaO,mBAAmBC,wCACpC,EAAAC,4BAA8BN,EAAkB,CAClD;EASD,QAEMO,MARwBnB,QAC7BS,EAAaW,8BAA8BC,8BACzC,EAAAC,OACSP,EAAUQ,MACnB,CACF,CACF,GAEuBC;CAA4C,GACpEjB,EAAA,KAAAE,GAAAF,EAAA,KAAAG;CAAA,IAAAC;CACF,OADEJ,EAAA,OAAAD,KAAAC,EAAA,OAAAG,KAzBDC,IAAA;EAAA,GACGL;EAAOmB,YACEf;CAwBd,GAACH,EAAA,KAAAD,GAAAC,EAAA,KAAAG,GAAAH,EAAA,KAAAI,KAAAA,IAAAJ,EAAA,IA9BMN,EAILU,CA0BD;AAAC"}
@@ -1,29 +1,34 @@
1
- import { EntityType, GridRecordSetExportResponse, SynchronizeGridResponse, TableUpdateTransactionResponse } from '@sage-bionetworks/synapse-client';
1
+ import { EntityType, GridRecordSetExportResponse, SynchronizeGridResponse, SyncType, TableUpdateTransactionResponse } from '@sage-bionetworks/synapse-client';
2
2
  import { UseMutationOptions } from '@tanstack/react-query';
3
3
  import { SynapseClientError } from '@sage-bionetworks/synapse-client';
4
4
  export type MergeGridWithSource = {
5
+ /** The ID of the grid session to merge with the source entity. */
5
6
  gridSessionId: string;
7
+ /** The ID of the source entity to merge with. This is only used for client-side logic. */
6
8
  sourceEntityId?: string;
9
+ /** The type of the source entity. This is only used for client-side logic. */
7
10
  sourceEntityType?: EntityType;
11
+ /** The type of synchronization to perform. Only valid for types supported by the Synchronize service. */
12
+ syncType?: SyncType;
8
13
  };
9
14
  export type MergeGridResult = {
10
- type: 'entityview';
15
+ type: 'synchronize';
11
16
  data: SynchronizeGridResponse;
12
17
  } | {
13
- type: 'recordset';
18
+ /** @deprecated */
19
+ type: 'recordset_overwrite';
14
20
  data: GridRecordSetExportResponse;
15
21
  } | {
16
- type: 'table';
22
+ type: 'tableUpdateTransaction';
17
23
  data: TableUpdateTransactionResponse;
18
24
  };
19
25
  /**
20
26
  * Single entrypoint to handle merging grid edits with source Synapse data.
21
27
  * Calls the appropriate mutation based on entity type:
22
- * - EntityView -> useSynchronizeGridSession
28
+ * - EntityView/RecordSet -> useSynchronizeGridSession
23
29
  * - TableEntity -> useMergeGridWithTable
24
- * - RecordSet -> useMergeGridWithRecordSet
25
30
  *
26
- * Returns a query mutation that handles merging for tables or recordsets.
31
+ * Returns a query mutation that handles synchronization.
27
32
  */
28
33
  export default function useMergeGridWithSource(options?: Omit<UseMutationOptions<MergeGridResult, SynapseClientError, MergeGridWithSource>, 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<MergeGridResult, SynapseClientError, MergeGridWithSource, unknown>;
29
34
  //# sourceMappingURL=useMergeGridWithSource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMergeGridWithSource.d.ts","sourceRoot":"","sources":["../../../src/components/DataGrid/useMergeGridWithSource.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EACV,2BAA2B,EAC3B,uBAAuB,EACvB,8BAA8B,EAC/B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAe,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAGrE,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,UAAU,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,uBAAuB,CAAA;CAAE,GACrD;IACE,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,2BAA2B,CAAA;CAClC,GACD;IACE,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,8BAA8B,CAAA;CACrC,CAAA;AAEL;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,OAAO,CAAC,EAAE,IAAI,CACZ,kBAAkB,CAChB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,CACpB,EACD,YAAY,CACb,wHA+BF"}
1
+ {"version":3,"file":"useMergeGridWithSource.d.ts","sourceRoot":"","sources":["../../../src/components/DataGrid/useMergeGridWithSource.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,2BAA2B,EAC3B,uBAAuB,EACvB,QAAQ,EACR,8BAA8B,EAC/B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAe,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAMrE,MAAM,MAAM,mBAAmB,GAAG;IAChC,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAA;IACrB,0FAA0F;IAC1F,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,UAAU,CAAA;IAC7B,yGAAyG;IACzG,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,uBAAuB,CAAA;CAAE,GACtD;IACE,kBAAkB;IAClB,IAAI,EAAE,qBAAqB,CAAA;IAC3B,IAAI,EAAE,2BAA2B,CAAA;CAClC,GACD;IACE,IAAI,EAAE,wBAAwB,CAAA;IAC9B,IAAI,EAAE,8BAA8B,CAAA;CACrC,CAAA;AAEL;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,OAAO,CAAC,EAAE,IAAI,CACZ,kBAAkB,CAChB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,CACpB,EACD,YAAY,CACb,wHA2CF"}
@@ -1,35 +1,41 @@
1
- import { useSynchronizeGridSession as e } from "../../synapse-queries/grid/useGridSession.js";
2
- import t from "./useMergeGridWithTable.js";
3
- import n from "./useMergeGridWithRecordSet.js";
4
- import { EntityType as r } from "@sage-bionetworks/synapse-client";
5
- import { useMutation as i } from "@tanstack/react-query";
6
- import { c as a } from "react/compiler-runtime";
1
+ import { useGetFeatureFlag as e } from "../../synapse-queries/featureflags/useGetFeatureFlag.js";
2
+ import "../../synapse-queries/featureflags/index.js";
3
+ import { FeatureFlagEnum as t } from "../../utils/featureflag/FeatureFlags.js";
4
+ import { useSynchronizeGridSession as n } from "../../synapse-queries/grid/useGridSession.js";
5
+ import r from "./useMergeGridWithTable.js";
6
+ import i from "./useMergeGridWithRecordSet.js";
7
+ import { EntityType as a } from "@sage-bionetworks/synapse-client";
8
+ import { useMutation as o } from "@tanstack/react-query";
9
+ import { c as s } from "react/compiler-runtime";
7
10
  //#region src/components/DataGrid/useMergeGridWithSource.ts
8
- function o(o) {
9
- let s = a(7), c = e(), l = t(), u = n(), d;
10
- s[0] !== c || s[1] !== u || s[2] !== l ? (d = async (e) => {
11
- let { gridSessionId: t, sourceEntityId: n, sourceEntityType: i } = e, a = i === r.entityview, o = i === r.recordset;
12
- return a ? {
13
- type: "entityview",
14
- data: await c.mutateAsync({ gridSessionId: t })
15
- } : o ? {
16
- type: "recordset",
17
- data: await u.mutateAsync({ gridSessionId: t })
11
+ function c(c) {
12
+ let l = s(8), u = n(), d = r(), f = i(), p = e(t.ENABLE_RECORDSET_SYNCHRONIZATION), m;
13
+ l[0] !== p || l[1] !== d || l[2] !== u || l[3] !== f ? (m = async (e) => {
14
+ let { gridSessionId: t, sourceEntityId: n, sourceEntityType: r, syncType: i } = e, o = r === a.entityview, s = r === a.recordset;
15
+ return o || s && p ? {
16
+ type: "synchronize",
17
+ data: await u.mutateAsync({
18
+ gridSessionId: t,
19
+ syncType: i
20
+ })
21
+ } : s ? {
22
+ type: "recordset_overwrite",
23
+ data: await f.mutateAsync({ gridSessionId: t })
18
24
  } : {
19
- type: "table",
20
- data: await l.mutateAsync({
25
+ type: "tableUpdateTransaction",
26
+ data: await d.mutateAsync({
21
27
  gridSessionId: t,
22
28
  sourceEntityId: n
23
29
  })
24
30
  };
25
- }, s[0] = c, s[1] = u, s[2] = l, s[3] = d) : d = s[3];
26
- let f;
27
- return s[4] !== o || s[5] !== d ? (f = {
28
- ...o,
29
- mutationFn: d
30
- }, s[4] = o, s[5] = d, s[6] = f) : f = s[6], i(f);
31
+ }, l[0] = p, l[1] = d, l[2] = u, l[3] = f, l[4] = m) : m = l[4];
32
+ let h;
33
+ return l[5] !== c || l[6] !== m ? (h = {
34
+ ...c,
35
+ mutationFn: m
36
+ }, l[5] = c, l[6] = m, l[7] = h) : h = l[7], o(h);
31
37
  }
32
38
  //#endregion
33
- export { o as default };
39
+ export { c as default };
34
40
 
35
41
  //# sourceMappingURL=useMergeGridWithSource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMergeGridWithSource.js","names":["useMergeGridWithTable","useMergeGridWithRecordSet","EntityType","GridRecordSetExportResponse","SynchronizeGridResponse","TableUpdateTransactionResponse","useMutation","UseMutationOptions","SynapseClientError","useSynchronizeGridSession","MergeGridWithSource","gridSessionId","sourceEntityId","sourceEntityType","MergeGridResult","type","data","useMergeGridWithSource","options","$","_c","mergeGridWithEntityView","mergeGridWithTable","mergeGridWithRecordSet","t0","t1","isEntityView","entityview","isRecordSet","recordset","mutateAsync","data_0","data_1","mutationFn"],"sources":["../../../src/components/DataGrid/useMergeGridWithSource.ts"],"sourcesContent":["import useMergeGridWithTable from './useMergeGridWithTable'\nimport useMergeGridWithRecordSet from './useMergeGridWithRecordSet'\nimport {\n EntityType,\n GridRecordSetExportResponse,\n SynchronizeGridResponse,\n TableUpdateTransactionResponse,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client'\nimport { useSynchronizeGridSession } from '@/synapse-queries/grid/useGridSession'\n\nexport type MergeGridWithSource = {\n gridSessionId: string\n sourceEntityId?: string\n sourceEntityType?: EntityType\n}\n\nexport type MergeGridResult =\n | { type: 'entityview'; data: SynchronizeGridResponse }\n | {\n type: 'recordset'\n data: GridRecordSetExportResponse\n }\n | {\n type: 'table'\n data: TableUpdateTransactionResponse\n }\n\n/**\n * Single entrypoint to handle merging grid edits with source Synapse data.\n * Calls the appropriate mutation based on entity type:\n * - EntityView -> useSynchronizeGridSession\n * - TableEntity -> useMergeGridWithTable\n * - RecordSet -> useMergeGridWithRecordSet\n *\n * Returns a query mutation that handles merging for tables or recordsets.\n */\nexport default function useMergeGridWithSource(\n options?: Omit<\n UseMutationOptions<\n MergeGridResult,\n SynapseClientError,\n MergeGridWithSource\n >,\n 'mutationFn'\n >,\n) {\n // SynchronizeGridSession is the best option, but currently only supports EntityViews.\n // As support for other types is added, the other hooks should be replaced.\n const mergeGridWithEntityView = useSynchronizeGridSession()\n const mergeGridWithTable = useMergeGridWithTable()\n const mergeGridWithRecordSet = useMergeGridWithRecordSet()\n\n return useMutation<MergeGridResult, SynapseClientError, MergeGridWithSource>({\n ...options,\n mutationFn: async ({ gridSessionId, sourceEntityId, sourceEntityType }) => {\n const isEntityView = sourceEntityType === EntityType.entityview\n const isRecordSet = sourceEntityType === EntityType.recordset\n\n if (isEntityView) {\n const data = await mergeGridWithEntityView.mutateAsync({\n gridSessionId,\n })\n return { type: 'entityview', data }\n } else if (isRecordSet) {\n const data = await mergeGridWithRecordSet.mutateAsync({ gridSessionId })\n return { type: 'recordset', data }\n } else {\n const data = await mergeGridWithTable.mutateAsync({\n gridSessionId,\n sourceEntityId: sourceEntityId!,\n })\n return { type: 'table', data }\n }\n },\n })\n}\n"],"mappings":";;;;;;;AAsCA,SAAeiB,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAYbC,IAAgCZ,EAA0B,GAC1Da,IAA2BtB,EAAsB,GACjDuB,IAA+BtB,EAA0B,GAACuB;CAAA,AAAAL,EAAA,OAAAE,KAAAF,EAAA,OAAAI,KAAAJ,EAAA,OAAAG,KAI5CE,IAAA,OAAAC,MAAA;EAAO,IAAA,EAAAd,kBAAAC,mBAAAC,wBAAAY,GACjBC,IAAqBb,MAAqBX,EAAUyB,YACpDC,IAAoBf,MAAqBX,EAAU2B;EAc/C,OAZAH,IAIK;GAAAX,MAAQ;GAAYC,MAAAA,MAHRK,EAAuBS,YAAa,EAAAnB,iBAEvD,CAAC;EACiC,IACzBiB,IAEF;GAAAb,MAAQ;GAAWC,MAAEA,MADTO,EAAsBO,YAAa,EAAAnB,iBAAgB,CAAC;EACtC,IAM1B;GAAAI,MAAQ;GAAOC,MAAEA,MAJLM,EAAkBQ,YAAa;IAAAnB;IAAAC;GAGlD,CAAC;EAC4B;CAC9B,GACFO,EAAA,KAAAE,GAAAF,EAAA,KAAAI,GAAAJ,EAAA,KAAAG,GAAAH,EAAA,KAAAK,KAAAA,IAAAL,EAAA;CAAA,IAAAM;CACF,OADEN,EAAA,OAAAD,KAAAC,EAAA,OAAAK,KArB0EC,IAAA;EAAA,GACxEP;EAAOe,YACET;CAoBd,GAACL,EAAA,KAAAD,GAAAC,EAAA,KAAAK,GAAAL,EAAA,KAAAM,KAAAA,IAAAN,EAAA,IAtBMb,EAAsEmB,CAsB5E;AAAC"}
1
+ {"version":3,"file":"useMergeGridWithSource.js","names":["useMergeGridWithTable","EntityType","GridRecordSetExportResponse","SynchronizeGridResponse","SyncType","TableUpdateTransactionResponse","useMutation","UseMutationOptions","SynapseClientError","useSynchronizeGridSession","useUnsafeLegacyExportAndOverwriteRecordSet","useGetFeatureFlag","FeatureFlagEnum","MergeGridWithSource","gridSessionId","sourceEntityId","sourceEntityType","syncType","MergeGridResult","type","data","useMergeGridWithSource","options","$","_c","syncGridWithSource","mergeGridWithTable","unsafeLegacyOverwriteRecordset","enableRecordSetSync","ENABLE_RECORDSET_SYNCHRONIZATION","t0","variables","isEntityView","entityview","isRecordSet","recordset","mutateAsync","data_0","data_1","t1","mutationFn"],"sources":["../../../src/components/DataGrid/useMergeGridWithSource.ts"],"sourcesContent":["import useMergeGridWithTable from './useMergeGridWithTable'\nimport {\n EntityType,\n GridRecordSetExportResponse,\n SynchronizeGridResponse,\n SyncType,\n TableUpdateTransactionResponse,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client'\nimport { useSynchronizeGridSession } from '@/synapse-queries/grid/useGridSession'\nimport useUnsafeLegacyExportAndOverwriteRecordSet from './useMergeGridWithRecordSet'\nimport { useGetFeatureFlag } from '@/synapse-queries/featureflags'\nimport { FeatureFlagEnum } from '@/utils/featureflag/FeatureFlags'\n\nexport type MergeGridWithSource = {\n /** The ID of the grid session to merge with the source entity. */\n gridSessionId: string\n /** The ID of the source entity to merge with. This is only used for client-side logic. */\n sourceEntityId?: string\n /** The type of the source entity. This is only used for client-side logic. */\n sourceEntityType?: EntityType\n /** The type of synchronization to perform. Only valid for types supported by the Synchronize service. */\n syncType?: SyncType\n}\n\nexport type MergeGridResult =\n | { type: 'synchronize'; data: SynchronizeGridResponse }\n | {\n /** @deprecated */\n type: 'recordset_overwrite'\n data: GridRecordSetExportResponse\n }\n | {\n type: 'tableUpdateTransaction'\n data: TableUpdateTransactionResponse\n }\n\n/**\n * Single entrypoint to handle merging grid edits with source Synapse data.\n * Calls the appropriate mutation based on entity type:\n * - EntityView/RecordSet -> useSynchronizeGridSession\n * - TableEntity -> useMergeGridWithTable\n *\n * Returns a query mutation that handles synchronization.\n */\nexport default function useMergeGridWithSource(\n options?: Omit<\n UseMutationOptions<\n MergeGridResult,\n SynapseClientError,\n MergeGridWithSource\n >,\n 'mutationFn'\n >,\n) {\n // SynchronizeGridSession is the best option, but not all types are supported.\n // As support for other types is added, the other hooks should be replaced.\n const syncGridWithSource = useSynchronizeGridSession()\n const mergeGridWithTable = useMergeGridWithTable()\n const unsafeLegacyOverwriteRecordset =\n useUnsafeLegacyExportAndOverwriteRecordSet()\n\n const enableRecordSetSync = useGetFeatureFlag(\n FeatureFlagEnum.ENABLE_RECORDSET_SYNCHRONIZATION,\n )\n\n return useMutation<MergeGridResult, SynapseClientError, MergeGridWithSource>({\n ...options,\n mutationFn: async variables => {\n const { gridSessionId, sourceEntityId, sourceEntityType, syncType } =\n variables\n const isEntityView = sourceEntityType === EntityType.entityview\n const isRecordSet = sourceEntityType === EntityType.recordset\n\n if (isEntityView || (isRecordSet && enableRecordSetSync)) {\n const data = await syncGridWithSource.mutateAsync({\n gridSessionId,\n syncType,\n })\n return { type: 'synchronize', data }\n } else if (isRecordSet) {\n // Deprecated/legacy path: this will overwrite the RecordSet with the grid session data instead of merging/synchronizing, which is prone to data loss.\n // Remove once we have confidence in the synch service for RecordSets.\n const data = await unsafeLegacyOverwriteRecordset.mutateAsync({\n gridSessionId,\n })\n return { type: 'recordset_overwrite', data }\n } else {\n const data = await mergeGridWithTable.mutateAsync({\n gridSessionId,\n sourceEntityId: sourceEntityId!,\n })\n return { type: 'tableUpdateTransaction', data }\n }\n },\n })\n}\n"],"mappings":";;;;;;;;;;AA8CA,SAAeqB,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAYbC,IAA2BhB,EAA0B,GACrDiB,IAA2B1B,EAAsB,GACjD2B,IACEjB,EAA2C,GAE7CkB,IAA4BjB,EAC1BC,EAAeiB,gCACjB,GAACC;CAAA,AAAAP,EAAA,OAAAK,KAAAL,EAAA,OAAAG,KAAAH,EAAA,OAAAE,KAAAF,EAAA,OAAAI,KAIaG,IAAA,OAAAC,MAAA;EACV,IAAA,EAAAjB,kBAAAC,mBAAAC,qBAAAC,gBACEc,GACFC,IAAqBhB,MAAqBf,EAAUgC,YACpDC,IAAoBlB,MAAqBf,EAAUkC;EAmB/C,OAjBAH,KAAiBE,KAAAN,IAKZ;GAAAT,MAAQ;GAAaC,MAAAA,MAJTK,EAAkBW,YAAa;IAAAtB;IAAAG;GAGlD,CAAC;EACkC,IAC1BiB,IAMF;GAAAf,MAAQ;GAAqBC,MAAEA,MAHnBO,EAA8BS,YAAa,EAAAtB,iBAE9D,CAAC;EAC0C,IAMpC;GAAAK,MAAQ;GAAwBC,MAAEA,MAJtBM,EAAkBU,YAAa;IAAAtB;IAAAC;GAGlD,CAAC;EAC6C;CAC/C,GACFQ,EAAA,KAAAK,GAAAL,EAAA,KAAAG,GAAAH,EAAA,KAAAE,GAAAF,EAAA,KAAAI,GAAAJ,EAAA,KAAAO,KAAAA,IAAAP,EAAA;CAAA,IAAAgB;CACF,OADEhB,EAAA,OAAAD,KAAAC,EAAA,OAAAO,KA5B0ES,IAAA;EAAA,GACxEjB;EAAOkB,YACEV;CA2Bd,GAACP,EAAA,KAAAD,GAAAC,EAAA,KAAAO,GAAAP,EAAA,KAAAgB,KAAAA,IAAAhB,EAAA,IA7BMjB,EAAsEiC,CA6B5E;AAAC"}
@@ -3,11 +3,11 @@ import { PRODUCTION_ENDPOINT_CONFIG as t } from "../../utils/functions/getEndpoi
3
3
  import { calculateFriendlyFileSize as n } from "../../utils/functions/calculateFriendlyFileSize.js";
4
4
  import { copyStringToClipboard as r } from "../../utils/functions/StringUtils.js";
5
5
  import { BlockingLoader as i, SynapseSpinner as a } from "../LoadingScreen/LoadingScreen.js";
6
+ import "../ToastMessage/index.js";
6
7
  import { useGetAvailableFilesToDownloadInfinite as o, useRemoveFilesFromDownloadList as s } from "../../synapse-queries/download/useDownloadList.js";
7
8
  import "../../synapse-queries/index.js";
8
9
  import { SkeletonTable as c } from "../Skeleton/SkeletonTable.js";
9
10
  import "../Skeleton/index.js";
10
- import "../ToastMessage/index.js";
11
11
  import l from "../IconSvg/IconSvg.js";
12
12
  import { formatDate as u } from "../../utils/functions/DateFormatter.js";
13
13
  import "../SynapseTable/SynapseTableConstants.js";
@@ -1,7 +1,7 @@
1
1
  import { displayToast as e } from "../ToastMessage/ToastMessage.js";
2
+ import "../ToastMessage/index.js";
2
3
  import { SkeletonParagraph as t } from "../Skeleton/SkeletonParagraph.js";
3
4
  import "../Skeleton/index.js";
4
- import "../ToastMessage/index.js";
5
5
  import { useState as n } from "react";
6
6
  import { Alert as r, Box as i, Button as a, Typography as o } from "@mui/material";
7
7
  import { jsx as s, jsxs as c } from "react/jsx-runtime";
@@ -1,11 +1,11 @@
1
1
  import { displayToast as e } from "../ToastMessage/ToastMessage.js";
2
2
  import { SYNAPSE_DOCS_SHARING_SETTINGS_PERMISSIONS_CONDITIONS_FOR_USE_URL as t } from "../../utils/SynapseConstants.js";
3
3
  import { entityTypeToFriendlyName as n } from "../../utils/functions/EntityTypeUtils.js";
4
+ import "../ToastMessage/index.js";
4
5
  import r from "../../synapse-queries/entity/useEntityBundle.js";
5
6
  import "../../synapse-queries/index.js";
6
7
  import { ConfirmationDialog as i } from "../ConfirmationDialog/ConfirmationDialog.js";
7
8
  import "../ConfirmationDialog/index.js";
8
- import "../ToastMessage/index.js";
9
9
  import a from "../Dialog/ConfirmCloseWithoutSavingDialog.js";
10
10
  import o from "./EntityAclEditor.js";
11
11
  import { useRef as s, useState as c } from "react";
@@ -1,10 +1,10 @@
1
1
  import { displayToast as e } from "../ToastMessage/ToastMessage.js";
2
2
  import { useGetRealmPrincipals as t } from "../../synapse-queries/realm/useRealmPrincipals.js";
3
+ import "../ToastMessage/index.js";
3
4
  import { useSendMessage as n } from "../../synapse-queries/message/useMessage.js";
4
5
  import { useGetCurrentUserProfile as r } from "../../synapse-queries/user/useUserBundle.js";
5
6
  import { useGetUserGroupHeaders as i } from "../../synapse-queries/user/useUserGroupHeader.js";
6
7
  import "../../synapse-queries/index.js";
7
- import "../ToastMessage/index.js";
8
8
  import { useCallback as a } from "react";
9
9
  //#region src/components/EntityAclEditor/useNotifyNewACLUsers.ts
10
10
  function o(e, t, n, r, i) {
@@ -2,11 +2,11 @@ import { displayToast as e } from "../ToastMessage/ToastMessage.js";
2
2
  import { isFileEntity as t } from "../../utils/types/IsType.js";
3
3
  import { entityTypeToFriendlyName as n, hasFilesInView as r, isContainerType as i, isDataset as a, isEntityView as o, isVersionableEntity as s } from "../../utils/functions/EntityTypeUtils.js";
4
4
  import { useSynapseContext as c } from "../../utils/context/SynapseContext.js";
5
+ import "../ToastMessage/index.js";
5
6
  import "../../utils/index.js";
6
7
  import { useAddFileToDownloadList as l, useGetAddToDownloadListStats as u } from "../../synapse-queries/download/useDownloadList.js";
7
8
  import { useGetEntity as d, useGetVersions as f } from "../../synapse-queries/entity/useEntity.js";
8
9
  import "../../synapse-queries/index.js";
9
- import "../ToastMessage/index.js";
10
10
  import { displayFilesWereAddedToDownloadListSuccess as p } from "../download_list/DownloadConfirmationUtils.js";
11
11
  import { EntityDownloadConfirmation as m } from "../EntityDownloadConfirmation/EntityDownloadConfirmation.js";
12
12
  import "../EntityDownloadConfirmation/index.js";
@@ -5,6 +5,7 @@ export type EntityIdTextFieldProps = {
5
5
  onChange: (value: string) => void;
6
6
  description?: string;
7
7
  disabled?: boolean;
8
+ required?: boolean;
8
9
  entityFinderModalProps: Omit<EntityFinderModalProps, 'show' | 'onConfirm' | 'onCancel'>;
9
10
  };
10
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"EntityIdTextField.d.ts","sourceRoot":"","sources":["../../../src/components/EntityFinder/EntityIdTextField.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAqB,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAE/E,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sBAAsB,EAAE,IAAI,CAC1B,sBAAsB,EACtB,MAAM,GAAG,WAAW,GAAG,UAAU,CAClC,CAAA;CACF,CAAA;AAED;;;;GAIG;AACH,iBAAS,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CAyCvD;AAED,eAAe,iBAAiB,CAAA"}
1
+ {"version":3,"file":"EntityIdTextField.d.ts","sourceRoot":"","sources":["../../../src/components/EntityFinder/EntityIdTextField.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAqB,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAE/E,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sBAAsB,EAAE,IAAI,CAC1B,sBAAsB,EACtB,MAAM,GAAG,WAAW,GAAG,UAAU,CAClC,CAAA;CACF,CAAA;AAED;;;;GAIG;AACH,iBAAS,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CA2CvD;AAED,eAAe,iBAAiB,CAAA"}
@@ -7,24 +7,25 @@ import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
7
7
  import { SearchOutlined as s } from "@mui/icons-material";
8
8
  //#region src/components/EntityFinder/EntityIdTextField.tsx
9
9
  function c(c) {
10
- let { label: l, value: u, description: d, onChange: f, disabled: p, entityFinderModalProps: m } = c, [h, g] = n(!1);
10
+ let { label: l, value: u, description: d, onChange: f, disabled: p, required: m, entityFinderModalProps: h } = c, [g, _] = n(!1);
11
11
  return /* @__PURE__ */ o(i, { children: [/* @__PURE__ */ a(t, {
12
- show: h,
12
+ show: g,
13
13
  onConfirm: (e) => {
14
- f(e[0].targetId), g(!1);
14
+ f(e[0].targetId), _(!1);
15
15
  },
16
- onCancel: () => g(!1),
17
- ...m
16
+ onCancel: () => _(!1),
17
+ ...h
18
18
  }), /* @__PURE__ */ a(e, {
19
19
  label: l,
20
20
  description: d,
21
21
  type: "text",
22
22
  fullWidth: !0,
23
+ required: m,
23
24
  value: u,
24
25
  disabled: p,
25
26
  onChange: (e) => f(e.target.value),
26
27
  slotProps: { input: { endAdornment: !p && /* @__PURE__ */ a(r, {
27
- onClick: () => g(!0),
28
+ onClick: () => _(!0),
28
29
  children: /* @__PURE__ */ a(s, {})
29
30
  }) } }
30
31
  })] });
@@ -1 +1 @@
1
- {"version":3,"file":"EntityIdTextField.js","names":[],"sources":["../../../src/components/EntityFinder/EntityIdTextField.tsx"],"sourcesContent":["import { SearchOutlined } from '@mui/icons-material'\nimport { IconButton } from '@mui/material'\nimport { useState } from 'react'\nimport { TextField } from '../TextField'\nimport { EntityFinderModal, EntityFinderModalProps } from './EntityFinderModal'\n\nexport type EntityIdTextFieldProps = {\n label: string\n value: string\n onChange: (value: string) => void\n description?: string\n disabled?: boolean\n entityFinderModalProps: Omit<\n EntityFinderModalProps,\n 'show' | 'onConfirm' | 'onCancel'\n >\n}\n\n/**\n * A text field with an adornment button that opens an EntityFinderModal to select an entity.\n * The selected entity's ID is set as the value of the text field. Users may also type or paste\n * a raw synId.\n */\nfunction EntityIdTextField(props: EntityIdTextFieldProps) {\n const {\n label,\n value,\n description,\n onChange,\n disabled,\n entityFinderModalProps,\n } = props\n const [showEntityFinder, setShowEntityFinder] = useState(false)\n return (\n <>\n <EntityFinderModal\n show={showEntityFinder}\n onConfirm={selected => {\n onChange(selected[0].targetId)\n setShowEntityFinder(false)\n }}\n onCancel={() => setShowEntityFinder(false)}\n {...entityFinderModalProps}\n />\n <TextField\n label={label}\n description={description}\n type=\"text\"\n fullWidth\n value={value}\n disabled={disabled}\n onChange={e => onChange(e.target.value)}\n slotProps={{\n input: {\n endAdornment: !disabled && (\n <IconButton onClick={() => setShowEntityFinder(true)}>\n <SearchOutlined />\n </IconButton>\n ),\n },\n }}\n />\n </>\n )\n}\n\nexport default EntityIdTextField\n"],"mappings":";;;;;;;;AAuBA,SAAS,EAAkB,GAA+B;CACxD,IAAM,EACJ,UACA,UACA,gBACA,aACA,aACA,8BACE,GACE,CAAC,GAAkB,KAAuB,EAAS,EAAK;CAC9D,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,MAAM;EACN,YAAW,MAAY;GAErB,AADA,EAAS,EAAS,GAAG,QAAQ,GAC7B,EAAoB,EAAK;EAC3B;EACA,gBAAgB,EAAoB,EAAK;EACzC,GAAI;CACL,CAAA,GACD,kBAAC,GAAD;EACS;EACM;EACb,MAAK;EACL,WAAA;EACO;EACG;EACV,WAAU,MAAK,EAAS,EAAE,OAAO,KAAK;EACtC,WAAW,EACT,OAAO,EACL,cAAc,CAAC,KACb,kBAAC,GAAD;GAAY,eAAe,EAAoB,EAAI;aACjD,kBAAC,GAAD,CAAiB,CAAA;EACP,CAAA,EAEhB,EACF;CACD,CAAA,CACD,EAAA,CAAA;AAEN"}
1
+ {"version":3,"file":"EntityIdTextField.js","names":[],"sources":["../../../src/components/EntityFinder/EntityIdTextField.tsx"],"sourcesContent":["import { SearchOutlined } from '@mui/icons-material'\nimport { IconButton } from '@mui/material'\nimport { useState } from 'react'\nimport { TextField } from '../TextField'\nimport { EntityFinderModal, EntityFinderModalProps } from './EntityFinderModal'\n\nexport type EntityIdTextFieldProps = {\n label: string\n value: string\n onChange: (value: string) => void\n description?: string\n disabled?: boolean\n required?: boolean\n entityFinderModalProps: Omit<\n EntityFinderModalProps,\n 'show' | 'onConfirm' | 'onCancel'\n >\n}\n\n/**\n * A text field with an adornment button that opens an EntityFinderModal to select an entity.\n * The selected entity's ID is set as the value of the text field. Users may also type or paste\n * a raw synId.\n */\nfunction EntityIdTextField(props: EntityIdTextFieldProps) {\n const {\n label,\n value,\n description,\n onChange,\n disabled,\n required,\n entityFinderModalProps,\n } = props\n const [showEntityFinder, setShowEntityFinder] = useState(false)\n return (\n <>\n <EntityFinderModal\n show={showEntityFinder}\n onConfirm={selected => {\n onChange(selected[0].targetId)\n setShowEntityFinder(false)\n }}\n onCancel={() => setShowEntityFinder(false)}\n {...entityFinderModalProps}\n />\n <TextField\n label={label}\n description={description}\n type=\"text\"\n fullWidth\n required={required}\n value={value}\n disabled={disabled}\n onChange={e => onChange(e.target.value)}\n slotProps={{\n input: {\n endAdornment: !disabled && (\n <IconButton onClick={() => setShowEntityFinder(true)}>\n <SearchOutlined />\n </IconButton>\n ),\n },\n }}\n />\n </>\n )\n}\n\nexport default EntityIdTextField\n"],"mappings":";;;;;;;;AAwBA,SAAS,EAAkB,GAA+B;CACxD,IAAM,EACJ,UACA,UACA,gBACA,aACA,aACA,aACA,8BACE,GACE,CAAC,GAAkB,KAAuB,EAAS,EAAK;CAC9D,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,MAAM;EACN,YAAW,MAAY;GAErB,AADA,EAAS,EAAS,GAAG,QAAQ,GAC7B,EAAoB,EAAK;EAC3B;EACA,gBAAgB,EAAoB,EAAK;EACzC,GAAI;CACL,CAAA,GACD,kBAAC,GAAD;EACS;EACM;EACb,MAAK;EACL,WAAA;EACU;EACH;EACG;EACV,WAAU,MAAK,EAAS,EAAE,OAAO,KAAK;EACtC,WAAW,EACT,OAAO,EACL,cAAc,CAAC,KACb,kBAAC,GAAD;GAAY,eAAe,EAAoB,EAAI;aACjD,kBAAC,GAAD,CAAiB,CAAA;EACP,CAAA,EAEhB,EACF;CACD,CAAA,CACD,EAAA,CAAA;AAEN"}
@@ -1,10 +1,10 @@
1
1
  import { displayToast as e } from "../../../../ToastMessage/ToastMessage.js";
2
2
  import { useSynapseContext as t } from "../../../../../utils/context/SynapseContext.js";
3
+ import "../../../../ToastMessage/index.js";
3
4
  import "../../../../../utils/index.js";
4
5
  import { useAddFileToDownloadList as n } from "../../../../../synapse-queries/download/useDownloadList.js";
5
6
  import r from "../../../../../synapse-queries/entity/useEntityBundle.js";
6
7
  import "../../../../../synapse-queries/index.js";
7
- import "../../../../ToastMessage/index.js";
8
8
  import i from "../../../../IconSvg/IconSvg.js";
9
9
  import { displayFilesWereAddedToDownloadListSuccess as a } from "../../../../download_list/DownloadConfirmationUtils.js";
10
10
  import { Box as o, IconButton as s, Tooltip as c } from "@mui/material";
@@ -1,7 +1,7 @@
1
1
  import { displayToast as e } from "../../../../ToastMessage/ToastMessage.js";
2
2
  import { copyStringToClipboard as t } from "../../../../../utils/functions/StringUtils.js";
3
- import n from "../../../../../synapse-queries/entity/useEntityBundle.js";
4
3
  import "../../../../ToastMessage/index.js";
4
+ import n from "../../../../../synapse-queries/entity/useEntityBundle.js";
5
5
  import { Skeleton as r, Tooltip as i } from "@mui/material";
6
6
  import { Fragment as a, jsx as o } from "react/jsx-runtime";
7
7
  import { useMutation as s } from "@tanstack/react-query";
@@ -1 +1 @@
1
- ._panel_1l7xd_1{flex-direction:column;display:flex;position:relative}._content_1l7xd_7{width:320px;margin-top:40px;padding:0 32px 0 0}@media (width<=1024px){._content_1l7xd_7{width:100%;margin-top:10px;padding:10px 32px 0}}._sidebarHeader_1l7xd_20.MuiTypography-root{color:#616972;font-size:14px;font-weight:540;line-height:20px}._divider_1l7xd_27{margin-top:8px;margin-bottom:16px}._propertyValue_1l7xd_32.MuiTypography-root{color:#4d535a;font-style:normal;font-weight:440;line-height:20px}._propertyTitle_1l7xd_39.MuiTypography-root{color:#747d88;font-size:12px;line-height:12px}._propertiesContainer_1l7xd_45{gap:12px;padding:12px 0}._propertyRow_1l7xd_50{gap:4px}._toggleButton_1l7xd_54.MuiButtonBase-root{white-space:nowrap;flex-direction:row;align-self:flex-start;gap:8px;display:flex;position:absolute;top:0;right:0}@media (width<=1024px){._toggleButton_1l7xd_54.MuiButtonBase-root{margin:10px 0 0 20px;position:static}}._toggleButton_1l7xd_54.MuiButtonBase-root:hover{text-decoration:none}._toggleButtonText_1l7xd_74.MuiTypography-root{color:#616972;font-weight:440;line-height:20px}._icon_1l7xd_80{color:#616972}
1
+ ._panel_63bk5_1{flex-direction:column;display:flex;position:relative}._content_63bk5_7{width:320px;margin-top:40px;padding:0 32px 0 0}@media (width<=1200px){._content_63bk5_7{width:100%;margin-top:10px;padding:10px 32px 0}}._sidebarHeader_63bk5_20.MuiTypography-root{color:#616972;font-size:14px;font-weight:540;line-height:20px}._divider_63bk5_27{margin-top:8px;margin-bottom:16px}._propertyValue_63bk5_32.MuiTypography-root{color:#4d535a;font-style:normal;font-weight:440;line-height:20px}._propertyTitle_63bk5_39.MuiTypography-root{color:#747d88;font-size:12px;line-height:12px}._propertiesContainer_63bk5_45{gap:12px;padding:12px 0}._propertyRow_63bk5_50{gap:4px}._toggleButton_63bk5_54.MuiButtonBase-root{white-space:nowrap;flex-direction:row;align-self:flex-start;gap:8px;display:flex;position:absolute;top:0;right:32px}@media (width<=1200px){._toggleButton_63bk5_54.MuiButtonBase-root{margin:10px 0 0 32px;position:static}}._toggleButton_63bk5_54.MuiButtonBase-root:hover{text-decoration:none}._toggleButtonText_63bk5_74.MuiTypography-root{color:#616972;font-weight:440;line-height:20px}._icon_63bk5_80{color:#616972}
@@ -1 +1 @@
1
- {"version":3,"file":"EntitySidebar.d.ts","sourceRoot":"","sources":["../../../src/components/EntitySidebar/EntitySidebar.tsx"],"names":[],"mappings":"AAkBA,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CAiE9D"}
1
+ {"version":3,"file":"EntitySidebar.d.ts","sourceRoot":"","sources":["../../../src/components/EntitySidebar/EntitySidebar.tsx"],"names":[],"mappings":"AAmBA,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CA2E9D"}