synapse-react-client 4.0.2 → 4.0.3

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 (259) 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/AcknowledgementsPage/AcknowledgementsPage.js +4 -4
  66. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  67. package/dist/components/AddToDownloadListV2.js +10 -10
  68. package/dist/components/AddToDownloadListV2.js.map +1 -1
  69. package/dist/components/BasePortalCard/BasePortalCard.css +1 -1
  70. package/dist/components/BasePortalCard/BasePortalCard.d.ts +1 -2
  71. package/dist/components/BasePortalCard/BasePortalCard.d.ts.map +1 -1
  72. package/dist/components/BasePortalCard/BasePortalCard.js +21 -28
  73. package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
  74. package/dist/components/BasePortalCard/BasePortalCard.module.scss +7 -1
  75. package/dist/components/BasePortalCard/BasePortalCard.module.scss.js +11 -11
  76. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.d.ts.map +1 -1
  77. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js +24 -24
  78. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
  79. package/dist/components/CardContainerLogic/CardContainerLogic.d.ts +5 -1
  80. package/dist/components/CardContainerLogic/CardContainerLogic.d.ts.map +1 -1
  81. package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
  82. package/dist/components/CardContainerLogic/index.d.ts +1 -1
  83. package/dist/components/CardContainerLogic/index.d.ts.map +1 -1
  84. package/dist/components/CardDeck/TableQueryCardDeck.js +12 -9
  85. package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
  86. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js +33 -33
  87. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
  88. package/dist/components/ChangePassword/useChangePasswordFormState.js +5 -2
  89. package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
  90. package/dist/components/ComponentCollapse.d.ts +6 -10
  91. package/dist/components/ComponentCollapse.d.ts.map +1 -1
  92. package/dist/components/ComponentCollapse.js +31 -35
  93. package/dist/components/ComponentCollapse.js.map +1 -1
  94. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js +12 -9
  95. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  96. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js +8 -3
  97. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
  98. package/dist/components/DataGrid/SynapseGrid.js +8 -3
  99. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  100. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +8 -3
  101. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
  102. package/dist/components/DirectDownload/DirectDownload.d.ts.map +1 -1
  103. package/dist/components/DirectDownload/DirectDownload.js +23 -23
  104. package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
  105. package/dist/components/DownloadCart/AvailableForDownloadTable.d.ts +6 -2
  106. package/dist/components/DownloadCart/AvailableForDownloadTable.d.ts.map +1 -1
  107. package/dist/components/DownloadCart/AvailableForDownloadTable.js +10 -8
  108. package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
  109. package/dist/components/DownloadCart/CreatePackageV2.css +1 -0
  110. package/dist/components/DownloadCart/CreatePackageV2.d.ts.map +1 -1
  111. package/dist/components/DownloadCart/CreatePackageV2.js +50 -46
  112. package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
  113. package/dist/components/DownloadCart/CreatePackageV2.module.scss +38 -0
  114. package/dist/components/DownloadCart/CreatePackageV2.module.scss.js +14 -0
  115. package/dist/components/DownloadCart/CreatePackageV2.module.scss.js.map +1 -0
  116. package/dist/components/DownloadCart/DownloadCartPage.css +1 -0
  117. package/dist/components/DownloadCart/DownloadCartPage.d.ts.map +1 -1
  118. package/dist/components/DownloadCart/DownloadCartPage.js +316 -186
  119. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  120. package/dist/components/DownloadCart/DownloadCartPage.module.scss +217 -0
  121. package/dist/components/DownloadCart/DownloadCartPage.module.scss.js +48 -0
  122. package/dist/components/DownloadCart/DownloadCartPage.module.scss.js.map +1 -0
  123. package/dist/components/DownloadCart/DownloadDetails.js +1 -1
  124. package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
  125. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +33 -33
  126. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  127. package/dist/components/DownloadCart/DownloadListTable.d.ts +4 -1
  128. package/dist/components/DownloadCart/DownloadListTable.d.ts.map +1 -1
  129. package/dist/components/DownloadCart/DownloadListTable.js +156 -236
  130. package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
  131. package/dist/components/DownloadCart/ShowDownloadV2.js +5 -5
  132. package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
  133. package/dist/components/Ecosystem/EcosystemSkeleton.js +8 -3
  134. package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
  135. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +20 -20
  136. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  137. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +3 -3
  138. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
  139. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +6 -2
  140. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  141. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js +11 -8
  142. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
  143. package/dist/components/FullWidthAlert/FullWidthAlert.d.ts +2 -2
  144. package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
  145. package/dist/components/GenericCard/GenericCard.d.ts +5 -5
  146. package/dist/components/GenericCard/GenericCard.d.ts.map +1 -1
  147. package/dist/components/GenericCard/GenericCard.js +117 -103
  148. package/dist/components/GenericCard/GenericCard.js.map +1 -1
  149. package/dist/components/GenericCard/LabelMaybeWithIcon.d.ts +10 -0
  150. package/dist/components/GenericCard/LabelMaybeWithIcon.d.ts.map +1 -0
  151. package/dist/components/GenericCard/LabelMaybeWithIcon.js +33 -0
  152. package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -0
  153. package/dist/components/GenericCard/SynapseCardLabel.d.ts +2 -1
  154. package/dist/components/GenericCard/SynapseCardLabel.d.ts.map +1 -1
  155. package/dist/components/GenericCard/SynapseCardLabel.js +86 -81
  156. package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
  157. package/dist/components/GenericCard/TableRowGenericCard.d.ts +7 -1
  158. package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
  159. package/dist/components/GenericCard/TableRowGenericCard.js +239 -202
  160. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  161. package/dist/components/HeaderCard.js +17 -13
  162. package/dist/components/HeaderCard.js.map +1 -1
  163. package/dist/components/Icon/Icon.js +52 -52
  164. package/dist/components/Icon/Icon.js.map +1 -1
  165. package/dist/components/IconSvg/IconSvg.d.ts +1 -1
  166. package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
  167. package/dist/components/IconSvg/IconSvg.js +215 -171
  168. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  169. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -0
  170. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  171. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +103 -102
  172. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  173. package/dist/components/StorybookComponentWrapper.js +6 -3
  174. package/dist/components/StorybookComponentWrapper.js.map +1 -1
  175. package/dist/components/SynapseChat/SynapseChat.d.ts +7 -1
  176. package/dist/components/SynapseChat/SynapseChat.d.ts.map +1 -1
  177. package/dist/components/SynapseChat/SynapseChat.js +76 -67
  178. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  179. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts +2 -1
  180. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
  181. package/dist/components/SynapseChat/SynapseChatInteraction.js +83 -58
  182. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  183. package/dist/components/SynapseChat/SynapseChatMessage.d.ts +1 -0
  184. package/dist/components/SynapseChat/SynapseChatMessage.d.ts.map +1 -1
  185. package/dist/components/SynapseChat/SynapseChatMessage.js +16 -15
  186. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  187. package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts +12 -0
  188. package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts.map +1 -0
  189. package/dist/components/SynapseChat/SynapsePortalChatDialog.js +30 -0
  190. package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -0
  191. package/dist/components/SynapseChat/extractMessageFromTraceEvent.d.ts.map +1 -1
  192. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js +22 -16
  193. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
  194. package/dist/components/SynapseChat/index.d.ts +2 -0
  195. package/dist/components/SynapseChat/index.d.ts.map +1 -1
  196. package/dist/components/SynapseChat/index.js +5 -3
  197. package/dist/components/SynapseChat/index.js.map +1 -1
  198. package/dist/components/SynapseChat/useChatState.d.ts +1 -1
  199. package/dist/components/SynapseChat/useChatState.d.ts.map +1 -1
  200. package/dist/components/SynapseChat/useChatState.js +10 -7
  201. package/dist/components/SynapseChat/useChatState.js.map +1 -1
  202. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +25 -25
  203. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  204. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +13 -13
  205. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  206. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js +9 -9
  207. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
  208. package/dist/components/TextToComponentCollapse.d.ts +16 -0
  209. package/dist/components/TextToComponentCollapse.d.ts.map +1 -0
  210. package/dist/components/TextToComponentCollapse.js +29 -0
  211. package/dist/components/TextToComponentCollapse.js.map +1 -0
  212. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js +8 -3
  213. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
  214. package/dist/components/download_list/DownloadConfirmationUI.d.ts +1 -1
  215. package/dist/components/download_list/DownloadConfirmationUI.js +22 -22
  216. package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
  217. package/dist/components/download_list/DownloadConfirmationUtils.js +4 -4
  218. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  219. package/dist/components/index.js +85 -83
  220. package/dist/components/index.js.map +1 -1
  221. package/dist/components/row_renderers/ObservationCard.js +12 -11
  222. package/dist/components/row_renderers/ObservationCard.js.map +1 -1
  223. package/dist/components/row_renderers/utils/CardFooter.d.ts +1 -3
  224. package/dist/components/row_renderers/utils/CardFooter.d.ts.map +1 -1
  225. package/dist/components/row_renderers/utils/CardFooter.js +31 -45
  226. package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
  227. package/dist/components/table/CsvPreview/CsvPreview.js +8 -3
  228. package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
  229. package/dist/components/table/CsvPreview/CsvPreviewDialog.js +8 -3
  230. package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
  231. package/dist/features/curator/GridPage/GridPage.js +8 -3
  232. package/dist/features/curator/GridPage/GridPage.js.map +1 -1
  233. package/dist/features/curator/GridPage/components/GridPageTitle.js +8 -3
  234. package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
  235. package/dist/index.js +137 -135
  236. package/dist/index.js.map +1 -1
  237. package/dist/style/components/_all.scss +0 -1
  238. package/dist/style/components/_cards.scss +22 -0
  239. package/dist/style/components/_download-list-v2.scss +1 -1
  240. package/dist/style/components/_query-wrapper-plot-nav.scss +13 -0
  241. package/dist/style/main.css +1 -1
  242. package/dist/tsconfig.build.tsbuildinfo +1 -1
  243. package/dist/utils/AppUtils/session/ApplicationSessionManager.d.ts.map +1 -1
  244. package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
  245. package/dist/utils/context/FullContextProvider.js +9 -9
  246. package/dist/utils/context/FullContextProvider.js.map +1 -1
  247. package/dist/utils/context/SynapseContext.d.ts.map +1 -1
  248. package/dist/utils/context/SynapseContext.js +1 -0
  249. package/dist/utils/context/SynapseContext.js.map +1 -1
  250. package/dist/utils/functions/SqlFunctions.d.ts +4 -0
  251. package/dist/utils/functions/SqlFunctions.d.ts.map +1 -1
  252. package/dist/utils/functions/SqlFunctions.js +25 -23
  253. package/dist/utils/functions/SqlFunctions.js.map +1 -1
  254. package/package.json +5 -5
  255. package/dist/assets/themed_icons/Challenge.d.ts +0 -3
  256. package/dist/assets/themed_icons/Challenge.d.ts.map +0 -1
  257. package/dist/assets/themed_icons/Challenge.js +0 -25
  258. package/dist/assets/themed_icons/Challenge.js.map +0 -1
  259. package/dist/style/components/_download-cart-page.scss +0 -204
