synapse-react-client 4.0.35 → 4.0.37

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 (511) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/aridhia-queries/AridhiaKeyFactory.d.ts +24 -0
  3. package/dist/aridhia-queries/AridhiaKeyFactory.d.ts.map +1 -0
  4. package/dist/aridhia-queries/AridhiaKeyFactory.js +49 -0
  5. package/dist/aridhia-queries/AridhiaKeyFactory.js.map +1 -0
  6. package/dist/aridhia-queries/FairFormPayload.d.ts +45 -0
  7. package/dist/aridhia-queries/FairFormPayload.d.ts.map +1 -0
  8. package/dist/aridhia-queries/FairFormPayload.js +0 -0
  9. package/dist/aridhia-queries/TransferType.d.ts +10 -0
  10. package/dist/aridhia-queries/TransferType.d.ts.map +1 -0
  11. package/dist/aridhia-queries/TransferType.js +0 -0
  12. package/dist/aridhia-queries/aridhiaTokenExchange.js +6 -6
  13. package/dist/aridhia-queries/index.d.ts +12 -0
  14. package/dist/aridhia-queries/index.d.ts.map +1 -1
  15. package/dist/aridhia-queries/index.js +12 -2
  16. package/dist/aridhia-queries/useAridhiaQuery.d.ts +38 -0
  17. package/dist/aridhia-queries/useAridhiaQuery.d.ts.map +1 -0
  18. package/dist/aridhia-queries/useAridhiaQuery.js +78 -0
  19. package/dist/aridhia-queries/useAridhiaQuery.js.map +1 -0
  20. package/dist/aridhia-queries/useGetAridhiaDatasetCatalogue.d.ts +6 -0
  21. package/dist/aridhia-queries/useGetAridhiaDatasetCatalogue.d.ts.map +1 -0
  22. package/dist/aridhia-queries/useGetAridhiaDatasetCatalogue.js +13 -0
  23. package/dist/aridhia-queries/useGetAridhiaDatasetCatalogue.js.map +1 -0
  24. package/dist/aridhia-queries/useGetAridhiaDatasetSettings.d.ts +6 -0
  25. package/dist/aridhia-queries/useGetAridhiaDatasetSettings.d.ts.map +1 -0
  26. package/dist/aridhia-queries/useGetAridhiaDatasetSettings.js +13 -0
  27. package/dist/aridhia-queries/useGetAridhiaDatasetSettings.js.map +1 -0
  28. package/dist/aridhia-queries/useGetAridhiaDictionaries.d.ts +6 -0
  29. package/dist/aridhia-queries/useGetAridhiaDictionaries.d.ts.map +1 -0
  30. package/dist/aridhia-queries/useGetAridhiaDictionaries.js +13 -0
  31. package/dist/aridhia-queries/useGetAridhiaDictionaries.js.map +1 -0
  32. package/dist/aridhia-queries/useGetAridhiaRequests.d.ts +5 -4
  33. package/dist/aridhia-queries/useGetAridhiaRequests.d.ts.map +1 -1
  34. package/dist/aridhia-queries/useGetAridhiaRequests.js +11 -18
  35. package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
  36. package/dist/aridhia-queries/useGetAridhiaWorkflow.d.ts +13 -0
  37. package/dist/aridhia-queries/useGetAridhiaWorkflow.d.ts.map +1 -0
  38. package/dist/aridhia-queries/useGetAridhiaWorkflow.js +19 -0
  39. package/dist/aridhia-queries/useGetAridhiaWorkflow.js.map +1 -0
  40. package/dist/aridhia-queries/useGetAridhiaWorkspaceLocations.d.ts +6 -0
  41. package/dist/aridhia-queries/useGetAridhiaWorkspaceLocations.d.ts.map +1 -0
  42. package/dist/aridhia-queries/useGetAridhiaWorkspaceLocations.js +13 -0
  43. package/dist/aridhia-queries/useGetAridhiaWorkspaceLocations.js.map +1 -0
  44. package/dist/aridhia-queries/useGetAridhiaWorkspaceRequestForm.d.ts +19 -0
  45. package/dist/aridhia-queries/useGetAridhiaWorkspaceRequestForm.d.ts.map +1 -0
  46. package/dist/aridhia-queries/useGetAridhiaWorkspaceRequestForm.js +17 -0
  47. package/dist/aridhia-queries/useGetAridhiaWorkspaceRequestForm.js.map +1 -0
  48. package/dist/aridhia-queries/useGetAridhiaWorkspaces.d.ts +6 -0
  49. package/dist/aridhia-queries/useGetAridhiaWorkspaces.d.ts.map +1 -0
  50. package/dist/aridhia-queries/useGetAridhiaWorkspaces.js +19 -0
  51. package/dist/aridhia-queries/useGetAridhiaWorkspaces.js.map +1 -0
  52. package/dist/aridhia-queries/useSubmitAridhiaDar.d.ts +27 -0
  53. package/dist/aridhia-queries/useSubmitAridhiaDar.d.ts.map +1 -0
  54. package/dist/aridhia-queries/useSubmitAridhiaDar.js +38 -0
  55. package/dist/aridhia-queries/useSubmitAridhiaDar.js.map +1 -0
  56. package/dist/assets/icons/emailWithNotification.js +15 -15
  57. package/dist/assets/icons/emailWithNotification.js.map +1 -1
  58. package/dist/assets/icons/emailWithNotification.svg +13 -13
  59. package/dist/components/AccessRequirement/EntityActionsRequired.d.ts +0 -1
  60. package/dist/components/AccessRequirement/EntityActionsRequired.d.ts.map +1 -1
  61. package/dist/components/AccessRequirement/EntityActionsRequired.js +3 -6
  62. package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
  63. package/dist/components/AccessRequirementList/AccessRequirementList.d.ts.map +1 -1
  64. package/dist/components/AccessRequirementList/AccessRequirementList.js +65 -57
  65. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  66. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.d.ts.map +1 -1
  67. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js +1 -1
  68. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
  69. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts.map +1 -1
  70. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js +67 -57
  71. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js.map +1 -1
  72. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts.map +1 -1
  73. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js +33 -32
  74. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js.map +1 -1
  75. package/dist/components/Aridhia/AridhiaAccessStatus.d.ts.map +1 -1
  76. package/dist/components/Aridhia/AridhiaAccessStatus.js +39 -18
  77. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  78. package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.d.ts +32 -0
  79. package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.d.ts.map +1 -0
  80. package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.js +285 -0
  81. package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.js.map +1 -0
  82. package/dist/components/Aridhia/DarWizard/DarAboutStep.d.ts +4 -0
  83. package/dist/components/Aridhia/DarWizard/DarAboutStep.d.ts.map +1 -0
  84. package/dist/components/Aridhia/DarWizard/DarAboutStep.js +17 -0
  85. package/dist/components/Aridhia/DarWizard/DarAboutStep.js.map +1 -0
  86. package/dist/components/Aridhia/DarWizard/DarCompleteStep.d.ts +27 -0
  87. package/dist/components/Aridhia/DarWizard/DarCompleteStep.d.ts.map +1 -0
  88. package/dist/components/Aridhia/DarWizard/DarCompleteStep.js +96 -0
  89. package/dist/components/Aridhia/DarWizard/DarCompleteStep.js.map +1 -0
  90. package/dist/components/Aridhia/DarWizard/DarDestinationStep.d.ts +28 -0
  91. package/dist/components/Aridhia/DarWizard/DarDestinationStep.d.ts.map +1 -0
  92. package/dist/components/Aridhia/DarWizard/DarDestinationStep.js +128 -0
  93. package/dist/components/Aridhia/DarWizard/DarDestinationStep.js.map +1 -0
  94. package/dist/components/Aridhia/DarWizard/DarProjectStep.d.ts +4 -0
  95. package/dist/components/Aridhia/DarWizard/DarProjectStep.d.ts.map +1 -0
  96. package/dist/components/Aridhia/DarWizard/DarProjectStep.js +17 -0
  97. package/dist/components/Aridhia/DarWizard/DarProjectStep.js.map +1 -0
  98. package/dist/components/Aridhia/DarWizard/DarSectionForm.d.ts +13 -0
  99. package/dist/components/Aridhia/DarWizard/DarSectionForm.d.ts.map +1 -0
  100. package/dist/components/Aridhia/DarWizard/DarSectionForm.js +23 -0
  101. package/dist/components/Aridhia/DarWizard/DarSectionForm.js.map +1 -0
  102. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts +11 -0
  103. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts.map +1 -0
  104. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js +47 -0
  105. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js.map +1 -0
  106. package/dist/components/Aridhia/DarWizard/DarWorkspaceStep.d.ts +16 -0
  107. package/dist/components/Aridhia/DarWizard/DarWorkspaceStep.d.ts.map +1 -0
  108. package/dist/components/Aridhia/DarWizard/DarWorkspaceStep.js +33 -0
  109. package/dist/components/Aridhia/DarWizard/DarWorkspaceStep.js.map +1 -0
  110. package/dist/components/Aridhia/DarWizard/useDarDraft.d.ts +32 -0
  111. package/dist/components/Aridhia/DarWizard/useDarDraft.d.ts.map +1 -0
  112. package/dist/components/Aridhia/DarWizard/useDarDraft.js +44 -0
  113. package/dist/components/Aridhia/DarWizard/useDarDraft.js.map +1 -0
  114. package/dist/components/Aridhia/FairLabelField.d.ts +8 -0
  115. package/dist/components/Aridhia/FairLabelField.d.ts.map +1 -0
  116. package/dist/components/Aridhia/FairLabelField.js +13 -0
  117. package/dist/components/Aridhia/FairLabelField.js.map +1 -0
  118. package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts +3 -3
  119. package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts.map +1 -1
  120. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js +1 -1
  121. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
  122. package/dist/components/Aridhia/fairFormToRjsf.d.ts +36 -0
  123. package/dist/components/Aridhia/fairFormToRjsf.d.ts.map +1 -0
  124. package/dist/components/Aridhia/fairFormToRjsf.js +137 -0
  125. package/dist/components/Aridhia/fairFormToRjsf.js.map +1 -0
  126. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.d.ts.map +1 -1
  127. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js +2 -2
  128. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
  129. package/dist/components/CardContainer/CardConfiguration.d.ts +8 -0
  130. package/dist/components/CardContainer/CardConfiguration.d.ts.map +1 -1
  131. package/dist/components/CardContainer/CardContainer.d.ts.map +1 -1
  132. package/dist/components/CardContainer/CardContainer.js +1 -1
  133. package/dist/components/CardContainer/CardContainer.js.map +1 -1
  134. package/dist/components/ChallengeSubmission/ChallengeSubmission.d.ts.map +1 -1
  135. package/dist/components/ChallengeSubmission/ChallengeSubmission.js +2 -2
  136. package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
  137. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.d.ts.map +1 -1
  138. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +3 -3
  139. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
  140. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js +1 -1
  141. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
  142. package/dist/components/ChangePassword/ChangePasswordWithToken.d.ts.map +1 -1
  143. package/dist/components/ChangePassword/ChangePasswordWithToken.js +58 -23
  144. package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
  145. package/dist/components/ChangePassword/useChangePasswordFormState.d.ts.map +1 -1
  146. package/dist/components/ChangePassword/useChangePasswordFormState.js +13 -3
  147. package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
  148. package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js +2 -2
  149. package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
  150. package/dist/components/CreateTableViewWizard/TableNameForm.d.ts.map +1 -1
  151. package/dist/components/CreateTableViewWizard/TableNameForm.js +11 -14
  152. package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
  153. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  154. package/dist/components/DataGrid/SynapseGrid.js +121 -117
  155. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  156. package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts +1 -1
  157. package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts.map +1 -1
  158. package/dist/components/DataGrid/SyncGridWithSourceButton.js +55 -61
  159. package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -1
  160. package/dist/components/DataGrid/columns/DateTimeColumn.d.ts +21 -1
  161. package/dist/components/DataGrid/columns/DateTimeColumn.d.ts.map +1 -1
  162. package/dist/components/DataGrid/columns/DateTimeColumn.js +73 -29
  163. package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
  164. package/dist/components/DataGrid/columns/NumberColumn.d.ts +31 -0
  165. package/dist/components/DataGrid/columns/NumberColumn.d.ts.map +1 -0
  166. package/dist/components/DataGrid/columns/NumberColumn.js +27 -0
  167. package/dist/components/DataGrid/columns/NumberColumn.js.map +1 -0
  168. package/dist/components/DataGrid/components/ReorderColumnsButton.d.ts +1 -0
  169. package/dist/components/DataGrid/components/ReorderColumnsButton.d.ts.map +1 -1
  170. package/dist/components/DataGrid/components/ReorderColumnsButton.js +17 -16
  171. package/dist/components/DataGrid/components/ReorderColumnsButton.js.map +1 -1
  172. package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts +2 -0
  173. package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
  174. package/dist/components/DataGrid/components/ReorderColumnsDialog.js +104 -65
  175. package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
  176. package/dist/components/DataGrid/components/contextMenu.d.ts.map +1 -1
  177. package/dist/components/DataGrid/components/contextMenu.js +15 -15
  178. package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
  179. package/dist/components/DataGrid/useDataGridWebsocket.js +1 -1
  180. package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
  181. package/dist/components/DataGrid/useMergeGridWithSource.d.ts +1 -5
  182. package/dist/components/DataGrid/useMergeGridWithSource.d.ts.map +1 -1
  183. package/dist/components/DataGrid/useMergeGridWithSource.js +21 -28
  184. package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
  185. package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
  186. package/dist/components/DataGrid/utils/columnFactory.js +55 -51
  187. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  188. package/dist/components/DataGrid/utils/computeDefaultColumnOrder.d.ts.map +1 -1
  189. package/dist/components/DataGrid/utils/computeDefaultColumnOrder.js +9 -8
  190. package/dist/components/DataGrid/utils/computeDefaultColumnOrder.js.map +1 -1
  191. package/dist/components/DatasetHosting/DatasetDownloadButton.d.ts +40 -0
  192. package/dist/components/DatasetHosting/DatasetDownloadButton.d.ts.map +1 -0
  193. package/dist/components/DatasetHosting/DatasetDownloadButton.js +124 -0
  194. package/dist/components/DatasetHosting/DatasetDownloadButton.js.map +1 -0
  195. package/dist/components/DatasetHosting/DatasetHosting.d.ts +97 -0
  196. package/dist/components/DatasetHosting/DatasetHosting.d.ts.map +1 -0
  197. package/dist/components/DatasetHosting/DatasetHosting.js +64 -0
  198. package/dist/components/DatasetHosting/DatasetHosting.js.map +1 -0
  199. package/dist/components/DatasetHosting/DatasetHostingAdornment.d.ts +15 -0
  200. package/dist/components/DatasetHosting/DatasetHostingAdornment.d.ts.map +1 -0
  201. package/dist/components/DatasetHosting/DatasetHostingAdornment.js +23 -0
  202. package/dist/components/DatasetHosting/DatasetHostingAdornment.js.map +1 -0
  203. package/dist/components/DatasetHosting/index.d.ts +7 -0
  204. package/dist/components/DatasetHosting/index.d.ts.map +1 -0
  205. package/dist/components/DatasetHosting/index.js +4 -0
  206. package/dist/components/DownloadCart/ActionRequiredListItem.d.ts +0 -2
  207. package/dist/components/DownloadCart/ActionRequiredListItem.d.ts.map +1 -1
  208. package/dist/components/DownloadCart/ActionRequiredListItem.js +2 -3
  209. package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
  210. package/dist/components/DownloadCart/DownloadCartPage.d.ts +1 -2
  211. package/dist/components/DownloadCart/DownloadCartPage.d.ts.map +1 -1
  212. package/dist/components/DownloadCart/DownloadCartPage.js +49 -49
  213. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  214. package/dist/components/DownloadCart/DownloadListActionsRequired.d.ts +1 -5
  215. package/dist/components/DownloadCart/DownloadListActionsRequired.d.ts.map +1 -1
  216. package/dist/components/DownloadCart/DownloadListActionsRequired.js +5 -6
  217. package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
  218. package/dist/components/DownloadCart/RequestDownloadCard.d.ts +0 -2
  219. package/dist/components/DownloadCart/RequestDownloadCard.d.ts.map +1 -1
  220. package/dist/components/DownloadCart/RequestDownloadCard.js +28 -32
  221. package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
  222. package/dist/components/DownloadCart/TableQueryActionsRequired.d.ts +0 -2
  223. package/dist/components/DownloadCart/TableQueryActionsRequired.d.ts.map +1 -1
  224. package/dist/components/DownloadCart/TableQueryActionsRequired.js +7 -8
  225. package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
  226. package/dist/components/DownloadCart/index.d.ts +1 -2
  227. package/dist/components/DownloadCart/index.d.ts.map +1 -1
  228. package/dist/components/DropdownSelect/DropdownSelect.d.ts.map +1 -1
  229. package/dist/components/DropdownSelect/DropdownSelect.js +1 -1
  230. package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
  231. package/dist/components/EntityFinder/tree/EntityTree.d.ts.map +1 -1
  232. package/dist/components/EntityFinder/tree/EntityTree.js +1 -1
  233. package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
  234. package/dist/components/EntityFinder/tree/VirtualizedTree.js +1 -1
  235. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  236. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +1 -1
  237. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  238. package/dist/components/GenericCard/CardActionButtonStyleContext.d.ts +10 -0
  239. package/dist/components/GenericCard/CardActionButtonStyleContext.d.ts.map +1 -0
  240. package/dist/components/GenericCard/CardActionButtonStyleContext.js +10 -0
  241. package/dist/components/GenericCard/CardActionButtonStyleContext.js.map +1 -0
  242. package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js +41 -41
  243. package/dist/components/GenericCard/GenericCardActionButton.d.ts +5 -0
  244. package/dist/components/GenericCard/GenericCardActionButton.d.ts.map +1 -1
  245. package/dist/components/GenericCard/GenericCardActionButton.js +28 -11
  246. package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
  247. package/dist/components/GenericCard/TableRowGenericCard.d.ts +24 -0
  248. package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
  249. package/dist/components/GenericCard/TableRowGenericCard.js +158 -137
  250. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  251. package/dist/components/JSONArrayEditor/JSONArrayEditor.d.ts.map +1 -1
  252. package/dist/components/JSONArrayEditor/JSONArrayEditor.js +42 -42
  253. package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
  254. package/dist/components/JsonSchemaForm/CustomFormContext.d.ts +9 -0
  255. package/dist/components/JsonSchemaForm/CustomFormContext.d.ts.map +1 -1
  256. package/dist/components/JsonSchemaForm/JsonSchemaForm.css +1 -0
  257. package/dist/components/JsonSchemaForm/JsonSchemaForm.d.ts.map +1 -1
  258. package/dist/components/JsonSchemaForm/JsonSchemaForm.js +15 -13
  259. package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
  260. package/dist/components/JsonSchemaForm/JsonSchemaForm.module.js +5 -0
  261. package/dist/components/JsonSchemaForm/JsonSchemaForm.module.js.map +1 -0
  262. package/dist/components/JsonSchemaForm/JsonSchemaForm.module.scss +109 -0
  263. package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.d.ts.map +1 -1
  264. package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js +1 -1
  265. package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
  266. package/dist/components/JsonSchemaForm/templates/FieldTemplate.d.ts.map +1 -1
  267. package/dist/components/JsonSchemaForm/templates/FieldTemplate.js +6 -6
  268. package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
  269. package/dist/components/JsonSchemaForm/widgets/DateWidget.d.ts +9 -0
  270. package/dist/components/JsonSchemaForm/widgets/DateWidget.d.ts.map +1 -0
  271. package/dist/components/JsonSchemaForm/widgets/DateWidget.js +23 -0
  272. package/dist/components/JsonSchemaForm/widgets/DateWidget.js.map +1 -0
  273. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.css +1 -1
  274. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.d.ts +3 -2
  275. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.d.ts.map +1 -1
  276. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js +10 -12
  277. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
  278. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.module.js +8 -7
  279. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.module.js.map +1 -1
  280. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.module.scss +12 -2
  281. package/dist/components/Markdown/MarkdownEditor.js +1 -1
  282. package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
  283. package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts.map +1 -1
  284. package/dist/components/ProvenanceGraph/ProvenanceGraph.js +46 -46
  285. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  286. package/dist/components/QueryBuilder/QueryBuilderTypes.d.ts +39 -0
  287. package/dist/components/QueryBuilder/QueryBuilderTypes.d.ts.map +1 -0
  288. package/dist/components/QueryBuilder/QueryBuilderTypes.js +11 -0
  289. package/dist/components/QueryBuilder/QueryBuilderTypes.js.map +1 -0
  290. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts +48 -0
  291. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts.map +1 -0
  292. package/dist/components/QueryBuilder/queryBuilderTranslation.js +256 -0
  293. package/dist/components/QueryBuilder/queryBuilderTranslation.js.map +1 -0
  294. package/dist/components/QueryContext/QueryContext.d.ts +0 -1
  295. package/dist/components/QueryContext/QueryContext.d.ts.map +1 -1
  296. package/dist/components/QueryContext/QueryContext.js.map +1 -1
  297. package/dist/components/QueryWrapper/QueryWrapper.d.ts +0 -1
  298. package/dist/components/QueryWrapper/QueryWrapper.d.ts.map +1 -1
  299. package/dist/components/QueryWrapper/QueryWrapper.js +52 -53
  300. package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
  301. package/dist/components/QueryWrapperErrorBoundary.d.ts.map +1 -1
  302. package/dist/components/QueryWrapperErrorBoundary.js +4 -11
  303. package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
  304. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js +1 -1
  305. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
  306. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -2
  307. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  308. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +27 -25
  309. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  310. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.d.ts +0 -9
  311. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.d.ts.map +1 -1
  312. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js +23 -31
  313. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
  314. package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.d.ts.map +1 -1
  315. package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js +126 -125
  316. package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
  317. package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.d.ts.map +1 -1
  318. package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js +6 -5
  319. package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
  320. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +2 -0
  321. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
  322. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +18 -13
  323. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  324. package/dist/components/SearchQueryWrapper/SearchQueryWrapper.d.ts.map +1 -1
  325. package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js +0 -1
  326. package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
  327. package/dist/components/ShareThisPage/ShareThisPage.js +30 -29
  328. package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
  329. package/dist/components/StatisticsPlot.d.ts.map +1 -1
  330. package/dist/components/StatisticsPlot.js +1 -1
  331. package/dist/components/StatisticsPlot.js.map +1 -1
  332. package/dist/components/SynapseChat/GridAgentChat.d.ts.map +1 -1
  333. package/dist/components/SynapseChat/GridAgentChat.js +29 -31
  334. package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
  335. package/dist/components/SynapseForm/SynapseFormWrapper.js +1 -1
  336. package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
  337. package/dist/components/SynapseHomepageV2/HotdropsAndNews.css +1 -1
  338. package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.js +9 -9
  339. package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.js.map +1 -1
  340. package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.scss +14 -0
  341. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +1 -1
  342. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
  343. package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js +1 -1
  344. package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
  345. package/dist/components/SynapseTable/SynapseTable.d.ts.map +1 -1
  346. package/dist/components/SynapseTable/SynapseTable.js +2 -1
  347. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  348. package/dist/components/SynapseTable/SynapseTableRenderers.d.ts.map +1 -1
  349. package/dist/components/SynapseTable/SynapseTableRenderers.js +1 -1
  350. package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
  351. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts +4 -0
  352. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
  353. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +71 -69
  354. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  355. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.d.ts.map +1 -1
  356. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js +29 -30
  357. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
  358. package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts +4 -0
  359. package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts.map +1 -1
  360. package/dist/components/SynapseTable/table-top/DownloadOptions.js +14 -13
  361. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  362. package/dist/components/SynapseTable/usePrefetchTableData.js +1 -1
  363. package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
  364. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js +4 -4
  365. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
  366. package/dist/components/TanStackTable/StyledTanStackTable.d.ts +7 -0
  367. package/dist/components/TanStackTable/StyledTanStackTable.d.ts.map +1 -1
  368. package/dist/components/TanStackTable/StyledTanStackTable.js +68 -48
  369. package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
  370. package/dist/components/TanStackTable/TableCellRenderer.d.ts.map +1 -1
  371. package/dist/components/TanStackTable/TableCellRenderer.js +1 -1
  372. package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
  373. package/dist/components/TanStackTable/useSyncedTopScrollbar.d.ts +13 -0
  374. package/dist/components/TanStackTable/useSyncedTopScrollbar.d.ts.map +1 -0
  375. package/dist/components/TanStackTable/useSyncedTopScrollbar.js +32 -0
  376. package/dist/components/TanStackTable/useSyncedTopScrollbar.js.map +1 -0
  377. package/dist/components/TermsAndConditions/TermsAndConditions.js +1 -1
  378. package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
  379. package/dist/components/Webhook/CreateWebhookModal.d.ts.map +1 -1
  380. package/dist/components/Webhook/CreateWebhookModal.js +1 -1
  381. package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
  382. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -1
  383. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +172 -61
  384. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -1
  385. package/dist/components/dataaccess/UserAccessRequestHistory/RouteConstants.d.ts +3 -0
  386. package/dist/components/dataaccess/UserAccessRequestHistory/RouteConstants.d.ts.map +1 -1
  387. package/dist/components/dataaccess/UserAccessRequestHistory/RouteConstants.js +2 -2
  388. package/dist/components/dataaccess/UserAccessRequestHistory/RouteConstants.js.map +1 -1
  389. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.d.ts.map +1 -1
  390. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js +11 -9
  391. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
  392. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.d.ts.map +1 -1
  393. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js +74 -43
  394. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
  395. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.d.ts.map +1 -1
  396. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js +2 -2
  397. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
  398. package/dist/components/doi/CreateOrUpdateDoiModal.d.ts.map +1 -1
  399. package/dist/components/doi/CreateOrUpdateDoiModal.js +15 -18
  400. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  401. package/dist/components/entity/metadata/EntityModal.js +1 -1
  402. package/dist/components/entity/metadata/EntityModal.js.map +1 -1
  403. package/dist/components/entity/page/action_menu/EntityActionMenu.js +2 -2
  404. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  405. package/dist/components/index.d.ts +1 -0
  406. package/dist/components/index.d.ts.map +1 -1
  407. package/dist/components/index.js +144 -140
  408. package/dist/components/menu/DropdownMenu.d.ts.map +1 -1
  409. package/dist/components/menu/DropdownMenu.js +7 -7
  410. package/dist/components/menu/DropdownMenu.js.map +1 -1
  411. package/dist/components/row_renderers/Dataset.js +1 -1
  412. package/dist/components/row_renderers/Dataset.js.map +1 -1
  413. package/dist/components/styled/LeftRightPanel.d.ts +8 -0
  414. package/dist/components/styled/LeftRightPanel.d.ts.map +1 -1
  415. package/dist/components/styled/LeftRightPanel.js +10 -1
  416. package/dist/components/styled/LeftRightPanel.js.map +1 -1
  417. package/dist/components/widgets/facet-nav/FacetNavPanel.js +1 -1
  418. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  419. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts.map +1 -1
  420. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js +1 -1
  421. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  422. package/dist/components/widgets/query-filter/FacetFilterControls.js +1 -1
  423. package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
  424. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
  425. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +1 -1
  426. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  427. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +5 -5
  428. package/dist/index.js +174 -171
  429. package/dist/index.js.map +1 -1
  430. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +73 -0
  431. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -0
  432. package/dist/mocks/msw/handlers/aridhiaHandlers.js +119 -0
  433. package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -0
  434. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.d.ts.map +1 -1
  435. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js +31 -27
  436. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
  437. package/dist/mocks/msw/handlers/entityHandlers.d.ts.map +1 -1
  438. package/dist/mocks/msw/handlers/entityHandlers.js +4 -4
  439. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  440. package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.d.ts +1 -0
  441. package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.d.ts.map +1 -1
  442. package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js +7 -1
  443. package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
  444. package/dist/mocks/msw/handlers/userProfileHandlers.d.ts.map +1 -1
  445. package/dist/mocks/msw/handlers/userProfileHandlers.js +6 -2
  446. package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
  447. package/dist/mocks/msw/handlers.d.ts.map +1 -1
  448. package/dist/mocks/msw/handlers.js +72 -69
  449. package/dist/mocks/msw/handlers.js.map +1 -1
  450. package/dist/style/components/_all.scss +0 -1
  451. package/dist/style/components/_cards.scss +4 -2
  452. package/dist/style/components/_terms-and-conditions.scss +25 -3
  453. package/dist/style/main.css +1 -1
  454. package/dist/synapse-queries/KeyFactory.d.ts +1 -0
  455. package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
  456. package/dist/synapse-queries/KeyFactory.js +3 -0
  457. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  458. package/dist/synapse-queries/dataaccess/index.js +4 -4
  459. package/dist/synapse-queries/dataaccess/useEDuc.d.ts +7 -0
  460. package/dist/synapse-queries/dataaccess/useEDuc.d.ts.map +1 -1
  461. package/dist/synapse-queries/dataaccess/useEDuc.js +11 -3
  462. package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
  463. package/dist/synapse-queries/index.js +190 -189
  464. package/dist/testutils/RjsfFormTestUtils.js +12 -0
  465. package/dist/testutils/RjsfFormTestUtils.js.map +1 -0
  466. package/dist/tsconfig.build.tsbuildinfo +1 -1
  467. package/dist/utils/APIConstants.d.ts +1 -0
  468. package/dist/utils/APIConstants.d.ts.map +1 -1
  469. package/dist/utils/APIConstants.js +2 -2
  470. package/dist/utils/APIConstants.js.map +1 -1
  471. package/dist/utils/featureflag/FeatureFlags.d.ts +2 -4
  472. package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
  473. package/dist/utils/featureflag/FeatureFlags.js +1 -1
  474. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  475. package/dist/utils/functions/QueryFilterUtils.js +1 -1
  476. package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
  477. package/dist/utils/functions/RegularExpressions.d.ts +10 -0
  478. package/dist/utils/functions/RegularExpressions.d.ts.map +1 -1
  479. package/dist/utils/functions/RegularExpressions.js +7 -1
  480. package/dist/utils/functions/RegularExpressions.js.map +1 -1
  481. package/dist/utils/functions/SqlFunctions.d.ts.map +1 -1
  482. package/dist/utils/functions/SqlFunctions.js +20 -4
  483. package/dist/utils/functions/SqlFunctions.js.map +1 -1
  484. package/dist/utils/functions/queryUtils.js +1 -1
  485. package/dist/utils/functions/queryUtils.js.map +1 -1
  486. package/dist/utils/hooks/useDetectSSOCode.d.ts.map +1 -1
  487. package/dist/utils/hooks/useDetectSSOCode.js +1 -1
  488. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  489. package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js +1 -1
  490. package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
  491. package/dist/utils/index.js +16 -16
  492. package/dist/utils/jsonschema/SchemaAnnotationUtils.js +1 -1
  493. package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
  494. package/dist/utils/jsonschema/collectTopLevelProperties.d.ts +22 -0
  495. package/dist/utils/jsonschema/collectTopLevelProperties.d.ts.map +1 -0
  496. package/dist/utils/jsonschema/collectTopLevelProperties.js +31 -0
  497. package/dist/utils/jsonschema/collectTopLevelProperties.js.map +1 -0
  498. package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts.map +1 -1
  499. package/dist/utils/jsonschema/getSchemaPropertyInfo.js +1 -1
  500. package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
  501. package/dist/utils/types/IsType.d.ts +4 -1
  502. package/dist/utils/types/IsType.d.ts.map +1 -1
  503. package/dist/utils/types/IsType.js +4 -4
  504. package/dist/utils/types/IsType.js.map +1 -1
  505. package/dist/utils/types/index.js +2 -2
  506. package/package.json +5 -5
  507. package/dist/components/DataGrid/useMergeGridWithRecordSet.d.ts +0 -12
  508. package/dist/components/DataGrid/useMergeGridWithRecordSet.d.ts.map +0 -1
  509. package/dist/components/DataGrid/useMergeGridWithRecordSet.js +0 -25
  510. package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +0 -1
  511. package/dist/style/components/_annotations.scss +0 -110
