synapse-react-client 4.0.2 → 4.0.4

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 (525) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/assets/icons/AwardScroll.d.ts +5 -0
  3. package/dist/assets/icons/AwardScroll.d.ts.map +1 -0
  4. package/dist/assets/icons/AwardScroll.js +78 -0
  5. package/dist/assets/icons/AwardScroll.js.map +1 -0
  6. package/dist/assets/icons/Baseline.d.ts +5 -0
  7. package/dist/assets/icons/Baseline.d.ts.map +1 -0
  8. package/dist/assets/icons/Baseline.js +43 -0
  9. package/dist/assets/icons/Baseline.js.map +1 -0
  10. package/dist/assets/icons/Challenge.svg +13 -0
  11. package/dist/assets/icons/Challenge.svg.js +7 -0
  12. package/dist/assets/icons/Challenge.svg.js.map +1 -0
  13. package/dist/assets/icons/ClappingHands.d.ts +5 -0
  14. package/dist/assets/icons/ClappingHands.d.ts.map +1 -0
  15. package/dist/assets/icons/ClappingHands.js +106 -0
  16. package/dist/assets/icons/ClappingHands.js.map +1 -0
  17. package/dist/assets/icons/HandWithMoney.d.ts +5 -0
  18. package/dist/assets/icons/HandWithMoney.d.ts.map +1 -0
  19. package/dist/assets/icons/HandWithMoney.js +15 -0
  20. package/dist/assets/icons/HandWithMoney.js.map +1 -0
  21. package/dist/assets/icons/MultiFile.d.ts +5 -0
  22. package/dist/assets/icons/MultiFile.d.ts.map +1 -0
  23. package/dist/assets/icons/MultiFile.js +8 -0
  24. package/dist/assets/icons/MultiFile.js.map +1 -0
  25. package/dist/assets/icons/MultiFile.svg +4 -0
  26. package/dist/assets/icons/MultiFile.svg.js +7 -0
  27. package/dist/assets/icons/MultiFile.svg.js.map +1 -0
  28. package/dist/assets/icons/OpenBook.d.ts +5 -0
  29. package/dist/assets/icons/OpenBook.d.ts.map +1 -0
  30. package/dist/assets/icons/OpenBook.js +99 -0
  31. package/dist/assets/icons/OpenBook.js.map +1 -0
  32. package/dist/assets/icons/Podium.d.ts +5 -0
  33. package/dist/assets/icons/Podium.d.ts.map +1 -0
  34. package/dist/assets/icons/Podium.js +36 -0
  35. package/dist/assets/icons/Podium.js.map +1 -0
  36. package/dist/assets/icons/RosetteRibbon.d.ts +5 -0
  37. package/dist/assets/icons/RosetteRibbon.d.ts.map +1 -0
  38. package/dist/assets/icons/RosetteRibbon.js +36 -0
  39. package/dist/assets/icons/RosetteRibbon.js.map +1 -0
  40. package/dist/assets/icons/StarTrophy.d.ts +5 -0
  41. package/dist/assets/icons/StarTrophy.d.ts.map +1 -0
  42. package/dist/assets/icons/StarTrophy.js +99 -0
  43. package/dist/assets/icons/StarTrophy.js.map +1 -0
  44. package/dist/assets/icons/ThreeStars.d.ts +5 -0
  45. package/dist/assets/icons/ThreeStars.d.ts.map +1 -0
  46. package/dist/assets/icons/ThreeStars.js +71 -0
  47. package/dist/assets/icons/ThreeStars.js.map +1 -0
  48. package/dist/assets/icons/UnpackagableFile.d.ts +5 -0
  49. package/dist/assets/icons/UnpackagableFile.d.ts.map +1 -0
  50. package/dist/assets/icons/UnpackagableFile.js +8 -0
  51. package/dist/assets/icons/UnpackagableFile.js.map +1 -0
  52. package/dist/assets/icons/UnpackagableFile.svg +4 -0
  53. package/dist/assets/icons/UnpackagableFile.svg.js +7 -0
  54. package/dist/assets/icons/UnpackagableFile.svg.js.map +1 -0
  55. package/dist/assets/mui_components/PackagableFile.d.ts.map +1 -1
  56. package/dist/assets/mui_components/PackagableFile.js +5 -4
  57. package/dist/assets/mui_components/PackagableFile.js.map +1 -1
  58. package/dist/assets/mui_components/PackagableFile.svg +3 -0
  59. package/dist/assets/mui_components/PackagableFile.svg.js +7 -0
  60. package/dist/assets/mui_components/PackagableFile.svg.js.map +1 -0
  61. package/dist/assets/themed_icons/index.d.ts +1 -2
  62. package/dist/assets/themed_icons/index.d.ts.map +1 -1
  63. package/dist/assets/themed_icons/index.js +8 -10
  64. package/dist/assets/themed_icons/index.js.map +1 -1
  65. package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js +1 -1
  66. package/dist/components/AccessRequirementList/AccessRequirementList.js +4 -4
  67. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.d.ts.map +1 -1
  68. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js +8 -7
  69. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
  70. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js +4 -4
  71. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js +11 -11
  72. package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js +1 -1
  73. package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js +9 -9
  74. package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js +5 -5
  75. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.d.ts.map +1 -1
  76. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +36 -35
  77. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  78. package/dist/components/AclEditor/AclEditor.js +8 -8
  79. package/dist/components/AclEditor/AclEditor.js.map +1 -1
  80. package/dist/components/AclEditor/AclEditor.test-utils.js +34 -34
  81. package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
  82. package/dist/components/AddToDownloadListV2.js +10 -10
  83. package/dist/components/AddToDownloadListV2.js.map +1 -1
  84. package/dist/components/Authentication/AuthenticationMethodSelection.js +1 -1
  85. package/dist/components/Authentication/TwoFactorEnrollmentForm.d.ts.map +1 -1
  86. package/dist/components/Authentication/TwoFactorEnrollmentForm.js +6 -5
  87. package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
  88. package/dist/components/BasePortalCard/BasePortalCard.css +1 -1
  89. package/dist/components/BasePortalCard/BasePortalCard.d.ts +1 -2
  90. package/dist/components/BasePortalCard/BasePortalCard.d.ts.map +1 -1
  91. package/dist/components/BasePortalCard/BasePortalCard.js +21 -28
  92. package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
  93. package/dist/components/BasePortalCard/BasePortalCard.module.scss +13 -1
  94. package/dist/components/BasePortalCard/BasePortalCard.module.scss.js +11 -11
  95. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.css +1 -1
  96. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.d.ts.map +1 -1
  97. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js +25 -25
  98. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
  99. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.module.scss +13 -5
  100. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.module.scss.js +5 -5
  101. package/dist/components/CardContainer/CardLink.d.ts +12 -0
  102. package/dist/components/CardContainer/CardLink.d.ts.map +1 -1
  103. package/dist/components/CardContainerLogic/CardContainerLogic.d.ts +5 -1
  104. package/dist/components/CardContainerLogic/CardContainerLogic.d.ts.map +1 -1
  105. package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
  106. package/dist/components/CardContainerLogic/index.d.ts +1 -1
  107. package/dist/components/CardContainerLogic/index.d.ts.map +1 -1
  108. package/dist/components/CardDeck/TableQueryCardDeck.js +12 -9
  109. package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
  110. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js +33 -33
  111. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
  112. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js +12 -12
  113. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.d.ts.map +1 -1
  114. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js +7 -7
  115. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
  116. package/dist/components/ChangePassword/useChangePasswordFormState.js +5 -2
  117. package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
  118. package/dist/components/CitationPopover/CitationPopoverContent.d.ts.map +1 -1
  119. package/dist/components/CitationPopover/CitationPopoverContent.js +13 -12
  120. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  121. package/dist/components/ComponentCollapse.d.ts +6 -10
  122. package/dist/components/ComponentCollapse.d.ts.map +1 -1
  123. package/dist/components/ComponentCollapse.js +31 -35
  124. package/dist/components/ComponentCollapse.js.map +1 -1
  125. package/dist/components/CookiesNotification/CookiesNotification.js +1 -1
  126. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js +12 -10
  127. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  128. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js +10 -5
  129. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
  130. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  131. package/dist/components/DataGrid/SynapseGrid.js +43 -38
  132. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  133. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +10 -5
  134. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
  135. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.d.ts.map +1 -1
  136. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js +9 -7
  137. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
  138. package/dist/components/DirectDownload/DirectDownload.d.ts.map +1 -1
  139. package/dist/components/DirectDownload/DirectDownload.js +23 -23
  140. package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
  141. package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js +1 -1
  142. package/dist/components/DownloadCart/AvailableForDownloadTable.d.ts +6 -2
  143. package/dist/components/DownloadCart/AvailableForDownloadTable.d.ts.map +1 -1
  144. package/dist/components/DownloadCart/AvailableForDownloadTable.js +10 -8
  145. package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
  146. package/dist/components/DownloadCart/CreatePackageV2.css +1 -0
  147. package/dist/components/DownloadCart/CreatePackageV2.d.ts.map +1 -1
  148. package/dist/components/DownloadCart/CreatePackageV2.js +50 -46
  149. package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
  150. package/dist/components/DownloadCart/CreatePackageV2.module.scss +38 -0
  151. package/dist/components/DownloadCart/CreatePackageV2.module.scss.js +14 -0
  152. package/dist/components/DownloadCart/CreatePackageV2.module.scss.js.map +1 -0
  153. package/dist/components/DownloadCart/DownloadCartPage.css +1 -0
  154. package/dist/components/DownloadCart/DownloadCartPage.d.ts.map +1 -1
  155. package/dist/components/DownloadCart/DownloadCartPage.js +316 -186
  156. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  157. package/dist/components/DownloadCart/DownloadCartPage.module.scss +217 -0
  158. package/dist/components/DownloadCart/DownloadCartPage.module.scss.js +48 -0
  159. package/dist/components/DownloadCart/DownloadCartPage.module.scss.js.map +1 -0
  160. package/dist/components/DownloadCart/DownloadDetails.js +1 -1
  161. package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
  162. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +33 -33
  163. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  164. package/dist/components/DownloadCart/DownloadListTable.d.ts +4 -1
  165. package/dist/components/DownloadCart/DownloadListTable.d.ts.map +1 -1
  166. package/dist/components/DownloadCart/DownloadListTable.js +156 -236
  167. package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
  168. package/dist/components/DownloadCart/RequestDownloadCard.js +1 -1
  169. package/dist/components/DownloadCart/ShowDownloadV2.js +5 -5
  170. package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
  171. package/dist/components/Ecosystem/EcosystemSkeleton.js +10 -5
  172. package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
  173. package/dist/components/Ecosystem/TableQueryEcosystem.js +1 -1
  174. package/dist/components/EntityAclEditor/EntityAclEditorModal.js +1 -1
  175. package/dist/components/EntityAclEditor/OpenData.js +1 -1
  176. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
  177. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +113 -127
  178. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  179. package/dist/components/EntityCitation/EntityCitation.js +1 -1
  180. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +20 -20
  181. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  182. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +4 -4
  183. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
  184. package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js +1 -1
  185. package/dist/components/EntityFinder/details/view/table/EntityNameCell.js +1 -1
  186. package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js +1 -1
  187. package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js +1 -1
  188. package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js +1 -1
  189. package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js +1 -1
  190. package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js +1 -1
  191. package/dist/components/EntityFinder/tree/EntityTree.js +1 -1
  192. package/dist/components/EntityHeaderTable/EntityHeaderTable.d.ts.map +1 -1
  193. package/dist/components/EntityHeaderTable/EntityHeaderTable.js +39 -39
  194. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  195. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.d.ts +8 -0
  196. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.d.ts.map +1 -0
  197. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js +46 -0
  198. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -0
  199. package/dist/components/Evaluation/EvaluationCard.d.ts.map +1 -1
  200. package/dist/components/Evaluation/EvaluationCard.js +35 -41
  201. package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
  202. package/dist/components/Evaluation/EvaluationEditor.d.ts.map +1 -1
  203. package/dist/components/Evaluation/EvaluationEditor.js +95 -90
  204. package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
  205. package/dist/components/Evaluation/EvaluationRoundEditor.d.ts.map +1 -1
  206. package/dist/components/Evaluation/EvaluationRoundEditor.js +133 -124
  207. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  208. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +6 -2
  209. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  210. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js +11 -8
  211. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
  212. package/dist/components/FilePreview/EntityPreview.js +1 -1
  213. package/dist/components/Forum/DiscussionReply.js +10 -10
  214. package/dist/components/Forum/DiscussionThread.js +21 -21
  215. package/dist/components/FullWidthAlert/FullWidthAlert.d.ts +2 -2
  216. package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
  217. package/dist/components/GenericCard/CardUtils.d.ts.map +1 -1
  218. package/dist/components/GenericCard/CardUtils.js +36 -36
  219. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  220. package/dist/components/GenericCard/CollapsibleDescription.js +25 -25
  221. package/dist/components/GenericCard/GenericCard.d.ts +5 -5
  222. package/dist/components/GenericCard/GenericCard.d.ts.map +1 -1
  223. package/dist/components/GenericCard/GenericCard.js +117 -103
  224. package/dist/components/GenericCard/GenericCard.js.map +1 -1
  225. package/dist/components/GenericCard/LabelMaybeWithIcon.d.ts +10 -0
  226. package/dist/components/GenericCard/LabelMaybeWithIcon.d.ts.map +1 -0
  227. package/dist/components/GenericCard/LabelMaybeWithIcon.js +33 -0
  228. package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -0
  229. package/dist/components/GenericCard/SynapseCardLabel.d.ts +2 -1
  230. package/dist/components/GenericCard/SynapseCardLabel.d.ts.map +1 -1
  231. package/dist/components/GenericCard/SynapseCardLabel.js +95 -85
  232. package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
  233. package/dist/components/GenericCard/TableRowGenericCard.d.ts +10 -1
  234. package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
  235. package/dist/components/GenericCard/TableRowGenericCard.js +248 -209
  236. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  237. package/dist/components/GoalsV2/GoalsV2.Desktop.d.ts.map +1 -1
  238. package/dist/components/GoalsV2/GoalsV2.Desktop.js +14 -15
  239. package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
  240. package/dist/components/GoogleAnalytics/GoogleAnalytics.js +1 -1
  241. package/dist/components/HasAccess/HasAccessV2.js +1 -1
  242. package/dist/components/HasAccess/useHasAccess.js +1 -1
  243. package/dist/components/HeaderCard.js +17 -13
  244. package/dist/components/HeaderCard.js.map +1 -1
  245. package/dist/components/IDUReport/IDUReportSubmissionInfo.js +23 -23
  246. package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
  247. package/dist/components/Icon/Icon.js +52 -52
  248. package/dist/components/Icon/Icon.js.map +1 -1
  249. package/dist/components/IconSvg/IconSvg.d.ts +1 -1
  250. package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
  251. package/dist/components/IconSvg/IconSvg.js +215 -171
  252. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  253. package/dist/components/JSONArrayEditor/useParseCsv.d.ts +1 -1
  254. package/dist/components/JSONArrayEditor/useParseCsv.d.ts.map +1 -1
  255. package/dist/components/JSONArrayEditor/useParseCsv.js +9 -9
  256. package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
  257. package/dist/components/Markdown/MarkdownCollapse.js +7 -7
  258. package/dist/components/Markdown/MarkdownEditor.js +11 -11
  259. package/dist/components/Markdown/MarkdownGithub.js +1 -1
  260. package/dist/components/Markdown/MarkdownPopover.js +6 -6
  261. package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
  262. package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
  263. package/dist/components/Markdown/MarkdownSynapse.js +139 -135
  264. package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
  265. package/dist/components/Markdown/MarkdownUtils.d.ts +8 -0
  266. package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
  267. package/dist/components/Markdown/MarkdownUtils.js +139 -65
  268. package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
  269. package/dist/components/Markdown/UserMentionModal.js +18 -18
  270. package/dist/components/Markdown/UserMentionModal.js.map +1 -1
  271. package/dist/components/Markdown/widget/MarkdownButton.js +3 -3
  272. package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
  273. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.d.ts.map +1 -1
  274. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js +9 -8
  275. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  276. package/dist/components/Plot/SynapsePlot.css +1 -0
  277. package/dist/components/Plot/SynapsePlot.d.ts +2 -0
  278. package/dist/components/Plot/SynapsePlot.d.ts.map +1 -1
  279. package/dist/components/Plot/SynapsePlot.js +43 -39
  280. package/dist/components/Plot/SynapsePlot.js.map +1 -1
  281. package/dist/components/Plot/SynapsePlot.scss +8 -0
  282. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +1 -1
  283. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -0
  284. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  285. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +137 -135
  286. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  287. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.d.ts +1 -1
  288. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.d.ts.map +1 -1
  289. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
  290. package/dist/components/Resources/Resources.Desktop.js +7 -7
  291. package/dist/components/Resources/Resources.Mobile.js +6 -6
  292. package/dist/components/StorybookComponentWrapper.js +6 -3
  293. package/dist/components/StorybookComponentWrapper.js.map +1 -1
  294. package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js +3 -3
  295. package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js +10 -10
  296. package/dist/components/SynapseChat/SynapseChat.d.ts +7 -1
  297. package/dist/components/SynapseChat/SynapseChat.d.ts.map +1 -1
  298. package/dist/components/SynapseChat/SynapseChat.js +76 -67
  299. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  300. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts +2 -1
  301. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
  302. package/dist/components/SynapseChat/SynapseChatInteraction.js +83 -58
  303. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  304. package/dist/components/SynapseChat/SynapseChatMessage.d.ts +1 -0
  305. package/dist/components/SynapseChat/SynapseChatMessage.d.ts.map +1 -1
  306. package/dist/components/SynapseChat/SynapseChatMessage.js +16 -15
  307. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  308. package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts +12 -0
  309. package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts.map +1 -0
  310. package/dist/components/SynapseChat/SynapsePortalChatDialog.js +30 -0
  311. package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -0
  312. package/dist/components/SynapseChat/extractMessageFromTraceEvent.d.ts.map +1 -1
  313. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js +22 -16
  314. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
  315. package/dist/components/SynapseChat/index.d.ts +2 -0
  316. package/dist/components/SynapseChat/index.d.ts.map +1 -1
  317. package/dist/components/SynapseChat/index.js +5 -3
  318. package/dist/components/SynapseChat/index.js.map +1 -1
  319. package/dist/components/SynapseChat/useChatState.d.ts +1 -1
  320. package/dist/components/SynapseChat/useChatState.d.ts.map +1 -1
  321. package/dist/components/SynapseChat/useChatState.js +10 -7
  322. package/dist/components/SynapseChat/useChatState.js.map +1 -1
  323. package/dist/components/SynapseForm/WarningDialog.d.ts +1 -0
  324. package/dist/components/SynapseForm/WarningDialog.d.ts.map +1 -1
  325. package/dist/components/SynapseForm/WarningDialog.js +18 -16
  326. package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
  327. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js +1 -1
  328. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +25 -25
  329. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  330. package/dist/components/SynapseSearchPageResults/HasAccessChip.js +1 -1
  331. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.d.ts.map +1 -1
  332. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js +12 -13
  333. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
  334. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +5 -5
  335. package/dist/components/SynapseTable/ExpandableTableDataCell.d.ts.map +1 -1
  336. package/dist/components/SynapseTable/ExpandableTableDataCell.js +3 -1
  337. package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
  338. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +13 -13
  339. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  340. package/dist/components/SynapseTable/SynapseTable.js +4 -4
  341. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.d.ts.map +1 -1
  342. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js +122 -122
  343. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
  344. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js +9 -9
  345. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
  346. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +5 -5
  347. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +1 -1
  348. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js +1 -1
  349. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +1 -1
  350. package/dist/components/TableFeedCards/TableFeedCards.js +9 -9
  351. package/dist/components/TermsAndConditions/TermsAndConditionsItem.js +10 -10
  352. package/dist/components/TextToComponentCollapse.d.ts +16 -0
  353. package/dist/components/TextToComponentCollapse.d.ts.map +1 -0
  354. package/dist/components/TextToComponentCollapse.js +29 -0
  355. package/dist/components/TextToComponentCollapse.js.map +1 -0
  356. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js +9 -9
  357. package/dist/components/UserSearchBox/UserSearchBox.d.ts +23 -0
  358. package/dist/components/UserSearchBox/UserSearchBox.d.ts.map +1 -0
  359. package/dist/components/UserSearchBox/UserSearchBox.js +146 -0
  360. package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -0
  361. package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js +13 -13
  362. package/dist/components/WizardChoiceButton/WizardChoiceButton.js +3 -3
  363. package/dist/components/dataaccess/AccessHistoryDashboard.js +5 -5
  364. package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
  365. package/dist/components/dataaccess/AccessRequirementDashboard.js +4 -4
  366. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  367. package/dist/components/dataaccess/AccessSubmissionDashboard.js +1 -1
  368. package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
  369. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +5 -5
  370. package/dist/components/dataaccess/UseAccessRequirementTable.js +3 -3
  371. package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
  372. package/dist/components/doi/CreateOrUpdateDoiModal.js +1 -1
  373. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js +10 -5
  374. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
  375. package/dist/components/download_list/DownloadConfirmationUI.d.ts +1 -1
  376. package/dist/components/download_list/DownloadConfirmationUI.js +22 -22
  377. package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
  378. package/dist/components/download_list/DownloadConfirmationUtils.js +4 -4
  379. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  380. package/dist/components/entity/metadata/EntityModal.js +1 -1
  381. package/dist/components/entity/metadata/MetadataTable.js +1 -1
  382. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js +1 -1
  383. package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js +1 -1
  384. package/dist/components/entity/page/title_bar/TitleBarProperties.js +1 -1
  385. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.d.ts.map +1 -1
  386. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +27 -26
  387. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  388. package/dist/components/index.js +125 -121
  389. package/dist/components/index.js.map +1 -1
  390. package/dist/components/layout/InfiniteTableLayout.js +1 -1
  391. package/dist/components/row_renderers/ObservationCard.js +12 -11
  392. package/dist/components/row_renderers/ObservationCard.js.map +1 -1
  393. package/dist/components/row_renderers/utils/CardFooter.d.ts +1 -3
  394. package/dist/components/row_renderers/utils/CardFooter.d.ts.map +1 -1
  395. package/dist/components/row_renderers/utils/CardFooter.js +31 -45
  396. package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
  397. package/dist/components/styled/HoverPopover.css +1 -0
  398. package/dist/components/styled/HoverPopover.d.ts +28 -0
  399. package/dist/components/styled/HoverPopover.d.ts.map +1 -0
  400. package/dist/components/styled/HoverPopover.js +103 -0
  401. package/dist/components/styled/HoverPopover.js.map +1 -0
  402. package/dist/components/styled/HoverPopover.module.scss +9 -0
  403. package/dist/components/styled/HoverPopover.module.scss.js +10 -0
  404. package/dist/components/styled/HoverPopover.module.scss.js.map +1 -0
  405. package/dist/components/styled/index.d.ts +2 -0
  406. package/dist/components/styled/index.d.ts.map +1 -1
  407. package/dist/components/styled/index.js +11 -9
  408. package/dist/components/styled/index.js.map +1 -1
  409. package/dist/components/table/CsvPreview/CsvPreview.js +10 -5
  410. package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
  411. package/dist/components/table/CsvPreview/CsvPreviewDialog.js +10 -5
  412. package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
  413. package/dist/components/widgets/Range.js +1 -1
  414. package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
  415. package/dist/components/widgets/facet-nav/FacetNavPanel.js +35 -32
  416. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  417. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts +1 -1
  418. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts.map +1 -1
  419. package/dist/components/widgets/facet-nav/PlotsContainer.js +69 -68
  420. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  421. package/dist/components/widgets/facet-nav/useFacetPlots.d.ts.map +1 -1
  422. package/dist/components/widgets/facet-nav/useFacetPlots.js +24 -21
  423. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  424. package/dist/components/widgets/query-filter/FacetFilterControls.js +3 -3
  425. package/dist/features/curator/GridPage/GridPage.js +10 -5
  426. package/dist/features/curator/GridPage/GridPage.js.map +1 -1
  427. package/dist/features/curator/GridPage/components/GridPageTitle.js +10 -5
  428. package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
  429. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
  430. package/dist/index.js +155 -151
  431. package/dist/index.js.map +1 -1
  432. package/dist/mocks/msw/handlers/accessRequirementHandlers.js +5 -5
  433. package/dist/mocks/msw/handlers/projectStorageHandlers.js +5 -5
  434. package/dist/mocks/msw/handlers/wikiHandlers.js +1 -1
  435. package/dist/mocks/msw/handlers.d.ts.map +1 -1
  436. package/dist/mocks/msw/handlers.js +67 -59
  437. package/dist/mocks/msw/handlers.js.map +1 -1
  438. package/dist/style/base/_core.scss +0 -1
  439. package/dist/style/components/_all.scss +0 -2
  440. package/dist/style/components/_cards.scss +22 -0
  441. package/dist/style/components/_download-list-v2.scss +1 -1
  442. package/dist/style/components/_entity-badge.scss +0 -2
  443. package/dist/style/components/_expandable_table_data.scss +3 -3
  444. package/dist/style/components/_query-wrapper-plot-nav.scss +13 -0
  445. package/dist/style/components/facet_nav/_facet-nav-panel.scss +3 -0
  446. package/dist/style/components/facet_nav/_facet-nav.scss +4 -0
  447. package/dist/style/main.css +1 -1
  448. package/dist/synapse-client/SynapseClient.js +118 -118
  449. package/dist/synapse-client/SynapseClient.js.map +1 -1
  450. package/dist/synapse-queries/auth/useOIDC.js +1 -1
  451. package/dist/synapse-queries/auth/useTwoFactorEnrollment.js +1 -1
  452. package/dist/synapse-queries/entity/index.js +6 -6
  453. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js +1 -1
  454. package/dist/synapse-queries/index.js +1 -1
  455. package/dist/synapse-queries/user/usePersonalAccessToken.js +1 -1
  456. package/dist/testutils/vitest.setup.js +10 -11
  457. package/dist/testutils/vitest.setup.js.map +1 -1
  458. package/dist/theme/DefaultTheme.js +1 -1
  459. package/dist/theme/ThemeProvider.d.ts +2 -1
  460. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  461. package/dist/theme/ThemeProvider.js +11 -10
  462. package/dist/theme/ThemeProvider.js.map +1 -1
  463. package/dist/theme/index.js +1 -1
  464. package/dist/theme/mergeTheme.js +1 -1
  465. package/dist/tsconfig.build.tsbuildinfo +1 -1
  466. package/dist/utils/AppUtils/AppUtils.js +1 -1
  467. package/dist/utils/AppUtils/session/ApplicationSessionManager.d.ts.map +1 -1
  468. package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
  469. package/dist/utils/context/FullContextProvider.js +9 -9
  470. package/dist/utils/context/FullContextProvider.js.map +1 -1
  471. package/dist/utils/context/SynapseContext.d.ts.map +1 -1
  472. package/dist/utils/context/SynapseContext.js +1 -0
  473. package/dist/utils/context/SynapseContext.js.map +1 -1
  474. package/dist/utils/functions/SanitizeHtmlUtils.d.ts.map +1 -1
  475. package/dist/utils/functions/SanitizeHtmlUtils.js +34 -40
  476. package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
  477. package/dist/utils/functions/SqlFunctions.d.ts +4 -0
  478. package/dist/utils/functions/SqlFunctions.d.ts.map +1 -1
  479. package/dist/utils/functions/SqlFunctions.js +25 -23
  480. package/dist/utils/functions/SqlFunctions.js.map +1 -1
  481. package/dist/utils/functions/deepLinkingUtils.js +10 -10
  482. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  483. package/dist/utils/hooks/index.js +6 -6
  484. package/dist/utils/hooks/useDetectSSOCode.js +3 -3
  485. package/dist/utils/hooks/useGetEntityMetadata.js +1 -1
  486. package/dist/utils/hooks/useNativeSearchParams.d.ts.map +1 -1
  487. package/dist/utils/hooks/useNativeSearchParams.js +1 -1
  488. package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
  489. package/dist/utils/hooks/useOneSageURL.d.ts.map +1 -1
  490. package/dist/utils/hooks/useOneSageURL.js +15 -15
  491. package/dist/utils/hooks/useOneSageURL.js.map +1 -1
  492. package/dist/utils/hooks/useSourceAppConfigs.d.ts +1 -0
  493. package/dist/utils/hooks/useSourceAppConfigs.d.ts.map +1 -1
  494. package/dist/utils/hooks/useSourceAppConfigs.js +79 -77
  495. package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
  496. package/dist/utils/index.js +4 -4
  497. package/package.json +15 -16
  498. package/dist/_virtual/index.js +0 -6
  499. package/dist/_virtual/index.js.map +0 -1
  500. package/dist/_virtual/index2.js +0 -5
  501. package/dist/_virtual/index2.js.map +0 -1
  502. package/dist/_virtual/index3.js +0 -5
  503. package/dist/_virtual/index3.js.map +0 -1
  504. package/dist/_virtual/index4.js +0 -5
  505. package/dist/_virtual/index4.js.map +0 -1
  506. package/dist/_virtual/index5.js +0 -5
  507. package/dist/_virtual/index5.js.map +0 -1
  508. package/dist/assets/themed_icons/Challenge.d.ts +0 -3
  509. package/dist/assets/themed_icons/Challenge.d.ts.map +0 -1
  510. package/dist/assets/themed_icons/Challenge.js +0 -25
  511. package/dist/assets/themed_icons/Challenge.js.map +0 -1
  512. package/dist/components/UserSearchBox/UserSearchBoxV2.d.ts +0 -21
  513. package/dist/components/UserSearchBox/UserSearchBoxV2.d.ts.map +0 -1
  514. package/dist/components/UserSearchBox/UserSearchBoxV2.js +0 -144
  515. package/dist/components/UserSearchBox/UserSearchBoxV2.js.map +0 -1
  516. package/dist/node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js +0 -53
  517. package/dist/node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js.map +0 -1
  518. package/dist/node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js +0 -948
  519. package/dist/node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js.map +0 -1
  520. package/dist/node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js +0 -30
  521. package/dist/node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js.map +0 -1
  522. package/dist/node_modules/.pnpm/vite-plugin-node-polyfills@0.17.0_rollup@4.55.1_vite@7.3.1_@types_node@22.19.13_sass@1._2da6e8f78437c36f3eb7db51bdd4d89e/node_modules/vite-plugin-node-polyfills/shims/dist/index.js +0 -15
  523. package/dist/node_modules/.pnpm/vite-plugin-node-polyfills@0.17.0_rollup@4.55.1_vite@7.3.1_@types_node@22.19.13_sass@1._2da6e8f78437c36f3eb7db51bdd4d89e/node_modules/vite-plugin-node-polyfills/shims/dist/index.js.map +0 -1
  524. package/dist/style/components/_download-cart-page.scss +0 -204
  525. package/dist/style/components/_user-search-box.scss +0 -30
