synapse-react-client 4.0.25 → 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 (405) 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/DataExplorer/DataExplorer.css +1 -1
  57. package/dist/components/DataExplorer/DataExplorer.d.ts +16 -2
  58. package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -1
  59. package/dist/components/DataExplorer/DataExplorer.js +82 -75
  60. package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
  61. package/dist/components/DataExplorer/DataExplorer.module.js +16 -16
  62. package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -1
  63. package/dist/components/DataExplorer/DataExplorer.module.scss +1 -1
  64. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  65. package/dist/components/DataGrid/SynapseGrid.js +2 -5
  66. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  67. package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts +35 -0
  68. package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts.map +1 -0
  69. package/dist/components/DataGrid/SyncGridWithSourceButton.js +115 -0
  70. package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -0
  71. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts.map +1 -1
  72. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js +14 -1
  73. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
  74. package/dist/components/DataGrid/useMergeGridWithRecordSet.d.ts +2 -0
  75. package/dist/components/DataGrid/useMergeGridWithRecordSet.d.ts.map +1 -1
  76. package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
  77. package/dist/components/DataGrid/useMergeGridWithSource.d.ts +12 -7
  78. package/dist/components/DataGrid/useMergeGridWithSource.d.ts.map +1 -1
  79. package/dist/components/DataGrid/useMergeGridWithSource.js +31 -25
  80. package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
  81. package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
  82. package/dist/components/DataGrid/utils/columnFactory.js +15 -19
  83. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  84. package/dist/components/DownloadCart/DownloadListTable.js +1 -1
  85. package/dist/components/DynamicForm/DynamicForm.js +1 -1
  86. package/dist/components/EntityAclEditor/EntityAclEditorModal.js +1 -1
  87. package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js +1 -1
  88. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +1 -1
  89. package/dist/components/EntityFinder/EntityIdTextField.d.ts +1 -0
  90. package/dist/components/EntityFinder/EntityIdTextField.d.ts.map +1 -1
  91. package/dist/components/EntityFinder/EntityIdTextField.js +7 -6
  92. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  93. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +1 -1
  94. package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js +1 -1
  95. package/dist/components/EntitySidebar/EntitySidebar.css +1 -1
  96. package/dist/components/EntitySidebar/EntitySidebar.d.ts.map +1 -1
  97. package/dist/components/EntitySidebar/EntitySidebar.js +47 -39
  98. package/dist/components/EntitySidebar/EntitySidebar.js.map +1 -1
  99. package/dist/components/EntitySidebar/EntitySidebar.module.js +11 -11
  100. package/dist/components/EntitySidebar/EntitySidebar.module.js.map +1 -1
  101. package/dist/components/EntitySidebar/EntitySidebar.module.scss +6 -6
  102. package/dist/components/FieldDescription/FieldDescription.css +1 -0
  103. package/dist/components/FieldDescription/FieldDescription.d.ts +15 -0
  104. package/dist/components/FieldDescription/FieldDescription.d.ts.map +1 -0
  105. package/dist/components/FieldDescription/FieldDescription.js +13 -0
  106. package/dist/components/FieldDescription/FieldDescription.js.map +1 -0
  107. package/dist/components/FieldDescription/FieldDescription.module.js +5 -0
  108. package/dist/components/FieldDescription/FieldDescription.module.js.map +1 -0
  109. package/dist/components/FieldDescription/FieldDescription.module.scss +8 -0
  110. package/dist/components/FieldDescription/index.d.ts +3 -0
  111. package/dist/components/FieldDescription/index.d.ts.map +1 -0
  112. package/dist/components/FieldDescription/index.js +2 -0
  113. package/dist/components/GenericCard/TableRowGenericCard.d.ts +2 -1
  114. package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
  115. package/dist/components/GenericCard/TableRowGenericCard.js +3 -2
  116. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  117. package/dist/components/HeaderCard.d.ts.map +1 -1
  118. package/dist/components/HeaderCard.js +4 -0
  119. package/dist/components/HeaderCard.js.map +1 -1
  120. package/dist/components/HexGrid/HexGrid.d.ts +2 -1
  121. package/dist/components/HexGrid/HexGrid.d.ts.map +1 -1
  122. package/dist/components/HexGrid/HexGrid.js +13 -13
  123. package/dist/components/HexGrid/HexGrid.js.map +1 -1
  124. package/dist/components/IconSvg/IconSvg.d.ts +1 -1
  125. package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
  126. package/dist/components/IconSvg/IconSvg.js +216 -212
  127. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  128. package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js +1 -1
  129. package/dist/components/OAuthClientManagement/OAuthManagement.js +1 -1
  130. package/dist/components/PortalAclEditor/PortalAclEditorModal.js +1 -1
  131. package/dist/components/PortalList/CreatePortalModal.js +1 -1
  132. package/dist/components/PortalList/PortalCard.js +1 -1
  133. package/dist/components/ProjectInfo/ProjectInfo.css +1 -0
  134. package/dist/components/ProjectInfo/ProjectInfo.d.ts +5 -0
  135. package/dist/components/ProjectInfo/ProjectInfo.d.ts.map +1 -0
  136. package/dist/components/ProjectInfo/ProjectInfo.js +50 -0
  137. package/dist/components/ProjectInfo/ProjectInfo.js.map +1 -0
  138. package/dist/components/ProjectInfo/ProjectInfo.module.js +11 -0
  139. package/dist/components/ProjectInfo/ProjectInfo.module.js.map +1 -0
  140. package/dist/components/ProjectInfo/ProjectInfo.module.scss +35 -0
  141. package/dist/components/ProjectInfo/ProjectInfoPopover.d.ts +10 -0
  142. package/dist/components/ProjectInfo/ProjectInfoPopover.d.ts.map +1 -0
  143. package/dist/components/ProjectInfo/ProjectInfoPopover.js +94 -0
  144. package/dist/components/ProjectInfo/ProjectInfoPopover.js.map +1 -0
  145. package/dist/components/ProjectStorage/ProjectDataAvailability.d.ts +2 -1
  146. package/dist/components/ProjectStorage/ProjectDataAvailability.d.ts.map +1 -1
  147. package/dist/components/ProjectStorage/ProjectDataAvailability.js +67 -75
  148. package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
  149. package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts +3 -0
  150. package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts.map +1 -1
  151. package/dist/components/ProvenanceGraph/ProvenanceGraph.js +140 -85
  152. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  153. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
  154. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +3 -3
  155. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  156. package/dist/components/StorybookComponentWrapper.js +1 -1
  157. package/dist/components/SynapseChat/SynapseChat.js +1 -1
  158. package/dist/components/SynapseHomepageV2/HotdropsAndNews.css +1 -1
  159. package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.js +9 -8
  160. package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.js.map +1 -1
  161. package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.scss +4 -1
  162. package/dist/components/SynapseHomepageV2/WordPressNews.d.ts +2 -1
  163. package/dist/components/SynapseHomepageV2/WordPressNews.d.ts.map +1 -1
  164. package/dist/components/SynapseHomepageV2/WordPressNews.js +8 -7
  165. package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
  166. package/dist/components/SynapseHomepageV2/WordPressNewsItem.d.ts +5 -1
  167. package/dist/components/SynapseHomepageV2/WordPressNewsItem.d.ts.map +1 -1
  168. package/dist/components/SynapseHomepageV2/WordPressNewsItem.js +19 -11
  169. package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
  170. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +1 -1
  171. package/dist/components/SynapseTable/table-top/DownloadOptions.js +1 -1
  172. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  173. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js +1 -1
  174. package/dist/components/TextField/TextField.css +1 -1
  175. package/dist/components/TextField/TextField.d.ts.map +1 -1
  176. package/dist/components/TextField/TextField.js +27 -25
  177. package/dist/components/TextField/TextField.js.map +1 -1
  178. package/dist/components/TextField/TextField.module.js +3 -3
  179. package/dist/components/TextField/TextField.module.js.map +1 -1
  180. package/dist/components/TextField/TextField.module.scss +2 -5
  181. package/dist/components/Webhook/WebhookVerificationDialog.js +1 -1
  182. package/dist/components/WordPress/useWordPressPosts.js +1 -1
  183. package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
  184. package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js +1 -1
  185. package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js +1 -1
  186. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +1 -1
  187. package/dist/components/entity/page/title_bar/EntityPageTitleBar.d.ts.map +1 -1
  188. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js +66 -49
  189. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
  190. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +1 -1
  191. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  192. package/dist/components/error/SendMessageToEntityOwnerDialog.js +1 -1
  193. package/dist/components/index.js +1 -1
  194. package/dist/components/menu/ComplexMenu.d.ts.map +1 -1
  195. package/dist/components/menu/ComplexMenu.js +1 -4
  196. package/dist/components/menu/ComplexMenu.js.map +1 -1
  197. package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js +1 -1
  198. package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
  199. package/dist/features/curator/dashboard/CuratorDashboard.d.ts +1 -1
  200. package/dist/features/curator/dashboard/CuratorDashboard.d.ts.map +1 -1
  201. package/dist/features/curator/dashboard/CuratorDashboard.js +36 -35
  202. package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
  203. package/dist/features/curator/dashboard/CuratorDashboardRouter.d.ts +13 -0
  204. package/dist/features/curator/dashboard/CuratorDashboardRouter.d.ts.map +1 -0
  205. package/dist/features/curator/dashboard/CuratorDashboardRouter.js +37 -0
  206. package/dist/features/curator/dashboard/CuratorDashboardRouter.js.map +1 -0
  207. package/dist/features/curator/dashboard/components/CurationTaskCard.css +1 -1
  208. package/dist/features/curator/dashboard/components/CurationTaskCard.d.ts +3 -1
  209. package/dist/features/curator/dashboard/components/CurationTaskCard.d.ts.map +1 -1
  210. package/dist/features/curator/dashboard/components/CurationTaskCard.js +26 -157
  211. package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
  212. package/dist/features/curator/dashboard/components/CurationTaskCard.module.js +10 -6
  213. package/dist/features/curator/dashboard/components/CurationTaskCard.module.js.map +1 -1
  214. package/dist/features/curator/dashboard/components/CurationTaskCard.module.scss +31 -0
  215. package/dist/features/curator/dashboard/components/CurationTaskCardLayout.d.ts +25 -0
  216. package/dist/features/curator/dashboard/components/CurationTaskCardLayout.d.ts.map +1 -0
  217. package/dist/features/curator/dashboard/components/CurationTaskCardLayout.js +134 -0
  218. package/dist/features/curator/dashboard/components/CurationTaskCardLayout.js.map +1 -0
  219. package/dist/features/curator/dashboard/components/ExecutableTaskCard.d.ts +10 -0
  220. package/dist/features/curator/dashboard/components/ExecutableTaskCard.d.ts.map +1 -0
  221. package/dist/features/curator/dashboard/components/ExecutableTaskCard.js +51 -0
  222. package/dist/features/curator/dashboard/components/ExecutableTaskCard.js.map +1 -0
  223. package/dist/features/curator/dashboard/components/GridTaskCard.d.ts +10 -0
  224. package/dist/features/curator/dashboard/components/GridTaskCard.d.ts.map +1 -0
  225. package/dist/features/curator/dashboard/components/GridTaskCard.js +35 -0
  226. package/dist/features/curator/dashboard/components/GridTaskCard.js.map +1 -0
  227. package/dist/features/curator/dashboard/components/NextStepButton.css +1 -1
  228. package/dist/features/curator/dashboard/components/NextStepButton.d.ts +3 -0
  229. package/dist/features/curator/dashboard/components/NextStepButton.d.ts.map +1 -1
  230. package/dist/features/curator/dashboard/components/NextStepButton.js +56 -26
  231. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  232. package/dist/features/curator/dashboard/components/NextStepButton.module.js +6 -5
  233. package/dist/features/curator/dashboard/components/NextStepButton.module.js.map +1 -1
  234. package/dist/features/curator/dashboard/components/NextStepButton.module.scss +28 -0
  235. package/dist/features/curator/dashboard/components/getExecutableTaskButtonState.d.ts +31 -0
  236. package/dist/features/curator/dashboard/components/getExecutableTaskButtonState.d.ts.map +1 -0
  237. package/dist/features/curator/dashboard/components/getExecutableTaskButtonState.js +32 -0
  238. package/dist/features/curator/dashboard/components/getExecutableTaskButtonState.js.map +1 -0
  239. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
  240. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +213 -204
  241. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  242. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts +0 -1
  243. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
  244. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +19 -39
  245. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  246. package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts +9 -3
  247. package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts.map +1 -1
  248. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +37 -46
  249. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  250. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.d.ts +17 -0
  251. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.d.ts.map +1 -0
  252. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.js +43 -0
  253. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.js.map +1 -0
  254. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.d.ts.map +1 -1
  255. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js +27 -26
  256. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  257. package/dist/features/entity/metadata-task/create-task/CommonTaskFields.d.ts +16 -0
  258. package/dist/features/entity/metadata-task/create-task/CommonTaskFields.d.ts.map +1 -0
  259. package/dist/features/entity/metadata-task/create-task/CommonTaskFields.js +64 -0
  260. package/dist/features/entity/metadata-task/create-task/CommonTaskFields.js.map +1 -0
  261. package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.d.ts +41 -0
  262. package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.d.ts.map +1 -0
  263. package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.js +165 -0
  264. package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.js.map +1 -0
  265. package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.d.ts +18 -0
  266. package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.d.ts.map +1 -0
  267. package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.js +78 -0
  268. package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.js.map +1 -0
  269. package/dist/features/entity/metadata-task/create-task/CreateTaskCategoryPicker.d.ts +10 -0
  270. package/dist/features/entity/metadata-task/create-task/CreateTaskCategoryPicker.d.ts.map +1 -0
  271. package/dist/features/entity/metadata-task/create-task/CreateTaskCategoryPicker.js +40 -0
  272. package/dist/features/entity/metadata-task/create-task/CreateTaskCategoryPicker.js.map +1 -0
  273. package/dist/features/entity/metadata-task/create-task/CreateTaskConfirmation.d.ts +13 -0
  274. package/dist/features/entity/metadata-task/create-task/CreateTaskConfirmation.d.ts.map +1 -0
  275. package/dist/features/entity/metadata-task/create-task/CreateTaskConfirmation.js +35 -0
  276. package/dist/features/entity/metadata-task/create-task/CreateTaskConfirmation.js.map +1 -0
  277. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.d.ts +41 -0
  278. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.d.ts.map +1 -0
  279. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js +198 -0
  280. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js.map +1 -0
  281. package/dist/features/entity/metadata-task/create-task/EditCurationTaskPage.d.ts +8 -0
  282. package/dist/features/entity/metadata-task/create-task/EditCurationTaskPage.d.ts.map +1 -0
  283. package/dist/features/entity/metadata-task/create-task/EditCurationTaskPage.js +29 -0
  284. package/dist/features/entity/metadata-task/create-task/EditCurationTaskPage.js.map +1 -0
  285. package/dist/features/entity/metadata-task/create-task/FileBasedFields.d.ts +13 -0
  286. package/dist/features/entity/metadata-task/create-task/FileBasedFields.d.ts.map +1 -0
  287. package/dist/features/entity/metadata-task/create-task/FileBasedFields.js +65 -0
  288. package/dist/features/entity/metadata-task/create-task/FileBasedFields.js.map +1 -0
  289. package/dist/features/entity/metadata-task/create-task/ProjectSelectorField.d.ts +11 -0
  290. package/dist/features/entity/metadata-task/create-task/ProjectSelectorField.d.ts.map +1 -0
  291. package/dist/features/entity/metadata-task/create-task/ProjectSelectorField.js +33 -0
  292. package/dist/features/entity/metadata-task/create-task/ProjectSelectorField.js.map +1 -0
  293. package/dist/features/entity/metadata-task/create-task/RecordBasedFields.d.ts +13 -0
  294. package/dist/features/entity/metadata-task/create-task/RecordBasedFields.d.ts.map +1 -0
  295. package/dist/features/entity/metadata-task/create-task/RecordBasedFields.js +38 -0
  296. package/dist/features/entity/metadata-task/create-task/RecordBasedFields.js.map +1 -0
  297. package/dist/features/entity/metadata-task/create-task/RecordSetFields.d.ts +13 -0
  298. package/dist/features/entity/metadata-task/create-task/RecordSetFields.d.ts.map +1 -0
  299. package/dist/features/entity/metadata-task/create-task/RecordSetFields.js +72 -0
  300. package/dist/features/entity/metadata-task/create-task/RecordSetFields.js.map +1 -0
  301. package/dist/features/entity/metadata-task/create-task/SampleSheetFields.d.ts +11 -0
  302. package/dist/features/entity/metadata-task/create-task/SampleSheetFields.d.ts.map +1 -0
  303. package/dist/features/entity/metadata-task/create-task/SampleSheetFields.js +42 -0
  304. package/dist/features/entity/metadata-task/create-task/SampleSheetFields.js.map +1 -0
  305. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.d.ts +17 -0
  306. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.d.ts.map +1 -0
  307. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js +70 -0
  308. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js.map +1 -0
  309. package/dist/features/entity/metadata-task/create-task/TaskFormActions.d.ts +23 -0
  310. package/dist/features/entity/metadata-task/create-task/TaskFormActions.d.ts.map +1 -0
  311. package/dist/features/entity/metadata-task/create-task/TaskFormActions.js +68 -0
  312. package/dist/features/entity/metadata-task/create-task/TaskFormActions.js.map +1 -0
  313. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.d.ts +17 -0
  314. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.d.ts.map +1 -0
  315. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js +33 -0
  316. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js.map +1 -0
  317. package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.d.ts +50 -0
  318. package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.d.ts.map +1 -0
  319. package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.js +76 -0
  320. package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.js.map +1 -0
  321. package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.d.ts +36 -0
  322. package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.d.ts.map +1 -0
  323. package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.js +31 -0
  324. package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.js.map +1 -0
  325. package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.d.ts +32 -0
  326. package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.d.ts.map +1 -0
  327. package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.js +33 -0
  328. package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.js.map +1 -0
  329. package/dist/features/entity/metadata-task/create-task/utils/taskIdValidation.d.ts +10 -0
  330. package/dist/features/entity/metadata-task/create-task/utils/taskIdValidation.d.ts.map +1 -0
  331. package/dist/features/entity/metadata-task/create-task/utils/taskIdValidation.js +13 -0
  332. package/dist/features/entity/metadata-task/create-task/utils/taskIdValidation.js.map +1 -0
  333. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.d.ts.map +1 -1
  334. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js +24 -24
  335. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
  336. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.d.ts.map +1 -1
  337. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js +2 -2
  338. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
  339. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
  340. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +33 -32
  341. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
  342. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.d.ts.map +1 -1
  343. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js +24 -21
  344. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
  345. package/dist/features/entity/metadata-task/utils/constants.d.ts +84 -15
  346. package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
  347. package/dist/features/entity/metadata-task/utils/constants.js +47 -3
  348. package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
  349. package/dist/features/entity/metadata-task/utils/dueDate.d.ts +22 -0
  350. package/dist/features/entity/metadata-task/utils/dueDate.d.ts.map +1 -0
  351. package/dist/features/entity/metadata-task/utils/dueDate.js +24 -0
  352. package/dist/features/entity/metadata-task/utils/dueDate.js.map +1 -0
  353. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.d.ts +2 -2
  354. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.d.ts.map +1 -1
  355. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js +5 -6
  356. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
  357. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.d.ts +4 -4
  358. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.d.ts.map +1 -1
  359. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js +5 -6
  360. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
  361. package/dist/features/entity/metadata-task/utils/types.d.ts +12 -0
  362. package/dist/features/entity/metadata-task/utils/types.d.ts.map +1 -0
  363. package/dist/features/entity/metadata-task/utils/types.js +18 -0
  364. package/dist/features/entity/metadata-task/utils/types.js.map +1 -0
  365. package/dist/mocks/curation/mockCurationTask.d.ts +6 -0
  366. package/dist/mocks/curation/mockCurationTask.d.ts.map +1 -1
  367. package/dist/mocks/curation/mockCurationTask.js +20 -3
  368. package/dist/mocks/curation/mockCurationTask.js.map +1 -1
  369. package/dist/mocks/msw/handlers/curationTaskExecutionHandlers.d.ts +16 -0
  370. package/dist/mocks/msw/handlers/curationTaskExecutionHandlers.d.ts.map +1 -0
  371. package/dist/mocks/msw/handlers/curationTaskExecutionHandlers.js +24 -0
  372. package/dist/mocks/msw/handlers/curationTaskExecutionHandlers.js.map +1 -0
  373. package/dist/style/components/_data-grid-extra.css +1 -1
  374. package/dist/style/components/_data-grid-extra.scss +0 -6
  375. package/dist/synapse-client/SynapseClient.d.ts +7 -1
  376. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  377. package/dist/synapse-client/SynapseClient.js +493 -482
  378. package/dist/synapse-client/SynapseClient.js.map +1 -1
  379. package/dist/synapse-client/index.js +3 -3
  380. package/dist/synapse-queries/curation/task/useCurationTask.d.ts +8 -1
  381. package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
  382. package/dist/synapse-queries/curation/task/useCurationTask.js +48 -34
  383. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  384. package/dist/theme/palette/Palettes.js +2 -2
  385. package/dist/theme/palette/Palettes.js.map +1 -1
  386. package/dist/tsconfig.build.tsbuildinfo +1 -1
  387. package/dist/utils/AppUtils/session/useSessionManager.d.ts.map +1 -1
  388. package/dist/utils/AppUtils/session/useSessionManager.js +50 -48
  389. package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
  390. package/dist/utils/SynapseConstants.d.ts +4 -1
  391. package/dist/utils/SynapseConstants.d.ts.map +1 -1
  392. package/dist/utils/SynapseConstants.js +86 -83
  393. package/dist/utils/SynapseConstants.js.map +1 -1
  394. package/dist/utils/featureflag/FeatureFlags.d.ts +2 -2
  395. package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
  396. package/dist/utils/featureflag/FeatureFlags.js +1 -1
  397. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  398. package/dist/utils/hooks/useDetectSSOCode.d.ts.map +1 -1
  399. package/dist/utils/hooks/useDetectSSOCode.js +37 -27
  400. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  401. package/package.json +6 -6
  402. package/dist/components/DataGrid/MergeGridWithSourceTableButton.d.ts +0 -8
  403. package/dist/components/DataGrid/MergeGridWithSourceTableButton.d.ts.map +0 -1
  404. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js +0 -64
  405. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DownloadOptions.js","names":[],"sources":["../../../../src/components/SynapseTable/table-top/DownloadOptions.tsx"],"sourcesContent":["import { useGetEntity } from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils'\nimport { isDataset } from '@/utils/functions/EntityTypeUtils'\nimport { canTableQueryBeAddedToDownloadList } from '@/utils/functions/queryUtils'\nimport { MenuItem, Tooltip } from '@mui/material'\nimport { Table } from '@sage-bionetworks/synapse-types'\nimport { ReactNode, useMemo, useState } from 'react'\nimport ModalDownload from '../../ModalDownload/ModalDownload'\nimport ProgrammaticTableDownload from '../../ProgrammaticTableDownload/ProgrammaticTableDownload'\nimport { useQueryContext } from '../../QueryContext'\nimport {\n useHasSelectedRowsAtomValue,\n useSelectedRowsAtomValue,\n} from '../../QueryWrapper/TableRowSelectionState'\nimport { useGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport { ElementWithTooltip } from '../../widgets/ElementWithTooltip'\nimport { getFileColumnModelId } from '../SynapseTableUtils'\nimport { getNumberOfResultsToAddToDownloadListCopy } from '../TopLevelControls/TopLevelControlsUtils'\nimport { DownloadLoginModal } from './DownloadLoginModal'\n\nexport type DownloadOptionsProps = {\n onDownloadFiles: () => void\n darkTheme?: boolean\n}\n\nexport function DownloadOptions(props: DownloadOptionsProps) {\n const { isAuthenticated } = useSynapseContext()\n const {\n entityId,\n versionNumber,\n getCurrentQueryRequest,\n hasResettableFilters,\n } = useQueryContext()\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useGetQueryMetadata()\n\n const selectedRows = useSelectedRowsAtomValue()\n const hasSelectedRows = useHasSelectedRowsAtomValue()\n\n const queryBundleRequest = useMemo(\n () => getCurrentQueryRequest(),\n [getCurrentQueryRequest],\n )\n\n const [showLoginModal, setShowLoginModal] = useState(false)\n const [showExportMetadata, setShowExportMetadata] = useState(false)\n const [showProgrammaticOptions, setShowProgrammaticOptions] = useState(false)\n const { onDownloadFiles, darkTheme = true } = props\n\n const fileColumnId = getFileColumnModelId(queryMetadata?.columnModels)\n\n const showAddQueryToDownloadList = canTableQueryBeAddedToDownloadList(\n entity,\n fileColumnId,\n )\n\n // SWC-5878 - Disable downloading a \"Draft\" dataset\n const disableDownload = entity && isDataset(entity) && entity.isLatestVersion\n\n const downloadMenuItems: ReactNode[] = useMemo(() => {\n const downloadMenuItems = []\n if (showAddQueryToDownloadList) {\n downloadMenuItems.push(\n <Tooltip\n key={'add-to-download-list'}\n title={\n disableDownload\n ? 'A draft version of a dataset cannot be added to the Download Cart'\n : null\n }\n placement=\"left\"\n enterNextDelay={300}\n describeChild={true}\n >\n <MenuItem\n className={disableDownload ? 'ignoreLink' : undefined}\n disabled={disableDownload}\n // If disabled, add pointer-events-auto so the tooltip still works\n style={disableDownload ? { pointerEvents: 'auto' } : {}}\n onClick={() =>\n isAuthenticated ? onDownloadFiles() : setShowLoginModal(true)\n }\n >\n {getNumberOfResultsToAddToDownloadListCopy(\n hasResettableFilters,\n hasSelectedRows,\n selectedRows,\n queryMetadata?.queryCount,\n 'file',\n )}\n </MenuItem>\n </Tooltip>,\n )\n }\n downloadMenuItems.push(\n <MenuItem\n key={'export-table'}\n onClick={() => {\n setShowExportMetadata(true)\n }}\n >\n Export Table\n </MenuItem>,\n )\n downloadMenuItems.push(\n <Tooltip\n key={'programmatic-options'}\n title={\n disableDownload\n ? 'A draft version of a dataset cannot be downloaded programmatically'\n : null\n }\n placement=\"left\"\n enterNextDelay={300}\n describeChild={true}\n >\n <MenuItem\n className={disableDownload ? 'ignoreLink' : undefined}\n disabled={disableDownload}\n // If disabled, add pointer-events-auto so the tooltip still works\n style={disableDownload ? { pointerEvents: 'auto' } : {}}\n onClick={() => setShowProgrammaticOptions(true)}\n >\n Programmatic Options\n </MenuItem>\n </Tooltip>,\n )\n return downloadMenuItems\n }, [\n isAuthenticated,\n disableDownload,\n hasResettableFilters,\n hasSelectedRows,\n onDownloadFiles,\n queryMetadata?.queryCount,\n selectedRows,\n showAddQueryToDownloadList,\n ])\n\n return (\n <>\n <ElementWithTooltip\n tooltipText={'Download Options'}\n size=\"lg\"\n darkTheme={darkTheme}\n icon={'download'}\n menuItems={downloadMenuItems}\n />\n {showLoginModal && (\n <DownloadLoginModal\n showModal={showLoginModal}\n onHide={() => setShowLoginModal(false)}\n ></DownloadLoginModal>\n )}\n {\n // modal can render anywhere, this is not a particular location\n showExportMetadata && (\n <ModalDownload\n onClose={() => setShowExportMetadata(false)}\n queryBundleRequest={queryBundleRequest}\n />\n )\n }\n {showProgrammaticOptions && queryMetadata && (\n <ProgrammaticTableDownload\n onHide={() => setShowProgrammaticOptions(false)}\n queryBundleRequest={queryBundleRequest}\n ></ProgrammaticTableDownload>\n )}\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyBA,SAAgB,EAAgB,GAA6B;CAC3D,IAAM,EAAE,uBAAoB,EAAkB,GACxC,EACJ,aACA,kBACA,2BACA,4BACE,EAAgB,GACd,EAAE,MAAM,MAAW,EAAoB,GAAU,CAAa,GAC9D,EAAE,MAAM,MAAkB,EAAoB,GAE9C,IAAe,EAAyB,GACxC,IAAkB,EAA4B,GAE9C,IAAqB,QACnB,EAAuB,GAC7B,CAAC,CAAsB,CACzB,GAEM,CAAC,GAAgB,KAAqB,EAAS,EAAK,GACpD,CAAC,GAAoB,KAAyB,EAAS,EAAK,GAC5D,CAAC,GAAyB,KAA8B,EAAS,EAAK,GACtE,EAAE,oBAAiB,eAAY,OAAS,GAIxC,IAA6B,EACjC,GAHmB,EAAqB,GAAe,YAIvD,CACF,GAGM,IAAkB,KAAU,EAAU,CAAM,KAAK,EAAO;CAkF9D,OACE,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,GAAD;GACE,aAAa;GACb,MAAK;GACM;GACX,MAAM;GACN,WAvFiC,QAAc;IACnD,IAAM,IAAoB,CAAC;IAmE3B,OAlEI,KACF,EAAkB,KAChB,kBAAC,GAAD;KAEE,OACE,IACI,sEACA;KAEN,WAAU;KACV,gBAAgB;KAChB,eAAe;eAEf,kBAAC,GAAD;MACE,WAAW,IAAkB,eAAe,KAAA;MAC5C,UAAU;MAEV,OAAO,IAAkB,EAAE,eAAe,OAAO,IAAI,CAAC;MACtD,eACE,IAAkB,EAAgB,IAAI,EAAkB,EAAI;gBAG7D,EACC,GACA,GACA,GACA,GAAe,YACf,MACF;KACQ,CAAA;IACH,GA3BF,sBA2BE,CACX,GAEF,EAAkB,KAChB,kBAAC,GAAD;KAEE,eAAe;MACb,EAAsB,EAAI;KAC5B;eACD;IAES,GANH,cAMG,CACZ,GACA,EAAkB,KAChB,kBAAC,GAAD;KAEE,OACE,IACI,uEACA;KAEN,WAAU;KACV,gBAAgB;KAChB,eAAe;eAEf,kBAAC,GAAD;MACE,WAAW,IAAkB,eAAe,KAAA;MAC5C,UAAU;MAEV,OAAO,IAAkB,EAAE,eAAe,OAAO,IAAI,CAAC;MACtD,eAAe,EAA2B,EAAI;gBAC/C;KAES,CAAA;IACH,GAnBF,sBAmBE,CACX,GACO;GACT,GAAG;IACD;IACA;IACA;IACA;IACA;IACA,GAAe;IACf;IACA;GACF,CASiB;EACZ,CAAA;EACA,KACC,kBAAC,GAAD;GACE,WAAW;GACX,cAAc,EAAkB,EAAK;EAClB,CAAA;EAIrB,KACE,kBAAC,GAAD;GACE,eAAe,EAAsB,EAAK;GACtB;EACrB,CAAA;EAGJ,KAA2B,KAC1B,kBAAC,GAAD;GACE,cAAc,EAA2B,EAAK;GAC1B;EACM,CAAA;CAE9B,EAAA,CAAA;AAEN"}