@@ -2,44 +2,48 @@ import { EXPERIMENTAL as e } from "../../utils/SynapseConstants.js";
2
2
  import { PRODUCTION_ENDPOINT_CONFIG as t } from "../../utils/functions/getEndpoint.js";
3
3
  import { calculateFriendlyFileSize as n } from "../../utils/functions/calculateFriendlyFileSize.js";
4
4
  import { isDatasetCollection as r, isTableEntity as i } from "../../utils/functions/EntityTypeUtils.js";
5
- import { parseSynId as a } from "../../utils/functions/RegularExpressions.js";
6
- import { getColumnIndex as o } from "../../utils/functions/SqlFunctions.js";
7
- import { useGetEntity as ee } from "../../synapse-queries/entity/useEntity.js";
5
+ import { extractMarkdownLinkHref as a, parseSynId as o } from "../../utils/functions/RegularExpressions.js";
6
+ import { getColumnIndex as ee } from "../../utils/functions/SqlFunctions.js";
7
+ import { useGetEntity as te } from "../../synapse-queries/entity/useEntity.js";
8
8
  import "../../synapse-queries/index.js";
9
9
  import { TargetEnum as s } from "../../utils/html/TargetEnum.js";
10
- import { getFileHandleAssociation as te, getLinkParams as c, getValueOrMultiValue as ne } from "./CardUtils.js";
11
- import re from "./GenericCardActionButton.js";
12
- import ie from "./CroissantButton/CroissantButton.js";
13
- import { GenericCardIcon as ae } from "./GenericCardIcon.js";
14
- import oe from "./PortalDOI/PortalDOI.js";
15
- import { getCandidateDoiId as se, useShowDoiCardLabel as ce } from "./PortalDOI/PortalDOIUtils.js";
16
- import { mapRowToRecord as le } from "../SynapseTable/SynapseTableUtils.js";
17
- import ue from "../CitationPopover/index.js";
18
- import { EntityDownloadConfirmation as de } from "../EntityDownloadConfirmation/EntityDownloadConfirmation.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";
19
23
  import "../EntityDownloadConfirmation/index.js";
