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,35 +1,41 @@
1
- import { useSynchronizeGridSession as e } from "../../synapse-queries/grid/useGridSession.js";
2
- import t from "./useMergeGridWithTable.js";
3
- import n from "./useMergeGridWithRecordSet.js";
4
- import { EntityType as r } from "@sage-bionetworks/synapse-client";
5
- import { useMutation as i } from "@tanstack/react-query";
6
- import { c as a } from "react/compiler-runtime";
1
+ import { useGetFeatureFlag as e } from "../../synapse-queries/featureflags/useGetFeatureFlag.js";
2
+ import "../../synapse-queries/featureflags/index.js";
3
+ import { FeatureFlagEnum as t } from "../../utils/featureflag/FeatureFlags.js";
4
+ import { useSynchronizeGridSession as n } from "../../synapse-queries/grid/useGridSession.js";
5
+ import r from "./useMergeGridWithTable.js";
6
+ import i from "./useMergeGridWithRecordSet.js";
7
+ import { EntityType as a } from "@sage-bionetworks/synapse-client";
8
+ import { useMutation as o } from "@tanstack/react-query";
9
+ import { c as s } from "react/compiler-runtime";
7
10
  //#region src/components/DataGrid/useMergeGridWithSource.ts
8
- function o(o) {
9
- let s = a(7), c = e(), l = t(), u = n(), d;
10
- s[0] !== c || s[1] !== u || s[2] !== l ? (d = async (e) => {
11
- let { gridSessionId: t, sourceEntityId: n, sourceEntityType: i } = e, a = i === r.entityview, o = i === r.recordset;
12
- return a ? {
13
- type: "entityview",
14
- data: await c.mutateAsync({ gridSessionId: t })
15
- } : o ? {
16
- type: "recordset",
17
- data: await u.mutateAsync({ gridSessionId: t })
11
+ function c(c) {
12
+ let l = s(8), u = n(), d = r(), f = i(), p = e(t.ENABLE_RECORDSET_SYNCHRONIZATION), m;
13
+ l[0] !== p || l[1] !== d || l[2] !== u || l[3] !== f ? (m = async (e) => {
14
+ let { gridSessionId: t, sourceEntityId: n, sourceEntityType: r, syncType: i } = e, o = r === a.entityview, s = r === a.recordset;
15
+ return o || s && p ? {
16
+ type: "synchronize",
17
+ data: await u.mutateAsync({
18
+ gridSessionId: t,
19
+ syncType: i
20
+ })
21
+ } : s ? {
22
+ type: "recordset_overwrite",
23
+ data: await f.mutateAsync({ gridSessionId: t })
18
24
  } : {
19
- type: "table",
20
- data: await l.mutateAsync({
25
+ type: "tableUpdateTransaction",
26
+ data: await d.mutateAsync({
21
27
  gridSessionId: t,
22
28
  sourceEntityId: n
23
29
  })
24
30
  };
25
- }, s[0] = c, s[1] = u, s[2] = l, s[3] = d) : d = s[3];
26
- let f;
27
- return s[4] !== o || s[5] !== d ? (f = {
28
- ...o,
29
- mutationFn: d
30
- }, s[4] = o, s[5] = d, s[6] = f) : f = s[6], i(f);
31
+ }, l[0] = p, l[1] = d, l[2] = u, l[3] = f, l[4] = m) : m = l[4];
32
+ let h;
33
+ return l[5] !== c || l[6] !== m ? (h = {
34
+ ...c,
35
+ mutationFn: m
36
+ }, l[5] = c, l[6] = m, l[7] = h) : h = l[7], o(h);
31
37
  }
32
38
  //#endregion
33
- export { o as default };
39
+ export { c as default };
34
40
 
35
41
  //# sourceMappingURL=useMergeGridWithSource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMergeGridWithSource.js","names":["useMergeGridWithTable","useMergeGridWithRecordSet","EntityType","GridRecordSetExportResponse","SynchronizeGridResponse","TableUpdateTransactionResponse","useMutation","UseMutationOptions","SynapseClientError","useSynchronizeGridSession","MergeGridWithSource","gridSessionId","sourceEntityId","sourceEntityType","MergeGridResult","type","data","useMergeGridWithSource","options","$","_c","mergeGridWithEntityView","mergeGridWithTable","mergeGridWithRecordSet","t0","t1","isEntityView","entityview","isRecordSet","recordset","mutateAsync","data_0","data_1","mutationFn"],"sources":["../../../src/components/DataGrid/useMergeGridWithSource.ts"],"sourcesContent":["import useMergeGridWithTable from './useMergeGridWithTable'\nimport useMergeGridWithRecordSet from './useMergeGridWithRecordSet'\nimport {\n EntityType,\n GridRecordSetExportResponse,\n SynchronizeGridResponse,\n TableUpdateTransactionResponse,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client'\nimport { useSynchronizeGridSession } from '@/synapse-queries/grid/useGridSession'\n\nexport type MergeGridWithSource = {\n gridSessionId: string\n sourceEntityId?: string\n sourceEntityType?: EntityType\n}\n\nexport type MergeGridResult =\n | { type: 'entityview'; data: SynchronizeGridResponse }\n | {\n type: 'recordset'\n data: GridRecordSetExportResponse\n }\n | {\n type: 'table'\n data: TableUpdateTransactionResponse\n }\n\n/**\n * Single entrypoint to handle merging grid edits with source Synapse data.\n * Calls the appropriate mutation based on entity type:\n * - EntityView -> useSynchronizeGridSession\n * - TableEntity -> useMergeGridWithTable\n * - RecordSet -> useMergeGridWithRecordSet\n *\n * Returns a query mutation that handles merging for tables or recordsets.\n */\nexport default function useMergeGridWithSource(\n options?: Omit<\n UseMutationOptions<\n MergeGridResult,\n SynapseClientError,\n MergeGridWithSource\n >,\n 'mutationFn'\n >,\n) {\n // SynchronizeGridSession is the best option, but currently only supports EntityViews.\n // As support for other types is added, the other hooks should be replaced.\n const mergeGridWithEntityView = useSynchronizeGridSession()\n const mergeGridWithTable = useMergeGridWithTable()\n const mergeGridWithRecordSet = useMergeGridWithRecordSet()\n\n return useMutation<MergeGridResult, SynapseClientError, MergeGridWithSource>({\n ...options,\n mutationFn: async ({ gridSessionId, sourceEntityId, sourceEntityType }) => {\n const isEntityView = sourceEntityType === EntityType.entityview\n const isRecordSet = sourceEntityType === EntityType.recordset\n\n if (isEntityView) {\n const data = await mergeGridWithEntityView.mutateAsync({\n gridSessionId,\n })\n return { type: 'entityview', data }\n } else if (isRecordSet) {\n const data = await mergeGridWithRecordSet.mutateAsync({ gridSessionId })\n return { type: 'recordset', data }\n } else {\n const data = await mergeGridWithTable.mutateAsync({\n gridSessionId,\n sourceEntityId: sourceEntityId!,\n })\n return { type: 'table', data }\n }\n },\n })\n}\n"],"mappings":";;;;;;;AAsCA,SAAeiB,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAYbC,IAAgCZ,EAA0B,GAC1Da,IAA2BtB,EAAsB,GACjDuB,IAA+BtB,EAA0B,GAACuB;CAAA,AAAAL,EAAA,OAAAE,KAAAF,EAAA,OAAAI,KAAAJ,EAAA,OAAAG,KAI5CE,IAAA,OAAAC,MAAA;EAAO,IAAA,EAAAd,kBAAAC,mBAAAC,wBAAAY,GACjBC,IAAqBb,MAAqBX,EAAUyB,YACpDC,IAAoBf,MAAqBX,EAAU2B;EAc/C,OAZAH,IAIK;GAAAX,MAAQ;GAAYC,MAAAA,MAHRK,EAAuBS,YAAa,EAAAnB,iBAEvD,CAAC;EACiC,IACzBiB,IAEF;GAAAb,MAAQ;GAAWC,MAAEA,MADTO,EAAsBO,YAAa,EAAAnB,iBAAgB,CAAC;EACtC,IAM1B;GAAAI,MAAQ;GAAOC,MAAEA,MAJLM,EAAkBQ,YAAa;IAAAnB;IAAAC;GAGlD,CAAC;EAC4B;CAC9B,GACFO,EAAA,KAAAE,GAAAF,EAAA,KAAAI,GAAAJ,EAAA,KAAAG,GAAAH,EAAA,KAAAK,KAAAA,IAAAL,EAAA;CAAA,IAAAM;CACF,OADEN,EAAA,OAAAD,KAAAC,EAAA,OAAAK,KArB0EC,IAAA;EAAA,GACxEP;EAAOe,YACET;CAoBd,GAACL,EAAA,KAAAD,GAAAC,EAAA,KAAAK,GAAAL,EAAA,KAAAM,KAAAA,IAAAN,EAAA,IAtBMb,EAAsEmB,CAsB5E;AAAC"}
1
+ {"version":3,"file":"useMergeGridWithSource.js","names":["useMergeGridWithTable","EntityType","GridRecordSetExportResponse","SynchronizeGridResponse","SyncType","TableUpdateTransactionResponse","useMutation","UseMutationOptions","SynapseClientError","useSynchronizeGridSession","useUnsafeLegacyExportAndOverwriteRecordSet","useGetFeatureFlag","FeatureFlagEnum","MergeGridWithSource","gridSessionId","sourceEntityId","sourceEntityType","syncType","MergeGridResult","type","data","useMergeGridWithSource","options","$","_c","syncGridWithSource","mergeGridWithTable","unsafeLegacyOverwriteRecordset","enableRecordSetSync","ENABLE_RECORDSET_SYNCHRONIZATION","t0","variables","isEntityView","entityview","isRecordSet","recordset","mutateAsync","data_0","data_1","t1","mutationFn"],"sources":["../../../src/components/DataGrid/useMergeGridWithSource.ts"],"sourcesContent":["import useMergeGridWithTable from './useMergeGridWithTable'\nimport {\n EntityType,\n GridRecordSetExportResponse,\n SynchronizeGridResponse,\n SyncType,\n TableUpdateTransactionResponse,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client'\nimport { useSynchronizeGridSession } from '@/synapse-queries/grid/useGridSession'\nimport useUnsafeLegacyExportAndOverwriteRecordSet from './useMergeGridWithRecordSet'\nimport { useGetFeatureFlag } from '@/synapse-queries/featureflags'\nimport { FeatureFlagEnum } from '@/utils/featureflag/FeatureFlags'\n\nexport type MergeGridWithSource = {\n /** The ID of the grid session to merge with the source entity. */\n gridSessionId: string\n /** The ID of the source entity to merge with. This is only used for client-side logic. */\n sourceEntityId?: string\n /** The type of the source entity. This is only used for client-side logic. */\n sourceEntityType?: EntityType\n /** The type of synchronization to perform. Only valid for types supported by the Synchronize service. */\n syncType?: SyncType\n}\n\nexport type MergeGridResult =\n | { type: 'synchronize'; data: SynchronizeGridResponse }\n | {\n /** @deprecated */\n type: 'recordset_overwrite'\n data: GridRecordSetExportResponse\n }\n | {\n type: 'tableUpdateTransaction'\n data: TableUpdateTransactionResponse\n }\n\n/**\n * Single entrypoint to handle merging grid edits with source Synapse data.\n * Calls the appropriate mutation based on entity type:\n * - EntityView/RecordSet -> useSynchronizeGridSession\n * - TableEntity -> useMergeGridWithTable\n *\n * Returns a query mutation that handles synchronization.\n */\nexport default function useMergeGridWithSource(\n options?: Omit<\n UseMutationOptions<\n MergeGridResult,\n SynapseClientError,\n MergeGridWithSource\n >,\n 'mutationFn'\n >,\n) {\n // SynchronizeGridSession is the best option, but not all types are supported.\n // As support for other types is added, the other hooks should be replaced.\n const syncGridWithSource = useSynchronizeGridSession()\n const mergeGridWithTable = useMergeGridWithTable()\n const unsafeLegacyOverwriteRecordset =\n useUnsafeLegacyExportAndOverwriteRecordSet()\n\n const enableRecordSetSync = useGetFeatureFlag(\n FeatureFlagEnum.ENABLE_RECORDSET_SYNCHRONIZATION,\n )\n\n return useMutation<MergeGridResult, SynapseClientError, MergeGridWithSource>({\n ...options,\n mutationFn: async variables => {\n const { gridSessionId, sourceEntityId, sourceEntityType, syncType } =\n variables\n const isEntityView = sourceEntityType === EntityType.entityview\n const isRecordSet = sourceEntityType === EntityType.recordset\n\n if (isEntityView || (isRecordSet && enableRecordSetSync)) {\n const data = await syncGridWithSource.mutateAsync({\n gridSessionId,\n syncType,\n })\n return { type: 'synchronize', data }\n } else if (isRecordSet) {\n // Deprecated/legacy path: this will overwrite the RecordSet with the grid session data instead of merging/synchronizing, which is prone to data loss.\n // Remove once we have confidence in the synch service for RecordSets.\n const data = await unsafeLegacyOverwriteRecordset.mutateAsync({\n gridSessionId,\n })\n return { type: 'recordset_overwrite', data }\n } else {\n const data = await mergeGridWithTable.mutateAsync({\n gridSessionId,\n sourceEntityId: sourceEntityId!,\n })\n return { type: 'tableUpdateTransaction', data }\n }\n },\n })\n}\n"],"mappings":";;;;;;;;;;AA8CA,SAAeqB,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAYbC,IAA2BhB,EAA0B,GACrDiB,IAA2B1B,EAAsB,GACjD2B,IACEjB,EAA2C,GAE7CkB,IAA4BjB,EAC1BC,EAAeiB,gCACjB,GAACC;CAAA,AAAAP,EAAA,OAAAK,KAAAL,EAAA,OAAAG,KAAAH,EAAA,OAAAE,KAAAF,EAAA,OAAAI,KAIaG,IAAA,OAAAC,MAAA;EACV,IAAA,EAAAjB,kBAAAC,mBAAAC,qBAAAC,gBACEc,GACFC,IAAqBhB,MAAqBf,EAAUgC,YACpDC,IAAoBlB,MAAqBf,EAAUkC;EAmB/C,OAjBAH,KAAiBE,KAAAN,IAKZ;GAAAT,MAAQ;GAAaC,MAAAA,MAJTK,EAAkBW,YAAa;IAAAtB;IAAAG;GAGlD,CAAC;EACkC,IAC1BiB,IAMF;GAAAf,MAAQ;GAAqBC,MAAEA,MAHnBO,EAA8BS,YAAa,EAAAtB,iBAE9D,CAAC;EAC0C,IAMpC;GAAAK,MAAQ;GAAwBC,MAAEA,MAJtBM,EAAkBU,YAAa;IAAAtB;IAAAC;GAGlD,CAAC;EAC6C;CAC/C,GACFQ,EAAA,KAAAK,GAAAL,EAAA,KAAAG,GAAAH,EAAA,KAAAE,GAAAF,EAAA,KAAAI,GAAAJ,EAAA,KAAAO,KAAAA,IAAAP,EAAA;CAAA,IAAAgB;CACF,OADEhB,EAAA,OAAAD,KAAAC,EAAA,OAAAO,KA5B0ES,IAAA;EAAA,GACxEjB;EAAOkB,YACEV;CA2Bd,GAACP,EAAA,KAAAD,GAAAC,EAAA,KAAAO,GAAAP,EAAA,KAAAgB,KAAAA,IAAAhB,EAAA,IA7BMjB,EAAsEiC,CA6B5E;AAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"columnFactory.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AAC7E,OAAO,EAGL,MAAM,EAIP,MAAM,wCAAwC,CAAA;AAuE/C,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;IAC7B,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IACrD,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC,CAAA;AAgMD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAGzD"}
1
+ {"version":3,"file":"columnFactory.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AAC7E,OAAO,EAGL,MAAM,EAIP,MAAM,wCAAwC,CAAA;AAuE/C,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;IAC7B,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IACrD,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC,CAAA;AAoLD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAGzD"}
@@ -54,21 +54,18 @@ function g(e, t) {
54
54
  return n.displayName = `CellWithTooltip(${t})`, n;
55
55
  }
56
56
  function _(e, t) {
57
- return t ? "header-upsert-key" : e ? "header-cell-required" : "header-cell";
58
- }
59
- function v(e, t) {
60
57
  return ({ rowData: n }) => ({
61
58
  ...n,
62
59
  [e]: a(t)
63
60
  });
64
61
  }
65
- function y(e) {
62
+ function v(e) {
66
63
  return (t) => {
67
64
  let n = t.trim();
68
65
  return n === "" ? a(e) : n;
69
66
  };
70
67
  }
71
- function b(e, t) {
68
+ function y(e, t) {
72
69
  let n = {
73
70
  showPinIcon: e.showPinIcon,
74
71
  hasDescription: !!e.description
@@ -85,31 +82,30 @@ function b(e, t) {
85
82
  isPinned: e.isPinned,
86
83
  onTogglePin: e.onTogglePin
87
84
  }),
88
- headerClassName: _(e.isRequired, !!e.isUpsertKey),
89
85
  minWidth: a,
90
86
  basis: a,
91
87
  grow: 0,
92
88
  shrink: 0,
93
89
  disabled: e.disabled,
94
- deleteValue: v(e.columnName, e.isRequired),
90
+ deleteValue: _(e.columnName, e.isRequired),
95
91
  pasteValue: o(s.pasteValue, e.columnName, e.schemaPropertyInfo),
96
92
  stickyLeft: e.isPinned
97
93
  };
98
94
  }
99
- var x = {
100
- multipleEnum: (e) => b(e, n({
95
+ var b = {
96
+ multipleEnum: (e) => y(e, n({
101
97
  choices: e.enumeratedValues ?? [],
102
98
  colType: e.typeInfo?.type || null,
103
99
  limitTags: 3,
104
100
  clearValue: a(e.isRequired)
105
101
  })),
106
- boolean: (e) => b(e, t({
102
+ boolean: (e) => y(e, t({
107
103
  choices: [!0, !1],
108
104
  colType: "boolean",
109
105
  clearValue: a(e.isRequired)
110
106
  })),
111
- number: (e) => b(e, m),
112
- enumerated: (e) => b(e, t({
107
+ number: (e) => y(e, m),
108
+ enumerated: (e) => y(e, t({
113
109
  choices: e.enumeratedValues ?? [],
114
110
  colType: e.typeInfo?.type || null,
115
111
  clearValue: a(e.isRequired)
@@ -124,27 +120,27 @@ var x = {
124
120
  enumeratedValues: null
125
121
  }, i);
126
122
  return {
127
- ...b(t, n),
123
+ ...y(t, n),
128
124
  minWidth: a,
129
125
  basis: a
130
126
  };
131
127
  },
132
128
  text: (e) => ({
133
- ...b(e, p({
129
+ ...y(e, p({
134
130
  continuousUpdates: !1,
135
131
  deletedValue: void 0,
136
- parseUserInput: y(e.isRequired)
132
+ parseUserInput: v(e.isRequired)
137
133
  })),
138
134
  cellClassName: "MuiInputBase-input"
139
135
  })
140
136
  };
141
- function S(e, t) {
137
+ function x(e, t) {
142
138
  return e ? e.format === "date-time" ? "date-time" : e.isArray ? "multipleEnum" : e.type === "boolean" ? "boolean" : e.type === "number" || e.type === "integer" ? "number" : t && t.length > 0 ? "enumerated" : "text" : t && t.length > 0 ? "enumerated" : "text";
143
139
  }
144
- function C(e) {
145
- return x[S(e.typeInfo, e.enumeratedValues)](e);
140
+ function S(e) {
141
+ return b[x(e.typeInfo, e.enumeratedValues)](e);
146
142
  }
147
143
  //#endregion
148
- export { C as createColumn };
144
+ export { S as createColumn };
149
145
 
150
146
  //# sourceMappingURL=columnFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"columnFactory.js","names":["dateTimeColumn","EnumeratedValue","FlatTypeInfo","SchemaPropertyInfo","CellComponent","CellProps","Column","createTextColumn","floatColumn","keyColumn","autocompleteColumn","autocompleteMultipleEnumColumn","calculateDefaultColumnWidth","HeaderOptions","ColumnHeaderWithTooltip","Tooltip","SmartToyTwoTone","DataGridRow","wrapPasteValueWithSchemaCoercion","getEmptyValue","withChangeIndicatorTooltip","OriginalComponent","T","C","colName","CellWithTooltip","props","$","_c","changeInfo","rowData","__cellChangeInfo","isAgent","category","t0","t1","tooltipText","position","top","right","width","height","zIndex","pointerEvents","t2","focus","fontSize","alignSelf","flexShrink","mr","color","backgroundColor","t3","displayName","ColumnConfig","columnName","description","disabled","typeInfo","enumeratedValues","isRequired","customWidth","showPinIcon","isPinned","onTogglePin","isUpsertKey","schemaPropertyInfo","getHeaderClassName","createDeleteValue","Record","createParseUserInput","value","trimmedValue","trim","createBaseColumn","config","columnImpl","headerOptions","hasDescription","undefined","keyed","component","title","headerClassName","minWidth","basis","grow","shrink","deleteValue","pasteValue","stickyLeft","COLUMN_FACTORIES","multipleEnum","choices","colType","type","limitTags","clearValue","boolean","number","enumerated","date-time","text","continuousUpdates","deletedValue","parseUserInput","cellClassName","getColumnType","length","format","isArray","createColumn","columnType"],"sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"sourcesContent":["import { dateTimeColumn } from '@/components/DataGrid/columns/DateTimeColumn'\nimport { EnumeratedValue } from '@/utils/jsonschema/getEnumeratedValues'\nimport { FlatTypeInfo } from '@/utils/jsonschema/getType'\nimport { SchemaPropertyInfo } from '@/utils/jsonschema/getSchemaPropertyInfo'\nimport {\n CellComponent,\n CellProps,\n Column,\n createTextColumn,\n floatColumn,\n keyColumn,\n} from '@sage-bionetworks/react-datasheet-grid'\nimport { autocompleteColumn } from '../columns/AutocompleteColumn'\nimport { autocompleteMultipleEnumColumn } from '../columns/AutocompleteMultipleEnumColumn'\nimport {\n calculateDefaultColumnWidth,\n HeaderOptions,\n} from './calculateColumnWidth'\nimport { ColumnHeaderWithTooltip } from '../components/ColumnHeaderWithTooltip'\nimport { Tooltip } from '@mui/material'\nimport { SmartToyTwoTone } from '@mui/icons-material'\nimport type { DataGridRow } from '../DataGridTypes'\nimport { wrapPasteValueWithSchemaCoercion } from './schemaAwarePasteValue'\nimport { getEmptyValue } from './getEmptyValue'\n\n/**\n * Wraps a column cell component to overlay change-attribution indicators:\n * - Non-agent changes: invisible 7×7px tooltip trigger over the CSS triangle (top-right).\n * - Agent changes: robot icon (1em, vertically centered on the right) with no triangle.\n */\nfunction withChangeIndicatorTooltip<T, C>(\n OriginalComponent: CellComponent<T, C>,\n colName: string,\n): CellComponent<T, C> {\n function CellWithTooltip(props: CellProps<T, C>) {\n const changeInfo = (props.rowData as DataGridRow).__cellChangeInfo?.[\n colName\n ]\n const isAgent =\n changeInfo?.category === 'own-agent' ||\n changeInfo?.category === 'other-agent'\n return (\n <>\n <OriginalComponent {...props} />\n {changeInfo && !isAgent && (\n <Tooltip title={changeInfo.tooltipText} placement=\"top-end\">\n <div\n style={{\n position: 'absolute',\n top: 0,\n right: 0,\n width: 7,\n height: 7,\n zIndex: 21,\n pointerEvents: 'auto',\n }}\n />\n </Tooltip>\n )}\n {isAgent && !props.focus && (\n <Tooltip title={changeInfo.tooltipText} placement=\"left\">\n <SmartToyTwoTone\n sx={{\n fontSize: '1em',\n alignSelf: 'center',\n flexShrink: 0,\n mr: 0.5,\n zIndex: 21,\n pointerEvents: 'auto',\n color: 'grey.400',\n backgroundColor: 'transparent',\n }}\n />\n </Tooltip>\n )}\n </>\n )\n }\n CellWithTooltip.displayName = `CellWithTooltip(${colName})`\n return CellWithTooltip\n}\n\ntype ColumnConfig = {\n columnName: string\n description?: string\n disabled?: boolean\n typeInfo: FlatTypeInfo | null\n enumeratedValues: EnumeratedValue[] | string[] | null\n isRequired: boolean\n customWidth?: number\n showPinIcon?: boolean\n isPinned?: boolean\n onTogglePin?: () => void\n isUpsertKey?: boolean\n /**\n * Optional column-level schema info. When provided, paste behavior coerces\n * empty pasted cells to the schema-correct blank (undefined for optional\n * columns, null for required columns). Omit to preserve the column impl's\n * default paste behavior.\n */\n schemaPropertyInfo?: SchemaPropertyInfo\n}\n\nfunction getHeaderClassName(isRequired: boolean, isUpsertKey: boolean): string {\n return isUpsertKey\n ? 'header-upsert-key'\n : isRequired\n ? 'header-cell-required'\n : 'header-cell'\n}\n\nfunction createDeleteValue(columnName: string, isRequired?: boolean) {\n return ({ rowData }: { rowData: Record<string, unknown> }) => ({\n ...rowData,\n [columnName]: getEmptyValue(isRequired),\n })\n}\n\nfunction createParseUserInput(isRequired?: boolean) {\n return (value: string) => {\n const trimmedValue = value.trim()\n if (trimmedValue === '') {\n return getEmptyValue(isRequired)\n }\n return trimmedValue\n }\n}\n\nfunction createBaseColumn(config: ColumnConfig, columnImpl: any) {\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n undefined, // propertyInfo is not available here, passed from higher level\n headerOptions,\n )\n\n const keyed = keyColumn(config.columnName, columnImpl)\n return {\n ...keyed,\n component: withChangeIndicatorTooltip(keyed.component!, config.columnName),\n title: (\n <ColumnHeaderWithTooltip\n name={config.columnName}\n description={config.description}\n isRequired={config.isRequired}\n isUpsertKey={config.isUpsertKey}\n showPinIcon={config.showPinIcon}\n isPinned={config.isPinned}\n onTogglePin={config.onTogglePin}\n />\n ),\n headerClassName: getHeaderClassName(\n config.isRequired,\n !!config.isUpsertKey,\n ),\n minWidth: width,\n basis: width,\n grow: 0,\n shrink: 0,\n disabled: config.disabled,\n deleteValue: createDeleteValue(config.columnName, config.isRequired),\n pasteValue: wrapPasteValueWithSchemaCoercion(\n keyed.pasteValue,\n config.columnName,\n config.schemaPropertyInfo,\n ),\n stickyLeft: config.isPinned,\n }\n}\n\nconst COLUMN_FACTORIES = {\n multipleEnum: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteMultipleEnumColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n limitTags: 3,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n boolean: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: [true, false],\n colType: 'boolean',\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n number: (config: ColumnConfig) => {\n return createBaseColumn(config, floatColumn)\n },\n\n enumerated: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n 'date-time': (config: ColumnConfig) => {\n const columnImpl = dateTimeColumn({\n colType: config.typeInfo?.type || null,\n })\n\n // Date-time needs special width calculation\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n {\n type: config.typeInfo ?? undefined,\n isRequired: config.isRequired,\n enumeratedValues: null,\n },\n headerOptions,\n )\n\n return {\n ...createBaseColumn(config, columnImpl),\n minWidth: width,\n basis: width,\n }\n },\n\n text: (config: ColumnConfig) => {\n const columnImpl = createTextColumn({\n continuousUpdates: false,\n deletedValue: undefined,\n parseUserInput: createParseUserInput(config.isRequired),\n })\n\n return {\n ...createBaseColumn(config, columnImpl),\n cellClassName: 'MuiInputBase-input',\n }\n },\n}\n\nfunction getColumnType(\n typeInfo: FlatTypeInfo | null,\n enumeratedValues?: EnumeratedValue[] | string[] | null,\n): keyof typeof COLUMN_FACTORIES {\n if (!typeInfo) {\n return enumeratedValues && enumeratedValues.length > 0\n ? 'enumerated'\n : 'text'\n }\n\n if (typeInfo.format === 'date-time') {\n return 'date-time'\n }\n\n // Handle arrays - check if it's an array of enums\n if (typeInfo.isArray) {\n return 'multipleEnum'\n }\n\n if (typeInfo.type === 'boolean') {\n return 'boolean'\n }\n\n if (typeInfo.type === 'number' || typeInfo.type === 'integer') {\n return 'number'\n }\n\n if (enumeratedValues && enumeratedValues.length > 0) {\n return 'enumerated'\n }\n\n return 'text'\n}\n\nexport function createColumn(config: ColumnConfig): Column {\n const columnType = getColumnType(config.typeInfo, config.enumeratedValues)\n return COLUMN_FACTORIES[columnType](config)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"columnFactory.js","names":["dateTimeColumn","EnumeratedValue","FlatTypeInfo","SchemaPropertyInfo","CellComponent","CellProps","Column","createTextColumn","floatColumn","keyColumn","autocompleteColumn","autocompleteMultipleEnumColumn","calculateDefaultColumnWidth","HeaderOptions","ColumnHeaderWithTooltip","Tooltip","SmartToyTwoTone","DataGridRow","wrapPasteValueWithSchemaCoercion","getEmptyValue","withChangeIndicatorTooltip","OriginalComponent","T","C","colName","CellWithTooltip","props","$","_c","changeInfo","rowData","__cellChangeInfo","isAgent","category","t0","t1","tooltipText","position","top","right","width","height","zIndex","pointerEvents","t2","focus","fontSize","alignSelf","flexShrink","mr","color","backgroundColor","t3","displayName","ColumnConfig","columnName","description","disabled","typeInfo","enumeratedValues","isRequired","customWidth","showPinIcon","isPinned","onTogglePin","isUpsertKey","schemaPropertyInfo","createDeleteValue","Record","createParseUserInput","value","trimmedValue","trim","createBaseColumn","config","columnImpl","headerOptions","hasDescription","undefined","keyed","component","title","minWidth","basis","grow","shrink","deleteValue","pasteValue","stickyLeft","COLUMN_FACTORIES","multipleEnum","choices","colType","type","limitTags","clearValue","boolean","number","enumerated","date-time","text","continuousUpdates","deletedValue","parseUserInput","cellClassName","getColumnType","length","format","isArray","createColumn","columnType"],"sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"sourcesContent":["import { dateTimeColumn } from '@/components/DataGrid/columns/DateTimeColumn'\nimport { EnumeratedValue } from '@/utils/jsonschema/getEnumeratedValues'\nimport { FlatTypeInfo } from '@/utils/jsonschema/getType'\nimport { SchemaPropertyInfo } from '@/utils/jsonschema/getSchemaPropertyInfo'\nimport {\n CellComponent,\n CellProps,\n Column,\n createTextColumn,\n floatColumn,\n keyColumn,\n} from '@sage-bionetworks/react-datasheet-grid'\nimport { autocompleteColumn } from '../columns/AutocompleteColumn'\nimport { autocompleteMultipleEnumColumn } from '../columns/AutocompleteMultipleEnumColumn'\nimport {\n calculateDefaultColumnWidth,\n HeaderOptions,\n} from './calculateColumnWidth'\nimport { ColumnHeaderWithTooltip } from '../components/ColumnHeaderWithTooltip'\nimport { Tooltip } from '@mui/material'\nimport { SmartToyTwoTone } from '@mui/icons-material'\nimport type { DataGridRow } from '../DataGridTypes'\nimport { wrapPasteValueWithSchemaCoercion } from './schemaAwarePasteValue'\nimport { getEmptyValue } from './getEmptyValue'\n\n/**\n * Wraps a column cell component to overlay change-attribution indicators:\n * - Non-agent changes: invisible 7×7px tooltip trigger over the CSS triangle (top-right).\n * - Agent changes: robot icon (1em, vertically centered on the right) with no triangle.\n */\nfunction withChangeIndicatorTooltip<T, C>(\n OriginalComponent: CellComponent<T, C>,\n colName: string,\n): CellComponent<T, C> {\n function CellWithTooltip(props: CellProps<T, C>) {\n const changeInfo = (props.rowData as DataGridRow).__cellChangeInfo?.[\n colName\n ]\n const isAgent =\n changeInfo?.category === 'own-agent' ||\n changeInfo?.category === 'other-agent'\n return (\n <>\n <OriginalComponent {...props} />\n {changeInfo && !isAgent && (\n <Tooltip title={changeInfo.tooltipText} placement=\"top-end\">\n <div\n style={{\n position: 'absolute',\n top: 0,\n right: 0,\n width: 7,\n height: 7,\n zIndex: 21,\n pointerEvents: 'auto',\n }}\n />\n </Tooltip>\n )}\n {isAgent && !props.focus && (\n <Tooltip title={changeInfo.tooltipText} placement=\"left\">\n <SmartToyTwoTone\n sx={{\n fontSize: '1em',\n alignSelf: 'center',\n flexShrink: 0,\n mr: 0.5,\n zIndex: 21,\n pointerEvents: 'auto',\n color: 'grey.400',\n backgroundColor: 'transparent',\n }}\n />\n </Tooltip>\n )}\n </>\n )\n }\n CellWithTooltip.displayName = `CellWithTooltip(${colName})`\n return CellWithTooltip\n}\n\ntype ColumnConfig = {\n columnName: string\n description?: string\n disabled?: boolean\n typeInfo: FlatTypeInfo | null\n enumeratedValues: EnumeratedValue[] | string[] | null\n isRequired: boolean\n customWidth?: number\n showPinIcon?: boolean\n isPinned?: boolean\n onTogglePin?: () => void\n isUpsertKey?: boolean\n /**\n * Optional column-level schema info. When provided, paste behavior coerces\n * empty pasted cells to the schema-correct blank (undefined for optional\n * columns, null for required columns). Omit to preserve the column impl's\n * default paste behavior.\n */\n schemaPropertyInfo?: SchemaPropertyInfo\n}\n\nfunction createDeleteValue(columnName: string, isRequired?: boolean) {\n return ({ rowData }: { rowData: Record<string, unknown> }) => ({\n ...rowData,\n [columnName]: getEmptyValue(isRequired),\n })\n}\n\nfunction createParseUserInput(isRequired?: boolean) {\n return (value: string) => {\n const trimmedValue = value.trim()\n if (trimmedValue === '') {\n return getEmptyValue(isRequired)\n }\n return trimmedValue\n }\n}\n\nfunction createBaseColumn(config: ColumnConfig, columnImpl: any) {\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n undefined, // propertyInfo is not available here, passed from higher level\n headerOptions,\n )\n\n const keyed = keyColumn(config.columnName, columnImpl)\n return {\n ...keyed,\n component: withChangeIndicatorTooltip(keyed.component!, config.columnName),\n title: (\n <ColumnHeaderWithTooltip\n name={config.columnName}\n description={config.description}\n isRequired={config.isRequired}\n isUpsertKey={config.isUpsertKey}\n showPinIcon={config.showPinIcon}\n isPinned={config.isPinned}\n onTogglePin={config.onTogglePin}\n />\n ),\n minWidth: width,\n basis: width,\n grow: 0,\n shrink: 0,\n disabled: config.disabled,\n deleteValue: createDeleteValue(config.columnName, config.isRequired),\n pasteValue: wrapPasteValueWithSchemaCoercion(\n keyed.pasteValue,\n config.columnName,\n config.schemaPropertyInfo,\n ),\n stickyLeft: config.isPinned,\n }\n}\n\nconst COLUMN_FACTORIES = {\n multipleEnum: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteMultipleEnumColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n limitTags: 3,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n boolean: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: [true, false],\n colType: 'boolean',\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n number: (config: ColumnConfig) => {\n return createBaseColumn(config, floatColumn)\n },\n\n enumerated: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n 'date-time': (config: ColumnConfig) => {\n const columnImpl = dateTimeColumn({\n colType: config.typeInfo?.type || null,\n })\n\n // Date-time needs special width calculation\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n {\n type: config.typeInfo ?? undefined,\n isRequired: config.isRequired,\n enumeratedValues: null,\n },\n headerOptions,\n )\n\n return {\n ...createBaseColumn(config, columnImpl),\n minWidth: width,\n basis: width,\n }\n },\n\n text: (config: ColumnConfig) => {\n const columnImpl = createTextColumn({\n continuousUpdates: false,\n deletedValue: undefined,\n parseUserInput: createParseUserInput(config.isRequired),\n })\n\n return {\n ...createBaseColumn(config, columnImpl),\n cellClassName: 'MuiInputBase-input',\n }\n },\n}\n\nfunction getColumnType(\n typeInfo: FlatTypeInfo | null,\n enumeratedValues?: EnumeratedValue[] | string[] | null,\n): keyof typeof COLUMN_FACTORIES {\n if (!typeInfo) {\n return enumeratedValues && enumeratedValues.length > 0\n ? 'enumerated'\n : 'text'\n }\n\n if (typeInfo.format === 'date-time') {\n return 'date-time'\n }\n\n // Handle arrays - check if it's an array of enums\n if (typeInfo.isArray) {\n return 'multipleEnum'\n }\n\n if (typeInfo.type === 'boolean') {\n return 'boolean'\n }\n\n if (typeInfo.type === 'number' || typeInfo.type === 'integer') {\n return 'number'\n }\n\n if (enumeratedValues && enumeratedValues.length > 0) {\n return 'enumerated'\n }\n\n return 'text'\n}\n\nexport function createColumn(config: ColumnConfig): Column {\n const columnType = getColumnType(config.typeInfo, config.enumeratedValues)\n return COLUMN_FACTORIES[columnType](config)\n}\n"],"mappings":"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"}
@@ -3,11 +3,11 @@ import { PRODUCTION_ENDPOINT_CONFIG as t } from "../../utils/functions/getEndpoi
3
3
  import { calculateFriendlyFileSize as n } from "../../utils/functions/calculateFriendlyFileSize.js";
4
4
  import { copyStringToClipboard as r } from "../../utils/functions/StringUtils.js";
5
5
  import { BlockingLoader as i, SynapseSpinner as a } from "../LoadingScreen/LoadingScreen.js";
6
+ import "../ToastMessage/index.js";
6
7
  import { useGetAvailableFilesToDownloadInfinite as o, useRemoveFilesFromDownloadList as s } from "../../synapse-queries/download/useDownloadList.js";
7
8
  import "../../synapse-queries/index.js";
8
9
  import { SkeletonTable as c } from "../Skeleton/SkeletonTable.js";
9
10
  import "../Skeleton/index.js";
10
- import "../ToastMessage/index.js";
11
11
  import l from "../IconSvg/IconSvg.js";
12
12
  import { formatDate as u } from "../../utils/functions/DateFormatter.js";
13
13
  import "../SynapseTable/SynapseTableConstants.js";
@@ -1,7 +1,7 @@
1
1
  import { displayToast as e } from "../ToastMessage/ToastMessage.js";
2
+ import "../ToastMessage/index.js";
2
3
  import { SkeletonParagraph as t } from "../Skeleton/SkeletonParagraph.js";
3
4
  import "../Skeleton/index.js";
4
- import "../ToastMessage/index.js";
5
5
  import { useState as n } from "react";
6
6
  import { Alert as r, Box as i, Button as a, Typography as o } from "@mui/material";
7
7
  import { jsx as s, jsxs as c } from "react/jsx-runtime";
@@ -1,11 +1,11 @@
1
1
  import { displayToast as e } from "../ToastMessage/ToastMessage.js";
2
2
  import { SYNAPSE_DOCS_SHARING_SETTINGS_PERMISSIONS_CONDITIONS_FOR_USE_URL as t } from "../../utils/SynapseConstants.js";
3
3
  import { entityTypeToFriendlyName as n } from "../../utils/functions/EntityTypeUtils.js";
4
+ import "../ToastMessage/index.js";
4
5
  import r from "../../synapse-queries/entity/useEntityBundle.js";
5
6
  import "../../synapse-queries/index.js";
6
7
  import { ConfirmationDialog as i } from "../ConfirmationDialog/ConfirmationDialog.js";
7
8
  import "../ConfirmationDialog/index.js";
8
- import "../ToastMessage/index.js";
9
9
  import a from "../Dialog/ConfirmCloseWithoutSavingDialog.js";
10
10
  import o from "./EntityAclEditor.js";
11
11
  import { useRef as s, useState as c } from "react";
@@ -1,10 +1,10 @@
1
1
  import { displayToast as e } from "../ToastMessage/ToastMessage.js";
2
2
  import { useGetRealmPrincipals as t } from "../../synapse-queries/realm/useRealmPrincipals.js";
3
+ import "../ToastMessage/index.js";
3
4
  import { useSendMessage as n } from "../../synapse-queries/message/useMessage.js";
4
5
  import { useGetCurrentUserProfile as r } from "../../synapse-queries/user/useUserBundle.js";
5
6
  import { useGetUserGroupHeaders as i } from "../../synapse-queries/user/useUserGroupHeader.js";
6
7
  import "../../synapse-queries/index.js";
7
- import "../ToastMessage/index.js";
8
8
  import { useCallback as a } from "react";
9
9
  //#region src/components/EntityAclEditor/useNotifyNewACLUsers.ts
10
10
  function o(e, t, n, r, i) {
@@ -2,11 +2,11 @@ import { displayToast as e } from "../ToastMessage/ToastMessage.js";
2
2
  import { isFileEntity as t } from "../../utils/types/IsType.js";
3
3
  import { entityTypeToFriendlyName as n, hasFilesInView as r, isContainerType as i, isDataset as a, isEntityView as o, isVersionableEntity as s } from "../../utils/functions/EntityTypeUtils.js";
4
4
  import { useSynapseContext as c } from "../../utils/context/SynapseContext.js";
5
+ import "../ToastMessage/index.js";
5
6
  import "../../utils/index.js";
6
7
  import { useAddFileToDownloadList as l, useGetAddToDownloadListStats as u } from "../../synapse-queries/download/useDownloadList.js";
7
8
  import { useGetEntity as d, useGetVersions as f } from "../../synapse-queries/entity/useEntity.js";
8
9
  import "../../synapse-queries/index.js";
9
- import "../ToastMessage/index.js";
10
10
  import { displayFilesWereAddedToDownloadListSuccess as p } from "../download_list/DownloadConfirmationUtils.js";
11
11
  import { EntityDownloadConfirmation as m } from "../EntityDownloadConfirmation/EntityDownloadConfirmation.js";
12
12
  import "../EntityDownloadConfirmation/index.js";
@@ -5,6 +5,7 @@ export type EntityIdTextFieldProps = {
5
5
  onChange: (value: string) => void;
6
6
  description?: string;
7
7
  disabled?: boolean;
8
+ required?: boolean;
8
9
  entityFinderModalProps: Omit<EntityFinderModalProps, 'show' | 'onConfirm' | 'onCancel'>;
9
10
  };
10
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"EntityIdTextField.d.ts","sourceRoot":"","sources":["../../../src/components/EntityFinder/EntityIdTextField.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAqB,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAE/E,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sBAAsB,EAAE,IAAI,CAC1B,sBAAsB,EACtB,MAAM,GAAG,WAAW,GAAG,UAAU,CAClC,CAAA;CACF,CAAA;AAED;;;;GAIG;AACH,iBAAS,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CAyCvD;AAED,eAAe,iBAAiB,CAAA"}
1
+ {"version":3,"file":"EntityIdTextField.d.ts","sourceRoot":"","sources":["../../../src/components/EntityFinder/EntityIdTextField.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAqB,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAE/E,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sBAAsB,EAAE,IAAI,CAC1B,sBAAsB,EACtB,MAAM,GAAG,WAAW,GAAG,UAAU,CAClC,CAAA;CACF,CAAA;AAED;;;;GAIG;AACH,iBAAS,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CA2CvD;AAED,eAAe,iBAAiB,CAAA"}
@@ -7,24 +7,25 @@ import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
7
7
  import { SearchOutlined as s } from "@mui/icons-material";
8
8
  //#region src/components/EntityFinder/EntityIdTextField.tsx
9
9
  function c(c) {
10
- let { label: l, value: u, description: d, onChange: f, disabled: p, entityFinderModalProps: m } = c, [h, g] = n(!1);
10
+ let { label: l, value: u, description: d, onChange: f, disabled: p, required: m, entityFinderModalProps: h } = c, [g, _] = n(!1);
11
11
  return /* @__PURE__ */ o(i, { children: [/* @__PURE__ */ a(t, {
12
- show: h,
12
+ show: g,
13
13
  onConfirm: (e) => {
14
- f(e[0].targetId), g(!1);
14
+ f(e[0].targetId), _(!1);
15
15
  },
16
- onCancel: () => g(!1),
17
- ...m
16
+ onCancel: () => _(!1),
17
+ ...h
18
18
  }), /* @__PURE__ */ a(e, {
19
19
  label: l,
20
20
  description: d,
21
21
  type: "text",
22
22
  fullWidth: !0,
23
+ required: m,
23
24
  value: u,
24
25
  disabled: p,
25
26
  onChange: (e) => f(e.target.value),
26
27
  slotProps: { input: { endAdornment: !p && /* @__PURE__ */ a(r, {
27
- onClick: () => g(!0),
28
+ onClick: () => _(!0),
28
29
  children: /* @__PURE__ */ a(s, {})
29
30
  }) } }
30
31
  })] });
@@ -1 +1 @@
1
- {"version":3,"file":"EntityIdTextField.js","names":[],"sources":["../../../src/components/EntityFinder/EntityIdTextField.tsx"],"sourcesContent":["import { SearchOutlined } from '@mui/icons-material'\nimport { IconButton } from '@mui/material'\nimport { useState } from 'react'\nimport { TextField } from '../TextField'\nimport { EntityFinderModal, EntityFinderModalProps } from './EntityFinderModal'\n\nexport type EntityIdTextFieldProps = {\n label: string\n value: string\n onChange: (value: string) => void\n description?: string\n disabled?: boolean\n entityFinderModalProps: Omit<\n EntityFinderModalProps,\n 'show' | 'onConfirm' | 'onCancel'\n >\n}\n\n/**\n * A text field with an adornment button that opens an EntityFinderModal to select an entity.\n * The selected entity's ID is set as the value of the text field. Users may also type or paste\n * a raw synId.\n */\nfunction EntityIdTextField(props: EntityIdTextFieldProps) {\n const {\n label,\n value,\n description,\n onChange,\n disabled,\n entityFinderModalProps,\n } = props\n const [showEntityFinder, setShowEntityFinder] = useState(false)\n return (\n <>\n <EntityFinderModal\n show={showEntityFinder}\n onConfirm={selected => {\n onChange(selected[0].targetId)\n setShowEntityFinder(false)\n }}\n onCancel={() => setShowEntityFinder(false)}\n {...entityFinderModalProps}\n />\n <TextField\n label={label}\n description={description}\n type=\"text\"\n fullWidth\n value={value}\n disabled={disabled}\n onChange={e => onChange(e.target.value)}\n slotProps={{\n input: {\n endAdornment: !disabled && (\n <IconButton onClick={() => setShowEntityFinder(true)}>\n <SearchOutlined />\n </IconButton>\n ),\n },\n }}\n />\n </>\n )\n}\n\nexport default EntityIdTextField\n"],"mappings":";;;;;;;;AAuBA,SAAS,EAAkB,GAA+B;CACxD,IAAM,EACJ,UACA,UACA,gBACA,aACA,aACA,8BACE,GACE,CAAC,GAAkB,KAAuB,EAAS,EAAK;CAC9D,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,MAAM;EACN,YAAW,MAAY;GAErB,AADA,EAAS,EAAS,GAAG,QAAQ,GAC7B,EAAoB,EAAK;EAC3B;EACA,gBAAgB,EAAoB,EAAK;EACzC,GAAI;CACL,CAAA,GACD,kBAAC,GAAD;EACS;EACM;EACb,MAAK;EACL,WAAA;EACO;EACG;EACV,WAAU,MAAK,EAAS,EAAE,OAAO,KAAK;EACtC,WAAW,EACT,OAAO,EACL,cAAc,CAAC,KACb,kBAAC,GAAD;GAAY,eAAe,EAAoB,EAAI;aACjD,kBAAC,GAAD,CAAiB,CAAA;EACP,CAAA,EAEhB,EACF;CACD,CAAA,CACD,EAAA,CAAA;AAEN"}
1
+ {"version":3,"file":"EntityIdTextField.js","names":[],"sources":["../../../src/components/EntityFinder/EntityIdTextField.tsx"],"sourcesContent":["import { SearchOutlined } from '@mui/icons-material'\nimport { IconButton } from '@mui/material'\nimport { useState } from 'react'\nimport { TextField } from '../TextField'\nimport { EntityFinderModal, EntityFinderModalProps } from './EntityFinderModal'\n\nexport type EntityIdTextFieldProps = {\n label: string\n value: string\n onChange: (value: string) => void\n description?: string\n disabled?: boolean\n required?: boolean\n entityFinderModalProps: Omit<\n EntityFinderModalProps,\n 'show' | 'onConfirm' | 'onCancel'\n >\n}\n\n/**\n * A text field with an adornment button that opens an EntityFinderModal to select an entity.\n * The selected entity's ID is set as the value of the text field. Users may also type or paste\n * a raw synId.\n */\nfunction EntityIdTextField(props: EntityIdTextFieldProps) {\n const {\n label,\n value,\n description,\n onChange,\n disabled,\n required,\n entityFinderModalProps,\n } = props\n const [showEntityFinder, setShowEntityFinder] = useState(false)\n return (\n <>\n <EntityFinderModal\n show={showEntityFinder}\n onConfirm={selected => {\n onChange(selected[0].targetId)\n setShowEntityFinder(false)\n }}\n onCancel={() => setShowEntityFinder(false)}\n {...entityFinderModalProps}\n />\n <TextField\n label={label}\n description={description}\n type=\"text\"\n fullWidth\n required={required}\n value={value}\n disabled={disabled}\n onChange={e => onChange(e.target.value)}\n slotProps={{\n input: {\n endAdornment: !disabled && (\n <IconButton onClick={() => setShowEntityFinder(true)}>\n <SearchOutlined />\n </IconButton>\n ),\n },\n }}\n />\n </>\n )\n}\n\nexport default EntityIdTextField\n"],"mappings":";;;;;;;;AAwBA,SAAS,EAAkB,GAA+B;CACxD,IAAM,EACJ,UACA,UACA,gBACA,aACA,aACA,aACA,8BACE,GACE,CAAC,GAAkB,KAAuB,EAAS,EAAK;CAC9D,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,MAAM;EACN,YAAW,MAAY;GAErB,AADA,EAAS,EAAS,GAAG,QAAQ,GAC7B,EAAoB,EAAK;EAC3B;EACA,gBAAgB,EAAoB,EAAK;EACzC,GAAI;CACL,CAAA,GACD,kBAAC,GAAD;EACS;EACM;EACb,MAAK;EACL,WAAA;EACU;EACH;EACG;EACV,WAAU,MAAK,EAAS,EAAE,OAAO,KAAK;EACtC,WAAW,EACT,OAAO,EACL,cAAc,CAAC,KACb,kBAAC,GAAD;GAAY,eAAe,EAAoB,EAAI;aACjD,kBAAC,GAAD,CAAiB,CAAA;EACP,CAAA,EAEhB,EACF;CACD,CAAA,CACD,EAAA,CAAA;AAEN"}
@@ -1,10 +1,10 @@
1
1
  import { displayToast as e } from "../../../../ToastMessage/ToastMessage.js";
2
2
  import { useSynapseContext as t } from "../../../../../utils/context/SynapseContext.js";
3
+ import "../../../../ToastMessage/index.js";
3
4
  import "../../../../../utils/index.js";
4
5
  import { useAddFileToDownloadList as n } from "../../../../../synapse-queries/download/useDownloadList.js";
5
6
  import r from "../../../../../synapse-queries/entity/useEntityBundle.js";
6
7
  import "../../../../../synapse-queries/index.js";
7
- import "../../../../ToastMessage/index.js";
8
8
  import i from "../../../../IconSvg/IconSvg.js";
9
9
  import { displayFilesWereAddedToDownloadListSuccess as a } from "../../../../download_list/DownloadConfirmationUtils.js";
10
10
  import { Box as o, IconButton as s, Tooltip as c } from "@mui/material";
@@ -1,7 +1,7 @@
1
1
  import { displayToast as e } from "../../../../ToastMessage/ToastMessage.js";
2
2
  import { copyStringToClipboard as t } from "../../../../../utils/functions/StringUtils.js";
3
- import n from "../../../../../synapse-queries/entity/useEntityBundle.js";
4
3
  import "../../../../ToastMessage/index.js";
4
+ import n from "../../../../../synapse-queries/entity/useEntityBundle.js";
5
5
  import { Skeleton as r, Tooltip as i } from "@mui/material";
6
6
  import { Fragment as a, jsx as o } from "react/jsx-runtime";
7
7
  import { useMutation as s } from "@tanstack/react-query";
@@ -1 +1 @@
1
- ._panel_1l7xd_1{flex-direction:column;display:flex;position:relative}._content_1l7xd_7{width:320px;margin-top:40px;padding:0 32px 0 0}@media (width<=1024px){._content_1l7xd_7{width:100%;margin-top:10px;padding:10px 32px 0}}._sidebarHeader_1l7xd_20.MuiTypography-root{color:#616972;font-size:14px;font-weight:540;line-height:20px}._divider_1l7xd_27{margin-top:8px;margin-bottom:16px}._propertyValue_1l7xd_32.MuiTypography-root{color:#4d535a;font-style:normal;font-weight:440;line-height:20px}._propertyTitle_1l7xd_39.MuiTypography-root{color:#747d88;font-size:12px;line-height:12px}._propertiesContainer_1l7xd_45{gap:12px;padding:12px 0}._propertyRow_1l7xd_50{gap:4px}._toggleButton_1l7xd_54.MuiButtonBase-root{white-space:nowrap;flex-direction:row;align-self:flex-start;gap:8px;display:flex;position:absolute;top:0;right:0}@media (width<=1024px){._toggleButton_1l7xd_54.MuiButtonBase-root{margin:10px 0 0 20px;position:static}}._toggleButton_1l7xd_54.MuiButtonBase-root:hover{text-decoration:none}._toggleButtonText_1l7xd_74.MuiTypography-root{color:#616972;font-weight:440;line-height:20px}._icon_1l7xd_80{color:#616972}
1
+ ._panel_63bk5_1{flex-direction:column;display:flex;position:relative}._content_63bk5_7{width:320px;margin-top:40px;padding:0 32px 0 0}@media (width<=1200px){._content_63bk5_7{width:100%;margin-top:10px;padding:10px 32px 0}}._sidebarHeader_63bk5_20.MuiTypography-root{color:#616972;font-size:14px;font-weight:540;line-height:20px}._divider_63bk5_27{margin-top:8px;margin-bottom:16px}._propertyValue_63bk5_32.MuiTypography-root{color:#4d535a;font-style:normal;font-weight:440;line-height:20px}._propertyTitle_63bk5_39.MuiTypography-root{color:#747d88;font-size:12px;line-height:12px}._propertiesContainer_63bk5_45{gap:12px;padding:12px 0}._propertyRow_63bk5_50{gap:4px}._toggleButton_63bk5_54.MuiButtonBase-root{white-space:nowrap;flex-direction:row;align-self:flex-start;gap:8px;display:flex;position:absolute;top:0;right:32px}@media (width<=1200px){._toggleButton_63bk5_54.MuiButtonBase-root{margin:10px 0 0 32px;position:static}}._toggleButton_63bk5_54.MuiButtonBase-root:hover{text-decoration:none}._toggleButtonText_63bk5_74.MuiTypography-root{color:#616972;font-weight:440;line-height:20px}._icon_63bk5_80{color:#616972}
@@ -1 +1 @@
1
- {"version":3,"file":"EntitySidebar.d.ts","sourceRoot":"","sources":["../../../src/components/EntitySidebar/EntitySidebar.tsx"],"names":[],"mappings":"AAkBA,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CAiE9D"}
1
+ {"version":3,"file":"EntitySidebar.d.ts","sourceRoot":"","sources":["../../../src/components/EntitySidebar/EntitySidebar.tsx"],"names":[],"mappings":"AAmBA,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CA2E9D"}
@@ -1,32 +1,40 @@
1
- import { entityTypeToFriendlyName as e } from "../../utils/functions/EntityTypeUtils.js";
2
- import t from "../../utils/hooks/useGetEntityMetadata.js";
3
- import { useGetEntityTitleBarProperties as n } from "../entity/page/title_bar/useGetEntityTitleBarProperties.js";
4
- import r from "./EntitySidebar.module.js";
5
- import { useState as i } from "react";
6
- import { Box as a, Button as o, Collapse as s, Divider as c, Stack as l, Typography as u, useMediaQuery as d, useTheme as f } from "@mui/material";
7
- import { jsx as p, jsxs as m } from "react/jsx-runtime";
8
- import h from "@mui/icons-material/KeyboardDoubleArrowRight";
9
- import g from "@mui/icons-material/KeyboardDoubleArrowLeft";
1
+ import { ENTITY_SIDEBAR_STATE_LOCALSTORAGE_KEY as e } from "../../utils/SynapseConstants.js";
2
+ import { entityTypeToFriendlyName as t } from "../../utils/functions/EntityTypeUtils.js";
3
+ import n from "../../utils/hooks/useGetEntityMetadata.js";
4
+ import { useGetEntityTitleBarProperties as r } from "../entity/page/title_bar/useGetEntityTitleBarProperties.js";
5
+ import i from "./EntitySidebar.module.js";
6
+ import { useEffect as a, useState as o } from "react";
7
+ import { Box as s, Button as c, Collapse as l, Divider as u, Stack as d, Typography as f, useMediaQuery as p, useTheme as m } from "@mui/material";
8
+ import { jsx as h, jsxs as g } from "react/jsx-runtime";
9
+ import _ from "@mui/icons-material/KeyboardDoubleArrowRight";
10
+ import v from "@mui/icons-material/KeyboardDoubleArrowLeft";
10
11
  //#region src/components/EntitySidebar/EntitySidebar.tsx
11
- function _(_) {
12
- let { entityId: v, versionNumber: y } = _, b = d(f().breakpoints.down("lg")), { entityBundle: x } = t(v, y), S = x ? e(x.entityType) : "", C = n(v, y), [w, T] = i(!0), E = /* @__PURE__ */ m(a, {
13
- className: r.content,
12
+ function y(y) {
13
+ let { entityId: b, versionNumber: x } = y, S = p(m().breakpoints.down("lg")), { entityBundle: C } = n(b, x), w = C ? t(C.entityType) : "", T = r(b, x), [E, D] = o(() => {
14
+ let t = localStorage.getItem(e);
15
+ return t === null ? !0 : t === "true";
16
+ });
17
+ a(() => {
18
+ localStorage.setItem(e, String(E));
19
+ }, [E]);
20
+ let O = /* @__PURE__ */ g(s, {
21
+ className: i.content,
14
22
  children: [
15
- /* @__PURE__ */ m(u, {
23
+ /* @__PURE__ */ g(f, {
16
24
  variant: "overline",
17
- className: r.sidebarHeader,
18
- children: ["About this ", S]
25
+ className: i.sidebarHeader,
26
+ children: ["About this ", w]
19
27
  }),
20
- /* @__PURE__ */ p(c, { className: r.divider }),
21
- /* @__PURE__ */ p(l, {
22
- className: r.propertiesContainer,
23
- children: C.map((e) => /* @__PURE__ */ m(l, {
24
- className: r.propertyRow,
25
- children: [/* @__PURE__ */ p(u, {
26
- className: r.propertyTitle,
28
+ /* @__PURE__ */ h(u, { className: i.divider }),
29
+ /* @__PURE__ */ h(d, {
30
+ className: i.propertiesContainer,
31
+ children: T.map((e) => /* @__PURE__ */ g(d, {
32
+ className: i.propertyRow,
33
+ children: [/* @__PURE__ */ h(f, {
34
+ className: i.propertyTitle,
27
35
  children: e.title
28
- }), /* @__PURE__ */ p(u, {
29
- className: r.propertyValue,
36
+ }), /* @__PURE__ */ h(f, {
37
+ className: i.propertyValue,
30
38
  variant: "smallText1",
31
39
  component: "div",
32
40
  children: e.value
@@ -35,28 +43,28 @@ function _(_) {
35
43
  })
36
44
  ]
37
45
  });
38
- return /* @__PURE__ */ m(a, {
39
- className: r.panel,
40
- children: [/* @__PURE__ */ m(o, {
41
- onClick: () => T((e) => !e),
42
- className: r.toggleButton,
43
- children: [/* @__PURE__ */ m(u, {
46
+ return /* @__PURE__ */ g(s, {
47
+ className: i.panel,
48
+ children: [/* @__PURE__ */ g(c, {
49
+ onClick: () => D((e) => !e),
50
+ className: i.toggleButton,
51
+ children: [/* @__PURE__ */ g(f, {
44
52
  variant: "smallText1",
45
- className: r.toggleButtonText,
46
- children: [w ? "Collapse" : "Expand", " Sidebar"]
47
- }), p(w ? h : g, { className: r.icon })]
48
- }), /* @__PURE__ */ p(s, {
49
- in: w,
50
- orientation: b ? "vertical" : "horizontal",
53
+ className: i.toggleButtonText,
54
+ children: [E ? "Collapse" : "Expand", " Sidebar"]
55
+ }), h(E ? _ : v, { className: i.icon })]
56
+ }), /* @__PURE__ */ h(l, {
57
+ in: E,
58
+ orientation: S ? "vertical" : "horizontal",
51
59
  timeout: {
52
60
  enter: 200,
53
61
  exit: 200
54
62
  },
55
- children: E
56
- })]
63
+ children: O
64
+ }, S ? "vertical" : "horizontal")]
57
65
  });
58
66
  }
59
67
  //#endregion
60
- export { _ as default };
68
+ export { y as default };
61
69
 
62
70
  //# sourceMappingURL=EntitySidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntitySidebar.js","names":[],"sources":["../../../src/components/EntitySidebar/EntitySidebar.tsx"],"sourcesContent":["import { useState } from 'react'\nimport KeyboardDoubleArrowRightIcon from '@mui/icons-material/KeyboardDoubleArrowRight'\nimport KeyboardDoubleArrowLeftIcon from '@mui/icons-material/KeyboardDoubleArrowLeft'\nimport {\n Box,\n Button,\n Divider,\n Collapse,\n Stack,\n Typography,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\nimport { useGetEntityTitleBarProperties } from '@/components/entity/page/title_bar/useGetEntityTitleBarProperties'\nimport styles from './EntitySidebar.module.scss'\nimport useGetEntityMetadata from '@/utils/hooks/useGetEntityMetadata'\nimport { entityTypeToFriendlyName } from '@/utils/functions/EntityTypeUtils'\n\ntype EntitySidebarProps = {\n entityId: string\n versionNumber?: number\n}\n\nexport default function EntitySidebar(props: EntitySidebarProps) {\n const { entityId, versionNumber } = props\n\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('lg'))\n\n const { entityBundle } = useGetEntityMetadata(entityId, versionNumber)\n\n const friendlyName = entityBundle\n ? entityTypeToFriendlyName(entityBundle.entityType)\n : ''\n\n const properties = useGetEntityTitleBarProperties(entityId, versionNumber)\n\n const [open, setOpen] = useState(true)\n\n const sidebarContent = (\n <Box className={styles.content}>\n <Typography variant=\"overline\" className={styles.sidebarHeader}>\n About this {friendlyName}\n </Typography>\n <Divider className={styles.divider} />\n <Stack className={styles.propertiesContainer}>\n {properties.map(property => (\n <Stack key={property.key} className={styles.propertyRow}>\n <Typography className={styles.propertyTitle}>\n {property.title}\n </Typography>\n <Typography\n className={styles.propertyValue}\n variant=\"smallText1\"\n component=\"div\"\n >\n {property.value}\n </Typography>\n </Stack>\n ))}\n </Stack>\n </Box>\n )\n\n return (\n <Box className={styles.panel}>\n <Button\n onClick={() => setOpen(prev => !prev)}\n className={styles.toggleButton}\n >\n <Typography variant=\"smallText1\" className={styles.toggleButtonText}>\n {open ? 'Collapse' : 'Expand'} Sidebar\n </Typography>\n {open ? (\n <KeyboardDoubleArrowRightIcon className={styles.icon} />\n ) : (\n <KeyboardDoubleArrowLeftIcon className={styles.icon} />\n )}\n </Button>\n <Collapse\n in={open}\n orientation={isMobile ? 'vertical' : 'horizontal'}\n timeout={{ enter: 200, exit: 200 }}\n >\n {sidebarContent}\n </Collapse>\n </Box>\n )\n}\n"],"mappings":";;;;;;;;;;AAuBA,SAAwB,EAAc,GAA2B;CAC/D,IAAM,EAAE,aAAU,qBAAkB,GAG9B,IAAW,EADH,EACiB,EAAM,YAAY,KAAK,IAAI,CAAC,GAErD,EAAE,oBAAiB,EAAqB,GAAU,CAAa,GAE/D,IAAe,IACjB,EAAyB,EAAa,UAAU,IAChD,IAEE,IAAa,EAA+B,GAAU,CAAa,GAEnE,CAAC,GAAM,KAAW,EAAS,EAAI,GAE/B,IACJ,kBAAC,GAAD;EAAK,WAAW,EAAO;YAAvB;GACE,kBAAC,GAAD;IAAY,SAAQ;IAAW,WAAW,EAAO;cAAjD,CAAgE,eAClD,CACF;;GACZ,kBAAC,GAAD,EAAS,WAAW,EAAO,QAAU,CAAA;GACrC,kBAAC,GAAD;IAAO,WAAW,EAAO;cACtB,EAAW,KAAI,MACd,kBAAC,GAAD;KAA0B,WAAW,EAAO;eAA5C,CACE,kBAAC,GAAD;MAAY,WAAW,EAAO;gBAC3B,EAAS;KACA,CAAA,GACZ,kBAAC,GAAD;MACE,WAAW,EAAO;MAClB,SAAQ;MACR,WAAU;gBAET,EAAS;KACA,CAAA,CACP;OAXK,EAAS,GAWd,CACR;GACI,CAAA;EACJ;;CAGP,OACE,kBAAC,GAAD;EAAK,WAAW,EAAO;YAAvB,CACE,kBAAC,GAAD;GACE,eAAe,GAAQ,MAAQ,CAAC,CAAI;GACpC,WAAW,EAAO;aAFpB,CAIE,kBAAC,GAAD;IAAY,SAAQ;IAAa,WAAW,EAAO;cAAnD,CACG,IAAO,aAAa,UAAS,UACpB;OAEV,EADD,IACE,IAEA,GAFD,EAA8B,WAAW,EAAO,KAAO,CAED,CAElD;MACR,kBAAC,GAAD;GACE,IAAI;GACJ,aAAa,IAAW,aAAa;GACrC,SAAS;IAAE,OAAO;IAAK,MAAM;GAAI;aAEhC;EACO,CAAA,CACP;;AAET"}
1
+ {"version":3,"file":"EntitySidebar.js","names":[],"sources":["../../../src/components/EntitySidebar/EntitySidebar.tsx"],"sourcesContent":["import { useState, useEffect } from 'react'\nimport KeyboardDoubleArrowRightIcon from '@mui/icons-material/KeyboardDoubleArrowRight'\nimport KeyboardDoubleArrowLeftIcon from '@mui/icons-material/KeyboardDoubleArrowLeft'\nimport {\n Box,\n Button,\n Divider,\n Collapse,\n Stack,\n Typography,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\nimport { useGetEntityTitleBarProperties } from '@/components/entity/page/title_bar/useGetEntityTitleBarProperties'\nimport styles from './EntitySidebar.module.scss'\nimport useGetEntityMetadata from '@/utils/hooks/useGetEntityMetadata'\nimport { entityTypeToFriendlyName } from '@/utils/functions/EntityTypeUtils'\nimport { ENTITY_SIDEBAR_STATE_LOCALSTORAGE_KEY } from '@/utils/SynapseConstants'\n\ntype EntitySidebarProps = {\n entityId: string\n versionNumber?: number\n}\n\nexport default function EntitySidebar(props: EntitySidebarProps) {\n const { entityId, versionNumber } = props\n\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('lg'))\n\n const { entityBundle } = useGetEntityMetadata(entityId, versionNumber)\n\n const friendlyName = entityBundle\n ? entityTypeToFriendlyName(entityBundle.entityType)\n : ''\n\n const properties = useGetEntityTitleBarProperties(entityId, versionNumber)\n\n const [open, setOpen] = useState(() => {\n const savedState = localStorage.getItem(\n ENTITY_SIDEBAR_STATE_LOCALSTORAGE_KEY,\n )\n return savedState !== null ? savedState === 'true' : true\n })\n\n useEffect(() => {\n localStorage.setItem(ENTITY_SIDEBAR_STATE_LOCALSTORAGE_KEY, String(open))\n }, [open])\n\n const sidebarContent = (\n <Box className={styles.content}>\n <Typography variant=\"overline\" className={styles.sidebarHeader}>\n About this {friendlyName}\n </Typography>\n <Divider className={styles.divider} />\n <Stack className={styles.propertiesContainer}>\n {properties.map(property => (\n <Stack key={property.key} className={styles.propertyRow}>\n <Typography className={styles.propertyTitle}>\n {property.title}\n </Typography>\n <Typography\n className={styles.propertyValue}\n variant=\"smallText1\"\n component=\"div\"\n >\n {property.value}\n </Typography>\n </Stack>\n ))}\n </Stack>\n </Box>\n )\n\n return (\n <Box className={styles.panel}>\n <Button\n onClick={() => setOpen(prev => !prev)}\n className={styles.toggleButton}\n >\n <Typography variant=\"smallText1\" className={styles.toggleButtonText}>\n {open ? 'Collapse' : 'Expand'} Sidebar\n </Typography>\n {open ? (\n <KeyboardDoubleArrowRightIcon className={styles.icon} />\n ) : (\n <KeyboardDoubleArrowLeftIcon className={styles.icon} />\n )}\n </Button>\n <Collapse\n key={isMobile ? 'vertical' : 'horizontal'}\n in={open}\n orientation={isMobile ? 'vertical' : 'horizontal'}\n timeout={{ enter: 200, exit: 200 }}\n >\n {sidebarContent}\n </Collapse>\n </Box>\n )\n}\n"],"mappings":";;;;;;;;;;;AAwBA,SAAwB,EAAc,GAA2B;CAC/D,IAAM,EAAE,aAAU,qBAAkB,GAG9B,IAAW,EADH,EACiB,EAAM,YAAY,KAAK,IAAI,CAAC,GAErD,EAAE,oBAAiB,EAAqB,GAAU,CAAa,GAE/D,IAAe,IACjB,EAAyB,EAAa,UAAU,IAChD,IAEE,IAAa,EAA+B,GAAU,CAAa,GAEnE,CAAC,GAAM,KAAW,QAAe;EACrC,IAAM,IAAa,aAAa,QAC9B,CACF;EACA,OAAO,MAAe,OAA+B,KAAxB,MAAe;CAC9C,CAAC;CAED,QAAgB;EACd,aAAa,QAAQ,GAAuC,OAAO,CAAI,CAAC;CAC1E,GAAG,CAAC,CAAI,CAAC;CAET,IAAM,IACJ,kBAAC,GAAD;EAAK,WAAW,EAAO;YAAvB;GACE,kBAAC,GAAD;IAAY,SAAQ;IAAW,WAAW,EAAO;cAAjD,CAAgE,eAClD,CACF;;GACZ,kBAAC,GAAD,EAAS,WAAW,EAAO,QAAU,CAAA;GACrC,kBAAC,GAAD;IAAO,WAAW,EAAO;cACtB,EAAW,KAAI,MACd,kBAAC,GAAD;KAA0B,WAAW,EAAO;eAA5C,CACE,kBAAC,GAAD;MAAY,WAAW,EAAO;gBAC3B,EAAS;KACA,CAAA,GACZ,kBAAC,GAAD;MACE,WAAW,EAAO;MAClB,SAAQ;MACR,WAAU;gBAET,EAAS;KACA,CAAA,CACP;OAXK,EAAS,GAWd,CACR;GACI,CAAA;EACJ;;CAGP,OACE,kBAAC,GAAD;EAAK,WAAW,EAAO;YAAvB,CACE,kBAAC,GAAD;GACE,eAAe,GAAQ,MAAQ,CAAC,CAAI;GACpC,WAAW,EAAO;aAFpB,CAIE,kBAAC,GAAD;IAAY,SAAQ;IAAa,WAAW,EAAO;cAAnD,CACG,IAAO,aAAa,UAAS,UACpB;OAEV,EADD,IACE,IAEA,GAFD,EAA8B,WAAW,EAAO,KAAO,CAED,CAElD;MACR,kBAAC,GAAD;GAEE,IAAI;GACJ,aAAa,IAAW,aAAa;GACrC,SAAS;IAAE,OAAO;IAAK,MAAM;GAAI;aAEhC;EACO,GANH,IAAW,aAAa,YAMrB,CACP;;AAET"}