@@ -62,7 +62,7 @@ const We = (r) => {
62
62
  queryTerm: r
63
63
  };
64
64
  return encodeURIComponent(JSON.stringify(o));
65
- }, s = (r) => {
65
+ }, l = (r) => {
66
66
  const {
67
67
  tooltip: o,
68
68
  iconName: d,
@@ -122,7 +122,7 @@ function Je({
122
122
  );
123
123
  let y = D?.pages[0].results.length ?? 0;
124
124
  D?.pages[0].nextPageToken && (y = `${y}+`);
125
- const l = (i) => {
125
+ const s = (i) => {
126
126
  f(!0), h(i);
127
127
  }, n = () => {
128
128
  f(!1), h(void 0);
@@ -154,18 +154,18 @@ function Je({
154
154
  /* @__PURE__ */ t(x, { children: [
155
155
  S && a && /* @__PURE__ */ t(p, { children: [
156
156
  /* @__PURE__ */ e(
157
- s,
157
+ l,
158
158
  {
159
159
  tooltip: "Projects",
160
160
  iconName: "dashboard",
161
161
  onClickOpenNavMenu: 0,
162
162
  isCurrentlySelectedItem: c == 0,
163
163
  handleDrawerClose: n,
164
- handleDrawerOpen: l
164
+ handleDrawerOpen: s
165
165
  }
166
166
  ),
167
167
  /* @__PURE__ */ e(
168
- s,
168
+ l,
169
169
  {
170
170
  tooltip: "Favorites",
171
171
  iconName: "favTwoTone",
@@ -173,21 +173,21 @@ function Je({
173
173
  `/Profile:${a.ownerId}/favorites`
174
174
  ),
175
175
  handleDrawerClose: n,
176
- handleDrawerOpen: l
176
+ handleDrawerOpen: s
177
177
  }
178
178
  ),
179
179
  /* @__PURE__ */ e(
180
- s,
180
+ l,
181
181
  {
182
182
  tooltip: "Teams",
183
183
  iconName: "peopleTwoTone",
184
184
  onClickGoToPlace: () => o(`/Profile:${a.ownerId}/teams`),
185
185
  handleDrawerClose: n,
186
- handleDrawerOpen: l
186
+ handleDrawerOpen: s
187
187
  }
188
188
  ),
189
189
  /* @__PURE__ */ e(
190
- s,
190
+ l,
191
191
  {
192
192
  tooltip: "Challenges",
193
193
  iconName: "challengesTwoTone",
@@ -195,57 +195,57 @@ function Je({
195
195
  `/Profile:${a.ownerId}/challenges`
196
196
  ),
197
197
  handleDrawerClose: n,
198
- handleDrawerOpen: l
198
+ handleDrawerOpen: s
199
199
  }
200
200
  ),
201
201
  /* @__PURE__ */ e(
202
- s,
202
+ l,
203
203
  {
204
- tooltip: "Download Cart",
204
+ tooltip: "Download List",
205
205
  iconName: "download",
206
206
  onClickGoToPlace: () => o("/DownloadCart:0"),
207
207
  badgeContent: _,
208
208
  handleDrawerClose: n,
209
- handleDrawerOpen: l
209
+ handleDrawerOpen: s
210
210
  }
211
211
  ),
212
212
  /* @__PURE__ */ e(
213
- s,
213
+ l,
214
214
  {
215
215
  tooltip: "Trash Can",
216
216
  iconName: "delete",
217
217
  onClickGoToPlace: () => o("/Trash:0"),
218
218
  handleDrawerClose: n,
219
- handleDrawerOpen: l
219
+ handleDrawerOpen: s
220
220
  }
221
221
  ),
222
222
  T?.isARReviewer && /* @__PURE__ */ e(
223
- s,
223
+ l,
224
224
  {
225
225
  tooltip: "Data Access Management",
226
226
  iconName: "accessManagement",
227
227
  onClickGoToPlace: () => o("/DataAccessManagement:default/Submissions"),
228
228
  badgeContent: y,
229
229
  handleDrawerClose: n,
230
- handleDrawerOpen: l
230
+ handleDrawerOpen: s
231
231
  }
232
232
  )
233
233
  ] }),
234
234
  /* @__PURE__ */ e(
235
- s,
235
+ l,
236
236
  {
237
237
  tooltip: "Search",
238
238
  iconName: "search",
239
239
  onClickGoToPlace: () => o("/SearchV2:default"),
240
240
  handleDrawerClose: n,
241
- handleDrawerOpen: l
241
+ handleDrawerOpen: s
242
242
  }
243
243
  )
244
244
  ] }),
245
245
  /* @__PURE__ */ e("div", { className: "filler" }),
246
246
  /* @__PURE__ */ t(x, { children: [
247
247
  S && a && /* @__PURE__ */ e(
248
- s,
248
+ l,
249
249
  {
250
250
  tooltip: "Your Account",
251
251
  onClickOpenNavMenu: 6,
@@ -259,11 +259,11 @@ function Je({
259
259
  ),
260
260
  isCurrentlySelectedItem: c == 6,
261
261
  handleDrawerClose: n,
262
- handleDrawerOpen: l
262
+ handleDrawerOpen: s
263
263
  }
264
264
  ),
265
265
  !S && /* @__PURE__ */ e(
266
- s,
266
+ l,
267
267
  {
268
268
  tooltip: "Sign in",
269
269
  iconName: "login",
@@ -271,18 +271,18 @@ function Je({
271
271
  M.toString()
272
272
  ),
273
273
  handleDrawerClose: n,
274
- handleDrawerOpen: l
274
+ handleDrawerOpen: s
275
275
  }
276
276
  ),
277
277
  /* @__PURE__ */ e(
278
- s,
278
+ l,
279
279
  {
280
280
  tooltip: "Help",
281
281
  iconName: "helpOutlined",
282
282
  onClickOpenNavMenu: 7,
283
283
  isCurrentlySelectedItem: c == 7,
284
284
  handleDrawerClose: n,
285
- handleDrawerOpen: l
285
+ handleDrawerOpen: s
286
286
  }
287
287
  )
288
288
  ] })
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseNavDrawer.js","sources":["../../../src/components/SynapseNavDrawer/SynapseNavDrawer.tsx"],"sourcesContent":["import React from 'react'\nimport SynapseIconWhite from '@/assets/icons/SynapseIconWhite'\nimport SynapseLogoName from '@/assets/icons/SynapseLogoName'\nimport {\n useGetCurrentUserBundle,\n useGetDownloadListStatistics,\n useSearchAccessSubmissionsInfinite,\n} from '@/synapse-queries'\nimport {\n storeRedirectURLForOneSageLoginAndGotoURL,\n useApplicationSessionContext,\n useSynapseContext,\n} from '@/utils'\nimport { useOneSageURL } from '@/utils/hooks/useOneSageURL'\nimport {\n Badge,\n Drawer,\n InputAdornment,\n List,\n ListItemButton,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport {\n Direction,\n SubmissionSortField,\n SubmissionState,\n} from '@sage-bionetworks/synapse-types'\nimport { KeyboardEvent, ReactNode, useState } from 'react'\nimport { CreateProjectModal } from '../CreateProjectModal/CreateProjectModal'\nimport IconSvg, { IconName } from '../IconSvg/IconSvg'\nimport { PLANS_LINK } from '../SynapseHomepageV2/SynapseHomepageNavBar'\nimport UserCard from '../UserCard/UserCard'\nimport { DEFAULT_SEARCH_QUERY } from '@/utils/searchDefaults'\n\nexport type SynapseNavDrawerProps = {\n initIsOpen?: boolean\n gotoPlace: (href: string) => void\n}\n\ntype MenuItemParams = {\n tooltip: string\n iconName?: IconName\n onClickOpenNavMenu?: NavItem\n onClickGoToPlace?: () => void\n additionalChildren?: ReactNode\n badgeContent?: string | number\n isCurrentlySelectedItem?: boolean\n handleDrawerClose: () => void\n handleDrawerOpen: (navItem?: NavItem) => void\n}\n\nexport enum NavItem {\n PROJECTS,\n FAVORITES,\n TEAMS,\n CHALLENGES,\n DOWNLOADS,\n SEARCH,\n PROFILE,\n HELP,\n}\n\nexport const getSearchToken = (queryTerm: string[]) => {\n const searchQuery = {\n ...DEFAULT_SEARCH_QUERY,\n queryTerm,\n }\n return encodeURIComponent(JSON.stringify(searchQuery))\n}\n\nconst projectSearchJson = {\n // To support project search, we send this json object in the url.\n // We update the queryTerm array based on user input.\n ...DEFAULT_SEARCH_QUERY,\n booleanQuery: [\n {\n key: 'node_type',\n value: 'project',\n },\n ],\n}\nconst getProjectSearchToken = (queryTerm: string[]) => {\n const searchQuery = {\n ...projectSearchJson,\n queryTerm,\n }\n return encodeURIComponent(JSON.stringify(searchQuery))\n}\n\nconst NavDrawerListItem = (props: MenuItemParams): React.ReactNode => {\n const {\n tooltip,\n iconName,\n onClickOpenNavMenu,\n onClickGoToPlace,\n additionalChildren,\n badgeContent,\n isCurrentlySelectedItem = false,\n handleDrawerClose,\n handleDrawerOpen,\n } = props\n const handler =\n isCurrentlySelectedItem || onClickGoToPlace\n ? handleDrawerClose\n : () => {\n handleDrawerOpen(onClickOpenNavMenu)\n }\n const item = iconName ? (\n <>\n <IconSvg icon={iconName} /> {additionalChildren}{' '}\n </>\n ) : (\n additionalChildren\n )\n\n const listItem = (\n <Tooltip title={tooltip} placement=\"right\">\n <ListItemButton\n key={iconName}\n onClick={handler}\n className=\"SRC-whiteText\"\n selected={isCurrentlySelectedItem}\n >\n <Badge badgeContent={badgeContent} color=\"secondary\">\n {item}\n </Badge>\n </ListItemButton>\n </Tooltip>\n )\n\n return onClickGoToPlace ? (\n <li>\n <a\n onClick={onClickGoToPlace}\n rel=\"noopener noreferrer\"\n className=\"SRC-whiteText\"\n >\n {listItem}\n </a>\n </li>\n ) : (\n <li>{listItem}</li>\n )\n}\n\n/**\n * Displays the Synapse navigational drawer on the left side of the page. Has links to various areas if logged in.\n */\nexport function SynapseNavDrawer({\n initIsOpen = false,\n gotoPlace,\n}: SynapseNavDrawerProps) {\n const [isOpen, setOpen] = useState(initIsOpen)\n const [selectedItem, setSelectedItem] = useState<NavItem>()\n const [projectSearchText, setProjectSearchText] = useState<string>('')\n const [docSiteSearchText, setDocSiteSearchText] = useState<string>('')\n const [isShowingCreateProjectModal, setIsShowingCreateProjectModal] =\n useState<boolean>(false)\n\n const { clearSession } = useApplicationSessionContext()\n\n const { isAuthenticated } = useSynapseContext()\n\n const { data: currentUserBundle } = useGetCurrentUserBundle()\n\n // If the user is logged out, the UserBundle provides an \"anonymous\" user profile, so override that case with undefined\n const currentUserProfile =\n isAuthenticated && currentUserBundle\n ? currentUserBundle.userProfile\n : undefined\n\n const { data: downloadListStatistics } = useGetDownloadListStatistics({\n enabled: isAuthenticated,\n })\n\n const numberOfFilesInDownloadList = downloadListStatistics?.totalNumberOfFiles\n\n const { data: openSubmissionData } = useSearchAccessSubmissionsInfinite(\n {\n submissionState: SubmissionState.SUBMITTED,\n sort: [\n {\n field: SubmissionSortField.CREATED_ON,\n direction: Direction.DESC,\n },\n ],\n },\n {\n enabled: currentUserBundle?.isARReviewer,\n },\n )\n\n let countOfOpenSubmissionsForReview: number | string =\n openSubmissionData?.pages[0].results.length ?? 0\n if (openSubmissionData?.pages[0].nextPageToken) {\n countOfOpenSubmissionsForReview = `${countOfOpenSubmissionsForReview}+`\n }\n\n const handleDrawerOpen = (navItem?: NavItem) => {\n setOpen(true)\n setSelectedItem(navItem)\n }\n\n const handleDrawerClose = () => {\n setOpen(false)\n setSelectedItem(undefined)\n }\n\n const onProjectSearch = (searchTerm: string) => {\n gotoPlace(\n `/SearchV2:default?query=${getProjectSearchToken(\n searchTerm.split(/[ ,]+/),\n )}`,\n )\n }\n\n const oneSageURL = useOneSageURL()\n const accountSettingsURL = useOneSageURL('/authenticated/myaccount')\n\n return (\n <>\n <div className=\"SynapseNavDrawer\">\n <Drawer\n variant=\"permanent\"\n className={`SynapseNavDrawerMenu ${isOpen ? 'tempDrawerOpen' : ''}`}\n >\n <div onClick={handleDrawerClose}>\n <a\n className=\"synapseIcon\"\n rel=\"noopener noreferrer\"\n onClick={() => gotoPlace('/Home:x')}\n aria-label=\"Synapse Home\"\n >\n <SynapseIconWhite />\n </a>\n </div>\n <List>\n {isAuthenticated && currentUserProfile && (\n <>\n <NavDrawerListItem\n tooltip=\"Projects\"\n iconName=\"dashboard\"\n onClickOpenNavMenu={NavItem.PROJECTS}\n isCurrentlySelectedItem={selectedItem == NavItem.PROJECTS}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Favorites\"\n iconName=\"favTwoTone\"\n onClickGoToPlace={() =>\n gotoPlace(\n `/Profile:${currentUserProfile.ownerId}/favorites`,\n )\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Teams\"\n iconName=\"peopleTwoTone\"\n onClickGoToPlace={() =>\n gotoPlace(`/Profile:${currentUserProfile.ownerId}/teams`)\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Challenges\"\n iconName=\"challengesTwoTone\"\n onClickGoToPlace={() =>\n gotoPlace(\n `/Profile:${currentUserProfile.ownerId}/challenges`,\n )\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Download Cart\"\n iconName=\"download\"\n onClickGoToPlace={() => gotoPlace('/DownloadCart:0')}\n badgeContent={numberOfFilesInDownloadList}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Trash Can\"\n iconName=\"delete\"\n onClickGoToPlace={() => gotoPlace('/Trash:0')}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n {currentUserBundle?.isARReviewer && (\n <NavDrawerListItem\n tooltip=\"Data Access Management\"\n iconName=\"accessManagement\"\n onClickGoToPlace={() =>\n gotoPlace('/DataAccessManagement:default/Submissions')\n }\n badgeContent={countOfOpenSubmissionsForReview}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n )}\n </>\n )}\n <NavDrawerListItem\n tooltip=\"Search\"\n iconName=\"search\"\n onClickGoToPlace={() => gotoPlace('/SearchV2:default')}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n </List>\n <div className=\"filler\" />\n <List>\n {isAuthenticated && currentUserProfile && (\n <NavDrawerListItem\n tooltip=\"Your Account\"\n onClickOpenNavMenu={NavItem.PROFILE}\n additionalChildren={\n <UserCard\n userProfile={currentUserProfile}\n size=\"AVATAR\"\n avatarSize=\"SMALL\"\n />\n }\n isCurrentlySelectedItem={selectedItem == NavItem.PROFILE}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n )}\n {!isAuthenticated && (\n <NavDrawerListItem\n tooltip=\"Sign in\"\n iconName=\"login\"\n onClickGoToPlace={() =>\n storeRedirectURLForOneSageLoginAndGotoURL(\n oneSageURL.toString(),\n )\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n )}\n <NavDrawerListItem\n tooltip=\"Help\"\n iconName=\"helpOutlined\"\n onClickOpenNavMenu={NavItem.HELP}\n isCurrentlySelectedItem={selectedItem == NavItem.HELP}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n </List>\n </Drawer>\n <Drawer\n variant=\"temporary\"\n open={isOpen}\n className={`SynapseNavContentDrawer`}\n onClose={handleDrawerClose}\n >\n <div className=\"synapseLogoNameContainer\">\n <SynapseLogoName />\n </div>\n <div className=\"navContentContainer\">\n {selectedItem == NavItem.PROJECTS && (\n <>\n <div className=\"header projectHeader\">Projects</div>\n <Tooltip title=\"Create a New Project\" placement=\"right\">\n <a\n className=\"createProjectLink\"\n onClick={() => {\n setIsShowingCreateProjectModal(true)\n handleDrawerClose()\n }}\n >\n <IconSvg icon=\"addCircleOutline\" />\n </a>\n </Tooltip>\n <TextField\n type=\"search\"\n placeholder=\"Search All Projects\"\n value={projectSearchText}\n onChange={event => {\n setProjectSearchText(event.target.value)\n }}\n onKeyDown={(event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n if ((event.target as HTMLInputElement).value !== '') {\n setProjectSearchText('')\n handleDrawerClose()\n onProjectSearch(\n (event.target as HTMLInputElement).value,\n )\n }\n }\n }}\n slotProps={{\n input: {\n startAdornment: (\n <InputAdornment position=\"start\">\n <IconSvg icon=\"searchOutlined\" />\n </InputAdornment>\n ),\n },\n }}\n />\n <div className=\"linkList\" onClick={handleDrawerClose}>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/all`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n All\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/created_by_me`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n Created By Me\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/favorites`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n Favorite Projects\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/shared_directly_with_me`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n Shared With Me\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/all_my_team_projects`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n Team Projects\n </a>\n </div>\n </>\n )}\n {selectedItem == NavItem.PROFILE && (\n <>\n <div className=\"header\">\n Welcome Back,\n <br />\n {currentUserProfile?.userName}!\n </div>\n <div className=\"linkList\" onClick={handleDrawerClose}>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/profile`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n View Profile\n </a>\n <a\n className=\"SRC-whiteText\"\n href={accountSettingsURL.toString()}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Account Settings\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() => gotoPlace(`/RequestHistory:default`)}\n rel=\"noopener noreferrer\"\n >\n Access Requests\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() => gotoPlace(`/Following:0`)}\n rel=\"noopener noreferrer\"\n >\n Following\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() => {\n void clearSession()\n }}\n rel=\"noopener noreferrer\"\n >\n Sign Out\n </a>\n </div>\n </>\n )}\n {selectedItem == NavItem.HELP && (\n <>\n <div className=\"header\">Help</div>\n <TextField\n type=\"search\"\n placeholder=\"Search Documentation\"\n value={docSiteSearchText}\n onChange={event => {\n setDocSiteSearchText(event.target.value)\n }}\n onKeyDown={event => {\n if (event.key === 'Enter') {\n if ((event.target as HTMLInputElement).value !== '') {\n window.open(\n `https://help.synapse.org/search.html?max=10&s=docs&q=${encodeURI(\n (event.target as HTMLInputElement).value,\n )}`,\n )\n setDocSiteSearchText('')\n handleDrawerClose()\n }\n }\n }}\n slotProps={{\n input: {\n startAdornment: (\n <InputAdornment position=\"start\">\n <IconSvg icon=\"searchOutlined\" />\n </InputAdornment>\n ),\n },\n }}\n />\n\n <div className=\"linkList\" onClick={handleDrawerClose}>\n <a\n className=\"SRC-whiteText\"\n href=\"https://help.synapse.org/docs/Getting-Started.2055471150.html\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Getting Started\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() => gotoPlace(PLANS_LINK)}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Plans\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://help.synapse.org/docs/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Synapse Web Documentation\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://python-docs.synapse.org/en/stable/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Python Client Documentation\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://r-docs.synapse.org/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n R Client Documentation\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://blog.synapse.org/\"\n rel=\"noopener noreferrer\"\n >\n Blog\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://sagebionetworks.jira.com/servicedesk/customer/portals/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Contact Us\n </a>\n </div>\n </>\n )}\n </div>\n </Drawer>\n </div>\n <CreateProjectModal\n onClose={() => setIsShowingCreateProjectModal(false)}\n isShowingModal={isShowingCreateProjectModal}\n />\n </>\n )\n}\n\nexport default SynapseNavDrawer\n"],"names":["NavItem","getSearchToken","queryTerm","searchQuery","DEFAULT_SEARCH_QUERY","projectSearchJson","getProjectSearchToken","NavDrawerListItem","props","tooltip","iconName","onClickOpenNavMenu","onClickGoToPlace","additionalChildren","badgeContent","isCurrentlySelectedItem","handleDrawerClose","handleDrawerOpen","listItem","jsx","Tooltip","ListItemButton","Badge","jsxs","Fragment","IconSvg","SynapseNavDrawer","initIsOpen","gotoPlace","isOpen","setOpen","useState","selectedItem","setSelectedItem","projectSearchText","setProjectSearchText","docSiteSearchText","setDocSiteSearchText","isShowingCreateProjectModal","setIsShowingCreateProjectModal","clearSession","useApplicationSessionContext","isAuthenticated","useSynapseContext","currentUserBundle","useGetCurrentUserBundle","currentUserProfile","downloadListStatistics","useGetDownloadListStatistics","numberOfFilesInDownloadList","openSubmissionData","useSearchAccessSubmissionsInfinite","SubmissionState","SubmissionSortField","Direction","countOfOpenSubmissionsForReview","navItem","onProjectSearch","searchTerm","oneSageURL","useOneSageURL","accountSettingsURL","Drawer","SynapseIconWhite","List","UserCard","storeRedirectURLForOneSageLoginAndGotoURL","SynapseLogoName","TextField","event","InputAdornment","PLANS_LINK","CreateProjectModal"],"mappings":"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"}
1
+ {"version":3,"file":"SynapseNavDrawer.js","sources":["../../../src/components/SynapseNavDrawer/SynapseNavDrawer.tsx"],"sourcesContent":["import React from 'react'\nimport SynapseIconWhite from '@/assets/icons/SynapseIconWhite'\nimport SynapseLogoName from '@/assets/icons/SynapseLogoName'\nimport {\n useGetCurrentUserBundle,\n useGetDownloadListStatistics,\n useSearchAccessSubmissionsInfinite,\n} from '@/synapse-queries'\nimport {\n storeRedirectURLForOneSageLoginAndGotoURL,\n useApplicationSessionContext,\n useSynapseContext,\n} from '@/utils'\nimport { useOneSageURL } from '@/utils/hooks/useOneSageURL'\nimport {\n Badge,\n Drawer,\n InputAdornment,\n List,\n ListItemButton,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport {\n Direction,\n SubmissionSortField,\n SubmissionState,\n} from '@sage-bionetworks/synapse-types'\nimport { KeyboardEvent, ReactNode, useState } from 'react'\nimport { CreateProjectModal } from '../CreateProjectModal/CreateProjectModal'\nimport IconSvg, { IconName } from '../IconSvg/IconSvg'\nimport { PLANS_LINK } from '../SynapseHomepageV2/SynapseHomepageNavBar'\nimport UserCard from '../UserCard/UserCard'\nimport { DEFAULT_SEARCH_QUERY } from '@/utils/searchDefaults'\n\nexport type SynapseNavDrawerProps = {\n initIsOpen?: boolean\n gotoPlace: (href: string) => void\n}\n\ntype MenuItemParams = {\n tooltip: string\n iconName?: IconName\n onClickOpenNavMenu?: NavItem\n onClickGoToPlace?: () => void\n additionalChildren?: ReactNode\n badgeContent?: string | number\n isCurrentlySelectedItem?: boolean\n handleDrawerClose: () => void\n handleDrawerOpen: (navItem?: NavItem) => void\n}\n\nexport enum NavItem {\n PROJECTS,\n FAVORITES,\n TEAMS,\n CHALLENGES,\n DOWNLOADS,\n SEARCH,\n PROFILE,\n HELP,\n}\n\nexport const getSearchToken = (queryTerm: string[]) => {\n const searchQuery = {\n ...DEFAULT_SEARCH_QUERY,\n queryTerm,\n }\n return encodeURIComponent(JSON.stringify(searchQuery))\n}\n\nconst projectSearchJson = {\n // To support project search, we send this json object in the url.\n // We update the queryTerm array based on user input.\n ...DEFAULT_SEARCH_QUERY,\n booleanQuery: [\n {\n key: 'node_type',\n value: 'project',\n },\n ],\n}\nconst getProjectSearchToken = (queryTerm: string[]) => {\n const searchQuery = {\n ...projectSearchJson,\n queryTerm,\n }\n return encodeURIComponent(JSON.stringify(searchQuery))\n}\n\nconst NavDrawerListItem = (props: MenuItemParams): React.ReactNode => {\n const {\n tooltip,\n iconName,\n onClickOpenNavMenu,\n onClickGoToPlace,\n additionalChildren,\n badgeContent,\n isCurrentlySelectedItem = false,\n handleDrawerClose,\n handleDrawerOpen,\n } = props\n const handler =\n isCurrentlySelectedItem || onClickGoToPlace\n ? handleDrawerClose\n : () => {\n handleDrawerOpen(onClickOpenNavMenu)\n }\n const item = iconName ? (\n <>\n <IconSvg icon={iconName} /> {additionalChildren}{' '}\n </>\n ) : (\n additionalChildren\n )\n\n const listItem = (\n <Tooltip title={tooltip} placement=\"right\">\n <ListItemButton\n key={iconName}\n onClick={handler}\n className=\"SRC-whiteText\"\n selected={isCurrentlySelectedItem}\n >\n <Badge badgeContent={badgeContent} color=\"secondary\">\n {item}\n </Badge>\n </ListItemButton>\n </Tooltip>\n )\n\n return onClickGoToPlace ? (\n <li>\n <a\n onClick={onClickGoToPlace}\n rel=\"noopener noreferrer\"\n className=\"SRC-whiteText\"\n >\n {listItem}\n </a>\n </li>\n ) : (\n <li>{listItem}</li>\n )\n}\n\n/**\n * Displays the Synapse navigational drawer on the left side of the page. Has links to various areas if logged in.\n */\nexport function SynapseNavDrawer({\n initIsOpen = false,\n gotoPlace,\n}: SynapseNavDrawerProps) {\n const [isOpen, setOpen] = useState(initIsOpen)\n const [selectedItem, setSelectedItem] = useState<NavItem>()\n const [projectSearchText, setProjectSearchText] = useState<string>('')\n const [docSiteSearchText, setDocSiteSearchText] = useState<string>('')\n const [isShowingCreateProjectModal, setIsShowingCreateProjectModal] =\n useState<boolean>(false)\n\n const { clearSession } = useApplicationSessionContext()\n\n const { isAuthenticated } = useSynapseContext()\n\n const { data: currentUserBundle } = useGetCurrentUserBundle()\n\n // If the user is logged out, the UserBundle provides an \"anonymous\" user profile, so override that case with undefined\n const currentUserProfile =\n isAuthenticated && currentUserBundle\n ? currentUserBundle.userProfile\n : undefined\n\n const { data: downloadListStatistics } = useGetDownloadListStatistics({\n enabled: isAuthenticated,\n })\n\n const numberOfFilesInDownloadList = downloadListStatistics?.totalNumberOfFiles\n\n const { data: openSubmissionData } = useSearchAccessSubmissionsInfinite(\n {\n submissionState: SubmissionState.SUBMITTED,\n sort: [\n {\n field: SubmissionSortField.CREATED_ON,\n direction: Direction.DESC,\n },\n ],\n },\n {\n enabled: currentUserBundle?.isARReviewer,\n },\n )\n\n let countOfOpenSubmissionsForReview: number | string =\n openSubmissionData?.pages[0].results.length ?? 0\n if (openSubmissionData?.pages[0].nextPageToken) {\n countOfOpenSubmissionsForReview = `${countOfOpenSubmissionsForReview}+`\n }\n\n const handleDrawerOpen = (navItem?: NavItem) => {\n setOpen(true)\n setSelectedItem(navItem)\n }\n\n const handleDrawerClose = () => {\n setOpen(false)\n setSelectedItem(undefined)\n }\n\n const onProjectSearch = (searchTerm: string) => {\n gotoPlace(\n `/SearchV2:default?query=${getProjectSearchToken(\n searchTerm.split(/[ ,]+/),\n )}`,\n )\n }\n\n const oneSageURL = useOneSageURL()\n const accountSettingsURL = useOneSageURL('/authenticated/myaccount')\n\n return (\n <>\n <div className=\"SynapseNavDrawer\">\n <Drawer\n variant=\"permanent\"\n className={`SynapseNavDrawerMenu ${isOpen ? 'tempDrawerOpen' : ''}`}\n >\n <div onClick={handleDrawerClose}>\n <a\n className=\"synapseIcon\"\n rel=\"noopener noreferrer\"\n onClick={() => gotoPlace('/Home:x')}\n aria-label=\"Synapse Home\"\n >\n <SynapseIconWhite />\n </a>\n </div>\n <List>\n {isAuthenticated && currentUserProfile && (\n <>\n <NavDrawerListItem\n tooltip=\"Projects\"\n iconName=\"dashboard\"\n onClickOpenNavMenu={NavItem.PROJECTS}\n isCurrentlySelectedItem={selectedItem == NavItem.PROJECTS}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Favorites\"\n iconName=\"favTwoTone\"\n onClickGoToPlace={() =>\n gotoPlace(\n `/Profile:${currentUserProfile.ownerId}/favorites`,\n )\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Teams\"\n iconName=\"peopleTwoTone\"\n onClickGoToPlace={() =>\n gotoPlace(`/Profile:${currentUserProfile.ownerId}/teams`)\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Challenges\"\n iconName=\"challengesTwoTone\"\n onClickGoToPlace={() =>\n gotoPlace(\n `/Profile:${currentUserProfile.ownerId}/challenges`,\n )\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Download List\"\n iconName=\"download\"\n onClickGoToPlace={() => gotoPlace('/DownloadCart:0')}\n badgeContent={numberOfFilesInDownloadList}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Trash Can\"\n iconName=\"delete\"\n onClickGoToPlace={() => gotoPlace('/Trash:0')}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n {currentUserBundle?.isARReviewer && (\n <NavDrawerListItem\n tooltip=\"Data Access Management\"\n iconName=\"accessManagement\"\n onClickGoToPlace={() =>\n gotoPlace('/DataAccessManagement:default/Submissions')\n }\n badgeContent={countOfOpenSubmissionsForReview}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n )}\n </>\n )}\n <NavDrawerListItem\n tooltip=\"Search\"\n iconName=\"search\"\n onClickGoToPlace={() => gotoPlace('/SearchV2:default')}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n </List>\n <div className=\"filler\" />\n <List>\n {isAuthenticated && currentUserProfile && (\n <NavDrawerListItem\n tooltip=\"Your Account\"\n onClickOpenNavMenu={NavItem.PROFILE}\n additionalChildren={\n <UserCard\n userProfile={currentUserProfile}\n size=\"AVATAR\"\n avatarSize=\"SMALL\"\n />\n }\n isCurrentlySelectedItem={selectedItem == NavItem.PROFILE}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n )}\n {!isAuthenticated && (\n <NavDrawerListItem\n tooltip=\"Sign in\"\n iconName=\"login\"\n onClickGoToPlace={() =>\n storeRedirectURLForOneSageLoginAndGotoURL(\n oneSageURL.toString(),\n )\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n )}\n <NavDrawerListItem\n tooltip=\"Help\"\n iconName=\"helpOutlined\"\n onClickOpenNavMenu={NavItem.HELP}\n isCurrentlySelectedItem={selectedItem == NavItem.HELP}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n </List>\n </Drawer>\n <Drawer\n variant=\"temporary\"\n open={isOpen}\n className={`SynapseNavContentDrawer`}\n onClose={handleDrawerClose}\n >\n <div className=\"synapseLogoNameContainer\">\n <SynapseLogoName />\n </div>\n <div className=\"navContentContainer\">\n {selectedItem == NavItem.PROJECTS && (\n <>\n <div className=\"header projectHeader\">Projects</div>\n <Tooltip title=\"Create a New Project\" placement=\"right\">\n <a\n className=\"createProjectLink\"\n onClick={() => {\n setIsShowingCreateProjectModal(true)\n handleDrawerClose()\n }}\n >\n <IconSvg icon=\"addCircleOutline\" />\n </a>\n </Tooltip>\n <TextField\n type=\"search\"\n placeholder=\"Search All Projects\"\n value={projectSearchText}\n onChange={event => {\n setProjectSearchText(event.target.value)\n }}\n onKeyDown={(event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n if ((event.target as HTMLInputElement).value !== '') {\n setProjectSearchText('')\n handleDrawerClose()\n onProjectSearch(\n (event.target as HTMLInputElement).value,\n )\n }\n }\n }}\n slotProps={{\n input: {\n startAdornment: (\n <InputAdornment position=\"start\">\n <IconSvg icon=\"searchOutlined\" />\n </InputAdornment>\n ),\n },\n }}\n />\n <div className=\"linkList\" onClick={handleDrawerClose}>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/all`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n All\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/created_by_me`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n Created By Me\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/favorites`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n Favorite Projects\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/shared_directly_with_me`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n Shared With Me\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/all_my_team_projects`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n Team Projects\n </a>\n </div>\n </>\n )}\n {selectedItem == NavItem.PROFILE && (\n <>\n <div className=\"header\">\n Welcome Back,\n <br />\n {currentUserProfile?.userName}!\n </div>\n <div className=\"linkList\" onClick={handleDrawerClose}>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/profile`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n View Profile\n </a>\n <a\n className=\"SRC-whiteText\"\n href={accountSettingsURL.toString()}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Account Settings\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() => gotoPlace(`/RequestHistory:default`)}\n rel=\"noopener noreferrer\"\n >\n Access Requests\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() => gotoPlace(`/Following:0`)}\n rel=\"noopener noreferrer\"\n >\n Following\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() => {\n void clearSession()\n }}\n rel=\"noopener noreferrer\"\n >\n Sign Out\n </a>\n </div>\n </>\n )}\n {selectedItem == NavItem.HELP && (\n <>\n <div className=\"header\">Help</div>\n <TextField\n type=\"search\"\n placeholder=\"Search Documentation\"\n value={docSiteSearchText}\n onChange={event => {\n setDocSiteSearchText(event.target.value)\n }}\n onKeyDown={event => {\n if (event.key === 'Enter') {\n if ((event.target as HTMLInputElement).value !== '') {\n window.open(\n `https://help.synapse.org/search.html?max=10&s=docs&q=${encodeURI(\n (event.target as HTMLInputElement).value,\n )}`,\n )\n setDocSiteSearchText('')\n handleDrawerClose()\n }\n }\n }}\n slotProps={{\n input: {\n startAdornment: (\n <InputAdornment position=\"start\">\n <IconSvg icon=\"searchOutlined\" />\n </InputAdornment>\n ),\n },\n }}\n />\n\n <div className=\"linkList\" onClick={handleDrawerClose}>\n <a\n className=\"SRC-whiteText\"\n href=\"https://help.synapse.org/docs/Getting-Started.2055471150.html\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Getting Started\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() => gotoPlace(PLANS_LINK)}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Plans\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://help.synapse.org/docs/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Synapse Web Documentation\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://python-docs.synapse.org/en/stable/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Python Client Documentation\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://r-docs.synapse.org/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n R Client Documentation\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://blog.synapse.org/\"\n rel=\"noopener noreferrer\"\n >\n Blog\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://sagebionetworks.jira.com/servicedesk/customer/portals/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Contact Us\n </a>\n </div>\n </>\n )}\n </div>\n </Drawer>\n </div>\n <CreateProjectModal\n onClose={() => setIsShowingCreateProjectModal(false)}\n isShowingModal={isShowingCreateProjectModal}\n />\n </>\n )\n}\n\nexport default SynapseNavDrawer\n"],"names":["NavItem","getSearchToken","queryTerm","searchQuery","DEFAULT_SEARCH_QUERY","projectSearchJson","getProjectSearchToken","NavDrawerListItem","props","tooltip","iconName","onClickOpenNavMenu","onClickGoToPlace","additionalChildren","badgeContent","isCurrentlySelectedItem","handleDrawerClose","handleDrawerOpen","listItem","jsx","Tooltip","ListItemButton","Badge","jsxs","Fragment","IconSvg","SynapseNavDrawer","initIsOpen","gotoPlace","isOpen","setOpen","useState","selectedItem","setSelectedItem","projectSearchText","setProjectSearchText","docSiteSearchText","setDocSiteSearchText","isShowingCreateProjectModal","setIsShowingCreateProjectModal","clearSession","useApplicationSessionContext","isAuthenticated","useSynapseContext","currentUserBundle","useGetCurrentUserBundle","currentUserProfile","downloadListStatistics","useGetDownloadListStatistics","numberOfFilesInDownloadList","openSubmissionData","useSearchAccessSubmissionsInfinite","SubmissionState","SubmissionSortField","Direction","countOfOpenSubmissionsForReview","navItem","onProjectSearch","searchTerm","oneSageURL","useOneSageURL","accountSettingsURL","Drawer","SynapseIconWhite","List","UserCard","storeRedirectURLForOneSageLoginAndGotoURL","SynapseLogoName","TextField","event","InputAdornment","PLANS_LINK","CreateProjectModal"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { jsx as o, jsxs as x, Fragment as M } from "react/jsx-runtime";
2
- import _ from "../../download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js";
3
- import { useGetAddToDownloadListRequestForCurrentQuery as g } from "../../QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js";
1
+ import { jsx as o, jsxs as x, Fragment as L } from "react/jsx-runtime";
2
+ import M from "../../download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js";
3
+ import { useGetAddToDownloadListRequestForCurrentQuery as _ } from "../../QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js";
4
4
  import "../../../synapse-client/SynapseClient.js";
5
5
  import "@sage-bionetworks/synapse-client/generated/models/ErrorResponseCode";
6
6
  import "@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse";
@@ -12,8 +12,8 @@ import "lodash-es";
12
12
  import "@sage-bionetworks/synapse-client/util/synapseClientFetch";
13
13
  import "@tanstack/react-query";
14
14
  import "../../../utils/PermissionLevelToAccessType.js";
15
- import { useState as D } from "react";
16
- import { useSynapseContext as L } from "../../../utils/context/SynapseContext.js";
15
+ import { useState as g } from "react";
16
+ import { useSynapseContext as D } from "../../../utils/context/SynapseContext.js";
17
17
  import "use-deep-compare-effect";
18
18
  import { Button as a, Box as E } from "@mui/material";
19
19
  import "../../../utils/hooks/useCookiePreferences.js";
@@ -45,12 +45,12 @@ import { RowSelectionUI as j } from "./RowSelectionUI.js";
45
45
  import { SignInRequiredModal as U } from "../../SignInRequiredModal/SignInRequiredModal.js";
46
46
  const Y = "SendToAnalysisPlatformRowSelectionControlButton";
47
47
  function Qo(d) {
48
- const { customControls: p = [], remount: e } = d, { isAuthenticated: u } = L(), [c, n] = D(!1), { entityId: i, versionNumber: f, getCurrentQueryRequest: A } = q(), { data: w } = N(i, f), { data: m } = G(), [r, s] = b(F), S = g(), {
48
+ const { customControls: p = [], remount: e } = d, { isAuthenticated: u } = D(), [c, n] = g(!1), { entityId: i, versionNumber: f, getCurrentQueryRequest: A } = q(), { data: w } = N(i, f), { data: s } = G(), [r, m] = b(F), S = _(), {
49
49
  setIsShowingExportToAnalysisPlatformModal: C,
50
50
  enabledExternalAnalysisPlatforms: T
51
51
  } = Q(), y = T.length > 0, h = () => {
52
- s([]), e && e();
53
- }, I = O(m?.columnModels), R = B(
52
+ m([]), e && e();
53
+ }, I = O(s?.columnModels), R = B(
54
54
  w,
55
55
  I
56
56
  );
@@ -59,15 +59,15 @@ function Qo(d) {
59
59
  {
60
60
  show: r.length > 0,
61
61
  selectedRowCount: r.length,
62
- onClearSelection: () => s([]),
63
- customControls: /* @__PURE__ */ x(M, { children: [
62
+ onClearSelection: () => m([]),
63
+ customControls: /* @__PURE__ */ x(L, { children: [
64
64
  p.map((t) => /* @__PURE__ */ o(
65
65
  k,
66
66
  {
67
67
  variant: "contained",
68
68
  callbackData: {
69
69
  tableId: i,
70
- queryMetadata: m,
70
+ queryMetadata: s,
71
71
  selectedRows: r,
72
72
  refresh: h,
73
73
  request: A()
@@ -108,7 +108,7 @@ function Qo(d) {
108
108
  width: "100%"
109
109
  },
110
110
  children: /* @__PURE__ */ o(
111
- _,
111
+ M,
112
112
  {
113
113
  addToDownloadListRequest: S,
114
114
  onClose: () => {
@@ -124,7 +124,7 @@ function Qo(d) {
124
124
  );
125
125
  },
126
126
  startIcon: /* @__PURE__ */ o(P, {}),
127
- children: "Add to Download Cart"
127
+ children: "Add to Download List"
128
128
  }
129
129
  )
130
130
  ] })
@@ -1 +1 @@
1
- {"version":3,"file":"RowSelectionControls.js","sources":["../../../../src/components/SynapseTable/RowSelection/RowSelectionControls.tsx"],"sourcesContent":["import AddToDownloadListConfirmationAlert from '@/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert'\nimport { useGetAddToDownloadListRequestForCurrentQuery } from '@/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery'\nimport { useGetEntity } from '@/synapse-queries'\nimport { canTableQueryBeAddedToDownloadList } from '@/utils/functions/queryUtils'\nimport { GetAppTwoTone } from '@mui/icons-material'\nimport { Box, Button } from '@mui/material'\nimport { Table } from '@sage-bionetworks/synapse-types'\nimport { useAtom } from 'jotai'\nimport { useState } from 'react'\nimport { toast } from 'react-hot-toast'\nimport { useSynapseContext } from '@/utils'\nimport { useQueryContext } from '../../QueryContext'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { selectedRowsAtom } from '../../QueryWrapper/TableRowSelectionState'\nimport { useGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport {\n getFileColumnModelId,\n SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE,\n} from '../SynapseTableUtils'\nimport { CustomControlButton } from '../CustomControls/CustomControlButton'\nimport { CustomControl } from '../TopLevelControls/TopLevelControls'\nimport { RowSelectionUI } from './RowSelectionUI'\nimport { SignInRequiredModal } from '@/components/SignInRequiredModal/SignInRequiredModal'\n\nconst SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID =\n 'SendToAnalysisPlatformRowSelectionControlButton'\n\nexport type RowSelectionControlsProps = {\n customControls?: CustomControl[]\n remount?: () => void\n}\n\n/**\n * This component is responsible for rendering the RowSelectionUI and the custom controls. Must be wrapped in a\n * QueryContext and a QueryVisualizationContext.\n * @param props\n * @constructor\n */\nexport function RowSelectionControls(props: RowSelectionControlsProps) {\n const { customControls = [], remount } = props\n const { isAuthenticated } = useSynapseContext()\n const [showLoginModal, setShowLoginModal] = useState(false)\n const { entityId, versionNumber, getCurrentQueryRequest } = useQueryContext()\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useGetQueryMetadata()\n const [selectedRows, setSelectedRows] = useAtom(selectedRowsAtom)\n\n const addToDownloadListRequest =\n useGetAddToDownloadListRequestForCurrentQuery()\n\n const {\n setIsShowingExportToAnalysisPlatformModal,\n enabledExternalAnalysisPlatforms,\n } = useQueryVisualizationContext()\n\n const showExportToAnalysisPlatformButton =\n enabledExternalAnalysisPlatforms.length > 0\n\n const refresh = () => {\n // clear selection\n setSelectedRows([])\n if (remount) {\n remount()\n }\n }\n const fileColumnId = getFileColumnModelId(queryMetadata?.columnModels)\n const showAddToDownloadCart = canTableQueryBeAddedToDownloadList(\n entity,\n fileColumnId,\n )\n\n return (\n <RowSelectionUI\n show={selectedRows.length > 0}\n selectedRowCount={selectedRows.length}\n onClearSelection={() => setSelectedRows([])}\n customControls={\n <>\n {customControls.map(customControl => {\n return (\n <CustomControlButton\n key={customControl.buttonText}\n variant=\"contained\"\n callbackData={{\n tableId: entityId!,\n queryMetadata: queryMetadata,\n selectedRows,\n refresh,\n request: getCurrentQueryRequest(),\n }}\n control={customControl}\n startIcon={customControl.icon}\n />\n )\n })}\n {/* TODO: Generic button */}\n {showExportToAnalysisPlatformButton && (\n <Button\n variant=\"outlined\"\n onClick={() => {\n if (isAuthenticated) {\n setIsShowingExportToAnalysisPlatformModal(true)\n } else {\n setShowLoginModal(true)\n }\n }}\n id={SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID}\n >\n Send to Analysis Platform\n </Button>\n )}\n {showLoginModal && (\n <SignInRequiredModal\n onHide={() => setShowLoginModal(false)}\n content={SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE}\n />\n )}\n {showAddToDownloadCart && (\n <Button\n variant=\"contained\"\n onClick={() => {\n const toastId = toast.custom(\n <Box\n sx={{\n width: '100%',\n }}\n >\n <AddToDownloadListConfirmationAlert\n addToDownloadListRequest={addToDownloadListRequest}\n onClose={() => {\n toast.dismiss(toastId)\n }}\n />\n </Box>,\n {\n duration: Infinity,\n },\n )\n }}\n startIcon={<GetAppTwoTone />}\n >\n Add to Download Cart\n </Button>\n )}\n </>\n }\n />\n )\n}\n"],"names":["SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID","RowSelectionControls","props","customControls","remount","isAuthenticated","useSynapseContext","showLoginModal","setShowLoginModal","useState","entityId","versionNumber","getCurrentQueryRequest","useQueryContext","entity","useGetEntity","queryMetadata","useGetQueryMetadata","selectedRows","setSelectedRows","useAtom","selectedRowsAtom","addToDownloadListRequest","useGetAddToDownloadListRequestForCurrentQuery","setIsShowingExportToAnalysisPlatformModal","enabledExternalAnalysisPlatforms","useQueryVisualizationContext","showExportToAnalysisPlatformButton","refresh","fileColumnId","getFileColumnModelId","showAddToDownloadCart","canTableQueryBeAddedToDownloadList","jsx","RowSelectionUI","jsxs","Fragment","customControl","CustomControlButton","Button","SignInRequiredModal","SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE","toastId","toast","Box","AddToDownloadListConfirmationAlert","GetAppTwoTone"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,MAAMA,IACJ;AAaK,SAASC,GAAqBC,GAAkC;AACrE,QAAM,EAAE,gBAAAC,IAAiB,IAAI,SAAAC,MAAYF,GACnC,EAAE,iBAAAG,EAAA,IAAoBC,EAAA,GACtB,CAACC,GAAgBC,CAAiB,IAAIC,EAAS,EAAK,GACpD,EAAE,UAAAC,GAAU,eAAAC,GAAe,wBAAAC,EAAA,IAA2BC,EAAA,GACtD,EAAE,MAAMC,EAAA,IAAWC,EAAoBL,GAAUC,CAAa,GAC9D,EAAE,MAAMK,EAAA,IAAkBC,EAAA,GAC1B,CAACC,GAAcC,CAAe,IAAIC,EAAQC,CAAgB,GAE1DC,IACJC,EAAA,GAEI;AAAA,IACJ,2CAAAC;AAAA,IACA,kCAAAC;AAAA,EAAA,IACEC,EAAA,GAEEC,IACJF,EAAiC,SAAS,GAEtCG,IAAU,MAAM;AAEpB,IAAAT,EAAgB,CAAA,CAAE,GACdf,KACFA,EAAA;AAAA,EAEJ,GACMyB,IAAeC,EAAqBd,GAAe,YAAY,GAC/De,IAAwBC;AAAA,IAC5BlB;AAAA,IACAe;AAAA,EAAA;AAGF,SACE,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMhB,EAAa,SAAS;AAAA,MAC5B,kBAAkBA,EAAa;AAAA,MAC/B,kBAAkB,MAAMC,EAAgB,EAAE;AAAA,MAC1C,gBACE,gBAAAgB,EAAAC,GAAA,EACG,UAAA;AAAA,QAAAjC,EAAe,IAAI,CAAAkC,MAEhB,gBAAAJ;AAAA,UAACK;AAAA,UAAA;AAAA,YAEC,SAAQ;AAAA,YACR,cAAc;AAAA,cACZ,SAAS5B;AAAA,cACT,eAAAM;AAAA,cACA,cAAAE;AAAA,cACA,SAAAU;AAAA,cACA,SAAShB,EAAA;AAAA,YAAuB;AAAA,YAElC,SAASyB;AAAA,YACT,WAAWA,EAAc;AAAA,UAAA;AAAA,UAVpBA,EAAc;AAAA,QAAA,CAaxB;AAAA,QAEAV,KACC,gBAAAM;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,SAAS,MAAM;AACb,cAAIlC,IACFmB,EAA0C,EAAI,IAE9ChB,EAAkB,EAAI;AAAA,YAE1B;AAAA,YACA,IAAIR;AAAA,YACL,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAIFO,KACC,gBAAA0B;AAAA,UAACO;AAAA,UAAA;AAAA,YACC,QAAQ,MAAMhC,EAAkB,EAAK;AAAA,YACrC,SAASiC;AAAA,UAAA;AAAA,QAAA;AAAA,QAGZV,KACC,gBAAAE;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,SAAS,MAAM;AACb,oBAAMG,IAAUC,EAAM;AAAA,gBACpB,gBAAAV;AAAA,kBAACW;AAAA,kBAAA;AAAA,oBACC,IAAI;AAAA,sBACF,OAAO;AAAA,oBAAA;AAAA,oBAGT,UAAA,gBAAAX;AAAA,sBAACY;AAAA,sBAAA;AAAA,wBACC,0BAAAvB;AAAA,wBACA,SAAS,MAAM;AACb,0BAAAqB,EAAM,QAAQD,CAAO;AAAA,wBACvB;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA;AAAA,gBAEF;AAAA,kBACE,UAAU;AAAA,gBAAA;AAAA,cACZ;AAAA,YAEJ;AAAA,YACA,6BAAYI,GAAA,EAAc;AAAA,YAC3B,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAED,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"RowSelectionControls.js","sources":["../../../../src/components/SynapseTable/RowSelection/RowSelectionControls.tsx"],"sourcesContent":["import AddToDownloadListConfirmationAlert from '@/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert'\nimport { useGetAddToDownloadListRequestForCurrentQuery } from '@/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery'\nimport { useGetEntity } from '@/synapse-queries'\nimport { canTableQueryBeAddedToDownloadList } from '@/utils/functions/queryUtils'\nimport { GetAppTwoTone } from '@mui/icons-material'\nimport { Box, Button } from '@mui/material'\nimport { Table } from '@sage-bionetworks/synapse-types'\nimport { useAtom } from 'jotai'\nimport { useState } from 'react'\nimport { toast } from 'react-hot-toast'\nimport { useSynapseContext } from '@/utils'\nimport { useQueryContext } from '../../QueryContext'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { selectedRowsAtom } from '../../QueryWrapper/TableRowSelectionState'\nimport { useGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport {\n getFileColumnModelId,\n SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE,\n} from '../SynapseTableUtils'\nimport { CustomControlButton } from '../CustomControls/CustomControlButton'\nimport { CustomControl } from '../TopLevelControls/TopLevelControls'\nimport { RowSelectionUI } from './RowSelectionUI'\nimport { SignInRequiredModal } from '@/components/SignInRequiredModal/SignInRequiredModal'\n\nconst SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID =\n 'SendToAnalysisPlatformRowSelectionControlButton'\n\nexport type RowSelectionControlsProps = {\n customControls?: CustomControl[]\n remount?: () => void\n}\n\n/**\n * This component is responsible for rendering the RowSelectionUI and the custom controls. Must be wrapped in a\n * QueryContext and a QueryVisualizationContext.\n * @param props\n * @constructor\n */\nexport function RowSelectionControls(props: RowSelectionControlsProps) {\n const { customControls = [], remount } = props\n const { isAuthenticated } = useSynapseContext()\n const [showLoginModal, setShowLoginModal] = useState(false)\n const { entityId, versionNumber, getCurrentQueryRequest } = useQueryContext()\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useGetQueryMetadata()\n const [selectedRows, setSelectedRows] = useAtom(selectedRowsAtom)\n\n const addToDownloadListRequest =\n useGetAddToDownloadListRequestForCurrentQuery()\n\n const {\n setIsShowingExportToAnalysisPlatformModal,\n enabledExternalAnalysisPlatforms,\n } = useQueryVisualizationContext()\n\n const showExportToAnalysisPlatformButton =\n enabledExternalAnalysisPlatforms.length > 0\n\n const refresh = () => {\n // clear selection\n setSelectedRows([])\n if (remount) {\n remount()\n }\n }\n const fileColumnId = getFileColumnModelId(queryMetadata?.columnModels)\n const showAddToDownloadCart = canTableQueryBeAddedToDownloadList(\n entity,\n fileColumnId,\n )\n\n return (\n <RowSelectionUI\n show={selectedRows.length > 0}\n selectedRowCount={selectedRows.length}\n onClearSelection={() => setSelectedRows([])}\n customControls={\n <>\n {customControls.map(customControl => {\n return (\n <CustomControlButton\n key={customControl.buttonText}\n variant=\"contained\"\n callbackData={{\n tableId: entityId!,\n queryMetadata: queryMetadata,\n selectedRows,\n refresh,\n request: getCurrentQueryRequest(),\n }}\n control={customControl}\n startIcon={customControl.icon}\n />\n )\n })}\n {/* TODO: Generic button */}\n {showExportToAnalysisPlatformButton && (\n <Button\n variant=\"outlined\"\n onClick={() => {\n if (isAuthenticated) {\n setIsShowingExportToAnalysisPlatformModal(true)\n } else {\n setShowLoginModal(true)\n }\n }}\n id={SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID}\n >\n Send to Analysis Platform\n </Button>\n )}\n {showLoginModal && (\n <SignInRequiredModal\n onHide={() => setShowLoginModal(false)}\n content={SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE}\n />\n )}\n {showAddToDownloadCart && (\n <Button\n variant=\"contained\"\n onClick={() => {\n const toastId = toast.custom(\n <Box\n sx={{\n width: '100%',\n }}\n >\n <AddToDownloadListConfirmationAlert\n addToDownloadListRequest={addToDownloadListRequest}\n onClose={() => {\n toast.dismiss(toastId)\n }}\n />\n </Box>,\n {\n duration: Infinity,\n },\n )\n }}\n startIcon={<GetAppTwoTone />}\n >\n Add to Download List\n </Button>\n )}\n </>\n }\n />\n )\n}\n"],"names":["SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID","RowSelectionControls","props","customControls","remount","isAuthenticated","useSynapseContext","showLoginModal","setShowLoginModal","useState","entityId","versionNumber","getCurrentQueryRequest","useQueryContext","entity","useGetEntity","queryMetadata","useGetQueryMetadata","selectedRows","setSelectedRows","useAtom","selectedRowsAtom","addToDownloadListRequest","useGetAddToDownloadListRequestForCurrentQuery","setIsShowingExportToAnalysisPlatformModal","enabledExternalAnalysisPlatforms","useQueryVisualizationContext","showExportToAnalysisPlatformButton","refresh","fileColumnId","getFileColumnModelId","showAddToDownloadCart","canTableQueryBeAddedToDownloadList","jsx","RowSelectionUI","jsxs","Fragment","customControl","CustomControlButton","Button","SignInRequiredModal","SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE","toastId","toast","Box","AddToDownloadListConfirmationAlert","GetAppTwoTone"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,MAAMA,IACJ;AAaK,SAASC,GAAqBC,GAAkC;AACrE,QAAM,EAAE,gBAAAC,IAAiB,IAAI,SAAAC,MAAYF,GACnC,EAAE,iBAAAG,EAAA,IAAoBC,EAAA,GACtB,CAACC,GAAgBC,CAAiB,IAAIC,EAAS,EAAK,GACpD,EAAE,UAAAC,GAAU,eAAAC,GAAe,wBAAAC,EAAA,IAA2BC,EAAA,GACtD,EAAE,MAAMC,EAAA,IAAWC,EAAoBL,GAAUC,CAAa,GAC9D,EAAE,MAAMK,EAAA,IAAkBC,EAAA,GAC1B,CAACC,GAAcC,CAAe,IAAIC,EAAQC,CAAgB,GAE1DC,IACJC,EAAA,GAEI;AAAA,IACJ,2CAAAC;AAAA,IACA,kCAAAC;AAAA,EAAA,IACEC,EAAA,GAEEC,IACJF,EAAiC,SAAS,GAEtCG,IAAU,MAAM;AAEpB,IAAAT,EAAgB,CAAA,CAAE,GACdf,KACFA,EAAA;AAAA,EAEJ,GACMyB,IAAeC,EAAqBd,GAAe,YAAY,GAC/De,IAAwBC;AAAA,IAC5BlB;AAAA,IACAe;AAAA,EAAA;AAGF,SACE,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMhB,EAAa,SAAS;AAAA,MAC5B,kBAAkBA,EAAa;AAAA,MAC/B,kBAAkB,MAAMC,EAAgB,EAAE;AAAA,MAC1C,gBACE,gBAAAgB,EAAAC,GAAA,EACG,UAAA;AAAA,QAAAjC,EAAe,IAAI,CAAAkC,MAEhB,gBAAAJ;AAAA,UAACK;AAAA,UAAA;AAAA,YAEC,SAAQ;AAAA,YACR,cAAc;AAAA,cACZ,SAAS5B;AAAA,cACT,eAAAM;AAAA,cACA,cAAAE;AAAA,cACA,SAAAU;AAAA,cACA,SAAShB,EAAA;AAAA,YAAuB;AAAA,YAElC,SAASyB;AAAA,YACT,WAAWA,EAAc;AAAA,UAAA;AAAA,UAVpBA,EAAc;AAAA,QAAA,CAaxB;AAAA,QAEAV,KACC,gBAAAM;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,SAAS,MAAM;AACb,cAAIlC,IACFmB,EAA0C,EAAI,IAE9ChB,EAAkB,EAAI;AAAA,YAE1B;AAAA,YACA,IAAIR;AAAA,YACL,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAIFO,KACC,gBAAA0B;AAAA,UAACO;AAAA,UAAA;AAAA,YACC,QAAQ,MAAMhC,EAAkB,EAAK;AAAA,YACrC,SAASiC;AAAA,UAAA;AAAA,QAAA;AAAA,QAGZV,KACC,gBAAAE;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,SAAS,MAAM;AACb,oBAAMG,IAAUC,EAAM;AAAA,gBACpB,gBAAAV;AAAA,kBAACW;AAAA,kBAAA;AAAA,oBACC,IAAI;AAAA,sBACF,OAAO;AAAA,oBAAA;AAAA,oBAGT,UAAA,gBAAAX;AAAA,sBAACY;AAAA,sBAAA;AAAA,wBACC,0BAAAvB;AAAA,wBACA,SAAS,MAAM;AACb,0BAAAqB,EAAM,QAAQD,CAAO;AAAA,wBACvB;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA;AAAA,gBAEF;AAAA,kBACE,UAAU;AAAA,gBAAA;AAAA,cACZ;AAAA,YAEJ;AAAA,YACA,6BAAYI,GAAA,EAAc;AAAA,YAC3B,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAED,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -1,13 +1,13 @@
1
1
  import u from "pluralize";
2
2
  import { upperFirst as A } from "lodash-es";
3
- const f = "to Download Cart";
4
- function d(r, o, e) {
3
+ const f = "to Download List";
4
+ function i(r, o, e) {
5
5
  return r ? o.length : e;
6
6
  }
7
- function $(r, o, e, l, n) {
7
+ function s(r, o, e, l, n) {
8
8
  if (!r && !o)
9
9
  return `all ${u(n)}`;
10
- const t = d(
10
+ const t = i(
11
11
  o,
12
12
  e,
13
13
  l
@@ -17,12 +17,12 @@ function $(r, o, e, l, n) {
17
17
  t
18
18
  )}` : u(n);
19
19
  }
20
- function c(r, o, e, l, n) {
20
+ function $(r, o, e, l, n) {
21
21
  if (!r && !o)
22
22
  return `Add All ${A(
23
23
  u(n)
24
24
  )} ${f}`;
25
- const t = d(
25
+ const t = i(
26
26
  o,
27
27
  e,
28
28
  l
@@ -32,8 +32,8 @@ function c(r, o, e, l, n) {
32
32
  )} ${f}` : `Add ${f}`;
33
33
  }
34
34
  export {
35
- c as getNumberOfResultsToAddToDownloadListCopy,
36
- d as getNumberOfResultsToInvokeAction,
37
- $ as getNumberOfResultsToInvokeActionCopy
35
+ $ as getNumberOfResultsToAddToDownloadListCopy,
36
+ i as getNumberOfResultsToInvokeAction,
37
+ s as getNumberOfResultsToInvokeActionCopy
38
38
  };
39
39
  //# sourceMappingURL=TopLevelControlsUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TopLevelControlsUtils.js","sources":["../../../../src/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.ts"],"sourcesContent":["import { QueryContextType } from '../../QueryContext'\nimport { QueryVisualizationContextType } from '../../QueryVisualizationWrapper'\nimport pluralize from 'pluralize'\nimport { upperFirst } from 'lodash-es'\nimport { Row } from '@sage-bionetworks/synapse-types'\n\nconst TO_DOWNLOAD_CART = 'to Download Cart'\n\n/**\n * If the user invokes an action on the table (such as \"Send to CAVATICA\"), we want to tell the user how many rows they\n * will perform the action on.\n *\n * If selection is enabled and rows have been selected, return the number of selected rows.\n * If no rows have been selected, return the total number of query results.\n * If the total number of query results is unknown, return undefined.\n * @param hasSelectedRows\n * @param selectedRows\n * @param totalNumberOfRows\n */\nexport function getNumberOfResultsToInvokeAction(\n hasSelectedRows: boolean,\n selectedRows: Row[],\n totalNumberOfRows?: number,\n) {\n return hasSelectedRows ? selectedRows.length : totalNumberOfRows\n}\n\n/**\n * Returns copy for how to reference the number of results that will be affected by an action, such as \"Send to CAVATICA\".\n * Utilizes the unit description to return a count and pluralized unit description.\n *\n * If the user has not selected rows or applied any filters, return \"all <unit>s\".\n * If the user has applied filters but not selected rows, return the total number of query results to indicate that the filtered result set is used. e.g. '2 <unit>s'\n * - If the total number of query results is unknown, the count is not included. e.g. '<unit>s'\n * If the user has selected rows, return the number of selected rows. e.g. '2 <unit>s'\n * @param hasResettableFilters\n * @param hasSelectedRows\n * @param selectedRows\n * @param totalNumberOfRows\n * @param unitDescription\n */\nexport function getNumberOfResultsToInvokeActionCopy(\n hasResettableFilters: QueryContextType['hasResettableFilters'],\n hasSelectedRows: boolean,\n selectedRows: Row[],\n totalNumberOfRows: number | undefined,\n unitDescription: QueryVisualizationContextType['unitDescription'],\n) {\n if (!hasResettableFilters && !hasSelectedRows) {\n return `all ${pluralize(unitDescription)}`\n }\n\n const numberOfResultsToInvokeAction = getNumberOfResultsToInvokeAction(\n hasSelectedRows,\n selectedRows,\n totalNumberOfRows,\n )\n if (numberOfResultsToInvokeAction != null) {\n return `${numberOfResultsToInvokeAction.toLocaleString()} ${pluralize(\n unitDescription,\n numberOfResultsToInvokeAction,\n )}`\n }\n // Null count, so just return the pluralized unit description\n return pluralize(unitDescription)\n}\n\n/**\n * Returns copy for how to reference the number of results that will be sent to the download list.\n * Utilizes the unit description to return a count and pluralized unit description.\n * @param hasResettableFilters\n * @param hasSelectedRows\n * @param selectedRows\n * @param totalNumberOfRows\n * @param unitDescription\n */\nexport function getNumberOfResultsToAddToDownloadListCopy(\n hasResettableFilters: QueryContextType['hasResettableFilters'],\n hasSelectedRows: boolean,\n selectedRows: Row[],\n totalNumberOfRows: number | undefined,\n unitDescription: QueryVisualizationContextType['unitDescription'],\n) {\n if (!hasResettableFilters && !hasSelectedRows) {\n return `Add All ${upperFirst(\n pluralize(unitDescription),\n )} ${TO_DOWNLOAD_CART}`\n }\n\n const numberOfResultsToInvokeAction = getNumberOfResultsToInvokeAction(\n hasSelectedRows,\n selectedRows,\n totalNumberOfRows,\n )\n if (numberOfResultsToInvokeAction != null) {\n return `Add ${numberOfResultsToInvokeAction.toLocaleString()} Selected ${upperFirst(\n pluralize(unitDescription, numberOfResultsToInvokeAction),\n )} ${TO_DOWNLOAD_CART}`\n }\n // Null count\n return `Add ${TO_DOWNLOAD_CART}`\n}\n"],"names":["TO_DOWNLOAD_CART","getNumberOfResultsToInvokeAction","hasSelectedRows","selectedRows","totalNumberOfRows","getNumberOfResultsToInvokeActionCopy","hasResettableFilters","unitDescription","pluralize","numberOfResultsToInvokeAction","getNumberOfResultsToAddToDownloadListCopy","upperFirst"],"mappings":";;AAMA,MAAMA,IAAmB;AAalB,SAASC,EACdC,GACAC,GACAC,GACA;AACA,SAAOF,IAAkBC,EAAa,SAASC;AACjD;AAgBO,SAASC,EACdC,GACAJ,GACAC,GACAC,GACAG,GACA;AACA,MAAI,CAACD,KAAwB,CAACJ;AAC5B,WAAO,OAAOM,EAAUD,CAAe,CAAC;AAG1C,QAAME,IAAgCR;AAAA,IACpCC;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA;AAEF,SAAIK,KAAiC,OAC5B,GAAGA,EAA8B,eAAA,CAAgB,IAAID;AAAA,IAC1DD;AAAA,IACAE;AAAA,EAAA,CACD,KAGID,EAAUD,CAAe;AAClC;AAWO,SAASG,EACdJ,GACAJ,GACAC,GACAC,GACAG,GACA;AACA,MAAI,CAACD,KAAwB,CAACJ;AAC5B,WAAO,WAAWS;AAAA,MAChBH,EAAUD,CAAe;AAAA,IAAA,CAC1B,IAAIP,CAAgB;AAGvB,QAAMS,IAAgCR;AAAA,IACpCC;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA;AAEF,SAAIK,KAAiC,OAC5B,OAAOA,EAA8B,eAAA,CAAgB,aAAaE;AAAA,IACvEH,EAAUD,GAAiBE,CAA6B;AAAA,EAAA,CACzD,IAAIT,CAAgB,KAGhB,OAAOA,CAAgB;AAChC;"}
1
+ {"version":3,"file":"TopLevelControlsUtils.js","sources":["../../../../src/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.ts"],"sourcesContent":["import { QueryContextType } from '../../QueryContext'\nimport { QueryVisualizationContextType } from '../../QueryVisualizationWrapper'\nimport pluralize from 'pluralize'\nimport { upperFirst } from 'lodash-es'\nimport { Row } from '@sage-bionetworks/synapse-types'\n\nconst TO_DOWNLOAD_CART = 'to Download List'\n\n/**\n * If the user invokes an action on the table (such as \"Send to CAVATICA\"), we want to tell the user how many rows they\n * will perform the action on.\n *\n * If selection is enabled and rows have been selected, return the number of selected rows.\n * If no rows have been selected, return the total number of query results.\n * If the total number of query results is unknown, return undefined.\n * @param hasSelectedRows\n * @param selectedRows\n * @param totalNumberOfRows\n */\nexport function getNumberOfResultsToInvokeAction(\n hasSelectedRows: boolean,\n selectedRows: Row[],\n totalNumberOfRows?: number,\n) {\n return hasSelectedRows ? selectedRows.length : totalNumberOfRows\n}\n\n/**\n * Returns copy for how to reference the number of results that will be affected by an action, such as \"Send to CAVATICA\".\n * Utilizes the unit description to return a count and pluralized unit description.\n *\n * If the user has not selected rows or applied any filters, return \"all <unit>s\".\n * If the user has applied filters but not selected rows, return the total number of query results to indicate that the filtered result set is used. e.g. '2 <unit>s'\n * - If the total number of query results is unknown, the count is not included. e.g. '<unit>s'\n * If the user has selected rows, return the number of selected rows. e.g. '2 <unit>s'\n * @param hasResettableFilters\n * @param hasSelectedRows\n * @param selectedRows\n * @param totalNumberOfRows\n * @param unitDescription\n */\nexport function getNumberOfResultsToInvokeActionCopy(\n hasResettableFilters: QueryContextType['hasResettableFilters'],\n hasSelectedRows: boolean,\n selectedRows: Row[],\n totalNumberOfRows: number | undefined,\n unitDescription: QueryVisualizationContextType['unitDescription'],\n) {\n if (!hasResettableFilters && !hasSelectedRows) {\n return `all ${pluralize(unitDescription)}`\n }\n\n const numberOfResultsToInvokeAction = getNumberOfResultsToInvokeAction(\n hasSelectedRows,\n selectedRows,\n totalNumberOfRows,\n )\n if (numberOfResultsToInvokeAction != null) {\n return `${numberOfResultsToInvokeAction.toLocaleString()} ${pluralize(\n unitDescription,\n numberOfResultsToInvokeAction,\n )}`\n }\n // Null count, so just return the pluralized unit description\n return pluralize(unitDescription)\n}\n\n/**\n * Returns copy for how to reference the number of results that will be sent to the download list.\n * Utilizes the unit description to return a count and pluralized unit description.\n * @param hasResettableFilters\n * @param hasSelectedRows\n * @param selectedRows\n * @param totalNumberOfRows\n * @param unitDescription\n */\nexport function getNumberOfResultsToAddToDownloadListCopy(\n hasResettableFilters: QueryContextType['hasResettableFilters'],\n hasSelectedRows: boolean,\n selectedRows: Row[],\n totalNumberOfRows: number | undefined,\n unitDescription: QueryVisualizationContextType['unitDescription'],\n) {\n if (!hasResettableFilters && !hasSelectedRows) {\n return `Add All ${upperFirst(\n pluralize(unitDescription),\n )} ${TO_DOWNLOAD_CART}`\n }\n\n const numberOfResultsToInvokeAction = getNumberOfResultsToInvokeAction(\n hasSelectedRows,\n selectedRows,\n totalNumberOfRows,\n )\n if (numberOfResultsToInvokeAction != null) {\n return `Add ${numberOfResultsToInvokeAction.toLocaleString()} Selected ${upperFirst(\n pluralize(unitDescription, numberOfResultsToInvokeAction),\n )} ${TO_DOWNLOAD_CART}`\n }\n // Null count\n return `Add ${TO_DOWNLOAD_CART}`\n}\n"],"names":["TO_DOWNLOAD_CART","getNumberOfResultsToInvokeAction","hasSelectedRows","selectedRows","totalNumberOfRows","getNumberOfResultsToInvokeActionCopy","hasResettableFilters","unitDescription","pluralize","numberOfResultsToInvokeAction","getNumberOfResultsToAddToDownloadListCopy","upperFirst"],"mappings":";;AAMA,MAAMA,IAAmB;AAalB,SAASC,EACdC,GACAC,GACAC,GACA;AACA,SAAOF,IAAkBC,EAAa,SAASC;AACjD;AAgBO,SAASC,EACdC,GACAJ,GACAC,GACAC,GACAG,GACA;AACA,MAAI,CAACD,KAAwB,CAACJ;AAC5B,WAAO,OAAOM,EAAUD,CAAe,CAAC;AAG1C,QAAME,IAAgCR;AAAA,IACpCC;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA;AAEF,SAAIK,KAAiC,OAC5B,GAAGA,EAA8B,eAAA,CAAgB,IAAID;AAAA,IAC1DD;AAAA,IACAE;AAAA,EAAA,CACD,KAGID,EAAUD,CAAe;AAClC;AAWO,SAASG,EACdJ,GACAJ,GACAC,GACAC,GACAG,GACA;AACA,MAAI,CAACD,KAAwB,CAACJ;AAC5B,WAAO,WAAWS;AAAA,MAChBH,EAAUD,CAAe;AAAA,IAAA,CAC1B,IAAIP,CAAgB;AAGvB,QAAMS,IAAgCR;AAAA,IACpCC;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA;AAEF,SAAIK,KAAiC,OAC5B,OAAOA,EAA8B,eAAA,CAAgB,aAAaE;AAAA,IACvEH,EAAUD,GAAiBE,CAA6B;AAAA,EAAA,CACzD,IAAIT,CAAgB,KAGhB,OAAOA,CAAgB;AAChC;"}
@@ -0,0 +1,16 @@
1
+ import { SxProps, TypographyOwnProps } from '@mui/material';
2
+ import { PropsWithChildren } from 'react';
3
+ export type TextToComponentCollapseProps = PropsWithChildren<{
4
+ text: string;
5
+ defaultVisible?: boolean;
6
+ textVariant?: TypographyOwnProps['variant'];
7
+ textSx?: SxProps;
8
+ textContainerSx?: SxProps;
9
+ collapseBoxSx?: SxProps;
10
+ iconSx?: SxProps;
11
+ }>;
12
+ /**
13
+ * Wrap any child components in a collapse, using a Typography as the trigger
14
+ */
15
+ export default function TextToComponentCollapse({ text, defaultVisible, textVariant, textSx, textContainerSx, collapseBoxSx, iconSx, children, }: TextToComponentCollapseProps): import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=TextToComponentCollapse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextToComponentCollapse.d.ts","sourceRoot":"","sources":["../../src/components/TextToComponentCollapse.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAc,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAGzC,MAAM,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAC9C,IAAI,EACJ,cAAc,EACd,WAAyB,EACzB,MAAM,EACN,eAAe,EACf,aAAa,EACb,MAAM,EACN,QAAQ,GACT,EAAE,4BAA4B,2CAgB9B"}
@@ -0,0 +1,29 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { Typography as l } from "@mui/material";
3
+ import s from "./ComponentCollapse.js";
4
+ function c({
5
+ text: n,
6
+ defaultVisible: t,
7
+ textVariant: r = "smallLink",
8
+ textSx: e,
9
+ textContainerSx: p,
10
+ collapseBoxSx: m,
11
+ iconSx: a,
12
+ children: i
13
+ }) {
14
+ return /* @__PURE__ */ o(
15
+ s,
16
+ {
17
+ component: /* @__PURE__ */ o(l, { variant: r, sx: e, children: n }),
18
+ componentContainerSx: p,
19
+ defaultVisible: t,
20
+ collapseBoxSx: m,
21
+ iconSx: a,
22
+ children: i
23
+ }
24
+ );
25
+ }
26
+ export {
27
+ c as default
28
+ };
29
+ //# sourceMappingURL=TextToComponentCollapse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextToComponentCollapse.js","sources":["../../src/components/TextToComponentCollapse.tsx"],"sourcesContent":["import { SxProps, Typography, TypographyOwnProps } from '@mui/material'\nimport { PropsWithChildren } from 'react'\nimport ComponentCollapse from './ComponentCollapse'\n\nexport type TextToComponentCollapseProps = PropsWithChildren<{\n text: string\n defaultVisible?: boolean // default to false (collapsed)\n textVariant?: TypographyOwnProps['variant']\n textSx?: SxProps\n textContainerSx?: SxProps\n collapseBoxSx?: SxProps\n iconSx?: SxProps\n}>\n\n/**\n * Wrap any child components in a collapse, using a Typography as the trigger\n */\nexport default function TextToComponentCollapse({\n text,\n defaultVisible,\n textVariant = 'smallLink',\n textSx,\n textContainerSx,\n collapseBoxSx,\n iconSx,\n children,\n}: TextToComponentCollapseProps) {\n return (\n <ComponentCollapse\n component={\n <Typography variant={textVariant} sx={textSx}>\n {text}\n </Typography>\n }\n componentContainerSx={textContainerSx}\n defaultVisible={defaultVisible}\n collapseBoxSx={collapseBoxSx}\n iconSx={iconSx}\n >\n {children}\n </ComponentCollapse>\n )\n}\n"],"names":["TextToComponentCollapse","text","defaultVisible","textVariant","textSx","textContainerSx","collapseBoxSx","iconSx","children","jsx","ComponentCollapse","Typography"],"mappings":";;;AAiBA,SAAwBA,EAAwB;AAAA,EAC9C,MAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,QAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AACF,GAAiC;AAC/B,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WACE,gBAAAD,EAACE,GAAA,EAAW,SAASR,GAAa,IAAIC,GACnC,UAAAH,GACH;AAAA,MAEF,sBAAsBI;AAAA,MACtB,gBAAAH;AAAA,MACA,eAAAI;AAAA,MACA,QAAAC;AAAA,MAEC,UAAAC;AAAA,IAAA;AAAA,EAAA;AAGP;"}