synapse-react-client 4.0.45 → 4.0.47

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 (842) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/aridhia-queries/AridhiaKeyFactory.d.ts +1 -0
  3. package/dist/aridhia-queries/AridhiaKeyFactory.d.ts.map +1 -1
  4. package/dist/aridhia-queries/AridhiaKeyFactory.js +3 -0
  5. package/dist/aridhia-queries/AridhiaKeyFactory.js.map +1 -1
  6. package/dist/aridhia-queries/aridhiaTokenExchange.js +6 -6
  7. package/dist/aridhia-queries/index.d.ts +1 -0
  8. package/dist/aridhia-queries/index.d.ts.map +1 -1
  9. package/dist/aridhia-queries/index.js +11 -10
  10. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.d.ts +19 -0
  11. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.d.ts.map +1 -0
  12. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.js +14 -0
  13. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.js.map +1 -0
  14. package/dist/aridhia-queries/useSubmitAridhiaDar.js +2 -2
  15. package/dist/aridhia-queries/useSubmitAridhiaDar.js.map +1 -1
  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.js.map +1 -1
  20. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js +1 -1
  21. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js.map +1 -1
  22. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js +1 -1
  23. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  24. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js +1 -1
  25. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js.map +1 -1
  26. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts.map +1 -1
  27. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js +11 -8
  28. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js.map +1 -1
  29. package/dist/components/AccessTokenPage/AccessTokenPage.js +1 -1
  30. package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
  31. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js +1 -1
  32. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
  33. package/dist/components/AccountLevelBadges/AccountLevelBadges.js +1 -1
  34. package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
  35. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +1 -1
  36. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  37. package/dist/components/AclEditor/AclEditor.test-utils.js +3 -5
  38. package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
  39. package/dist/components/Aridhia/AridhiaAccessStatus.d.ts.map +1 -1
  40. package/dist/components/Aridhia/AridhiaAccessStatus.js +43 -30
  41. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  42. package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts +6 -2
  43. package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts.map +1 -1
  44. package/dist/components/Aridhia/AridhiaDarStatusPopover.js +101 -31
  45. package/dist/components/Aridhia/AridhiaDarStatusPopover.js.map +1 -1
  46. package/dist/components/Aridhia/DarWizard/DarSectionForm.d.ts.map +1 -1
  47. package/dist/components/Aridhia/DarWizard/DarSectionForm.js +17 -13
  48. package/dist/components/Aridhia/DarWizard/DarSectionForm.js.map +1 -1
  49. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts +3 -3
  50. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts.map +1 -1
  51. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js +33 -34
  52. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js.map +1 -1
  53. package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts +11 -9
  54. package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts.map +1 -1
  55. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js +24 -13
  56. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
  57. package/dist/components/Aridhia/fairFormToRjsf.js +1 -1
  58. package/dist/components/Aridhia/fairFormToRjsf.js.map +1 -1
  59. package/dist/components/Authentication/LastLoginInfo.js +3 -3
  60. package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
  61. package/dist/components/Authentication/RecoveryCodeForm.js +1 -1
  62. package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
  63. package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
  64. package/dist/components/Authentication/TOTPForm.d.ts.map +1 -1
  65. package/dist/components/Authentication/TOTPForm.js +3 -3
  66. package/dist/components/Authentication/TOTPForm.js.map +1 -1
  67. package/dist/components/Authentication/index.d.ts +6 -6
  68. package/dist/components/Authentication/index.d.ts.map +1 -1
  69. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js +1 -1
  70. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
  71. package/dist/components/CardContainer/CardContainer.js +7 -7
  72. package/dist/components/CardContainer/CardContainer.js.map +1 -1
  73. package/dist/components/CertificationQuiz/CertificationQuiz.js +1 -1
  74. package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
  75. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js +1 -1
  76. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
  77. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js +1 -1
  78. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
  79. package/dist/components/ChallengeSubmission/ChallengeSubmission.d.ts.map +1 -1
  80. package/dist/components/ChallengeSubmission/ChallengeSubmission.js +1 -1
  81. package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
  82. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js +1 -1
  83. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
  84. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js +6 -6
  85. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
  86. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.d.ts.map +1 -1
  87. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js +4 -4
  88. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
  89. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js +4 -4
  90. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
  91. package/dist/components/CitationPopover/CitationPopoverContent.js +4 -4
  92. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  93. package/dist/components/CitationPopover/CitationPopoverUtils.js +2 -2
  94. package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
  95. package/dist/components/CohortBuilder/CohortBuilder.css +1 -0
  96. package/dist/components/CohortBuilder/CohortBuilder.d.ts +35 -0
  97. package/dist/components/CohortBuilder/CohortBuilder.d.ts.map +1 -0
  98. package/dist/components/CohortBuilder/CohortBuilder.js +108 -0
  99. package/dist/components/CohortBuilder/CohortBuilder.js.map +1 -0
  100. package/dist/components/CohortBuilder/CohortBuilder.module.js +10 -0
  101. package/dist/components/CohortBuilder/CohortBuilder.module.js.map +1 -0
  102. package/dist/components/CohortBuilder/CohortBuilder.module.scss +20 -0
  103. package/dist/components/CohortBuilder/CohortFilesPanel.d.ts +16 -0
  104. package/dist/components/CohortBuilder/CohortFilesPanel.d.ts.map +1 -0
  105. package/dist/components/CohortBuilder/CohortFilesPanel.js +124 -0
  106. package/dist/components/CohortBuilder/CohortFilesPanel.js.map +1 -0
  107. package/dist/components/CohortBuilder/cohortHandOff.d.ts +25 -0
  108. package/dist/components/CohortBuilder/cohortHandOff.d.ts.map +1 -0
  109. package/dist/components/CohortBuilder/cohortHandOff.js +26 -0
  110. package/dist/components/CohortBuilder/cohortHandOff.js.map +1 -0
  111. package/dist/components/ColumnFilter/ColumnFilter.d.ts.map +1 -1
  112. package/dist/components/ColumnFilter/ColumnFilter.js +14 -13
  113. package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
  114. package/dist/components/ComponentCollapse.d.ts.map +1 -1
  115. package/dist/components/ComponentCollapse.js +2 -1
  116. package/dist/components/ComponentCollapse.js.map +1 -1
  117. package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -1
  118. package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
  119. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  120. package/dist/components/DataGrid/SynapseGrid.js +231 -219
  121. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  122. package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts.map +1 -1
  123. package/dist/components/DataGrid/SyncGridWithSourceButton.js +5 -4
  124. package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -1
  125. package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts +11 -2
  126. package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
  127. package/dist/components/DataGrid/columns/AutocompleteColumn.js +115 -109
  128. package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
  129. package/dist/components/DataGrid/columns/NumberColumn.js +1 -1
  130. package/dist/components/DataGrid/columns/NumberColumn.js.map +1 -1
  131. package/dist/components/DataGrid/columns/NumberOrEnumColumn.d.ts +20 -0
  132. package/dist/components/DataGrid/columns/NumberOrEnumColumn.d.ts.map +1 -0
  133. package/dist/components/DataGrid/columns/NumberOrEnumColumn.js +18 -0
  134. package/dist/components/DataGrid/columns/NumberOrEnumColumn.js.map +1 -0
  135. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts.map +1 -1
  136. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js +7 -5
  137. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
  138. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js +4 -4
  139. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
  140. package/dist/components/DataGrid/components/ReorderColumnsButton.js +4 -4
  141. package/dist/components/DataGrid/components/ReorderColumnsButton.js.map +1 -1
  142. package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
  143. package/dist/components/DataGrid/components/ReorderColumnsDialog.js +12 -8
  144. package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
  145. package/dist/components/DataGrid/components/UploadCsvToGridButton.js +1 -1
  146. package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
  147. package/dist/components/DataGrid/components/contextMenu.js +3 -3
  148. package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
  149. package/dist/components/DataGrid/hooks/useGridUndoRedo.d.ts.map +1 -1
  150. package/dist/components/DataGrid/hooks/useGridUndoRedo.js +14 -12
  151. package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
  152. package/dist/components/DataGrid/hooks/useStack.d.ts +1 -1
  153. package/dist/components/DataGrid/hooks/useStack.js +2 -2
  154. package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
  155. package/dist/components/DataGrid/utils/applyModelChange.d.ts.map +1 -1
  156. package/dist/components/DataGrid/utils/applyModelChange.js +14 -14
  157. package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
  158. package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
  159. package/dist/components/DataGrid/utils/columnFactory.js +47 -42
  160. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  161. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js +7 -7
  162. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
  163. package/dist/components/DataGrid/utils/json-rx/JsonRx.js +2 -2
  164. package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
  165. package/dist/components/DataGrid/utils/splitPatch.d.ts.map +1 -1
  166. package/dist/components/DataGrid/utils/splitPatch.js +22 -13
  167. package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
  168. package/dist/components/DownloadCart/DownloadCartPage.js +1 -1
  169. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  170. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.d.ts.map +1 -1
  171. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +3 -2
  172. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  173. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.js.map +1 -1
  174. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.scss +1 -3
  175. package/dist/components/DownloadCart/MeetAccessRequirementCard.js +1 -1
  176. package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
  177. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
  178. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +16 -10
  179. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  180. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +1 -1
  181. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  182. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js +5 -5
  183. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
  184. package/dist/components/EntityFinder/EntityFinder.js +4 -4
  185. package/dist/components/EntityFinder/EntityIdTextField.js +1 -1
  186. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  187. package/dist/components/EntityFinder/details/view/DetailsView.d.ts.map +1 -1
  188. package/dist/components/EntityFinder/details/view/DetailsView.js +4 -4
  189. package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
  190. package/dist/components/EntityFinder/tree/VirtualizedTree.d.ts.map +1 -1
  191. package/dist/components/EntityFinder/tree/VirtualizedTree.js +5 -4
  192. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  193. package/dist/components/EntityHeaderTable/EntityHeaderTable.js +4 -4
  194. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  195. package/dist/components/EntityHeaderTable/Filter.d.ts.map +1 -1
  196. package/dist/components/EntityHeaderTable/Filter.js +1 -1
  197. package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
  198. package/dist/components/EntityTreeTable/components/EntityNameCell.d.ts.map +1 -1
  199. package/dist/components/EntityTreeTable/components/EntityNameCell.js +2 -1
  200. package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
  201. package/dist/components/EntityUpload/FileUploadProgress.d.ts.map +1 -1
  202. package/dist/components/EntityUpload/FileUploadProgress.js +11 -7
  203. package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
  204. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  205. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.d.ts.map +1 -1
  206. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js +4 -3
  207. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  208. package/dist/components/ExperimentalMode/ExperimentalMode.js +1 -1
  209. package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
  210. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js +1 -1
  211. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
  212. package/dist/components/FeaturedDataTabs/FacetPlotsCard.d.ts.map +1 -1
  213. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +80 -84
  214. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  215. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.d.ts.map +1 -1
  216. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js +2 -1
  217. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js.map +1 -1
  218. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.d.ts.map +1 -1
  219. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js +2 -1
  220. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js.map +1 -1
  221. package/dist/components/FormTemplateEditor/FieldLibrary.d.ts.map +1 -1
  222. package/dist/components/FormTemplateEditor/FieldLibrary.js +2 -1
  223. package/dist/components/FormTemplateEditor/FieldLibrary.js.map +1 -1
  224. package/dist/components/FormTemplateEditor/FieldLibraryRow.js +4 -4
  225. package/dist/components/FormTemplateEditor/FieldLibraryRow.js.map +1 -1
  226. package/dist/components/FormTemplateEditor/FormStructurePanel.js +7 -7
  227. package/dist/components/FormTemplateEditor/FormStructurePanel.js.map +1 -1
  228. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js +1 -1
  229. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js.map +1 -1
  230. package/dist/components/FormTemplateEditor/StepCard.d.ts.map +1 -1
  231. package/dist/components/FormTemplateEditor/StepCard.js +15 -10
  232. package/dist/components/FormTemplateEditor/StepCard.js.map +1 -1
  233. package/dist/components/FormTemplateEditor/StepFieldRow.d.ts.map +1 -1
  234. package/dist/components/FormTemplateEditor/StepFieldRow.js +11 -6
  235. package/dist/components/FormTemplateEditor/StepFieldRow.js.map +1 -1
  236. package/dist/components/FormTemplateEditor/TemplateFileHandleField.d.ts.map +1 -1
  237. package/dist/components/FormTemplateEditor/TemplateFileHandleField.js +2 -1
  238. package/dist/components/FormTemplateEditor/TemplateFileHandleField.js.map +1 -1
  239. package/dist/components/FormTemplateEditor/schemaFieldUtils.js +2 -2
  240. package/dist/components/FormTemplateEditor/schemaFieldUtils.js.map +1 -1
  241. package/dist/components/FullTextSearch/FullTextSearch.js +8 -8
  242. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  243. package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js +46 -46
  244. package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js.map +1 -1
  245. package/dist/components/GenericCard/DuoTermTags/duoTerms.js +1 -1
  246. package/dist/components/GenericCard/DuoTermTags/duoTerms.js.map +1 -1
  247. package/dist/components/GenericCard/PortalDOI/PortalDOI.js +5 -5
  248. package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
  249. package/dist/components/GenericCard/TableRowGenericCard.js +38 -38
  250. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  251. package/dist/components/GoalsV3/GoalsV3.js +1 -1
  252. package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
  253. package/dist/components/HelpPopover/HelpPopover.js +1 -1
  254. package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
  255. package/dist/components/HexGrid/HexGrid.d.ts +3 -1
  256. package/dist/components/HexGrid/HexGrid.d.ts.map +1 -1
  257. package/dist/components/HexGrid/HexGrid.js +14 -13
  258. package/dist/components/HexGrid/HexGrid.js.map +1 -1
  259. package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
  260. package/dist/components/IconSvg/IconSvg.js +154 -47
  261. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  262. package/dist/components/IconSvg/index.d.ts +1 -1
  263. package/dist/components/IconSvg/index.d.ts.map +1 -1
  264. package/dist/components/IconSvg/index.js.map +1 -1
  265. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.d.ts.map +1 -1
  266. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js +3 -3
  267. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
  268. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.d.ts.map +1 -1
  269. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js +19 -16
  270. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
  271. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.d.ts.map +1 -1
  272. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js +2 -1
  273. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
  274. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.d.ts +9 -0
  275. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.d.ts.map +1 -0
  276. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.js +21 -0
  277. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.js.map +1 -0
  278. package/dist/components/Markdown/MarkdownCollapse.d.ts.map +1 -1
  279. package/dist/components/Markdown/MarkdownCollapse.js +3 -1
  280. package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
  281. package/dist/components/Markdown/MarkdownEditor.js +1 -1
  282. package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
  283. package/dist/components/Markdown/widget/index.d.ts +1 -1
  284. package/dist/components/Markdown/widget/index.d.ts.map +1 -1
  285. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js +1 -1
  286. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  287. package/dist/components/ModalDownload/ModalDownload.d.ts.map +1 -1
  288. package/dist/components/ModalDownload/ModalDownload.js +2 -1
  289. package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
  290. package/dist/components/OAuthClientManagement/OAuthManagement.js +14 -13
  291. package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
  292. package/dist/components/Plot/BarPlot.js +1 -1
  293. package/dist/components/Plot/BarPlot.js.map +1 -1
  294. package/dist/components/Plot/PlotPanelHeader.d.ts +3 -2
  295. package/dist/components/Plot/PlotPanelHeader.d.ts.map +1 -1
  296. package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
  297. package/dist/components/PortalList/PortalCard.d.ts.map +1 -1
  298. package/dist/components/PortalList/PortalCard.js +6 -5
  299. package/dist/components/PortalList/PortalCard.js.map +1 -1
  300. package/dist/components/PortalList/PortalList.js +4 -4
  301. package/dist/components/PortalList/PortalList.js.map +1 -1
  302. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js +1 -1
  303. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
  304. package/dist/components/ProjectVisibilityChip/ProjectVisibilityChip.js +6 -6
  305. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js +1 -1
  306. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
  307. package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts.map +1 -1
  308. package/dist/components/ProvenanceGraph/ProvenanceGraph.js +3 -3
  309. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  310. package/dist/components/QueryBuilder/FilterConditionRow.d.ts.map +1 -1
  311. package/dist/components/QueryBuilder/FilterConditionRow.js +31 -30
  312. package/dist/components/QueryBuilder/FilterConditionRow.js.map +1 -1
  313. package/dist/components/QueryBuilder/FilterGroupNode.d.ts.map +1 -1
  314. package/dist/components/QueryBuilder/FilterGroupNode.js +91 -75
  315. package/dist/components/QueryBuilder/FilterGroupNode.js.map +1 -1
  316. package/dist/components/QueryBuilder/QueryBuilderControls.css +1 -1
  317. package/dist/components/QueryBuilder/QueryBuilderControls.d.ts.map +1 -1
  318. package/dist/components/QueryBuilder/QueryBuilderControls.js +91 -79
  319. package/dist/components/QueryBuilder/QueryBuilderControls.js.map +1 -1
  320. package/dist/components/QueryBuilder/QueryBuilderControls.module.js +11 -11
  321. package/dist/components/QueryBuilder/QueryBuilderControls.module.js.map +1 -1
  322. package/dist/components/QueryBuilder/QueryBuilderControls.module.scss +2 -0
  323. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts +2 -0
  324. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts.map +1 -1
  325. package/dist/components/QueryBuilder/QueryBuilderInternalContext.js.map +1 -1
  326. package/dist/components/QueryBuilder/queryBuilderLimits.d.ts +18 -0
  327. package/dist/components/QueryBuilder/queryBuilderLimits.d.ts.map +1 -0
  328. package/dist/components/QueryBuilder/queryBuilderLimits.js +38 -0
  329. package/dist/components/QueryBuilder/queryBuilderLimits.js.map +1 -0
  330. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts +0 -8
  331. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts.map +1 -1
  332. package/dist/components/QueryBuilder/queryBuilderMetadata.js +6 -9
  333. package/dist/components/QueryBuilder/queryBuilderMetadata.js.map +1 -1
  334. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts +5 -4
  335. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts.map +1 -1
  336. package/dist/components/QueryBuilder/queryBuilderTranslation.js +58 -33
  337. package/dist/components/QueryBuilder/queryBuilderTranslation.js.map +1 -1
  338. package/dist/components/QueryBuilder/useQBCombinedSql.d.ts.map +1 -1
  339. package/dist/components/QueryBuilder/useQBCombinedSql.js +4 -4
  340. package/dist/components/QueryBuilder/useQBCombinedSql.js.map +1 -1
  341. package/dist/components/QueryBuilder/useQBValueDisplayName.d.ts.map +1 -1
  342. package/dist/components/QueryBuilder/useQBValueDisplayName.js +5 -5
  343. package/dist/components/QueryBuilder/useQBValueDisplayName.js.map +1 -1
  344. package/dist/components/QueryCountButton/QueryCountButton.js +5 -5
  345. package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
  346. package/dist/components/QuerySortSelector.js +5 -5
  347. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +21 -21
  348. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
  349. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.d.ts +20 -0
  350. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.d.ts.map +1 -0
  351. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.js +50 -0
  352. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.js.map +1 -0
  353. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.d.ts +5 -3
  354. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.d.ts.map +1 -1
  355. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js +7 -3
  356. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
  357. package/dist/components/QueryWrapper/downloadListFiles.d.ts +25 -0
  358. package/dist/components/QueryWrapper/downloadListFiles.d.ts.map +1 -0
  359. package/dist/components/QueryWrapper/downloadListFiles.js +39 -0
  360. package/dist/components/QueryWrapper/downloadListFiles.js.map +1 -0
  361. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.d.ts +16 -0
  362. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.d.ts.map +1 -0
  363. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.js +50 -0
  364. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.js.map +1 -0
  365. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.d.ts +4 -1
  366. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.d.ts.map +1 -1
  367. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js +15 -28
  368. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
  369. package/dist/components/QueryWrapper/useOnQueryDataChange.d.ts.map +1 -1
  370. package/dist/components/QueryWrapper/useOnQueryDataChange.js +7 -6
  371. package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
  372. package/dist/components/QueryWrapperErrorBoundary.d.ts +3 -1
  373. package/dist/components/QueryWrapperErrorBoundary.d.ts.map +1 -1
  374. package/dist/components/QueryWrapperErrorBoundary.js +26 -21
  375. package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
  376. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js +7 -7
  377. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +2 -2
  378. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  379. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +34 -32
  380. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  381. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js +7 -7
  382. package/dist/components/QueryWrapperPlotNav/UseRowSet.d.ts.map +1 -1
  383. package/dist/components/QueryWrapperPlotNav/UseRowSet.js +12 -12
  384. package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
  385. package/dist/components/ReleaseCard/ReleaseCardLarge.js +5 -5
  386. package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
  387. package/dist/components/RowDataTable/CategorizedRowDataTable.css +1 -0
  388. package/dist/components/RowDataTable/CategorizedRowDataTable.d.ts +33 -0
  389. package/dist/components/RowDataTable/CategorizedRowDataTable.d.ts.map +1 -0
  390. package/dist/components/RowDataTable/CategorizedRowDataTable.js +64 -0
  391. package/dist/components/RowDataTable/CategorizedRowDataTable.js.map +1 -0
  392. package/dist/components/RowDataTable/CategorizedRowDataTable.module.js +8 -0
  393. package/dist/components/RowDataTable/CategorizedRowDataTable.module.js.map +1 -0
  394. package/dist/components/RowDataTable/CategorizedRowDataTable.module.scss +18 -0
  395. package/dist/components/RowDataTable/RowDataTable.d.ts +13 -0
  396. package/dist/components/RowDataTable/RowDataTable.d.ts.map +1 -1
  397. package/dist/components/RowDataTable/RowDataTable.js +25 -8
  398. package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
  399. package/dist/components/RssFeedCards/RssFeedCards.js +1 -1
  400. package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
  401. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.d.ts.map +1 -1
  402. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js +2 -2
  403. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
  404. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js +1 -1
  405. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
  406. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +17 -9
  407. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
  408. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +39 -30
  409. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  410. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js +24 -24
  411. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  412. package/dist/components/ShareThisPage/ShareThisPage.js +4 -4
  413. package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
  414. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js +8 -8
  415. package/dist/components/SustainabilityScorecard/DialLayout.js +1 -1
  416. package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
  417. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js +1 -1
  418. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
  419. package/dist/components/SynapseChat/SynapseChat.js +1 -1
  420. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  421. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
  422. package/dist/components/SynapseChat/SynapseChatInteraction.js +2 -1
  423. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  424. package/dist/components/SynapseChat/SynapseChatMessage.js +1 -1
  425. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  426. package/dist/components/SynapseChat/components/ChatInputArea/ChatInputArea.js +1 -1
  427. package/dist/components/SynapseChat/components/ChatInputArea/ChatInputArea.js.map +1 -1
  428. package/dist/components/SynapseFooter/SynapseFooter.js +1 -1
  429. package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
  430. package/dist/components/SynapseForm/NavButtons.js.map +1 -1
  431. package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
  432. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js +1 -1
  433. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
  434. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.d.ts.map +1 -1
  435. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js +2 -1
  436. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
  437. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js +4 -4
  438. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
  439. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js +1 -1
  440. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
  441. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts.map +1 -1
  442. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +4 -1
  443. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  444. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js +1 -1
  445. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  446. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js +1 -1
  447. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
  448. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.d.ts.map +1 -1
  449. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js +3 -3
  450. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
  451. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js +1 -1
  452. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
  453. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.d.ts.map +1 -1
  454. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +12 -9
  455. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
  456. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.d.ts.map +1 -1
  457. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +38 -44
  458. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  459. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js +4 -4
  460. package/dist/components/SynapseTable/SqlEditor.js +7 -7
  461. package/dist/components/SynapseTable/SynapseTable.js +8 -8
  462. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  463. package/dist/components/SynapseTable/SynapseTableRenderers.d.ts.map +1 -1
  464. package/dist/components/SynapseTable/SynapseTableRenderers.js +73 -72
  465. package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
  466. package/dist/components/SynapseTable/SynapseTableUtils.js +1 -1
  467. package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
  468. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
  469. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +44 -45
  470. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  471. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js +1 -1
  472. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
  473. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.d.ts.map +1 -1
  474. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +6 -6
  475. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  476. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +4 -4
  477. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js +12 -12
  478. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
  479. package/dist/components/SynapseTable/table-top/ColumnSelection.js +6 -6
  480. package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts +0 -1
  481. package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts.map +1 -1
  482. package/dist/components/SynapseTable/table-top/DownloadOptions.js +64 -57
  483. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  484. package/dist/components/SynapseTable/usePrefetchTableData.d.ts.map +1 -1
  485. package/dist/components/SynapseTable/usePrefetchTableData.js +3 -3
  486. package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
  487. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +2 -2
  488. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  489. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js +1 -1
  490. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
  491. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js +1 -1
  492. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
  493. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts.map +1 -1
  494. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js +2 -2
  495. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  496. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +59 -59
  497. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  498. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.d.ts.map +1 -1
  499. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js +6 -4
  500. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
  501. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js +1 -1
  502. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
  503. package/dist/components/TanStackTable/ColumnHeader.js +1 -1
  504. package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
  505. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js +1 -1
  506. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
  507. package/dist/components/TanStackTable/StyledTanStackTable.d.ts.map +1 -1
  508. package/dist/components/TanStackTable/StyledTanStackTable.js +1 -4
  509. package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
  510. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js +1 -1
  511. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
  512. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.d.ts.map +1 -1
  513. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js +4 -3
  514. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
  515. package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
  516. package/dist/components/TotalQueryResults.js +14 -14
  517. package/dist/components/Webhook/WebhookDashboard.d.ts.map +1 -1
  518. package/dist/components/Webhook/WebhookDashboard.js +3 -3
  519. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  520. package/dist/components/dataaccess/AccessRequirementDashboard.js +4 -4
  521. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  522. package/dist/components/dataaccess/AccessRequirementTable.js +1 -1
  523. package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
  524. package/dist/components/dataaccess/EDucTemplateTable.d.ts.map +1 -1
  525. package/dist/components/dataaccess/EDucTemplateTable.js +13 -11
  526. package/dist/components/dataaccess/EDucTemplateTable.js.map +1 -1
  527. package/dist/components/dataaccess/FormTemplateTable.js +6 -6
  528. package/dist/components/dataaccess/FormTemplateTable.js.map +1 -1
  529. package/dist/components/dataaccess/ReviewerDashboard.js +17 -17
  530. package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
  531. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +4 -4
  532. package/dist/components/doi/CreateOrUpdateDoiModal.js +1 -1
  533. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  534. package/dist/components/download_list/DownloadConfirmationUtils.d.ts +5 -1
  535. package/dist/components/download_list/DownloadConfirmationUtils.d.ts.map +1 -1
  536. package/dist/components/download_list/DownloadConfirmationUtils.js +2 -2
  537. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  538. package/dist/components/download_list/DownloadDetails.d.ts.map +1 -1
  539. package/dist/components/download_list/DownloadDetails.js +12 -10
  540. package/dist/components/download_list/DownloadDetails.js.map +1 -1
  541. package/dist/components/entity/metadata/AnnotationsTable.js +1 -1
  542. package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
  543. package/dist/components/entity/page/CreatedByModifiedBy.js +1 -1
  544. package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
  545. package/dist/components/entity/page/action_menu/EntityActionMenu.d.ts.map +1 -1
  546. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  547. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +1 -1
  548. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  549. package/dist/components/error/ErrorBanner.d.ts.map +1 -1
  550. package/dist/components/error/ErrorBanner.js +49 -46
  551. package/dist/components/error/ErrorBanner.js.map +1 -1
  552. package/dist/components/error/ErrorChip.d.ts.map +1 -1
  553. package/dist/components/error/ErrorChip.js +2 -1
  554. package/dist/components/error/ErrorChip.js.map +1 -1
  555. package/dist/components/file/upload/MultiFileUploadProgress.js +5 -5
  556. package/dist/components/row_renderers/Dataset.d.ts.map +1 -1
  557. package/dist/components/row_renderers/Dataset.js +6 -6
  558. package/dist/components/row_renderers/Dataset.js.map +1 -1
  559. package/dist/components/row_renderers/Funder.js +1 -1
  560. package/dist/components/row_renderers/Funder.js.map +1 -1
  561. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +14 -14
  562. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js +4 -4
  563. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
  564. package/dist/components/widgets/ElementWithTooltip.d.ts +6 -1
  565. package/dist/components/widgets/ElementWithTooltip.d.ts.map +1 -1
  566. package/dist/components/widgets/ElementWithTooltip.js +22 -14
  567. package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
  568. package/dist/components/widgets/RangeSlider/RangeSlider.d.ts.map +1 -1
  569. package/dist/components/widgets/RangeSlider/RangeSlider.js +1 -1
  570. package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
  571. package/dist/components/widgets/SynapseImage.js +1 -1
  572. package/dist/components/widgets/SynapseImage.js.map +1 -1
  573. package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts +16 -5
  574. package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
  575. package/dist/components/widgets/facet-nav/FacetNavPanel.js +115 -102
  576. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  577. package/dist/components/widgets/facet-nav/FacetPlotLegendList.d.ts.map +1 -1
  578. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js +4 -2
  579. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
  580. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js +1 -1
  581. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
  582. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.d.ts +2 -0
  583. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.d.ts.map +1 -1
  584. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
  585. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts +7 -0
  586. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts.map +1 -1
  587. package/dist/components/widgets/facet-nav/PlotsContainer.js +47 -45
  588. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  589. package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js +4 -4
  590. package/dist/components/widgets/facet-nav/useFacetPlots.d.ts +3 -2
  591. package/dist/components/widgets/facet-nav/useFacetPlots.d.ts.map +1 -1
  592. package/dist/components/widgets/facet-nav/useFacetPlots.js +16 -15
  593. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  594. package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js +4 -4
  595. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts +2 -2
  596. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts.map +1 -1
  597. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js +62 -60
  598. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  599. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.d.ts +2 -0
  600. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.d.ts.map +1 -1
  601. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js +10 -10
  602. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
  603. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts +1 -0
  604. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts.map +1 -1
  605. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js +2 -1
  606. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
  607. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.d.ts +3 -2
  608. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.d.ts.map +1 -1
  609. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
  610. package/dist/components/widgets/query-filter/FacetFilterControls.d.ts +3 -2
  611. package/dist/components/widgets/query-filter/FacetFilterControls.d.ts.map +1 -1
  612. package/dist/components/widgets/query-filter/FacetFilterControls.js +63 -62
  613. package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
  614. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.d.ts.map +1 -1
  615. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js +30 -29
  616. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
  617. package/dist/components/widgets/query-filter/RangeFacetFilter.js +5 -5
  618. package/dist/features/curator/dashboard/components/NextStepButton.d.ts.map +1 -1
  619. package/dist/features/curator/dashboard/components/NextStepButton.js +7 -6
  620. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  621. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +8 -8
  622. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  623. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +4 -4
  624. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  625. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +4 -4
  626. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  627. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js +1 -1
  628. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  629. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js +4 -4
  630. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js.map +1 -1
  631. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js +1 -1
  632. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js.map +1 -1
  633. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js +1 -1
  634. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js.map +1 -1
  635. package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js +10 -10
  636. package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js.map +1 -1
  637. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js +1 -1
  638. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
  639. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.d.ts +53 -0
  640. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.d.ts.map +1 -0
  641. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.js +391 -0
  642. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.js.map +1 -0
  643. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.d.ts +41 -0
  644. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.d.ts.map +1 -0
  645. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.js +379 -0
  646. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.js.map +1 -0
  647. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.d.ts +26 -0
  648. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.d.ts.map +1 -0
  649. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.js +112 -0
  650. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.js.map +1 -0
  651. package/dist/mocks/mockAnnotationColumns.d.ts.map +1 -1
  652. package/dist/mocks/mockAnnotationColumns.js +1 -1
  653. package/dist/mocks/mockAnnotationColumns.js.map +1 -1
  654. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +17 -0
  655. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -1
  656. package/dist/mocks/msw/handlers/aridhiaHandlers.js +62 -42
  657. package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -1
  658. package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts +21 -2
  659. package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts.map +1 -1
  660. package/dist/mocks/msw/handlers/asyncJobHandlers.js +30 -22
  661. package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
  662. package/dist/mocks/msw/handlers/cohortBuilderHandlers.d.ts +27 -0
  663. package/dist/mocks/msw/handlers/cohortBuilderHandlers.d.ts.map +1 -0
  664. package/dist/mocks/msw/handlers/cohortBuilderHandlers.js +158 -0
  665. package/dist/mocks/msw/handlers/cohortBuilderHandlers.js.map +1 -0
  666. package/dist/mocks/msw/handlers/entityHandlers.d.ts.map +1 -1
  667. package/dist/mocks/msw/handlers/entityHandlers.js +70 -67
  668. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  669. package/dist/mocks/msw/handlers/gridHandlers.js +2 -2
  670. package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
  671. package/dist/mocks/msw/handlers/subscriptionHandlers.js +1 -1
  672. package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
  673. package/dist/mocks/msw/handlers/userProfileHandlers.d.ts.map +1 -1
  674. package/dist/mocks/msw/handlers/userProfileHandlers.js +2 -2
  675. package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
  676. package/dist/mocks/msw/server.d.ts.map +1 -1
  677. package/dist/mocks/msw/server.js +4 -2
  678. package/dist/mocks/msw/server.js.map +1 -1
  679. package/dist/mocks/query/mockColumnCategoryTable.d.ts +19 -0
  680. package/dist/mocks/query/mockColumnCategoryTable.d.ts.map +1 -0
  681. package/dist/mocks/query/mockColumnCategoryTable.js +188 -0
  682. package/dist/mocks/query/mockColumnCategoryTable.js.map +1 -0
  683. package/dist/stories/ColorPaletteInspector.d.ts.map +1 -1
  684. package/dist/stories/ColorPaletteInspector.js +2 -2
  685. package/dist/stories/ColorPaletteInspector.js.map +1 -1
  686. package/dist/style/components/facet_nav/_facet-nav-panel.scss +8 -0
  687. package/dist/style/main.css +1 -1
  688. package/dist/synapse-queries/auth/useOIDC.js +2 -2
  689. package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
  690. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js +2 -2
  691. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js.map +1 -1
  692. package/dist/synapse-queries/challenge/useChallenge.js +2 -2
  693. package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
  694. package/dist/synapse-queries/chat/useChat.js +8 -8
  695. package/dist/synapse-queries/chat/useChat.js.map +1 -1
  696. package/dist/synapse-queries/curation/task/useCurationTask.js +10 -10
  697. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  698. package/dist/synapse-queries/dataaccess/useAccessRequirements.js +24 -24
  699. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  700. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js +4 -4
  701. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
  702. package/dist/synapse-queries/dataaccess/useEDuc.js +6 -6
  703. package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
  704. package/dist/synapse-queries/dataaccess/useFormTemplate.js +4 -4
  705. package/dist/synapse-queries/dataaccess/useFormTemplate.js.map +1 -1
  706. package/dist/synapse-queries/download/index.js +2 -2
  707. package/dist/synapse-queries/download/useDownloadList.d.ts +5 -0
  708. package/dist/synapse-queries/download/useDownloadList.d.ts.map +1 -1
  709. package/dist/synapse-queries/download/useDownloadList.js +14 -13
  710. package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
  711. package/dist/synapse-queries/entity/useEntity.d.ts.map +1 -1
  712. package/dist/synapse-queries/entity/useEntity.js +20 -20
  713. package/dist/synapse-queries/entity/useEntity.js.map +1 -1
  714. package/dist/synapse-queries/entity/useExportToADWorkbench.d.ts.map +1 -1
  715. package/dist/synapse-queries/entity/useExportToADWorkbench.js +2 -1
  716. package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
  717. package/dist/synapse-queries/entity/useExportToCavatica.d.ts.map +1 -1
  718. package/dist/synapse-queries/entity/useExportToCavatica.js +3 -2
  719. package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
  720. package/dist/synapse-queries/entity/useExportToPluto.d.ts.map +1 -1
  721. package/dist/synapse-queries/entity/useExportToPluto.js +2 -1
  722. package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
  723. package/dist/synapse-queries/entity/useGetQueryResultBundle.d.ts.map +1 -1
  724. package/dist/synapse-queries/entity/useGetQueryResultBundle.js +4 -7
  725. package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
  726. package/dist/synapse-queries/forum/useReply.js +6 -6
  727. package/dist/synapse-queries/forum/useReply.js.map +1 -1
  728. package/dist/synapse-queries/forum/useThread.js +14 -14
  729. package/dist/synapse-queries/forum/useThread.js.map +1 -1
  730. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js +1 -1
  731. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
  732. package/dist/synapse-queries/grid/useGridSession.js +4 -4
  733. package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
  734. package/dist/synapse-queries/index.js +177 -176
  735. package/dist/synapse-queries/oauth/useOAuthClient.js +9 -9
  736. package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
  737. package/dist/synapse-queries/portal/usePortal.js +7 -7
  738. package/dist/synapse-queries/portal/usePortal.js.map +1 -1
  739. package/dist/synapse-queries/subscription/useSubscription.js +4 -4
  740. package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
  741. package/dist/synapse-queries/table/useTableUpdateTransaction.js +2 -2
  742. package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
  743. package/dist/synapse-queries/team/useTeam.js +2 -2
  744. package/dist/synapse-queries/team/useTeam.js.map +1 -1
  745. package/dist/synapse-queries/team/useTeamList.d.ts.map +1 -1
  746. package/dist/synapse-queries/team/useTeamList.js +3 -3
  747. package/dist/synapse-queries/team/useTeamList.js.map +1 -1
  748. package/dist/synapse-queries/team/useTeamMembers.js +8 -8
  749. package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
  750. package/dist/synapse-queries/termsOfService/useTermsOfService.js +2 -2
  751. package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
  752. package/dist/synapse-queries/trash/useTrashCan.js +4 -4
  753. package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
  754. package/dist/synapse-queries/user/useCertificationQuiz.js +2 -2
  755. package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
  756. package/dist/synapse-queries/user/useFavorites.js +4 -4
  757. package/dist/synapse-queries/user/useFavorites.js.map +1 -1
  758. package/dist/synapse-queries/user/useGetUserChallenges.d.ts.map +1 -1
  759. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  760. package/dist/synapse-queries/user/useRevokeCertification.js +2 -2
  761. package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
  762. package/dist/synapse-queries/wiki/useWiki.js +10 -10
  763. package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
  764. package/dist/theme/DefaultTheme.d.ts.map +1 -1
  765. package/dist/theme/DefaultTheme.js +4 -1
  766. package/dist/theme/DefaultTheme.js.map +1 -1
  767. package/dist/tsconfig.build.tsbuildinfo +1 -1
  768. package/dist/utils/APIConstants.d.ts.map +1 -1
  769. package/dist/utils/APIConstants.js.map +1 -1
  770. package/dist/utils/AppUtils/AppUtils.js +1 -1
  771. package/dist/utils/AppUtils/AppUtils.js.map +1 -1
  772. package/dist/utils/ContentTypeUtils.js +4 -4
  773. package/dist/utils/ContentTypeUtils.js.map +1 -1
  774. package/dist/utils/PermissionLevelToAccessType.js +1 -1
  775. package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
  776. package/dist/utils/analytics/useGoogleAnalytics.js +1 -1
  777. package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
  778. package/dist/utils/context/DocumentMetadataContext.js +1 -1
  779. package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
  780. package/dist/utils/functions/AccessControlListUtils.d.ts.map +1 -1
  781. package/dist/utils/functions/AccessControlListUtils.js +3 -3
  782. package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
  783. package/dist/utils/functions/ArrayUtils.js +2 -2
  784. package/dist/utils/functions/ArrayUtils.js.map +1 -1
  785. package/dist/utils/functions/EntityTypeUtils.d.ts.map +1 -1
  786. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  787. package/dist/utils/functions/FileHandleUtils.js +1 -1
  788. package/dist/utils/functions/FileHandleUtils.js.map +1 -1
  789. package/dist/utils/functions/RegularExpressions.js +1 -1
  790. package/dist/utils/functions/RegularExpressions.js.map +1 -1
  791. package/dist/utils/functions/StringUtils.d.ts.map +1 -1
  792. package/dist/utils/functions/StringUtils.js +1 -2
  793. package/dist/utils/functions/StringUtils.js.map +1 -1
  794. package/dist/utils/functions/deepLinkingUtils.js +2 -2
  795. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  796. package/dist/utils/functions/enumerationFacet.d.ts +26 -0
  797. package/dist/utils/functions/enumerationFacet.d.ts.map +1 -0
  798. package/dist/utils/functions/enumerationFacet.js +27 -0
  799. package/dist/utils/functions/enumerationFacet.js.map +1 -0
  800. package/dist/utils/functions/facetCountUtils.d.ts +12 -0
  801. package/dist/utils/functions/facetCountUtils.d.ts.map +1 -0
  802. package/dist/utils/functions/facetCountUtils.js +9 -0
  803. package/dist/utils/functions/facetCountUtils.js.map +1 -0
  804. package/dist/utils/functions/getEndpoint.js.map +1 -1
  805. package/dist/utils/functions/getUserData.js +1 -1
  806. package/dist/utils/functions/getUserData.js.map +1 -1
  807. package/dist/utils/functions/queryUtils.d.ts +1 -1
  808. package/dist/utils/functions/queryUtils.d.ts.map +1 -1
  809. package/dist/utils/functions/queryUtils.js +26 -22
  810. package/dist/utils/functions/queryUtils.js.map +1 -1
  811. package/dist/utils/functions/testDownloadSpeed.d.ts.map +1 -1
  812. package/dist/utils/functions/testDownloadSpeed.js +17 -26
  813. package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
  814. package/dist/utils/functions/unCamelCase.js +1 -1
  815. package/dist/utils/functions/unCamelCase.js.map +1 -1
  816. package/dist/utils/hooks/useGetInfoFromIds.js +5 -5
  817. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  818. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js +1 -1
  819. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
  820. package/dist/utils/hooks/useLogin.d.ts.map +1 -1
  821. package/dist/utils/hooks/useLogin.js +5 -5
  822. package/dist/utils/hooks/useLogin.js.map +1 -1
  823. package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
  824. package/dist/utils/jsonschema/collectTopLevelProperties.d.ts +6 -0
  825. package/dist/utils/jsonschema/collectTopLevelProperties.d.ts.map +1 -1
  826. package/dist/utils/jsonschema/collectTopLevelProperties.js +1 -1
  827. package/dist/utils/jsonschema/collectTopLevelProperties.js.map +1 -1
  828. package/dist/utils/jsonschema/getNumberOrEnumInfo.d.ts +22 -0
  829. package/dist/utils/jsonschema/getNumberOrEnumInfo.d.ts.map +1 -0
  830. package/dist/utils/jsonschema/getNumberOrEnumInfo.js +39 -0
  831. package/dist/utils/jsonschema/getNumberOrEnumInfo.js.map +1 -0
  832. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.d.ts +1 -0
  833. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.d.ts.map +1 -1
  834. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js +1 -1
  835. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
  836. package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts +5 -0
  837. package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts.map +1 -1
  838. package/dist/utils/jsonschema/getSchemaPropertyInfo.js +30 -15
  839. package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
  840. package/dist/utils/jsonschema/submissionContext.js +2 -2
  841. package/dist/utils/jsonschema/submissionContext.js.map +1 -1
  842. package/package.json +7 -6
