synapse-react-client 4.0.44 → 4.0.46

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 (415) hide show
  1. package/dist/SWC.index.d.ts +1 -1
  2. package/dist/SWC.index.js +2 -2
  3. package/dist/SWC.index.js.map +1 -1
  4. package/dist/aridhia-queries/AridhiaKeyFactory.d.ts +1 -0
  5. package/dist/aridhia-queries/AridhiaKeyFactory.d.ts.map +1 -1
  6. package/dist/aridhia-queries/AridhiaKeyFactory.js +3 -0
  7. package/dist/aridhia-queries/AridhiaKeyFactory.js.map +1 -1
  8. package/dist/aridhia-queries/aridhiaTokenExchange.js +6 -6
  9. package/dist/aridhia-queries/index.d.ts +1 -0
  10. package/dist/aridhia-queries/index.d.ts.map +1 -1
  11. package/dist/aridhia-queries/index.js +11 -10
  12. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.d.ts +19 -0
  13. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.d.ts.map +1 -0
  14. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.js +14 -0
  15. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.js.map +1 -0
  16. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.d.ts.map +1 -1
  17. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +6 -4
  18. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
  19. package/dist/components/AccessRequirementList/AccessRequirementList.d.ts +2 -1
  20. package/dist/components/AccessRequirementList/AccessRequirementList.d.ts.map +1 -1
  21. package/dist/components/AccessRequirementList/AccessRequirementList.js +126 -125
  22. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  23. package/dist/components/AccessRequirementList/AccessRequirementListItem.d.ts +1 -1
  24. package/dist/components/AccessRequirementList/AccessRequirementListItem.d.ts.map +1 -1
  25. package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
  26. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js +1 -1
  27. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js.map +1 -1
  28. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts.map +1 -1
  29. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js +28 -16
  30. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js.map +1 -1
  31. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts.map +1 -1
  32. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js +99 -97
  33. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js.map +1 -1
  34. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js +1 -1
  35. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  36. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js +1 -1
  37. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js.map +1 -1
  38. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts.map +1 -1
  39. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js +11 -8
  40. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js.map +1 -1
  41. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts +1 -1
  42. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts.map +1 -1
  43. package/dist/components/AccessRequirementList/RequestDataStep.d.ts +1 -4
  44. package/dist/components/AccessRequirementList/RequestDataStep.d.ts.map +1 -1
  45. package/dist/components/AccessRequirementList/RequestDataStep.js +15 -18
  46. package/dist/components/AccessRequirementList/RequestDataStep.js.map +1 -1
  47. package/dist/components/AccessTokenPage/AccessTokenPage.js +1 -1
  48. package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
  49. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +1 -1
  50. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  51. package/dist/components/Aridhia/DarWizard/DarSectionForm.d.ts.map +1 -1
  52. package/dist/components/Aridhia/DarWizard/DarSectionForm.js +17 -13
  53. package/dist/components/Aridhia/DarWizard/DarSectionForm.js.map +1 -1
  54. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts +3 -3
  55. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts.map +1 -1
  56. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js +33 -34
  57. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js.map +1 -1
  58. package/dist/components/Aridhia/fairFormToRjsf.js +1 -1
  59. package/dist/components/Aridhia/fairFormToRjsf.js.map +1 -1
  60. package/dist/components/Authentication/LastLoginInfo.js +1 -1
  61. package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
  62. package/dist/components/CertificationQuiz/CertificationQuiz.js +1 -1
  63. package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
  64. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js +1 -1
  65. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
  66. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js +1 -1
  67. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
  68. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js +6 -6
  69. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
  70. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.d.ts.map +1 -1
  71. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js +4 -4
  72. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
  73. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js +4 -4
  74. package/dist/components/CitationPopover/CitationPopoverContent.js +4 -4
  75. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  76. package/dist/components/ComponentCollapse.d.ts.map +1 -1
  77. package/dist/components/ComponentCollapse.js +2 -1
  78. package/dist/components/ComponentCollapse.js.map +1 -1
  79. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.d.ts.map +1 -1
  80. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js +52 -49
  81. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  82. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  83. package/dist/components/DataGrid/SynapseGrid.js +231 -219
  84. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  85. package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts.map +1 -1
  86. package/dist/components/DataGrid/SyncGridWithSourceButton.js +5 -4
  87. package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -1
  88. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts.map +1 -1
  89. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js +7 -5
  90. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
  91. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js +4 -4
  92. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
  93. package/dist/components/DataGrid/components/ReorderColumnsButton.js +4 -4
  94. package/dist/components/DataGrid/components/ReorderColumnsButton.js.map +1 -1
  95. package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
  96. package/dist/components/DataGrid/components/ReorderColumnsDialog.js +12 -8
  97. package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
  98. package/dist/components/DataGrid/components/UploadCsvToGridButton.js +1 -1
  99. package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
  100. package/dist/components/DataGrid/hooks/useGridUndoRedo.js +5 -5
  101. package/dist/components/DataGrid/utils/applyModelChange.d.ts.map +1 -1
  102. package/dist/components/DataGrid/utils/applyModelChange.js +14 -14
  103. package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
  104. package/dist/components/DataGrid/utils/columnFactory.js +1 -1
  105. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  106. package/dist/components/DataGrid/utils/splitPatch.d.ts.map +1 -1
  107. package/dist/components/DataGrid/utils/splitPatch.js +22 -13
  108. package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
  109. package/dist/components/DownloadCart/DownloadCartPage.js +1 -1
  110. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  111. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.d.ts.map +1 -1
  112. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +2 -1
  113. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  114. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.js.map +1 -1
  115. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.scss +1 -3
  116. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
  117. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +16 -10
  118. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  119. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +1 -1
  120. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  121. package/dist/components/EntityFinder/EntityFinder.js +4 -4
  122. package/dist/components/EntityFinder/EntityIdTextField.js +1 -1
  123. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  124. package/dist/components/EntityFinder/tree/VirtualizedTree.d.ts.map +1 -1
  125. package/dist/components/EntityFinder/tree/VirtualizedTree.js +5 -4
  126. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  127. package/dist/components/EntityHeaderTable/EntityHeaderTable.js +1 -1
  128. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  129. package/dist/components/EntityTreeTable/components/EntityNameCell.d.ts.map +1 -1
  130. package/dist/components/EntityTreeTable/components/EntityNameCell.js +2 -1
  131. package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
  132. package/dist/components/EntityUpload/FileUploadProgress.d.ts.map +1 -1
  133. package/dist/components/EntityUpload/FileUploadProgress.js +11 -7
  134. package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
  135. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.d.ts.map +1 -1
  136. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js +4 -3
  137. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  138. package/dist/components/ExperimentalMode/ExperimentalMode.js +1 -1
  139. package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
  140. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js +1 -1
  141. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
  142. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.d.ts.map +1 -1
  143. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js +2 -1
  144. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js.map +1 -1
  145. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.d.ts.map +1 -1
  146. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js +2 -1
  147. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js.map +1 -1
  148. package/dist/components/FormTemplateEditor/FieldLibrary.d.ts.map +1 -1
  149. package/dist/components/FormTemplateEditor/FieldLibrary.js +2 -1
  150. package/dist/components/FormTemplateEditor/FieldLibrary.js.map +1 -1
  151. package/dist/components/FormTemplateEditor/FieldLibraryRow.js +4 -4
  152. package/dist/components/FormTemplateEditor/FieldLibraryRow.js.map +1 -1
  153. package/dist/components/FormTemplateEditor/FormStructurePanel.js +1 -1
  154. package/dist/components/FormTemplateEditor/FormStructurePanel.js.map +1 -1
  155. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js +1 -1
  156. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js.map +1 -1
  157. package/dist/components/FormTemplateEditor/StepCard.d.ts.map +1 -1
  158. package/dist/components/FormTemplateEditor/StepCard.js +15 -10
  159. package/dist/components/FormTemplateEditor/StepCard.js.map +1 -1
  160. package/dist/components/FormTemplateEditor/StepFieldRow.d.ts.map +1 -1
  161. package/dist/components/FormTemplateEditor/StepFieldRow.js +11 -6
  162. package/dist/components/FormTemplateEditor/StepFieldRow.js.map +1 -1
  163. package/dist/components/FormTemplateEditor/TemplateFileHandleField.d.ts.map +1 -1
  164. package/dist/components/FormTemplateEditor/TemplateFileHandleField.js +2 -1
  165. package/dist/components/FormTemplateEditor/TemplateFileHandleField.js.map +1 -1
  166. package/dist/components/FormTemplateEditor/useSaveFormTemplate.d.ts.map +1 -1
  167. package/dist/components/FormTemplateEditor/useSaveFormTemplate.js.map +1 -1
  168. package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.d.ts +9 -0
  169. package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.d.ts.map +1 -0
  170. package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.js +45 -0
  171. package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.js.map +1 -0
  172. package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.d.ts +22 -0
  173. package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.d.ts.map +1 -0
  174. package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.js +139 -0
  175. package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.js.map +1 -0
  176. package/dist/components/Forum/ForumTable.d.ts +17 -5
  177. package/dist/components/Forum/ForumTable.d.ts.map +1 -1
  178. package/dist/components/Forum/ForumTable.js +94 -77
  179. package/dist/components/Forum/ForumTable.js.map +1 -1
  180. package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js +45 -45
  181. package/dist/components/GenericCard/PortalDOI/PortalDOI.js +5 -5
  182. package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
  183. package/dist/components/GenericCard/TableRowGenericCard.js +1 -1
  184. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  185. package/dist/components/HelpPopover/HelpPopover.js +1 -1
  186. package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
  187. package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
  188. package/dist/components/IconSvg/IconSvg.js +154 -47
  189. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  190. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.d.ts.map +1 -1
  191. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js +19 -16
  192. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
  193. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.d.ts.map +1 -1
  194. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js +2 -1
  195. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
  196. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.d.ts +9 -0
  197. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.d.ts.map +1 -0
  198. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.js +21 -0
  199. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.js.map +1 -0
  200. package/dist/components/Markdown/MarkdownCollapse.d.ts.map +1 -1
  201. package/dist/components/Markdown/MarkdownCollapse.js +3 -1
  202. package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
  203. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js +1 -1
  204. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  205. package/dist/components/OAuthClientManagement/OAuthManagement.js +14 -13
  206. package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
  207. package/dist/components/PortalList/PortalCard.d.ts.map +1 -1
  208. package/dist/components/PortalList/PortalCard.js +6 -5
  209. package/dist/components/PortalList/PortalCard.js.map +1 -1
  210. package/dist/components/PortalList/PortalList.js +4 -4
  211. package/dist/components/PortalList/PortalList.js.map +1 -1
  212. package/dist/components/ProjectVisibilityChip/ProjectVisibilityChip.js +6 -6
  213. package/dist/components/QueryBuilder/FilterConditionRow.js +4 -4
  214. package/dist/components/QueryCountButton/QueryCountButton.js +5 -5
  215. package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
  216. package/dist/components/ReleaseCard/ReleaseCardLarge.js +5 -5
  217. package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
  218. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.d.ts.map +1 -1
  219. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js +142 -108
  220. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  221. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.d.ts.map +1 -1
  222. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js +15 -15
  223. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
  224. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.d.ts.map +1 -1
  225. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js +57 -55
  226. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
  227. package/dist/components/ShareThisPage/ShareThisPage.js +4 -4
  228. package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
  229. package/dist/components/SustainabilityScorecard/DialLayout.js +1 -1
  230. package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
  231. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js +1 -1
  232. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
  233. package/dist/components/SynapseChat/SynapseChat.js +1 -1
  234. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  235. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
  236. package/dist/components/SynapseChat/SynapseChatInteraction.js +2 -1
  237. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  238. package/dist/components/SynapseChat/components/ChatInputArea/ChatInputArea.js +1 -1
  239. package/dist/components/SynapseChat/components/ChatInputArea/ChatInputArea.js.map +1 -1
  240. package/dist/components/SynapseFooter/SynapseFooter.js +1 -1
  241. package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
  242. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js +1 -1
  243. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
  244. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.d.ts.map +1 -1
  245. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js +2 -1
  246. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
  247. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js +4 -4
  248. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
  249. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js +1 -1
  250. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
  251. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts.map +1 -1
  252. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +4 -1
  253. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  254. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js +1 -1
  255. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  256. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js +1 -1
  257. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
  258. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.d.ts.map +1 -1
  259. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +12 -9
  260. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
  261. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
  262. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  263. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +140 -140
  264. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  265. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +1 -1
  266. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  267. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js +1 -1
  268. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
  269. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts.map +1 -1
  270. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  271. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +9 -9
  272. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  273. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.d.ts.map +1 -1
  274. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js +6 -4
  275. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
  276. package/dist/components/TanStackTable/ColumnHeader.js +1 -1
  277. package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
  278. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js +1 -1
  279. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
  280. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.d.ts.map +1 -1
  281. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js +4 -3
  282. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
  283. package/dist/components/Webhook/WebhookDashboard.js +1 -1
  284. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  285. package/dist/components/dataaccess/AccessRequirementDashboard.js +4 -4
  286. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  287. package/dist/components/dataaccess/AccessRequirementTable.js +1 -1
  288. package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
  289. package/dist/components/dataaccess/EDucTemplateTable.d.ts.map +1 -1
  290. package/dist/components/dataaccess/EDucTemplateTable.js +13 -11
  291. package/dist/components/dataaccess/EDucTemplateTable.js.map +1 -1
  292. package/dist/components/dataaccess/FormTemplateTable.js +6 -6
  293. package/dist/components/dataaccess/FormTemplateTable.js.map +1 -1
  294. package/dist/components/dataaccess/ReviewerDashboard.js +17 -17
  295. package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
  296. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +4 -4
  297. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -1
  298. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +4 -1
  299. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -1
  300. package/dist/components/doi/CreateOrUpdateDoiModal.js +1 -1
  301. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  302. package/dist/components/download_list/DownloadDetails.d.ts.map +1 -1
  303. package/dist/components/download_list/DownloadDetails.js +12 -10
  304. package/dist/components/download_list/DownloadDetails.js.map +1 -1
  305. package/dist/components/entity/metadata/AnnotationsTable.js +1 -1
  306. package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
  307. package/dist/components/entity/page/CreatedByModifiedBy.js +1 -1
  308. package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
  309. package/dist/components/entity/page/action_menu/EntityActionMenu.d.ts.map +1 -1
  310. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  311. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +1 -1
  312. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  313. package/dist/components/error/ErrorChip.d.ts.map +1 -1
  314. package/dist/components/error/ErrorChip.js +2 -1
  315. package/dist/components/error/ErrorChip.js.map +1 -1
  316. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +14 -14
  317. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js +4 -4
  318. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
  319. package/dist/components/widgets/facet-nav/FacetNavPanel.js +1 -1
  320. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  321. package/dist/features/curator/dashboard/components/NextStepButton.d.ts.map +1 -1
  322. package/dist/features/curator/dashboard/components/NextStepButton.js +7 -6
  323. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  324. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +8 -8
  325. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  326. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +4 -4
  327. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  328. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +4 -4
  329. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  330. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js +1 -1
  331. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  332. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js +4 -4
  333. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js.map +1 -1
  334. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js +1 -1
  335. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js.map +1 -1
  336. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js +1 -1
  337. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js.map +1 -1
  338. package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js +10 -10
  339. package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js.map +1 -1
  340. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js +1 -1
  341. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
  342. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts +5 -0
  343. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts.map +1 -1
  344. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js +37 -26
  345. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js.map +1 -1
  346. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +8 -0
  347. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -1
  348. package/dist/mocks/msw/handlers/aridhiaHandlers.js +52 -41
  349. package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -1
  350. package/dist/mocks/msw/handlers/discussionHandlers.d.ts.map +1 -1
  351. package/dist/mocks/msw/handlers/discussionHandlers.js +40 -33
  352. package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
  353. package/dist/mocks/msw/handlers/entityHandlers.d.ts.map +1 -1
  354. package/dist/mocks/msw/handlers/entityHandlers.js +70 -67
  355. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  356. package/dist/mocks/msw/handlers/gridHandlers.js +2 -2
  357. package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
  358. package/dist/mocks/msw/server.d.ts.map +1 -1
  359. package/dist/mocks/msw/server.js +4 -2
  360. package/dist/mocks/msw/server.js.map +1 -1
  361. package/dist/synapse-client/SynapseClient.d.ts +10 -0
  362. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  363. package/dist/synapse-client/SynapseClient.js +486 -482
  364. package/dist/synapse-client/SynapseClient.js.map +1 -1
  365. package/dist/synapse-client/index.js +3 -3
  366. package/dist/synapse-queries/KeyFactory.d.ts +13 -1
  367. package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
  368. package/dist/synapse-queries/KeyFactory.js +11 -1
  369. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  370. package/dist/synapse-queries/dataaccess/index.js +4 -4
  371. package/dist/synapse-queries/dataaccess/useAccessRequirements.d.ts.map +1 -1
  372. package/dist/synapse-queries/dataaccess/useAccessRequirements.js +4 -1
  373. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  374. package/dist/synapse-queries/dataaccess/useEDuc.d.ts +19 -5
  375. package/dist/synapse-queries/dataaccess/useEDuc.d.ts.map +1 -1
  376. package/dist/synapse-queries/dataaccess/useEDuc.js +29 -21
  377. package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
  378. package/dist/synapse-queries/dataaccess/useFormTemplate.d.ts +12 -0
  379. package/dist/synapse-queries/dataaccess/useFormTemplate.d.ts.map +1 -1
  380. package/dist/synapse-queries/dataaccess/useFormTemplate.js +52 -30
  381. package/dist/synapse-queries/dataaccess/useFormTemplate.js.map +1 -1
  382. package/dist/synapse-queries/forum/useForum.d.ts +5 -1
  383. package/dist/synapse-queries/forum/useForum.d.ts.map +1 -1
  384. package/dist/synapse-queries/forum/useForum.js +23 -1
  385. package/dist/synapse-queries/forum/useForum.js.map +1 -1
  386. package/dist/synapse-queries/index.js +185 -184
  387. package/dist/synapse-queries/jsonschema/useCreateJsonSchema.d.ts +5 -3
  388. package/dist/synapse-queries/jsonschema/useCreateJsonSchema.d.ts.map +1 -1
  389. package/dist/synapse-queries/jsonschema/useCreateJsonSchema.js +12 -15
  390. package/dist/synapse-queries/jsonschema/useCreateJsonSchema.js.map +1 -1
  391. package/dist/synapse-queries/user/useGetUserChallenges.d.ts.map +1 -1
  392. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  393. package/dist/theme/DefaultTheme.d.ts.map +1 -1
  394. package/dist/theme/DefaultTheme.js +4 -1
  395. package/dist/theme/DefaultTheme.js.map +1 -1
  396. package/dist/tsconfig.build.tsbuildinfo +1 -1
  397. package/dist/utils/APIConstants.d.ts.map +1 -1
  398. package/dist/utils/APIConstants.js.map +1 -1
  399. package/dist/utils/AppUtils/AppUtils.js +1 -1
  400. package/dist/utils/AppUtils/AppUtils.js.map +1 -1
  401. package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
  402. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  403. package/dist/utils/functions/EntityTypeUtils.d.ts.map +1 -1
  404. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  405. package/dist/utils/functions/getEndpoint.d.ts +1 -0
  406. package/dist/utils/functions/getEndpoint.d.ts.map +1 -1
  407. package/dist/utils/functions/getEndpoint.js +3 -3
  408. package/dist/utils/functions/getEndpoint.js.map +1 -1
  409. package/dist/utils/types/RequestableAccessRequirement.d.ts +8 -0
  410. package/dist/utils/types/RequestableAccessRequirement.d.ts.map +1 -0
  411. package/dist/utils/types/RequestableAccessRequirement.js +9 -0
  412. package/dist/utils/types/RequestableAccessRequirement.js.map +1 -0
  413. package/package.json +6 -5
  414. package/dist/testutils/ReactQueryMockUtils.js +0 -676
  415. package/dist/testutils/ReactQueryMockUtils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseGrid.js","names":["CertificationRequirement","ExportCsvFromGridButton","GridLoadingState","GridMenuButton","ReorderColumnsButton","UploadCsvToGridButton","useGetSchemaForGrid","SyncGridWithSourceButton","computeReplicaSelectionModel","getNamedColumnIndices","modelRowsToGrid","SynapseErrorBoundary","useGetCurrentUserBundle","useListGridReplicas","useGetEntity","getSchemaPropertiesInfo","HelpOutline","Box","Stack","Tooltip","Typography","Grid","DataSheetGridRef","SelectionWithId","CreateGridRequest","GridSession","instanceOfRecordSet","ClickableJsonCrdt","Ref","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","useErrorHandler","SynapseSpinner","GridAgentChat","ValidationAlert","DataGrid","DataGridRow","GridModel","Operation","useGridReplicaUsers","useGridUndoRedo","useRemoteSelections","StartGridSession","StartGridSessionHandle","useDataGridWebSocket","applyModelChange","ModelChange","removeNoOpOperations","enrichRowsWithChangeInfo","mapOperationsToModelChanges","CurieAvatarHead","EMPTY_COLUMN_NAMES","SynapseGridProps","agentRegistrationId","showDebugInfo","ref","SynapseGridHandle","initializeGrid","request","loadExistingSession","sessionId","SynapseGridInner","t0","$","_c","t1","undefined","session","setSession","replicaId","setReplicaId","chatOpen","setChatOpen","lastSelection","setLastSelection","startGridSessionRef","gridRef","data","userBundle","isLoading","t2","refetch","refetchReplicas","t3","replicas","t4","handleReplicaConnectionChange","currentUserId","userId","String","replicaUserMap","t5","t6","Symbol","for","current","handleStartSession","handleLoadSession","t7","onGridReady","onReplicaConnected","onReplicaDisconnected","isConnected","websocketInstance","hasCompletedInitialSync","hasCompletedInitialLoad","isSyncing","model","modelSnapshot","connect","presignedUrl","websocketError","websocketInstanceRef","t8","t9","lastConnectParamsRef","t10","nextParams","prevParams","t11","t12","t13","t14","setActiveCell","jsonSchema","t15","sourceEntityId","t16","enabled","entityData","entityIsView","concreteType","t17","isRecordSet","t18","upsertKey","t19","t20","schemaPropertiesInfo","connectionStatus","remoteSelections","columnNames","columnOrder","t21","t22","t23","rowValues","t24","enrichedRowValues","t25","sendPatch","commit","t26","t27","t28","model_0","modelChanges","forEach","change","applyAndCommitChanges","t29","change_0","console","error","type","applyModelChangeFromUndoRedo","undoUI","redoUI","addOperationsToUndoStack","clearRedoStack","t30","newValue","operations","length","modelChanges_0","handleChange","t31","opts","selection","replicaSelectionModel","toString","handleSelectionChange","t32","rowIndex","colIndex","col","row","handleNavigateToCell","t33","newColumnOrder","handleReorderColumns","isCertified","t34","xs","xl","t35","t36","t37","gridJsonSchema$Id","substring","color","connectedReplicas","filter","_temp","map","r_0","i","r","margin","fontSize","JSON","stringify","cursor","textDecoration","t38","t39","justifyContent","display","alignItems","gap","mr","padding","border","maxHeight","overflowY","t40","SynapseGrid","props"],"sources":["../../../src/components/DataGrid/SynapseGrid.tsx"],"sourcesContent":["import CertificationRequirement from '@/components/AccessRequirementList/RequirementItem/CertificationRequirement'\nimport ExportCsvFromGridButton from '@/components/DataGrid/components/ExportCsvFromGridButton'\nimport GridLoadingState from '@/components/DataGrid/components/GridLoadingState'\nimport GridMenuButton from '@/components/DataGrid/components/GridMenuButton/GridMenuButton'\nimport ReorderColumnsButton from '@/components/DataGrid/components/ReorderColumnsButton'\nimport UploadCsvToGridButton from '@/components/DataGrid/components/UploadCsvToGridButton'\nimport useGetSchemaForGrid from '@/components/DataGrid/hooks/useGetSchemaForGrid'\nimport SyncGridWithSourceButton from '@/components/DataGrid/SyncGridWithSourceButton'\nimport computeReplicaSelectionModel from '@/components/DataGrid/utils/computeReplicaSelectionModel'\nimport { getNamedColumnIndices } from '@/components/DataGrid/utils/getNamedColumnIndices'\nimport modelRowsToGrid from '@/components/DataGrid/utils/modelRowsToGrid'\nimport { SynapseErrorBoundary } from '@/components/error/ErrorBanner'\nimport { useGetCurrentUserBundle } from '@/synapse-queries'\nimport { useListGridReplicas } from '@/synapse-queries/grid/useGridSession'\nimport { useGetEntity } from '@/synapse-queries/index'\nimport { getSchemaPropertiesInfo } from '@/utils/jsonschema/getSchemaPropertyInfo'\nimport { HelpOutline } from '@mui/icons-material'\nimport { Box, Stack, Tooltip, Typography } from '@mui/material'\nimport Grid from '@mui/material/Grid'\nimport {\n DataSheetGridRef,\n SelectionWithId,\n} from '@sage-bionetworks/react-datasheet-grid'\nimport {\n CreateGridRequest,\n GridSession,\n instanceOfRecordSet,\n} from '@sage-bionetworks/synapse-client'\nimport { ClickableJsonCrdt } from 'clickable-json'\nimport {\n Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport { useErrorHandler } from 'react-error-boundary'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport GridAgentChat from '../SynapseChat/GridAgentChat'\nimport { ValidationAlert } from './components/ValidationAlert'\nimport DataGrid from './DataGrid'\nimport { DataGridRow, GridModel, Operation } from './DataGridTypes'\nimport { useGridReplicaUsers } from './hooks/useGridReplicaUsers'\nimport { useGridUndoRedo } from './hooks/useGridUndoRedo'\nimport { useRemoteSelections } from './hooks/useRemoteSelections'\nimport { StartGridSession, StartGridSessionHandle } from './StartGridSession'\nimport { useDataGridWebSocket } from './useDataGridWebsocket'\nimport { applyModelChange, ModelChange } from './utils/applyModelChange'\nimport { removeNoOpOperations } from './utils/DataGridUtils'\nimport { enrichRowsWithChangeInfo } from './utils/enrichRowsWithChangeInfo'\nimport { mapOperationsToModelChanges } from './utils/mapOperationsToModelChanges'\nimport CurieAvatarHead from '@/assets/mui_components/CurieAvatarHead'\n\n// Stable reference for renders with no model snapshot, so column memos don't recompute\nconst EMPTY_COLUMN_NAMES: string[] = []\n\nexport type SynapseGridProps = {\n agentRegistrationId?: string\n showDebugInfo?: boolean\n ref?: Ref<SynapseGridHandle>\n}\n\nexport type SynapseGridHandle = {\n initializeGrid: (request: CreateGridRequest) => void\n loadExistingSession: (sessionId: string) => void\n}\n\nfunction SynapseGridInner({\n agentRegistrationId,\n showDebugInfo = false,\n ref,\n}: SynapseGridProps) {\n const [session, setSession] = useState<GridSession | null>(null)\n const [replicaId, setReplicaId] = useState<number | null>(null)\n const [chatOpen, setChatOpen] = useState(false)\n const [lastSelection, setLastSelection] = useState<SelectionWithId | null>(\n null,\n )\n\n const startGridSessionRef = useRef<StartGridSessionHandle | null>(null)\n const gridRef = useRef<DataSheetGridRef | null>(null)\n\n const { data: userBundle, isLoading } = useGetCurrentUserBundle()\n\n const { data: replicas = [], refetch: refetchReplicas } = useListGridReplicas(\n session?.sessionId,\n )\n\n const handleReplicaConnectionChange = useCallback(() => {\n void refetchReplicas()\n }, [refetchReplicas])\n\n // ── Attribution infrastructure ─────────────────────────────────────────\n const currentUserId =\n userBundle?.userId != null ? String(userBundle.userId) : undefined\n\n const replicaUserMap = useGridReplicaUsers(replicas, replicaId, currentUserId)\n\n useImperativeHandle(\n ref,\n () => ({\n initializeGrid: (request: CreateGridRequest) => {\n if (startGridSessionRef.current) {\n startGridSessionRef.current.handleStartSession(request)\n }\n },\n loadExistingSession: (sessionId: string) => {\n if (startGridSessionRef.current) {\n startGridSessionRef.current.handleLoadSession(sessionId)\n }\n },\n }),\n [],\n )\n\n // WebSocket state\n const {\n isConnected,\n websocketInstance,\n hasCompletedInitialSync,\n hasCompletedInitialLoad,\n isSyncing,\n model,\n modelSnapshot,\n connect,\n presignedUrl,\n websocketError,\n } = useDataGridWebSocket({\n onGridReady: handleReplicaConnectionChange,\n onReplicaConnected: handleReplicaConnectionChange,\n onReplicaDisconnected: handleReplicaConnectionChange,\n })\n\n useErrorHandler(websocketError)\n\n const websocketInstanceRef = useRef<typeof websocketInstance | null>(null)\n\n useEffect(() => {\n websocketInstanceRef.current = websocketInstance\n }, [websocketInstance])\n\n // Track last connection parameters to avoid redundant connections\n const lastConnectParamsRef = useRef<{\n replicaId: number\n sessionId: string\n } | null>(null)\n\n useEffect(() => {\n if (replicaId === null || replicaId === undefined || !session?.sessionId) {\n lastConnectParamsRef.current = null\n return\n }\n\n const nextParams = {\n replicaId,\n sessionId: session.sessionId,\n }\n\n const prevParams = lastConnectParamsRef.current\n\n if (\n prevParams &&\n prevParams.replicaId === nextParams.replicaId &&\n prevParams.sessionId === nextParams.sessionId\n ) {\n return\n }\n\n lastConnectParamsRef.current = nextParams\n connect(replicaId, session.sessionId)\n }, [replicaId, session?.sessionId, connect])\n\n // Reset grid state when model is reset (new session/replica)\n useEffect(() => {\n if (model === null) {\n // Clear any grid-specific state when starting a new session\n setLastSelection(null)\n // Clear active cell if grid exists\n if (gridRef.current) {\n gridRef.current.setActiveCell(null)\n }\n }\n }, [model])\n\n const jsonSchema = useGetSchemaForGrid(session)\n\n // Grid behaves differently for views vs recordSets\n // Note for future: can get modifiedOn to refresh grid when view changes\n const { data: entityData } = useGetEntity(\n session?.sourceEntityId,\n undefined,\n {\n enabled: !!session?.sourceEntityId,\n },\n )\n\n const entityIsView =\n entityData?.concreteType ===\n 'org.sagebionetworks.repo.model.table.EntityView'\n\n const isRecordSet = !!entityData && instanceOfRecordSet(entityData)\n\n // If grid source entity is a recordSet, get its upsert key(s)\n // from the entity bundle\n const upsertKey = !entityIsView\n ? (entityData as { upsertKey?: string[] } | undefined)?.upsertKey\n : []\n\n // Process schema properties once\n const schemaPropertiesInfo = useMemo(() => {\n return getSchemaPropertiesInfo(jsonSchema ?? null)\n }, [jsonSchema])\n\n const connectionStatus = isConnected ? 'Connected' : 'Disconnected'\n\n const remoteSelections = useRemoteSelections(\n modelSnapshot,\n model,\n replicas,\n replicaId,\n )\n\n const columnNames = modelSnapshot?.columnNames ?? EMPTY_COLUMN_NAMES\n\n // Reconcile the two column fields once here rather than in each consumer: the hub can patch\n // `columnOrder` and `columnNames` separately, so a render can land on an order that references a\n // column whose name is not in the snapshot yet.\n const columnOrder = useMemo(\n () => getNamedColumnIndices(columnNames, modelSnapshot?.columnOrder ?? []),\n [columnNames, modelSnapshot?.columnOrder],\n )\n\n // Transform the model view rows and columns to DataSheetGrid format\n const rowValues = useMemo(\n () => (modelSnapshot ? modelRowsToGrid(model, modelSnapshot) : []),\n [model, modelSnapshot],\n )\n\n // Enrich rows with per-cell change attribution for CSS indicators and tooltips\n const enrichedRowValues = useMemo(\n () =>\n enrichRowsWithChangeInfo(rowValues, model, modelSnapshot, replicaUserMap),\n [rowValues, model, modelSnapshot, replicaUserMap],\n )\n\n const commit = useCallback(() => {\n if (!isConnected || !websocketInstanceRef.current) {\n return\n }\n\n websocketInstanceRef.current.sendPatch()\n }, [isConnected, websocketInstanceRef])\n\n useEffect(() => {\n if (isConnected) {\n commit()\n }\n }, [isConnected, commit])\n\n const applyAndCommitChanges = useCallback(\n (model: GridModel, modelChanges: ModelChange[]) => {\n // Apply each change to the model\n modelChanges.forEach(change => {\n applyModelChange(model, change, schemaPropertiesInfo)\n })\n\n commit()\n },\n [commit, schemaPropertiesInfo],\n )\n\n const applyModelChangeFromUndoRedo = useCallback(\n (change: ModelChange) => {\n if (!model) {\n console.error('Model is not initialized')\n return\n }\n\n if (change.type === 'DELETE' && gridRef.current) {\n // The user may have set a cell as active that we are removing with an 'undo'. In that case, clear the active state\n gridRef.current.setActiveCell(null)\n }\n\n applyAndCommitChanges(model, [change])\n },\n [model, applyAndCommitChanges],\n )\n\n const { undoUI, redoUI, addOperationsToUndoStack, clearRedoStack } =\n useGridUndoRedo(applyModelChangeFromUndoRedo)\n\n const handleChange = useCallback(\n (newValue: DataGridRow[], operations: Operation[]) => {\n if (!model) {\n console.error('Model is not initialized')\n return\n }\n\n // Check that something changed before updating the model\n operations = removeNoOpOperations(newValue, rowValues, operations)\n\n if (operations.length > 0) {\n // Clear redo stack since new changes invalidate redo history\n clearRedoStack()\n\n // Track row creation, updates, and deletions to keep UI state and undo history in sync\n\n // Add all operations to the undo stack\n addOperationsToUndoStack(operations, rowValues, newValue)\n\n // Transform operations to model changes\n const modelChanges = mapOperationsToModelChanges(operations, newValue)\n\n applyAndCommitChanges(model, modelChanges)\n }\n },\n [\n model,\n rowValues,\n clearRedoStack,\n addOperationsToUndoStack,\n applyAndCommitChanges,\n ],\n )\n\n const handleSelectionChange = useCallback(\n (opts: { selection: SelectionWithId | null }) => {\n const { selection } = opts\n if (selection != null) {\n setLastSelection(selection)\n\n if (model != null && replicaId != null) {\n const replicaSelectionModel = computeReplicaSelectionModel(\n selection,\n model,\n )\n // insert it into the CRDT Model\n applyAndCommitChanges(model, [\n {\n type: 'SET_SELECTION',\n replicaId: replicaId.toString(),\n selection: replicaSelectionModel,\n },\n ])\n }\n }\n },\n [applyAndCommitChanges, model, replicaId],\n )\n\n const handleNavigateToCell = useCallback(\n (rowIndex: number, colIndex: number) => {\n gridRef.current?.setActiveCell({ col: colIndex, row: rowIndex })\n },\n [],\n )\n\n const handleReorderColumns = useCallback(\n (newColumnOrder: number[]) => {\n if (!model) return\n applyAndCommitChanges(model, [\n { type: 'REORDER_COLUMNS', newColumnOrder },\n ])\n },\n [model, applyAndCommitChanges],\n )\n\n if (!isLoading && !userBundle?.isCertified) {\n return <CertificationRequirement />\n }\n\n return (\n <div>\n <Grid container spacing={2}>\n <Grid size={{ xs: 12, xl: 8 }}>\n <StartGridSession\n ref={startGridSessionRef}\n onSessionChange={setSession}\n onReplicaChange={setReplicaId}\n show={showDebugInfo}\n />\n </Grid>\n {/* Debug Information */}\n <Grid size={{ xs: 12, xl: 4 }}>\n {showDebugInfo && (\n <div>\n <p>Session ID: {session?.sessionId || 'No session created'}</p>\n <p>Replica ID: {replicaId || 'No replica created'}</p>\n <p>\n Source Entity ID:{' '}\n {session?.sourceEntityId || 'No source entity'}\n </p>\n <p>\n JSON Schema $id:{' '}\n {session?.gridJsonSchema$Id || 'No schema attached to session'}\n </p>\n <p>\n Presigned URL:{' '}\n {presignedUrl\n ? presignedUrl.substring(0, 30) +\n (presignedUrl.length > 30\n ? ' ... ' +\n presignedUrl.substring(presignedUrl.length - 10)\n : '')\n : 'No URL generated'}\n </p>\n <p>\n WebSocket Status:{' '}\n <span style={{ color: isConnected ? 'green' : 'red' }}>\n {connectionStatus}\n </span>\n </p>\n <p>\n {(() => {\n const connectedReplicas = replicas.filter(r => r.isConnected)\n return (\n <>\n Connected Replicas ({connectedReplicas.length} /{' '}\n {replicas.length} total):{' '}\n {connectedReplicas.length === 0\n ? 'none'\n : connectedReplicas.map((r, i) => (\n <Tooltip\n key={r.replicaId}\n title={\n <pre style={{ margin: 0, fontSize: '11px' }}>\n {JSON.stringify(r, null, 2)}\n </pre>\n }\n >\n <span\n style={{\n cursor: 'pointer',\n textDecoration: 'underline dotted',\n }}\n >\n {r.replicaId}\n {i < connectedReplicas.length - 1 ? ', ' : ''}\n </span>\n </Tooltip>\n ))}\n </>\n )\n })()}\n </p>\n </div>\n )}\n </Grid>\n\n {session && (\n <>\n {/* Grid Loading State */}\n {!hasCompletedInitialLoad && (\n <Grid size={12}>\n <GridLoadingState\n hasReplicaId={replicaId != null}\n hasPresignedUrl={!!presignedUrl}\n isConnected={isConnected}\n />\n </Grid>\n )}\n {/* Grid */}\n {hasCompletedInitialLoad && (\n <>\n <Grid size={12}>\n <ValidationAlert\n rowValues={rowValues}\n columnNames={columnNames}\n columnOrder={columnOrder}\n onNavigateToCell={handleNavigateToCell}\n isLoading={!hasCompletedInitialSync}\n />\n </Grid>\n <Grid size={12}>\n <Stack\n direction={'row'}\n spacing={1}\n sx={{ justifyContent: 'flex-end' }}\n >\n {/* Keep this sync indicator first in the stack, otherwise it will cause other buttons to shift */}\n {isSyncing && (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n }}\n >\n <SynapseSpinner size={16} margin=\"0\" />\n <Typography variant=\"caption\" color=\"text.secondary\">\n Syncing…\n </Typography>\n </Box>\n )}\n <GridMenuButton\n variant=\"outlined\"\n startIcon={<HelpOutline />}\n href=\"https://docs.synapse.org/synapse-docs/managing-metadata-with-curator\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n sx={{ mr: 'auto' }}\n >\n Help and Instructions\n </GridMenuButton>\n {undoUI}\n {redoUI}\n <ReorderColumnsButton\n columnNames={columnNames}\n columnOrder={columnOrder}\n jsonSchema={jsonSchema}\n upsertKey={upsertKey}\n canRemoveColumns={isRecordSet}\n onReorder={handleReorderColumns}\n />\n <GridMenuButton\n variant={'outlined'}\n onClick={() => setChatOpen(true)}\n startIcon={<CurieAvatarHead />}\n >\n Open Curie\n </GridMenuButton>\n <GridAgentChat\n agentRegistrationId={agentRegistrationId}\n open={chatOpen}\n onClose={() => setChatOpen(false)}\n gridSessionId={session.sessionId!}\n usersReplicaId={replicaId!}\n chatbotName=\"Curie\"\n />\n {session.sourceEntityId && (\n <UploadCsvToGridButton\n sourceEntityId={session.sourceEntityId}\n gridSessionId={session.sessionId!}\n />\n )}\n {session.sessionId && (\n <ExportCsvFromGridButton\n gridSessionId={session.sessionId}\n filename={\n 'grid-' + (session.sourceEntityId || 'export')\n }\n />\n )}\n {session.sourceEntityId && (\n <SyncGridWithSourceButton gridSession={session} />\n )}\n </Stack>\n </Grid>\n <Grid size={12}>\n <DataGrid\n gridRef={gridRef}\n rowValues={enrichedRowValues}\n columnNames={columnNames}\n columnOrder={columnOrder}\n schemaPropertiesInfo={schemaPropertiesInfo}\n entityIsView={entityIsView}\n jsonSchema={jsonSchema}\n lastSelection={lastSelection}\n handleChange={handleChange}\n handleSelectionChange={handleSelectionChange}\n remoteSelections={remoteSelections}\n upsertKey={upsertKey}\n />\n </Grid>\n </>\n )}\n {/* Debug Model Snapshot */}\n {showDebugInfo && (\n <Grid\n size={12}\n style={{\n margin: '10px 0',\n padding: '10px',\n border: '1px solid #ccc',\n maxHeight: '400px',\n overflowY: 'auto',\n }}\n >\n <h3>Model</h3>\n {model ? (\n <ClickableJsonCrdt model={model} />\n ) : (\n 'No model available'\n )}\n </Grid>\n )}\n </>\n )}\n </Grid>\n </div>\n )\n}\n\nfunction SynapseGrid(props: SynapseGridProps) {\n return (\n <SynapseErrorBoundary>\n <SynapseGridInner {...props} />\n </SynapseErrorBoundary>\n )\n}\n\nexport default SynapseGrid\n"],"mappings":"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"}
1
+ {"version":3,"file":"SynapseGrid.js","names":["CertificationRequirement","ExportCsvFromGridButton","GridLoadingState","GridMenuButton","ReorderColumnsButton","UploadCsvToGridButton","useGetSchemaForGrid","SyncGridWithSourceButton","computeReplicaSelectionModel","getNamedColumnIndices","modelRowsToGrid","SynapseErrorBoundary","useGetCurrentUserBundle","useListGridReplicas","useGetEntity","getSchemaPropertiesInfo","ExpandMoreIcon","HelpOutline","Accordion","AccordionDetails","AccordionSummary","Box","Stack","Tooltip","Typography","Grid","DataSheetGridRef","SelectionWithId","CreateGridRequest","GridSession","instanceOfRecordSet","ClickableJsonCrdt","Ref","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","useErrorHandler","SynapseSpinner","GridAgentChat","ValidationAlert","DataGrid","DataGridRow","GridModel","Operation","useGridReplicaUsers","useGridUndoRedo","useRemoteSelections","StartGridSession","StartGridSessionHandle","useDataGridWebSocket","applyModelChange","ModelChange","removeNoOpOperations","enrichRowsWithChangeInfo","mapOperationsToModelChanges","CurieAvatarHead","EMPTY_COLUMN_NAMES","SynapseGridProps","agentRegistrationId","showDebugInfo","ref","SynapseGridHandle","initializeGrid","request","loadExistingSession","sessionId","SynapseGridInner","t0","$","_c","t1","undefined","session","setSession","replicaId","setReplicaId","chatOpen","setChatOpen","lastSelection","setLastSelection","startGridSessionRef","gridRef","data","userBundle","isLoading","t2","refetch","refetchReplicas","t3","replicas","t4","handleReplicaConnectionChange","currentUserId","userId","String","replicaUserMap","t5","t6","Symbol","for","current","handleStartSession","handleLoadSession","t7","onGridReady","onReplicaConnected","onReplicaDisconnected","isConnected","websocketInstance","hasCompletedInitialSync","hasCompletedInitialLoad","isSyncing","model","modelSnapshot","connect","presignedUrl","websocketError","websocketInstanceRef","t8","t9","lastConnectParamsRef","t10","nextParams","prevParams","t11","t12","t13","t14","setActiveCell","jsonSchema","t15","sourceEntityId","t16","enabled","entityData","entityIsView","concreteType","t17","isRecordSet","t18","upsertKey","t19","t20","schemaPropertiesInfo","connectionStatus","remoteSelections","columnNames","columnOrder","t21","t22","t23","rowValues","t24","enrichedRowValues","t25","sendPatch","commit","t26","t27","t28","model_0","modelChanges","forEach","change","applyAndCommitChanges","t29","change_0","console","error","type","applyModelChangeFromUndoRedo","undoUI","redoUI","addOperationsToUndoStack","clearRedoStack","t30","newValue","operations","length","modelChanges_0","handleChange","t31","opts","selection","replicaSelectionModel","toString","handleSelectionChange","t32","rowIndex","colIndex","col","row","handleNavigateToCell","t33","newColumnOrder","handleReorderColumns","isCertified","t34","xs","xl","t35","t36","t37","gridJsonSchema$Id","substring","color","connectedReplicas","filter","_temp","map","r_0","i","r","margin","fontSize","JSON","stringify","cursor","textDecoration","t38","t39","justifyContent","display","alignItems","gap","mr","maxHeight","overflowY","transition","unmountOnExit","t40","SynapseGrid","props"],"sources":["../../../src/components/DataGrid/SynapseGrid.tsx"],"sourcesContent":["import CertificationRequirement from '@/components/AccessRequirementList/RequirementItem/CertificationRequirement'\nimport ExportCsvFromGridButton from '@/components/DataGrid/components/ExportCsvFromGridButton'\nimport GridLoadingState from '@/components/DataGrid/components/GridLoadingState'\nimport GridMenuButton from '@/components/DataGrid/components/GridMenuButton/GridMenuButton'\nimport ReorderColumnsButton from '@/components/DataGrid/components/ReorderColumnsButton'\nimport UploadCsvToGridButton from '@/components/DataGrid/components/UploadCsvToGridButton'\nimport useGetSchemaForGrid from '@/components/DataGrid/hooks/useGetSchemaForGrid'\nimport SyncGridWithSourceButton from '@/components/DataGrid/SyncGridWithSourceButton'\nimport computeReplicaSelectionModel from '@/components/DataGrid/utils/computeReplicaSelectionModel'\nimport { getNamedColumnIndices } from '@/components/DataGrid/utils/getNamedColumnIndices'\nimport modelRowsToGrid from '@/components/DataGrid/utils/modelRowsToGrid'\nimport { SynapseErrorBoundary } from '@/components/error/ErrorBanner'\nimport { useGetCurrentUserBundle } from '@/synapse-queries'\nimport { useListGridReplicas } from '@/synapse-queries/grid/useGridSession'\nimport { useGetEntity } from '@/synapse-queries/index'\nimport { getSchemaPropertiesInfo } from '@/utils/jsonschema/getSchemaPropertyInfo'\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore'\nimport HelpOutline from '@mui/icons-material/HelpOutline'\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Box,\n Stack,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport Grid from '@mui/material/Grid'\nimport {\n DataSheetGridRef,\n SelectionWithId,\n} from '@sage-bionetworks/react-datasheet-grid'\nimport {\n CreateGridRequest,\n GridSession,\n instanceOfRecordSet,\n} from '@sage-bionetworks/synapse-client'\nimport { ClickableJsonCrdt } from 'clickable-json'\nimport {\n Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport { useErrorHandler } from 'react-error-boundary'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport GridAgentChat from '../SynapseChat/GridAgentChat'\nimport { ValidationAlert } from './components/ValidationAlert'\nimport DataGrid from './DataGrid'\nimport { DataGridRow, GridModel, Operation } from './DataGridTypes'\nimport { useGridReplicaUsers } from './hooks/useGridReplicaUsers'\nimport { useGridUndoRedo } from './hooks/useGridUndoRedo'\nimport { useRemoteSelections } from './hooks/useRemoteSelections'\nimport { StartGridSession, StartGridSessionHandle } from './StartGridSession'\nimport { useDataGridWebSocket } from './useDataGridWebsocket'\nimport { applyModelChange, ModelChange } from './utils/applyModelChange'\nimport { removeNoOpOperations } from './utils/DataGridUtils'\nimport { enrichRowsWithChangeInfo } from './utils/enrichRowsWithChangeInfo'\nimport { mapOperationsToModelChanges } from './utils/mapOperationsToModelChanges'\nimport CurieAvatarHead from '@/assets/mui_components/CurieAvatarHead'\n\n// Stable reference for renders with no model snapshot, so column memos don't recompute\nconst EMPTY_COLUMN_NAMES: string[] = []\n\nexport type SynapseGridProps = {\n agentRegistrationId?: string\n showDebugInfo?: boolean\n ref?: Ref<SynapseGridHandle>\n}\n\nexport type SynapseGridHandle = {\n initializeGrid: (request: CreateGridRequest) => void\n loadExistingSession: (sessionId: string) => void\n}\n\nfunction SynapseGridInner({\n agentRegistrationId,\n showDebugInfo = false,\n ref,\n}: SynapseGridProps) {\n const [session, setSession] = useState<GridSession | null>(null)\n const [replicaId, setReplicaId] = useState<number | null>(null)\n const [chatOpen, setChatOpen] = useState(false)\n const [lastSelection, setLastSelection] = useState<SelectionWithId | null>(\n null,\n )\n\n const startGridSessionRef = useRef<StartGridSessionHandle | null>(null)\n const gridRef = useRef<DataSheetGridRef | null>(null)\n\n const { data: userBundle, isLoading } = useGetCurrentUserBundle()\n\n const { data: replicas = [], refetch: refetchReplicas } = useListGridReplicas(\n session?.sessionId,\n )\n\n const handleReplicaConnectionChange = useCallback(() => {\n void refetchReplicas()\n }, [refetchReplicas])\n\n // ── Attribution infrastructure ─────────────────────────────────────────\n const currentUserId =\n userBundle?.userId != null ? String(userBundle.userId) : undefined\n\n const replicaUserMap = useGridReplicaUsers(replicas, replicaId, currentUserId)\n\n useImperativeHandle(\n ref,\n () => ({\n initializeGrid: (request: CreateGridRequest) => {\n if (startGridSessionRef.current) {\n startGridSessionRef.current.handleStartSession(request)\n }\n },\n loadExistingSession: (sessionId: string) => {\n if (startGridSessionRef.current) {\n startGridSessionRef.current.handleLoadSession(sessionId)\n }\n },\n }),\n [],\n )\n\n // WebSocket state\n const {\n isConnected,\n websocketInstance,\n hasCompletedInitialSync,\n hasCompletedInitialLoad,\n isSyncing,\n model,\n modelSnapshot,\n connect,\n presignedUrl,\n websocketError,\n } = useDataGridWebSocket({\n onGridReady: handleReplicaConnectionChange,\n onReplicaConnected: handleReplicaConnectionChange,\n onReplicaDisconnected: handleReplicaConnectionChange,\n })\n\n useErrorHandler(websocketError)\n\n const websocketInstanceRef = useRef<typeof websocketInstance | null>(null)\n\n useEffect(() => {\n websocketInstanceRef.current = websocketInstance\n }, [websocketInstance])\n\n // Track last connection parameters to avoid redundant connections\n const lastConnectParamsRef = useRef<{\n replicaId: number\n sessionId: string\n } | null>(null)\n\n useEffect(() => {\n if (replicaId === null || replicaId === undefined || !session?.sessionId) {\n lastConnectParamsRef.current = null\n return\n }\n\n const nextParams = {\n replicaId,\n sessionId: session.sessionId,\n }\n\n const prevParams = lastConnectParamsRef.current\n\n if (\n prevParams &&\n prevParams.replicaId === nextParams.replicaId &&\n prevParams.sessionId === nextParams.sessionId\n ) {\n return\n }\n\n lastConnectParamsRef.current = nextParams\n connect(replicaId, session.sessionId)\n }, [replicaId, session?.sessionId, connect])\n\n // Reset grid state when model is reset (new session/replica)\n useEffect(() => {\n if (model === null) {\n // Clear any grid-specific state when starting a new session\n setLastSelection(null)\n // Clear active cell if grid exists\n if (gridRef.current) {\n gridRef.current.setActiveCell(null)\n }\n }\n }, [model])\n\n const jsonSchema = useGetSchemaForGrid(session)\n\n // Grid behaves differently for views vs recordSets\n // Note for future: can get modifiedOn to refresh grid when view changes\n const { data: entityData } = useGetEntity(\n session?.sourceEntityId,\n undefined,\n {\n enabled: !!session?.sourceEntityId,\n },\n )\n\n const entityIsView =\n entityData?.concreteType ===\n 'org.sagebionetworks.repo.model.table.EntityView'\n\n const isRecordSet = !!entityData && instanceOfRecordSet(entityData)\n\n // If grid source entity is a recordSet, get its upsert key(s)\n // from the entity bundle\n const upsertKey = !entityIsView\n ? (entityData as { upsertKey?: string[] } | undefined)?.upsertKey\n : []\n\n // Process schema properties once\n const schemaPropertiesInfo = useMemo(() => {\n return getSchemaPropertiesInfo(jsonSchema ?? null)\n }, [jsonSchema])\n\n const connectionStatus = isConnected ? 'Connected' : 'Disconnected'\n\n const remoteSelections = useRemoteSelections(\n modelSnapshot,\n model,\n replicas,\n replicaId,\n )\n\n const columnNames = modelSnapshot?.columnNames ?? EMPTY_COLUMN_NAMES\n\n // Reconcile the two column fields once here rather than in each consumer: the hub can patch\n // `columnOrder` and `columnNames` separately, so a render can land on an order that references a\n // column whose name is not in the snapshot yet.\n const columnOrder = useMemo(\n () => getNamedColumnIndices(columnNames, modelSnapshot?.columnOrder ?? []),\n [columnNames, modelSnapshot?.columnOrder],\n )\n\n // Transform the model view rows and columns to DataSheetGrid format\n const rowValues = useMemo(\n () => (modelSnapshot ? modelRowsToGrid(model, modelSnapshot) : []),\n [model, modelSnapshot],\n )\n\n // Enrich rows with per-cell change attribution for CSS indicators and tooltips\n const enrichedRowValues = useMemo(\n () =>\n enrichRowsWithChangeInfo(rowValues, model, modelSnapshot, replicaUserMap),\n [rowValues, model, modelSnapshot, replicaUserMap],\n )\n\n const commit = useCallback(() => {\n if (!isConnected || !websocketInstanceRef.current) {\n return\n }\n\n websocketInstanceRef.current.sendPatch()\n }, [isConnected, websocketInstanceRef])\n\n useEffect(() => {\n if (isConnected) {\n commit()\n }\n }, [isConnected, commit])\n\n const applyAndCommitChanges = useCallback(\n (model: GridModel, modelChanges: ModelChange[]) => {\n // Apply each change to the model\n modelChanges.forEach(change => {\n applyModelChange(model, change, schemaPropertiesInfo)\n })\n\n commit()\n },\n [commit, schemaPropertiesInfo],\n )\n\n const applyModelChangeFromUndoRedo = useCallback(\n (change: ModelChange) => {\n if (!model) {\n console.error('Model is not initialized')\n return\n }\n\n if (change.type === 'DELETE' && gridRef.current) {\n // The user may have set a cell as active that we are removing with an 'undo'. In that case, clear the active state\n gridRef.current.setActiveCell(null)\n }\n\n applyAndCommitChanges(model, [change])\n },\n [model, applyAndCommitChanges],\n )\n\n const { undoUI, redoUI, addOperationsToUndoStack, clearRedoStack } =\n useGridUndoRedo(applyModelChangeFromUndoRedo)\n\n const handleChange = useCallback(\n (newValue: DataGridRow[], operations: Operation[]) => {\n if (!model) {\n console.error('Model is not initialized')\n return\n }\n\n // Check that something changed before updating the model\n operations = removeNoOpOperations(newValue, rowValues, operations)\n\n if (operations.length > 0) {\n // Clear redo stack since new changes invalidate redo history\n clearRedoStack()\n\n // Track row creation, updates, and deletions to keep UI state and undo history in sync\n\n // Add all operations to the undo stack\n addOperationsToUndoStack(operations, rowValues, newValue)\n\n // Transform operations to model changes\n const modelChanges = mapOperationsToModelChanges(operations, newValue)\n\n applyAndCommitChanges(model, modelChanges)\n }\n },\n [\n model,\n rowValues,\n clearRedoStack,\n addOperationsToUndoStack,\n applyAndCommitChanges,\n ],\n )\n\n const handleSelectionChange = useCallback(\n (opts: { selection: SelectionWithId | null }) => {\n const { selection } = opts\n if (selection != null) {\n setLastSelection(selection)\n\n if (model != null && replicaId != null) {\n const replicaSelectionModel = computeReplicaSelectionModel(\n selection,\n model,\n )\n // insert it into the CRDT Model\n applyAndCommitChanges(model, [\n {\n type: 'SET_SELECTION',\n replicaId: replicaId.toString(),\n selection: replicaSelectionModel,\n },\n ])\n }\n }\n },\n [applyAndCommitChanges, model, replicaId],\n )\n\n const handleNavigateToCell = useCallback(\n (rowIndex: number, colIndex: number) => {\n gridRef.current?.setActiveCell({ col: colIndex, row: rowIndex })\n },\n [],\n )\n\n const handleReorderColumns = useCallback(\n (newColumnOrder: number[]) => {\n if (!model) return\n applyAndCommitChanges(model, [\n { type: 'REORDER_COLUMNS', newColumnOrder },\n ])\n },\n [model, applyAndCommitChanges],\n )\n\n if (!isLoading && !userBundle?.isCertified) {\n return <CertificationRequirement />\n }\n\n return (\n <div>\n <Grid container spacing={2}>\n <Grid size={{ xs: 12, xl: 8 }}>\n <StartGridSession\n ref={startGridSessionRef}\n onSessionChange={setSession}\n onReplicaChange={setReplicaId}\n show={showDebugInfo}\n />\n </Grid>\n {/* Debug Information */}\n <Grid size={{ xs: 12, xl: 4 }}>\n {showDebugInfo && (\n <div>\n <p>Session ID: {session?.sessionId || 'No session created'}</p>\n <p>Replica ID: {replicaId || 'No replica created'}</p>\n <p>\n Source Entity ID:{' '}\n {session?.sourceEntityId || 'No source entity'}\n </p>\n <p>\n JSON Schema $id:{' '}\n {session?.gridJsonSchema$Id || 'No schema attached to session'}\n </p>\n <p>\n Presigned URL:{' '}\n {presignedUrl\n ? presignedUrl.substring(0, 30) +\n (presignedUrl.length > 30\n ? ' ... ' +\n presignedUrl.substring(presignedUrl.length - 10)\n : '')\n : 'No URL generated'}\n </p>\n <p>\n WebSocket Status:{' '}\n <span style={{ color: isConnected ? 'green' : 'red' }}>\n {connectionStatus}\n </span>\n </p>\n <p>\n {(() => {\n const connectedReplicas = replicas.filter(r => r.isConnected)\n return (\n <>\n Connected Replicas ({connectedReplicas.length} /{' '}\n {replicas.length} total):{' '}\n {connectedReplicas.length === 0\n ? 'none'\n : connectedReplicas.map((r, i) => (\n <Tooltip\n key={r.replicaId}\n title={\n <pre style={{ margin: 0, fontSize: '11px' }}>\n {JSON.stringify(r, null, 2)}\n </pre>\n }\n >\n <span\n style={{\n cursor: 'pointer',\n textDecoration: 'underline dotted',\n }}\n >\n {r.replicaId}\n {i < connectedReplicas.length - 1 ? ', ' : ''}\n </span>\n </Tooltip>\n ))}\n </>\n )\n })()}\n </p>\n </div>\n )}\n </Grid>\n\n {session && (\n <>\n {/* Grid Loading State */}\n {!hasCompletedInitialLoad && (\n <Grid size={12}>\n <GridLoadingState\n hasReplicaId={replicaId != null}\n hasPresignedUrl={!!presignedUrl}\n isConnected={isConnected}\n />\n </Grid>\n )}\n {/* Grid */}\n {hasCompletedInitialLoad && (\n <>\n <Grid size={12}>\n <ValidationAlert\n rowValues={rowValues}\n columnNames={columnNames}\n columnOrder={columnOrder}\n onNavigateToCell={handleNavigateToCell}\n isLoading={!hasCompletedInitialSync}\n />\n </Grid>\n <Grid size={12}>\n <Stack\n direction={'row'}\n spacing={1}\n sx={{ justifyContent: 'flex-end' }}\n >\n {/* Keep this sync indicator first in the stack, otherwise it will cause other buttons to shift */}\n {isSyncing && (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n }}\n >\n <SynapseSpinner size={16} margin=\"0\" />\n <Typography variant=\"caption\" color=\"text.secondary\">\n Syncing…\n </Typography>\n </Box>\n )}\n <GridMenuButton\n variant=\"outlined\"\n startIcon={<HelpOutline />}\n href=\"https://docs.synapse.org/synapse-docs/managing-metadata-with-curator\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n sx={{ mr: 'auto' }}\n >\n Help and Instructions\n </GridMenuButton>\n {undoUI}\n {redoUI}\n <ReorderColumnsButton\n columnNames={columnNames}\n columnOrder={columnOrder}\n jsonSchema={jsonSchema}\n upsertKey={upsertKey}\n canRemoveColumns={isRecordSet}\n onReorder={handleReorderColumns}\n />\n <GridMenuButton\n variant={'outlined'}\n onClick={() => setChatOpen(true)}\n startIcon={<CurieAvatarHead />}\n >\n Open Curie\n </GridMenuButton>\n <GridAgentChat\n agentRegistrationId={agentRegistrationId}\n open={chatOpen}\n onClose={() => setChatOpen(false)}\n gridSessionId={session.sessionId!}\n usersReplicaId={replicaId!}\n chatbotName=\"Curie\"\n />\n {session.sourceEntityId && (\n <UploadCsvToGridButton\n sourceEntityId={session.sourceEntityId}\n gridSessionId={session.sessionId!}\n />\n )}\n {session.sessionId && (\n <ExportCsvFromGridButton\n gridSessionId={session.sessionId}\n filename={\n 'grid-' + (session.sourceEntityId || 'export')\n }\n />\n )}\n {session.sourceEntityId && (\n <SyncGridWithSourceButton gridSession={session} />\n )}\n </Stack>\n </Grid>\n <Grid size={12}>\n <DataGrid\n gridRef={gridRef}\n rowValues={enrichedRowValues}\n columnNames={columnNames}\n columnOrder={columnOrder}\n schemaPropertiesInfo={schemaPropertiesInfo}\n entityIsView={entityIsView}\n jsonSchema={jsonSchema}\n lastSelection={lastSelection}\n handleChange={handleChange}\n handleSelectionChange={handleSelectionChange}\n remoteSelections={remoteSelections}\n upsertKey={upsertKey}\n />\n </Grid>\n </>\n )}\n {/* Debug Model Snapshot */}\n {showDebugInfo && (\n <Grid\n size={12}\n style={{\n margin: '10px 0',\n maxHeight: '400px',\n overflowY: 'auto',\n }}\n >\n <Accordion\n disableGutters\n square\n variant=\"outlined\"\n slotProps={{ transition: { unmountOnExit: true } }}\n >\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <Typography variant=\"headline1\" component=\"h3\">\n Model\n </Typography>\n </AccordionSummary>\n <AccordionDetails>\n {model ? (\n <ClickableJsonCrdt model={model} />\n ) : (\n 'No model available'\n )}\n </AccordionDetails>\n </Accordion>\n </Grid>\n )}\n </>\n )}\n </Grid>\n </div>\n )\n}\n\nfunction SynapseGrid(props: SynapseGridProps) {\n return (\n <SynapseErrorBoundary>\n <SynapseGridInner {...props} />\n </SynapseErrorBoundary>\n )\n}\n\nexport default SynapseGrid\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SyncGridWithSourceButton.d.ts","sourceRoot":"","sources":["../../../src/components/DataGrid/SyncGridWithSourceButton.tsx"],"names":[],"mappings":"AACA,OAA+B,EAC7B,mBAAmB,EACpB,MAAM,8CAA8C,CAAA;AAOrD,OAAO,EACL,MAAM,EACN,UAAU,EAEV,WAAW,EAIX,uBAAuB,EACvB,uBAAuB,EAExB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAA;AAErF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,WAAW,EAAE,WAAW,CAAA;CACzB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,KAAK,EAAE,6BAA6B,2CAqErC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,yBAAyB,EAAE,uBAAuB,GAAG,IAAI,GACxD,OAAO,CAqBT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,OAAO,EACnB,gBAAgB,EAAE,UAAU,GAAG,SAAS,GACvC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAoB7C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,UAAU,GAAG,SAAS,EACxC,UAAU,EAAE,OAAO,GAClB,mBAAmB,CAOrB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,CAAC,EAAE,QAAQ,QAmBpB"}
1
+ {"version":3,"file":"SyncGridWithSourceButton.d.ts","sourceRoot":"","sources":["../../../src/components/DataGrid/SyncGridWithSourceButton.tsx"],"names":[],"mappings":"AACA,OAA+B,EAC7B,mBAAmB,EACpB,MAAM,8CAA8C,CAAA;AAQrD,OAAO,EACL,MAAM,EACN,UAAU,EAEV,WAAW,EAIX,uBAAuB,EACvB,uBAAuB,EAExB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAA;AAErF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,WAAW,EAAE,WAAW,CAAA;CACzB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,KAAK,EAAE,6BAA6B,2CAqErC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,yBAAyB,EAAE,uBAAuB,GAAG,IAAI,GACxD,OAAO,CAqBT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,OAAO,EACnB,gBAAgB,EAAE,UAAU,GAAG,SAAS,GACvC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAoB7C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,UAAU,GAAG,SAAS,EACxC,UAAU,EAAE,OAAO,GAClB,mBAAmB,CAOrB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,CAAC,EAAE,QAAQ,QAmBpB"}
@@ -9,11 +9,12 @@ import a from "./useMergeGridWithSource.js";
9
9
  import { Skeleton as o, Tooltip as s } from "@mui/material";
10
10
  import { jsx as c } from "react/jsx-runtime";
11
11
  import { EntityType as l, instanceOfEntityUpdateResults as u, instanceOfRecordSet as d, instanceOfUploadToTableResult as f } from "@sage-bionetworks/synapse-client";
12
- import { CloudDownloadTwoTone as p, CloudSyncTwoTone as m } from "@mui/icons-material";
13
- import { c as h } from "react/compiler-runtime";
12
+ import { c as p } from "react/compiler-runtime";
13
+ import m from "@mui/icons-material/CloudDownloadTwoTone";
14
+ import h from "@mui/icons-material/CloudSyncTwoTone";
14
15
  //#region src/components/DataGrid/SyncGridWithSourceButton.tsx
15
16
  function g(e) {
16
- let l = h(19), { gridSession: u } = e, { data: d, isLoading: f } = n(u.sourceEntityId), g = !!u.sourceEntityId, S;
17
+ let l = p(19), { gridSession: u } = e, { data: d, isLoading: f } = n(u.sourceEntityId), g = !!u.sourceEntityId, S;
17
18
  l[0] === g ? S = l[1] : (S = { enabled: g }, l[0] = g, l[1] = S);
18
19
  let { data: C, isLoading: w } = r(u.sourceEntityId ?? "", S), T = d?.concreteType ? t(d.concreteType) : void 0, E;
19
20
  l[2] === Symbol.for("react.memo_cache_sentinel") ? (E = {
@@ -26,7 +27,7 @@ function g(e) {
26
27
  return l[3] === Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ c(o, { width: "100px" }), l[3] = e) : e = l[3], e;
27
28
  }
28
29
  let M;
29
- l[4] === k ? M = l[5] : (M = c(k ? p : m, {}), l[4] = k, l[5] = M);
30
+ l[4] === k ? M = l[5] : (M = c(k ? m : h, {}), l[4] = k, l[5] = M);
30
31
  let N;
31
32
  l[6] !== u || l[7] !== D || l[8] !== k || l[9] !== T ? (N = () => {
32
33
  D(x(u, T, k));
@@ -1 +1 @@
1
- {"version":3,"file":"SyncGridWithSourceButton.js","names":["GridMenuButton","useMergeGridWithSource","MergeGridWithSource","displayToast","useGetEntity","useGetSchemaBinding","convertToEntityType","CloudDownloadTwoTone","CloudSyncTwoTone","Skeleton","Tooltip","Entity","EntityType","EntityUpdateResults","GridSession","instanceOfEntityUpdateResults","instanceOfRecordSet","instanceOfUploadToTableResult","JsonSchemaObjectBinding","SynchronizeGridResponse","TableUpdateTransactionResponse","SyncType","SyncGridWithSourceButtonProps","gridSession","SyncGridWithSourceButton","props","$","_c","data","entity","isLoading","entityLoading","sourceEntityId","t0","t1","enabled","sourceEntitySchemaBinding","schemaBindingIsLoading","sourceEntityType","concreteType","undefined","t2","Symbol","for","onSuccess","_temp","onError","_temp2","mutate","mergeGrid","isPending","shouldPull","shouldPullBeforePush","buttonText","tooltipText","getSyncButtonLabels","isLoadingPrerequisiteData","t3","t4","buildMergeGridVariables","t5","t6","e","message","result","variables","bb14","type","onSynchronizeSuccess","syncType","onMergeTableSuccess","sourceEntity","isPullSupported","isSourceEntityUpdated","sourceEntityVersionNumber","versionNumber","isSchemaBindingUpdated","gridJsonSchema$Id","jsonSchemaVersionInfo","$id","table","gridSessionId","sessionId","errorMessages","length","map","msg","index","title","results","updateResult","failureMessages","getEntityUpdateResultsErrorMessages","join","rowsUpdatedStr","rowsProcessed","toLocaleString","updateResults","filter","failureCode","r","entityId","failureMessage"],"sources":["../../../src/components/DataGrid/SyncGridWithSourceButton.tsx"],"sourcesContent":["import GridMenuButton from '@/components/DataGrid/components/GridMenuButton/GridMenuButton'\nimport useMergeGridWithSource, {\n MergeGridWithSource,\n} from '@/components/DataGrid/useMergeGridWithSource'\nimport { displayToast } from '@/components/index'\nimport { useGetEntity } from '@/synapse-queries'\nimport { useGetSchemaBinding } from '@/synapse-queries/jsonschema/useEntityBoundSchema'\nimport { convertToEntityType } from '@/utils/functions/EntityTypeUtils'\nimport { CloudDownloadTwoTone, CloudSyncTwoTone } from '@mui/icons-material'\nimport { Skeleton, Tooltip } from '@mui/material'\nimport {\n Entity,\n EntityType,\n EntityUpdateResults,\n GridSession,\n instanceOfEntityUpdateResults,\n instanceOfRecordSet,\n instanceOfUploadToTableResult,\n JsonSchemaObjectBinding,\n SynchronizeGridResponse,\n TableUpdateTransactionResponse,\n} from '@sage-bionetworks/synapse-client'\nimport { SyncType } from '@sage-bionetworks/synapse-client/generated/models/SyncType'\n\nexport type SyncGridWithSourceButtonProps = {\n gridSession: GridSession\n}\n\nexport default function SyncGridWithSourceButton(\n props: SyncGridWithSourceButtonProps,\n) {\n const { gridSession } = props\n\n const { data: entity, isLoading: entityLoading } = useGetEntity(\n gridSession.sourceEntityId,\n )\n\n const { data: sourceEntitySchemaBinding, isLoading: schemaBindingIsLoading } =\n useGetSchemaBinding(gridSession.sourceEntityId ?? '', {\n enabled: !!gridSession.sourceEntityId,\n })\n\n const sourceEntityType = entity?.concreteType\n ? convertToEntityType(entity.concreteType)\n : undefined\n\n const { mutate: mergeGrid, isPending } = useMergeGridWithSource({\n onSuccess: (result, variables) => {\n switch (result.type) {\n case 'synchronize':\n onSynchronizeSuccess(result.data, variables.syncType)\n break\n case 'tableUpdateTransaction':\n onMergeTableSuccess(result.data)\n break\n default:\n result satisfies never\n }\n },\n onError: e => displayToast(e.message, 'danger'),\n })\n\n // At this time, only RecordSet sync supports PULL.\n // If the RecordSet source or JSON Schema has been updated since this grid was created,\n // we have the user PULL the latest changes before enabling a full PULL_PUSH, so they\n // have an opportunity to handle and fix unexpected merge outcomes.\n const shouldPull =\n entity !== undefined &&\n sourceEntitySchemaBinding !== undefined &&\n shouldPullBeforePush(gridSession, entity, sourceEntitySchemaBinding)\n\n const { buttonText, tooltipText } = getSyncButtonLabels(\n shouldPull,\n sourceEntityType,\n )\n\n const isLoadingPrerequisiteData = entityLoading || schemaBindingIsLoading\n\n if (isLoadingPrerequisiteData) {\n return <Skeleton width=\"100px\" />\n }\n\n return (\n <Tooltip title={tooltipText} describeChild>\n <GridMenuButton\n startIcon={shouldPull ? <CloudDownloadTwoTone /> : <CloudSyncTwoTone />}\n loading={isPending}\n onClick={() => {\n mergeGrid(\n buildMergeGridVariables(gridSession, sourceEntityType, shouldPull),\n )\n }}\n variant=\"contained\"\n >\n {buttonText}\n </GridMenuButton>\n </Tooltip>\n )\n}\n\n/**\n * If the source data or JSON Schema has been updated since this grid was created, we have\n * the user PULL the latest changes before enabling a full PULL_PUSH, so they have an\n * opportunity to handle unexpected merge outcomes.\n *\n * This only applies to source types that support the PULL SyncType.\n *\n * @param gridSession The grid session to check.\n * @param sourceEntity The source entity to check.\n * @param sourceEntitySchemaBinding The source entity's schema binding to check.\n * @returns True if the user should PULL before PULL_PUSH, false otherwise.\n */\nexport function shouldPullBeforePush(\n gridSession: GridSession,\n sourceEntity: Entity | null,\n sourceEntitySchemaBinding: JsonSchemaObjectBinding | null,\n): boolean {\n // Currently, only RecordSet supports PULL\n const isPullSupported =\n sourceEntity != null && instanceOfRecordSet(sourceEntity)\n if (!isPullSupported) {\n return false\n }\n\n // Guide the user to PULL first if the source was updated since the grid was\n // created/synced, or if the JSON Schema binding has updated.\n const isSourceEntityUpdated =\n gridSession.sourceEntityVersionNumber != null &&\n sourceEntity.versionNumber != null &&\n gridSession.sourceEntityVersionNumber < sourceEntity.versionNumber\n\n const isSchemaBindingUpdated =\n sourceEntitySchemaBinding != null &&\n gridSession.gridJsonSchema$Id !==\n sourceEntitySchemaBinding.jsonSchemaVersionInfo?.$id\n\n return isSourceEntityUpdated || isSchemaBindingUpdated\n}\n\n/**\n * Determines the button label and tooltip copy for the sync button based on whether the\n * user should PULL before PULL_PUSH, and the source entity's type.\n */\nexport function getSyncButtonLabels(\n shouldPull: boolean,\n sourceEntityType: EntityType | undefined,\n): { buttonText: string; tooltipText: string } {\n if (shouldPull) {\n return {\n buttonText: 'Import latest changes',\n tooltipText:\n 'Imports any recent changes into this Curator session. Your changes will not yet be applied.',\n }\n }\n if (sourceEntityType === EntityType.table) {\n return {\n buttonText: 'Apply changes',\n tooltipText:\n 'Applies any changes made in this Curator session to the source',\n }\n }\n return {\n buttonText: 'Sync changes',\n tooltipText:\n 'Applies any changes made in this Curator session, and imports any recent changes into this Curator session.',\n }\n}\n\n/**\n * Builds the variables passed to the merge grid mutation for the given grid session,\n * source entity type, and whether the user should PULL before PULL_PUSH.\n */\nexport function buildMergeGridVariables(\n gridSession: GridSession,\n sourceEntityType: EntityType | undefined,\n shouldPull: boolean,\n): MergeGridWithSource {\n return {\n gridSessionId: gridSession.sessionId!,\n sourceEntityId: gridSession.sourceEntityId!,\n sourceEntityType,\n syncType: shouldPull ? 'PULL' : 'PULL_PUSH',\n }\n}\n\nexport function onSynchronizeSuccess(\n result: SynchronizeGridResponse,\n syncType?: SyncType,\n) {\n if (result.errorMessages == null || result.errorMessages.length === 0) {\n if (syncType === 'PULL') {\n displayToast('Successfully imported latest changes.', 'success')\n } else {\n displayToast('Successfully synchronized changes.', 'success')\n }\n } else {\n displayToast(\n <ul>\n {result.errorMessages.map((msg, index) => (\n <li key={index}>{msg}</li>\n ))}\n </ul>,\n 'warning',\n { title: 'Some changes could not be applied' },\n )\n }\n}\n\nfunction onMergeTableSuccess(result: TableUpdateTransactionResponse) {\n if (result.results?.length) {\n // There should only be one result since the CSV upload is done in one step\n const updateResult = result.results[0]\n if (instanceOfEntityUpdateResults(updateResult)) {\n // This is an update to the contents of a View\n const failureMessages =\n getEntityUpdateResultsErrorMessages(updateResult).join('\\n')\n\n if (failureMessages) {\n displayToast(\n `Some changes could not be applied:\\n${failureMessages}`,\n 'danger',\n )\n } else {\n displayToast('Changes applied successfully', 'success')\n }\n } else if (instanceOfUploadToTableResult(updateResult)) {\n // This is an update to a TableEntity\n const rowsUpdatedStr = updateResult.rowsProcessed?.toLocaleString()\n displayToast(`Successfully updated ${rowsUpdatedStr} rows.`, 'success')\n }\n }\n}\n\nfunction getEntityUpdateResultsErrorMessages(\n results: EntityUpdateResults,\n): string[] {\n return (\n results.updateResults\n ?.filter(e => !!e.failureCode)\n .map(\n r => `${r.entityId}: ${r.failureMessage} (code: ${r.failureCode})`,\n ) ?? []\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SyncGridWithSourceButton.js","names":["GridMenuButton","useMergeGridWithSource","MergeGridWithSource","displayToast","useGetEntity","useGetSchemaBinding","convertToEntityType","CloudDownloadTwoTone","CloudSyncTwoTone","Skeleton","Tooltip","Entity","EntityType","EntityUpdateResults","GridSession","instanceOfEntityUpdateResults","instanceOfRecordSet","instanceOfUploadToTableResult","JsonSchemaObjectBinding","SynchronizeGridResponse","TableUpdateTransactionResponse","SyncType","SyncGridWithSourceButtonProps","gridSession","SyncGridWithSourceButton","props","$","_c","data","entity","isLoading","entityLoading","sourceEntityId","t0","t1","enabled","sourceEntitySchemaBinding","schemaBindingIsLoading","sourceEntityType","concreteType","undefined","t2","Symbol","for","onSuccess","_temp","onError","_temp2","mutate","mergeGrid","isPending","shouldPull","shouldPullBeforePush","buttonText","tooltipText","getSyncButtonLabels","isLoadingPrerequisiteData","t3","t4","buildMergeGridVariables","t5","t6","e","message","result","variables","bb14","type","onSynchronizeSuccess","syncType","onMergeTableSuccess","sourceEntity","isPullSupported","isSourceEntityUpdated","sourceEntityVersionNumber","versionNumber","isSchemaBindingUpdated","gridJsonSchema$Id","jsonSchemaVersionInfo","$id","table","gridSessionId","sessionId","errorMessages","length","map","msg","index","title","results","updateResult","failureMessages","getEntityUpdateResultsErrorMessages","join","rowsUpdatedStr","rowsProcessed","toLocaleString","updateResults","filter","failureCode","r","entityId","failureMessage"],"sources":["../../../src/components/DataGrid/SyncGridWithSourceButton.tsx"],"sourcesContent":["import GridMenuButton from '@/components/DataGrid/components/GridMenuButton/GridMenuButton'\nimport useMergeGridWithSource, {\n MergeGridWithSource,\n} from '@/components/DataGrid/useMergeGridWithSource'\nimport { displayToast } from '@/components/index'\nimport { useGetEntity } from '@/synapse-queries'\nimport { useGetSchemaBinding } from '@/synapse-queries/jsonschema/useEntityBoundSchema'\nimport { convertToEntityType } from '@/utils/functions/EntityTypeUtils'\nimport CloudDownloadTwoTone from '@mui/icons-material/CloudDownloadTwoTone'\nimport CloudSyncTwoTone from '@mui/icons-material/CloudSyncTwoTone'\nimport { Skeleton, Tooltip } from '@mui/material'\nimport {\n Entity,\n EntityType,\n EntityUpdateResults,\n GridSession,\n instanceOfEntityUpdateResults,\n instanceOfRecordSet,\n instanceOfUploadToTableResult,\n JsonSchemaObjectBinding,\n SynchronizeGridResponse,\n TableUpdateTransactionResponse,\n} from '@sage-bionetworks/synapse-client'\nimport { SyncType } from '@sage-bionetworks/synapse-client/generated/models/SyncType'\n\nexport type SyncGridWithSourceButtonProps = {\n gridSession: GridSession\n}\n\nexport default function SyncGridWithSourceButton(\n props: SyncGridWithSourceButtonProps,\n) {\n const { gridSession } = props\n\n const { data: entity, isLoading: entityLoading } = useGetEntity(\n gridSession.sourceEntityId,\n )\n\n const { data: sourceEntitySchemaBinding, isLoading: schemaBindingIsLoading } =\n useGetSchemaBinding(gridSession.sourceEntityId ?? '', {\n enabled: !!gridSession.sourceEntityId,\n })\n\n const sourceEntityType = entity?.concreteType\n ? convertToEntityType(entity.concreteType)\n : undefined\n\n const { mutate: mergeGrid, isPending } = useMergeGridWithSource({\n onSuccess: (result, variables) => {\n switch (result.type) {\n case 'synchronize':\n onSynchronizeSuccess(result.data, variables.syncType)\n break\n case 'tableUpdateTransaction':\n onMergeTableSuccess(result.data)\n break\n default:\n result satisfies never\n }\n },\n onError: e => displayToast(e.message, 'danger'),\n })\n\n // At this time, only RecordSet sync supports PULL.\n // If the RecordSet source or JSON Schema has been updated since this grid was created,\n // we have the user PULL the latest changes before enabling a full PULL_PUSH, so they\n // have an opportunity to handle and fix unexpected merge outcomes.\n const shouldPull =\n entity !== undefined &&\n sourceEntitySchemaBinding !== undefined &&\n shouldPullBeforePush(gridSession, entity, sourceEntitySchemaBinding)\n\n const { buttonText, tooltipText } = getSyncButtonLabels(\n shouldPull,\n sourceEntityType,\n )\n\n const isLoadingPrerequisiteData = entityLoading || schemaBindingIsLoading\n\n if (isLoadingPrerequisiteData) {\n return <Skeleton width=\"100px\" />\n }\n\n return (\n <Tooltip title={tooltipText} describeChild>\n <GridMenuButton\n startIcon={shouldPull ? <CloudDownloadTwoTone /> : <CloudSyncTwoTone />}\n loading={isPending}\n onClick={() => {\n mergeGrid(\n buildMergeGridVariables(gridSession, sourceEntityType, shouldPull),\n )\n }}\n variant=\"contained\"\n >\n {buttonText}\n </GridMenuButton>\n </Tooltip>\n )\n}\n\n/**\n * If the source data or JSON Schema has been updated since this grid was created, we have\n * the user PULL the latest changes before enabling a full PULL_PUSH, so they have an\n * opportunity to handle unexpected merge outcomes.\n *\n * This only applies to source types that support the PULL SyncType.\n *\n * @param gridSession The grid session to check.\n * @param sourceEntity The source entity to check.\n * @param sourceEntitySchemaBinding The source entity's schema binding to check.\n * @returns True if the user should PULL before PULL_PUSH, false otherwise.\n */\nexport function shouldPullBeforePush(\n gridSession: GridSession,\n sourceEntity: Entity | null,\n sourceEntitySchemaBinding: JsonSchemaObjectBinding | null,\n): boolean {\n // Currently, only RecordSet supports PULL\n const isPullSupported =\n sourceEntity != null && instanceOfRecordSet(sourceEntity)\n if (!isPullSupported) {\n return false\n }\n\n // Guide the user to PULL first if the source was updated since the grid was\n // created/synced, or if the JSON Schema binding has updated.\n const isSourceEntityUpdated =\n gridSession.sourceEntityVersionNumber != null &&\n sourceEntity.versionNumber != null &&\n gridSession.sourceEntityVersionNumber < sourceEntity.versionNumber\n\n const isSchemaBindingUpdated =\n sourceEntitySchemaBinding != null &&\n gridSession.gridJsonSchema$Id !==\n sourceEntitySchemaBinding.jsonSchemaVersionInfo?.$id\n\n return isSourceEntityUpdated || isSchemaBindingUpdated\n}\n\n/**\n * Determines the button label and tooltip copy for the sync button based on whether the\n * user should PULL before PULL_PUSH, and the source entity's type.\n */\nexport function getSyncButtonLabels(\n shouldPull: boolean,\n sourceEntityType: EntityType | undefined,\n): { buttonText: string; tooltipText: string } {\n if (shouldPull) {\n return {\n buttonText: 'Import latest changes',\n tooltipText:\n 'Imports any recent changes into this Curator session. Your changes will not yet be applied.',\n }\n }\n if (sourceEntityType === EntityType.table) {\n return {\n buttonText: 'Apply changes',\n tooltipText:\n 'Applies any changes made in this Curator session to the source',\n }\n }\n return {\n buttonText: 'Sync changes',\n tooltipText:\n 'Applies any changes made in this Curator session, and imports any recent changes into this Curator session.',\n }\n}\n\n/**\n * Builds the variables passed to the merge grid mutation for the given grid session,\n * source entity type, and whether the user should PULL before PULL_PUSH.\n */\nexport function buildMergeGridVariables(\n gridSession: GridSession,\n sourceEntityType: EntityType | undefined,\n shouldPull: boolean,\n): MergeGridWithSource {\n return {\n gridSessionId: gridSession.sessionId!,\n sourceEntityId: gridSession.sourceEntityId!,\n sourceEntityType,\n syncType: shouldPull ? 'PULL' : 'PULL_PUSH',\n }\n}\n\nexport function onSynchronizeSuccess(\n result: SynchronizeGridResponse,\n syncType?: SyncType,\n) {\n if (result.errorMessages == null || result.errorMessages.length === 0) {\n if (syncType === 'PULL') {\n displayToast('Successfully imported latest changes.', 'success')\n } else {\n displayToast('Successfully synchronized changes.', 'success')\n }\n } else {\n displayToast(\n <ul>\n {result.errorMessages.map((msg, index) => (\n <li key={index}>{msg}</li>\n ))}\n </ul>,\n 'warning',\n { title: 'Some changes could not be applied' },\n )\n }\n}\n\nfunction onMergeTableSuccess(result: TableUpdateTransactionResponse) {\n if (result.results?.length) {\n // There should only be one result since the CSV upload is done in one step\n const updateResult = result.results[0]\n if (instanceOfEntityUpdateResults(updateResult)) {\n // This is an update to the contents of a View\n const failureMessages =\n getEntityUpdateResultsErrorMessages(updateResult).join('\\n')\n\n if (failureMessages) {\n displayToast(\n `Some changes could not be applied:\\n${failureMessages}`,\n 'danger',\n )\n } else {\n displayToast('Changes applied successfully', 'success')\n }\n } else if (instanceOfUploadToTableResult(updateResult)) {\n // This is an update to a TableEntity\n const rowsUpdatedStr = updateResult.rowsProcessed?.toLocaleString()\n displayToast(`Successfully updated ${rowsUpdatedStr} rows.`, 'success')\n }\n }\n}\n\nfunction getEntityUpdateResultsErrorMessages(\n results: EntityUpdateResults,\n): string[] {\n return (\n results.updateResults\n ?.filter(e => !!e.failureCode)\n .map(\n r => `${r.entityId}: ${r.failureMessage} (code: ${r.failureCode})`,\n ) ?? []\n )\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnHeaderWithTooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/components/ColumnHeaderWithTooltip.tsx"],"names":[],"mappings":"AAIA,KAAK,4BAA4B,GAAG;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;CACzB,CAAA;AAKD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,IAAI,EACJ,WAAW,EACX,UAAkB,EAClB,WAAmB,EACnB,WAAmB,EACnB,QAAgB,EAChB,WAAW,GACZ,EAAE,4BAA4B,2CA8F9B"}
1
+ {"version":3,"file":"ColumnHeaderWithTooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/components/ColumnHeaderWithTooltip.tsx"],"names":[],"mappings":"AAMA,KAAK,4BAA4B,GAAG;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;CACzB,CAAA;AAKD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,IAAI,EACJ,WAAW,EACX,UAAkB,EAClB,WAAmB,EACnB,WAAmB,EACnB,QAAgB,EAChB,WAAW,GACZ,EAAE,4BAA4B,2CA8F9B"}
@@ -1,12 +1,14 @@
1
1
  import "../../SynapseTable/SynapseTableConstants.js";
2
2
  import { Box as e, IconButton as t, Tooltip as n } from "@mui/material";
3
3
  import { jsx as r, jsxs as i } from "react/jsx-runtime";
4
- import { Key as a, PushPin as o, PushPinOutlined as s } from "@mui/icons-material";
5
- import { c } from "react/compiler-runtime";
4
+ import { c as a } from "react/compiler-runtime";
5
+ import o from "@mui/icons-material/Key";
6
+ import s from "@mui/icons-material/PushPin";
7
+ import c from "@mui/icons-material/PushPinOutlined";
6
8
  //#region src/components/DataGrid/components/ColumnHeaderWithTooltip.tsx
7
9
  var l = "This property field is the primary key. It is used to match the existing rows when applying updates. If a value already exists the row is updated; if not, a new row is added. If multiple primary keys are defined, all primary key values must match for an existing row to be updated.";
8
10
  function u(u) {
9
- let d = c(22), { name: f, description: p, isRequired: m, isUpsertKey: h, showPinIcon: g, isPinned: _, onTogglePin: v } = u, y = m === void 0 ? !1 : m, b = h === void 0 ? !1 : h, x = g === void 0 ? !1 : g, S = _ === void 0 ? !1 : _, C;
11
+ let d = a(22), { name: f, description: p, isRequired: m, isUpsertKey: h, showPinIcon: g, isPinned: _, onTogglePin: v } = u, y = m === void 0 ? !1 : m, b = h === void 0 ? !1 : h, x = g === void 0 ? !1 : g, S = _ === void 0 ? !1 : _, C;
10
12
  d[0] === Symbol.for("react.memo_cache_sentinel") ? (C = {
11
13
  display: "grid",
12
14
  gridTemplateColumns: "minmax(0, 1fr) auto",
@@ -62,7 +64,7 @@ function u(u) {
62
64
  width: "1.25em",
63
65
  height: "1.25em"
64
66
  },
65
- children: /* @__PURE__ */ r(a, { sx: { fontSize: "1em" } })
67
+ children: /* @__PURE__ */ r(o, { sx: { fontSize: "1em" } })
66
68
  })
67
69
  }), d[9] = b, d[10] = k);
68
70
  let A;
@@ -82,7 +84,7 @@ function u(u) {
82
84
  opacity: S ? 1 : .7,
83
85
  "&:hover": { opacity: 1 }
84
86
  },
85
- children: r(S ? o : s, { fontSize: "inherit" })
87
+ children: r(S ? s : c, { fontSize: "inherit" })
86
88
  })
87
89
  }), d[11] = S, d[12] = v, d[13] = x, d[14] = A) : A = d[14];