20
- import { useQueryContext as fe } from "../QueryContext/QueryContext.js";
21
- import pe from "../IconList.js";
22
- import { parseDuoModifiers as me } from "./DuoTermTags/duoTerms.js";
23
- import he from "./DuoTermTags/DuoTermTags.js";
24
- import { useQueryVisualizationContext as ge } from "../QueryVisualizationWrapper/QueryVisualizationContext.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
29
  import "../QueryVisualizationWrapper/index.js";
26
- import _e from "../ShareThisPage/ShareThisPage.js";
27
- import { GenericCard as ve } from "./GenericCard.js";
30
+ import Ce from "../ShareThisPage/ShareThisPage.js";
31
+ import { GenericCard as we } from "./GenericCard.js";
28
32
  import { SynapseCardLabel as l } from "./SynapseCardLabel.js";
29
- import { useResolvedSynapseEntity as ye } from "./useResolvedSynapseEntity.js";
30
- import { useCallback as be, useMemo as u, useState as d } from "react";
31
- import { Box as xe, Collapse as Se, Link as Ce, Stack as f, Typography as we } from "@mui/material";
32
- import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
33
- import { ColumnTypeEnum as Te } from "@sage-bionetworks/synapse-types";
34
- import { GetAppTwoTone as Ee } from "@mui/icons-material";
35
- import { useInView as De } from "react-intersection-observer";
33
+ import { useResolvedSynapseEntity as Te } from "./useResolvedSynapseEntity.js";
34
+ import { useCallback as Ee, useMemo as u, useState as De } from "react";
35
+ import { Box as Oe, Collapse as ke, Link as Ae, Stack as d, Typography as je } from "@mui/material";
36
+ import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
37
+ import { ColumnTypeEnum as Me } from "@sage-bionetworks/synapse-types";
38
+ import { GetAppTwoTone as Ne } from "@mui/icons-material";
39
+ import { useInView as Pe } from "react-intersection-observer";
36
40
  //#region src/components/GenericCard/TableRowGenericCard.tsx
