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":"schemaFieldUtils.js","names":[],"sources":["../../../src/components/FormTemplateEditor/schemaFieldUtils.ts"],"sourcesContent":["import { RJSFSchema } from '@rjsf/utils'\n\n/**\n * The set of property shapes the simple editor knows how to author. Anything\n * outside this set surfaces in the UI as \"advanced\" and must be edited via the\n * raw JSON Schema view.\n */\nexport type SimpleFieldType =\n | 'text'\n | 'number'\n | 'boolean'\n | 'choice'\n | 'multiChoice'\n | 'file'\n\nexport const FIELD_TYPE_OPTIONS: { value: SimpleFieldType; label: string }[] = [\n { value: 'text', label: 'Text' },\n { value: 'number', label: 'Number' },\n { value: 'boolean', label: 'Yes / No' },\n { value: 'choice', label: 'Single choice' },\n { value: 'multiChoice', label: 'Multiple choice (select many)' },\n { value: 'file', label: 'File upload' },\n]\n\nexport function detectFieldType(\n prop: RJSFSchema | undefined,\n): SimpleFieldType | null {\n if (!prop || typeof prop !== 'object') return null\n if (prop.format === 'synapse-filehandle-id') return 'file'\n if (prop.type === 'string' && Array.isArray(prop.enum)) return 'choice'\n // RJSF renders an array as a multi-select only when `uniqueItems` is set; without it the\n // property renders as a repeatable list, which the simple editor does not author.\n const items = prop.items as RJSFSchema | undefined\n if (\n prop.type === 'array' &&\n prop.uniqueItems === true &&\n items?.type === 'string' &&\n Array.isArray(items.enum)\n ) {\n return 'multiChoice'\n }\n if (prop.type === 'string' && !prop.format) return 'text'\n if (prop.type === 'number' || prop.type === 'integer') return 'number'\n if (prop.type === 'boolean') return 'boolean'\n return null\n}\n\nexport function fieldTypeLabel(type: SimpleFieldType | null): string {\n if (type === null) return 'Advanced'\n return FIELD_TYPE_OPTIONS.find(opt => opt.value === type)?.label ?? 'Advanced'\n}\n\n/** The options a 'choice' (`enum`) or 'multiChoice' (`items.enum`) property declares; empty if none. */\nexport function choiceOptions(prop: RJSFSchema): string[] {\n const options = prop.enum ?? (prop.items as RJSFSchema | undefined)?.enum\n return Array.isArray(options) ? (options as string[]) : []\n}\n\n/** Build a fresh schema body for the given simple type, preserving label and help text. */\nexport function applyFieldType(\n prev: RJSFSchema,\n type: SimpleFieldType,\n): RJSFSchema {\n const next: RJSFSchema = {\n title: prev.title,\n description: prev.description,\n }\n const existingChoices = choiceOptions(prev)\n // A choice field needs at least one option to be answerable.\n const choices = existingChoices.length > 0 ? existingChoices : ['Option 1']\n switch (type) {\n case 'text':\n next.type = 'string'\n break\n case 'number':\n next.type = 'number'\n break\n case 'boolean':\n next.type = 'boolean'\n break\n case 'choice':\n next.type = 'string'\n next.enum = choices\n break\n case 'multiChoice':\n next.type = 'array'\n next.items = { type: 'string', enum: choices }\n next.uniqueItems = true\n break\n case 'file':\n next.type = 'number'\n next.format = 'synapse-filehandle-id'\n break\n }\n return next\n}\n\n/** Derive a unique camelCase JSON property key from a display title. */\nexport function generatePropertyKey(\n title: string,\n existingKeys: Set<string>,\n): string {\n const base =\n title\n .toLowerCase()\n .replace(/[^a-z0-9\\s]/g, '')\n .trim()\n .split(/\\s+/)\n .filter(Boolean)\n .map((w, i) => (i === 0 ? w : w.charAt(0).toUpperCase() + w.slice(1)))\n .join('') || 'field'\n let key = base\n let i = 1\n while (existingKeys.has(key)) {\n i += 1\n key = `${base}${i}`\n }\n return key\n}\n\n/**\n * Sanitize a manually-typed property key: strip characters that aren't\n * valid in a JSON Schema property key used as a JS identifier, preserving\n * the editor's casing (unlike `generatePropertyKey`, which derives a\n * camelCase key from a display title).\n */\nexport function sanitizePropertyKey(raw: string): string {\n const stripped = raw.replace(/[^A-Za-z0-9_]/g, '')\n return /^[0-9]/.test(stripped) ? `_${stripped}` : stripped\n}\n"],"mappings":";AAeA,IAAa,IAAkE;CAC7E;EAAE,OAAO;EAAQ,OAAO;CAAO;CAC/B;EAAE,OAAO;EAAU,OAAO;CAAS;CACnC;EAAE,OAAO;EAAW,OAAO;CAAW;CACtC;EAAE,OAAO;EAAU,OAAO;CAAgB;CAC1C;EAAE,OAAO;EAAe,OAAO;CAAgC;CAC/D;EAAE,OAAO;EAAQ,OAAO;CAAc;AACxC;AAEA,SAAgB,EACd,GACwB;CACxB,IAAI,CAAC,KAAQ,OAAO,KAAS,UAAU,OAAO;CAC9C,IAAI,EAAK,WAAW,yBAAyB,OAAO;CACpD,IAAI,EAAK,SAAS,YAAY,MAAM,QAAQ,EAAK,IAAI,GAAG,OAAO;CAG/D,IAAM,IAAQ,EAAK;CAYnB,OAVE,EAAK,SAAS,WACd,EAAK,gBAAgB,MACrB,GAAO,SAAS,YAChB,MAAM,QAAQ,EAAM,IAAI,IAEjB,gBAEL,EAAK,SAAS,YAAY,CAAC,EAAK,SAAe,SAC/C,EAAK,SAAS,YAAY,EAAK,SAAS,YAAkB,WAC1D,EAAK,SAAS,YAAkB,YAC7B;AACT;AAEA,SAAgB,EAAe,GAAsC;CAEnE,OADI,MAAS,OAAa,aACnB,EAAmB,MAAK,MAAO,EAAI,UAAU,CAAI,GAAG,SAAS;AACtE;AAGA,SAAgB,EAAc,GAA4B;CACxD,IAAM,IAAU,EAAK,QAAS,EAAK,OAAkC;CACrE,OAAO,MAAM,QAAQ,CAAO,IAAK,IAAuB,CAAC;AAC3D;AAGA,SAAgB,EACd,GACA,GACY;CACZ,IAAM,IAAmB;EACvB,OAAO,EAAK;EACZ,aAAa,EAAK;CACpB,GACM,IAAkB,EAAc,CAAI,GAEpC,IAAU,EAAgB,SAAS,IAAI,IAAkB,CAAC,UAAU;CAC1E,QAAQ,GAAR;EACE,KAAK;GACH,EAAK,OAAO;GACZ;EACF,KAAK;GACH,EAAK,OAAO;GACZ;EACF,KAAK;GACH,EAAK,OAAO;GACZ;EACF,KAAK;GAEH,AADA,EAAK,OAAO,UACZ,EAAK,OAAO;GACZ;EACF,KAAK;GAGH,AAFA,EAAK,OAAO,SACZ,EAAK,QAAQ;IAAE,MAAM;IAAU,MAAM;GAAQ,GAC7C,EAAK,cAAc;GACnB;EACF,KAAK;GAEH,AADA,EAAK,OAAO,UACZ,EAAK,SAAS;GACd;CACJ;CACA,OAAO;AACT;AAGA,SAAgB,EACd,GACA,GACQ;CACR,IAAM,IACJ,EACG,YAAY,EACZ,QAAQ,gBAAgB,EAAE,EAC1B,KAAK,EACL,MAAM,KAAK,EACX,OAAO,OAAO,EACd,KAAK,GAAG,MAAO,MAAM,IAAI,IAAI,EAAE,OAAO,CAAC,EAAE,YAAY,IAAI,EAAE,MAAM,CAAC,CAAE,EACpE,KAAK,EAAE,KAAK,SACb,IAAM,GACN,IAAI;CACR,OAAO,EAAa,IAAI,CAAG,IAEzB,AADA,KAAK,GACL,IAAM,GAAG,IAAO;CAElB,OAAO;AACT;AAQA,SAAgB,EAAoB,GAAqB;CACvD,IAAM,IAAW,EAAI,QAAQ,kBAAkB,EAAE;CACjD,OAAO,SAAS,KAAK,CAAQ,IAAI,IAAI,MAAa;AACpD"}
1
+ {"version":3,"file":"schemaFieldUtils.js","names":[],"sources":["../../../src/components/FormTemplateEditor/schemaFieldUtils.ts"],"sourcesContent":["import { RJSFSchema } from '@rjsf/utils'\n\n/**\n * The set of property shapes the simple editor knows how to author. Anything\n * outside this set surfaces in the UI as \"advanced\" and must be edited via the\n * raw JSON Schema view.\n */\nexport type SimpleFieldType =\n | 'text'\n | 'number'\n | 'boolean'\n | 'choice'\n | 'multiChoice'\n | 'file'\n\nexport const FIELD_TYPE_OPTIONS: { value: SimpleFieldType; label: string }[] = [\n { value: 'text', label: 'Text' },\n { value: 'number', label: 'Number' },\n { value: 'boolean', label: 'Yes / No' },\n { value: 'choice', label: 'Single choice' },\n { value: 'multiChoice', label: 'Multiple choice (select many)' },\n { value: 'file', label: 'File upload' },\n]\n\nexport function detectFieldType(\n prop: RJSFSchema | undefined,\n): SimpleFieldType | null {\n if (!prop || typeof prop !== 'object') return null\n if (prop.format === 'synapse-filehandle-id') return 'file'\n if (prop.type === 'string' && Array.isArray(prop.enum)) return 'choice'\n // RJSF renders an array as a multi-select only when `uniqueItems` is set; without it the\n // property renders as a repeatable list, which the simple editor does not author.\n const items = prop.items as RJSFSchema | undefined\n if (\n prop.type === 'array' &&\n prop.uniqueItems === true &&\n items?.type === 'string' &&\n Array.isArray(items.enum)\n ) {\n return 'multiChoice'\n }\n if (prop.type === 'string' && !prop.format) return 'text'\n if (prop.type === 'number' || prop.type === 'integer') return 'number'\n if (prop.type === 'boolean') return 'boolean'\n return null\n}\n\nexport function fieldTypeLabel(type: SimpleFieldType | null): string {\n if (type === null) return 'Advanced'\n return FIELD_TYPE_OPTIONS.find(opt => opt.value === type)?.label ?? 'Advanced'\n}\n\n/** The options a 'choice' (`enum`) or 'multiChoice' (`items.enum`) property declares; empty if none. */\nexport function choiceOptions(prop: RJSFSchema): string[] {\n const options = prop.enum ?? (prop.items as RJSFSchema | undefined)?.enum\n return Array.isArray(options) ? (options as string[]) : []\n}\n\n/** Build a fresh schema body for the given simple type, preserving label and help text. */\nexport function applyFieldType(\n prev: RJSFSchema,\n type: SimpleFieldType,\n): RJSFSchema {\n const next: RJSFSchema = {\n title: prev.title,\n description: prev.description,\n }\n const existingChoices = choiceOptions(prev)\n // A choice field needs at least one option to be answerable.\n const choices = existingChoices.length > 0 ? existingChoices : ['Option 1']\n switch (type) {\n case 'text':\n next.type = 'string'\n break\n case 'number':\n next.type = 'number'\n break\n case 'boolean':\n next.type = 'boolean'\n break\n case 'choice':\n next.type = 'string'\n next.enum = choices\n break\n case 'multiChoice':\n next.type = 'array'\n next.items = { type: 'string', enum: choices }\n next.uniqueItems = true\n break\n case 'file':\n next.type = 'number'\n next.format = 'synapse-filehandle-id'\n break\n }\n return next\n}\n\n/** Derive a unique camelCase JSON property key from a display title. */\nexport function generatePropertyKey(\n title: string,\n existingKeys: Set<string>,\n): string {\n const base =\n title\n .toLowerCase()\n .replaceAll(/[^a-z0-9\\s]/g, '')\n .trim()\n .split(/\\s+/)\n .filter(Boolean)\n .map((w, i) => (i === 0 ? w : w.charAt(0).toUpperCase() + w.slice(1)))\n .join('') || 'field'\n let key = base\n let i = 1\n while (existingKeys.has(key)) {\n i += 1\n key = `${base}${i}`\n }\n return key\n}\n\n/**\n * Sanitize a manually-typed property key: strip characters that aren't\n * valid in a JSON Schema property key used as a JS identifier, preserving\n * the editor's casing (unlike `generatePropertyKey`, which derives a\n * camelCase key from a display title).\n */\nexport function sanitizePropertyKey(raw: string): string {\n const stripped = raw.replaceAll(/[^A-Za-z0-9_]/g, '')\n return /^[0-9]/.test(stripped) ? `_${stripped}` : stripped\n}\n"],"mappings":";AAeA,IAAa,IAAkE;CAC7E;EAAE,OAAO;EAAQ,OAAO;CAAO;CAC/B;EAAE,OAAO;EAAU,OAAO;CAAS;CACnC;EAAE,OAAO;EAAW,OAAO;CAAW;CACtC;EAAE,OAAO;EAAU,OAAO;CAAgB;CAC1C;EAAE,OAAO;EAAe,OAAO;CAAgC;CAC/D;EAAE,OAAO;EAAQ,OAAO;CAAc;AACxC;AAEA,SAAgB,EACd,GACwB;CACxB,IAAI,CAAC,KAAQ,OAAO,KAAS,UAAU,OAAO;CAC9C,IAAI,EAAK,WAAW,yBAAyB,OAAO;CACpD,IAAI,EAAK,SAAS,YAAY,MAAM,QAAQ,EAAK,IAAI,GAAG,OAAO;CAG/D,IAAM,IAAQ,EAAK;CAYnB,OAVE,EAAK,SAAS,WACd,EAAK,gBAAgB,MACrB,GAAO,SAAS,YAChB,MAAM,QAAQ,EAAM,IAAI,IAEjB,gBAEL,EAAK,SAAS,YAAY,CAAC,EAAK,SAAe,SAC/C,EAAK,SAAS,YAAY,EAAK,SAAS,YAAkB,WAC1D,EAAK,SAAS,YAAkB,YAC7B;AACT;AAEA,SAAgB,EAAe,GAAsC;CAEnE,OADI,MAAS,OAAa,aACnB,EAAmB,MAAK,MAAO,EAAI,UAAU,CAAI,GAAG,SAAS;AACtE;AAGA,SAAgB,EAAc,GAA4B;CACxD,IAAM,IAAU,EAAK,QAAS,EAAK,OAAkC;CACrE,OAAO,MAAM,QAAQ,CAAO,IAAK,IAAuB,CAAC;AAC3D;AAGA,SAAgB,EACd,GACA,GACY;CACZ,IAAM,IAAmB;EACvB,OAAO,EAAK;EACZ,aAAa,EAAK;CACpB,GACM,IAAkB,EAAc,CAAI,GAEpC,IAAU,EAAgB,SAAS,IAAI,IAAkB,CAAC,UAAU;CAC1E,QAAQ,GAAR;EACE,KAAK;GACH,EAAK,OAAO;GACZ;EACF,KAAK;GACH,EAAK,OAAO;GACZ;EACF,KAAK;GACH,EAAK,OAAO;GACZ;EACF,KAAK;GAEH,AADA,EAAK,OAAO,UACZ,EAAK,OAAO;GACZ;EACF,KAAK;GAGH,AAFA,EAAK,OAAO,SACZ,EAAK,QAAQ;IAAE,MAAM;IAAU,MAAM;GAAQ,GAC7C,EAAK,cAAc;GACnB;EACF,KAAK;GAEH,AADA,EAAK,OAAO,UACZ,EAAK,SAAS;GACd;CACJ;CACA,OAAO;AACT;AAGA,SAAgB,EACd,GACA,GACQ;CACR,IAAM,IACJ,EACG,YAAY,EACZ,WAAW,gBAAgB,EAAE,EAC7B,KAAK,EACL,MAAM,KAAK,EACX,OAAO,OAAO,EACd,KAAK,GAAG,MAAO,MAAM,IAAI,IAAI,EAAE,OAAO,CAAC,EAAE,YAAY,IAAI,EAAE,MAAM,CAAC,CAAE,EACpE,KAAK,EAAE,KAAK,SACb,IAAM,GACN,IAAI;CACR,OAAO,EAAa,IAAI,CAAG,IAEzB,AADA,KAAK,GACL,IAAM,GAAG,IAAO;CAElB,OAAO;AACT;AAQA,SAAgB,EAAoB,GAAqB;CACvD,IAAM,IAAW,EAAI,WAAW,kBAAkB,EAAE;CACpD,OAAO,SAAS,KAAK,CAAQ,IAAI,IAAI,MAAa;AACpD"}
@@ -1,11 +1,11 @@
1
1
  import { useDebouncedEffect as e } from "../../utils/hooks/useDebouncedEffect.js";
2
+ import { useQueryVisualizationContext as t } from "../QueryVisualizationWrapper/QueryVisualizationContext.js";
2
3
  import "../../utils/hooks/index.js";
3
- import { HelpPopover as t } from "../HelpPopover/HelpPopover.js";
4
- import n from "../IconSvg/IconSvg.js";
5
- import { useQueryContext as r } from "../QueryContext/QueryContext.js";
4
+ import { HelpPopover as n } from "../HelpPopover/HelpPopover.js";
5
+ import r from "../IconSvg/IconSvg.js";
6
+ import { useQueryContext as i } from "../QueryContext/QueryContext.js";
6
7
  import "../QueryContext/index.js";
7
- import { useGetQueryMetadata as i } from "../QueryWrapper/useGetQueryMetadata.js";
8
- import { useQueryVisualizationContext as a } from "../QueryVisualizationWrapper/QueryVisualizationContext.js";
8
+ import { useGetQueryMetadata as a } from "../QueryWrapper/useGetQueryMetadata.js";
9
9
  import "../QueryVisualizationWrapper/index.js";
10
10
  import { updateQueryUsingSearchTerm as o } from "./FullTextSearchUtils.js";
11
11
  import { IconSvgButton as s } from "../IconSvgButton.js";
@@ -15,7 +15,7 @@ import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
15
15
  //#region src/components/FullTextSearch/FullTextSearch.tsx
16
16
  var _ = 3, v = 300;
17
17
  function y({ ftsConfig: y }) {
18
- let { executeQueryRequest: b } = r(), { showSearchBar: x } = a(), [S, C] = u(""), [w, T] = u([]), E = l(null), D = y?.minSearchQueryLength ?? _, { data: O } = i(), k = O?.columnModels;
18
+ let { executeQueryRequest: b } = i(), { showSearchBar: x } = t(), [S, C] = u(""), [w, T] = u([]), E = l(null), D = y?.minSearchQueryLength ?? _, { data: O } = a(), k = O?.columnModels;
19
19
  c(() => {
20
20
  (!y?.getSuggestions || S.trim().length < D) && T([]);
21
21
  }, [
@@ -35,7 +35,7 @@ function y({ ftsConfig: y }) {
35
35
  e.preventDefault(), S.trim().length < D ? E.current?.setCustomValidity(`Search term must have a minimum of ${D} characters`) : A(S);
36
36
  }, M = (e) => {
37
37
  E.current?.setCustomValidity(""), C(e.currentTarget.value);
38
- }, N = /* @__PURE__ */ h(n, {
38
+ }, N = /* @__PURE__ */ h(r, {
39
39
  icon: "search",
40
40
  wrap: !1,
41
41
  sx: {
@@ -48,7 +48,7 @@ function y({ ftsConfig: y }) {
48
48
  onClick: () => {
49
49
  C(""), T([]);
50
50
  }
51
- }), y?.searchHelpURL && /* @__PURE__ */ h(t, {
51
+ }), y?.searchHelpURL && /* @__PURE__ */ h(n, {
52
52
  markdownText: "This search bar is powered by MySQL Full Text Search.",
53
53
  helpUrl: y.searchHelpURL,
54
54
  placement: "left"
@@ -1 +1 @@
1
- {"version":3,"file":"CardUtils.js","names":[],"sources":["../../../src/components/GenericCard/CardUtils.tsx"],"sourcesContent":["import { CardLink } from '@/components/CardContainer/CardLink'\nimport { isTableEntity } from '@/utils/functions/EntityTypeUtils'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport {\n convertDoiToLink,\n SYNAPSE_ENTITY_ID_REGEX,\n} from '@/utils/functions/RegularExpressions'\nimport { TargetEnum } from '@/utils/html/TargetEnum'\nimport { isExternalLink } from '@/utils/functions/IsExternalLink'\nimport {\n ColumnModel,\n Entity,\n FileHandleAssociateType,\n FileHandleAssociation,\n SelectColumn,\n} from '@sage-bionetworks/synapse-types'\n\nexport const getFileHandleAssociation = (\n table?: Entity,\n fileHandleId?: string,\n rowSynapseId?: string, // only applicable if this is an EntityView\n) => {\n let fileHandleAssociation: FileHandleAssociation | undefined = undefined\n if (table && fileHandleId) {\n if (isTableEntity(table)) {\n // The file handle is in the table\n fileHandleAssociation = {\n fileHandleId,\n associateObjectId: table?.id ?? '',\n associateObjectType: FileHandleAssociateType.TableEntity,\n }\n } else if (rowSynapseId) {\n // We're looking at a view, so the FileEntity (whose ID matches the row ID) gives permission to download the file handle\n fileHandleAssociation = {\n fileHandleId,\n associateObjectId: rowSynapseId,\n associateObjectType: FileHandleAssociateType.FileEntity,\n }\n }\n }\n return fileHandleAssociation\n}\nexport const getValueOrMultiValue = ({\n columnName,\n value,\n selectColumns,\n columnModels,\n}: {\n columnName?: string\n value?: string\n selectColumns?: SelectColumn[]\n columnModels?: ColumnModel[]\n}): ValueOrMultiValue => {\n if (!value) {\n return {\n str: '',\n strList: undefined,\n selectColumn: undefined,\n }\n }\n const selectedColumnOrUndefined =\n selectColumns?.find(el => el.name === columnName) ||\n columnModels?.find(el => el.name === columnName)\n const isMultiValue = selectedColumnOrUndefined?.columnType.endsWith('_LIST')\n\n if (isMultiValue) {\n let val: any = value\n let strList: any\n try {\n strList = JSON.parse(val)\n val = (strList as string[]).join(', ')\n return {\n strList,\n str: val,\n selectColumn: selectedColumnOrUndefined,\n }\n } catch (e) {\n console.error(\n 'Could not parse multivalue string ',\n val,\n ' caught err ',\n e,\n )\n }\n }\n return {\n str: value,\n selectColumn: selectedColumnOrUndefined,\n }\n}\ntype ValueOrMultiValue = {\n str: string\n strList?: string[]\n selectColumn?: SelectColumn\n}\n\nexport function getCardLinkHref(\n cardLink: CardLink | undefined,\n data: string[] | undefined,\n schema?: Record<string, number>,\n rowId?: number,\n): string | undefined {\n if (cardLink) {\n if (!data || !schema) {\n throw Error('Must specify CardLink and data for linking to work')\n }\n const { matchColumnName, overrideValueWithRowID } = cardLink\n\n // PORTALS-2088: Return the link, unless...\n // an overrideLinkURLColumnName has been set and its value is defined.\n // In this case, just use the overrideLinkURLColumnName value\n if ('overrideLinkURLColumnName' in cardLink) {\n const { overrideLinkURLColumnName, overrideLinkURLColumnTransform } =\n cardLink\n if (schema[overrideLinkURLColumnName]) {\n const indexOfOverrideLinkURLColumnName =\n schema[overrideLinkURLColumnName]\n const overrideLinkValue = data[indexOfOverrideLinkURLColumnName]\n if (overrideLinkValue && overrideLinkURLColumnTransform) {\n return overrideLinkURLColumnTransform(overrideLinkValue)\n } else if (overrideLinkValue) {\n return overrideLinkValue\n }\n }\n }\n\n const indexInData = schema[matchColumnName]\n if (indexInData === undefined) {\n console.error(\n `Could not find match for data: ${data} with columnName ${matchColumnName}`,\n )\n } else if ('baseURL' in cardLink) {\n const { baseURL, URLColumnName, urlParamStyle = 'query-param' } = cardLink\n const value = overrideValueWithRowID ? `syn${rowId}` : data[indexInData]\n if (value) {\n // value is defined!\n if (urlParamStyle === 'path-segment') {\n return `/${baseURL}/${encodeURIComponent(value)}`\n }\n return `/${baseURL}?${URLColumnName}=${encodeURIComponent(value)}`\n }\n }\n }\n return undefined\n}\n\nexport function getLinkParams(\n link: string,\n cardLinkConfig: CardLink | undefined,\n data: string[] | undefined,\n schema?: Record<string, number>,\n rowId?: number,\n) {\n link = link.trim()\n let href = link\n const doiLink = convertDoiToLink(href)\n if (link.match(SYNAPSE_ENTITY_ID_REGEX)) {\n // its a synId\n href = `${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${link}`\n } else if (doiLink) {\n href = doiLink\n } else if (cardLinkConfig) {\n href = getCardLinkHref(cardLinkConfig, data, schema, rowId) ?? ''\n }\n\n const isExternal = Boolean(href && isExternalLink(href))\n const defaultTarget = isExternal\n ? TargetEnum.NEW_WINDOW\n : TargetEnum.CURRENT_WINDOW\n\n const target = cardLinkConfig?.target ?? defaultTarget\n return { href, target }\n}\n"],"mappings":";;;;;;;AAiBA,IAAa,KACX,GACA,GACA,MACG;CACH,IAAI;CAkBJ,OAjBI,KAAS,MACP,EAAc,CAAK,IAErB,IAAwB;EACtB;EACA,mBAAmB,GAAO,MAAM;EAChC,qBAAqB,EAAwB;CAC/C,IACS,MAET,IAAwB;EACtB;EACA,mBAAmB;EACnB,qBAAqB,EAAwB;CAC/C,KAGG;AACT,GACa,KAAwB,EACnC,eACA,UACA,kBACA,sBAMuB;CACvB,IAAI,CAAC,GACH,OAAO;EACL,KAAK;EACL,SAAS,KAAA;EACT,cAAc,KAAA;CAChB;CAEF,IAAM,IACJ,GAAe,MAAK,MAAM,EAAG,SAAS,CAAU,KAChD,GAAc,MAAK,MAAM,EAAG,SAAS,CAAU;CAGjD,IAFqB,GAA2B,WAAW,SAAS,OAAO,GAEzD;EAChB,IAAI,IAAW,GACX;EACJ,IAAI;GAGF,OAFA,IAAU,KAAK,MAAM,CAAG,GACxB,IAAO,EAAqB,KAAK,IAAI,GAC9B;IACL;IACA,KAAK;IACL,cAAc;GAChB;EACF,SAAS,GAAG;GACV,QAAQ,MACN,sCACA,GACA,gBACA,CACF;EACF;CACF;CACA,OAAO;EACL,KAAK;EACL,cAAc;CAChB;AACF;AAOA,SAAgB,EACd,GACA,GACA,GACA,GACoB;CACpB,IAAI,GAAU;EACZ,IAAI,CAAC,KAAQ,CAAC,GACZ,MAAM,MAAM,oDAAoD;EAElE,IAAM,EAAE,oBAAiB,8BAA2B;EAKpD,IAAI,+BAA+B,GAAU;GAC3C,IAAM,EAAE,8BAA2B,sCACjC;GACF,IAAI,EAAO,IAA4B;IAGrC,IAAM,IAAoB,EADxB,EAAO;IAET,IAAI,KAAqB,GACvB,OAAO,EAA+B,CAAiB;IAClD,IAAI,GACT,OAAO;GAEX;EACF;EAEA,IAAM,IAAc,EAAO;EAC3B,IAAI,MAAgB,KAAA,GAClB,QAAQ,MACN,kCAAkC,EAAK,mBAAmB,GAC5D;OACK,IAAI,aAAa,GAAU;GAChC,IAAM,EAAE,YAAS,kBAAe,mBAAgB,kBAAkB,GAC5D,IAAQ,IAAyB,MAAM,MAAU,EAAK;GAC5D,IAAI,GAKF,OAHI,MAAkB,iBACb,IAAI,EAAQ,GAAG,mBAAmB,CAAK,MAEzC,IAAI,EAAQ,GAAG,EAAc,GAAG,mBAAmB,CAAK;EAEnE;CACF;AAEF;AAEA,SAAgB,EACd,GACA,GACA,GACA,GACA,GACA;CACA,IAAO,EAAK,KAAK;CACjB,IAAI,IAAO,GACL,IAAU,EAAiB,CAAI;CACrC,AAAI,EAAK,MAAM,CAAuB,IAEpC,IAAO,GAAG,EAA2B,OAAO,UAAU,MAC7C,IACT,IAAO,IACE,MACT,IAAO,EAAgB,GAAgB,GAAM,GAAQ,CAAK,KAAK;CAIjE,IAAM,IADqB,KAAQ,EAAe,CAAI,IAElD,EAAW,aACX,EAAW,gBAET,IAAS,GAAgB,UAAU;CACzC,OAAO;EAAE;EAAM;CAAO;AACxB"}
1
+ {"version":3,"file":"CardUtils.js","names":[],"sources":["../../../src/components/GenericCard/CardUtils.tsx"],"sourcesContent":["import { CardLink } from '@/components/CardContainer/CardLink'\nimport { isTableEntity } from '@/utils/functions/EntityTypeUtils'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport {\n convertDoiToLink,\n SYNAPSE_ENTITY_ID_REGEX,\n} from '@/utils/functions/RegularExpressions'\nimport { TargetEnum } from '@/utils/html/TargetEnum'\nimport { isExternalLink } from '@/utils/functions/IsExternalLink'\nimport {\n ColumnModel,\n Entity,\n FileHandleAssociateType,\n FileHandleAssociation,\n SelectColumn,\n} from '@sage-bionetworks/synapse-types'\n\nexport const getFileHandleAssociation = (\n table?: Entity,\n fileHandleId?: string,\n rowSynapseId?: string, // only applicable if this is an EntityView\n) => {\n let fileHandleAssociation: FileHandleAssociation | undefined = undefined\n if (table && fileHandleId) {\n if (isTableEntity(table)) {\n // The file handle is in the table\n fileHandleAssociation = {\n fileHandleId,\n associateObjectId: table?.id ?? '',\n associateObjectType: FileHandleAssociateType.TableEntity,\n }\n } else if (rowSynapseId) {\n // We're looking at a view, so the FileEntity (whose ID matches the row ID) gives permission to download the file handle\n fileHandleAssociation = {\n fileHandleId,\n associateObjectId: rowSynapseId,\n associateObjectType: FileHandleAssociateType.FileEntity,\n }\n }\n }\n return fileHandleAssociation\n}\nexport const getValueOrMultiValue = ({\n columnName,\n value,\n selectColumns,\n columnModels,\n}: {\n columnName?: string\n value?: string\n selectColumns?: SelectColumn[]\n columnModels?: ColumnModel[]\n}): ValueOrMultiValue => {\n if (!value) {\n return {\n str: '',\n strList: undefined,\n selectColumn: undefined,\n }\n }\n const selectedColumnOrUndefined =\n selectColumns?.find(el => el.name === columnName) ||\n columnModels?.find(el => el.name === columnName)\n const isMultiValue = selectedColumnOrUndefined?.columnType.endsWith('_LIST')\n\n if (isMultiValue) {\n let val: any = value\n let strList: any\n try {\n strList = JSON.parse(val)\n val = (strList as string[]).join(', ')\n return {\n strList,\n str: val,\n selectColumn: selectedColumnOrUndefined,\n }\n } catch (e) {\n console.error(\n 'Could not parse multivalue string ',\n val,\n ' caught err ',\n e,\n )\n }\n }\n return {\n str: value,\n selectColumn: selectedColumnOrUndefined,\n }\n}\ntype ValueOrMultiValue = {\n str: string\n strList?: string[]\n selectColumn?: SelectColumn\n}\n\nexport function getCardLinkHref(\n cardLink: CardLink | undefined,\n data: string[] | undefined,\n schema?: Record<string, number>,\n rowId?: number,\n): string | undefined {\n if (cardLink) {\n if (!data || !schema) {\n throw new Error('Must specify CardLink and data for linking to work')\n }\n const { matchColumnName, overrideValueWithRowID } = cardLink\n\n // PORTALS-2088: Return the link, unless...\n // an overrideLinkURLColumnName has been set and its value is defined.\n // In this case, just use the overrideLinkURLColumnName value\n if ('overrideLinkURLColumnName' in cardLink) {\n const { overrideLinkURLColumnName, overrideLinkURLColumnTransform } =\n cardLink\n if (schema[overrideLinkURLColumnName]) {\n const indexOfOverrideLinkURLColumnName =\n schema[overrideLinkURLColumnName]\n const overrideLinkValue = data[indexOfOverrideLinkURLColumnName]\n if (overrideLinkValue && overrideLinkURLColumnTransform) {\n return overrideLinkURLColumnTransform(overrideLinkValue)\n } else if (overrideLinkValue) {\n return overrideLinkValue\n }\n }\n }\n\n const indexInData = schema[matchColumnName]\n if (indexInData === undefined) {\n console.error(\n `Could not find match for data: ${data} with columnName ${matchColumnName}`,\n )\n } else if ('baseURL' in cardLink) {\n const { baseURL, URLColumnName, urlParamStyle = 'query-param' } = cardLink\n const value = overrideValueWithRowID ? `syn${rowId}` : data[indexInData]\n if (value) {\n // value is defined!\n if (urlParamStyle === 'path-segment') {\n return `/${baseURL}/${encodeURIComponent(value)}`\n }\n return `/${baseURL}?${URLColumnName}=${encodeURIComponent(value)}`\n }\n }\n }\n return undefined\n}\n\nexport function getLinkParams(\n link: string,\n cardLinkConfig: CardLink | undefined,\n data: string[] | undefined,\n schema?: Record<string, number>,\n rowId?: number,\n) {\n link = link.trim()\n let href = link\n const doiLink = convertDoiToLink(href)\n if (link.match(SYNAPSE_ENTITY_ID_REGEX)) {\n // its a synId\n href = `${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${link}`\n } else if (doiLink) {\n href = doiLink\n } else if (cardLinkConfig) {\n href = getCardLinkHref(cardLinkConfig, data, schema, rowId) ?? ''\n }\n\n const isExternal = Boolean(href && isExternalLink(href))\n const defaultTarget = isExternal\n ? TargetEnum.NEW_WINDOW\n : TargetEnum.CURRENT_WINDOW\n\n const target = cardLinkConfig?.target ?? defaultTarget\n return { href, target }\n}\n"],"mappings":";;;;;;;AAiBA,IAAa,KACX,GACA,GACA,MACG;CACH,IAAI;CAkBJ,OAjBI,KAAS,MACP,EAAc,CAAK,IAErB,IAAwB;EACtB;EACA,mBAAmB,GAAO,MAAM;EAChC,qBAAqB,EAAwB;CAC/C,IACS,MAET,IAAwB;EACtB;EACA,mBAAmB;EACnB,qBAAqB,EAAwB;CAC/C,KAGG;AACT,GACa,KAAwB,EACnC,eACA,UACA,kBACA,sBAMuB;CACvB,IAAI,CAAC,GACH,OAAO;EACL,KAAK;EACL,SAAS,KAAA;EACT,cAAc,KAAA;CAChB;CAEF,IAAM,IACJ,GAAe,MAAK,MAAM,EAAG,SAAS,CAAU,KAChD,GAAc,MAAK,MAAM,EAAG,SAAS,CAAU;CAGjD,IAFqB,GAA2B,WAAW,SAAS,OAAO,GAEzD;EAChB,IAAI,IAAW,GACX;EACJ,IAAI;GAGF,OAFA,IAAU,KAAK,MAAM,CAAG,GACxB,IAAO,EAAqB,KAAK,IAAI,GAC9B;IACL;IACA,KAAK;IACL,cAAc;GAChB;EACF,SAAS,GAAG;GACV,QAAQ,MACN,sCACA,GACA,gBACA,CACF;EACF;CACF;CACA,OAAO;EACL,KAAK;EACL,cAAc;CAChB;AACF;AAOA,SAAgB,EACd,GACA,GACA,GACA,GACoB;CACpB,IAAI,GAAU;EACZ,IAAI,CAAC,KAAQ,CAAC,GACZ,MAAU,MAAM,oDAAoD;EAEtE,IAAM,EAAE,oBAAiB,8BAA2B;EAKpD,IAAI,+BAA+B,GAAU;GAC3C,IAAM,EAAE,8BAA2B,sCACjC;GACF,IAAI,EAAO,IAA4B;IAGrC,IAAM,IAAoB,EADxB,EAAO;IAET,IAAI,KAAqB,GACvB,OAAO,EAA+B,CAAiB;IAClD,IAAI,GACT,OAAO;GAEX;EACF;EAEA,IAAM,IAAc,EAAO;EAC3B,IAAI,MAAgB,KAAA,GAClB,QAAQ,MACN,kCAAkC,EAAK,mBAAmB,GAC5D;OACK,IAAI,aAAa,GAAU;GAChC,IAAM,EAAE,YAAS,kBAAe,mBAAgB,kBAAkB,GAC5D,IAAQ,IAAyB,MAAM,MAAU,EAAK;GAC5D,IAAI,GAKF,OAHI,MAAkB,iBACb,IAAI,EAAQ,GAAG,mBAAmB,CAAK,MAEzC,IAAI,EAAQ,GAAG,EAAc,GAAG,mBAAmB,CAAK;EAEnE;CACF;AAEF;AAEA,SAAgB,EACd,GACA,GACA,GACA,GACA,GACA;CACA,IAAO,EAAK,KAAK;CACjB,IAAI,IAAO,GACL,IAAU,EAAiB,CAAI;CACrC,AAAI,EAAK,MAAM,CAAuB,IAEpC,IAAO,GAAG,EAA2B,OAAO,UAAU,MAC7C,IACT,IAAO,IACE,MACT,IAAO,EAAgB,GAAgB,GAAM,GAAQ,CAAK,KAAK;CAIjE,IAAM,IADqB,KAAQ,EAAe,CAAI,IAElD,EAAW,aACX,EAAW,gBAET,IAAS,GAAgB,UAAU;CACzC,OAAO;EAAE;EAAM;CAAO;AACxB"}
@@ -3,56 +3,56 @@ import { duoRegistryUrl as t, resolveDuoTerm as n } from "./duoTerms.js";
3
3
  import r from "../../widgets/facet-nav/FacetValueChip.js";
4
4
  import { Box as i, Link as a } from "@mui/material";
5
5
  import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
6
- import l from "@mui/icons-material/PublicOutlined";
7
- import u from "@mui/icons-material/BlockOutlined";
8
- import d from "@mui/icons-material/ScienceOutlined";
9
- import f from "@mui/icons-material/MedicalServicesOutlined";
10
- import p from "@mui/icons-material/CoronavirusOutlined";
11
- import m from "@mui/icons-material/GroupsOutlined";
12
- import h from "@mui/icons-material/HealingOutlined";
13
- import g from "@mui/icons-material/LockOpenOutlined";
14
- import _ from "@mui/icons-material/MoneyOffOutlined";
15
- import v from "@mui/icons-material/ArticleOutlined";
16
- import y from "@mui/icons-material/HandshakeOutlined";
17
- import b from "@mui/icons-material/GavelOutlined";
18
- import x from "@mui/icons-material/ReplayOutlined";
19
- import S from "@mui/icons-material/FormatQuoteOutlined";
20
- import C from "@mui/icons-material/PersonOutlined";
21
- import w from "@mui/icons-material/AssignmentOutlined";
22
- import T from "@mui/icons-material/ApartmentOutlined";
23
- import E from "@mui/icons-material/ScheduleOutlined";
24
- import D from "@mui/icons-material/HourglassEmptyOutlined";
25
- import O from "@mui/icons-material/RuleOutlined";
26
- import k from "@mui/icons-material/HelpOutline";
6
+ import l from "@mui/icons-material/ArticleOutlined";
7
+ import u from "@mui/icons-material/AssignmentOutlined";
8
+ import d from "@mui/icons-material/HelpOutline";
9
+ import f from "@mui/icons-material/PublicOutlined";
10
+ import p from "@mui/icons-material/BlockOutlined";
11
+ import m from "@mui/icons-material/ScienceOutlined";
12
+ import h from "@mui/icons-material/MedicalServicesOutlined";
13
+ import g from "@mui/icons-material/CoronavirusOutlined";
14
+ import _ from "@mui/icons-material/GroupsOutlined";
15
+ import v from "@mui/icons-material/HealingOutlined";
16
+ import y from "@mui/icons-material/LockOpenOutlined";
17
+ import b from "@mui/icons-material/MoneyOffOutlined";
18
+ import x from "@mui/icons-material/HandshakeOutlined";
19
+ import S from "@mui/icons-material/GavelOutlined";
20
+ import C from "@mui/icons-material/ReplayOutlined";
21
+ import w from "@mui/icons-material/FormatQuoteOutlined";
22
+ import T from "@mui/icons-material/PersonOutlined";
23
+ import E from "@mui/icons-material/ApartmentOutlined";
24
+ import D from "@mui/icons-material/ScheduleOutlined";
25
+ import O from "@mui/icons-material/HourglassEmptyOutlined";
26
+ import k from "@mui/icons-material/RuleOutlined";
27
27
  //#region src/components/GenericCard/DuoTermTags/DuoTermTags.tsx
28
28
  var A = {
29
- "DUO:0000042": d,
30
- "DUO:0000006": f,
31
- "DUO:0000007": p,
32
- "DUO:0000011": m,
33
- "DUO:0000043": h,
34
- "DUO:0000004": g,
35
- "DUO:0000046": _,
36
- "DUO:0000018": _,
37
- "DUO:0000045": _,
38
- "DUO:0000019": v,
39
- "DUO:0000020": y,
40
- "DUO:0000021": b,
41
- "DUO:0000029": x,
42
- DUOplus7: S,
43
- "DUO:0000026": C,
44
- "DUO:0000027": w,
45
- "DUO:0000028": T,
46
- "DUO:0000022": l,
47
- "DUO:0000025": E,
48
- "DUO:0000024": D,
29
+ "DUO:0000042": m,
30
+ "DUO:0000006": h,
31
+ "DUO:0000007": g,
32
+ "DUO:0000011": _,
33
+ "DUO:0000043": v,
34
+ "DUO:0000004": y,
35
+ "DUO:0000046": b,
36
+ "DUO:0000018": b,
37
+ "DUO:0000045": b,
38
+ "DUO:0000019": l,
39
+ "DUO:0000020": x,
40
+ "DUO:0000021": S,
41
+ "DUO:0000029": C,
42
+ DUOplus7: w,
43
+ "DUO:0000026": T,
44
+ "DUO:0000027": u,
45
+ "DUO:0000028": E,
46
+ "DUO:0000022": f,
47
+ "DUO:0000025": D,
48
+ "DUO:0000024": O,
49
49
  "DUO:0000016": e,
50
- "DUO:0000015": u,
51
- "DUO:0000044": u,
52
- "DUO:0000012": O
50
+ "DUO:0000015": p,
51
+ "DUO:0000044": p,
52
+ "DUO:0000012": k
53
53
  }, j = (e) => {
54
54
  let { term: t } = e;
55
- return /* @__PURE__ */ s(A[t.code] ?? k, {});
55
+ return /* @__PURE__ */ s(A[t.code] ?? d, {});
56
56
  }, M = {
57
57
  permission: 0,
58
58
  commercial: 1,
@@ -88,7 +88,7 @@ function P(e) {
88
88
  minWidth: 0,
89
89
  maxWidth: "100%"
90
90
  },
91
- children: t.map(n).sort((e, t) => M[e.category] - M[t.category]).map((e, t) => /* @__PURE__ */ s(r, {
91
+ children: t.map(n).toSorted((e, t) => M[e.category] - M[t.category]).map((e, t) => /* @__PURE__ */ s(r, {
92
92
  label: e.name,
93
93
  icon: /* @__PURE__ */ s(j, { term: e }),
94
94
  tooltipTitle: N(e)
@@ -1 +1 @@
1
- {"version":3,"file":"DuoTermTags.js","names":[],"sources":["../../../../src/components/GenericCard/DuoTermTags/DuoTermTags.tsx"],"sourcesContent":["import { Box, Link } from '@mui/material'\nimport type { ComponentType, ReactNode } from 'react'\nimport GeneticsIcon from '@/assets/icons/GeneticsIcon'\nimport ScienceOutlined from '@mui/icons-material/ScienceOutlined'\nimport MedicalServicesOutlined from '@mui/icons-material/MedicalServicesOutlined'\nimport CoronavirusOutlined from '@mui/icons-material/CoronavirusOutlined'\nimport GroupsOutlined from '@mui/icons-material/GroupsOutlined'\nimport HealingOutlined from '@mui/icons-material/HealingOutlined'\nimport LockOpenOutlined from '@mui/icons-material/LockOpenOutlined'\nimport MoneyOffOutlined from '@mui/icons-material/MoneyOffOutlined'\nimport ArticleOutlined from '@mui/icons-material/ArticleOutlined'\nimport HandshakeOutlined from '@mui/icons-material/HandshakeOutlined'\nimport GavelOutlined from '@mui/icons-material/GavelOutlined'\nimport ReplayOutlined from '@mui/icons-material/ReplayOutlined'\nimport FormatQuoteOutlined from '@mui/icons-material/FormatQuoteOutlined'\nimport PersonOutlined from '@mui/icons-material/PersonOutlined'\nimport AssignmentOutlined from '@mui/icons-material/AssignmentOutlined'\nimport ApartmentOutlined from '@mui/icons-material/ApartmentOutlined'\nimport PublicOutlined from '@mui/icons-material/PublicOutlined'\nimport ScheduleOutlined from '@mui/icons-material/ScheduleOutlined'\nimport HourglassEmptyOutlined from '@mui/icons-material/HourglassEmptyOutlined'\nimport BlockOutlined from '@mui/icons-material/BlockOutlined'\nimport RuleOutlined from '@mui/icons-material/RuleOutlined'\nimport HelpOutline from '@mui/icons-material/HelpOutline'\nimport {\n DuoCategory,\n DuoTerm,\n duoRegistryUrl,\n resolveDuoTerm,\n} from './duoTerms'\nimport FacetValueChip from '@/components/widgets/facet-nav/FacetValueChip'\nimport type { RenderedFacetValueChip } from '@/components/QueryVisualizationWrapper/QueryVisualizationContext'\n\nexport type DuoTermTagsProps = {\n /** Raw `dataUseModifiers` values (ontology codes or term names). */\n terms: string[]\n}\n\n// An icon per code so the meaning reads at a glance.\nconst DUO_ICONS: Record<string, ComponentType> = {\n 'DUO:0000042': ScienceOutlined, // General Research Use\n 'DUO:0000006': MedicalServicesOutlined, // Health/Medical/Biomedical\n 'DUO:0000007': CoronavirusOutlined, // Disease Specific\n 'DUO:0000011': GroupsOutlined, // Population Origins/Ancestry\n 'DUO:0000043': HealingOutlined, // Clinical Care Use\n 'DUO:0000004': LockOpenOutlined, // No Restriction\n 'DUO:0000046': MoneyOffOutlined, // Non-Commercial Use Only\n 'DUO:0000018': MoneyOffOutlined, // Not-for-Profit, Non-Commercial\n 'DUO:0000045': MoneyOffOutlined, // Not-for-Profit Organisation\n 'DUO:0000019': ArticleOutlined, // Publication Required\n 'DUO:0000020': HandshakeOutlined, // Collaboration Required\n 'DUO:0000021': GavelOutlined, // Ethics Approval Required\n 'DUO:0000029': ReplayOutlined, // Return to Database/Resource\n DUOplus7: FormatQuoteOutlined, // Attribution Required\n 'DUO:0000026': PersonOutlined, // User Specific\n 'DUO:0000027': AssignmentOutlined, // Project Specific\n 'DUO:0000028': ApartmentOutlined, // Institution Specific\n 'DUO:0000022': PublicOutlined, // Geographical Restriction\n 'DUO:0000025': ScheduleOutlined, // Time Limit\n 'DUO:0000024': HourglassEmptyOutlined, // Publication Moratorium\n 'DUO:0000016': GeneticsIcon, // Genetic Studies Only (Material Symbols)\n 'DUO:0000015': BlockOutlined, // No General Methods Research\n 'DUO:0000044': BlockOutlined, // Population/Ancestry Prohibited\n 'DUO:0000012': RuleOutlined, // Research Specific Restrictions\n}\n\nconst TermIcon = (props: { term: DuoTerm }): ReactNode => {\n const { term } = props\n const Icon = DUO_ICONS[term.code] ?? HelpOutline\n return <Icon />\n}\n\n// Primary use first (the dataset's purpose), then the conditions that limit it.\nconst ORDER: Record<DuoCategory, number> = {\n permission: 0,\n commercial: 1,\n obligation: 2,\n limit: 3,\n}\n\n// The rich tooltip for a DUO term: full name, abbreviation, ontology code\n// (linked to the registry when available), and definition.\nfunction duoTooltipTitle(t: DuoTerm): ReactNode {\n const url = duoRegistryUrl(t)\n const hasMeta = Boolean(t.abbr || t.code)\n return (\n <>\n <strong>{t.name}</strong>\n {hasMeta && (\n <>\n <br />\n {t.abbr}\n {t.abbr && t.code ? ' · ' : ''}\n {url ? (\n <Link href={url} target=\"_blank\" rel=\"noopener\" color=\"inherit\">\n {t.code}\n </Link>\n ) : (\n t.code\n )}\n </>\n )}\n {t.definition && t.definition !== t.name && (\n <>\n <br />\n {t.definition}\n </>\n )}\n </>\n )\n}\n\n/** Renders a dataset's DUO data-use modifiers as a row of chips (used on cards). */\nexport default function DuoTermTags(props: DuoTermTagsProps) {\n const { terms } = props\n if (!terms || terms.length === 0) {\n return null\n }\n const sorted = terms\n .map(resolveDuoTerm)\n .sort((a, b) => ORDER[a.category] - ORDER[b.category])\n\n return (\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'wrap',\n gap: 0.75,\n minWidth: 0,\n maxWidth: '100%',\n }}\n >\n {sorted.map((t, i) => (\n <FacetValueChip\n key={i}\n label={t.name}\n icon={<TermIcon term={t} />}\n tooltipTitle={duoTooltipTitle(t)}\n />\n ))}\n </Box>\n )\n}\n\n/**\n * Builds a `renderFacetValue` function (for `QueryVisualizationWrapper`) that\n * returns the chip content for the given DUO column's enumeration facet values\n * — used by both the facet sidebar and the active-filter pills, which render it\n * through the shared `FacetValueChip`. Other columns fall through to text.\n *\n * Portals only need to declare the DUO column (via the card schema's\n * `dataUseModifiersColumnName`) rather than each defining their own handler.\n */\nexport function createDuoFacetValueRenderer(duoColumnName: string) {\n return (\n columnName: string,\n value: string,\n ): RenderedFacetValueChip | undefined => {\n if (columnName !== duoColumnName) {\n return undefined\n }\n const t = resolveDuoTerm(value)\n return {\n label: t.name,\n icon: <TermIcon term={t} />,\n tooltipTitle: duoTooltipTitle(t),\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,IAAM,IAA2C;CAC/C,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,UAAU;CACV,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;AACjB,GAEM,KAAY,MAAwC;CACxD,IAAM,EAAE,YAAS;CAEjB,OAAO,kBADM,EAAU,EAAK,SAAS,GAC9B,CAAO,CAAA;AAChB,GAGM,IAAqC;CACzC,YAAY;CACZ,YAAY;CACZ,YAAY;CACZ,OAAO;AACT;AAIA,SAAS,EAAgB,GAAuB;CAC9C,IAAM,IAAM,EAAe,CAAC,GACtB,IAAU,GAAQ,EAAE,QAAQ,EAAE;CACpC,OACE,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,UAAD,EAAA,UAAS,EAAE,KAAa,CAAA;EACvB,KACC,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,MAAD,CAAK,CAAA;GACJ,EAAE;GACF,EAAE,QAAQ,EAAE,OAAO,QAAQ;GAC3B,IACC,kBAAC,GAAD;IAAM,MAAM;IAAK,QAAO;IAAS,KAAI;IAAW,OAAM;cACnD,EAAE;GACC,CAAA,IAEN,EAAE;EAEJ,EAAA,CAAA;EAEH,EAAE,cAAc,EAAE,eAAe,EAAE,QAClC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,MAAD,CAAK,CAAA,GACJ,EAAE,UACH,EAAA,CAAA;CAEJ,EAAA,CAAA;AAEN;AAGA,SAAwB,EAAY,GAAyB;CAC3D,IAAM,EAAE,aAAU;CAQlB,OAPI,CAAC,KAAS,EAAM,WAAW,IACtB,OAOP,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,UAAU;GACV,KAAK;GACL,UAAU;GACV,UAAU;EACZ;YAZW,EACZ,IAAI,CAAc,EAClB,MAAM,GAAG,MAAM,EAAM,EAAE,YAAY,EAAM,EAAE,SAYzC,EAAO,KAAK,GAAG,MACd,kBAAC,GAAD;GAEE,OAAO,EAAE;GACT,MAAM,kBAAC,GAAD,EAAU,MAAM,EAAI,CAAA;GAC1B,cAAc,EAAgB,CAAC;EAChC,GAJM,CAIN,CACF;CACE,CAAA;AAET;AAWA,SAAgB,EAA4B,GAAuB;CACjE,QACE,GACA,MACuC;EACvC,IAAI,MAAe,GACjB;EAEF,IAAM,IAAI,EAAe,CAAK;EAC9B,OAAO;GACL,OAAO,EAAE;GACT,MAAM,kBAAC,GAAD,EAAU,MAAM,EAAI,CAAA;GAC1B,cAAc,EAAgB,CAAC;EACjC;CACF;AACF"}
1
+ {"version":3,"file":"DuoTermTags.js","names":[],"sources":["../../../../src/components/GenericCard/DuoTermTags/DuoTermTags.tsx"],"sourcesContent":["import { Box, Link } from '@mui/material'\nimport type { ComponentType, ReactNode } from 'react'\nimport GeneticsIcon from '@/assets/icons/GeneticsIcon'\nimport ScienceOutlined from '@mui/icons-material/ScienceOutlined'\nimport MedicalServicesOutlined from '@mui/icons-material/MedicalServicesOutlined'\nimport CoronavirusOutlined from '@mui/icons-material/CoronavirusOutlined'\nimport GroupsOutlined from '@mui/icons-material/GroupsOutlined'\nimport HealingOutlined from '@mui/icons-material/HealingOutlined'\nimport LockOpenOutlined from '@mui/icons-material/LockOpenOutlined'\nimport MoneyOffOutlined from '@mui/icons-material/MoneyOffOutlined'\nimport ArticleOutlined from '@mui/icons-material/ArticleOutlined'\nimport HandshakeOutlined from '@mui/icons-material/HandshakeOutlined'\nimport GavelOutlined from '@mui/icons-material/GavelOutlined'\nimport ReplayOutlined from '@mui/icons-material/ReplayOutlined'\nimport FormatQuoteOutlined from '@mui/icons-material/FormatQuoteOutlined'\nimport PersonOutlined from '@mui/icons-material/PersonOutlined'\nimport AssignmentOutlined from '@mui/icons-material/AssignmentOutlined'\nimport ApartmentOutlined from '@mui/icons-material/ApartmentOutlined'\nimport PublicOutlined from '@mui/icons-material/PublicOutlined'\nimport ScheduleOutlined from '@mui/icons-material/ScheduleOutlined'\nimport HourglassEmptyOutlined from '@mui/icons-material/HourglassEmptyOutlined'\nimport BlockOutlined from '@mui/icons-material/BlockOutlined'\nimport RuleOutlined from '@mui/icons-material/RuleOutlined'\nimport HelpOutline from '@mui/icons-material/HelpOutline'\nimport {\n DuoCategory,\n DuoTerm,\n duoRegistryUrl,\n resolveDuoTerm,\n} from './duoTerms'\nimport FacetValueChip from '@/components/widgets/facet-nav/FacetValueChip'\nimport type { RenderedFacetValueChip } from '@/components/QueryVisualizationWrapper/QueryVisualizationContext'\n\nexport type DuoTermTagsProps = {\n /** Raw `dataUseModifiers` values (ontology codes or term names). */\n terms: string[]\n}\n\n// An icon per code so the meaning reads at a glance.\nconst DUO_ICONS: Record<string, ComponentType> = {\n 'DUO:0000042': ScienceOutlined, // General Research Use\n 'DUO:0000006': MedicalServicesOutlined, // Health/Medical/Biomedical\n 'DUO:0000007': CoronavirusOutlined, // Disease Specific\n 'DUO:0000011': GroupsOutlined, // Population Origins/Ancestry\n 'DUO:0000043': HealingOutlined, // Clinical Care Use\n 'DUO:0000004': LockOpenOutlined, // No Restriction\n 'DUO:0000046': MoneyOffOutlined, // Non-Commercial Use Only\n 'DUO:0000018': MoneyOffOutlined, // Not-for-Profit, Non-Commercial\n 'DUO:0000045': MoneyOffOutlined, // Not-for-Profit Organisation\n 'DUO:0000019': ArticleOutlined, // Publication Required\n 'DUO:0000020': HandshakeOutlined, // Collaboration Required\n 'DUO:0000021': GavelOutlined, // Ethics Approval Required\n 'DUO:0000029': ReplayOutlined, // Return to Database/Resource\n DUOplus7: FormatQuoteOutlined, // Attribution Required\n 'DUO:0000026': PersonOutlined, // User Specific\n 'DUO:0000027': AssignmentOutlined, // Project Specific\n 'DUO:0000028': ApartmentOutlined, // Institution Specific\n 'DUO:0000022': PublicOutlined, // Geographical Restriction\n 'DUO:0000025': ScheduleOutlined, // Time Limit\n 'DUO:0000024': HourglassEmptyOutlined, // Publication Moratorium\n 'DUO:0000016': GeneticsIcon, // Genetic Studies Only (Material Symbols)\n 'DUO:0000015': BlockOutlined, // No General Methods Research\n 'DUO:0000044': BlockOutlined, // Population/Ancestry Prohibited\n 'DUO:0000012': RuleOutlined, // Research Specific Restrictions\n}\n\nconst TermIcon = (props: { term: DuoTerm }): ReactNode => {\n const { term } = props\n const Icon = DUO_ICONS[term.code] ?? HelpOutline\n return <Icon />\n}\n\n// Primary use first (the dataset's purpose), then the conditions that limit it.\nconst ORDER: Record<DuoCategory, number> = {\n permission: 0,\n commercial: 1,\n obligation: 2,\n limit: 3,\n}\n\n// The rich tooltip for a DUO term: full name, abbreviation, ontology code\n// (linked to the registry when available), and definition.\nfunction duoTooltipTitle(t: DuoTerm): ReactNode {\n const url = duoRegistryUrl(t)\n const hasMeta = Boolean(t.abbr || t.code)\n return (\n <>\n <strong>{t.name}</strong>\n {hasMeta && (\n <>\n <br />\n {t.abbr}\n {t.abbr && t.code ? ' · ' : ''}\n {url ? (\n <Link href={url} target=\"_blank\" rel=\"noopener\" color=\"inherit\">\n {t.code}\n </Link>\n ) : (\n t.code\n )}\n </>\n )}\n {t.definition && t.definition !== t.name && (\n <>\n <br />\n {t.definition}\n </>\n )}\n </>\n )\n}\n\n/** Renders a dataset's DUO data-use modifiers as a row of chips (used on cards). */\nexport default function DuoTermTags(props: DuoTermTagsProps) {\n const { terms } = props\n if (!terms || terms.length === 0) {\n return null\n }\n const sorted = terms\n .map(resolveDuoTerm)\n .toSorted((a, b) => ORDER[a.category] - ORDER[b.category])\n\n return (\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'wrap',\n gap: 0.75,\n minWidth: 0,\n maxWidth: '100%',\n }}\n >\n {sorted.map((t, i) => (\n <FacetValueChip\n key={i}\n label={t.name}\n icon={<TermIcon term={t} />}\n tooltipTitle={duoTooltipTitle(t)}\n />\n ))}\n </Box>\n )\n}\n\n/**\n * Builds a `renderFacetValue` function (for `QueryVisualizationWrapper`) that\n * returns the chip content for the given DUO column's enumeration facet values\n * — used by both the facet sidebar and the active-filter pills, which render it\n * through the shared `FacetValueChip`. Other columns fall through to text.\n *\n * Portals only need to declare the DUO column (via the card schema's\n * `dataUseModifiersColumnName`) rather than each defining their own handler.\n */\nexport function createDuoFacetValueRenderer(duoColumnName: string) {\n return (\n columnName: string,\n value: string,\n ): RenderedFacetValueChip | undefined => {\n if (columnName !== duoColumnName) {\n return undefined\n }\n const t = resolveDuoTerm(value)\n return {\n label: t.name,\n icon: <TermIcon term={t} />,\n tooltipTitle: duoTooltipTitle(t),\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,IAAM,IAA2C;CAC/C,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,UAAU;CACV,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;AACjB,GAEM,KAAY,MAAwC;CACxD,IAAM,EAAE,YAAS;CAEjB,OAAO,kBADM,EAAU,EAAK,SAAS,GAC9B,CAAO,CAAA;AAChB,GAGM,IAAqC;CACzC,YAAY;CACZ,YAAY;CACZ,YAAY;CACZ,OAAO;AACT;AAIA,SAAS,EAAgB,GAAuB;CAC9C,IAAM,IAAM,EAAe,CAAC,GACtB,IAAU,GAAQ,EAAE,QAAQ,EAAE;CACpC,OACE,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,UAAD,EAAA,UAAS,EAAE,KAAa,CAAA;EACvB,KACC,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,MAAD,CAAK,CAAA;GACJ,EAAE;GACF,EAAE,QAAQ,EAAE,OAAO,QAAQ;GAC3B,IACC,kBAAC,GAAD;IAAM,MAAM;IAAK,QAAO;IAAS,KAAI;IAAW,OAAM;cACnD,EAAE;GACC,CAAA,IAEN,EAAE;EAEJ,EAAA,CAAA;EAEH,EAAE,cAAc,EAAE,eAAe,EAAE,QAClC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,MAAD,CAAK,CAAA,GACJ,EAAE,UACH,EAAA,CAAA;CAEJ,EAAA,CAAA;AAEN;AAGA,SAAwB,EAAY,GAAyB;CAC3D,IAAM,EAAE,aAAU;CAQlB,OAPI,CAAC,KAAS,EAAM,WAAW,IACtB,OAOP,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,UAAU;GACV,KAAK;GACL,UAAU;GACV,UAAU;EACZ;YAZW,EACZ,IAAI,CAAc,EAClB,UAAU,GAAG,MAAM,EAAM,EAAE,YAAY,EAAM,EAAE,SAY7C,EAAO,KAAK,GAAG,MACd,kBAAC,GAAD;GAEE,OAAO,EAAE;GACT,MAAM,kBAAC,GAAD,EAAU,MAAM,EAAI,CAAA;GAC1B,cAAc,EAAgB,CAAC;EAChC,GAJM,CAIN,CACF;CACE,CAAA;AAET;AAWA,SAAgB,EAA4B,GAAuB;CACjE,QACE,GACA,MACuC;EACvC,IAAI,MAAe,GACjB;EAEF,IAAM,IAAI,EAAe,CAAK;EAC9B,OAAO;GACL,OAAO,EAAE;GACT,MAAM,kBAAC,GAAD,EAAU,MAAM,EAAI,CAAA;GAC1B,cAAc,EAAgB,CAAC;EACjC;CACF;AACF"}
@@ -181,7 +181,7 @@ function r(e) {
181
181
  return [e];
182
182
  }
183
183
  }
184
- var i = (e) => e.toLowerCase().replace(/[^a-z0-9]+/g, " ").trim(), a = new Map(e.map((e) => [i(e.name), e])), o = new Map(e.map((e) => [e.code.toUpperCase(), e]));
184
+ var i = (e) => e.toLowerCase().replaceAll(/[^a-z0-9]+/g, " ").trim(), a = new Map(e.map((e) => [i(e.name), e])), o = new Map(e.map((e) => [e.code.toUpperCase(), e]));
185
185
  function s(e) {
186
186
  let t = e.trim();
187
187
  return o.get(t.toUpperCase()) || a.get(i(t)) || {
@@ -1 +1 @@
1
- {"version":3,"file":"duoTerms.js","names":[],"sources":["../../../../src/components/GenericCard/DuoTermTags/duoTerms.ts"],"sourcesContent":["// Data Use Ontology (DUO) vocabulary, plus Sage's DUO-Plus extensions.\n//\n// Source of truth for codes/labels: Sage-Bionetworks/governanceDUO\n// (`metadata structure.md`), which mirrors the GA4GH DUO term set and adds\n// Sage's \"DUOplus\" modifiers. Datasets are annotated with the ontology code\n// (e.g. DUO:0000042); the displayed tag is derived from that code here, so the\n// annotation and the display can evolve independently.\n\nexport type DuoCategory = 'permission' | 'commercial' | 'obligation' | 'limit'\n\nexport type DuoTerm = {\n /** Ontology code, e.g. \"DUO:0000042\". DUO-Plus terms use a \"DUOplus#\" code. */\n code: string\n /** Short abbreviation (shown in tooltips). */\n abbr: string\n /** Full human-readable name (the visible tag label). */\n name: string\n category: DuoCategory\n definition: string\n}\n\nconst TERMS: DuoTerm[] = [\n // --- Permitted use (what research the data may be used for) ---\n {\n code: 'DUO:0000042',\n abbr: 'GRU',\n name: 'General Research Use',\n category: 'permission',\n definition:\n 'Use is allowed for any research purpose, including methods development and population/ancestry research.',\n },\n {\n code: 'DUO:0000006',\n abbr: 'HMB',\n name: 'Health or Medical or Biomedical Research',\n category: 'permission',\n definition:\n 'Use is allowed for health, medical, or biomedical research purposes.',\n },\n {\n code: 'DUO:0000007',\n abbr: 'DS',\n name: 'Disease Specific Research',\n category: 'permission',\n definition:\n 'Use is allowed for research into the specified disease or condition.',\n },\n {\n code: 'DUO:0000011',\n abbr: 'POA',\n name: 'Population Origins or Ancestry Research Only',\n category: 'permission',\n definition:\n 'Use is limited to population origins or ancestry research only.',\n },\n {\n code: 'DUO:0000043',\n abbr: 'CC',\n name: 'Clinical Care Use',\n category: 'permission',\n definition: 'Use is allowed for clinical care purposes.',\n },\n {\n code: 'DUO:0000004',\n abbr: 'NRES',\n name: 'No Restriction',\n category: 'permission',\n definition: 'No restrictions on use; data is available under open access.',\n },\n\n // --- Commercial-use restriction ---\n {\n code: 'DUO:0000046',\n abbr: 'NCU',\n name: 'Non-Commercial Use Only',\n category: 'commercial',\n definition: 'Use is limited to non-commercial purposes.',\n },\n {\n code: 'DUO:0000018',\n abbr: 'NPUNCU',\n name: 'Not-for-Profit, Non-Commercial Use Only',\n category: 'commercial',\n definition:\n 'Use is limited to not-for-profit organizations for non-commercial purposes.',\n },\n {\n code: 'DUO:0000045',\n abbr: 'NPU',\n name: 'Not-for-Profit Organisation Use Only',\n category: 'commercial',\n definition: 'Use is limited to not-for-profit organizations.',\n },\n\n // --- Obligations (things the requester must do) ---\n {\n code: 'DUO:0000019',\n abbr: 'PUB',\n name: 'Publication Required',\n category: 'obligation',\n definition:\n 'Requestor agrees to make results of studies using the data available to the larger scientific community.',\n },\n {\n code: 'DUO:0000020',\n abbr: 'COL',\n name: 'Collaboration Required',\n category: 'obligation',\n definition:\n 'Requestor agrees to collaborate with the primary study investigator(s).',\n },\n {\n code: 'DUO:0000021',\n abbr: 'IRB',\n name: 'Ethics Approval Required',\n category: 'obligation',\n definition:\n 'Requestor must provide documentation of local IRB/ethics approval.',\n },\n {\n code: 'DUO:0000029',\n abbr: 'RTN',\n name: 'Return to Database or Resource',\n category: 'obligation',\n definition:\n 'Requestor must return derived/enriched data to the database or resource.',\n },\n {\n // Sage DUO-Plus extension (no GA4GH ontology id).\n code: 'DUOplus7',\n abbr: 'ATTR',\n name: 'Attribution Required',\n category: 'obligation',\n definition:\n 'Requestor must provide the specified attribution/acknowledgement statement when using the data. (Sage DUO-Plus extension.)',\n },\n\n // --- Use limits (narrow who / where / when / what kind of research) ---\n {\n code: 'DUO:0000026',\n abbr: 'US',\n name: 'User Specific Restriction',\n category: 'limit',\n definition: 'Use is limited to specified, approved users.',\n },\n {\n code: 'DUO:0000027',\n abbr: 'PS',\n name: 'Project Specific Restriction',\n category: 'limit',\n definition: 'Use is limited to a specified, approved project.',\n },\n {\n code: 'DUO:0000028',\n abbr: 'IS',\n name: 'Institution Specific Restriction',\n category: 'limit',\n definition: 'Use is limited to specified, approved institutions.',\n },\n {\n code: 'DUO:0000022',\n abbr: 'GS',\n name: 'Geographical Restriction',\n category: 'limit',\n definition: 'Use is limited to within a specified geographic region.',\n },\n {\n code: 'DUO:0000025',\n abbr: 'TS',\n name: 'Time Limit on Use',\n category: 'limit',\n definition: 'Use is approved for a specified period of time.',\n },\n {\n code: 'DUO:0000024',\n abbr: 'MOR',\n name: 'Publication Moratorium',\n category: 'limit',\n definition: 'Requestor must not publish results until a specified date.',\n },\n {\n code: 'DUO:0000016',\n abbr: 'GSO',\n name: 'Genetic Studies Only',\n category: 'limit',\n definition: 'Use is limited to genetic studies only.',\n },\n {\n code: 'DUO:0000015',\n abbr: 'NMDS',\n name: 'No General Methods Research',\n category: 'limit',\n definition: 'Use for general methods development research is prohibited.',\n },\n {\n code: 'DUO:0000044',\n abbr: 'NPOA',\n name: 'Population Origins or Ancestry Research Prohibited',\n category: 'limit',\n definition:\n 'Use for population origins or ancestry research is prohibited.',\n },\n {\n code: 'DUO:0000012',\n abbr: 'RS',\n name: 'Research Specific Restrictions',\n category: 'limit',\n definition:\n 'Use is limited to the specific research type(s) described by the data provider.',\n },\n]\n\n/** All known terms, in canonical (category) order — for demos/legends. */\nexport const ALL_DUO_TERMS: readonly DuoTerm[] = TERMS\n\n/**\n * Link to the term's definition in Bioregistry (GA4GH DUO terms only;\n * DUO-Plus extensions have no registry entry).\n */\nexport function duoRegistryUrl(term: DuoTerm): string | undefined {\n return term.code.startsWith('DUO:')\n ? `https://bioregistry.io/${term.code.toLowerCase()}`\n : undefined\n}\n\n/**\n * Parse a `dataUseModifiers` cell into a list of values. The column is a\n * STRING_LIST, returned as a JSON-array string (e.g. `[\"General Research Use\"]`\n * or, once migrated, `[\"DUO:0000042\"]`).\n */\nexport function parseDuoModifiers(raw: string | null | undefined): string[] {\n if (!raw) {\n return []\n }\n try {\n const parsed: unknown = JSON.parse(raw)\n return Array.isArray(parsed) ? parsed.map(String) : [String(raw)]\n } catch {\n return [raw]\n }\n}\n\nconst normalize = (s: string) =>\n s\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, ' ')\n .trim()\n\nconst BY_NAME = new Map(TERMS.map(t => [normalize(t.name), t]))\nconst BY_CODE = new Map(TERMS.map(t => [t.code.toUpperCase(), t]))\n\n/**\n * Resolve a raw `dataUseModifiers` value (an ontology code like DUO:0000042, a\n * DUOplus# code, or a term name) to a known DuoTerm. Unknown values fall back\n * to a neutral \"limit\" tag built from the raw text so nothing is dropped.\n */\nexport function resolveDuoTerm(raw: string): DuoTerm {\n const value = raw.trim()\n const byCode = BY_CODE.get(value.toUpperCase())\n if (byCode) {\n return byCode\n }\n const match = BY_NAME.get(normalize(value))\n if (match) {\n return match\n }\n // Unknown value: present the raw text as-is. Don't fabricate an abbreviation —\n // known terms carry a hard-coded abbr in TERMS; a guessed initialism would be\n // arbitrary and potentially wrong.\n return {\n code: '',\n abbr: '',\n name: value,\n category: 'limit',\n definition: value,\n }\n}\n"],"mappings":";AAqBA,IAAM,IAAmB;CAEvB;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CAGA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CAGA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EAEE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CAGA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;AACF,GAGa,IAAoC;AAMjD,SAAgB,EAAe,GAAmC;CAChE,OAAO,EAAK,KAAK,WAAW,MAAM,IAC9B,0BAA0B,EAAK,KAAK,YAAY,MAChD,KAAA;AACN;AAOA,SAAgB,EAAkB,GAA0C;CAC1E,IAAI,CAAC,GACH,OAAO,CAAC;CAEV,IAAI;EACF,IAAM,IAAkB,KAAK,MAAM,CAAG;EACtC,OAAO,MAAM,QAAQ,CAAM,IAAI,EAAO,IAAI,MAAM,IAAI,CAAC,OAAO,CAAG,CAAC;CAClE,QAAQ;EACN,OAAO,CAAC,CAAG;CACb;AACF;AAEA,IAAM,KAAa,MACjB,EACG,YAAY,EACZ,QAAQ,eAAe,GAAG,EAC1B,KAAK,GAEJ,IAAU,IAAI,IAAI,EAAM,KAAI,MAAK,CAAC,EAAU,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GACxD,IAAU,IAAI,IAAI,EAAM,KAAI,MAAK,CAAC,EAAE,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC;AAOjE,SAAgB,EAAe,GAAsB;CACnD,IAAM,IAAQ,EAAI,KAAK;CAYvB,OAXe,EAAQ,IAAI,EAAM,YAAY,CACzC,KAGU,EAAQ,IAAI,EAAU,CAAK,CACrC,KAMG;EACL,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;AACF"}
1
+ {"version":3,"file":"duoTerms.js","names":[],"sources":["../../../../src/components/GenericCard/DuoTermTags/duoTerms.ts"],"sourcesContent":["// Data Use Ontology (DUO) vocabulary, plus Sage's DUO-Plus extensions.\n//\n// Source of truth for codes/labels: Sage-Bionetworks/governanceDUO\n// (`metadata structure.md`), which mirrors the GA4GH DUO term set and adds\n// Sage's \"DUOplus\" modifiers. Datasets are annotated with the ontology code\n// (e.g. DUO:0000042); the displayed tag is derived from that code here, so the\n// annotation and the display can evolve independently.\n\nexport type DuoCategory = 'permission' | 'commercial' | 'obligation' | 'limit'\n\nexport type DuoTerm = {\n /** Ontology code, e.g. \"DUO:0000042\". DUO-Plus terms use a \"DUOplus#\" code. */\n code: string\n /** Short abbreviation (shown in tooltips). */\n abbr: string\n /** Full human-readable name (the visible tag label). */\n name: string\n category: DuoCategory\n definition: string\n}\n\nconst TERMS: DuoTerm[] = [\n // --- Permitted use (what research the data may be used for) ---\n {\n code: 'DUO:0000042',\n abbr: 'GRU',\n name: 'General Research Use',\n category: 'permission',\n definition:\n 'Use is allowed for any research purpose, including methods development and population/ancestry research.',\n },\n {\n code: 'DUO:0000006',\n abbr: 'HMB',\n name: 'Health or Medical or Biomedical Research',\n category: 'permission',\n definition:\n 'Use is allowed for health, medical, or biomedical research purposes.',\n },\n {\n code: 'DUO:0000007',\n abbr: 'DS',\n name: 'Disease Specific Research',\n category: 'permission',\n definition:\n 'Use is allowed for research into the specified disease or condition.',\n },\n {\n code: 'DUO:0000011',\n abbr: 'POA',\n name: 'Population Origins or Ancestry Research Only',\n category: 'permission',\n definition:\n 'Use is limited to population origins or ancestry research only.',\n },\n {\n code: 'DUO:0000043',\n abbr: 'CC',\n name: 'Clinical Care Use',\n category: 'permission',\n definition: 'Use is allowed for clinical care purposes.',\n },\n {\n code: 'DUO:0000004',\n abbr: 'NRES',\n name: 'No Restriction',\n category: 'permission',\n definition: 'No restrictions on use; data is available under open access.',\n },\n\n // --- Commercial-use restriction ---\n {\n code: 'DUO:0000046',\n abbr: 'NCU',\n name: 'Non-Commercial Use Only',\n category: 'commercial',\n definition: 'Use is limited to non-commercial purposes.',\n },\n {\n code: 'DUO:0000018',\n abbr: 'NPUNCU',\n name: 'Not-for-Profit, Non-Commercial Use Only',\n category: 'commercial',\n definition:\n 'Use is limited to not-for-profit organizations for non-commercial purposes.',\n },\n {\n code: 'DUO:0000045',\n abbr: 'NPU',\n name: 'Not-for-Profit Organisation Use Only',\n category: 'commercial',\n definition: 'Use is limited to not-for-profit organizations.',\n },\n\n // --- Obligations (things the requester must do) ---\n {\n code: 'DUO:0000019',\n abbr: 'PUB',\n name: 'Publication Required',\n category: 'obligation',\n definition:\n 'Requestor agrees to make results of studies using the data available to the larger scientific community.',\n },\n {\n code: 'DUO:0000020',\n abbr: 'COL',\n name: 'Collaboration Required',\n category: 'obligation',\n definition:\n 'Requestor agrees to collaborate with the primary study investigator(s).',\n },\n {\n code: 'DUO:0000021',\n abbr: 'IRB',\n name: 'Ethics Approval Required',\n category: 'obligation',\n definition:\n 'Requestor must provide documentation of local IRB/ethics approval.',\n },\n {\n code: 'DUO:0000029',\n abbr: 'RTN',\n name: 'Return to Database or Resource',\n category: 'obligation',\n definition:\n 'Requestor must return derived/enriched data to the database or resource.',\n },\n {\n // Sage DUO-Plus extension (no GA4GH ontology id).\n code: 'DUOplus7',\n abbr: 'ATTR',\n name: 'Attribution Required',\n category: 'obligation',\n definition:\n 'Requestor must provide the specified attribution/acknowledgement statement when using the data. (Sage DUO-Plus extension.)',\n },\n\n // --- Use limits (narrow who / where / when / what kind of research) ---\n {\n code: 'DUO:0000026',\n abbr: 'US',\n name: 'User Specific Restriction',\n category: 'limit',\n definition: 'Use is limited to specified, approved users.',\n },\n {\n code: 'DUO:0000027',\n abbr: 'PS',\n name: 'Project Specific Restriction',\n category: 'limit',\n definition: 'Use is limited to a specified, approved project.',\n },\n {\n code: 'DUO:0000028',\n abbr: 'IS',\n name: 'Institution Specific Restriction',\n category: 'limit',\n definition: 'Use is limited to specified, approved institutions.',\n },\n {\n code: 'DUO:0000022',\n abbr: 'GS',\n name: 'Geographical Restriction',\n category: 'limit',\n definition: 'Use is limited to within a specified geographic region.',\n },\n {\n code: 'DUO:0000025',\n abbr: 'TS',\n name: 'Time Limit on Use',\n category: 'limit',\n definition: 'Use is approved for a specified period of time.',\n },\n {\n code: 'DUO:0000024',\n abbr: 'MOR',\n name: 'Publication Moratorium',\n category: 'limit',\n definition: 'Requestor must not publish results until a specified date.',\n },\n {\n code: 'DUO:0000016',\n abbr: 'GSO',\n name: 'Genetic Studies Only',\n category: 'limit',\n definition: 'Use is limited to genetic studies only.',\n },\n {\n code: 'DUO:0000015',\n abbr: 'NMDS',\n name: 'No General Methods Research',\n category: 'limit',\n definition: 'Use for general methods development research is prohibited.',\n },\n {\n code: 'DUO:0000044',\n abbr: 'NPOA',\n name: 'Population Origins or Ancestry Research Prohibited',\n category: 'limit',\n definition:\n 'Use for population origins or ancestry research is prohibited.',\n },\n {\n code: 'DUO:0000012',\n abbr: 'RS',\n name: 'Research Specific Restrictions',\n category: 'limit',\n definition:\n 'Use is limited to the specific research type(s) described by the data provider.',\n },\n]\n\n/** All known terms, in canonical (category) order — for demos/legends. */\nexport const ALL_DUO_TERMS: readonly DuoTerm[] = TERMS\n\n/**\n * Link to the term's definition in Bioregistry (GA4GH DUO terms only;\n * DUO-Plus extensions have no registry entry).\n */\nexport function duoRegistryUrl(term: DuoTerm): string | undefined {\n return term.code.startsWith('DUO:')\n ? `https://bioregistry.io/${term.code.toLowerCase()}`\n : undefined\n}\n\n/**\n * Parse a `dataUseModifiers` cell into a list of values. The column is a\n * STRING_LIST, returned as a JSON-array string (e.g. `[\"General Research Use\"]`\n * or, once migrated, `[\"DUO:0000042\"]`).\n */\nexport function parseDuoModifiers(raw: string | null | undefined): string[] {\n if (!raw) {\n return []\n }\n try {\n const parsed: unknown = JSON.parse(raw)\n return Array.isArray(parsed) ? parsed.map(String) : [String(raw)]\n } catch {\n return [raw]\n }\n}\n\nconst normalize = (s: string) =>\n s\n .toLowerCase()\n .replaceAll(/[^a-z0-9]+/g, ' ')\n .trim()\n\nconst BY_NAME = new Map(TERMS.map(t => [normalize(t.name), t]))\nconst BY_CODE = new Map(TERMS.map(t => [t.code.toUpperCase(), t]))\n\n/**\n * Resolve a raw `dataUseModifiers` value (an ontology code like DUO:0000042, a\n * DUOplus# code, or a term name) to a known DuoTerm. Unknown values fall back\n * to a neutral \"limit\" tag built from the raw text so nothing is dropped.\n */\nexport function resolveDuoTerm(raw: string): DuoTerm {\n const value = raw.trim()\n const byCode = BY_CODE.get(value.toUpperCase())\n if (byCode) {\n return byCode\n }\n const match = BY_NAME.get(normalize(value))\n if (match) {\n return match\n }\n // Unknown value: present the raw text as-is. Don't fabricate an abbreviation —\n // known terms carry a hard-coded abbr in TERMS; a guessed initialism would be\n // arbitrary and potentially wrong.\n return {\n code: '',\n abbr: '',\n name: value,\n category: 'limit',\n definition: value,\n }\n}\n"],"mappings":";AAqBA,IAAM,IAAmB;CAEvB;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CAGA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CAGA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EAEE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CAGA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;CACA;EACE,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YACE;CACJ;AACF,GAGa,IAAoC;AAMjD,SAAgB,EAAe,GAAmC;CAChE,OAAO,EAAK,KAAK,WAAW,MAAM,IAC9B,0BAA0B,EAAK,KAAK,YAAY,MAChD,KAAA;AACN;AAOA,SAAgB,EAAkB,GAA0C;CAC1E,IAAI,CAAC,GACH,OAAO,CAAC;CAEV,IAAI;EACF,IAAM,IAAkB,KAAK,MAAM,CAAG;EACtC,OAAO,MAAM,QAAQ,CAAM,IAAI,EAAO,IAAI,MAAM,IAAI,CAAC,OAAO,CAAG,CAAC;CAClE,QAAQ;EACN,OAAO,CAAC,CAAG;CACb;AACF;AAEA,IAAM,KAAa,MACjB,EACG,YAAY,EACZ,WAAW,eAAe,GAAG,EAC7B,KAAK,GAEJ,IAAU,IAAI,IAAI,EAAM,KAAI,MAAK,CAAC,EAAU,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GACxD,IAAU,IAAI,IAAI,EAAM,KAAI,MAAK,CAAC,EAAE,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC;AAOjE,SAAgB,EAAe,GAAsB;CACnD,IAAM,IAAQ,EAAI,KAAK;CAYvB,OAXe,EAAQ,IAAI,EAAM,YAAY,CACzC,KAGU,EAAQ,IAAI,EAAU,CAAK,CACrC,KAMG;EACL,MAAM;EACN,MAAM;EACN,MAAM;EACN,UAAU;EACV,YAAY;CACd;AACF"}
@@ -5,8 +5,8 @@ import { CreateOrUpdateDoiModal as r } from "../../doi/CreateOrUpdateDoiModal.js
5
5
  import { useState as i } from "react";
6
6
  import { Box as a, IconButton as o, Skeleton as s, Tooltip as c } from "@mui/material";
7
7
  import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
8
- import { CreateTwoTone as f } from "@mui/icons-material";
9
- import p from "@mui/material/Link";
8
+ import f from "@mui/material/Link";
9
+ import p from "@mui/icons-material/CreateTwoTone";
10
10
  //#region src/components/GenericCard/PortalDOI/PortalDOI.tsx
11
11
  function m(m) {
12
12
  let [h, g] = i(!1), { portalId: _, resourceId: v } = m, { data: y } = e(_, { select: (e) => e.canMintDoi }), { data: b, isLoading: x } = t({
@@ -33,7 +33,7 @@ function m(m) {
33
33
  height: 0
34
34
  },
35
35
  children: [b && /* @__PURE__ */ d(l, { children: [
36
- /* @__PURE__ */ u(p, {
36
+ /* @__PURE__ */ u(f, {
37
37
  href: S,
38
38
  target: "_blank",
39
39
  children: S
@@ -49,10 +49,10 @@ function m(m) {
49
49
  onClick: () => g(!0),
50
50
  size: "small",
51
51
  sx: { color: "inherit" },
52
- children: /* @__PURE__ */ u(f, { fontSize: "inherit" })
52
+ children: /* @__PURE__ */ u(p, { fontSize: "inherit" })
53
53
  })
54
54
  })
55
- ] }), !b && y && /* @__PURE__ */ u(p, {
55
+ ] }), !b && y && /* @__PURE__ */ u(f, {
56
56
  role: "button",
57
57
  onClick: () => g(!0),
58
58
  children: "Click to Create a DOI"
@@ -1 +1 @@
1
- {"version":3,"file":"PortalDOI.js","names":[],"sources":["../../../../src/components/GenericCard/PortalDOI/PortalDOI.tsx"],"sourcesContent":["import CopyToClipboardIcon from '@/components/CopyToClipboardIcon'\nimport { CreateOrUpdateDoiModal } from '@/components/doi/CreateOrUpdateDoiModal'\nimport { useGetDOIAssociation } from '@/synapse-queries/doi/useDOI'\nimport { useGetUserPortalPermissions } from '@/synapse-queries/portal/usePortal'\nimport { CreateTwoTone } from '@mui/icons-material'\nimport { Box, IconButton, Skeleton, Tooltip } from '@mui/material'\nimport Link from '@mui/material/Link'\nimport { useState } from 'react'\n\nexport type PortalDOIProps = {\n /** The ID of the portal created with https://rest-docs.synapse.org/rest/POST/portal.html */\n portalId: string\n /** The ID of the resource. For Portals, this is a string that serializes the resourceType and all key information for\n * the resource */\n resourceId: string\n}\n\n/**\n * Component used to view/create/edit a DOI for a portal resource.\n */\nfunction PortalDOI(props: PortalDOIProps) {\n const [showEditModal, setShowEditModal] = useState(false)\n const { portalId, resourceId } = props\n\n const { data: canMintDoi } = useGetUserPortalPermissions(portalId, {\n select: permissions => permissions.canMintDoi!,\n })\n\n const { data: doi, isLoading } = useGetDOIAssociation({\n id: resourceId,\n portalId,\n type: 'PORTAL_RESOURCE',\n })\n\n if (isLoading) {\n return <Skeleton role=\"progressbar\" width={150} />\n }\n\n const doiOrgUrl = doi ? `https://doi.org/${doi.doiUri}` : undefined\n\n return (\n <>\n <CreateOrUpdateDoiModal\n open={showEditModal}\n onClose={() => setShowEditModal(false)}\n objectType={'PORTAL_RESOURCE'}\n objectId={resourceId}\n portalId={portalId}\n />\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 0.5,\n // set height to 0 to prevent expanding the table row\n height: 0,\n }}\n >\n {doi && (\n <>\n <Link href={doiOrgUrl} target={'_blank'}>\n {doiOrgUrl}\n </Link>\n <CopyToClipboardIcon\n size=\"small\"\n value={doiOrgUrl || ''}\n sx={{ color: 'inherit' }}\n />\n\n {canMintDoi && (\n <Tooltip title={`Edit DOI`}>\n <IconButton\n onClick={() => setShowEditModal(true)}\n size=\"small\"\n sx={{ color: 'inherit' }}\n >\n <CreateTwoTone fontSize={'inherit'} />\n </IconButton>\n </Tooltip>\n )}\n </>\n )}\n {!doi && canMintDoi && (\n <Link role=\"button\" onClick={() => setShowEditModal(true)}>\n Click to Create a DOI\n </Link>\n )}\n </Box>\n </>\n )\n}\n\nexport default PortalDOI\n"],"mappings":";;;;;;;;;;AAoBA,SAAS,EAAU,GAAuB;CACxC,IAAM,CAAC,GAAe,KAAoB,EAAS,EAAK,GAClD,EAAE,aAAU,kBAAe,GAE3B,EAAE,MAAM,MAAe,EAA4B,GAAU,EACjE,SAAQ,MAAe,EAAY,WACrC,CAAC,GAEK,EAAE,MAAM,GAAK,iBAAc,EAAqB;EACpD,IAAI;EACJ;EACA,MAAM;CACR,CAAC;CAED,IAAI,GACF,OAAO,kBAAC,GAAD;EAAU,MAAK;EAAc,OAAO;CAAM,CAAA;CAGnD,IAAM,IAAY,IAAM,mBAAmB,EAAI,WAAW,KAAA;CAE1D,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,MAAM;EACN,eAAe,EAAiB,EAAK;EACrC,YAAY;EACZ,UAAU;EACA;CACX,CAAA,GACD,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,YAAY;GACZ,KAAK;GAEL,QAAQ;EACV;YAPF,CASG,KACC,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,GAAD;IAAM,MAAM;IAAW,QAAQ;cAC5B;GACG,CAAA;GACN,kBAAC,GAAD;IACE,MAAK;IACL,OAAO,KAAa;IACpB,IAAI,EAAE,OAAO,UAAU;GACxB,CAAA;GAEA,KACC,kBAAC,GAAD;IAAS,OAAO;cACd,kBAAC,GAAD;KACE,eAAe,EAAiB,EAAI;KACpC,MAAK;KACL,IAAI,EAAE,OAAO,UAAU;eAEvB,kBAAC,GAAD,EAAe,UAAU,UAAY,CAAA;IAC3B,CAAA;GACL,CAAA;EAEX,EAAA,CAAA,GAEH,CAAC,KAAO,KACP,kBAAC,GAAD;GAAM,MAAK;GAAS,eAAe,EAAiB,EAAI;aAAG;EAErD,CAAA,CAEL;GACL,EAAA,CAAA;AAEN"}
1
+ {"version":3,"file":"PortalDOI.js","names":[],"sources":["../../../../src/components/GenericCard/PortalDOI/PortalDOI.tsx"],"sourcesContent":["import CopyToClipboardIcon from '@/components/CopyToClipboardIcon'\nimport { CreateOrUpdateDoiModal } from '@/components/doi/CreateOrUpdateDoiModal'\nimport { useGetDOIAssociation } from '@/synapse-queries/doi/useDOI'\nimport { useGetUserPortalPermissions } from '@/synapse-queries/portal/usePortal'\nimport CreateTwoTone from '@mui/icons-material/CreateTwoTone'\nimport { Box, IconButton, Skeleton, Tooltip } from '@mui/material'\nimport Link from '@mui/material/Link'\nimport { useState } from 'react'\n\nexport type PortalDOIProps = {\n /** The ID of the portal created with https://rest-docs.synapse.org/rest/POST/portal.html */\n portalId: string\n /** The ID of the resource. For Portals, this is a string that serializes the resourceType and all key information for\n * the resource */\n resourceId: string\n}\n\n/**\n * Component used to view/create/edit a DOI for a portal resource.\n */\nfunction PortalDOI(props: PortalDOIProps) {\n const [showEditModal, setShowEditModal] = useState(false)\n const { portalId, resourceId } = props\n\n const { data: canMintDoi } = useGetUserPortalPermissions(portalId, {\n select: permissions => permissions.canMintDoi!,\n })\n\n const { data: doi, isLoading } = useGetDOIAssociation({\n id: resourceId,\n portalId,\n type: 'PORTAL_RESOURCE',\n })\n\n if (isLoading) {\n return <Skeleton role=\"progressbar\" width={150} />\n }\n\n const doiOrgUrl = doi ? `https://doi.org/${doi.doiUri}` : undefined\n\n return (\n <>\n <CreateOrUpdateDoiModal\n open={showEditModal}\n onClose={() => setShowEditModal(false)}\n objectType={'PORTAL_RESOURCE'}\n objectId={resourceId}\n portalId={portalId}\n />\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 0.5,\n // set height to 0 to prevent expanding the table row\n height: 0,\n }}\n >\n {doi && (\n <>\n <Link href={doiOrgUrl} target={'_blank'}>\n {doiOrgUrl}\n </Link>\n <CopyToClipboardIcon\n size=\"small\"\n value={doiOrgUrl || ''}\n sx={{ color: 'inherit' }}\n />\n\n {canMintDoi && (\n <Tooltip title={`Edit DOI`}>\n <IconButton\n onClick={() => setShowEditModal(true)}\n size=\"small\"\n sx={{ color: 'inherit' }}\n >\n <CreateTwoTone fontSize={'inherit'} />\n </IconButton>\n </Tooltip>\n )}\n </>\n )}\n {!doi && canMintDoi && (\n <Link role=\"button\" onClick={() => setShowEditModal(true)}>\n Click to Create a DOI\n </Link>\n )}\n </Box>\n </>\n )\n}\n\nexport default PortalDOI\n"],"mappings":";;;;;;;;;;AAoBA,SAAS,EAAU,GAAuB;CACxC,IAAM,CAAC,GAAe,KAAoB,EAAS,EAAK,GAClD,EAAE,aAAU,kBAAe,GAE3B,EAAE,MAAM,MAAe,EAA4B,GAAU,EACjE,SAAQ,MAAe,EAAY,WACrC,CAAC,GAEK,EAAE,MAAM,GAAK,iBAAc,EAAqB;EACpD,IAAI;EACJ;EACA,MAAM;CACR,CAAC;CAED,IAAI,GACF,OAAO,kBAAC,GAAD;EAAU,MAAK;EAAc,OAAO;CAAM,CAAA;CAGnD,IAAM,IAAY,IAAM,mBAAmB,EAAI,WAAW,KAAA;CAE1D,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,MAAM;EACN,eAAe,EAAiB,EAAK;EACrC,YAAY;EACZ,UAAU;EACA;CACX,CAAA,GACD,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,YAAY;GACZ,KAAK;GAEL,QAAQ;EACV;YAPF,CASG,KACC,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,GAAD;IAAM,MAAM;IAAW,QAAQ;cAC5B;GACG,CAAA;GACN,kBAAC,GAAD;IACE,MAAK;IACL,OAAO,KAAa;IACpB,IAAI,EAAE,OAAO,UAAU;GACxB,CAAA;GAEA,KACC,kBAAC,GAAD;IAAS,OAAO;cACd,kBAAC,GAAD;KACE,eAAe,EAAiB,EAAI;KACpC,MAAK;KACL,IAAI,EAAE,OAAO,UAAU;eAEvB,kBAAC,GAAD,EAAe,UAAU,UAAY,CAAA;IAC3B,CAAA;GACL,CAAA;EAEX,EAAA,CAAA,GAEH,CAAC,KAAO,KACP,kBAAC,GAAD;GAAM,MAAK;GAAS,eAAe,EAAiB,EAAI;aAAG;EAErD,CAAA,CAEL;GACL,EAAA,CAAA;AAEN"}
@@ -4,28 +4,28 @@ import { calculateFriendlyFileSize as n } from "../../utils/functions/calculateF
4
4
  import { isDatasetCollection as r, isTableEntity as i } from "../../utils/functions/EntityTypeUtils.js";
5
5
  import { extractMarkdownLinkHref as a, parseSynId as o } from "../../utils/functions/RegularExpressions.js";
6
6
  import { getColumnIndex as ee } from "../../utils/functions/SqlFunctions.js";
7
- import { useGetEntity as te } from "../../synapse-queries/entity/useEntity.js";
7
+ import { useQueryVisualizationContext as te } from "../QueryVisualizationWrapper/QueryVisualizationContext.js";
8
+ import { useGetEntity as ne } from "../../synapse-queries/entity/useEntity.js";
8
9
  import "../../synapse-queries/index.js";
9
10
  import { TargetEnum as s } from "../../utils/html/TargetEnum.js";
10
- import { getFileHandleAssociation as ne, getLinkParams as c, getValueOrMultiValue as re } from "./CardUtils.js";
11
- import { CardActionButtonStyleContext as ie } from "./CardActionButtonStyleContext.js";
12
- import ae from "./GenericCardActionButton.js";
13
- import oe from "./CroissantButton/CroissantButton.js";
14
- import { GenericCardIcon as se } from "./GenericCardIcon.js";
15
- import ce from "./PortalDOI/PortalDOI.js";
16
- import { getCandidateDoiId as le, useShowDoiCardLabel as ue } from "./PortalDOI/PortalDOIUtils.js";
17
- import { mapRowToRecord as de } from "../SynapseTable/SynapseTableUtils.js";
18
- import fe from "../CitationPopover/index.js";
19
- import { DATASET_HOSTING_CONFIG as pe, normalizeHosting as me } from "../DatasetHosting/DatasetHosting.js";
20
- import { DatasetDownloadButton as he } from "../DatasetHosting/DatasetDownloadButton.js";
21
- import { DatasetHostingAdornment as ge } from "../DatasetHosting/DatasetHostingAdornment.js";
22
- import { EntityDownloadConfirmation as _e } from "../EntityDownloadConfirmation/EntityDownloadConfirmation.js";
11
+ import { getFileHandleAssociation as re, getLinkParams as c, getValueOrMultiValue as ie } from "./CardUtils.js";
12
+ import { CardActionButtonStyleContext as ae } from "./CardActionButtonStyleContext.js";
13
+ import oe from "./GenericCardActionButton.js";
14
+ import se from "./CroissantButton/CroissantButton.js";
15
+ import { GenericCardIcon as ce } from "./GenericCardIcon.js";
16
+ import le from "./PortalDOI/PortalDOI.js";
17
+ import { getCandidateDoiId as ue, useShowDoiCardLabel as de } from "./PortalDOI/PortalDOIUtils.js";
18
+ import { mapRowToRecord as fe } from "../SynapseTable/SynapseTableUtils.js";
19
+ import pe from "../CitationPopover/index.js";
20
+ import { DATASET_HOSTING_CONFIG as me, normalizeHosting as he } from "../DatasetHosting/DatasetHosting.js";
21
+ import { DatasetDownloadButton as ge } from "../DatasetHosting/DatasetDownloadButton.js";
22
+ import { DatasetHostingAdornment as _e } from "../DatasetHosting/DatasetHostingAdornment.js";
23
+ import { EntityDownloadConfirmation as ve } from "../EntityDownloadConfirmation/EntityDownloadConfirmation.js";
23
24
  import "../EntityDownloadConfirmation/index.js";
24
- import { useQueryContext as ve } from "../QueryContext/QueryContext.js";
25
- import ye from "../IconList.js";
26
- import { parseDuoModifiers as be } from "./DuoTermTags/duoTerms.js";
27
- import xe from "./DuoTermTags/DuoTermTags.js";
28
- import { useQueryVisualizationContext as Se } from "../QueryVisualizationWrapper/QueryVisualizationContext.js";
25
+ import { useQueryContext as ye } from "../QueryContext/QueryContext.js";
26
+ import be from "../IconList.js";
27
+ import { parseDuoModifiers as xe } from "./DuoTermTags/duoTerms.js";
28
+ import Se from "./DuoTermTags/DuoTermTags.js";
29
29
  import "../QueryVisualizationWrapper/index.js";
30
30
  import Ce from "../ShareThisPage/ShareThisPage.js";
31
31
  import { GenericCard as we } from "./GenericCard.js";
@@ -35,7 +35,7 @@ import { useCallback as Ee, useMemo as u, useState as De } from "react";
35
35
  import { Box as Oe, Collapse as ke, Link as Ae, Stack as d, Typography as je } from "@mui/material";
36
36
  import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
37
37
  import { ColumnTypeEnum as Me } from "@sage-bionetworks/synapse-types";
38
- import { GetAppTwoTone as Ne } from "@mui/icons-material";
38
+ import Ne from "@mui/icons-material/GetAppTwoTone";
39
39
  import { useInView as Pe } from "react-intersection-observer";
40
40
  //#region src/components/GenericCard/TableRowGenericCard.tsx
41
41
  function Fe(e) {
@@ -52,8 +52,8 @@ function Fe(e) {
52
52
  ] });
53
53
  }
54
54
  function h(t) {
55
- let [s, h] = De(!1), [g, Ie] = De(!1), { entityId: Le, versionNumber: Re } = ve(), { getColumnDisplayName: _ } = Se(), { ref: ze, inView: Be } = Pe(), { data: v } = te(Le, Re), { schema: y, data: b, rowId: x, versionNumber: Ve, genericCardSchema: S, secondaryLabelLimit: He, sharePageLinkButtonProps: Ue, selectColumns: C, columnModels: w, iconOptions: We, useTypeColumnForIcon: T = !1, isHeader: E = !1, sustainabilityScorecard: Ge, headerCardVariant: Ke, titleLinkConfig: D, ctaLinkConfig: O, ctaLinkPosition: qe, labelLinkConfig: Je, descriptionConfig: Ye, columnIconOptions: k, CardTypeAdornment: A, charCountCutoff: Xe, actionButtonStyle: Ze = "button" } = t, { link: Qe = "", type: j, includeCitation: $e, includeShareButton: et, defaultCitationFormat: tt, citationBoilerplateText: nt, downloadCartSynId: M, portalDoiConfiguration: N } = S, P = b[y[S.title]], F = S.subTitle && b[y[S.subTitle]];
56
- F = S.subTitle && re({
55
+ let [s, h] = De(!1), [g, Ie] = De(!1), { entityId: Le, versionNumber: Re } = ye(), { getColumnDisplayName: _ } = te(), { ref: ze, inView: Be } = Pe(), { data: v } = ne(Le, Re), { schema: y, data: b, rowId: x, versionNumber: Ve, genericCardSchema: S, secondaryLabelLimit: He, sharePageLinkButtonProps: Ue, selectColumns: C, columnModels: w, iconOptions: We, useTypeColumnForIcon: T = !1, isHeader: E = !1, sustainabilityScorecard: Ge, headerCardVariant: Ke, titleLinkConfig: D, ctaLinkConfig: O, ctaLinkPosition: qe, labelLinkConfig: Je, descriptionConfig: Ye, columnIconOptions: k, CardTypeAdornment: A, charCountCutoff: Xe, actionButtonStyle: Ze = "button" } = t, { link: Qe = "", type: j, includeCitation: $e, includeShareButton: et, defaultCitationFormat: tt, citationBoilerplateText: nt, downloadCartSynId: M, portalDoiConfiguration: N } = S, P = b[y[S.title]], F = S.subTitle && b[y[S.subTitle]];
56
+ F = S.subTitle && ie({
57
57
  value: F,
58
58
  columnName: S.subTitle,
59
59
  selectColumns: C,
@@ -66,8 +66,8 @@ function h(t) {
66
66
  }, [y, b]), B = u(() => {
67
67
  let e = S.dataUseModifiersColumnName;
68
68
  if (!e) return;
69
- let t = be(b[y[e]]);
70
- if (t.length !== 0) return /* @__PURE__ */ p(xe, { terms: t });
69
+ let t = xe(b[y[e]]);
70
+ if (t.length !== 0) return /* @__PURE__ */ p(Se, { terms: t });
71
71
  }, [
72
72
  S,
73
73
  b,
@@ -127,10 +127,10 @@ function h(t) {
127
127
  let e = o(z(M) ?? "");
128
128
  U = e?.targetId, W = e?.targetVersionNumber;
129
129
  }
130
- let G = S.hostingConfig, K = G ? z(G.hostingColumn) : void 0, q = G ? K && G.hostingValueMap?.[K] || me(K) : void 0, ut = G?.repositoryColumn ? z(G.repositoryColumn) : void 0, J = G?.externalUrlColumn ? z(G.externalUrlColumn) : void 0, dt = J ? a(J) : void 0, Y = q ? pe[q].downloadable : !0, X = le({
131
- data: u(() => de(b, y), [b, y]),
130
+ let G = S.hostingConfig, K = G ? z(G.hostingColumn) : void 0, q = G ? K && G.hostingValueMap?.[K] || he(K) : void 0, ut = G?.repositoryColumn ? z(G.repositoryColumn) : void 0, J = G?.externalUrlColumn ? z(G.externalUrlColumn) : void 0, dt = J ? a(J) : void 0, Y = q ? me[q].downloadable : !0, X = ue({
131
+ data: u(() => fe(b, y), [b, y]),
132
132
  portalDoiConfiguration: N
133
- }), ft = ue({
133
+ }), ft = de({
134
134
  portalId: N?.portalId,
135
135
  resourceId: X
136
136
  }), Z = [], { secondaryLabels: pt = [] } = S, mt = S.customSecondaryLabelConfig;
@@ -140,7 +140,7 @@ function h(t) {
140
140
  value: B
141
141
  }), ft && N && X && Be && Z.push({
142
142
  columnDisplayName: "DOI",
143
- value: /* @__PURE__ */ p(ce, {
143
+ value: /* @__PURE__ */ p(le, {
144
144
  portalId: N.portalId,
145
145
  resourceId: X
146
146
  })
@@ -188,7 +188,7 @@ function h(t) {
188
188
  });
189
189
  }
190
190
  }
191
- let Q = ne(v, L || R, b[y.id]), gt = _(S.description || ""), _t = ee("doi", C, w), vt = _t === void 0 ? void 0 : b[_t], yt = (O ? Array.isArray(O) ? O : [O] : []).map((e) => {
191
+ let Q = re(v, L || R, b[y.id]), gt = _(S.description || ""), _t = ee("doi", C, w), vt = _t === void 0 ? void 0 : b[_t], yt = (O ? Array.isArray(O) ? O : [O] : []).map((e) => {
192
192
  let t = b[y[e.link]] || "";
193
193
  if (!t) return null;
194
194
  let { href: n, target: r } = c(t, void 0, b, y, x);
@@ -205,7 +205,7 @@ function h(t) {
205
205
  target: r
206
206
  };
207
207
  }).filter(Boolean), bt = /* @__PURE__ */ p(f, {});
208
- V != null && H != null && (bt = /* @__PURE__ */ p(oe, {
208
+ V != null && H != null && (bt = /* @__PURE__ */ p(se, {
209
209
  datasetId: V,
210
210
  datasetVersionNumber: H
211
211
  }));
@@ -213,14 +213,14 @@ function h(t) {
213
213
  A ? $ = /* @__PURE__ */ p(A, {
214
214
  schema: y,
215
215
  data: b
216
- }) : G && K?.trim() && q && ($ = /* @__PURE__ */ p(ge, {
216
+ }) : G && K?.trim() && q && ($ = /* @__PURE__ */ p(_e, {
217
217
  hostingType: q,
218
218
  isHeader: E
219
219
  }));
220
220
  let xt = !0;
221
221
  return E && !L && !it && (xt = !1), /* @__PURE__ */ p(we, {
222
222
  ref: ze,
223
- icon: xt ? /* @__PURE__ */ p(se, {
223
+ icon: xt ? /* @__PURE__ */ p(ce, {
224
224
  type: T ? b[y.type] : S.type,
225
225
  useTypeForIcon: T,
226
226
  thumbnailRequiresPadding: S.thumbnailRequiresPadding,
@@ -256,7 +256,7 @@ function h(t) {
256
256
  useStylesForDisplayedImage: !!L,
257
257
  cardTopContent: /* @__PURE__ */ p(f, { children: U && /* @__PURE__ */ p(ke, {
258
258
  in: s,
259
- children: /* @__PURE__ */ p(_e, {
259
+ children: /* @__PURE__ */ p(ve, {
260
260
  entityId: U,
261
261
  versionNumber: W,
262
262
  handleClose: () => h(!1),
@@ -267,7 +267,7 @@ function h(t) {
267
267
  }) }),
268
268
  renderedIconList: k?.columns?.dataType && I?.length && /* @__PURE__ */ p("div", {
269
269
  style: { marginTop: "20px" },
270
- children: /* @__PURE__ */ p(ye, {
270
+ children: /* @__PURE__ */ p(be, {
271
271
  iconConfigs: k.columns.dataType,
272
272
  iconNames: JSON.parse(I),
273
273
  commonIconProps: { sx: { fontSize: "40px" } },
@@ -275,7 +275,7 @@ function h(t) {
275
275
  useTheme: !0
276
276
  })
277
277
  }),
278
- cardTopButtons: /* @__PURE__ */ p(ie.Provider, {
278
+ cardTopButtons: /* @__PURE__ */ p(ae.Provider, {
279
279
  value: Ze,
280
280
  children: /* @__PURE__ */ m(Oe, {
281
281
  sx: {
@@ -285,7 +285,7 @@ function h(t) {
285
285
  },
286
286
  children: [
287
287
  bt,
288
- G && (U || !Y) && /* @__PURE__ */ p(he, {
288
+ G && (U || !Y) && /* @__PURE__ */ p(ge, {
289
289
  entityId: U,
290
290
  name: P,
291
291
  hosting: q,
@@ -294,14 +294,14 @@ function h(t) {
294
294
  onDownloadClick: () => h((e) => !e),
295
295
  isDownloading: g
296
296
  }),
297
- !G && U && /* @__PURE__ */ p(ae, {
297
+ !G && U && /* @__PURE__ */ p(oe, {
298
298
  onClick: () => h((e) => !e),
299
299
  variant: "outlined",
300
300
  startIcon: /* @__PURE__ */ p(Ne, { sx: { height: "12px" } }),
301
301
  loading: g,
302
302
  children: "Download"
303
303
  }),
304
- $e && vt && /* @__PURE__ */ p(fe, {
304
+ $e && vt && /* @__PURE__ */ p(pe, {
305
305
  title: P,
306
306
  doi: vt,
307
307
  boilerplateText: nt,