@@ -33,7 +33,7 @@ import "../../utils/types/IsType.js";
33
33
  import { useGetCurrentUserBundle as F } from "../../synapse-queries/user/useUserBundle.js";
34
34
  import p from "@mui/material/Grid";
35
35
  import B from "../UserOrTeamBadge/UserOrTeamBadge.js";
36
- import L from "../UserSearchBox/UserSearchBoxV2.js";
36
+ import L from "../UserSearchBox/UserSearchBox.js";
37
37
  import { AccessApprovalsTable as _ } from "./AccessApprovalsTable.js";
38
38
  import { AccessRequestSubmissionTable as D } from "./AccessRequestSubmissionTable.js";
39
39
  import z from "./AccessRequirementSearchBox/AccessRequirementSearchBox.js";
@@ -44,12 +44,12 @@ const G = () => /* @__PURE__ */ t("div", { className: "text-center", children: [
44
44
  const [a, l] = c(), [r, n] = c(""), [f, S] = c({
45
45
  accessorId: r,
46
46
  accessRequirementId: a
47
- }), [b, g] = c({
47
+ }), [b, v] = c({
48
48
  showStatus: !0,
49
49
  showSubmitter: !0,
50
50
  accessorId: r,
51
51
  accessRequirementId: a
52
- }), { data: v } = F(), I = v?.isACTMember, o = E(), h = w(), P = 500, A = q((i) => {
52
+ }), { data: g } = F(), I = g?.isACTMember, o = E(), h = w(), P = 500, A = q((i) => {
53
53
  n(i || "");
54
54
  }, []);
55
55
  return C(() => {
@@ -81,7 +81,7 @@ const G = () => /* @__PURE__ */ t("div", { className: "text-center", children: [
81
81
  })(a, r), S({
82
82
  accessorId: r,
83
83
  accessRequirementId: a
84
- }), g({
84
+ }), v({
85
85
  showStatus: !0,
86
86
  showSubmitter: !0,
87
87
  accessorId: r,
@@ -107,7 +107,7 @@ const G = () => /* @__PURE__ */ t("div", { className: "text-center", children: [
107
107
  {
108
108
  inputId: "user-filter",
109
109
  onChange: A,
110
- defaultValue: r,
110
+ value: r,
111
111
  placeholder: "Search for a user name",
112
112
  typeFilter: y.USERS_ONLY
113
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccessHistoryDashboard.js","sources":["../../../src/components/dataaccess/AccessHistoryDashboard.tsx"],"sourcesContent":["import React from 'react'\nimport SearchImage from '@/assets/icons/SearchImage'\nimport { useGetCurrentUserBundle } from '@/synapse-queries'\nimport { useDebouncedEffect } from '@/utils/hooks/useDebouncedEffect'\nimport { Typography } from '@mui/material'\nimport Grid from '@mui/material/Grid'\nimport { TYPE_FILTER } from '@sage-bionetworks/synapse-types'\nimport { omitBy } from 'lodash-es'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useLocation, useNavigate } from 'react-router'\nimport UserOrTeamBadge from '../UserOrTeamBadge/UserOrTeamBadge'\nimport UserSearchBoxV2 from '../UserSearchBox/UserSearchBoxV2'\nimport {\n AccessApprovalsTable,\n AccessApprovalsTableProps,\n} from './AccessApprovalsTable'\nimport {\n AccessRequestSubmissionTable,\n AccessRequestSubmissionTableProps,\n} from './AccessRequestSubmissionTable'\nimport AccessRequirementSearchBox from './AccessRequirementSearchBox/AccessRequirementSearchBox'\n\nconst SearchStartComponent = (): React.ReactNode => {\n return (\n <div className=\"text-center\">\n <SearchImage className=\"SearchPlaceholderImage\" height=\"167px\" />\n <Typography variant=\"body1Italic\">\n Select a user using the search field above to view their data access\n history\n </Typography>\n </div>\n )\n}\n\nexport const UserHistoryDashboard = (): React.ReactNode => {\n const [accessRequirementId, setAccessRequirementId] = useState<\n string | undefined\n >()\n const [accessorId, setAccessorId] = useState<string>('')\n const [approvalTableProps, setApprovalTableProps] =\n useState<AccessApprovalsTableProps>({\n accessorId,\n accessRequirementId,\n })\n const [submissionTableProps, setSubmissionTableProps] =\n useState<AccessRequestSubmissionTableProps>({\n showStatus: true,\n showSubmitter: true,\n accessorId,\n accessRequirementId,\n })\n\n const { data: userBundle } = useGetCurrentUserBundle()\n const hasActPermissions = userBundle?.isACTMember\n\n const location = useLocation()\n const navigate = useNavigate()\n const INPUT_CHANGE_DEBOUNCE_DELAY_MS = 500\n\n const onAccessorChange = useCallback((selected: string | null) => {\n if (selected) {\n setAccessorId(selected)\n } else {\n setAccessorId('')\n }\n }, [])\n\n useEffect(() => {\n const initializeFromSearchParam = () => {\n const initialParams = new URLSearchParams(location.search)\n setAccessRequirementId(\n initialParams.get('accessRequirementId') ?? undefined,\n )\n setAccessorId(initialParams.get('accessorId') ?? '')\n }\n initializeFromSearchParam()\n }, [location.search])\n\n useDebouncedEffect(\n () => {\n const updateQueryParams = (\n accessRequirementId: string | undefined,\n accessorId: string,\n ) => {\n const params = new URLSearchParams(\n omitBy(\n {\n accessRequirementId,\n accessorId,\n },\n item => item === undefined || item === '',\n ) as Record<string, string>,\n )\n navigate(\n {\n pathname: location.pathname,\n search: params.toString(),\n },\n { replace: true },\n )\n }\n\n updateQueryParams(accessRequirementId, accessorId)\n setApprovalTableProps({\n accessorId,\n accessRequirementId,\n })\n setSubmissionTableProps({\n showStatus: true,\n showSubmitter: true,\n accessorId,\n accessRequirementId,\n })\n },\n [accessRequirementId, accessorId, navigate, location.pathname],\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n\n return (\n <div className=\"UserHistoryDashboard\">\n <Grid container spacing={2} className=\"InputPanel\">\n <Grid size={{ xs: 12, md: 6 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"user-filter\"\n >\n Select a user to view their access history\n </Typography>\n <UserSearchBoxV2\n inputId=\"user-filter\"\n onChange={onAccessorChange}\n defaultValue={accessorId}\n placeholder=\"Search for a user name\"\n typeFilter={TYPE_FILTER.USERS_ONLY}\n />\n </Grid>\n\n {accessorId && (\n <Grid size={{ xs: 12, md: 6 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"arName-filter\"\n >\n Filter by Access Requirement Name\n </Typography>\n <AccessRequirementSearchBox\n inputId=\"arName-filter\"\n placeholder=\"Search for an Access Requirement Name \"\n onChange={setAccessRequirementId}\n />\n </Grid>\n )}\n </Grid>\n\n {accessorId ? (\n <>\n <Typography variant=\"headline3\">\n Submissions including <UserOrTeamBadge principalId={accessorId} />\n </Typography>\n <AccessRequestSubmissionTable {...submissionTableProps} />\n {hasActPermissions && (\n <>\n <Typography variant=\"headline3\">\n Status in Access Requirements\n </Typography>\n <AccessApprovalsTable {...approvalTableProps} />\n </>\n )}\n </>\n ) : (\n <SearchStartComponent />\n )}\n </div>\n )\n}\n"],"names":["SearchStartComponent","jsxs","jsx","SearchImage","Typography","UserHistoryDashboard","accessRequirementId","setAccessRequirementId","useState","accessorId","setAccessorId","approvalTableProps","setApprovalTableProps","submissionTableProps","setSubmissionTableProps","userBundle","useGetCurrentUserBundle","hasActPermissions","location","useLocation","navigate","useNavigate","INPUT_CHANGE_DEBOUNCE_DELAY_MS","onAccessorChange","useCallback","selected","useEffect","initialParams","useDebouncedEffect","params","omitBy","item","Grid","UserSearchBoxV2","TYPE_FILTER","AccessRequirementSearchBox","Fragment","UserOrTeamBadge","AccessRequestSubmissionTable","AccessApprovalsTable"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAMA,IAAuB,MAEzB,gBAAAC,EAAC,OAAA,EAAI,WAAU,eACb,UAAA;AAAA,EAAA,gBAAAC,EAACC,GAAA,EAAY,WAAU,0BAAyB,QAAO,SAAQ;AAAA,EAC/D,gBAAAD,EAACE,GAAA,EAAW,SAAQ,eAAc,UAAA,+EAAA,CAGlC;AAAA,GACF,GAISC,KAAuB,MAAuB;AACzD,QAAM,CAACC,GAAqBC,CAAsB,IAAIC,EAAA,GAGhD,CAACC,GAAYC,CAAa,IAAIF,EAAiB,EAAE,GACjD,CAACG,GAAoBC,CAAqB,IAC9CJ,EAAoC;AAAA,IAClC,YAAAC;AAAA,IACA,qBAAAH;AAAA,EAAA,CACD,GACG,CAACO,GAAsBC,CAAuB,IAClDN,EAA4C;AAAA,IAC1C,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,YAAAC;AAAA,IACA,qBAAAH;AAAA,EAAA,CACD,GAEG,EAAE,MAAMS,EAAA,IAAeC,EAAA,GACvBC,IAAoBF,GAAY,aAEhCG,IAAWC,EAAA,GACXC,IAAWC,EAAA,GACXC,IAAiC,KAEjCC,IAAmBC,EAAY,CAACC,MAA4B;AAChE,IACEf,EADEe,KAGY,EAFQ;AAAA,EAI1B,GAAG,CAAA,CAAE;AAEL,SAAAC,EAAU,MAAM;AAQd,KAPkC,MAAM;AACtC,YAAMC,IAAgB,IAAI,gBAAgBT,EAAS,MAAM;AACzD,MAAAX;AAAA,QACEoB,EAAc,IAAI,qBAAqB,KAAK;AAAA,MAAA,GAE9CjB,EAAciB,EAAc,IAAI,YAAY,KAAK,EAAE;AAAA,IACrD,GACA;AAAA,EACF,GAAG,CAACT,EAAS,MAAM,CAAC,GAEpBU;AAAA,IACE,MAAM;AAuBJ,OAtB0B,CACxBtB,GACAG,MACG;AACH,cAAMoB,IAAS,IAAI;AAAA,UACjBC;AAAA,YACE;AAAA,cACE,qBAAAxB;AAAAA,cACA,YAAAG;AAAAA,YAAA;AAAA,YAEF,CAAAsB,MAAQA,MAAS,UAAaA,MAAS;AAAA,UAAA;AAAA,QACzC;AAEF,QAAAX;AAAA,UACE;AAAA,YACE,UAAUF,EAAS;AAAA,YACnB,QAAQW,EAAO,SAAA;AAAA,UAAS;AAAA,UAE1B,EAAE,SAAS,GAAA;AAAA,QAAK;AAAA,MAEpB,GAEkBvB,GAAqBG,CAAU,GACjDG,EAAsB;AAAA,QACpB,YAAAH;AAAA,QACA,qBAAAH;AAAA,MAAA,CACD,GACDQ,EAAwB;AAAA,QACtB,YAAY;AAAA,QACZ,eAAe;AAAA,QACf,YAAAL;AAAA,QACA,qBAAAH;AAAA,MAAA,CACD;AAAA,IACH;AAAA,IACA,CAACA,GAAqBG,GAAYW,GAAUF,EAAS,QAAQ;AAAA,IAC7DI;AAAA,EAAA,GAIA,gBAAArB,EAAC,OAAA,EAAI,WAAU,wBACb,UAAA;AAAA,IAAA,gBAAAA,EAAC+B,KAAK,WAAS,IAAC,SAAS,GAAG,WAAU,cACpC,UAAA;AAAA,MAAA,gBAAA/B,EAAC+B,KAAK,MAAM,EAAE,IAAI,IAAI,IAAI,KACxB,UAAA;AAAA,QAAA,gBAAA9B;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,SAAQ;AAAA,YACR,SAAQ;AAAA,YACT,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGD,gBAAAF;AAAA,UAAC+B;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,UAAUV;AAAA,YACV,cAAcd;AAAA,YACd,aAAY;AAAA,YACZ,YAAYyB,EAAY;AAAA,UAAA;AAAA,QAAA;AAAA,MAC1B,GACF;AAAA,MAECzB,uBACEuB,GAAA,EAAK,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA,GACxB,UAAA;AAAA,QAAA,gBAAA9B;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,SAAQ;AAAA,YACR,SAAQ;AAAA,YACT,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGD,gBAAAF;AAAA,UAACiC;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,aAAY;AAAA,YACZ,UAAU5B;AAAA,UAAA;AAAA,QAAA;AAAA,MACZ,EAAA,CACF;AAAA,IAAA,GAEJ;AAAA,IAECE,IACC,gBAAAR,EAAAmC,GAAA,EACE,UAAA;AAAA,MAAA,gBAAAnC,EAACG,GAAA,EAAW,SAAQ,aAAY,UAAA;AAAA,QAAA;AAAA,QACR,gBAAAF,EAACmC,GAAA,EAAgB,aAAa5B,EAAA,CAAY;AAAA,MAAA,GAClE;AAAA,MACA,gBAAAP,EAACoC,GAAA,EAA8B,GAAGzB,GAAsB;AAAA,MACvDI,KACC,gBAAAhB,EAAAmC,GAAA,EACE,UAAA;AAAA,QAAA,gBAAAlC,EAACE,GAAA,EAAW,SAAQ,aAAY,UAAA,iCAEhC;AAAA,QACA,gBAAAF,EAACqC,GAAA,EAAsB,GAAG5B,EAAA,CAAoB;AAAA,MAAA,EAAA,CAChD;AAAA,IAAA,GAEJ,sBAECX,GAAA,CAAA,CAAqB;AAAA,EAAA,GAE1B;AAEJ;"}
1
+ {"version":3,"file":"AccessHistoryDashboard.js","sources":["../../../src/components/dataaccess/AccessHistoryDashboard.tsx"],"sourcesContent":["import React from 'react'\nimport SearchImage from '@/assets/icons/SearchImage'\nimport { useGetCurrentUserBundle } from '@/synapse-queries'\nimport { useDebouncedEffect } from '@/utils/hooks/useDebouncedEffect'\nimport { Typography } from '@mui/material'\nimport Grid from '@mui/material/Grid'\nimport { TYPE_FILTER } from '@sage-bionetworks/synapse-types'\nimport { omitBy } from 'lodash-es'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useLocation, useNavigate } from 'react-router'\nimport UserOrTeamBadge from '../UserOrTeamBadge/UserOrTeamBadge'\nimport UserSearchBox from '../UserSearchBox/UserSearchBox'\nimport {\n AccessApprovalsTable,\n AccessApprovalsTableProps,\n} from './AccessApprovalsTable'\nimport {\n AccessRequestSubmissionTable,\n AccessRequestSubmissionTableProps,\n} from './AccessRequestSubmissionTable'\nimport AccessRequirementSearchBox from './AccessRequirementSearchBox/AccessRequirementSearchBox'\n\nconst SearchStartComponent = (): React.ReactNode => {\n return (\n <div className=\"text-center\">\n <SearchImage className=\"SearchPlaceholderImage\" height=\"167px\" />\n <Typography variant=\"body1Italic\">\n Select a user using the search field above to view their data access\n history\n </Typography>\n </div>\n )\n}\n\nexport const UserHistoryDashboard = (): React.ReactNode => {\n const [accessRequirementId, setAccessRequirementId] = useState<\n string | undefined\n >()\n const [accessorId, setAccessorId] = useState<string>('')\n const [approvalTableProps, setApprovalTableProps] =\n useState<AccessApprovalsTableProps>({\n accessorId,\n accessRequirementId,\n })\n const [submissionTableProps, setSubmissionTableProps] =\n useState<AccessRequestSubmissionTableProps>({\n showStatus: true,\n showSubmitter: true,\n accessorId,\n accessRequirementId,\n })\n\n const { data: userBundle } = useGetCurrentUserBundle()\n const hasActPermissions = userBundle?.isACTMember\n\n const location = useLocation()\n const navigate = useNavigate()\n const INPUT_CHANGE_DEBOUNCE_DELAY_MS = 500\n\n const onAccessorChange = useCallback((selected: string | null) => {\n if (selected) {\n setAccessorId(selected)\n } else {\n setAccessorId('')\n }\n }, [])\n\n useEffect(() => {\n const initializeFromSearchParam = () => {\n const initialParams = new URLSearchParams(location.search)\n setAccessRequirementId(\n initialParams.get('accessRequirementId') ?? undefined,\n )\n setAccessorId(initialParams.get('accessorId') ?? '')\n }\n initializeFromSearchParam()\n }, [location.search])\n\n useDebouncedEffect(\n () => {\n const updateQueryParams = (\n accessRequirementId: string | undefined,\n accessorId: string,\n ) => {\n const params = new URLSearchParams(\n omitBy(\n {\n accessRequirementId,\n accessorId,\n },\n item => item === undefined || item === '',\n ) as Record<string, string>,\n )\n navigate(\n {\n pathname: location.pathname,\n search: params.toString(),\n },\n { replace: true },\n )\n }\n\n updateQueryParams(accessRequirementId, accessorId)\n setApprovalTableProps({\n accessorId,\n accessRequirementId,\n })\n setSubmissionTableProps({\n showStatus: true,\n showSubmitter: true,\n accessorId,\n accessRequirementId,\n })\n },\n [accessRequirementId, accessorId, navigate, location.pathname],\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n\n return (\n <div className=\"UserHistoryDashboard\">\n <Grid container spacing={2} className=\"InputPanel\">\n <Grid size={{ xs: 12, md: 6 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"user-filter\"\n >\n Select a user to view their access history\n </Typography>\n <UserSearchBox\n inputId=\"user-filter\"\n onChange={onAccessorChange}\n value={accessorId}\n placeholder=\"Search for a user name\"\n typeFilter={TYPE_FILTER.USERS_ONLY}\n />\n </Grid>\n\n {accessorId && (\n <Grid size={{ xs: 12, md: 6 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"arName-filter\"\n >\n Filter by Access Requirement Name\n </Typography>\n <AccessRequirementSearchBox\n inputId=\"arName-filter\"\n placeholder=\"Search for an Access Requirement Name \"\n onChange={setAccessRequirementId}\n />\n </Grid>\n )}\n </Grid>\n\n {accessorId ? (\n <>\n <Typography variant=\"headline3\">\n Submissions including <UserOrTeamBadge principalId={accessorId} />\n </Typography>\n <AccessRequestSubmissionTable {...submissionTableProps} />\n {hasActPermissions && (\n <>\n <Typography variant=\"headline3\">\n Status in Access Requirements\n </Typography>\n <AccessApprovalsTable {...approvalTableProps} />\n </>\n )}\n </>\n ) : (\n <SearchStartComponent />\n )}\n </div>\n )\n}\n"],"names":["SearchStartComponent","jsxs","jsx","SearchImage","Typography","UserHistoryDashboard","accessRequirementId","setAccessRequirementId","useState","accessorId","setAccessorId","approvalTableProps","setApprovalTableProps","submissionTableProps","setSubmissionTableProps","userBundle","useGetCurrentUserBundle","hasActPermissions","location","useLocation","navigate","useNavigate","INPUT_CHANGE_DEBOUNCE_DELAY_MS","onAccessorChange","useCallback","selected","useEffect","initialParams","useDebouncedEffect","params","omitBy","item","Grid","UserSearchBox","TYPE_FILTER","AccessRequirementSearchBox","Fragment","UserOrTeamBadge","AccessRequestSubmissionTable","AccessApprovalsTable"],"mappings":"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"}
@@ -10,8 +10,8 @@ import { useMemo as R, useState as I, useEffect as Y, useCallback as q } from "r
10
10
  import { useLocation as L, useNavigate as B } from "react-router";
11
11
  import { EntityFinderModal as H } from "../EntityFinder/EntityFinderModal.js";
12
12
  import { FinderScope as G } from "../EntityFinder/tree/EntityTree.js";
13
- import V from "../UserSearchBox/UserSearchBoxV2.js";
14
- import { AccessRequirementTable as z } from "./AccessRequirementTable.js";
13
+ import z from "../UserSearchBox/UserSearchBox.js";
14
+ import { AccessRequirementTable as K } from "./AccessRequirementTable.js";
15
15
  const S = "nameOrID", C = "relatedProjectId", y = "reviewerId", D = "type";
16
16
  function se(N) {
17
17
  const { onCreateNewAccessRequirementClicked: P } = N, o = L(), i = R(
@@ -158,7 +158,7 @@ function se(N) {
158
158
  }
159
159
  ),
160
160
  /* @__PURE__ */ t(
161
- V,
161
+ z,
162
162
  {
163
163
  inputId: "reviewer-filter",
164
164
  placeholder: "Search for a username or team name",
@@ -169,7 +169,7 @@ function se(N) {
169
169
  ] })
170
170
  ] }),
171
171
  /* @__PURE__ */ t(
172
- z,
172
+ K,
173
173
  {
174
174
  nameOrID: l,
175
175
  relatedProjectId: r,
@@ -1 +1 @@
1
- {"version":3,"file":"AccessRequirementDashboard.js","sources":["../../../src/components/dataaccess/AccessRequirementDashboard.tsx"],"sourcesContent":["import { InputSizedButton } from '@/components/styled/InputSizedButton'\nimport { SYNAPSE_ENTITY_ID_REGEX } from '@/utils/functions/RegularExpressions'\nimport { SearchOutlined } from '@mui/icons-material'\nimport { Grid, InputAdornment, TextField, Typography } from '@mui/material'\nimport { useDebouncedState } from '@react-hookz/web'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport { omitBy } from 'lodash-es'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useLocation, useNavigate } from 'react-router'\nimport { EntityFinderModal } from '../EntityFinder/EntityFinderModal'\nimport { FinderScope } from '../EntityFinder/tree/EntityTree'\nimport UserSearchBoxV2 from '../UserSearchBox/UserSearchBoxV2'\nimport { AccessRequirementTable } from './AccessRequirementTable'\n\nexport const AR_NAME_OR_ID_SEARCH_PARAM_KEY = 'nameOrID'\nexport const RELATED_PROJECT_ID_SEARCH_PARAM_KEY = 'relatedProjectId'\nexport const REVIEWER_ID_SEARCH_PARAM_KEY = 'reviewerId'\nexport const AR_TYPE_SEARCH_PARAM_KEY = 'type'\n\nexport type AccessRequirementDashboardProps = {\n onCreateNewAccessRequirementClicked?: () => void\n}\n\nexport function AccessRequirementDashboard(\n props: AccessRequirementDashboardProps,\n) {\n // Amount of time to wait after an input value changes before sending a new request\n const INPUT_CHANGE_DEBOUNCE_DELAY_MS = 500\n\n const { onCreateNewAccessRequirementClicked } = props\n\n const location = useLocation()\n const urlSearchParams = useMemo(\n () => new URLSearchParams(location.search),\n [location.search],\n )\n const navigate = useNavigate()\n\n /**\n * When an input changes, update the props passed to the table and update the search params.\n *\n * Debounced to prevent firing many queries while the user is entering text.\n */\n const [nameOrID, setNameOrID] = useDebouncedState<string>(\n urlSearchParams.get(AR_NAME_OR_ID_SEARCH_PARAM_KEY) ?? '',\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [relatedProjectId, setRelatedProjectId] = useDebouncedState<\n string | undefined\n >(\n urlSearchParams.get(RELATED_PROJECT_ID_SEARCH_PARAM_KEY) ?? undefined,\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [reviewerId, setReviewerId] = useDebouncedState<string | undefined>(\n urlSearchParams.get(REVIEWER_ID_SEARCH_PARAM_KEY) ?? undefined,\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [typeFilter, setTypeFilter] = useState<string | undefined>(\n urlSearchParams.get(AR_TYPE_SEARCH_PARAM_KEY) ?? undefined,\n )\n\n const projectFilterFieldIsError: boolean = useMemo(\n () =>\n !!(relatedProjectId && !SYNAPSE_ENTITY_ID_REGEX.exec(relatedProjectId)),\n [relatedProjectId],\n )\n\n const [showEntityFinder, setShowEntityFinder] = useState(false)\n\n // Update the QueryParams when the filter state changes\n useEffect(() => {\n // Don't include undefined/empty parameters\n const params = omitBy(\n {\n // Sync the search params state with the debounced props\n [AR_NAME_OR_ID_SEARCH_PARAM_KEY]: nameOrID,\n [RELATED_PROJECT_ID_SEARCH_PARAM_KEY]: relatedProjectId,\n [REVIEWER_ID_SEARCH_PARAM_KEY]: reviewerId,\n [AR_TYPE_SEARCH_PARAM_KEY]: typeFilter, // typeFilter state is not debounced\n },\n item => item === undefined || item === '',\n ) as Record<string, string>\n\n // Add the new params to the URL\n // Replace history because intuitively, the user has not navigated to a new page\n const paramsObject = new URLSearchParams(params)\n navigate(\n {\n pathname: location.pathname,\n search: paramsObject.toString(),\n },\n { replace: true },\n )\n }, [\n nameOrID,\n relatedProjectId,\n reviewerId,\n typeFilter,\n navigate,\n location.pathname,\n ])\n\n const onReviewerChange = useCallback(\n (selected: string | null) => {\n if (selected) {\n setReviewerId(selected)\n } else {\n setReviewerId(undefined)\n }\n },\n [setReviewerId],\n )\n\n return (\n <div className=\"AccessRequirementDashboard\">\n <EntityFinderModal\n configuration={{\n initialScope: FinderScope.ALL_PROJECTS,\n initialContainer: null,\n selectMultiple: false,\n selectableTypes: [EntityType.project],\n treeOnly: true,\n }}\n show={showEntityFinder}\n onCancel={() => {\n setShowEntityFinder(false)\n }}\n title={'Select Project to Filter Access Requirements'}\n promptCopy={\n 'Select a project to find Access Requirements that are associated with that project. Access Requirements will be found if the Access Requirement is applied to the project, or if it is applied to any item inside the project.'\n }\n onConfirm={selected => {\n setRelatedProjectId(selected[0].targetId)\n setShowEntityFinder(false)\n }}\n confirmButtonCopy={'Select'}\n />\n <Grid component={'form'} container spacing={2} className=\"InputPanel\">\n <Grid size={{ xs: 12, md: 4 }}>\n <TextField\n label=\"Filter by Access Requirement Name or ID\"\n id=\"ar-name-filter\"\n type=\"text\"\n fullWidth\n placeholder=\"Search for an Access Requirement Name or ID\"\n onChange={e => {\n setNameOrID(e.target.value)\n }}\n slotProps={{\n input: {\n endAdornment: (\n <InputAdornment position=\"end\">\n <SearchOutlined />\n </InputAdornment>\n ),\n },\n }}\n />\n </Grid>\n <Grid\n size={{ xs: 12, md: 4 }}\n sx={{\n display: 'flex',\n gap: '5px',\n alignItems: 'stretch',\n }}\n >\n <TextField\n label=\"Filter by Project\"\n id=\"project-id-filter\"\n type=\"text\"\n fullWidth\n placeholder=\"Enter a project SynID\"\n error={projectFilterFieldIsError}\n helperText={\n projectFilterFieldIsError\n ? 'Value must be a Synapse ID, e.g. \"syn1234\"'\n : undefined\n }\n onChange={e => {\n const newValue = e.target.value\n if (newValue === '') {\n setRelatedProjectId(undefined)\n } else {\n setRelatedProjectId(newValue)\n }\n }}\n />\n <InputSizedButton\n variant=\"outlined\"\n color=\"primary\"\n onClick={() => {\n setShowEntityFinder(true)\n }}\n >\n Browse\n </InputSizedButton>\n </Grid>\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"reviewer-filter\"\n >\n Filter by Reviewer\n </Typography>\n <UserSearchBoxV2\n inputId=\"reviewer-filter\"\n placeholder=\"Search for a username or team name\"\n defaultValue={reviewerId}\n onChange={onReviewerChange}\n />\n </Grid>\n </Grid>\n <AccessRequirementTable\n nameOrID={nameOrID}\n relatedProjectId={relatedProjectId}\n reviewerId={reviewerId}\n onCreateNewAccessRequirementClicked={\n onCreateNewAccessRequirementClicked\n }\n typeFilter={typeFilter}\n onTypeFilterChange={setTypeFilter}\n />\n </div>\n )\n}\n\nexport default AccessRequirementDashboard\n"],"names":["AR_NAME_OR_ID_SEARCH_PARAM_KEY","RELATED_PROJECT_ID_SEARCH_PARAM_KEY","REVIEWER_ID_SEARCH_PARAM_KEY","AR_TYPE_SEARCH_PARAM_KEY","AccessRequirementDashboard","props","onCreateNewAccessRequirementClicked","location","useLocation","urlSearchParams","useMemo","navigate","useNavigate","nameOrID","setNameOrID","useDebouncedState","relatedProjectId","setRelatedProjectId","reviewerId","setReviewerId","typeFilter","setTypeFilter","useState","projectFilterFieldIsError","SYNAPSE_ENTITY_ID_REGEX","showEntityFinder","setShowEntityFinder","useEffect","params","omitBy","item","paramsObject","onReviewerChange","useCallback","selected","jsxs","jsx","EntityFinderModal","FinderScope","EntityType","Grid","TextField","InputAdornment","SearchOutlined","newValue","InputSizedButton","Typography","UserSearchBoxV2","AccessRequirementTable"],"mappings":"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"}
1
+ {"version":3,"file":"AccessRequirementDashboard.js","sources":["../../../src/components/dataaccess/AccessRequirementDashboard.tsx"],"sourcesContent":["import { InputSizedButton } from '@/components/styled/InputSizedButton'\nimport { SYNAPSE_ENTITY_ID_REGEX } from '@/utils/functions/RegularExpressions'\nimport { SearchOutlined } from '@mui/icons-material'\nimport { Grid, InputAdornment, TextField, Typography } from '@mui/material'\nimport { useDebouncedState } from '@react-hookz/web'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport { omitBy } from 'lodash-es'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useLocation, useNavigate } from 'react-router'\nimport { EntityFinderModal } from '../EntityFinder/EntityFinderModal'\nimport { FinderScope } from '../EntityFinder/tree/EntityTree'\nimport UserSearchBox from '../UserSearchBox/UserSearchBox'\nimport { AccessRequirementTable } from './AccessRequirementTable'\n\nexport const AR_NAME_OR_ID_SEARCH_PARAM_KEY = 'nameOrID'\nexport const RELATED_PROJECT_ID_SEARCH_PARAM_KEY = 'relatedProjectId'\nexport const REVIEWER_ID_SEARCH_PARAM_KEY = 'reviewerId'\nexport const AR_TYPE_SEARCH_PARAM_KEY = 'type'\n\nexport type AccessRequirementDashboardProps = {\n onCreateNewAccessRequirementClicked?: () => void\n}\n\nexport function AccessRequirementDashboard(\n props: AccessRequirementDashboardProps,\n) {\n // Amount of time to wait after an input value changes before sending a new request\n const INPUT_CHANGE_DEBOUNCE_DELAY_MS = 500\n\n const { onCreateNewAccessRequirementClicked } = props\n\n const location = useLocation()\n const urlSearchParams = useMemo(\n () => new URLSearchParams(location.search),\n [location.search],\n )\n const navigate = useNavigate()\n\n /**\n * When an input changes, update the props passed to the table and update the search params.\n *\n * Debounced to prevent firing many queries while the user is entering text.\n */\n const [nameOrID, setNameOrID] = useDebouncedState<string>(\n urlSearchParams.get(AR_NAME_OR_ID_SEARCH_PARAM_KEY) ?? '',\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [relatedProjectId, setRelatedProjectId] = useDebouncedState<\n string | undefined\n >(\n urlSearchParams.get(RELATED_PROJECT_ID_SEARCH_PARAM_KEY) ?? undefined,\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [reviewerId, setReviewerId] = useDebouncedState<string | undefined>(\n urlSearchParams.get(REVIEWER_ID_SEARCH_PARAM_KEY) ?? undefined,\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [typeFilter, setTypeFilter] = useState<string | undefined>(\n urlSearchParams.get(AR_TYPE_SEARCH_PARAM_KEY) ?? undefined,\n )\n\n const projectFilterFieldIsError: boolean = useMemo(\n () =>\n !!(relatedProjectId && !SYNAPSE_ENTITY_ID_REGEX.exec(relatedProjectId)),\n [relatedProjectId],\n )\n\n const [showEntityFinder, setShowEntityFinder] = useState(false)\n\n // Update the QueryParams when the filter state changes\n useEffect(() => {\n // Don't include undefined/empty parameters\n const params = omitBy(\n {\n // Sync the search params state with the debounced props\n [AR_NAME_OR_ID_SEARCH_PARAM_KEY]: nameOrID,\n [RELATED_PROJECT_ID_SEARCH_PARAM_KEY]: relatedProjectId,\n [REVIEWER_ID_SEARCH_PARAM_KEY]: reviewerId,\n [AR_TYPE_SEARCH_PARAM_KEY]: typeFilter, // typeFilter state is not debounced\n },\n item => item === undefined || item === '',\n ) as Record<string, string>\n\n // Add the new params to the URL\n // Replace history because intuitively, the user has not navigated to a new page\n const paramsObject = new URLSearchParams(params)\n navigate(\n {\n pathname: location.pathname,\n search: paramsObject.toString(),\n },\n { replace: true },\n )\n }, [\n nameOrID,\n relatedProjectId,\n reviewerId,\n typeFilter,\n navigate,\n location.pathname,\n ])\n\n const onReviewerChange = useCallback(\n (selected: string | null) => {\n if (selected) {\n setReviewerId(selected)\n } else {\n setReviewerId(undefined)\n }\n },\n [setReviewerId],\n )\n\n return (\n <div className=\"AccessRequirementDashboard\">\n <EntityFinderModal\n configuration={{\n initialScope: FinderScope.ALL_PROJECTS,\n initialContainer: null,\n selectMultiple: false,\n selectableTypes: [EntityType.project],\n treeOnly: true,\n }}\n show={showEntityFinder}\n onCancel={() => {\n setShowEntityFinder(false)\n }}\n title={'Select Project to Filter Access Requirements'}\n promptCopy={\n 'Select a project to find Access Requirements that are associated with that project. Access Requirements will be found if the Access Requirement is applied to the project, or if it is applied to any item inside the project.'\n }\n onConfirm={selected => {\n setRelatedProjectId(selected[0].targetId)\n setShowEntityFinder(false)\n }}\n confirmButtonCopy={'Select'}\n />\n <Grid component={'form'} container spacing={2} className=\"InputPanel\">\n <Grid size={{ xs: 12, md: 4 }}>\n <TextField\n label=\"Filter by Access Requirement Name or ID\"\n id=\"ar-name-filter\"\n type=\"text\"\n fullWidth\n placeholder=\"Search for an Access Requirement Name or ID\"\n onChange={e => {\n setNameOrID(e.target.value)\n }}\n slotProps={{\n input: {\n endAdornment: (\n <InputAdornment position=\"end\">\n <SearchOutlined />\n </InputAdornment>\n ),\n },\n }}\n />\n </Grid>\n <Grid\n size={{ xs: 12, md: 4 }}\n sx={{\n display: 'flex',\n gap: '5px',\n alignItems: 'stretch',\n }}\n >\n <TextField\n label=\"Filter by Project\"\n id=\"project-id-filter\"\n type=\"text\"\n fullWidth\n placeholder=\"Enter a project SynID\"\n error={projectFilterFieldIsError}\n helperText={\n projectFilterFieldIsError\n ? 'Value must be a Synapse ID, e.g. \"syn1234\"'\n : undefined\n }\n onChange={e => {\n const newValue = e.target.value\n if (newValue === '') {\n setRelatedProjectId(undefined)\n } else {\n setRelatedProjectId(newValue)\n }\n }}\n />\n <InputSizedButton\n variant=\"outlined\"\n color=\"primary\"\n onClick={() => {\n setShowEntityFinder(true)\n }}\n >\n Browse\n </InputSizedButton>\n </Grid>\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"reviewer-filter\"\n >\n Filter by Reviewer\n </Typography>\n <UserSearchBox\n inputId=\"reviewer-filter\"\n placeholder=\"Search for a username or team name\"\n defaultValue={reviewerId}\n onChange={onReviewerChange}\n />\n </Grid>\n </Grid>\n <AccessRequirementTable\n nameOrID={nameOrID}\n relatedProjectId={relatedProjectId}\n reviewerId={reviewerId}\n onCreateNewAccessRequirementClicked={\n onCreateNewAccessRequirementClicked\n }\n typeFilter={typeFilter}\n onTypeFilterChange={setTypeFilter}\n />\n </div>\n )\n}\n\nexport default AccessRequirementDashboard\n"],"names":["AR_NAME_OR_ID_SEARCH_PARAM_KEY","RELATED_PROJECT_ID_SEARCH_PARAM_KEY","REVIEWER_ID_SEARCH_PARAM_KEY","AR_TYPE_SEARCH_PARAM_KEY","AccessRequirementDashboard","props","onCreateNewAccessRequirementClicked","location","useLocation","urlSearchParams","useMemo","navigate","useNavigate","nameOrID","setNameOrID","useDebouncedState","relatedProjectId","setRelatedProjectId","reviewerId","setReviewerId","typeFilter","setTypeFilter","useState","projectFilterFieldIsError","SYNAPSE_ENTITY_ID_REGEX","showEntityFinder","setShowEntityFinder","useEffect","params","omitBy","item","paramsObject","onReviewerChange","useCallback","selected","jsxs","jsx","EntityFinderModal","FinderScope","EntityType","Grid","TextField","InputAdornment","SearchOutlined","newValue","InputSizedButton","Typography","UserSearchBox","AccessRequirementTable"],"mappings":"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"}
@@ -30,7 +30,7 @@ import { useLocation as Y, useNavigate as O } from "react-router";
30
30
  import "@sage-bionetworks/synapse-client";
31
31
  import "../../utils/types/IsType.js";
32
32
  import { useIsCurrentUserACTMember as V } from "../../synapse-queries/user/useUserBundle.js";
33
- import w from "../UserSearchBox/UserSearchBoxV2.js";
33
+ import w from "../UserSearchBox/UserSearchBox.js";
34
34
  import { AccessRequestSubmissionTable as j } from "./AccessRequestSubmissionTable.js";
35
35
  import k from "./AccessRequirementSearchBox/AccessRequirementSearchBox.js";
36
36
  const G = (r) => {
@@ -1 +1 @@
1
- {"version":3,"file":"AccessSubmissionDashboard.js","sources":["../../../src/components/dataaccess/AccessSubmissionDashboard.tsx"],"sourcesContent":["import React from 'react'\nimport { useIsCurrentUserACTMember } from '@/synapse-queries/index'\nimport { useDebouncedEffect } from '@/utils/hooks/useDebouncedEffect'\nimport { ACT_TEAM_ID } from '@/utils/SynapseConstants'\nimport {\n Checkbox,\n FormControlLabel,\n Grid,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport {\n SubmissionReviewerFilterType,\n SubmissionState,\n TYPE_FILTER,\n} from '@sage-bionetworks/synapse-types'\nimport { omitBy } from 'lodash-es'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useLocation, useNavigate } from 'react-router'\nimport UserSearchBoxV2 from '../UserSearchBox/UserSearchBoxV2'\nimport {\n AccessRequestSubmissionTable,\n AccessRequestSubmissionTableProps,\n} from './AccessRequestSubmissionTable'\nimport AccessRequirementSearchBox from './AccessRequirementSearchBox/AccessRequirementSearchBox'\n\nexport const getReviewerFilterID = (selected: string | null) => {\n if (selected && selected !== ACT_TEAM_ID.toString()) {\n return selected\n } else {\n return undefined\n }\n}\n\nexport const DataAccessSubmissionDashboard = (): React.ReactNode => {\n const [accessRequirementId, setAccessRequirementId] = useState<\n string | undefined\n >()\n const [accessorId, setAccessorId] = useState<string | undefined>()\n const [reviewerId, setReviewerId] = useState<string | undefined>()\n const [reviewerFilterType, setReviewerFilterType] = useState<\n SubmissionReviewerFilterType | undefined\n >(SubmissionReviewerFilterType.ALL)\n const [tableProps, setTableProps] =\n useState<AccessRequestSubmissionTableProps>({\n accessRequirementId,\n accessorId,\n reviewerId,\n showRequesters: true,\n submissionState: SubmissionState.SUBMITTED,\n })\n\n const location = useLocation()\n const navigate = useNavigate()\n const INPUT_CHANGE_DEBOUNCE_DELAY_MS = 500\n\n const { data: isACT } = useIsCurrentUserACTMember()\n\n useEffect(() => {\n const initializeFromSearchParam = () => {\n const initialParams = new URLSearchParams(location.search)\n setAccessRequirementId(\n initialParams.get('accessRequirementId') ?? undefined,\n )\n setAccessorId(initialParams.get('accessorId') ?? undefined)\n setReviewerId(initialParams.get('reviewerId') ?? undefined)\n setReviewerFilterType(\n (initialParams.get(\n 'reviewerFilterType',\n ) as SubmissionReviewerFilterType) ?? undefined,\n )\n }\n initializeFromSearchParam()\n }, [location.search])\n\n const onRequesterChange = useCallback((selected: string | null) => {\n if (selected) {\n setAccessorId(selected)\n } else {\n setAccessorId(undefined)\n }\n }, [])\n\n const onReviewerChange = useCallback((selected: string | null) => {\n setReviewerId(getReviewerFilterID(selected))\n }, [])\n\n useDebouncedEffect(\n () => {\n const updateQueryParams = (\n accessRequirementId: string | undefined,\n accessorId: string | undefined,\n reviewerId: string | undefined,\n reviewerFilterType: SubmissionReviewerFilterType | undefined,\n ) => {\n const params = new URLSearchParams(\n omitBy(\n {\n accessRequirementId,\n accessorId,\n reviewerId,\n reviewerFilterType,\n },\n item => item === undefined || item === '',\n ) as Record<string, string>,\n )\n navigate(\n {\n pathname: location.pathname,\n search: params.toString(),\n },\n { replace: true },\n )\n }\n\n updateQueryParams(\n accessRequirementId,\n accessorId,\n reviewerId,\n reviewerFilterType,\n )\n setTableProps({\n accessRequirementId,\n accessorId,\n reviewerId,\n reviewerFilterType,\n showRequesters: true,\n submissionState: SubmissionState.SUBMITTED,\n })\n },\n [\n accessRequirementId,\n accessorId,\n reviewerId,\n reviewerFilterType,\n navigate,\n location.pathname,\n ],\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n\n return (\n <div className=\"AccessSubmissionDashboard\">\n <Grid\n container\n spacing={2}\n className=\"InputPanel\"\n sx={{ alignItems: 'stretch' }}\n >\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"arId-filter\"\n >\n Filter by Access Requirement Name\n </Typography>\n <AccessRequirementSearchBox\n inputId=\"arId-filter\"\n onChange={setAccessRequirementId}\n placeholder=\"Search for an Access Requirement Name \"\n />\n </Grid>\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"requester-filter\"\n >\n Filter by Requester\n </Typography>\n <UserSearchBoxV2\n inputId=\"requester-filter\"\n placeholder=\"Search for a user name\"\n defaultValue={accessorId}\n onChange={onRequesterChange}\n typeFilter={TYPE_FILTER.USERS_ONLY}\n />\n </Grid>\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"reviewer-filter\"\n >\n Filter by Reviewer\n </Typography>\n <UserSearchBoxV2\n inputId=\"reviewer-filter\"\n placeholder=\"Search for a user or team name\"\n defaultValue={reviewerId}\n onChange={onReviewerChange}\n />\n </Grid>\n {isACT && (\n <Grid size={12} sx={{ textAlign: 'right' }}>\n <Tooltip\n title={\n 'This will hide submissions that have a reviewer specifically assigned.'\n }\n >\n <FormControlLabel\n control={<Checkbox />}\n value={\n reviewerFilterType === SubmissionReviewerFilterType.ACT_ONLY\n }\n label=\"Reviewed by ACT only\"\n onChange={(_, checked) => {\n const newValue = checked\n ? SubmissionReviewerFilterType.ACT_ONLY\n : SubmissionReviewerFilterType.ALL\n setReviewerFilterType(newValue)\n }}\n />\n </Tooltip>\n </Grid>\n )}\n </Grid>\n\n <Typography variant=\"headline3\">Access Request Submissions</Typography>\n <AccessRequestSubmissionTable {...tableProps} />\n </div>\n )\n}\n"],"names":["getReviewerFilterID","selected","ACT_TEAM_ID","DataAccessSubmissionDashboard","accessRequirementId","setAccessRequirementId","useState","accessorId","setAccessorId","reviewerId","setReviewerId","reviewerFilterType","setReviewerFilterType","SubmissionReviewerFilterType","tableProps","setTableProps","SubmissionState","location","useLocation","navigate","useNavigate","INPUT_CHANGE_DEBOUNCE_DELAY_MS","isACT","useIsCurrentUserACTMember","useEffect","initialParams","onRequesterChange","useCallback","onReviewerChange","useDebouncedEffect","params","omitBy","item","jsxs","Grid","jsx","Typography","AccessRequirementSearchBox","UserSearchBoxV2","TYPE_FILTER","Tooltip","FormControlLabel","Checkbox","_","checked","newValue","AccessRequestSubmissionTable"],"mappings":"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"}
1
+ {"version":3,"file":"AccessSubmissionDashboard.js","sources":["../../../src/components/dataaccess/AccessSubmissionDashboard.tsx"],"sourcesContent":["import React from 'react'\nimport { useIsCurrentUserACTMember } from '@/synapse-queries/index'\nimport { useDebouncedEffect } from '@/utils/hooks/useDebouncedEffect'\nimport { ACT_TEAM_ID } from '@/utils/SynapseConstants'\nimport {\n Checkbox,\n FormControlLabel,\n Grid,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport {\n SubmissionReviewerFilterType,\n SubmissionState,\n TYPE_FILTER,\n} from '@sage-bionetworks/synapse-types'\nimport { omitBy } from 'lodash-es'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useLocation, useNavigate } from 'react-router'\nimport UserSearchBox from '../UserSearchBox/UserSearchBox'\nimport {\n AccessRequestSubmissionTable,\n AccessRequestSubmissionTableProps,\n} from './AccessRequestSubmissionTable'\nimport AccessRequirementSearchBox from './AccessRequirementSearchBox/AccessRequirementSearchBox'\n\nexport const getReviewerFilterID = (selected: string | null) => {\n if (selected && selected !== ACT_TEAM_ID.toString()) {\n return selected\n } else {\n return undefined\n }\n}\n\nexport const DataAccessSubmissionDashboard = (): React.ReactNode => {\n const [accessRequirementId, setAccessRequirementId] = useState<\n string | undefined\n >()\n const [accessorId, setAccessorId] = useState<string | undefined>()\n const [reviewerId, setReviewerId] = useState<string | undefined>()\n const [reviewerFilterType, setReviewerFilterType] = useState<\n SubmissionReviewerFilterType | undefined\n >(SubmissionReviewerFilterType.ALL)\n const [tableProps, setTableProps] =\n useState<AccessRequestSubmissionTableProps>({\n accessRequirementId,\n accessorId,\n reviewerId,\n showRequesters: true,\n submissionState: SubmissionState.SUBMITTED,\n })\n\n const location = useLocation()\n const navigate = useNavigate()\n const INPUT_CHANGE_DEBOUNCE_DELAY_MS = 500\n\n const { data: isACT } = useIsCurrentUserACTMember()\n\n useEffect(() => {\n const initializeFromSearchParam = () => {\n const initialParams = new URLSearchParams(location.search)\n setAccessRequirementId(\n initialParams.get('accessRequirementId') ?? undefined,\n )\n setAccessorId(initialParams.get('accessorId') ?? undefined)\n setReviewerId(initialParams.get('reviewerId') ?? undefined)\n setReviewerFilterType(\n (initialParams.get(\n 'reviewerFilterType',\n ) as SubmissionReviewerFilterType) ?? undefined,\n )\n }\n initializeFromSearchParam()\n }, [location.search])\n\n const onRequesterChange = useCallback((selected: string | null) => {\n if (selected) {\n setAccessorId(selected)\n } else {\n setAccessorId(undefined)\n }\n }, [])\n\n const onReviewerChange = useCallback((selected: string | null) => {\n setReviewerId(getReviewerFilterID(selected))\n }, [])\n\n useDebouncedEffect(\n () => {\n const updateQueryParams = (\n accessRequirementId: string | undefined,\n accessorId: string | undefined,\n reviewerId: string | undefined,\n reviewerFilterType: SubmissionReviewerFilterType | undefined,\n ) => {\n const params = new URLSearchParams(\n omitBy(\n {\n accessRequirementId,\n accessorId,\n reviewerId,\n reviewerFilterType,\n },\n item => item === undefined || item === '',\n ) as Record<string, string>,\n )\n navigate(\n {\n pathname: location.pathname,\n search: params.toString(),\n },\n { replace: true },\n )\n }\n\n updateQueryParams(\n accessRequirementId,\n accessorId,\n reviewerId,\n reviewerFilterType,\n )\n setTableProps({\n accessRequirementId,\n accessorId,\n reviewerId,\n reviewerFilterType,\n showRequesters: true,\n submissionState: SubmissionState.SUBMITTED,\n })\n },\n [\n accessRequirementId,\n accessorId,\n reviewerId,\n reviewerFilterType,\n navigate,\n location.pathname,\n ],\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n\n return (\n <div className=\"AccessSubmissionDashboard\">\n <Grid\n container\n spacing={2}\n className=\"InputPanel\"\n sx={{ alignItems: 'stretch' }}\n >\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"arId-filter\"\n >\n Filter by Access Requirement Name\n </Typography>\n <AccessRequirementSearchBox\n inputId=\"arId-filter\"\n onChange={setAccessRequirementId}\n placeholder=\"Search for an Access Requirement Name \"\n />\n </Grid>\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"requester-filter\"\n >\n Filter by Requester\n </Typography>\n <UserSearchBox\n inputId=\"requester-filter\"\n placeholder=\"Search for a user name\"\n defaultValue={accessorId}\n onChange={onRequesterChange}\n typeFilter={TYPE_FILTER.USERS_ONLY}\n />\n </Grid>\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"reviewer-filter\"\n >\n Filter by Reviewer\n </Typography>\n <UserSearchBox\n inputId=\"reviewer-filter\"\n placeholder=\"Search for a user or team name\"\n defaultValue={reviewerId}\n onChange={onReviewerChange}\n />\n </Grid>\n {isACT && (\n <Grid size={12} sx={{ textAlign: 'right' }}>\n <Tooltip\n title={\n 'This will hide submissions that have a reviewer specifically assigned.'\n }\n >\n <FormControlLabel\n control={<Checkbox />}\n value={\n reviewerFilterType === SubmissionReviewerFilterType.ACT_ONLY\n }\n label=\"Reviewed by ACT only\"\n onChange={(_, checked) => {\n const newValue = checked\n ? SubmissionReviewerFilterType.ACT_ONLY\n : SubmissionReviewerFilterType.ALL\n setReviewerFilterType(newValue)\n }}\n />\n </Tooltip>\n </Grid>\n )}\n </Grid>\n\n <Typography variant=\"headline3\">Access Request Submissions</Typography>\n <AccessRequestSubmissionTable {...tableProps} />\n </div>\n )\n}\n"],"names":["getReviewerFilterID","selected","ACT_TEAM_ID","DataAccessSubmissionDashboard","accessRequirementId","setAccessRequirementId","useState","accessorId","setAccessorId","reviewerId","setReviewerId","reviewerFilterType","setReviewerFilterType","SubmissionReviewerFilterType","tableProps","setTableProps","SubmissionState","location","useLocation","navigate","useNavigate","INPUT_CHANGE_DEBOUNCE_DELAY_MS","isACT","useIsCurrentUserACTMember","useEffect","initialParams","onRequesterChange","useCallback","onReviewerChange","useDebouncedEffect","params","omitBy","item","jsxs","Grid","jsx","Typography","AccessRequirementSearchBox","UserSearchBox","TYPE_FILTER","Tooltip","FormControlLabel","Checkbox","_","checked","newValue","AccessRequestSubmissionTable"],"mappings":"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"}
@@ -40,7 +40,7 @@ import { formatDate as F } from "../../../utils/functions/DateFormatter.js";
40
40
  import l from "dayjs";
41
41
  import ne from "dayjs/plugin/duration";
42
42
  import { SynapseErrorBoundary as oe } from "../../error/ErrorBanner.js";
43
- import { MarkdownSynapse as de } from "../../Markdown/MarkdownSynapse.js";
43
+ import { Markdown as de } from "../../Markdown/MarkdownSynapse.js";
44
44
  import { UserBadge as S } from "../../UserCard/UserBadge.js";
45
45
  import P from "../../UserOrTeamBadge/UserOrTeamBadge.js";
46
46
  import { FileHandleLink as ce } from "../../widgets/FileHandleLink.js";
@@ -90,9 +90,9 @@ function ue(c, s) {
90
90
  function nt(c) {
91
91
  const { submissionId: s, isReviewer: d } = c, [u, A] = p(!1), { data: f } = se(), { data: t, isLoading: O } = Q(s, {
92
92
  throwOnError: !0
93
- }), E = !!(t && f && ue(f.ownerId, t)), { data: q, isLoading: B } = re(String(s), {
94
- enabled: E && t && t.state === m.APPROVED
95
- }), C = !!(q && l(q.expiredOn).isBefore(l())), k = t && t.submittedBy === f?.ownerId, { data: n } = z(
93
+ }), k = !!(t && f && ue(f.ownerId, t)), { data: q, isLoading: B } = re(String(s), {
94
+ enabled: k && t && t.state === m.APPROVED
95
+ }), C = !!(q && l(q.expiredOn).isBefore(l())), E = t && t.submittedBy === f?.ownerId, { data: n } = z(
96
96
  parseInt(t?.accessRequirementId),
97
97
  { enabled: !!t }
98
98
  ), { data: K, isLoading: v } = Y(
@@ -185,7 +185,7 @@ function nt(c) {
185
185
  }
186
186
  )
187
187
  ] }),
188
- t && k && /* @__PURE__ */ r("div", { className: "ButtonContainer", children: [
188
+ t && E && /* @__PURE__ */ r("div", { className: "ButtonContainer", children: [
189
189
  /* @__PURE__ */ e(
190
190
  W,
191
191
  {
@@ -31,7 +31,7 @@ import "@sage-bionetworks/synapse-client";
31
31
  import "../../utils/types/IsType.js";
32
32
  import { useSearchAccessRequirementsInfinite as J } from "../../synapse-queries/dataaccess/useAccessRequirements.js";
33
33
  import { formatDate as f } from "../../utils/functions/DateFormatter.js";
34
- import { useReactTable as W, getCoreRowModel as X, createColumnHelper as Z, getFacetedUniqueValues as ee } from "@tanstack/react-table";
34
+ import { useReactTable as W, getCoreRowModel as X, getFacetedUniqueValues as Z, createColumnHelper as ee } from "@tanstack/react-table";
35
35
  import A from "dayjs";
36
36
  import { EntityLink as te } from "../EntityLink.js";
37
37
  import a from "../TanStackTable/ColumnHeader.js";
@@ -58,7 +58,7 @@ const re = [
58
58
  h,
59
59
  U,
60
60
  O
61
- ], ne = (e) => /^\d+$/.test(e), l = Z(), ie = [
61
+ ], ne = (e) => /^\d+$/.test(e), l = ee(), ie = [
62
62
  l.accessor("id", {
63
63
  header: (e) => /* @__PURE__ */ r(a, { ...e, title: "AR ID" }),
64
64
  cell: ({ getValue: e }) => /* @__PURE__ */ r(
@@ -213,7 +213,7 @@ function Ke(e) {
213
213
  sorting: C,
214
214
  columnFilters: _
215
215
  },
216
- getFacetedUniqueValues: (n, i) => i === "type" ? () => new Map(re.map((o) => [o, 0])) : ee()(
216
+ getFacetedUniqueValues: (n, i) => i === "type" ? () => new Map(re.map((o) => [o, 0])) : Z()(
217
217
  n,
218
218
  i
219
219
  ),
@@ -1 +1 @@
1
- {"version":3,"file":"UseAccessRequirementTable.js","sources":["../../../src/components/dataaccess/UseAccessRequirementTable.tsx"],"sourcesContent":["import { useSearchAccessRequirementsInfinite } from '@/synapse-queries'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { ACT_TEAM_ID } from '@/utils/SynapseConstants'\nimport { Link, Typography } from '@mui/material'\nimport {\n ACCESS_REQUIREMENT_CONCRETE_TYPE,\n ACCESS_TYPE,\n AccessRequirementSearchRequest,\n AccessRequirementSearchResult,\n AccessRequirementSearchSort,\n ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n SortDirection,\n TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n} from '@sage-bionetworks/synapse-types'\nimport {\n ColumnFiltersState,\n ColumnSort,\n createColumnHelper,\n getCoreRowModel,\n getFacetedUniqueValues as defaultGetFacetedUniqueValues,\n SortingState,\n Table,\n Updater,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport { noop } from 'lodash-es'\nimport { Fragment, useCallback, useMemo, useState } from 'react'\nimport { EntityLink } from '../EntityLink'\nimport ColumnHeader from '../TanStackTable/ColumnHeader'\nimport UserOrTeamBadge from '../UserOrTeamBadge/UserOrTeamBadge'\n\nexport function accessRequirementConcreteTypeValueToDisplayValue(\n accessRequirementConcreteTypeValue: ACCESS_REQUIREMENT_CONCRETE_TYPE,\n) {\n switch (accessRequirementConcreteTypeValue) {\n case TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE:\n return TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n case SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE: {\n return SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n }\n case MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE:\n return MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n case ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE:\n return ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n case LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE:\n return LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n default:\n return 'Unknown'\n }\n}\n\nconst ALL_ACCESS_REQUIREMENT_CONCRETE_TYPES = [\n TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n]\n\nconst isIntegerInput = (v: string): boolean => {\n return /^\\d+$/.test(v)\n}\nconst columnHelper = createColumnHelper<AccessRequirementSearchResult>()\nconst columns = [\n columnHelper.accessor('id', {\n header: props => <ColumnHeader {...props} title={'AR ID'} />,\n cell: ({ getValue }) => (\n <Link\n href={`${\n PRODUCTION_ENDPOINT_CONFIG.PORTAL\n }AccessRequirement:AR_ID=${getValue()}`}\n >\n {getValue()}\n </Link>\n ),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('name', {\n header: props => (\n <ColumnHeader {...props} title={'Access Requirement Name'} />\n ),\n cell: ({ getValue }) => getValue(),\n enableSorting: true,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('type', {\n header: props => <ColumnHeader {...props} title={'Type'} />,\n cell: ({ getValue }) =>\n accessRequirementConcreteTypeValueToDisplayValue(getValue()),\n enableSorting: false,\n enableColumnFilter: true,\n meta: {\n filterVariant: 'enumeration',\n getDisplayText: accessRequirementConcreteTypeValueToDisplayValue,\n enableMultipleSelect: false,\n },\n }),\n columnHelper.accessor('relatedProjectIds', {\n header: props => <ColumnHeader {...props} title={'Related to Projects'} />,\n cell: ({ getValue }) => (\n <>\n {getValue().map(projectId => (\n <Fragment key={projectId}>\n <EntityLink entity={projectId} />{' '}\n <Typography\n component={'span'}\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n ({projectId})\n </Typography>\n <br />\n </Fragment>\n ))}\n </>\n ),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('reviewerIds', {\n header: props => <ColumnHeader {...props} title={'Reviewer'} />,\n cell: ({ getValue }) => (\n <>\n {getValue().length === 0 ? (\n <UserOrTeamBadge principalId={ACT_TEAM_ID} />\n ) : (\n getValue().map(reviewerId => (\n <UserOrTeamBadge key={reviewerId} principalId={reviewerId} />\n ))\n )}\n </>\n ),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('modifiedOn', {\n header: props => <ColumnHeader {...props} title={'Last Modified'} />,\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('createdOn', {\n header: props => <ColumnHeader {...props} title={'Created On'} />,\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n enableSorting: true,\n enableColumnFilter: false,\n }),\n]\nconst DEFAULT_SORTING_STATE: SortingState = [\n {\n desc: true,\n id: 'createdOn',\n },\n]\ntype UseAccessRequirementTableOptions = {\n nameOrID?: string\n relatedProjectId?: string\n reviewerId?: string\n accessType?: ACCESS_TYPE\n typeFilter?: string\n onTypeFilterChange?: (typeFilter: string | undefined) => void\n}\n\nfunction columnSortToAccessRequirementSearchSort(\n columnSort: ColumnSort,\n): AccessRequirementSearchSort {\n const direction: SortDirection = columnSort.desc ? 'DESC' : 'ASC'\n\n if (columnSort.id == 'createdOn') {\n return {\n field: 'CREATED_ON',\n direction,\n }\n } else if (columnSort.id == 'name') {\n return {\n field: 'NAME',\n direction,\n }\n } else {\n throw new Error(\n `Could not map sort field ${columnSort.id} to AccessRequirementSortField`,\n )\n }\n}\n\nfunction getTypeFilterFromColumnFilters(\n columnFilters?: ColumnFiltersState,\n): string | undefined {\n const matchingFilter = (columnFilters || []).find(f => f.id === 'type')\n const filterValues = matchingFilter?.value\n if (filterValues) {\n return (filterValues as string[])[0]\n }\n return undefined\n}\n\nexport function useAccessRequirementTable(\n opts: UseAccessRequirementTableOptions,\n) {\n const {\n nameOrID,\n relatedProjectId,\n reviewerId,\n accessType,\n typeFilter,\n onTypeFilterChange = noop,\n } = opts\n const [sortingState, setSortingState] = useState<SortingState>(\n DEFAULT_SORTING_STATE,\n )\n\n const columnFilters = useMemo(\n () => (typeFilter ? [{ id: 'type', value: [typeFilter] }] : []),\n [typeFilter],\n )\n\n const onColumnFiltersChange = useCallback(\n (updaterOrValue: Updater<ColumnFiltersState>) => {\n const newValue: ColumnFiltersState =\n typeof updaterOrValue === 'function'\n ? updaterOrValue(columnFilters)\n : updaterOrValue\n\n // Unlike the other controls, the type filter control is inside the table. State is still stored in the parent component.\n // When the user updates the filter, this function will fire, so we must propagate changes to the type filter to the parent.\n const typeFilter = getTypeFilterFromColumnFilters(newValue)\n onTypeFilterChange(typeFilter)\n },\n [columnFilters, onTypeFilterChange],\n )\n\n // Map the @tanstack/react-table sort state object to the Synapse API object\n const apiRequestSortState: AccessRequirementSearchRequest['sort'] = useMemo(\n () => sortingState.map(columnSortToAccessRequirementSearchSort),\n [sortingState],\n )\n\n const searchRequest: Omit<AccessRequirementSearchRequest, 'nextPageToken'> =\n useMemo(() => {\n // SWC-6615: If the input string is a single integer, assume it's the AR ID. Otherwise, use as the nameContains field.\n let nameContains: string | undefined = undefined\n let ids: number[] | undefined = undefined\n if (nameOrID !== undefined) {\n const nameOrIDTrimmed = nameOrID.trim()\n if (isIntegerInput(nameOrIDTrimmed)) {\n ids = [Number.parseInt(nameOrIDTrimmed)]\n } else {\n nameContains = nameOrIDTrimmed\n }\n }\n return {\n ids,\n nameContains,\n relatedProjectId,\n reviewerId,\n accessType,\n sort: apiRequestSortState,\n type: typeFilter,\n }\n }, [\n nameOrID,\n relatedProjectId,\n reviewerId,\n accessType,\n apiRequestSortState,\n typeFilter,\n ])\n\n const { data, hasNextPage, fetchNextPage, isLoading, isFetchingNextPage } =\n useSearchAccessRequirementsInfinite(searchRequest)\n\n const accessRequirements = useMemo(\n () => data?.pages.flatMap(page => page.results) ?? [],\n [data],\n )\n\n const table: Table<AccessRequirementSearchResult> =\n useReactTable<AccessRequirementSearchResult>({\n data: accessRequirements,\n columns: columns,\n state: {\n sorting: sortingState,\n columnFilters: columnFilters,\n },\n getFacetedUniqueValues: (\n table: Table<AccessRequirementSearchResult>,\n columnId: string,\n ) => {\n if (columnId === 'type') {\n // Hard-code the set of possible access requirement types with count = 0 to indicate that we don't have facet counts.\n return () =>\n new Map(ALL_ACCESS_REQUIREMENT_CONCRETE_TYPES.map(v => [v, 0]))\n }\n return defaultGetFacetedUniqueValues<AccessRequirementSearchResult>()(\n table,\n columnId,\n )\n },\n onSortingChange: setSortingState,\n onColumnFiltersChange: onColumnFiltersChange,\n getRowId: row => row.id,\n getCoreRowModel: getCoreRowModel(),\n columnResizeMode: 'onChange',\n manualSorting: true,\n enableMultiSort: false,\n // Sort is required for this API call, so prevent the user from removing the sort.\n enableSortingRemoval: false,\n manualFiltering: true,\n })\n\n return { table, isLoading, hasNextPage, fetchNextPage, isFetchingNextPage }\n}\n"],"names":["accessRequirementConcreteTypeValueToDisplayValue","accessRequirementConcreteTypeValue","TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","ALL_ACCESS_REQUIREMENT_CONCRETE_TYPES","isIntegerInput","v","columnHelper","createColumnHelper","columns","props","jsx","ColumnHeader","getValue","Link","PRODUCTION_ENDPOINT_CONFIG","Fragment","projectId","jsxs","EntityLink","Typography","UserOrTeamBadge","ACT_TEAM_ID","reviewerId","formatDate","dayjs","DEFAULT_SORTING_STATE","columnSortToAccessRequirementSearchSort","columnSort","direction","getTypeFilterFromColumnFilters","columnFilters","filterValues","f","useAccessRequirementTable","opts","nameOrID","relatedProjectId","accessType","typeFilter","onTypeFilterChange","noop","sortingState","setSortingState","useState","useMemo","onColumnFiltersChange","useCallback","updaterOrValue","newValue","apiRequestSortState","searchRequest","nameContains","ids","nameOrIDTrimmed","data","hasNextPage","fetchNextPage","isLoading","isFetchingNextPage","useSearchAccessRequirementsInfinite","accessRequirements","page","useReactTable","table","columnId","defaultGetFacetedUniqueValues","row","getCoreRowModel"],"mappings":"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"}
1
+ {"version":3,"file":"UseAccessRequirementTable.js","sources":["../../../src/components/dataaccess/UseAccessRequirementTable.tsx"],"sourcesContent":["import { useSearchAccessRequirementsInfinite } from '@/synapse-queries'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { ACT_TEAM_ID } from '@/utils/SynapseConstants'\nimport { Link, Typography } from '@mui/material'\nimport {\n ACCESS_REQUIREMENT_CONCRETE_TYPE,\n ACCESS_TYPE,\n AccessRequirementSearchRequest,\n AccessRequirementSearchResult,\n AccessRequirementSearchSort,\n ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n SortDirection,\n TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n} from '@sage-bionetworks/synapse-types'\nimport {\n ColumnFiltersState,\n ColumnSort,\n createColumnHelper,\n getCoreRowModel,\n getFacetedUniqueValues as defaultGetFacetedUniqueValues,\n SortingState,\n Table,\n Updater,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport { noop } from 'lodash-es'\nimport { Fragment, useCallback, useMemo, useState } from 'react'\nimport { EntityLink } from '../EntityLink'\nimport ColumnHeader from '../TanStackTable/ColumnHeader'\nimport UserOrTeamBadge from '../UserOrTeamBadge/UserOrTeamBadge'\n\nexport function accessRequirementConcreteTypeValueToDisplayValue(\n accessRequirementConcreteTypeValue: ACCESS_REQUIREMENT_CONCRETE_TYPE,\n) {\n switch (accessRequirementConcreteTypeValue) {\n case TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE:\n return TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n case SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE: {\n return SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n }\n case MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE:\n return MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n case ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE:\n return ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n case LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE:\n return LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n default:\n return 'Unknown'\n }\n}\n\nconst ALL_ACCESS_REQUIREMENT_CONCRETE_TYPES = [\n TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n]\n\nconst isIntegerInput = (v: string): boolean => {\n return /^\\d+$/.test(v)\n}\nconst columnHelper = createColumnHelper<AccessRequirementSearchResult>()\nconst columns = [\n columnHelper.accessor('id', {\n header: props => <ColumnHeader {...props} title={'AR ID'} />,\n cell: ({ getValue }) => (\n <Link\n href={`${\n PRODUCTION_ENDPOINT_CONFIG.PORTAL\n }AccessRequirement:AR_ID=${getValue()}`}\n >\n {getValue()}\n </Link>\n ),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('name', {\n header: props => (\n <ColumnHeader {...props} title={'Access Requirement Name'} />\n ),\n cell: ({ getValue }) => getValue(),\n enableSorting: true,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('type', {\n header: props => <ColumnHeader {...props} title={'Type'} />,\n cell: ({ getValue }) =>\n accessRequirementConcreteTypeValueToDisplayValue(getValue()),\n enableSorting: false,\n enableColumnFilter: true,\n meta: {\n filterVariant: 'enumeration',\n getDisplayText: accessRequirementConcreteTypeValueToDisplayValue,\n enableMultipleSelect: false,\n },\n }),\n columnHelper.accessor('relatedProjectIds', {\n header: props => <ColumnHeader {...props} title={'Related to Projects'} />,\n cell: ({ getValue }) => (\n <>\n {getValue().map(projectId => (\n <Fragment key={projectId}>\n <EntityLink entity={projectId} />{' '}\n <Typography\n component={'span'}\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n ({projectId})\n </Typography>\n <br />\n </Fragment>\n ))}\n </>\n ),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('reviewerIds', {\n header: props => <ColumnHeader {...props} title={'Reviewer'} />,\n cell: ({ getValue }) => (\n <>\n {getValue().length === 0 ? (\n <UserOrTeamBadge principalId={ACT_TEAM_ID} />\n ) : (\n getValue().map(reviewerId => (\n <UserOrTeamBadge key={reviewerId} principalId={reviewerId} />\n ))\n )}\n </>\n ),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('modifiedOn', {\n header: props => <ColumnHeader {...props} title={'Last Modified'} />,\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('createdOn', {\n header: props => <ColumnHeader {...props} title={'Created On'} />,\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n enableSorting: true,\n enableColumnFilter: false,\n }),\n]\nconst DEFAULT_SORTING_STATE: SortingState = [\n {\n desc: true,\n id: 'createdOn',\n },\n]\ntype UseAccessRequirementTableOptions = {\n nameOrID?: string\n relatedProjectId?: string\n reviewerId?: string\n accessType?: ACCESS_TYPE\n typeFilter?: string\n onTypeFilterChange?: (typeFilter: string | undefined) => void\n}\n\nfunction columnSortToAccessRequirementSearchSort(\n columnSort: ColumnSort,\n): AccessRequirementSearchSort {\n const direction: SortDirection = columnSort.desc ? 'DESC' : 'ASC'\n\n if (columnSort.id == 'createdOn') {\n return {\n field: 'CREATED_ON',\n direction,\n }\n } else if (columnSort.id == 'name') {\n return {\n field: 'NAME',\n direction,\n }\n } else {\n throw new Error(\n `Could not map sort field ${columnSort.id} to AccessRequirementSortField`,\n )\n }\n}\n\nfunction getTypeFilterFromColumnFilters(\n columnFilters?: ColumnFiltersState,\n): string | undefined {\n const matchingFilter = (columnFilters || []).find(f => f.id === 'type')\n const filterValues = matchingFilter?.value\n if (filterValues) {\n return (filterValues as string[])[0]\n }\n return undefined\n}\n\nexport function useAccessRequirementTable(\n opts: UseAccessRequirementTableOptions,\n) {\n const {\n nameOrID,\n relatedProjectId,\n reviewerId,\n accessType,\n typeFilter,\n onTypeFilterChange = noop,\n } = opts\n const [sortingState, setSortingState] = useState<SortingState>(\n DEFAULT_SORTING_STATE,\n )\n\n const columnFilters = useMemo(\n () => (typeFilter ? [{ id: 'type', value: [typeFilter] }] : []),\n [typeFilter],\n )\n\n const onColumnFiltersChange = useCallback(\n (updaterOrValue: Updater<ColumnFiltersState>) => {\n const newValue: ColumnFiltersState =\n typeof updaterOrValue === 'function'\n ? updaterOrValue(columnFilters)\n : updaterOrValue\n\n // Unlike the other controls, the type filter control is inside the table. State is still stored in the parent component.\n // When the user updates the filter, this function will fire, so we must propagate changes to the type filter to the parent.\n const typeFilter = getTypeFilterFromColumnFilters(newValue)\n onTypeFilterChange(typeFilter)\n },\n [columnFilters, onTypeFilterChange],\n )\n\n // Map the @tanstack/react-table sort state object to the Synapse API object\n const apiRequestSortState: AccessRequirementSearchRequest['sort'] = useMemo(\n () => sortingState.map(columnSortToAccessRequirementSearchSort),\n [sortingState],\n )\n\n const searchRequest: Omit<AccessRequirementSearchRequest, 'nextPageToken'> =\n useMemo(() => {\n // SWC-6615: If the input string is a single integer, assume it's the AR ID. Otherwise, use as the nameContains field.\n let nameContains: string | undefined = undefined\n let ids: number[] | undefined = undefined\n if (nameOrID !== undefined) {\n const nameOrIDTrimmed = nameOrID.trim()\n if (isIntegerInput(nameOrIDTrimmed)) {\n ids = [Number.parseInt(nameOrIDTrimmed)]\n } else {\n nameContains = nameOrIDTrimmed\n }\n }\n return {\n ids,\n nameContains,\n relatedProjectId,\n reviewerId,\n accessType,\n sort: apiRequestSortState,\n type: typeFilter,\n }\n }, [\n nameOrID,\n relatedProjectId,\n reviewerId,\n accessType,\n apiRequestSortState,\n typeFilter,\n ])\n\n const { data, hasNextPage, fetchNextPage, isLoading, isFetchingNextPage } =\n useSearchAccessRequirementsInfinite(searchRequest)\n\n const accessRequirements = useMemo(\n () => data?.pages.flatMap(page => page.results) ?? [],\n [data],\n )\n\n const table: Table<AccessRequirementSearchResult> =\n useReactTable<AccessRequirementSearchResult>({\n data: accessRequirements,\n columns: columns,\n state: {\n sorting: sortingState,\n columnFilters: columnFilters,\n },\n getFacetedUniqueValues: (\n table: Table<AccessRequirementSearchResult>,\n columnId: string,\n ) => {\n if (columnId === 'type') {\n // Hard-code the set of possible access requirement types with count = 0 to indicate that we don't have facet counts.\n return () =>\n new Map(ALL_ACCESS_REQUIREMENT_CONCRETE_TYPES.map(v => [v, 0]))\n }\n return defaultGetFacetedUniqueValues<AccessRequirementSearchResult>()(\n table,\n columnId,\n )\n },\n onSortingChange: setSortingState,\n onColumnFiltersChange: onColumnFiltersChange,\n getRowId: row => row.id,\n getCoreRowModel: getCoreRowModel(),\n columnResizeMode: 'onChange',\n manualSorting: true,\n enableMultiSort: false,\n // Sort is required for this API call, so prevent the user from removing the sort.\n enableSortingRemoval: false,\n manualFiltering: true,\n })\n\n return { table, isLoading, hasNextPage, fetchNextPage, isFetchingNextPage }\n}\n"],"names":["accessRequirementConcreteTypeValueToDisplayValue","accessRequirementConcreteTypeValue","TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","ALL_ACCESS_REQUIREMENT_CONCRETE_TYPES","isIntegerInput","v","columnHelper","createColumnHelper","columns","props","jsx","ColumnHeader","getValue","Link","PRODUCTION_ENDPOINT_CONFIG","Fragment","projectId","jsxs","EntityLink","Typography","UserOrTeamBadge","ACT_TEAM_ID","reviewerId","formatDate","dayjs","DEFAULT_SORTING_STATE","columnSortToAccessRequirementSearchSort","columnSort","direction","getTypeFilterFromColumnFilters","columnFilters","filterValues","f","useAccessRequirementTable","opts","nameOrID","relatedProjectId","accessType","typeFilter","onTypeFilterChange","noop","sortingState","setSortingState","useState","useMemo","onColumnFiltersChange","useCallback","updaterOrValue","newValue","apiRequestSortState","searchRequest","nameContains","ids","nameOrIDTrimmed","data","hasNextPage","fetchNextPage","isLoading","isFetchingNextPage","useSearchAccessRequirementsInfinite","accessRequirements","page","useReactTable","table","columnId","defaultGetFacetedUniqueValues","row","getCoreRowModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCO,SAASA,EACdC,GACA;AACA,UAAQA,GAAA;AAAA,IACN,KAAKC;AACH,aAAOC;AAAA,IACT,KAAKC;AACH,aAAOC;AAAA,IAET,KAAKC;AACH,aAAOC;AAAA,IACT,KAAKC;AACH,aAAOC;AAAA,IACT,KAAKC;AACH,aAAOC;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;AAEA,MAAMC,KAAwC;AAAA,EAC5CV;AAAA,EACAE;AAAA,EACAE;AAAA,EACAE;AAAA,EACAE;AACF,GAEMG,KAAiB,CAACC,MACf,QAAQ,KAAKA,CAAC,GAEjBC,IAAeC,GAAA,GACfC,KAAU;AAAA,EACdF,EAAa,SAAS,MAAM;AAAA,IAC1B,QAAQ,CAAAG,MAAS,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,SAAS;AAAA,IAC1D,MAAM,CAAC,EAAE,UAAAG,EAAA,MACP,gBAAAF;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,MAAM,GACJC,EAA2B,MAC7B,2BAA2BF,GAAU;AAAA,QAEpC,UAAAA,EAAA;AAAA,MAAS;AAAA,IAAA;AAAA,IAGd,eAAe;AAAA,IACf,oBAAoB;AAAA,EAAA,CACrB;AAAA,EACDN,EAAa,SAAS,QAAQ;AAAA,IAC5B,QAAQ,CAAAG,MACN,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,2BAA2B;AAAA,IAE7D,MAAM,CAAC,EAAE,UAAAG,EAAA,MAAeA,EAAA;AAAA,IACxB,eAAe;AAAA,IACf,oBAAoB;AAAA,EAAA,CACrB;AAAA,EACDN,EAAa,SAAS,QAAQ;AAAA,IAC5B,QAAQ,CAAAG,MAAS,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,QAAQ;AAAA,IACzD,MAAM,CAAC,EAAE,UAAAG,QACPrB,EAAiDqB,GAAU;AAAA,IAC7D,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,MAAM;AAAA,MACJ,eAAe;AAAA,MACf,gBAAgBrB;AAAA,MAChB,sBAAsB;AAAA,IAAA;AAAA,EACxB,CACD;AAAA,EACDe,EAAa,SAAS,qBAAqB;AAAA,IACzC,QAAQ,CAAAG,MAAS,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,uBAAuB;AAAA,IACxE,MAAM,CAAC,EAAE,UAAAG,EAAA,MACP,gBAAAF,EAAAK,GAAA,EACG,UAAAH,EAAA,EAAW,IAAI,CAAAI,MACd,gBAAAC,EAACF,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAL,EAACQ,IAAA,EAAW,QAAQF,EAAA,CAAW;AAAA,MAAG;AAAA,MAClC,gBAAAC;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,WAAW;AAAA,UACX,SAAS;AAAA,UACT,IAAI;AAAA,YACF,OAAO;AAAA,UAAA;AAAA,UAEV,UAAA;AAAA,YAAA;AAAA,YACGH;AAAA,YAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,wBAEb,MAAA,CAAA,CAAG;AAAA,IAAA,KAXSA,CAYf,CACD,GACH;AAAA,IAEF,eAAe;AAAA,IACf,oBAAoB;AAAA,EAAA,CACrB;AAAA,EACDV,EAAa,SAAS,eAAe;AAAA,IACnC,QAAQ,CAAAG,MAAS,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,YAAY;AAAA,IAC7D,MAAM,CAAC,EAAE,UAAAG,+BAEJ,UAAAA,EAAA,EAAW,WAAW,IACrB,gBAAAF,EAACU,GAAA,EAAgB,aAAaC,EAAA,CAAa,IAE3CT,EAAA,EAAW,IAAI,CAAAU,MACb,gBAAAZ,EAACU,GAAA,EAAiC,aAAaE,EAAA,GAAzBA,CAAqC,CAC5D,EAAA,CAEL;AAAA,IAEF,eAAe;AAAA,IACf,oBAAoB;AAAA,EAAA,CACrB;AAAA,EACDhB,EAAa,SAAS,cAAc;AAAA,IAClC,QAAQ,CAAAG,MAAS,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,iBAAiB;AAAA,IAClE,MAAM,CAAC,EAAE,UAAAG,EAAA,MAAeW,EAAWC,EAAMZ,EAAA,CAAU,CAAC;AAAA,IACpD,eAAe;AAAA,IACf,oBAAoB;AAAA,EAAA,CACrB;AAAA,EACDN,EAAa,SAAS,aAAa;AAAA,IACjC,QAAQ,CAAAG,MAAS,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,cAAc;AAAA,IAC/D,MAAM,CAAC,EAAE,UAAAG,EAAA,MAAeW,EAAWC,EAAMZ,EAAA,CAAU,CAAC;AAAA,IACpD,eAAe;AAAA,IACf,oBAAoB;AAAA,EAAA,CACrB;AACH,GACMa,KAAsC;AAAA,EAC1C;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,EAAA;AAER;AAUA,SAASC,GACPC,GAC6B;AAC7B,QAAMC,IAA2BD,EAAW,OAAO,SAAS;AAE5D,MAAIA,EAAW,MAAM;AACnB,WAAO;AAAA,MACL,OAAO;AAAA,MACP,WAAAC;AAAA,IAAA;AAEJ,MAAWD,EAAW,MAAM;AAC1B,WAAO;AAAA,MACL,OAAO;AAAA,MACP,WAAAC;AAAA,IAAA;AAGF,QAAM,IAAI;AAAA,IACR,4BAA4BD,EAAW,EAAE;AAAA,EAAA;AAG/C;AAEA,SAASE,GACPC,GACoB;AAEpB,QAAMC,KADkBD,KAAiB,IAAI,KAAK,CAAAE,MAAKA,EAAE,OAAO,MAAM,GACjC;AACrC,MAAID;AACF,WAAQA,EAA0B,CAAC;AAGvC;AAEO,SAASE,GACdC,GACA;AACA,QAAM;AAAA,IACJ,UAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,YAAAd;AAAA,IACA,YAAAe;AAAA,IACA,YAAAC;AAAA,IACA,oBAAAC,IAAqBC;AAAA,EAAA,IACnBN,GACE,CAACO,GAAcC,CAAe,IAAIC;AAAA,IACtClB;AAAA,EAAA,GAGIK,IAAgBc;AAAA,IACpB,MAAON,IAAa,CAAC,EAAE,IAAI,QAAQ,OAAO,CAACA,CAAU,EAAA,CAAG,IAAI,CAAA;AAAA,IAC5D,CAACA,CAAU;AAAA,EAAA,GAGPO,IAAwBC;AAAA,IAC5B,CAACC,MAAgD;AAC/C,YAAMC,IACJ,OAAOD,KAAmB,aACtBA,EAAejB,CAAa,IAC5BiB,GAIAT,IAAaT,GAA+BmB,CAAQ;AAC1D,MAAAT,EAAmBD,CAAU;AAAA,IAC/B;AAAA,IACA,CAACR,GAAeS,CAAkB;AAAA,EAAA,GAI9BU,IAA8DL;AAAA,IAClE,MAAMH,EAAa,IAAIf,EAAuC;AAAA,IAC9D,CAACe,CAAY;AAAA,EAAA,GAGTS,IACJN,EAAQ,MAAM;AAEZ,QAAIO,GACAC;AACJ,QAAIjB,MAAa,QAAW;AAC1B,YAAMkB,IAAkBlB,EAAS,KAAA;AACjC,MAAI/B,GAAeiD,CAAe,IAChCD,IAAM,CAAC,OAAO,SAASC,CAAe,CAAC,IAEvCF,IAAeE;AAAA,IAEnB;AACA,WAAO;AAAA,MACL,KAAAD;AAAA,MACA,cAAAD;AAAA,MACA,kBAAAf;AAAA,MACA,YAAAd;AAAA,MACA,YAAAe;AAAA,MACA,MAAMY;AAAA,MACN,MAAMX;AAAA,IAAA;AAAA,EAEV,GAAG;AAAA,IACDH;AAAA,IACAC;AAAA,IACAd;AAAA,IACAe;AAAA,IACAY;AAAA,IACAX;AAAA,EAAA,CACD,GAEG,EAAE,MAAAgB,GAAM,aAAAC,GAAa,eAAAC,GAAe,WAAAC,GAAW,oBAAAC,EAAA,IACnDC,EAAoCT,CAAa,GAE7CU,IAAqBhB;AAAA,IACzB,MAAMU,GAAM,MAAM,QAAQ,OAAQO,EAAK,OAAO,KAAK,CAAA;AAAA,IACnD,CAACP,CAAI;AAAA,EAAA;AAqCP,SAAO,EAAE,OAjCPQ,EAA6C;AAAA,IAC3C,MAAMF;AAAA,IACN,SAAApD;AAAA,IACA,OAAO;AAAA,MACL,SAASiC;AAAA,MACT,eAAAX;AAAA,IAAA;AAAA,IAEF,wBAAwB,CACtBiC,GACAC,MAEIA,MAAa,SAER,MACL,IAAI,IAAI7D,GAAsC,IAAI,OAAK,CAACE,GAAG,CAAC,CAAC,CAAC,IAE3D4D,EAAA;AAAA,MACLF;AAAAA,MACAC;AAAA,IAAA;AAAA,IAGJ,iBAAiBtB;AAAA,IACjB,uBAAAG;AAAA,IACA,UAAU,OAAOqB,EAAI;AAAA,IACrB,iBAAiBC,EAAA;AAAA,IACjB,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,iBAAiB;AAAA;AAAA,IAEjB,sBAAsB;AAAA,IACtB,iBAAiB;AAAA,EAAA,CAClB,GAEa,WAAAV,GAAW,aAAAF,GAAa,eAAAC,GAAe,oBAAAE,EAAA;AACzD;"}
@@ -9,7 +9,7 @@ import { StyledFormControl as ce } from "../styled/StyledFormControl.js";
9
9
  import { displayToast as de } from "../ToastMessage/ToastMessage.js";
10
10
  import { useGetDOI as me, useCreateOrUpdateDOI as ue } from "../../synapse-queries/doi/useDOI.js";
11
11
  import { useGetVersions as pe } from "../../synapse-queries/entity/useEntity.js";
12
- import { useGetEntityBundle as fe } from "../../synapse-queries/entity/useEntityBundle.js";
12
+ import fe from "../../synapse-queries/entity/useEntityBundle.js";
13
13
  import { useGetPortal as he } from "../../synapse-queries/portal/usePortal.js";
14
14
  import { useGetRealmPrincipals as ye } from "../../synapse-queries/realm/useRealmPrincipals.js";
15
15
  import { useGetCurrentUserProfile as ge } from "../../synapse-queries/user/useUserBundle.js";
@@ -30,7 +30,7 @@ import "universal-cookie";
30
30
  import "../../../utils/AppUtils/session/ApplicationSessionContext.js";
31
31
  import "../../../utils/context/FullContextProvider.js";
32
32
  import "../../../utils/context/DocumentMetadataContext.js";
33
- import '../../FullWidthAlert/FullWidthAlert.css';import '../../../style/components/_spinner.css';/* empty css */
33
+ import '../../Plot/SynapsePlot.css';import '../../FullWidthAlert/FullWidthAlert.css';import '../../../style/components/_spinner.css';/* empty css */
34
34
  import "react-router";
35
35
  import "@mui/icons-material/Close";
36
36
  import "../../styled/StyledPopover.js";
@@ -53,11 +53,14 @@ import "@mui/material/SvgIcon";
53
53
  import "../../../assets/icons/AccessPending.svg.js";
54
54
  import "../../../assets/icons/AccessPendingCloud.svg.js";
55
55
  import "../../../assets/icons/FileWithShield.svg.js";
56
+ import "../../../assets/icons/MultiFile.svg.js";
57
+ import "../../../assets/icons/UnpackagableFile.svg.js";
56
58
  import "../../../assets/icons/bioChemicalPhysical.svg.js";
57
59
  import "../../../assets/icons/computationalTool.svg.js";
58
60
  import "../../../assets/icons/dataReuse.svg.js";
59
61
  import "../../../assets/icons/inSilicoModel.svg.js";
60
62
  import "../../../assets/icons/modelSystem.svg.js";
63
+ import "../../../assets/mui_components/PackagableFile.svg.js";
61
64
  import "../../../assets/icons/spatialProfiling.svg.js";
62
65
  /* empty css */
63
66
  import "../../Authentication/AuthenticationMethodSelection.js";
@@ -83,6 +86,7 @@ import "../../../assets/icons/study-complete.svg.js";
83
86
  import "../../../assets/icons/translational.svg.js";
84
87
  import "../../../assets/icons/tree_horizontal.svg.js";
85
88
  import "../../../assets/icons/standardDataModel.svg.js";
89
+ import "../../../assets/icons/Challenge.svg.js";
86
90
  import "react-intersection-observer";
87
91
  import "@rjsf/utils";
88
92
  import "../../SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js";
@@ -100,10 +104,10 @@ import "../../../assets/icons/DoubleQuotes.svg.js";
100
104
  import "../../EntityDownloadConfirmation/EntityDownloadConfirmation.js";
101
105
  import "../../QueryContext/QueryContext.js";
102
106
  import "../../QueryVisualizationWrapper/QueryVisualizationContext.js";
107
+ import "react-share";
103
108
  import "../../GenericCard/GenericCard.js";
104
109
  import "@mui/system";
105
110
  import "../../GenericCard/Linkify.js";
106
- import "react-share";
107
111
  import "jotai";
108
112
  import "lodash-es/noop";
109
113
  import "../../QueryWrapper/TableRowSelectionState.js";
@@ -164,7 +168,6 @@ import "@mui/x-date-pickers/AdapterDayjs";
164
168
  import "@mui/x-date-pickers/LocalizationProvider";
165
169
  import "../../FeaturedDataTabs/FacetPlotsCardGrid.js";
166
170
  import "../../Forum/ForumTable.js";
167
- import "@mui/material/IconButton";
168
171
  import "@mui/icons-material/NavigateNext";
169
172
  import "@react-google-maps/api";
170
173
  import "../../Markdown/MarkdownUtils.js";
@@ -178,6 +181,7 @@ import "lodash-es/orderBy";
178
181
  import "../../styled/LargeButton.js";
179
182
  import "../../../assets/illustrations/diagonalLinePattern.svg.js";
180
183
  import "@upsetjs/react";
184
+ /* empty css */
181
185
  import "reactflow";
182
186
  import "../../ProvenanceGraph/ProvenanceUtils.js";
183
187
  import "reactflow/dist/style.css";
@@ -203,6 +207,7 @@ import "lodash-es/set";
203
207
  import "lodash-es/trimStart";
204
208
  import "../../SynapseForm/SynapseFormSubmissionGrid.js";
205
209
  import "../../SynapseChat/AccessLevelMenu.js";
210
+ import "react-draggable";
206
211
  import "../../TimelinePlot/phasesQueryResponseData.js";
207
212
  import "../../EntityHeaderTable/EntityHeaderTable.js";
208
213
  import "../../MuiContainer.js";
@@ -212,7 +217,7 @@ import "../../PortalAclEditor/PortalAclEditor.js";
212
217
  import "../../SynapseHomepageV2/HomepageStyles.js";
213
218
  import { DownloadConfirmationUI as D } from "../DownloadConfirmationUI.js";
214
219
  import { displayFilesWereAddedToDownloadListSuccess as L } from "../DownloadConfirmationUtils.js";
215
- function Li(p) {
220
+ function qi(p) {
216
221
  const { addToDownloadListRequest: t, onClose: o } = p, { downloadCartPageUrl: e } = u(), {
217
222
  data: r,
218
223
  isLoading: n,
@@ -241,6 +246,6 @@ function Li(p) {
241
246
  );
242
247
  }
243
248
  export {
244
- Li as default
249
+ qi as default
245
250
  };
246
251
  //# sourceMappingURL=AddToDownloadListConfirmationAlert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddToDownloadListConfirmationAlert.js","sources":["../../../../src/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.tsx"],"sourcesContent":["import { displayToast } from '@/components/index'\nimport { ErrorBanner } from '@/components/error/ErrorBanner'\nimport {\n useAddToDownloadList,\n useGetAddToDownloadListStats,\n} from '@/synapse-queries/download/useDownloadList'\nimport { useSynapseContext } from '@/utils'\nimport { AddToDownloadListRequest } from '@sage-bionetworks/synapse-client'\nimport DownloadConfirmationUI from '../DownloadConfirmationUI'\nimport { displayFilesWereAddedToDownloadListSuccess } from '../DownloadConfirmationUtils'\n\nexport type AddToDownloadListConfirmationAlertProps = {\n /**\n * The \"AddToDownloadListRequest\" that would be used to add items to the download list.\n */\n addToDownloadListRequest: AddToDownloadListRequest\n /**\n * Invoked when the dialog is closed, either by cancelling or successfully adding to the download list.\n */\n onClose: () => void\n}\n\n/**\n * A component that displays a confirmation alert when adding multiple items to the download list though a container or\n * query.\n * @param props\n * @constructor\n */\nfunction AddToDownloadListConfirmationAlert(\n props: AddToDownloadListConfirmationAlertProps,\n) {\n const { addToDownloadListRequest, onClose } = props\n const { downloadCartPageUrl } = useSynapseContext()\n\n const {\n data,\n isLoading,\n error: statsError,\n } = useGetAddToDownloadListStats({\n concreteType:\n 'org.sagebionetworks.repo.model.download.AddToDownloadListStatsRequest',\n request: addToDownloadListRequest,\n })\n\n const { mutate: addToDownloadList, isPending: isAddingToDownloadCart } =\n useAddToDownloadList({\n onSuccess: () => {\n displayFilesWereAddedToDownloadListSuccess(downloadCartPageUrl)\n onClose()\n },\n onError: error => {\n displayToast(error.reason, 'danger')\n onClose()\n },\n })\n\n const fileCount = data?.fileCount\n const fileSizeTotal = data?.fileSize\n\n if (statsError) {\n return <ErrorBanner error={statsError} />\n }\n\n return (\n <DownloadConfirmationUI\n onAddToDownloadCart={() => addToDownloadList(addToDownloadListRequest)}\n fileCount={fileCount}\n fileSize={fileSizeTotal}\n isAddingToDownloadCart={isAddingToDownloadCart}\n isLoadingStats={isLoading}\n onCancel={onClose}\n />\n )\n}\n\nexport default AddToDownloadListConfirmationAlert\n"],"names":["AddToDownloadListConfirmationAlert","props","addToDownloadListRequest","onClose","downloadCartPageUrl","useSynapseContext","data","isLoading","statsError","useGetAddToDownloadListStats","addToDownloadList","isAddingToDownloadCart","useAddToDownloadList","displayFilesWereAddedToDownloadListSuccess","error","displayToast","fileCount","fileSizeTotal","jsx","ErrorBanner","DownloadConfirmationUI"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,SAASA,GACPC,GACA;AACA,QAAM,EAAE,0BAAAC,GAA0B,SAAAC,EAAA,IAAYF,GACxC,EAAE,qBAAAG,EAAA,IAAwBC,EAAA,GAE1B;AAAA,IACJ,MAAAC;AAAA,IACA,WAAAC;AAAA,IACA,OAAOC;AAAA,EAAA,IACLC,EAA6B;AAAA,IAC/B,cACE;AAAA,IACF,SAASP;AAAA,EAAA,CACV,GAEK,EAAE,QAAQQ,GAAmB,WAAWC,EAAA,IAC5CC,EAAqB;AAAA,IACnB,WAAW,MAAM;AACf,MAAAC,EAA2CT,CAAmB,GAC9DD,EAAA;AAAA,IACF;AAAA,IACA,SAAS,CAAAW,MAAS;AAChB,MAAAC,EAAaD,EAAM,QAAQ,QAAQ,GACnCX,EAAA;AAAA,IACF;AAAA,EAAA,CACD,GAEGa,IAAYV,GAAM,WAClBW,IAAgBX,GAAM;AAE5B,SAAIE,IACK,gBAAAU,EAACC,GAAA,EAAY,OAAOX,EAAA,CAAY,IAIvC,gBAAAU;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,qBAAqB,MAAMV,EAAkBR,CAAwB;AAAA,MACrE,WAAAc;AAAA,MACA,UAAUC;AAAA,MACV,wBAAAN;AAAA,MACA,gBAAgBJ;AAAA,MAChB,UAAUJ;AAAA,IAAA;AAAA,EAAA;AAGhB;"}
1
+ {"version":3,"file":"AddToDownloadListConfirmationAlert.js","sources":["../../../../src/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.tsx"],"sourcesContent":["import { displayToast } from '@/components/index'\nimport { ErrorBanner } from '@/components/error/ErrorBanner'\nimport {\n useAddToDownloadList,\n useGetAddToDownloadListStats,\n} from '@/synapse-queries/download/useDownloadList'\nimport { useSynapseContext } from '@/utils'\nimport { AddToDownloadListRequest } from '@sage-bionetworks/synapse-client'\nimport DownloadConfirmationUI from '../DownloadConfirmationUI'\nimport { displayFilesWereAddedToDownloadListSuccess } from '../DownloadConfirmationUtils'\n\nexport type AddToDownloadListConfirmationAlertProps = {\n /**\n * The \"AddToDownloadListRequest\" that would be used to add items to the download list.\n */\n addToDownloadListRequest: AddToDownloadListRequest\n /**\n * Invoked when the dialog is closed, either by cancelling or successfully adding to the download list.\n */\n onClose: () => void\n}\n\n/**\n * A component that displays a confirmation alert when adding multiple items to the download list though a container or\n * query.\n * @param props\n * @constructor\n */\nfunction AddToDownloadListConfirmationAlert(\n props: AddToDownloadListConfirmationAlertProps,\n) {\n const { addToDownloadListRequest, onClose } = props\n const { downloadCartPageUrl } = useSynapseContext()\n\n const {\n data,\n isLoading,\n error: statsError,\n } = useGetAddToDownloadListStats({\n concreteType:\n 'org.sagebionetworks.repo.model.download.AddToDownloadListStatsRequest',\n request: addToDownloadListRequest,\n })\n\n const { mutate: addToDownloadList, isPending: isAddingToDownloadCart } =\n useAddToDownloadList({\n onSuccess: () => {\n displayFilesWereAddedToDownloadListSuccess(downloadCartPageUrl)\n onClose()\n },\n onError: error => {\n displayToast(error.reason, 'danger')\n onClose()\n },\n })\n\n const fileCount = data?.fileCount\n const fileSizeTotal = data?.fileSize\n\n if (statsError) {\n return <ErrorBanner error={statsError} />\n }\n\n return (\n <DownloadConfirmationUI\n onAddToDownloadCart={() => addToDownloadList(addToDownloadListRequest)}\n fileCount={fileCount}\n fileSize={fileSizeTotal}\n isAddingToDownloadCart={isAddingToDownloadCart}\n isLoadingStats={isLoading}\n onCancel={onClose}\n />\n )\n}\n\nexport default AddToDownloadListConfirmationAlert\n"],"names":["AddToDownloadListConfirmationAlert","props","addToDownloadListRequest","onClose","downloadCartPageUrl","useSynapseContext","data","isLoading","statsError","useGetAddToDownloadListStats","addToDownloadList","isAddingToDownloadCart","useAddToDownloadList","displayFilesWereAddedToDownloadListSuccess","error","displayToast","fileCount","fileSizeTotal","jsx","ErrorBanner","DownloadConfirmationUI"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,SAASA,GACPC,GACA;AACA,QAAM,EAAE,0BAAAC,GAA0B,SAAAC,EAAA,IAAYF,GACxC,EAAE,qBAAAG,EAAA,IAAwBC,EAAA,GAE1B;AAAA,IACJ,MAAAC;AAAA,IACA,WAAAC;AAAA,IACA,OAAOC;AAAA,EAAA,IACLC,EAA6B;AAAA,IAC/B,cACE;AAAA,IACF,SAASP;AAAA,EAAA,CACV,GAEK,EAAE,QAAQQ,GAAmB,WAAWC,EAAA,IAC5CC,EAAqB;AAAA,IACnB,WAAW,MAAM;AACf,MAAAC,EAA2CT,CAAmB,GAC9DD,EAAA;AAAA,IACF;AAAA,IACA,SAAS,CAAAW,MAAS;AAChB,MAAAC,EAAaD,EAAM,QAAQ,QAAQ,GACnCX,EAAA;AAAA,IACF;AAAA,EAAA,CACD,GAEGa,IAAYV,GAAM,WAClBW,IAAgBX,GAAM;AAE5B,SAAIE,IACK,gBAAAU,EAACC,GAAA,EAAY,OAAOX,EAAA,CAAY,IAIvC,gBAAAU;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,qBAAqB,MAAMV,EAAkBR,CAAwB;AAAA,MACrE,WAAAc;AAAA,MACA,UAAUC;AAAA,MACV,wBAAAN;AAAA,MACA,gBAAgBJ;AAAA,MAChB,UAAUJ;AAAA,IAAA;AAAA,EAAA;AAGhB;"}
@@ -8,7 +8,7 @@ export type DownloadConfirmationUIProps = {
8
8
  };
9
9
  /**
10
10
  * This component is used to display the download confirmation dialog that presents to a user the number of files and the
11
- * total size of the files they are about to add to their download cart.
11
+ * total size of the files they are about to add to their download list.
12
12
  */
13
13
  export declare function DownloadConfirmationUI(props: DownloadConfirmationUIProps): import("react/jsx-runtime").JSX.Element;
14
14
  export default DownloadConfirmationUI;