88
90
  let j;
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnHeaderWithTooltip.js","names":["Box","IconButton","Tooltip","Key","PushPin","PushPinOutlined","TOOLTIP_DELAY_SHOW","ColumnHeaderWithTooltipProps","name","description","isRequired","isUpsertKey","showPinIcon","isPinned","onTogglePin","UPSERT_KEY_TOOLTIP_TEXT","ColumnHeaderWithTooltip","t0","$","_c","t1","t2","t3","t4","undefined","t5","Symbol","for","display","gridTemplateColumns","gap","width","alignItems","minWidth","t6","overflow","textOverflow","whiteSpace","t7","t8","color","ml","t9","t10","flexShrink","t11","justifyContent","backgroundColor","borderRadius","height","fontSize","t12","e","stopPropagation","opacity","t13","t14"],"sources":["../../../../src/components/DataGrid/components/ColumnHeaderWithTooltip.tsx"],"sourcesContent":["import { Box, IconButton, Tooltip } from '@mui/material'\nimport { Key, PushPin, PushPinOutlined } from '@mui/icons-material'\nimport { TOOLTIP_DELAY_SHOW } from '@/components/SynapseTable/SynapseTableConstants'\n\ntype ColumnHeaderWithTooltipProps = {\n name: string\n description?: string\n isRequired?: boolean\n isUpsertKey?: boolean\n showPinIcon?: boolean\n isPinned?: boolean\n onTogglePin?: () => void\n}\n\nconst UPSERT_KEY_TOOLTIP_TEXT =\n 'This property field is the primary key. It is used to match the existing rows when applying updates. If a value already exists the row is updated; if not, a new row is added. If multiple primary keys are defined, all primary key values must match for an existing row to be updated.'\n\n/**\n * Renders a column header. When a description is provided, hovering the column\n * name shows it as a native tooltip; otherwise the column name is shown (useful\n * for truncated headers). An optional pin icon is shown on the right.\n */\nexport function ColumnHeaderWithTooltip({\n name,\n description,\n isRequired = false,\n isUpsertKey = false,\n showPinIcon = false,\n isPinned = false,\n onTogglePin,\n}: ColumnHeaderWithTooltipProps) {\n return (\n <Box\n data-column-id={name}\n sx={{\n display: 'grid',\n gridTemplateColumns: 'minmax(0, 1fr) auto',\n gap: 0.5,\n width: '100%',\n alignItems: 'center',\n minWidth: 0,\n }}\n >\n {/* Text area - shrinks first */}\n <Box\n component=\"span\"\n sx={{\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n minWidth: 0,\n }}\n title={description || name}\n >\n {name}\n {isRequired && (\n <Box component=\"span\" sx={{ color: 'error.main', ml: 0.25 }}>\n *\n </Box>\n )}\n </Box>\n\n {/* Icons area - fixed size, never shrinks */}\n <Box\n sx={{ display: 'flex', gap: 0.5, flexShrink: 0, alignItems: 'center' }}\n >\n {isUpsertKey && (\n <Tooltip\n title={UPSERT_KEY_TOOLTIP_TEXT}\n placement=\"top\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n >\n <Box\n component=\"span\"\n sx={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'primary.main',\n color: 'primary.contrastText',\n borderRadius: '50%',\n width: '1.25em',\n height: '1.25em',\n }}\n >\n <Key sx={{ fontSize: '1em' }} />\n </Box>\n </Tooltip>\n )}\n {showPinIcon && onTogglePin && (\n <Tooltip\n title={isPinned ? 'Unpin column' : 'Pin column'}\n placement=\"top\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n >\n <IconButton\n size=\"small\"\n color=\"inherit\"\n aria-label={isPinned ? 'Unpin column' : 'Pin column'}\n // Use onMouseDown instead of onClick to prevent column selection\n // when clicking the pin icon. stopPropagation prevents event bubbling.\n onMouseDown={e => {\n e.stopPropagation()\n onTogglePin()\n }}\n sx={{\n color: 'inherit',\n opacity: isPinned ? 1 : 0.7,\n '&:hover': {\n opacity: 1,\n },\n }}\n >\n {isPinned ? (\n <PushPin fontSize=\"inherit\" />\n ) : (\n <PushPinOutlined fontSize=\"inherit\" />\n )}\n </IconButton>\n </Tooltip>\n )}\n </Box>\n </Box>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnHeaderWithTooltip.js","names":["Box","IconButton","Tooltip","Key","PushPin","PushPinOutlined","TOOLTIP_DELAY_SHOW","ColumnHeaderWithTooltipProps","name","description","isRequired","isUpsertKey","showPinIcon","isPinned","onTogglePin","UPSERT_KEY_TOOLTIP_TEXT","ColumnHeaderWithTooltip","t0","$","_c","t1","t2","t3","t4","undefined","t5","Symbol","for","display","gridTemplateColumns","gap","width","alignItems","minWidth","t6","overflow","textOverflow","whiteSpace","t7","t8","color","ml","t9","t10","flexShrink","t11","justifyContent","backgroundColor","borderRadius","height","fontSize","t12","e","stopPropagation","opacity","t13","t14"],"sources":["../../../../src/components/DataGrid/components/ColumnHeaderWithTooltip.tsx"],"sourcesContent":["import { Box, IconButton, Tooltip } from '@mui/material'\nimport Key from '@mui/icons-material/Key'\nimport PushPin from '@mui/icons-material/PushPin'\nimport PushPinOutlined from '@mui/icons-material/PushPinOutlined'\nimport { TOOLTIP_DELAY_SHOW } from '@/components/SynapseTable/SynapseTableConstants'\n\ntype ColumnHeaderWithTooltipProps = {\n name: string\n description?: string\n isRequired?: boolean\n isUpsertKey?: boolean\n showPinIcon?: boolean\n isPinned?: boolean\n onTogglePin?: () => void\n}\n\nconst UPSERT_KEY_TOOLTIP_TEXT =\n 'This property field is the primary key. It is used to match the existing rows when applying updates. If a value already exists the row is updated; if not, a new row is added. If multiple primary keys are defined, all primary key values must match for an existing row to be updated.'\n\n/**\n * Renders a column header. When a description is provided, hovering the column\n * name shows it as a native tooltip; otherwise the column name is shown (useful\n * for truncated headers). An optional pin icon is shown on the right.\n */\nexport function ColumnHeaderWithTooltip({\n name,\n description,\n isRequired = false,\n isUpsertKey = false,\n showPinIcon = false,\n isPinned = false,\n onTogglePin,\n}: ColumnHeaderWithTooltipProps) {\n return (\n <Box\n data-column-id={name}\n sx={{\n display: 'grid',\n gridTemplateColumns: 'minmax(0, 1fr) auto',\n gap: 0.5,\n width: '100%',\n alignItems: 'center',\n minWidth: 0,\n }}\n >\n {/* Text area - shrinks first */}\n <Box\n component=\"span\"\n sx={{\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n minWidth: 0,\n }}\n title={description || name}\n >\n {name}\n {isRequired && (\n <Box component=\"span\" sx={{ color: 'error.main', ml: 0.25 }}>\n *\n </Box>\n )}\n </Box>\n\n {/* Icons area - fixed size, never shrinks */}\n <Box\n sx={{ display: 'flex', gap: 0.5, flexShrink: 0, alignItems: 'center' }}\n >\n {isUpsertKey && (\n <Tooltip\n title={UPSERT_KEY_TOOLTIP_TEXT}\n placement=\"top\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n >\n <Box\n component=\"span\"\n sx={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'primary.main',\n color: 'primary.contrastText',\n borderRadius: '50%',\n width: '1.25em',\n height: '1.25em',\n }}\n >\n <Key sx={{ fontSize: '1em' }} />\n </Box>\n </Tooltip>\n )}\n {showPinIcon && onTogglePin && (\n <Tooltip\n title={isPinned ? 'Unpin column' : 'Pin column'}\n placement=\"top\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n >\n <IconButton\n size=\"small\"\n color=\"inherit\"\n aria-label={isPinned ? 'Unpin column' : 'Pin column'}\n // Use onMouseDown instead of onClick to prevent column selection\n // when clicking the pin icon. stopPropagation prevents event bubbling.\n onMouseDown={e => {\n e.stopPropagation()\n onTogglePin()\n }}\n sx={{\n color: 'inherit',\n opacity: isPinned ? 1 : 0.7,\n '&:hover': {\n opacity: 1,\n },\n }}\n >\n {isPinned ? (\n <PushPin fontSize=\"inherit\" />\n ) : (\n <PushPinOutlined fontSize=\"inherit\" />\n )}\n </IconButton>\n </Tooltip>\n )}\n </Box>\n </Box>\n )\n}\n"],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  import e from "./GridMenuButton/GridMenuButton.js";
2
2
  import { useExportDataGridToCsv as t } from "../hooks/useExportDataGridToCsv.js";
3
3
  import { jsx as n } from "react/jsx-runtime";
4
- import { DownloadTwoTone as r } from "@mui/icons-material";
5
- import { c as i } from "react/compiler-runtime";
4
+ import { c as r } from "react/compiler-runtime";
5
+ import i from "@mui/icons-material/DownloadTwoTone";
6
6
  //#region src/components/DataGrid/components/ExportCsvFromGridButton.tsx
7
7
  function a(a) {
8
- let o = i(7), { gridSessionId: s, filename: c } = a, l;
8
+ let o = r(7), { gridSessionId: s, filename: c } = a, l;
9
9
  o[0] !== c || o[1] !== s ? (l = {
10
10
  gridSessionId: s,
11
11
  filename: c
12
12
  }, o[0] = c, o[1] = s, o[2] = l) : l = o[2];
13
13
  let { exportToCsv: u, isExporting: d } = t(l), f;
14
- o[3] === Symbol.for("react.memo_cache_sentinel") ? (f = /* @__PURE__ */ n(r, {}), o[3] = f) : f = o[3];
14
+ o[3] === Symbol.for("react.memo_cache_sentinel") ? (f = /* @__PURE__ */ n(i, {}), o[3] = f) : f = o[3];
15
15
  let p;
16
16
  return o[4] !== u || o[5] !== d ? (p = /* @__PURE__ */ n(e, {
17
17
  onClick: u,
@@ -1 +1 @@
1
- {"version":3,"file":"ExportCsvFromGridButton.js","names":["GridMenuButton","useExportDataGridToCsv","DownloadTwoTone","ExportCsvFromGridButtonProps","gridSessionId","filename","ExportCsvFromGridButton","props","$","_c","t0","exportToCsv","isExporting","t1","Symbol","for","t2"],"sources":["../../../../src/components/DataGrid/components/ExportCsvFromGridButton.tsx"],"sourcesContent":["import GridMenuButton from '@/components/DataGrid/components/GridMenuButton/GridMenuButton'\nimport { useExportDataGridToCsv } from '@/components/DataGrid/hooks/useExportDataGridToCsv'\nimport { DownloadTwoTone } from '@mui/icons-material'\n\nexport type ExportCsvFromGridButtonProps = {\n gridSessionId: string\n filename: string\n}\n\nexport default function ExportCsvFromGridButton(\n props: ExportCsvFromGridButtonProps,\n) {\n const { gridSessionId, filename } = props\n\n const { exportToCsv, isExporting } = useExportDataGridToCsv({\n gridSessionId,\n filename,\n })\n\n return (\n <GridMenuButton\n onClick={exportToCsv}\n variant=\"outlined\"\n startIcon={<DownloadTwoTone />}\n loading={isExporting}\n >\n Export CSV\n </GridMenuButton>\n )\n}\n"],"mappings":";;;;;;AASA,SAAeM,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAGb,EAAAL,kBAAAC,gBAAoCE,GAAKG;CAAA,AAAAF,EAAA,OAAAH,KAAAG,EAAA,OAAAJ,KAEmBM,IAAA;EAAAN;EAAAC;CAG5D,GAACG,EAAA,KAAAH,GAAAG,EAAA,KAAAJ,GAAAI,EAAA,KAAAE,KAAAA,IAAAF,EAAA;CAHD,IAAA,EAAAG,gBAAAC,mBAAqCX,EAAuBS,CAG3D,GAACG;CAAA,AAAAL,EAAA,OAAAM,OAAAC,IAAA,2BAAA,KAMaF,IAAA,kBAAC,GAAD,CAAgB,CAAA,GAAGL,EAAA,KAAAK,KAAAA,IAAAL,EAAA;CAAA,IAAAQ;CAIf,OAJeR,EAAA,OAAAG,KAAAH,EAAA,OAAAI,KAHhCI,IAAA,kBAAC,GAAD;EACWL,SAAAA;EACD,SAAA;EACG,WAAAE;EACFD,SAAAA;YACV;CALc,CAAA,GAOEJ,EAAA,KAAAG,GAAAH,EAAA,KAAAI,GAAAJ,EAAA,KAAAQ,KAAAA,IAAAR,EAAA,IAPjBQ;AAOiB"}
1
+ {"version":3,"file":"ExportCsvFromGridButton.js","names":["GridMenuButton","useExportDataGridToCsv","DownloadTwoTone","ExportCsvFromGridButtonProps","gridSessionId","filename","ExportCsvFromGridButton","props","$","_c","t0","exportToCsv","isExporting","t1","Symbol","for","t2"],"sources":["../../../../src/components/DataGrid/components/ExportCsvFromGridButton.tsx"],"sourcesContent":["import GridMenuButton from '@/components/DataGrid/components/GridMenuButton/GridMenuButton'\nimport { useExportDataGridToCsv } from '@/components/DataGrid/hooks/useExportDataGridToCsv'\nimport DownloadTwoTone from '@mui/icons-material/DownloadTwoTone'\n\nexport type ExportCsvFromGridButtonProps = {\n gridSessionId: string\n filename: string\n}\n\nexport default function ExportCsvFromGridButton(\n props: ExportCsvFromGridButtonProps,\n) {\n const { gridSessionId, filename } = props\n\n const { exportToCsv, isExporting } = useExportDataGridToCsv({\n gridSessionId,\n filename,\n })\n\n return (\n <GridMenuButton\n onClick={exportToCsv}\n variant=\"outlined\"\n startIcon={<DownloadTwoTone />}\n loading={isExporting}\n >\n Export CSV\n </GridMenuButton>\n )\n}\n"],"mappings":";;;;;;AASA,SAAeM,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAGb,EAAAL,kBAAAC,gBAAoCE,GAAKG;CAAA,AAAAF,EAAA,OAAAH,KAAAG,EAAA,OAAAJ,KAEmBM,IAAA;EAAAN;EAAAC;CAG5D,GAACG,EAAA,KAAAH,GAAAG,EAAA,KAAAJ,GAAAI,EAAA,KAAAE,KAAAA,IAAAF,EAAA;CAHD,IAAA,EAAAG,gBAAAC,mBAAqCX,EAAuBS,CAG3D,GAACG;CAAA,AAAAL,EAAA,OAAAM,OAAAC,IAAA,2BAAA,KAMaF,IAAA,kBAAC,GAAD,CAAgB,CAAA,GAAGL,EAAA,KAAAK,KAAAA,IAAAL,EAAA;CAAA,IAAAQ;CAIf,OAJeR,EAAA,OAAAG,KAAAH,EAAA,OAAAI,KAHhCI,IAAA,kBAAC,GAAD;EACWL,SAAAA;EACD,SAAA;EACG,WAAAE;EACFD,SAAAA;YACV;CALc,CAAA,GAOEJ,EAAA,KAAAG,GAAAH,EAAA,KAAAI,GAAAJ,EAAA,KAAAQ,KAAAA,IAAAR,EAAA,IAPjBQ;AAOiB"}
@@ -2,11 +2,11 @@ import e from "./GridMenuButton/GridMenuButton.js";
2
2
  import t from "./ReorderColumnsDialog.js";
3
3
  import { useState as n } from "react";
4
4
  import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
5
- import { SwapHoriz as o } from "@mui/icons-material";
6
- import { c as s } from "react/compiler-runtime";
5
+ import { c as o } from "react/compiler-runtime";
6
+ import s from "@mui/icons-material/SwapHoriz";
7
7
  //#region src/components/DataGrid/components/ReorderColumnsButton.tsx
8
8
  function c(c) {
9
- let l = s(15), { columnNames: u, columnOrder: d, jsonSchema: f, upsertKey: p, canRemoveColumns: m, onReorder: h } = c, [g, _] = n(!1), v;
9
+ let l = o(15), { columnNames: u, columnOrder: d, jsonSchema: f, upsertKey: p, canRemoveColumns: m, onReorder: h } = c, [g, _] = n(!1), v;
10
10
  l[0] !== m || l[1] !== u || l[2] !== d || l[3] !== f || l[4] !== h || l[5] !== g || l[6] !== p ? (v = g && /* @__PURE__ */ i(t, {
11
11
  open: g,
12
12
  columnNames: u,
@@ -20,7 +20,7 @@ function c(c) {
20
20
  onCancel: () => _(!1)
21
21
  }), l[0] = m, l[1] = u, l[2] = d, l[3] = f, l[4] = h, l[5] = g, l[6] = p, l[7] = v) : v = l[7];
22
22
  let y, b;
23
- l[8] === Symbol.for("react.memo_cache_sentinel") ? (y = /* @__PURE__ */ i(o, {}), b = () => _(!0), l[8] = y, l[9] = b) : (y = l[8], b = l[9]);
23
+ l[8] === Symbol.for("react.memo_cache_sentinel") ? (y = /* @__PURE__ */ i(s, {}), b = () => _(!0), l[8] = y, l[9] = b) : (y = l[8], b = l[9]);
24
24
  let x = d.length < 2, S;
25
25
  l[10] === x ? S = l[11] : (S = /* @__PURE__ */ i(e, {
26
26
  variant: "outlined",
@@ -1 +1 @@
1
- {"version":3,"file":"ReorderColumnsButton.js","names":["GridMenuButton","ReorderColumnsDialog","SwapHoriz","JSONSchema7","useState","ReorderColumnsButtonProps","columnNames","columnOrder","jsonSchema","upsertKey","canRemoveColumns","onReorder","newColumnOrder","ReorderColumnsButton","props","$","_c","showDialog","setShowDialog","t0","t1","t2","Symbol","for","t3","length","t4","t5"],"sources":["../../../../src/components/DataGrid/components/ReorderColumnsButton.tsx"],"sourcesContent":["import GridMenuButton from '@/components/DataGrid/components/GridMenuButton/GridMenuButton'\nimport ReorderColumnsDialog from '@/components/DataGrid/components/ReorderColumnsDialog'\nimport { SwapHoriz } from '@mui/icons-material'\nimport { JSONSchema7 } from 'json-schema'\nimport { useState } from 'react'\n\nexport type ReorderColumnsButtonProps = {\n columnNames: string[]\n columnOrder: number[]\n jsonSchema: JSONSchema7 | undefined\n upsertKey?: string[]\n canRemoveColumns?: boolean\n onReorder: (newColumnOrder: number[]) => void\n}\n\nexport default function ReorderColumnsButton(props: ReorderColumnsButtonProps) {\n const {\n columnNames,\n columnOrder,\n jsonSchema,\n upsertKey,\n canRemoveColumns,\n onReorder,\n } = props\n\n const [showDialog, setShowDialog] = useState(false)\n\n return (\n <>\n {showDialog && (\n // Explicitly unmount the dialog when it is closed so its working order resets\n <ReorderColumnsDialog\n open={showDialog}\n columnNames={columnNames}\n columnOrder={columnOrder}\n jsonSchema={jsonSchema}\n upsertKey={upsertKey}\n canRemoveColumns={canRemoveColumns}\n onSave={newColumnOrder => {\n onReorder(newColumnOrder)\n setShowDialog(false)\n }}\n onCancel={() => setShowDialog(false)}\n />\n )}\n <GridMenuButton\n variant=\"outlined\"\n startIcon={<SwapHoriz />}\n onClick={() => setShowDialog(true)}\n disabled={columnOrder.length < 2}\n >\n Reorder Columns\n </GridMenuButton>\n </>\n )\n}\n"],"mappings":";;;;;;;AAeA,SAAea,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACb,EAAAV,gBAAAC,gBAAAC,eAAAC,cAAAC,qBAAAC,iBAOIG,GAEJ,CAAAG,GAAAC,KAAoCd,EAAS,EAAK,GAACe;CAAA,AAAAJ,EAAA,OAAAL,KAAAK,EAAA,OAAAT,KAAAS,EAAA,OAAAR,KAAAQ,EAAA,OAAAP,KAAAO,EAAA,OAAAJ,KAAAI,EAAA,OAAAE,KAAAF,EAAA,OAAAN,KAI9CU,IAAAF,KAEC,kBAAC,GAAD;EACQA,MAAAA;EACOX;EACAC;EACDC;EACDC;EACOC;EACV,SAAAE,MAAA;GAENM,AADAP,EAAUC,CAAc,GACxBM,EAAc,EAAK;EAAC;EAEZ,gBAAMA,EAAc,EAAK;CAAC,CAAA,GAEvCH,EAAA,KAAAL,GAAAK,EAAA,KAAAT,GAAAS,EAAA,KAAAR,GAAAQ,EAAA,KAAAP,GAAAO,EAAA,KAAAJ,GAAAI,EAAA,KAAAE,GAAAF,EAAA,KAAAN,GAAAM,EAAA,KAAAI,KAAAA,IAAAJ,EAAA;CAAA,IAAAK,GAAAC;CAAA,AAAAN,EAAA,OAAAO,OAAAC,IAAA,2BAAA,KAGYH,IAAA,kBAAC,GAAD,CAAU,CAAA,GACZC,UAAMH,EAAc,EAAI,GAACH,EAAA,KAAAK,GAAAL,EAAA,KAAAM,MAAAD,IAAAL,EAAA,IAAAM,IAAAN,EAAA;CACxB,IAAAS,IAAAjB,EAAWkB,SAAU,GAACC;CAAA,AAAAX,EAAA,QAAAS,IAGjBE,IAAAX,EAAA,OAPjBW,IAAA,kBAAC,GAAD;EACU,SAAA;EACG,WAAAN;EACF,SAAAC;EACC,UAAAG;YACX;CALc,CAAA,GAOET,EAAA,MAAAS,GAAAT,EAAA,MAAAW;CAAA,IAAAC;CAChB,OADgBZ,EAAA,QAAAI,KAAAJ,EAAA,QAAAW,KAxBnBC,IAAA,kBAAA,GAAA,EAAA,UAAA,CACGR,GAgBDO,CAOiB,EAAA,CAAA,GAChBX,EAAA,MAAAI,GAAAJ,EAAA,MAAAW,GAAAX,EAAA,MAAAY,KAAAA,IAAAZ,EAAA,KAzBHY;AAyBG"}
1
+ {"version":3,"file":"ReorderColumnsButton.js","names":["GridMenuButton","ReorderColumnsDialog","SwapHoriz","JSONSchema7","useState","ReorderColumnsButtonProps","columnNames","columnOrder","jsonSchema","upsertKey","canRemoveColumns","onReorder","newColumnOrder","ReorderColumnsButton","props","$","_c","showDialog","setShowDialog","t0","t1","t2","Symbol","for","t3","length","t4","t5"],"sources":["../../../../src/components/DataGrid/components/ReorderColumnsButton.tsx"],"sourcesContent":["import GridMenuButton from '@/components/DataGrid/components/GridMenuButton/GridMenuButton'\nimport ReorderColumnsDialog from '@/components/DataGrid/components/ReorderColumnsDialog'\nimport SwapHoriz from '@mui/icons-material/SwapHoriz'\nimport { JSONSchema7 } from 'json-schema'\nimport { useState } from 'react'\n\nexport type ReorderColumnsButtonProps = {\n columnNames: string[]\n columnOrder: number[]\n jsonSchema: JSONSchema7 | undefined\n upsertKey?: string[]\n canRemoveColumns?: boolean\n onReorder: (newColumnOrder: number[]) => void\n}\n\nexport default function ReorderColumnsButton(props: ReorderColumnsButtonProps) {\n const {\n columnNames,\n columnOrder,\n jsonSchema,\n upsertKey,\n canRemoveColumns,\n onReorder,\n } = props\n\n const [showDialog, setShowDialog] = useState(false)\n\n return (\n <>\n {showDialog && (\n // Explicitly unmount the dialog when it is closed so its working order resets\n <ReorderColumnsDialog\n open={showDialog}\n columnNames={columnNames}\n columnOrder={columnOrder}\n jsonSchema={jsonSchema}\n upsertKey={upsertKey}\n canRemoveColumns={canRemoveColumns}\n onSave={newColumnOrder => {\n onReorder(newColumnOrder)\n setShowDialog(false)\n }}\n onCancel={() => setShowDialog(false)}\n />\n )}\n <GridMenuButton\n variant=\"outlined\"\n startIcon={<SwapHoriz />}\n onClick={() => setShowDialog(true)}\n disabled={columnOrder.length < 2}\n >\n Reorder Columns\n </GridMenuButton>\n </>\n )\n}\n"],"mappings":";;;;;;;AAeA,SAAea,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACb,EAAAV,gBAAAC,gBAAAC,eAAAC,cAAAC,qBAAAC,iBAOIG,GAEJ,CAAAG,GAAAC,KAAoCd,EAAS,EAAK,GAACe;CAAA,AAAAJ,EAAA,OAAAL,KAAAK,EAAA,OAAAT,KAAAS,EAAA,OAAAR,KAAAQ,EAAA,OAAAP,KAAAO,EAAA,OAAAJ,KAAAI,EAAA,OAAAE,KAAAF,EAAA,OAAAN,KAI9CU,IAAAF,KAEC,kBAAC,GAAD;EACQA,MAAAA;EACOX;EACAC;EACDC;EACDC;EACOC;EACV,SAAAE,MAAA;GAENM,AADAP,EAAUC,CAAc,GACxBM,EAAc,EAAK;EAAC;EAEZ,gBAAMA,EAAc,EAAK;CAAC,CAAA,GAEvCH,EAAA,KAAAL,GAAAK,EAAA,KAAAT,GAAAS,EAAA,KAAAR,GAAAQ,EAAA,KAAAP,GAAAO,EAAA,KAAAJ,GAAAI,EAAA,KAAAE,GAAAF,EAAA,KAAAN,GAAAM,EAAA,KAAAI,KAAAA,IAAAJ,EAAA;CAAA,IAAAK,GAAAC;CAAA,AAAAN,EAAA,OAAAO,OAAAC,IAAA,2BAAA,KAGYH,IAAA,kBAAC,GAAD,CAAU,CAAA,GACZC,UAAMH,EAAc,EAAI,GAACH,EAAA,KAAAK,GAAAL,EAAA,KAAAM,MAAAD,IAAAL,EAAA,IAAAM,IAAAN,EAAA;CACxB,IAAAS,IAAAjB,EAAWkB,SAAU,GAACC;CAAA,AAAAX,EAAA,QAAAS,IAGjBE,IAAAX,EAAA,OAPjBW,IAAA,kBAAC,GAAD;EACU,SAAA;EACG,WAAAN;EACF,SAAAC;EACC,UAAAG;YACX;CALc,CAAA,GAOET,EAAA,MAAAS,GAAAT,EAAA,MAAAW;CAAA,IAAAC;CAChB,OADgBZ,EAAA,QAAAI,KAAAJ,EAAA,QAAAW,KAxBnBC,IAAA,kBAAA,GAAA,EAAA,UAAA,CACGR,GAgBDO,CAOiB,EAAA,CAAA,GAChBX,EAAA,MAAAI,GAAAJ,EAAA,MAAAW,GAAAX,EAAA,MAAAY,KAAAA,IAAAZ,EAAA,KAzBHY;AAyBG"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReorderColumnsDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/components/ReorderColumnsDialog.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAIzC,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,EAAE,WAAW,GAAG,SAAS,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,iGAAiG;IACjG,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,MAAM,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC1C,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,2CAgK5E"}
1
+ {"version":3,"file":"ReorderColumnsDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/components/ReorderColumnsDialog.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAIzC,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,EAAE,WAAW,GAAG,SAAS,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,iGAAiG;IACjG,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,MAAM,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC1C,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,2CAgK5E"}
@@ -8,11 +8,15 @@ import { useState as a } from "react";
8
8
  import { Box as o, Button as ee, IconButton as s, List as te, ListItem as c, ListItemText as l, Stack as u, Typography as d } from "@mui/material";
9
9
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
10
10
  import m from "lodash-es/isEqual";
11
- import { DeleteOutline as h, North as ne, RestartAlt as re, RestoreFromTrash as ie, South as ae } from "@mui/icons-material";
12
- import { c as oe } from "react/compiler-runtime";
11
+ import { c as h } from "react/compiler-runtime";
12
+ import ne from "@mui/icons-material/DeleteOutline";
13
+ import re from "@mui/icons-material/North";
14
+ import ie from "@mui/icons-material/RestartAlt";
15
+ import ae from "@mui/icons-material/RestoreFromTrash";
16
+ import oe from "@mui/icons-material/South";
13
17
  //#region src/components/DataGrid/components/ReorderColumnsDialog.tsx
14
18
  function g(g) {
15
- let _ = oe(57), { open: v, columnNames: y, columnOrder: b, jsonSchema: x, upsertKey: S, canRemoveColumns: C, onSave: w, onCancel: T } = g, E = C === void 0 ? !1 : C, D, O, k;
19
+ let _ = h(57), { open: v, columnNames: y, columnOrder: b, jsonSchema: x, upsertKey: S, canRemoveColumns: C, onSave: w, onCancel: T } = g, E = C === void 0 ? !1 : C, D, O, k;
16
20
  _[0] !== E || _[1] !== y || _[2] !== b ? (D = E ? i(y, y.map(se)).filter((e) => !b.includes(e)) : [], O = a, k = [...b, ...D], _[0] = E, _[1] = y, _[2] = b, _[3] = D, _[4] = O, _[5] = k) : (D = _[3], O = _[4], k = _[5]);
17
21
  let [A, j] = O(k), [M, N] = a(D), P;
18
22
  _[6] !== y || _[7] !== x || _[8] !== S ? (P = r(y, x, S), _[6] = y, _[7] = x, _[8] = S, _[9] = P) : P = _[9];
@@ -36,7 +40,7 @@ function g(g) {
36
40
  mb: 1
37
41
  }, _[20] = W) : W = _[20];
38
42
  let G;
39
- _[21] === Symbol.for("react.memo_cache_sentinel") ? (G = /* @__PURE__ */ f(re, {}), _[21] = G) : G = _[21];
43
+ _[21] === Symbol.for("react.memo_cache_sentinel") ? (G = /* @__PURE__ */ f(ie, {}), _[21] = G) : G = _[21];
40
44
  let K;
41
45
  _[22] === F ? K = _[23] : (K = () => {
42
46
  j(F), N([]);
@@ -68,27 +72,27 @@ function g(g) {
68
72
  "aria-label": `Restore ${r}`,
69
73
  size: "small",
70
74
  onClick: () => N((e) => e.filter((e) => e !== t)),
71
- children: /* @__PURE__ */ f(ie, { fontSize: "small" })
75
+ children: /* @__PURE__ */ f(ae, { fontSize: "small" })
72
76
  }) : !H(r) && /* @__PURE__ */ f(s, {
73
77
  "aria-label": `Remove ${r}`,
74
78
  size: "small",
75
79
  disabled: I <= 1,
76
80
  onClick: () => N((e) => [...e, t]),
77
- children: /* @__PURE__ */ f(h, { fontSize: "small" })
81
+ children: /* @__PURE__ */ f(ne, { fontSize: "small" })
78
82
  })),
79
83
  /* @__PURE__ */ f(s, {
80
84
  "aria-label": `Move ${r} up`,
81
85
  size: "small",
82
86
  disabled: i || n === 0,
83
87
  onClick: () => j((t) => e(t, n, -1)),
84
- children: /* @__PURE__ */ f(ne, { fontSize: "small" })
88
+ children: /* @__PURE__ */ f(re, { fontSize: "small" })
85
89
  }),
86
90
  /* @__PURE__ */ f(s, {
87
91
  "aria-label": `Move ${r} down`,
88
92
  size: "small",
89
93
  disabled: i || n === A.length - 1,
90
94
  onClick: () => j((t) => e(t, n, 1)),
91
- children: /* @__PURE__ */ f(ae, { fontSize: "small" })
95
+ children: /* @__PURE__ */ f(oe, { fontSize: "small" })
92
96
  })
93
97
  ]
94
98
  }),