@@ -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,21 +1,30 @@
1
1
  import { JSONSchema7Type } from 'json-schema';
2
2
  import { CellProps, Column } from '@sage-bionetworks/react-datasheet-grid';
3
3
  export type AutocompleteOption = string | number | boolean | null | Record<string, unknown> | Array<unknown>;
4
+ /** Converts text typed or pasted into a cell into the value stored in the model */
5
+ export type ParseFreeText = (freeText: string) => unknown;
4
6
  export type AutocompleteCellProps = CellProps & {
5
7
  rowData: AutocompleteOption;
6
8
  setRowData: (value: AutocompleteOption) => void;
7
9
  choices: AutocompleteOption[];
8
10
  colType?: JSONSchema7Type;
11
+ /**
12
+ * Replaces parsing typed text by `colType`. Compared by reference when
13
+ * memoizing the cell, so it must be stable across renders.
14
+ */
15
+ parseFreeText?: ParseFreeText;
9
16
  clearValue?: undefined | null;
10
17
  };
11
18
  export declare function castCellValueToString(toCast: any): string;
12
- export declare function AutocompleteCell({ rowData, setRowData, choices, colType, focus, stopEditing, active, clearValue, }: AutocompleteCellProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function AutocompleteCell({ rowData, setRowData, choices, colType, parseFreeText, focus, stopEditing, active, clearValue, }: AutocompleteCellProps): import("react/jsx-runtime").JSX.Element;
13
20
  export declare function areAutocompleteCellPropsEqual(prevProps: AutocompleteCellProps, nextProps: AutocompleteCellProps): boolean;
14
21
  export declare const MemoizedAutocompleteCell: import("react").NamedExoticComponent<AutocompleteCellProps>;
15
22
  export type AutocompleteColumnProps = {
16
23
  choices: AutocompleteOption[];
17
24
  colType?: JSONSchema7Type;
25
+ /** Parses typed and pasted text. When omitted, both are parsed by `colType`. */
26
+ parseFreeText?: ParseFreeText;
18
27
  clearValue: undefined | null;
19
28
  };
20
- export declare function autocompleteColumn({ choices, colType, clearValue, }: AutocompleteColumnProps): Partial<Column>;
29
+ export declare function autocompleteColumn({ choices, colType, parseFreeText, clearValue, }: AutocompleteColumnProps): Partial<Column>;
21
30
  //# sourceMappingURL=AutocompleteColumn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteColumn.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/columns/AutocompleteColumn.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAW7C,OAAO,EAEL,SAAS,EACT,MAAM,EACP,MAAM,wCAAwC,CAAA;AAoB/C,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,KAAK,CAAC,OAAO,CAAC,CAAA;AAElB,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG;IAC9C,OAAO,EAAE,kBAAkB,CAAA;IAC3B,UAAU,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAA;IAC/C,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,UAAU,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAC9B,CAAA;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAQzD;AAqBD,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,UAAU,EACV,OAAO,EACP,OAAO,EACP,KAAK,EACL,WAAW,EACX,MAAM,EACN,UAAsB,GACvB,EAAE,qBAAqB,2CAoJvB;AAMD,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,qBAAqB,EAChC,SAAS,EAAE,qBAAqB,WAUjC;AAED,eAAO,MAAM,wBAAwB,6DAGpC,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,UAAU,EAAE,SAAS,GAAG,IAAI,CAAA;CAC7B,CAAA;AAED,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,OAAO,EACP,UAAU,GACX,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgB3C"}
1
+ {"version":3,"file":"AutocompleteColumn.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/columns/AutocompleteColumn.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAW7C,OAAO,EAEL,SAAS,EACT,MAAM,EACP,MAAM,wCAAwC,CAAA;AAoB/C,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,KAAK,CAAC,OAAO,CAAC,CAAA;AAElB,mFAAmF;AACnF,MAAM,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAA;AAYzD,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG;IAC9C,OAAO,EAAE,kBAAkB,CAAA;IAC3B,UAAU,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAA;IAC/C,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,UAAU,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAC9B,CAAA;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAQzD;AAqBD,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,UAAU,EACV,OAAO,EACP,OAAO,EACP,aAAa,EACb,KAAK,EACL,WAAW,EACX,MAAM,EACN,UAAsB,GACvB,EAAE,qBAAqB,2CAmJvB;AAMD,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,qBAAqB,EAChC,SAAS,EAAE,qBAAqB,WAWjC;AAED,eAAO,MAAM,wBAAwB,6DAGpC,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,gFAAgF;IAChF,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,UAAU,EAAE,SAAS,GAAG,IAAI,CAAA;CAC7B,CAAA;AAED,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,OAAO,EACP,aAAa,EACb,UAAU,GACX,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB3C"}