37
- function Oe(e) {
41
+ function Fe(e) {
38
42
  let { synapseId: n, version: r } = e;
39
- return /* @__PURE__ */ h("span", { children: [
43
+ return /* @__PURE__ */ m("span", { children: [
40
44
  r,
41
45
  "\xA0\xA0",
42
- /* @__PURE__ */ m("a", {
46
+ /* @__PURE__ */ p("a", {
43
47
  target: s.NEW_WINDOW,
44
48
  rel: "noopener noreferrer",
45
49
  href: `${t.PORTAL}Synapse:${n}.${r}`,
@@ -47,28 +51,28 @@ function Oe(e) {
47
51
  })
48
52
  ] });
49
53
  }
50
- function g(t) {
51
- let [s, g] = d(!1), [ke, Ae] = d(!1), { entityId: je, versionNumber: Me } = fe(), { getColumnDisplayName: _ } = ge(), { ref: Ne, inView: Pe } = De(), { data: v } = ee(je, Me), { schema: y, data: b, rowId: x, versionNumber: Fe, genericCardSchema: S, secondaryLabelLimit: Ie, sharePageLinkButtonProps: Le, selectColumns: C, columnModels: w, iconOptions: Re, useTypeColumnForIcon: T = !1, isHeader: E = !1, sustainabilityScorecard: ze, headerCardVariant: Be, titleLinkConfig: D, ctaLinkConfig: O, ctaLinkPosition: Ve, labelLinkConfig: He, descriptionConfig: Ue, columnIconOptions: k, CardTypeAdornment: A, charCountCutoff: We } = t, { link: Ge = "", type: j, includeCitation: Ke, includeShareButton: qe, defaultCitationFormat: Je, citationBoilerplateText: Ye, downloadCartSynId: M, portalDoiConfiguration: N } = S, P = b[y[S.title]], F = S.subTitle && b[y[S.subTitle]];
52
- F = S.subTitle && ne({
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({
53
57
  value: F,
54
58
  columnName: S.subTitle,
55
59
  selectColumns: C,
56
60
  columnModels: w
57
61
  }).str;
58
- let Xe = b[y[S.description || ""]], I = b[y[S.icon || ""]], L = b[y[S.dataTypeIconNames || ""]], R = b[y[S.imageFileHandleColumnName || ""]], Ze = w?.find((e) => S.link === e.name)?.columnType, z = b[y[Ge]] || "", { href: Qe, target: $e } = c(z, D, b, y, x), et = S.synapseEntityConfig, B = be((e) => {
62
+ let rt = b[y[S.description || ""]], it = b[y[S.icon || ""]], I = b[y[S.dataTypeIconNames || ""]], L = b[y[S.imageFileHandleColumnName || ""]], at = w?.find((e) => S.link === e.name)?.columnType, R = b[y[Qe]] || "", { href: ot, target: st } = c(R, D, b, y, x), ct = S.synapseEntityConfig, z = Ee((e) => {
59
63
  if (!e) return;
60
64
  let t = y[e];
61
65
  if (t !== void 0) return b[t];
62
- }, [y, b]), V = u(() => {
66
+ }, [y, b]), B = u(() => {
63
67
  let e = S.dataUseModifiersColumnName;
64
68
  if (!e) return;
65
- let t = me(b[y[e]]);
66
- if (t.length !== 0) return /* @__PURE__ */ m(he, { terms: t });
69
+ let t = be(b[y[e]]);
70
+ if (t.length !== 0) return /* @__PURE__ */ p(xe, { terms: t });
67
71
  }, [
68
72
  S,
69
73
  b,
70
74
  y
71
- ]), tt = u(() => {
75
+ ]), lt = u(() => {
72
76
  let { titleAreaDetails: e } = S;
73
77
  if (!e) return;
74
78
  let t = typeof e == "function" ? e(y, b) : e;
@@ -81,18 +85,18 @@ function g(t) {
81
85
  columnName: e
82
86
  } : null;
83
87
  }).filter(Boolean);
84
- if (n.length !== 0) return /* @__PURE__ */ m(f, {
88
+ if (n.length !== 0) return /* @__PURE__ */ p(d, {
85
89
  direction: "column",
86
90
  gap: "4px",
87
- children: n.map(({ name: e, rawValue: t, columnName: n }) => /* @__PURE__ */ h(f, {
91
+ children: n.map(({ name: e, rawValue: t, columnName: n }) => /* @__PURE__ */ m(d, {
88
92
  direction: "row",
89
93
  gap: "4px",
90
94
  alignItems: "center",
91
- children: [/* @__PURE__ */ h(we, {
95
+ children: [/* @__PURE__ */ m(je, {
92
96
  component: "span",
93
97
  variant: "body1",
94
98
  children: [e, ":"]
95
- }), /* @__PURE__ */ m(l, {
99
+ }), /* @__PURE__ */ p(l, {
96
100
  value: t,
97
101
  columnName: n,
98
102
  labelLink: void 0,
@@ -113,60 +117,60 @@ function g(t) {
113
117
  C,
114
118
  w,
115
119
  k
116
- ]), { entityId: H, entityVersionNumber: U } = ye({
117
- synapseEntityConfig: et,
118
- getColumnValue: B,
120
+ ]), { entityId: V, entityVersionNumber: H } = Te({
121
+ synapseEntityConfig: ct,
122
+ getColumnValue: z,
119
123
  rowId: x,
120
- rowVersionNumber: Fe
121
- }), W = H, G = U;
124
+ rowVersionNumber: Ve
125
+ }), U = V, W = H;
122
126
  if (M) {
123
- let e = a(B(M) ?? "");
124
- W = e?.targetId, G = e?.targetVersionNumber;
127
+ let e = o(z(M) ?? "");
128
+ U = e?.targetId, W = e?.targetVersionNumber;
125
129
  }
126
- let K = se({
127
- data: u(() => le(b, y), [b, y]),
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]),
128
132
  portalDoiConfiguration: N
129
- }), nt = ce({
133
+ }), ft = ue({
130
134
  portalId: N?.portalId,
131
- resourceId: K
132
- }), q = [], { secondaryLabels: J = [] } = S, Y = S.customSecondaryLabelConfig;
133
- if (V && S.dataUseModifiersColumnName && q.push({
135
+ resourceId: X
136
+ }), Z = [], { secondaryLabels: pt = [] } = S, mt = S.customSecondaryLabelConfig;
137
+ if (B && S.dataUseModifiersColumnName && Z.push({
134
138
  columnName: S.dataUseModifiersColumnName,
135
139
  columnDisplayName: _(S.dataUseModifiersColumnName),
136
- value: V
137
- }), nt && N && K && Pe && q.push({
140
+ value: B
141
+ }), ft && N && X && Be && Z.push({
138
142
  columnDisplayName: "DOI",
139
- value: /* @__PURE__ */ m(oe, {
143
+ value: /* @__PURE__ */ p(ce, {
140
144
  portalId: N.portalId,
141
- resourceId: K
145
+ resourceId: X
142
146
  })
143
- }), Y?.isVisible(y, b)) {
144
- let { key: e, value: t } = Y;
145
- W ? q.push({
147
+ }), mt?.isVisible(y, b)) {
148
+ let { key: e, value: t } = mt;
149
+ U && Y ? Z.push({
146
150
  columnDisplayName: "HOW TO DOWNLOAD",
147
- value: /* @__PURE__ */ m(Ce, {
148
- onClick: () => g((e) => !e),
151
+ value: /* @__PURE__ */ p(Ae, {
152
+ onClick: () => h((e) => !e),
149
153
  children: "Click here to add to Synapse download list"
150
154
  })
151
- }) : q.push({
155
+ }) : Z.push({
152
156
  columnDisplayName: e,
153
157
  value: t
154
158
  });
155
159
  }
156
- let rt = v && !i(v);
157
- for (let e = 0; e < J.length; e += 1) {
158
- let t = J[e], i = b[y[t]], a = i, o;
160
+ let ht = v && !i(v);
161
+ for (let e = 0; e < pt.length; e += 1) {
162
+ let t = pt[e], i = b[y[t]], a = i, o;
159
163
  if (a && i !== "[]" && i !== "[\"\"]") {
160
164
  if (r(v) && t === "datasetSizeInBytes") o = "Size", a = n(parseInt(i));
161
- else if (rt && t === "currentVersion") {
165
+ else if (ht && t === "currentVersion") {
162
166
  let e = b[y.id];
163
- a = /* @__PURE__ */ m(Oe, {
167
+ a = /* @__PURE__ */ p(Fe, {
164
168
  synapseId: e,
165
169
  version: i
166
170
  }), o = "Version";
167
171
  } else {
168
- let e = He?.find((e) => e.matchColumnName === t);
169
- a = /* @__PURE__ */ m(l, {
172
+ let e = Je?.find((e) => e.matchColumnName === t);
173
+ a = /* @__PURE__ */ p(l, {
170
174
  value: i,
171
175
  columnName: t,
172
176
  labelLink: e,
@@ -177,19 +181,19 @@ function g(t) {
177
181
  columnIconOptions: k
178
182
  }), o = _(t);
179
183
  }
180
- q.push({
184
+ Z.push({
181
185
  columnDisplayName: o,
182
186
  value: a,
183
187
  columnName: t
184
188
  });
185
189
  }
186
190
  }
187
- let X = te(v, R || z, b[y.id]), it = _(S.description || ""), Z = o("doi", C, w), Q = Z === void 0 ? void 0 : b[Z], at = (O ? Array.isArray(O) ? O : [O] : []).map((e) => {
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) => {
188
192
  let t = b[y[e.link]] || "";
189
193
  if (!t) return null;
190
194
  let { href: n, target: r } = c(t, void 0, b, y, x);
191
195
  return {
192
- text: e.endIcon ? /* @__PURE__ */ h("div", {
196
+ text: e.endIcon ? /* @__PURE__ */ m("div", {
193
197
  style: {
194
198
  display: "flex",
195
199
  alignItems: "center",
@@ -200,99 +204,116 @@ function g(t) {
200
204
  href: n,
201
205
  target: r
202
206
  };
203
- }).filter(Boolean), ot = /* @__PURE__ */ m(p, {});
204
- H != null && U != null && (ot = /* @__PURE__ */ m(ie, {
205
- datasetId: H,
206
- datasetVersionNumber: U
207
+ }).filter(Boolean), bt = /* @__PURE__ */ p(f, {});
208
+ V != null && H != null && (bt = /* @__PURE__ */ p(oe, {
209
+ datasetId: V,
210
+ datasetVersionNumber: H
207
211
  }));
208
- let st = A ? /* @__PURE__ */ m(A, {
212
+ let $ = null;
213
+ A ? $ = /* @__PURE__ */ p(A, {
209
214
  schema: y,
210
215
  data: b
211
- }) : null, $ = !0;
212
- return E && !R && !I && ($ = !1), /* @__PURE__ */ m(ve, {
213
- ref: Ne,
214
- icon: $ ? /* @__PURE__ */ m(ae, {
216
+ }) : G && K?.trim() && q && ($ = /* @__PURE__ */ p(ge, {
217
+ hostingType: q,
218
+ isHeader: E
219
+ }));
220
+ let xt = !0;
221
+ return E && !L && !it && (xt = !1), /* @__PURE__ */ p(we, {
222
+ ref: ze,
223
+ icon: xt ? /* @__PURE__ */ p(se, {
215
224
  type: T ? b[y.type] : S.type,
216
225
  useTypeForIcon: T,
217
226
  thumbnailRequiresPadding: S.thumbnailRequiresPadding,
218
- imageFileHandleId: R,
219
- fileHandleAssociation: X,
220
- iconOptions: Re,
221
- iconValue: I
227
+ imageFileHandleId: L,
228
+ fileHandleAssociation: Q,
229
+ iconOptions: We,
230
+ iconValue: it
222
231
  }) : void 0,
223
232
  isHeader: E,
224
- sustainabilityScorecard: ze,
225
- headerCardVariant: Be,
233
+ sustainabilityScorecard: Ge,
234
+ headerCardVariant: Ke,
226
235
  type: j,
227
236
  title: P,
228
237
  subtitle: F,
229
238
  titleLinkConfiguration: {
230
- target: $e,
231
- href: Qe
239
+ target: st,
240
+ href: ot
232
241
  },
233
- cardTypeAdornment: st,
234
- titleAsFileHandleLinkConfiguration: !D && Ze === Te.FILEHANDLEID && X ? {
235
- fileHandleAssociation: X,
242
+ cardTypeAdornment: $,
243
+ titleAsFileHandleLinkConfiguration: !D && at === Me.FILEHANDLEID && Q ? {
244
+ fileHandleAssociation: Q,
236
245
  showDownloadIcon: j !== e
237
246
  } : void 0,
238
- ctaLinkConfig: at.length > 0 ? at : void 0,
239
- ctaLinkPosition: Ve,
240
- titleAreaRightContent: tt,
241
- description: Xe,
242
- descriptionSubTitle: it,
243
- descriptionConfig: Ue,
244
- charCountCutoff: We,
245
- labels: q,
246
- secondaryLabelLimit: Ie,
247
- useStylesForDisplayedImage: !!R,
248
- cardTopContent: /* @__PURE__ */ m(p, { children: W && /* @__PURE__ */ m(Se, {
247
+ ctaLinkConfig: yt.length > 0 ? yt : void 0,
248
+ ctaLinkPosition: qe,
249
+ titleAreaRightContent: lt,
250
+ description: rt,
251
+ descriptionSubTitle: gt,
252
+ descriptionConfig: Ye,
253
+ charCountCutoff: Xe,
254
+ labels: Z,
255
+ secondaryLabelLimit: He,
256
+ useStylesForDisplayedImage: !!L,
257
+ cardTopContent: /* @__PURE__ */ p(f, { children: U && /* @__PURE__ */ p(ke, {
249
258
  in: s,
250
- children: /* @__PURE__ */ m(de, {
251
- entityId: W,
252
- versionNumber: G,
253
- handleClose: () => g(!1),
259
+ children: /* @__PURE__ */ p(_e, {
260
+ entityId: U,
261
+ versionNumber: W,
262
+ handleClose: () => h(!1),
254
263
  onIsLoadingChange: (e) => {
255
- Ae(e);
264
+ Ie(e);
256
265
  }
257
266
  })
258
267
  }) }),
259
- renderedIconList: k?.columns?.dataType && L?.length && /* @__PURE__ */ m("div", {
268
+ renderedIconList: k?.columns?.dataType && I?.length && /* @__PURE__ */ p("div", {
260
269
  style: { marginTop: "20px" },
261
- children: /* @__PURE__ */ m(pe, {
270
+ children: /* @__PURE__ */ p(ye, {
262
271
  iconConfigs: k.columns.dataType,
263
- iconNames: JSON.parse(L),
272
+ iconNames: JSON.parse(I),
264
273
  commonIconProps: { sx: { fontSize: "40px" } },
265
274
  useBackground: !0,
266
275
  useTheme: !0
267
276
  })
268
277
  }),
269
- cardTopButtons: /* @__PURE__ */ h(xe, {
270
- sx: {
271
- display: "flex",
272
- gap: 1,
273
- alignItems: "center"
274
- },
275
- children: [
276
- ot,
277
- W && /* @__PURE__ */ m(re, {
278
- onClick: () => g((e) => !e),
279
- variant: "outlined",
280
- startIcon: /* @__PURE__ */ m(Ee, { sx: { height: "12px" } }),
281
- loading: ke,
282
- children: "Download"
283
- }),
284
- Ke && Q && /* @__PURE__ */ m(ue, {
285
- title: P,
286
- doi: Q,
287
- boilerplateText: Ye,
288
- defaultCitationFormat: Je
289
- }),
290
- qe && E && /* @__PURE__ */ m(_e, { ...Le })
291
- ]
278
+ cardTopButtons: /* @__PURE__ */ p(ie.Provider, {
279
+ value: Ze,
280
+ children: /* @__PURE__ */ m(Oe, {
281
+ sx: {
282
+ display: "flex",
283
+ gap: 1,
284
+ alignItems: "center"
285
+ },
286
+ children: [
287
+ bt,
288
+ G && (U || !Y) && /* @__PURE__ */ p(he, {
289
+ entityId: U,
290
+ name: P,
291
+ hosting: q,
292
+ repository: ut,
293
+ externalUrl: dt,
294
+ onDownloadClick: () => h((e) => !e),
295
+ isDownloading: g
296
+ }),
297
+ !G && U && /* @__PURE__ */ p(ae, {
298
+ onClick: () => h((e) => !e),
299
+ variant: "outlined",
300
+ startIcon: /* @__PURE__ */ p(Ne, { sx: { height: "12px" } }),
301
+ loading: g,
302
+ children: "Download"
303
+ }),
304
+ $e && vt && /* @__PURE__ */ p(fe, {
305
+ title: P,
306
+ doi: vt,
307
+ boilerplateText: nt,
308
+ defaultCitationFormat: tt
309
+ }),
310
+ et && E && /* @__PURE__ */ p(Ce, { ...Ue })
311
+ ]
312
+ })
292
313
  })
293
314
  });
294
315
  }
295
316
  //#endregion
296
- export { g as TableRowGenericCard, g as default };
317
+ export { h as TableRowGenericCard, h as default };
297
318
 
298
319
  //# sourceMappingURL=TableRowGenericCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableRowGenericCard.js","names":[],"sources":["../../../src/components/GenericCard/TableRowGenericCard.tsx"],"sourcesContent":["import { CommonCardProps } from '@/components/CardContainer/CardConfiguration'\nimport {\n getFileHandleAssociation,\n getLinkParams,\n getValueOrMultiValue,\n} from '@/components/GenericCard/CardUtils'\nimport CroissantButton from '@/components/GenericCard/CroissantButton/CroissantButton'\nimport { GenericCardIcon } from '@/components/GenericCard/GenericCardIcon'\nimport PortalDOI from '@/components/GenericCard/PortalDOI/PortalDOI'\nimport {\n getCandidateDoiId,\n useShowDoiCardLabel,\n} from '@/components/GenericCard/PortalDOI/PortalDOIUtils'\nimport { mapRowToRecord } from '@/components/SynapseTable/SynapseTableUtils'\nimport { useGetEntity } from '@/synapse-queries'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport {\n isDatasetCollection,\n isTableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { parseSynId } from '@/utils/functions/RegularExpressions'\nimport { getColumnIndex } from '@/utils/functions/SqlFunctions'\nimport { TargetEnum } from '@/utils/html/TargetEnum'\nimport * as SynapseConstants from '@/utils/SynapseConstants'\nimport { GetAppTwoTone } from '@mui/icons-material'\nimport { Box, Collapse, Link, Stack, Typography } from '@mui/material'\nimport {\n ColumnModel,\n ColumnTypeEnum,\n Entity,\n SelectColumn,\n Table,\n} from '@sage-bionetworks/synapse-types'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { useInView } from 'react-intersection-observer'\nimport CitationPopover from '../CitationPopover'\nimport { EntityDownloadConfirmation } from '../EntityDownloadConfirmation'\nimport { HeaderCardVariant } from '../HeaderCard'\nimport IconList from '../IconList'\nimport { useQueryContext } from '../QueryContext/QueryContext'\nimport { useQueryVisualizationContext } from '../QueryVisualizationWrapper'\nimport ShareThisPage, {\n ShareThisPageProps,\n} from '../ShareThisPage/ShareThisPage'\nimport { SustainabilityScorecardProps } from '../SustainabilityScorecard/SustainabilityScorecard'\nimport GenericCard from './GenericCard'\nimport GenericCardActionButton from './GenericCardActionButton'\nimport DuoTermTags from './DuoTermTags/DuoTermTags'\nimport { parseDuoModifiers } from './DuoTermTags/duoTerms'\nimport { PortalDOIConfiguration } from './PortalDOI/PortalDOIConfiguration'\nimport { SynapseCardLabel } from './SynapseCardLabel'\nimport { useResolvedSynapseEntity } from './useResolvedSynapseEntity'\n\ntype RowSynapseEntityConfig = {\n /** Use the table rowId to resolve the Synapse entity ID. */\n id: {\n source: 'rowId'\n }\n /** Use the table rowVersionNumber to resolve the Synapse entity version (if available). */\n version?: {\n source: 'rowVersionNumber'\n }\n}\n\ntype ColumnSynapseEntityConfig = {\n /** Use a column value to resolve the Synapse entity ID. */\n id: {\n source: 'column'\n columnName: string\n }\n /** Use a column value to resolve the Synapse entity version. */\n version?: {\n source: 'column'\n columnName: string\n }\n}\n\nexport type SynapseEntityConfig =\n | RowSynapseEntityConfig\n | ColumnSynapseEntityConfig\n\n/**\n * Maps a table query result to a GenericCard.\n */\nexport type TableToGenericCardMapping = {\n /** The 'type' of resource a card refers to. Renders a label on the card with this string value.\n * Can be hidden by setting it to '' (empty string)\n */\n type: string\n /** The column name whose data contains the title of the card */\n title: string\n /** The column name whose data contains the subtitle of the card */\n subTitle?: string\n /** The column name whose data contains the description of the card */\n description?: string\n /** If true, a 'Cite As' button will be displayed for those cards with a DOI in the 'doi' column */\n includeCitation?: boolean\n /** If true, a 'Share this page' button will be displayed */\n includeShareButton?: boolean\n /**\n * Configuration for displaying the SustainabilityScorecard component\n */\n sustainabilityScorecard?: SustainabilityScorecardProps\n /** The initial citation format to use in the 'Cite As' UI */\n defaultCitationFormat?: 'bibtex' | 'apa' | 'ieee' | 'nature' | 'science'\n /** Static text displayed in the 'Cite As' UI */\n citationBoilerplateText?: string\n /** The column name whose data contains the value used to map to the icon */\n icon?: string\n /** The column name whose data contains an image file handle to be displayed on the card */\n imageFileHandleColumnName?: string\n /** Static boolean value used if the image displayed using `imageFileHandleColumnName` requires extra padding */\n thumbnailRequiresPadding?: boolean\n /** Array of column names to be used for labels in the Card Footer */\n secondaryLabels?: string[]\n /** Can be used to add a custom secondary label */\n customSecondaryLabelConfig?: {\n /** The displayed label key */\n key: string\n /** The value to display */\n value: React.ReactNode\n /** Callback to determine visibility of the label\n * @param schema the mapping of columnName to data index\n * @param data the row data\n */\n isVisible: (schema: Record<string, number>, data: string[]) => boolean\n }\n /** Column name of the link value if the title should be linked */\n link?: string\n /** Column name of the STRING_LIST column that includes icon names that represent icons that should be displayed on the card */\n dataTypeIconNames?: string\n /**\n * Ordered list of column names to display to the right of the title area.\n * Each renders as \"Display Name: Value\" on its own line. Rows with empty values are skipped.\n * The display name is derived from getColumnDisplayName (respects column aliases and unCamelCase).\n *\n * Can also be a function that receives the schema and row data and returns the list of column\n * names to display, allowing the displayed details to vary based on the row's actual values.\n */\n titleAreaDetails?:\n | string[]\n | ((schema: Record<string, number>, data: string[]) => string[])\n /** Configuration for resolving the Synapse entity ID/version represented by each card row.\n * The ID and version sources must both reference either row-based values or column-based values.\n */\n synapseEntityConfig?: SynapseEntityConfig\n /** The column name whose data contains a synId that can be used to show a button to add the corresponding entity to the download cart. */\n downloadCartSynId?: string\n /** Configuration to display a DOI, as well as the ability to create one for users with such permission */\n portalDoiConfiguration?: PortalDOIConfiguration\n /**\n * Column name of a STRING_LIST of Data Use Ontology (DUO) values (ontology\n * codes or term names). When set, the values are rendered as DUO tags in a\n * metadata row labeled with the column's display name, so the card matches the\n * corresponding facet.\n */\n dataUseModifiersColumnName?: string\n}\n\nexport type TableRowGenericCardProps = {\n /** The schema that maps a table result to the GenericCard UI */\n genericCardSchema: TableToGenericCardMapping\n /** The table's SelectColumns */\n selectColumns?: SelectColumn[]\n /** The table's ColumnModels */\n columnModels?: ColumnModel[]\n /** If true, the 'type' column will be used as the icon string to choose the icon */\n useTypeColumnForIcon?: boolean\n /** If true, render the card as a HeaderCard */\n isHeader?: boolean\n /** If isHeader is true, use this variant of HeaderCard */\n headerCardVariant?: HeaderCardVariant\n isAlignToLeftNav?: boolean\n /** Mapping of column name to row data index */\n schema: Record<string, number>\n /** The row data */\n data: string[]\n /** The ID of the table row */\n rowId?: number\n /** The versionNumber of the table row */\n versionNumber?: number\n /** Optional props for the ShareThisPage component */\n sharePageLinkButtonProps?: ShareThisPageProps\n /** Optional function that receives schema and data and returns a ReactNode to be rendered next to the card type */\n CardTypeAdornment?: React.ComponentType<{\n schema: Record<string, number>\n data: string[]\n }>\n} & CommonCardProps\n\n// SWC-6115: special rendering of the version column (for Views)\nfunction VersionLabel(props: { synapseId: string; version: string }) {\n const { synapseId, version } = props\n return (\n <span>\n {version}&nbsp;&nbsp;\n <a\n target={TargetEnum.NEW_WINDOW}\n rel=\"noopener noreferrer\"\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${synapseId}.${version}`}\n >\n (Show Version History on Synapse)\n </a>\n </span>\n )\n}\n\n/**\n * Maps a table row to a GenericCard.\n */\nexport function TableRowGenericCard(props: TableRowGenericCardProps) {\n const [showDownloadConfirmation, setShowDownloadConfirmation] =\n useState(false)\n const [downloadButtonLoading, setDownloadButtonLoading] = useState(false)\n\n const { entityId, versionNumber } = useQueryContext()\n const { getColumnDisplayName } = useQueryVisualizationContext()\n\n const { ref, inView: cardIsInView } = useInView()\n\n const { data: table } = useGetEntity<Table>(entityId, versionNumber)\n\n const {\n schema,\n data,\n rowId,\n versionNumber: rowVersionNumber,\n genericCardSchema,\n secondaryLabelLimit,\n sharePageLinkButtonProps,\n selectColumns,\n columnModels,\n iconOptions,\n useTypeColumnForIcon = false,\n isHeader = false,\n sustainabilityScorecard,\n headerCardVariant,\n titleLinkConfig,\n ctaLinkConfig,\n ctaLinkPosition,\n labelLinkConfig,\n descriptionConfig,\n columnIconOptions,\n CardTypeAdornment,\n charCountCutoff,\n } = props\n\n const {\n link = '',\n type,\n includeCitation,\n includeShareButton,\n defaultCitationFormat,\n citationBoilerplateText,\n downloadCartSynId,\n portalDoiConfiguration,\n } = genericCardSchema\n const title = data[schema[genericCardSchema.title]]\n let subTitle =\n genericCardSchema.subTitle && data[schema[genericCardSchema.subTitle]]\n subTitle =\n genericCardSchema.subTitle &&\n getValueOrMultiValue({\n value: subTitle,\n columnName: genericCardSchema.subTitle,\n selectColumns,\n columnModels,\n }).str\n const description = data[schema[genericCardSchema.description || '']]\n const iconValue = data[schema[genericCardSchema.icon || '']]\n const dataTypeIconNames =\n data[schema[genericCardSchema.dataTypeIconNames || '']]\n const imageFileHandleIdValue =\n data[schema[genericCardSchema.imageFileHandleColumnName || '']]\n const titleColumnModel = columnModels?.find(\n el => genericCardSchema.link === el.name,\n )\n const titleColumnType = titleColumnModel?.columnType\n // wrap link in parens because undefined would throw an error\n const linkValue: string = data[schema[link]] || ''\n const { href, target } = getLinkParams(\n linkValue,\n titleLinkConfig,\n data,\n schema,\n rowId,\n )\n\n const synapseEntityConfig = genericCardSchema.synapseEntityConfig\n\n const getColumnValue = useCallback(\n (columnName?: string) => {\n if (!columnName) {\n return undefined\n }\n const columnIndex = schema[columnName]\n if (columnIndex === undefined) {\n return undefined\n }\n return data[columnIndex]\n },\n [schema, data],\n )\n\n // DUO (Data Use Ontology) tags, when a dataUseModifiers column is configured.\n // Rendered as a metadata row labeled with the column's display name.\n const duoContent = useMemo(() => {\n const col = genericCardSchema.dataUseModifiersColumnName\n if (!col) {\n return undefined\n }\n const terms = parseDuoModifiers(data[schema[col]])\n if (terms.length === 0) {\n return undefined\n }\n return <DuoTermTags terms={terms} />\n }, [genericCardSchema, data, schema])\n\n const resolvedTitleAreaRightContent = useMemo(() => {\n const { titleAreaDetails } = genericCardSchema\n if (!titleAreaDetails) return undefined\n const columns =\n typeof titleAreaDetails === 'function'\n ? titleAreaDetails(schema, data)\n : titleAreaDetails\n if (columns.length === 0) return undefined\n const rows = columns\n .map(columnName => {\n const rawValue: string | undefined = data[schema[columnName]]\n if (!rawValue) return null\n return { name: getColumnDisplayName(columnName), rawValue, columnName }\n })\n .filter(Boolean) as {\n name: string\n rawValue: string\n columnName: string\n }[]\n if (rows.length === 0) return undefined\n return (\n <Stack direction=\"column\" gap=\"4px\">\n {rows.map(({ name, rawValue, columnName }) => (\n <Stack key={columnName} direction=\"row\" gap=\"4px\" alignItems=\"center\">\n <Typography component=\"span\" variant=\"body1\">\n {name}:\n </Typography>\n <SynapseCardLabel\n value={rawValue}\n columnName={columnName}\n labelLink={undefined}\n isHeader={isHeader}\n selectColumns={selectColumns}\n columnModels={columnModels}\n rowData={data}\n columnIconOptions={columnIconOptions}\n />\n </Stack>\n ))}\n </Stack>\n )\n }, [\n genericCardSchema,\n data,\n schema,\n getColumnDisplayName,\n isHeader,\n selectColumns,\n columnModels,\n columnIconOptions,\n ])\n\n const {\n entityId: resolvedSynapseEntityId,\n entityVersionNumber: resolvedSynapseEntityVersionNumber,\n } = useResolvedSynapseEntity({\n synapseEntityConfig,\n getColumnValue,\n rowId,\n rowVersionNumber,\n })\n\n let resolvedDownloadCartSynIdValue = resolvedSynapseEntityId\n let resolvedDownloadCartVersionNumber = resolvedSynapseEntityVersionNumber\n\n if (downloadCartSynId) {\n const reference = parseSynId(getColumnValue(downloadCartSynId) ?? '')\n resolvedDownloadCartSynIdValue = reference?.targetId\n resolvedDownloadCartVersionNumber = reference?.targetVersionNumber\n }\n\n // Transform the row to a record of (columnName, value) pairs for compatibility with getCandidateDoiId\n const dataAsRecord: Record<string, string | null> = useMemo(\n () => mapRowToRecord(data, schema),\n [data, schema],\n )\n\n const candidateDoiId = getCandidateDoiId({\n data: dataAsRecord,\n portalDoiConfiguration,\n })\n\n const showDoiCardLabel = useShowDoiCardLabel({\n portalId: portalDoiConfiguration?.portalId,\n resourceId: candidateDoiId,\n })\n\n const values: {\n columnDisplayName: string\n value: React.ReactNode\n columnName?: string\n }[] = []\n const { secondaryLabels = [] } = genericCardSchema\n const customLabelConfig = genericCardSchema.customSecondaryLabelConfig\n\n // DUO tags rendered as a metadata row (alongside \"How to download\", size, …).\n // Label it with the DUO column's display name so the card row matches the\n // facet exactly (respecting any column alias) rather than a hardcoded string.\n if (duoContent && genericCardSchema.dataUseModifiersColumnName) {\n values.push({\n columnName: genericCardSchema.dataUseModifiersColumnName,\n columnDisplayName: getColumnDisplayName(\n genericCardSchema.dataUseModifiersColumnName,\n ),\n value: duoContent,\n })\n }\n\n // PORTALS-3549 - if a DOI exists or can be created by the current user, show it\n if (\n showDoiCardLabel &&\n portalDoiConfiguration &&\n candidateDoiId &&\n cardIsInView\n ) {\n values.push({\n columnDisplayName: 'DOI',\n value: (\n <PortalDOI\n portalId={portalDoiConfiguration.portalId}\n resourceId={candidateDoiId}\n />\n ),\n })\n }\n\n // Overwrite the 'HOW TO DOWNLOAD' link if a synapse ID is available\n if (customLabelConfig?.isVisible(schema, data)) {\n const { key, value } = customLabelConfig\n if (resolvedDownloadCartSynIdValue) {\n values.push({\n columnDisplayName: 'HOW TO DOWNLOAD',\n value: (\n <Link onClick={() => setShowDownloadConfirmation(val => !val)}>\n Click here to add to Synapse download list\n </Link>\n ),\n })\n } else {\n values.push({ columnDisplayName: key, value })\n }\n }\n\n const isView = table && !isTableEntity(table)\n for (let i = 0; i < secondaryLabels.length; i += 1) {\n const columnName = secondaryLabels[i]\n const rawValue: string | undefined = data[schema[columnName]]\n let renderedValue: React.ReactNode = rawValue\n let columnDisplayName\n if (renderedValue && rawValue !== '[]' && rawValue !== '[\"\"]') {\n // PORTALS-2750: special rendering of the datasetSizeInBytes (for Dataset Collections)\n if (\n isDatasetCollection(table as Entity) &&\n columnName === 'datasetSizeInBytes'\n ) {\n columnDisplayName = 'Size'\n renderedValue = calculateFriendlyFileSize(parseInt(rawValue))\n } // SWC-6115: special rendering of the version column (for Views)\n else if (isView && columnName === 'currentVersion') {\n const synapseId = data[schema.id]\n renderedValue = (\n <VersionLabel synapseId={synapseId} version={rawValue} />\n )\n columnDisplayName = 'Version'\n } else {\n const labelLink = labelLinkConfig?.find(\n el => el.matchColumnName === columnName,\n )\n renderedValue = (\n <SynapseCardLabel\n value={rawValue}\n columnName={columnName}\n labelLink={labelLink}\n isHeader={isHeader}\n selectColumns={selectColumns}\n columnModels={columnModels}\n rowData={data}\n columnIconOptions={columnIconOptions}\n />\n )\n columnDisplayName = getColumnDisplayName(columnName)\n }\n values.push({ columnDisplayName, value: renderedValue, columnName })\n }\n }\n\n const fileHandleId = imageFileHandleIdValue || linkValue\n\n /**\n * To show a direct download link to a file, we need to determine the association that gives permission to download the file.\n */\n const fileHandleAssociation = getFileHandleAssociation(\n table,\n fileHandleId,\n data[schema.id],\n )\n\n const descriptionSubTitle = getColumnDisplayName(\n genericCardSchema.description || '',\n )\n\n const doiColumnIndex = getColumnIndex('doi', selectColumns, columnModels)\n const doiValue =\n doiColumnIndex !== undefined ? data[doiColumnIndex] : undefined\n\n // Normalize ctaLinkConfig to array and resolve each config\n const ctaLinkConfigs = ctaLinkConfig\n ? Array.isArray(ctaLinkConfig)\n ? ctaLinkConfig\n : [ctaLinkConfig]\n : []\n const resolvedCtaLinkConfigs = ctaLinkConfigs\n .map(config => {\n const ctaLinkValue: string = data[schema[config.link]] || ''\n if (!ctaLinkValue) return null\n const { href, target } = getLinkParams(\n ctaLinkValue,\n undefined, //card link config\n data,\n schema,\n rowId,\n )\n return {\n text: config.endIcon ? (\n <div style={{ display: 'flex', alignItems: 'center', gap: '10px' }}>\n {config.text}\n {config.endIcon}\n </div>\n ) : (\n config.text\n ),\n href,\n target,\n }\n })\n .filter(Boolean) as { text: string; href: string; target?: string }[]\n\n let croissantButton = <></>\n if (\n resolvedSynapseEntityId != null &&\n resolvedSynapseEntityVersionNumber != null\n ) {\n croissantButton = (\n <CroissantButton\n datasetId={resolvedSynapseEntityId}\n datasetVersionNumber={resolvedSynapseEntityVersionNumber}\n />\n )\n }\n\n const resolvedCardTypeAdornment = CardTypeAdornment ? (\n <CardTypeAdornment schema={schema} data={data} />\n ) : null\n\n let isRenderingIcon = true\n if (isHeader && !imageFileHandleIdValue && !iconValue) {\n // For header cards, if there is no image or explicit icon value, we don't show an icon at all\n isRenderingIcon = false\n }\n const iconNode = isRenderingIcon ? (\n <GenericCardIcon\n type={\n useTypeColumnForIcon ? data[schema['type']] : genericCardSchema.type\n }\n useTypeForIcon={useTypeColumnForIcon}\n thumbnailRequiresPadding={genericCardSchema.thumbnailRequiresPadding}\n imageFileHandleId={imageFileHandleIdValue}\n fileHandleAssociation={fileHandleAssociation}\n iconOptions={iconOptions}\n iconValue={iconValue}\n />\n ) : undefined\n return (\n <GenericCard\n ref={ref}\n icon={iconNode}\n isHeader={isHeader}\n sustainabilityScorecard={sustainabilityScorecard}\n headerCardVariant={headerCardVariant}\n type={type}\n title={title}\n subtitle={subTitle}\n titleLinkConfiguration={{ target, href }}\n cardTypeAdornment={resolvedCardTypeAdornment}\n titleAsFileHandleLinkConfiguration={\n !titleLinkConfig &&\n titleColumnType === ColumnTypeEnum.FILEHANDLEID &&\n fileHandleAssociation\n ? {\n fileHandleAssociation: fileHandleAssociation,\n showDownloadIcon: type !== SynapseConstants.EXPERIMENTAL,\n }\n : undefined\n }\n ctaLinkConfig={\n resolvedCtaLinkConfigs.length > 0 ? resolvedCtaLinkConfigs : undefined\n }\n ctaLinkPosition={ctaLinkPosition}\n titleAreaRightContent={resolvedTitleAreaRightContent}\n description={description}\n descriptionSubTitle={descriptionSubTitle}\n descriptionConfig={descriptionConfig}\n charCountCutoff={charCountCutoff}\n labels={values}\n secondaryLabelLimit={secondaryLabelLimit}\n useStylesForDisplayedImage={Boolean(imageFileHandleIdValue)}\n cardTopContent={\n <>\n {resolvedDownloadCartSynIdValue && (\n <Collapse in={showDownloadConfirmation}>\n <EntityDownloadConfirmation\n entityId={resolvedDownloadCartSynIdValue}\n versionNumber={resolvedDownloadCartVersionNumber}\n handleClose={() => setShowDownloadConfirmation(false)}\n onIsLoadingChange={isLoading => {\n setDownloadButtonLoading(isLoading)\n }}\n />\n </Collapse>\n )}\n </>\n }\n renderedIconList={\n // If the portal configs has columnIconOptions.columns.dataType option\n // and the column value is not null, display the card data type icons\n columnIconOptions?.columns?.dataType &&\n dataTypeIconNames?.length && (\n <div style={{ marginTop: '20px' }}>\n <IconList\n iconConfigs={columnIconOptions.columns.dataType}\n iconNames={JSON.parse(dataTypeIconNames) as string[]}\n commonIconProps={{\n sx: { fontSize: '40px' },\n }}\n useBackground={true}\n useTheme={true}\n />\n </div>\n )\n }\n cardTopButtons={\n <Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}>\n {croissantButton}\n {/* PORTALS-3386 Use synapseLink in schema to add entity to download cart */}\n {resolvedDownloadCartSynIdValue && (\n <GenericCardActionButton\n onClick={() => setShowDownloadConfirmation(val => !val)}\n variant=\"outlined\"\n startIcon={<GetAppTwoTone sx={{ height: '12px' }} />}\n loading={downloadButtonLoading}\n >\n Download\n </GenericCardActionButton>\n )}\n {includeCitation && doiValue && (\n <CitationPopover\n title={title}\n doi={doiValue}\n boilerplateText={citationBoilerplateText}\n defaultCitationFormat={defaultCitationFormat}\n />\n )}\n {includeShareButton && isHeader && (\n <ShareThisPage {...sharePageLinkButtonProps} />\n )}\n </Box>\n }\n />\n )\n}\n\nexport default TableRowGenericCard\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgMA,SAAS,GAAa,GAA+C;CACnE,IAAM,EAAE,cAAW,eAAY;CAC/B,OACE,kBAAC,QAAD,EAAA,UAAA;EACG;EAAQ;EACT,kBAAC,KAAD;GACE,QAAQ,EAAW;GACnB,KAAI;GACJ,MAAM,GAAG,EAA2B,OAAO,UAAU,EAAU,GAAG;aACnE;EAEE,CAAA;CACC,EAAA,CAAA;AAEV;AAKA,SAAgB,EAAoB,GAAiC;CACnE,IAAM,CAAC,GAA0B,KAC/B,EAAS,EAAK,GACV,CAAC,IAAuB,MAA4B,EAAS,EAAK,GAElE,EAAE,cAAU,sBAAkB,GAAgB,GAC9C,EAAE,4BAAyB,GAA6B,GAExD,EAAE,SAAK,QAAQ,OAAiB,GAAU,GAE1C,EAAE,MAAM,MAAU,GAAoB,IAAU,EAAa,GAE7D,EACJ,WACA,SACA,UACA,eAAe,IACf,sBACA,yBACA,8BACA,kBACA,iBACA,iBACA,0BAAuB,IACvB,cAAW,IACX,6BACA,uBACA,oBACA,kBACA,qBACA,qBACA,uBACA,sBACA,sBACA,wBACE,GAEE,EACJ,WAAO,IACP,SACA,qBACA,wBACA,2BACA,6BACA,sBACA,8BACE,GACE,IAAQ,EAAK,EAAO,EAAkB,SACxC,IACF,EAAkB,YAAY,EAAK,EAAO,EAAkB;CAC9D,IACE,EAAkB,YAClB,GAAqB;EACnB,OAAO;EACP,YAAY,EAAkB;EAC9B;EACA;CACF,CAAC,EAAE;CACL,IAAM,KAAc,EAAK,EAAO,EAAkB,eAAe,MAC3D,IAAY,EAAK,EAAO,EAAkB,QAAQ,MAClD,IACJ,EAAK,EAAO,EAAkB,qBAAqB,MAC/C,IACJ,EAAK,EAAO,EAAkB,6BAA6B,MAIvD,KAHmB,GAAc,MACrC,MAAM,EAAkB,SAAS,EAAG,IACtC,GAC0C,YAEpC,IAAoB,EAAK,EAAO,QAAU,IAC1C,EAAE,UAAM,eAAW,EACvB,GACA,GACA,GACA,GACA,CACF,GAEM,KAAsB,EAAkB,qBAExC,IAAiB,IACpB,MAAwB;EACvB,IAAI,CAAC,GACH;EAEF,IAAM,IAAc,EAAO;EACvB,UAAgB,KAAA,GAGpB,OAAO,EAAK;CACd,GACA,CAAC,GAAQ,CAAI,CACf,GAIM,IAAa,QAAc;EAC/B,IAAM,IAAM,EAAkB;EAC9B,IAAI,CAAC,GACH;EAEF,IAAM,IAAQ,GAAkB,EAAK,EAAO,GAAK;EAC7C,MAAM,WAAW,GAGrB,OAAO,kBAAC,IAAD,EAAoB,SAAQ,CAAA;CACrC,GAAG;EAAC;EAAmB;EAAM;CAAM,CAAC,GAE9B,KAAgC,QAAc;EAClD,IAAM,EAAE,wBAAqB;EAC7B,IAAI,CAAC,GAAkB;EACvB,IAAM,IACJ,OAAO,KAAqB,aACxB,EAAiB,GAAQ,CAAI,IAC7B;EACN,IAAI,EAAQ,WAAW,GAAG;EAC1B,IAAM,IAAO,EACV,KAAI,MAAc;GACjB,IAAM,IAA+B,EAAK,EAAO;GAEjD,OADK,IACE;IAAE,MAAM,EAAqB,CAAU;IAAG;IAAU;GAAW,IADhD;EAExB,CAAC,EACA,OAAO,OAAO;EAKb,MAAK,WAAW,GACpB,OACE,kBAAC,GAAD;GAAO,WAAU;GAAS,KAAI;aAC3B,EAAK,KAAK,EAAE,SAAM,aAAU,oBAC3B,kBAAC,GAAD;IAAwB,WAAU;IAAM,KAAI;IAAM,YAAW;cAA7D,CACE,kBAAC,IAAD;KAAY,WAAU;KAAO,SAAQ;eAArC,CACG,GAAK,GACI;QACZ,kBAAC,GAAD;KACE,OAAO;KACK;KACZ,WAAW,KAAA;KACD;KACK;KACD;KACd,SAAS;KACU;IACpB,CAAA,CACI;MAdK,CAcL,CACR;EACI,CAAA;CAEX,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,GAEK,EACJ,UAAU,GACV,qBAAqB,MACnB,GAAyB;EAC3B;EACA;EACA;EACA;CACF,CAAC,GAEG,IAAiC,GACjC,IAAoC;CAExC,IAAI,GAAmB;EACrB,IAAM,IAAY,EAAW,EAAe,CAAiB,KAAK,EAAE;EAEpE,AADA,IAAiC,GAAW,UAC5C,IAAoC,GAAW;CACjD;CAQA,IAAM,IAAiB,GAAkB;EACvC,MANkD,QAC5C,GAAe,GAAM,CAAM,GACjC,CAAC,GAAM,CAAM,CAIP;EACN;CACF,CAAC,GAEK,KAAmB,GAAoB;EAC3C,UAAU,GAAwB;EAClC,YAAY;CACd,CAAC,GAEK,IAIA,CAAC,GACD,EAAE,qBAAkB,CAAC,MAAM,GAC3B,IAAoB,EAAkB;CAkC5C,IA7BI,KAAc,EAAkB,8BAClC,EAAO,KAAK;EACV,YAAY,EAAkB;EAC9B,mBAAmB,EACjB,EAAkB,0BACpB;EACA,OAAO;CACT,CAAC,GAKD,MACA,KACA,KACA,MAEA,EAAO,KAAK;EACV,mBAAmB;EACnB,OACE,kBAAC,IAAD;GACE,UAAU,EAAuB;GACjC,YAAY;EACb,CAAA;CAEL,CAAC,GAIC,GAAmB,UAAU,GAAQ,CAAI,GAAG;EAC9C,IAAM,EAAE,QAAK,aAAU;EACvB,AAAI,IACF,EAAO,KAAK;GACV,mBAAmB;GACnB,OACE,kBAAC,IAAD;IAAM,eAAe,GAA4B,MAAO,CAAC,CAAG;cAAG;GAEzD,CAAA;EAEV,CAAC,IAED,EAAO,KAAK;GAAE,mBAAmB;GAAK;EAAM,CAAC;CAEjD;CAEA,IAAM,KAAS,KAAS,CAAC,EAAc,CAAK;CAC5C,KAAK,IAAI,IAAI,GAAG,IAAI,EAAgB,QAAQ,KAAK,GAAG;EAClD,IAAM,IAAa,EAAgB,IAC7B,IAA+B,EAAK,EAAO,KAC7C,IAAiC,GACjC;EACJ,IAAI,KAAiB,MAAa,QAAQ,MAAa,UAAQ;GAE7D,IACE,EAAoB,CAAe,KACnC,MAAe,sBAGf,AADA,IAAoB,QACpB,IAAgB,EAA0B,SAAS,CAAQ,CAAC;QAEzD,IAAI,MAAU,MAAe,kBAAkB;IAClD,IAAM,IAAY,EAAK,EAAO;IAI9B,AAHA,IACE,kBAAC,IAAD;KAAyB;KAAW,SAAS;IAAW,CAAA,GAE1D,IAAoB;GACtB,OAAO;IACL,IAAM,IAAY,IAAiB,MACjC,MAAM,EAAG,oBAAoB,CAC/B;IAaA,AAZA,IACE,kBAAC,GAAD;KACE,OAAO;KACK;KACD;KACD;KACK;KACD;KACd,SAAS;KACU;IACpB,CAAA,GAEH,IAAoB,EAAqB,CAAU;GACrD;GACA,EAAO,KAAK;IAAE;IAAmB,OAAO;IAAe;GAAW,CAAC;EACrE;CACF;CAOA,IAAM,IAAwB,GAC5B,GANmB,KAA0B,GAQ7C,EAAK,EAAO,GACd,GAEM,KAAsB,EAC1B,EAAkB,eAAe,EACnC,GAEM,IAAiB,EAAe,OAAO,GAAe,CAAY,GAClE,IACJ,MAAmB,KAAA,IAAmC,KAAA,IAAvB,EAAK,IAQhC,MALiB,IACnB,MAAM,QAAQ,CAAa,IACzB,IACA,CAAC,CAAa,IAChB,CAAC,GAEF,KAAI,MAAU;EACb,IAAM,IAAuB,EAAK,EAAO,EAAO,UAAU;EAC1D,IAAI,CAAC,GAAc,OAAO;EAC1B,IAAM,EAAE,SAAM,cAAW,EACvB,GACA,KAAA,GACA,GACA,GACA,CACF;EACA,OAAO;GACL,MAAM,EAAO,UACX,kBAAC,OAAD;IAAK,OAAO;KAAE,SAAS;KAAQ,YAAY;KAAU,KAAK;IAAO;cAAjE,CACG,EAAO,MACP,EAAO,OACL;QAEL,EAAO;GAET;GACA;EACF;CACF,CAAC,EACA,OAAO,OAAO,GAEb,KAAkB,kBAAA,GAAA,CAAI,CAAA;CAC1B,AACE,KAA2B,QAC3B,KAAsC,SAEtC,KACE,kBAAC,IAAD;EACE,WAAW;EACX,sBAAsB;CACvB,CAAA;CAIL,IAAM,KAA4B,IAChC,kBAAC,GAAD;EAA2B;EAAc;CAAO,CAAA,IAC9C,MAEA,IAAkB;CAkBtB,OAjBI,KAAY,CAAC,KAA0B,CAAC,MAE1C,IAAkB,KAgBlB,kBAAC,IAAD;EACO;EACL,MAhBa,IACf,kBAAC,IAAD;GACE,MACE,IAAuB,EAAK,EAAO,QAAW,EAAkB;GAElE,gBAAgB;GAChB,0BAA0B,EAAkB;GAC5C,mBAAmB;GACI;GACV;GACF;EACZ,CAAA,IACC,KAAA;EAKU;EACe;EACN;EACb;EACC;EACP,UAAU;EACV,wBAAwB;GAAE;GAAQ;EAAK;EACvC,mBAAmB;EACnB,oCACE,CAAC,KACD,OAAoB,GAAe,gBACnC,IACI;GACyB;GACvB,kBAAkB,MAAS;EAC7B,IACA,KAAA;EAEN,eACE,GAAuB,SAAS,IAAI,KAAyB,KAAA;EAE9C;EACjB,uBAAuB;EACV;EACQ;EACF;EACF;EACjB,QAAQ;EACa;EACrB,4BAA4B,EAAQ;EACpC,gBACE,kBAAA,GAAA,EAAA,UACG,KACC,kBAAC,IAAD;GAAU,IAAI;aACZ,kBAAC,IAAD;IACE,UAAU;IACV,eAAe;IACf,mBAAmB,EAA4B,EAAK;IACpD,oBAAmB,MAAa;KAC9B,GAAyB,CAAS;IACpC;GACD,CAAA;EACO,CAAA,EAEZ,CAAA;EAEJ,kBAGE,GAAmB,SAAS,YAC5B,GAAmB,UACjB,kBAAC,OAAD;GAAK,OAAO,EAAE,WAAW,OAAO;aAC9B,kBAAC,IAAD;IACE,aAAa,EAAkB,QAAQ;IACvC,WAAW,KAAK,MAAM,CAAiB;IACvC,iBAAiB,EACf,IAAI,EAAE,UAAU,OAAO,EACzB;IACA,eAAe;IACf,UAAU;GACX,CAAA;EACE,CAAA;EAGT,gBACE,kBAAC,IAAD;GAAK,IAAI;IAAE,SAAS;IAAQ,KAAK;IAAG,YAAY;GAAS;aAAzD;IACG;IAEA,KACC,kBAAC,IAAD;KACE,eAAe,GAA4B,MAAO,CAAC,CAAG;KACtD,SAAQ;KACR,WAAW,kBAAC,IAAD,EAAe,IAAI,EAAE,QAAQ,OAAO,EAAI,CAAA;KACnD,SAAS;eACV;IAEwB,CAAA;IAE1B,MAAmB,KAClB,kBAAC,IAAD;KACS;KACP,KAAK;KACL,iBAAiB;KACM;IACxB,CAAA;IAEF,MAAsB,KACrB,kBAAC,IAAD,EAAe,GAAI,GAA2B,CAAA;GAE7C;;CAER,CAAA;AAEL"}
1
+ {"version":3,"file":"TableRowGenericCard.js","names":[],"sources":["../../../src/components/GenericCard/TableRowGenericCard.tsx"],"sourcesContent":["import { CommonCardProps } from '@/components/CardContainer/CardConfiguration'\nimport {\n getFileHandleAssociation,\n getLinkParams,\n getValueOrMultiValue,\n} from '@/components/GenericCard/CardUtils'\nimport CroissantButton from '@/components/GenericCard/CroissantButton/CroissantButton'\nimport { GenericCardIcon } from '@/components/GenericCard/GenericCardIcon'\nimport PortalDOI from '@/components/GenericCard/PortalDOI/PortalDOI'\nimport {\n getCandidateDoiId,\n useShowDoiCardLabel,\n} from '@/components/GenericCard/PortalDOI/PortalDOIUtils'\nimport { mapRowToRecord } from '@/components/SynapseTable/SynapseTableUtils'\nimport { useGetEntity } from '@/synapse-queries'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport {\n isDatasetCollection,\n isTableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport {\n extractMarkdownLinkHref,\n parseSynId,\n} from '@/utils/functions/RegularExpressions'\nimport { getColumnIndex } from '@/utils/functions/SqlFunctions'\nimport { TargetEnum } from '@/utils/html/TargetEnum'\nimport * as SynapseConstants from '@/utils/SynapseConstants'\nimport { GetAppTwoTone } from '@mui/icons-material'\nimport { Box, Collapse, Link, Stack, Typography } from '@mui/material'\nimport {\n ColumnModel,\n ColumnTypeEnum,\n Entity,\n SelectColumn,\n Table,\n} from '@sage-bionetworks/synapse-types'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { useInView } from 'react-intersection-observer'\nimport CitationPopover from '../CitationPopover'\nimport {\n DATASET_HOSTING_CONFIG,\n type DatasetHostingType,\n normalizeHosting,\n} from '../DatasetHosting/DatasetHosting'\nimport DatasetDownloadButton from '../DatasetHosting/DatasetDownloadButton'\nimport DatasetHostingAdornment from '../DatasetHosting/DatasetHostingAdornment'\nimport { EntityDownloadConfirmation } from '../EntityDownloadConfirmation'\nimport { HeaderCardVariant } from '../HeaderCard'\nimport IconList from '../IconList'\nimport { useQueryContext } from '../QueryContext/QueryContext'\nimport { useQueryVisualizationContext } from '../QueryVisualizationWrapper'\nimport ShareThisPage, {\n ShareThisPageProps,\n} from '../ShareThisPage/ShareThisPage'\nimport { SustainabilityScorecardProps } from '../SustainabilityScorecard/SustainabilityScorecard'\nimport { CardActionButtonStyleContext } from './CardActionButtonStyleContext'\nimport GenericCard from './GenericCard'\nimport GenericCardActionButton from './GenericCardActionButton'\nimport DuoTermTags from './DuoTermTags/DuoTermTags'\nimport { parseDuoModifiers } from './DuoTermTags/duoTerms'\nimport { PortalDOIConfiguration } from './PortalDOI/PortalDOIConfiguration'\nimport { SynapseCardLabel } from './SynapseCardLabel'\nimport { useResolvedSynapseEntity } from './useResolvedSynapseEntity'\n\ntype RowSynapseEntityConfig = {\n /** Use the table rowId to resolve the Synapse entity ID. */\n id: {\n source: 'rowId'\n }\n /** Use the table rowVersionNumber to resolve the Synapse entity version (if available). */\n version?: {\n source: 'rowVersionNumber'\n }\n}\n\ntype ColumnSynapseEntityConfig = {\n /** Use a column value to resolve the Synapse entity ID. */\n id: {\n source: 'column'\n columnName: string\n }\n /** Use a column value to resolve the Synapse entity version. */\n version?: {\n source: 'column'\n columnName: string\n }\n}\n\nexport type SynapseEntityConfig =\n | RowSynapseEntityConfig\n | ColumnSynapseEntityConfig\n\n/**\n * Maps a table query result to a GenericCard.\n */\nexport type TableToGenericCardMapping = {\n /** The 'type' of resource a card refers to. Renders a label on the card with this string value.\n * Can be hidden by setting it to '' (empty string)\n */\n type: string\n /** The column name whose data contains the title of the card */\n title: string\n /** The column name whose data contains the subtitle of the card */\n subTitle?: string\n /** The column name whose data contains the description of the card */\n description?: string\n /** If true, a 'Cite As' button will be displayed for those cards with a DOI in the 'doi' column */\n includeCitation?: boolean\n /** If true, a 'Share this page' button will be displayed */\n includeShareButton?: boolean\n /**\n * Configuration for displaying the SustainabilityScorecard component\n */\n sustainabilityScorecard?: SustainabilityScorecardProps\n /** The initial citation format to use in the 'Cite As' UI */\n defaultCitationFormat?: 'bibtex' | 'apa' | 'ieee' | 'nature' | 'science'\n /** Static text displayed in the 'Cite As' UI */\n citationBoilerplateText?: string\n /** The column name whose data contains the value used to map to the icon */\n icon?: string\n /** The column name whose data contains an image file handle to be displayed on the card */\n imageFileHandleColumnName?: string\n /** Static boolean value used if the image displayed using `imageFileHandleColumnName` requires extra padding */\n thumbnailRequiresPadding?: boolean\n /** Array of column names to be used for labels in the Card Footer */\n secondaryLabels?: string[]\n /** Can be used to add a custom secondary label */\n customSecondaryLabelConfig?: {\n /** The displayed label key */\n key: string\n /** The value to display */\n value: React.ReactNode\n /** Callback to determine visibility of the label\n * @param schema the mapping of columnName to data index\n * @param data the row data\n */\n isVisible: (schema: Record<string, number>, data: string[]) => boolean\n }\n /** Column name of the link value if the title should be linked */\n link?: string\n /** Column name of the STRING_LIST column that includes icon names that represent icons that should be displayed on the card */\n dataTypeIconNames?: string\n /**\n * Ordered list of column names to display to the right of the title area.\n * Each renders as \"Display Name: Value\" on its own line. Rows with empty values are skipped.\n * The display name is derived from getColumnDisplayName (respects column aliases and unCamelCase).\n *\n * Can also be a function that receives the schema and row data and returns the list of column\n * names to display, allowing the displayed details to vary based on the row's actual values.\n */\n titleAreaDetails?:\n | string[]\n | ((schema: Record<string, number>, data: string[]) => string[])\n /** Configuration for resolving the Synapse entity ID/version represented by each card row.\n * The ID and version sources must both reference either row-based values or column-based values.\n */\n synapseEntityConfig?: SynapseEntityConfig\n /** The column name whose data contains a synId that can be used to show a button to add the corresponding entity to the download cart. */\n downloadCartSynId?: string\n /**\n * Opt-in configuration for hosting-aware download/access. When `hostingColumn`\n * is provided, the card's primary action becomes a `DatasetDownloadButton` driven\n * by the row's hosting value: downloadable hosting types show the standard dataset\n * download options, while non-downloadable types (e.g. external-access) swap to a\n * link to the external repository instead. Other portals that don't set this\n * are unaffected.\n */\n hostingConfig?: {\n /** Column holding the hosting type. Blank/unknown → `synapse`. */\n hostingColumn: string\n /**\n * Optional map from the column's raw values to hosting types, for columns that\n * use portal-specific labels rather than the canonical vocabulary (e.g. CCKP's\n * `downloadType`: \"Synapse Indexed\" → `external-download`). Values not in the\n * map fall back to `normalizeHosting` (canonical value, or → `synapse`).\n */\n hostingValueMap?: Record<string, DatasetHostingType>\n /** Column holding the free-text external repository name (e.g. \"GEO\", \"dbGaP\"). */\n repositoryColumn?: string\n /** Column holding the external URL used for non-downloadable (external-access) datasets. */\n externalUrlColumn?: string\n }\n /** Configuration to display a DOI, as well as the ability to create one for users with such permission */\n portalDoiConfiguration?: PortalDOIConfiguration\n /**\n * Column name of a STRING_LIST of Data Use Ontology (DUO) values (ontology\n * codes or term names). When set, the values are rendered as DUO tags in a\n * metadata row labeled with the column's display name, so the card matches the\n * corresponding facet.\n */\n dataUseModifiersColumnName?: string\n}\n\nexport type TableRowGenericCardProps = {\n /** The schema that maps a table result to the GenericCard UI */\n genericCardSchema: TableToGenericCardMapping\n /** The table's SelectColumns */\n selectColumns?: SelectColumn[]\n /** The table's ColumnModels */\n columnModels?: ColumnModel[]\n /** If true, the 'type' column will be used as the icon string to choose the icon */\n useTypeColumnForIcon?: boolean\n /** If true, render the card as a HeaderCard */\n isHeader?: boolean\n /** If isHeader is true, use this variant of HeaderCard */\n headerCardVariant?: HeaderCardVariant\n isAlignToLeftNav?: boolean\n /** Mapping of column name to row data index */\n schema: Record<string, number>\n /** The row data */\n data: string[]\n /** The ID of the table row */\n rowId?: number\n /** The versionNumber of the table row */\n versionNumber?: number\n /** Optional props for the ShareThisPage component */\n sharePageLinkButtonProps?: ShareThisPageProps\n /** Optional function that receives schema and data and returns a ReactNode to be rendered next to the card type */\n CardTypeAdornment?: React.ComponentType<{\n schema: Record<string, number>\n data: string[]\n }>\n} & CommonCardProps\n\n// SWC-6115: special rendering of the version column (for Views)\nfunction VersionLabel(props: { synapseId: string; version: string }) {\n const { synapseId, version } = props\n return (\n <span>\n {version}&nbsp;&nbsp;\n <a\n target={TargetEnum.NEW_WINDOW}\n rel=\"noopener noreferrer\"\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${synapseId}.${version}`}\n >\n (Show Version History on Synapse)\n </a>\n </span>\n )\n}\n\n/**\n * Maps a table row to a GenericCard.\n */\nexport function TableRowGenericCard(props: TableRowGenericCardProps) {\n const [showDownloadConfirmation, setShowDownloadConfirmation] =\n useState(false)\n const [downloadButtonLoading, setDownloadButtonLoading] = useState(false)\n\n const { entityId, versionNumber } = useQueryContext()\n const { getColumnDisplayName } = useQueryVisualizationContext()\n\n const { ref, inView: cardIsInView } = useInView()\n\n const { data: table } = useGetEntity<Table>(entityId, versionNumber)\n\n const {\n schema,\n data,\n rowId,\n versionNumber: rowVersionNumber,\n genericCardSchema,\n secondaryLabelLimit,\n sharePageLinkButtonProps,\n selectColumns,\n columnModels,\n iconOptions,\n useTypeColumnForIcon = false,\n isHeader = false,\n sustainabilityScorecard,\n headerCardVariant,\n titleLinkConfig,\n ctaLinkConfig,\n ctaLinkPosition,\n labelLinkConfig,\n descriptionConfig,\n columnIconOptions,\n CardTypeAdornment,\n charCountCutoff,\n actionButtonStyle = 'button',\n } = props\n\n const {\n link = '',\n type,\n includeCitation,\n includeShareButton,\n defaultCitationFormat,\n citationBoilerplateText,\n downloadCartSynId,\n portalDoiConfiguration,\n } = genericCardSchema\n const title = data[schema[genericCardSchema.title]]\n let subTitle =\n genericCardSchema.subTitle && data[schema[genericCardSchema.subTitle]]\n subTitle =\n genericCardSchema.subTitle &&\n getValueOrMultiValue({\n value: subTitle,\n columnName: genericCardSchema.subTitle,\n selectColumns,\n columnModels,\n }).str\n const description = data[schema[genericCardSchema.description || '']]\n const iconValue = data[schema[genericCardSchema.icon || '']]\n const dataTypeIconNames =\n data[schema[genericCardSchema.dataTypeIconNames || '']]\n const imageFileHandleIdValue =\n data[schema[genericCardSchema.imageFileHandleColumnName || '']]\n const titleColumnModel = columnModels?.find(\n el => genericCardSchema.link === el.name,\n )\n const titleColumnType = titleColumnModel?.columnType\n // wrap link in parens because undefined would throw an error\n const linkValue: string = data[schema[link]] || ''\n const { href, target } = getLinkParams(\n linkValue,\n titleLinkConfig,\n data,\n schema,\n rowId,\n )\n\n const synapseEntityConfig = genericCardSchema.synapseEntityConfig\n\n const getColumnValue = useCallback(\n (columnName?: string) => {\n if (!columnName) {\n return undefined\n }\n const columnIndex = schema[columnName]\n if (columnIndex === undefined) {\n return undefined\n }\n return data[columnIndex]\n },\n [schema, data],\n )\n\n // DUO (Data Use Ontology) tags, when a dataUseModifiers column is configured.\n // Rendered as a metadata row labeled with the column's display name.\n const duoContent = useMemo(() => {\n const col = genericCardSchema.dataUseModifiersColumnName\n if (!col) {\n return undefined\n }\n const terms = parseDuoModifiers(data[schema[col]])\n if (terms.length === 0) {\n return undefined\n }\n return <DuoTermTags terms={terms} />\n }, [genericCardSchema, data, schema])\n\n const resolvedTitleAreaRightContent = useMemo(() => {\n const { titleAreaDetails } = genericCardSchema\n if (!titleAreaDetails) return undefined\n const columns =\n typeof titleAreaDetails === 'function'\n ? titleAreaDetails(schema, data)\n : titleAreaDetails\n if (columns.length === 0) return undefined\n const rows = columns\n .map(columnName => {\n const rawValue: string | undefined = data[schema[columnName]]\n if (!rawValue) return null\n return { name: getColumnDisplayName(columnName), rawValue, columnName }\n })\n .filter(Boolean) as {\n name: string\n rawValue: string\n columnName: string\n }[]\n if (rows.length === 0) return undefined\n return (\n <Stack direction=\"column\" gap=\"4px\">\n {rows.map(({ name, rawValue, columnName }) => (\n <Stack key={columnName} direction=\"row\" gap=\"4px\" alignItems=\"center\">\n <Typography component=\"span\" variant=\"body1\">\n {name}:\n </Typography>\n <SynapseCardLabel\n value={rawValue}\n columnName={columnName}\n labelLink={undefined}\n isHeader={isHeader}\n selectColumns={selectColumns}\n columnModels={columnModels}\n rowData={data}\n columnIconOptions={columnIconOptions}\n />\n </Stack>\n ))}\n </Stack>\n )\n }, [\n genericCardSchema,\n data,\n schema,\n getColumnDisplayName,\n isHeader,\n selectColumns,\n columnModels,\n columnIconOptions,\n ])\n\n const {\n entityId: resolvedSynapseEntityId,\n entityVersionNumber: resolvedSynapseEntityVersionNumber,\n } = useResolvedSynapseEntity({\n synapseEntityConfig,\n getColumnValue,\n rowId,\n rowVersionNumber,\n })\n\n let resolvedDownloadCartSynIdValue = resolvedSynapseEntityId\n let resolvedDownloadCartVersionNumber = resolvedSynapseEntityVersionNumber\n\n if (downloadCartSynId) {\n const reference = parseSynId(getColumnValue(downloadCartSynId) ?? '')\n resolvedDownloadCartSynIdValue = reference?.targetId\n resolvedDownloadCartVersionNumber = reference?.targetVersionNumber\n }\n\n // Opt-in hosting-aware action: when the schema declares a hosting column, the\n // primary action is a DatasetDownloadButton driven by the row's hosting value.\n const hostingConfig = genericCardSchema.hostingConfig\n const rawHostingValue = hostingConfig\n ? getColumnValue(hostingConfig.hostingColumn)\n : undefined\n const hostingType = hostingConfig\n ? (rawHostingValue && hostingConfig.hostingValueMap?.[rawHostingValue]) ||\n normalizeHosting(rawHostingValue)\n : undefined\n const hostingRepository = hostingConfig?.repositoryColumn\n ? getColumnValue(hostingConfig.repositoryColumn)\n : undefined\n const rawHostingExternalUrl = hostingConfig?.externalUrlColumn\n ? getColumnValue(hostingConfig.externalUrlColumn)\n : undefined\n // The externalUrl column may be a markdown link (e.g. CCKP's `externalLink`:\n // \"[label](https://...)\") rather than a plain URL — extract the href if so.\n const hostingExternalUrl = rawHostingExternalUrl\n ? extractMarkdownLinkHref(rawHostingExternalUrl)\n : undefined\n // Non-downloadable hosting (e.g. external-access) suppresses the Synapse\n // download flow entirely; everything else keeps the add-to-download-list behavior.\n const hostingIsDownloadable = hostingType\n ? DATASET_HOSTING_CONFIG[hostingType].downloadable\n : true\n\n // Transform the row to a record of (columnName, value) pairs for compatibility with getCandidateDoiId\n const dataAsRecord: Record<string, string | null> = useMemo(\n () => mapRowToRecord(data, schema),\n [data, schema],\n )\n\n const candidateDoiId = getCandidateDoiId({\n data: dataAsRecord,\n portalDoiConfiguration,\n })\n\n const showDoiCardLabel = useShowDoiCardLabel({\n portalId: portalDoiConfiguration?.portalId,\n resourceId: candidateDoiId,\n })\n\n const values: {\n columnDisplayName: string\n value: React.ReactNode\n columnName?: string\n }[] = []\n const { secondaryLabels = [] } = genericCardSchema\n const customLabelConfig = genericCardSchema.customSecondaryLabelConfig\n\n // DUO tags rendered as a metadata row (alongside \"How to download\", size, …).\n // Label it with the DUO column's display name so the card row matches the\n // facet exactly (respecting any column alias) rather than a hardcoded string.\n if (duoContent && genericCardSchema.dataUseModifiersColumnName) {\n values.push({\n columnName: genericCardSchema.dataUseModifiersColumnName,\n columnDisplayName: getColumnDisplayName(\n genericCardSchema.dataUseModifiersColumnName,\n ),\n value: duoContent,\n })\n }\n\n // PORTALS-3549 - if a DOI exists or can be created by the current user, show it\n if (\n showDoiCardLabel &&\n portalDoiConfiguration &&\n candidateDoiId &&\n cardIsInView\n ) {\n values.push({\n columnDisplayName: 'DOI',\n value: (\n <PortalDOI\n portalId={portalDoiConfiguration.portalId}\n resourceId={candidateDoiId}\n />\n ),\n })\n }\n\n // Overwrite the 'HOW TO DOWNLOAD' link if a synapse ID is available — but not\n // for non-downloadable hosting (e.g. external-access), where adding to the\n // Synapse download list wouldn't work; fall back to the static guidance instead.\n if (customLabelConfig?.isVisible(schema, data)) {\n const { key, value } = customLabelConfig\n if (resolvedDownloadCartSynIdValue && hostingIsDownloadable) {\n values.push({\n columnDisplayName: 'HOW TO DOWNLOAD',\n value: (\n <Link onClick={() => setShowDownloadConfirmation(val => !val)}>\n Click here to add to Synapse download list\n </Link>\n ),\n })\n } else {\n values.push({ columnDisplayName: key, value })\n }\n }\n\n const isView = table && !isTableEntity(table)\n for (let i = 0; i < secondaryLabels.length; i += 1) {\n const columnName = secondaryLabels[i]\n const rawValue: string | undefined = data[schema[columnName]]\n let renderedValue: React.ReactNode = rawValue\n let columnDisplayName\n if (renderedValue && rawValue !== '[]' && rawValue !== '[\"\"]') {\n // PORTALS-2750: special rendering of the datasetSizeInBytes (for Dataset Collections)\n if (\n isDatasetCollection(table as Entity) &&\n columnName === 'datasetSizeInBytes'\n ) {\n columnDisplayName = 'Size'\n renderedValue = calculateFriendlyFileSize(parseInt(rawValue))\n } // SWC-6115: special rendering of the version column (for Views)\n else if (isView && columnName === 'currentVersion') {\n const synapseId = data[schema.id]\n renderedValue = (\n <VersionLabel synapseId={synapseId} version={rawValue} />\n )\n columnDisplayName = 'Version'\n } else {\n const labelLink = labelLinkConfig?.find(\n el => el.matchColumnName === columnName,\n )\n renderedValue = (\n <SynapseCardLabel\n value={rawValue}\n columnName={columnName}\n labelLink={labelLink}\n isHeader={isHeader}\n selectColumns={selectColumns}\n columnModels={columnModels}\n rowData={data}\n columnIconOptions={columnIconOptions}\n />\n )\n columnDisplayName = getColumnDisplayName(columnName)\n }\n values.push({ columnDisplayName, value: renderedValue, columnName })\n }\n }\n\n const fileHandleId = imageFileHandleIdValue || linkValue\n\n /**\n * To show a direct download link to a file, we need to determine the association that gives permission to download the file.\n */\n const fileHandleAssociation = getFileHandleAssociation(\n table,\n fileHandleId,\n data[schema.id],\n )\n\n const descriptionSubTitle = getColumnDisplayName(\n genericCardSchema.description || '',\n )\n\n const doiColumnIndex = getColumnIndex('doi', selectColumns, columnModels)\n const doiValue =\n doiColumnIndex !== undefined ? data[doiColumnIndex] : undefined\n\n // Normalize ctaLinkConfig to array and resolve each config\n const ctaLinkConfigs = ctaLinkConfig\n ? Array.isArray(ctaLinkConfig)\n ? ctaLinkConfig\n : [ctaLinkConfig]\n : []\n const resolvedCtaLinkConfigs = ctaLinkConfigs\n .map(config => {\n const ctaLinkValue: string = data[schema[config.link]] || ''\n if (!ctaLinkValue) return null\n const { href, target } = getLinkParams(\n ctaLinkValue,\n undefined, //card link config\n data,\n schema,\n rowId,\n )\n return {\n text: config.endIcon ? (\n <div style={{ display: 'flex', alignItems: 'center', gap: '10px' }}>\n {config.text}\n {config.endIcon}\n </div>\n ) : (\n config.text\n ),\n href,\n target,\n }\n })\n .filter(Boolean) as { text: string; href: string; target?: string }[]\n\n let croissantButton = <></>\n if (\n resolvedSynapseEntityId != null &&\n resolvedSynapseEntityVersionNumber != null\n ) {\n croissantButton = (\n <CroissantButton\n datasetId={resolvedSynapseEntityId}\n datasetVersionNumber={resolvedSynapseEntityVersionNumber}\n />\n )\n }\n\n // Auto-render a scannable hosting chip next to the dataset type when the card\n // opts into hosting-aware behavior and the row has a recognized hosting value,\n // so the button's icon/tooltip is not the only visual signal of where files\n // live. An explicit `CardTypeAdornment` prop always wins as an escape hatch.\n let resolvedCardTypeAdornment: React.ReactNode = null\n if (CardTypeAdornment) {\n resolvedCardTypeAdornment = (\n <CardTypeAdornment schema={schema} data={data} />\n )\n } else if (hostingConfig && rawHostingValue?.trim() && hostingType) {\n resolvedCardTypeAdornment = (\n <DatasetHostingAdornment hostingType={hostingType} isHeader={isHeader} />\n )\n }\n\n let isRenderingIcon = true\n if (isHeader && !imageFileHandleIdValue && !iconValue) {\n // For header cards, if there is no image or explicit icon value, we don't show an icon at all\n isRenderingIcon = false\n }\n const iconNode = isRenderingIcon ? (\n <GenericCardIcon\n type={\n useTypeColumnForIcon ? data[schema['type']] : genericCardSchema.type\n }\n useTypeForIcon={useTypeColumnForIcon}\n thumbnailRequiresPadding={genericCardSchema.thumbnailRequiresPadding}\n imageFileHandleId={imageFileHandleIdValue}\n fileHandleAssociation={fileHandleAssociation}\n iconOptions={iconOptions}\n iconValue={iconValue}\n />\n ) : undefined\n return (\n <GenericCard\n ref={ref}\n icon={iconNode}\n isHeader={isHeader}\n sustainabilityScorecard={sustainabilityScorecard}\n headerCardVariant={headerCardVariant}\n type={type}\n title={title}\n subtitle={subTitle}\n titleLinkConfiguration={{ target, href }}\n cardTypeAdornment={resolvedCardTypeAdornment}\n titleAsFileHandleLinkConfiguration={\n !titleLinkConfig &&\n titleColumnType === ColumnTypeEnum.FILEHANDLEID &&\n fileHandleAssociation\n ? {\n fileHandleAssociation: fileHandleAssociation,\n showDownloadIcon: type !== SynapseConstants.EXPERIMENTAL,\n }\n : undefined\n }\n ctaLinkConfig={\n resolvedCtaLinkConfigs.length > 0 ? resolvedCtaLinkConfigs : undefined\n }\n ctaLinkPosition={ctaLinkPosition}\n titleAreaRightContent={resolvedTitleAreaRightContent}\n description={description}\n descriptionSubTitle={descriptionSubTitle}\n descriptionConfig={descriptionConfig}\n charCountCutoff={charCountCutoff}\n labels={values}\n secondaryLabelLimit={secondaryLabelLimit}\n useStylesForDisplayedImage={Boolean(imageFileHandleIdValue)}\n cardTopContent={\n <>\n {resolvedDownloadCartSynIdValue && (\n <Collapse in={showDownloadConfirmation}>\n <EntityDownloadConfirmation\n entityId={resolvedDownloadCartSynIdValue}\n versionNumber={resolvedDownloadCartVersionNumber}\n handleClose={() => setShowDownloadConfirmation(false)}\n onIsLoadingChange={isLoading => {\n setDownloadButtonLoading(isLoading)\n }}\n />\n </Collapse>\n )}\n </>\n }\n renderedIconList={\n // If the portal configs has columnIconOptions.columns.dataType option\n // and the column value is not null, display the card data type icons\n columnIconOptions?.columns?.dataType &&\n dataTypeIconNames?.length && (\n <div style={{ marginTop: '20px' }}>\n <IconList\n iconConfigs={columnIconOptions.columns.dataType}\n iconNames={JSON.parse(dataTypeIconNames) as string[]}\n commonIconProps={{\n sx: { fontSize: '40px' },\n }}\n useBackground={true}\n useTheme={true}\n />\n </div>\n )\n }\n cardTopButtons={\n <CardActionButtonStyleContext.Provider value={actionButtonStyle}>\n <Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}>\n {croissantButton}\n {/* Hosting-aware action (opt-in via schema.hostingConfig): downloadable\n hosting shows the standard dataset download options; non-downloadable\n hosting links out to the external repository or is non-actionable. */}\n {hostingConfig &&\n (resolvedDownloadCartSynIdValue || !hostingIsDownloadable) && (\n <DatasetDownloadButton\n entityId={resolvedDownloadCartSynIdValue}\n name={title}\n hosting={hostingType}\n repository={hostingRepository}\n externalUrl={hostingExternalUrl}\n onDownloadClick={() =>\n setShowDownloadConfirmation(val => !val)\n }\n isDownloading={downloadButtonLoading}\n />\n )}\n {/* PORTALS-3386 Use synapseLink in schema to add entity to download cart */}\n {!hostingConfig && resolvedDownloadCartSynIdValue && (\n <GenericCardActionButton\n onClick={() => setShowDownloadConfirmation(val => !val)}\n variant=\"outlined\"\n startIcon={<GetAppTwoTone sx={{ height: '12px' }} />}\n loading={downloadButtonLoading}\n >\n Download\n </GenericCardActionButton>\n )}\n {includeCitation && doiValue && (\n <CitationPopover\n title={title}\n doi={doiValue}\n boilerplateText={citationBoilerplateText}\n defaultCitationFormat={defaultCitationFormat}\n />\n )}\n {includeShareButton && isHeader && (\n <ShareThisPage {...sharePageLinkButtonProps} />\n )}\n </Box>\n </CardActionButtonStyleContext.Provider>\n }\n />\n )\n}\n\nexport default TableRowGenericCard\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkOA,SAAS,GAAa,GAA+C;CACnE,IAAM,EAAE,cAAW,eAAY;CAC/B,OACE,kBAAC,QAAD,EAAA,UAAA;EACG;EAAQ;EACT,kBAAC,KAAD;GACE,QAAQ,EAAW;GACnB,KAAI;GACJ,MAAM,GAAG,EAA2B,OAAO,UAAU,EAAU,GAAG;aACnE;EAEE,CAAA;CACC,EAAA,CAAA;AAEV;AAKA,SAAgB,EAAoB,GAAiC;CACnE,IAAM,CAAC,GAA0B,KAC/B,GAAS,EAAK,GACV,CAAC,GAAuB,MAA4B,GAAS,EAAK,GAElE,EAAE,cAAU,sBAAkB,GAAgB,GAC9C,EAAE,4BAAyB,GAA6B,GAExD,EAAE,SAAK,QAAQ,OAAiB,GAAU,GAE1C,EAAE,MAAM,MAAU,GAAoB,IAAU,EAAa,GAE7D,EACJ,WACA,SACA,UACA,eAAe,IACf,sBACA,yBACA,8BACA,kBACA,iBACA,iBACA,0BAAuB,IACvB,cAAW,IACX,6BACA,uBACA,oBACA,kBACA,qBACA,qBACA,uBACA,sBACA,sBACA,qBACA,wBAAoB,aAClB,GAEE,EACJ,WAAO,IACP,SACA,qBACA,wBACA,2BACA,6BACA,sBACA,8BACE,GACE,IAAQ,EAAK,EAAO,EAAkB,SACxC,IACF,EAAkB,YAAY,EAAK,EAAO,EAAkB;CAC9D,IACE,EAAkB,YAClB,GAAqB;EACnB,OAAO;EACP,YAAY,EAAkB;EAC9B;EACA;CACF,CAAC,EAAE;CACL,IAAM,KAAc,EAAK,EAAO,EAAkB,eAAe,MAC3D,KAAY,EAAK,EAAO,EAAkB,QAAQ,MAClD,IACJ,EAAK,EAAO,EAAkB,qBAAqB,MAC/C,IACJ,EAAK,EAAO,EAAkB,6BAA6B,MAIvD,KAHmB,GAAc,MACrC,MAAM,EAAkB,SAAS,EAAG,IACtC,GAC0C,YAEpC,IAAoB,EAAK,EAAO,QAAU,IAC1C,EAAE,UAAM,eAAW,EACvB,GACA,GACA,GACA,GACA,CACF,GAEM,KAAsB,EAAkB,qBAExC,IAAiB,IACpB,MAAwB;EACvB,IAAI,CAAC,GACH;EAEF,IAAM,IAAc,EAAO;EACvB,UAAgB,KAAA,GAGpB,OAAO,EAAK;CACd,GACA,CAAC,GAAQ,CAAI,CACf,GAIM,IAAa,QAAc;EAC/B,IAAM,IAAM,EAAkB;EAC9B,IAAI,CAAC,GACH;EAEF,IAAM,IAAQ,GAAkB,EAAK,EAAO,GAAK;EAC7C,MAAM,WAAW,GAGrB,OAAO,kBAAC,IAAD,EAAoB,SAAQ,CAAA;CACrC,GAAG;EAAC;EAAmB;EAAM;CAAM,CAAC,GAE9B,KAAgC,QAAc;EAClD,IAAM,EAAE,wBAAqB;EAC7B,IAAI,CAAC,GAAkB;EACvB,IAAM,IACJ,OAAO,KAAqB,aACxB,EAAiB,GAAQ,CAAI,IAC7B;EACN,IAAI,EAAQ,WAAW,GAAG;EAC1B,IAAM,IAAO,EACV,KAAI,MAAc;GACjB,IAAM,IAA+B,EAAK,EAAO;GAEjD,OADK,IACE;IAAE,MAAM,EAAqB,CAAU;IAAG;IAAU;GAAW,IADhD;EAExB,CAAC,EACA,OAAO,OAAO;EAKb,MAAK,WAAW,GACpB,OACE,kBAAC,GAAD;GAAO,WAAU;GAAS,KAAI;aAC3B,EAAK,KAAK,EAAE,SAAM,aAAU,oBAC3B,kBAAC,GAAD;IAAwB,WAAU;IAAM,KAAI;IAAM,YAAW;cAA7D,CACE,kBAAC,IAAD;KAAY,WAAU;KAAO,SAAQ;eAArC,CACG,GAAK,GACI;QACZ,kBAAC,GAAD;KACE,OAAO;KACK;KACZ,WAAW,KAAA;KACD;KACK;KACD;KACd,SAAS;KACU;IACpB,CAAA,CACI;MAdK,CAcL,CACR;EACI,CAAA;CAEX,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,GAEK,EACJ,UAAU,GACV,qBAAqB,MACnB,GAAyB;EAC3B;EACA;EACA;EACA;CACF,CAAC,GAEG,IAAiC,GACjC,IAAoC;CAExC,IAAI,GAAmB;EACrB,IAAM,IAAY,EAAW,EAAe,CAAiB,KAAK,EAAE;EAEpE,AADA,IAAiC,GAAW,UAC5C,IAAoC,GAAW;CACjD;CAIA,IAAM,IAAgB,EAAkB,eAClC,IAAkB,IACpB,EAAe,EAAc,aAAa,IAC1C,KAAA,GACE,IAAc,IACf,KAAmB,EAAc,kBAAkB,MACpD,GAAiB,CAAe,IAChC,KAAA,GACE,KAAoB,GAAe,mBACrC,EAAe,EAAc,gBAAgB,IAC7C,KAAA,GACE,IAAwB,GAAe,oBACzC,EAAe,EAAc,iBAAiB,IAC9C,KAAA,GAGE,KAAqB,IACvB,EAAwB,CAAqB,IAC7C,KAAA,GAGE,IAAwB,IAC1B,GAAuB,GAAa,eACpC,IAQE,IAAiB,GAAkB;EACvC,MANkD,QAC5C,GAAe,GAAM,CAAM,GACjC,CAAC,GAAM,CAAM,CAIP;EACN;CACF,CAAC,GAEK,KAAmB,GAAoB;EAC3C,UAAU,GAAwB;EAClC,YAAY;CACd,CAAC,GAEK,IAIA,CAAC,GACD,EAAE,sBAAkB,CAAC,MAAM,GAC3B,KAAoB,EAAkB;CAoC5C,IA/BI,KAAc,EAAkB,8BAClC,EAAO,KAAK;EACV,YAAY,EAAkB;EAC9B,mBAAmB,EACjB,EAAkB,0BACpB;EACA,OAAO;CACT,CAAC,GAKD,MACA,KACA,KACA,MAEA,EAAO,KAAK;EACV,mBAAmB;EACnB,OACE,kBAAC,IAAD;GACE,UAAU,EAAuB;GACjC,YAAY;EACb,CAAA;CAEL,CAAC,GAMC,IAAmB,UAAU,GAAQ,CAAI,GAAG;EAC9C,IAAM,EAAE,QAAK,aAAU;EACvB,AAAI,KAAkC,IACpC,EAAO,KAAK;GACV,mBAAmB;GACnB,OACE,kBAAC,IAAD;IAAM,eAAe,GAA4B,MAAO,CAAC,CAAG;cAAG;GAEzD,CAAA;EAEV,CAAC,IAED,EAAO,KAAK;GAAE,mBAAmB;GAAK;EAAM,CAAC;CAEjD;CAEA,IAAM,KAAS,KAAS,CAAC,EAAc,CAAK;CAC5C,KAAK,IAAI,IAAI,GAAG,IAAI,GAAgB,QAAQ,KAAK,GAAG;EAClD,IAAM,IAAa,GAAgB,IAC7B,IAA+B,EAAK,EAAO,KAC7C,IAAiC,GACjC;EACJ,IAAI,KAAiB,MAAa,QAAQ,MAAa,UAAQ;GAE7D,IACE,EAAoB,CAAe,KACnC,MAAe,sBAGf,AADA,IAAoB,QACpB,IAAgB,EAA0B,SAAS,CAAQ,CAAC;QAEzD,IAAI,MAAU,MAAe,kBAAkB;IAClD,IAAM,IAAY,EAAK,EAAO;IAI9B,AAHA,IACE,kBAAC,IAAD;KAAyB;KAAW,SAAS;IAAW,CAAA,GAE1D,IAAoB;GACtB,OAAO;IACL,IAAM,IAAY,IAAiB,MACjC,MAAM,EAAG,oBAAoB,CAC/B;IAaA,AAZA,IACE,kBAAC,GAAD;KACE,OAAO;KACK;KACD;KACD;KACK;KACD;KACd,SAAS;KACU;IACpB,CAAA,GAEH,IAAoB,EAAqB,CAAU;GACrD;GACA,EAAO,KAAK;IAAE;IAAmB,OAAO;IAAe;GAAW,CAAC;EACrE;CACF;CAOA,IAAM,IAAwB,GAC5B,GANmB,KAA0B,GAQ7C,EAAK,EAAO,GACd,GAEM,KAAsB,EAC1B,EAAkB,eAAe,EACnC,GAEM,KAAiB,GAAe,OAAO,GAAe,CAAY,GAClE,KACJ,OAAmB,KAAA,IAAmC,KAAA,IAAvB,EAAK,KAQhC,MALiB,IACnB,MAAM,QAAQ,CAAa,IACzB,IACA,CAAC,CAAa,IAChB,CAAC,GAEF,KAAI,MAAU;EACb,IAAM,IAAuB,EAAK,EAAO,EAAO,UAAU;EAC1D,IAAI,CAAC,GAAc,OAAO;EAC1B,IAAM,EAAE,SAAM,cAAW,EACvB,GACA,KAAA,GACA,GACA,GACA,CACF;EACA,OAAO;GACL,MAAM,EAAO,UACX,kBAAC,OAAD;IAAK,OAAO;KAAE,SAAS;KAAQ,YAAY;KAAU,KAAK;IAAO;cAAjE,CACG,EAAO,MACP,EAAO,OACL;QAEL,EAAO;GAET;GACA;EACF;CACF,CAAC,EACA,OAAO,OAAO,GAEb,KAAkB,kBAAA,GAAA,CAAI,CAAA;CAC1B,AACE,KAA2B,QAC3B,KAAsC,SAEtC,KACE,kBAAC,IAAD;EACE,WAAW;EACX,sBAAsB;CACvB,CAAA;CAQL,IAAI,IAA6C;CACjD,AAAI,IACF,IACE,kBAAC,GAAD;EAA2B;EAAc;CAAO,CAAA,IAEzC,KAAiB,GAAiB,KAAK,KAAK,MACrD,IACE,kBAAC,IAAD;EAAsC;EAAuB;CAAW,CAAA;CAI5E,IAAI,KAAkB;CAkBtB,OAjBI,KAAY,CAAC,KAA0B,CAAC,OAE1C,KAAkB,KAgBlB,kBAAC,IAAD;EACO;EACL,MAhBa,KACf,kBAAC,IAAD;GACE,MACE,IAAuB,EAAK,EAAO,QAAW,EAAkB;GAElE,gBAAgB;GAChB,0BAA0B,EAAkB;GAC5C,mBAAmB;GACI;GACV;GACF;EACZ,CAAA,IACC,KAAA;EAKU;EACe;EACN;EACb;EACC;EACP,UAAU;EACV,wBAAwB;GAAE;GAAQ;EAAK;EACvC,mBAAmB;EACnB,oCACE,CAAC,KACD,OAAoB,GAAe,gBACnC,IACI;GACyB;GACvB,kBAAkB,MAAS;EAC7B,IACA,KAAA;EAEN,eACE,GAAuB,SAAS,IAAI,KAAyB,KAAA;EAE9C;EACjB,uBAAuB;EACV;EACQ;EACF;EACF;EACjB,QAAQ;EACa;EACrB,4BAA4B,EAAQ;EACpC,gBACE,kBAAA,GAAA,EAAA,UACG,KACC,kBAAC,IAAD;GAAU,IAAI;aACZ,kBAAC,IAAD;IACE,UAAU;IACV,eAAe;IACf,mBAAmB,EAA4B,EAAK;IACpD,oBAAmB,MAAa;KAC9B,GAAyB,CAAS;IACpC;GACD,CAAA;EACO,CAAA,EAEZ,CAAA;EAEJ,kBAGE,GAAmB,SAAS,YAC5B,GAAmB,UACjB,kBAAC,OAAD;GAAK,OAAO,EAAE,WAAW,OAAO;aAC9B,kBAAC,IAAD;IACE,aAAa,EAAkB,QAAQ;IACvC,WAAW,KAAK,MAAM,CAAiB;IACvC,iBAAiB,EACf,IAAI,EAAE,UAAU,OAAO,EACzB;IACA,eAAe;IACf,UAAU;GACX,CAAA;EACE,CAAA;EAGT,gBACE,kBAAC,GAA6B,UAA9B;GAAuC,OAAO;aAC5C,kBAAC,IAAD;IAAK,IAAI;KAAE,SAAS;KAAQ,KAAK;KAAG,YAAY;IAAS;cAAzD;KACG;KAIA,MACE,KAAkC,CAAC,MAClC,kBAAC,IAAD;MACE,UAAU;MACV,MAAM;MACN,SAAS;MACT,YAAY;MACZ,aAAa;MACb,uBACE,GAA4B,MAAO,CAAC,CAAG;MAEzC,eAAe;KAChB,CAAA;KAGJ,CAAC,KAAiB,KACjB,kBAAC,IAAD;MACE,eAAe,GAA4B,MAAO,CAAC,CAAG;MACtD,SAAQ;MACR,WAAW,kBAAC,IAAD,EAAe,IAAI,EAAE,QAAQ,OAAO,EAAI,CAAA;MACnD,SAAS;gBACV;KAEwB,CAAA;KAE1B,MAAmB,MAClB,kBAAC,IAAD;MACS;MACP,KAAK;MACL,iBAAiB;MACM;KACxB,CAAA;KAEF,MAAsB,KACrB,kBAAC,IAAD,EAAe,GAAI,GAA2B,CAAA;IAE7C;;EACgC,CAAA;CAE1C,CAAA;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"JSONArrayEditor.d.ts","sourceRoot":"","sources":["../../../src/components/JSONArrayEditor/JSONArrayEditor.tsx"],"names":[],"mappings":"AAWA,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAe,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEhE,OAAO,EAAE,GAAG,EAAkC,MAAM,OAAO,CAAA;AAM3D,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC9C,KAAK,CAAC,EAAE,CAAC,EAAE,CAAA;IACX,mBAAmB,CAAC,EAAE,qBAAqB,CAAA;IAC3C,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;IACjC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;IACjC,OAAO,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAA;CAC1D,CAAA;AAYD,iBAAS,eAAe,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,2CA6HnE;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"JSONArrayEditor.d.ts","sourceRoot":"","sources":["../../../src/components/JSONArrayEditor/JSONArrayEditor.tsx"],"names":[],"mappings":"AAYA,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAe,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEhE,OAAO,EAAE,GAAG,EAAkC,MAAM,OAAO,CAAA;AAM3D,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC9C,KAAK,CAAC,EAAE,CAAC,EAAE,CAAA;IACX,mBAAmB,CAAC,EAAE,qBAAqB,CAAA;IAC3C,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;IACjC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;IACjC,OAAO,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAA;CAC1D,CAAA;AAYD,iBAAS,eAAe,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,2CA4HnE;AAED,eAAe,eAAe,CAAA"}