1
+ {"version":3,"file":"DownloadOptions.js","names":[],"sources":["../../../../src/components/SynapseTable/table-top/DownloadOptions.tsx"],"sourcesContent":["import { useGetEntity } from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils'\nimport { isDataset } from '@/utils/functions/EntityTypeUtils'\nimport { canTableQueryBeAddedToDownloadList } from '@/utils/functions/queryUtils'\nimport { MenuItem, Tooltip } from '@mui/material'\nimport { Table } from '@sage-bionetworks/synapse-types'\nimport { ReactNode, useMemo, useState } from 'react'\nimport ModalDownload from '../../ModalDownload/ModalDownload'\nimport ProgrammaticTableDownload from '../../ProgrammaticTableDownload/ProgrammaticTableDownload'\nimport { useQueryContext } from '../../QueryContext'\nimport {\n useHasSelectedRowsAtomValue,\n useSelectedRowsAtomValue,\n} from '../../QueryWrapper/TableRowSelectionState'\nimport { useGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport { ElementWithTooltip } from '../../widgets/ElementWithTooltip'\nimport { getFileColumnModelId } from '../SynapseTableUtils'\nimport { getNumberOfResultsToAddToDownloadListCopy } from '../TopLevelControls/TopLevelControlsUtils'\nimport { DownloadLoginModal } from './DownloadLoginModal'\n\nexport type DownloadOptionsProps = {\n onDownloadFiles: () => void\n darkTheme?: boolean\n}\n\nexport function DownloadOptions(props: DownloadOptionsProps) {\n const { isAuthenticated } = useSynapseContext()\n const {\n entityId,\n versionNumber,\n getCurrentQueryRequest,\n hasResettableFilters,\n } = useQueryContext()\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useGetQueryMetadata()\n\n const selectedRows = useSelectedRowsAtomValue()\n const hasSelectedRows = useHasSelectedRowsAtomValue()\n\n const queryBundleRequest = useMemo(\n () => getCurrentQueryRequest(),\n [getCurrentQueryRequest],\n )\n\n const [showLoginModal, setShowLoginModal] = useState(false)\n const [showExportMetadata, setShowExportMetadata] = useState(false)\n const [showProgrammaticOptions, setShowProgrammaticOptions] = useState(false)\n const { onDownloadFiles, darkTheme = true } = props\n\n const fileColumnId = getFileColumnModelId(queryMetadata?.columnModels)\n\n const showAddQueryToDownloadList = canTableQueryBeAddedToDownloadList(\n entity,\n fileColumnId,\n )\n\n // SWC-5878 - Disable downloading a \"Draft\" dataset\n const disableDownload = entity && isDataset(entity) && entity.isLatestVersion\n\n const downloadMenuItems: ReactNode[] = useMemo(() => {\n const downloadMenuItems = []\n if (showAddQueryToDownloadList) {\n downloadMenuItems.push(\n <Tooltip\n key={'add-to-download-list'}\n title={\n disableDownload\n ? 'A draft version of a dataset cannot be added to the Download List'\n : null\n }\n placement=\"left\"\n enterNextDelay={300}\n describeChild={true}\n >\n <MenuItem\n className={disableDownload ? 'ignoreLink' : undefined}\n disabled={disableDownload}\n // If disabled, add pointer-events-auto so the tooltip still works\n style={disableDownload ? { pointerEvents: 'auto' } : {}}\n onClick={() =>\n isAuthenticated ? onDownloadFiles() : setShowLoginModal(true)\n }\n >\n {getNumberOfResultsToAddToDownloadListCopy(\n hasResettableFilters,\n hasSelectedRows,\n selectedRows,\n queryMetadata?.queryCount,\n 'file',\n )}\n </MenuItem>\n </Tooltip>,\n )\n }\n downloadMenuItems.push(\n <MenuItem\n key={'export-table'}\n onClick={() => {\n setShowExportMetadata(true)\n }}\n >\n Export Table\n </MenuItem>,\n )\n downloadMenuItems.push(\n <Tooltip\n key={'programmatic-options'}\n title={\n disableDownload\n ? 'A draft version of a dataset cannot be downloaded programmatically'\n : null\n }\n placement=\"left\"\n enterNextDelay={300}\n describeChild={true}\n >\n <MenuItem\n className={disableDownload ? 'ignoreLink' : undefined}\n disabled={disableDownload}\n // If disabled, add pointer-events-auto so the tooltip still works\n style={disableDownload ? { pointerEvents: 'auto' } : {}}\n onClick={() => setShowProgrammaticOptions(true)}\n >\n Programmatic Options\n </MenuItem>\n </Tooltip>,\n )\n return downloadMenuItems\n }, [\n isAuthenticated,\n disableDownload,\n hasResettableFilters,\n hasSelectedRows,\n onDownloadFiles,\n queryMetadata?.queryCount,\n selectedRows,\n showAddQueryToDownloadList,\n ])\n\n return (\n <>\n <ElementWithTooltip\n tooltipText={'Download Options'}\n size=\"lg\"\n darkTheme={darkTheme}\n icon={'download'}\n menuItems={downloadMenuItems}\n />\n {showLoginModal && (\n <DownloadLoginModal\n showModal={showLoginModal}\n onHide={() => setShowLoginModal(false)}\n ></DownloadLoginModal>\n )}\n {\n // modal can render anywhere, this is not a particular location\n showExportMetadata && (\n <ModalDownload\n onClose={() => setShowExportMetadata(false)}\n queryBundleRequest={queryBundleRequest}\n />\n )\n }\n {showProgrammaticOptions && queryMetadata && (\n <ProgrammaticTableDownload\n onHide={() => setShowProgrammaticOptions(false)}\n queryBundleRequest={queryBundleRequest}\n ></ProgrammaticTableDownload>\n )}\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyBA,SAAgB,EAAgB,GAA6B;CAC3D,IAAM,EAAE,uBAAoB,EAAkB,GACxC,EACJ,aACA,kBACA,2BACA,4BACE,EAAgB,GACd,EAAE,MAAM,MAAW,EAAoB,GAAU,CAAa,GAC9D,EAAE,MAAM,MAAkB,EAAoB,GAE9C,IAAe,EAAyB,GACxC,IAAkB,EAA4B,GAE9C,IAAqB,QACnB,EAAuB,GAC7B,CAAC,CAAsB,CACzB,GAEM,CAAC,GAAgB,KAAqB,EAAS,EAAK,GACpD,CAAC,GAAoB,KAAyB,EAAS,EAAK,GAC5D,CAAC,GAAyB,KAA8B,EAAS,EAAK,GACtE,EAAE,oBAAiB,eAAY,OAAS,GAIxC,IAA6B,EACjC,GAHmB,EAAqB,GAAe,YAIvD,CACF,GAGM,IAAkB,KAAU,EAAU,CAAM,KAAK,EAAO;CAkF9D,OACE,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,GAAD;GACE,aAAa;GACb,MAAK;GACM;GACX,MAAM;GACN,WAvFiC,QAAc;IACnD,IAAM,IAAoB,CAAC;IAmE3B,OAlEI,KACF,EAAkB,KAChB,kBAAC,GAAD;KAEE,OACE,IACI,sEACA;KAEN,WAAU;KACV,gBAAgB;KAChB,eAAe;eAEf,kBAAC,GAAD;MACE,WAAW,IAAkB,eAAe,KAAA;MAC5C,UAAU;MAEV,OAAO,IAAkB,EAAE,eAAe,OAAO,IAAI,CAAC;MACtD,eACE,IAAkB,EAAgB,IAAI,EAAkB,EAAI;gBAG7D,EACC,GACA,GACA,GACA,GAAe,YACf,MACF;KACQ,CAAA;IACH,GA3BF,sBA2BE,CACX,GAEF,EAAkB,KAChB,kBAAC,GAAD;KAEE,eAAe;MACb,EAAsB,EAAI;KAC5B;eACD;IAES,GANH,cAMG,CACZ,GACA,EAAkB,KAChB,kBAAC,GAAD;KAEE,OACE,IACI,uEACA;KAEN,WAAU;KACV,gBAAgB;KAChB,eAAe;eAEf,kBAAC,GAAD;MACE,WAAW,IAAkB,eAAe,KAAA;MAC5C,UAAU;MAEV,OAAO,IAAkB,EAAE,eAAe,OAAO,IAAI,CAAC;MACtD,eAAe,EAA2B,EAAI;gBAC/C;KAES,CAAA;IACH,GAnBF,sBAmBE,CACX,GACO;GACT,GAAG;IACD;IACA;IACA;IACA;IACA;IACA,GAAe;IACf;IACA;GACF,CASiB;EACZ,CAAA;EACA,KACC,kBAAC,GAAD;GACE,WAAW;GACX,cAAc,EAAkB,EAAK;EAClB,CAAA;EAIrB,KACE,kBAAC,GAAD;GACE,eAAe,EAAsB,EAAK;GACtB;EACrB,CAAA;EAGJ,KAA2B,KAC1B,kBAAC,GAAD;GACE,cAAc,EAA2B,EAAK;GAC1B;EACM,CAAA;CAE9B,EAAA,CAAA;AAEN"}
@@ -2,8 +2,8 @@ import { displayToast as e } from "../ToastMessage/ToastMessage.js";
2
2
  import t from "../../synapse-client/index.js";
3
3
  import { EntityTypeGroup as n } from "../../utils/functions/EntityTypeUtils.js";
4
4
  import { useSynapseContext as r } from "../../utils/context/SynapseContext.js";
5
- import "../../utils/index.js";
6
5
  import "../ToastMessage/index.js";
6
+ import "../../utils/index.js";
7
7
  import { VersionSelectionType as i } from "../EntityFinder/VersionSelectionType.js";
8
8
  import { FinderScope as a } from "../EntityFinder/tree/EntityTree.js";
9
9
  import { EntityFinderModal as o } from "../EntityFinder/EntityFinderModal.js";
@@ -1 +1 @@
1
- ._inputLabel_11mtz_1.MuiInputLabel-root{flex-wrap:wrap;align-items:baseline;display:flex;position:static}._inputLabel_11mtz_1.MuiInputLabel-root .MuiFormLabel-asterisk{order:1}._description_11mtz_11{text-wrap:wrap;color:var(--synapse-gray-600);flex-basis:100%;order:2;margin-top:6px;font-weight:500}._charCount_11mtz_20{text-align:right;color:var(--synapse-gray-600);margin-top:2px;font-size:.75rem}
1
+ ._inputLabel_1d4zc_1.MuiInputLabel-root{flex-wrap:wrap;align-items:baseline;display:flex;position:static}._inputLabel_1d4zc_1.MuiInputLabel-root .MuiFormLabel-asterisk{order:1}._description_1d4zc_11{flex-basis:100%;order:2}._charCount_1d4zc_16{text-align:right;color:var(--synapse-gray-600);margin-top:2px;font-size:.75rem}
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../../src/components/TextField/TextField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,cAAc,IAAI,iBAAiB,EAEpC,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,SAAS,EAAS,MAAM,OAAO,CAAA;AAExC,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG;IAC/C;;;;OAIG;IACH,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,EAAE,EAAE,MAAM,EACV,KAAK,EACL,SAAgB,EAChB,SAAS,EACT,EAAE,EACF,KAAK,EACL,GAAG,IAAI,EACR,EAAE,cAAc,2CAwDhB"}
1
+ {"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../../src/components/TextField/TextField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,cAAc,IAAI,iBAAiB,EAEpC,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,SAAS,EAAS,MAAM,OAAO,CAAA;AAExC,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG;IAC/C;;;;OAIG;IACH,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,EAAE,EAAE,MAAM,EACV,KAAK,EACL,SAAgB,EAChB,SAAS,EACT,EAAE,EACF,KAAK,EACL,GAAG,IAAI,EACR,EAAE,cAAc,2CA0DhB"}
@@ -1,51 +1,53 @@
1
1
  import e from "./TextField.module.js";
2
- import { useId as t } from "react";
3
- import { Box as n, TextField as r, Typography as i, inputBaseClasses as a } from "@mui/material";
4
- import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
2
+ import t from "../FieldDescription/FieldDescription.js";
3
+ import "../FieldDescription/index.js";
4
+ import { useId as n } from "react";
5
+ import { Box as r, TextField as i, Typography as a, inputBaseClasses as o } from "@mui/material";
6
+ import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
5
7
  //#region src/components/TextField/TextField.tsx
6
- function l({ description: l, maxCharacterCount: u, slotProps: d, id: f, label: p, fullWidth: m = !0, className: h, sx: g, value: _, ...v }) {
7
- let y = t(), b = f ?? y, x = typeof _ == "string" ? _.length : 0;
8
- return /* @__PURE__ */ c(n, {
9
- className: h,
10
- sx: g,
11
- children: [/* @__PURE__ */ s(r, {
12
- id: b,
8
+ function u({ description: u, maxCharacterCount: d, slotProps: f, id: p, label: m, fullWidth: h = !0, className: g, sx: _, value: v, ...y }) {
9
+ let b = n(), x = p ?? b, S = typeof v == "string" ? v.length : 0;
10
+ return /* @__PURE__ */ l(r, {
11
+ className: g,
12
+ sx: _,
13
+ children: [/* @__PURE__ */ c(i, {
14
+ id: x,
13
15
  variant: "standard",
14
- label: p != null || l != null ? /* @__PURE__ */ c(o, { children: [p, l != null && /* @__PURE__ */ s("span", {
16
+ label: m != null || u != null ? /* @__PURE__ */ l(s, { children: [m, u != null && /* @__PURE__ */ c(t, {
15
17
  className: e.description,
16
- children: l
18
+ children: u
17
19
  })] }) : void 0,
18
- fullWidth: m,
19
- value: _,
20
- sx: { [`& .${a.root}`]: { marginTop: 0 } },
20
+ fullWidth: h,
21
+ value: v,
22
+ sx: { [`& .${o.root}`]: { marginTop: 0 } },
21
23
  slotProps: {
22
- ...d,
24
+ ...f,
23
25
  htmlInput: {
24
- maxLength: u,
25
- ...d?.htmlInput
26
+ maxLength: d,
27
+ ...f?.htmlInput
26
28
  },
27
29
  inputLabel: {
28
30
  className: e.inputLabel,
29
- ...d?.inputLabel
31
+ ...f?.inputLabel
30
32
  },
31
33
  input: {
32
34
  disableUnderline: !0,
33
- ...d?.input
35
+ ...f?.input
34
36
  }
35
37
  },
36
- ...v
37
- }), u !== void 0 && /* @__PURE__ */ c(i, {
38
+ ...y
39
+ }), d !== void 0 && /* @__PURE__ */ l(a, {
38
40
  variant: "body2",
39
41
  className: e.charCount,
40
42
  children: [
41
- x,
43
+ S,
42
44
  "/",
43
- u
45
+ d
44
46
  ]
45
47
  })]
46
48
  });
47
49
  }
48
50
  //#endregion
49
- export { l as default };
51
+ export { u as default };
50
52
 
51
53
  //# sourceMappingURL=TextField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.js","names":[],"sources":["../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import {\n Box,\n inputBaseClasses,\n TextField as MuiTextField,\n TextFieldProps as MuiTextFieldProps,\n Typography,\n} from '@mui/material'\nimport styles from './TextField.module.scss'\nimport { ReactNode, useId } from 'react'\n\nexport type TextFieldProps = MuiTextFieldProps & {\n /**\n * Neutral supplementary text shown below the label and above the input (similar to an inline tooltip).\n * Always rendered in a neutral color regardless of form state.\n * For error or status messages, use `helperText` instead.\n */\n description?: ReactNode\n maxCharacterCount?: number\n}\n\n/**\n * A styled text field built using MUI components and designed to match the Sage Design System (SDS) input fields.\n *\n * - `label`: Bold label text above the input. Changes color on focus/error/disabled states.\n * - `description`: Neutral supplementary text shown below the label, above the input. Always neutral color.\n * - `helperText`: Status or error message shown below the input. Color-reactive to form state.\n * - `maxCharacterCount`: Renders a character count indicator below the input and sets the `maxLength` on the input.\n */\nexport default function TextField({\n description,\n maxCharacterCount,\n slotProps,\n id: idProp,\n label,\n fullWidth = true,\n className,\n sx,\n value,\n ...rest\n}: TextFieldProps) {\n const generatedId = useId()\n const id = idProp ?? generatedId\n\n const currentLength = typeof value === 'string' ? value.length : 0\n\n const compositeLabel =\n label != null || description != null ? (\n <>\n {label}\n {description != null && (\n <span className={styles.description}>{description}</span>\n )}\n </>\n ) : undefined\n\n return (\n <Box className={className} sx={sx}>\n <MuiTextField\n id={id}\n variant=\"standard\"\n label={compositeLabel}\n fullWidth={fullWidth}\n value={value}\n sx={{\n [`& .${inputBaseClasses.root}`]: {\n // The theme default applies spacing(3) for the floating-label pattern (absolute\n // positioned label). Our label is in document flow (position: relative), so it\n // already occupies vertical space — no top margin needed on the input.\n marginTop: 0,\n },\n }}\n slotProps={{\n ...slotProps,\n htmlInput: {\n maxLength: maxCharacterCount,\n ...slotProps?.htmlInput,\n },\n inputLabel: {\n className: styles.inputLabel,\n ...slotProps?.inputLabel,\n },\n input: {\n disableUnderline: true,\n ...slotProps?.input,\n },\n }}\n {...rest}\n />\n {maxCharacterCount !== undefined && (\n <Typography variant=\"body2\" className={styles.charCount}>\n {currentLength}/{maxCharacterCount}\n </Typography>\n )}\n </Box>\n )\n}\n"],"mappings":";;;;;AA4BA,SAAwB,EAAU,EAChC,gBACA,sBACA,cACA,IAAI,GACJ,UACA,eAAY,IACZ,cACA,OACA,UACA,GAAG,KACc;CACjB,IAAM,IAAc,EAAM,GACpB,IAAK,KAAU,GAEf,IAAgB,OAAO,KAAU,WAAW,EAAM,SAAS;CAYjE,OACE,kBAAC,GAAD;EAAgB;EAAe;YAA/B,CACE,kBAAC,GAAD;GACM;GACJ,SAAQ;GACR,OAdJ,KAAS,QAAQ,KAAe,OAC9B,kBAAA,GAAA,EAAA,UAAA,CACG,GACA,KAAe,QACd,kBAAC,QAAD;IAAM,WAAW,EAAO;cAAc;GAAkB,CAAA,CAE1D,EAAA,CAAA,IACA,KAAA;GAQW;GACJ;GACP,IAAI,GACD,MAAM,EAAiB,SAAS,EAI/B,WAAW,EACb,EACF;GACA,WAAW;IACT,GAAG;IACH,WAAW;KACT,WAAW;KACX,GAAG,GAAW;IAChB;IACA,YAAY;KACV,WAAW,EAAO;KAClB,GAAG,GAAW;IAChB;IACA,OAAO;KACL,kBAAkB;KAClB,GAAG,GAAW;IAChB;GACF;GACA,GAAI;EACL,CAAA,GACA,MAAsB,KAAA,KACrB,kBAAC,GAAD;GAAY,SAAQ;GAAQ,WAAW,EAAO;aAA9C;IACG;IAAc;IAAE;GACP;IAEX;;AAET"}
1
+ {"version":3,"file":"TextField.js","names":[],"sources":["../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import {\n Box,\n inputBaseClasses,\n TextField as MuiTextField,\n TextFieldProps as MuiTextFieldProps,\n Typography,\n} from '@mui/material'\nimport styles from './TextField.module.scss'\nimport FieldDescription from '@/components/FieldDescription'\nimport { ReactNode, useId } from 'react'\n\nexport type TextFieldProps = MuiTextFieldProps & {\n /**\n * Neutral supplementary text shown below the label and above the input (similar to an inline tooltip).\n * Always rendered in a neutral color regardless of form state.\n * For error or status messages, use `helperText` instead.\n */\n description?: ReactNode\n maxCharacterCount?: number\n}\n\n/**\n * A styled text field built using MUI components and designed to match the Sage Design System (SDS) input fields.\n *\n * - `label`: Bold label text above the input. Changes color on focus/error/disabled states.\n * - `description`: Neutral supplementary text shown below the label, above the input. Always neutral color.\n * - `helperText`: Status or error message shown below the input. Color-reactive to form state.\n * - `maxCharacterCount`: Renders a character count indicator below the input and sets the `maxLength` on the input.\n */\nexport default function TextField({\n description,\n maxCharacterCount,\n slotProps,\n id: idProp,\n label,\n fullWidth = true,\n className,\n sx,\n value,\n ...rest\n}: TextFieldProps) {\n const generatedId = useId()\n const id = idProp ?? generatedId\n\n const currentLength = typeof value === 'string' ? value.length : 0\n\n const compositeLabel =\n label != null || description != null ? (\n <>\n {label}\n {description != null && (\n <FieldDescription className={styles.description}>\n {description}\n </FieldDescription>\n )}\n </>\n ) : undefined\n\n return (\n <Box className={className} sx={sx}>\n <MuiTextField\n id={id}\n variant=\"standard\"\n label={compositeLabel}\n fullWidth={fullWidth}\n value={value}\n sx={{\n [`& .${inputBaseClasses.root}`]: {\n // The theme default applies spacing(3) for the floating-label pattern (absolute\n // positioned label). Our label is in document flow (position: relative), so it\n // already occupies vertical space — no top margin needed on the input.\n marginTop: 0,\n },\n }}\n slotProps={{\n ...slotProps,\n htmlInput: {\n maxLength: maxCharacterCount,\n ...slotProps?.htmlInput,\n },\n inputLabel: {\n className: styles.inputLabel,\n ...slotProps?.inputLabel,\n },\n input: {\n disableUnderline: true,\n ...slotProps?.input,\n },\n }}\n {...rest}\n />\n {maxCharacterCount !== undefined && (\n <Typography variant=\"body2\" className={styles.charCount}>\n {currentLength}/{maxCharacterCount}\n </Typography>\n )}\n </Box>\n )\n}\n"],"mappings":";;;;;;;AA6BA,SAAwB,EAAU,EAChC,gBACA,sBACA,cACA,IAAI,GACJ,UACA,eAAY,IACZ,cACA,OACA,UACA,GAAG,KACc;CACjB,IAAM,IAAc,EAAM,GACpB,IAAK,KAAU,GAEf,IAAgB,OAAO,KAAU,WAAW,EAAM,SAAS;CAcjE,OACE,kBAAC,GAAD;EAAgB;EAAe;YAA/B,CACE,kBAAC,GAAD;GACM;GACJ,SAAQ;GACR,OAhBJ,KAAS,QAAQ,KAAe,OAC9B,kBAAA,GAAA,EAAA,UAAA,CACG,GACA,KAAe,QACd,kBAAC,GAAD;IAAkB,WAAW,EAAO;cACjC;GACe,CAAA,CAEpB,EAAA,CAAA,IACA,KAAA;GAQW;GACJ;GACP,IAAI,GACD,MAAM,EAAiB,SAAS,EAI/B,WAAW,EACb,EACF;GACA,WAAW;IACT,GAAG;IACH,WAAW;KACT,WAAW;KACX,GAAG,GAAW;IAChB;IACA,YAAY;KACV,WAAW,EAAO;KAClB,GAAG,GAAW;IAChB;IACA,OAAO;KACL,kBAAkB;KAClB,GAAG,GAAW;IAChB;GACF;GACA,GAAI;EACL,CAAA,GACA,MAAsB,KAAA,KACrB,kBAAC,GAAD;GAAY,SAAQ;GAAQ,WAAW,EAAO;aAA9C;IACG;IAAc;IAAE;GACP;IAEX;;AAET"}
@@ -1,7 +1,7 @@
1
1
  import './TextField.css';var e = {
2
- inputLabel: "_inputLabel_11mtz_1",
3
- description: "_description_11mtz_11",
4
- charCount: "_charCount_11mtz_20"
2
+ inputLabel: "_inputLabel_1d4zc_1",
3
+ description: "_description_1d4zc_11",
4
+ charCount: "_charCount_1d4zc_16"
5
5
  };
6
6
  //#endregion
7
7
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.module.js","names":[],"sources":["../../../src/components/TextField/TextField.module.scss"],"sourcesContent":[".inputLabel:global(.MuiInputLabel-root) {\n // Override MUI's default absolute positioning so the label stays in document flow.\n position: static;\n\n // Flex layout lets us reorder the three children:\n // 1. anonymous text node (label) — order 0 (default)\n // 2. .MuiFormLabel-asterisk span — order 1 (inline, same row)\n // 3. .description span — order 2, flex-basis 100% (wraps to new row)\n display: flex;\n flex-wrap: wrap;\n align-items: baseline;\n\n :global(.MuiFormLabel-asterisk) {\n order: 1;\n }\n}\n\n.description {\n order: 2;\n flex-basis: 100%;\n font-weight: 500;\n text-wrap: wrap;\n // Explicit color prevents inheriting error/focused color from the parent InputLabel.\n color: var(--synapse-gray-600);\n margin-top: 6px;\n}\n\n.charCount {\n text-align: right;\n color: var(--synapse-gray-600);\n font-size: 0.75rem;\n margin-top: 2px;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"TextField.module.js","names":[],"sources":["../../../src/components/TextField/TextField.module.scss"],"sourcesContent":[".inputLabel:global(.MuiInputLabel-root) {\n // Override MUI's default absolute positioning so the label stays in document flow.\n position: static;\n\n // Flex layout lets us reorder the three children:\n // 1. anonymous text node (label) — order 0 (default)\n // 2. .MuiFormLabel-asterisk span — order 1 (inline, same row)\n // 3. .description span — order 2, flex-basis 100% (wraps to new row)\n display: flex;\n flex-wrap: wrap;\n align-items: baseline;\n\n :global(.MuiFormLabel-asterisk) {\n order: 1;\n }\n}\n\n.description {\n // Layout only; visual styling lives in FieldDescription. Reorders the description below\n // the label/asterisk row within the flex InputLabel.\n order: 2;\n flex-basis: 100%;\n}\n\n.charCount {\n text-align: right;\n color: var(--synapse-gray-600);\n font-size: 0.75rem;\n margin-top: 2px;\n}\n"],"mappings":""}
@@ -16,13 +16,10 @@
16
16
  }
17
17
 
18
18
  .description {
19
+ // Layout only; visual styling lives in FieldDescription. Reorders the description below
20
+ // the label/asterisk row within the flex InputLabel.
19
21
  order: 2;
20
22
  flex-basis: 100%;
21
- font-weight: 500;
22
- text-wrap: wrap;
23
- // Explicit color prevents inheriting error/focused color from the parent InputLabel.
24
- color: var(--synapse-gray-600);
25
- margin-top: 6px;
26
23
  }
27
24
 
28
25
  .charCount {
@@ -1,6 +1,6 @@
1
1
  import { displayToast as e } from "../ToastMessage/ToastMessage.js";
2
- import { ConfirmationDialog as t } from "../ConfirmationDialog/ConfirmationDialog.js";
3
2
  import "../ToastMessage/index.js";
3
+ import { ConfirmationDialog as t } from "../ConfirmationDialog/ConfirmationDialog.js";
4
4
  import { useVerifyWebhook as n } from "../../synapse-queries/webhook/useWebhook.js";
5
5
  import { useState as r } from "react";
6
6
  import { Alert as i, TextField as a, Typography as o } from "@mui/material";
@@ -2,7 +2,7 @@ import { useQuery as e } from "@tanstack/react-query";
2
2
  //#region src/components/WordPress/useWordPressPosts.ts
3
3
  async function t(e, t) {
4
4
  let n = new URL(`${e}/wp-json/wp/v2/posts`);
5
- n.searchParams.set("per_page", String(t)), n.searchParams.set("orderby", "date"), n.searchParams.set("order", "desc"), n.searchParams.set("_fields", "id,date,link,title,categories");
5
+ n.searchParams.set("per_page", String(t)), n.searchParams.set("orderby", "date"), n.searchParams.set("order", "desc"), n.searchParams.set("_fields", "id,date,link,title,excerpt,categories");
6
6
  let r = await fetch(n.toString());
7
7
  if (!r.ok) throw Error(`Failed to fetch WordPress posts: ${r.statusText}`);
8
8
  return r.json();
@@ -1 +1 @@
1
- {"version":3,"file":"useWordPressPosts.js","names":[],"sources":["../../../src/components/WordPress/useWordPressPosts.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport { WordPressPost } from '../SynapseHomepageV2/WordPressNewsItem'\n\nasync function fetchWordPressPosts(\n wordpressSiteUrl: string,\n postCount: number,\n): Promise<WordPressPost[]> {\n const url = new URL(`${wordpressSiteUrl}/wp-json/wp/v2/posts`)\n url.searchParams.set('per_page', String(postCount))\n url.searchParams.set('orderby', 'date')\n url.searchParams.set('order', 'desc')\n url.searchParams.set('_fields', 'id,date,link,title,categories')\n const response = await fetch(url.toString())\n if (!response.ok) {\n throw new Error(`Failed to fetch WordPress posts: ${response.statusText}`)\n }\n return response.json() as Promise<WordPressPost[]>\n}\n\nexport function useWordPressPosts(wordpressSiteUrl: string, postCount: number) {\n return useQuery({\n queryKey: ['wordpressPosts', wordpressSiteUrl, postCount],\n queryFn: () => fetchWordPressPosts(wordpressSiteUrl, postCount),\n })\n}\n"],"mappings":";;AAGA,eAAe,EACb,GACA,GAC0B;CAC1B,IAAM,IAAM,IAAI,IAAI,GAAG,EAAiB,qBAAqB;CAI7D,AAHA,EAAI,aAAa,IAAI,YAAY,OAAO,CAAS,CAAC,GAClD,EAAI,aAAa,IAAI,WAAW,MAAM,GACtC,EAAI,aAAa,IAAI,SAAS,MAAM,GACpC,EAAI,aAAa,IAAI,WAAW,+BAA+B;CAC/D,IAAM,IAAW,MAAM,MAAM,EAAI,SAAS,CAAC;CAC3C,IAAI,CAAC,EAAS,IACZ,MAAU,MAAM,oCAAoC,EAAS,YAAY;CAE3E,OAAO,EAAS,KAAK;AACvB;AAEA,SAAgB,EAAkB,GAA0B,GAAmB;CAC7E,OAAO,EAAS;EACd,UAAU;GAAC;GAAkB;GAAkB;EAAS;EACxD,eAAe,EAAoB,GAAkB,CAAS;CAChE,CAAC;AACH"}
1
+ {"version":3,"file":"useWordPressPosts.js","names":[],"sources":["../../../src/components/WordPress/useWordPressPosts.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport { WordPressPost } from '../SynapseHomepageV2/WordPressNewsItem'\n\nasync function fetchWordPressPosts(\n wordpressSiteUrl: string,\n postCount: number,\n): Promise<WordPressPost[]> {\n const url = new URL(`${wordpressSiteUrl}/wp-json/wp/v2/posts`)\n url.searchParams.set('per_page', String(postCount))\n url.searchParams.set('orderby', 'date')\n url.searchParams.set('order', 'desc')\n url.searchParams.set('_fields', 'id,date,link,title,excerpt,categories')\n const response = await fetch(url.toString())\n if (!response.ok) {\n throw new Error(`Failed to fetch WordPress posts: ${response.statusText}`)\n }\n return response.json() as Promise<WordPressPost[]>\n}\n\nexport function useWordPressPosts(wordpressSiteUrl: string, postCount: number) {\n return useQuery({\n queryKey: ['wordpressPosts', wordpressSiteUrl, postCount],\n queryFn: () => fetchWordPressPosts(wordpressSiteUrl, postCount),\n })\n}\n"],"mappings":";;AAGA,eAAe,EACb,GACA,GAC0B;CAC1B,IAAM,IAAM,IAAI,IAAI,GAAG,EAAiB,qBAAqB;CAI7D,AAHA,EAAI,aAAa,IAAI,YAAY,OAAO,CAAS,CAAC,GAClD,EAAI,aAAa,IAAI,WAAW,MAAM,GACtC,EAAI,aAAa,IAAI,SAAS,MAAM,GACpC,EAAI,aAAa,IAAI,WAAW,uCAAuC;CACvE,IAAM,IAAW,MAAM,MAAM,EAAI,SAAS,CAAC;CAC3C,IAAI,CAAC,EAAS,IACZ,MAAU,MAAM,oCAAoC,EAAS,YAAY;CAE3E,OAAO,EAAS,KAAK;AACvB;AAEA,SAAgB,EAAkB,GAA0B,GAAmB;CAC7E,OAAO,EAAS;EACd,UAAU;GAAC;GAAkB;GAAkB;EAAS;EACxD,eAAe,EAAoB,GAAkB,CAAS;CAChE,CAAC;AACH"}
@@ -1,8 +1,8 @@
1
1
  import { displayToast as e } from "../../ToastMessage/ToastMessage.js";
2
+ import "../../ToastMessage/index.js";
2
3
  import { useUpdateDataAccessSubmissionState as t } from "../../../synapse-queries/dataaccess/useDataAccessSubmission.js";
3
4
  import "../../../synapse-queries/index.js";
4
5
  import { DialogBase as n } from "../../DialogBase.js";
5
- import "../../ToastMessage/index.js";
6
6
  import { useCallback as r } from "react";
7
7
  import { Alert as i, Button as a, Typography as o } from "@mui/material";
8
8
  import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
@@ -1,8 +1,8 @@
1
1
  import { displayToast as e } from "../../ToastMessage/ToastMessage.js";
2
+ import "../../ToastMessage/index.js";
2
3
  import { useCancelDataAccessRequest as t } from "../../../synapse-queries/dataaccess/useAccessRequirements.js";
3
4
  import "../../../synapse-queries/index.js";
4
5
  import { DialogBase as n } from "../../DialogBase.js";
5
- import "../../ToastMessage/index.js";
6
6
  import { useCallback as r } from "react";
7
7
  import { Alert as i, Button as a, Typography as o } from "@mui/material";
8
8
  import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
@@ -1,13 +1,13 @@
1
1
  import { displayToast as e } from "../../ToastMessage/ToastMessage.js";
2
2
  import "../../../utils/SynapseConstants.js";
3
3
  import { SynapseErrorBoundary as t } from "../../error/ErrorBanner.js";
4
+ import "../../ToastMessage/index.js";
4
5
  import { useGetUserAccessApproval as n } from "../../../synapse-queries/dataaccess/useAccessApprovals.js";
5
6
  import r from "../../../synapse-queries/dataaccess/useDataAccessSubmission.js";
6
7
  import { useGetAccessRequirementACL as ee, useGetAccessRequirementWikiPageKey as i, useGetAccessRequirements as a } from "../../../synapse-queries/dataaccess/useAccessRequirements.js";
7
8
  import { useGetCurrentUserProfile as te } from "../../../synapse-queries/user/useUserBundle.js";
8
9
  import "../../../synapse-queries/user/index.js";
9
10
  import { Markdown as o } from "../../Markdown/MarkdownSynapse.js";
10
- import "../../ToastMessage/index.js";
11
11
  import { formatDate as s } from "../../../utils/functions/DateFormatter.js";
12
12
  import { FileHandleLink as c } from "../../widgets/FileHandleLink.js";
13
13
  import { UserBadge as l } from "../../UserCard/UserBadge.js";
@@ -1 +1 @@
1
- {"version":3,"file":"EntityPageTitleBar.d.ts","sourceRoot":"","sources":["../../../../../src/components/entity/page/title_bar/EntityPageTitleBar.tsx"],"names":[],"mappings":"AAMA,OAAyB,EACvB,qBAAqB,EACtB,MAAM,iCAAiC,CAAA;AAIxC,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAE7C,mCAAmC,EAAE,MAAM,IAAI,CAAA;CAChD,CAAA;AAED,eAAO,MAAM,0BAA0B,YAAY,CAAA;AAKnD;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAwGxE"}
1
+ {"version":3,"file":"EntityPageTitleBar.d.ts","sourceRoot":"","sources":["../../../../../src/components/entity/page/title_bar/EntityPageTitleBar.tsx"],"names":[],"mappings":"AAMA,OAAyB,EACvB,qBAAqB,EACtB,MAAM,iCAAiC,CAAA;AAKxC,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAE7C,mCAAmC,EAAE,MAAM,IAAI,CAAA;CAChD,CAAA;AAED,eAAO,MAAM,0BAA0B,YAAY,CAAA;AAMnD;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAuHxE"}
@@ -7,19 +7,20 @@ import a from "../../../favorites/FavoriteButton.js";
7
7
  import o from "../action_menu/EntityActionMenu.js";
8
8
  import { EntityTitleBarVersionInfo as s } from "./EntityTitleBarVersionInfo.js";
9
9
  import c from "./TitleBarProperties.js";
10
- import { Avatar as l, Box as u, Skeleton as d, Stack as f, Typography as p } from "@mui/material";
11
- import { jsx as m, jsxs as h } from "react/jsx-runtime";
10
+ import { CopyToClipboardString as l } from "../../../CopyToClipboardString/CopyToClipboardString.js";
11
+ import { Avatar as u, Box as d, Skeleton as f, Stack as p, Typography as m } from "@mui/material";
12
+ import { jsx as h, jsxs as g } from "react/jsx-runtime";
12
13
  //#region src/components/entity/page/title_bar/EntityPageTitleBar.tsx
13
- var g = "#9EAAB7", _ = "#EAF0F5", v = "#497097", y = "#33373D";
14
- function b(g) {
15
- let { entityId: b, versionNumber: x, entityActionMenuProps: S } = g, C = S?.actionConfiguration.SHOW_VERSION_HISTORY?.onClick, { data: w, isLoading: T } = t(b, x), E = w?.entity && e(w.entity) ? w.entity.repositoryName : w?.entity?.name;
16
- return /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m(u, {
14
+ var _ = "#9EAAB7", v = "#EAF0F5", y = "#497097", b = "#33373D", x = "#4D535A";
15
+ function S(_) {
16
+ let { entityId: S, versionNumber: C, entityActionMenuProps: w } = _, T = w?.actionConfiguration.SHOW_VERSION_HISTORY?.onClick, { data: E, isLoading: D } = t(S, C), O = E?.entity && e(E.entity) ? E.entity.repositoryName : E?.entity?.name;
17
+ return /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h(d, {
17
18
  sx: {
18
19
  padding: "20px 40px",
19
- backgroundColor: _,
20
+ backgroundColor: v,
20
21
  borderRadius: "5px"
21
22
  },
22
- children: /* @__PURE__ */ h(f, {
23
+ children: /* @__PURE__ */ g(p, {
23
24
  sx: {
24
25
  flexDirection: {
25
26
  xs: "column",
@@ -27,66 +28,82 @@ function b(g) {
27
28
  },
28
29
  alignItems: "center"
29
30
  },
30
- children: [/* @__PURE__ */ h(f, {
31
+ children: [/* @__PURE__ */ g(p, {
31
32
  direction: "row",
32
33
  sx: {
33
34
  alignItems: "center",
34
35
  flexGrow: 1
35
36
  },
36
- children: [/* @__PURE__ */ m(i, {
37
- condition: T,
38
- wrapper: d,
37
+ children: [/* @__PURE__ */ h(i, {
38
+ condition: D,
39
+ wrapper: f,
39
40
  wrapperProps: { variant: "circular" },
40
- children: /* @__PURE__ */ m(l, {
41
+ children: /* @__PURE__ */ h(u, {
41
42
  sx: {
42
- bgcolor: v,
43
- height: 48,
44
- width: 48,
45
- borderRadius: "3px"
43
+ bgcolor: y,
44
+ height: 68,
45
+ width: 68,
46
+ borderRadius: "3px",
47
+ svg: {
48
+ height: "36px",
49
+ width: "36px"
50
+ }
46
51
  },
47
52
  variant: "square",
48
- children: w?.entityType && /* @__PURE__ */ m(n, {
49
- icon: w?.entityType ? r[w.entityType] : "file",
53
+ children: E?.entityType && /* @__PURE__ */ h(n, {
54
+ icon: E?.entityType ? r[E.entityType] : "file",
50
55
  wrap: !1
51
56
  })
52
57
  })
53
- }), /* @__PURE__ */ h(u, {
58
+ }), /* @__PURE__ */ g(d, {
54
59
  sx: {
55
60
  marginLeft: "10px",
56
61
  flexGrow: 1
57
62
  },
58
- children: [/* @__PURE__ */ h(f, {
59
- direction: "row",
60
- sx: {
61
- alignItems: "center",
62
- gap: "3px"
63
- },
64
- children: [/* @__PURE__ */ m(i, {
65
- condition: T,
66
- wrapper: d,
67
- children: /* @__PURE__ */ m(p, {
68
- variant: "headline2",
69
- sx: {
70
- color: y,
71
- fontWeight: 540
72
- },
73
- children: E ?? "Name not set"
74
- })
75
- }), w?.entity?.id && /* @__PURE__ */ m(a, {
76
- entityId: w.entity.id,
77
- iconColor: "#9EAAB7"
78
- })]
79
- }), /* @__PURE__ */ m(s, {
80
- entityId: b,
81
- versionNumber: x,
82
- toggleShowVersionHistory: C
83
- })]
63
+ children: [
64
+ /* @__PURE__ */ g(p, {
65
+ direction: "row",
66
+ sx: {
67
+ alignItems: "center",
68
+ gap: "3px"
69
+ },
70
+ children: [/* @__PURE__ */ h(i, {
71
+ condition: D,
72
+ wrapper: f,
73
+ children: /* @__PURE__ */ h(m, {
74
+ variant: "headline2",
75
+ sx: {
76
+ color: b,
77
+ fontWeight: 540
78
+ },
79
+ children: O ?? "Name not set"
80
+ })
81
+ }), E?.entity?.id && /* @__PURE__ */ h(a, {
82
+ entityId: E.entity.id,
83
+ iconColor: "#9EAAB7"
84
+ })]
85
+ }),
86
+ /* @__PURE__ */ h(s, {
87
+ entityId: S,
88
+ versionNumber: C,
89
+ toggleShowVersionHistory: T
90
+ }),
91
+ /* @__PURE__ */ h(l, {
92
+ value: S,
93
+ icon: "rounded",
94
+ sx: { "& .MuiTypography-root": {
95
+ color: x,
96
+ fontWeight: 440,
97
+ lineHeight: "20px"
98
+ } }
99
+ })
100
+ ]
84
101
  })]
85
- }), S && /* @__PURE__ */ m(o, { ...S })]
102
+ }), w && /* @__PURE__ */ h(o, { ...w })]
86
103
  })
87
- }), /* @__PURE__ */ m(c, { ...g })] });
104
+ }), /* @__PURE__ */ h(c, { ..._ })] });
88
105
  }
89
106
  //#endregion
90
- export { g as FAVORITE_BUTTON_ICON_COLOR, b as default };
107
+ export { _ as FAVORITE_BUTTON_ICON_COLOR, S as default };
91
108
 
92
109
  //# sourceMappingURL=EntityPageTitleBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityPageTitleBar.js","names":[],"sources":["../../../../../src/components/entity/page/title_bar/EntityPageTitleBar.tsx"],"sourcesContent":["import ConditionalWrapper from '@/components/utils/ConditionalWrapper'\nimport { useGetEntityBundle } from '@/synapse-queries'\nimport { isDockerRepository } from '@/utils/types/IsType'\nimport { Avatar, Box, Skeleton, Stack, Typography } from '@mui/material'\nimport FavoriteButton from '../../../favorites/FavoriteButton'\nimport IconSvg, { type2SvgIconName } from '../../../IconSvg/IconSvg'\nimport EntityActionMenu, {\n EntityActionMenuProps,\n} from '../action_menu/EntityActionMenu'\nimport { EntityTitleBarVersionInfo } from './EntityTitleBarVersionInfo'\nimport TitleBarProperties from './TitleBarProperties'\n\nexport type EntityPageTitleBarProps = {\n entityId: string\n versionNumber?: number\n /* Props that will be passed through to an EntityActionMenu component */\n entityActionMenuProps?: EntityActionMenuProps\n /* Callback invoked when an ACT member clicks \"Add Conditions for Use\". */\n onActMemberClickAddConditionsForUse: () => void\n}\n\nexport const FAVORITE_BUTTON_ICON_COLOR = '#9EAAB7'\nconst TITLE_BAR_BACKGROUND_COLOR = '#EAF0F5'\nconst AVATAR_BACKGROUND_COLOR = '#497097'\nconst TITLE_NAME_COLOR = '#33373D'\n\n/**\n * The EntityPageTitleBar component is shown on every Entity page in Synapse, and shows an Entity's metadata and\n * provides controls to view and manipulate the Entity.\n */\nexport default function EntityPageTitleBar(props: EntityPageTitleBarProps) {\n const { entityId, versionNumber, entityActionMenuProps } = props\n\n const toggleShowVersionHistory =\n entityActionMenuProps?.actionConfiguration['SHOW_VERSION_HISTORY']?.onClick\n\n const { data: bundle, isLoading } = useGetEntityBundle(\n entityId,\n versionNumber,\n )\n\n const name =\n bundle?.entity && isDockerRepository(bundle.entity)\n ? bundle.entity.repositoryName\n : bundle?.entity?.name\n\n return (\n <div>\n <Box\n sx={{\n padding: '20px 40px',\n backgroundColor: TITLE_BAR_BACKGROUND_COLOR,\n borderRadius: '5px',\n }}\n >\n <Stack\n sx={{\n flexDirection: { xs: 'column', md: 'row' },\n alignItems: 'center',\n }}\n >\n <Stack\n direction={'row'}\n sx={{\n alignItems: 'center',\n flexGrow: 1,\n }}\n >\n <ConditionalWrapper\n condition={isLoading}\n wrapper={Skeleton}\n wrapperProps={{\n variant: 'circular',\n }}\n >\n <Avatar\n sx={{\n bgcolor: AVATAR_BACKGROUND_COLOR,\n height: 48,\n width: 48,\n borderRadius: '3px',\n }}\n variant={'square'}\n >\n {bundle?.entityType && (\n <IconSvg\n icon={\n bundle?.entityType\n ? type2SvgIconName[bundle.entityType]\n : 'file'\n }\n wrap={false}\n />\n )}\n </Avatar>\n </ConditionalWrapper>\n <Box sx={{ marginLeft: '10px', flexGrow: 1 }}>\n <Stack\n direction={'row'}\n sx={{\n alignItems: 'center',\n gap: '3px',\n }}\n >\n <ConditionalWrapper condition={isLoading} wrapper={Skeleton}>\n <Typography\n variant={'headline2'}\n sx={{ color: TITLE_NAME_COLOR, fontWeight: 540 }}\n >\n {name ?? 'Name not set'}\n </Typography>\n </ConditionalWrapper>\n {bundle?.entity?.id && (\n <FavoriteButton\n entityId={bundle.entity.id}\n iconColor={FAVORITE_BUTTON_ICON_COLOR}\n />\n )}\n </Stack>\n <EntityTitleBarVersionInfo\n entityId={entityId}\n versionNumber={versionNumber}\n toggleShowVersionHistory={toggleShowVersionHistory}\n />\n </Box>\n </Stack>\n {entityActionMenuProps && (\n <EntityActionMenu {...entityActionMenuProps} />\n )}\n </Stack>\n </Box>\n <TitleBarProperties {...props} />\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAqBA,IAAa,IAA6B,WACpC,IAA6B,WAC7B,IAA0B,WAC1B,IAAmB;AAMzB,SAAwB,EAAmB,GAAgC;CACzE,IAAM,EAAE,aAAU,kBAAe,6BAA0B,GAErD,IACJ,GAAuB,oBAAoB,sBAAyB,SAEhE,EAAE,MAAM,GAAQ,iBAAc,EAClC,GACA,CACF,GAEM,IACJ,GAAQ,UAAU,EAAmB,EAAO,MAAM,IAC9C,EAAO,OAAO,iBACd,GAAQ,QAAQ;CAEtB,OACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,iBAAiB;GACjB,cAAc;EAChB;YAEA,kBAAC,GAAD;GACE,IAAI;IACF,eAAe;KAAE,IAAI;KAAU,IAAI;IAAM;IACzC,YAAY;GACd;aAJF,CAME,kBAAC,GAAD;IACE,WAAW;IACX,IAAI;KACF,YAAY;KACZ,UAAU;IACZ;cALF,CAOE,kBAAC,GAAD;KACE,WAAW;KACX,SAAS;KACT,cAAc,EACZ,SAAS,WACX;eAEA,kBAAC,GAAD;MACE,IAAI;OACF,SAAS;OACT,QAAQ;OACR,OAAO;OACP,cAAc;MAChB;MACA,SAAS;gBAER,GAAQ,cACP,kBAAC,GAAD;OACE,MACE,GAAQ,aACJ,EAAiB,EAAO,cACxB;OAEN,MAAM;MACP,CAAA;KAEG,CAAA;IACU,CAAA,GACpB,kBAAC,GAAD;KAAK,IAAI;MAAE,YAAY;MAAQ,UAAU;KAAE;eAA3C,CACE,kBAAC,GAAD;MACE,WAAW;MACX,IAAI;OACF,YAAY;OACZ,KAAK;MACP;gBALF,CAOE,kBAAC,GAAD;OAAoB,WAAW;OAAW,SAAS;iBACjD,kBAAC,GAAD;QACE,SAAS;QACT,IAAI;SAAE,OAAO;SAAkB,YAAY;QAAI;kBAE9C,KAAQ;OACC,CAAA;MACM,CAAA,GACnB,GAAQ,QAAQ,MACf,kBAAC,GAAD;OACE,UAAU,EAAO,OAAO;OACxB,WAAA;MACD,CAAA,CAEE;SACP,kBAAC,GAAD;MACY;MACK;MACW;KAC3B,CAAA,CACE;MACA;OACN,KACC,kBAAC,GAAD,EAAkB,GAAI,EAAwB,CAAA,CAE3C;;CACJ,CAAA,GACL,kBAAC,GAAD,EAAoB,GAAI,EAAQ,CAAA,CAC7B,EAAA,CAAA;AAET"}
1
+ {"version":3,"file":"EntityPageTitleBar.js","names":[],"sources":["../../../../../src/components/entity/page/title_bar/EntityPageTitleBar.tsx"],"sourcesContent":["import ConditionalWrapper from '@/components/utils/ConditionalWrapper'\nimport { useGetEntityBundle } from '@/synapse-queries'\nimport { isDockerRepository } from '@/utils/types/IsType'\nimport { Avatar, Box, Skeleton, Stack, Typography } from '@mui/material'\nimport FavoriteButton from '../../../favorites/FavoriteButton'\nimport IconSvg, { type2SvgIconName } from '../../../IconSvg/IconSvg'\nimport EntityActionMenu, {\n EntityActionMenuProps,\n} from '../action_menu/EntityActionMenu'\nimport { EntityTitleBarVersionInfo } from './EntityTitleBarVersionInfo'\nimport TitleBarProperties from './TitleBarProperties'\nimport CopyToClipboardString from '@/components/CopyToClipboardString/CopyToClipboardString'\n\nexport type EntityPageTitleBarProps = {\n entityId: string\n versionNumber?: number\n /* Props that will be passed through to an EntityActionMenu component */\n entityActionMenuProps?: EntityActionMenuProps\n /* Callback invoked when an ACT member clicks \"Add Conditions for Use\". */\n onActMemberClickAddConditionsForUse: () => void\n}\n\nexport const FAVORITE_BUTTON_ICON_COLOR = '#9EAAB7'\nconst TITLE_BAR_BACKGROUND_COLOR = '#EAF0F5'\nconst AVATAR_BACKGROUND_COLOR = '#497097'\nconst TITLE_NAME_COLOR = '#33373D'\nconst SYN_ID_COLOR = '#4D535A'\n\n/**\n * The EntityPageTitleBar component is shown on every Entity page in Synapse, and shows an Entity's metadata and\n * provides controls to view and manipulate the Entity.\n */\nexport default function EntityPageTitleBar(props: EntityPageTitleBarProps) {\n const { entityId, versionNumber, entityActionMenuProps } = props\n\n const toggleShowVersionHistory =\n entityActionMenuProps?.actionConfiguration['SHOW_VERSION_HISTORY']?.onClick\n\n const { data: bundle, isLoading } = useGetEntityBundle(\n entityId,\n versionNumber,\n )\n\n const name =\n bundle?.entity && isDockerRepository(bundle.entity)\n ? bundle.entity.repositoryName\n : bundle?.entity?.name\n\n return (\n <div>\n <Box\n sx={{\n padding: '20px 40px',\n backgroundColor: TITLE_BAR_BACKGROUND_COLOR,\n borderRadius: '5px',\n }}\n >\n <Stack\n sx={{\n flexDirection: { xs: 'column', md: 'row' },\n alignItems: 'center',\n }}\n >\n <Stack\n direction={'row'}\n sx={{\n alignItems: 'center',\n flexGrow: 1,\n }}\n >\n <ConditionalWrapper\n condition={isLoading}\n wrapper={Skeleton}\n wrapperProps={{\n variant: 'circular',\n }}\n >\n <Avatar\n sx={{\n bgcolor: AVATAR_BACKGROUND_COLOR,\n height: 68,\n width: 68,\n borderRadius: '3px',\n svg: {\n height: '36px',\n width: '36px',\n },\n }}\n variant={'square'}\n >\n {bundle?.entityType && (\n <IconSvg\n icon={\n bundle?.entityType\n ? type2SvgIconName[bundle.entityType]\n : 'file'\n }\n wrap={false}\n />\n )}\n </Avatar>\n </ConditionalWrapper>\n <Box sx={{ marginLeft: '10px', flexGrow: 1 }}>\n <Stack\n direction={'row'}\n sx={{\n alignItems: 'center',\n gap: '3px',\n }}\n >\n <ConditionalWrapper condition={isLoading} wrapper={Skeleton}>\n <Typography\n variant={'headline2'}\n sx={{ color: TITLE_NAME_COLOR, fontWeight: 540 }}\n >\n {name ?? 'Name not set'}\n </Typography>\n </ConditionalWrapper>\n {bundle?.entity?.id && (\n <FavoriteButton\n entityId={bundle.entity.id}\n iconColor={FAVORITE_BUTTON_ICON_COLOR}\n />\n )}\n </Stack>\n <EntityTitleBarVersionInfo\n entityId={entityId}\n versionNumber={versionNumber}\n toggleShowVersionHistory={toggleShowVersionHistory}\n />\n <CopyToClipboardString\n value={entityId}\n icon=\"rounded\"\n sx={{\n '& .MuiTypography-root': {\n color: SYN_ID_COLOR,\n fontWeight: 440,\n lineHeight: '20px',\n },\n }}\n />\n </Box>\n </Stack>\n {entityActionMenuProps && (\n <EntityActionMenu {...entityActionMenuProps} />\n )}\n </Stack>\n </Box>\n <TitleBarProperties {...props} />\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAsBA,IAAa,IAA6B,WACpC,IAA6B,WAC7B,IAA0B,WAC1B,IAAmB,WACnB,IAAe;AAMrB,SAAwB,EAAmB,GAAgC;CACzE,IAAM,EAAE,aAAU,kBAAe,6BAA0B,GAErD,IACJ,GAAuB,oBAAoB,sBAAyB,SAEhE,EAAE,MAAM,GAAQ,iBAAc,EAClC,GACA,CACF,GAEM,IACJ,GAAQ,UAAU,EAAmB,EAAO,MAAM,IAC9C,EAAO,OAAO,iBACd,GAAQ,QAAQ;CAEtB,OACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,iBAAiB;GACjB,cAAc;EAChB;YAEA,kBAAC,GAAD;GACE,IAAI;IACF,eAAe;KAAE,IAAI;KAAU,IAAI;IAAM;IACzC,YAAY;GACd;aAJF,CAME,kBAAC,GAAD;IACE,WAAW;IACX,IAAI;KACF,YAAY;KACZ,UAAU;IACZ;cALF,CAOE,kBAAC,GAAD;KACE,WAAW;KACX,SAAS;KACT,cAAc,EACZ,SAAS,WACX;eAEA,kBAAC,GAAD;MACE,IAAI;OACF,SAAS;OACT,QAAQ;OACR,OAAO;OACP,cAAc;OACd,KAAK;QACH,QAAQ;QACR,OAAO;OACT;MACF;MACA,SAAS;gBAER,GAAQ,cACP,kBAAC,GAAD;OACE,MACE,GAAQ,aACJ,EAAiB,EAAO,cACxB;OAEN,MAAM;MACP,CAAA;KAEG,CAAA;IACU,CAAA,GACpB,kBAAC,GAAD;KAAK,IAAI;MAAE,YAAY;MAAQ,UAAU;KAAE;eAA3C;MACE,kBAAC,GAAD;OACE,WAAW;OACX,IAAI;QACF,YAAY;QACZ,KAAK;OACP;iBALF,CAOE,kBAAC,GAAD;QAAoB,WAAW;QAAW,SAAS;kBACjD,kBAAC,GAAD;SACE,SAAS;SACT,IAAI;UAAE,OAAO;UAAkB,YAAY;SAAI;mBAE9C,KAAQ;QACC,CAAA;OACM,CAAA,GACnB,GAAQ,QAAQ,MACf,kBAAC,GAAD;QACE,UAAU,EAAO,OAAO;QACxB,WAAA;OACD,CAAA,CAEE;;MACP,kBAAC,GAAD;OACY;OACK;OACW;MAC3B,CAAA;MACD,kBAAC,GAAD;OACE,OAAO;OACP,MAAK;OACL,IAAI,EACF,yBAAyB;QACvB,OAAO;QACP,YAAY;QACZ,YAAY;OACd,EACF;MACD,CAAA;KACE;MACA;OACN,KACC,kBAAC,GAAD,EAAkB,GAAI,EAAwB,CAAA,CAE3C;;CACJ,CAAA,GACL,kBAAC,GAAD,EAAoB,GAAI,EAAQ,CAAA,CAC7B,EAAA,CAAA;AAET"}
@@ -57,7 +57,7 @@ function b(b, x) {
57
57
  value: /* @__PURE__ */ g(d, {
58
58
  value: W,
59
59
  href: W,
60
- useRoundedIcon: !0
60
+ icon: "rounded"
61
61
  })
62
62
  },
63
63
  G && {
@@ -1 +1 @@
1
- {"version":3,"file":"useGetEntityTitleBarProperties.js","names":[],"sources":["../../../../../src/components/entity/page/title_bar/useGetEntityTitleBarProperties.tsx"],"sourcesContent":["import { useGetEntityChildren } from '@/synapse-queries'\nimport { useGetDOIAssociation } from '@/synapse-queries/doi/useDOI'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport {\n isEntityRefCollectionView,\n isVersionableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport useGetEntityMetadata from '@/utils/hooks/useGetEntityMetadata'\nimport { Box, Link } from '@mui/material'\nimport { DoiObjectType, EntityType } from '@sage-bionetworks/synapse-client'\nimport { EntityRefCollectionView } from '@sage-bionetworks/synapse-types'\nimport { ReactNode, useState } from 'react'\nimport CopyToClipboardString from '../../../CopyToClipboardString/CopyToClipboardString'\nimport { HasAccessV2 } from '../../../HasAccess/HasAccessV2'\nimport { CitationsDialog } from './CitationsDialog'\nimport { maxCitationCount, useDataCiteUsage } from './useDataCiteUsage'\nimport { useGetMentions } from './useGetMentions'\nimport Linkify from '@/components/GenericCard/Linkify'\n\nexport type EntityProperty = {\n key: string\n title: string\n value: ReactNode\n}\n\n/**\n * This hook fetches all the entity metadata shown on the Entity page, and transforms the data into an ordered list of\n * render-able key-value pairs.\n * @param entityId\n * @param versionNumber\n */\nexport function useGetEntityTitleBarProperties(\n entityId: string,\n versionNumber?: number,\n): EntityProperty[] {\n const {\n entityBundle: bundle,\n fileHandle: dataFileHandle,\n downloadAlias,\n isContainer,\n fileHandleStorageInfo,\n uploadDestinationString,\n } = useGetEntityMetadata(entityId, versionNumber)\n const [dataCiteCitationsDialogOpen, setDataCiteCitationsDialogOpen] =\n useState(false)\n const [mentionsDialogOpen, setMentionsDialogOpen] = useState(false)\n const { data: entityChildrenResponse } = useGetEntityChildren(\n {\n parentId: entityId,\n includeTypes: Object.values(EntityType),\n includeTotalChildCount: true,\n },\n { enabled: isContainer },\n )\n\n // If this is the latest entity version, show the \"versionless\" DOI if it exists.\n const useFallbackVersionlessDOI =\n bundle &&\n !bundle.doiAssociation &&\n isVersionableEntity(bundle.entity) &&\n bundle.entity.isLatestVersion\n const { data: versionlessDOIAssociation } = useGetDOIAssociation(\n { id: entityId, version: undefined, type: DoiObjectType.ENTITY },\n {\n enabled: useFallbackVersionlessDOI,\n },\n )\n\n const size =\n dataFileHandle?.contentSize &&\n calculateFriendlyFileSize(dataFileHandle.contentSize)\n const storageLocation =\n fileHandleStorageInfo &&\n 'location' in fileHandleStorageInfo &&\n fileHandleStorageInfo.location\n const endpoint =\n fileHandleStorageInfo &&\n 'endpoint' in fileHandleStorageInfo &&\n fileHandleStorageInfo.endpoint\n const bucket =\n fileHandleStorageInfo &&\n 'bucket' in fileHandleStorageInfo &&\n fileHandleStorageInfo.bucket\n const fileKey =\n fileHandleStorageInfo &&\n 'fileKey' in fileHandleStorageInfo &&\n fileHandleStorageInfo.fileKey\n const externalUrl =\n fileHandleStorageInfo &&\n 'url' in fileHandleStorageInfo &&\n fileHandleStorageInfo.url\n\n const md5 = dataFileHandle?.contentMd5\n\n // If there is no version-specific DOI, fall back to the versionless DOI\n const doiAssociation = useFallbackVersionlessDOI\n ? versionlessDOIAssociation\n : bundle?.doiAssociation\n const { data: dataCiteUsage } = useDataCiteUsage(doiAssociation?.doiUri)\n const doi = doiAssociation && `https://doi.org/${doiAssociation?.doiUri}`\n const isDoiUsage = !!dataCiteUsage && dataCiteUsage.citationCount > 0\n const containerItems = entityChildrenResponse?.totalChildCount\n\n const datasetItems =\n bundle?.entity && isEntityRefCollectionView(bundle.entity)\n ? ((bundle?.entity as EntityRefCollectionView).items ?? []).length\n : null\n\n const { data: mentions } = useGetMentions(entityId)\n const isMentions = !!mentions && mentions.length > 0\n return [\n {\n key: 'id',\n title: 'SynID',\n value: <CopyToClipboardString value={entityId} />,\n },\n {\n key: 'access',\n title: 'Access',\n value: <HasAccessV2 entityId={entityId} />,\n },\n size && { key: 'fileSize', title: 'Size', value: size },\n containerItems != null && {\n key: 'containerItems',\n title: 'Items',\n value: containerItems.toLocaleString(),\n },\n datasetItems != null && {\n key: 'entityRefCollectionItems',\n title: 'Items',\n value: datasetItems.toLocaleString(),\n },\n doi && {\n key: 'doi',\n title: 'DOI',\n value: <CopyToClipboardString value={doi} href={doi} useRoundedIcon />,\n },\n isDoiUsage && {\n key: 'citations',\n title: 'Citations',\n value: (\n <>\n <Link onClick={() => setDataCiteCitationsDialogOpen(true)}>\n {dataCiteUsage.citationCount.toLocaleString()}\n {dataCiteUsage.citationCount == maxCitationCount && '+'}\n </Link>\n <CitationsDialog\n open={dataCiteCitationsDialogOpen}\n onClose={() => setDataCiteCitationsDialogOpen(false)}\n citations={dataCiteUsage.citations}\n />\n </>\n ),\n },\n isMentions && {\n key: 'mentions',\n title: 'Mentions',\n value: (\n <>\n <Link onClick={() => setMentionsDialogOpen(true)}>\n {mentions.length.toLocaleString()}\n </Link>\n <CitationsDialog\n open={mentionsDialogOpen}\n onClose={() => setMentionsDialogOpen(false)}\n citations={mentions}\n title=\"Mentioned in\"\n />\n </>\n ),\n },\n md5 && {\n key: 'fileMd5',\n title: 'MD5',\n value: <CopyToClipboardString value={md5} />,\n },\n !isContainer &&\n storageLocation && {\n key: 'fileStorageLocation',\n title: 'Storage Location',\n value: storageLocation,\n },\n isContainer &&\n uploadDestinationString && {\n key: 'uploadDestination',\n title: 'Upload Destination',\n value: uploadDestinationString,\n },\n endpoint && {\n key: 'externalFileEndpoint',\n title: 'Endpoint',\n value: endpoint,\n },\n externalUrl && {\n key: 'externalUrl',\n title: 'URL',\n value: <Linkify text={externalUrl} />,\n },\n bucket && { key: 'externalFileBucket', title: 'Bucket', value: bucket },\n fileKey && { key: 'externalFileKey', title: 'File Key', value: fileKey },\n downloadAlias && {\n key: 'fileAlias',\n title: 'Alias',\n value: (\n <>\n {'Name when downloaded will be: '}\n <Box sx={{ display: 'inline', fontFamily: 'monospace' }}>\n {downloadAlias}\n </Box>\n </>\n ),\n },\n ].filter(item => !!item) as EntityProperty[]\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useGetEntityTitleBarProperties.js","names":[],"sources":["../../../../../src/components/entity/page/title_bar/useGetEntityTitleBarProperties.tsx"],"sourcesContent":["import { useGetEntityChildren } from '@/synapse-queries'\nimport { useGetDOIAssociation } from '@/synapse-queries/doi/useDOI'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport {\n isEntityRefCollectionView,\n isVersionableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport useGetEntityMetadata from '@/utils/hooks/useGetEntityMetadata'\nimport { Box, Link } from '@mui/material'\nimport { DoiObjectType, EntityType } from '@sage-bionetworks/synapse-client'\nimport { EntityRefCollectionView } from '@sage-bionetworks/synapse-types'\nimport { ReactNode, useState } from 'react'\nimport CopyToClipboardString from '../../../CopyToClipboardString/CopyToClipboardString'\nimport { HasAccessV2 } from '../../../HasAccess/HasAccessV2'\nimport { CitationsDialog } from './CitationsDialog'\nimport { maxCitationCount, useDataCiteUsage } from './useDataCiteUsage'\nimport { useGetMentions } from './useGetMentions'\nimport Linkify from '@/components/GenericCard/Linkify'\n\nexport type EntityProperty = {\n key: string\n title: string\n value: ReactNode\n}\n\n/**\n * This hook fetches all the entity metadata shown on the Entity page, and transforms the data into an ordered list of\n * render-able key-value pairs.\n * @param entityId\n * @param versionNumber\n */\nexport function useGetEntityTitleBarProperties(\n entityId: string,\n versionNumber?: number,\n): EntityProperty[] {\n const {\n entityBundle: bundle,\n fileHandle: dataFileHandle,\n downloadAlias,\n isContainer,\n fileHandleStorageInfo,\n uploadDestinationString,\n } = useGetEntityMetadata(entityId, versionNumber)\n const [dataCiteCitationsDialogOpen, setDataCiteCitationsDialogOpen] =\n useState(false)\n const [mentionsDialogOpen, setMentionsDialogOpen] = useState(false)\n const { data: entityChildrenResponse } = useGetEntityChildren(\n {\n parentId: entityId,\n includeTypes: Object.values(EntityType),\n includeTotalChildCount: true,\n },\n { enabled: isContainer },\n )\n\n // If this is the latest entity version, show the \"versionless\" DOI if it exists.\n const useFallbackVersionlessDOI =\n bundle &&\n !bundle.doiAssociation &&\n isVersionableEntity(bundle.entity) &&\n bundle.entity.isLatestVersion\n const { data: versionlessDOIAssociation } = useGetDOIAssociation(\n { id: entityId, version: undefined, type: DoiObjectType.ENTITY },\n {\n enabled: useFallbackVersionlessDOI,\n },\n )\n\n const size =\n dataFileHandle?.contentSize &&\n calculateFriendlyFileSize(dataFileHandle.contentSize)\n const storageLocation =\n fileHandleStorageInfo &&\n 'location' in fileHandleStorageInfo &&\n fileHandleStorageInfo.location\n const endpoint =\n fileHandleStorageInfo &&\n 'endpoint' in fileHandleStorageInfo &&\n fileHandleStorageInfo.endpoint\n const bucket =\n fileHandleStorageInfo &&\n 'bucket' in fileHandleStorageInfo &&\n fileHandleStorageInfo.bucket\n const fileKey =\n fileHandleStorageInfo &&\n 'fileKey' in fileHandleStorageInfo &&\n fileHandleStorageInfo.fileKey\n const externalUrl =\n fileHandleStorageInfo &&\n 'url' in fileHandleStorageInfo &&\n fileHandleStorageInfo.url\n\n const md5 = dataFileHandle?.contentMd5\n\n // If there is no version-specific DOI, fall back to the versionless DOI\n const doiAssociation = useFallbackVersionlessDOI\n ? versionlessDOIAssociation\n : bundle?.doiAssociation\n const { data: dataCiteUsage } = useDataCiteUsage(doiAssociation?.doiUri)\n const doi = doiAssociation && `https://doi.org/${doiAssociation?.doiUri}`\n const isDoiUsage = !!dataCiteUsage && dataCiteUsage.citationCount > 0\n const containerItems = entityChildrenResponse?.totalChildCount\n\n const datasetItems =\n bundle?.entity && isEntityRefCollectionView(bundle.entity)\n ? ((bundle?.entity as EntityRefCollectionView).items ?? []).length\n : null\n\n const { data: mentions } = useGetMentions(entityId)\n const isMentions = !!mentions && mentions.length > 0\n return [\n {\n key: 'id',\n title: 'SynID',\n value: <CopyToClipboardString value={entityId} />,\n },\n {\n key: 'access',\n title: 'Access',\n value: <HasAccessV2 entityId={entityId} />,\n },\n size && { key: 'fileSize', title: 'Size', value: size },\n containerItems != null && {\n key: 'containerItems',\n title: 'Items',\n value: containerItems.toLocaleString(),\n },\n datasetItems != null && {\n key: 'entityRefCollectionItems',\n title: 'Items',\n value: datasetItems.toLocaleString(),\n },\n doi && {\n key: 'doi',\n title: 'DOI',\n value: <CopyToClipboardString value={doi} href={doi} icon=\"rounded\" />,\n },\n isDoiUsage && {\n key: 'citations',\n title: 'Citations',\n value: (\n <>\n <Link onClick={() => setDataCiteCitationsDialogOpen(true)}>\n {dataCiteUsage.citationCount.toLocaleString()}\n {dataCiteUsage.citationCount == maxCitationCount && '+'}\n </Link>\n <CitationsDialog\n open={dataCiteCitationsDialogOpen}\n onClose={() => setDataCiteCitationsDialogOpen(false)}\n citations={dataCiteUsage.citations}\n />\n </>\n ),\n },\n isMentions && {\n key: 'mentions',\n title: 'Mentions',\n value: (\n <>\n <Link onClick={() => setMentionsDialogOpen(true)}>\n {mentions.length.toLocaleString()}\n </Link>\n <CitationsDialog\n open={mentionsDialogOpen}\n onClose={() => setMentionsDialogOpen(false)}\n citations={mentions}\n title=\"Mentioned in\"\n />\n </>\n ),\n },\n md5 && {\n key: 'fileMd5',\n title: 'MD5',\n value: <CopyToClipboardString value={md5} />,\n },\n !isContainer &&\n storageLocation && {\n key: 'fileStorageLocation',\n title: 'Storage Location',\n value: storageLocation,\n },\n isContainer &&\n uploadDestinationString && {\n key: 'uploadDestination',\n title: 'Upload Destination',\n value: uploadDestinationString,\n },\n endpoint && {\n key: 'externalFileEndpoint',\n title: 'Endpoint',\n value: endpoint,\n },\n externalUrl && {\n key: 'externalUrl',\n title: 'URL',\n value: <Linkify text={externalUrl} />,\n },\n bucket && { key: 'externalFileBucket', title: 'Bucket', value: bucket },\n fileKey && { key: 'externalFileKey', title: 'File Key', value: fileKey },\n downloadAlias && {\n key: 'fileAlias',\n title: 'Alias',\n value: (\n <>\n {'Name when downloaded will be: '}\n <Box sx={{ display: 'inline', fontFamily: 'monospace' }}>\n {downloadAlias}\n </Box>\n </>\n ),\n },\n ].filter(item => !!item) as EntityProperty[]\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AA+BA,SAAgB,EACd,GACA,GACkB;CAClB,IAAM,EACJ,cAAc,GACd,YAAY,GACZ,kBACA,gBACA,0BACA,+BACE,EAAqB,GAAU,CAAa,GAC1C,CAAC,GAA6B,KAClC,EAAS,EAAK,GACV,CAAC,GAAoB,KAAyB,EAAS,EAAK,GAC5D,EAAE,MAAM,MAA2B,EACvC;EACE,UAAU;EACV,cAAc,OAAO,OAAO,CAAU;EACtC,wBAAwB;CAC1B,GACA,EAAE,SAAS,EAAY,CACzB,GAGM,IACJ,KACA,CAAC,EAAO,kBACR,EAAoB,EAAO,MAAM,KACjC,EAAO,OAAO,iBACV,EAAE,MAAM,MAA8B,EAC1C;EAAE,IAAI;EAAU,SAAS,KAAA;EAAW,MAAM,EAAc;CAAO,GAC/D,EACE,SAAS,EACX,CACF,GAEM,IACJ,GAAgB,eAChB,EAA0B,EAAe,WAAW,GAChD,IACJ,KACA,cAAc,KACd,EAAsB,UAClB,IACJ,KACA,cAAc,KACd,EAAsB,UAClB,IACJ,KACA,YAAY,KACZ,EAAsB,QAClB,IACJ,KACA,aAAa,KACb,EAAsB,SAClB,IACJ,KACA,SAAS,KACT,EAAsB,KAElB,IAAM,GAAgB,YAGtB,IAAiB,IACnB,IACA,GAAQ,gBACN,EAAE,MAAM,MAAkB,EAAiB,GAAgB,MAAM,GACjE,IAAM,KAAkB,mBAAmB,GAAgB,UAC3D,IAAa,CAAC,CAAC,KAAiB,EAAc,gBAAgB,GAC9D,IAAiB,GAAwB,iBAEzC,IACJ,GAAQ,UAAU,EAA0B,EAAO,MAAM,MACnD,GAAQ,QAAmC,SAAS,CAAC,GAAG,SAC1D,MAEA,EAAE,MAAM,MAAa,EAAe,CAAQ,GAC5C,IAAa,CAAC,CAAC,KAAY,EAAS,SAAS;CACnD,OAAO;EACL;GACE,KAAK;GACL,OAAO;GACP,OAAO,kBAAC,GAAD,EAAuB,OAAO,EAAW,CAAA;EAClD;EACA;GACE,KAAK;GACL,OAAO;GACP,OAAO,kBAAC,GAAD,EAAuB,YAAW,CAAA;EAC3C;EACA,KAAQ;GAAE,KAAK;GAAY,OAAO;GAAQ,OAAO;EAAK;EACtD,KAAkB,QAAQ;GACxB,KAAK;GACL,OAAO;GACP,OAAO,EAAe,eAAe;EACvC;EACA,KAAgB,QAAQ;GACtB,KAAK;GACL,OAAO;GACP,OAAO,EAAa,eAAe;EACrC;EACA,KAAO;GACL,KAAK;GACL,OAAO;GACP,OAAO,kBAAC,GAAD;IAAuB,OAAO;IAAK,MAAM;IAAK,MAAK;GAAW,CAAA;EACvE;EACA,KAAc;GACZ,KAAK;GACL,OAAO;GACP,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;IAAM,eAAe,EAA+B,EAAI;cAAxD,CACG,EAAc,cAAc,eAAe,GAC3C,EAAc,iBAAA,OAAqC,GAChD;OACN,kBAAC,GAAD;IACE,MAAM;IACN,eAAe,EAA+B,EAAK;IACnD,WAAW,EAAc;GAC1B,CAAA,CACD,EAAA,CAAA;EAEN;EACA,KAAc;GACZ,KAAK;GACL,OAAO;GACP,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;IAAM,eAAe,EAAsB,EAAI;cAC5C,EAAS,OAAO,eAAe;GAC5B,CAAA,GACN,kBAAC,GAAD;IACE,MAAM;IACN,eAAe,EAAsB,EAAK;IAC1C,WAAW;IACX,OAAM;GACP,CAAA,CACD,EAAA,CAAA;EAEN;EACA,KAAO;GACL,KAAK;GACL,OAAO;GACP,OAAO,kBAAC,GAAD,EAAuB,OAAO,EAAM,CAAA;EAC7C;EACA,CAAC,KACC,KAAmB;GACjB,KAAK;GACL,OAAO;GACP,OAAO;EACT;EACF,KACE,KAA2B;GACzB,KAAK;GACL,OAAO;GACP,OAAO;EACT;EACF,KAAY;GACV,KAAK;GACL,OAAO;GACP,OAAO;EACT;EACA,KAAe;GACb,KAAK;GACL,OAAO;GACP,OAAO,kBAAC,GAAD,EAAS,MAAM,EAAc,CAAA;EACtC;EACA,KAAU;GAAE,KAAK;GAAsB,OAAO;GAAU,OAAO;EAAO;EACtE,KAAW;GAAE,KAAK;GAAmB,OAAO;GAAY,OAAO;EAAQ;EACvE,KAAiB;GACf,KAAK;GACL,OAAO;GACP,OACE,kBAAA,GAAA,EAAA,UAAA,CACG,kCACD,kBAAC,GAAD;IAAK,IAAI;KAAE,SAAS;KAAU,YAAY;IAAY;cACnD;GACE,CAAA,CACL,EAAA,CAAA;EAEN;CACF,EAAE,QAAO,MAAQ,CAAC,CAAC,CAAI;AACzB"}
@@ -1,9 +1,9 @@
1
1
  import { displayToast as e } from "../ToastMessage/ToastMessage.js";
2
+ import "../ToastMessage/index.js";
2
3
  import { useSendMessageToEntityOwner as t } from "../../synapse-queries/message/useMessage.js";
3
4
  import { useGetCurrentUserProfile as n } from "../../synapse-queries/user/useUserBundle.js";
4
5
  import "../../synapse-queries/index.js";
5
6
  import r from "../ConfirmationDialog/index.js";
6
- import "../ToastMessage/index.js";
7
7
  import { useCallback as i, useState as a } from "react";
8
8
  import { TextField as o, Typography as s } from "@mui/material";
9
9
  import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
@@ -2,6 +2,7 @@ import e from "./FullWidthAlert/FullWidthAlert.js";
2
2
  import { SynapseToastContainer as t, displayToast as n } from "./ToastMessage/ToastMessage.js";
3
3
  import "./FullWidthAlert/index.js";
4
4
  import { ClientError as r, EmptyFallbackComponent as i, ErrorBanner as a, ErrorFallbackComponent as o, SignInPrompt as s, SynapseErrorBoundary as c, TableRowFallbackComponent as l, YOU_ARE_NOT_AUTHORIZED_MESSAGE as u } from "./error/ErrorBanner.js";
5
+ import "./ToastMessage/index.js";
5
6
  import { LightTooltip as d } from "./styled/LightTooltip.js";
6
7
  import { SkeletonButton as f } from "./Skeleton/SkeletonButton.js";
7
8
  import { SkeletonInlineBlock as p } from "./Skeleton/SkeletonInlineBlock.js";
@@ -11,7 +12,6 @@ import "./Skeleton/index.js";
11
12
  import { HelpPopover as g } from "./HelpPopover/HelpPopover.js";
12
13
  import { ConfirmationDialog as _ } from "./ConfirmationDialog/ConfirmationDialog.js";
13
14
  import "./ConfirmationDialog/index.js";
14
- import "./ToastMessage/index.js";
15
15
  import v, { SynapseErrorType as y } from "./error/ErrorPage.js";
16
16
  import b from "./SynapseTable/NoContentAvailable.js";
17
17
  import x from "./IconSvg/IconSvg.js";
@@ -1 +1 @@
1
- {"version":3,"file":"ComplexMenu.d.ts","sourceRoot":"","sources":["../../../src/components/menu/ComplexMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,OAAO,EAIR,MAAM,eAAe,CAAA;AACtB,OAAO,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAiB,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGpE,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG;IACtE,IAAI,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAK7B,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAMtC,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAA;CACpC,CAAA;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CA2GlD"}
1
+ {"version":3,"file":"ComplexMenu.d.ts","sourceRoot":"","sources":["../../../src/components/menu/ComplexMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,OAAO,EAIR,MAAM,eAAe,CAAA;AACtB,OAAO,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAiB,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGpE,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG;IACtE,IAAI,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAK7B,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAMtC,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAA;CACpC,CAAA;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CA0GlD"}
@@ -13,10 +13,7 @@ function u(u) {
13
13
  gap: "10px",
14
14
  flexWrap: "wrap",
15
15
  justifyContent: "flex-end",
16
- [e.breakpoints.down("md")]: {
17
- flexDirection: "column",
18
- paddingTop: "10px"
19
- }
16
+ [e.breakpoints.down("md")]: { flexDirection: "column" }
20
17
  }),
21
18
  children: [d.map((n) => {
22
19
  if (n.variant != null) {